diff --git a/_maps/RandomRuins/LavaRuins/lavaland_surface_pizzaparty.dmm b/_maps/RandomRuins/LavaRuins/lavaland_surface_pizzaparty.dmm index 21f2d38090..b66fbdf3d5 100644 --- a/_maps/RandomRuins/LavaRuins/lavaland_surface_pizzaparty.dmm +++ b/_maps/RandomRuins/LavaRuins/lavaland_surface_pizzaparty.dmm @@ -28,7 +28,7 @@ "g" = ( /obj/structure/reagent_dispensers/water_cooler{ name = "punch cooler"; - reagent_id = "bacchus_blessing" + reagent_id = /datum/reagent/consumable/ethanol/bacchus_blessing }, /obj/effect/decal/cleanable/dirt, /turf/open/floor/wood{ diff --git a/_maps/RandomRuins/SpaceRuins/TheDerelict.dmm b/_maps/RandomRuins/SpaceRuins/TheDerelict.dmm index e5038c0730..1464dd9529 100644 --- a/_maps/RandomRuins/SpaceRuins/TheDerelict.dmm +++ b/_maps/RandomRuins/SpaceRuins/TheDerelict.dmm @@ -3410,7 +3410,7 @@ "lq" = ( /obj/structure/table, /obj/item/reagent_containers/glass/beaker{ - list_reagents = list("sacid" = 50) + list_reagents = list(/datum/reagent/toxin/acid = 50) }, /obj/item/paper/crumpled/bloody/ruins/thederelict/unfinished, /obj/item/pen, diff --git a/_maps/RandomRuins/StationRuins/Box/Engine/engine_sm_5x5.dmm b/_maps/RandomRuins/StationRuins/Box/Engine/engine_sm_5x5.dmm index 2b24fa2a70..3b3328a8f0 100644 --- a/_maps/RandomRuins/StationRuins/Box/Engine/engine_sm_5x5.dmm +++ b/_maps/RandomRuins/StationRuins/Box/Engine/engine_sm_5x5.dmm @@ -295,9 +295,6 @@ }, /turf/open/floor/plating, /area/engine/engineering) -"fK" = ( -/turf/closed/wall/r_wall, -/area/engine/supermatter) "fW" = ( /obj/effect/turf_decal/stripes/line{ dir = 8 @@ -427,9 +424,6 @@ }, /turf/open/floor/engine, /area/engine/engineering) -"iU" = ( -/turf/closed/wall/r_wall, -/area/engine/supermatter) "jg" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on{ dir = 8 @@ -531,16 +525,19 @@ /obj/machinery/meter, /turf/open/floor/engine, /area/engine/engineering) -"mE" = ( -/obj/effect/turf_decal/stripes/line, -/obj/machinery/atmospherics/pipe/manifold/cyan/visible{ - dir = 1 +"mG" = ( +/obj/machinery/power/rad_collector/anchored, +/obj/structure/cable/yellow{ + icon_state = "0-8" }, -/obj/structure/cable{ - icon_state = "4-8" +/obj/structure/window/plasma/reinforced{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/general/visible{ + dir = 8 }, /turf/open/floor/engine, -/area/engine/engineering) +/area/engine/supermatter) "mH" = ( /obj/structure/sign/poster/official/safety_eye_protection, /turf/closed/wall/r_wall, @@ -552,12 +549,6 @@ /obj/effect/spawner/structure/window/plasma/reinforced, /turf/open/floor/plating, /area/engine/engineering) -"mW" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 4 - }, -/turf/open/floor/engine, -/area/engine/supermatter) "mX" = ( /obj/effect/turf_decal/stripes/corner, /obj/structure/cable{ @@ -588,10 +579,6 @@ }, /turf/open/floor/engine, /area/engine/engineering) -"ni" = ( -/obj/machinery/status_display/ai, -/turf/closed/wall/r_wall, -/area/engine/supermatter) "nz" = ( /obj/effect/turf_decal/stripes/line{ dir = 6 @@ -770,6 +757,19 @@ }, /turf/closed/wall/r_wall, /area/engine/supermatter) +"qP" = ( +/obj/machinery/power/rad_collector/anchored, +/obj/structure/cable/yellow{ + icon_state = "0-4" + }, +/obj/structure/window/plasma/reinforced{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/manifold/general/visible{ + dir = 4 + }, +/turf/open/floor/engine, +/area/engine/supermatter) "re" = ( /obj/machinery/door/poddoor/shutters/preopen{ id = "engsm"; @@ -870,12 +870,6 @@ /obj/machinery/atmospherics/pipe/simple/green/visible, /turf/open/floor/engine, /area/engine/engineering) -"ti" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 8 - }, -/turf/open/floor/engine, -/area/engine/supermatter) "tn" = ( /turf/open/floor/engine, /area/engine/supermatter) @@ -1288,14 +1282,6 @@ /obj/item/clothing/glasses/welding, /turf/open/floor/plasteel/dark, /area/engine/engineering) -"EX" = ( -/obj/machinery/atmospherics/components/unary/portables_connector/visible{ - dir = 1 - }, -/obj/effect/turf_decal/bot, -/obj/machinery/portable_atmospherics/canister, -/turf/open/floor/plasteel/dark, -/area/engine/engineering) "Fr" = ( /obj/machinery/atmospherics/pipe/simple/general/visible{ dir = 4 @@ -1451,13 +1437,6 @@ }, /turf/open/floor/plating, /area/engine/engineering) -"JK" = ( -/turf/closed/wall/r_wall, -/area/engine/supermatter) -"JL" = ( -/obj/structure/sign/warning/fire, -/turf/closed/wall/r_wall, -/area/engine/supermatter) "JV" = ( /obj/machinery/door/firedoor, /obj/machinery/door/airlock/engineering/glass{ @@ -1898,12 +1877,6 @@ }, /turf/open/floor/engine, /area/engine/engineering) -"UP" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 8 - }, -/turf/open/floor/engine, -/area/engine/supermatter) "Vg" = ( /obj/machinery/status_display/ai, /turf/closed/wall/r_wall, @@ -1912,14 +1885,6 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plasteel/dark, /area/engine/engineering) -"VN" = ( -/obj/machinery/atmospherics/components/unary/portables_connector/visible{ - dir = 1 - }, -/obj/machinery/portable_atmospherics/canister/nitrogen, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel/dark, -/area/engine/engineering) "VP" = ( /obj/item/wrench, /obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ @@ -1928,12 +1893,6 @@ /obj/effect/turf_decal/delivery, /turf/open/floor/plasteel/dark, /area/engine/engineering) -"Wf" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 4 - }, -/turf/open/floor/engine, -/area/engine/supermatter) "Ws" = ( /obj/machinery/atmospherics/components/binary/pump{ dir = 1; @@ -1966,9 +1925,6 @@ }, /turf/open/floor/engine, /area/engine/engineering) -"Xy" = ( -/turf/closed/wall/r_wall, -/area/engine/supermatter) "XA" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 10 @@ -2426,7 +2382,7 @@ Ne yd bW VP -EX +rt Vg px px @@ -2454,14 +2410,14 @@ MP zh QD Hj -EX +rt un CT na na +mG KX -KX -Xy +vO Ml Ef iD @@ -2482,14 +2438,14 @@ MP aC ey TO -Xy +vO OR -UP -UP -UP -UP -UP -Xy +Bk +Bk +Bk +Bk +Bk +vO WT UM MP @@ -2573,7 +2529,7 @@ tn tn tn tn -JL +jB Nx aw iD @@ -2593,15 +2549,15 @@ yf MP Bl jp -Xy -JL +vO +jB OR -Wf -Wf -Wf -Wf -Wf -Xy +RA +RA +RA +RA +RA +vO WT UM MP @@ -2620,16 +2576,16 @@ yf (21,1,1) = {" MP nV -mE +hy Ws -VN +Pa wz Dj tE tE +qP NU -NU -Xy +vO Np YD iD @@ -2648,9 +2604,9 @@ yf (22,1,1) = {" iD fa -mE +hy js -VN +Pa xB Nw Nw diff --git a/_maps/map_files/BoxStation/BoxStation.dmm b/_maps/map_files/BoxStation/BoxStation.dmm index b6463f7147..cfe7dd4335 100644 --- a/_maps/map_files/BoxStation/BoxStation.dmm +++ b/_maps/map_files/BoxStation/BoxStation.dmm @@ -49296,6 +49296,7 @@ /obj/machinery/atmospherics/components/unary/vent_scrubber/on{ dir = 4 }, +/obj/effect/landmark/start/cyborg, /turf/open/floor/plasteel/grimy, /area/ai_monitored/turret_protected/aisat_interior) "ctv" = ( @@ -49321,6 +49322,7 @@ /area/ai_monitored/turret_protected/aisat_interior) "ctx" = ( /obj/machinery/atmospherics/pipe/manifold4w/scrubbers, +/obj/effect/landmark/start/cyborg, /turf/open/floor/plasteel/grimy, /area/ai_monitored/turret_protected/aisat_interior) "cty" = ( @@ -49328,6 +49330,7 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, +/obj/effect/landmark/start/cyborg, /turf/open/floor/plasteel/grimy, /area/ai_monitored/turret_protected/aisat_interior) "ctz" = ( @@ -49381,6 +49384,7 @@ /obj/structure/cable{ icon_state = "4-8" }, +/obj/effect/landmark/start/cyborg, /turf/open/floor/plasteel/grimy, /area/ai_monitored/turret_protected/aisat_interior) "ctH" = ( @@ -49405,6 +49409,7 @@ /area/ai_monitored/turret_protected/aisat_interior) "ctI" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/effect/landmark/start/cyborg, /turf/open/floor/plasteel/grimy, /area/ai_monitored/turret_protected/aisat_interior) "ctJ" = ( @@ -49448,6 +49453,7 @@ /obj/machinery/atmospherics/components/unary/vent_pump/on{ dir = 4 }, +/obj/effect/landmark/start/cyborg, /turf/open/floor/plasteel/grimy, /area/ai_monitored/turret_protected/aisat_interior) "ctQ" = ( @@ -49483,6 +49489,7 @@ /obj/structure/cable{ icon_state = "4-8" }, +/obj/effect/landmark/start/cyborg, /turf/open/floor/plasteel/grimy, /area/ai_monitored/turret_protected/aisat_interior) "ctT" = ( @@ -49493,6 +49500,7 @@ /obj/structure/cable{ icon_state = "1-2" }, +/obj/effect/landmark/start/cyborg, /turf/open/floor/plasteel/grimy, /area/ai_monitored/turret_protected/aisat_interior) "ctU" = ( @@ -57196,8 +57204,7 @@ dir = 5 }, /obj/machinery/camera{ - c_tag = "Bar Backroom"; - dir = 2 + c_tag = "Bar Backroom" }, /obj/machinery/atmospherics/components/unary/vent_scrubber/on{ dir = 4 diff --git a/_maps/map_files/Deltastation/DeltaStation2.dmm b/_maps/map_files/Deltastation/DeltaStation2.dmm index c59e0698f9..eb3140f281 100644 --- a/_maps/map_files/Deltastation/DeltaStation2.dmm +++ b/_maps/map_files/Deltastation/DeltaStation2.dmm @@ -197,7 +197,6 @@ /area/hallway/secondary/entry) "abs" = ( /obj/docking_port/stationary{ - dir = 1; dwidth = 1; height = 4; name = "escape pod loader"; @@ -256,9 +255,7 @@ name = "External Airlock"; req_access_txt = "13" }, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /obj/effect/turf_decal/stripes/line{ dir = 1 }, @@ -269,9 +266,7 @@ /obj/machinery/door/airlock/external{ name = "Escape Pod 1" }, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /obj/effect/turf_decal/stripes/line{ dir = 1 }, @@ -282,9 +277,7 @@ /obj/machinery/door/airlock/external{ name = "Escape Pod 2" }, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /obj/effect/turf_decal/stripes/line{ dir = 1 }, @@ -314,9 +307,7 @@ /area/construction/mining/aux_base) "abZ" = ( /obj/machinery/door/firedoor, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /obj/effect/turf_decal/stripes/line{ dir = 1 }, @@ -360,9 +351,7 @@ name = "WARNING: EXTERNAL AIRLOCK"; pixel_x = 32 }, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /obj/effect/turf_decal/stripes/line{ dir = 1 }, @@ -469,8 +458,8 @@ height = 17; id = "arrivals_stationary"; name = "delta arrivals"; - width = 9; - roundstart_template = /datum/map_template/shuttle/arrival/delta + roundstart_template = /datum/map_template/shuttle/arrival/delta; + width = 9 }, /turf/open/space/basic, /area/space) @@ -777,9 +766,8 @@ "adh" = ( /obj/structure/cable/white, /obj/machinery/power/apc/highcap/ten_k{ - dir = 2; - name = "Starboard Bow Solar APC"; areastring = "/area/maintenance/solars/starboard/fore"; + name = "Starboard Bow Solar APC"; pixel_y = -26 }, /obj/effect/turf_decal/stripes/line{ @@ -802,8 +790,7 @@ /obj/machinery/power/solar_control{ dir = 8; id = "forestarboard"; - name = "Starboard Bow Solar Control"; - track = 0 + name = "Starboard Bow Solar Control" }, /obj/structure/cable, /obj/effect/turf_decal/stripes/line{ @@ -977,9 +964,7 @@ name = "Auxiliary Construction Storage"; req_one_access_txt = "10;32;47;48" }, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /obj/effect/turf_decal/stripes/line{ dir = 1 }, @@ -1394,9 +1379,9 @@ icon_state = "0-4" }, /obj/machinery/power/apc{ + areastring = "/area/construction/mining/aux_base"; dir = 8; name = "Auxiliary Construction APC"; - areastring = "/area/construction/mining/aux_base"; pixel_x = -26; pixel_y = 3 }, @@ -1837,9 +1822,7 @@ name = "Maintenance Hatch"; req_one_access_txt = "32;47;48" }, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /obj/effect/turf_decal/stripes/line{ dir = 1 }, @@ -1847,7 +1830,6 @@ /area/maintenance/starboard/fore) "aid" = ( /obj/docking_port/stationary{ - dir = 1; dwidth = 2; height = 13; id = "ferry_home"; @@ -2263,9 +2245,7 @@ "ajd" = ( /obj/machinery/door/firedoor, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /obj/effect/turf_decal/stripes/line{ dir = 1 }, @@ -2274,9 +2254,7 @@ "aje" = ( /obj/machinery/door/firedoor, /obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /obj/effect/turf_decal/stripes/line{ dir = 1 }, @@ -2301,9 +2279,7 @@ /obj/machinery/door/firedoor, /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /obj/effect/turf_decal/stripes/line{ dir = 1 }, @@ -2317,9 +2293,7 @@ /obj/machinery/door/firedoor, /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /obj/effect/turf_decal/stripes/line{ dir = 1 }, @@ -2547,9 +2521,9 @@ icon_state = "0-4" }, /obj/machinery/power/apc{ + areastring = "/area/hallway/secondary/entry"; dir = 1; name = "Arrivals Hallway APC"; - areastring = "/area/hallway/secondary/entry"; pixel_y = 24 }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -2557,7 +2531,6 @@ }, /obj/machinery/camera{ c_tag = "Arrivals - Center Port"; - dir = 2; name = "arrivals camera" }, /obj/effect/turf_decal/tile/blue{ @@ -3049,9 +3022,7 @@ /obj/machinery/door/airlock{ name = "Auxiliary Storage Closet" }, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /obj/effect/turf_decal/stripes/line{ dir = 1 }, @@ -3074,9 +3045,7 @@ req_access_txt = "32" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /obj/effect/turf_decal/stripes/line{ dir = 1 }, @@ -3097,9 +3066,7 @@ icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /obj/effect/turf_decal/stripes/line{ dir = 1 }, @@ -3840,9 +3807,9 @@ icon_state = "0-4" }, /obj/machinery/power/apc{ + areastring = "/area/security/checkpoint/customs"; dir = 8; name = "Customs Desk APC"; - areastring = "/area/security/checkpoint/customs"; pixel_x = -26 }, /obj/machinery/atmospherics/components/unary/vent_scrubber/on{ @@ -3916,7 +3883,6 @@ /obj/item/flashlight/lamp, /obj/machinery/camera{ c_tag = "Arrivals - Center"; - dir = 2; name = "arrivals camera" }, /turf/open/floor/plasteel/grimy, @@ -4532,7 +4498,6 @@ "anz" = ( /obj/effect/decal/cleanable/cobweb, /obj/machinery/computer/arcade{ - icon_state = "arcade"; dir = 4 }, /turf/open/floor/plating, @@ -4542,9 +4507,9 @@ icon_state = "0-2" }, /obj/machinery/power/apc{ + areastring = "/area/maintenance/starboard/fore"; dir = 1; name = "Starboard Bow Maintenance APC"; - areastring = "/area/maintenance/starboard/fore"; pixel_y = 24 }, /obj/effect/decal/cleanable/dirt, @@ -5731,9 +5696,7 @@ /obj/structure/sign/warning/vacuum{ pixel_y = 32 }, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /obj/effect/turf_decal/stripes/line{ dir = 1 }, @@ -5747,9 +5710,7 @@ /obj/structure/disposalpipe/segment{ dir = 10 }, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /obj/effect/turf_decal/stripes/line{ dir = 1 }, @@ -5763,9 +5724,7 @@ /obj/machinery/light/small{ dir = 1 }, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /obj/effect/turf_decal/stripes/line{ dir = 1 }, @@ -6026,9 +5985,8 @@ /area/security/vacantoffice) "aqg" = ( /obj/machinery/power/apc{ - dir = 2; - name = "Auxiliary Office APC"; areastring = "/area/security/vacantoffice"; + name = "Auxiliary Office APC"; pixel_y = -26 }, /obj/effect/decal/cleanable/dirt, @@ -6515,9 +6473,8 @@ /obj/item/twohanded/required/kirbyplants/random, /obj/structure/cable/white, /obj/machinery/power/apc{ - dir = 2; - name = "Electronics Marketing APC"; areastring = "/area/crew_quarters/electronic_marketing_den"; + name = "Electronics Marketing APC"; pixel_y = -26 }, /turf/open/floor/wood, @@ -6545,9 +6502,7 @@ icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /obj/effect/turf_decal/stripes/line{ dir = 1 }, @@ -6575,9 +6530,7 @@ req_access_txt = "19" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /obj/effect/turf_decal/stripes/line{ dir = 1 }, @@ -6593,9 +6546,7 @@ req_access_txt = "63" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /obj/effect/turf_decal/stripes/line{ dir = 1 }, @@ -6691,7 +6642,6 @@ /area/maintenance/disposal) "ari" = ( /obj/machinery/mineral/stacking_unit_console{ - dir = 2; machinedir = 8; pixel_x = 32 }, @@ -6732,9 +6682,7 @@ req_one_access_txt = "24;10" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /obj/effect/turf_decal/stripes/line{ dir = 1 }, @@ -6756,9 +6704,7 @@ name = "Reflector Access"; req_one_access_txt = "24;10" }, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /obj/effect/turf_decal/stripes/line{ dir = 1 }, @@ -6821,9 +6767,7 @@ icon_state = "1-2" }, /obj/structure/barricade/wooden, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /obj/effect/turf_decal/stripes/line{ dir = 1 }, @@ -6837,9 +6781,7 @@ /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/barricade/wooden, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /obj/effect/turf_decal/stripes/line{ dir = 1 }, @@ -7010,7 +6952,6 @@ /obj/effect/decal/cleanable/dirt, /obj/machinery/camera{ c_tag = "Arrivals - Aft"; - dir = 2; name = "arrivals camera" }, /obj/effect/turf_decal/bot, @@ -7093,7 +7034,6 @@ /area/maintenance/starboard/fore) "arX" = ( /obj/machinery/computer/arcade{ - icon_state = "arcade"; dir = 1 }, /turf/open/floor/plating, @@ -7131,7 +7071,6 @@ "asa" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/computer/arcade{ - icon_state = "arcade"; dir = 1 }, /turf/open/floor/plating, @@ -7209,7 +7148,6 @@ "ash" = ( /obj/machinery/door/window/eastright{ base_state = "left"; - dir = 4; icon_state = "left"; name = "Danger: Conveyor Access"; req_access_txt = "12" @@ -8017,9 +7955,7 @@ req_access_txt = "12" }, /obj/structure/barricade/wooden, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /obj/effect/turf_decal/stripes/line{ dir = 1 }, @@ -8127,7 +8063,6 @@ /area/maintenance/disposal) "atF" = ( /obj/machinery/door/window/eastright{ - dir = 4; name = "Danger: Conveyor Access"; req_access_txt = "12" }, @@ -8466,9 +8401,7 @@ }, /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /obj/effect/turf_decal/stripes/line{ dir = 1 }, @@ -8484,9 +8417,7 @@ req_access_txt = "12" }, /obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /obj/effect/turf_decal/stripes/line{ dir = 1 }, @@ -8916,9 +8847,8 @@ /area/maintenance/disposal) "auO" = ( /obj/machinery/power/apc{ - dir = 2; - name = "Disposal APC"; areastring = "/area/maintenance/disposal"; + name = "Disposal APC"; pixel_y = -24 }, /obj/structure/disposalpipe/segment{ @@ -9308,9 +9238,9 @@ /area/janitor) "avB" = ( /obj/machinery/power/apc{ + areastring = "/area/janitor"; dir = 1; name = "Custodial Closet APC"; - areastring = "/area/janitor"; pixel_y = 24 }, /obj/structure/cable/white{ @@ -9341,7 +9271,6 @@ }, /obj/machinery/camera{ c_tag = "Custodial Closet"; - dir = 2; name = "service camera" }, /obj/effect/turf_decal/bot, @@ -9447,9 +9376,7 @@ /obj/structure/cable/white{ icon_state = "1-2" }, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /obj/effect/turf_decal/stripes/line{ dir = 1 }, @@ -9459,11 +9386,8 @@ /obj/structure/sign/directions/evac{ pixel_y = -8 }, -/obj/structure/sign/directions/science{ - dir = 2 - }, +/obj/structure/sign/directions/science, /obj/structure/sign/directions/engineering{ - dir = 2; pixel_y = 8 }, /turf/closed/wall, @@ -9475,9 +9399,7 @@ }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/structure/disposalpipe/segment, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /obj/effect/turf_decal/stripes/line{ dir = 1 }, @@ -9488,9 +9410,7 @@ /obj/machinery/door/airlock/public/glass{ name = "Fore Primary Hallway" }, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /obj/effect/turf_decal/stripes/line{ dir = 1 }, @@ -9502,9 +9422,7 @@ /obj/machinery/door/airlock/public/glass{ name = "Fore Primary Hallway" }, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /obj/effect/turf_decal/stripes/line{ dir = 1 }, @@ -9514,11 +9432,8 @@ /obj/structure/sign/directions/evac{ pixel_y = -8 }, -/obj/structure/sign/directions/medical{ - dir = 2 - }, +/obj/structure/sign/directions/medical, /obj/structure/sign/directions/security{ - dir = 2; pixel_y = 8 }, /turf/closed/wall, @@ -9536,9 +9451,7 @@ req_access_txt = "31" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /obj/effect/turf_decal/stripes/line{ dir = 1 }, @@ -9579,9 +9492,7 @@ }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/disposalpipe/segment, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /obj/effect/turf_decal/stripes/line{ dir = 1 }, @@ -9982,7 +9893,6 @@ /obj/item/twohanded/required/kirbyplants/random, /obj/machinery/camera{ c_tag = "Auxiliary Restroom"; - dir = 2; name = "restroom camera" }, /obj/effect/turf_decal/tile/neutral{ @@ -10112,7 +10022,6 @@ /obj/effect/decal/cleanable/dirt, /obj/machinery/camera{ c_tag = "Cargo - Warehouse"; - dir = 2; name = "cargo camera" }, /turf/open/floor/plating, @@ -10388,7 +10297,6 @@ }, /obj/machinery/camera{ c_tag = "Supermatter Chamber"; - dir = 2; network = list("engine") }, /turf/open/floor/engine, @@ -10712,9 +10620,8 @@ }, /obj/effect/decal/cleanable/dirt, /obj/machinery/power/apc{ - dir = 2; - name = "Auxiliary Restrooms APC"; areastring = "/area/crew_quarters/toilet/auxiliary"; + name = "Auxiliary Restrooms APC"; pixel_y = -26 }, /turf/open/floor/plating, @@ -11164,9 +11071,8 @@ "ayU" = ( /obj/machinery/light/small, /obj/machinery/power/apc{ - dir = 2; - name = "Port Bow Maintenance APC"; areastring = "/area/maintenance/port/fore"; + name = "Port Bow Maintenance APC"; pixel_y = -26 }, /obj/structure/cable/white, @@ -11359,9 +11265,7 @@ /obj/machinery/door/airlock{ name = "Toilet Unit" }, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /obj/effect/turf_decal/stripes/line{ dir = 1 }, @@ -11850,9 +11754,7 @@ /obj/structure/cable/white{ icon_state = "1-2" }, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /obj/effect/turf_decal/stripes/line{ dir = 1 }, @@ -11863,9 +11765,7 @@ id = "custodialshutters"; name = "Custodial Closet Shutters" }, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /obj/effect/turf_decal/stripes/line{ dir = 1 }, @@ -11883,9 +11783,7 @@ req_access_txt = "26" }, /obj/structure/disposalpipe/segment, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /obj/effect/turf_decal/stripes/line{ dir = 1 }, @@ -13419,9 +13317,9 @@ icon_state = "0-8" }, /obj/machinery/power/apc{ + areastring = "/area/quartermaster/warehouse"; dir = 4; name = "Cargo Warehouse APC"; - areastring = "/area/quartermaster/warehouse"; pixel_x = 26 }, /obj/effect/turf_decal/tile/brown, @@ -13551,9 +13449,7 @@ /turf/open/floor/plasteel, /area/quartermaster/storage) "aDg" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /obj/effect/turf_decal/stripes/line{ dir = 1 }, @@ -13795,9 +13691,7 @@ }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/disposalpipe/segment, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /obj/effect/turf_decal/stripes/line{ dir = 1 }, @@ -13986,7 +13880,6 @@ /area/quartermaster/storage) "aEg" = ( /obj/machinery/button/door{ - dir = 2; id = "cargounload"; layer = 4; name = "Loading Doors"; @@ -14219,9 +14112,9 @@ /area/engine/atmospherics_engine) "aEz" = ( /obj/machinery/power/apc{ + areastring = "/area/engine/atmospherics_engine"; dir = 4; name = "Atmospherics Engine APC"; - areastring = "/area/engine/atmospherics_engine"; pixel_x = 26 }, /obj/structure/cable/white{ @@ -14365,9 +14258,9 @@ "aEP" = ( /obj/structure/closet/secure_closet/bar, /obj/machinery/power/apc{ + areastring = "/area/crew_quarters/bar"; dir = 1; name = "Bar APC"; - areastring = "/area/crew_quarters/bar"; pixel_y = 24 }, /obj/machinery/light/small{ @@ -14397,7 +14290,6 @@ /obj/machinery/atmospherics/components/unary/vent_scrubber/on, /obj/machinery/camera{ c_tag = "Bar Backroom"; - dir = 2; name = "service camera" }, /turf/open/floor/plasteel/dark, @@ -14549,9 +14441,9 @@ icon_state = "0-4" }, /obj/machinery/power/apc{ + areastring = "/area/hallway/primary/fore"; dir = 8; name = "Port Primary Hallway APC"; - areastring = "/area/hallway/primary/fore"; pixel_x = -26; pixel_y = 3 }, @@ -14609,9 +14501,7 @@ req_access_txt = "31" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /obj/effect/turf_decal/stripes/line{ dir = 1 }, @@ -14929,7 +14819,6 @@ /obj/structure/cable/white, /obj/machinery/power/apc{ areastring = "/area/hydroponics/garden/abandoned"; - dir = 2; name = "Maintenance Garden APC"; pixel_y = -26 }, @@ -15585,7 +15474,6 @@ /obj/effect/decal/cleanable/dirt, /obj/machinery/camera{ c_tag = "Prison - Garden"; - dir = 2; name = "prison camera"; network = list("ss13","prison") }, @@ -16000,9 +15888,7 @@ req_access_txt = "12" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /obj/effect/turf_decal/stripes/line{ dir = 1 }, @@ -16018,9 +15904,7 @@ /obj/structure/cable/white{ icon_state = "1-2" }, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /obj/effect/turf_decal/stripes/line{ dir = 1 }, @@ -16259,7 +16143,6 @@ "aHK" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/conveyor{ - dir = 2; id = "cargodisposals" }, /turf/open/floor/plating, @@ -16719,9 +16602,9 @@ dir = 1 }, /obj/machinery/power/apc{ + areastring = "/area/maintenance/disposal/incinerator"; dir = 1; name = "Turbine Generator APC"; - areastring = "/area/maintenance/disposal/incinerator"; pixel_y = 24 }, /obj/structure/cable/white{ @@ -16754,9 +16637,7 @@ icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /obj/machinery/door/airlock/atmos{ name = "Atmospherics Access"; req_one_access_txt = "24;10" @@ -16778,9 +16659,7 @@ icon_state = "1-2" }, /obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /obj/machinery/door/airlock/atmos{ name = "Atmospherics Engine Access"; req_one_access_txt = "24;10" @@ -16823,9 +16702,7 @@ req_one_access_txt = "24;10" }, /obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /obj/effect/turf_decal/stripes/line{ dir = 1 }, @@ -17179,7 +17056,6 @@ "aJk" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/conveyor{ - dir = 2; id = "cargodisposals" }, /obj/effect/spawner/lootdrop/maintenance, @@ -17361,8 +17237,7 @@ /obj/machinery/power/solar_control{ dir = 4; id = "foreport"; - name = "Port Bow Solar Control"; - track = 0 + name = "Port Bow Solar Control" }, /obj/structure/cable, /obj/effect/turf_decal/stripes/line{ @@ -17384,9 +17259,8 @@ "aJG" = ( /obj/structure/cable/white, /obj/machinery/power/apc/highcap/ten_k{ - dir = 2; - name = "Port Bow Solar APC"; areastring = "/area/maintenance/solars/port/fore"; + name = "Port Bow Solar APC"; pixel_y = -26 }, /obj/effect/turf_decal/stripes/line{ @@ -18262,9 +18136,7 @@ id = "justiceblast"; name = "Justice Blast door" }, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /obj/effect/turf_decal/stripes/line{ dir = 1 }, @@ -18765,9 +18637,9 @@ pixel_y = -32 }, /obj/machinery/power/apc{ + areastring = "/area/security/checkpoint/supply"; dir = 8; name = "Security Post - Cargo APC"; - areastring = "/area/security/checkpoint/supply"; pixel_x = -26 }, /obj/effect/turf_decal/tile/red{ @@ -19139,9 +19011,7 @@ name = "Turbine Generator Access"; req_access_txt = "24" }, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /obj/effect/turf_decal/stripes/line{ dir = 1 }, @@ -19162,9 +19032,7 @@ "aMH" = ( /obj/machinery/door/firedoor, /obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /obj/machinery/door/airlock/atmos{ name = "Atmospherics Access"; req_one_access_txt = "24;10" @@ -19187,9 +19055,7 @@ /obj/structure/cable/white{ icon_state = "1-2" }, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /obj/machinery/door/airlock/atmos{ name = "Atmospherics Engine Access"; req_one_access_txt = "24;10" @@ -19357,14 +19223,13 @@ dir = 1 }, /obj/machinery/power/apc{ + areastring = "/area/crew_quarters/bar/atrium"; dir = 1; name = "Atrium APC"; - areastring = "/area/crew_quarters/bar/atrium"; pixel_y = 24 }, /obj/machinery/camera{ c_tag = "Theatre Stage"; - dir = 2; name = "service camera" }, /turf/open/floor/plasteel/grimy, @@ -19495,7 +19360,6 @@ "aNp" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/conveyor{ - dir = 2; id = "cargodisposals" }, /obj/structure/plasticflaps, @@ -19823,10 +19687,9 @@ /area/maintenance/disposal/incinerator) "aNQ" = ( /obj/machinery/power/compressor{ - icon_state = "compressor"; + comp_id = "incineratorturbine"; dir = 4; - luminosity = 2; - comp_id = "incineratorturbine" + luminosity = 2 }, /obj/structure/cable{ icon_state = "0-4" @@ -19865,9 +19728,7 @@ icon_state = "4-8" }, /obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/components/binary/dp_vent_pump/high_volume/incinerator_atmos{ - dir = 2 - }, +/obj/machinery/atmospherics/components/binary/dp_vent_pump/high_volume/incinerator_atmos, /turf/open/floor/engine, /area/maintenance/disposal/incinerator) "aNU" = ( @@ -20262,9 +20123,9 @@ dir = 1 }, /obj/machinery/power/apc{ + areastring = "/area/crew_quarters/theatre"; dir = 1; name = "Theatre Backstage APC"; - areastring = "/area/crew_quarters/theatre"; pixel_y = 24 }, /obj/effect/turf_decal/tile/red{ @@ -20469,9 +20330,9 @@ /obj/item/stack/packageWrap, /obj/item/hand_labeler, /obj/machinery/power/apc{ + areastring = "/area/quartermaster/sorting"; dir = 8; name = "Delivery Office APC"; - areastring = "/area/quartermaster/sorting"; pixel_x = -26; pixel_y = 3 }, @@ -21928,7 +21789,6 @@ /obj/machinery/holopad, /obj/item/radio/intercom{ desc = "Talk through this. It looks like it has been modified to not broadcast."; - dir = 2; name = "Prison Intercom"; pixel_y = -28; prison_radio = 1 @@ -21951,7 +21811,6 @@ /area/security/prison) "aRi" = ( /obj/machinery/computer/arcade{ - icon_state = "arcade"; dir = 1 }, /turf/open/floor/plating, @@ -22531,9 +22390,7 @@ req_one_access_txt = "48;50" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /obj/effect/turf_decal/stripes/line{ dir = 1 }, @@ -22585,9 +22442,7 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /obj/effect/turf_decal/stripes/line{ dir = 1 }, @@ -22608,9 +22463,9 @@ icon_state = "0-2" }, /obj/machinery/power/apc{ + areastring = "/area/quartermaster/storage"; dir = 8; name = "Cargo Bay APC"; - areastring = "/area/quartermaster/storage"; pixel_x = -26; pixel_y = 3 }, @@ -22760,9 +22615,9 @@ icon_state = "0-2" }, /obj/machinery/power/apc{ + areastring = "/area/quartermaster/qm"; dir = 1; name = "Quartermaster's Office APC"; - areastring = "/area/quartermaster/qm"; pixel_y = 28 }, /obj/machinery/atmospherics/components/unary/vent_pump/on, @@ -22887,9 +22742,7 @@ name = "Cell 3" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /obj/effect/turf_decal/stripes/line{ dir = 1 }, @@ -22908,9 +22761,7 @@ /obj/structure/cable/white{ icon_state = "1-2" }, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /obj/effect/turf_decal/stripes/line{ dir = 1 }, @@ -22927,9 +22778,7 @@ name = "Cell 1" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /obj/effect/turf_decal/stripes/line{ dir = 1 }, @@ -23809,7 +23658,6 @@ }, /obj/machinery/camera{ c_tag = "Cargo - Office"; - dir = 2; name = "cargo camera" }, /obj/effect/turf_decal/tile/brown{ @@ -23824,9 +23672,9 @@ /obj/structure/table, /obj/item/paper_bin, /obj/machinery/power/apc{ + areastring = "/area/quartermaster/office"; dir = 1; name = "Cargo Office APC"; - areastring = "/area/quartermaster/office"; pixel_y = 28 }, /obj/structure/cable/white{ @@ -24263,7 +24111,6 @@ /obj/machinery/atmospherics/components/unary/vent_pump/on, /obj/machinery/camera{ c_tag = "Prison - Cell 3"; - dir = 2; name = "prison camera"; network = list("ss13","prison") }, @@ -24310,7 +24157,6 @@ /obj/machinery/atmospherics/components/unary/vent_pump/on, /obj/machinery/camera{ c_tag = "Prison - Cell 2"; - dir = 2; name = "prison camera"; network = list("ss13","prison") }, @@ -24343,7 +24189,6 @@ /obj/machinery/atmospherics/components/unary/vent_pump/on, /obj/machinery/camera{ c_tag = "Prison - Cell 1"; - dir = 2; name = "prison camera"; network = list("ss13","prison") }, @@ -24491,9 +24336,7 @@ name = "Security External Airlock"; req_access_txt = "63" }, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /obj/effect/turf_decal/stripes/line{ dir = 1 }, @@ -25704,9 +25547,8 @@ "aWp" = ( /obj/structure/cable/white, /obj/machinery/power/apc{ - dir = 2; - name = "Education Chamber APC"; areastring = "/area/security/execution/education"; + name = "Education Chamber APC"; pixel_y = -26 }, /obj/machinery/atmospherics/pipe/simple/general/hidden{ @@ -25929,9 +25771,7 @@ }, /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /obj/effect/turf_decal/stripes/line{ dir = 1 }, @@ -26045,9 +25885,9 @@ icon_state = "0-4" }, /obj/machinery/power/apc{ + areastring = "/area/hallway/secondary/service"; dir = 8; name = "Service Hall APC"; - areastring = "/area/hallway/secondary/service"; pixel_x = -26; pixel_y = 3 }, @@ -26764,9 +26604,7 @@ name = "WARNING: EXTERNAL AIRLOCK"; pixel_x = 32 }, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /obj/effect/turf_decal/stripes/line{ dir = 1 }, @@ -27678,8 +27516,7 @@ /area/security/prison) "aZm" = ( /obj/machinery/camera{ - c_tag = "Security - Prison Port"; - dir = 2 + c_tag = "Security - Prison Port" }, /obj/effect/turf_decal/tile/red, /turf/open/floor/plasteel, @@ -27756,9 +27593,7 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, -/obj/effect/turf_decal/tile/red{ - dir = 2 - }, +/obj/effect/turf_decal/tile/red, /turf/open/floor/plasteel, /area/security/prison) "aZt" = ( @@ -27785,8 +27620,7 @@ }, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, /obj/machinery/camera{ - c_tag = "Security - Prison"; - dir = 2 + c_tag = "Security - Prison" }, /obj/effect/turf_decal/tile/red, /turf/open/floor/plasteel, @@ -27827,9 +27661,7 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, -/obj/effect/turf_decal/tile/red{ - dir = 2 - }, +/obj/effect/turf_decal/tile/red, /turf/open/floor/plasteel, /area/security/prison) "aZx" = ( @@ -27888,9 +27720,7 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, -/obj/effect/turf_decal/tile/red{ - dir = 2 - }, +/obj/effect/turf_decal/tile/red, /turf/open/floor/plasteel, /area/security/prison) "aZB" = ( @@ -28027,8 +27857,7 @@ "aZK" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/camera{ - c_tag = "Security - Escape Pod"; - dir = 2 + c_tag = "Security - Escape Pod" }, /obj/effect/turf_decal/tile/red{ dir = 1 @@ -28049,8 +27878,8 @@ dir = 4 }, /turf/open/floor/plating{ - luminosity = 2; initial_gas_mix = "o2=0.01;n2=0.01"; + luminosity = 2; temperature = 2.7 }, /area/security/prison) @@ -28372,9 +28201,7 @@ req_access_txt = "35" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /obj/effect/turf_decal/stripes/line{ dir = 1 }, @@ -28401,9 +28228,7 @@ dir = 4 }, /obj/machinery/door/firedoor, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /turf/open/floor/plasteel, /area/hallway/secondary/service) "bax" = ( @@ -28412,9 +28237,7 @@ }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/machinery/door/firedoor, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /turf/open/floor/plasteel, /area/hallway/secondary/service) "bay" = ( @@ -28445,7 +28268,6 @@ }, /obj/machinery/camera{ c_tag = "Kitchen Cold Room"; - dir = 2; name = "service camera" }, /obj/effect/turf_decal/stripes/line{ @@ -28650,9 +28472,7 @@ req_access_txt = "48" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /obj/effect/turf_decal/stripes/line{ dir = 1 }, @@ -28680,9 +28500,7 @@ req_access_txt = "48" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /obj/effect/turf_decal/stripes/line{ dir = 1 }, @@ -28827,9 +28645,8 @@ "bbk" = ( /obj/structure/cable/white, /obj/machinery/power/apc/highcap/five_k{ - dir = 2; - name = "Prison Wing APC"; areastring = "/area/security/prison"; + name = "Prison Wing APC"; pixel_x = 1; pixel_y = -24 }, @@ -29380,9 +29197,7 @@ "bcm" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/machinery/door/firedoor, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /obj/effect/turf_decal/stripes/line{ dir = 1 }, @@ -29394,9 +29209,7 @@ }, /obj/structure/disposalpipe/segment, /obj/machinery/door/firedoor, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /obj/effect/turf_decal/stripes/line{ dir = 1 }, @@ -29405,9 +29218,7 @@ "bco" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/machinery/door/firedoor, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /obj/effect/turf_decal/stripes/line{ dir = 1 }, @@ -29426,9 +29237,7 @@ req_one_access_txt = "48;50" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /obj/effect/turf_decal/stripes/line{ dir = 1 }, @@ -29631,9 +29440,7 @@ icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /obj/effect/turf_decal/stripes/line{ dir = 1 }, @@ -29652,9 +29459,7 @@ req_access_txt = "1" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /obj/effect/turf_decal/stripes/line{ dir = 1 }, @@ -29819,8 +29624,8 @@ dir = 4 }, /turf/open/floor/plating{ - luminosity = 2; initial_gas_mix = "o2=0.01;n2=0.01"; + luminosity = 2; temperature = 2.7 }, /area/security/prison) @@ -30400,7 +30205,6 @@ "bdS" = ( /obj/machinery/camera{ c_tag = "Cargo - Waiting Room"; - dir = 2; name = "cargo camera" }, /obj/effect/turf_decal/loading_area{ @@ -31002,9 +30806,8 @@ "bfb" = ( /obj/structure/cable/white, /obj/machinery/power/apc{ - dir = 2; - name = "Kitchen APC"; areastring = "/area/crew_quarters/kitchen"; + name = "Kitchen APC"; pixel_y = -26 }, /obj/effect/turf_decal/bot, @@ -31597,9 +31400,7 @@ /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/structure/disposalpipe/segment, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /obj/effect/turf_decal/stripes/line{ dir = 1 }, @@ -31717,9 +31518,7 @@ }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/structure/disposalpipe/segment, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /obj/effect/turf_decal/stripes/line{ dir = 1 }, @@ -31734,9 +31533,7 @@ /obj/structure/cable/white{ icon_state = "1-2" }, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /obj/effect/turf_decal/stripes/line{ dir = 1 }, @@ -31757,9 +31554,7 @@ req_access_txt = "28" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /obj/effect/turf_decal/stripes/line{ dir = 1 }, @@ -32059,18 +31854,14 @@ /area/quartermaster/miningoffice) "bgR" = ( /obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /obj/effect/turf_decal/stripes/line{ dir = 1 }, /turf/open/floor/plasteel, /area/quartermaster/miningoffice) "bgS" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /obj/effect/turf_decal/stripes/line{ dir = 1 }, @@ -32103,8 +31894,8 @@ height = 5; id = "mining_home"; name = "mining shuttle bay"; - width = 7; - roundstart_template = /datum/map_template/shuttle/mining/delta + roundstart_template = /datum/map_template/shuttle/mining/delta; + width = 7 }, /turf/open/space/basic, /area/space) @@ -32121,9 +31912,7 @@ icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /obj/effect/turf_decal/stripes/line{ dir = 1 }, @@ -32151,9 +31940,7 @@ req_access_txt = "1" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /obj/effect/turf_decal/stripes/line{ dir = 1 }, @@ -32237,9 +32024,9 @@ /area/engine/atmos) "bhj" = ( /obj/machinery/power/apc/highcap/five_k{ + areastring = "/area/engine/atmos"; dir = 1; name = "Atmospherics APC"; - areastring = "/area/engine/atmos"; pixel_y = 24 }, /obj/structure/cable/white{ @@ -33065,8 +32852,7 @@ dir = 4 }, /obj/machinery/camera{ - c_tag = "Security - Medbay"; - dir = 2 + c_tag = "Security - Medbay" }, /obj/effect/turf_decal/tile/red{ dir = 1 @@ -33188,8 +32974,7 @@ pixel_y = 32 }, /obj/machinery/camera{ - c_tag = "Security - Office Fore"; - dir = 2 + c_tag = "Security - Office Fore" }, /obj/effect/turf_decal/tile/red{ dir = 1 @@ -34413,8 +34198,7 @@ pixel_y = 32 }, /obj/machinery/camera{ - c_tag = "Security - Head of Security's Office"; - dir = 2 + c_tag = "Security - Head of Security's Office" }, /obj/effect/turf_decal/tile/neutral{ dir = 1 @@ -34866,7 +34650,6 @@ dir = 4 }, /obj/machinery/door/window/eastleft{ - dir = 4; name = "Kitchen Desk"; req_access_txt = "28" }, @@ -35187,9 +34970,9 @@ /obj/item/storage/firstaid/regular, /obj/machinery/light, /obj/machinery/power/apc{ + areastring = "/area/quartermaster/miningoffice"; dir = 4; name = "Mining Dock APC"; - areastring = "/area/quartermaster/miningoffice"; pixel_x = 26 }, /obj/machinery/camera{ @@ -35582,8 +35365,7 @@ pixel_y = 32 }, /obj/machinery/camera{ - c_tag = "Security - Head of Security's Quarters"; - dir = 2 + c_tag = "Security - Head of Security's Quarters" }, /turf/open/floor/plasteel/grimy, /area/crew_quarters/heads/hos) @@ -36013,9 +35795,7 @@ /obj/structure/cable/white{ icon_state = "1-2" }, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /obj/effect/turf_decal/stripes/line{ dir = 1 }, @@ -36054,9 +35834,7 @@ /obj/machinery/door/airlock/public/glass{ name = "Fore Primary Hallway" }, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /obj/effect/turf_decal/stripes/line{ dir = 1 }, @@ -36071,9 +35849,7 @@ icon_state = "1-2" }, /obj/structure/disposalpipe/segment, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /obj/effect/turf_decal/stripes/line{ dir = 1 }, @@ -36094,9 +35870,7 @@ /area/hallway/primary/fore) "bnv" = ( /obj/machinery/door/firedoor, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /obj/effect/turf_decal/stripes/line{ dir = 1 }, @@ -36105,9 +35879,7 @@ "bnw" = ( /obj/machinery/door/firedoor, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /obj/effect/turf_decal/stripes/line{ dir = 1 }, @@ -36120,9 +35892,7 @@ "bny" = ( /obj/machinery/door/firedoor, /obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /obj/effect/turf_decal/stripes/line{ dir = 1 }, @@ -36160,9 +35930,7 @@ name = "Mining Dock"; req_access_txt = "48" }, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /obj/effect/turf_decal/stripes/line{ dir = 1 }, @@ -36265,9 +36033,9 @@ /area/security/main) "bnL" = ( /obj/machinery/power/apc{ + areastring = "/area/security/main"; dir = 8; name = "Security Office APC"; - areastring = "/area/security/main"; pixel_x = -26 }, /obj/structure/cable/white{ @@ -36623,9 +36391,7 @@ name = "Distribution Loop"; req_access_txt = "24" }, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /obj/effect/turf_decal/stripes/line{ dir = 1 }, @@ -36664,9 +36430,7 @@ /turf/open/floor/plasteel, /area/engine/atmos) "bor" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ - dir = 2 - }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, /obj/effect/turf_decal/tile/neutral{ dir = 1 }, @@ -36684,16 +36448,12 @@ /obj/item/clipboard, /obj/effect/decal/cleanable/dirt, /obj/item/toy/figure/atmos, -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ - dir = 2 - }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, /obj/effect/turf_decal/bot, /turf/open/floor/plasteel, /area/engine/atmos) "bot" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ - dir = 2 - }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, /obj/effect/turf_decal/stripes/line{ dir = 8 }, @@ -36832,7 +36592,6 @@ }, /obj/machinery/camera{ c_tag = "Central Hallway - Fore Port"; - dir = 2; name = "hallway camera" }, /obj/effect/turf_decal/tile/neutral{ @@ -36929,7 +36688,6 @@ }, /obj/machinery/camera{ c_tag = "Central Hallway - Fore Starboard"; - dir = 2; name = "hallway camera" }, /obj/effect/turf_decal/tile/neutral{ @@ -36977,9 +36735,9 @@ dir = 4 }, /obj/machinery/power/apc{ + areastring = "/area/hallway/primary/central"; dir = 1; name = "Central Primary Hallway APC"; - areastring = "/area/hallway/primary/central"; pixel_y = 24 }, /obj/structure/cable/white{ @@ -37132,8 +36890,7 @@ pixel_y = 32 }, /obj/machinery/camera{ - c_tag = "Security - Transfer Centre"; - dir = 2 + c_tag = "Security - Transfer Centre" }, /obj/effect/turf_decal/tile/red{ dir = 1 @@ -37647,7 +37404,6 @@ /area/engine/atmos) "bpT" = ( /obj/machinery/atmospherics/components/binary/pump{ - dir = 2; name = "Pure to Mix" }, /obj/effect/decal/cleanable/dirt, @@ -37726,9 +37482,7 @@ /turf/open/floor/plasteel, /area/engine/atmos) "bqa" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ - dir = 2 - }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, /obj/effect/landmark/start/atmospheric_technician, /obj/machinery/atmospherics/pipe/simple/cyan/visible{ dir = 4 @@ -37750,9 +37504,7 @@ /obj/item/clothing/head/welding, /obj/structure/table/reinforced, /obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ - dir = 2 - }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, /obj/effect/turf_decal/bot, /obj/machinery/atmospherics/pipe/simple/cyan/visible{ dir = 4 @@ -37760,9 +37512,7 @@ /turf/open/floor/plasteel, /area/engine/atmos) "bqc" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ - dir = 2 - }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, /obj/effect/turf_decal/stripes/line{ dir = 8 }, @@ -39063,9 +38813,7 @@ /obj/structure/table/reinforced, /obj/item/storage/belt/utility, /obj/item/t_scanner, -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ - dir = 2 - }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, /obj/effect/turf_decal/bot, /turf/open/floor/plasteel, /area/engine/atmos) @@ -40253,9 +40001,7 @@ /area/engine/atmos) "btU" = ( /obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ - dir = 2 - }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, /obj/effect/turf_decal/tile/neutral{ dir = 1 }, @@ -40269,9 +40015,7 @@ /turf/open/floor/plasteel, /area/engine/atmos) "btV" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ - dir = 2 - }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, /obj/effect/turf_decal/bot, /turf/open/floor/plasteel, /area/engine/atmos) @@ -40428,9 +40172,9 @@ /area/hallway/primary/port) "bui" = ( /obj/machinery/power/apc{ + areastring = "/area/hallway/primary/port"; dir = 4; name = "Port Primary Hallway APC"; - areastring = "/area/hallway/primary/port"; pixel_x = 26 }, /obj/structure/cable/white{ @@ -40475,9 +40219,7 @@ "bun" = ( /obj/machinery/door/firedoor, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /obj/effect/turf_decal/stripes/line{ dir = 1 }, @@ -40489,9 +40231,7 @@ icon_state = "1-2" }, /obj/structure/disposalpipe/segment, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /obj/effect/turf_decal/stripes/line{ dir = 1 }, @@ -40501,9 +40241,7 @@ /obj/machinery/door/firedoor, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/disposalpipe/segment, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /obj/effect/turf_decal/stripes/line{ dir = 1 }, @@ -40522,9 +40260,7 @@ /obj/structure/cable/white{ icon_state = "1-2" }, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /obj/effect/turf_decal/stripes/line{ dir = 1 }, @@ -40550,9 +40286,7 @@ /turf/open/floor/plasteel, /area/security/execution/transfer) "buA" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /obj/effect/turf_decal/stripes/line{ dir = 1 }, @@ -40782,9 +40516,8 @@ "buT" = ( /obj/item/twohanded/required/kirbyplants/random, /obj/machinery/power/apc{ - dir = 2; - name = "Head of Security's Office APC"; areastring = "/area/crew_quarters/heads/hos"; + name = "Head of Security's Office APC"; pixel_y = -26 }, /obj/structure/cable/white, @@ -40905,7 +40638,6 @@ /area/engine/atmos) "bva" = ( /obj/machinery/atmospherics/components/binary/pump{ - dir = 2; name = "Mix to Distro" }, /obj/effect/turf_decal/tile/neutral{ @@ -41450,9 +41182,8 @@ "bwa" = ( /obj/structure/cable/white, /obj/machinery/power/apc{ - dir = 2; - name = "Security Transferring APC"; areastring = "/area/security/execution/transfer"; + name = "Security Transferring APC"; pixel_y = -26 }, /obj/effect/turf_decal/tile/red, @@ -41743,9 +41474,7 @@ /obj/structure/cable/white{ icon_state = "1-2" }, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /obj/machinery/door/airlock/atmos{ name = "Atmospherics Access"; req_one_access_txt = "24;10" @@ -42459,9 +42188,7 @@ name = "External Airlock"; req_access_txt = "13" }, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /obj/effect/turf_decal/stripes/line{ dir = 1 }, @@ -43040,9 +42767,9 @@ icon_state = "0-8" }, /obj/machinery/power/apc{ + areastring = "/area/security/nuke_storage"; dir = 4; name = "Vault APC"; - areastring = "/area/security/nuke_storage"; pixel_x = 26 }, /obj/effect/turf_decal/tile/neutral{ @@ -43561,9 +43288,7 @@ /obj/structure/cable/white{ icon_state = "1-2" }, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /obj/machinery/door/airlock/atmos{ name = "Atmospherics Access"; req_one_access_txt = "24;10" @@ -43740,9 +43465,7 @@ req_access_txt = "19;23" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /obj/effect/turf_decal/stripes/line{ dir = 1 }, @@ -44055,8 +43778,8 @@ height = 5; id = "laborcamp_home"; name = "fore bay 1"; - width = 9; - roundstart_template = /datum/map_template/shuttle/labour/delta + roundstart_template = /datum/map_template/shuttle/labour/delta; + width = 9 }, /turf/open/space/basic, /area/space) @@ -44310,11 +44033,8 @@ icon_state = "1-8" }, /obj/item/radio/intercom{ - anyai = 1; - broadcasting = 0; freerange = 1; frequency = 1424; - listening = 1; name = "Interrogation Intercom"; pixel_y = -58 }, @@ -44575,9 +44295,9 @@ /area/engine/gravity_generator) "bAL" = ( /obj/machinery/power/apc/highcap/five_k{ + areastring = "/area/engine/gravity_generator"; dir = 1; name = "Gravity Generator APC"; - areastring = "/area/engine/gravity_generator"; pixel_y = 24 }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -44641,9 +44361,7 @@ req_access_txt = "13" }, /obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /obj/effect/turf_decal/stripes/line{ dir = 1 }, @@ -44715,9 +44433,7 @@ name = "Atmospherics Lockdown Blast door" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /obj/effect/turf_decal/stripes/line{ dir = 1 }, @@ -44731,9 +44447,7 @@ id = "atmoslock"; name = "Atmospherics Lockdown Blast door" }, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /obj/effect/turf_decal/stripes/line{ dir = 1 }, @@ -44751,9 +44465,7 @@ req_access_txt = "24" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /obj/effect/turf_decal/stripes/line{ dir = 1 }, @@ -45003,9 +44715,7 @@ name = "Maintenance Hatch"; req_access_txt = "12" }, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /obj/effect/turf_decal/stripes/line{ dir = 1 }, @@ -45023,7 +44733,6 @@ /obj/structure/disposalpipe/segment, /obj/machinery/navbeacon{ codes_txt = "delivery;dir=2"; - dir = 2; freq = 1400; location = "Tool Storage" }, @@ -45556,7 +45265,6 @@ /obj/structure/table/reinforced, /obj/item/flashlight/lamp, /obj/item/radio/intercom{ - anyai = 1; broadcasting = 1; freerange = 1; frequency = 1424; @@ -45892,9 +45600,7 @@ /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ dir = 1 }, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /obj/effect/turf_decal/stripes/line{ dir = 1 }, @@ -45929,9 +45635,7 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /obj/effect/turf_decal/stripes/line{ dir = 1 }, @@ -46014,9 +45718,9 @@ dir = 1 }, /obj/machinery/power/apc/highcap/five_k{ + areastring = "/area/engine/break_room"; dir = 1; name = "Engineering Foyer APC"; - areastring = "/area/engine/break_room"; pixel_y = 24 }, /obj/structure/cable/white{ @@ -47111,7 +46815,6 @@ /area/security/brig) "bEf" = ( /obj/item/radio/intercom{ - anyai = 1; freerange = 1; listening = 0; name = "Custom Channel"; @@ -47119,15 +46822,11 @@ pixel_y = 22 }, /obj/item/radio/intercom{ - broadcasting = 0; freerange = 1; - listening = 1; name = "Common Channel"; pixel_x = -27 }, /obj/item/radio/intercom{ - anyai = 1; - broadcasting = 0; freerange = 1; frequency = 1447; name = "Private Channel"; @@ -47259,7 +46958,6 @@ /area/ai_monitored/turret_protected/ai) "bEm" = ( /obj/item/radio/intercom{ - anyai = 1; freerange = 1; listening = 0; name = "Custom Channel"; @@ -47267,15 +46965,11 @@ pixel_y = 22 }, /obj/item/radio/intercom{ - broadcasting = 0; freerange = 1; - listening = 1; name = "Common Channel"; pixel_x = 27 }, /obj/item/radio/intercom{ - anyai = 1; - broadcasting = 0; freerange = 1; frequency = 1447; name = "Private Channel"; @@ -47469,9 +47163,7 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /obj/effect/turf_decal/stripes/line{ dir = 1 }, @@ -47484,9 +47176,7 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /obj/effect/turf_decal/stripes/line{ dir = 1 }, @@ -47502,9 +47192,7 @@ /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ dir = 1 }, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /obj/effect/turf_decal/stripes/line{ dir = 1 }, @@ -47787,9 +47475,9 @@ }, /obj/item/stack/cable_coil/white, /obj/machinery/power/apc{ + areastring = "/area/storage/primary"; dir = 8; name = "Primary Tool Storage APC"; - areastring = "/area/storage/primary"; pixel_x = -26; pixel_y = 3 }, @@ -48478,23 +48166,18 @@ /area/ai_monitored/turret_protected/ai) "bFT" = ( /obj/item/radio/intercom{ - broadcasting = 0; freerange = 1; - listening = 1; name = "Common Channel"; pixel_x = -27; pixel_y = -7 }, /obj/item/radio/intercom{ - anyai = 1; freerange = 1; listening = 0; name = "Custom Channel"; pixel_y = -27 }, /obj/item/radio/intercom{ - anyai = 1; - broadcasting = 0; freerange = 1; frequency = 1447; name = "Private Channel"; @@ -49218,9 +48901,8 @@ "bGY" = ( /obj/structure/cable/white, /obj/machinery/power/apc{ - dir = 2; - name = "Bridge APC"; areastring = "/area/bridge"; + name = "Bridge APC"; pixel_y = -26 }, /obj/effect/turf_decal/tile/blue, @@ -49829,9 +49511,7 @@ name = "Transit Tube Lockdown Door" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /obj/effect/turf_decal/stripes/line{ dir = 1 }, @@ -49844,9 +49524,7 @@ name = "Transit Tube Lockdown Door" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /obj/effect/turf_decal/stripes/line{ dir = 1 }, @@ -50100,9 +49778,9 @@ /obj/item/folder/yellow, /obj/item/electronics/airlock, /obj/machinery/power/apc{ + areastring = "/area/storage/tech"; dir = 8; name = "Technology Storage APC"; - areastring = "/area/storage/tech"; pixel_x = -26; pixel_y = 3 }, @@ -50665,9 +50343,9 @@ icon_state = "0-2" }, /obj/machinery/power/apc{ + areastring = "/area/security/detectives_office"; dir = 1; name = "Detective's Office APC"; - areastring = "/area/security/detectives_office"; pixel_y = 24 }, /obj/item/taperecorder, @@ -51056,9 +50734,9 @@ dir = 6 }, /obj/machinery/power/apc{ + areastring = "/area/ai_monitored/turret_protected/ai"; dir = 1; name = "AI Chamber APC"; - areastring = "/area/ai_monitored/turret_protected/ai"; pixel_y = 24 }, /obj/effect/turf_decal/tile/neutral{ @@ -51640,9 +51318,9 @@ icon_state = "0-2" }, /obj/machinery/power/apc/highcap/ten_k{ + areastring = "/area/bridge/meeting_room/council"; dir = 1; name = "Council Chambers APC"; - areastring = "/area/bridge/meeting_room/council"; pixel_y = 26 }, /turf/open/floor/wood, @@ -51827,9 +51505,7 @@ /obj/structure/cable/white{ icon_state = "1-2" }, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /obj/effect/turf_decal/stripes/line{ dir = 1 }, @@ -52325,9 +52001,9 @@ /area/engine/transit_tube) "bLI" = ( /obj/machinery/power/apc/highcap/five_k{ + areastring = "/area/engine/transit_tube"; dir = 1; name = "Transit Tube Access APC"; - areastring = "/area/engine/transit_tube"; pixel_y = 24 }, /obj/machinery/atmospherics/components/unary/vent_pump/on, @@ -52932,9 +52608,9 @@ /area/tcommsat/computer) "bMz" = ( /obj/machinery/power/apc/highcap/ten_k{ + areastring = "/area/tcommsat/computer"; dir = 1; name = "Telecomms Monitoring APC"; - areastring = "/area/tcommsat/computer"; pixel_y = 28 }, /obj/item/twohanded/required/kirbyplants/random, @@ -52952,7 +52628,6 @@ }, /obj/machinery/camera{ c_tag = "Telecomms - Monitoring"; - dir = 2; name = "telecomms camera"; network = list("ss13","tcomms") }, @@ -53126,9 +52801,9 @@ /obj/machinery/disposal/bin, /obj/structure/disposalpipe/trunk, /obj/machinery/power/apc/highcap/five_k{ + areastring = "/area/storage/tools"; dir = 1; name = "Auxiliary Tool Storage APC"; - areastring = "/area/storage/tools"; pixel_y = 24 }, /obj/effect/turf_decal/tile/yellow{ @@ -55229,9 +54904,7 @@ req_access_txt = "10" }, /obj/structure/disposalpipe/segment, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /obj/effect/turf_decal/stripes/line{ dir = 1 }, @@ -55669,9 +55342,8 @@ /area/crew_quarters/heads/captain) "bQV" = ( /obj/machinery/power/apc/highcap/ten_k{ - dir = 2; - name = "Captain's Office APC"; areastring = "/area/crew_quarters/heads/captain"; + name = "Captain's Office APC"; pixel_y = -24 }, /obj/structure/cable/white, @@ -56176,7 +55848,6 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/machinery/camera{ c_tag = "AI Satellite - Antechamber"; - dir = 2; name = "ai camera"; network = list("minisat"); start_active = 1 @@ -56463,7 +56134,6 @@ }, /obj/machinery/camera{ c_tag = "Engineering - Chief Engineer's Quarters"; - dir = 2; name = "engineering camera" }, /obj/effect/turf_decal/stripes/line{ @@ -56577,9 +56247,7 @@ req_access_txt = "23" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /obj/effect/turf_decal/stripes/line{ dir = 1 }, @@ -56591,9 +56259,7 @@ name = "Primary Tool Storage" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /obj/effect/turf_decal/stripes/line{ dir = 1 }, @@ -56604,18 +56270,14 @@ /obj/machinery/door/airlock/engineering/glass{ name = "Primary Tool Storage" }, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /obj/effect/turf_decal/stripes/line{ dir = 1 }, /turf/open/floor/plasteel, /area/storage/primary) "bSv" = ( -/obj/structure/sign/directions/science{ - dir = 2 - }, +/obj/structure/sign/directions/science, /obj/structure/sign/directions/engineering{ dir = 8; pixel_y = 8 @@ -56629,9 +56291,7 @@ "bSw" = ( /obj/machinery/door/firedoor, /obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /obj/effect/turf_decal/stripes/line{ dir = 1 }, @@ -56844,7 +56504,6 @@ /area/crew_quarters/heads/captain) "bSS" = ( /obj/structure/sign/directions/science{ - dir = 2; pixel_y = -8 }, /obj/structure/sign/directions/command{ @@ -57037,9 +56696,9 @@ icon_state = "0-8" }, /obj/machinery/power/apc{ + areastring = "/area/security/warden"; dir = 4; name = "Warden's Office APC"; - areastring = "/area/security/warden"; pixel_x = 26 }, /obj/machinery/camera{ @@ -57327,8 +56986,6 @@ /obj/item/twohanded/required/kirbyplants/random, /obj/machinery/turretid{ control_area = "/area/ai_monitored/turret_protected/aisat_interior"; - enabled = 1; - icon_state = "control_standby"; name = "Antechamber Turret Control"; pixel_x = -32; req_access = null; @@ -57370,6 +57027,7 @@ /obj/effect/turf_decal/tile/neutral{ dir = 8 }, +/obj/effect/landmark/start/cyborg, /turf/open/floor/plasteel/dark, /area/ai_monitored/turret_protected/aisat_interior) "bTD" = ( @@ -57386,6 +57044,7 @@ /obj/effect/turf_decal/tile/neutral{ dir = 8 }, +/obj/effect/landmark/start/cyborg, /turf/open/floor/plasteel/dark, /area/ai_monitored/turret_protected/aisat_interior) "bTF" = ( @@ -57501,7 +57160,6 @@ }, /obj/machinery/camera{ c_tag = "AI Satellite - Transit Tube"; - dir = 2; name = "ai camera"; network = list("minisat"); start_active = 1 @@ -57838,9 +57496,9 @@ /area/security/checkpoint/engineering) "bUf" = ( /obj/machinery/power/apc{ + areastring = "/area/security/checkpoint/engineering"; dir = 1; name = "Security Post - Engineering APC"; - areastring = "/area/security/checkpoint/engineering"; pixel_y = 24 }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -58073,7 +57731,6 @@ }, /obj/machinery/camera{ c_tag = "Engineering Hallway - Starboard"; - dir = 2; name = "hallway camera" }, /obj/effect/turf_decal/tile/neutral{ @@ -58404,7 +58061,6 @@ }, /obj/machinery/camera{ c_tag = "Security Hallway - Port"; - dir = 2; name = "hallway camera" }, /obj/effect/turf_decal/tile/neutral{ @@ -59010,6 +58666,7 @@ /obj/effect/turf_decal/tile/neutral{ dir = 8 }, +/obj/effect/landmark/start/cyborg, /turf/open/floor/plasteel/dark, /area/ai_monitored/turret_protected/aisat_interior) "bVL" = ( @@ -59029,6 +58686,7 @@ /obj/effect/turf_decal/tile/neutral{ dir = 8 }, +/obj/effect/landmark/start/cyborg, /turf/open/floor/plasteel/dark, /area/ai_monitored/turret_protected/aisat_interior) "bVM" = ( @@ -60885,9 +60543,8 @@ /obj/structure/window/reinforced, /obj/structure/cable/white, /obj/machinery/power/apc{ - dir = 2; - name = "AI Satellite Exterior APC"; areastring = "/area/aisat"; + name = "AI Satellite Exterior APC"; pixel_y = -26 }, /obj/effect/turf_decal/tile/neutral{ @@ -61059,9 +60716,8 @@ "bYu" = ( /obj/structure/cable/white, /obj/machinery/power/apc{ - dir = 2; - name = "Chief Engineer's APC"; areastring = "/area/crew_quarters/heads/chief"; + name = "Chief Engineer's APC"; pixel_y = -26 }, /obj/effect/turf_decal/tile/neutral{ @@ -61725,9 +61381,8 @@ dir = 4 }, /obj/machinery/power/apc{ - dir = 2; - name = "Starboard Primary Hallway APC"; areastring = "/area/hallway/primary/starboard"; + name = "Starboard Primary Hallway APC"; pixel_y = -26 }, /obj/structure/cable/white{ @@ -62056,9 +61711,8 @@ pixel_x = -26 }, /obj/machinery/power/apc{ - dir = 2; - name = "MiniSat APC"; areastring = "/area/ai_monitored/turret_protected/aisat_interior"; + name = "MiniSat APC"; pixel_y = -27 }, /obj/structure/cable/white, @@ -62377,9 +62031,7 @@ req_access_txt = "10" }, /obj/structure/disposalpipe/segment, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /obj/effect/turf_decal/stripes/line{ dir = 1 }, @@ -62403,9 +62055,7 @@ req_access_txt = "63" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /obj/effect/turf_decal/stripes/line{ dir = 1 }, @@ -62455,9 +62105,7 @@ req_access_txt = "12" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /obj/effect/turf_decal/stripes/line{ dir = 1 }, @@ -62508,11 +62156,8 @@ /obj/structure/sign/directions/evac{ pixel_y = -8 }, -/obj/structure/sign/directions/medical{ - dir = 2 - }, +/obj/structure/sign/directions/medical, /obj/structure/sign/directions/security{ - dir = 2; pixel_y = 8 }, /turf/closed/wall, @@ -62736,9 +62381,7 @@ /obj/structure/sign/directions/evac{ pixel_y = -8 }, -/obj/structure/sign/directions/medical{ - dir = 2 - }, +/obj/structure/sign/directions/medical, /obj/structure/sign/directions/security{ dir = 4; pixel_y = 8 @@ -63042,9 +62685,8 @@ "cbK" = ( /obj/structure/cable/white, /obj/machinery/power/apc{ - dir = 2; - name = "Armoury APC"; areastring = "/area/ai_monitored/security/armory"; + name = "Armoury APC"; pixel_y = -26 }, /obj/machinery/camera{ @@ -63236,7 +62878,6 @@ }, /obj/machinery/camera{ c_tag = "Engineering - Fore"; - dir = 2; name = "engineering camera" }, /obj/effect/turf_decal/stripes/line{ @@ -63359,9 +63000,7 @@ /obj/structure/cable/white{ icon_state = "1-2" }, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /obj/effect/turf_decal/stripes/line{ dir = 1 }, @@ -63601,7 +63240,6 @@ icon_state = "4-8" }, /obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 2; external_pressure_bound = 140; name = "server vent"; pressure_checks = 0 @@ -63651,7 +63289,6 @@ icon_state = "4-8" }, /obj/machinery/atmospherics/components/unary/vent_pump/siphon/on{ - dir = 2; external_pressure_bound = 120; name = "server vent" }, @@ -63818,8 +63455,7 @@ dir = 4 }, /obj/machinery/camera{ - c_tag = "Courtroom - Fore"; - dir = 2 + c_tag = "Courtroom - Fore" }, /obj/structure/sign/poster/official/report_crimes{ pixel_y = 32 @@ -63978,7 +63614,6 @@ /obj/item/folder/red, /obj/item/pen, /obj/machinery/door/window/brigdoor/southright{ - dir = 2; name = "Security Desk"; req_access_txt = "63" }, @@ -64080,9 +63715,7 @@ id = "armouryaccess"; name = "Armoury Access" }, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /obj/effect/turf_decal/stripes/line{ dir = 1 }, @@ -64762,9 +64395,9 @@ /area/crew_quarters/heads/hop) "cer" = ( /obj/machinery/power/apc{ + areastring = "/area/crew_quarters/heads/hop"; dir = 4; name = "HoP Office APC"; - areastring = "/area/crew_quarters/heads/hop"; pixel_x = 26 }, /obj/structure/cable/white{ @@ -64784,9 +64417,9 @@ /area/crew_quarters/heads/hop) "cet" = ( /obj/machinery/power/apc{ + areastring = "/area/tcommsat/server"; dir = 8; name = "Telecomms Server Room APC"; - areastring = "/area/tcommsat/server"; pixel_x = -26 }, /obj/structure/cable/white, @@ -65073,7 +64706,6 @@ /area/security/courtroom) "ceP" = ( /obj/structure/chair{ - dir = 2; name = "Prosecution" }, /obj/effect/turf_decal/tile/red{ @@ -65089,7 +64721,6 @@ /area/security/courtroom) "ceQ" = ( /obj/structure/chair{ - dir = 2; name = "Prosecution" }, /obj/effect/turf_decal/tile/red{ @@ -65438,17 +65069,16 @@ icon_state = "0-8" }, /obj/machinery/power/apc/highcap/ten_k{ + areastring = "/area/security/brig"; dir = 1; name = "Brig APC"; - areastring = "/area/security/brig"; pixel_y = 28 }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, /obj/machinery/camera{ - c_tag = "Security - Gear Room"; - dir = 2 + c_tag = "Security - Gear Room" }, /obj/effect/turf_decal/tile/red{ dir = 1 @@ -65534,8 +65164,8 @@ }, /obj/effect/spawner/lootdrop/aimodule_harmless{ fan_out_items = 1; - lootdoubles = 0; - lootcount = 3 + lootcount = 3; + lootdoubles = 0 }, /obj/structure/sign/nanotrasen{ pixel_x = -32 @@ -65614,8 +65244,8 @@ }, /obj/effect/spawner/lootdrop/aimodule_harmful{ fan_out_items = 1; - lootdoubles = 0; - lootcount = 2 + lootcount = 2; + lootdoubles = 0 }, /obj/item/aiModule/supplied/oxygen{ pixel_x = -3; @@ -66102,9 +65732,8 @@ dir = 8 }, /obj/machinery/power/apc/highcap/ten_k{ - dir = 2; - name = "Captain's Quarters APC"; areastring = "/area/crew_quarters/heads/captain/private"; + name = "Captain's Quarters APC"; pixel_y = -24 }, /obj/structure/cable/white, @@ -67114,7 +66743,6 @@ /obj/structure/bookcase/manuals/research_and_development, /obj/machinery/camera{ c_tag = "Library"; - dir = 2; name = "library camera" }, /turf/open/floor/wood, @@ -67272,9 +66900,7 @@ }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/disposalpipe/segment, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /obj/effect/turf_decal/stripes/line{ dir = 1 }, @@ -67411,9 +67037,9 @@ }, /obj/structure/cable/white, /obj/machinery/power/apc{ + areastring = "/area/lawoffice"; dir = 8; name = "Law Office APC"; - areastring = "/area/lawoffice"; pixel_x = -26; pixel_y = 3 }, @@ -68496,9 +68122,7 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 10 }, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /obj/effect/turf_decal/stripes/line{ dir = 1 }, @@ -68788,9 +68412,9 @@ icon_state = "0-8" }, /obj/machinery/power/apc{ + areastring = "/area/engine/engineering"; dir = 4; name = "Engine Room APC"; - areastring = "/area/engine/engineering"; pixel_x = 26 }, /obj/effect/turf_decal/bot, @@ -68953,9 +68577,7 @@ }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/disposalpipe/segment, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /obj/effect/turf_decal/stripes/line{ dir = 1 }, @@ -69181,9 +68803,7 @@ }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/disposalpipe/segment, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /obj/effect/turf_decal/stripes/line{ dir = 1 }, @@ -69417,8 +69037,8 @@ /obj/structure/table/reinforced, /obj/effect/spawner/lootdrop/aimodule_neutral{ fan_out_items = 1; - lootdoubles = 0; - lootcount = 3 + lootcount = 3; + lootdoubles = 0 }, /obj/effect/turf_decal/tile/neutral{ dir = 1 @@ -69815,9 +69435,9 @@ /obj/structure/table, /obj/item/hand_tele, /obj/machinery/power/apc/highcap/ten_k{ + areastring = "/area/teleporter"; dir = 1; name = "Teleporter APC"; - areastring = "/area/teleporter"; pixel_y = 28 }, /obj/structure/cable/white{ @@ -70353,9 +69973,8 @@ /obj/machinery/light, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/machinery/power/apc{ - dir = 2; - name = "AI Upload Access APC"; areastring = "/area/ai_monitored/turret_protected/ai_upload"; + name = "AI Upload Access APC"; pixel_y = -27 }, /obj/effect/turf_decal/tile/neutral{ @@ -70505,9 +70124,7 @@ /obj/structure/cable{ icon_state = "1-2" }, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /obj/effect/turf_decal/stripes/line{ dir = 1 }, @@ -71157,9 +70774,9 @@ "coN" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/power/apc{ + areastring = "/area/security/range"; dir = 8; name = "Shooting Range APC"; - areastring = "/area/security/range"; pixel_x = -26 }, /obj/structure/cable/white{ @@ -71375,9 +70992,7 @@ /obj/item/stack/sheet/mineral/plasma{ amount = 20 }, -/obj/item/gps/engineering{ - gpstag = "ENG0" - }, +/obj/item/gps/engineering, /obj/effect/turf_decal/bot, /turf/open/floor/plasteel, /area/engine/engineering) @@ -71444,9 +71059,9 @@ /area/maintenance/port) "cpr" = ( /obj/machinery/power/apc{ + areastring = "/area/library"; dir = 8; name = "Library APC"; - areastring = "/area/library"; pixel_x = -26; pixel_y = 3 }, @@ -71780,9 +71395,9 @@ /area/security/courtroom) "cqb" = ( /obj/machinery/power/apc{ + areastring = "/area/security/courtroom"; dir = 4; name = "Courtroom APC"; - areastring = "/area/security/courtroom"; pixel_x = 26 }, /obj/structure/cable/white{ @@ -71803,9 +71418,7 @@ icon_state = "1-2" }, /obj/structure/disposalpipe/segment, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /obj/effect/turf_decal/stripes/line{ dir = 1 }, @@ -71829,9 +71442,7 @@ }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/disposalpipe/segment, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /obj/effect/turf_decal/stripes/line{ dir = 1 }, @@ -71859,9 +71470,7 @@ /obj/structure/cable/white{ icon_state = "1-2" }, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /obj/effect/turf_decal/stripes/line{ dir = 1 }, @@ -72214,9 +71823,7 @@ req_access_txt = "61" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /obj/effect/turf_decal/stripes/line{ dir = 1 }, @@ -72228,9 +71835,7 @@ name = "Teleport Access"; req_access_txt = "17" }, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/effect/turf_decal/stripes/line{ dir = 1 @@ -72248,9 +71853,7 @@ id = "teleportershutters"; name = "Teleporter Shutters" }, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /obj/effect/turf_decal/stripes/line{ dir = 1 }, @@ -72262,9 +71865,7 @@ name = "Teleporter Shutters" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /obj/effect/turf_decal/stripes/line{ dir = 1 }, @@ -72792,9 +72393,7 @@ /turf/open/floor/plasteel, /area/engine/engineering) "crX" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /obj/effect/turf_decal/stripes/line{ dir = 1 }, @@ -72802,9 +72401,7 @@ /area/engine/engineering) "crY" = ( /obj/effect/decal/cleanable/oil, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /obj/effect/turf_decal/stripes/line{ dir = 1 }, @@ -73055,9 +72652,9 @@ dir = 4 }, /obj/machinery/power/apc{ + areastring = "/area/hallway/secondary/command"; dir = 1; name = "Command Hall APC"; - areastring = "/area/hallway/secondary/command"; pixel_y = 24 }, /obj/structure/cable/white{ @@ -73099,7 +72696,6 @@ }, /obj/machinery/camera{ c_tag = "Central Hallway - Center"; - dir = 2; name = "hallway camera" }, /obj/effect/turf_decal/tile/neutral{ @@ -73396,7 +72992,6 @@ }, /obj/machinery/camera{ c_tag = "Locker Room - Fore"; - dir = 2; name = "dormitories camera" }, /obj/effect/turf_decal/tile/neutral{ @@ -74443,9 +74038,8 @@ /obj/effect/decal/cleanable/dirt, /obj/machinery/light/small, /obj/machinery/power/apc{ - dir = 2; - name = "Starboard Maintenance APC"; areastring = "/area/maintenance/starboard"; + name = "Starboard Maintenance APC"; pixel_y = -26 }, /obj/structure/cable/white, @@ -74777,9 +74371,7 @@ req_access_txt = "18" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /obj/effect/turf_decal/stripes/line{ dir = 1 }, @@ -74792,9 +74384,7 @@ req_access_txt = "18" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /obj/effect/turf_decal/stripes/line{ dir = 1 }, @@ -74907,9 +74497,7 @@ }, /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /obj/effect/turf_decal/stripes/line{ dir = 1 }, @@ -75040,7 +74628,6 @@ }, /obj/machinery/camera{ c_tag = "Dormitory Hallway"; - dir = 2; name = "hallway camera" }, /obj/effect/turf_decal/tile/neutral{ @@ -75304,7 +74891,6 @@ /obj/item/pen, /obj/machinery/camera{ c_tag = "Recreation - Fore"; - dir = 2; name = "recreation camera" }, /obj/effect/turf_decal/tile/neutral{ @@ -75564,9 +75150,9 @@ /area/ai_monitored/storage/eva) "cwF" = ( /obj/machinery/power/apc{ + areastring = "/area/ai_monitored/storage/eva"; dir = 1; name = "E.V.A. Storage APC"; - areastring = "/area/ai_monitored/storage/eva"; pixel_y = 26 }, /obj/structure/cable/white{ @@ -75603,7 +75189,6 @@ /obj/structure/table/reinforced, /obj/machinery/camera{ c_tag = "Bridge - E.V.A. Fore"; - dir = 2; name = "command camera" }, /obj/effect/turf_decal/tile/neutral{ @@ -75721,9 +75306,9 @@ icon_state = "0-2" }, /obj/machinery/power/apc/highcap/ten_k{ + areastring = "/area/gateway"; dir = 1; name = "Gateway APC"; - areastring = "/area/gateway"; pixel_y = 28 }, /obj/effect/decal/cleanable/dirt, @@ -77798,9 +77383,7 @@ /obj/machinery/door/airlock{ name = "Primary Restroom" }, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /obj/effect/turf_decal/stripes/line{ dir = 1 }, @@ -77929,9 +77512,9 @@ icon_state = "0-8" }, /obj/machinery/power/apc{ + areastring = "/area/crew_quarters/locker"; dir = 4; name = "Lockerroom APC"; - areastring = "/area/crew_quarters/locker"; pixel_x = 26 }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -77949,9 +77532,7 @@ }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/disposalpipe/segment, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /obj/effect/turf_decal/stripes/line{ dir = 1 }, @@ -78458,7 +78039,6 @@ }, /obj/machinery/camera{ c_tag = "Bridge - Corporate Lounge"; - dir = 2; name = "command camera" }, /obj/effect/turf_decal/tile/neutral{ @@ -78697,8 +78277,7 @@ /area/crew_quarters/toilet/restrooms) "cBJ" = ( /obj/machinery/shower{ - dir = 8; - icon_state = "shower" + dir = 8 }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -78748,9 +78327,9 @@ icon_state = "0-2" }, /obj/machinery/power/apc{ + areastring = "/area/crew_quarters/toilet/restrooms"; dir = 1; name = "Primary Restroom APC"; - areastring = "/area/crew_quarters/toilet/restrooms"; pixel_y = 24 }, /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ @@ -78758,7 +78337,6 @@ }, /obj/machinery/camera{ c_tag = "Primary Restroom"; - dir = 2; name = "restroom camera" }, /obj/effect/turf_decal/tile/neutral{ @@ -79522,9 +79100,9 @@ icon_state = "2-4" }, /obj/machinery/power/apc{ + areastring = "/area/bridge/showroom/corporate"; dir = 8; name = "Corporate Lounge APC"; - areastring = "/area/bridge/showroom/corporate"; pixel_x = -26 }, /obj/structure/cable/white{ @@ -80294,9 +79872,9 @@ }, /obj/item/tank/jetpack/carbondioxide/eva, /obj/machinery/power/apc{ + areastring = "/area/engine/storage"; dir = 4; name = "Engineering Storage APC"; - areastring = "/area/engine/storage"; pixel_x = 26 }, /obj/structure/cable/white{ @@ -80858,8 +80436,7 @@ /area/crew_quarters/toilet/restrooms) "cFd" = ( /obj/machinery/shower{ - dir = 8; - icon_state = "shower" + dir = 8 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 @@ -81158,7 +80735,6 @@ "cFG" = ( /obj/machinery/camera{ c_tag = "Holodeck - Fore"; - dir = 2; name = "holodeck camera" }, /turf/open/floor/engine{ @@ -81898,7 +81474,6 @@ }, /obj/item/reagent_containers/food/drinks/beer{ desc = "Whatever it is, it reeks of foul, putrid froth."; - icon_state = "beer"; list_reagents = list("bacchus_blessing" = 15); name = "Delta-Down"; pixel_x = 5; @@ -82300,9 +81875,7 @@ name = "E.V.A. Storage Shutters" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /obj/effect/turf_decal/stripes/line{ dir = 1 }, @@ -82313,9 +81886,7 @@ id = "evashutters"; name = "E.V.A. Storage Shutters" }, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /obj/effect/turf_decal/stripes/line{ dir = 1 }, @@ -82333,9 +81904,7 @@ name = "E.V.A. Storage Shutters" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /obj/effect/turf_decal/stripes/line{ dir = 1 }, @@ -82375,9 +81944,7 @@ name = "Gateway Atrium"; req_access_txt = "62" }, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/effect/turf_decal/stripes/line{ dir = 1 @@ -82396,9 +81963,7 @@ req_access_txt = "19" }, /obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /obj/effect/turf_decal/stripes/line{ dir = 1 }, @@ -82410,9 +81975,7 @@ name = "Gateway Chamber Shutters" }, /obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /obj/effect/turf_decal/stripes/line{ dir = 1 }, @@ -82423,9 +81986,7 @@ id = "gatewayshutters"; name = "Gateway Chamber Shutters" }, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /obj/effect/turf_decal/stripes/line{ dir = 1 }, @@ -82522,9 +82083,7 @@ name = "Lockerroom" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /obj/effect/turf_decal/stripes/line{ dir = 1 }, @@ -82537,9 +82096,7 @@ }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/disposalpipe/segment, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /obj/effect/turf_decal/stripes/line{ dir = 1 }, @@ -82664,9 +82221,7 @@ }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/disposalpipe/segment, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /obj/effect/turf_decal/stripes/line{ dir = 1 }, @@ -82735,7 +82290,6 @@ }, /obj/machinery/camera{ c_tag = "Central Hallway - Science Aft"; - dir = 2; name = "hallway camera" }, /obj/effect/turf_decal/stripes/corner{ @@ -82890,7 +82444,6 @@ }, /obj/machinery/camera{ c_tag = "Central Hallway - Medbay Aft"; - dir = 2; name = "hallway camera" }, /obj/effect/turf_decal/tile/neutral{ @@ -82965,9 +82518,7 @@ icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /obj/effect/turf_decal/stripes/line{ dir = 1 }, @@ -83169,7 +82720,6 @@ }, /obj/machinery/camera{ c_tag = "Dormitories - Starboard"; - dir = 2; name = "dormitories camera" }, /obj/effect/turf_decal/tile/neutral{ @@ -83399,7 +82949,6 @@ }, /obj/machinery/camera{ c_tag = "Holodeck Control"; - dir = 2; name = "holodeck camera" }, /obj/effect/turf_decal/tile/neutral{ @@ -85264,9 +84813,8 @@ "cMy" = ( /obj/structure/cable/white, /obj/machinery/power/apc{ - dir = 2; - name = "Dormitories APC"; areastring = "/area/crew_quarters/dorms"; + name = "Dormitories APC"; pixel_y = -26 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ @@ -85487,9 +85035,7 @@ req_access_txt = "24" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /obj/effect/turf_decal/stripes/line{ dir = 1 }, @@ -85512,9 +85058,7 @@ icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /obj/effect/turf_decal/stripes/line{ dir = 1 }, @@ -85675,7 +85219,6 @@ }, /obj/machinery/camera{ c_tag = "Xenobiology - Killroom Chamber"; - dir = 2; name = "xenobiology camera"; network = list("ss13","xeno","rd") }, @@ -85748,9 +85291,7 @@ "cNr" = ( /obj/machinery/door/firedoor, /obj/structure/disposalpipe/segment, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /obj/effect/turf_decal/stripes/line{ dir = 1 }, @@ -85762,9 +85303,7 @@ /area/science/research) "cNt" = ( /obj/machinery/door/firedoor, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /obj/effect/turf_decal/stripes/line{ dir = 1 }, @@ -85790,9 +85329,7 @@ name = "Aft Primary Hallway" }, /obj/structure/disposalpipe/segment, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /obj/effect/turf_decal/stripes/line{ dir = 1 }, @@ -85803,9 +85340,7 @@ /obj/machinery/door/airlock/public/glass{ name = "Aft Primary Hallway" }, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /obj/effect/turf_decal/stripes/line{ dir = 1 }, @@ -85818,9 +85353,7 @@ name = "Aft Primary Hallway" }, /obj/structure/disposalpipe/segment, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /obj/effect/turf_decal/stripes/line{ dir = 1 }, @@ -85845,9 +85378,7 @@ /area/medical/medbay/central) "cNA" = ( /obj/machinery/door/firedoor, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /obj/effect/turf_decal/stripes/line{ dir = 1 }, @@ -85860,9 +85391,7 @@ "cNC" = ( /obj/machinery/door/firedoor, /obj/structure/disposalpipe/segment, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /obj/effect/turf_decal/stripes/line{ dir = 1 }, @@ -86474,7 +86003,6 @@ /area/science/xenobiology) "cOO" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 2; external_pressure_bound = 140; name = "killroom vent"; pressure_checks = 0 @@ -86486,7 +86014,6 @@ /area/science/xenobiology) "cOQ" = ( /obj/machinery/atmospherics/components/unary/vent_pump/siphon/on{ - dir = 2; external_pressure_bound = 120; name = "server vent" }, @@ -86508,9 +86035,7 @@ req_access_txt = "47" }, /obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /obj/effect/turf_decal/stripes/line{ dir = 1 }, @@ -86811,16 +86336,16 @@ icon_state = "0-4" }, /obj/machinery/power/apc{ + areastring = "/area/medical/storage"; dir = 8; name = "Medbay Storage APC"; - areastring = "/area/medical/storage"; pixel_x = -26 }, /obj/machinery/camera{ c_tag = "Medbay - Storage"; - network = list("ss13","medbay"); dir = 4; - name = "medbay camera" + name = "medbay camera"; + network = list("ss13","medbay") }, /obj/item/twohanded/required/kirbyplants/random, /obj/effect/turf_decal/tile/neutral, @@ -87282,9 +86807,9 @@ icon_state = "0-8" }, /obj/machinery/power/apc{ + areastring = "/area/maintenance/department/electrical"; dir = 4; name = "Auxiliary Power APC"; - areastring = "/area/maintenance/department/electrical"; pixel_x = 26 }, /turf/open/floor/plating, @@ -87313,9 +86838,7 @@ req_access_txt = "47" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /obj/effect/turf_decal/stripes/line{ dir = 1 }, @@ -88182,7 +87705,6 @@ }, /obj/machinery/camera{ c_tag = "Xenobiology - Port"; - dir = 2; name = "xenobiology camera"; network = list("ss13","xeno","rd") }, @@ -88387,9 +87909,7 @@ name = "Xenobiology Kill Room"; req_access_txt = "47" }, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /obj/effect/turf_decal/stripes/line{ dir = 1 }, @@ -88957,9 +88477,7 @@ /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/disposalpipe/segment, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /obj/effect/turf_decal/stripes/line{ dir = 1 }, @@ -89310,7 +88828,6 @@ icon_state = "1-2" }, /obj/machinery/door/window/brigdoor{ - dir = 2; name = "Creature Pen"; req_access_txt = "47" }, @@ -91128,9 +90645,7 @@ }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/disposalpipe/segment, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /obj/effect/turf_decal/stripes/line{ dir = 1 }, @@ -91162,9 +90677,9 @@ }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/machinery/power/apc{ + areastring = "/area/crew_quarters/fitness/recreation"; dir = 8; name = "Recreation Area APC"; - areastring = "/area/crew_quarters/fitness/recreation"; pixel_x = -26 }, /obj/effect/turf_decal/tile/neutral{ @@ -91466,9 +90981,7 @@ /obj/structure/cable/white{ icon_state = "4-8" }, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /obj/effect/turf_decal/stripes/line{ dir = 1 }, @@ -91484,9 +90997,7 @@ /obj/structure/cable/white{ icon_state = "4-8" }, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /obj/effect/turf_decal/stripes/line{ dir = 1 }, @@ -91496,9 +91007,7 @@ /obj/structure/cable/white{ icon_state = "4-8" }, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /obj/effect/turf_decal/stripes/line{ dir = 1 }, @@ -91617,9 +91126,9 @@ pixel_y = -32 }, /obj/machinery/power/apc{ + areastring = "/area/security/checkpoint/science/research"; dir = 8; name = "Security Post - Science APC"; - areastring = "/area/security/checkpoint/science/research"; pixel_x = -26; pixel_y = 3 }, @@ -91865,9 +91374,9 @@ /obj/machinery/light, /obj/machinery/camera{ c_tag = "Medbay - Waiting Room"; - network = list("ss13","medbay"); dir = 1; - name = "medbay camera" + name = "medbay camera"; + network = list("ss13","medbay") }, /obj/effect/turf_decal/tile/blue, /turf/open/floor/plasteel/white, @@ -91991,9 +91500,7 @@ /obj/structure/cable/white{ icon_state = "1-2" }, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /obj/structure/sign/poster/official/cleanliness{ pixel_x = -32 }, @@ -92008,9 +91515,7 @@ name = "Medbay Storage"; req_access_txt = "5" }, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /obj/effect/turf_decal/stripes/line{ dir = 1 }, @@ -92040,9 +91545,8 @@ "cYc" = ( /obj/machinery/camera{ c_tag = "Medbay - Break Room"; - network = list("ss13","medbay"); - dir = 2; - name = "medbay camera" + name = "medbay camera"; + network = list("ss13","medbay") }, /obj/machinery/airalarm{ pixel_y = 23 @@ -92693,9 +92197,7 @@ }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/structure/disposalpipe/segment, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /obj/effect/turf_decal/stripes/line{ dir = 1 }, @@ -92714,9 +92216,7 @@ }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/disposalpipe/segment, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /obj/effect/turf_decal/stripes/line{ dir = 1 }, @@ -92871,9 +92371,9 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/machinery/camera{ c_tag = "Medbay - Fore Port"; - network = list("ss13","medbay"); dir = 8; - name = "medbay camera" + name = "medbay camera"; + network = list("ss13","medbay") }, /obj/effect/turf_decal/tile/blue{ dir = 4 @@ -92891,9 +92391,9 @@ pixel_y = -32 }, /obj/machinery/power/apc{ + areastring = "/area/security/checkpoint/medical"; dir = 8; name = "Security Post - Medical APC"; - areastring = "/area/security/checkpoint/medical"; pixel_x = -26 }, /obj/machinery/atmospherics/components/unary/vent_pump/on{ @@ -92979,9 +92479,8 @@ /obj/item/stack/medical/ointment, /obj/machinery/camera{ c_tag = "Medbay - Sleepers"; - network = list("ss13","medbay"); - dir = 2; - name = "medbay camera" + name = "medbay camera"; + network = list("ss13","medbay") }, /obj/effect/turf_decal/tile/blue{ dir = 1 @@ -93430,9 +92929,7 @@ name = "Engineering Auxiliary Power"; req_access_txt = "10" }, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /obj/effect/turf_decal/stripes/line{ dir = 1 }, @@ -93596,7 +93093,6 @@ /area/science/xenobiology) "daE" = ( /obj/structure/chair/office/light{ - icon_state = "officechair_white"; dir = 4 }, /obj/effect/turf_decal/stripes/line{ @@ -93891,9 +93387,9 @@ icon_state = "0-2" }, /obj/machinery/power/apc{ + areastring = "/area/medical/chemistry"; dir = 1; name = "Chemistry Lab APC"; - areastring = "/area/medical/chemistry"; pixel_y = 24 }, /obj/effect/turf_decal/tile/yellow{ @@ -94376,9 +93872,9 @@ dir = 4 }, /obj/machinery/power/apc{ + areastring = "/area/maintenance/port"; dir = 1; name = "Port Maintenance APC"; - areastring = "/area/maintenance/port"; pixel_y = 28 }, /obj/structure/cable/white{ @@ -94533,7 +94029,6 @@ icon_state = "1-4" }, /obj/machinery/door/window/brigdoor{ - dir = 2; name = "Creature Pen"; req_access_txt = "47" }, @@ -94584,7 +94079,6 @@ icon_state = "1-4" }, /obj/machinery/door/window/brigdoor{ - dir = 2; name = "Creature Pen"; req_access_txt = "47" }, @@ -94639,7 +94133,6 @@ name = "Creature Cell #3" }, /obj/machinery/door/window/brigdoor{ - dir = 2; name = "Creature Pen"; req_access_txt = "47" }, @@ -94733,9 +94226,9 @@ dir = 4 }, /obj/machinery/power/apc{ + areastring = "/area/science/xenobiology"; dir = 4; name = "Xenobiology Lab APC"; - areastring = "/area/science/xenobiology"; pixel_x = 26 }, /obj/effect/turf_decal/stripes/line, @@ -96244,9 +95737,7 @@ name = "Xenobiology Lab"; req_access_txt = "47" }, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /obj/effect/turf_decal/stripes/line{ dir = 1 }, @@ -96272,9 +95763,7 @@ "dfg" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/machinery/door/firedoor, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /obj/effect/turf_decal/stripes/line{ dir = 1 }, @@ -96283,9 +95772,7 @@ "dfh" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/machinery/door/firedoor, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /obj/effect/turf_decal/stripes/line{ dir = 1 }, @@ -96336,9 +95823,7 @@ }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/structure/disposalpipe/segment, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /obj/effect/turf_decal/stripes/line{ dir = 1 }, @@ -96355,9 +95840,7 @@ }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/disposalpipe/segment, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /obj/effect/turf_decal/stripes/line{ dir = 1 }, @@ -96378,9 +95861,9 @@ icon_state = "0-4" }, /obj/machinery/power/apc{ + areastring = "/area/science/lab"; dir = 8; name = "Research and Development Lab APC"; - areastring = "/area/science/lab"; pixel_x = -26; pixel_y = 3 }, @@ -96515,9 +95998,9 @@ }, /obj/machinery/camera{ c_tag = "Medbay - Chemistry"; - network = list("ss13","medbay"); dir = 8; - name = "medbay camera" + name = "medbay camera"; + network = list("ss13","medbay") }, /obj/effect/turf_decal/tile/yellow, /turf/open/floor/plasteel/white, @@ -96572,9 +96055,7 @@ name = "Medical Cell"; req_access_txt = "63" }, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /obj/effect/turf_decal/stripes/line{ dir = 1 }, @@ -96583,9 +96064,7 @@ "dfF" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/machinery/door/firedoor, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /obj/effect/turf_decal/stripes/line{ dir = 1 }, @@ -96594,9 +96073,7 @@ "dfG" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/machinery/door/firedoor, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /obj/effect/turf_decal/stripes/line{ dir = 1 }, @@ -96611,9 +96088,7 @@ /obj/structure/cable/white{ icon_state = "1-2" }, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /obj/effect/turf_decal/stripes/line{ dir = 1 }, @@ -96631,9 +96106,7 @@ req_access_txt = "5" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /obj/effect/turf_decal/stripes/line{ dir = 1 }, @@ -96819,9 +96292,9 @@ /obj/item/clothing/gloves/color/fyellow, /obj/item/storage/toolbox/electrical, /obj/machinery/power/apc{ + areastring = "/area/crew_quarters/abandoned_gambling_den"; dir = 1; name = "Abandoned Gambling Den APC"; - areastring = "/area/crew_quarters/abandoned_gambling_den"; pixel_y = 24 }, /turf/open/floor/plating, @@ -97061,7 +96534,6 @@ }, /obj/machinery/camera{ c_tag = "Science - Port"; - dir = 2; name = "science camera"; network = list("ss13","rd") }, @@ -97146,7 +96618,6 @@ }, /obj/machinery/camera{ c_tag = "Science - Center"; - dir = 2; name = "science camera"; network = list("ss13","rd") }, @@ -97557,9 +97028,8 @@ }, /obj/machinery/camera{ c_tag = "Medbay - Center"; - network = list("ss13","medbay"); - dir = 2; - name = "medbay camera" + name = "medbay camera"; + network = list("ss13","medbay") }, /obj/effect/turf_decal/tile/blue{ dir = 1 @@ -98174,7 +97644,6 @@ /area/science/lab) "dil" = ( /obj/structure/chair/office/light{ - icon_state = "officechair_white"; dir = 4 }, /obj/effect/turf_decal/tile/purple, @@ -99007,14 +98476,13 @@ icon_state = "0-2" }, /obj/machinery/power/apc{ + areastring = "/area/science/explab"; dir = 1; name = "Experimentation Lab APC"; - areastring = "/area/science/explab"; pixel_y = 24 }, /obj/machinery/camera{ c_tag = "Science - Experimentation Lab"; - dir = 2; name = "science camera"; network = list("ss13","rd") }, @@ -99453,9 +98921,9 @@ /obj/machinery/light, /obj/machinery/camera{ c_tag = "Medbay - Port"; - network = list("ss13","medbay"); dir = 1; - name = "medbay camera" + name = "medbay camera"; + network = list("ss13","medbay") }, /obj/effect/turf_decal/tile/blue{ dir = 8 @@ -99583,9 +99051,9 @@ /obj/machinery/light, /obj/machinery/camera{ c_tag = "Medbay - Starboard"; - network = list("ss13","medbay"); dir = 1; - name = "medbay camera" + name = "medbay camera"; + network = list("ss13","medbay") }, /obj/structure/sign/poster/official/work_for_a_future{ pixel_y = -32 @@ -99649,9 +99117,8 @@ /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white, /obj/machinery/power/apc{ - dir = 2; - name = "Abandoned Medical Lab APC"; areastring = "/area/medical/abandoned"; + name = "Abandoned Medical Lab APC"; pixel_x = 1; pixel_y = -24 }, @@ -100063,9 +99530,7 @@ name = "Research Division Access"; req_access_txt = "47" }, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /obj/effect/turf_decal/stripes/line{ dir = 1 }, @@ -100178,9 +99643,7 @@ /obj/structure/cable/white{ icon_state = "1-2" }, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /obj/effect/turf_decal/stripes/line{ dir = 1 }, @@ -100190,9 +99653,7 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/structure/disposalpipe/segment, /obj/machinery/door/firedoor, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /obj/effect/turf_decal/stripes/line{ dir = 1 }, @@ -100200,9 +99661,7 @@ /area/hallway/primary/aft) "dlR" = ( /obj/machinery/door/firedoor, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /obj/effect/turf_decal/stripes/line{ dir = 1 }, @@ -100216,9 +99675,7 @@ pixel_x = 24 }, /obj/machinery/door/firedoor, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /obj/effect/turf_decal/stripes/line{ dir = 1 }, @@ -100234,9 +99691,7 @@ req_access_txt = "5; 33" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /obj/effect/turf_decal/stripes/line{ dir = 1 }, @@ -100259,9 +99714,7 @@ }, /obj/structure/disposalpipe/segment, /obj/machinery/door/firedoor, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /obj/effect/turf_decal/stripes/line{ dir = 1 }, @@ -100272,9 +99725,7 @@ icon_state = "1-2" }, /obj/machinery/door/firedoor, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /obj/effect/turf_decal/stripes/line{ dir = 1 }, @@ -100293,9 +99744,7 @@ name = "Surgery Observation" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /obj/effect/turf_decal/stripes/line{ dir = 1 }, @@ -100310,9 +99759,7 @@ /obj/machinery/door/airlock/medical{ name = "Surgery Observation" }, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/effect/turf_decal/stripes/line{ dir = 1 @@ -100760,9 +100207,9 @@ icon_state = "0-8" }, /obj/machinery/power/apc/highcap/ten_k{ + areastring = "/area/science/robotics/mechbay"; dir = 1; name = "Mech Bay APC"; - areastring = "/area/science/robotics/mechbay"; pixel_y = 28 }, /obj/effect/turf_decal/stripes/line{ @@ -100803,9 +100250,9 @@ "dni" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/power/apc{ + areastring = "/area/maintenance/department/medical"; dir = 1; name = "Medical Maintenance APC"; - areastring = "/area/maintenance/department/medical"; pixel_y = 24 }, /obj/structure/cable/white{ @@ -100907,9 +100354,9 @@ icon_state = "0-2" }, /obj/machinery/power/apc/highcap/five_k{ + areastring = "/area/medical/genetics/cloning"; dir = 1; name = "Cloning Lab APC"; - areastring = "/area/medical/genetics/cloning"; pixel_y = 24 }, /obj/item/folder/white, @@ -101177,9 +100624,7 @@ "dnP" = ( /obj/machinery/pipedispenser, /obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /obj/effect/turf_decal/stripes/line{ dir = 1 }, @@ -101187,9 +100632,7 @@ /area/hallway/secondary/construction) "dnQ" = ( /obj/machinery/pipedispenser/disposal, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /obj/effect/turf_decal/stripes/line{ dir = 1 }, @@ -101197,9 +100640,7 @@ /area/hallway/secondary/construction) "dnR" = ( /obj/machinery/pipedispenser/disposal/transit_tube, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /obj/effect/turf_decal/stripes/line{ dir = 1 }, @@ -103056,9 +102497,7 @@ /obj/machinery/door/airlock/medical{ name = "Surgery Observation" }, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /obj/effect/turf_decal/stripes/line{ dir = 1 }, @@ -103201,7 +102640,6 @@ /obj/structure/cable/white, /obj/machinery/power/apc{ areastring = "/area/science/circuit"; - dir = 2; name = "Circuitry Lab APC"; pixel_x = 1; pixel_y = -24 @@ -103335,9 +102773,7 @@ id = "rdtoxins"; name = "Toxins Lab Shutters" }, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /obj/effect/turf_decal/stripes/line{ dir = 1 }, @@ -103352,9 +102788,9 @@ /area/science/mixing) "drX" = ( /obj/machinery/power/apc{ + areastring = "/area/crew_quarters/heads/hor"; dir = 8; name = "Research Director's Office APC"; - areastring = "/area/crew_quarters/heads/hor"; pixel_x = -26 }, /obj/structure/cable/white, @@ -103640,9 +103076,9 @@ }, /obj/machinery/camera{ c_tag = "Medbay - Cloning Lab"; - network = list("ss13","medbay"); dir = 1; - name = "medbay camera" + name = "medbay camera"; + network = list("ss13","medbay") }, /obj/effect/turf_decal/tile/purple, /turf/open/floor/plasteel/white, @@ -103720,9 +103156,9 @@ /obj/structure/table/glass, /obj/machinery/camera{ c_tag = "Medbay - Cryogenics"; - network = list("ss13","medbay"); dir = 1; - name = "medbay camera" + name = "medbay camera"; + network = list("ss13","medbay") }, /obj/item/book/manual/wiki/medicine, /obj/item/clothing/neck/stethoscope, @@ -104175,9 +103611,7 @@ name = "Genetics Desk Maintenance"; req_access_txt = "9" }, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /obj/effect/turf_decal/stripes/line{ dir = 1 }, @@ -104213,9 +103647,7 @@ icon_state = "2-4" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /obj/effect/turf_decal/stripes/line{ dir = 1 }, @@ -104234,9 +103666,9 @@ icon_state = "0-4" }, /obj/machinery/power/apc{ + areastring = "/area/medical/medbay/central"; dir = 8; name = "Medbay APC"; - areastring = "/area/medical/medbay/central"; pixel_x = -26 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, @@ -104328,9 +103760,9 @@ /obj/machinery/iv_drip, /obj/machinery/camera{ c_tag = "Medbay - Recovery Room"; - network = list("ss13","medbay"); dir = 8; - name = "medbay camera" + name = "medbay camera"; + network = list("ss13","medbay") }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 9 @@ -105982,9 +105414,9 @@ /obj/item/clipboard, /obj/item/toy/figure/geneticist, /obj/machinery/power/apc{ + areastring = "/area/medical/genetics"; dir = 4; name = "Genetics Lab APC"; - areastring = "/area/medical/genetics"; pixel_x = 26 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ @@ -106011,9 +105443,9 @@ }, /obj/machinery/camera{ c_tag = "Medbay - Genetics Lab"; - network = list("ss13","medbay"); dir = 4; - name = "medbay camera" + name = "medbay camera"; + network = list("ss13","medbay") }, /obj/machinery/light_switch{ pixel_x = -26 @@ -106679,9 +106111,7 @@ req_access_txt = "30" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /obj/effect/turf_decal/stripes/line{ dir = 1 }, @@ -106701,9 +106131,7 @@ icon_state = "1-2" }, /obj/machinery/door/firedoor, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /obj/effect/turf_decal/stripes/line{ dir = 1 }, @@ -106713,9 +106141,7 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/disposalpipe/segment, /obj/machinery/door/firedoor, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /obj/machinery/airalarm{ dir = 8; pixel_x = 24 @@ -106749,9 +106175,7 @@ name = "Robotics Lab"; req_access_txt = "29" }, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /obj/effect/turf_decal/stripes/line{ dir = 1 }, @@ -106764,9 +106188,7 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/disposalpipe/segment, /obj/machinery/door/firedoor, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /obj/effect/turf_decal/stripes/line{ dir = 1 }, @@ -106785,9 +106207,9 @@ /obj/item/storage/box/disks, /obj/machinery/camera{ c_tag = "Medbay - Genetics Desk"; - network = list("ss13","medbay"); dir = 4; - name = "medbay camera" + name = "medbay camera"; + network = list("ss13","medbay") }, /obj/effect/turf_decal/tile/purple{ dir = 1 @@ -107218,16 +106640,15 @@ "dyI" = ( /obj/structure/cable/white, /obj/machinery/power/apc{ - dir = 2; - name = "Surgery APC"; areastring = "/area/medical/surgery"; + name = "Surgery APC"; pixel_y = -26 }, /obj/machinery/camera{ c_tag = "Medbay - Surgery"; - network = list("ss13","medbay"); dir = 1; - name = "medbay camera" + name = "medbay camera"; + network = list("ss13","medbay") }, /obj/effect/turf_decal/tile/neutral{ dir = 1 @@ -107322,9 +106743,8 @@ /area/hallway/secondary/construction) "dyP" = ( /obj/machinery/power/apc{ - dir = 2; - name = "Auxiliary Construction Zone APC"; areastring = "/area/hallway/secondary/construction"; + name = "Auxiliary Construction Zone APC"; pixel_y = -26 }, /obj/structure/cable/white{ @@ -107969,9 +107389,9 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/machinery/camera{ c_tag = "Medbay - Aft Port"; - network = list("ss13","medbay"); dir = 8; - name = "medbay camera" + name = "medbay camera"; + network = list("ss13","medbay") }, /obj/item/clipboard, /obj/item/healthanalyzer, @@ -108042,16 +107462,16 @@ dir = 4 }, /obj/machinery/power/apc{ + areastring = "/area/crew_quarters/heads/cmo"; dir = 4; name = "Chief Medical Officer's Office APC"; - areastring = "/area/crew_quarters/heads/cmo"; pixel_x = 26 }, /obj/machinery/camera{ c_tag = "Medbay - Chief Medical Officer's Office"; - network = list("ss13","medbay"); dir = 8; - name = "medbay camera" + name = "medbay camera"; + network = list("ss13","medbay") }, /obj/effect/turf_decal/tile/neutral{ dir = 1 @@ -108084,9 +107504,7 @@ req_access_txt = "12" }, /obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /obj/effect/turf_decal/stripes/line{ dir = 1 }, @@ -108101,9 +107519,7 @@ /obj/structure/cable/white{ icon_state = "1-2" }, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /obj/effect/turf_decal/stripes/line{ dir = 1 }, @@ -108221,9 +107637,9 @@ icon_state = "0-4" }, /obj/machinery/power/apc{ + areastring = "/area/science/mixing"; dir = 8; name = "Toxins Lab APC"; - areastring = "/area/science/mixing"; pixel_x = -26; pixel_y = 3 }, @@ -108396,7 +107812,6 @@ /area/science/robotics/lab) "dAO" = ( /obj/structure/chair/office/light{ - icon_state = "officechair_white"; dir = 4 }, /obj/effect/landmark/start/roboticist, @@ -109414,9 +108829,9 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/disposalpipe/segment, /obj/machinery/power/apc{ + areastring = "/area/hallway/primary/aft"; dir = 4; name = "Aft Primary Hallway APC"; - areastring = "/area/hallway/primary/aft"; pixel_x = 26 }, /obj/structure/cable/white{ @@ -109438,9 +108853,7 @@ req_access_txt = "9" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /obj/effect/turf_decal/stripes/line{ dir = 1 }, @@ -109470,9 +108883,7 @@ req_access_txt = "5" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /obj/effect/turf_decal/stripes/line{ dir = 1 }, @@ -109559,9 +108970,9 @@ }, /obj/machinery/camera{ c_tag = "Medbay - Aft Starboard"; - network = list("ss13","medbay"); dir = 4; - name = "medbay camera" + name = "medbay camera"; + network = list("ss13","medbay") }, /obj/effect/turf_decal/tile/blue{ dir = 8 @@ -109764,9 +109175,8 @@ "dDc" = ( /obj/structure/cable/white, /obj/machinery/power/apc/highcap/ten_k{ - dir = 2; - name = "Starboard Quarter Solar APC"; areastring = "/area/maintenance/solars/starboard/aft"; + name = "Starboard Quarter Solar APC"; pixel_y = -26 }, /obj/effect/turf_decal/stripes/line{ @@ -109785,8 +109195,7 @@ /obj/machinery/power/solar_control{ dir = 8; id = "aftstarboard"; - name = "Starboard Quarter Solar Control"; - track = 0 + name = "Starboard Quarter Solar Control" }, /obj/structure/cable, /obj/machinery/airalarm{ @@ -109958,9 +109367,7 @@ id = "rdtoxins"; name = "Toxins Lab Shutters" }, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /obj/effect/turf_decal/stripes/line{ dir = 1 }, @@ -110533,9 +109940,7 @@ }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/barricade/wooden, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /obj/effect/turf_decal/stripes/line{ dir = 1 }, @@ -111094,9 +110499,7 @@ /turf/open/floor/plating, /area/crew_quarters/theatre/abandoned) "dFl" = ( -/obj/machinery/vending/autodrobe{ - req_access_txt = "0" - }, +/obj/machinery/vending/autodrobe, /obj/machinery/light/small{ dir = 1 }, @@ -111107,9 +110510,9 @@ icon_state = "0-2" }, /obj/machinery/power/apc{ + areastring = "/area/crew_quarters/theatre/abandoned"; dir = 1; name = "Abandoned Theatre APC"; - areastring = "/area/crew_quarters/theatre/abandoned"; pixel_y = 24 }, /turf/open/floor/plating, @@ -111277,7 +110680,6 @@ /obj/item/clothing/mask/gas, /obj/machinery/camera{ c_tag = "Science - Toxins Launch Site"; - dir = 2; name = "science camera"; network = list("ss13","rd") }, @@ -111327,9 +110729,7 @@ /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /obj/effect/turf_decal/stripes/line{ dir = 1 }, @@ -111458,9 +110858,9 @@ dir = 4 }, /obj/machinery/power/apc{ + areastring = "/area/science/server"; dir = 8; name = "Research Division Server Room APC"; - areastring = "/area/science/server"; pixel_x = -26 }, /obj/machinery/light_switch{ @@ -111593,9 +110993,9 @@ icon_state = "0-4" }, /obj/machinery/power/apc{ + areastring = "/area/science/robotics/lab"; dir = 8; name = "Robotics Lab APC"; - areastring = "/area/science/robotics/lab"; pixel_x = -26 }, /obj/structure/disposalpipe/trunk{ @@ -112905,9 +112305,9 @@ icon_state = "0-4" }, /obj/machinery/power/apc{ + areastring = "/area/security/detectives_office/private_investigators_office"; dir = 8; name = "Private Investigator's Office APC"; - areastring = "/area/security/detectives_office/private_investigators_office"; pixel_x = -26; pixel_y = 3 }, @@ -112952,7 +112352,6 @@ /area/science/test_area) "dIj" = ( /obj/machinery/button/massdriver{ - dir = 2; id = "toxinsdriver"; pixel_x = -24 }, @@ -112975,9 +112374,7 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 5 }, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /turf/open/floor/plasteel, /area/science/mixing) "dIm" = ( @@ -112985,18 +112382,14 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /turf/open/floor/plasteel, /area/science/mixing) "dIn" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /turf/open/floor/plasteel, /area/science/mixing) "dIo" = ( @@ -113007,9 +112400,7 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /turf/open/floor/plasteel, /area/science/mixing) "dIp" = ( @@ -113250,7 +112641,6 @@ /area/science/storage) "dIF" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 2; external_pressure_bound = 140; name = "server vent"; pressure_checks = 0 @@ -113273,7 +112663,6 @@ /area/science/server) "dIH" = ( /obj/machinery/atmospherics/components/unary/vent_pump/siphon/on{ - dir = 2; external_pressure_bound = 120; name = "server vent" }, @@ -113329,9 +112718,9 @@ icon_state = "0-8" }, /obj/machinery/power/apc{ + areastring = "/area/science/research"; dir = 4; name = "Research Division APC"; - areastring = "/area/science/research"; pixel_x = 26 }, /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ @@ -113449,9 +112838,8 @@ "dIV" = ( /obj/structure/cable/white, /obj/machinery/power/apc{ - dir = 2; - name = "Morgue APC"; areastring = "/area/medical/morgue"; + name = "Morgue APC"; pixel_y = -26 }, /turf/open/floor/plating, @@ -113478,9 +112866,9 @@ /obj/effect/decal/cleanable/dirt, /obj/machinery/camera{ c_tag = "Medbay - Morgue"; - network = list("ss13","medbay"); dir = 1; - name = "medbay camera" + name = "medbay camera"; + network = list("ss13","medbay") }, /obj/structure/sign/poster/official/bless_this_spess{ pixel_y = -32 @@ -113569,9 +112957,8 @@ "dJg" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/power/apc{ - dir = 2; - name = "Morgue Maintenance APC"; areastring = "/area/maintenance/department/medical/morgue"; + name = "Morgue Maintenance APC"; pixel_y = -26 }, /obj/structure/cable/white{ @@ -113619,9 +113006,9 @@ }, /obj/machinery/camera{ c_tag = "Medbay - Chief Medical Officer's Quarters"; - network = list("ss13","medbay"); dir = 1; - name = "medbay camera" + name = "medbay camera"; + network = list("ss13","medbay") }, /obj/effect/turf_decal/tile/blue{ dir = 4 @@ -114100,9 +113487,9 @@ /obj/machinery/portable_atmospherics/scrubber/huge, /obj/effect/decal/cleanable/dirt, /obj/machinery/power/apc{ + areastring = "/area/science/storage"; dir = 4; name = "Toxins Storage APC"; - areastring = "/area/science/storage"; pixel_x = 26 }, /obj/structure/cable/white, @@ -114172,9 +113559,7 @@ req_access_txt = "29" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /obj/effect/turf_decal/stripes/line{ dir = 1 }, @@ -114216,9 +113601,7 @@ req_access_txt = "12" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /obj/effect/turf_decal/stripes/line{ dir = 1 }, @@ -114237,9 +113620,7 @@ name = "Virology Access"; req_access_txt = "39" }, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /obj/effect/turf_decal/stripes/line{ dir = 1 }, @@ -114390,9 +113771,7 @@ icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /obj/effect/turf_decal/stripes/line{ dir = 1 }, @@ -114413,9 +113792,7 @@ }, /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /obj/effect/turf_decal/stripes/line{ dir = 1 }, @@ -114447,9 +113824,7 @@ icon_state = "1-2" }, /obj/structure/disposalpipe/segment, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /obj/effect/turf_decal/stripes/line{ dir = 1 }, @@ -115024,9 +114399,7 @@ /area/science/test_area) "dLG" = ( /obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /turf/open/floor/plating/airless, /area/science/test_area) "dLH" = ( @@ -115064,9 +114437,7 @@ /turf/open/floor/plasteel, /area/science/mixing) "dLM" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /obj/effect/turf_decal/stripes/line{ dir = 1 }, @@ -115529,9 +114900,8 @@ }, /obj/structure/cable/white, /obj/machinery/power/apc{ - dir = 2; - name = "Aft Maintenance APC"; areastring = "/area/maintenance/aft"; + name = "Aft Maintenance APC"; pixel_x = 1; pixel_y = -24 }, @@ -116223,9 +115593,7 @@ req_access_txt = "19" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /obj/effect/turf_decal/stripes/line{ dir = 1 }, @@ -116245,9 +115613,7 @@ }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/structure/disposalpipe/segment, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /obj/effect/turf_decal/stripes/line{ dir = 1 }, @@ -116258,9 +115624,7 @@ /obj/machinery/door/airlock/public/glass{ name = "Departures Lounge" }, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /obj/effect/turf_decal/stripes/line{ dir = 1 }, @@ -116273,9 +115637,7 @@ }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/disposalpipe/segment, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /obj/effect/turf_decal/stripes/line{ dir = 1 }, @@ -116820,9 +116182,7 @@ /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, /obj/structure/barricade/wooden, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /obj/effect/turf_decal/stripes/line{ dir = 1 }, @@ -116839,9 +116199,7 @@ icon_state = "1-2" }, /obj/structure/barricade/wooden, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /obj/effect/turf_decal/stripes/line{ dir = 1 }, @@ -116871,9 +116229,7 @@ /obj/machinery/door/airlock{ name = "Bathroom" }, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /obj/effect/turf_decal/stripes/line{ dir = 1 }, @@ -117100,9 +116456,7 @@ /obj/structure/cable/white{ icon_state = "1-2" }, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /obj/effect/mapping_helpers/airlock/locked, /obj/machinery/door/airlock/virology{ autoclose = 0; @@ -117301,9 +116655,9 @@ /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, /obj/machinery/power/apc{ + areastring = "/area/maintenance/port/aft"; dir = 1; name = "Port Quarter Maintenance APC"; - areastring = "/area/maintenance/port/aft"; pixel_y = 24 }, /obj/structure/cable/white{ @@ -117601,9 +116955,9 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/machinery/camera{ c_tag = "Virology - Containment Lock"; - network = list("ss13","medbay"); dir = 8; - name = "virology camera" + name = "virology camera"; + network = list("ss13","medbay") }, /obj/effect/turf_decal/delivery, /turf/open/floor/plasteel, @@ -117865,9 +117219,7 @@ /obj/structure/cable/white{ icon_state = "1-2" }, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /obj/effect/turf_decal/stripes/line{ dir = 1 }, @@ -118102,9 +117454,7 @@ /obj/machinery/light/small{ dir = 1 }, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /obj/effect/turf_decal/stripes/line{ dir = 1 }, @@ -118120,9 +117470,7 @@ /obj/structure/cable/white{ icon_state = "1-4" }, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /obj/effect/turf_decal/stripes/line{ dir = 1 }, @@ -118259,9 +117607,9 @@ }, /obj/machinery/camera{ c_tag = "Virology - Break Room"; - network = list("ss13","medbay"); dir = 8; - name = "virology camera" + name = "virology camera"; + network = list("ss13","medbay") }, /obj/effect/turf_decal/tile/green{ dir = 4 @@ -119047,9 +118395,7 @@ /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ dir = 1 }, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /obj/effect/turf_decal/stripes/line{ dir = 1 }, @@ -119145,9 +118491,7 @@ name = "Maintenance Hatch"; req_access_txt = "12" }, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ dir = 4 }, @@ -119194,9 +118538,7 @@ name = "Departures Lounge" }, /obj/structure/disposalpipe/segment, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /obj/effect/turf_decal/stripes/line{ dir = 1 }, @@ -119207,9 +118549,7 @@ /obj/machinery/door/airlock/public/glass{ name = "Departures Lounge" }, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /obj/effect/turf_decal/stripes/line{ dir = 1 }, @@ -119362,9 +118702,9 @@ icon_state = "0-4" }, /obj/machinery/power/apc{ + areastring = "/area/library/abandoned"; dir = 8; name = "Abandoned Library APC"; - areastring = "/area/library/abandoned"; pixel_x = -26; pixel_y = 3 }, @@ -119531,14 +118871,13 @@ /area/hallway/secondary/exit/departure_lounge) "dTG" = ( /obj/machinery/power/apc/highcap/five_k{ + areastring = "/area/hallway/secondary/exit/departure_lounge"; dir = 1; name = "Departure Lounge APC"; - areastring = "/area/hallway/secondary/exit/departure_lounge"; pixel_y = 28 }, /obj/machinery/camera{ c_tag = "Departures - Fore"; - dir = 2; name = "departures camera" }, /obj/structure/cable/white{ @@ -120112,9 +119451,9 @@ dir = 4 }, /obj/machinery/power/apc{ + areastring = "/area/medical/virology"; dir = 4; name = "Virology Satellite APC"; - areastring = "/area/medical/virology"; pixel_x = 26 }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -120383,8 +119722,8 @@ }, /obj/machinery/camera{ c_tag = "Virology - Lab"; - network = list("ss13","medbay"); - name = "virology camera" + name = "virology camera"; + network = list("ss13","medbay") }, /obj/effect/turf_decal/bot, /turf/open/floor/plasteel, @@ -120407,9 +119746,9 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/machinery/camera{ c_tag = "Virology - Hallway"; - network = list("ss13","medbay"); dir = 8; - name = "virology camera" + name = "virology camera"; + network = list("ss13","medbay") }, /obj/effect/turf_decal/tile/green, /obj/effect/turf_decal/tile/green{ @@ -121357,9 +120696,7 @@ /obj/structure/cable/white{ icon_state = "2-8" }, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /obj/effect/turf_decal/stripes/line{ dir = 1 }, @@ -122381,7 +121718,6 @@ /obj/effect/landmark/start/assistant, /obj/machinery/camera{ c_tag = "Departures - Center"; - dir = 2; name = "departures camera" }, /obj/effect/turf_decal/bot, @@ -122520,9 +121856,9 @@ }, /obj/machinery/camera{ c_tag = "Virology - Cells"; - network = list("ss13","medbay"); dir = 8; - name = "virology camera" + name = "virology camera"; + network = list("ss13","medbay") }, /obj/effect/turf_decal/tile/green, /turf/open/floor/plasteel/white, @@ -122646,9 +121982,9 @@ /area/chapel/office) "dZQ" = ( /obj/machinery/power/apc{ + areastring = "/area/chapel/main"; dir = 8; name = "Chapel APC"; - areastring = "/area/chapel/main"; pixel_x = -26; pixel_y = 3 }, @@ -122779,7 +122115,6 @@ /area/hallway/secondary/exit/departure_lounge) "eab" = ( /obj/docking_port/stationary{ - dheight = 0; dir = 4; dwidth = 11; height = 18; @@ -122843,9 +122178,7 @@ req_access_txt = "39" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /obj/effect/turf_decal/stripes/line{ dir = 1 }, @@ -123206,9 +122539,7 @@ }, /obj/effect/decal/cleanable/dirt, /obj/structure/barricade/wooden, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /obj/effect/turf_decal/stripes/line{ dir = 1 }, @@ -123226,9 +122557,7 @@ name = "E.V.A. Storage Shutters" }, /obj/structure/barricade/wooden, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /obj/effect/turf_decal/stripes/line{ dir = 1 }, @@ -123245,9 +122574,7 @@ icon_state = "1-2" }, /obj/structure/barricade/wooden, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /obj/effect/turf_decal/stripes/line{ dir = 1 }, @@ -123260,9 +122587,7 @@ req_access_txt = "18" }, /obj/structure/barricade/wooden, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /obj/effect/turf_decal/stripes/line{ dir = 1 }, @@ -123771,8 +123096,7 @@ /obj/machinery/power/solar_control{ dir = 4; id = "aftport"; - name = "Port Quarter Solar Control"; - track = 0 + name = "Port Quarter Solar Control" }, /obj/structure/cable, /obj/effect/turf_decal/stripes/line{ @@ -123794,9 +123118,8 @@ "ecm" = ( /obj/structure/cable/white, /obj/machinery/power/apc/highcap/ten_k{ - dir = 2; - name = "Port Quarter Solar APC"; areastring = "/area/maintenance/solars/port/aft"; + name = "Port Quarter Solar APC"; pixel_y = -26 }, /obj/effect/turf_decal/stripes/line{ @@ -124826,9 +124149,7 @@ name = "Maintenance Hatch"; req_access_txt = "12" }, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /obj/effect/turf_decal/stripes/line{ dir = 1 }, @@ -124851,9 +124172,7 @@ req_access_txt = "63" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /obj/effect/turf_decal/stripes/line{ dir = 1 }, @@ -124874,9 +124193,7 @@ /obj/structure/cable/white{ icon_state = "2-8" }, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /obj/effect/turf_decal/stripes/line{ dir = 1 }, @@ -124917,9 +124234,7 @@ name = "Holding Area"; req_access_txt = "2" }, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /obj/effect/turf_decal/stripes/line{ dir = 1 }, @@ -125049,7 +124364,6 @@ pixel_x = -26 }, /obj/machinery/airalarm{ - dir = 2; pixel_y = 22 }, /obj/effect/turf_decal/tile/neutral{ @@ -125075,9 +124389,9 @@ dir = 1 }, /obj/machinery/power/apc{ + areastring = "/area/chapel/office"; dir = 1; name = "Chapel Quarters APC"; - areastring = "/area/chapel/office"; pixel_y = 24 }, /obj/structure/cable/white{ @@ -125095,7 +124409,6 @@ /obj/item/twohanded/required/kirbyplants/random, /obj/machinery/camera{ c_tag = "Chapel Quarters"; - dir = 2; name = "chapel camera" }, /turf/open/floor/plasteel/grimy, @@ -125212,8 +124525,7 @@ pixel_y = 26 }, /obj/machinery/camera{ - c_tag = "Security - Departures Port"; - dir = 2 + c_tag = "Security - Departures Port" }, /obj/effect/turf_decal/tile/red{ dir = 1 @@ -125376,9 +124688,7 @@ /turf/open/floor/plasteel, /area/security/checkpoint/escape) "eeT" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /obj/effect/turf_decal/stripes/line{ dir = 1 }, @@ -125568,9 +124878,7 @@ name = "External Airlock"; req_access_txt = "13" }, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /obj/effect/turf_decal/stripes/line{ dir = 1 }, @@ -126186,9 +125494,7 @@ name = "External Airlock"; req_access_txt = "13" }, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /obj/effect/turf_decal/stripes/line{ dir = 1 }, @@ -126282,9 +125588,7 @@ /turf/open/floor/plasteel/dark/corner, /area/engine/engineering) "ehy" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /obj/effect/turf_decal/stripes/line{ dir = 1 }, @@ -126353,9 +125657,7 @@ /turf/open/floor/plasteel/white, /area/medical/storage) "ehM" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /obj/effect/turf_decal/stripes/line{ dir = 1 }, @@ -126771,9 +126073,7 @@ }, /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /obj/effect/turf_decal/stripes/line{ dir = 1 }, @@ -126878,7 +126178,6 @@ dir = 8 }, /obj/machinery/computer/arcade{ - icon_state = "arcade"; dir = 1 }, /turf/open/floor/plasteel/dark, @@ -126969,7 +126268,6 @@ /obj/structure/table/reinforced, /obj/machinery/camera{ c_tag = "Science - Experimentation Lab"; - dir = 2; name = "science camera"; network = list("ss13","rd") }, @@ -127102,7 +126400,6 @@ dir = 8 }, /obj/machinery/computer/arcade{ - icon_state = "arcade"; dir = 4 }, /turf/open/floor/plasteel/dark, @@ -127359,6 +126656,23 @@ }, /turf/open/floor/plasteel, /area/maintenance/port/aft) +"mgh" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/landmark/start/cyborg, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/turret_protected/aisat_interior) "mkm" = ( /obj/machinery/atmospherics/components/binary/valve, /obj/machinery/embedded_controller/radio/airlock_controller/incinerator_toxmix{ @@ -127419,9 +126733,7 @@ /turf/open/floor/plating, /area/crew_quarters/abandoned_gambling_den) "mPj" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /turf/open/floor/plating, /area/chapel/office) "mPH" = ( @@ -127498,7 +126810,6 @@ dir = 8 }, /obj/machinery/computer/arcade{ - icon_state = "arcade"; dir = 1 }, /turf/open/floor/plasteel/dark, @@ -127894,7 +127205,6 @@ dir = 4 }, /obj/machinery/airalarm{ - dir = 2; pixel_y = 22 }, /turf/open/floor/plasteel/dark, @@ -128243,6 +127553,21 @@ }, /turf/open/floor/plating, /area/science/research/abandoned) +"ylW" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/landmark/start/cyborg, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/turret_protected/aisat_interior) (1,1,1) = {" aaa @@ -138137,7 +137462,7 @@ bPC bRK bTC bVK -bXW +ylW cal bPC aaa @@ -138394,7 +137719,7 @@ bPC bRL bTC bVx -bXX +mgh cam bPC bRO @@ -138651,7 +137976,7 @@ bPC bRM bTD bVL -bXX +mgh can bPC bkE diff --git a/_maps/map_files/MetaStation/MetaStation.dmm b/_maps/map_files/MetaStation/MetaStation.dmm index 3516d61080..d31dbe1405 100644 --- a/_maps/map_files/MetaStation/MetaStation.dmm +++ b/_maps/map_files/MetaStation/MetaStation.dmm @@ -334,7 +334,6 @@ /area/solar/port/fore) "abg" = ( /obj/machinery/door/poddoor{ - density = 1; id = "SecJusticeChamber"; name = "Justice Vent" }, @@ -448,7 +447,6 @@ /area/security/prison) "abu" = ( /obj/docking_port/stationary{ - dir = 1; dwidth = 1; height = 4; roundstart_template = /datum/map_template/shuttle/escape_pod/default; @@ -662,7 +660,6 @@ dir = 8 }, /obj/machinery/sparker{ - dir = 2; id = "executionburn"; pixel_x = -25 }, @@ -798,14 +795,11 @@ /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ dir = 4 }, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /turf/open/floor/plasteel/dark, /area/security/execution/education) "aco" = ( /obj/machinery/atmospherics/components/unary/outlet_injector/on{ - dir = 2; name = "justice injector" }, /obj/effect/turf_decal/stripes/line{ @@ -952,7 +946,6 @@ /area/security/execution/education) "acC" = ( /obj/machinery/door/window/brigdoor{ - dir = 2; name = "Justice Chamber"; req_access_txt = "3" }, @@ -1025,7 +1018,6 @@ }, /obj/item/radio/intercom{ desc = "Talk through this. It looks like it has been modified to not broadcast."; - dir = 2; name = "Prison Intercom (General)"; pixel_y = -28; prison_radio = 1 @@ -1053,9 +1045,7 @@ /turf/open/floor/plasteel, /area/security/prison) "acK" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 2 - }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, /turf/open/floor/plasteel, /area/security/prison) "acL" = ( @@ -1129,7 +1119,6 @@ }, /obj/machinery/camera{ c_tag = "Prison Sanitarium"; - dir = 2; network = list("ss13","prison") }, /obj/effect/turf_decal/tile/red{ @@ -1220,7 +1209,6 @@ req_access_txt = "1" }, /obj/machinery/button/door{ - dir = 2; id = "SecJusticeChamber"; layer = 4; name = "Justice Vent Control"; @@ -1291,9 +1279,9 @@ /area/security/execution/education) "acZ" = ( /obj/machinery/power/apc{ + areastring = "/area/security/execution/education"; dir = 1; name = "Prisoner Education Chamber APC"; - areastring = "/area/security/execution/education"; pixel_y = 24 }, /obj/structure/cable/yellow{ @@ -1582,8 +1570,6 @@ /area/space/nearstation) "adJ" = ( /obj/item/radio/intercom{ - freerange = 0; - frequency = 1459; name = "Station Intercom (General)"; pixel_x = -28 }, @@ -1630,9 +1616,7 @@ pixel_y = -25; specialfunctions = 4 }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 2 - }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, /obj/effect/turf_decal/tile/red, /obj/effect/turf_decal/tile/red{ dir = 8 @@ -1793,9 +1777,7 @@ /turf/open/floor/plating, /area/crew_quarters/heads/hos) "aed" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /turf/open/floor/plating, /area/crew_quarters/fitness/recreation) "aee" = ( @@ -1829,9 +1811,7 @@ }, /obj/machinery/meter, /obj/machinery/door/window/westleft{ - base_state = "left"; dir = 1; - icon_state = "left"; name = "gas ports" }, /turf/open/floor/plasteel/dark, @@ -1933,9 +1913,7 @@ /area/ai_monitored/security/armory) "aer" = ( /obj/structure/rack, -/obj/item/gun/energy/ionrifle{ - pin = /obj/item/firing_pin - }, +/obj/item/gun/energy/ionrifle, /obj/machinery/light{ dir = 1 }, @@ -2143,9 +2121,7 @@ /obj/structure/cable/yellow{ icon_state = "1-4" }, -/obj/effect/turf_decal/tile/red{ - dir = 2 - }, +/obj/effect/turf_decal/tile/red, /turf/open/floor/plasteel, /area/security/prison) "aeL" = ( @@ -2160,9 +2136,7 @@ name = "WARNING: Do Not Enter When Red Light Shows"; pixel_y = 32 }, -/obj/effect/turf_decal/tile/red{ - dir = 2 - }, +/obj/effect/turf_decal/tile/red, /turf/open/floor/plasteel, /area/security/prison) "aeM" = ( @@ -2173,9 +2147,7 @@ icon_state = "2-4" }, /obj/machinery/atmospherics/pipe/manifold/supply/hidden, -/obj/effect/turf_decal/tile/red{ - dir = 2 - }, +/obj/effect/turf_decal/tile/red, /turf/open/floor/plasteel, /area/security/prison) "aeN" = ( @@ -2185,9 +2157,7 @@ /obj/structure/cable/yellow{ icon_state = "4-8" }, -/obj/effect/turf_decal/tile/red{ - dir = 2 - }, +/obj/effect/turf_decal/tile/red, /turf/open/floor/plasteel, /area/security/prison) "aeO" = ( @@ -2209,9 +2179,7 @@ /obj/structure/cable/yellow{ icon_state = "4-8" }, -/obj/effect/turf_decal/tile/red{ - dir = 2 - }, +/obj/effect/turf_decal/tile/red, /turf/open/floor/plasteel, /area/security/prison) "aeP" = ( @@ -2232,9 +2200,7 @@ c_tag = "Prison Hallway Port"; network = list("ss13","prison") }, -/obj/effect/turf_decal/tile/red{ - dir = 2 - }, +/obj/effect/turf_decal/tile/red, /turf/open/floor/plasteel, /area/security/prison) "aeQ" = ( @@ -2247,9 +2213,7 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, -/obj/effect/turf_decal/tile/red{ - dir = 2 - }, +/obj/effect/turf_decal/tile/red, /turf/open/floor/plasteel, /area/security/prison) "aeR" = ( @@ -2260,9 +2224,7 @@ icon_state = "1-4" }, /obj/machinery/atmospherics/pipe/manifold/supply/hidden, -/obj/effect/turf_decal/tile/red{ - dir = 2 - }, +/obj/effect/turf_decal/tile/red, /turf/open/floor/plasteel, /area/security/prison) "aeS" = ( @@ -2285,9 +2247,7 @@ /obj/structure/cable/yellow{ icon_state = "4-8" }, -/obj/effect/turf_decal/tile/red{ - dir = 2 - }, +/obj/effect/turf_decal/tile/red, /turf/open/floor/plasteel, /area/security/prison) "aeT" = ( @@ -2303,9 +2263,7 @@ network = list("prison"); pixel_y = 30 }, -/obj/effect/turf_decal/tile/red{ - dir = 2 - }, +/obj/effect/turf_decal/tile/red, /turf/open/floor/plasteel, /area/security/prison) "aeU" = ( @@ -2316,9 +2274,7 @@ /obj/machinery/light{ dir = 1 }, -/obj/effect/turf_decal/tile/red{ - dir = 2 - }, +/obj/effect/turf_decal/tile/red, /turf/open/floor/plasteel, /area/security/prison) "aeV" = ( @@ -2328,9 +2284,7 @@ /obj/structure/cable/yellow{ icon_state = "4-8" }, -/obj/effect/turf_decal/tile/red{ - dir = 2 - }, +/obj/effect/turf_decal/tile/red, /turf/open/floor/plasteel, /area/security/prison) "aeW" = ( @@ -2353,16 +2307,14 @@ /obj/structure/cable/yellow{ icon_state = "4-8" }, -/obj/effect/turf_decal/tile/red{ - dir = 2 - }, +/obj/effect/turf_decal/tile/red, /turf/open/floor/plasteel, /area/security/prison) "aeX" = ( /obj/machinery/power/apc/highcap/five_k{ + areastring = "/area/security/prison"; dir = 1; name = "Prison Wing APC"; - areastring = "/area/security/prison"; pixel_x = 1; pixel_y = 24 }, @@ -2380,12 +2332,9 @@ }, /obj/machinery/camera{ c_tag = "Prison Hallway Starboard"; - dir = 2; network = list("ss13","prison") }, -/obj/effect/turf_decal/tile/red{ - dir = 2 - }, +/obj/effect/turf_decal/tile/red, /turf/open/floor/plasteel, /area/security/prison) "aeY" = ( @@ -2395,9 +2344,7 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, -/obj/effect/turf_decal/tile/red{ - dir = 2 - }, +/obj/effect/turf_decal/tile/red, /turf/open/floor/plasteel, /area/security/prison) "aeZ" = ( @@ -2410,9 +2357,7 @@ /obj/structure/sign/warning/pods{ pixel_y = 30 }, -/obj/effect/turf_decal/tile/red{ - dir = 2 - }, +/obj/effect/turf_decal/tile/red, /turf/open/floor/plasteel, /area/security/prison) "afa" = ( @@ -2427,9 +2372,7 @@ id = "insaneflash"; pixel_y = 26 }, -/obj/effect/turf_decal/tile/red{ - dir = 2 - }, +/obj/effect/turf_decal/tile/red, /turf/open/floor/plasteel, /area/security/prison) "afb" = ( @@ -2442,9 +2385,7 @@ /obj/structure/cable/yellow{ icon_state = "4-8" }, -/obj/effect/turf_decal/tile/red{ - dir = 2 - }, +/obj/effect/turf_decal/tile/red, /turf/open/floor/plasteel, /area/security/prison) "afc" = ( @@ -2489,8 +2430,7 @@ pixel_y = 28 }, /obj/machinery/camera{ - c_tag = "Head of Security's Office"; - dir = 2 + c_tag = "Head of Security's Office" }, /turf/open/floor/plasteel/dark, /area/crew_quarters/heads/hos) @@ -2525,8 +2465,6 @@ pixel_x = -22 }, /obj/item/radio/intercom{ - freerange = 0; - frequency = 1459; name = "Station Intercom (General)"; pixel_x = -29; pixel_y = 23 @@ -2844,9 +2782,7 @@ /turf/open/floor/plasteel, /area/security/prison) "afK" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 2 - }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, /obj/effect/turf_decal/tile/red{ dir = 1 }, @@ -2865,9 +2801,7 @@ /turf/open/floor/plasteel, /area/security/prison) "afM" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 2 - }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, /obj/machinery/firealarm{ dir = 1; pixel_y = -24 @@ -2895,8 +2829,6 @@ dir = 4 }, /obj/item/radio/intercom{ - freerange = 0; - frequency = 1459; name = "Station Intercom (General)"; pixel_y = -30 }, @@ -2941,9 +2873,7 @@ /turf/open/floor/plasteel, /area/security/prison) "afT" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 2 - }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, /obj/machinery/light, /obj/effect/turf_decal/tile/red{ dir = 1 @@ -2990,8 +2920,6 @@ /area/ai_monitored/security/armory) "afZ" = ( /obj/item/radio/intercom{ - freerange = 0; - frequency = 1459; name = "Station Intercom (General)"; pixel_y = 24 }, @@ -3038,7 +2966,6 @@ icon_state = "secbot1"; idcheck = 1; name = "Sergeant-at-Armsky"; - on = 1; weaponscheck = 1 }, /turf/open/floor/plasteel/dark, @@ -3250,8 +3177,7 @@ icon_state = "4-8" }, /obj/machinery/camera{ - c_tag = "Fitness Room - Fore"; - dir = 2 + c_tag = "Fitness Room - Fore" }, /obj/machinery/airalarm{ pixel_y = 24 @@ -3282,9 +3208,9 @@ dir = 1 }, /obj/machinery/power/apc{ + areastring = "/area/crew_quarters/fitness/recreation"; dir = 1; name = "Recreation Area APC"; - areastring = "/area/crew_quarters/fitness/recreation"; pixel_y = 24 }, /obj/structure/cable/yellow{ @@ -3307,8 +3233,7 @@ "agB" = ( /obj/machinery/power/solar_control{ id = "foreport"; - name = "Port Bow Solar Control"; - track = 0 + name = "Port Bow Solar Control" }, /obj/structure/cable{ icon_state = "0-4" @@ -3647,15 +3572,15 @@ icon_gib = "guard_dead"; icon_living = "guard"; icon_state = "guard"; + maxHealth = 250; max_co2 = 5; max_tox = 2; - maxHealth = 250; melee_damage_lower = 15; melee_damage_upper = 20; min_oxy = 5; + movement_type = 1; name = "Sergeant Araneus"; real_name = "Sergeant Araneus"; - movement_type = 1; response_help = "pets"; turns_per_move = 10 }, @@ -3695,16 +3620,12 @@ /turf/open/floor/plasteel, /area/crew_quarters/fitness/recreation) "ahh" = ( -/obj/effect/turf_decal/tile/neutral{ - dir = 2 - }, +/obj/effect/turf_decal/tile/neutral, /turf/open/floor/plasteel, /area/crew_quarters/fitness/recreation) "ahi" = ( /obj/structure/chair, -/obj/effect/turf_decal/tile/neutral{ - dir = 2 - }, +/obj/effect/turf_decal/tile/neutral, /turf/open/floor/plasteel, /area/crew_quarters/fitness/recreation) "ahj" = ( @@ -3776,8 +3697,6 @@ dir = 4 }, /obj/item/radio/intercom{ - freerange = 0; - frequency = 1459; name = "Station Intercom (General)"; pixel_x = 29 }, @@ -3926,9 +3845,8 @@ /area/ai_monitored/security/armory) "ahF" = ( /obj/machinery/power/apc/highcap/five_k{ - dir = 2; - name = "Armory APC"; areastring = "/area/ai_monitored/security/armory"; + name = "Armory APC"; pixel_x = 1; pixel_y = -24 }, @@ -4160,9 +4078,7 @@ dir = 1 }, /obj/machinery/door/window/eastright{ - base_state = "right"; dir = 8; - icon_state = "right"; name = "Fitness Ring" }, /turf/open/floor/plasteel/dark, @@ -4293,9 +4209,9 @@ /area/maintenance/disposal) "ail" = ( /obj/machinery/power/apc{ + areastring = "/area/maintenance/solars/port/fore"; dir = 8; name = "Port Bow Solar APC"; - areastring = "/area/maintenance/solars/port/fore"; pixel_x = -25; pixel_y = 3 }, @@ -4314,9 +4230,7 @@ icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /turf/open/floor/plating, /area/maintenance/solars/port/fore) "ain" = ( @@ -4458,8 +4372,7 @@ }, /obj/effect/landmark/blobstart, /obj/machinery/camera{ - c_tag = "Evidence Storage"; - dir = 2 + c_tag = "Evidence Storage" }, /obj/item/storage/secure/safe{ name = "evidence safe"; @@ -4647,9 +4560,7 @@ desc = "Whoever wears this makes the rules."; name = "referee suit" }, -/obj/effect/turf_decal/tile/neutral{ - dir = 2 - }, +/obj/effect/turf_decal/tile/neutral, /turf/open/floor/plasteel, /area/crew_quarters/fitness/recreation) "aiS" = ( @@ -5329,18 +5240,14 @@ /obj/structure/disposalpipe/segment{ dir = 6 }, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /turf/open/floor/plating, /area/maintenance/disposal) "aki" = ( /obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /turf/open/floor/plating, /area/maintenance/disposal) "akj" = ( @@ -5350,9 +5257,7 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 5 }, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /turf/open/floor/plating, /area/maintenance/disposal) "akk" = ( @@ -5480,8 +5385,6 @@ "aku" = ( /obj/structure/table, /obj/item/radio/intercom{ - freerange = 0; - frequency = 1459; name = "Station Intercom (General)"; pixel_y = 26 }, @@ -5723,8 +5626,6 @@ dir = 1 }, /obj/item/radio/intercom{ - freerange = 0; - frequency = 1459; name = "Station Intercom (General)"; pixel_y = 26 }, @@ -6027,9 +5928,7 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 6 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 2 - }, +/obj/effect/turf_decal/tile/neutral, /turf/open/floor/plasteel, /area/crew_quarters/fitness/recreation) "alm" = ( @@ -6067,8 +5966,6 @@ dir = 1 }, /obj/item/radio/intercom{ - freerange = 0; - frequency = 1459; name = "Station Intercom (General)"; pixel_y = -28 }, @@ -6192,7 +6089,6 @@ /area/maintenance/disposal) "alB" = ( /obj/machinery/mineral/stacking_unit_console{ - dir = 2; machinedir = 8; pixel_x = 32 }, @@ -6312,9 +6208,7 @@ /area/security/brig) "alP" = ( /obj/machinery/door/window/westleft{ - base_state = "left"; dir = 4; - icon_state = "left"; name = "Infirmary" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -6567,9 +6461,9 @@ icon_state = "1-4" }, /obj/machinery/power/apc/highcap/five_k{ + areastring = "/area/security/warden"; dir = 8; name = "Brig Control APC"; - areastring = "/area/security/warden"; pixel_x = -26 }, /obj/structure/cable/yellow, @@ -6757,9 +6651,9 @@ req_access_txt = "1" }, /obj/machinery/power/apc{ + areastring = "/area/security/range"; dir = 4; name = "Shooting Range APC"; - areastring = "/area/security/range"; pixel_x = 24 }, /obj/structure/cable/yellow{ @@ -6778,9 +6672,7 @@ /area/maintenance/fore) "amu" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /turf/open/floor/plating, /area/maintenance/fore) "amw" = ( @@ -6824,9 +6716,7 @@ dir = 4 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/effect/turf_decal/tile/neutral{ - dir = 2 - }, +/obj/effect/turf_decal/tile/neutral, /turf/open/floor/plasteel, /area/crew_quarters/fitness/recreation) "amD" = ( @@ -6838,13 +6728,6 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/closed/wall, /area/crew_quarters/fitness/recreation) -"amF" = ( -/obj/machinery/door/airlock/maintenance{ - name = "maintenance access"; - req_access_txt = "12" - }, -/turf/open/floor/plating, -/area/maintenance/starboard/fore) "amG" = ( /obj/machinery/light/small{ dir = 8 @@ -6954,7 +6837,6 @@ "amQ" = ( /obj/machinery/door/window/eastright{ base_state = "left"; - dir = 4; icon_state = "left"; name = "Danger: Conveyor Access"; req_access_txt = "12" @@ -7304,9 +7186,9 @@ /area/security/main) "anC" = ( /obj/machinery/power/apc/highcap/five_k{ + areastring = "/area/security/main"; dir = 4; name = "Security Office APC"; - areastring = "/area/security/main"; pixel_x = 24 }, /obj/structure/cable/yellow, @@ -7475,7 +7357,6 @@ /area/maintenance/disposal) "anY" = ( /obj/machinery/door/window/eastright{ - dir = 4; name = "Danger: Conveyor Access"; req_access_txt = "12" }, @@ -7953,9 +7834,8 @@ /area/maintenance/fore) "aoO" = ( /obj/machinery/power/apc{ - dir = 2; - name = "Disposal APC"; areastring = "/area/maintenance/disposal"; + name = "Disposal APC"; pixel_y = -24 }, /obj/structure/cable/yellow, @@ -7977,9 +7857,7 @@ /obj/structure/cable/yellow{ icon_state = "4-8" }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 2 - }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, /obj/effect/turf_decal/stripes/line{ dir = 1 }, @@ -8051,9 +7929,7 @@ /obj/structure/cable/yellow{ icon_state = "4-8" }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 2 - }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, /obj/effect/turf_decal/tile/neutral{ dir = 8 }, @@ -8077,27 +7953,21 @@ dir = 4 }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/turf_decal/tile/neutral{ - dir = 2 - }, +/obj/effect/turf_decal/tile/neutral, /turf/open/floor/plasteel, /area/crew_quarters/fitness/recreation) "aoZ" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 2 - }, +/obj/effect/turf_decal/tile/neutral, /turf/open/floor/plasteel, /area/crew_quarters/fitness/recreation) "apa" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 9 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 2 - }, +/obj/effect/turf_decal/tile/neutral, /turf/open/floor/plasteel, /area/crew_quarters/fitness/recreation) "apb" = ( @@ -8206,8 +8076,7 @@ "apn" = ( /obj/machinery/power/solar_control{ id = "forestarboard"; - name = "Starboard Bow Solar Control"; - track = 0 + name = "Starboard Bow Solar Control" }, /obj/structure/cable{ icon_state = "0-4" @@ -8243,9 +8112,7 @@ freq = 1400; location = "Disposals" }, -/obj/structure/plasticflaps{ - opacity = 0 - }, +/obj/structure/plasticflaps, /obj/machinery/door/window/northright{ dir = 2; name = "delivery door"; @@ -8433,8 +8300,7 @@ dir = 1 }, /obj/machinery/camera{ - c_tag = "Warden's Office"; - dir = 2 + c_tag = "Warden's Office" }, /obj/structure/rack, /obj/item/storage/toolbox/mechanical{ @@ -8639,9 +8505,7 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 2 - }, +/obj/effect/turf_decal/tile/neutral, /turf/open/floor/plasteel, /area/crew_quarters/fitness/recreation) "aqj" = ( @@ -8671,8 +8535,6 @@ "aqk" = ( /obj/machinery/vending/coffee, /obj/item/radio/intercom{ - freerange = 0; - frequency = 1459; name = "Station Intercom (General)"; pixel_y = -28 }, @@ -8763,9 +8625,9 @@ icon_state = "0-4" }, /obj/machinery/power/apc{ + areastring = "/area/engine/gravity_generator"; dir = 8; name = "Gravity Generator APC"; - areastring = "/area/engine/gravity_generator"; pixel_x = -25; pixel_y = 1 }, @@ -8852,8 +8714,6 @@ dir = 4 }, /obj/item/radio/intercom{ - freerange = 0; - frequency = 1459; name = "Station Intercom (General)"; pixel_x = 29 }, @@ -9041,7 +8901,6 @@ }, /obj/machinery/computer/security/telescreen{ desc = "Used for watching Prison Wing holding areas."; - dir = 2; name = "Prison Monitor"; network = list("prison"); pixel_x = -30 @@ -9224,9 +9083,7 @@ /obj/structure/chair{ dir = 1 }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 2 - }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, /obj/effect/landmark/start/security_officer, /obj/effect/turf_decal/tile/red, /obj/effect/turf_decal/tile/red{ @@ -9414,9 +9271,7 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /turf/open/floor/plasteel, /area/engine/gravity_generator) "arQ" = ( @@ -9428,9 +9283,7 @@ dir = 9 }, /obj/machinery/holopad, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /turf/open/floor/plasteel, /area/engine/gravity_generator) "arR" = ( @@ -9438,9 +9291,7 @@ dir = 1 }, /obj/machinery/power/terminal, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /turf/open/floor/plasteel, /area/engine/gravity_generator) "arS" = ( @@ -9459,9 +9310,9 @@ /area/engine/gravity_generator) "arT" = ( /obj/machinery/power/apc{ + areastring = "/area/maintenance/solars/starboard/fore"; dir = 8; name = "Starboard Bow Solar APC"; - areastring = "/area/maintenance/solars/starboard/fore"; pixel_x = -25; pixel_y = 3 }, @@ -9480,9 +9331,7 @@ icon_state = "2-4" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /turf/open/floor/plating, /area/maintenance/solars/starboard/fore) "arV" = ( @@ -9500,9 +9349,7 @@ /obj/structure/cable/yellow{ icon_state = "2-4" }, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /turf/open/floor/plating, /area/maintenance/port/fore) "arX" = ( @@ -10054,11 +9901,8 @@ }, /obj/structure/table/wood, /obj/item/radio/intercom{ - anyai = 1; - broadcasting = 0; freerange = 1; frequency = 1424; - listening = 1; name = "Interrogation Intercom"; pixel_y = -31 }, @@ -10170,9 +10014,7 @@ /obj/machinery/light/small{ dir = 4 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 2 - }, +/obj/effect/turf_decal/tile/neutral, /turf/open/floor/plasteel, /area/crew_quarters/dorms) "ata" = ( @@ -10214,9 +10056,7 @@ /area/maintenance/starboard/fore) "ate" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /turf/open/floor/plating, /area/maintenance/starboard/fore) "atf" = ( @@ -10248,9 +10088,7 @@ icon_state = "1-8" }, /obj/structure/table, -/obj/item/paper/guides/jobs/engi/gravity_gen{ - layer = 3 - }, +/obj/item/paper/guides/jobs/engi/gravity_gen, /obj/item/pen/blue, /obj/effect/turf_decal/delivery, /turf/open/floor/plasteel, @@ -10308,9 +10146,7 @@ /obj/machinery/door/poddoor/shutters{ id = "supplybridge" }, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /turf/open/floor/plating, /area/maintenance/port/fore) "atr" = ( @@ -10335,9 +10171,7 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 2 - }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, /turf/open/floor/plating, /area/maintenance/port/fore) "atu" = ( @@ -10692,9 +10526,7 @@ /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ dir = 8 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 2 - }, +/obj/effect/turf_decal/tile/neutral, /turf/open/floor/plasteel, /area/crew_quarters/dorms) "auk" = ( @@ -10993,9 +10825,9 @@ "auX" = ( /obj/machinery/photocopier, /obj/machinery/power/apc{ + areastring = "/area/crew_quarters/heads/hos"; dir = 4; name = "Head of Security's Office APC"; - areastring = "/area/crew_quarters/heads/hos"; pixel_x = 24 }, /obj/structure/cable/yellow{ @@ -11070,8 +10902,7 @@ dir = 1 }, /obj/machinery/camera{ - c_tag = "Brig - Hallway - Entrance"; - dir = 2 + c_tag = "Brig - Hallway - Entrance" }, /obj/effect/turf_decal/tile/red{ dir = 4 @@ -11090,8 +10921,6 @@ /area/security/brig) "avd" = ( /obj/item/radio/intercom{ - freerange = 0; - frequency = 1459; name = "Station Intercom (General)"; pixel_y = 26 }, @@ -11209,9 +11038,7 @@ /obj/structure/extinguisher_cabinet{ pixel_x = 27 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 2 - }, +/obj/effect/turf_decal/tile/neutral, /turf/open/floor/plasteel, /area/crew_quarters/dorms) "avo" = ( @@ -11228,9 +11055,7 @@ /area/crew_quarters/dorms) "avq" = ( /obj/item/cigbutt, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /turf/open/floor/plating, /area/maintenance/starboard/fore) "avr" = ( @@ -11324,18 +11149,14 @@ /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ dir = 1 }, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /turf/open/floor/plasteel, /area/engine/gravity_generator) "avy" = ( /obj/structure/cable/yellow{ icon_state = "4-8" }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 2 - }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, /obj/effect/turf_decal/stripes/line{ dir = 6 }, @@ -11895,9 +11716,7 @@ c_tag = "Dormitories - Fore"; dir = 8 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 2 - }, +/obj/effect/turf_decal/tile/neutral, /turf/open/floor/plasteel, /area/crew_quarters/dorms) "awG" = ( @@ -11983,9 +11802,7 @@ /obj/structure/cable/yellow{ icon_state = "2-4" }, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /turf/open/floor/plating, /area/maintenance/port/fore) "awR" = ( @@ -12004,9 +11821,7 @@ /obj/structure/cable/yellow{ icon_state = "1-2" }, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /turf/open/floor/plating, /area/maintenance/port/fore) "awU" = ( @@ -12055,9 +11870,7 @@ dir = 4 }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/turf_decal/tile/red{ - dir = 2 - }, +/obj/effect/turf_decal/tile/red, /turf/open/floor/plasteel, /area/security/brig) "axc" = ( @@ -12093,9 +11906,7 @@ /obj/structure/cable/yellow{ icon_state = "1-2" }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 2 - }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, /turf/open/floor/plasteel, /area/security/brig) "axf" = ( @@ -12126,17 +11937,13 @@ /turf/open/floor/plasteel, /area/security/brig) "axh" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 2 - }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, /obj/machinery/door_timer{ id = "Cell 3"; name = "Cell 3"; pixel_y = -32 }, -/obj/effect/turf_decal/tile/red{ - dir = 2 - }, +/obj/effect/turf_decal/tile/red, /turf/open/floor/plasteel, /area/security/brig) "axi" = ( @@ -12186,9 +11993,8 @@ dir = 4 }, /obj/machinery/power/apc/highcap/ten_k{ - dir = 2; - name = "Brig APC"; areastring = "/area/security/brig"; + name = "Brig APC"; pixel_x = 1; pixel_y = -24 }, @@ -12235,18 +12041,12 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, -/obj/effect/turf_decal/tile/red{ - dir = 2 - }, +/obj/effect/turf_decal/tile/red, /turf/open/floor/plasteel, /area/security/brig) "axq" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 2 - }, -/obj/effect/turf_decal/tile/red{ - dir = 2 - }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/obj/effect/turf_decal/tile/red, /turf/open/floor/plasteel, /area/security/brig) "axr" = ( @@ -12259,9 +12059,7 @@ req_access_txt = "1" }, /obj/effect/landmark/event_spawn, -/obj/effect/turf_decal/tile/red{ - dir = 2 - }, +/obj/effect/turf_decal/tile/red, /turf/open/floor/plasteel, /area/security/brig) "axs" = ( @@ -12277,9 +12075,7 @@ c_tag = "Brig - Hallway - Starboard"; dir = 1 }, -/obj/effect/turf_decal/tile/red{ - dir = 2 - }, +/obj/effect/turf_decal/tile/red, /turf/open/floor/plasteel, /area/security/brig) "axt" = ( @@ -12290,18 +12086,14 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, -/obj/effect/turf_decal/tile/red{ - dir = 2 - }, +/obj/effect/turf_decal/tile/red, /turf/open/floor/plasteel, /area/security/brig) "axu" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ dir = 1 }, -/obj/effect/turf_decal/tile/red{ - dir = 2 - }, +/obj/effect/turf_decal/tile/red, /turf/open/floor/plasteel, /area/security/brig) "axv" = ( @@ -12346,7 +12138,6 @@ /obj/item/folder/red, /obj/item/taperecorder, /obj/item/radio/intercom{ - anyai = 1; broadcasting = 1; freerange = 1; frequency = 1424; @@ -12487,9 +12278,7 @@ /obj/structure/cable/yellow{ icon_state = "4-8" }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 2 - }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, /obj/effect/turf_decal/stripes/line{ dir = 1 }, @@ -12710,9 +12499,9 @@ /area/security/nuke_storage) "ayr" = ( /obj/machinery/power/apc{ + areastring = "/area/security/nuke_storage"; dir = 1; name = "Vault APC"; - areastring = "/area/security/nuke_storage"; pixel_y = 25 }, /obj/structure/cable/yellow{ @@ -12980,9 +12769,7 @@ /obj/machinery/light/small{ dir = 4 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 2 - }, +/obj/effect/turf_decal/tile/neutral, /turf/open/floor/plasteel, /area/crew_quarters/dorms) "ayQ" = ( @@ -13140,9 +12927,9 @@ /area/quartermaster/miningoffice) "azn" = ( /obj/machinery/power/apc{ + areastring = "/area/quartermaster/miningoffice"; dir = 1; name = "Mining APC"; - areastring = "/area/quartermaster/miningoffice"; pixel_y = 24 }, /obj/structure/cable/yellow{ @@ -13551,9 +13338,9 @@ icon_state = "0-2" }, /obj/machinery/power/apc{ + areastring = "/area/maintenance/fore"; dir = 1; name = "Fore Maintenance APC"; - areastring = "/area/maintenance/fore"; pixel_y = 24 }, /turf/open/floor/plating, @@ -13623,8 +13410,6 @@ dir = 1 }, /obj/item/radio/intercom{ - freerange = 0; - frequency = 1459; name = "Station Intercom (General)"; pixel_y = 28 }, @@ -13673,9 +13458,7 @@ /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ dir = 8 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 2 - }, +/obj/effect/turf_decal/tile/neutral, /turf/open/floor/plasteel, /area/crew_quarters/dorms) "aAi" = ( @@ -13778,14 +13561,11 @@ /area/engine/engineering) "aAr" = ( /obj/item/radio/intercom{ - freerange = 0; - frequency = 1459; name = "Station Intercom (General)"; pixel_y = 21 }, /obj/machinery/camera{ - c_tag = "Engineering - Fore"; - dir = 2 + c_tag = "Engineering - Fore" }, /obj/effect/turf_decal/stripes/line{ dir = 1 @@ -13841,9 +13621,7 @@ pixel_y = 30 }, /obj/effect/decal/cleanable/cobweb, -/turf/open/floor/plasteel/cult{ - dir = 2 - }, +/turf/open/floor/plasteel/cult, /area/library) "aAA" = ( /obj/docking_port/stationary{ @@ -13852,8 +13630,8 @@ height = 5; id = "mining_home"; name = "mining shuttle bay"; - width = 7; - roundstart_template = /datum/map_template/shuttle/mining/box + roundstart_template = /datum/map_template/shuttle/mining/box; + width = 7 }, /turf/open/space/basic, /area/space) @@ -14039,8 +13817,8 @@ height = 5; id = "laborcamp_home"; name = "fore bay 1"; - width = 9; - roundstart_template = /datum/map_template/shuttle/labour/box + roundstart_template = /datum/map_template/shuttle/labour/box; + width = 9 }, /turf/open/space/basic, /area/space) @@ -14244,9 +14022,7 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /turf/open/floor/plating, /area/maintenance/fore) "aBs" = ( @@ -14315,9 +14091,9 @@ dir = 1 }, /obj/machinery/power/apc{ + areastring = "/area/crew_quarters/dorms"; dir = 1; name = "Dormitories APC"; - areastring = "/area/crew_quarters/dorms"; pixel_y = 24 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ @@ -14355,9 +14131,7 @@ /obj/structure/sign/warning/pods{ pixel_x = 30 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 2 - }, +/obj/effect/turf_decal/tile/neutral, /turf/open/floor/plasteel, /area/crew_quarters/dorms) "aBC" = ( @@ -14409,8 +14183,7 @@ /area/engine/engineering) "aBG" = ( /obj/machinery/camera{ - c_tag = "Engineering - Storage"; - dir = 2 + c_tag = "Engineering - Storage" }, /obj/machinery/suit_storage_unit/engine, /obj/effect/turf_decal/bot{ @@ -14644,8 +14417,8 @@ "aCg" = ( /obj/machinery/camera/motion{ c_tag = "Vault"; - network = list("vault"); - dir = 1 + dir = 1; + network = list("vault") }, /obj/machinery/light, /obj/structure/cable/yellow{ @@ -14814,9 +14587,9 @@ dir = 8 }, /obj/machinery/power/apc{ + areastring = "/area/security/detectives_office"; dir = 8; name = "Detective APC"; - areastring = "/area/security/detectives_office"; pixel_x = -24 }, /obj/structure/cable/yellow{ @@ -14955,9 +14728,7 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 2 - }, +/obj/effect/turf_decal/tile/neutral, /turf/open/floor/plasteel, /area/crew_quarters/dorms) "aCJ" = ( @@ -15118,8 +14889,7 @@ }, /obj/machinery/computer/shuttle/mining{ dir = 4; - req_access = null; - req_one_access = null + req_access = null }, /obj/effect/turf_decal/tile/brown{ dir = 1 @@ -15274,8 +15044,7 @@ pixel_y = 32 }, /obj/machinery/camera{ - c_tag = "Fore Primary Hallway Cells"; - dir = 2 + c_tag = "Fore Primary Hallway Cells" }, /obj/effect/turf_decal/tile/red{ dir = 1 @@ -15396,8 +15165,6 @@ dir = 8 }, /obj/item/radio/intercom{ - freerange = 0; - frequency = 1459; name = "Station Intercom (General)"; pixel_x = 29; pixel_y = -2 @@ -15435,8 +15202,6 @@ "aDL" = ( /obj/machinery/light/small, /obj/item/radio/intercom{ - freerange = 0; - frequency = 1459; name = "Station Intercom (General)"; pixel_y = -26 }, @@ -15534,9 +15299,7 @@ /obj/structure/cable/yellow{ icon_state = "2-8" }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 2 - }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, /obj/structure/urinal{ pixel_y = 29 }, @@ -15861,9 +15624,9 @@ /area/quartermaster/warehouse) "aEE" = ( /obj/machinery/power/apc{ + areastring = "/area/quartermaster/warehouse"; dir = 4; name = "Warehouse APC"; - areastring = "/area/quartermaster/warehouse"; pixel_x = 27 }, /obj/structure/cable/yellow{ @@ -16030,7 +15793,6 @@ /obj/structure/table/reinforced, /obj/machinery/door/window/westleft{ base_state = "right"; - dir = 8; icon_state = "right"; name = "Outer Window" }, @@ -16128,9 +15890,8 @@ "aFe" = ( /obj/machinery/light/small, /obj/machinery/power/apc{ - dir = 2; - name = "Restrooms APC"; areastring = "/area/crew_quarters/toilet/restrooms"; + name = "Restrooms APC"; pixel_y = -26 }, /obj/structure/cable/yellow{ @@ -16214,9 +15975,7 @@ dir = 8; pixel_x = 28 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 2 - }, +/obj/effect/turf_decal/tile/neutral, /turf/open/floor/plasteel, /area/crew_quarters/dorms) "aFp" = ( @@ -16242,18 +16001,14 @@ /turf/open/floor/plasteel, /area/engine/engineering) "aFr" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /turf/open/floor/plasteel, /area/engine/engineering) "aFs" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 5 }, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /turf/open/floor/plasteel, /area/engine/engineering) "aFt" = ( @@ -16302,9 +16057,7 @@ /turf/open/floor/plating, /area/engine/engineering) "aFv" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 2 - }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, /obj/effect/turf_decal/stripes/line{ dir = 8 }, @@ -16381,9 +16134,7 @@ /obj/item/folder, /obj/item/folder, /obj/effect/decal/cleanable/cobweb/cobweb2, -/turf/open/floor/plasteel/cult{ - dir = 2 - }, +/turf/open/floor/plasteel/cult, /area/library) "aFF" = ( /obj/structure/table, @@ -16391,7 +16142,6 @@ /obj/item/pen, /obj/machinery/requests_console{ department = "Mining"; - departmentType = 0; pixel_y = -30 }, /obj/effect/turf_decal/tile/brown{ @@ -16698,9 +16448,8 @@ dir = 4 }, /obj/machinery/power/apc/highcap/five_k{ - dir = 2; - name = "Fore Primary Hallway APC"; areastring = "/area/hallway/primary/fore"; + name = "Fore Primary Hallway APC"; pixel_y = -27 }, /obj/structure/cable/yellow, @@ -16724,8 +16473,6 @@ dir = 4 }, /obj/item/radio/intercom{ - freerange = 0; - frequency = 1459; name = "Station Intercom (General)"; pixel_y = -26 }, @@ -16769,34 +16516,24 @@ /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ dir = 1 }, -/obj/effect/turf_decal/tile/red{ - dir = 2 - }, +/obj/effect/turf_decal/tile/red, /turf/open/floor/plasteel, /area/hallway/primary/fore) "aGm" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 2 - }, -/obj/effect/turf_decal/tile/red{ - dir = 2 - }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/obj/effect/turf_decal/tile/red, /turf/open/floor/plasteel, /area/hallway/primary/fore) "aGn" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 9 }, -/obj/effect/turf_decal/tile/red{ - dir = 2 - }, +/obj/effect/turf_decal/tile/red, /turf/open/floor/plasteel, /area/hallway/primary/fore) "aGo" = ( /obj/item/beacon, -/obj/effect/turf_decal/tile/red{ - dir = 2 - }, +/obj/effect/turf_decal/tile/red, /turf/open/floor/plasteel, /area/hallway/primary/fore) "aGp" = ( @@ -16991,9 +16728,7 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 2 - }, +/obj/effect/turf_decal/tile/neutral, /turf/open/floor/plasteel, /area/crew_quarters/dorms) "aGJ" = ( @@ -17005,9 +16740,7 @@ dir = 1; pixel_y = -22 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 2 - }, +/obj/effect/turf_decal/tile/neutral, /turf/open/floor/plasteel, /area/crew_quarters/dorms) "aGK" = ( @@ -17015,18 +16748,12 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 2 - }, +/obj/effect/turf_decal/tile/neutral, /turf/open/floor/plasteel, /area/crew_quarters/dorms) "aGL" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 2 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 2 - }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/obj/effect/turf_decal/tile/neutral, /turf/open/floor/plasteel, /area/crew_quarters/dorms) "aGM" = ( @@ -17326,9 +17053,7 @@ /turf/open/floor/plasteel, /area/construction/storage/wing) "aHp" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 2 - }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, /obj/effect/turf_decal/tile/brown{ dir = 8 }, @@ -17418,9 +17143,7 @@ /area/hallway/primary/fore) "aHB" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/turf_decal/tile/red{ - dir = 2 - }, +/obj/effect/turf_decal/tile/red, /turf/open/floor/plasteel, /area/hallway/primary/fore) "aHC" = ( @@ -17517,9 +17240,7 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 6 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 2 - }, +/obj/effect/turf_decal/tile/neutral, /turf/open/floor/plasteel, /area/crew_quarters/dorms) "aHQ" = ( @@ -17716,8 +17437,7 @@ dir = 1 }, /obj/machinery/camera{ - c_tag = "Cargo Bay - Fore"; - dir = 2 + c_tag = "Cargo Bay - Fore" }, /obj/structure/sign/map/right{ desc = "A framed picture of the station. Clockwise from security at the top (red), you see engineering (yellow), science (purple), escape (red and white), medbay (green), arrivals (blue and white), and finally cargo (brown)."; @@ -17733,9 +17453,7 @@ /obj/structure/cable/yellow{ icon_state = "4-8" }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 2 - }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, /obj/structure/cable/yellow{ icon_state = "1-4" }, @@ -17770,9 +17488,7 @@ /obj/structure/disposalpipe/segment{ dir = 6 }, -/obj/effect/turf_decal/stripes/corner{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/corner, /turf/open/floor/plasteel, /area/quartermaster/storage) "aIp" = ( @@ -17785,9 +17501,7 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /turf/open/floor/plasteel, /area/quartermaster/storage) "aIq" = ( @@ -17853,9 +17567,8 @@ dir = 4 }, /obj/machinery/power/apc{ - dir = 2; - name = "Storage Wing APC"; areastring = "/area/construction/storage/wing"; + name = "Storage Wing APC"; pixel_y = -27 }, /obj/structure/cable/yellow{ @@ -17897,12 +17610,8 @@ /obj/structure/cable/yellow{ icon_state = "1-8" }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 2 - }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, /obj/item/radio/intercom{ - freerange = 0; - frequency = 1459; name = "Station Intercom (General)"; pixel_y = -26 }, @@ -18063,9 +17772,7 @@ /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ dir = 4 }, -/obj/effect/turf_decal/tile/red{ - dir = 2 - }, +/obj/effect/turf_decal/tile/red, /turf/open/floor/plasteel, /area/hallway/primary/fore) "aIL" = ( @@ -18085,8 +17792,6 @@ /area/security/courtroom) "aIN" = ( /obj/item/radio/intercom{ - broadcasting = 0; - listening = 1; name = "Station Intercom (General)"; pixel_y = 20 }, @@ -18118,8 +17823,7 @@ dir = 1 }, /obj/machinery/camera{ - c_tag = "Courtroom"; - dir = 2 + c_tag = "Courtroom" }, /obj/effect/turf_decal/tile/blue{ dir = 1 @@ -18200,9 +17904,9 @@ icon_state = "0-2" }, /obj/machinery/power/apc{ + areastring = "/area/lawoffice"; dir = 1; name = "Law Office APC"; - areastring = "/area/lawoffice"; pixel_y = 24 }, /obj/item/twohanded/required/kirbyplants{ @@ -18222,9 +17926,7 @@ }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/disposalpipe/segment, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /turf/open/floor/plating, /area/maintenance/fore) "aJa" = ( @@ -18295,9 +17997,7 @@ /area/crew_quarters/dorms) "aJg" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/effect/turf_decal/tile/neutral{ - dir = 2 - }, +/obj/effect/turf_decal/tile/neutral, /turf/open/floor/plasteel, /area/crew_quarters/dorms) "aJh" = ( @@ -18326,8 +18026,7 @@ dir = 1 }, /obj/machinery/camera{ - c_tag = "Engineering - Secure Storage"; - dir = 2 + c_tag = "Engineering - Secure Storage" }, /turf/open/floor/plating, /area/engine/engineering) @@ -18545,9 +18244,7 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, -/obj/effect/turf_decal/tile/red{ - dir = 2 - }, +/obj/effect/turf_decal/tile/red, /turf/open/floor/plasteel, /area/hallway/primary/fore) "aJW" = ( @@ -18911,7 +18608,6 @@ /area/engine/engineering) "aKN" = ( /obj/machinery/door/poddoor{ - density = 1; id = "QMLoaddoor2"; name = "Supply Dock Loading Door" }, @@ -19215,8 +18911,8 @@ dir = 8 }, /obj/machinery/flasher{ - pixel_y = 24; - id = "AI" + id = "AI"; + pixel_y = 24 }, /turf/open/floor/plasteel/dark, /area/ai_monitored/turret_protected/ai_upload) @@ -19399,8 +19095,6 @@ /obj/machinery/atmospherics/components/unary/portables_connector/visible, /obj/machinery/portable_atmospherics/scrubber, /obj/item/radio/intercom{ - freerange = 0; - frequency = 1459; name = "Station Intercom (General)"; pixel_y = 26 }, @@ -19414,8 +19108,7 @@ /obj/machinery/disposal/bin, /obj/structure/disposalpipe/trunk, /obj/machinery/camera{ - c_tag = "Locker Room Starboard"; - dir = 2 + c_tag = "Locker Room Starboard" }, /obj/structure/sign/warning/pods{ pixel_y = 30 @@ -19498,8 +19191,7 @@ "aLX" = ( /obj/machinery/door/firedoor/border_only/closed{ dir = 8; - name = "Animal Pen A"; - opacity = 1 + name = "Animal Pen A" }, /turf/open/floor/grass, /area/hydroponics/garden) @@ -19736,8 +19428,8 @@ /obj/effect/spawner/lootdrop/aimodule_neutral, /obj/item/aiModule/core/full/custom, /obj/machinery/flasher{ - pixel_y = 24; - id = "AI" + id = "AI"; + pixel_y = 24 }, /turf/open/floor/plasteel/dark, /area/ai_monitored/turret_protected/ai_upload) @@ -19747,16 +19439,14 @@ "aMI" = ( /obj/structure/table, /obj/machinery/door/window{ - base_state = "left"; dir = 8; - icon_state = "left"; name = "High-Risk Modules"; req_access_txt = "20" }, /obj/structure/window/reinforced, /obj/machinery/flasher{ - pixel_y = 24; - id = "AI" + id = "AI"; + pixel_y = 24 }, /obj/effect/spawner/lootdrop/aimodule_harmful, /obj/item/aiModule/supplied/oxygen, @@ -19768,8 +19458,6 @@ "aMJ" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/item/radio/intercom{ - freerange = 0; - frequency = 1459; name = "Station Intercom (General)"; pixel_x = -29 }, @@ -19943,9 +19631,7 @@ /turf/open/floor/plasteel, /area/crew_quarters/locker) "aNa" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 2 - }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, /obj/structure/disposalpipe/segment{ dir = 4 }, @@ -20182,7 +19868,6 @@ pixel_y = -5 }, /obj/machinery/button/door{ - dir = 2; id = "QMLoaddoor2"; layer = 4; name = "Loading Doors"; @@ -20233,9 +19918,7 @@ dir = 4 }, /obj/structure/disposalpipe/segment, -/obj/effect/turf_decal/stripes/corner{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/corner, /turf/open/floor/plasteel, /area/quartermaster/storage) "aNL" = ( @@ -20290,16 +19973,14 @@ /turf/open/floor/plasteel, /area/quartermaster/qm) "aNP" = ( -/obj/machinery/camera/autoname{ - dir = 2 - }, +/obj/machinery/camera/autoname, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 10 }, /obj/machinery/power/apc{ + areastring = "/area/quartermaster/qm"; dir = 1; name = "Quartermaster's Office APC"; - areastring = "/area/quartermaster/qm"; pixel_y = 30 }, /obj/structure/cable/yellow{ @@ -20442,9 +20123,7 @@ dir = 8 }, /obj/machinery/door/window/westleft{ - base_state = "left"; dir = 2; - icon_state = "left"; layer = 3.1; name = "Cyborg Upload Console Window"; req_access_txt = "16" @@ -20664,9 +20343,7 @@ /obj/structure/cable/yellow{ icon_state = "4-8" }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 2 - }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, /turf/open/floor/plasteel, /area/crew_quarters/locker) "aOC" = ( @@ -20706,9 +20383,7 @@ /turf/open/floor/plasteel, /area/crew_quarters/locker) "aOF" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 2 - }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, /obj/structure/disposalpipe/segment{ dir = 4 }, @@ -20812,9 +20487,9 @@ /area/hydroponics/garden) "aON" = ( /obj/machinery/power/apc{ + areastring = "/area/hydroponics/garden"; dir = 4; name = "Garden APC"; - areastring = "/area/hydroponics/garden"; pixel_x = 27; pixel_y = 2 }, @@ -20837,9 +20512,9 @@ /area/hydroponics/garden) "aOO" = ( /obj/machinery/power/apc/highcap/ten_k{ + areastring = "/area/engine/engineering"; dir = 8; name = "Engine Room APC"; - areastring = "/area/engine/engineering"; pixel_x = -26 }, /obj/structure/cable/yellow{ @@ -20884,8 +20559,6 @@ dir = 1 }, /obj/item/radio/intercom{ - freerange = 0; - frequency = 1459; name = "Station Intercom (General)"; pixel_y = 21 }, @@ -21079,9 +20752,7 @@ /obj/item/stack/packageWrap, /obj/item/stack/packageWrap, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/effect/turf_decal/tile/brown{ - dir = 2 - }, +/obj/effect/turf_decal/tile/brown, /turf/open/floor/plasteel, /area/storage/primary) "aPp" = ( @@ -21108,7 +20779,6 @@ }, /obj/machinery/requests_console{ department = "Tool Storage"; - departmentType = 0; pixel_x = 30 }, /obj/machinery/light{ @@ -21200,9 +20870,7 @@ c_tag = "Fore Primary Hallway Aft"; dir = 8 }, -/obj/effect/turf_decal/tile/red{ - dir = 2 - }, +/obj/effect/turf_decal/tile/red, /turf/open/floor/plasteel, /area/hallway/primary/fore) "aPB" = ( @@ -21306,9 +20974,7 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 6 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 2 - }, +/obj/effect/turf_decal/tile/neutral, /turf/open/floor/plasteel, /area/crew_quarters/locker) "aPN" = ( @@ -21349,8 +21015,6 @@ /area/hydroponics/garden) "aPR" = ( /obj/item/radio/intercom{ - freerange = 0; - frequency = 1459; name = "Station Intercom (General)"; pixel_x = 29 }, @@ -21424,8 +21088,7 @@ pixel_y = 32 }, /obj/machinery/camera{ - c_tag = "Engineering - Power Monitoring"; - dir = 2 + c_tag = "Engineering - Power Monitoring" }, /obj/machinery/modular_computer/console/preset/engineering, /obj/effect/turf_decal/tile/neutral{ @@ -21491,7 +21154,6 @@ /area/engine/engineering) "aQg" = ( /obj/machinery/door/poddoor{ - density = 1; id = "QMLoaddoor"; name = "Supply Dock Loading Door" }, @@ -21674,9 +21336,8 @@ /area/ai_monitored/turret_protected/ai_upload) "aQA" = ( /obj/machinery/power/apc/highcap/five_k{ - dir = 2; - name = "Upload APC"; areastring = "/area/ai_monitored/turret_protected/ai_upload"; + name = "Upload APC"; pixel_y = -24 }, /obj/structure/cable/yellow{ @@ -21826,8 +21487,7 @@ icon_state = "4-8" }, /obj/machinery/camera{ - c_tag = "Crew Quarters Entrance"; - dir = 2 + c_tag = "Crew Quarters Entrance" }, /obj/effect/turf_decal/tile/neutral{ dir = 1 @@ -21887,9 +21547,7 @@ /obj/structure/cable/yellow{ icon_state = "4-8" }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 2 - }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, /turf/open/floor/plasteel, /area/crew_quarters/locker) "aQU" = ( @@ -21961,9 +21619,7 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 9 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 2 - }, +/obj/effect/turf_decal/tile/neutral, /turf/open/floor/plasteel, /area/crew_quarters/locker) "aRb" = ( @@ -22025,8 +21681,7 @@ "aRg" = ( /obj/machinery/door/firedoor/border_only/closed{ dir = 8; - name = "Animal Pen B"; - opacity = 1 + name = "Animal Pen B" }, /turf/open/floor/grass, /area/hydroponics/garden) @@ -22271,8 +21926,6 @@ dir = 1 }, /obj/item/radio/intercom{ - broadcasting = 0; - listening = 1; name = "Station Intercom (General)"; pixel_y = -28 }, @@ -22390,8 +22043,7 @@ "aRX" = ( /obj/machinery/door/firedoor, /obj/machinery/door/airlock/grunge{ - name = "Courtroom"; - opacity = 1 + name = "Courtroom" }, /turf/open/floor/plasteel/dark, /area/security/courtroom) @@ -22460,9 +22112,7 @@ pixel_x = 4; pixel_y = -2 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 2 - }, +/obj/effect/turf_decal/tile/neutral, /turf/open/floor/plasteel, /area/crew_quarters/locker) "aSj" = ( @@ -22553,9 +22203,7 @@ "aSq" = ( /obj/machinery/power/terminal, /obj/structure/cable, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /turf/open/floor/plasteel, /area/engine/engineering) "aSr" = ( @@ -22732,9 +22380,8 @@ icon_state = "0-8" }, /obj/machinery/power/apc{ - dir = 2; - name = "Auxillary Base Construction APC"; areastring = "/area/construction/mining/aux_base"; + name = "Auxillary Base Construction APC"; pixel_y = -24 }, /obj/effect/turf_decal/tile/yellow, @@ -22775,9 +22422,7 @@ /obj/structure/cable/yellow{ icon_state = "1-2" }, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /turf/open/floor/plating, /area/maintenance/port) "aSP" = ( @@ -22992,8 +22637,6 @@ /area/security/courtroom) "aTm" = ( /obj/item/radio/intercom{ - freerange = 0; - frequency = 1459; name = "Station Intercom (General)"; pixel_y = -26 }, @@ -23046,18 +22689,14 @@ codes_txt = "patrol;next_patrol=14.3-Lockers-Dorms"; location = "14.2-Central-CrewQuarters" }, -/obj/effect/turf_decal/tile/neutral{ - dir = 2 - }, +/obj/effect/turf_decal/tile/neutral, /turf/open/floor/plasteel, /area/crew_quarters/locker) "aTt" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 2 - }, +/obj/effect/turf_decal/tile/neutral, /turf/open/floor/plasteel, /area/crew_quarters/locker) "aTu" = ( @@ -23075,16 +22714,13 @@ dir = 4 }, /obj/machinery/power/apc{ - dir = 2; - name = "Locker Room APC"; areastring = "/area/crew_quarters/locker"; + name = "Locker Room APC"; pixel_x = -1; pixel_y = -26 }, /obj/structure/cable/yellow, -/obj/effect/turf_decal/tile/neutral{ - dir = 2 - }, +/obj/effect/turf_decal/tile/neutral, /turf/open/floor/plasteel, /area/crew_quarters/locker) "aTw" = ( @@ -23092,8 +22728,6 @@ dir = 4 }, /obj/item/radio/intercom{ - freerange = 0; - frequency = 1459; name = "Station Intercom (General)"; pixel_y = -26 }, @@ -23101,9 +22735,7 @@ c_tag = "Locker Room Port"; dir = 1 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 2 - }, +/obj/effect/turf_decal/tile/neutral, /turf/open/floor/plasteel, /area/crew_quarters/locker) "aTx" = ( @@ -23111,9 +22743,7 @@ dir = 4 }, /obj/machinery/light, -/obj/effect/turf_decal/tile/neutral{ - dir = 2 - }, +/obj/effect/turf_decal/tile/neutral, /turf/open/floor/plasteel, /area/crew_quarters/locker) "aTy" = ( @@ -23124,9 +22754,7 @@ dir = 1; pixel_y = -24 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 2 - }, +/obj/effect/turf_decal/tile/neutral, /turf/open/floor/plasteel, /area/crew_quarters/locker) "aTz" = ( @@ -23137,27 +22765,21 @@ /obj/machinery/newscaster{ pixel_y = -32 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 2 - }, +/obj/effect/turf_decal/tile/neutral, /turf/open/floor/plasteel, /area/crew_quarters/locker) "aTA" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 9 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 2 - }, +/obj/effect/turf_decal/tile/neutral, /turf/open/floor/plasteel, /area/crew_quarters/locker) "aTB" = ( /obj/structure/extinguisher_cabinet{ pixel_x = 27 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 2 - }, +/obj/effect/turf_decal/tile/neutral, /turf/open/floor/plasteel, /area/crew_quarters/locker) "aTC" = ( @@ -23228,26 +22850,20 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 6 }, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /turf/open/floor/plasteel, /area/engine/engineering) "aTH" = ( /obj/structure/disposalpipe/segment{ dir = 9 }, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /obj/machinery/atmospherics/pipe/manifold/supply/hidden, /turf/open/floor/plasteel, /area/engine/engineering) "aTI" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, @@ -23258,9 +22874,7 @@ /obj/structure/cable/yellow{ icon_state = "1-2" }, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 10 }, @@ -23316,7 +22930,6 @@ dir = 8 }, /obj/machinery/door/window{ - dir = 2; name = "MiniSat Walkway Access" }, /turf/open/floor/plasteel/dark, @@ -23398,7 +23011,6 @@ }, /obj/machinery/door/window{ base_state = "right"; - dir = 2; icon_state = "right"; name = "MiniSat Walkway Access" }, @@ -23489,9 +23101,9 @@ /area/security/checkpoint/supply) "aUk" = ( /obj/machinery/power/apc{ + areastring = "/area/security/checkpoint/supply"; dir = 1; name = "Security Post - Cargo Bay APC"; - areastring = "/area/security/checkpoint/supply"; pixel_x = 1; pixel_y = 24 }, @@ -23656,9 +23268,8 @@ icon_state = "0-4" }, /obj/machinery/power/apc{ - dir = 2; - name = "AI Upload Access APC"; areastring = "/area/ai_monitored/turret_protected/ai_upload_foyer"; + name = "AI Upload Access APC"; pixel_y = -27 }, /obj/machinery/light/small{ @@ -23700,6 +23311,7 @@ /obj/effect/turf_decal/tile/neutral{ dir = 8 }, +/obj/effect/landmark/start/cyborg, /turf/open/floor/plasteel/dark, /area/ai_monitored/turret_protected/ai_upload_foyer) "aUA" = ( @@ -23736,7 +23348,6 @@ dir = 4 }, /obj/structure/sign/directions/command{ - dir = 2; pixel_y = -8 }, /turf/closed/wall/r_wall, @@ -23768,9 +23379,7 @@ /obj/machinery/door/airlock/public/glass{ name = "Fore Primary Hallway" }, -/obj/effect/turf_decal/tile/red{ - dir = 2 - }, +/obj/effect/turf_decal/tile/red, /turf/open/floor/plasteel, /area/hallway/primary/fore) "aUF" = ( @@ -23785,9 +23394,8 @@ /area/security/courtroom) "aUG" = ( /obj/machinery/power/apc{ - dir = 2; - name = "Courtroom APC"; areastring = "/area/security/courtroom"; + name = "Courtroom APC"; pixel_x = 1; pixel_y = -24 }, @@ -23852,9 +23460,7 @@ dir = 8; pixel_x = 24 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 2 - }, +/obj/effect/turf_decal/tile/neutral, /turf/open/floor/plasteel, /area/crew_quarters/locker) "aUM" = ( @@ -23995,9 +23601,7 @@ "aUX" = ( /obj/structure/closet/secure_closet/personal, /obj/item/clothing/under/assistantformal, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 2 - }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, /obj/item/clothing/suit/hooded/wintercoat, /obj/item/clothing/shoes/winterboots, /obj/effect/turf_decal/tile/neutral{ @@ -24032,7 +23636,6 @@ /area/engine/engineering) "aVa" = ( /obj/machinery/requests_console{ - announcementConsole = 0; department = "Engineering"; departmentType = 4; name = "Engineering RC" @@ -24115,7 +23718,6 @@ /area/ai_monitored/turret_protected/ai) "aVn" = ( /obj/structure/showcase/cyborg/old{ - dir = 2; pixel_y = 20 }, /turf/open/floor/plasteel/dark, @@ -24123,11 +23725,9 @@ "aVp" = ( /obj/machinery/camera{ c_tag = "AI Chamber - Fore"; - dir = 2; network = list("aicore") }, /obj/structure/showcase/cyborg/old{ - dir = 2; pixel_y = 20 }, /obj/structure/cable{ @@ -24170,8 +23770,6 @@ /area/hallway/secondary/entry) "aVv" = ( /obj/item/radio/intercom{ - freerange = 0; - frequency = 1459; name = "Station Intercom (General)"; pixel_y = 21 }, @@ -24191,8 +23789,7 @@ "aVx" = ( /obj/structure/chair, /obj/machinery/camera{ - c_tag = "Arrivals - Fore Arm - Far"; - dir = 2 + c_tag = "Arrivals - Fore Arm - Far" }, /obj/effect/turf_decal/stripes/line{ dir = 1 @@ -24240,9 +23837,7 @@ /obj/machinery/light{ dir = 1 }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 2 - }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, /obj/structure/cable/yellow{ icon_state = "4-8" }, @@ -24550,8 +24145,7 @@ /area/hallway/primary/central) "aWd" = ( /obj/machinery/camera{ - c_tag = "Central Primary Hallway - Fore"; - dir = 2 + c_tag = "Central Primary Hallway - Fore" }, /obj/effect/turf_decal/tile/red{ dir = 1 @@ -24623,8 +24217,6 @@ icon_state = "plant-16" }, /obj/item/radio/intercom{ - freerange = 0; - frequency = 1459; name = "Station Intercom (General)"; pixel_y = 21 }, @@ -24644,8 +24236,7 @@ }, /obj/machinery/door/firedoor, /obj/machinery/door/airlock/grunge{ - name = "Courtroom"; - opacity = 1 + name = "Courtroom" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plasteel/dark, @@ -24961,9 +24552,7 @@ /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ dir = 8 }, -/obj/effect/turf_decal/stripes/corner{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/corner, /turf/open/floor/plasteel, /area/hallway/secondary/entry) "aWZ" = ( @@ -25273,9 +24862,7 @@ /obj/structure/cable/yellow{ icon_state = "1-2" }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 2 - }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, /obj/effect/turf_decal/tile/neutral{ dir = 1 }, @@ -25330,8 +24917,7 @@ dir = 1 }, /obj/machinery/camera{ - c_tag = "Central Primary Hallway - Fore - AI Upload"; - dir = 2 + c_tag = "Central Primary Hallway - Fore - AI Upload" }, /obj/structure/sign/warning/securearea{ desc = "A warning sign which reads 'HIGH-POWER TURRETS AHEAD'."; @@ -25349,8 +24935,6 @@ }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/item/radio/intercom{ - freerange = 0; - frequency = 1459; name = "Station Intercom (General)"; pixel_y = 21 }, @@ -25372,9 +24956,7 @@ /turf/open/floor/plasteel, /area/hallway/primary/central) "aXH" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 2 - }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, /obj/machinery/status_display/ai{ pixel_y = 32 }, @@ -25448,9 +25030,7 @@ /turf/open/floor/plasteel, /area/hallway/primary/central) "aXO" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 2 - }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, /obj/effect/turf_decal/plaque{ icon_state = "L9" }, @@ -25499,9 +25079,7 @@ /turf/open/floor/plasteel, /area/hallway/primary/central) "aXU" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 2 - }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, /obj/structure/cable/yellow{ icon_state = "1-2" }, @@ -25534,9 +25112,7 @@ /turf/open/floor/plasteel, /area/hallway/primary/central) "aXX" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 2 - }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, /obj/effect/turf_decal/tile/neutral{ dir = 4 }, @@ -25694,8 +25270,6 @@ /obj/item/assembly/flash/handheld, /obj/item/assembly/flash/handheld, /obj/item/radio/intercom{ - freerange = 0; - frequency = 1459; name = "Station Intercom (General)"; pixel_y = 28 }, @@ -25709,8 +25283,6 @@ /area/storage/tech) "aYo" = ( /obj/item/radio/intercom{ - freerange = 0; - frequency = 1459; name = "Station Intercom (General)"; pixel_x = -29 }, @@ -25745,8 +25317,7 @@ pixel_y = 30 }, /obj/machinery/camera{ - c_tag = "Chief Engineer's Office"; - dir = 2 + c_tag = "Chief Engineer's Office" }, /obj/effect/turf_decal/tile/neutral{ dir = 1 @@ -25763,9 +25334,9 @@ "aYr" = ( /obj/structure/disposalpipe/segment, /obj/machinery/power/apc{ + areastring = "/area/crew_quarters/heads/chief"; dir = 4; name = "CE Office APC"; - areastring = "/area/crew_quarters/heads/chief"; pixel_x = 28 }, /obj/structure/cable/yellow, @@ -25803,8 +25374,6 @@ /area/engine/engineering) "aYt" = ( /obj/item/radio/intercom{ - freerange = 0; - frequency = 1459; name = "Station Intercom (General)"; pixel_x = 29 }, @@ -25982,9 +25551,7 @@ /area/quartermaster/storage) "aYO" = ( /obj/structure/disposalpipe/segment, -/obj/effect/turf_decal/stripes/corner{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/corner, /turf/open/floor/plasteel, /area/quartermaster/storage) "aYP" = ( @@ -25992,17 +25559,13 @@ c_tag = "Cargo Bay - Aft"; dir = 1 }, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /turf/open/floor/plasteel, /area/quartermaster/storage) "aYQ" = ( /obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /turf/open/floor/plasteel, /area/quartermaster/storage) "aYR" = ( @@ -26276,9 +25839,9 @@ /area/storage/tech) "aZx" = ( /obj/machinery/power/apc{ + areastring = "/area/storage/tech"; dir = 8; name = "Tech Storage APC"; - areastring = "/area/storage/tech"; pixel_x = -27 }, /obj/structure/cable/yellow{ @@ -26398,9 +25961,7 @@ "aZD" = ( /obj/structure/table/reinforced, /obj/item/flashlight/lamp, -/obj/effect/turf_decal/tile/neutral{ - dir = 2 - }, +/obj/effect/turf_decal/tile/neutral, /turf/open/floor/plasteel, /area/crew_quarters/heads/chief) "aZE" = ( @@ -26560,7 +26121,6 @@ "aZQ" = ( /obj/effect/landmark/start/ai/secondary, /obj/item/radio/intercom{ - anyai = 1; freerange = 1; listening = 0; name = "Custom Channel"; @@ -26568,15 +26128,11 @@ pixel_y = 22 }, /obj/item/radio/intercom{ - broadcasting = 0; freerange = 1; - listening = 1; name = "Common Channel"; pixel_x = -27 }, /obj/item/radio/intercom{ - anyai = 1; - broadcasting = 0; freerange = 1; frequency = 1447; name = "Private Channel"; @@ -26586,10 +26142,10 @@ /obj/machinery/door/window{ base_state = "rightsecure"; dir = 4; - obj_integrity = 300; icon_state = "rightsecure"; layer = 4.1; name = "Secondary AI Core Access"; + obj_integrity = 300; pixel_x = 4; req_access_txt = "16" }, @@ -26642,14 +26198,13 @@ /obj/machinery/door/window{ base_state = "rightsecure"; dir = 4; - obj_integrity = 300; icon_state = "rightsecure"; name = "Primary AI Core Access"; + obj_integrity = 300; req_access_txt = "16" }, /obj/machinery/camera{ c_tag = "AI Chamber - Core"; - dir = 2; network = list("aicore") }, /obj/effect/turf_decal/tile/neutral{ @@ -26696,7 +26251,6 @@ "aZY" = ( /obj/effect/landmark/start/ai/secondary, /obj/item/radio/intercom{ - anyai = 1; freerange = 1; listening = 0; name = "Custom Channel"; @@ -26704,15 +26258,11 @@ pixel_y = 22 }, /obj/item/radio/intercom{ - broadcasting = 0; freerange = 1; - listening = 1; name = "Common Channel"; pixel_x = 27 }, /obj/item/radio/intercom{ - anyai = 1; - broadcasting = 0; freerange = 1; frequency = 1447; name = "Private Channel"; @@ -26722,19 +26272,17 @@ /obj/machinery/door/window{ base_state = "leftsecure"; dir = 8; - obj_integrity = 300; icon_state = "leftsecure"; layer = 4.1; name = "Tertiary AI Core Access"; + obj_integrity = 300; pixel_x = -3; req_access_txt = "16" }, /turf/open/floor/circuit/green, /area/ai_monitored/turret_protected/ai) "aZZ" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /turf/open/floor/plating, /area/hallway/secondary/entry) "baa" = ( @@ -26841,8 +26389,6 @@ /area/maintenance/port/fore) "bal" = ( /obj/item/radio/intercom{ - broadcasting = 0; - listening = 1; name = "Station Intercom (General)"; pixel_y = -28 }, @@ -26874,9 +26420,7 @@ pixel_x = -8; pixel_y = -2 }, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /turf/open/floor/plasteel, /area/quartermaster/storage) "bap" = ( @@ -26907,17 +26451,14 @@ pixel_x = 4; pixel_y = 3 }, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /turf/open/floor/plasteel, /area/quartermaster/storage) "baq" = ( /obj/structure/rack, /obj/machinery/power/apc{ - dir = 2; - name = "Cargo Bay APC"; areastring = "/area/quartermaster/storage"; + name = "Cargo Bay APC"; pixel_x = 1; pixel_y = -24 }, @@ -26928,15 +26469,11 @@ /obj/item/screwdriver{ pixel_y = 10 }, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /turf/open/floor/plasteel, /area/quartermaster/storage) "bar" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /obj/machinery/vending/wardrobe/cargo_wardrobe, /turf/open/floor/plasteel, /area/quartermaster/storage) @@ -27038,7 +26575,6 @@ /area/hallway/primary/port) "baB" = ( /obj/machinery/firealarm{ - dir = 2; pixel_y = 24 }, /obj/effect/turf_decal/tile/brown{ @@ -27112,9 +26648,7 @@ /obj/structure/disposalpipe/segment{ dir = 6 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 2 - }, +/obj/effect/turf_decal/tile/neutral, /obj/structure/sign/departments/custodian{ pixel_x = 32; pixel_y = -32 @@ -27128,25 +26662,18 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 2 - }, +/obj/effect/turf_decal/tile/neutral, /turf/open/floor/plasteel, /area/hallway/primary/central) "baJ" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 2 - }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, /obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 2 - }, +/obj/effect/turf_decal/tile/neutral, /mob/living/simple_animal/bot/cleanbot{ auto_patrol = 1; icon_state = "cleanbot1"; - mode = 0; name = "Mopficcer Sweepsky" }, /turf/open/floor/plasteel, @@ -27159,9 +26686,7 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 2 - }, +/obj/effect/turf_decal/tile/neutral, /turf/open/floor/plasteel, /area/hallway/primary/central) "baL" = ( @@ -27175,9 +26700,7 @@ /obj/structure/extinguisher_cabinet{ pixel_y = -30 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 2 - }, +/obj/effect/turf_decal/tile/neutral, /turf/open/floor/plasteel, /area/hallway/primary/central) "baM" = ( @@ -27191,21 +26714,15 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 2 - }, +/obj/effect/turf_decal/tile/neutral, /turf/open/floor/plasteel, /area/hallway/primary/central) "baN" = ( /obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 2 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 2 - }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/obj/effect/turf_decal/tile/neutral, /turf/open/floor/plasteel, /area/hallway/primary/central) "baO" = ( @@ -27219,9 +26736,7 @@ /obj/structure/disposalpipe/segment{ dir = 10 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 2 - }, +/obj/effect/turf_decal/tile/neutral, /turf/open/floor/plasteel, /area/hallway/primary/central) "baP" = ( @@ -27229,30 +26744,20 @@ dir = 1; pixel_y = -24 }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 2 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 2 - }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/obj/effect/turf_decal/tile/neutral, /turf/open/floor/plasteel, /area/hallway/primary/central) "baQ" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 2 - }, +/obj/effect/turf_decal/tile/neutral, /turf/open/floor/plasteel, /area/hallway/primary/central) "baR" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 2 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 2 - }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/obj/effect/turf_decal/tile/neutral, /turf/open/floor/plasteel, /area/hallway/primary/central) "baS" = ( @@ -27322,9 +26827,7 @@ /turf/open/floor/plasteel, /area/hallway/primary/central) "baY" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 2 - }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, /obj/structure/extinguisher_cabinet{ pixel_y = -30 }, @@ -27338,8 +26841,6 @@ dir = 1 }, /obj/item/radio/intercom{ - freerange = 0; - frequency = 1459; name = "Station Intercom (General)"; pixel_x = -27; pixel_y = -29 @@ -27385,9 +26886,9 @@ /area/storage/tools) "bbd" = ( /obj/machinery/power/apc{ + areastring = "/area/storage/tools"; dir = 1; name = "Auxiliary Tool Storage APC"; - areastring = "/area/storage/tools"; pixel_y = 24 }, /obj/structure/cable/yellow{ @@ -27419,8 +26920,6 @@ "bbf" = ( /obj/structure/closet/toolcloset, /obj/item/radio/intercom{ - freerange = 0; - frequency = 1459; name = "Station Intercom (General)"; pixel_y = 28 }, @@ -27481,8 +26980,6 @@ dir = 8 }, /obj/item/radio/intercom{ - freerange = 0; - frequency = 1459; name = "Station Intercom (General)"; pixel_x = 29 }, @@ -27860,7 +27357,6 @@ /obj/structure/plasticflaps/opaque, /obj/machinery/conveyor{ backwards = 1; - dir = 2; forwards = 2; id = "packageSort2" }, @@ -27875,9 +27371,9 @@ /obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/machinery/power/apc{ + areastring = "/area/quartermaster/office"; dir = 8; name = "Cargo Office APC"; - areastring = "/area/quartermaster/office"; pixel_x = -24 }, /obj/structure/cable/yellow{ @@ -27944,7 +27440,6 @@ /obj/structure/table/reinforced, /obj/machinery/door/firedoor, /obj/machinery/door/window/westleft{ - dir = 8; name = "Cargo Desk"; req_access_txt = "50" }, @@ -27991,8 +27486,6 @@ "bcb" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/item/radio/intercom{ - freerange = 0; - frequency = 1459; name = "Station Intercom (General)"; pixel_x = -29 }, @@ -28007,9 +27500,7 @@ "bcc" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/structure/disposalpipe/segment, -/obj/effect/turf_decal/tile/neutral{ - dir = 2 - }, +/obj/effect/turf_decal/tile/neutral, /turf/open/floor/plasteel, /area/hallway/primary/central) "bcd" = ( @@ -28369,9 +27860,9 @@ /area/engine/engineering) "bcL" = ( /obj/machinery/power/apc{ + areastring = "/area/security/checkpoint/engineering"; dir = 8; name = "Engineering Security APC"; - areastring = "/area/security/checkpoint/engineering"; pixel_x = -24 }, /obj/structure/cable/yellow{ @@ -28478,9 +27969,9 @@ /area/security/checkpoint/customs) "bcY" = ( /obj/machinery/power/apc{ + areastring = "/area/security/checkpoint/customs"; dir = 1; name = "Customs APC"; - areastring = "/area/security/checkpoint/customs"; pixel_y = 24 }, /obj/structure/cable/yellow{ @@ -28499,7 +27990,6 @@ /area/security/checkpoint/customs) "bcZ" = ( /obj/item/radio/intercom{ - broadcasting = 0; name = "Station Intercom (General)"; pixel_y = 20 }, @@ -28523,8 +28013,7 @@ pixel_y = 30 }, /obj/machinery/camera{ - c_tag = "Customs Checkpoint"; - dir = 2 + c_tag = "Customs Checkpoint" }, /obj/effect/turf_decal/tile/red{ dir = 1 @@ -28622,9 +28111,7 @@ dir = 4; id = "packageSort2" }, -/obj/structure/plasticflaps{ - opacity = 0 - }, +/obj/structure/plasticflaps, /turf/open/floor/plating, /area/quartermaster/sorting) "bdk" = ( @@ -28776,9 +28263,7 @@ dir = 8; pixel_x = 24 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 2 - }, +/obj/effect/turf_decal/tile/neutral, /turf/open/floor/plasteel, /area/hallway/primary/central) "bdA" = ( @@ -29079,8 +28564,6 @@ dir = 1 }, /obj/item/radio/intercom{ - freerange = 0; - frequency = 1459; name = "Station Intercom (General)"; pixel_y = -28 }, @@ -29171,9 +28654,7 @@ /turf/open/floor/plasteel/dark, /area/crew_quarters/heads/chief) "bek" = ( -/obj/structure/closet/secure_closet/engineering_chief{ - req_access_txt = "0" - }, +/obj/structure/closet/secure_closet/engineering_chief, /obj/structure/cable/yellow{ icon_state = "1-2" }, @@ -29323,9 +28804,9 @@ /area/ai_monitored/turret_protected/ai) "bew" = ( /obj/machinery/power/apc{ + areastring = "/area/ai_monitored/turret_protected/ai"; dir = 1; name = "AI Chamber APC"; - areastring = "/area/ai_monitored/turret_protected/ai"; pixel_y = 24 }, /obj/structure/cable{ @@ -29593,9 +29074,7 @@ /area/hallway/primary/central) "bfi" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/effect/turf_decal/tile/neutral{ - dir = 2 - }, +/obj/effect/turf_decal/tile/neutral, /turf/open/floor/plasteel, /area/hallway/primary/central) "bfj" = ( @@ -29845,7 +29324,6 @@ dir = 4 }, /obj/structure/sign/directions/command{ - dir = 2; pixel_y = -8 }, /turf/closed/wall/r_wall, @@ -30229,7 +29707,6 @@ /obj/item/paper, /obj/structure/table/reinforced, /obj/machinery/door/window/brigdoor{ - dir = 2; name = "Arrivals Security Checkpoint"; pixel_y = -8; req_access_txt = "1" @@ -30300,9 +29777,7 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 5 }, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /turf/open/floor/plating, /area/maintenance/port/fore) "bgD" = ( @@ -30364,7 +29839,6 @@ /area/quartermaster/sorting) "bgK" = ( /obj/machinery/firealarm{ - dir = 2; pixel_y = 24 }, /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ @@ -30409,9 +29883,7 @@ /turf/open/floor/plasteel, /area/quartermaster/sorting) "bgO" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 2 - }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, /obj/structure/cable/yellow{ icon_state = "4-8" }, @@ -30546,9 +30018,7 @@ /turf/open/floor/plasteel, /area/hallway/primary/port) "bgY" = ( -/obj/effect/turf_decal/tile/brown{ - dir = 2 - }, +/obj/effect/turf_decal/tile/brown, /turf/open/floor/plasteel, /area/hallway/primary/port) "bgZ" = ( @@ -30561,9 +30031,9 @@ /area/hallway/primary/port) "bha" = ( /obj/machinery/power/apc{ + areastring = "/area/janitor"; dir = 8; name = "Custodial Closet APC"; - areastring = "/area/janitor"; pixel_x = -24 }, /obj/structure/table, @@ -30615,9 +30085,9 @@ "bhf" = ( /obj/effect/landmark/blobstart, /obj/machinery/power/apc{ + areastring = "/area/maintenance/central"; dir = 4; name = "Central Maintenance APC"; - areastring = "/area/maintenance/central"; pixel_x = 26 }, /obj/structure/cable/yellow, @@ -30676,8 +30146,7 @@ pixel_y = 4 }, /obj/machinery/camera{ - c_tag = "Bridge - Central"; - dir = 2 + c_tag = "Bridge - Central" }, /obj/structure/table/glass, /obj/effect/turf_decal/tile/brown{ @@ -30906,9 +30375,7 @@ /turf/open/floor/plasteel, /area/hallway/primary/starboard) "bhF" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 2 - }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, /obj/effect/turf_decal/tile/yellow{ dir = 1 }, @@ -30941,8 +30408,7 @@ dir = 1 }, /obj/machinery/camera{ - c_tag = "Starboard Primary Hallway - Tech Storage"; - dir = 2 + c_tag = "Starboard Primary Hallway - Tech Storage" }, /obj/effect/turf_decal/tile/yellow{ dir = 1 @@ -30950,9 +30416,7 @@ /turf/open/floor/plasteel, /area/hallway/primary/starboard) "bhJ" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 2 - }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, /obj/structure/cable/yellow{ icon_state = "1-2" }, @@ -31036,9 +30500,9 @@ dir = 4 }, /obj/machinery/power/apc{ + areastring = "/area/hallway/primary/starboard"; dir = 1; name = "Starboard Hallway APC"; - areastring = "/area/hallway/primary/starboard"; pixel_y = 26 }, /obj/structure/cable/yellow{ @@ -31174,8 +30638,6 @@ /area/engine/break_room) "bia" = ( /obj/item/radio/intercom{ - freerange = 0; - frequency = 1459; name = "Station Intercom (General)"; pixel_y = 21 }, @@ -31979,9 +31441,7 @@ /obj/structure/disposalpipe/segment{ dir = 9 }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 2 - }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, /obj/structure/cable/yellow{ icon_state = "4-8" }, @@ -32129,8 +31589,6 @@ dir = 4 }, /obj/item/radio/intercom{ - freerange = 0; - frequency = 1459; name = "Station Intercom (General)"; pixel_y = 21 }, @@ -32166,9 +31624,7 @@ /turf/open/floor/plasteel, /area/hallway/primary/port) "bke" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 2 - }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, /obj/structure/sign/map/left{ desc = "A framed picture of the station. Clockwise from security at the top (red), you see engineering (yellow), science (purple), escape (red and white), medbay (green), arrivals (blue and white), and finally cargo (brown)."; icon_state = "map-left-MS"; @@ -32249,8 +31705,6 @@ "bkk" = ( /obj/structure/filingcabinet/filingcabinet, /obj/item/radio/intercom{ - broadcasting = 0; - listening = 1; name = "Station Intercom (General)"; pixel_y = -28 }, @@ -32324,9 +31778,9 @@ }, /obj/item/hand_labeler, /obj/machinery/power/apc{ + areastring = "/area/quartermaster/sorting"; dir = 4; name = "Delivery Office APC"; - areastring = "/area/quartermaster/sorting"; pixel_x = 26 }, /obj/structure/cable/yellow{ @@ -32385,8 +31839,6 @@ pixel_x = 28 }, /obj/item/radio/intercom{ - freerange = 0; - frequency = 1459; name = "Station Intercom (General)"; pixel_y = -28 }, @@ -32430,9 +31882,7 @@ /obj/structure/cable/yellow{ icon_state = "2-4" }, -/obj/effect/turf_decal/tile/brown{ - dir = 2 - }, +/obj/effect/turf_decal/tile/brown, /turf/open/floor/plasteel, /area/hallway/primary/port) "bkv" = ( @@ -32472,8 +31922,6 @@ /obj/structure/table, /obj/item/toner, /obj/item/radio/intercom{ - freerange = 0; - frequency = 1459; name = "Station Intercom (General)"; pixel_x = 30 }, @@ -32497,9 +31945,7 @@ "bky" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/machinery/door/firedoor, -/obj/effect/turf_decal/tile/neutral{ - dir = 2 - }, +/obj/effect/turf_decal/tile/neutral, /turf/open/floor/plasteel, /area/hallway/primary/central) "bkz" = ( @@ -32589,9 +32035,7 @@ /obj/structure/cable/yellow{ icon_state = "2-4" }, -/obj/machinery/computer/security/mining{ - network = list("mine","auxbase") - }, +/obj/machinery/computer/security/mining, /obj/machinery/keycard_auth{ pixel_y = 24 }, @@ -32652,9 +32096,7 @@ /obj/structure/toilet{ pixel_y = 13 }, -/obj/machinery/light{ - dir = 2 - }, +/obj/machinery/light, /obj/effect/landmark/start/captain, /obj/machinery/light_switch{ pixel_y = -25 @@ -32720,9 +32162,7 @@ dir = 4 }, /obj/structure/disposalpipe/segment, -/obj/effect/turf_decal/tile/yellow{ - dir = 2 - }, +/obj/effect/turf_decal/tile/yellow, /turf/open/floor/plasteel, /area/hallway/primary/central) "bkT" = ( @@ -32760,9 +32200,7 @@ /turf/open/floor/plasteel, /area/hallway/primary/starboard) "bkW" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 2 - }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, /obj/effect/turf_decal/tile/yellow{ dir = 8 }, @@ -32815,9 +32253,7 @@ /turf/open/floor/plasteel, /area/hallway/primary/starboard) "blb" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 2 - }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, /obj/machinery/firealarm{ dir = 1; pixel_y = -24 @@ -33068,7 +32504,6 @@ /area/ai_monitored/turret_protected/ai) "blF" = ( /obj/structure/showcase/cyborg/old{ - dir = 2; pixel_y = 20 }, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ @@ -33077,20 +32512,22 @@ /obj/effect/turf_decal/tile/blue{ dir = 1 }, +/obj/effect/landmark/start/cyborg, /turf/open/floor/plasteel/dark, /area/ai_monitored/turret_protected/aisat_interior) "blG" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/landmark/start/cyborg, /turf/open/floor/plasteel/dark, /area/ai_monitored/turret_protected/aisat_interior) "blH" = ( /obj/structure/showcase/cyborg/old{ - dir = 2; pixel_y = 20 }, /obj/effect/turf_decal/tile/blue{ dir = 4 }, +/obj/effect/landmark/start/cyborg, /turf/open/floor/plasteel/dark, /area/ai_monitored/turret_protected/aisat_interior) "blI" = ( @@ -33162,7 +32599,6 @@ pixel_y = 26 }, /obj/machinery/atmospherics/components/unary/portables_connector/visible{ - dir = 2; name = "Auxiliary MiniSat Distribution Port" }, /obj/machinery/portable_atmospherics/canister/air, @@ -33411,7 +32847,6 @@ dir = 4 }, /obj/structure/sign/directions/command{ - dir = 2; pixel_y = -8 }, /turf/closed/wall/r_wall, @@ -33425,9 +32860,7 @@ dir = 8; pixel_x = 24 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 2 - }, +/obj/effect/turf_decal/tile/neutral, /turf/open/floor/plasteel, /area/hallway/primary/central) "bmo" = ( @@ -33573,7 +33006,6 @@ icon_state = "4-8" }, /obj/machinery/door/window/brigdoor{ - dir = 2; name = "Command Desk"; req_access_txt = "19" }, @@ -33673,9 +33105,7 @@ }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/disposalpipe/segment, -/obj/effect/turf_decal/tile/yellow{ - dir = 2 - }, +/obj/effect/turf_decal/tile/yellow, /turf/open/floor/plasteel, /area/hallway/primary/central) "bmL" = ( @@ -33818,9 +33248,7 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 2 - }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, /turf/open/floor/plasteel, /area/engine/break_room) "bnb" = ( @@ -34044,8 +33472,6 @@ "bny" = ( /obj/machinery/turretid{ control_area = "/area/ai_monitored/turret_protected/aisat_interior"; - enabled = 1; - icon_state = "control_standby"; name = "Antechamber Turret Control"; pixel_x = 30; req_access_txt = "65" @@ -34089,6 +33515,7 @@ /obj/effect/turf_decal/tile/blue{ dir = 1 }, +/obj/effect/landmark/start/cyborg, /turf/open/floor/plasteel/dark, /area/ai_monitored/turret_protected/aisat_interior) "bnC" = ( @@ -34107,13 +33534,14 @@ /obj/effect/turf_decal/tile/blue{ dir = 4 }, +/obj/effect/landmark/start/cyborg, /turf/open/floor/plasteel/dark, /area/ai_monitored/turret_protected/aisat_interior) "bnE" = ( /obj/machinery/power/apc{ + areastring = "/area/ai_monitored/turret_protected/aisat_interior"; dir = 4; name = "MiniSat Antechamber APC"; - areastring = "/area/ai_monitored/turret_protected/aisat_interior"; pixel_x = 29 }, /obj/structure/cable/yellow{ @@ -34319,9 +33747,7 @@ /turf/open/floor/plasteel, /area/hallway/primary/port) "bnY" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 2 - }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, /obj/effect/turf_decal/tile/neutral{ dir = 1 }, @@ -34335,8 +33761,7 @@ dir = 1 }, /obj/machinery/camera{ - c_tag = "Port Primary Hallway - Middle"; - dir = 2 + c_tag = "Port Primary Hallway - Middle" }, /obj/effect/turf_decal/tile/neutral{ dir = 1 @@ -34355,9 +33780,9 @@ /area/hallway/primary/port) "bob" = ( /obj/machinery/power/apc{ + areastring = "/area/hallway/primary/port"; dir = 1; name = "Port Hallway APC"; - areastring = "/area/hallway/primary/port"; pixel_x = -1; pixel_y = 26 }, @@ -34387,8 +33812,6 @@ dir = 4 }, /obj/item/radio/intercom{ - freerange = 0; - frequency = 1459; name = "Station Intercom (General)"; pixel_y = 21 }, @@ -34421,9 +33844,7 @@ /obj/structure/cable/yellow{ icon_state = "1-2" }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 2 - }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, /obj/effect/turf_decal/tile/brown{ dir = 4 }, @@ -34512,9 +33933,9 @@ /area/crew_quarters/heads/hop) "bop" = ( /obj/machinery/power/apc/highcap/ten_k{ + areastring = "/area/bridge"; dir = 8; name = "Bridge APC"; - areastring = "/area/bridge"; pixel_x = -27 }, /obj/structure/cable/yellow, @@ -34772,8 +34193,7 @@ /obj/item/stack/packageWrap, /obj/item/gun/ballistic/revolver/doublebarrel, /obj/machinery/camera{ - c_tag = "Bar - Backroom"; - dir = 2 + c_tag = "Bar - Backroom" }, /obj/structure/sink/kitchen{ pixel_y = 28 @@ -34788,9 +34208,6 @@ /area/crew_quarters/dorms) "boT" = ( /obj/machinery/door/window/southleft{ - base_state = "left"; - dir = 2; - icon_state = "left"; name = "Bar Delivery"; req_access_txt = "25" }, @@ -35372,9 +34789,9 @@ /area/hallway/secondary/entry) "bqd" = ( /obj/machinery/power/apc{ + areastring = "/area/hallway/secondary/entry"; dir = 4; name = "Arrivals APC"; - areastring = "/area/hallway/secondary/entry"; pixel_x = 24 }, /obj/structure/cable/yellow{ @@ -35467,9 +34884,9 @@ /obj/machinery/door/window{ base_state = "leftsecure"; dir = 8; - obj_integrity = 300; icon_state = "leftsecure"; name = "Primary AI Core Access"; + obj_integrity = 300; req_access_txt = "16" }, /obj/machinery/newscaster/security_unit{ @@ -35629,9 +35046,7 @@ /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ dir = 4 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 2 - }, +/obj/effect/turf_decal/tile/neutral, /turf/open/floor/plasteel, /area/hallway/primary/central) "bqB" = ( @@ -35649,7 +35064,6 @@ icon_state = "1-2" }, /obj/machinery/door/window{ - dir = 2; name = "HoP's Desk"; req_access_txt = "57" }, @@ -35667,8 +35081,6 @@ req_access_txt = "57" }, /obj/item/radio/intercom{ - freerange = 0; - frequency = 1459; name = "Station Intercom (General)"; pixel_y = 21 }, @@ -35776,8 +35188,6 @@ /area/bridge) "bqP" = ( /obj/item/radio/intercom{ - freerange = 0; - frequency = 1459; name = "Station Intercom (General)"; pixel_y = -29 }, @@ -35856,9 +35266,9 @@ /obj/structure/table/wood, /obj/item/book/manual/wiki/security_space_law, /obj/machinery/power/apc{ + areastring = "/area/crew_quarters/heads/captain/private"; dir = 8; name = "Captain's Quarters APC"; - areastring = "/area/crew_quarters/heads/captain/private"; pixel_x = -24 }, /obj/structure/cable/yellow{ @@ -35937,9 +35347,9 @@ "brd" = ( /obj/structure/table, /obj/machinery/power/apc{ + areastring = "/area/storage/art"; dir = 8; name = "Art Storage APC"; - areastring = "/area/storage/art"; pixel_x = -25 }, /obj/structure/cable/yellow{ @@ -36003,8 +35413,6 @@ dir = 4 }, /obj/item/radio/intercom{ - freerange = 0; - frequency = 1459; name = "Station Intercom (General)"; pixel_y = -30 }, @@ -36101,9 +35509,7 @@ /obj/structure/cable/yellow{ icon_state = "4-8" }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 2 - }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, /turf/open/floor/plating, /area/maintenance/starboard) "brt" = ( @@ -36192,9 +35598,7 @@ /obj/structure/sign/warning/securearea{ pixel_x = 32 }, -/turf/open/floor/plasteel/dark/corner{ - dir = 2 - }, +/turf/open/floor/plasteel/dark/corner, /area/hallway/primary/starboard) "brA" = ( /obj/machinery/vending/coffee, @@ -36248,9 +35652,8 @@ dir = 4 }, /obj/machinery/power/apc{ - dir = 2; - name = "Engineering Foyer APC"; areastring = "/area/engine/break_room"; + name = "Engineering Foyer APC"; pixel_x = -1; pixel_y = -26 }, @@ -36392,9 +35795,8 @@ network = list("minisat") }, /obj/machinery/power/apc{ - dir = 2; - name = "MiniSat Exterior APC"; areastring = "/area/aisat"; + name = "MiniSat Exterior APC"; pixel_y = -24 }, /obj/structure/cable/yellow{ @@ -36418,7 +35820,6 @@ /area/aisat) "brS" = ( /obj/machinery/door/window{ - dir = 2; name = "MiniSat Walkway Access" }, /obj/machinery/atmospherics/pipe/manifold4w/supply/hidden, @@ -36477,9 +35878,7 @@ /obj/machinery/status_display/ai{ pixel_y = 32 }, -/obj/machinery/porta_turret/ai{ - dir = 2 - }, +/obj/machinery/porta_turret/ai, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 5 }, @@ -36507,9 +35906,8 @@ dir = 4 }, /obj/machinery/power/apc/highcap/five_k{ - dir = 2; - name = "MiniSat Foyer APC"; areastring = "/area/ai_monitored/turret_protected/aisat/foyer"; + name = "MiniSat Foyer APC"; pixel_y = -29 }, /obj/structure/cable/yellow, @@ -36572,9 +35970,7 @@ /obj/machinery/status_display{ pixel_y = 32 }, -/obj/machinery/porta_turret/ai{ - dir = 2 - }, +/obj/machinery/porta_turret/ai, /obj/machinery/computer/security/telescreen/minisat{ dir = 8; pixel_x = 28 @@ -36749,15 +36145,11 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 2 - }, +/obj/effect/turf_decal/tile/neutral, /turf/open/floor/plasteel, /area/hallway/primary/port) "bsw" = ( /obj/item/radio/intercom{ - broadcasting = 0; - listening = 1; name = "Station Intercom (General)"; pixel_y = -28 }, @@ -36789,9 +36181,7 @@ /turf/open/floor/plasteel, /area/hallway/primary/port) "bsz" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 2 - }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, /obj/effect/turf_decal/tile/neutral{ dir = 8 }, @@ -36881,9 +36271,7 @@ /turf/open/floor/plasteel, /area/hallway/primary/port) "bsI" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 2 - }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, /obj/structure/extinguisher_cabinet{ pixel_y = -30 }, @@ -37383,8 +36771,6 @@ /area/engine/break_room) "btE" = ( /obj/item/radio/intercom{ - freerange = 0; - frequency = 1459; name = "Station Intercom (General)"; pixel_y = -28 }, @@ -37426,9 +36812,9 @@ icon_state = "0-2" }, /obj/machinery/power/apc{ + areastring = "/area/crew_quarters/heads/hop"; dir = 1; name = "Head of Personnel APC"; - areastring = "/area/crew_quarters/heads/hop"; pixel_y = 24 }, /turf/open/floor/carpet, @@ -37701,9 +37087,7 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 2 - }, +/obj/effect/turf_decal/tile/neutral, /turf/open/floor/plasteel, /area/hallway/primary/central) "bum" = ( @@ -38035,9 +37419,7 @@ /turf/open/floor/plating, /area/maintenance/starboard) "buZ" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 2 - }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, /obj/effect/turf_decal/tile/yellow{ dir = 8 }, @@ -38089,23 +37471,18 @@ /area/maintenance/starboard) "bvf" = ( /obj/item/radio/intercom{ - broadcasting = 0; freerange = 1; - listening = 1; name = "Common Channel"; pixel_x = -27; pixel_y = -7 }, /obj/item/radio/intercom{ - anyai = 1; freerange = 1; listening = 0; name = "Custom Channel"; pixel_y = -27 }, /obj/item/radio/intercom{ - anyai = 1; - broadcasting = 0; freerange = 1; frequency = 1447; name = "Private Channel"; @@ -38211,9 +37588,7 @@ c_tag = "Engineering - Transit Tube Access"; dir = 8 }, -/obj/effect/turf_decal/stripes/corner{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/corner, /turf/open/floor/plasteel/dark, /area/engine/break_room) "bvq" = ( @@ -38279,7 +37654,6 @@ "bvw" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/structure/showcase/cyborg/old{ - dir = 2; pixel_y = 20 }, /turf/open/floor/plasteel/grimy, @@ -38296,7 +37670,6 @@ pixel_y = 28 }, /obj/structure/showcase/cyborg/old{ - dir = 2; pixel_y = 20 }, /turf/open/floor/plasteel/grimy, @@ -38416,9 +37789,7 @@ /obj/structure/cable/yellow{ icon_state = "1-8" }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 2 - }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, /obj/structure/cable/yellow{ icon_state = "1-2" }, @@ -38598,9 +37969,7 @@ /obj/machinery/computer/security/telescreen/entertainment{ pixel_y = 30 }, -/turf/open/floor/plasteel/cult{ - dir = 2 - }, +/turf/open/floor/plasteel/cult, /area/library) "bwg" = ( /obj/structure/table/wood, @@ -38609,9 +37978,7 @@ }, /obj/item/folder, /obj/item/folder, -/turf/open/floor/plasteel/cult{ - dir = 2 - }, +/turf/open/floor/plasteel/cult, /area/library) "bwh" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -38762,8 +38129,7 @@ /area/bridge) "bwv" = ( /obj/machinery/camera{ - c_tag = "Council Chamber"; - dir = 2 + c_tag = "Council Chamber" }, /obj/machinery/light{ dir = 1 @@ -38853,9 +38219,7 @@ /turf/open/floor/carpet, /area/crew_quarters/heads/captain/private) "bwE" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 2 - }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, /obj/structure/cable/yellow{ icon_state = "4-8" }, @@ -38957,8 +38321,7 @@ /area/crew_quarters/bar) "bwM" = ( /obj/machinery/camera{ - c_tag = "Bar"; - dir = 2 + c_tag = "Bar" }, /obj/machinery/requests_console{ department = "Bar"; @@ -39030,9 +38393,9 @@ /area/crew_quarters/bar) "bwR" = ( /obj/machinery/power/apc/highcap/five_k{ + areastring = "/area/crew_quarters/bar"; dir = 1; name = "Bar APC"; - areastring = "/area/crew_quarters/bar"; pixel_y = 25 }, /obj/structure/cable/yellow{ @@ -39060,8 +38423,6 @@ /area/crew_quarters/bar) "bwU" = ( /obj/item/radio/intercom{ - freerange = 0; - frequency = 1459; name = "Station Intercom (General)"; pixel_y = 21 }, @@ -39072,8 +38433,7 @@ dir = 1 }, /obj/machinery/camera{ - c_tag = "Club - Fore"; - dir = 2 + c_tag = "Club - Fore" }, /turf/open/floor/wood, /area/crew_quarters/bar) @@ -39341,15 +38701,11 @@ icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/effect/turf_decal/tile/blue{ - dir = 2 - }, +/obj/effect/turf_decal/tile/blue, /turf/open/floor/plasteel, /area/hallway/secondary/entry) "bxC" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 2 - }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, /obj/machinery/firealarm{ dir = 1; pixel_y = -24 @@ -39376,8 +38732,6 @@ dir = 4 }, /obj/item/radio/intercom{ - freerange = 0; - frequency = 1459; name = "Station Intercom (General)"; pixel_y = -25 }, @@ -39413,7 +38767,6 @@ }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/machinery/firealarm{ - dir = 2; pixel_y = -24 }, /obj/effect/turf_decal/tile/neutral, @@ -39563,17 +38916,14 @@ "bxS" = ( /obj/item/cigbutt, /obj/machinery/power/apc/highcap/five_k{ - dir = 2; - name = "Port Maintenance APC"; areastring = "/area/maintenance/port"; + name = "Port Maintenance APC"; pixel_y = -24 }, /obj/structure/cable/yellow{ icon_state = "0-4" }, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /turf/open/floor/plating, /area/maintenance/port) "bxT" = ( @@ -39601,17 +38951,13 @@ /turf/open/floor/wood, /area/library) "bxW" = ( -/turf/open/floor/plasteel/cult{ - dir = 2 - }, +/turf/open/floor/plasteel/cult, /area/library) "bxX" = ( /obj/structure/chair/comfy/brown{ dir = 1 }, -/turf/open/floor/plasteel/cult{ - dir = 2 - }, +/turf/open/floor/plasteel/cult, /area/library) "bxY" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -39645,7 +38991,6 @@ /obj/machinery/door/firedoor, /obj/machinery/door/window/northleft{ dir = 2; - icon_state = "left"; name = "Reception Window" }, /obj/machinery/door/poddoor/preopen{ @@ -39814,9 +39159,7 @@ /turf/open/floor/plasteel, /area/hallway/primary/central) "byx" = ( -/obj/machinery/porta_turret/ai{ - dir = 2 - }, +/obj/machinery/porta_turret/ai, /obj/machinery/flasher{ id = "AI"; pixel_y = 24 @@ -39901,9 +39244,7 @@ /turf/open/floor/wood, /area/crew_quarters/bar) "byG" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 2 - }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, /obj/structure/disposalpipe/junction/flip{ dir = 4 }, @@ -39943,9 +39284,9 @@ /area/engine/break_room) "byL" = ( /obj/machinery/power/apc{ + areastring = "/area/crew_quarters/theatre"; dir = 1; name = "Theatre APC"; - areastring = "/area/crew_quarters/theatre"; pixel_y = 25 }, /obj/structure/cable/yellow{ @@ -39978,9 +39319,8 @@ /obj/item/stack/sheet/metal/fifty, /obj/item/stack/sheet/glass/fifty, /obj/machinery/power/apc{ - dir = 2; - name = "MiniSat Maint APC"; areastring = "/area/ai_monitored/storage/satellite"; + name = "MiniSat Maint APC"; pixel_y = -26 }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -40010,8 +39350,6 @@ /area/hallway/primary/starboard) "byR" = ( /obj/item/radio/intercom{ - freerange = 0; - frequency = 1459; name = "Station Intercom (General)"; pixel_x = -30 }, @@ -40125,9 +39463,9 @@ /area/engine/atmos) "byX" = ( /obj/machinery/power/apc/highcap/ten_k{ + areastring = "/area/engine/atmos"; dir = 1; name = "Atmospherics APC"; - areastring = "/area/engine/atmos"; pixel_y = 28 }, /obj/structure/cable/yellow{ @@ -40148,7 +39486,6 @@ "byZ" = ( /obj/machinery/space_heater, /obj/machinery/firealarm{ - dir = 2; pixel_y = 24 }, /obj/effect/turf_decal/stripes/line{ @@ -40359,9 +39696,9 @@ /area/tcommsat/computer) "bzt" = ( /obj/machinery/power/apc/highcap/five_k{ + areastring = "/area/tcommsat/computer"; dir = 4; name = "Telecomms Control Room APC"; - areastring = "/area/tcommsat/computer"; pixel_x = 26 }, /obj/machinery/computer/telecomms/server{ @@ -40419,7 +39756,6 @@ /obj/machinery/door/firedoor, /obj/machinery/door/airlock/grunge/abandoned{ name = "Vacant Office"; - opacity = 1; req_access_txt = "32" }, /obj/structure/cable/yellow{ @@ -40474,17 +39810,13 @@ /obj/machinery/door/morgue{ name = "Study #1" }, -/turf/open/floor/plasteel/cult{ - dir = 2 - }, +/turf/open/floor/plasteel/cult, /area/library) "bzH" = ( /obj/machinery/door/morgue{ name = "Study #2" }, -/turf/open/floor/plasteel/cult{ - dir = 2 - }, +/turf/open/floor/plasteel/cult, /area/library) "bzI" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -40509,8 +39841,6 @@ /area/hallway/secondary/command) "bzM" = ( /obj/item/radio/intercom{ - freerange = 0; - frequency = 1459; name = "Station Intercom (General)"; pixel_y = 21 }, @@ -40529,8 +39859,6 @@ /area/hallway/secondary/command) "bzO" = ( /obj/item/radio/intercom{ - freerange = 0; - frequency = 1459; name = "Station Intercom (General)"; pixel_y = 21 }, @@ -40727,9 +40055,7 @@ /area/crew_quarters/bar) "bAk" = ( /obj/structure/table/reinforced, -/obj/item/clothing/head/that{ - throwforce = 1 - }, +/obj/item/clothing/head/that, /obj/effect/turf_decal/tile/bar, /obj/effect/turf_decal/tile/bar{ dir = 1 @@ -41637,7 +40963,6 @@ /obj/structure/table/reinforced, /obj/machinery/door/window/northleft{ dir = 4; - icon_state = "left"; name = "Atmospherics Desk"; req_access_txt = "24" }, @@ -41929,9 +41254,8 @@ dir = 9 }, /obj/machinery/power/apc/highcap/five_k{ - dir = 2; - name = "Auxiliary Restrooms APC"; areastring = "/area/crew_quarters/toilet/auxiliary"; + name = "Auxiliary Restrooms APC"; pixel_y = -24 }, /obj/structure/cable/yellow, @@ -42071,8 +41395,6 @@ dir = 4 }, /obj/item/radio/intercom{ - freerange = 0; - frequency = 1459; name = "Station Intercom (General)"; pixel_y = 21 }, @@ -42168,9 +41490,9 @@ dir = 4 }, /obj/machinery/power/apc/highcap/ten_k{ + areastring = "/area/hallway/secondary/command"; dir = 1; name = "Command Hallway APC"; - areastring = "/area/hallway/secondary/command"; pixel_y = 25 }, /obj/structure/cable/yellow{ @@ -42214,14 +41536,11 @@ dir = 4 }, /obj/item/radio/intercom{ - freerange = 0; - frequency = 1459; name = "Station Intercom (General)"; pixel_y = 21 }, /obj/machinery/camera{ - c_tag = "Command Hallway - Starboard"; - dir = 2 + c_tag = "Command Hallway - Starboard" }, /obj/effect/turf_decal/tile/neutral{ dir = 4 @@ -42258,9 +41577,7 @@ /obj/structure/cable/yellow{ icon_state = "1-2" }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 2 - }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, /obj/structure/disposalpipe/segment{ dir = 5 }, @@ -42348,8 +41665,7 @@ "bDG" = ( /obj/machinery/door/firedoor, /obj/machinery/door/airlock/grunge{ - name = "Club"; - opacity = 1 + name = "Club" }, /obj/effect/turf_decal/tile/bar, /obj/effect/turf_decal/tile/bar{ @@ -42536,14 +41852,12 @@ /obj/machinery/telecomms/processor/preset_one, /obj/machinery/camera{ c_tag = "Telecomms - Server Room - Fore-Port"; - dir = 2; network = list("ss13","tcomms") }, /turf/open/floor/circuit/green/telecomms/mainframe, /area/tcommsat/server) "bEg" = ( /obj/structure/showcase/cyborg/old{ - dir = 2; pixel_y = 20 }, /turf/open/floor/plasteel/dark/telecomms, @@ -42567,7 +41881,6 @@ /obj/machinery/telecomms/processor/preset_three, /obj/machinery/camera{ c_tag = "Telecomms - Server Room - Fore-Starboard"; - dir = 2; network = list("ss13","tcomms") }, /turf/open/floor/circuit/green/telecomms/mainframe, @@ -42718,9 +42031,7 @@ /obj/structure/cable/yellow{ icon_state = "4-8" }, -/obj/effect/turf_decal/tile/neutral{ - dir = 2 - }, +/obj/effect/turf_decal/tile/neutral, /turf/open/floor/plasteel, /area/hallway/primary/central) "bED" = ( @@ -42862,9 +42173,7 @@ /obj/structure/cable/yellow{ icon_state = "4-8" }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 2 - }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, /obj/machinery/newscaster{ pixel_y = -29 }, @@ -42893,9 +42202,7 @@ icon_state = "4-8" }, /obj/machinery/light, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 2 - }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, /obj/effect/turf_decal/tile/neutral{ dir = 8 }, @@ -42946,9 +42253,7 @@ /obj/structure/cable/yellow{ icon_state = "2-4" }, -/obj/effect/turf_decal/tile/neutral{ - dir = 2 - }, +/obj/effect/turf_decal/tile/neutral, /turf/open/floor/plasteel, /area/hallway/secondary/command) "bET" = ( @@ -42959,9 +42264,7 @@ icon_state = "4-8" }, /obj/machinery/light, -/obj/effect/turf_decal/tile/neutral{ - dir = 2 - }, +/obj/effect/turf_decal/tile/neutral, /turf/open/floor/plasteel, /area/hallway/secondary/command) "bEU" = ( @@ -42977,9 +42280,7 @@ /obj/structure/cable/yellow{ icon_state = "1-4" }, -/obj/effect/turf_decal/tile/neutral{ - dir = 2 - }, +/obj/effect/turf_decal/tile/neutral, /turf/open/floor/plasteel, /area/hallway/secondary/command) "bEV" = ( @@ -42995,9 +42296,7 @@ /obj/machinery/newscaster{ pixel_y = -29 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 2 - }, +/obj/effect/turf_decal/tile/neutral, /turf/open/floor/plasteel, /area/hallway/secondary/command) "bEW" = ( @@ -43007,9 +42306,7 @@ /obj/structure/cable/yellow{ icon_state = "4-8" }, -/obj/effect/turf_decal/tile/neutral{ - dir = 2 - }, +/obj/effect/turf_decal/tile/neutral, /turf/open/floor/plasteel, /area/hallway/secondary/command) "bEX" = ( @@ -43023,9 +42320,7 @@ /obj/structure/cable/yellow{ icon_state = "2-4" }, -/obj/effect/turf_decal/tile/neutral{ - dir = 2 - }, +/obj/effect/turf_decal/tile/neutral, /turf/open/floor/plasteel, /area/hallway/secondary/command) "bEY" = ( @@ -43035,9 +42330,7 @@ /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ dir = 1 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 2 - }, +/obj/effect/turf_decal/tile/neutral, /turf/open/floor/plasteel, /area/hallway/secondary/command) "bEZ" = ( @@ -43050,9 +42343,7 @@ /obj/structure/extinguisher_cabinet{ pixel_y = -30 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 2 - }, +/obj/effect/turf_decal/tile/neutral, /turf/open/floor/plasteel, /area/hallway/secondary/command) "bFa" = ( @@ -43067,9 +42358,7 @@ dir = 1; pixel_y = -24 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 2 - }, +/obj/effect/turf_decal/tile/neutral, /turf/open/floor/plasteel, /area/hallway/secondary/command) "bFb" = ( @@ -43079,34 +42368,24 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 2 - }, +/obj/effect/turf_decal/tile/neutral, /turf/open/floor/plasteel, /area/hallway/secondary/command) "bFc" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 2 - }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, /obj/structure/cable/yellow{ icon_state = "4-8" }, /obj/effect/landmark/event_spawn, -/obj/effect/turf_decal/tile/neutral{ - dir = 2 - }, +/obj/effect/turf_decal/tile/neutral, /turf/open/floor/plasteel, /area/hallway/secondary/command) "bFd" = ( /obj/structure/cable/yellow{ icon_state = "4-8" }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 2 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 2 - }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/obj/effect/turf_decal/tile/neutral, /turf/open/floor/plasteel, /area/hallway/secondary/command) "bFe" = ( @@ -43122,9 +42401,7 @@ /obj/structure/cable/yellow{ icon_state = "2-4" }, -/obj/effect/turf_decal/tile/neutral{ - dir = 2 - }, +/obj/effect/turf_decal/tile/neutral, /turf/open/floor/plasteel, /area/hallway/secondary/command) "bFf" = ( @@ -43138,9 +42415,7 @@ /obj/machinery/door/airlock/public/glass{ name = "Command Hallway" }, -/obj/effect/turf_decal/tile/neutral{ - dir = 2 - }, +/obj/effect/turf_decal/tile/neutral, /turf/open/floor/plasteel, /area/hallway/secondary/command) "bFg" = ( @@ -43178,9 +42453,7 @@ /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ dir = 8 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 2 - }, +/obj/effect/turf_decal/tile/neutral, /turf/open/floor/plasteel, /area/hallway/primary/central) "bFj" = ( @@ -43250,9 +42523,7 @@ /turf/open/floor/plasteel, /area/crew_quarters/bar) "bFo" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 2 - }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, /obj/structure/cable/yellow{ icon_state = "4-8" }, @@ -43271,8 +42542,7 @@ }, /obj/machinery/door/firedoor, /obj/machinery/door/airlock/grunge{ - name = "Club"; - opacity = 1 + name = "Club" }, /obj/effect/turf_decal/tile/bar, /obj/effect/turf_decal/tile/bar{ @@ -43506,9 +42776,7 @@ dir = 4 }, /obj/machinery/atmospherics/components/unary/vent_pump/on, -/turf/open/floor/plasteel/dark/corner{ - dir = 2 - }, +/turf/open/floor/plasteel/dark/corner, /area/engine/atmos) "bFK" = ( /obj/machinery/disposal/bin, @@ -43782,9 +43050,7 @@ c_tag = "Central Primary Hallway - Port"; dir = 8 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 2 - }, +/obj/effect/turf_decal/tile/neutral, /turf/open/floor/plasteel, /area/hallway/primary/central) "bGx" = ( @@ -43905,9 +43171,7 @@ c_tag = "Command Hallway - Central"; dir = 8 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 2 - }, +/obj/effect/turf_decal/tile/neutral, /turf/open/floor/plasteel, /area/hallway/secondary/command) "bGM" = ( @@ -44021,9 +43285,7 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 2 - }, +/obj/effect/turf_decal/tile/neutral, /turf/open/floor/plasteel, /area/hallway/primary/central) "bGY" = ( @@ -44044,9 +43306,7 @@ /turf/open/floor/plasteel, /area/crew_quarters/bar) "bHa" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 2 - }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, /obj/effect/turf_decal/tile/bar, /obj/effect/turf_decal/tile/bar{ dir = 1 @@ -44098,9 +43358,7 @@ /obj/structure/cable/yellow{ icon_state = "4-8" }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 2 - }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, /turf/open/floor/wood, /area/crew_quarters/bar) "bHg" = ( @@ -44221,9 +43479,7 @@ /obj/machinery/light/small{ dir = 4 }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 2 - }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, /obj/effect/turf_decal/bot, /turf/open/floor/plasteel, /area/engine/atmos) @@ -44595,19 +43851,16 @@ /turf/open/floor/plasteel/dark, /area/teleporter) "bIh" = ( -/obj/structure/closet/crate{ - icon_state = "crate"; - opened = 0 - }, +/obj/structure/closet/crate, /obj/item/stack/cable_coil, /obj/item/crowbar, /obj/item/screwdriver{ pixel_y = 16 }, /obj/machinery/power/apc{ + areastring = "/area/teleporter"; dir = 4; name = "Teleporter APC"; - areastring = "/area/teleporter"; pixel_x = 24 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, @@ -44660,9 +43913,7 @@ /obj/structure/cable/yellow{ icon_state = "1-4" }, -/obj/effect/turf_decal/tile/neutral{ - dir = 2 - }, +/obj/effect/turf_decal/tile/neutral, /turf/open/floor/plasteel, /area/hallway/secondary/command) "bIl" = ( @@ -44719,9 +43970,9 @@ /obj/item/storage/toolbox/emergency, /obj/item/flashlight, /obj/machinery/power/apc/highcap/five_k{ + areastring = "/area/gateway"; dir = 4; name = "Gateway APC"; - areastring = "/area/gateway"; pixel_x = 28 }, /obj/structure/cable/yellow{ @@ -44754,9 +44005,7 @@ /area/hallway/primary/central) "bIs" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/turf_decal/tile/neutral{ - dir = 2 - }, +/obj/effect/turf_decal/tile/neutral, /turf/open/floor/plasteel, /area/hallway/primary/central) "bIt" = ( @@ -44777,8 +44026,6 @@ /area/crew_quarters/bar) "bIu" = ( /obj/item/radio/intercom{ - freerange = 0; - frequency = 1459; name = "Station Intercom (General)"; pixel_y = -28 }, @@ -44912,9 +44159,7 @@ /area/engine/atmos) "bIK" = ( /obj/machinery/portable_atmospherics/canister/nitrogen, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 2 - }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, /obj/effect/turf_decal/bot, /turf/open/floor/plasteel, /area/engine/atmos) @@ -45158,9 +44403,7 @@ /obj/structure/cable/yellow{ icon_state = "1-2" }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 2 - }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, /obj/effect/turf_decal/stripes/line{ dir = 8 }, @@ -45184,8 +44427,6 @@ dir = 4 }, /obj/item/radio/intercom{ - freerange = 0; - frequency = 1459; name = "Station Intercom (General)"; pixel_x = -29 }, @@ -45368,10 +44609,7 @@ /turf/open/floor/plasteel, /area/teleporter) "bJL" = ( -/obj/structure/closet/crate{ - icon_state = "crate"; - opened = 0 - }, +/obj/structure/closet/crate, /obj/item/stack/sheet/rglass{ amount = 50 }, @@ -45429,9 +44667,7 @@ /obj/structure/chair{ dir = 1 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 2 - }, +/obj/effect/turf_decal/tile/neutral, /turf/open/floor/plasteel, /area/hallway/secondary/command) "bJQ" = ( @@ -45452,9 +44688,7 @@ /obj/structure/cable/yellow{ icon_state = "1-4" }, -/obj/effect/turf_decal/tile/neutral{ - dir = 2 - }, +/obj/effect/turf_decal/tile/neutral, /turf/open/floor/plasteel, /area/hallway/secondary/command) "bJS" = ( @@ -45607,9 +44841,7 @@ "bKd" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/machinery/door/firedoor, -/obj/effect/turf_decal/tile/neutral{ - dir = 2 - }, +/obj/effect/turf_decal/tile/neutral, /turf/open/floor/plasteel, /area/hallway/primary/central) "bKe" = ( @@ -45681,9 +44913,7 @@ name = "Kitchen"; req_access_txt = "28" }, -/turf/open/floor/plasteel/cafeteria{ - dir = 2 - }, +/turf/open/floor/plasteel/cafeteria, /area/crew_quarters/kitchen) "bKl" = ( /obj/machinery/vending/snack/random, @@ -45776,9 +45006,7 @@ /turf/open/floor/plasteel, /area/engine/atmos) "bKx" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/visible{ - dir = 2 - }, +/obj/machinery/atmospherics/pipe/simple/cyan/visible, /turf/open/floor/plasteel, /area/engine/atmos) "bKy" = ( @@ -45903,7 +45131,6 @@ }, /obj/machinery/door/window{ base_state = "right"; - dir = 2; icon_state = "right"; name = "MiniSat Walkway Access" }, @@ -45980,9 +45207,9 @@ /area/maintenance/port) "bKY" = ( /obj/machinery/power/apc{ + areastring = "/area/security/vacantoffice"; dir = 8; name = "Vacant Office APC"; - areastring = "/area/security/vacantoffice"; pixel_x = -25 }, /obj/structure/cable/yellow{ @@ -46083,9 +45310,9 @@ pixel_y = -1 }, /obj/machinery/power/apc{ + areastring = "/area/ai_monitored/storage/eva"; dir = 8; name = "E.V.A. Storage APC"; - areastring = "/area/ai_monitored/storage/eva"; pixel_x = -24 }, /obj/structure/cable/yellow{ @@ -46354,9 +45581,7 @@ pixel_x = -26; req_access_txt = "28" }, -/turf/open/floor/plasteel/cafeteria{ - dir = 2 - }, +/turf/open/floor/plasteel/cafeteria, /area/crew_quarters/kitchen) "bLJ" = ( /obj/structure/table, @@ -46375,9 +45600,7 @@ pixel_x = 6; pixel_y = 26 }, -/turf/open/floor/plasteel/cafeteria{ - dir = 2 - }, +/turf/open/floor/plasteel/cafeteria, /area/crew_quarters/kitchen) "bLK" = ( /turf/open/floor/plasteel/cafeteria{ @@ -46543,8 +45766,6 @@ "bMe" = ( /obj/structure/reagent_dispensers/fueltank, /obj/item/radio/intercom{ - freerange = 0; - frequency = 1459; name = "Station Intercom (General)"; pixel_y = -26 }, @@ -46661,9 +45882,9 @@ /area/tcommsat/server) "bMs" = ( /obj/machinery/power/apc/highcap/five_k{ + areastring = "/area/tcommsat/server"; dir = 4; name = "Telecomms Server Room APC"; - areastring = "/area/tcommsat/server"; pixel_x = 25 }, /obj/machinery/light/small{ @@ -46708,8 +45929,6 @@ dir = 4 }, /obj/item/radio/intercom{ - freerange = 0; - frequency = 1459; name = "Station Intercom (General)"; pixel_y = -25 }, @@ -46729,9 +45948,7 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, -/obj/effect/turf_decal/tile/blue{ - dir = 2 - }, +/obj/effect/turf_decal/tile/blue, /turf/open/floor/plasteel, /area/hallway/secondary/entry) "bMz" = ( @@ -46747,9 +45964,7 @@ /turf/open/floor/plasteel/white/corner, /area/hallway/secondary/entry) "bMA" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 2 - }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, /obj/structure/cable/yellow{ icon_state = "4-8" }, @@ -46833,9 +46048,9 @@ "bMH" = ( /obj/machinery/light/small, /obj/machinery/power/apc{ + areastring = "/area/library"; dir = 8; name = "Library APC"; - areastring = "/area/library"; pixel_x = -25 }, /obj/structure/cable/yellow{ @@ -46949,7 +46164,6 @@ /area/ai_monitored/storage/eva) "bMU" = ( /obj/structure/tank_dispenser/oxygen{ - layer = 2.9; pixel_x = -1; pixel_y = 2 }, @@ -47075,8 +46289,6 @@ dir = 1 }, /obj/item/radio/intercom{ - freerange = 0; - frequency = 1459; name = "Station Intercom (General)"; pixel_y = 21 }, @@ -47100,8 +46312,7 @@ /obj/item/clothing/under/suit_jacket/really_black, /obj/item/clothing/glasses/sunglasses, /obj/machinery/camera{ - c_tag = "Corporate Showroom"; - dir = 2 + c_tag = "Corporate Showroom" }, /turf/open/floor/wood, /area/bridge/showroom/corporate) @@ -47269,9 +46480,7 @@ /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ dir = 8 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 2 - }, +/obj/effect/turf_decal/tile/neutral, /turf/open/floor/plasteel, /area/hallway/primary/central) "bNv" = ( @@ -47347,9 +46556,7 @@ pixel_x = 24 }, /obj/machinery/vending/dinnerware, -/turf/open/floor/plasteel/cafeteria{ - dir = 2 - }, +/turf/open/floor/plasteel/cafeteria, /area/crew_quarters/kitchen) "bND" = ( /obj/structure/extinguisher_cabinet{ @@ -47410,9 +46617,9 @@ dir = 8 }, /obj/machinery/power/apc{ + areastring = "/area/storage/tcom"; dir = 8; name = "Telecomms Storage APC"; - areastring = "/area/storage/tcom"; pixel_x = -28 }, /obj/structure/cable/yellow{ @@ -47495,7 +46702,6 @@ /obj/machinery/atmospherics/pipe/simple/green/visible, /obj/machinery/door/window/northleft{ dir = 8; - icon_state = "left"; name = "Inner Pipe Access"; req_access_txt = "24" }, @@ -47506,7 +46712,6 @@ dir = 4 }, /obj/machinery/door/window{ - dir = 2; name = "MiniSat Walkway Access" }, /obj/machinery/camera{ @@ -47600,8 +46805,7 @@ "bOk" = ( /obj/machinery/door/firedoor, /obj/machinery/door/airlock/grunge{ - name = "Quiet Room"; - opacity = 1 + name = "Quiet Room" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/wood, @@ -47609,8 +46813,7 @@ "bOl" = ( /obj/machinery/door/firedoor, /obj/machinery/door/airlock/grunge{ - name = "Quiet Room"; - opacity = 1 + name = "Quiet Room" }, /obj/structure/cable/yellow{ icon_state = "1-2" @@ -47809,9 +47012,9 @@ /area/bridge/showroom/corporate) "bOF" = ( /obj/machinery/power/apc/highcap/five_k{ + areastring = "/area/bridge/showroom/corporate"; dir = 4; name = "Nanotrasen Corporate Showroom APC"; - areastring = "/area/bridge/showroom/corporate"; pixel_x = 28 }, /obj/structure/cable/yellow{ @@ -48262,9 +47465,7 @@ /obj/machinery/light/small{ dir = 8 }, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /turf/open/floor/plating, /area/hallway/secondary/entry) "bPC" = ( @@ -48519,12 +47720,10 @@ icon_state = "1-2" }, /obj/item/bodypart/chest/robot{ - name = "cyborg torso"; pixel_x = -2; pixel_y = 2 }, /obj/item/bodypart/head/robot{ - name = "cyborg head"; pixel_x = 3; pixel_y = 2 }, @@ -48613,12 +47812,8 @@ /obj/structure/cable/yellow{ icon_state = "4-8" }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 2 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/obj/effect/turf_decal/stripes/line, /turf/open/floor/plasteel, /area/gateway) "bQs" = ( @@ -48800,9 +47995,7 @@ pixel_x = 30 }, /obj/machinery/processor, -/turf/open/floor/plasteel/cafeteria{ - dir = 2 - }, +/turf/open/floor/plasteel/cafeteria, /area/crew_quarters/kitchen) "bQI" = ( /obj/machinery/vending/wardrobe/chef_wardrobe, @@ -48997,9 +48190,7 @@ /turf/open/floor/plasteel, /area/ai_monitored/storage/eva) "bRq" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /turf/open/floor/plasteel, /area/ai_monitored/storage/eva) "bRr" = ( @@ -49078,7 +48269,6 @@ }, /obj/item/toy/beach_ball{ desc = "The simple beach ball is one of Nanotrasen's most popular products. 'Why do we make beach balls? Because we can! (TM)' - Nanotrasen"; - item_state = "beachball"; name = "Nanotrasen-brand beach ball"; pixel_y = 7 }, @@ -49111,12 +48301,10 @@ pixel_y = 3 }, /obj/item/clothing/mask/cigarette/cigar{ - name = "premium cigar"; pixel_x = 4; pixel_y = 1 }, /obj/item/clothing/mask/cigarette/cigar{ - name = "premium cigar"; pixel_x = -4; pixel_y = 1 }, @@ -49156,7 +48344,6 @@ pixel_y = -1 }, /obj/item/disk/tech_disk{ - name = "technology disk"; pixel_x = -2; pixel_y = -3 }, @@ -49179,12 +48366,8 @@ /obj/structure/cable/yellow{ icon_state = "2-8" }, -/obj/item/toy/gun{ - name = "cap gun" - }, -/obj/item/restraints/handcuffs{ - name = "handcuffs" - }, +/obj/item/toy/gun, +/obj/item/restraints/handcuffs, /obj/structure/table/wood, /obj/item/clothing/head/collectable/HoS{ name = "novelty HoS hat" @@ -49256,9 +48439,7 @@ }, /area/gateway) "bRL" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /turf/open/floor/plasteel, /area/gateway) "bRM" = ( @@ -49270,9 +48451,7 @@ c_tag = "Gateway - Access"; dir = 8 }, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /turf/open/floor/plasteel, /area/gateway) "bRN" = ( @@ -49302,15 +48481,12 @@ pixel_x = -23 }, /obj/machinery/power/apc{ - dir = 2; - name = "Kitchen APC"; areastring = "/area/crew_quarters/kitchen"; + name = "Kitchen APC"; pixel_y = -24 }, /obj/structure/cable/yellow, -/turf/open/floor/plasteel/cafeteria{ - dir = 2 - }, +/turf/open/floor/plasteel/cafeteria, /area/crew_quarters/kitchen) "bRQ" = ( /obj/structure/table, @@ -49320,9 +48496,7 @@ /obj/item/reagent_containers/food/condiment/enzyme{ layer = 5 }, -/turf/open/floor/plasteel/cafeteria{ - dir = 2 - }, +/turf/open/floor/plasteel/cafeteria, /area/crew_quarters/kitchen) "bRR" = ( /obj/structure/table, @@ -49351,9 +48525,7 @@ c_tag = "Kitchen"; dir = 1 }, -/turf/open/floor/plasteel/cafeteria{ - dir = 2 - }, +/turf/open/floor/plasteel/cafeteria, /area/crew_quarters/kitchen) "bRT" = ( /obj/structure/extinguisher_cabinet{ @@ -49659,9 +48831,7 @@ /obj/structure/cable/yellow{ icon_state = "4-8" }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 2 - }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, /obj/effect/turf_decal/stripes/line{ dir = 1 }, @@ -49831,9 +49001,7 @@ /area/hallway/primary/central) "bSR" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/turf_decal/tile/green{ - dir = 2 - }, +/obj/effect/turf_decal/tile/green, /turf/open/floor/plasteel, /area/hallway/primary/central) "bSS" = ( @@ -49945,9 +49113,9 @@ /area/maintenance/starboard) "bTc" = ( /obj/machinery/power/apc{ + areastring = "/area/maintenance/starboard"; dir = 1; name = "Starboard Maintenance APC"; - areastring = "/area/maintenance/starboard"; pixel_x = -1; pixel_y = 26 }, @@ -49984,9 +49152,7 @@ /turf/open/floor/plating, /area/maintenance/starboard) "bTf" = ( -/obj/machinery/atmospherics/pipe/manifold/general/visible{ - dir = 2 - }, +/obj/machinery/atmospherics/pipe/manifold/general/visible, /obj/machinery/meter, /turf/open/floor/plating, /area/maintenance/starboard) @@ -50177,7 +49343,6 @@ dir = 4 }, /obj/machinery/firealarm{ - dir = 2; pixel_y = 24 }, /obj/effect/turf_decal/stripes/corner{ @@ -50230,8 +49395,6 @@ dir = 4 }, /obj/item/radio/intercom{ - freerange = 0; - frequency = 1459; name = "Station Intercom (General)"; pixel_y = 21 }, @@ -50293,9 +49456,7 @@ /turf/open/floor/plasteel, /area/hallway/primary/central) "bTR" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 2 - }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, /obj/effect/turf_decal/tile/neutral{ dir = 1 }, @@ -50333,9 +49494,9 @@ dir = 1 }, /obj/machinery/power/apc/highcap/ten_k{ + areastring = "/area/hallway/primary/central"; dir = 1; name = "Central Primary Hallway APC"; - areastring = "/area/hallway/primary/central"; pixel_y = 24 }, /obj/structure/cable/yellow{ @@ -50379,8 +49540,6 @@ dir = 4 }, /obj/item/radio/intercom{ - freerange = 0; - frequency = 1459; name = "Station Intercom (General)"; pixel_y = 21 }, @@ -50406,9 +49565,7 @@ /turf/open/floor/plasteel, /area/hallway/primary/central) "bTZ" = ( -/obj/structure/bookcase{ - name = "bookcase" - }, +/obj/structure/bookcase, /turf/open/floor/wood, /area/bridge/showroom/corporate) "bUa" = ( @@ -50694,8 +49851,6 @@ /area/engine/atmos) "bUC" = ( /obj/item/radio/intercom{ - freerange = 0; - frequency = 1459; name = "Station Intercom (General)"; pixel_y = 28 }, @@ -50783,9 +49938,9 @@ /area/aisat) "bUN" = ( /obj/machinery/power/apc{ + areastring = "/area/maintenance/solars/port/aft"; dir = 8; name = "Port Quarter Solar APC"; - areastring = "/area/maintenance/solars/port/aft"; pixel_x = -26; pixel_y = 3 }, @@ -51175,12 +50330,8 @@ dir = 4; pixel_x = 11 }, -/obj/effect/turf_decal/bot{ - dir = 2 - }, -/turf/open/floor/plasteel{ - dir = 2 - }, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel, /area/hydroponics) "bVz" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -51287,9 +50438,7 @@ }, /area/engine/atmos) "bVJ" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/visible{ - dir = 2 - }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/visible, /obj/machinery/meter, /obj/structure/cable/yellow{ icon_state = "1-2" @@ -51492,9 +50641,7 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 2 - }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, /obj/effect/turf_decal/tile/neutral{ dir = 8 }, @@ -51574,9 +50721,7 @@ /turf/open/floor/plasteel, /area/hallway/primary/central) "bWo" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 2 - }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, /turf/open/floor/plasteel, /area/hallway/primary/central) "bWp" = ( @@ -51596,9 +50741,7 @@ /turf/open/floor/plasteel, /area/hallway/primary/central) "bWr" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 2 - }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, /obj/effect/turf_decal/plaque{ icon_state = "L2" }, @@ -51697,9 +50840,7 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 2 - }, +/obj/effect/turf_decal/tile/neutral, /turf/open/floor/plasteel, /area/hallway/primary/central) "bWC" = ( @@ -51710,9 +50851,7 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 2 - }, +/obj/effect/turf_decal/tile/neutral, /turf/open/floor/plasteel, /area/hallway/primary/central) "bWD" = ( @@ -51722,16 +50861,12 @@ /obj/structure/disposalpipe/segment{ dir = 10 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 2 - }, +/obj/effect/turf_decal/tile/neutral, /turf/open/floor/plasteel, /area/hallway/primary/central) "bWE" = ( /obj/machinery/light, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 2 - }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, /obj/structure/extinguisher_cabinet{ pixel_y = -30 }, @@ -51739,46 +50874,34 @@ c_tag = "Central Primary Hallway - Aft-Starboard Corner"; dir = 1 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 2 - }, +/obj/effect/turf_decal/tile/neutral, /turf/open/floor/plasteel, /area/hallway/primary/central) "bWF" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ dir = 1 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 2 - }, +/obj/effect/turf_decal/tile/neutral, /turf/open/floor/plasteel, /area/hallway/primary/central) "bWG" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 2 - }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, /obj/machinery/airalarm{ dir = 1; pixel_y = -22 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 2 - }, +/obj/effect/turf_decal/tile/neutral, /turf/open/floor/plasteel, /area/hallway/primary/central) "bWH" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, -/obj/effect/turf_decal/tile/green{ - dir = 2 - }, +/obj/effect/turf_decal/tile/green, /turf/open/floor/plasteel, /area/hallway/primary/central) "bWI" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 2 - }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, /obj/structure/cable/yellow{ icon_state = "1-2" }, @@ -52180,8 +51303,7 @@ /obj/machinery/power/solar_control{ dir = 1; id = "aftport"; - name = "Port Quarter Solar Control"; - track = 0 + name = "Port Quarter Solar Control" }, /obj/structure/cable{ icon_state = "0-4" @@ -52193,9 +51315,7 @@ /obj/structure/cable{ icon_state = "2-8" }, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /turf/open/floor/plating, /area/maintenance/solars/port/aft) "bXv" = ( @@ -52261,9 +51381,7 @@ }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/disposalpipe/segment, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /turf/open/floor/plating, /area/maintenance/port) "bXH" = ( @@ -52353,22 +51471,16 @@ /area/hallway/primary/central) "bXT" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/effect/turf_decal/tile/purple{ - dir = 2 - }, +/obj/effect/turf_decal/tile/purple, /turf/open/floor/plasteel, /area/hallway/primary/central) "bXU" = ( /obj/machinery/light/small, -/obj/effect/turf_decal/tile/purple{ - dir = 2 - }, +/obj/effect/turf_decal/tile/purple, /turf/open/floor/plasteel, /area/hallway/primary/central) "bXV" = ( -/obj/effect/turf_decal/tile/purple{ - dir = 2 - }, +/obj/effect/turf_decal/tile/purple, /turf/open/floor/plasteel, /area/hallway/primary/central) "bXW" = ( @@ -52376,16 +51488,12 @@ c_tag = "Central Primary Hallway - Aft-Starboard"; dir = 1 }, -/obj/effect/turf_decal/tile/purple{ - dir = 2 - }, +/obj/effect/turf_decal/tile/purple, /turf/open/floor/plasteel, /area/hallway/primary/central) "bXX" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/turf_decal/tile/purple{ - dir = 2 - }, +/obj/effect/turf_decal/tile/purple, /turf/open/floor/plasteel, /area/hallway/primary/central) "bXY" = ( @@ -52394,9 +51502,7 @@ }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/structure/disposalpipe/segment, -/obj/effect/turf_decal/tile/purple{ - dir = 2 - }, +/obj/effect/turf_decal/tile/purple, /turf/open/floor/plasteel, /area/hallway/primary/central) "bXZ" = ( @@ -52407,9 +51513,7 @@ /obj/item/twohanded/required/kirbyplants{ icon_state = "plant-10" }, -/obj/effect/turf_decal/tile/purple{ - dir = 2 - }, +/obj/effect/turf_decal/tile/purple, /turf/open/floor/plasteel, /area/hallway/primary/central) "bYa" = ( @@ -52737,9 +51841,7 @@ /area/maintenance/port/aft) "bYI" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /turf/open/floor/plating, /area/maintenance/port/aft) "bYJ" = ( @@ -52850,7 +51952,6 @@ /obj/item/clothing/neck/stethoscope, /obj/item/radio/intercom{ broadcasting = 1; - freerange = 0; frequency = 1485; listening = 0; name = "Station Intercom (Medbay)"; @@ -52914,9 +52015,9 @@ /area/medical/storage) "bYX" = ( /obj/machinery/power/apc{ + areastring = "/area/security/checkpoint/medical"; dir = 8; name = "Medical Security Checkpoint APC"; - areastring = "/area/security/checkpoint/medical"; pixel_x = -24 }, /obj/machinery/airalarm{ @@ -52952,7 +52053,6 @@ }, /obj/machinery/camera{ c_tag = "Security Post - Medbay"; - dir = 2; network = list("ss13","medbay") }, /obj/effect/turf_decal/tile/red{ @@ -53004,16 +52104,12 @@ }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/machinery/door/firedoor, -/turf/open/floor/plasteel/white/side{ - dir = 2 - }, +/turf/open/floor/plasteel/white/side, /area/medical/medbay/central) "bZd" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/machinery/door/firedoor, -/turf/open/floor/plasteel/white/side{ - dir = 2 - }, +/turf/open/floor/plasteel/white/side, /area/medical/medbay/central) "bZe" = ( /obj/structure/sign/directions/security{ @@ -53056,9 +52152,7 @@ /obj/machinery/door/airlock/public/glass{ name = "Aft Primary Hallway" }, -/obj/effect/turf_decal/tile/purple{ - dir = 2 - }, +/obj/effect/turf_decal/tile/purple, /turf/open/floor/plasteel, /area/hallway/primary/aft) "bZi" = ( @@ -53084,9 +52178,7 @@ "bZl" = ( /obj/machinery/door/firedoor, /obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/white/side{ - dir = 2 - }, +/turf/open/floor/plasteel/white/side, /area/science/research) "bZm" = ( /obj/structure/cable/yellow{ @@ -53095,9 +52187,7 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/machinery/door/firedoor, /obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel/white/side{ - dir = 2 - }, +/turf/open/floor/plasteel/white/side, /area/science/research) "bZn" = ( /turf/closed/wall, @@ -53225,8 +52315,6 @@ dir = 5 }, /obj/item/radio/intercom{ - freerange = 0; - frequency = 1459; name = "Station Intercom (General)"; pixel_x = -30 }, @@ -53611,9 +52699,7 @@ /area/hallway/primary/aft) "cas" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/effect/turf_decal/tile/purple{ - dir = 2 - }, +/obj/effect/turf_decal/tile/purple, /turf/open/floor/plasteel, /area/hallway/primary/aft) "cat" = ( @@ -53731,7 +52817,6 @@ }, /obj/machinery/camera{ c_tag = "Research Division - Lobby"; - dir = 2; network = list("ss13","rd") }, /obj/effect/turf_decal/tile/purple{ @@ -53935,12 +53020,8 @@ /obj/structure/cable/yellow{ icon_state = "4-8" }, -/obj/effect/turf_decal/bot{ - dir = 2 - }, -/turf/open/floor/plasteel{ - dir = 2 - }, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel, /area/hydroponics) "caQ" = ( /obj/structure/disposalpipe/segment{ @@ -53954,15 +53035,11 @@ /obj/structure/cable/yellow{ icon_state = "4-8" }, -/obj/effect/turf_decal/bot{ - dir = 2 - }, +/obj/effect/turf_decal/bot, /obj/effect/mapping_helpers/airlock/cyclelink_helper{ dir = 4 }, -/turf/open/floor/plasteel{ - dir = 2 - }, +/turf/open/floor/plasteel, /area/hydroponics) "caR" = ( /obj/structure/disposalpipe/segment{ @@ -54070,8 +53147,6 @@ /area/maintenance/disposal/incinerator) "cbb" = ( /obj/machinery/door/window/northleft{ - dir = 1; - icon_state = "left"; name = "Inner Pipe Access"; req_access_txt = "24" }, @@ -54156,8 +53231,6 @@ dir = 8 }, /obj/machinery/door/window/northleft{ - dir = 1; - icon_state = "left"; name = "Inner Pipe Access"; req_access_txt = "24" }, @@ -54232,8 +53305,6 @@ dir = 4 }, /obj/machinery/door/window/northleft{ - dir = 1; - icon_state = "left"; name = "Inner Pipe Access"; req_access_txt = "24" }, @@ -54370,7 +53441,6 @@ /area/maintenance/port/aft) "cby" = ( /obj/machinery/mecha_part_fabricator{ - dir = 2; name = "counterfeit exosuit fabricator"; req_access = null }, @@ -54506,9 +53576,7 @@ /turf/open/floor/plasteel/white, /area/medical/storage) "cbL" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 2 - }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, /obj/structure/cable/yellow{ icon_state = "4-8" }, @@ -54551,7 +53619,6 @@ /area/medical/storage) "cbP" = ( /obj/machinery/requests_console{ - announcementConsole = 0; department = "Medbay"; departmentType = 1; name = "Medbay RC" @@ -54636,9 +53703,7 @@ /obj/structure/cable/yellow{ icon_state = "1-8" }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 2 - }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, /obj/machinery/holopad, /turf/open/floor/plasteel/white, /area/medical/medbay/central) @@ -54881,9 +53946,8 @@ /obj/machinery/hydroponics/constructable, /obj/machinery/light, /obj/machinery/power/apc{ - dir = 2; - name = "Hydroponics APC"; areastring = "/area/hydroponics"; + name = "Hydroponics APC"; pixel_y = -28 }, /obj/structure/cable/yellow, @@ -55158,13 +54222,11 @@ "ccZ" = ( /obj/machinery/door/window/northleft{ dir = 8; - icon_state = "left"; name = "glass door"; req_access_txt = "24" }, /obj/machinery/door/window/northleft{ dir = 4; - icon_state = "left"; name = "glass door"; req_access_txt = "24" }, @@ -55293,9 +54355,8 @@ }, /obj/structure/closet/l3closet, /obj/machinery/power/apc{ - dir = 2; - name = "Medbay Storage APC"; areastring = "/area/medical/storage"; + name = "Medbay Storage APC"; pixel_y = -24 }, /obj/structure/cable/yellow, @@ -55490,9 +54551,7 @@ /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ dir = 4 }, -/obj/effect/turf_decal/tile/purple{ - dir = 2 - }, +/obj/effect/turf_decal/tile/purple, /turf/open/floor/plasteel, /area/hallway/primary/aft) "cdJ" = ( @@ -55711,7 +54770,6 @@ pixel_x = 32 }, /obj/machinery/atmospherics/components/binary/pump{ - dir = 2; name = "Fuel Pipe to Incinerator" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -55967,10 +55025,7 @@ "ceF" = ( /obj/structure/bed/roller, /obj/item/radio/intercom{ - broadcasting = 0; - freerange = 0; frequency = 1485; - listening = 1; name = "Station Intercom (Medbay)"; pixel_y = -30 }, @@ -56095,8 +55150,6 @@ dir = 4 }, /obj/item/radio/intercom{ - freerange = 0; - frequency = 1459; name = "Station Intercom (General)"; pixel_y = -30 }, @@ -56226,9 +55279,7 @@ /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ dir = 1 }, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /turf/open/floor/plating, /area/maintenance/starboard/aft) "cfc" = ( @@ -56329,9 +55380,7 @@ /obj/structure/disposalpipe/segment{ dir = 9 }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 2 - }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, /turf/open/floor/plating, /area/maintenance/starboard) "cfk" = ( @@ -56556,9 +55605,9 @@ }, /obj/item/pen, /obj/machinery/power/apc{ + areastring = "/area/medical/sleeper"; dir = 1; name = "Sleeper Room APC"; - areastring = "/area/medical/sleeper"; pixel_y = 24 }, /obj/structure/cable/yellow{ @@ -56844,9 +55893,7 @@ dir = 8; pixel_x = 24 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 2 - }, +/obj/effect/turf_decal/tile/neutral, /turf/open/floor/plasteel, /area/hallway/primary/aft) "cgd" = ( @@ -56913,9 +55960,9 @@ /area/science/research) "cgj" = ( /obj/machinery/power/apc{ + areastring = "/area/security/checkpoint/science/research"; dir = 8; name = "Security Post - Research Division APC"; - areastring = "/area/security/checkpoint/science/research"; pixel_x = -24 }, /obj/structure/cable/yellow, @@ -56957,9 +56004,7 @@ }, /obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /turf/open/floor/plating, /area/maintenance/starboard/aft) "cgn" = ( @@ -56989,9 +56034,9 @@ /area/maintenance/starboard/aft) "cgt" = ( /obj/machinery/power/apc{ + areastring = "/area/maintenance/disposal/incinerator"; dir = 8; name = "Incinerator APC"; - areastring = "/area/maintenance/disposal/incinerator"; pixel_x = -24 }, /obj/structure/cable/yellow{ @@ -57144,12 +56189,8 @@ /obj/structure/cable/yellow{ icon_state = "4-8" }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 2 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/obj/effect/turf_decal/stripes/line, /turf/open/floor/plating, /area/maintenance/port/aft) "cgM" = ( @@ -57494,9 +56535,7 @@ /area/hallway/primary/aft) "chh" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/effect/turf_decal/tile/neutral{ - dir = 2 - }, +/obj/effect/turf_decal/tile/neutral, /turf/open/floor/plasteel, /area/hallway/primary/aft) "chi" = ( @@ -57511,8 +56550,6 @@ dir = 4 }, /obj/structure/noticeboard{ - desc = "A board for pinning important notices upon."; - name = "notice board"; pixel_y = 31 }, /turf/open/floor/plasteel, @@ -57656,7 +56693,6 @@ }, /obj/machinery/camera{ c_tag = "Experimentation Lab - Test Chamber"; - dir = 2; network = list("ss13","rd") }, /obj/machinery/light{ @@ -57746,7 +56782,6 @@ "chI" = ( /obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/components/binary/valve{ - dir = 2; name = "output gas to space" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ @@ -57777,7 +56812,6 @@ }, /obj/machinery/camera{ c_tag = "MiniSat Exterior - Aft"; - dir = 2; network = list("minisat") }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -57987,9 +57021,7 @@ /obj/structure/cable/yellow{ icon_state = "1-2" }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 2 - }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, /obj/effect/turf_decal/tile/blue{ dir = 1 }, @@ -58025,9 +57057,9 @@ /area/medical/medbay/central) "cip" = ( /obj/machinery/power/apc{ + areastring = "/area/medical/medbay/central"; dir = 1; name = "Medbay Central APC"; - areastring = "/area/medical/medbay/central"; pixel_y = 24 }, /obj/structure/cable/yellow{ @@ -58038,7 +57070,6 @@ }, /obj/machinery/camera{ c_tag = "Medbay Hallway Fore"; - dir = 2; network = list("ss13","medbay") }, /obj/effect/turf_decal/tile/blue{ @@ -58047,9 +57078,7 @@ /turf/open/floor/plasteel/white, /area/medical/medbay/central) "ciq" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 2 - }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, /obj/effect/turf_decal/tile/blue{ dir = 1 }, @@ -58291,9 +57320,9 @@ /area/science/research) "ciJ" = ( /obj/machinery/power/apc/highcap/ten_k{ + areastring = "/area/science/research"; dir = 1; name = "Research Division APC"; - areastring = "/area/science/research"; pixel_y = 25 }, /obj/structure/cable/yellow{ @@ -58304,7 +57333,6 @@ }, /obj/machinery/camera{ c_tag = "Research Division - Airlock"; - dir = 2; network = list("ss13","rd") }, /obj/effect/turf_decal/stripes/line{ @@ -58419,12 +57447,6 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/plating, /area/maintenance/disposal/incinerator) -"ciZ" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible{ - dir = 2 - }, -/turf/closed/wall/r_wall, -/area/maintenance/disposal/incinerator) "cja" = ( /obj/effect/mapping_helpers/airlock/locked, /obj/machinery/door/airlock/public/glass/incinerator/atmos_interior, @@ -58488,9 +57510,7 @@ /turf/open/floor/engine/air, /area/engine/atmos) "cjl" = ( -/obj/machinery/atmospherics/components/binary/pump{ - dir = 2 - }, +/obj/machinery/atmospherics/components/binary/pump, /turf/closed/wall/r_wall, /area/engine/atmos) "cjm" = ( @@ -58633,7 +57653,6 @@ /obj/structure/bed/roller, /obj/item/radio/intercom{ broadcasting = 1; - freerange = 0; frequency = 1485; listening = 0; name = "Station Intercom (Medbay)"; @@ -58673,12 +57692,8 @@ /turf/open/floor/plasteel/white, /area/medical/sleeper) "cjH" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 2 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 2 - }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/obj/effect/turf_decal/tile/blue, /turf/open/floor/plasteel/white, /area/medical/sleeper) "cjI" = ( @@ -58753,9 +57768,7 @@ /obj/structure/cable/yellow{ icon_state = "4-8" }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 2 - }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, /turf/open/floor/plasteel/white, /area/medical/medbay/central) "cjO" = ( @@ -58799,9 +57812,7 @@ dir = 8; name = "emergency shower" }, -/obj/effect/turf_decal/tile/yellow{ - dir = 2 - }, +/obj/effect/turf_decal/tile/yellow, /turf/open/floor/plasteel/white, /area/medical/medbay/central) "cjS" = ( @@ -59063,8 +58074,6 @@ "ckq" = ( /obj/machinery/vending/coffee, /obj/item/radio/intercom{ - freerange = 0; - frequency = 1459; name = "Station Intercom (General)"; pixel_x = 29 }, @@ -59170,7 +58179,6 @@ "ckC" = ( /obj/structure/lattice, /obj/machinery/atmospherics/components/binary/pump/on{ - dir = 2; name = "Incinerator Output Pump" }, /obj/structure/disposalpipe/segment, @@ -59211,9 +58219,7 @@ /obj/machinery/light/small{ dir = 4 }, -/obj/machinery/atmospherics/components/binary/pump/on{ - dir = 2 - }, +/obj/machinery/atmospherics/components/binary/pump/on, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, @@ -59464,7 +58470,6 @@ "clm" = ( /obj/item/radio/intercom{ broadcasting = 1; - freerange = 0; frequency = 1485; listening = 0; name = "Station Intercom (Medbay)"; @@ -59473,9 +58478,7 @@ /turf/open/floor/plasteel/white, /area/medical/medbay/central) "cln" = ( -/obj/effect/turf_decal/tile/blue{ - dir = 2 - }, +/obj/effect/turf_decal/tile/blue, /turf/open/floor/plasteel/white, /area/medical/medbay/central) "clo" = ( @@ -59500,9 +58503,7 @@ pixel_y = -22 }, /obj/effect/landmark/event_spawn, -/obj/effect/turf_decal/tile/yellow{ - dir = 2 - }, +/obj/effect/turf_decal/tile/yellow, /turf/open/floor/plasteel/white, /area/medical/medbay/central) "clr" = ( @@ -59624,9 +58625,7 @@ dir = 8; pixel_x = 24 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 2 - }, +/obj/effect/turf_decal/tile/neutral, /turf/open/floor/plasteel, /area/hallway/primary/aft) "clz" = ( @@ -59703,9 +58702,7 @@ /obj/machinery/atmospherics/components/unary/vent_pump/on{ dir = 8 }, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /turf/open/floor/plasteel/white, /area/science/research) "clH" = ( @@ -59754,9 +58751,7 @@ /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ dir = 8 }, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /turf/open/floor/plating, /area/maintenance/starboard/aft) "clN" = ( @@ -60115,9 +59110,7 @@ /obj/structure/sign/departments/science{ pixel_x = 32 }, -/obj/effect/turf_decal/tile/purple{ - dir = 2 - }, +/obj/effect/turf_decal/tile/purple, /turf/open/floor/plasteel, /area/hallway/primary/aft) "cmF" = ( @@ -60246,9 +59239,7 @@ }, /obj/machinery/disposal/bin, /obj/structure/disposalpipe/trunk, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /turf/open/floor/plasteel, /area/science/explab) "cmR" = ( @@ -60258,9 +59249,7 @@ pixel_y = 6 }, /obj/item/pen, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /turf/open/floor/plasteel, /area/science/explab) "cmS" = ( @@ -60271,25 +59260,19 @@ /obj/item/stack/packageWrap, /obj/item/taperecorder, /obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /turf/open/floor/plasteel, /area/science/explab) "cmT" = ( /obj/machinery/computer/rdconsole/experiment, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /turf/open/floor/plasteel, /area/science/explab) "cmU" = ( /obj/structure/table/reinforced, /obj/item/clipboard, /obj/item/book/manual/wiki/experimentor, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /turf/open/floor/plasteel, /area/science/explab) "cmV" = ( @@ -60317,18 +59300,14 @@ }, /obj/item/stack/medical/ointment, /obj/item/healthanalyzer, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /turf/open/floor/plasteel, /area/science/explab) "cmW" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 9 }, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /turf/open/floor/plasteel, /area/science/explab) "cmX" = ( @@ -60440,9 +59419,7 @@ /obj/structure/table, /obj/item/surgicaldrill, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/white/side{ - dir = 2 - }, +/turf/open/floor/plasteel/white/side, /area/medical/surgery) "cno" = ( /obj/structure/table, @@ -60450,9 +59427,7 @@ pixel_y = 12 }, /obj/item/circular_saw, -/turf/open/floor/plasteel/white/side{ - dir = 2 - }, +/turf/open/floor/plasteel/white/side, /area/medical/surgery) "cnp" = ( /obj/structure/table, @@ -60463,9 +59438,7 @@ /obj/item/razor{ pixel_y = 5 }, -/turf/open/floor/plasteel/white/side{ - dir = 2 - }, +/turf/open/floor/plasteel/white/side, /area/medical/surgery) "cnq" = ( /obj/structure/table, @@ -60479,21 +59452,16 @@ /obj/structure/extinguisher_cabinet{ pixel_x = -27 }, -/turf/open/floor/plasteel/white/side{ - dir = 2 - }, +/turf/open/floor/plasteel/white/side, /area/medical/surgery) "cns" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/white/side{ - dir = 2 - }, +/turf/open/floor/plasteel/white/side, /area/medical/surgery) "cnt" = ( /obj/structure/table/reinforced, /obj/item/radio/intercom{ broadcasting = 1; - freerange = 0; frequency = 1485; listening = 0; name = "Station Intercom (Medbay)"; @@ -60511,15 +59479,13 @@ /obj/item/storage/belt/medical{ pixel_y = 2 }, -/turf/open/floor/plasteel/white/side{ - dir = 2 - }, +/turf/open/floor/plasteel/white/side, /area/medical/surgery) "cnu" = ( /obj/machinery/power/apc{ + areastring = "/area/medical/cryo"; dir = 1; name = "Cryogenics APC"; - areastring = "/area/medical/cryo"; pixel_y = 24 }, /obj/structure/cable/yellow{ @@ -60962,7 +59928,6 @@ }, /obj/machinery/camera{ c_tag = "Research Division Hallway - Central"; - dir = 2; network = list("ss13","rd") }, /turf/open/floor/plasteel/white, @@ -60990,9 +59955,7 @@ }, /obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/white/side{ - dir = 2 - }, +/turf/open/floor/plasteel/white/side, /area/science/research) "cof" = ( /turf/open/floor/plasteel/white/side{ @@ -61001,8 +59964,6 @@ /area/science/research) "cog" = ( /obj/item/radio/intercom{ - broadcasting = 0; - listening = 1; name = "Station Intercom (General)"; pixel_y = 20 }, @@ -61033,9 +59994,7 @@ /obj/item/twohanded/required/kirbyplants{ icon_state = "plant-10" }, -/obj/effect/turf_decal/tile/purple{ - dir = 2 - }, +/obj/effect/turf_decal/tile/purple, /turf/open/floor/plasteel/white, /area/science/research) "cok" = ( @@ -61204,9 +60163,9 @@ /area/medical/surgery) "coC" = ( /obj/machinery/power/apc{ + areastring = "/area/medical/surgery"; dir = 4; name = "Surgery APC"; - areastring = "/area/medical/surgery"; pixel_x = 26 }, /obj/structure/cable/yellow{ @@ -61288,9 +60247,7 @@ /turf/open/floor/plasteel, /area/medical/cryo) "coK" = ( -/obj/machinery/atmospherics/pipe/manifold/general/visible{ - dir = 2 - }, +/obj/machinery/atmospherics/pipe/manifold/general/visible, /obj/effect/landmark/start/medical_doctor, /turf/open/floor/plasteel, /area/medical/cryo) @@ -61371,9 +60328,9 @@ /area/crew_quarters/heads/cmo) "coS" = ( /obj/machinery/power/apc{ + areastring = "/area/crew_quarters/heads/cmo"; dir = 4; name = "CMO's Office APC"; - areastring = "/area/crew_quarters/heads/cmo"; pixel_x = 26 }, /obj/structure/cable/yellow{ @@ -61516,7 +60473,6 @@ "cpc" = ( /obj/structure/table/reinforced, /obj/machinery/door/window/eastright{ - dir = 4; name = "Research and Development Desk"; req_one_access_txt = "7;29" }, @@ -61673,9 +60629,7 @@ /obj/structure/disposalpipe/junction/flip{ dir = 2 }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 2 - }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, /turf/open/floor/plasteel/white, /area/science/research) "cpr" = ( @@ -61710,9 +60664,7 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 2 - }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, /turf/open/floor/plasteel/white, /area/science/research) "cpv" = ( @@ -62262,9 +61214,9 @@ /area/maintenance/aft) "cqr" = ( /obj/machinery/power/apc{ + areastring = "/area/medical/chemistry"; dir = 8; name = "Chemistry APC"; - areastring = "/area/medical/chemistry"; pixel_x = -24 }, /obj/structure/closet/secure_closet/chemical{ @@ -62364,9 +61316,8 @@ maxcharge = 15000 }, /obj/machinery/power/apc{ - dir = 2; - name = "Research Lab APC"; areastring = "/area/science/lab"; + name = "Research Lab APC"; pixel_y = -26 }, /obj/structure/cable/yellow, @@ -62532,9 +61483,7 @@ /area/science/research) "cqL" = ( /obj/machinery/light, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 2 - }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, /turf/open/floor/plasteel/white, /area/science/research) "cqM" = ( @@ -62548,12 +61497,8 @@ /turf/open/floor/plasteel/white, /area/science/research) "cqN" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 2 - }, -/obj/effect/turf_decal/tile/purple{ - dir = 2 - }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/obj/effect/turf_decal/tile/purple, /turf/open/floor/plasteel/white, /area/science/research) "cqO" = ( @@ -62599,9 +61544,8 @@ dir = 4 }, /obj/machinery/power/apc{ - dir = 2; - name = "Experimentation Lab APC"; areastring = "/area/science/explab"; + name = "Experimentation Lab APC"; pixel_y = -24 }, /obj/structure/cable/yellow, @@ -62695,9 +61639,7 @@ /turf/open/space, /area/space/nearstation) "crd" = ( -/obj/structure/disposaloutlet{ - dir = 2 - }, +/obj/structure/disposaloutlet, /obj/structure/disposalpipe/trunk{ dir = 8 }, @@ -62828,7 +61770,6 @@ }, /obj/item/radio/intercom{ broadcasting = 1; - freerange = 0; frequency = 1485; listening = 0; name = "Station Intercom (Medbay)"; @@ -62846,9 +61787,7 @@ name = "Connector Port (Air Supply)" }, /obj/machinery/portable_atmospherics/canister/oxygen, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /turf/open/floor/plasteel, /area/medical/cryo) "crv" = ( @@ -62876,9 +61815,7 @@ dir = 4 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/effect/turf_decal/tile/blue{ - dir = 2 - }, +/obj/effect/turf_decal/tile/blue, /turf/open/floor/plasteel/white, /area/medical/medbay/central) "cry" = ( @@ -62985,8 +61922,6 @@ "crF" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/item/radio/intercom{ - freerange = 0; - frequency = 1459; name = "Station Intercom (General)"; pixel_x = -29 }, @@ -63007,9 +61942,9 @@ /area/hallway/primary/aft) "crH" = ( /obj/machinery/power/apc/highcap/five_k{ + areastring = "/area/hallway/primary/aft"; dir = 4; name = "Aft Hallway APC"; - areastring = "/area/hallway/primary/aft"; pixel_x = 24 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, @@ -63276,7 +62211,6 @@ "csn" = ( /obj/item/radio/intercom{ broadcasting = 1; - freerange = 0; frequency = 1485; listening = 0; name = "Station Intercom (Medbay)"; @@ -63563,9 +62497,7 @@ dir = 8; sortType = 23 }, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /turf/open/floor/plating, /area/maintenance/aft) "csI" = ( @@ -63609,9 +62541,7 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 2 - }, +/obj/effect/turf_decal/tile/neutral, /turf/open/floor/plasteel, /area/hallway/primary/aft) "csM" = ( @@ -63695,9 +62625,7 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /turf/open/floor/plating, /area/maintenance/aft) "csT" = ( @@ -63855,9 +62783,9 @@ "cti" = ( /obj/machinery/portable_atmospherics/canister/oxygen, /obj/machinery/power/apc/highcap/five_k{ + areastring = "/area/science/storage"; dir = 1; name = "Toxins Storage APC"; - areastring = "/area/science/storage"; pixel_y = 25 }, /obj/structure/cable/yellow{ @@ -64055,9 +62983,7 @@ "ctG" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/machinery/door/firedoor, -/obj/effect/turf_decal/tile/neutral{ - dir = 2 - }, +/obj/effect/turf_decal/tile/neutral, /turf/open/floor/plasteel, /area/hallway/primary/aft) "ctH" = ( @@ -64174,9 +63100,7 @@ /turf/open/floor/plasteel/white, /area/crew_quarters/heads/hor) "ctU" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /turf/open/floor/plasteel/white, /area/crew_quarters/heads/hor) "ctV" = ( @@ -64326,9 +63250,9 @@ icon_state = "0-2" }, /obj/machinery/power/apc{ + areastring = "/area/maintenance/port/aft"; dir = 1; name = "Port Quarter Maintenance APC"; - areastring = "/area/maintenance/port/aft"; pixel_y = 24 }, /turf/open/floor/plating, @@ -64344,9 +63268,9 @@ dir = 8 }, /obj/machinery/power/apc{ + areastring = "/area/medical/patients_rooms/room_a"; dir = 8; name = "Patient Room A APC"; - areastring = "/area/medical/patients_rooms/room_a"; pixel_x = -26 }, /obj/structure/cable/yellow{ @@ -64434,8 +63358,6 @@ }, /obj/item/storage/box/bodybags, /obj/item/radio/intercom{ - freerange = 0; - frequency = 1459; name = "Station Intercom (General)"; pixel_x = -29 }, @@ -64475,7 +63397,6 @@ "cut" = ( /obj/machinery/requests_console{ department = "Genetics"; - departmentType = 0; name = "Genetics Requests Console"; pixel_y = 30 }, @@ -64493,8 +63414,6 @@ pixel_y = 3 }, /obj/structure/noticeboard{ - desc = "A board for pinning important notices upon."; - name = "notice board"; pixel_x = -32; pixel_y = 32 }, @@ -64513,9 +63432,9 @@ /area/medical/genetics) "cuu" = ( /obj/machinery/power/apc{ + areastring = "/area/medical/genetics"; dir = 1; name = "Genetics Lab APC"; - areastring = "/area/medical/genetics"; pixel_y = 24 }, /obj/structure/cable/yellow{ @@ -64708,9 +63627,7 @@ /area/science/research) "cuK" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/effect/turf_decal/tile/blue{ - dir = 2 - }, +/obj/effect/turf_decal/tile/blue, /turf/open/floor/plasteel/white, /area/science/research) "cuL" = ( @@ -64979,7 +63896,6 @@ dir = 4 }, /obj/machinery/door/window/southleft{ - dir = 2; name = "Cloning Shower" }, /obj/structure/mirror{ @@ -65000,7 +63916,6 @@ "cvv" = ( /obj/machinery/door/window/southleft{ base_state = "right"; - dir = 2; icon_state = "right"; name = "Cloning Shower" }, @@ -65026,8 +63941,6 @@ pixel_y = 2 }, /obj/item/radio/intercom{ - freerange = 0; - frequency = 1459; name = "Station Intercom (General)"; pixel_x = 29 }, @@ -65195,9 +64108,7 @@ /obj/structure/extinguisher_cabinet{ pixel_x = 27 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 2 - }, +/obj/effect/turf_decal/tile/neutral, /turf/open/floor/plasteel, /area/hallway/primary/aft) "cvH" = ( @@ -65373,8 +64284,6 @@ "cvY" = ( /obj/machinery/portable_atmospherics/canister/toxins, /obj/item/radio/intercom{ - freerange = 0; - frequency = 1459; name = "Station Intercom (General)"; pixel_x = 29 }, @@ -65661,8 +64570,6 @@ pixel_y = 2 }, /obj/item/radio/intercom{ - freerange = 0; - frequency = 1459; name = "Station Intercom (General)"; pixel_x = -29 }, @@ -65734,8 +64641,6 @@ "cwJ" = ( /obj/machinery/computer/mech_bay_power_console, /obj/item/radio/intercom{ - broadcasting = 0; - listening = 1; name = "Station Intercom (General)"; pixel_y = 20 }, @@ -65790,9 +64695,8 @@ /area/science/research) "cwP" = ( /obj/machinery/power/apc{ - dir = 2; - name = "RD Office APC"; areastring = "/area/crew_quarters/heads/hor"; + name = "RD Office APC"; pixel_y = -27 }, /obj/structure/cable/yellow, @@ -66008,9 +64912,7 @@ dir = 8 }, /obj/structure/disposalpipe/segment, -/obj/effect/turf_decal/tile/blue{ - dir = 2 - }, +/obj/effect/turf_decal/tile/blue, /turf/open/floor/plasteel/white, /area/medical/medbay/aft) "cxl" = ( @@ -66042,9 +64944,7 @@ /turf/open/floor/plasteel/white, /area/medical/genetics/cloning) "cxo" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 2 - }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, /obj/machinery/dna_scannernew, /obj/effect/turf_decal/tile/blue, /obj/effect/turf_decal/tile/blue{ @@ -66194,9 +65094,7 @@ codes_txt = "patrol;next_patrol=9.1-Escape-1"; location = "8.1-Aft-to-Escape" }, -/obj/effect/turf_decal/tile/neutral{ - dir = 2 - }, +/obj/effect/turf_decal/tile/neutral, /turf/open/floor/plasteel, /area/hallway/primary/aft) "cxC" = ( @@ -66252,8 +65150,6 @@ /area/science/misc_lab/range) "cxJ" = ( /obj/item/radio/intercom{ - freerange = 0; - frequency = 1459; name = "Station Intercom (General)"; pixel_x = 29 }, @@ -66567,9 +65463,7 @@ /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ dir = 8 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 2 - }, +/obj/effect/turf_decal/tile/neutral, /turf/open/floor/plasteel, /area/hallway/primary/aft) "cyp" = ( @@ -66649,9 +65543,7 @@ /obj/structure/closet/l3closet/scientist{ pixel_x = -2 }, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /turf/open/floor/plasteel, /area/science/mixing) "cyA" = ( @@ -66659,20 +65551,15 @@ /obj/structure/window/reinforced{ dir = 4 }, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /turf/open/floor/plasteel, /area/science/mixing) "cyB" = ( /obj/machinery/firealarm{ - dir = 2; pixel_y = 24 }, /obj/machinery/atmospherics/components/unary/thermomachine/freezer, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /turf/open/floor/plasteel, /area/science/mixing) "cyC" = ( @@ -66681,16 +65568,12 @@ }, /obj/machinery/atmospherics/components/unary/portables_connector/visible, /obj/machinery/portable_atmospherics/canister/oxygen, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /turf/open/floor/plasteel, /area/science/mixing) "cyD" = ( /obj/machinery/atmospherics/components/unary/portables_connector/visible, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /obj/machinery/portable_atmospherics/canister, /turf/open/floor/plasteel, /area/science/mixing) @@ -66700,14 +65583,11 @@ }, /obj/machinery/camera{ c_tag = "Toxins - Lab"; - dir = 2; network = list("ss13","rd") }, /obj/machinery/atmospherics/components/unary/portables_connector/visible, /obj/machinery/portable_atmospherics/canister, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /turf/open/floor/plasteel, /area/science/mixing) "cyF" = ( @@ -66715,9 +65595,7 @@ /obj/structure/window/reinforced{ dir = 8 }, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /obj/machinery/airalarm/unlocked{ pixel_y = 24 }, @@ -66732,9 +65610,7 @@ /obj/machinery/light{ dir = 1 }, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /turf/open/floor/plasteel, /area/science/mixing) "cyH" = ( @@ -66743,9 +65619,7 @@ dir = 4 }, /obj/machinery/portable_atmospherics/canister, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /turf/open/floor/plasteel, /area/science/mixing) "cyI" = ( @@ -66787,9 +65661,7 @@ pixel_y = 4 }, /obj/structure/table/glass, -/turf/open/floor/plasteel/white/side{ - dir = 2 - }, +/turf/open/floor/plasteel/white/side, /area/medical/medbay/aft) "cyO" = ( /obj/machinery/disposal/bin, @@ -66797,9 +65669,7 @@ /obj/machinery/status_display{ pixel_y = 32 }, -/turf/open/floor/plasteel/white/side{ - dir = 2 - }, +/turf/open/floor/plasteel/white/side, /area/medical/medbay/aft) "cyP" = ( /obj/machinery/vending/coffee, @@ -66808,9 +65678,7 @@ icon_state = "map-left-MS"; pixel_y = 32 }, -/turf/open/floor/plasteel/white/side{ - dir = 2 - }, +/turf/open/floor/plasteel/white/side, /area/medical/medbay/aft) "cyQ" = ( /obj/structure/sign/map/right{ @@ -66819,18 +65687,14 @@ pixel_y = 32 }, /obj/machinery/vending/cola/random, -/turf/open/floor/plasteel/white/side{ - dir = 2 - }, +/turf/open/floor/plasteel/white/side, /area/medical/medbay/aft) "cyR" = ( /obj/machinery/vending/cigarette, /obj/structure/noticeboard{ pixel_y = 32 }, -/turf/open/floor/plasteel/white/side{ - dir = 2 - }, +/turf/open/floor/plasteel/white/side, /area/medical/medbay/aft) "cyT" = ( /obj/structure/cable/yellow{ @@ -66886,9 +65750,9 @@ dir = 9 }, /obj/machinery/power/apc/unlocked{ + areastring = "/area/medical/genetics/cloning"; dir = 4; name = "Cloning Lab APC"; - areastring = "/area/medical/genetics/cloning"; pixel_x = 24 }, /obj/structure/cable/yellow, @@ -66988,8 +65852,6 @@ "czf" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/item/radio/intercom{ - freerange = 0; - frequency = 1459; name = "Station Intercom (General)"; pixel_x = -26 }, @@ -67015,21 +65877,17 @@ dir = 4 }, /obj/machinery/button/door{ - dir = 2; id = "Skynet_launch"; name = "Mech Bay Door Control"; pixel_x = 26; pixel_y = 6; req_one_access_txt = "29" }, -/obj/effect/turf_decal/tile/neutral{ - dir = 2 - }, +/obj/effect/turf_decal/tile/neutral, /turf/open/floor/plasteel, /area/hallway/primary/aft) "czi" = ( /obj/machinery/button/door{ - dir = 2; id = "Skynet_launch"; name = "Mech Bay Door Control"; pixel_x = -26; @@ -67132,9 +65990,7 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, -/obj/effect/turf_decal/tile/purple{ - dir = 2 - }, +/obj/effect/turf_decal/tile/purple, /turf/open/floor/plasteel/white, /area/science/research) "czr" = ( @@ -67405,9 +66261,9 @@ /area/medical/medbay/aft) "czW" = ( /obj/machinery/power/apc{ + areastring = "/area/medical/medbay/aft"; dir = 4; name = "Medbay Aft APC"; - areastring = "/area/medical/medbay/aft"; pixel_x = 26 }, /obj/structure/cable/yellow{ @@ -67611,9 +66467,7 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 2 - }, +/obj/effect/turf_decal/tile/neutral, /turf/open/floor/plasteel, /area/hallway/primary/aft) "cAk" = ( @@ -67668,9 +66522,9 @@ /area/science/robotics/mechbay) "cAo" = ( /obj/machinery/power/apc{ + areastring = "/area/science/robotics/mechbay"; dir = 4; name = "Mech Bay APC"; - areastring = "/area/science/robotics/mechbay"; pixel_x = 28 }, /obj/structure/cable/yellow{ @@ -67973,7 +66827,6 @@ /obj/structure/chair/stool, /obj/item/radio/intercom{ broadcasting = 1; - freerange = 0; frequency = 1485; listening = 0; name = "Station Intercom (Medbay)"; @@ -68024,9 +66877,7 @@ /turf/open/floor/plating, /area/medical/medbay/aft) "cAY" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 2 - }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, /obj/effect/turf_decal/tile/blue{ dir = 1 }, @@ -68046,7 +66897,6 @@ /obj/structure/disposalpipe/segment, /obj/item/radio/intercom{ broadcasting = 1; - freerange = 0; frequency = 1485; listening = 0; name = "Station Intercom (Medbay)"; @@ -68063,7 +66913,6 @@ /obj/machinery/door/firedoor, /obj/machinery/door/airlock/grunge{ name = "Genetics"; - opacity = 1; req_access_txt = "9" }, /turf/open/floor/plasteel/dark, @@ -68109,8 +66958,6 @@ "cBj" = ( /obj/structure/table, /obj/item/radio/intercom{ - freerange = 0; - frequency = 1459; name = "Station Intercom (General)"; pixel_y = -25 }, @@ -68143,9 +66990,8 @@ "cBl" = ( /obj/item/gun/energy/laser/practice, /obj/machinery/power/apc{ - dir = 2; - name = "Research Firing Range APC"; areastring = "/area/science/misc_lab/range"; + name = "Research Firing Range APC"; pixel_y = -28 }, /obj/structure/table, @@ -68378,7 +67224,6 @@ dir = 4 }, /obj/machinery/button/massdriver{ - dir = 2; id = "toxinsdriver"; pixel_x = 24; pixel_y = -24 @@ -68520,16 +67365,12 @@ pixel_x = -24 }, /obj/structure/closet/secure_closet/personal/patient, -/turf/open/floor/plasteel/white/corner{ - dir = 2 - }, +/turf/open/floor/plasteel/white/corner, /area/medical/medbay/aft) "cCc" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/closet/secure_closet/personal/patient, -/turf/open/floor/plasteel/white/side{ - dir = 2 - }, +/turf/open/floor/plasteel/white/side, /area/medical/medbay/aft) "cCd" = ( /obj/structure/closet/secure_closet/personal/patient, @@ -68550,7 +67391,6 @@ /area/medical/morgue) "cCi" = ( /obj/machinery/firealarm{ - dir = 2; pixel_y = 24 }, /obj/machinery/light/small{ @@ -68582,14 +67422,10 @@ "cCm" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/item/radio/intercom{ - freerange = 0; - frequency = 1459; name = "Station Intercom (General)"; pixel_x = 29 }, -/obj/effect/turf_decal/tile/purple{ - dir = 2 - }, +/obj/effect/turf_decal/tile/purple, /turf/open/floor/plasteel, /area/hallway/primary/aft) "cCn" = ( @@ -68706,8 +67542,6 @@ "cCx" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/item/radio/intercom{ - broadcasting = 0; - listening = 1; name = "Station Intercom (General)"; pixel_y = -28 }, @@ -68768,9 +67602,9 @@ pixel_y = -1 }, /obj/machinery/power/apc{ + areastring = "/area/science/mixing"; dir = 4; name = "Toxins Lab APC"; - areastring = "/area/science/mixing"; pixel_x = 26 }, /obj/structure/cable/yellow{ @@ -68804,9 +67638,7 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, -/obj/effect/turf_decal/stripes/corner{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/corner, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plasteel, /area/science/mixing) @@ -68914,9 +67746,7 @@ /obj/structure/cable/yellow{ icon_state = "4-8" }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 2 - }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, /turf/open/floor/plasteel/white, /area/medical/medbay/aft) "cCT" = ( @@ -68963,8 +67793,6 @@ /obj/item/storage/box/bodybags, /obj/item/pen, /obj/item/radio/intercom{ - freerange = 0; - frequency = 1459; name = "Station Intercom (General)"; pixel_x = 29 }, @@ -69006,12 +67834,8 @@ /turf/open/floor/plasteel, /area/science/robotics/lab) "cDd" = ( -/obj/machinery/mecha_part_fabricator{ - dir = 2 - }, +/obj/machinery/mecha_part_fabricator, /obj/item/radio/intercom{ - broadcasting = 0; - listening = 1; name = "Station Intercom (General)"; pixel_y = 20 }, @@ -69036,12 +67860,9 @@ /turf/open/floor/plasteel, /area/science/robotics/lab) "cDf" = ( -/obj/machinery/mecha_part_fabricator{ - dir = 2 - }, +/obj/machinery/mecha_part_fabricator, /obj/machinery/camera{ c_tag = "Robotics - Fore"; - dir = 2; network = list("ss13","rd") }, /obj/effect/turf_decal/delivery, @@ -69049,9 +67870,9 @@ /area/science/robotics/lab) "cDg" = ( /obj/machinery/power/apc{ + areastring = "/area/science/robotics/lab"; dir = 1; name = "Robotics Lab APC"; - areastring = "/area/science/robotics/lab"; pixel_y = 25 }, /obj/structure/cable/yellow{ @@ -69246,9 +68067,9 @@ }, /obj/item/storage/box/syringes, /obj/machinery/power/apc/highcap/five_k{ + areastring = "/area/medical/virology"; dir = 1; name = "Virology APC"; - areastring = "/area/medical/virology"; pixel_y = 24 }, /obj/structure/cable/yellow{ @@ -69490,7 +68311,6 @@ }, /obj/machinery/door/airlock/grunge{ name = "Morgue"; - opacity = 1; req_access_txt = "5" }, /turf/open/floor/plasteel/dark, @@ -69514,9 +68334,7 @@ /obj/structure/cable/yellow{ icon_state = "4-8" }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 2 - }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, /turf/open/floor/plasteel/dark, /area/medical/morgue) "cEa" = ( @@ -69555,9 +68373,9 @@ "cEd" = ( /obj/structure/table, /obj/machinery/power/apc{ + areastring = "/area/medical/morgue"; dir = 4; name = "Morgue APC"; - areastring = "/area/medical/morgue"; pixel_x = 26 }, /obj/structure/cable/yellow{ @@ -69626,7 +68444,6 @@ /obj/structure/table/reinforced, /obj/item/pen, /obj/machinery/door/window/eastright{ - dir = 4; name = "Robotics Desk"; req_access_txt = "29" }, @@ -69746,7 +68563,6 @@ /area/science/mixing) "cEt" = ( /obj/machinery/sparker/toxmix{ - dir = 2; pixel_x = 25 }, /obj/machinery/atmospherics/components/unary/vent_pump/siphon/atmos/toxins_mixing_output{ @@ -70054,7 +68870,6 @@ /obj/machinery/door/firedoor, /obj/machinery/door/airlock/grunge{ name = "Morgue"; - opacity = 1; req_access_txt = "6" }, /turf/open/floor/plasteel/dark, @@ -70184,9 +68999,7 @@ /turf/open/floor/engine, /area/science/mixing) "cFp" = ( -/obj/machinery/atmospherics/components/binary/dp_vent_pump/high_volume/incinerator_toxmix{ - dir = 2 - }, +/obj/machinery/atmospherics/components/binary/dp_vent_pump/high_volume/incinerator_toxmix, /obj/effect/landmark/blobstart, /turf/open/floor/engine, /area/science/mixing) @@ -70237,9 +69050,7 @@ /turf/open/floor/plating/airless, /area/science/test_area) "cFw" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /turf/open/floor/plating/airless, /area/science/test_area) "cFx" = ( @@ -70310,9 +69121,7 @@ /turf/open/floor/plasteel/white, /area/medical/virology) "cFB" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 2 - }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, /obj/effect/turf_decal/tile/green{ dir = 1 }, @@ -70372,9 +69181,7 @@ /turf/open/floor/plasteel/white, /area/medical/virology) "cFG" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 2 - }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, /turf/open/floor/plasteel/white, /area/medical/virology) "cFH" = ( @@ -70463,7 +69270,6 @@ /area/medical/virology) "cFO" = ( /obj/machinery/firealarm{ - dir = 2; pixel_y = 24 }, /obj/machinery/iv_drip, @@ -70485,8 +69291,6 @@ /obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/item/radio/intercom{ - freerange = 0; - frequency = 1459; name = "Station Intercom (General)"; pixel_x = 29 }, @@ -70653,7 +69457,6 @@ /area/science/research) "cGj" = ( /obj/machinery/sparker/toxmix{ - dir = 2; pixel_x = 25 }, /obj/machinery/atmospherics/components/unary/outlet_injector/atmos/toxins_mixing_input{ @@ -70939,8 +69742,8 @@ }, /obj/machinery/doorButtons/airlock_controller{ idExterior = "virology_airlock_exterior"; - idSelf = "virology_airlock_control"; idInterior = "virology_airlock_interior"; + idSelf = "virology_airlock_control"; name = "Virology Access Console"; pixel_x = 26; pixel_y = 26; @@ -71279,9 +70082,7 @@ /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ dir = 8 }, -/obj/effect/turf_decal/tile/blue{ - dir = 2 - }, +/obj/effect/turf_decal/tile/blue, /turf/open/floor/plasteel/white, /area/science/research) "cHd" = ( @@ -71301,9 +70102,7 @@ /turf/closed/wall/r_wall, /area/science/server) "cHf" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 2 - }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, /turf/closed/wall/r_wall, /area/science/server) "cHg" = ( @@ -71464,9 +70263,7 @@ /turf/open/floor/plasteel/white, /area/medical/virology) "cHu" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 2 - }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, /obj/effect/turf_decal/tile/green, /obj/effect/turf_decal/tile/green{ dir = 8 @@ -71520,9 +70317,7 @@ dir = 1; pixel_y = -24 }, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /turf/open/floor/plasteel/white, /area/medical/virology) "cHy" = ( @@ -71691,9 +70486,7 @@ /obj/structure/disposalpipe/segment{ dir = 9 }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 2 - }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, /obj/structure/cable/yellow{ icon_state = "4-8" }, @@ -71750,18 +70543,14 @@ /turf/open/floor/plasteel, /area/science/robotics/lab) "cHR" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /turf/open/floor/plasteel, /area/science/robotics/lab) "cHS" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 5 }, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /turf/open/floor/plasteel, /area/science/robotics/lab) "cHT" = ( @@ -71862,14 +70651,13 @@ "cIb" = ( /obj/machinery/camera{ c_tag = "Research Division - Server Room"; - dir = 2; network = list("ss13","rd"); pixel_x = 22 }, /obj/machinery/power/apc{ + areastring = "/area/science/server"; dir = 1; name = "Research Division Server Room APC"; - areastring = "/area/science/server"; pixel_y = 25 }, /obj/structure/cable/yellow{ @@ -72330,8 +71118,6 @@ dir = 9 }, /obj/item/radio/intercom{ - freerange = 0; - frequency = 1459; name = "Station Intercom (General)"; pixel_x = 29 }, @@ -72746,9 +71532,7 @@ /obj/machinery/door/airlock/public/glass{ name = "Departure Lounge" }, -/obj/effect/turf_decal/tile/neutral{ - dir = 2 - }, +/obj/effect/turf_decal/tile/neutral, /turf/open/floor/plasteel, /area/hallway/secondary/exit/departure_lounge) "cJH" = ( @@ -72756,8 +71540,6 @@ /obj/item/retractor, /obj/item/hemostat, /obj/item/radio/intercom{ - freerange = 0; - frequency = 1459; name = "Station Intercom (General)"; pixel_x = -29 }, @@ -72836,9 +71618,7 @@ pixel_x = -12; pixel_y = 2 }, -/obj/effect/turf_decal/tile/purple{ - dir = 2 - }, +/obj/effect/turf_decal/tile/purple, /turf/open/floor/plasteel/white, /area/science/research) "cJP" = ( @@ -72871,8 +71651,6 @@ /area/science/server) "cJS" = ( /obj/item/radio/intercom{ - broadcasting = 0; - listening = 1; name = "Station Intercom (General)"; pixel_y = -28 }, @@ -72918,26 +71696,20 @@ lootcount = 2; name = "2maintenance loot spawner" }, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /turf/open/floor/plating, /area/maintenance/starboard/aft) "cJZ" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/reagent_dispensers/watertank, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /turf/open/floor/plating, /area/maintenance/starboard/aft) "cKa" = ( /obj/structure/closet, /obj/item/clothing/glasses/science, /obj/effect/spawner/lootdrop/maintenance, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /turf/open/floor/plating, /area/maintenance/starboard/aft) "cKb" = ( @@ -72951,9 +71723,7 @@ icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /turf/open/floor/plating, /area/maintenance/starboard/aft) "cKe" = ( @@ -73058,7 +71828,6 @@ }, /obj/machinery/camera{ c_tag = "Virology - Break Room"; - dir = 2; network = list("ss13","medbay") }, /obj/effect/turf_decal/tile/green{ @@ -73071,8 +71840,6 @@ /area/medical/virology) "cKm" = ( /obj/item/radio/intercom{ - freerange = 0; - frequency = 1459; name = "Station Intercom (General)"; pixel_x = 29 }, @@ -73174,9 +71941,9 @@ /area/hallway/secondary/exit/departure_lounge) "cKy" = ( /obj/machinery/power/apc/highcap/five_k{ + areastring = "/area/hallway/secondary/exit/departure_lounge"; dir = 1; name = "Departure Lounge APC"; - areastring = "/area/hallway/secondary/exit/departure_lounge"; pixel_y = 24 }, /obj/structure/cable/yellow{ @@ -73830,9 +72597,9 @@ /area/maintenance/solars/starboard/aft) "cLM" = ( /obj/machinery/power/apc{ + areastring = "/area/maintenance/solars/starboard/aft"; dir = 1; name = "Starboard Quarter Solar APC"; - areastring = "/area/maintenance/solars/starboard/aft"; pixel_y = 24 }, /obj/structure/cable/yellow{ @@ -73972,9 +72739,7 @@ name = "Relic Closet"; req_access_txt = "22" }, -/turf/open/floor/plasteel/cult{ - dir = 2 - }, +/turf/open/floor/plasteel/cult, /area/chapel/office) "cMa" = ( /obj/structure/table/wood, @@ -73982,7 +72747,6 @@ name = "mysterious old book of " }, /obj/item/reagent_containers/food/drinks/bottle/holywater{ - name = "flask of holy water"; pixel_x = -2; pixel_y = 2 }, @@ -73991,9 +72755,7 @@ }, /obj/item/organ/heart, /obj/item/soulstone/anybody/chaplain, -/turf/open/floor/plasteel/cult{ - dir = 2 - }, +/turf/open/floor/plasteel/cult, /area/chapel/office) "cMb" = ( /obj/machinery/door/airlock/maintenance{ @@ -74012,9 +72774,7 @@ /turf/open/floor/plasteel, /area/hallway/secondary/exit/departure_lounge) "cMe" = ( -/obj/effect/turf_decal/stripes/corner{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/corner, /turf/open/floor/plasteel, /area/hallway/secondary/exit/departure_lounge) "cMf" = ( @@ -74063,9 +72823,8 @@ /area/hallway/secondary/exit/departure_lounge) "cMk" = ( /obj/machinery/power/apc/highcap/five_k{ - dir = 2; - name = "Aft Maintenance APC"; areastring = "/area/maintenance/aft"; + name = "Aft Maintenance APC"; pixel_y = -24 }, /obj/structure/cable/yellow, @@ -74356,8 +73115,7 @@ pixel_y = 32 }, /obj/machinery/camera{ - c_tag = "Chapel - Fore"; - dir = 2 + c_tag = "Chapel - Fore" }, /obj/structure/table/wood, /obj/effect/turf_decal/tile/neutral{ @@ -74565,7 +73323,6 @@ /obj/structure/table/reinforced, /obj/machinery/door/window/westleft{ base_state = "right"; - dir = 8; icon_state = "right"; name = "Outer Window" }, @@ -74784,8 +73541,7 @@ /obj/machinery/power/solar_control{ dir = 8; id = "aftstarboard"; - name = "Starboard Quarter Solar Control"; - track = 0 + name = "Starboard Quarter Solar Control" }, /obj/structure/cable, /obj/structure/cable{ @@ -75168,9 +73924,9 @@ icon_state = "0-4" }, /obj/machinery/power/apc{ + areastring = "/area/chapel/main"; dir = 8; name = "Chapel APC"; - areastring = "/area/chapel/main"; pixel_x = -25 }, /turf/open/floor/carpet, @@ -75360,8 +74116,6 @@ pixel_x = 4 }, /obj/item/radio/intercom{ - broadcasting = 0; - listening = 1; name = "Station Intercom (General)"; pixel_y = -32 }, @@ -75425,10 +74179,8 @@ /area/chapel/office) "cOI" = ( /obj/machinery/power/apc{ - dir = 2; - lighting = 3; - name = "Chapel Office APC"; areastring = "/area/chapel/office"; + name = "Chapel Office APC"; pixel_y = -25 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, @@ -75510,9 +74262,7 @@ /turf/open/floor/plasteel, /area/hallway/secondary/exit/departure_lounge) "cOU" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 2 - }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, /turf/open/floor/plasteel, /area/hallway/secondary/exit/departure_lounge) "cOV" = ( @@ -75967,8 +74717,6 @@ dir = 4 }, /obj/item/radio/intercom{ - freerange = 0; - frequency = 1459; name = "Station Intercom (General)"; pixel_x = 29 }, @@ -76050,8 +74798,6 @@ /area/chapel/main) "cQc" = ( /obj/item/radio/intercom{ - freerange = 0; - frequency = 1459; name = "Station Intercom (General)"; pixel_y = 21 }, @@ -76064,12 +74810,6 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plasteel/dark, /area/chapel/main) -"cQd" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 2 - }, -/turf/open/floor/plasteel/dark, -/area/chapel/main) "cQf" = ( /obj/machinery/door/firedoor, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -76102,9 +74842,7 @@ /turf/open/floor/plasteel/chapel, /area/chapel/main) "cQj" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 2 - }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, /turf/open/floor/plasteel/chapel{ dir = 8 }, @@ -76126,21 +74864,13 @@ }, /turf/open/floor/plasteel, /area/hallway/secondary/exit/departure_lounge) -"cQn" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/exit/departure_lounge) "cQo" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/machinery/navbeacon{ codes_txt = "patrol;next_patrol=9.4-Escape-4"; location = "9.3-Escape-3" }, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /turf/open/floor/plasteel, /area/hallway/secondary/exit/departure_lounge) "cQp" = ( @@ -76149,9 +74879,7 @@ codes_txt = "patrol;next_patrol=9.3-Escape-3"; location = "9.2-Escape-2" }, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /turf/open/floor/plasteel, /area/hallway/secondary/exit/departure_lounge) "cQq" = ( @@ -76172,7 +74900,6 @@ }, /obj/machinery/camera{ c_tag = "Research Division Hallway - Xenobiology Lab Access"; - dir = 2; network = list("ss13","rd") }, /obj/effect/turf_decal/tile/purple{ @@ -76188,7 +74915,6 @@ dir = 1 }, /obj/machinery/firealarm{ - dir = 2; pixel_y = 24 }, /obj/structure/cable/yellow{ @@ -76215,9 +74941,7 @@ /obj/structure/cable/yellow{ icon_state = "1-4" }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 2 - }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, /obj/effect/landmark/blobstart, /obj/effect/turf_decal/tile/purple{ dir = 1 @@ -76230,7 +74954,6 @@ "cQv" = ( /obj/machinery/camera{ c_tag = "Toxins - Launch Area"; - dir = 2; network = list("ss13","rd") }, /obj/machinery/suit_storage_unit/rd, @@ -76262,8 +74985,6 @@ dir = 4 }, /obj/item/radio/intercom{ - broadcasting = 0; - listening = 1; name = "Station Intercom (General)"; pixel_y = 22 }, @@ -76399,8 +75120,6 @@ /area/science/xenobiology) "cQS" = ( /obj/item/radio/intercom{ - freerange = 0; - frequency = 1459; name = "Station Intercom (General)"; pixel_x = 29 }, @@ -76562,7 +75281,6 @@ /area/chapel/main) "cRm" = ( /obj/machinery/mass_driver{ - dir = 2; id = "chapelgun" }, /obj/structure/sign/warning/vacuum/external{ @@ -76761,17 +75479,13 @@ /obj/machinery/light/small{ dir = 1 }, -/turf/open/floor/plasteel/cult{ - dir = 2 - }, +/turf/open/floor/plasteel/cult, /area/chapel/main) "cRF" = ( /obj/machinery/door/morgue{ name = "Chapel Garden" }, -/turf/open/floor/plasteel/cult{ - dir = 2 - }, +/turf/open/floor/plasteel/cult, /area/chapel/main) "cRG" = ( /obj/machinery/light/small, @@ -76856,9 +75570,7 @@ /obj/machinery/atmospherics/components/unary/vent_pump/on{ dir = 1 }, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /turf/open/floor/plasteel/dark, /area/chapel/main) "cRL" = ( @@ -76871,9 +75583,7 @@ /area/chapel/main) "cRM" = ( /obj/machinery/processor/slime, -/obj/effect/turf_decal/stripes/corner{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/corner, /turf/open/floor/plasteel/white, /area/science/xenobiology) "cRN" = ( @@ -77000,9 +75710,7 @@ icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/effect/turf_decal/stripes/corner{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/corner, /turf/open/floor/plasteel/white, /area/science/xenobiology) "cSc" = ( @@ -77477,7 +76185,6 @@ dir = 8 }, /obj/machinery/firealarm{ - dir = 2; pixel_y = 26 }, /obj/effect/turf_decal/stripes/line{ @@ -77647,9 +76354,7 @@ pixel_y = 2 }, /obj/structure/table/reinforced, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /turf/open/floor/plasteel, /area/science/xenobiology) "cTs" = ( @@ -77671,9 +76376,7 @@ name = "Maximum Security Test Chamber"; req_access_txt = "55" }, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /turf/open/floor/plasteel, /area/science/xenobiology) "cTw" = ( @@ -77699,9 +76402,7 @@ /obj/item/clothing/glasses/science, /obj/item/clothing/glasses/science, /obj/structure/table, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /turf/open/floor/plasteel, /area/science/xenobiology) "cTA" = ( @@ -77805,9 +76506,7 @@ /obj/structure/cable/yellow{ icon_state = "4-8" }, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /turf/open/floor/plasteel/white, /area/science/xenobiology) "cVb" = ( @@ -77832,7 +76531,6 @@ }, /obj/item/radio/intercom{ freerange = 1; - frequency = 1459; name = "Station Intercom (General)"; pixel_x = -30 }, @@ -78034,7 +76732,6 @@ /area/construction/mining/aux_base) "cYJ" = ( /obj/docking_port/stationary{ - dheight = 0; dir = 2; dwidth = 9; height = 25; @@ -78102,8 +76799,6 @@ /area/science/xenobiology) "cZc" = ( /obj/item/radio/intercom{ - freerange = 0; - frequency = 1459; name = "Station Intercom (General)"; pixel_x = 29 }, @@ -78182,7 +76877,6 @@ /area/security/main) "daA" = ( /obj/machinery/door/window/southleft{ - dir = 2; name = "Maximum Security Test Chamber"; req_access_txt = "55" }, @@ -78204,9 +76898,7 @@ /turf/closed/wall/r_wall, /area/science/xenobiology) "daD" = ( -/obj/structure/disposaloutlet{ - dir = 2 - }, +/obj/structure/disposaloutlet, /obj/structure/disposalpipe/trunk{ dir = 1 }, @@ -78453,7 +77145,6 @@ "dbr" = ( /obj/machinery/camera{ c_tag = "Morgue"; - dir = 2; network = list("ss13","medbay") }, /obj/structure/bodycontainer/morgue{ @@ -78700,7 +77391,6 @@ pixel_y = -8 }, /obj/machinery/firealarm{ - dir = 2; pixel_y = 24 }, /obj/machinery/atmospherics/components/unary/vent_scrubber/on, @@ -78714,7 +77404,6 @@ /area/science/xenobiology) "dca" = ( /obj/machinery/firealarm{ - dir = 2; pixel_y = 26 }, /obj/effect/turf_decal/tile/purple{ @@ -78731,7 +77420,6 @@ }, /obj/machinery/camera{ c_tag = "Xenobiology Lab - Fore"; - dir = 2; network = list("ss13","rd") }, /obj/effect/turf_decal/tile/purple{ @@ -78766,9 +77454,9 @@ }, /obj/item/reagent_containers/dropper, /obj/machinery/power/apc/highcap/ten_k{ + areastring = "/area/science/xenobiology"; dir = 1; name = "Xenobiology APC"; - areastring = "/area/science/xenobiology"; pixel_y = 27 }, /obj/structure/cable/yellow{ @@ -78847,8 +77535,6 @@ dir = 4 }, /obj/item/radio/intercom{ - freerange = 0; - frequency = 1459; name = "Station Intercom (General)"; pixel_x = -29 }, @@ -78870,9 +77556,7 @@ /obj/structure/cable/yellow{ icon_state = "4-8" }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 2 - }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, /obj/effect/turf_decal/stripes/line{ dir = 4 }, @@ -79020,9 +77704,7 @@ dir = 4 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /turf/open/floor/plasteel/white, /area/science/xenobiology) "dcu" = ( @@ -79114,9 +77796,7 @@ /area/science/xenobiology) "dcG" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /turf/open/floor/plasteel/white, /area/science/xenobiology) "dcH" = ( @@ -79126,9 +77806,7 @@ /obj/structure/disposalpipe/segment{ dir = 6 }, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /turf/open/floor/plasteel/white, /area/science/xenobiology) "dcI" = ( @@ -79136,9 +77814,7 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /turf/open/floor/plasteel/white, /area/science/xenobiology) "dcJ" = ( @@ -79164,9 +77840,7 @@ /obj/structure/disposalpipe/trunk{ dir = 8 }, -/obj/effect/turf_decal/tile/purple{ - dir = 2 - }, +/obj/effect/turf_decal/tile/purple, /turf/open/floor/plasteel/white, /area/science/xenobiology) "dcL" = ( @@ -79474,9 +78148,7 @@ /obj/structure/cable/yellow{ icon_state = "4-8" }, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /turf/open/floor/plasteel/white, /area/science/xenobiology) "ddm" = ( @@ -79489,18 +78161,14 @@ /obj/structure/cable/yellow{ icon_state = "1-4" }, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /turf/open/floor/plasteel/white, /area/science/xenobiology) "ddn" = ( /obj/structure/cable/yellow{ icon_state = "4-8" }, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /turf/open/floor/plasteel/white, /area/science/xenobiology) "ddo" = ( @@ -79579,9 +78247,9 @@ "ddw" = ( /obj/structure/cable/yellow, /obj/machinery/power/apc{ + areastring = "/area/maintenance/department/science/xenobiology"; dir = 4; name = "Test Chamber Maintenance APC"; - areastring = "/area/maintenance/department/science/xenobiology"; pixel_x = 26 }, /turf/open/floor/plating, @@ -79794,7 +78462,6 @@ /area/engine/engineering) "dek" = ( /obj/machinery/atmospherics/components/binary/pump{ - dir = 2; name = "Mix to Gas" }, /obj/structure/cable/white{ @@ -79849,8 +78516,6 @@ /area/engine/engineering) "deq" = ( /obj/item/radio/intercom{ - freerange = 0; - frequency = 1459; name = "Station Intercom (General)"; pixel_y = 21 }, @@ -79974,7 +78639,6 @@ "deK" = ( /obj/structure/cable/white, /obj/machinery/power/emitter/anchored{ - dir = 2; state = 2 }, /turf/open/floor/plating, @@ -80631,7 +79295,6 @@ /obj/machinery/atmospherics/pipe/simple/green/visible, /obj/machinery/door/window/northleft{ dir = 8; - icon_state = "left"; name = "Inner Pipe Access"; req_access_txt = "24" }, @@ -80966,9 +79629,8 @@ /obj/structure/table, /obj/item/analyzer, /obj/machinery/power/apc{ - dir = 2; - name = "Tool Storage APC"; areastring = "/area/storage/primary"; + name = "Tool Storage APC"; pixel_y = -27 }, /obj/structure/cable/yellow, @@ -80987,8 +79649,6 @@ /area/storage/primary) "dhM" = ( /obj/item/radio/intercom{ - freerange = 0; - frequency = 1459; name = "Station Intercom (General)"; pixel_y = 21 }, @@ -81198,8 +79858,6 @@ /obj/item/instrument/violin, /obj/structure/table/wood, /obj/item/radio/intercom{ - freerange = 0; - frequency = 1459; name = "Station Intercom (General)"; pixel_x = 29 }, @@ -81764,8 +80422,8 @@ height = 15; id = "arrivals_stationary"; name = "arrivals"; - width = 7; - roundstart_template = /datum/map_template/shuttle/arrival/box + roundstart_template = /datum/map_template/shuttle/arrival/box; + width = 7 }, /turf/open/space/basic, /area/space) @@ -81873,9 +80531,9 @@ icon_state = "0-8" }, /obj/machinery/power/apc{ + areastring = "/area/maintenance/port/fore"; dir = 4; name = "Port Bow Maintenance APC"; - areastring = "/area/maintenance/port/fore"; pixel_x = 26 }, /turf/open/floor/plating{ @@ -82039,9 +80697,7 @@ /obj/structure/cable/yellow{ icon_state = "1-2" }, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /turf/open/floor/plating, /area/maintenance/port/fore) "dtE" = ( @@ -82080,9 +80736,8 @@ "dtS" = ( /obj/item/cigbutt, /obj/machinery/power/apc{ - dir = 2; - name = "Starboard Bow Maintenance APC"; areastring = "/area/maintenance/starboard/fore"; + name = "Starboard Bow Maintenance APC"; pixel_y = -28 }, /obj/structure/cable/yellow{ @@ -82304,9 +80959,8 @@ /area/maintenance/starboard/aft) "dAd" = ( /obj/machinery/power/apc/highcap/five_k{ - dir = 2; - name = "Starboard Quarter Maintenance APC"; areastring = "/area/maintenance/starboard/aft"; + name = "Starboard Quarter Maintenance APC"; pixel_y = -24 }, /obj/structure/cable/yellow, @@ -83225,8 +81879,8 @@ /area/science/circuit) "eFN" = ( /obj/structure/bodycontainer/crematorium{ - id = "crematoriumChapel"; - dir = 1 + dir = 1; + id = "crematoriumChapel" }, /turf/open/floor/plasteel/dark, /area/chapel/office) @@ -83297,7 +81951,6 @@ /area/science/circuit) "gqA" = ( /obj/machinery/button/door{ - dir = 2; id = "abandoned_kitchen"; name = "Shutters Control"; pixel_x = 26; @@ -83716,8 +82369,7 @@ "mAU" = ( /obj/machinery/cryopod, /obj/machinery/camera{ - c_tag = "Fitness Room - Fore"; - dir = 2 + c_tag = "Fitness Room - Fore" }, /turf/open/floor/plasteel/dark, /area/crew_quarters/cryopod) @@ -83798,7 +82450,6 @@ /obj/docking_port/stationary{ area_type = /area/construction/mining/aux_base; dheight = 4; - dir = 1; dwidth = 4; height = 9; id = "aux_base_zone"; @@ -83853,7 +82504,6 @@ /obj/machinery/requests_console{ department = "Science"; departmentType = 2; - dir = 2; name = "Science Requests Console"; pixel_y = 30; receive_ore_updates = 1 @@ -84057,7 +82707,6 @@ /area/crew_quarters/cryopod) "ram" = ( /obj/machinery/computer/arcade{ - icon_state = "arcade"; dir = 1 }, /turf/open/floor/plasteel, @@ -84419,9 +83068,7 @@ /turf/open/floor/plating, /area/maintenance/starboard/aft) "wKo" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /turf/closed/wall, /area/science/circuit) "wOE" = ( @@ -106323,7 +104970,7 @@ cOg cOJ cPl cPH -cQd +djr cTo cRm cRK @@ -109921,7 +108568,7 @@ cOq cLm cLm cLm -cQn +cMf cQK cPv cPv @@ -110435,7 +109082,7 @@ cOr cOU dDG cPQ -cQn +cMf cQK cPv cPv @@ -110692,7 +109339,7 @@ cMT cOV cMT cPR -cQn +cMf cQK cPv aaa @@ -110949,7 +109596,7 @@ cOs cOW cMU cPS -cQn +cMf cQM cPv aaa @@ -111206,7 +109853,7 @@ cMV cOX cMV cPT -cQn +cMf cQK cPv aaa @@ -111463,7 +110110,7 @@ cLm cOq cLm cPQ -cQn +cMf cQK cPv cPv @@ -111977,7 +110624,7 @@ cOt cOZ cPt cLm -cQn +cMf cQO cPv cPv @@ -124277,9 +122924,9 @@ ced cfq cgw cfs -ciZ +cjb ckD -ciZ +cjb cnd cgz cgz @@ -124465,7 +123112,7 @@ aie aja ajY alp -amF +dtE anN dnS doh diff --git a/_maps/map_files/PubbyStation/PubbyStation.dmm b/_maps/map_files/PubbyStation/PubbyStation.dmm index b9462f214d..84ea2dfca1 100644 --- a/_maps/map_files/PubbyStation/PubbyStation.dmm +++ b/_maps/map_files/PubbyStation/PubbyStation.dmm @@ -108,8 +108,6 @@ }, /obj/effect/landmark/start/ai/secondary, /obj/item/radio/intercom{ - anyai = 1; - broadcasting = 0; freerange = 1; frequency = 1447; name = "Private Channel"; @@ -129,7 +127,6 @@ }, /obj/machinery/camera/motion{ c_tag = "MiniSat AI Chamber Center"; - dir = 2; network = list("minisat") }, /obj/machinery/light/small{ @@ -148,15 +145,13 @@ icon_state = "0-8" }, /obj/machinery/power/apc{ + areastring = "/area/ai_monitored/turret_protected/ai"; dir = 1; name = "AI Chamber APC"; - areastring = "/area/ai_monitored/turret_protected/ai"; pixel_y = 24 }, /obj/effect/landmark/start/ai/secondary, /obj/item/radio/intercom{ - anyai = 1; - broadcasting = 0; freerange = 1; frequency = 1447; name = "Private Channel"; @@ -279,23 +274,18 @@ "acy" = ( /obj/effect/landmark/start/ai, /obj/item/radio/intercom{ - broadcasting = 0; freerange = 1; - listening = 1; name = "Common Channel"; pixel_x = -27; pixel_y = -9 }, /obj/item/radio/intercom{ - anyai = 1; freerange = 1; listening = 0; name = "Custom Channel"; pixel_y = -31 }, /obj/item/radio/intercom{ - anyai = 1; - broadcasting = 0; freerange = 1; frequency = 1447; name = "Private Channel"; @@ -339,7 +329,6 @@ "acD" = ( /obj/machinery/camera/motion{ c_tag = "MiniSat AI Chamber South"; - dir = 2; network = list("minisat") }, /obj/machinery/light{ @@ -576,9 +565,9 @@ icon_state = "0-4" }, /obj/machinery/power/apc{ + areastring = "/area/ai_monitored/turret_protected/aisat_interior"; dir = 8; name = "MiniSat Antechamber APC"; - areastring = "/area/ai_monitored/turret_protected/aisat_interior"; pixel_x = -24 }, /obj/machinery/recharger, @@ -866,7 +855,6 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/machinery/camera/motion{ c_tag = "MiniSat Bridge Port Fore"; - dir = 2; network = list("minisat") }, /turf/open/space, @@ -894,7 +882,6 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/machinery/camera/motion{ c_tag = "MiniSat Bridge Starboard Fore"; - dir = 2; network = list("minisat") }, /turf/open/space, @@ -1233,9 +1220,9 @@ icon_state = "0-4" }, /obj/machinery/power/apc{ + areastring = "/area/ai_monitored/turret_protected/AIsatextAP"; dir = 8; name = "MiniSat Port Maintenance APC"; - areastring = "/area/ai_monitored/turret_protected/AIsatextAP"; pixel_x = -24 }, /turf/open/floor/plating, @@ -1261,7 +1248,6 @@ }, /obj/machinery/camera{ c_tag = "MiniSat Maintenance Port Aft"; - dir = 2; network = list("minisat") }, /turf/open/floor/plating, @@ -1334,7 +1320,6 @@ }, /obj/machinery/camera/motion{ c_tag = "MiniSat Foyer"; - dir = 2; network = list("minisat") }, /obj/effect/turf_decal/tile/blue, @@ -1386,7 +1371,6 @@ }, /obj/machinery/camera{ c_tag = "MiniSat Maintenance Starboard Aft"; - dir = 2; network = list("minisat") }, /turf/open/floor/plating, @@ -1406,9 +1390,9 @@ icon_state = "0-8" }, /obj/machinery/power/apc{ + areastring = "/area/ai_monitored/turret_protected/AIsatextAS"; dir = 4; name = "MiniSat Starboard Maintenance APC"; - areastring = "/area/ai_monitored/turret_protected/AIsatextAS"; pixel_x = 24 }, /turf/open/floor/plating, @@ -1482,6 +1466,7 @@ /obj/effect/turf_decal/tile/blue{ dir = 8 }, +/obj/effect/landmark/start/cyborg, /turf/open/floor/plasteel/dark, /area/ai_monitored/turret_protected/aisat_interior) "afy" = ( @@ -1494,6 +1479,7 @@ /obj/effect/turf_decal/tile/blue{ dir = 4 }, +/obj/effect/landmark/start/cyborg, /turf/open/floor/plasteel/dark, /area/ai_monitored/turret_protected/aisat_interior) "afA" = ( @@ -1564,7 +1550,6 @@ /area/security/prison) "afI" = ( /obj/machinery/computer/arcade{ - icon_state = "arcade"; dir = 8 }, /turf/open/floor/plasteel/dark, @@ -1607,6 +1592,7 @@ "afP" = ( /obj/machinery/holopad, /mob/living/simple_animal/bot/secbot/pingsky, +/obj/effect/landmark/start/cyborg, /turf/open/floor/plasteel/dark, /area/ai_monitored/turret_protected/aisat_interior) "afQ" = ( @@ -1665,7 +1651,6 @@ }, /obj/machinery/door/window/westleft{ base_state = "right"; - dir = 8; icon_state = "right"; name = "Unisex Showers" }, @@ -1697,6 +1682,7 @@ /obj/effect/turf_decal/tile/blue{ dir = 4 }, +/obj/effect/landmark/start/cyborg, /turf/open/floor/plasteel/dark, /area/ai_monitored/turret_protected/aisat_interior) "agh" = ( @@ -1710,8 +1696,7 @@ /area/ai_monitored/turret_protected/aisat_interior) "agi" = ( /obj/machinery/door/poddoor{ - id = "executionspaceblast"; - name = "blast door" + id = "executionspaceblast" }, /turf/open/floor/plating, /area/security/execution/transfer) @@ -1855,8 +1840,7 @@ /area/security/prison) "agC" = ( /obj/machinery/door/airlock{ - name = "Unisex Restroom"; - req_access_txt = "0" + name = "Unisex Restroom" }, /turf/open/floor/plasteel/freezer, /area/security/prison) @@ -1896,7 +1880,6 @@ }, /obj/item/radio/intercom{ desc = "Talk through this. It looks like it has been modified to not broadcast."; - dir = 2; name = "Prison Intercom (General)"; pixel_y = 24; prison_radio = 1 @@ -1916,7 +1899,6 @@ name = "Cell Bolt Control"; normaldoorcontrol = 1; pixel_y = 25; - req_access_txt = "0"; specialfunctions = 4 }, /obj/machinery/atmospherics/components/unary/vent_scrubber/on{ @@ -1933,7 +1915,6 @@ }, /obj/item/radio/intercom{ desc = "Talk through this. It looks like it has been modified to not broadcast."; - dir = 2; name = "Prison Intercom (General)"; pixel_y = 24; prison_radio = 1 @@ -1962,7 +1943,6 @@ name = "Cell Bolt Control"; normaldoorcontrol = 1; pixel_y = 25; - req_access_txt = "0"; specialfunctions = 4 }, /obj/machinery/atmospherics/components/unary/vent_scrubber/on{ @@ -2069,7 +2049,6 @@ "ahh" = ( /obj/structure/lattice/catwalk, /obj/structure/showcase/cyborg/old{ - dir = 2; pixel_y = 20 }, /turf/open/space, @@ -2121,8 +2100,6 @@ /area/security/execution/transfer) "ahl" = ( /obj/item/radio/intercom{ - freerange = 0; - frequency = 1459; name = "Station Intercom (General)"; pixel_x = 28 }, @@ -2179,7 +2156,6 @@ /obj/structure/lattice, /obj/machinery/camera/motion{ c_tag = "MiniSat Entrance"; - dir = 2; network = list("minisat") }, /turf/open/space, @@ -2321,7 +2297,6 @@ network = list("ss13","prison") }, /obj/machinery/computer/security/telescreen/prison{ - network = list("prison"); pixel_y = 30 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ @@ -2596,8 +2571,7 @@ "aik" = ( /obj/structure/closet/secure_closet/lethalshots, /obj/machinery/camera/motion{ - c_tag = "Armory Motion Sensor"; - dir = 2 + c_tag = "Armory Motion Sensor" }, /turf/open/floor/plasteel/dark, /area/security/armory) @@ -3630,7 +3604,6 @@ name = "Door Bolt Control"; normaldoorcontrol = 1; pixel_x = 25; - req_access_txt = "0"; specialfunctions = 4 }, /turf/open/floor/plating, @@ -3729,8 +3702,6 @@ /area/security/brig) "akD" = ( /obj/item/radio/intercom{ - freerange = 0; - frequency = 1459; name = "Station Intercom (General)"; pixel_y = 24 }, @@ -4099,9 +4070,7 @@ /area/security/brig) "alt" = ( /obj/machinery/door/window/westleft{ - base_state = "left"; dir = 4; - icon_state = "left"; name = "Brig Infirmary" }, /obj/machinery/atmospherics/pipe/simple/cyan/hidden{ @@ -4872,8 +4841,7 @@ dir = 1 }, /obj/machinery/camera{ - c_tag = "Brig Control Room"; - dir = 2 + c_tag = "Brig Control Room" }, /obj/item/radio/intercom{ dir = 4; @@ -4993,8 +4961,7 @@ /area/space/nearstation) "anm" = ( /obj/machinery/door/airlock/maintenance/abandoned{ - name = "Pete's Speakeasy"; - req_access_txt = "0" + name = "Pete's Speakeasy" }, /turf/open/floor/plating, /area/maintenance/department/crew_quarters/dorms) @@ -5325,7 +5292,6 @@ icon_state = "0-8" }, /obj/machinery/power/apc{ - dir = 2; name = "Head of Security's Office APC"; pixel_y = -24 }, @@ -6320,8 +6286,7 @@ /area/security/brig) "aqq" = ( /obj/machinery/camera{ - c_tag = "Brig Cells"; - dir = 2 + c_tag = "Brig Cells" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 @@ -6645,7 +6610,6 @@ /area/crew_quarters/dorms) "aqY" = ( /obj/docking_port/stationary{ - dir = 1; dwidth = 2; height = 6; id = "monastery_shuttle_station"; @@ -6941,8 +6905,7 @@ "arL" = ( /obj/machinery/computer/card, /obj/machinery/camera{ - c_tag = "Bridge - Central"; - dir = 2 + c_tag = "Bridge - Central" }, /obj/effect/turf_decal/tile/blue{ dir = 1 @@ -8112,8 +8075,8 @@ "aud" = ( /obj/machinery/camera/motion{ c_tag = "Vault"; - network = list("vault"); - dir = 1 + dir = 1; + network = list("vault") }, /obj/machinery/light, /obj/structure/cable{ @@ -8147,8 +8110,6 @@ }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/item/radio/intercom{ - freerange = 0; - frequency = 1459; name = "Station Intercom (General)"; pixel_x = -30 }, @@ -8280,7 +8241,6 @@ "aux" = ( /obj/item/radio/intercom{ desc = "Talk through this. It looks like it has been modified to not broadcast."; - dir = 2; name = "Prison Intercom (General)"; pixel_x = -25; pixel_y = -2; @@ -8649,8 +8609,7 @@ dir = 10 }, /obj/machinery/camera{ - c_tag = "Dormitories Fore"; - dir = 2 + c_tag = "Dormitories Fore" }, /obj/machinery/light{ dir = 1 @@ -9308,8 +9267,7 @@ dir = 8 }, /obj/machinery/camera{ - c_tag = "Fitness Room"; - dir = 2 + c_tag = "Fitness Room" }, /obj/machinery/computer/security/telescreen/entertainment{ pixel_y = 32 @@ -9335,9 +9293,9 @@ icon_state = "plant-05" }, /obj/machinery/power/apc{ + areastring = "/area/crew_quarters/fitness/recreation"; dir = 1; name = "Fitness Room APC"; - areastring = "/area/crew_quarters/fitness/recreation"; pixel_y = 24 }, /obj/structure/cable{ @@ -9487,9 +9445,7 @@ name = "Brig Desk"; req_access_txt = "1" }, -/obj/item/reagent_containers/food/snacks/donut{ - layer = 3 - }, +/obj/item/reagent_containers/food/snacks/donut, /obj/machinery/door/poddoor/preopen{ id = "Secure Gate"; name = "brig shutters" @@ -9503,9 +9459,7 @@ /area/security/brig) "awQ" = ( /obj/structure/table/reinforced, -/obj/item/pen{ - layer = 3 - }, +/obj/item/pen, /obj/machinery/door/poddoor/preopen{ id = "Secure Gate"; name = "brig shutters" @@ -9844,8 +9798,7 @@ dir = 1 }, /obj/machinery/camera{ - c_tag = "Captain's Quarters"; - dir = 2 + c_tag = "Captain's Quarters" }, /obj/item/clothing/suit/armor/riot/knight/blue, /obj/item/clothing/head/helmet/knight/blue, @@ -10033,8 +9986,7 @@ /obj/machinery/button/door{ id = "Dorm2Shutters"; name = "Privacy Shutters Control"; - pixel_y = 26; - req_access_txt = "0" + pixel_y = 26 }, /obj/effect/spawner/lootdrop/bedsheet, /turf/open/floor/carpet, @@ -10057,7 +10009,6 @@ name = "Dorm Bolt Control"; normaldoorcontrol = 1; pixel_x = 25; - req_access_txt = "0"; specialfunctions = 4 }, /obj/structure/closet/secure_closet/personal/cabinet, @@ -10160,8 +10111,7 @@ /obj/machinery/power/solar_control{ dir = 4; id = "portsolar"; - name = "Port Solar Control"; - track = 0 + name = "Port Solar Control" }, /obj/structure/cable{ icon_state = "0-2" @@ -10526,9 +10476,9 @@ "azo" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/machinery/power/apc/highcap/ten_k{ + areastring = "/area/bridge"; dir = 4; name = "Bridge APC"; - areastring = "/area/bridge"; pixel_x = 24 }, /obj/structure/cable{ @@ -11338,9 +11288,9 @@ /area/ai_monitored/turret_protected/ai_upload) "aBx" = ( /obj/machinery/power/apc/highcap/five_k{ + areastring = "/area/ai_monitored/turret_protected/ai_upload"; dir = 1; name = "Upload APC"; - areastring = "/area/ai_monitored/turret_protected/ai_upload"; pixel_y = 24 }, /obj/structure/cable{ @@ -11409,8 +11359,7 @@ dir = 1 }, /obj/machinery/camera{ - c_tag = "Head of Personnel's Office"; - dir = 2 + c_tag = "Head of Personnel's Office" }, /obj/machinery/newscaster{ pixel_y = 32 @@ -11490,8 +11439,7 @@ /obj/machinery/button/door{ id = "Dorm1Shutters"; name = "Privacy Shutters Control"; - pixel_y = 26; - req_access_txt = "0" + pixel_y = 26 }, /obj/effect/spawner/lootdrop/bedsheet, /turf/open/floor/plasteel/grimy, @@ -11514,7 +11462,6 @@ name = "Dorm Bolt Control"; normaldoorcontrol = 1; pixel_x = 25; - req_access_txt = "0"; specialfunctions = 4 }, /obj/structure/closet/secure_closet/personal/cabinet, @@ -11755,7 +11702,6 @@ /obj/item/analyzer, /obj/machinery/requests_console{ department = "Tool Storage"; - departmentType = 0; pixel_y = 30 }, /obj/effect/turf_decal/tile/neutral{ @@ -12220,7 +12166,6 @@ /area/crew_quarters/dorms) "aDk" = ( /obj/machinery/vr_sleeper{ - icon_state = "sleeper"; dir = 8 }, /turf/open/floor/plasteel/white/corner{ @@ -12627,8 +12572,7 @@ "aEc" = ( /obj/machinery/door/firedoor, /obj/machinery/door/airlock{ - name = "Dormitories"; - req_access_txt = "0" + name = "Dormitories" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plasteel, @@ -12638,8 +12582,7 @@ /area/crew_quarters/toilet/restrooms) "aEe" = ( /obj/machinery/door/airlock{ - name = "Unisex Restrooms"; - req_access_txt = "0" + name = "Unisex Restrooms" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plasteel/freezer, @@ -12915,9 +12858,7 @@ /obj/item/aiModule/supplied/oxygen, /obj/item/aiModule/zeroth/oneHuman, /obj/machinery/door/window{ - base_state = "left"; dir = 8; - icon_state = "left"; name = "High-Risk Modules"; req_access_txt = "20" }, @@ -13301,7 +13242,6 @@ /obj/machinery/door/firedoor, /obj/machinery/door/window/northleft{ dir = 2; - icon_state = "left"; name = "Reception Window" }, /obj/machinery/door/poddoor/preopen{ @@ -13377,8 +13317,7 @@ /area/crew_quarters/toilet/restrooms) "aFK" = ( /obj/machinery/door/airlock{ - name = "Unisex Showers"; - req_access_txt = "0" + name = "Unisex Showers" }, /obj/structure/cable{ icon_state = "4-8" @@ -13648,7 +13587,6 @@ dir = 8 }, /obj/machinery/computer/arcade{ - icon_state = "arcade"; dir = 1 }, /turf/open/floor/plasteel/dark, @@ -14057,8 +13995,7 @@ /area/hallway/primary/central) "aHn" = ( /obj/machinery/door/airlock/abandoned{ - name = "Starboard Emergency Storage"; - req_access_txt = "0" + name = "Starboard Emergency Storage" }, /obj/structure/cable{ icon_state = "1-2" @@ -14821,8 +14758,7 @@ /area/hallway/primary/central) "aJn" = ( /obj/machinery/door/airlock{ - name = "Unisex Restrooms"; - req_access_txt = "0" + name = "Unisex Restrooms" }, /obj/structure/cable{ icon_state = "4-8" @@ -14931,8 +14867,7 @@ dir = 8 }, /obj/machinery/camera{ - c_tag = "Departure Lounge Fore"; - dir = 2 + c_tag = "Departure Lounge Fore" }, /obj/effect/turf_decal/tile/neutral{ dir = 1 @@ -14954,9 +14889,9 @@ dir = 8 }, /obj/machinery/power/apc/highcap/five_k{ + areastring = "/area/hallway/secondary/exit/departure_lounge"; dir = 1; name = "Departure Lounge APC"; - areastring = "/area/hallway/secondary/exit/departure_lounge"; pixel_y = 24 }, /obj/structure/cable{ @@ -15234,8 +15169,7 @@ dir = 1 }, /obj/machinery/camera{ - c_tag = "Dormitory Cyborg Recharging Station"; - dir = 2 + c_tag = "Dormitory Cyborg Recharging Station" }, /obj/effect/decal/cleanable/oil, /turf/open/floor/plasteel/freezer, @@ -15819,9 +15753,7 @@ pixel_y = -5; req_access_txt = "17" }, -/obj/effect/turf_decal/stripes/corner{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/corner, /obj/effect/turf_decal/tile/blue, /turf/open/floor/plasteel, /area/teleporter) @@ -15866,8 +15798,7 @@ dir = 1 }, /obj/machinery/camera{ - c_tag = "Cargo Security Post"; - dir = 2 + c_tag = "Cargo Security Post" }, /obj/machinery/airalarm{ pixel_y = 22 @@ -16036,8 +15967,7 @@ dir = 1 }, /obj/machinery/camera{ - c_tag = "Cargo Warehouse"; - dir = 2 + c_tag = "Cargo Warehouse" }, /obj/structure/cable{ icon_state = "4-8" @@ -16059,9 +15989,9 @@ dir = 9 }, /obj/machinery/power/apc{ + areastring = "/area/quartermaster/warehouse"; dir = 4; name = "Cargo Warehouse APC"; - areastring = "/area/quartermaster/warehouse"; pixel_x = 26 }, /obj/structure/cable, @@ -16313,7 +16243,6 @@ "aNa" = ( /obj/structure/cable, /obj/machinery/power/apc{ - dir = 2; name = "Cafeteria APC"; pixel_y = -24 }, @@ -16344,7 +16273,6 @@ "aNe" = ( /obj/structure/cable, /obj/machinery/power/apc/highcap/five_k{ - dir = 2; name = "Auxiliary Restrooms APC"; pixel_y = -24 }, @@ -17819,8 +17747,7 @@ "aQU" = ( /obj/machinery/vending/coffee, /obj/machinery/camera{ - c_tag = "Bar Backroom"; - dir = 2 + c_tag = "Bar Backroom" }, /turf/open/floor/wood, /area/crew_quarters/bar) @@ -17863,7 +17790,6 @@ icon_state = "0-4" }, /obj/machinery/power/apc{ - dir = 2; name = "EVA Storage APC"; pixel_y = -24 }, @@ -18398,7 +18324,6 @@ /obj/structure/disposalpipe/segment, /obj/machinery/door/airlock/mining/glass{ name = "Mailroom"; - req_access_txt = "0"; req_one_access_txt = "48;50" }, /obj/machinery/door/firedoor, @@ -18603,9 +18528,7 @@ location = "Kitchen" }, /obj/machinery/door/window/southleft{ - base_state = "left"; dir = 8; - icon_state = "left"; name = "Kitchen Delivery"; req_access_txt = "28" }, @@ -19009,7 +18932,6 @@ /area/solar/starboard) "aTH" = ( /obj/docking_port/stationary{ - dheight = 0; dir = 8; dwidth = 4; height = 15; @@ -19152,8 +19074,7 @@ /area/crew_quarters/kitchen) "aTZ" = ( /obj/machinery/camera{ - c_tag = "Kitchen Cold Room"; - dir = 2 + c_tag = "Kitchen Cold Room" }, /obj/machinery/atmospherics/components/unary/vent_pump/on{ dir = 8 @@ -19270,7 +19191,6 @@ "aUo" = ( /obj/machinery/door/airlock/mining/glass{ name = "Cargo Bay"; - req_access_txt = "0"; req_one_access_txt = "31;48" }, /obj/structure/disposalpipe/segment{ @@ -19615,9 +19535,6 @@ /area/crew_quarters/kitchen) "aVc" = ( /obj/machinery/door/window/southleft{ - base_state = "left"; - dir = 2; - icon_state = "left"; name = "Bar Delivery"; req_access_txt = "25" }, @@ -19894,7 +19811,6 @@ pixel_y = -8 }, /obj/machinery/button/door{ - dir = 2; id = "QMLoaddoor"; layer = 4; name = "Loading Doors"; @@ -20042,7 +19958,6 @@ /area/crew_quarters/kitchen) "aVX" = ( /obj/machinery/power/apc{ - dir = 2; name = "Kitchen APC"; pixel_y = -24 }, @@ -20107,8 +20022,7 @@ receive_ore_updates = 1 }, /obj/machinery/camera{ - c_tag = "Bar Access"; - dir = 2 + c_tag = "Bar Access" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 @@ -20535,9 +20449,7 @@ /obj/machinery/atmospherics/components/unary/vent_pump/on{ dir = 8 }, -/obj/machinery/light/small{ - dir = 2 - }, +/obj/machinery/light/small, /turf/open/floor/plasteel/dark, /area/crew_quarters/bar) "aXb" = ( @@ -20553,9 +20465,7 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/machinery/light/small{ - dir = 2 - }, +/obj/machinery/light/small, /turf/open/floor/plasteel/dark, /area/crew_quarters/bar) "aXd" = ( @@ -20623,7 +20533,6 @@ }, /obj/machinery/requests_console{ department = "Theatre"; - departmentType = 0; name = "theatre RC"; pixel_x = -32; pixel_y = -32 @@ -21066,7 +20975,6 @@ "aYd" = ( /obj/machinery/door/airlock{ name = "Service Access"; - req_access_txt = "0"; req_one_access_txt = "25; 26; 28; 35" }, /obj/structure/disposalpipe/segment, @@ -21544,7 +21452,6 @@ pixel_y = 32 }, /obj/item/reagent_containers/food/condiment/saltshaker{ - layer = 3; pixel_x = -2; pixel_y = 2 }, @@ -22270,9 +22177,8 @@ icon_state = "0-4" }, /obj/machinery/power/apc{ - dir = 2; - name = "Cargo Office APC"; areastring = "/area/quartermaster/office"; + name = "Cargo Office APC"; pixel_x = 1; pixel_y = -24 }, @@ -22319,7 +22225,6 @@ dir = 4 }, /obj/machinery/power/apc{ - dir = 2; name = "Cargo Bay APC"; pixel_y = -24 }, @@ -22430,7 +22335,6 @@ dir = 4 }, /obj/machinery/button/door{ - dir = 2; id = "papersplease"; name = "Shutters Control Button"; pixel_x = -26; @@ -22486,7 +22390,6 @@ /area/security/checkpoint/customs) "baU" = ( /obj/machinery/power/apc{ - dir = 2; name = "Security Checkpoint APC"; pixel_x = 1; pixel_y = -24 @@ -22516,7 +22419,6 @@ dir = 8 }, /obj/machinery/button/door{ - dir = 2; id = "jangarage"; name = "Custodial Closet Shutters Control"; pixel_x = 25; @@ -22535,7 +22437,6 @@ dir = 8 }, /obj/machinery/button/door{ - dir = 2; id = "jangarage"; name = "Custodial Closet Shutters Control"; pixel_x = -25; @@ -22691,9 +22592,7 @@ /area/crew_quarters/bar) "bbs" = ( /obj/item/cane, -/obj/item/clothing/head/that{ - throwforce = 1 - }, +/obj/item/clothing/head/that, /obj/structure/table/wood/fancy, /turf/open/floor/carpet{ icon_state = "carpetsymbol" @@ -23304,8 +23203,7 @@ /obj/machinery/power/solar_control{ dir = 8; id = "starboardsolar"; - name = "Starboard Solar Control"; - track = 0 + name = "Starboard Solar Control" }, /obj/structure/cable, /turf/open/floor/plating, @@ -23587,9 +23485,9 @@ icon_state = "0-4" }, /obj/machinery/power/apc{ + areastring = "/area/quartermaster/qm"; dir = 8; name = "Quartermaster APC"; - areastring = "/area/quartermaster/qm"; pixel_x = -24 }, /obj/machinery/atmospherics/components/unary/vent_scrubber/on{ @@ -23653,7 +23551,6 @@ "bdM" = ( /obj/machinery/requests_console{ department = "Mining"; - departmentType = 0; pixel_x = 32 }, /obj/machinery/computer/security/mining{ @@ -25348,7 +25245,6 @@ dir = 4 }, /obj/machinery/button/door{ - dir = 2; id = "Skynet_launch"; name = "Mech Bay Door Control"; pixel_x = 25; @@ -25362,7 +25258,6 @@ dir = 8 }, /obj/machinery/button/door{ - dir = 2; id = "Skynet_launch"; name = "Mech Bay Door Control"; pixel_x = -25; @@ -25550,8 +25445,7 @@ /obj/machinery/door/firedoor, /obj/machinery/door/airlock/research{ name = "Mech Bay"; - req_access_txt = "29"; - req_one_access_txt = "0" + req_access_txt = "29" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 @@ -25691,9 +25585,8 @@ pixel_y = 5 }, /obj/machinery/power/apc{ - dir = 2; - name = "Lounge APC"; areastring = "/area/crew_quarters/lounge"; + name = "Lounge APC"; pixel_y = -24 }, /obj/structure/cable, @@ -25770,9 +25663,7 @@ "biW" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/machinery/door/airlock/maintenance{ - name = "Port Emergency Storage"; - req_access_txt = "0"; - req_one_access_txt = "0" + name = "Port Emergency Storage" }, /obj/effect/mapping_helpers/airlock/cyclelink_helper, /turf/open/floor/plating, @@ -25788,7 +25679,6 @@ /obj/machinery/door/firedoor, /obj/machinery/door/airlock/grunge{ name = "Morgue"; - opacity = 1; req_access_txt = "6" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, @@ -26291,8 +26181,7 @@ /obj/machinery/door/firedoor, /obj/machinery/door/airlock/research{ name = "Mech Bay"; - req_access_txt = "29"; - req_one_access_txt = "0" + req_access_txt = "29" }, /turf/open/floor/plasteel, /area/science/robotics/lab) @@ -26305,7 +26194,6 @@ "bkz" = ( /obj/machinery/camera{ c_tag = "Experimentation Lab Chamber"; - dir = 2; network = list("ss13","rd") }, /turf/open/floor/engine, @@ -26412,8 +26300,7 @@ }, /obj/machinery/camera{ c_tag = "Genetics Cloning Foyer"; - network = list("ss13","medbay"); - dir = 2 + network = list("ss13","medbay") }, /obj/machinery/atmospherics/components/unary/vent_pump/on, /obj/machinery/power/apc{ @@ -26743,7 +26630,6 @@ "blH" = ( /obj/machinery/camera{ c_tag = "Robotics Lab"; - dir = 2; network = list("ss13","rd") }, /obj/structure/sink/kitchen{ @@ -27003,7 +26889,6 @@ }, /obj/machinery/door/airlock/maintenance{ name = "Genetics Maintenance"; - req_access_txt = "0"; req_one_access_txt = "12;45;5;9" }, /turf/open/floor/plating, @@ -27086,9 +26971,9 @@ /area/medical/morgue) "bms" = ( /obj/machinery/power/apc{ + areastring = "/area/security/checkpoint/medical"; dir = 8; name = "Medbay Security APC"; - areastring = "/area/security/checkpoint/medical"; pixel_x = -25 }, /obj/structure/cable{ @@ -27096,8 +26981,8 @@ }, /obj/machinery/camera{ c_tag = "Medbay Security Post"; - network = list("ss13","medbay"); - dir = 4 + dir = 4; + network = list("ss13","medbay") }, /obj/structure/closet/secure_closet/security/med, /obj/effect/turf_decal/tile/red{ @@ -27489,7 +27374,6 @@ /obj/machinery/door/firedoor, /obj/machinery/door/airlock/medical/glass{ name = "Cloning"; - req_access_txt = "0"; req_one_access_txt = "5;9" }, /obj/structure/cable{ @@ -28028,17 +27912,13 @@ /area/medical/medbay/central) "boH" = ( /obj/machinery/requests_console{ - announcementConsole = 0; department = "Medbay"; departmentType = 1; name = "Medbay RC"; pixel_x = -32 }, /obj/item/radio/intercom{ - broadcasting = 0; - freerange = 0; frequency = 1485; - listening = 1; name = "Station Intercom (Medbay)"; pixel_y = 26 }, @@ -28093,8 +27973,8 @@ /obj/structure/bed/roller, /obj/machinery/camera{ c_tag = "Medbay Entrance"; - network = list("ss13","medbay"); - dir = 1 + dir = 1; + network = list("ss13","medbay") }, /obj/effect/turf_decal/tile/blue, /obj/effect/turf_decal/tile/blue{ @@ -28202,7 +28082,6 @@ dir = 4 }, /obj/machinery/button/door{ - dir = 2; id = "robotics"; name = "Shutters Control Button"; pixel_x = -26; @@ -28252,7 +28131,6 @@ /obj/effect/decal/cleanable/cobweb/cobweb2, /obj/machinery/camera{ c_tag = "Server Room"; - dir = 2; network = list("ss13","rd"); pixel_x = 22 }, @@ -28334,7 +28212,6 @@ /obj/machinery/requests_console{ department = "Science"; departmentType = 2; - dir = 2; name = "Science Requests Console"; pixel_y = 30; receive_ore_updates = 1 @@ -28346,7 +28223,6 @@ /obj/structure/disposalpipe/trunk, /obj/machinery/camera{ c_tag = "Experimentation Lab Central"; - dir = 2; network = list("ss13","rd") }, /obj/effect/turf_decal/tile/neutral{ @@ -28451,10 +28327,7 @@ "bpy" = ( /obj/machinery/clonepod, /obj/item/radio/intercom{ - broadcasting = 0; - freerange = 0; frequency = 1485; - listening = 1; name = "Station Intercom (Medbay)"; pixel_x = -30 }, @@ -28536,7 +28409,6 @@ /obj/machinery/door/firedoor, /obj/machinery/door/airlock/centcom{ name = "Morgue"; - opacity = 1; req_access_txt = "6" }, /obj/structure/cable{ @@ -28568,7 +28440,6 @@ icon_state = "4-8" }, /obj/machinery/light{ - dir = 2; light_color = "#e8eaff" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -28602,7 +28473,6 @@ }, /obj/machinery/door/airlock/grunge{ name = "Morgue"; - opacity = 1; req_access_txt = "6" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -29056,7 +28926,6 @@ "bqH" = ( /obj/machinery/door/window/northleft{ base_state = "right"; - dir = 1; icon_state = "right"; name = "Containment Pen #5"; req_access_txt = "55" @@ -29099,7 +28968,6 @@ "bqK" = ( /obj/machinery/door/window/northleft{ base_state = "right"; - dir = 1; icon_state = "right"; name = "Containment Pen #6"; req_access_txt = "55" @@ -29129,7 +28997,6 @@ /area/science/xenobiology) "bqO" = ( /obj/machinery/door/airlock/maintenance{ - req_access_txt = "0"; req_one_access_txt = "12; 55" }, /obj/structure/cable{ @@ -29141,9 +29008,9 @@ /area/maintenance/department/cargo) "bqS" = ( /obj/machinery/power/apc{ + areastring = "/area/hallway/secondary/entry"; dir = 4; name = "Arrivals APC"; - areastring = "/area/hallway/secondary/entry"; pixel_x = 24 }, /obj/structure/cable{ @@ -29236,7 +29103,6 @@ /obj/machinery/door/airlock/medical/glass{ id_tag = "GeneticsDoor"; name = "Cloning"; - req_access_txt = "0"; req_one_access_txt = "5;9" }, /obj/structure/cable{ @@ -29807,7 +29673,6 @@ "bsf" = ( /obj/machinery/camera{ c_tag = "Xenobiology Starboard"; - dir = 2; network = list("ss13","rd") }, /obj/structure/sign/departments/xenobio{ @@ -29867,8 +29732,8 @@ /obj/machinery/dna_scannernew, /obj/machinery/camera{ c_tag = "Genetics Cloning"; - network = list("ss13","medbay"); - dir = 4 + dir = 4; + network = list("ss13","medbay") }, /obj/machinery/airalarm/unlocked{ dir = 4; @@ -30017,10 +29882,7 @@ /obj/machinery/portable_atmospherics/canister/oxygen, /obj/machinery/atmospherics/components/unary/portables_connector/visible, /obj/item/radio/intercom{ - broadcasting = 0; - freerange = 0; frequency = 1485; - listening = 1; name = "Station Intercom (Medbay)"; pixel_x = 28 }, @@ -30491,8 +30353,7 @@ dir = 4 }, /obj/machinery/door/airlock/external{ - name = "Port Docking Bay 2"; - req_access_txt = "0" + name = "Port Docking Bay 2" }, /turf/open/floor/plating, /area/hallway/secondary/entry) @@ -30501,8 +30362,7 @@ dir = 8 }, /obj/machinery/door/airlock/external{ - name = "Port Docking Bay 2"; - req_access_txt = "0" + name = "Port Docking Bay 2" }, /turf/open/floor/plating, /area/hallway/secondary/entry) @@ -30822,8 +30682,7 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/machinery/door/airlock/research{ name = "Robotics Lab"; - req_access_txt = "29"; - req_one_access_txt = "0" + req_access_txt = "29" }, /obj/effect/turf_decal/delivery, /obj/machinery/door/firedoor, @@ -31089,8 +30948,8 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/machinery/camera{ c_tag = "Medbay Port Hallway"; - network = list("ss13","medbay"); - dir = 4 + dir = 4; + network = list("ss13","medbay") }, /obj/machinery/airalarm{ dir = 4; @@ -31370,7 +31229,6 @@ /obj/effect/turf_decal/stripes/line, /obj/machinery/camera{ c_tag = "Science Access Airlock"; - dir = 2; network = list("ss13","rd") }, /turf/open/floor/plasteel/white, @@ -31608,7 +31466,6 @@ /area/maintenance/department/science) "bwn" = ( /obj/machinery/door/airlock/maintenance{ - req_access_txt = "0"; req_one_access_txt = "12; 55" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -31743,7 +31600,6 @@ /area/medical/genetics) "bwB" = ( /obj/machinery/requests_console{ - announcementConsole = 0; department = "Medbay"; departmentType = 1; name = "Medbay RC"; @@ -32000,7 +31856,6 @@ }, /obj/machinery/door/airlock/research{ name = "R&D Lab"; - req_access_txt = "0"; req_one_access_txt = "7;29;30" }, /obj/effect/turf_decal/delivery, @@ -32194,9 +32049,7 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 2 - }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, /turf/open/floor/plasteel/dark, /area/science/explab) "bxw" = ( @@ -32325,7 +32178,6 @@ "bxN" = ( /obj/machinery/door/window/northleft{ base_state = "right"; - dir = 1; icon_state = "right"; name = "Containment Pen #1"; req_access_txt = "55" @@ -32362,7 +32214,6 @@ "bxQ" = ( /obj/machinery/door/window/northleft{ base_state = "right"; - dir = 1; icon_state = "right"; name = "Containment Pen #2"; req_access_txt = "55" @@ -32395,7 +32246,6 @@ "bxS" = ( /obj/machinery/door/window/northleft{ base_state = "right"; - dir = 1; icon_state = "right"; name = "Containment Pen #3"; req_access_txt = "55" @@ -32691,7 +32541,6 @@ }, /obj/machinery/door/airlock/research{ name = "R&D Lab"; - req_access_txt = "0"; req_one_access_txt = "7;29;30" }, /obj/effect/turf_decal/delivery, @@ -33568,8 +33417,7 @@ /obj/structure/disposalpipe/segment, /obj/machinery/door/airlock/research{ name = "Research Director's Office"; - req_access_txt = "30"; - req_one_access_txt = "0" + req_access_txt = "30" }, /obj/machinery/door/firedoor, /obj/structure/cable{ @@ -33814,7 +33662,6 @@ }, /obj/machinery/requests_console{ department = "Genetics"; - departmentType = 0; name = "Genetics Requests Console"; pixel_x = 32 }, @@ -34206,7 +34053,6 @@ "bBF" = ( /obj/machinery/portable_atmospherics/scrubber/huge, /obj/machinery/airalarm{ - dir = 2; pixel_y = 22 }, /turf/open/floor/engine, @@ -34335,7 +34181,6 @@ /obj/machinery/atmospherics/components/unary/portables_connector/visible, /obj/machinery/camera{ c_tag = "Toxins Lab Starboard"; - dir = 2; network = list("ss13","rd") }, /obj/machinery/light{ @@ -34494,8 +34339,7 @@ /obj/structure/closet/emcloset, /obj/machinery/camera{ c_tag = "Virology Airlock"; - network = list("ss13","medbay"); - dir = 2 + network = list("ss13","medbay") }, /obj/effect/turf_decal/stripes/line{ dir = 5 @@ -35056,9 +34900,7 @@ /turf/open/space, /area/space/nearstation) "bDg" = ( -/obj/machinery/atmospherics/components/unary/tank/air{ - dir = 2 - }, +/obj/machinery/atmospherics/components/unary/tank/air, /turf/open/floor/plating, /area/maintenance/department/engine) "bDh" = ( @@ -35214,9 +35056,9 @@ /area/crew_quarters/heads/cmo) "bDx" = ( /obj/machinery/power/apc{ + areastring = "/area/crew_quarters/heads/cmo"; dir = 4; name = "CMO's Office APC"; - areastring = "/area/crew_quarters/heads/cmo"; pixel_x = 26 }, /obj/structure/cable, @@ -36346,7 +36188,6 @@ normaldoorcontrol = 1; pixel_x = 25; pixel_y = 4; - req_access_txt = "0"; specialfunctions = 4 }, /turf/open/floor/plating, @@ -36453,7 +36294,6 @@ pixel_y = 2 }, /obj/machinery/requests_console{ - announcementConsole = 0; department = "Medbay"; departmentType = 1; name = "Medbay RC"; @@ -36899,9 +36739,7 @@ /turf/open/floor/plating, /area/chapel/dock) "bGG" = ( -/obj/machinery/atmospherics/components/unary/outlet_injector/on{ - dir = 2 - }, +/obj/machinery/atmospherics/components/unary/outlet_injector/on, /obj/structure/window/reinforced, /obj/structure/window/reinforced{ dir = 8; @@ -37022,10 +36860,7 @@ dir = 4 }, /obj/item/radio/intercom{ - broadcasting = 0; - freerange = 0; frequency = 1485; - listening = 1; name = "Station Intercom (Medbay)"; pixel_x = -28 }, @@ -37385,7 +37220,6 @@ /area/science/mixing) "bHC" = ( /obj/machinery/atmospherics/components/binary/pump{ - dir = 2; name = "Incinerator Output Pump" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -37405,12 +37239,8 @@ /area/science/mixing) "bHE" = ( /obj/structure/window/reinforced, -/obj/machinery/doppler_array/research/science{ - dir = 2 - }, -/obj/effect/turf_decal/bot{ - dir = 2 - }, +/obj/machinery/doppler_array/research/science, +/obj/effect/turf_decal/bot, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 9 }, @@ -37516,8 +37346,7 @@ "bHY" = ( /obj/machinery/camera{ c_tag = "Virology"; - network = list("ss13","medbay"); - dir = 2 + network = list("ss13","medbay") }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 @@ -37552,10 +37381,7 @@ "bIb" = ( /obj/machinery/atmospherics/pipe/simple/cyan/hidden, /obj/item/radio/intercom{ - broadcasting = 0; - freerange = 0; frequency = 1485; - listening = 1; name = "Station Intercom (Medbay)"; pixel_x = 28 }, @@ -37589,8 +37415,8 @@ /obj/machinery/light, /obj/machinery/camera{ c_tag = "Medbay Equipment Room"; - network = list("ss13","medbay"); - dir = 1 + dir = 1; + network = list("ss13","medbay") }, /obj/effect/turf_decal/tile/blue, /obj/effect/turf_decal/tile/blue{ @@ -37670,17 +37496,14 @@ "bIm" = ( /obj/machinery/camera{ c_tag = "Medbay Recovery Room"; - network = list("ss13","medbay"); - dir = 8 + dir = 8; + network = list("ss13","medbay") }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, /obj/item/radio/intercom{ - broadcasting = 0; - freerange = 0; frequency = 1485; - listening = 1; name = "Station Intercom (Medbay)"; pixel_x = 28 }, @@ -37733,7 +37556,6 @@ }, /obj/machinery/camera{ c_tag = "Surgery"; - dir = 2; network = list("ss13","surgery") }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ @@ -37938,11 +37760,9 @@ /turf/open/floor/engine, /area/science/storage) "bIK" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible{ - dir = 2 - }, -/turf/closed/wall/r_wall, -/area/science/mixing) +/obj/effect/landmark/start/cyborg, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/turret_protected/aisat_interior) "bIL" = ( /obj/machinery/door/airlock/research/glass/incinerator/toxmix_interior, /turf/open/floor/engine, @@ -38019,9 +37839,7 @@ /turf/open/floor/plasteel/dark, /area/chapel/dock) "bIX" = ( -/obj/machinery/atmospherics/components/unary/tank/air{ - dir = 2 - }, +/obj/machinery/atmospherics/components/unary/tank/air, /obj/effect/turf_decal/tile/neutral{ dir = 1 }, @@ -38200,7 +38018,6 @@ /area/medical/virology) "bJo" = ( /obj/machinery/requests_console{ - announcementConsole = 0; department = "Medbay"; departmentType = 1; name = "Medbay RC"; @@ -38359,9 +38176,7 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, -/obj/effect/turf_decal/stripes/corner{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/corner, /obj/effect/turf_decal/tile/green, /obj/effect/turf_decal/tile/green{ dir = 8 @@ -38402,9 +38217,7 @@ c_tag = "Research Division Entrance"; dir = 1 }, -/obj/machinery/light{ - dir = 2 - }, +/obj/machinery/light, /obj/effect/turf_decal/tile/green, /obj/effect/turf_decal/tile/green{ dir = 8 @@ -38494,9 +38307,7 @@ /turf/closed/wall/r_wall, /area/engine/atmos) "bJQ" = ( -/obj/machinery/atmospherics/components/binary/pump/on{ - dir = 2 - }, +/obj/machinery/atmospherics/components/binary/pump/on, /obj/machinery/light/small{ dir = 8 }, @@ -38530,8 +38341,7 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/visible, /obj/effect/mapping_helpers/airlock/cyclelink_helper, /obj/machinery/door/airlock/external{ - req_access_txt = "8"; - req_one_access_txt = "0" + req_access_txt = "8" }, /turf/open/floor/plating, /area/science/mixing) @@ -38739,8 +38549,7 @@ pixel_y = 25 }, /obj/machinery/camera{ - c_tag = "Patient Room"; - dir = 2 + c_tag = "Patient Room" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -38908,7 +38717,6 @@ dir = 4 }, /obj/machinery/airalarm{ - dir = 2; pixel_y = 22 }, /obj/structure/cable{ @@ -39092,8 +38900,7 @@ /area/chapel/dock) "bLq" = ( /obj/machinery/door/airlock/grunge{ - name = "Monastery Transit"; - opacity = 1 + name = "Monastery Transit" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -39172,8 +38979,7 @@ /obj/structure/table, /obj/structure/disposalpipe/segment, /obj/item/stack/sheet/mineral/plasma{ - amount = 2; - layer = 3 + amount = 2 }, /obj/item/storage/box/monkeycubes{ layer = 3.1 @@ -39201,9 +39007,7 @@ /area/medical/virology) "bLF" = ( /obj/structure/table, -/obj/item/clipboard{ - toppaper = null - }, +/obj/item/clipboard, /obj/item/pen{ layer = 3.1 }, @@ -39480,7 +39284,6 @@ "bMh" = ( /obj/machinery/computer/atmos_control/tank{ dir = 8; - frequency = 1441; input_tag = "mix_in"; name = "Gas Mix Tank Control"; output_tag = "mix_in"; @@ -39498,7 +39301,6 @@ /area/engine/atmos) "bMj" = ( /obj/machinery/air_sensor{ - frequency = 1441; id_tag = "mix_sensor" }, /turf/open/floor/engine/vacuum, @@ -39539,8 +39341,7 @@ dir = 1 }, /obj/machinery/door/airlock/external{ - req_access_txt = "8"; - req_one_access_txt = "0" + req_access_txt = "8" }, /turf/open/floor/plating, /area/science/mixing) @@ -39849,7 +39650,6 @@ "bMU" = ( /obj/machinery/camera{ c_tag = "Aft Primary Hallway Atmospherics"; - dir = 2; start_active = 1 }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -40833,8 +40633,7 @@ /area/space/nearstation) "bPn" = ( /obj/machinery/door/airlock/grunge{ - name = "Chapel"; - opacity = 1 + name = "Chapel" }, /obj/structure/cable{ icon_state = "1-2" @@ -40853,8 +40652,7 @@ /area/chapel/dock) "bPo" = ( /obj/machinery/door/airlock/grunge{ - name = "Chapel"; - opacity = 1 + name = "Chapel" }, /obj/effect/turf_decal/tile/neutral{ dir = 1 @@ -41088,7 +40886,6 @@ "bPX" = ( /obj/machinery/computer/atmos_control/tank{ dir = 8; - frequency = 1441; input_tag = "n2o_in"; name = "Nitrous Oxide Supply Control"; output_tag = "n2o_out"; @@ -41107,7 +40904,6 @@ /area/engine/atmos) "bPZ" = ( /obj/machinery/air_sensor{ - frequency = 1441; id_tag = "n2o_sensor" }, /turf/open/floor/engine/n2o, @@ -41192,8 +40988,7 @@ /area/engine/gravity_generator) "bQo" = ( /obj/machinery/camera{ - c_tag = "Gravity Generator"; - dir = 2 + c_tag = "Gravity Generator" }, /obj/machinery/atmospherics/components/unary/vent_scrubber/on{ dir = 4 @@ -41290,13 +41085,11 @@ light_color = "#cee5d2" }, /obj/machinery/camera{ - c_tag = "Tech Storage"; - dir = 2 + c_tag = "Tech Storage" }, /obj/item/circuitboard/computer/monastery_shuttle, /obj/effect/spawner/lootdrop/techstorage/service, /obj/machinery/airalarm{ - dir = 2; pixel_y = 22 }, /obj/effect/turf_decal/tile/green{ @@ -41379,8 +41172,8 @@ /area/storage/tech) "bQB" = ( /obj/machinery/power/apc{ - name = "Aft Hall APC"; dir = 8; + name = "Aft Hall APC"; pixel_x = -25; pixel_y = 1 }, @@ -41415,7 +41208,6 @@ /obj/machinery/door/firedoor/heavy, /obj/machinery/door/window/northleft{ dir = 4; - icon_state = "left"; name = "Atmospherics Desk"; req_access_txt = "24" }, @@ -41469,12 +41261,8 @@ dir = 4 }, /obj/machinery/portable_atmospherics/canister, -/obj/effect/turf_decal/bot{ - dir = 2 - }, -/turf/open/floor/plasteel{ - dir = 2 - }, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel, /area/engine/atmos) "bQL" = ( /obj/machinery/atmospherics/pipe/manifold/general/visible{ @@ -41486,17 +41274,12 @@ /obj/machinery/atmospherics/components/unary/portables_connector/visible{ dir = 8 }, -/obj/effect/turf_decal/bot{ - dir = 2 - }, -/turf/open/floor/plasteel{ - dir = 2 - }, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel, /area/engine/atmos) "bQN" = ( /obj/machinery/atmospherics/components/trinary/filter/atmos/n2o{ - dir = 1; - on = 1 + dir = 1 }, /turf/open/floor/plasteel, /area/engine/atmos) @@ -41631,7 +41414,6 @@ dir = 1 }, /obj/machinery/airalarm{ - dir = 2; pixel_y = 22 }, /obj/effect/turf_decal/stripes/line{ @@ -41642,8 +41424,7 @@ "bRe" = ( /obj/structure/closet/radiation, /obj/machinery/camera{ - c_tag = "Gravity Generator Foyer"; - dir = 2 + c_tag = "Gravity Generator Foyer" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 @@ -41697,9 +41478,7 @@ /obj/effect/turf_decal/stripes/line{ dir = 1 }, -/obj/effect/turf_decal/stripes/corner{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/corner, /obj/structure/cable{ icon_state = "4-8" }, @@ -41778,7 +41557,6 @@ /obj/machinery/door/firedoor/heavy, /obj/machinery/door/window/northleft{ dir = 4; - icon_state = "left"; name = "Atmospherics Desk"; req_access_txt = "24" }, @@ -42506,7 +42284,6 @@ "bSV" = ( /obj/machinery/computer/atmos_control/tank{ dir = 8; - frequency = 1441; input_tag = "tox_in"; name = "Plasma Supply Control"; output_tag = "tox_out"; @@ -42520,7 +42297,6 @@ /area/engine/atmos) "bSW" = ( /obj/machinery/air_sensor{ - frequency = 1441; id_tag = "tox_sensor" }, /turf/open/floor/engine/plasma, @@ -42575,7 +42351,6 @@ /area/maintenance/department/engine) "bTf" = ( /obj/machinery/atmospherics/components/binary/pump/on{ - dir = 2; name = "Virology Waste to Space" }, /turf/open/floor/plating{ @@ -42584,7 +42359,6 @@ /area/maintenance/department/engine) "bTg" = ( /obj/machinery/atmospherics/components/binary/pump{ - dir = 2; name = "Virology Waste to Atmospherics" }, /turf/open/floor/plating, @@ -42665,9 +42439,7 @@ pixel_y = 1 }, /obj/structure/table, -/obj/item/paper/guides/jobs/engi/gravity_gen{ - layer = 3 - }, +/obj/item/paper/guides/jobs/engi/gravity_gen, /obj/item/pen/blue, /obj/machinery/power/terminal{ dir = 8 @@ -42822,9 +42594,8 @@ /area/storage/tech) "bTB" = ( /obj/machinery/power/apc{ - dir = 2; - name = "Tech Storage APC"; areastring = "/area/storage/tech"; + name = "Tech Storage APC"; pixel_y = -24 }, /obj/structure/cable, @@ -42912,8 +42683,7 @@ dir = 1 }, /obj/machinery/camera{ - c_tag = "Atmospherics Entrance"; - dir = 2 + c_tag = "Atmospherics Entrance" }, /obj/effect/turf_decal/tile/yellow{ dir = 1 @@ -42988,8 +42758,7 @@ }, /obj/structure/reagent_dispensers/fueltank, /obj/machinery/camera{ - c_tag = "Atmospherics Mixing"; - dir = 2 + c_tag = "Atmospherics Mixing" }, /obj/effect/turf_decal/tile/yellow{ dir = 1 @@ -43019,8 +42788,7 @@ /area/engine/atmos) "bTU" = ( /obj/machinery/atmospherics/components/trinary/filter/atmos/plasma{ - dir = 1; - on = 1 + dir = 1 }, /turf/open/floor/plasteel, /area/engine/atmos) @@ -43346,8 +43114,7 @@ dir = 1 }, /obj/machinery/camera{ - c_tag = "Chief Engineer's Office"; - dir = 2 + c_tag = "Chief Engineer's Office" }, /obj/machinery/computer/security/telescreen/ce{ pixel_y = 30 @@ -43362,7 +43129,6 @@ /area/crew_quarters/heads/chief) "bUK" = ( /obj/machinery/airalarm{ - dir = 2; pixel_y = 22 }, /obj/machinery/computer/apc_control, @@ -43437,8 +43203,7 @@ }, /obj/machinery/power/smes/engineering, /obj/machinery/camera{ - c_tag = "Engineering Power Storage"; - dir = 2 + c_tag = "Engineering Power Storage" }, /obj/effect/turf_decal/tile/yellow{ dir = 1 @@ -43891,9 +43656,9 @@ pixel_y = 4 }, /obj/machinery/power/apc{ + areastring = "/area/security/checkpoint/engineering"; dir = 8; name = "Engineering Security APC"; - areastring = "/area/security/checkpoint/engineering"; pixel_x = -24 }, /obj/structure/cable{ @@ -44115,7 +43880,6 @@ dir = 8 }, /obj/machinery/light_switch{ - dir = 2; pixel_x = 22 }, /obj/effect/turf_decal/tile/yellow, @@ -44436,8 +44200,7 @@ /area/chapel/main/monastery) "bWW" = ( /obj/machinery/door/airlock/grunge{ - name = "Chapel"; - opacity = 1 + name = "Chapel" }, /obj/structure/cable{ icon_state = "1-2" @@ -44446,8 +44209,7 @@ /area/chapel/main/monastery) "bWX" = ( /obj/machinery/door/airlock/grunge{ - name = "Chapel"; - opacity = 1 + name = "Chapel" }, /turf/open/floor/plasteel/dark, /area/chapel/main/monastery) @@ -44551,9 +44313,9 @@ /obj/item/stack/rods/fifty, /obj/item/stack/cable_coil, /obj/machinery/power/apc/highcap/ten_k{ + areastring = "/area/engine/engine_smes"; dir = 8; name = "Engine Room APC"; - areastring = "/area/engine/engine_smes"; pixel_x = -26 }, /obj/structure/cable, @@ -45100,8 +44862,7 @@ dir = 4 }, /obj/machinery/camera{ - c_tag = "Engineering Port Fore"; - dir = 2 + c_tag = "Engineering Port Fore" }, /obj/structure/sign/map{ icon_state = "map-pubby"; @@ -45183,7 +44944,6 @@ dir = 4 }, /obj/machinery/airalarm{ - dir = 2; pixel_y = 22 }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -45339,8 +45099,7 @@ dir = 4 }, /obj/machinery/camera{ - c_tag = "Engineering Starboard Fore"; - dir = 2 + c_tag = "Engineering Starboard Fore" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -45411,7 +45170,6 @@ pixel_x = -24 }, /obj/machinery/airalarm{ - dir = 2; pixel_y = 22 }, /obj/structure/cable{ @@ -45912,9 +45670,7 @@ /obj/structure/cable/yellow{ icon_state = "4-8" }, -/obj/machinery/atmospherics/components/binary/dp_vent_pump/high_volume/incinerator_atmos{ - dir = 2 - }, +/obj/machinery/atmospherics/components/binary/dp_vent_pump/high_volume/incinerator_atmos, /turf/open/floor/engine, /area/maintenance/disposal/incinerator) "caN" = ( @@ -45950,7 +45706,6 @@ }, /obj/machinery/camera{ c_tag = "Turbine Chamber"; - dir = 2; network = list("turbine") }, /turf/open/floor/engine, @@ -46257,8 +46012,7 @@ /area/chapel/main/monastery) "cbR" = ( /obj/machinery/door/airlock/grunge{ - name = "Chapel Access"; - opacity = 1 + name = "Chapel Access" }, /turf/open/floor/plasteel/dark, /area/chapel/main/monastery) @@ -46390,7 +46144,6 @@ /area/maintenance/disposal/incinerator) "ccr" = ( /obj/machinery/atmospherics/components/binary/pump/on{ - dir = 2; name = "Incinerator Output Pump" }, /obj/effect/turf_decal/tile/yellow, @@ -46617,7 +46370,6 @@ }, /obj/machinery/camera{ c_tag = "Chapel Port Access"; - dir = 2; network = list("ss13","monastery") }, /turf/open/floor/plasteel/dark, @@ -46770,7 +46522,6 @@ "ceg" = ( /obj/machinery/door/airlock/centcom{ name = "Chapel Office"; - opacity = 1; req_access_txt = "22" }, /obj/structure/cable{ @@ -46790,8 +46541,7 @@ /area/chapel/office) "cei" = ( /obj/machinery/door/airlock/grunge{ - name = "Chapel"; - opacity = 1 + name = "Chapel" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 @@ -46803,24 +46553,21 @@ /area/chapel/main/monastery) "cej" = ( /obj/machinery/door/airlock/grunge{ - name = "Chapel"; - opacity = 1 + name = "Chapel" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plasteel/dark, /area/chapel/main/monastery) "cek" = ( /obj/machinery/door/airlock/grunge{ - name = "Chapel"; - opacity = 1 + name = "Chapel" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plasteel/dark, /area/chapel/main/monastery) "cel" = ( /obj/machinery/door/airlock/grunge{ - name = "Chapel Access"; - opacity = 1 + name = "Chapel Access" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plasteel/dark, @@ -46903,7 +46650,6 @@ }, /obj/machinery/camera{ c_tag = "Chapel Crematorium"; - dir = 2; network = list("ss13","monastery") }, /turf/open/floor/plasteel/dark, @@ -46993,7 +46739,6 @@ }, /obj/machinery/computer/security/telescreen{ desc = "Used for watching telecomms."; - dir = 2; layer = 4; name = "Telecomms Telescreen"; network = list("tcomms"); @@ -47055,8 +46800,7 @@ /area/chapel/office) "cfl" = ( /obj/machinery/door/airlock/grunge{ - name = "Chapel Access"; - opacity = 1 + name = "Chapel Access" }, /obj/structure/cable{ icon_state = "1-2" @@ -47359,7 +47103,6 @@ /obj/structure/flora/ausbushes/sparsegrass, /obj/machinery/camera{ c_tag = "Monastery Garden"; - dir = 2; network = list("ss13","monastery") }, /turf/open/floor/grass, @@ -48035,8 +47778,7 @@ /area/chapel/main/monastery) "cjl" = ( /obj/machinery/door/airlock/grunge{ - name = "Monastery Cemetary"; - opacity = 1 + name = "Monastery Cemetary" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -48116,8 +47858,7 @@ /area/chapel/main/monastery) "cjH" = ( /obj/machinery/door/airlock/grunge{ - name = "Chapel Garden"; - opacity = 1 + name = "Chapel Garden" }, /turf/open/floor/plasteel/dark, /area/chapel/main/monastery) @@ -48832,9 +48573,9 @@ /area/tcommsat/computer) "cmk" = ( /obj/machinery/power/apc{ + areastring = "/area/tcommsat/computer"; dir = 1; name = "Telecomms Monitoring APC"; - areastring = "/area/tcommsat/computer"; pixel_y = 25 }, /obj/structure/cable{ @@ -49239,7 +48980,6 @@ /obj/structure/lattice, /obj/machinery/camera/motion{ c_tag = "Telecomms External Port Aft"; - dir = 2; network = list("tcomms") }, /turf/open/space, @@ -49248,7 +48988,6 @@ /obj/structure/lattice, /obj/machinery/camera/motion{ c_tag = "Telecomms External Starboard Aft"; - dir = 2; network = list("tcomms") }, /turf/open/space, @@ -49266,6 +49005,7 @@ /obj/effect/turf_decal/tile/blue{ dir = 8 }, +/obj/effect/landmark/start/cyborg, /turf/open/floor/plasteel/dark, /area/ai_monitored/turret_protected/aisat_interior) "cnD" = ( @@ -49292,8 +49032,7 @@ "cnN" = ( /obj/structure/closet/secure_closet/security/sec, /obj/machinery/camera{ - c_tag = "Brig Equipment Room"; - dir = 2 + c_tag = "Brig Equipment Room" }, /obj/item/radio/intercom{ name = "Station Intercom (General)"; @@ -49413,8 +49152,7 @@ /obj/structure/disposalpipe/segment, /obj/machinery/door/firedoor, /obj/machinery/door/airlock{ - name = "Dormitories"; - req_access_txt = "0" + name = "Dormitories" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plasteel, @@ -49424,8 +49162,7 @@ dir = 8 }, /obj/machinery/door/airlock/external{ - name = "public external airlock"; - req_access_txt = "0" + name = "public external airlock" }, /turf/open/floor/plating, /area/storage/emergency/starboard) @@ -49595,8 +49332,7 @@ /obj/machinery/chem_dispenser/drinks, /obj/structure/table, /obj/machinery/camera{ - c_tag = "Bar Drinks"; - dir = 2 + c_tag = "Bar Drinks" }, /turf/open/floor/plasteel/dark, /area/crew_quarters/bar) @@ -50046,9 +49782,7 @@ c_tag = "Research Division Hallway"; dir = 1 }, -/obj/machinery/light{ - dir = 2 - }, +/obj/machinery/light, /obj/effect/turf_decal/tile/purple, /obj/effect/turf_decal/tile/purple{ dir = 8 @@ -50538,7 +50272,6 @@ "csC" = ( /obj/structure/table/wood, /obj/item/reagent_containers/food/drinks/bottle/holywater{ - name = "flask of holy water"; pixel_x = -2; pixel_y = 2 }, @@ -50641,7 +50374,6 @@ }, /obj/machinery/camera{ c_tag = "Chapel Starboard Access"; - dir = 2; network = list("ss13","monastery") }, /obj/structure/chair/wood/normal, @@ -50732,9 +50464,7 @@ /turf/open/floor/plasteel/dark, /area/chapel/office) "ctu" = ( -/obj/machinery/light/small{ - dir = 2 - }, +/obj/machinery/light/small, /obj/effect/turf_decal/tile/yellow{ dir = 4 }, @@ -50814,7 +50544,6 @@ }, /obj/machinery/camera{ c_tag = "Monastery Cloister Fore"; - dir = 2; network = list("ss13","monastery") }, /obj/effect/turf_decal/tile/neutral{ @@ -51047,9 +50776,7 @@ /area/hydroponics/garden/monastery) "cuG" = ( /obj/structure/closet/secure_closet/freezer/fridge, -/obj/machinery/light/small{ - dir = 2 - }, +/obj/machinery/light/small, /turf/open/floor/plasteel, /area/chapel/main/monastery) "cuH" = ( @@ -51887,9 +51614,7 @@ /turf/open/floor/plasteel/dark, /area/library/lounge) "cxD" = ( -/obj/effect/turf_decal/stripes/corner{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/corner, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 5 }, @@ -52116,7 +51841,6 @@ }, /obj/machinery/camera{ c_tag = "Monastery Archives Fore"; - dir = 2; network = list("ss13","monastery") }, /obj/machinery/firealarm{ @@ -52447,9 +52171,7 @@ dir = 4 }, /obj/machinery/door/window/northright{ - base_state = "right"; dir = 2; - icon_state = "right"; name = "Curator Desk Door"; req_access_txt = "37" }, @@ -52625,8 +52347,7 @@ /obj/machinery/button/door{ id = "supplybridge"; name = "Space Bridge Control"; - pixel_y = 27; - req_access_txt = "0" + pixel_y = 27 }, /turf/open/floor/plating, /area/maintenance/department/crew_quarters/dorms) @@ -52860,9 +52581,7 @@ /turf/open/floor/plasteel, /area/science/xenobiology) "cPy" = ( -/obj/machinery/atmospherics/components/binary/pump{ - dir = 2 - }, +/obj/machinery/atmospherics/components/binary/pump, /obj/structure/sign/warning/nosmoking{ pixel_x = -32; pixel_y = 32 @@ -52935,7 +52654,6 @@ /obj/effect/turf_decal/delivery, /obj/machinery/door/window/eastright{ base_state = "left"; - dir = 4; icon_state = "left"; name = "Research Division Delivery"; req_access_txt = "47" @@ -52972,7 +52690,6 @@ /area/maintenance/disposal) "dbi" = ( /obj/machinery/vr_sleeper{ - icon_state = "sleeper"; dir = 8 }, /turf/open/floor/plasteel, @@ -53090,7 +52807,6 @@ /area/science/xenobiology) "dnS" = ( /obj/machinery/atmospherics/components/binary/pump{ - dir = 2; name = "Mix Bypass" }, /obj/structure/cable/yellow{ @@ -53152,7 +52868,6 @@ /area/quartermaster/qm) "dqw" = ( /obj/machinery/door/airlock/maintenance{ - req_access_txt = "0"; req_one_access_txt = "12; 55" }, /obj/effect/mapping_helpers/airlock/cyclelink_helper{ @@ -53678,7 +53393,6 @@ /area/medical/sleeper) "eFG" = ( /obj/machinery/mineral/stacking_unit_console{ - dir = 2; machinedir = 8; pixel_x = -32; pixel_y = 32 @@ -53858,9 +53572,7 @@ /area/hallway/primary/aft) "fdS" = ( /obj/machinery/door/window/southleft{ - base_state = "left"; dir = 4; - icon_state = "left"; name = "Engineering Delivery"; req_access_txt = "10" }, @@ -54249,7 +53961,6 @@ "gam" = ( /obj/machinery/door/airlock/medical/glass{ name = "Service Door"; - req_access_txt = "0"; req_one_access_txt = "35;28" }, /obj/machinery/door/poddoor/shutters/preopen{ @@ -54595,7 +54306,6 @@ pixel_y = 3 }, /obj/machinery/button/door{ - dir = 2; id = "research_shutters_2"; name = "Shutters Control Button"; pixel_x = -28; @@ -55007,7 +54717,6 @@ "hDG" = ( /obj/machinery/door/airlock/engineering{ name = "Auxillary Base Construction"; - req_access_txt = "0"; req_one_access_txt = "32;47;48" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -55433,7 +55142,6 @@ icon_state = "secbot1"; idcheck = 1; name = "Sergeant-at-Armsky"; - on = 1; weaponscheck = 1 }, /turf/open/floor/plasteel/dark, @@ -55477,8 +55185,8 @@ /area/crew_quarters/dorms) "izF" = ( /turf/open/floor/plating{ - luminosity = 2; - initial_gas_mix = "o2=0.01;n2=0.01" + initial_gas_mix = "o2=0.01;n2=0.01"; + luminosity = 2 }, /area/maintenance/department/science) "iAx" = ( @@ -55622,7 +55330,6 @@ /area/science/xenobiology) "iPH" = ( /obj/machinery/vr_sleeper{ - icon_state = "sleeper"; dir = 8 }, /obj/effect/turf_decal/tile/blue{ @@ -55761,7 +55468,6 @@ dir = 1 }, /obj/machinery/requests_console{ - announcementConsole = 0; department = "Engineering"; departmentType = 4; name = "Engineering RC"; @@ -56083,9 +55789,7 @@ /area/science/mixing) "kfM" = ( /obj/structure/closet, -/obj/machinery/light/small{ - dir = 2 - }, +/obj/machinery/light/small, /obj/item/storage/book/bible, /obj/item/storage/book/bible, /obj/item/storage/book/bible, @@ -56236,7 +55940,6 @@ dir = 1 }, /obj/machinery/airalarm{ - dir = 2; pixel_y = 22 }, /obj/effect/turf_decal/tile/yellow{ @@ -56264,9 +55967,7 @@ /turf/open/floor/plasteel/dark, /area/hallway/secondary/exit/departure_lounge) "kDf" = ( -/obj/machinery/light/small{ - dir = 2 - }, +/obj/machinery/light/small, /turf/open/floor/carpet/black, /area/chapel/office) "kDJ" = ( @@ -56405,7 +56106,6 @@ "kNf" = ( /obj/machinery/door/window/northleft{ base_state = "right"; - dir = 1; icon_state = "right"; name = "Containment Pen #4"; req_access_txt = "55" @@ -56491,9 +56191,7 @@ /area/engine/engineering) "kSO" = ( /obj/machinery/door/airlock/maintenance{ - name = "Port Emergency Storage"; - req_access_txt = "0"; - req_one_access_txt = "0" + name = "Port Emergency Storage" }, /turf/open/floor/plating, /area/storage/emergency/port) @@ -56800,8 +56498,7 @@ /area/hallway/primary/aft) "lKL" = ( /obj/machinery/door/airlock/abandoned{ - name = "Starboard Emergency Storage"; - req_access_txt = "0" + name = "Starboard Emergency Storage" }, /obj/structure/cable{ icon_state = "1-2" @@ -57203,9 +56900,7 @@ /area/bridge) "mzl" = ( /obj/structure/chair, -/obj/machinery/atmospherics/components/unary/outlet_injector/on{ - dir = 2 - }, +/obj/machinery/atmospherics/components/unary/outlet_injector/on, /turf/open/floor/plating, /area/security/execution/transfer) "mzU" = ( @@ -57428,7 +57123,6 @@ "nku" = ( /obj/machinery/door/airlock/centcom{ name = "Crematorium"; - opacity = 1; req_access_txt = "27" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, @@ -57485,9 +57179,9 @@ dir = 1 }, /obj/machinery/power/apc{ + areastring = "/area/construction/mining/aux_base"; dir = 8; name = "Auxillary Base Construction APC"; - areastring = "/area/construction/mining/aux_base"; pixel_x = -24 }, /obj/structure/cable{ @@ -57559,8 +57253,8 @@ dir = 6 }, /turf/open/floor/plating{ - luminosity = 2; - initial_gas_mix = "o2=0.01;n2=0.01" + initial_gas_mix = "o2=0.01;n2=0.01"; + luminosity = 2 }, /area/maintenance/department/science) "nAs" = ( @@ -57698,7 +57392,6 @@ }, /obj/machinery/camera/motion{ c_tag = "Telecomms Monitoring"; - dir = 2; network = list("tcomms") }, /obj/structure/cable{ @@ -57829,8 +57522,8 @@ /obj/item/paper_bin, /obj/item/pen, /turf/open/floor/plating{ - luminosity = 2; - initial_gas_mix = "o2=0.01;n2=0.01" + initial_gas_mix = "o2=0.01;n2=0.01"; + luminosity = 2 }, /area/maintenance/department/science) "odM" = ( @@ -57934,9 +57627,7 @@ /obj/item/paper_bin{ layer = 2.9 }, -/obj/effect/turf_decal/stripes/corner{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/corner, /obj/structure/window/reinforced, /turf/open/floor/plasteel, /area/science/xenobiology) @@ -57976,8 +57667,7 @@ dir = 4 }, /obj/machinery/camera{ - c_tag = "Arrivals Port Fore"; - dir = 2 + c_tag = "Arrivals Port Fore" }, /obj/effect/turf_decal/tile/blue{ dir = 4 @@ -58505,7 +58195,6 @@ /area/engine/supermatter) "psd" = ( /obj/machinery/atmospherics/components/binary/pump{ - dir = 2; name = "Gas to Filter" }, /obj/effect/decal/cleanable/dirt, @@ -58671,7 +58360,6 @@ /obj/structure/closet/firecloset, /obj/machinery/camera{ c_tag = "Toxins Launch Area"; - dir = 2; network = list("ss13","rd") }, /obj/structure/sign/poster/official/random{ @@ -58806,7 +58494,6 @@ /area/maintenance/department/engine) "qar" = ( /obj/structure/chair/office/light{ - icon_state = "officechair_white"; dir = 4 }, /turf/open/floor/plasteel/white, @@ -59345,8 +59032,8 @@ dir = 4 }, /turf/open/floor/plating{ - luminosity = 2; - initial_gas_mix = "o2=0.01;n2=0.01" + initial_gas_mix = "o2=0.01;n2=0.01"; + luminosity = 2 }, /area/maintenance/department/science) "rrb" = ( @@ -59404,9 +59091,7 @@ location = "Medbay" }, /obj/machinery/door/window/southleft{ - base_state = "left"; dir = 4; - icon_state = "left"; name = "Medbay Delivery"; req_access_txt = "28" }, @@ -59485,7 +59170,6 @@ /obj/docking_port/stationary{ area_type = /area/construction/mining/aux_base; dheight = 4; - dir = 1; dwidth = 4; height = 9; id = "aux_base_zone"; @@ -59518,8 +59202,7 @@ /obj/machinery/button/door{ id = "shootshut"; name = "shutters control"; - pixel_x = 28; - req_access_txt = "0" + pixel_x = 28 }, /obj/item/ammo_casing/shotgun/improvised, /turf/open/floor/plating, @@ -59577,8 +59260,7 @@ dir = 4 }, /obj/machinery/door/airlock/external{ - name = "public external airlock"; - req_access_txt = "0" + name = "public external airlock" }, /turf/open/floor/plating, /area/storage/emergency/starboard) @@ -59937,7 +59619,6 @@ }, /obj/machinery/door/airlock/centcom{ name = "Chapel Office"; - opacity = 1; req_access_txt = "22" }, /obj/effect/mapping_helpers/airlock/cyclelink_helper{ @@ -60132,7 +59813,6 @@ id = "aux_base_shutters"; name = "Public Shutters Control"; pixel_x = -26; - req_access_txt = "0"; req_one_access_txt = "32;47;48" }, /obj/effect/turf_decal/stripes/line, @@ -60416,7 +60096,6 @@ /area/science/xenobiology) "ugC" = ( /obj/structure/chair/office/light{ - icon_state = "officechair_white"; dir = 4 }, /obj/effect/turf_decal/tile/purple{ @@ -60493,8 +60172,8 @@ dir = 9 }, /turf/open/floor/plating{ - luminosity = 2; - initial_gas_mix = "o2=0.01;n2=0.01" + initial_gas_mix = "o2=0.01;n2=0.01"; + luminosity = 2 }, /area/maintenance/department/science) "uoq" = ( @@ -60673,7 +60352,6 @@ }, /obj/machinery/camera{ c_tag = "Experimentation Lab Mixing Area"; - dir = 2; network = list("ss13","rd") }, /turf/open/floor/engine, @@ -60954,8 +60632,8 @@ "vpz" = ( /obj/structure/girder, /turf/open/floor/plating{ - luminosity = 2; - initial_gas_mix = "o2=0.01;n2=0.01" + initial_gas_mix = "o2=0.01;n2=0.01"; + luminosity = 2 }, /area/maintenance/department/science) "vsk" = ( @@ -60988,7 +60666,6 @@ }, /obj/machinery/door/airlock/maintenance{ name = "Research Lab Maintenance"; - req_access_txt = "0"; req_one_access_txt = "7;29" }, /turf/open/floor/plating, @@ -61204,8 +60881,7 @@ dir = 1 }, /obj/machinery/camera{ - c_tag = "Engineering Port Storage"; - dir = 2 + c_tag = "Engineering Port Storage" }, /obj/effect/turf_decal/tile/yellow{ dir = 1 @@ -61265,7 +60941,6 @@ /area/science/xenobiology) "wbB" = ( /obj/machinery/atmospherics/components/binary/pump{ - dir = 2; name = "External Gas to Loop" }, /obj/effect/turf_decal/delivery, @@ -61962,8 +61637,8 @@ "xsO" = ( /obj/item/ectoplasm, /turf/open/floor/plating{ - luminosity = 2; - initial_gas_mix = "o2=0.01;n2=0.01" + initial_gas_mix = "o2=0.01;n2=0.01"; + luminosity = 2 }, /area/maintenance/department/science) "xuv" = ( @@ -61981,9 +61656,7 @@ /turf/open/floor/plasteel, /area/hallway/primary/central) "xxw" = ( -/obj/machinery/atmospherics/components/binary/pump{ - dir = 2 - }, +/obj/machinery/atmospherics/components/binary/pump, /turf/open/floor/plasteel/dark, /area/science/xenobiology) "xxO" = ( @@ -62066,10 +61739,10 @@ /area/hallway/primary/aft) "xFl" = ( /obj/machinery/power/apc/highcap/five_k{ + areastring = "/area/tcommsat/server"; dir = 1; layer = 4; name = "Telecomms Server APC"; - areastring = "/area/tcommsat/server"; pixel_y = 24 }, /obj/structure/cable{ @@ -62134,9 +61807,7 @@ /area/engine/engineering) "xOC" = ( /obj/machinery/door/airlock/external{ - name = "Construction Zone"; - req_access_txt = "0"; - req_one_access_txt = "0" + name = "Construction Zone" }, /obj/effect/turf_decal/delivery, /turf/open/floor/plating, @@ -62156,8 +61827,7 @@ /obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/machinery/door/airlock{ - name = "Port Emergency Storage"; - req_access_txt = "0" + name = "Port Emergency Storage" }, /obj/effect/mapping_helpers/airlock/unres, /turf/open/floor/plasteel/freezer, @@ -95216,7 +94886,7 @@ aeO aff afy afP -agf +bIK agt agD agR @@ -104551,9 +104221,9 @@ bEb bFn bGt bHz -bIK +bIM bJQ -bIK +bIM bMl bNp bOt diff --git a/_maps/map_files/generic/CentCom.dmm b/_maps/map_files/generic/CentCom.dmm index 6129d263fd..9a94fd3f61 100644 --- a/_maps/map_files/generic/CentCom.dmm +++ b/_maps/map_files/generic/CentCom.dmm @@ -6418,15 +6418,6 @@ /obj/effect/turf_decal/tile/brown, /turf/open/floor/plasteel, /area/centcom/supplypod/loading/two) -"oV" = ( -/obj/machinery/vr_sleeper{ - dir = 4 - }, -/obj/machinery/light{ - dir = 8 - }, -/turf/open/indestructible/hotelwood, -/area/centcom/holding) "oX" = ( /obj/structure/bookcase/random, /obj/machinery/light{ @@ -12460,12 +12451,6 @@ }, /turf/open/floor/plasteel/dark, /area/centcom/evac) -"CT" = ( -/obj/machinery/vr_sleeper{ - dir = 4 - }, -/turf/open/indestructible/hotelwood, -/area/centcom/holding) "CV" = ( /obj/structure/chair/stool, /turf/open/indestructible/hotelwood, @@ -12658,12 +12643,6 @@ "Di" = ( /turf/closed/indestructible/riveted, /area/ai_multicam_room) -"Dj" = ( -/obj/machinery/vr_sleeper{ - dir = 8 - }, -/turf/open/indestructible/hotelwood, -/area/centcom/holding) "Dk" = ( /obj/structure/table, /turf/open/floor/plasteel/cafeteria, @@ -13266,7 +13245,7 @@ /turf/open/floor/engine/cult, /area/wizard_station) "ED" = ( -/obj/machinery/vending/boozeomat, +/obj/machinery/vending/boozeomat/all_access, /turf/closed/indestructible{ icon = 'icons/turf/walls/wood_wall.dmi'; icon_state = "wood"; @@ -16736,6 +16715,10 @@ smooth = 1 }, /area/centcom/holding) +"Nf" = ( +/obj/machinery/autoylathe, +/turf/open/indestructible/hotelwood, +/area/centcom/holding) "Ni" = ( /obj/structure/table/reinforced, /obj/item/clipboard, @@ -16800,13 +16783,6 @@ /obj/machinery/recharge_station, /turf/open/floor/plasteel/white, /area/centcom/holding) -"Ny" = ( -/obj/machinery/modular_computer/console/preset/research, -/obj/machinery/light{ - dir = 1 - }, -/turf/open/indestructible/hotelwood, -/area/centcom/holding) "Nz" = ( /obj/effect/turf_decal/tile/brown{ dir = 8 @@ -17123,15 +17099,6 @@ "PD" = ( /turf/open/floor/plasteel/cafeteria, /area/syndicate_mothership) -"PF" = ( -/obj/machinery/vr_sleeper{ - dir = 8 - }, -/obj/machinery/light{ - dir = 4 - }, -/turf/open/indestructible/hotelwood, -/area/centcom/holding) "PG" = ( /obj/structure/table/reinforced, /obj/item/camera, @@ -17786,6 +17753,7 @@ /obj/item/stack/sheet/glass/fifty, /obj/item/stack/sheet/metal/fifty, /obj/item/storage/toolbox/mechanical, +/obj/item/stack/sheet/plastic/fifty, /obj/item/multitool, /turf/open/indestructible/hotelwood, /area/centcom/holding) @@ -18166,6 +18134,13 @@ }, /turf/open/indestructible/hotelwood, /area/centcom/holding) +"VL" = ( +/obj/machinery/button/crematorium{ + id = "crematoriumGhostDojo"; + pixel_x = -25 + }, +/turf/open/indestructible/hotelwood, +/area/centcom/holding) "VO" = ( /turf/closed/indestructible/riveted, /area/centcom/supplypod) @@ -18248,7 +18223,8 @@ /area/centcom/holding) "Ww" = ( /obj/structure/bodycontainer/crematorium{ - dir = 4 + dir = 4; + id = "crematoriumGhostDojo" }, /turf/open/indestructible/hotelwood, /area/centcom/holding) @@ -43137,15 +43113,15 @@ UV CV Sd NT -CT -oV -CT -CT -CT -oV -CT -Nd Sd +Sd +Sd +Sd +Sd +Sd +Sd +Nd +VL Ww Sd Nd @@ -43651,13 +43627,13 @@ UV CV Sd NT -Dj -PF -Dj Sd -Dj -PF -Dj +MR +Sd +Sd +Sd +MR +Sd Nd Sd Sd @@ -45169,7 +45145,7 @@ aa aa aa Nd -Sd +Nf Sd Rh Mm @@ -47225,7 +47201,7 @@ aa aa aa Nd -Ny +Gs Sd Sd Sd diff --git a/code/__DEFINES/combat.dm b/code/__DEFINES/combat.dm index 2d40d91023..7b8c5ff6ae 100644 --- a/code/__DEFINES/combat.dm +++ b/code/__DEFINES/combat.dm @@ -159,6 +159,7 @@ GLOBAL_LIST_INIT(shove_disarming_types, typecacheof(list( #define EXPLODE_DEVASTATE 1 #define EXPLODE_HEAVY 2 #define EXPLODE_LIGHT 3 +#define EXPLODE_GIB_THRESHOLD 50 #define EMP_HEAVY 1 #define EMP_LIGHT 2 diff --git a/code/__DEFINES/construction.dm b/code/__DEFINES/construction.dm index c394d003d8..c93f1b2435 100644 --- a/code/__DEFINES/construction.dm +++ b/code/__DEFINES/construction.dm @@ -110,4 +110,7 @@ #define RCD_DECONSTRUCT 3 #define RCD_WINDOWGRILLE 4 #define RCD_MACHINE 8 -#define RCD_COMPUTER 16 \ No newline at end of file +#define RCD_COMPUTER 16 + +#define RCD_UPGRADE_FRAMES 1 +#define RCD_UPGRADE_SIMPLE_CIRCUITS 2 \ No newline at end of file diff --git a/code/__DEFINES/inventory.dm b/code/__DEFINES/inventory.dm index f5ea8d835f..2756be76fb 100644 --- a/code/__DEFINES/inventory.dm +++ b/code/__DEFINES/inventory.dm @@ -130,33 +130,24 @@ #define NECK (1<<11) #define FULL_BODY (~0) +//flags for alternate styles: These are hard sprited so don't set this if you didn't put the effort in +#define NORMAL_STYLE 0 +#define ALT_STYLE 1 + //flags for female outfits: How much the game can safely "take off" the uniform without it looking weird #define NO_FEMALE_UNIFORM 0 #define FEMALE_UNIFORM_FULL 1 #define FEMALE_UNIFORM_TOP 2 -//flags for alternate styles: These are hard sprited so don't set this if you didn't put the effort in -#define NORMAL_STYLE 0 -#define ALT_STYLE 1 - -#define NORMAL_SUIT_STYLE 0 -#define DIGITIGRADE_SUIT_STYLE 1 - -//Tauric Specific suits -#define NOT_TAURIC 0 -#define SNEK_TAURIC 1 -#define PAW_TAURIC 2 -#define HOOF_TAURIC 3 - -//Helmets/masks for muzzles or beaks -#define NORMAL_FACED 0 -#define MUZZLE_FACED 1 -#define BEAKED_FACED 2 - -//flags for outfits that have mutantrace variants (try not to use this): Currently only needed if you're trying to add tight fitting bootyshorts -#define NO_MUTANTRACE_VARIATION 0 -#define MUTANTRACE_VARIATION 1 +//flags for outfits that have mutantrace variants: These are hard sprited too. +#define STYLE_DIGITIGRADE (1<<0) //jumpsuits, suits and shoes +#define STYLE_MUZZLE (1<<1) //hats or masks +#define STYLE_SNEK_TAURIC (1<<2) //taur-friendly suits +#define STYLE_PAW_TAURIC (1<<3) +#define STYLE_HOOF_TAURIC (1<<4) +#define STYLE_ALL_TAURIC (STYLE_SNEK_TAURIC|STYLE_PAW_TAURIC|STYLE_HOOF_TAURIC) +//digitigrade legs settings. #define NOT_DIGITIGRADE 0 #define FULL_DIGITIGRADE 1 #define SQUISHED_DIGITIGRADE 2 diff --git a/code/__HELPERS/_cit_helpers.dm b/code/__HELPERS/_cit_helpers.dm index 8134494306..e874097e88 100644 --- a/code/__HELPERS/_cit_helpers.dm +++ b/code/__HELPERS/_cit_helpers.dm @@ -121,6 +121,17 @@ GLOBAL_VAR_INIT(miscreants_allowed, FALSE) flavor_text = sanitize(new_flavor) to_chat(src, "Your flavor text has been updated.") +//Flavor Text +/mob/living/carbon/human/verb/set_flavor_2() + set name = "Set Temporary Flavor Text" + set desc = "Sets a description of your character's current appearance. Use this for emotions, poses etc." + set category = "IC" + + var/new_flavor = input(src, "Enter your new temporary flavor text:", "Temporary flavor text", null) as message|null + if(!isnull(new_flavor)) + flavor_text_2 = sanitize(new_flavor) + to_chat(src, "Your temporary flavor text has been updated.") + //LOOC toggles /client/verb/listen_looc() set name = "Show/Hide LOOC" diff --git a/code/__HELPERS/cmp.dm b/code/__HELPERS/cmp.dm index 4a86f57fcd..c95896d853 100644 --- a/code/__HELPERS/cmp.dm +++ b/code/__HELPERS/cmp.dm @@ -97,6 +97,9 @@ GLOBAL_VAR_INIT(cmp_field, "name") /proc/cmp_numbered_displays_name_dsc(datum/numbered_display/A, datum/numbered_display/B) return sorttext(B.sample_object.name, A.sample_object.name) +/proc/cmp_reagents_asc(datum/reagent/a, datum/reagent/b) + return sorttext(initial(b.name),initial(a.name)) + /proc/cmp_quirk_asc(datum/quirk/A, datum/quirk/B) var/a_sign = num2sign(initial(A.value) * -1) var/b_sign = num2sign(initial(B.value) * -1) diff --git a/code/_globalvars/lists/mobs.dm b/code/_globalvars/lists/mobs.dm index 1707c3a536..3577402b36 100644 --- a/code/_globalvars/lists/mobs.dm +++ b/code/_globalvars/lists/mobs.dm @@ -61,26 +61,6 @@ GLOBAL_LIST_EMPTY(latejoiners) //CIT CHANGE - All latejoining people, for traito var/mob/M = i M.update_config_movespeed() -GLOBAL_LIST_INIT(noodle_taurs, list( - "Naga", - "Tentacle" - )) - -GLOBAL_LIST_INIT(paw_taurs, list( - "Fox", - "Wolf", - "Otie", - "Drake", - "Lab", - "Shepherd", - "Husky", - "Eevee", - "Panther", - "Horse", - "Cow", - "Tiger" - )) - //blood types GLOBAL_LIST_INIT(regular_bloods,list( "O-", diff --git a/code/controllers/subsystem/pai.dm b/code/controllers/subsystem/pai.dm index 18667053d4..5aa109b63a 100644 --- a/code/controllers/subsystem/pai.dm +++ b/code/controllers/subsystem/pai.dm @@ -8,7 +8,7 @@ SUBSYSTEM_DEF(pai) var/spam_delay = 100 var/list/pai_card_list = list() -/datum/controller/subsystem/pai/Topic(href, href_list[]) +/datum/controller/subsystem/pai/Topic(href, href_list) if(href_list["download"]) var/datum/paiCandidate/candidate = locate(href_list["candidate"]) in candidates var/obj/item/paicard/card = locate(href_list["device"]) in pai_card_list diff --git a/code/datums/datumvars.dm b/code/datums/datumvars.dm index feac1de972..dfaa6f061d 100644 --- a/code/datums/datumvars.dm +++ b/code/datums/datumvars.dm @@ -947,21 +947,25 @@ if(A.reagents) var/chosen_id - var/list/reagent_options = sortList(GLOB.chemical_reagents_list) - switch(alert(usr, "Choose a method.", "Add Reagents", "Enter ID", "Choose ID")) - if("Enter ID") + switch(alert(usr, "Choose a method.", "Add Reagents", "Search", "Choose from a list", "I'm feeling lucky")) + if("Search") var/valid_id while(!valid_id) - chosen_id = stripped_input(usr, "Enter the ID of the reagent you want to add.") - if(!chosen_id) //Get me out of here! + chosen_id = input(usr, "Enter the ID of the reagent you want to add.", "Search reagents") as null|text + if(isnull(chosen_id)) //Get me out of here! break - for(var/ID in reagent_options) - if(ID == chosen_id) - valid_id = 1 + if(!ispath(text2path(chosen_id))) + chosen_id = pick_closest_path(chosen_id, make_types_fancy(subtypesof(/datum/reagent))) + if(ispath(chosen_id)) + valid_id = TRUE + else + valid_id = TRUE if(!valid_id) to_chat(usr, "A reagent with that ID doesn't exist!") - if("Choose ID") - chosen_id = input(usr, "Choose a reagent to add.", "Choose a reagent.") as null|anything in reagent_options + if("Choose from a list") + chosen_id = input(usr, "Choose a reagent to add.", "Choose a reagent.") as null|anything in subtypesof(/datum/reagent) + if("I'm feeling lucky") + chosen_id = pick(subtypesof(/datum/reagent)) if(chosen_id) var/amount = input(usr, "Choose the amount to add.", "Choose the amount.", A.reagents.maximum_volume) as num if(amount) diff --git a/code/datums/diseases/_disease.dm b/code/datums/diseases/_disease.dm index 8a6966666e..056f99c7a4 100644 --- a/code/datums/diseases/_disease.dm +++ b/code/datums/diseases/_disease.dm @@ -103,7 +103,7 @@ if(!(spread_flags & DISEASE_SPREAD_AIRBORNE) && !force_spread) return - if(affected_mob.reagents.has_reagent("spaceacillin") || (affected_mob.satiety > 0 && prob(affected_mob.satiety/10))) + if(affected_mob.reagents.has_reagent(/datum/reagent/medicine/spaceacillin) || (affected_mob.satiety > 0 && prob(affected_mob.satiety/10))) return var/spread_range = 2 diff --git a/code/datums/diseases/advance/advance.dm b/code/datums/diseases/advance/advance.dm index 8d5e915b31..a844254ef9 100644 --- a/code/datums/diseases/advance/advance.dm +++ b/code/datums/diseases/advance/advance.dm @@ -36,37 +36,41 @@ // The order goes from easy to cure to hard to cure. Keep in mind that sentient diseases pick two cures from tier 6 and up, ensure they wont react away in bodies. var/static/list/advance_cures = list( list( // level 1 - "copper", "silver", "iodine", "iron", "carbon" + /datum/reagent/copper, /datum/reagent/silver, /datum/reagent/iodine, /datum/reagent/iron, /datum/reagent/carbon ), list( // level 2 - "potassium", "ethanol", "lithium", "silicon", "bromine" + /datum/reagent/potassium, /datum/reagent/consumable/ethanol, /datum/reagent/lithium, + /datum/reagent/silicon, /datum/reagent/bromine ), list( // level 3 - "sodiumchloride", "sugar", "orangejuice", "tomatojuice", "milk" + /datum/reagent/consumable/sodiumchloride, /datum/reagent/consumable/sugar, /datum/reagent/consumable/orangejuice, + /datum/reagent/consumable/tomatojuice, /datum/reagent/consumable/milk ), list( //level 4 - "spaceacillin", "salglu_solution", "epinephrine", "charcoal" + /datum/reagent/medicine/spaceacillin, /datum/reagent/medicine/salglu_solution, + /datum/reagent/medicine/epinephrine, /datum/reagent/medicine/charcoal ), list( //level 5 - "oil", "synaptizine", "mannitol", "space_drugs", "cryptobiolin" + /datum/reagent/oil, /datum/reagent/medicine/synaptizine, /datum/reagent/medicine/mannitol, + /datum/reagent/drug/space_drugs, /datum/reagent/cryptobiolin ), list( // level 6 - "phenol", "inacusiate", "oculine", "antihol" + /datum/reagent/phenol, /datum/reagent/medicine/inacusiate, /datum/reagent/medicine/oculine, /datum/reagent/medicine/antihol ), list( // level 7 - "leporazine", "mindbreaker", "corazone" + /datum/reagent/medicine/leporazine, /datum/reagent/toxin/mindbreaker, /datum/reagent/medicine/corazone ), list( // level 8 - "pax", "happiness", "ephedrine" + /datum/reagent/pax, /datum/reagent/drug/happiness, /datum/reagent/medicine/ephedrine ), list( // level 9 - "lipolicide", "sal_acid" + /datum/reagent/toxin/lipolicide, /datum/reagent/medicine/sal_acid ), list( // level 10 - "haloperidol", "aranesp", "diphenhydramine" + /datum/reagent/medicine/haloperidol, /datum/reagent/drug/aranesp, /datum/reagent/medicine/diphenhydramine ), list( //level 11 - "modafinil", "anacea" + /datum/reagent/medicine/modafinil, /datum/reagent/toxin/anacea ) ) diff --git a/code/datums/diseases/advance/symptoms/choking.dm b/code/datums/diseases/advance/symptoms/choking.dm index a54b132de1..069c62cf3f 100644 --- a/code/datums/diseases/advance/symptoms/choking.dm +++ b/code/datums/diseases/advance/symptoms/choking.dm @@ -138,7 +138,7 @@ Bonus var/get_damage = rand(15,21) * power M.adjustOxyLoss(get_damage) if(paralysis) - M.reagents.add_reagent_list(list("pancuronium" = 3, "sodium_thiopental" = 3)) + M.reagents.add_reagent_list(list(/datum/reagent/toxin/pancuronium = 3, /datum/reagent/toxin/sodium_thiopental = 3)) return 1 /datum/symptom/asphyxiation/proc/Asphyxiate_death(mob/living/M, datum/disease/advance/A) diff --git a/code/datums/diseases/advance/symptoms/fire.dm b/code/datums/diseases/advance/symptoms/fire.dm index f85024a7a9..6429db9439 100644 --- a/code/datums/diseases/advance/symptoms/fire.dm +++ b/code/datums/diseases/advance/symptoms/fire.dm @@ -156,7 +156,7 @@ Bonus M.adjust_fire_stacks(get_stacks) M.adjustFireLoss(get_stacks/2) if(chems) - M.reagents.add_reagent("clf3", 2 * power) + M.reagents.add_reagent(/datum/reagent/clf3, 2 * power) return 1 /datum/symptom/alkali/proc/Alkali_fire_stage_5(mob/living/M, datum/disease/advance/A) @@ -164,5 +164,5 @@ Bonus M.adjust_fire_stacks(get_stacks) M.adjustFireLoss(get_stacks) if(chems) - M.reagents.add_reagent_list(list("napalm" = 4 * power, "clf3" = 4 * power)) + M.reagents.add_reagent_list(list(/datum/reagent/napalm = 4 * power, /datum/reagent/clf3 = 4 * power)) return 1 diff --git a/code/datums/diseases/advance/symptoms/flesh_eating.dm b/code/datums/diseases/advance/symptoms/flesh_eating.dm index c38acc8e9e..d1e9d3fdca 100644 --- a/code/datums/diseases/advance/symptoms/flesh_eating.dm +++ b/code/datums/diseases/advance/symptoms/flesh_eating.dm @@ -124,7 +124,7 @@ Bonus var/get_damage = rand(6,10) M.adjustBruteLoss(get_damage) if(chems) - M.reagents.add_reagent_list(list("heparin" = 2, "lipolicide" = 2)) + M.reagents.add_reagent_list(list(/datum/reagent/toxin/heparin = 2, /datum/reagent/toxin/lipolicide = 2)) if(zombie) - M.reagents.add_reagent("romerol", 1) + M.reagents.add_reagent(/datum/reagent/romerol, 1) return 1 \ No newline at end of file diff --git a/code/datums/diseases/advance/symptoms/heal.dm b/code/datums/diseases/advance/symptoms/heal.dm index 8b205db756..d41e0bf225 100644 --- a/code/datums/diseases/advance/symptoms/heal.dm +++ b/code/datums/diseases/advance/symptoms/heal.dm @@ -117,8 +117,9 @@ power = 2 /datum/symptom/heal/chem/Heal(mob/living/M, datum/disease/advance/A, actual_power) - for(var/datum/reagent/R in M.reagents.reagent_list) //Not just toxins! - M.reagents.remove_reagent(R.id, actual_power) + for(var/E in M.reagents.reagent_list) //Not just toxins! + var/datum/reagent/R = E + M.reagents.remove_reagent(R.type, actual_power) if(food_conversion) M.nutrition += 0.3 if(prob(2)) @@ -329,11 +330,11 @@ if(M.fire_stacks < 0) M.fire_stacks = min(M.fire_stacks + 1 * absorption_coeff, 0) . += power - if(M.reagents.has_reagent("holywater")) - M.reagents.remove_reagent("holywater", 0.5 * absorption_coeff) + if(M.reagents.has_reagent(/datum/reagent/water/holywater)) + M.reagents.remove_reagent(/datum/reagent/water/holywater, 0.5 * absorption_coeff) . += power * 0.75 - else if(M.reagents.has_reagent("water")) - M.reagents.remove_reagent("water", 0.5 * absorption_coeff) + else if(M.reagents.has_reagent(/datum/reagent/water)) + M.reagents.remove_reagent(/datum/reagent/water, 0.5 * absorption_coeff) . += power * 0.5 /datum/symptom/heal/water/Heal(mob/living/carbon/M, datum/disease/advance/A, actual_power) @@ -392,7 +393,7 @@ plasmamount = environment.gases[/datum/gas/plasma] if(plasmamount && plasmamount > GLOB.meta_gas_visibility[/datum/gas/plasma]) //if there's enough plasma in the air to see . += power * 0.5 - if(M.reagents.has_reagent("plasma")) + if(M.reagents.has_reagent(/datum/reagent/toxin/plasma)) . += power * 0.75 /datum/symptom/heal/plasma/Heal(mob/living/carbon/M, datum/disease/advance/A, actual_power) diff --git a/code/datums/diseases/advance/symptoms/sensory.dm b/code/datums/diseases/advance/symptoms/sensory.dm index 2705e0b168..1f8cc8d7af 100644 --- a/code/datums/diseases/advance/symptoms/sensory.dm +++ b/code/datums/diseases/advance/symptoms/sensory.dm @@ -44,10 +44,10 @@ if(A.stage >= 4) M.drowsyness = max(0, M.drowsyness - 2) - if(M.reagents.has_reagent("mindbreaker")) - M.reagents.remove_reagent("mindbreaker", 5) - if(M.reagents.has_reagent("histamine")) - M.reagents.remove_reagent("histamine", 5) + if(M.reagents.has_reagent(/datum/reagent/toxin/mindbreaker)) + M.reagents.remove_reagent(/datum/reagent/toxin/mindbreaker, 5) + if(M.reagents.has_reagent(/datum/reagent/toxin/histamine)) + M.reagents.remove_reagent(/datum/reagent/toxin/histamine, 5) M.hallucination = max(0, M.hallucination - 10) if(A.stage >= 5) diff --git a/code/datums/diseases/anxiety.dm b/code/datums/diseases/anxiety.dm index 2d96157bb0..20ecceb224 100644 --- a/code/datums/diseases/anxiety.dm +++ b/code/datums/diseases/anxiety.dm @@ -5,7 +5,7 @@ spread_text = "On contact" spread_flags = DISEASE_SPREAD_BLOOD | DISEASE_SPREAD_CONTACT_SKIN | DISEASE_SPREAD_CONTACT_FLUIDS cure_text = "Ethanol" - cures = list("ethanol") + cures = list(/datum/reagent/consumable/ethanol) agent = "Excess Lepidopticides" viable_mobtypes = list(/mob/living/carbon/human, /mob/living/carbon/monkey) desc = "If left untreated subject will regurgitate butterflies." diff --git a/code/datums/diseases/beesease.dm b/code/datums/diseases/beesease.dm index ab64fd515c..edd6f151c9 100644 --- a/code/datums/diseases/beesease.dm +++ b/code/datums/diseases/beesease.dm @@ -5,7 +5,7 @@ spread_text = "On contact" spread_flags = DISEASE_SPREAD_BLOOD | DISEASE_SPREAD_CONTACT_SKIN | DISEASE_SPREAD_CONTACT_FLUIDS cure_text = "Sugar" - cures = list("sugar") + cures = list(/datum/reagent/consumable/sugar) agent = "Apidae Infection" viable_mobtypes = list(/mob/living/carbon/human, /mob/living/carbon/monkey) desc = "If left untreated subject will regurgitate bees." diff --git a/code/datums/diseases/brainrot.dm b/code/datums/diseases/brainrot.dm index 98ae74270b..1028d1fff4 100644 --- a/code/datums/diseases/brainrot.dm +++ b/code/datums/diseases/brainrot.dm @@ -4,7 +4,7 @@ spread_text = "On contact" spread_flags = DISEASE_SPREAD_BLOOD | DISEASE_SPREAD_CONTACT_SKIN | DISEASE_SPREAD_CONTACT_FLUIDS cure_text = "Mannitol" - cures = list("mannitol") + cures = list(/datum/reagent/medicine/mannitol) agent = "Cryptococcus Cosmosis" viable_mobtypes = list(/mob/living/carbon/human) cure_chance = 15//higher chance to cure, since two reagents are required diff --git a/code/datums/diseases/cold.dm b/code/datums/diseases/cold.dm index 22d45ffb29..8bbb05e17c 100644 --- a/code/datums/diseases/cold.dm +++ b/code/datums/diseases/cold.dm @@ -2,7 +2,7 @@ name = "The Cold" max_stages = 3 cure_text = "Rest & Spaceacillin" - cures = list("spaceacillin") + cures = list(/datum/reagent/medicine/spaceacillin) agent = "XY-rhinovirus" viable_mobtypes = list(/mob/living/carbon/human, /mob/living/carbon/monkey) permeability_mod = 0.5 diff --git a/code/datums/diseases/cold9.dm b/code/datums/diseases/cold9.dm index da5e67a4fb..eea3147107 100644 --- a/code/datums/diseases/cold9.dm +++ b/code/datums/diseases/cold9.dm @@ -4,7 +4,7 @@ spread_text = "On contact" spread_flags = DISEASE_SPREAD_BLOOD | DISEASE_SPREAD_CONTACT_SKIN | DISEASE_SPREAD_CONTACT_FLUIDS cure_text = "Common Cold Anti-bodies & Spaceacillin" - cures = list("spaceacillin") + cures = list(/datum/reagent/medicine/spaceacillin) agent = "ICE9-rhinovirus" viable_mobtypes = list(/mob/living/carbon/human) desc = "If left untreated the subject will slow, as if partly frozen." diff --git a/code/datums/diseases/dna_spread.dm b/code/datums/diseases/dna_spread.dm index 267dd711a3..972a7f4e18 100644 --- a/code/datums/diseases/dna_spread.dm +++ b/code/datums/diseases/dna_spread.dm @@ -4,7 +4,7 @@ spread_text = "On contact" spread_flags = DISEASE_SPREAD_BLOOD | DISEASE_SPREAD_CONTACT_SKIN | DISEASE_SPREAD_CONTACT_FLUIDS cure_text = "Mutadone" - cures = list("mutadone") + cures = list(/datum/reagent/medicine/mutadone) disease_flags = CAN_CARRY|CAN_RESIST|CURABLE agent = "S4E1 retrovirus" viable_mobtypes = list(/mob/living/carbon/human) diff --git a/code/datums/diseases/fake_gbs.dm b/code/datums/diseases/fake_gbs.dm index add60c73f1..70bcc67d21 100644 --- a/code/datums/diseases/fake_gbs.dm +++ b/code/datums/diseases/fake_gbs.dm @@ -4,7 +4,7 @@ spread_text = "On contact" spread_flags = DISEASE_SPREAD_BLOOD | DISEASE_SPREAD_CONTACT_SKIN | DISEASE_SPREAD_CONTACT_FLUIDS cure_text = "Synaptizine & Sulfur" - cures = list("synaptizine","sulfur") + cures = list(/datum/reagent/medicine/synaptizine,/datum/reagent/sulfur) agent = "Gravitokinetic Bipotential SADS-" viable_mobtypes = list(/mob/living/carbon/human, /mob/living/carbon/monkey) desc = "If left untreated death will occur." diff --git a/code/datums/diseases/flu.dm b/code/datums/diseases/flu.dm index e1943937ba..4fc646a590 100644 --- a/code/datums/diseases/flu.dm +++ b/code/datums/diseases/flu.dm @@ -3,7 +3,7 @@ max_stages = 3 spread_text = "Airborne" cure_text = "Spaceacillin" - cures = list("spaceacillin") + cures = list(/datum/reagent/medicine/spaceacillin) cure_chance = 10 agent = "H13N1 flu virion" viable_mobtypes = list(/mob/living/carbon/human, /mob/living/carbon/monkey) diff --git a/code/datums/diseases/fluspanish.dm b/code/datums/diseases/fluspanish.dm index 9577ca43d0..1557ddfbd8 100644 --- a/code/datums/diseases/fluspanish.dm +++ b/code/datums/diseases/fluspanish.dm @@ -3,7 +3,7 @@ max_stages = 3 spread_text = "Airborne" cure_text = "Spaceacillin & Anti-bodies to the common flu" - cures = list("spaceacillin") + cures = list(/datum/reagent/medicine/spaceacillin) cure_chance = 10 agent = "1nqu1s1t10n flu virion" viable_mobtypes = list(/mob/living/carbon/human) diff --git a/code/datums/diseases/gbs.dm b/code/datums/diseases/gbs.dm index 0487b1c815..8a6eab6048 100644 --- a/code/datums/diseases/gbs.dm +++ b/code/datums/diseases/gbs.dm @@ -4,7 +4,7 @@ spread_text = "On contact" spread_flags = DISEASE_SPREAD_BLOOD | DISEASE_SPREAD_CONTACT_SKIN | DISEASE_SPREAD_CONTACT_FLUIDS cure_text = "Synaptizine & Sulfur" - cures = list("synaptizine","sulfur") + cures = list(/datum/reagent/medicine/synaptizine,/datum/reagent/sulfur) cure_chance = 15//higher chance to cure, since two reagents are required agent = "Gravitokinetic Bipotential SADS+" viable_mobtypes = list(/mob/living/carbon/human) diff --git a/code/datums/diseases/heart_failure.dm b/code/datums/diseases/heart_failure.dm index 2389052a54..196cd95f69 100644 --- a/code/datums/diseases/heart_failure.dm +++ b/code/datums/diseases/heart_failure.dm @@ -58,7 +58,7 @@ H.visible_message("[H] clutches at [H.p_their()] chest as if [H.p_their()] heart is stopping!") H.adjustStaminaLoss(60) H.set_heartattack(TRUE) - H.reagents.add_reagent("corazone", 3) // To give the victim a final chance to shock their heart before losing consciousness + H.reagents.add_reagent(/datum/reagent/medicine/corazone, 3) // To give the victim a final chance to shock their heart before losing consciousness cure() else diff --git a/code/datums/diseases/magnitis.dm b/code/datums/diseases/magnitis.dm index 7c5f05c440..cb00f571aa 100644 --- a/code/datums/diseases/magnitis.dm +++ b/code/datums/diseases/magnitis.dm @@ -3,7 +3,7 @@ max_stages = 4 spread_text = "Airborne" cure_text = "Iron" - cures = list("iron") + cures = list(/datum/reagent/iron) agent = "Fukkos Miracos" viable_mobtypes = list(/mob/living/carbon/human) disease_flags = CAN_CARRY|CAN_RESIST|CURABLE diff --git a/code/datums/diseases/parrotpossession.dm b/code/datums/diseases/parrotpossession.dm index d9c4b324f6..68e962055a 100644 --- a/code/datums/diseases/parrotpossession.dm +++ b/code/datums/diseases/parrotpossession.dm @@ -5,7 +5,7 @@ spread_flags = DISEASE_SPREAD_SPECIAL disease_flags = CURABLE cure_text = "Holy Water." - cures = list("holywater") + cures = list(/datum/reagent/water/holywater) cure_chance = 20 agent = "Avian Vengence" viable_mobtypes = list(/mob/living/carbon/human) diff --git a/code/datums/diseases/pierrot_throat.dm b/code/datums/diseases/pierrot_throat.dm index b2241d59ba..392e1bc85f 100644 --- a/code/datums/diseases/pierrot_throat.dm +++ b/code/datums/diseases/pierrot_throat.dm @@ -3,7 +3,7 @@ max_stages = 4 spread_text = "Airborne" cure_text = "Banana products, especially banana bread." - cures = list("banana") + cures = list(/datum/reagent/consumable/banana) cure_chance = 75 agent = "H0NI<42 Virus" viable_mobtypes = list(/mob/living/carbon/human) diff --git a/code/datums/diseases/retrovirus.dm b/code/datums/diseases/retrovirus.dm index fe099e495b..5854249e54 100644 --- a/code/datums/diseases/retrovirus.dm +++ b/code/datums/diseases/retrovirus.dm @@ -17,7 +17,7 @@ ..() agent = "Virus class [pick("A","B","C","D","E","F")][pick("A","B","C","D","E","F")]-[rand(50,300)]" if(prob(40)) - cures = list("mutadone") + cures = list(/datum/reagent/medicine/mutadone) else restcure = 1 diff --git a/code/datums/diseases/rhumba_beat.dm b/code/datums/diseases/rhumba_beat.dm index 52e9c2e19f..da6e7da8df 100644 --- a/code/datums/diseases/rhumba_beat.dm +++ b/code/datums/diseases/rhumba_beat.dm @@ -4,7 +4,7 @@ spread_text = "On contact" spread_flags = DISEASE_SPREAD_BLOOD | DISEASE_SPREAD_CONTACT_SKIN | DISEASE_SPREAD_CONTACT_FLUIDS cure_text = "Chick Chicky Boom!" - cures = list("plasma") + cures = list(/datum/reagent/toxin/plasma) agent = "Unknown" viable_mobtypes = list(/mob/living/carbon/human) permeability_mod = 1 diff --git a/code/datums/diseases/transformation.dm b/code/datums/diseases/transformation.dm index 083a1f9c6c..1c214c8516 100644 --- a/code/datums/diseases/transformation.dm +++ b/code/datums/diseases/transformation.dm @@ -93,7 +93,7 @@ /datum/disease/transformation/jungle_fever name = "Jungle Fever" cure_text = "Death." - cures = list("adminordrazine") + cures = list(/datum/reagent/medicine/adminordrazine) spread_text = "Monkey Bites" spread_flags = DISEASE_SPREAD_SPECIAL viable_mobtypes = list(/mob/living/carbon/monkey, /mob/living/carbon/human) @@ -156,7 +156,7 @@ name = "Robotic Transformation" cure_text = "An injection of copper." - cures = list("copper") + cures = list(/datum/reagent/copper) cure_chance = 5 agent = "R2D2 Nanomachines" desc = "This disease, actually acute nanomachine infection, converts the victim into a cyborg." @@ -189,7 +189,7 @@ name = "Xenomorph Transformation" cure_text = "Spaceacillin & Glycerol" - cures = list("spaceacillin", "glycerol") + cures = list(/datum/reagent/medicine/spaceacillin, /datum/reagent/glycerol) cure_chance = 5 agent = "Rip-LEY Alien Microbes" desc = "This disease changes the victim into a xenomorph." @@ -218,7 +218,7 @@ /datum/disease/transformation/slime name = "Advanced Mutation Transformation" cure_text = "frost oil" - cures = list("frostoil") + cures = list(/datum/reagent/consumable/frostoil) cure_chance = 80 agent = "Advanced Mutation Toxin" desc = "This highly concentrated extract converts anything into more of itself." @@ -247,7 +247,7 @@ /datum/disease/transformation/corgi name = "The Barkening" cure_text = "Death" - cures = list("adminordrazine") + cures = list(/datum/reagent/medicine/adminordrazine) agent = "Fell Doge Majicks" desc = "This disease transforms the victim into a corgi." severity = DISEASE_SEVERITY_BIOHAZARD @@ -272,7 +272,7 @@ /datum/disease/transformation/morph name = "Gluttony's Blessing" cure_text = "nothing" - cures = list("adminordrazine") + cures = list(/datum/reagent/medicine/adminordrazine) agent = "Gluttony's Blessing" desc = "A 'gift' from somewhere terrible." stage_prob = 20 @@ -289,7 +289,7 @@ /datum/disease/transformation/gondola name = "Gondola Transformation" cure_text = "Condensed Capsaicin, ingested or injected." //getting pepper sprayed doesn't help - cures = list("condensedcapsaicin") //beats the hippie crap right out of your system + cures = list(/datum/reagent/consumable/condensedcapsaicin) //beats the hippie crap right out of your system cure_chance = 80 stage_prob = 5 agent = "Tranquility" @@ -310,17 +310,17 @@ if (prob(5)) affected_mob.emote("smile") if (prob(20)) - affected_mob.reagents.add_reagent_list(list("pax" = 5)) + affected_mob.reagents.add_reagent(/datum/reagent/pax, 5) if(3) if (prob(5)) affected_mob.emote("smile") if (prob(20)) - affected_mob.reagents.add_reagent_list(list("pax" = 5)) + affected_mob.reagents.add_reagent(/datum/reagent/pax, 5) if(4) if (prob(5)) affected_mob.emote("smile") if (prob(20)) - affected_mob.reagents.add_reagent_list(list("pax" = 5)) + affected_mob.reagents.add_reagent(/datum/reagent/pax, 5) if (prob(2)) to_chat(affected_mob, "You let go of what you were holding.") var/obj/item/I = affected_mob.get_active_held_item() diff --git a/code/datums/diseases/tuberculosis.dm b/code/datums/diseases/tuberculosis.dm index 788107c4b6..23902603ce 100644 --- a/code/datums/diseases/tuberculosis.dm +++ b/code/datums/diseases/tuberculosis.dm @@ -4,7 +4,7 @@ max_stages = 5 spread_text = "Airborne" cure_text = "Spaceacillin & salbutamol" - cures = list("spaceacillin", "salbutamol") + cures = list(/datum/reagent/medicine/spaceacillin, /datum/reagent/medicine/salbutamol) agent = "Fungal Tubercle bacillus Cosmosis" viable_mobtypes = list(/mob/living/carbon/human) cure_chance = 5//like hell are you getting out of hell diff --git a/code/datums/diseases/wizarditis.dm b/code/datums/diseases/wizarditis.dm index b288046380..244cc819d8 100644 --- a/code/datums/diseases/wizarditis.dm +++ b/code/datums/diseases/wizarditis.dm @@ -3,7 +3,7 @@ max_stages = 4 spread_text = "Airborne" cure_text = "The Manly Dorf" - cures = list("manlydorf") + cures = list(/datum/reagent/consumable/ethanol/manly_dorf) cure_chance = 100 agent = "Rincewindus Vulgaris" viable_mobtypes = list(/mob/living/carbon/human) diff --git a/code/datums/recipe.dm b/code/datums/recipe.dm index 0ceb4443de..c4d0d6f9c6 100644 --- a/code/datums/recipe.dm +++ b/code/datums/recipe.dm @@ -88,7 +88,7 @@ var/obj/result_obj = new result(container) for (var/obj/O in (container.contents-result_obj)) if (O.reagents) - O.reagents.del_reagent("nutriment") + O.reagents.del_reagent(/datum/reagent/consumable/nutriment) O.reagents.update_total() O.reagents.trans_to(result_obj, O.reagents.total_volume) qdel(O) diff --git a/code/datums/status_effects/debuffs.dm b/code/datums/status_effects/debuffs.dm index c3f74ad44e..036d8193fb 100644 --- a/code/datums/status_effects/debuffs.dm +++ b/code/datums/status_effects/debuffs.dm @@ -308,7 +308,7 @@ /datum/status_effect/cultghost/tick() if(owner.reagents) - owner.reagents.del_reagent("holywater") //can't be deconverted + owner.reagents.del_reagent(/datum/reagent/water/holywater) //can't be deconverted /datum/status_effect/crusher_mark id = "crusher_mark" diff --git a/code/datums/traits/negative.dm b/code/datums/traits/negative.dm index 3319259381..c5217d8e4b 100644 --- a/code/datums/traits/negative.dm +++ b/code/datums/traits/negative.dm @@ -289,7 +289,7 @@ medical_record_text = "Patient suffers from acute Reality Dissociation Syndrome and experiences vivid hallucinations." /datum/quirk/insanity/on_process() - if(quirk_holder.reagents.has_reagent("mindbreaker")) + if(quirk_holder.reagents.has_reagent(/datum/reagent/toxin/mindbreaker)) quirk_holder.hallucination = 0 return if(prob(2)) //we'll all be mad soon enough diff --git a/code/datums/wires/airlock.dm b/code/datums/wires/airlock.dm index db6d80f9bb..ac4473845d 100644 --- a/code/datums/wires/airlock.dm +++ b/code/datums/wires/airlock.dm @@ -85,6 +85,8 @@ INVOKE_ASYNC(A, /obj/machinery/door/airlock.proc/open) else INVOKE_ASYNC(A, /obj/machinery/door/airlock.proc/close) + else + holder.visible_message("You hear a a grinding noise coming from the airlock.") if(WIRE_BOLTS) // Pulse to toggle bolts (but only raise if power is on). if(!A.locked) A.bolt() diff --git a/modular_citadel/code/datums/wires/autoylathe.dm b/code/datums/wires/autoylathe.dm similarity index 100% rename from modular_citadel/code/datums/wires/autoylathe.dm rename to code/datums/wires/autoylathe.dm diff --git a/code/datums/world_topic.dm b/code/datums/world_topic.dm index e01b525e02..9e2efd1d4e 100644 --- a/code/datums/world_topic.dm +++ b/code/datums/world_topic.dm @@ -1,183 +1,189 @@ -// SETUP - -/proc/TopicHandlers() - . = list() - var/list/all_handlers = subtypesof(/datum/world_topic) - for(var/I in all_handlers) - var/datum/world_topic/WT = I - var/keyword = initial(WT.keyword) - if(!keyword) - warning("[WT] has no keyword! Ignoring...") - continue - var/existing_path = .[keyword] - if(existing_path) - warning("[existing_path] and [WT] have the same keyword! Ignoring [WT]...") - else if(keyword == "key") - warning("[WT] has keyword 'key'! Ignoring...") - else - .[keyword] = WT - -// DATUM - -/datum/world_topic - var/keyword - var/log = TRUE - var/key_valid - var/require_comms_key = FALSE - -/datum/world_topic/proc/TryRun(list/input, addr) - key_valid = config && (CONFIG_GET(string/comms_key) == input["key"]) - if(require_comms_key && !key_valid) - return "Bad Key" - input -= "key" - . = Run(input, addr) - if(islist(.)) - . = list2params(.) - -/datum/world_topic/proc/Run(list/input, addr) - CRASH("Run() not implemented for [type]!") - -// TOPICS - -/datum/world_topic/ping - keyword = "ping" - log = FALSE - -/datum/world_topic/ping/Run(list/input, addr) - . = 0 - for (var/client/C in GLOB.clients) - ++. - -/datum/world_topic/playing - keyword = "playing" - log = FALSE - -/datum/world_topic/playing/Run(list/input, addr) - return GLOB.player_list.len - -/datum/world_topic/pr_announce - keyword = "announce" - require_comms_key = TRUE - var/static/list/PRcounts = list() //PR id -> number of times announced this round - -/datum/world_topic/pr_announce/Run(list/input, addr) - var/list/payload = json_decode(input["payload"]) - var/id = "[payload["pull_request"]["id"]]" - if(!PRcounts[id]) - PRcounts[id] = 1 - else - ++PRcounts[id] - if(PRcounts[id] > PR_ANNOUNCEMENTS_PER_ROUND) - return - - var/final_composed = "PR: [input[keyword]]" - for(var/client/C in GLOB.clients) - C.AnnouncePR(final_composed) - -/datum/world_topic/ahelp_relay - keyword = "Ahelp" - require_comms_key = TRUE - -/datum/world_topic/ahelp_relay/Run(list/input, addr) - relay_msg_admins("HELP: [input["source"]] [input["message_sender"]]: [input["message"]]") - -/datum/world_topic/comms_console - keyword = "Comms_Console" - require_comms_key = TRUE - -/datum/world_topic/comms_console/Run(list/input, addr) - minor_announce(input["message"], "Incoming message from [input["message_sender"]]") - for(var/obj/machinery/computer/communications/CM in GLOB.machines) - CM.overrideCooldown() - -/datum/world_topic/news_report - keyword = "News_Report" - require_comms_key = TRUE - -/datum/world_topic/news_report/Run(list/input, addr) - minor_announce(input["message"], "Breaking Update From [input["message_sender"]]") - -/datum/world_topic/server_hop - keyword = "server_hop" - -/datum/world_topic/server_hop/Run(list/input, addr) - var/expected_key = input[keyword] - for(var/mob/dead/observer/O in GLOB.player_list) - if(O.key == expected_key) - if(O.client?.address == addr) - new /obj/screen/splash(O.client, TRUE) - break - -/datum/world_topic/adminmsg - keyword = "adminmsg" - require_comms_key = TRUE - -/datum/world_topic/adminmsg/Run(list/input, addr) - return IrcPm(input[keyword], input["msg"], input["sender"]) - -/datum/world_topic/namecheck - keyword = "namecheck" - require_comms_key = TRUE - -/datum/world_topic/namecheck/Run(list/input, addr) - //Oh this is a hack, someone refactor the functionality out of the chat command PLS - var/datum/tgs_chat_command/namecheck/NC = new - var/datum/tgs_chat_user/user = new - user.friendly_name = input["sender"] - user.mention = user.friendly_name - return NC.Run(user, input["namecheck"]) - -/datum/world_topic/adminwho - keyword = "adminwho" - require_comms_key = TRUE - -/datum/world_topic/adminwho/Run(list/input, addr) - return ircadminwho() - -/datum/world_topic/status - keyword = "status" - -/datum/world_topic/status/Run(list/input, addr) - . = list() - .["version"] = GLOB.game_version - .["mode"] = "hidden" //CIT CHANGE - hides the gamemode in topic() calls to prevent meta'ing the gamemode - .["respawn"] = config ? !CONFIG_GET(flag/norespawn) : FALSE - .["enter"] = GLOB.enter_allowed - .["vote"] = CONFIG_GET(flag/allow_vote_mode) - .["ai"] = CONFIG_GET(flag/allow_ai) - .["host"] = world.host ? world.host : null - .["round_id"] = GLOB.round_id - .["players"] = GLOB.clients.len - .["revision"] = GLOB.revdata.commit - .["revision_date"] = GLOB.revdata.date - - var/list/adm = get_admin_counts() - var/list/presentmins = adm["present"] - var/list/afkmins = adm["afk"] - .["admins"] = presentmins.len + afkmins.len //equivalent to the info gotten from adminwho - .["gamestate"] = SSticker.current_state - - .["map_name"] = SSmapping.config?.map_name || "Loading..." - - if(key_valid) - .["active_players"] = get_active_player_count() - if(SSticker.HasRoundStarted()) - .["real_mode"] = SSticker.mode.name - // Key-authed callers may know the truth behind the "secret" - - .["security_level"] = get_security_level() - .["round_duration"] = SSticker ? round((world.time-SSticker.round_start_time)/10) : 0 - // Amount of world's ticks in seconds, useful for calculating round duration - - //Time dilation stats. - .["time_dilation_current"] = SStime_track.time_dilation_current - .["time_dilation_avg"] = SStime_track.time_dilation_avg - .["time_dilation_avg_slow"] = SStime_track.time_dilation_avg_slow - .["time_dilation_avg_fast"] = SStime_track.time_dilation_avg_fast - - if(SSshuttle && SSshuttle.emergency) - .["shuttle_mode"] = SSshuttle.emergency.mode - // Shuttle status, see /__DEFINES/stat.dm - .["shuttle_timer"] = SSshuttle.emergency.timeLeft() - // Shuttle timer, in seconds - +// SETUP + +/proc/TopicHandlers() + . = list() + var/list/all_handlers = subtypesof(/datum/world_topic) + for(var/I in all_handlers) + var/datum/world_topic/WT = I + var/keyword = initial(WT.keyword) + if(!keyword) + warning("[WT] has no keyword! Ignoring...") + continue + var/existing_path = .[keyword] + if(existing_path) + warning("[existing_path] and [WT] have the same keyword! Ignoring [WT]...") + else if(keyword == "key") + warning("[WT] has keyword 'key'! Ignoring...") + else + .[keyword] = WT + +// DATUM + +/datum/world_topic + var/keyword + var/log = TRUE + var/key_valid + var/require_comms_key = FALSE + +/datum/world_topic/proc/TryRun(list/input, addr) + key_valid = config && (CONFIG_GET(string/comms_key) == input["key"]) + if(require_comms_key && !key_valid) + return "Bad Key" + input -= "key" + . = Run(input, addr) + if(islist(.)) + . = list2params(.) + +/datum/world_topic/proc/Run(list/input, addr) + CRASH("Run() not implemented for [type]!") + +// TOPICS + +/datum/world_topic/ping + keyword = "ping" + log = FALSE + +/datum/world_topic/ping/Run(list/input, addr) + . = 0 + for (var/client/C in GLOB.clients) + ++. + +/datum/world_topic/playing + keyword = "playing" + log = FALSE + +/datum/world_topic/playing/Run(list/input, addr) + return GLOB.player_list.len + +/datum/world_topic/pr_announce + keyword = "announce" + require_comms_key = TRUE + var/static/list/PRcounts = list() //PR id -> number of times announced this round + +/datum/world_topic/pr_announce/Run(list/input, addr) + var/list/payload = json_decode(input["payload"]) + var/id = "[payload["pull_request"]["id"]]" + if(!PRcounts[id]) + PRcounts[id] = 1 + else + ++PRcounts[id] + if(PRcounts[id] > PR_ANNOUNCEMENTS_PER_ROUND) + return + + var/final_composed = "PR: [input[keyword]]" + for(var/client/C in GLOB.clients) + C.AnnouncePR(final_composed) + +/datum/world_topic/ahelp_relay + keyword = "Ahelp" + require_comms_key = TRUE + +/datum/world_topic/ahelp_relay/Run(list/input, addr) + relay_msg_admins("HELP: [input["source"]] [input["message_sender"]]: [input["message"]]") + +/datum/world_topic/comms_console + keyword = "Comms_Console" + require_comms_key = TRUE + +/datum/world_topic/comms_console/Run(list/input, addr) + minor_announce(input["message"], "Incoming message from [input["message_sender"]]") + for(var/obj/machinery/computer/communications/CM in GLOB.machines) + CM.overrideCooldown() + +/datum/world_topic/news_report + keyword = "News_Report" + require_comms_key = TRUE + +/datum/world_topic/news_report/Run(list/input, addr) + minor_announce(input["message"], "Breaking Update From [input["message_sender"]]") + +/datum/world_topic/server_hop + keyword = "server_hop" + +/datum/world_topic/server_hop/Run(list/input, addr) + var/expected_key = input[keyword] + for(var/mob/dead/observer/O in GLOB.player_list) + if(O.key == expected_key) + if(O.client?.address == addr) + new /obj/screen/splash(O.client, TRUE) + break + +/datum/world_topic/adminmsg + keyword = "adminmsg" + require_comms_key = TRUE + +/datum/world_topic/adminmsg/Run(list/input, addr) + return IrcPm(input[keyword], input["msg"], input["sender"]) + +/datum/world_topic/namecheck + keyword = "namecheck" + require_comms_key = TRUE + +/datum/world_topic/namecheck/Run(list/input, addr) + //Oh this is a hack, someone refactor the functionality out of the chat command PLS + var/datum/tgs_chat_command/namecheck/NC = new + var/datum/tgs_chat_user/user = new + user.friendly_name = input["sender"] + user.mention = user.friendly_name + return NC.Run(user, input["namecheck"]) + +/datum/world_topic/adminwho + keyword = "adminwho" + require_comms_key = TRUE + +/datum/world_topic/adminwho/Run(list/input, addr) + return ircadminwho() + +/datum/world_topic/status + keyword = "status" + +/datum/world_topic/status/Run(list/input, addr) + if(!key_valid) //If we have a key, then it's safe to trust that this isn't a malicious packet. Also prevents the extra info from leaking + if(GLOB.topic_status_lastcache <= world.time + 5) + return GLOB.topic_status_cache + GLOB.topic_status_lastcache = world.time + . = list() + .["version"] = GLOB.game_version + .["mode"] = "hidden" //CIT CHANGE - hides the gamemode in topic() calls to prevent meta'ing the gamemode + .["respawn"] = config ? !CONFIG_GET(flag/norespawn) : FALSE + .["enter"] = GLOB.enter_allowed + .["vote"] = CONFIG_GET(flag/allow_vote_mode) + .["ai"] = CONFIG_GET(flag/allow_ai) + .["host"] = world.host ? world.host : null + .["round_id"] = GLOB.round_id + .["players"] = GLOB.clients.len + .["revision"] = GLOB.revdata.commit + .["revision_date"] = GLOB.revdata.date + + var/list/adm = get_admin_counts() + var/list/presentmins = adm["present"] + var/list/afkmins = adm["afk"] + .["admins"] = presentmins.len + afkmins.len //equivalent to the info gotten from adminwho + .["gamestate"] = SSticker.current_state + + .["map_name"] = SSmapping.config?.map_name || "Loading..." + + if(key_valid) + .["active_players"] = get_active_player_count() + if(SSticker.HasRoundStarted()) + .["real_mode"] = SSticker.mode.name + // Key-authed callers may know the truth behind the "secret" + + .["security_level"] = get_security_level() + .["round_duration"] = SSticker ? round((world.time-SSticker.round_start_time)/10) : 0 + // Amount of world's ticks in seconds, useful for calculating round duration + + //Time dilation stats. + .["time_dilation_current"] = SStime_track.time_dilation_current + .["time_dilation_avg"] = SStime_track.time_dilation_avg + .["time_dilation_avg_slow"] = SStime_track.time_dilation_avg_slow + .["time_dilation_avg_fast"] = SStime_track.time_dilation_avg_fast + + if(SSshuttle && SSshuttle.emergency) + .["shuttle_mode"] = SSshuttle.emergency.mode + // Shuttle status, see /__DEFINES/stat.dm + .["shuttle_timer"] = SSshuttle.emergency.timeLeft() + // Shuttle timer, in seconds + + if(!key_valid) + GLOB.topic_status_cache = . diff --git a/code/game/gamemodes/clown_ops/clown_weapons.dm b/code/game/gamemodes/clown_ops/clown_weapons.dm index 9b52ddda1e..0945875ac9 100644 --- a/code/game/gamemodes/clown_ops/clown_weapons.dm +++ b/code/game/gamemodes/clown_ops/clown_weapons.dm @@ -8,7 +8,7 @@ spray_range = 1 stream_range = 1 volume = 30 - list_reagents = list("lube" = 30) + list_reagents = list(/datum/reagent/lube = 30) //COMBAT CLOWN SHOES //Clown shoes with combat stats and noslip. Of course they still squeak. @@ -165,7 +165,7 @@ customfoodfilling = FALSE seed = null tastes = list("explosives" = 10) - list_reagents = list("vitamin" = 1) + list_reagents = list(/datum/reagent/consumable/nutriment/vitamin = 1) /obj/item/grown/bananapeel/bombanana desc = "A peel from a banana. Why is it beeping?" diff --git a/code/game/machinery/Sleeper.dm b/code/game/machinery/Sleeper.dm index b0c7299b34..88b0e804b7 100644 --- a/code/game/machinery/Sleeper.dm +++ b/code/game/machinery/Sleeper.dm @@ -18,10 +18,10 @@ var/list/available_chems var/controls_inside = FALSE var/list/possible_chems = list( - list("epinephrine", "morphine", "salbutamol", "bicaridine", "kelotane"), - list("oculine","inacusiate"), - list("antitoxin", "mutadone", "mannitol", "pen_acid"), - list("omnizine") + list(/datum/reagent/medicine/epinephrine, /datum/reagent/medicine/morphine, /datum/reagent/medicine/salbutamol, /datum/reagent/medicine/bicaridine, /datum/reagent/medicine/kelotane), + list(/datum/reagent/medicine/oculine,/datum/reagent/medicine/inacusiate), + list(/datum/reagent/medicine/antitoxin, /datum/reagent/medicine/mutadone, /datum/reagent/medicine/mannitol, /datum/reagent/medicine/pen_acid), + list(/datum/reagent/medicine/omnizine) ) var/list/chem_buttons //Used when emagged to scramble which chem is used, eg: antitoxin -> morphine var/scrambled_chems = FALSE //Are chem buttons scrambled? used as a warning @@ -106,7 +106,7 @@ return if(is_operational() && occupant) var/datum/reagent/R = pick(reagents.reagent_list) - inject_chem(R.id, occupant) + inject_chem(R.type, occupant) open_machine() //Is this too much? if(severity == EMP_HEAVY) @@ -217,9 +217,9 @@ for(var/chem in available_chems) var/datum/reagent/R = reagents.has_reagent(chem) R = GLOB.chemical_reagents_list[chem] - data["synthchems"] += list(list("name" = R.name, "id" = R.id, "synth_allowed" = synth_allowed(chem))) + data["synthchems"] += list(list("name" = R.name, "id" = R.type, "synth_allowed" = synth_allowed(chem))) for(var/datum/reagent/R in reagents.reagent_list) - data["chems"] += list(list("name" = R.name, "id" = R.id, "vol" = R.volume, "purity" = R.purity, "allowed" = chem_allowed(R.id))) + data["chems"] += list(list("name" = R.name, "id" = R.type, "vol" = R.volume, "purity" = R.purity, "allowed" = chem_allowed(R.type))) data["occupant"] = list() var/mob/living/mob_occupant = occupant @@ -289,23 +289,23 @@ open_machine() . = TRUE if("inject") - var/chem = params["chem"] + var/chem = text2path(params["chem"]) var/amount = text2num(params["volume"]) - if(!is_operational() || !mob_occupant) + if(!is_operational() || !mob_occupant || isnull(chem)) return - if(mob_occupant.health < min_health && chem != "epinephrine") + if(mob_occupant.health < min_health && chem != /datum/reagent/medicine/epinephrine) return if(inject_chem(chem, usr, amount)) . = TRUE if(scrambled_chems && prob(5)) to_chat(usr, "Chemical system re-route detected, results may not be as expected!") if("synth") - var/chem = params["chem"] + var/chem = text2path(params["chem"]) if(!is_operational()) return reagents.add_reagent(chem_buttons[chem], 10) //other_purity = 0.75 for when the mechanics are in if("purge") - var/chem = params["chem"] + var/chem = text2path(params["chem"]) if(allowed(usr)) if(!is_operational()) return @@ -342,7 +342,7 @@ if(!mob_occupant || !mob_occupant.reagents) return var/amount = mob_occupant.reagents.get_reagent_amount(chem) + 10 <= 20 * efficiency - var/occ_health = mob_occupant.health > min_health || chem == "epinephrine" + var/occ_health = mob_occupant.health > min_health || chem == /datum/reagent/medicine/epinephrine return amount && occ_health /obj/machinery/sleeper/proc/synth_allowed(chem) @@ -373,7 +373,7 @@ /obj/machinery/sleeper/syndie/Initialize() . = ..() component_parts = list() - component_parts += new /obj/item/circuitboard/machine/sleeper(null) + component_parts += new /obj/item/circuitboard/machine/sleeper/syndie(null) component_parts += new /obj/item/stock_parts/matter_bin/super(null) component_parts += new /obj/item/stock_parts/manipulator/pico(null) component_parts += new /obj/item/stack/sheet/glass(null) @@ -384,7 +384,7 @@ /obj/machinery/sleeper/syndie/fullupgrade/Initialize() . = ..() component_parts = list() - component_parts += new /obj/item/circuitboard/machine/sleeper(null) + component_parts += new /obj/item/circuitboard/machine/sleeper/syndie(null) component_parts += new /obj/item/stock_parts/matter_bin/bluespace(null) component_parts += new /obj/item/stock_parts/manipulator/femto(null) component_parts += new /obj/item/stack/sheet/glass(null) diff --git a/code/game/machinery/bloodbankgen.dm b/code/game/machinery/bloodbankgen.dm index c92e55084d..948e9b98f9 100644 --- a/code/game/machinery/bloodbankgen.dm +++ b/code/game/machinery/bloodbankgen.dm @@ -123,15 +123,15 @@ if(reagents.total_volume >= reagents.maximum_volume || !bag || !bag.reagents.total_volume) beep_stop_pumping() return - var/blood_amount = bag.reagents.get_reagent_amount("blood") + var/blood_amount = bag.reagents.get_reagent_amount(/datum/reagent/blood) //monitor the machine and blood bag's reagents storage. var/amount = min(blood_amount, min(transfer_amount, reagents.maximum_volume - reagents.total_volume)) if(!amount) beep_stop_pumping() return var/bonus = bag.blood_type == "SY" ? 0 : 5 * efficiency //no infinite loops using synthetics. - reagents.add_reagent("syntheticblood", amount + bonus) - bag.reagents.remove_reagent("blood", amount) + reagents.add_reagent(/datum/reagent/blood/synthetics, amount + bonus) + bag.reagents.remove_reagent(/datum/reagent/blood, amount) update_icon() if(filling) diff --git a/code/game/machinery/computer/dna_console.dm b/code/game/machinery/computer/dna_console.dm index 394cc4593d..7330ae26e7 100644 --- a/code/game/machinery/computer/dna_console.dm +++ b/code/game/machinery/computer/dna_console.dm @@ -88,7 +88,7 @@ occupant_status += "" occupant_status += "
Health:
[viable_occupant.health] %
" occupant_status += "
Radiation Level:
[viable_occupant.radiation/(RAD_MOB_SAFE/100)] %
" - var/rejuvenators = viable_occupant.reagents.get_reagent_amount("potass_iodide") + var/rejuvenators = viable_occupant.reagents.get_reagent_amount(/datum/reagent/medicine/potass_iodide) occupant_status += "
Rejuvenators:
[rejuvenators] units
" occupant_status += "
Unique Enzymes :
[viable_occupant.dna.unique_enzymes]
" occupant_status += "
Last Operation:
[last_change ? last_change : "----"]
" @@ -342,9 +342,9 @@ current_screen = href_list["text"] if("rejuv") if(viable_occupant && viable_occupant.reagents) - var/potassiodide_amount = viable_occupant.reagents.get_reagent_amount("potass_iodide") + var/potassiodide_amount = viable_occupant.reagents.get_reagent_amount(/datum/reagent/medicine/potass_iodide) var/can_add = max(min(REJUVENATORS_MAX - potassiodide_amount, REJUVENATORS_INJECT), 0) - viable_occupant.reagents.add_reagent("potass_iodide", can_add) + viable_occupant.reagents.add_reagent(/datum/reagent/medicine/potass_iodide, can_add) if("setbufferlabel") var/text = sanitize(input(usr, "Input a new label:", "Input an Text", null) as text|null) if(num && text) diff --git a/code/game/machinery/doors/airlock.dm b/code/game/machinery/doors/airlock.dm index 03c1bb3bc8..3e88223037 100644 --- a/code/game/machinery/doors/airlock.dm +++ b/code/game/machinery/doors/airlock.dm @@ -1408,6 +1408,9 @@ /obj/machinery/door/airlock/rcd_vals(mob/user, obj/item/construction/rcd/the_rcd) switch(the_rcd.mode) if(RCD_DECONSTRUCT) + if(security_level != AIRLOCK_SECURITY_NONE && the_rcd.canRturf != TRUE) + to_chat(user, "[src]'s reinforcement needs to be removed first.") + return FALSE return list("mode" = RCD_DECONSTRUCT, "delay" = 50, "cost" = 32) return FALSE diff --git a/code/game/machinery/doors/firedoor.dm b/code/game/machinery/doors/firedoor.dm index dec41b0a59..39b6c8da1d 100644 --- a/code/game/machinery/doors/firedoor.dm +++ b/code/game/machinery/doors/firedoor.dm @@ -450,6 +450,21 @@ return return ..() +/obj/structure/firelock_frame/rcd_vals(mob/user, obj/item/construction/rcd/the_rcd) + if((constructionStep == CONSTRUCTION_NOCIRCUIT) && (the_rcd.upgrade & RCD_UPGRADE_SIMPLE_CIRCUITS)) + return list("mode" = RCD_UPGRADE_SIMPLE_CIRCUITS, "delay" = 20, "cost" = 1) + return FALSE + +/obj/structure/firelock_frame/rcd_act(mob/user, obj/item/construction/rcd/the_rcd, passed_mode) + switch(passed_mode) + if(RCD_UPGRADE_SIMPLE_CIRCUITS) + user.visible_message("[user] fabricates a circuit and places it into [src].", \ + "You adapt a firelock circuit and slot it into the assembly.") + constructionStep = CONSTRUCTION_GUTTED + update_icon() + return TRUE + return FALSE + /obj/structure/firelock_frame/heavy name = "heavy firelock frame" reinforced = TRUE diff --git a/code/game/machinery/firealarm.dm b/code/game/machinery/firealarm.dm index 8f7fce8e3e..1ef3fc0a74 100644 --- a/code/game/machinery/firealarm.dm +++ b/code/game/machinery/firealarm.dm @@ -1,325 +1,340 @@ -#define FIREALARM_COOLDOWN 67 // Chosen fairly arbitrarily, it is the length of the audio in FireAlarm.ogg. The actual track length is 7 seconds 8ms but but the audio stops at 6s 700ms - -/obj/item/electronics/firealarm - name = "fire alarm electronics" - desc = "A fire alarm circuit. Can handle heat levels up to 40 degrees celsius." - -/obj/item/wallframe/firealarm - name = "fire alarm frame" - desc = "Used for building fire alarms." - icon = 'icons/obj/monitors.dmi' - icon_state = "fire_bitem" - result_path = /obj/machinery/firealarm - -/obj/machinery/firealarm - name = "fire alarm" - desc = "\"Pull this in case of emergency\". Thus, keep pulling it forever." - icon = 'icons/obj/monitors.dmi' - icon_state = "fire0" - max_integrity = 250 - integrity_failure = 100 - armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 100, "rad" = 100, "fire" = 90, "acid" = 30) - use_power = IDLE_POWER_USE - idle_power_usage = 2 - active_power_usage = 6 - power_channel = ENVIRON - resistance_flags = FIRE_PROOF - - light_power = 0 - light_range = 7 - light_color = "#ff3232" - - var/detecting = 1 - var/buildstage = 2 // 2 = complete, 1 = no wires, 0 = circuit gone - var/last_alarm = 0 - var/area/myarea = null - -/obj/machinery/firealarm/Initialize(mapload, dir, building) - . = ..() - if(dir) - src.setDir(dir) - if(building) - buildstage = 0 - panel_open = TRUE - pixel_x = (dir & 3)? 0 : (dir == 4 ? -24 : 24) - pixel_y = (dir & 3)? (dir ==1 ? -24 : 24) : 0 - update_icon() - myarea = get_area(src) - LAZYADD(myarea.firealarms, src) - -/obj/machinery/firealarm/Destroy() - LAZYREMOVE(myarea.firealarms, src) - return ..() - -/obj/machinery/firealarm/power_change() - ..() - update_icon() - -/obj/machinery/firealarm/update_icon() - cut_overlays() - SSvis_overlays.remove_vis_overlay(src, managed_vis_overlays) - - if(panel_open) - icon_state = "fire_b[buildstage]" - return - - if(stat & BROKEN) - icon_state = "firex" - return - - icon_state = "fire0" - - if(stat & NOPOWER) - return - - add_overlay("fire_overlay") - - if(is_station_level(z)) - add_overlay("fire_[GLOB.security_level]") - SSvis_overlays.add_vis_overlay(src, icon, "fire_[GLOB.security_level]", ABOVE_LIGHTING_LAYER, ABOVE_LIGHTING_PLANE, dir) - else - add_overlay("fire_[SEC_LEVEL_GREEN]") - SSvis_overlays.add_vis_overlay(src, icon, "fire_[SEC_LEVEL_GREEN]", ABOVE_LIGHTING_LAYER, ABOVE_LIGHTING_PLANE, dir) - - var/area/A = src.loc - A = A.loc - - if(!detecting || !A.fire) - add_overlay("fire_off") - SSvis_overlays.add_vis_overlay(src, icon, "fire_off", ABOVE_LIGHTING_LAYER, ABOVE_LIGHTING_PLANE, dir) - else if(obj_flags & EMAGGED) - add_overlay("fire_emagged") - SSvis_overlays.add_vis_overlay(src, icon, "fire_emagged", ABOVE_LIGHTING_LAYER, ABOVE_LIGHTING_PLANE, dir) - else - add_overlay("fire_on") - SSvis_overlays.add_vis_overlay(src, icon, "fire_on", ABOVE_LIGHTING_LAYER, ABOVE_LIGHTING_PLANE, dir) - -/obj/machinery/firealarm/emp_act(severity) - . = ..() - - if (. & EMP_PROTECT_SELF) - return - - if(prob(50 / severity)) - alarm() - -/obj/machinery/firealarm/emag_act(mob/user) - . = ..() - if(obj_flags & EMAGGED) - return - obj_flags |= EMAGGED - update_icon() - if(user) - user.visible_message("Sparks fly out of [src]!", - "You emag [src], disabling its thermal sensors.") - playsound(src, "sparks", 50, 1) - return TRUE - -/obj/machinery/firealarm/temperature_expose(datum/gas_mixture/air, temperature, volume) - if((temperature > T0C + 200 || temperature < BODYTEMP_COLD_DAMAGE_LIMIT) && (last_alarm+FIREALARM_COOLDOWN < world.time) && !(obj_flags & EMAGGED) && detecting && !stat) - alarm() - ..() - -/obj/machinery/firealarm/proc/alarm(mob/user) - if(!is_operational() || (last_alarm+FIREALARM_COOLDOWN > world.time)) - return - last_alarm = world.time - var/area/A = get_area(src) - A.firealert(src) - playsound(loc, 'goon/sound/machinery/FireAlarm.ogg', 75) - if(user) - log_game("[user] triggered a fire alarm at [COORD(src)]") - -/obj/machinery/firealarm/proc/reset(mob/user) - if(!is_operational()) - return - var/area/A = get_area(src) - A.firereset(src) - if(user) - log_game("[user] reset a fire alarm at [COORD(src)]") - -/obj/machinery/firealarm/attack_hand(mob/user) - if(buildstage != 2) - return ..() - add_fingerprint(user) - var/area/A = get_area(src) - if(A.fire) - reset(user) - else - alarm(user) - -/obj/machinery/firealarm/attack_ai(mob/user) - return attack_hand(user) - -/obj/machinery/firealarm/attack_robot(mob/user) - return attack_hand(user) - -/obj/machinery/firealarm/attackby(obj/item/W, mob/user, params) - add_fingerprint(user) - - if(istype(W, /obj/item/screwdriver) && buildstage == 2) - W.play_tool_sound(src) - panel_open = !panel_open - to_chat(user, "The wires have been [panel_open ? "exposed" : "unexposed"].") - update_icon() - return - - if(panel_open) - - if(istype(W, /obj/item/weldingtool) && user.a_intent == INTENT_HELP) - if(obj_integrity < max_integrity) - if(!W.tool_start_check(user, amount=0)) - return - - to_chat(user, "You begin repairing [src]...") - if(W.use_tool(src, user, 40, volume=50)) - obj_integrity = max_integrity - to_chat(user, "You repair [src].") - else - to_chat(user, "[src] is already in good condition!") - return - - switch(buildstage) - if(2) - if(istype(W, /obj/item/multitool)) - detecting = !detecting - if (src.detecting) - user.visible_message("[user] has reconnected [src]'s detecting unit!", "You reconnect [src]'s detecting unit.") - else - user.visible_message("[user] has disconnected [src]'s detecting unit!", "You disconnect [src]'s detecting unit.") - return - - else if (istype(W, /obj/item/wirecutters)) - buildstage = 1 - W.play_tool_sound(src) - new /obj/item/stack/cable_coil(user.loc, 5) - to_chat(user, "You cut the wires from \the [src].") - update_icon() - return - else if(W.force) //hit and turn it on - ..() - var/area/A = get_area(src) - if(!A.fire) - alarm() - return - if(1) - if(istype(W, /obj/item/stack/cable_coil)) - var/obj/item/stack/cable_coil/coil = W - if(coil.get_amount() < 5) - to_chat(user, "You need more cable for this!") - else - coil.use(5) - buildstage = 2 - to_chat(user, "You wire \the [src].") - update_icon() - return - - else if(istype(W, /obj/item/crowbar)) - user.visible_message("[user.name] removes the electronics from [src.name].", \ - "You start prying out the circuit...") - if(W.use_tool(src, user, 20, volume=50)) - if(buildstage == 1) - if(stat & BROKEN) - to_chat(user, "You remove the destroyed circuit.") - stat &= ~BROKEN - else - to_chat(user, "You pry out the circuit.") - new /obj/item/electronics/firealarm(user.loc) - buildstage = 0 - update_icon() - return - if(0) - if(istype(W, /obj/item/electronics/firealarm)) - to_chat(user, "You insert the circuit.") - qdel(W) - buildstage = 1 - update_icon() - return - - else if(istype(W, /obj/item/electroadaptive_pseudocircuit)) - var/obj/item/electroadaptive_pseudocircuit/P = W - if(!P.adapt_circuit(user, 15)) - return - user.visible_message("[user] fabricates a circuit and places it into [src].", \ - "You adapt a fire alarm circuit and slot it into the assembly.") - buildstage = 1 - update_icon() - return - - else if(istype(W, /obj/item/wrench)) - user.visible_message("[user] removes the fire alarm assembly from the wall.", \ - "You remove the fire alarm assembly from the wall.") - var/obj/item/wallframe/firealarm/frame = new /obj/item/wallframe/firealarm() - frame.forceMove(user.drop_location()) - W.play_tool_sound(src) - qdel(src) - return - return ..() - -/obj/machinery/firealarm/take_damage(damage_amount, damage_type = BRUTE, damage_flag = 0, sound_effect = 1, attack_dir) - . = ..() - if(.) //damage received - if(obj_integrity > 0 && !(stat & BROKEN) && buildstage != 0) - if(prob(33)) - alarm() - -/obj/machinery/firealarm/singularity_pull(S, current_size) - if (current_size >= STAGE_FIVE) // If the singulo is strong enough to pull anchored objects, the fire alarm experiences integrity failure - deconstruct() - ..() - -/obj/machinery/firealarm/obj_break(damage_flag) - if(!(stat & BROKEN) && !(flags_1 & NODECONSTRUCT_1) && buildstage != 0) //can't break the electronics if there isn't any inside. - LAZYREMOVE(myarea.firealarms, src) - stat |= BROKEN - update_icon() - -/obj/machinery/firealarm/deconstruct(disassembled = TRUE) - if(!(flags_1 & NODECONSTRUCT_1)) - new /obj/item/stack/sheet/metal(loc, 1) - if(!(stat & BROKEN)) - var/obj/item/I = new /obj/item/electronics/firealarm(loc) - if(!disassembled) - I.obj_integrity = I.max_integrity * 0.5 - new /obj/item/stack/cable_coil(loc, 3) - qdel(src) - -/obj/machinery/firealarm/proc/update_fire_light(fire) - if(fire == !!light_power) - return // do nothing if we're already active - if(fire) - set_light(l_power = 0.8) - else - set_light(l_power = 0) - -/* - * Return of Party button - */ - -/area - var/party = FALSE - -/obj/machinery/firealarm/partyalarm - name = "\improper PARTY BUTTON" - desc = "Cuban Pete is in the house!" - var/static/party_overlay - -/obj/machinery/firealarm/partyalarm/reset() - if (stat & (NOPOWER|BROKEN)) - return - var/area/A = get_area(src) - if (!A || !A.party) - return - A.party = FALSE - A.cut_overlay(party_overlay) - -/obj/machinery/firealarm/partyalarm/alarm() - if (stat & (NOPOWER|BROKEN)) - return - var/area/A = get_area(src) - if (!A || A.party || A.name == "Space") - return - A.party = TRUE - if (!party_overlay) - party_overlay = iconstate2appearance('icons/turf/areas.dmi', "party") - A.add_overlay(party_overlay) +#define FIREALARM_COOLDOWN 67 // Chosen fairly arbitrarily, it is the length of the audio in FireAlarm.ogg. The actual track length is 7 seconds 8ms but but the audio stops at 6s 700ms + +/obj/item/electronics/firealarm + name = "fire alarm electronics" + desc = "A fire alarm circuit. Can handle heat levels up to 40 degrees celsius." + +/obj/item/wallframe/firealarm + name = "fire alarm frame" + desc = "Used for building fire alarms." + icon = 'icons/obj/monitors.dmi' + icon_state = "fire_bitem" + result_path = /obj/machinery/firealarm + +/obj/machinery/firealarm + name = "fire alarm" + desc = "\"Pull this in case of emergency\". Thus, keep pulling it forever." + icon = 'icons/obj/monitors.dmi' + icon_state = "fire0" + max_integrity = 250 + integrity_failure = 100 + armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 100, "rad" = 100, "fire" = 90, "acid" = 30) + use_power = IDLE_POWER_USE + idle_power_usage = 2 + active_power_usage = 6 + power_channel = ENVIRON + resistance_flags = FIRE_PROOF + + light_power = 0 + light_range = 7 + light_color = "#ff3232" + + var/detecting = 1 + var/buildstage = 2 // 2 = complete, 1 = no wires, 0 = circuit gone + var/last_alarm = 0 + var/area/myarea = null + +/obj/machinery/firealarm/Initialize(mapload, dir, building) + . = ..() + if(dir) + src.setDir(dir) + if(building) + buildstage = 0 + panel_open = TRUE + pixel_x = (dir & 3)? 0 : (dir == 4 ? -24 : 24) + pixel_y = (dir & 3)? (dir ==1 ? -24 : 24) : 0 + update_icon() + myarea = get_area(src) + LAZYADD(myarea.firealarms, src) + +/obj/machinery/firealarm/Destroy() + LAZYREMOVE(myarea.firealarms, src) + return ..() + +/obj/machinery/firealarm/power_change() + ..() + update_icon() + +/obj/machinery/firealarm/update_icon() + cut_overlays() + SSvis_overlays.remove_vis_overlay(src, managed_vis_overlays) + + if(panel_open) + icon_state = "fire_b[buildstage]" + return + + if(stat & BROKEN) + icon_state = "firex" + return + + icon_state = "fire0" + + if(stat & NOPOWER) + return + + add_overlay("fire_overlay") + + if(is_station_level(z)) + add_overlay("fire_[GLOB.security_level]") + SSvis_overlays.add_vis_overlay(src, icon, "fire_[GLOB.security_level]", ABOVE_LIGHTING_LAYER, ABOVE_LIGHTING_PLANE, dir) + else + add_overlay("fire_[SEC_LEVEL_GREEN]") + SSvis_overlays.add_vis_overlay(src, icon, "fire_[SEC_LEVEL_GREEN]", ABOVE_LIGHTING_LAYER, ABOVE_LIGHTING_PLANE, dir) + + var/area/A = src.loc + A = A.loc + + if(!detecting || !A.fire) + add_overlay("fire_off") + SSvis_overlays.add_vis_overlay(src, icon, "fire_off", ABOVE_LIGHTING_LAYER, ABOVE_LIGHTING_PLANE, dir) + else if(obj_flags & EMAGGED) + add_overlay("fire_emagged") + SSvis_overlays.add_vis_overlay(src, icon, "fire_emagged", ABOVE_LIGHTING_LAYER, ABOVE_LIGHTING_PLANE, dir) + else + add_overlay("fire_on") + SSvis_overlays.add_vis_overlay(src, icon, "fire_on", ABOVE_LIGHTING_LAYER, ABOVE_LIGHTING_PLANE, dir) + +/obj/machinery/firealarm/emp_act(severity) + . = ..() + + if (. & EMP_PROTECT_SELF) + return + + if(prob(50 / severity)) + alarm() + +/obj/machinery/firealarm/emag_act(mob/user) + . = ..() + if(obj_flags & EMAGGED) + return + obj_flags |= EMAGGED + update_icon() + if(user) + user.visible_message("Sparks fly out of [src]!", + "You emag [src], disabling its thermal sensors.") + playsound(src, "sparks", 50, 1) + return TRUE + +/obj/machinery/firealarm/temperature_expose(datum/gas_mixture/air, temperature, volume) + if((temperature > T0C + 200 || temperature < BODYTEMP_COLD_DAMAGE_LIMIT) && (last_alarm+FIREALARM_COOLDOWN < world.time) && !(obj_flags & EMAGGED) && detecting && !stat) + alarm() + ..() + +/obj/machinery/firealarm/proc/alarm(mob/user) + if(!is_operational() || (last_alarm+FIREALARM_COOLDOWN > world.time)) + return + last_alarm = world.time + var/area/A = get_area(src) + A.firealert(src) + playsound(loc, 'goon/sound/machinery/FireAlarm.ogg', 75) + if(user) + log_game("[user] triggered a fire alarm at [COORD(src)]") + +/obj/machinery/firealarm/proc/reset(mob/user) + if(!is_operational()) + return + var/area/A = get_area(src) + A.firereset(src) + if(user) + log_game("[user] reset a fire alarm at [COORD(src)]") + +/obj/machinery/firealarm/attack_hand(mob/user) + if(buildstage != 2) + return ..() + add_fingerprint(user) + var/area/A = get_area(src) + if(A.fire) + reset(user) + else + alarm(user) + +/obj/machinery/firealarm/attack_ai(mob/user) + return attack_hand(user) + +/obj/machinery/firealarm/attack_robot(mob/user) + return attack_hand(user) + +/obj/machinery/firealarm/attackby(obj/item/W, mob/user, params) + add_fingerprint(user) + + if(istype(W, /obj/item/screwdriver) && buildstage == 2) + W.play_tool_sound(src) + panel_open = !panel_open + to_chat(user, "The wires have been [panel_open ? "exposed" : "unexposed"].") + update_icon() + return + + if(panel_open) + + if(istype(W, /obj/item/weldingtool) && user.a_intent == INTENT_HELP) + if(obj_integrity < max_integrity) + if(!W.tool_start_check(user, amount=0)) + return + + to_chat(user, "You begin repairing [src]...") + if(W.use_tool(src, user, 40, volume=50)) + obj_integrity = max_integrity + to_chat(user, "You repair [src].") + else + to_chat(user, "[src] is already in good condition!") + return + + switch(buildstage) + if(2) + if(istype(W, /obj/item/multitool)) + detecting = !detecting + if (src.detecting) + user.visible_message("[user] has reconnected [src]'s detecting unit!", "You reconnect [src]'s detecting unit.") + else + user.visible_message("[user] has disconnected [src]'s detecting unit!", "You disconnect [src]'s detecting unit.") + return + + else if (istype(W, /obj/item/wirecutters)) + buildstage = 1 + W.play_tool_sound(src) + new /obj/item/stack/cable_coil(user.loc, 5) + to_chat(user, "You cut the wires from \the [src].") + update_icon() + return + else if(W.force) //hit and turn it on + ..() + var/area/A = get_area(src) + if(!A.fire) + alarm() + return + if(1) + if(istype(W, /obj/item/stack/cable_coil)) + var/obj/item/stack/cable_coil/coil = W + if(coil.get_amount() < 5) + to_chat(user, "You need more cable for this!") + else + coil.use(5) + buildstage = 2 + to_chat(user, "You wire \the [src].") + update_icon() + return + + else if(istype(W, /obj/item/crowbar)) + user.visible_message("[user.name] removes the electronics from [src.name].", \ + "You start prying out the circuit...") + if(W.use_tool(src, user, 20, volume=50)) + if(buildstage == 1) + if(stat & BROKEN) + to_chat(user, "You remove the destroyed circuit.") + stat &= ~BROKEN + else + to_chat(user, "You pry out the circuit.") + new /obj/item/electronics/firealarm(user.loc) + buildstage = 0 + update_icon() + return + if(0) + if(istype(W, /obj/item/electronics/firealarm)) + to_chat(user, "You insert the circuit.") + qdel(W) + buildstage = 1 + update_icon() + return + + else if(istype(W, /obj/item/electroadaptive_pseudocircuit)) + var/obj/item/electroadaptive_pseudocircuit/P = W + if(!P.adapt_circuit(user, 15)) + return + user.visible_message("[user] fabricates a circuit and places it into [src].", \ + "You adapt a fire alarm circuit and slot it into the assembly.") + buildstage = 1 + update_icon() + return + + else if(istype(W, /obj/item/wrench)) + user.visible_message("[user] removes the fire alarm assembly from the wall.", \ + "You remove the fire alarm assembly from the wall.") + var/obj/item/wallframe/firealarm/frame = new /obj/item/wallframe/firealarm() + frame.forceMove(user.drop_location()) + W.play_tool_sound(src) + qdel(src) + return + return ..() + +/obj/machinery/firealarm/rcd_vals(mob/user, obj/item/construction/rcd/the_rcd) + if((buildstage == 0) && (the_rcd.upgrade & RCD_UPGRADE_SIMPLE_CIRCUITS)) + return list("mode" = RCD_UPGRADE_SIMPLE_CIRCUITS, "delay" = 20, "cost" = 1) + return FALSE + +/obj/machinery/firealarm/rcd_act(mob/user, obj/item/construction/rcd/the_rcd, passed_mode) + switch(passed_mode) + if(RCD_UPGRADE_SIMPLE_CIRCUITS) + user.visible_message("[user] fabricates a circuit and places it into [src].", \ + "You adapt a fire alarm circuit and slot it into the assembly.") + buildstage = 1 + update_icon() + return TRUE + return FALSE + +/obj/machinery/firealarm/take_damage(damage_amount, damage_type = BRUTE, damage_flag = 0, sound_effect = 1, attack_dir) + . = ..() + if(.) //damage received + if(obj_integrity > 0 && !(stat & BROKEN) && buildstage != 0) + if(prob(33)) + alarm() + +/obj/machinery/firealarm/singularity_pull(S, current_size) + if (current_size >= STAGE_FIVE) // If the singulo is strong enough to pull anchored objects, the fire alarm experiences integrity failure + deconstruct() + ..() + +/obj/machinery/firealarm/obj_break(damage_flag) + if(!(stat & BROKEN) && !(flags_1 & NODECONSTRUCT_1) && buildstage != 0) //can't break the electronics if there isn't any inside. + LAZYREMOVE(myarea.firealarms, src) + stat |= BROKEN + update_icon() + +/obj/machinery/firealarm/deconstruct(disassembled = TRUE) + if(!(flags_1 & NODECONSTRUCT_1)) + new /obj/item/stack/sheet/metal(loc, 1) + if(!(stat & BROKEN)) + var/obj/item/I = new /obj/item/electronics/firealarm(loc) + if(!disassembled) + I.obj_integrity = I.max_integrity * 0.5 + new /obj/item/stack/cable_coil(loc, 3) + qdel(src) + +/obj/machinery/firealarm/proc/update_fire_light(fire) + if(fire == !!light_power) + return // do nothing if we're already active + if(fire) + set_light(l_power = 0.8) + else + set_light(l_power = 0) + +/* + * Return of Party button + */ + +/area + var/party = FALSE + +/obj/machinery/firealarm/partyalarm + name = "\improper PARTY BUTTON" + desc = "Cuban Pete is in the house!" + var/static/party_overlay + +/obj/machinery/firealarm/partyalarm/reset() + if (stat & (NOPOWER|BROKEN)) + return + var/area/A = get_area(src) + if (!A || !A.party) + return + A.party = FALSE + A.cut_overlay(party_overlay) + +/obj/machinery/firealarm/partyalarm/alarm() + if (stat & (NOPOWER|BROKEN)) + return + var/area/A = get_area(src) + if (!A || A.party || A.name == "Space") + return + A.party = TRUE + if (!party_overlay) + party_overlay = iconstate2appearance('icons/turf/areas.dmi', "party") + A.add_overlay(party_overlay) diff --git a/code/game/machinery/limbgrower.dm b/code/game/machinery/limbgrower.dm index 794509801b..bf9400219b 100644 --- a/code/game/machinery/limbgrower.dm +++ b/code/game/machinery/limbgrower.dm @@ -89,7 +89,7 @@ selected_category = href_list["category"] if(href_list["disposeI"]) //Get rid of a reagent incase you add the wrong one by mistake - reagents.del_reagent(href_list["disposeI"]) + reagents.del_reagent(text2path(href_list["disposeI"])) if(href_list["make"]) @@ -100,10 +100,10 @@ return - var/synth_cost = being_built.reagents_list["synthflesh"]*prod_coeff + var/synth_cost = being_built.reagents_list[/datum/reagent/medicine/synthflesh]*prod_coeff var/power = max(2000, synth_cost/5) - if(reagents.has_reagent("synthflesh", being_built.reagents_list["synthflesh"]*prod_coeff)) + if(reagents.has_reagent(/datum/reagent/medicine/synthflesh, being_built.reagents_list[/datum/reagent/medicine/synthflesh]*prod_coeff)) busy = TRUE use_power(power) flick("limbgrower_fill",src) @@ -117,8 +117,8 @@ return /obj/machinery/limbgrower/proc/build_item() - if(reagents.has_reagent("synthflesh", being_built.reagents_list["synthflesh"]*prod_coeff)) //sanity check, if this happens we are in big trouble - reagents.remove_reagent("synthflesh",being_built.reagents_list["synthflesh"]*prod_coeff) + if(reagents.has_reagent(/datum/reagent/medicine/synthflesh, being_built.reagents_list[/datum/reagent/medicine/synthflesh]*prod_coeff)) //sanity check, if this happens we are in big trouble + reagents.remove_reagent(/datum/reagent/medicine/synthflesh, being_built.reagents_list[/datum/reagent/medicine/synthflesh]*prod_coeff) var/buildpath = being_built.build_path if(ispath(buildpath, /obj/item/bodypart)) //This feels like spatgheti code, but i need to initilise a limb somehow build_limb(buildpath) @@ -198,7 +198,7 @@ for(var/datum/reagent/R in reagents.reagent_list) dat += "[R.name]: [R.volume]" - dat += "Purge
" + dat += "Purge
" dat += "" return dat @@ -208,12 +208,12 @@ return dat /obj/machinery/limbgrower/proc/can_build(datum/design/D) - return (reagents.has_reagent("synthflesh", D.reagents_list["synthflesh"]*prod_coeff)) //Return whether the machine has enough synthflesh to produce the design + return (reagents.has_reagent(/datum/reagent/medicine/synthflesh, D.reagents_list[/datum/reagent/medicine/synthflesh]*prod_coeff)) //Return whether the machine has enough synthflesh to produce the design /obj/machinery/limbgrower/proc/get_design_cost(datum/design/D) var/dat if(D.reagents_list["synthflesh"]) - dat += "[D.reagents_list["synthflesh"] * prod_coeff] Synthetic flesh " + dat += "[D.reagents_list[/datum/reagent/medicine/synthflesh] * prod_coeff] Synthetic flesh " return dat /obj/machinery/limbgrower/emag_act(mob/user) diff --git a/modular_citadel/code/game/machinery/toylathe.dm b/code/game/machinery/toylathe.dm similarity index 100% rename from modular_citadel/code/game/machinery/toylathe.dm rename to code/game/machinery/toylathe.dm diff --git a/code/game/mecha/equipment/tools/medical_tools.dm b/code/game/mecha/equipment/tools/medical_tools.dm index ae3fdb15b4..4d6c94ac88 100644 --- a/code/game/mecha/equipment/tools/medical_tools.dm +++ b/code/game/mecha/equipment/tools/medical_tools.dm @@ -191,11 +191,11 @@ if(!R || !patient || !SG || !(SG in chassis.equipment)) return 0 var/to_inject = min(R.volume, inject_amount) - if(to_inject && patient.reagents.get_reagent_amount(R.id) + to_inject <= inject_amount*2) + if(to_inject && patient.reagents.get_reagent_amount(R.type) + to_inject <= inject_amount*2) occupant_message("Injecting [patient] with [to_inject] units of [R.name].") log_message("Injecting [patient] with [to_inject] units of [R.name].") log_combat(chassis.occupant, patient, "injected", "[name] ([R] - [to_inject] units)") - SG.reagents.trans_id_to(patient,R.id,to_inject) + SG.reagents.trans_id_to(patient,R.type,to_inject) update_equip_info() return @@ -228,8 +228,8 @@ M.AdjustStun(-80) M.AdjustKnockdown(-80) M.AdjustUnconscious(-80) - if(M.reagents.get_reagent_amount("epinephrine") < 5) - M.reagents.add_reagent("epinephrine", 5) + if(M.reagents.get_reagent_amount(/datum/reagent/medicine/epinephrine) < 5) + M.reagents.add_reagent(/datum/reagent/medicine/epinephrine, 5) chassis.use_power(energy_drain) update_equip_info() @@ -259,7 +259,7 @@ . = ..() create_reagents(max_volume, NO_REACT) syringes = new - known_reagents = list("epinephrine"="Epinephrine","charcoal"="Charcoal") + known_reagents = list(/datum/reagent/medicine/epinephrine = "Epinephrine", /datum/reagent/medicine/charcoal = "Charcoal") processed_reagents = new /obj/item/mecha_parts/mecha_equipment/medical/syringe_gun/detach() @@ -330,8 +330,7 @@ if(M.can_inject(null, 1)) if(mechsyringe.reagents) for(var/datum/reagent/A in mechsyringe.reagents.reagent_list) - R += A.id + " (" - R += num2text(A.volume) + ")," + R += "[A.name] ([num2text(A.volume)]" mechsyringe.icon_state = initial(mechsyringe.icon_state) mechsyringe.icon = initial(mechsyringe.icon) mechsyringe.reagents.reaction(M, INJECT) @@ -445,7 +444,7 @@ var/output for(var/datum/reagent/R in reagents.reagent_list) if(R.volume > 0) - output += "[R]: [round(R.volume,0.001)] - Purge Reagent
" + output += "[R]: [round(R.volume,0.001)] - Purge Reagent
" if(output) output += "Total: [round(reagents.total_volume,0.001)]/[reagents.maximum_volume] - Purge All" return output || "None" @@ -481,7 +480,7 @@ return 0 occupant_message("Analyzing reagents...") for(var/datum/reagent/R in A.reagents.reagent_list) - if(R.can_synth && add_known_reagent(R.id,R.name)) + if(R.can_synth && add_known_reagent(R.type,R.name)) occupant_message("Reagent analyzed, identified as [R.name] and added to database.") send_byjax(chassis.occupant,"msyringegun.browser","reagents_form",get_reagents_form()) occupant_message("Analyzis complete.") diff --git a/code/game/mecha/equipment/tools/work_tools.dm b/code/game/mecha/equipment/tools/work_tools.dm index ca8e8cecd9..30576a739d 100644 --- a/code/game/mecha/equipment/tools/work_tools.dm +++ b/code/game/mecha/equipment/tools/work_tools.dm @@ -171,7 +171,7 @@ /obj/item/mecha_parts/mecha_equipment/extinguisher/Initialize() . = ..() create_reagents(1000) - reagents.add_reagent("water", 1000) + reagents.add_reagent(/datum/reagent/water, 1000) /obj/item/mecha_parts/mecha_equipment/extinguisher/action(atom/target) //copypasted from extinguisher. TODO: Rewrite from scratch. if(!action_checks(target) || get_dist(chassis, target)>3) diff --git a/code/game/mecha/mecha_defense.dm b/code/game/mecha/mecha_defense.dm index 62a62b569d..dd335e8b37 100644 --- a/code/game/mecha/mecha_defense.dm +++ b/code/game/mecha/mecha_defense.dm @@ -286,10 +286,10 @@ /obj/mecha/proc/mech_toxin_damage(mob/living/target) playsound(src, 'sound/effects/spray2.ogg', 50, 1) if(target.reagents) - if(target.reagents.get_reagent_amount("cryptobiolin") + force < force*2) - target.reagents.add_reagent("cryptobiolin", force/2) - if(target.reagents.get_reagent_amount("toxin") + force < force*2) - target.reagents.add_reagent("toxin", force/2.5) + if(target.reagents.get_reagent_amount(/datum/reagent/cryptobiolin) + force < force*2) + target.reagents.add_reagent(/datum/reagent/cryptobiolin, force/2) + if(target.reagents.get_reagent_amount(/datum/reagent/toxin) + force < force*2) + target.reagents.add_reagent(/datum/reagent/toxin, force/2.5) /obj/mecha/mech_melee_attack(obj/mecha/M) diff --git a/code/game/objects/effects/decals/cleanable/aliens.dm b/code/game/objects/effects/decals/cleanable/aliens.dm index a4d0da1bbe..0c52f57ae9 100644 --- a/code/game/objects/effects/decals/cleanable/aliens.dm +++ b/code/game/objects/effects/decals/cleanable/aliens.dm @@ -9,7 +9,7 @@ /obj/effect/decal/cleanable/blood/gibs/xeno color = BLOOD_COLOR_XENO - gibs_reagent_id = "liquidxenogibs" + gibs_reagent_id = /datum/reagent/liquidgibs/xeno gibs_bloodtype = "X*" /obj/effect/decal/cleanable/blood/gibs/xeno/Initialize(mapload, list/datum/disease/diseases) diff --git a/code/game/objects/effects/decals/cleanable/gibs.dm b/code/game/objects/effects/decals/cleanable/gibs.dm index 03eeca7d0b..9680dc2034 100644 --- a/code/game/objects/effects/decals/cleanable/gibs.dm +++ b/code/game/objects/effects/decals/cleanable/gibs.dm @@ -6,7 +6,7 @@ random_icon_states = list("gib1", "gib2", "gib3", "gib4", "gib5", "gib6") mergeable_decal = FALSE var/body_colors = "#e3ba84" //a default color just in case. - var/gibs_reagent_id = "liquidgibs" + var/gibs_reagent_id = /datum/reagent/liquidgibs var/gibs_bloodtype = "A+" /obj/effect/decal/cleanable/blood/gibs/Initialize(mapload, list/datum/disease/diseases) @@ -120,7 +120,6 @@ //Lizards /obj/effect/decal/cleanable/blood/gibs/human/lizard body_colors = "117720" - gibs_reagent_id = "liquidgibs" gibs_bloodtype = "L" /obj/effect/decal/cleanable/blood/gibs/human/lizard/Initialize(mapload, list/datum/disease/diseases) @@ -148,7 +147,7 @@ // Slime Gibs /obj/effect/decal/cleanable/blood/gibs/slime desc = "They look gooey and gruesome." - gibs_reagent_id = "liquidslimegibs" + gibs_reagent_id = /datum/reagent/liquidgibs/slime gibs_bloodtype = "GEL" /obj/effect/decal/cleanable/blood/gibs/slime/Initialize(mapload, list/datum/disease/diseases) @@ -187,7 +186,7 @@ /obj/effect/decal/cleanable/blood/gibs/synth desc = "They look sludgy and disgusting." - gibs_reagent_id = "liquidsyntheticgibs" + gibs_reagent_id = /datum/reagent/liquidgibs/synth gibs_bloodtype = "SY" /obj/effect/decal/cleanable/blood/gibs/synth/Initialize(mapload, list/datum/disease/diseases) @@ -198,7 +197,7 @@ /obj/effect/decal/cleanable/blood/gibs/ipc desc = "They look sharp yet oozing." body_colors = "00ff00" - gibs_reagent_id = "liquidoilgibs" + gibs_reagent_id = /datum/reagent/liquidgibs/oil gibs_bloodtype = "HF" /obj/effect/decal/cleanable/blood/gibs/ipc/Initialize(mapload, list/datum/disease/diseases) diff --git a/code/game/objects/effects/decals/cleanable/misc.dm b/code/game/objects/effects/decals/cleanable/misc.dm index 6f92e94759..6466ab594f 100644 --- a/code/game/objects/effects/decals/cleanable/misc.dm +++ b/code/game/objects/effects/decals/cleanable/misc.dm @@ -13,7 +13,7 @@ /obj/effect/decal/cleanable/ash/Initialize() . = ..() - reagents.add_reagent("ash", 30) + reagents.add_reagent(/datum/reagent/ash, 30) pixel_x = rand(-5, 5) pixel_y = rand(-5, 5) @@ -27,7 +27,7 @@ /obj/effect/decal/cleanable/ash/large/Initialize() . = ..() - reagents.add_reagent("ash", 30) //double the amount of ash. + reagents.add_reagent(/datum/reagent/ash, 30) //double the amount of ash. /obj/effect/decal/cleanable/glass name = "tiny shards" @@ -131,12 +131,10 @@ playsound(get_turf(src), 'sound/items/drink.ogg', 50, 1) //slurp H.visible_message("[H] extends a small proboscis into the vomit pool, sucking it with a slurping sound.") if(reagents) - for(var/datum/reagent/R in reagents.reagent_list) - if (istype(R, /datum/reagent/consumable)) - var/datum/reagent/consumable/nutri_check = R - if(nutri_check.nutriment_factor >0) - H.nutrition += nutri_check.nutriment_factor * nutri_check.volume - reagents.remove_reagent(nutri_check.id,nutri_check.volume) + for(var/datum/reagent/consumable/R in reagents.reagent_list) + if(R.nutriment_factor > 0) + H.nutrition += R.nutriment_factor * R.volume + reagents.del_reagent(R.type) reagents.trans_to(H, reagents.total_volume) qdel(src) diff --git a/code/game/objects/effects/decals/cleanable/robots.dm b/code/game/objects/effects/decals/cleanable/robots.dm index 02bf51bdd9..3e94abbf93 100644 --- a/code/game/objects/effects/decals/cleanable/robots.dm +++ b/code/game/objects/effects/decals/cleanable/robots.dm @@ -13,7 +13,7 @@ /obj/effect/decal/cleanable/robot_debris/Initialize(mapload, list/datum/disease/diseases) . = ..() - reagents.add_reagent("liquidoilgibs", 5) + reagents.add_reagent(/datum/reagent/liquidgibs, 5) /obj/effect/decal/cleanable/robot_debris/proc/streak(list/directions) set waitfor = 0 @@ -53,8 +53,8 @@ /obj/effect/decal/cleanable/oil/Initialize() . = ..() - reagents.add_reagent("oil", 30) - reagents.add_reagent("liquidoilgibs", 5) + reagents.add_reagent(/datum/reagent/oil, 30) + reagents.add_reagent(/datum/reagent/liquidgibs/oil, 5) /obj/effect/decal/cleanable/oil/streak random_icon_states = list("streak1", "streak2", "streak3", "streak4", "streak5") diff --git a/code/game/objects/effects/effect_system/effects_foam.dm b/code/game/objects/effects/effect_system/effects_foam.dm index b6deaa1d06..da9c210234 100644 --- a/code/game/objects/effects/effect_system/effects_foam.dm +++ b/code/game/objects/effects/effect_system/effects_foam.dm @@ -55,7 +55,7 @@ var/obj/effect/decal/cleanable/plasma/P = (locate(/obj/effect/decal/cleanable/plasma) in get_turf(src)) if(!P) P = new(loc) - P.reagents.add_reagent("stable_plasma", absorbed_plasma) + P.reagents.add_reagent(/datum/reagent/stable_plasma, absorbed_plasma) flick("[icon_state]-disolve", src) QDEL_IN(src, 5) diff --git a/code/game/objects/effects/effect_system/effects_other.dm b/code/game/objects/effects/effect_system/effects_other.dm index 18c1ff5890..dbc9b35275 100644 --- a/code/game/objects/effects/effect_system/effects_other.dm +++ b/code/game/objects/effects/effect_system/effects_other.dm @@ -104,15 +104,4 @@ if(explosion_message) location.visible_message("The solution violently explodes!", \ "You hear an explosion!") - if (amount < 1) - var/datum/effect_system/spark_spread/s = new /datum/effect_system/spark_spread - s.set_up(2, 1, location) - s.start() - - for(var/mob/living/L in viewers(1, location)) - if(prob(50 * amount)) - to_chat(L, "The explosion knocks you down.") - L.Knockdown(rand(20,100)) - return - else - dyn_explosion(location, amount, flashing_factor) \ No newline at end of file + dyn_explosion(location, amount, flashing_factor) \ No newline at end of file diff --git a/code/game/objects/effects/mines.dm b/code/game/objects/effects/mines.dm index 08f698e018..91133234d6 100644 --- a/code/game/objects/effects/mines.dm +++ b/code/game/objects/effects/mines.dm @@ -136,7 +136,7 @@ victim.put_in_hands(chainsaw, forced = TRUE) chainsaw.attack_self(victim) chainsaw.wield(victim) - victim.reagents.add_reagent("adminordrazine",25) + victim.reagents.add_reagent(/datum/reagent/medicine/adminordrazine,25) to_chat(victim, "KILL, KILL, KILL! YOU HAVE NO ALLIES ANYMORE, KILL THEM ALL!") victim.client.color = pure_red diff --git a/code/game/objects/effects/temporary_visuals/miscellaneous.dm b/code/game/objects/effects/temporary_visuals/miscellaneous.dm index 1b85a41f7c..cdf6b77a76 100644 --- a/code/game/objects/effects/temporary_visuals/miscellaneous.dm +++ b/code/game/objects/effects/temporary_visuals/miscellaneous.dm @@ -452,4 +452,45 @@ icon_state = "slugboom" randomdir = FALSE duration = 30 - pixel_x = -24 \ No newline at end of file + pixel_x = -24 + +/obj/effect/constructing_effect + icon = 'icons/effects/effects_rcd.dmi' + icon_state = "" + layer = ABOVE_ALL_MOB_LAYER + anchored = TRUE + var/status = 0 + var/delay = 0 + mouse_opacity = MOUSE_OPACITY_TRANSPARENT + +/obj/effect/constructing_effect/Initialize(mapload, rcd_delay, rcd_status) + . = ..() + status = rcd_status + delay = rcd_delay + if (status == RCD_DECONSTRUCT) + addtimer(CALLBACK(src, /atom/.proc/update_icon), 11) + delay -= 11 + icon_state = "rcd_end_reverse" + else + update_icon() + +/obj/effect/constructing_effect/update_icon() + icon_state = "rcd" + if (delay < 10) + icon_state += "_shortest" + else if (delay < 20) + icon_state += "_shorter" + else if (delay < 37) + icon_state += "_short" + if (status == RCD_DECONSTRUCT) + icon_state += "_reverse" + +/obj/effect/constructing_effect/proc/end_animation() + if (status == RCD_DECONSTRUCT) + qdel(src) + else + icon_state = "rcd_end" + addtimer(CALLBACK(src, .proc/end), 15) + +/obj/effect/constructing_effect/proc/end() + qdel(src) \ No newline at end of file diff --git a/code/game/objects/items.dm b/code/game/objects/items.dm index a410827347..b50acb33af 100644 --- a/code/game/objects/items.dm +++ b/code/game/objects/items.dm @@ -52,7 +52,7 @@ GLOBAL_VAR_INIT(rpg_loot_items, FALSE) var/interaction_flags_item = INTERACT_ITEM_ATTACK_HAND_PICKUP //Citadel Edit for digitigrade stuff - var/mutantrace_variation = NO_MUTANTRACE_VARIATION //Are there special sprites for specific situations? Don't use this unless you need to. + var/mutantrace_variation = NONE //Are there special sprites for specific situations? Don't use this unless you need to. var/item_color = null //this needs deprecating, soonish diff --git a/code/game/objects/items/RCD.dm b/code/game/objects/items/RCD.dm index 24c241aabc..e151450d8a 100644 --- a/code/game/objects/items/RCD.dm +++ b/code/game/objects/items/RCD.dm @@ -47,7 +47,11 @@ RLD /obj/item/construction/examine(mob/user) . = ..() - . += "\A [src]. It currently holds [matter]/[max_matter] matter-units." + . += "It currently holds [matter]/[max_matter] matter-units." + if(upgrade & RCD_UPGRADE_FRAMES) + . += "It contains the design for machine frames, computer frames and deconstruction." + if(upgrade & RCD_UPGRADE_SIMPLE_CIRCUITS) + . += "It contains the design for firelock, air alarm, fire alarm, apc circuits and crap power cells." /obj/item/construction/Destroy() QDEL_NULL(spark_system) @@ -85,9 +89,11 @@ RLD to_chat(user, "[src] now holds [matter]/[max_matter] matter-units.") else if(istype(W, /obj/item/rcd_upgrade)) to_chat(user, "You upgrade the RCD with the [W]!") - upgrade = TRUE - playsound(src.loc, 'sound/machines/click.ogg', 50, 1) - qdel(W) + var/obj/item/rcd_upgrade/rcd_up = W + if(!(upgrade & rcd_up.upgrade)) + upgrade |= rcd_up.upgrade + playsound(src.loc, 'sound/machines/click.ogg', 50, 1) + qdel(W) else return ..() update_icon() //ensures that ammo counters (if present) get updated @@ -116,10 +122,10 @@ RLD if(matter < amount) if(user) to_chat(user, no_ammo_message) - return 0 + return FALSE matter -= amount update_icon() - return 1 + return TRUE /obj/item/construction/proc/checkResource(amount, mob/user) . = matter >= amount @@ -439,18 +445,22 @@ RLD var/list/rcd_results = A.rcd_vals(user, src) if(!rcd_results) return FALSE + var/delay = rcd_results["delay"] * delay_mod + var/obj/effect/constructing_effect/rcd_effect = new(get_turf(A), delay, src.mode) var/turf/the_turf = get_turf(A) var/turf_coords = "[COORD(the_turf)]" investigate_log("[user] is attempting to use [src] on [A] (loc [turf_coords] at [the_turf]) with cost [rcd_results["cost"]], delay [rcd_results["delay"]], mode [rcd_results["mode"]].", INVESTIGATE_RCD) - if(do_after(user, rcd_results["delay"] * delay_mod, target = A)) + if(do_after(user, delay, target = A)) if(checkResource(rcd_results["cost"], user)) var/atom/cached = A if(A.rcd_act(user, src, rcd_results["mode"])) + rcd_effect.end_animation() useResource(rcd_results["cost"], user) activate() investigate_log("[user] used [src] on [cached] (loc [turf_coords] at [the_turf]) with cost [rcd_results["cost"]], delay [rcd_results["delay"]], mode [rcd_results["mode"]].", INVESTIGATE_RCD) playsound(src, 'sound/machines/click.ogg', 50, 1) return TRUE + qdel(rcd_effect) /obj/item/construction/rcd/Initialize() . = ..() @@ -467,7 +477,7 @@ RLD "Grilles & Windows" = image(icon = 'icons/mob/radial.dmi', icon_state = "grillewindow"), "Floors & Walls" = image(icon = 'icons/mob/radial.dmi', icon_state = "wallfloor") ) - if(upgrade) + if(upgrade & RCD_UPGRADE_FRAMES) choices += list( "Deconstruct" = image(icon= 'icons/mob/radial.dmi', icon_state = "delete"), "Machine Frames" = image(icon = 'icons/mob/radial.dmi', icon_state = "machine"), @@ -593,6 +603,7 @@ RLD energyfactor = 66 /obj/item/construction/rcd/loaded + materials = list(MAT_METAL=48000, MAT_GLASS=32000) matter = 160 /obj/item/construction/rcd/loaded/upgraded @@ -825,9 +836,18 @@ RLD /obj/item/rcd_upgrade name = "RCD advanced design disk" - desc = "It contains the design for machine frames, computer frames, and deconstruction." + desc = "It seems to be empty." icon = 'icons/obj/module.dmi' icon_state = "datadisk3" + var/upgrade + +/obj/item/rcd_upgrade/frames + desc = "It contains the design for machine frames, computer frames and deconstruction." + upgrade = RCD_UPGRADE_FRAMES + +/obj/item/rcd_upgrade/simple_circuits + desc = "It contains the design for firelock, air alarm, fire alarm, apc circuits and crap power cells." + upgrade = RCD_UPGRADE_SIMPLE_CIRCUITS #undef GLOW_MODE #undef LIGHT_MODE diff --git a/code/game/objects/items/RSF.dm b/code/game/objects/items/RSF.dm index a68f2ecff6..ba0766de00 100644 --- a/code/game/objects/items/RSF.dm +++ b/code/game/objects/items/RSF.dm @@ -182,7 +182,7 @@ RSF to_chat(user, "Fabricating Cookie..") var/obj/item/reagent_containers/food/snacks/cookie/S = new /obj/item/reagent_containers/food/snacks/cookie(T) if(toxin) - S.reagents.add_reagent("chloralhydrate", 10) + S.reagents.add_reagent(/datum/reagent/toxin/chloralhydrate, 10) if (iscyborg(user)) var/mob/living/silicon/robot/R = user R.cell.charge -= 100 diff --git a/code/game/objects/items/airlock_painter.dm b/code/game/objects/items/airlock_painter.dm index d8a21de35a..083246396b 100644 --- a/code/game/objects/items/airlock_painter.dm +++ b/code/game/objects/items/airlock_painter.dm @@ -68,7 +68,7 @@ // make some colorful reagent, and apply it to the lungs L.create_reagents(10) - L.reagents.add_reagent("colorful_reagent", 10) + L.reagents.add_reagent(/datum/reagent/colorful_reagent, 10) L.reagents.reaction(L, TOUCH, 1) // TODO maybe add some colorful vomit? @@ -81,7 +81,7 @@ return (TOXLOSS|OXYLOSS) else if(can_use(user) && !L) user.visible_message("[user] is spraying toner on [user.p_them()]self from [src]! It looks like [user.p_theyre()] trying to commit suicide.") - user.reagents.add_reagent("colorful_reagent", 1) + user.reagents.add_reagent(/datum/reagent/colorful_reagent, 1) user.reagents.reaction(user, TOUCH, 1) return TOXLOSS diff --git a/code/game/objects/items/apc_frame.dm b/code/game/objects/items/apc_frame.dm index 25ae182253..c725148d9a 100644 --- a/code/game/objects/items/apc_frame.dm +++ b/code/game/objects/items/apc_frame.dm @@ -120,4 +120,4 @@ flags_1 = CONDUCT_1 w_class = WEIGHT_CLASS_SMALL materials = list(MAT_METAL=50, MAT_GLASS=50) - grind_results = list("iron" = 10, "silicon" = 10) + grind_results = list(/datum/reagent/iron = 10, /datum/reagent/silicon = 10) diff --git a/code/game/objects/items/cigs_lighters.dm b/code/game/objects/items/cigs_lighters.dm index 884f5c4400..3838f90f9b 100644 --- a/code/game/objects/items/cigs_lighters.dm +++ b/code/game/objects/items/cigs_lighters.dm @@ -25,7 +25,7 @@ CIGARETTE PACKETS ARE IN FANCY.DM var/smoketime = 5 w_class = WEIGHT_CLASS_TINY heat = 1000 - grind_results = list("phosphorus" = 2) + grind_results = list(/datum/reagent/phosphorus = 2) /obj/item/match/process() smoketime-- @@ -113,7 +113,7 @@ CIGARETTE PACKETS ARE IN FANCY.DM var/lastHolder = null var/smoketime = 300 var/chem_volume = 30 - var/list/list_reagents = list("nicotine" = 15) + var/list/list_reagents = list(/datum/reagent/drug/nicotine = 15) heat = 1000 /obj/item/clothing/mask/cigarette/suicide_act(mob/user) @@ -169,15 +169,15 @@ CIGARETTE PACKETS ARE IN FANCY.DM hitsound = 'sound/items/welder.ogg' damtype = "fire" force = 4 - if(reagents.get_reagent_amount("plasma")) // the plasma explodes when exposed to fire + if(reagents.get_reagent_amount(/datum/reagent/toxin/plasma)) // the plasma explodes when exposed to fire var/datum/effect_system/reagents_explosion/e = new() - e.set_up(round(reagents.get_reagent_amount("plasma") / 2.5, 1), get_turf(src), 0, 0) + e.set_up(round(reagents.get_reagent_amount(/datum/reagent/toxin/plasma) / 2.5, 1), get_turf(src), 0, 0) e.start() qdel(src) return - if(reagents.get_reagent_amount("welding_fuel")) // the fuel explodes, too, but much less violently + if(reagents.get_reagent_amount(/datum/reagent/fuel)) // the fuel explodes, too, but much less violently var/datum/effect_system/reagents_explosion/e = new() - e.set_up(round(reagents.get_reagent_amount("welding_fuel") / 5, 1), get_turf(src), 0, 0) + e.set_up(round(reagents.get_reagent_amount(/datum/reagent/fuel) / 5, 1), get_turf(src), 0, 0) e.start() qdel(src) return @@ -268,29 +268,29 @@ CIGARETTE PACKETS ARE IN FANCY.DM /obj/item/clothing/mask/cigarette/uplift desc = "An Uplift Smooth brand cigarette." - list_reagents = list("nicotine" = 7.5, "menthol" = 7.5) + list_reagents = list(/datum/reagent/drug/nicotine = 7.5, /datum/reagent/consumable/menthol = 7.5) /obj/item/clothing/mask/cigarette/robust desc = "A Robust brand cigarette." /obj/item/clothing/mask/cigarette/robustgold desc = "A Robust Gold brand cigarette." - list_reagents = list("nicotine" = 15, "gold" = 1) + list_reagents = list(/datum/reagent/drug/nicotine = 15, /datum/reagent/gold = 1) /obj/item/clothing/mask/cigarette/carp desc = "A Carp Classic brand cigarette." /obj/item/clothing/mask/cigarette/syndicate desc = "An unknown brand cigarette." - list_reagents = list("nicotine" = 15, "omnizine" = 15) + list_reagents = list(/datum/reagent/drug/nicotine = 15, /datum/reagent/medicine/omnizine = 15) /obj/item/clothing/mask/cigarette/shadyjims desc = "A Shady Jim's Super Slims cigarette." - list_reagents = list("nicotine" = 15, "lipolicide" = 4, "ammonia" = 2, "plantbgone" = 1, "toxin" = 1.5) + list_reagents = list(/datum/reagent/drug/nicotine = 15, /datum/reagent/toxin/lipolicide = 4, /datum/reagent/ammonia = 2, /datum/reagent/toxin/plantbgone = 1, /datum/reagent/toxin = 1.5) /obj/item/clothing/mask/cigarette/xeno desc = "A Xeno Filtered brand cigarette." - list_reagents = list ("nicotine" = 20, "regen_jelly" = 15, "krokodil" = 4) + list_reagents = list (/datum/reagent/drug/nicotine = 20, /datum/reagent/medicine/regen_jelly = 15, /datum/reagent/drug/krokodil = 4) // Rollies. @@ -313,17 +313,17 @@ CIGARETTE PACKETS ARE IN FANCY.DM src.pixel_y = rand(-5, 5) /obj/item/clothing/mask/cigarette/rollie/nicotine - list_reagents = list("nicotine" = 15) + list_reagents = list(/datum/reagent/drug/nicotine = 15) /obj/item/clothing/mask/cigarette/rollie/trippy - list_reagents = list("nicotine" = 15, "mushroomhallucinogen" = 35) + list_reagents = list(/datum/reagent/drug/nicotine = 15, /datum/reagent/drug/mushroomhallucinogen = 35) starts_lit = TRUE /obj/item/clothing/mask/cigarette/rollie/cannabis - list_reagents = list("space_drugs" = 15, "lipolicide" = 35) + list_reagents = list(/datum/reagent/drug/space_drugs = 15, /datum/reagent/toxin/lipolicide = 35) /obj/item/clothing/mask/cigarette/rollie/mindbreaker - list_reagents = list("mindbreaker" = 35, "lipolicide" = 15) + list_reagents = list(/datum/reagent/toxin/mindbreaker = 35, /datum/reagent/toxin/lipolicide = 15) /obj/item/cigbutt/roach name = "roach" @@ -377,7 +377,7 @@ CIGARETTE PACKETS ARE IN FANCY.DM icon_state = "cigbutt" w_class = WEIGHT_CLASS_TINY throwforce = 0 - grind_results = list("carbon" = 2) + grind_results = list(/datum/reagent/carbon = 2) /obj/item/cigbutt/cigarbutt name = "cigar butt" @@ -506,7 +506,7 @@ CIGARETTE PACKETS ARE IN FANCY.DM heat = 1500 resistance_flags = FIRE_PROOF light_color = LIGHT_COLOR_FIRE - grind_results = list("iron" = 1, "welding_fuel" = 5, "oil" = 5) + grind_results = list(/datum/reagent/iron = 1, /datum/reagent/fuel = 5, /datum/reagent/oil = 5) /obj/item/lighter/Initialize() . = ..() @@ -665,7 +665,7 @@ CIGARETTE PACKETS ARE IN FANCY.DM heat = 3000 //Blue flame! light_color = LIGHT_COLOR_CYAN overlay_state = "slime" - grind_results = list("iron" = 1, "welding_fuel" = 5, "pyroxadone" = 5) + grind_results = list(/datum/reagent/iron = 1, /datum/reagent/fuel = 5, /datum/reagent/medicine/pyroxadone = 5) /////////// @@ -719,7 +719,7 @@ CIGARETTE PACKETS ARE IN FANCY.DM /obj/item/clothing/mask/vape/Initialize(mapload, param_color) . = ..() create_reagents(chem_volume, NO_REACT) // so it doesn't react until you light it - reagents.add_reagent("nicotine", 50) + reagents.add_reagent(/datum/reagent/drug/nicotine, 50) if(!icon_state) if(!param_color) param_color = pick("red","blue","black","white","green","purple","yellow","orange") @@ -810,14 +810,14 @@ CIGARETTE PACKETS ARE IN FANCY.DM reagents.reaction(C, INGEST, fraction) if(!reagents.trans_to(C, REAGENTS_METABOLISM)) reagents.remove_any(REAGENTS_METABOLISM) - if(reagents.get_reagent_amount("welding_fuel")) + if(reagents.get_reagent_amount(/datum/reagent/fuel)) //HOT STUFF C.fire_stacks = 2 C.IgniteMob() - if(reagents.get_reagent_amount("plasma")) // the plasma explodes when exposed to fire + if(reagents.get_reagent_amount(/datum/reagent/toxin/plasma)) // the plasma explodes when exposed to fire var/datum/effect_system/reagents_explosion/e = new() - e.set_up(round(reagents.get_reagent_amount("plasma") / 2.5, 1), get_turf(src), 0, 0) + e.set_up(round(reagents.get_reagent_amount(/datum/reagent/toxin/plasma) / 2.5, 1), get_turf(src), 0, 0) e.start() qdel(src) return diff --git a/code/game/objects/items/circuitboards/circuitboard.dm b/code/game/objects/items/circuitboards/circuitboard.dm index 8106733ac6..5f87f9ffd9 100644 --- a/code/game/objects/items/circuitboards/circuitboard.dm +++ b/code/game/objects/items/circuitboards/circuitboard.dm @@ -12,7 +12,7 @@ righthand_file = 'icons/mob/inhands/misc/devices_righthand.dmi' materials = list(MAT_GLASS=1000) w_class = WEIGHT_CLASS_SMALL - grind_results = list("silicon" = 20) + grind_results = list(/datum/reagent/silicon = 20) var/build_path = null /obj/item/circuitboard/proc/apply_default_parts(obj/machinery/M) diff --git a/code/game/objects/items/circuitboards/machine_circuitboards.dm b/code/game/objects/items/circuitboards/machine_circuitboards.dm index c1833ba44a..3e4a8743da 100644 --- a/code/game/objects/items/circuitboards/machine_circuitboards.dm +++ b/code/game/objects/items/circuitboards/machine_circuitboards.dm @@ -7,6 +7,10 @@ /obj/item/stack/cable_coil = 1, /obj/item/stack/sheet/glass = 2) +/obj/item/circuitboard/machine/sleeper/syndie + name = "Syndicate Sleeper (Machine Board)" + build_path = /obj/machinery/sleeper/syndie + /obj/item/circuitboard/machine/vr_sleeper name = "VR Sleeper (Machine Board)" build_path = /obj/machinery/vr_sleeper @@ -1000,3 +1004,16 @@ /obj/item/stock_parts/capacitor = 1, /obj/item/stack/cable_coil = 5, /obj/item/reagent_containers/glass/beaker = 6) //So it can hold lots of chems + +/obj/item/circuitboard/machine/kinkmate + name = "Kinkmate Vendor (Machine Board)" + build_path = /obj/machinery/vending/kink + req_components = list(/obj/item/vending_refill/kink = 1) + +/obj/item/circuitboard/machine/autoylathe + name = "Autoylathe (Machine Board)" + build_path = /obj/machinery/autoylathe + req_components = list( + /obj/item/stock_parts/matter_bin = 3, + /obj/item/stock_parts/manipulator = 1, + /obj/item/stack/sheet/glass = 1) diff --git a/code/game/objects/items/clown_items.dm b/code/game/objects/items/clown_items.dm index 0ff54d884f..26c992b0bc 100644 --- a/code/game/objects/items/clown_items.dm +++ b/code/game/objects/items/clown_items.dm @@ -23,7 +23,7 @@ throwforce = 0 throw_speed = 3 throw_range = 7 - grind_results = list("lye" = 10) + grind_results = list(/datum/reagent/lye = 10) var/cleanspeed = 50 //slower than mop force_string = "robust... against germs" @@ -180,4 +180,4 @@ name = "Canned Laughter" desc = "Just looking at this makes you want to giggle." icon_state = "laughter" - list_reagents = list("laughter" = 50) \ No newline at end of file + list_reagents = list(/datum/reagent/consumable/laughter = 50) \ No newline at end of file diff --git a/code/game/objects/items/crayons.dm b/code/game/objects/items/crayons.dm index 41ab418cf2..143354b496 100644 --- a/code/game/objects/items/crayons.dm +++ b/code/game/objects/items/crayons.dm @@ -59,7 +59,7 @@ var/edible = TRUE // That doesn't mean eating it is a good idea - var/list/reagent_contents = list("nutriment" = 1) + var/list/reagent_contents = list(/datum/reagent/consumable/nutriment = 1) // If the user can toggle the colour, a la vanilla spraycan var/can_change_colour = FALSE @@ -485,63 +485,63 @@ icon_state = "crayonred" paint_color = "#DA0000" item_color = "red" - reagent_contents = list("nutriment" = 1, "redcrayonpowder" = 1) + reagent_contents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/colorful_reagent/crayonpowder/red = 1) /obj/item/toy/crayon/orange icon_state = "crayonorange" paint_color = "#FF9300" item_color = "orange" - reagent_contents = list("nutriment" = 1, "orangecrayonpowder" = 1) + reagent_contents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/colorful_reagent/crayonpowder/orange = 1) /obj/item/toy/crayon/yellow icon_state = "crayonyellow" paint_color = "#FFF200" item_color = "yellow" - reagent_contents = list("nutriment" = 1, "yellowcrayonpowder" = 1) + reagent_contents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/colorful_reagent/crayonpowder/yellow = 1) /obj/item/toy/crayon/green icon_state = "crayongreen" paint_color = "#A8E61D" item_color = "green" - reagent_contents = list("nutriment" = 1, "greencrayonpowder" = 1) + reagent_contents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/colorful_reagent/crayonpowder/green = 1) /obj/item/toy/crayon/blue icon_state = "crayonblue" paint_color = "#00B7EF" item_color = "blue" - reagent_contents = list("nutriment" = 1, "bluecrayonpowder" = 1) + reagent_contents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/colorful_reagent/crayonpowder/blue = 1) /obj/item/toy/crayon/purple icon_state = "crayonpurple" paint_color = "#DA00FF" item_color = "purple" - reagent_contents = list("nutriment" = 1, "purplecrayonpowder" = 1) + reagent_contents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/colorful_reagent/crayonpowder/purple = 1) /obj/item/toy/crayon/black icon_state = "crayonblack" paint_color = "#1C1C1C" //Not completely black because total black looks bad. So Mostly Black. item_color = "black" - reagent_contents = list("nutriment" = 1, "blackcrayonpowder" = 1) + reagent_contents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/colorful_reagent/crayonpowder/black = 1) /obj/item/toy/crayon/white icon_state = "crayonwhite" paint_color = "#FFFFFF" item_color = "white" - reagent_contents = list("nutriment" = 1, "whitecrayonpowder" = 1) + reagent_contents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/colorful_reagent/crayonpowder/white = 1) /obj/item/toy/crayon/mime icon_state = "crayonmime" desc = "A very sad-looking crayon." paint_color = "#FFFFFF" item_color = "mime" - reagent_contents = list("nutriment" = 1, "invisiblecrayonpowder" = 1) + reagent_contents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/colorful_reagent/crayonpowder/invisible = 1) charges = -1 /obj/item/toy/crayon/rainbow icon_state = "crayonrainbow" paint_color = "#FFF000" item_color = "rainbow" - reagent_contents = list("nutriment" = 1, "colorful_reagent" = 1) + reagent_contents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/colorful_reagent = 1) drawtype = RANDOM_ANY // just the default starter. charges = -1 @@ -621,7 +621,7 @@ can_change_colour = TRUE gang = TRUE //Gang check is true for all things upon the honored hierarchy of spraycans, except those that are FALSE. - reagent_contents = list("welding_fuel" = 1, "ethanol" = 1) + reagent_contents = list(/datum/reagent/fuel = 1, /datum/reagent/consumable/ethanol = 1) pre_noise = TRUE post_noise = FALSE @@ -778,7 +778,7 @@ volume_multiplier = 25 charges = 100 - reagent_contents = list("clf3" = 1) + reagent_contents = list(/datum/reagent/clf3 = 1) actually_paints = FALSE paint_color = "#000000" @@ -791,7 +791,7 @@ use_overlays = FALSE gang = FALSE - reagent_contents = list("lube" = 1, "banana" = 1) + reagent_contents = list(/datum/reagent/lube = 1, /datum/reagent/consumable/banana = 1) volume_multiplier = 5 /obj/item/toy/crayon/spraycan/lubecan/isValidSurface(surface) @@ -811,7 +811,7 @@ pre_noise = FALSE post_noise = FALSE - reagent_contents = list("nothing" = 1, "mutetoxin" = 1) + reagent_contents = list(/datum/reagent/consumable/nothing = 1, /datum/reagent/toxin/mutetoxin = 1) /obj/item/toy/crayon/spraycan/gang charges = 20 // Charges back to 20, which is the default value for them. diff --git a/code/game/objects/items/devices/dogborg_sleeper.dm b/code/game/objects/items/devices/dogborg_sleeper.dm index 9b4842b291..748c494737 100644 --- a/code/game/objects/items/devices/dogborg_sleeper.dm +++ b/code/game/objects/items/devices/dogborg_sleeper.dm @@ -12,7 +12,8 @@ var/cleaning = FALSE var/cleaning_cycles = 10 var/patient_laststat = null - var/list/injection_chems = list("antitoxin", "epinephrine", "salbutamol", "bicaridine", "kelotane") + var/list/injection_chems = list(/datum/reagent/medicine/antitoxin, /datum/reagent/medicine/epinephrine, + /datum/reagent/medicine/salbutamol, /datum/reagent/medicine/bicaridine, /datum/reagent/medicine/kelotane) var/eject_port = "ingestion" var/escape_in_progress = FALSE var/message_cooldown @@ -183,7 +184,7 @@ data["chem"] = list() for(var/chem in injection_chems) var/datum/reagent/R = GLOB.chemical_reagents_list[chem] - data["chem"] += list(list("name" = R.name, "id" = R.id)) + data["chem"] += list(list("name" = R.name, "id" = R.type)) data["occupant"] = list() var/mob/living/mob_occupant = patient @@ -227,8 +228,8 @@ go_out(null, usr) . = TRUE if("inject") - var/chem = params["chem"] - if(!patient) + var/chem = text2path(params["chem"]) + if(!patient || !chem) return inject_chem(chem, usr) . = TRUE diff --git a/code/game/objects/items/devices/doorCharge.dm b/code/game/objects/items/devices/doorCharge.dm index 8def1d5ca3..e9ba9ea4a4 100644 --- a/code/game/objects/items/devices/doorCharge.dm +++ b/code/game/objects/items/devices/doorCharge.dm @@ -16,14 +16,14 @@ /obj/item/doorCharge/ex_act(severity, target) switch(severity) - if(1) + if(EXPLODE_DEVASTATE) visible_message("[src] detonates!") explosion(src.loc,0,2,1,flame_range = 4) qdel(src) - if(2) + if(EXPLODE_HEAVY) if(prob(50)) ex_act(EXPLODE_DEVASTATE) - if(3) + if(EXPLODE_LIGHT) if(prob(25)) ex_act(EXPLODE_DEVASTATE) diff --git a/code/game/objects/items/devices/flashlight.dm b/code/game/objects/items/devices/flashlight.dm index c861ac1512..7313ba8ff2 100644 --- a/code/game/objects/items/devices/flashlight.dm +++ b/code/game/objects/items/devices/flashlight.dm @@ -267,7 +267,7 @@ var/produce_heat = 1500 heat = 1000 light_color = LIGHT_COLOR_FLARE - grind_results = list("sulfur" = 15) + grind_results = list(/datum/reagent/sulfur = 15) /obj/item/flashlight/flare/New() fuel = rand(800, 1000) // Sorry for changing this so much but I keep under-estimating how long X number of ticks last in seconds. @@ -430,7 +430,7 @@ color = LIGHT_COLOR_GREEN icon_state = "glowstick" item_state = "glowstick" - grind_results = list("phenol" = 15, "hydrogen" = 10, "oxygen" = 5) //Meth-in-a-stick + grind_results = list(/datum/reagent/phenol = 15, /datum/reagent/hydrogen = 10, /datum/reagent/oxygen = 5) //Meth-in-a-stick rad_flags = RAD_NO_CONTAMINATE var/fuel = 0 diff --git a/code/game/objects/items/devices/forcefieldprojector.dm b/code/game/objects/items/devices/forcefieldprojector.dm index bf9c5daccd..df17a51c1b 100644 --- a/code/game/objects/items/devices/forcefieldprojector.dm +++ b/code/game/objects/items/devices/forcefieldprojector.dm @@ -10,7 +10,7 @@ lefthand_file = 'icons/mob/inhands/misc/devices_lefthand.dmi' righthand_file = 'icons/mob/inhands/misc/devices_righthand.dmi' materials = list(MAT_METAL=250, MAT_GLASS=500) - var/max_shield_integrity = 250 + var/max_shield_integrity = 100 var/shield_integrity = 250 var/max_fields = 3 var/list/current_fields @@ -87,7 +87,7 @@ mouse_opacity = MOUSE_OPACITY_OPAQUE resistance_flags = INDESTRUCTIBLE CanAtmosPass = ATMOS_PASS_DENSITY - armor = list("melee" = 0, "bullet" = 25, "laser" = 50, "energy" = 50, "bomb" = 25, "bio" = 100, "rad" = 100, "fire" = 100, "acid" = 100) + armor = list("melee" = 0, "bullet" = 25, "laser" = 25, "energy" = 25, "bomb" = 25, "bio" = 100, "rad" = 100, "fire" = 100, "acid" = 100) var/obj/item/forcefield_projector/generator /obj/structure/projected_forcefield/Initialize(mapload, obj/item/forcefield_projector/origin) diff --git a/code/game/objects/items/devices/radio/electropack.dm b/code/game/objects/items/devices/radio/electropack.dm index b74b0fa3d4..f468121048 100644 --- a/code/game/objects/items/devices/radio/electropack.dm +++ b/code/game/objects/items/devices/radio/electropack.dm @@ -10,22 +10,23 @@ slot_flags = ITEM_SLOT_BACK w_class = WEIGHT_CLASS_HUGE materials = list(MAT_METAL=10000, MAT_GLASS=2500) - var/on = TRUE + var/code = 2 var/frequency = FREQ_ELECTROPACK - var/shock_cooldown = 0 + var/on = TRUE + var/shock_cooldown = FALSE -/obj/item/electropack/suicide_act(mob/user) +/obj/item/electropack/suicide_act(mob/living/carbon/user) user.visible_message("[user] hooks [user.p_them()]self to the electropack and spams the trigger! It looks like [user.p_theyre()] trying to commit suicide!") return (FIRELOSS) /obj/item/electropack/Initialize() . = ..() - SSradio.add_object(src, frequency, RADIO_SIGNALER) + set_frequency(frequency) /obj/item/electropack/Destroy() SSradio.remove_object(src, frequency) - return ..() + . = ..() //ATTACK HAND IGNORING PARENT RETURN VALUE /obj/item/electropack/attack_hand(mob/user) @@ -36,7 +37,7 @@ return return ..() -/obj/item/electropack/attackby(obj/item/W, mob/user, params) +/obj/item/electropack/attackby(obj/item/W, mob/living/user, params) if(istype(W, /obj/item/clothing/head/helmet)) var/obj/item/assembly/shock_kit/A = new /obj/item/assembly/shock_kit(user) A.icon = 'icons/obj/assemblies.dmi' @@ -57,43 +58,47 @@ return ..() /obj/item/electropack/Topic(href, href_list) - //..() var/mob/living/carbon/C = usr if(usr.stat || usr.restrained() || C.back == src) return - if((ishuman(usr) && usr.contents.Find(src)) || usr.contents.Find(master) || (in_range(src, usr) && isturf(loc))) - usr.set_machine(src) - if(href_list["freq"]) - SSradio.remove_object(src, frequency) - frequency = sanitize_frequency(frequency + text2num(href_list["freq"])) - SSradio.add_object(src, frequency, RADIO_SIGNALER) - else - if(href_list["code"]) - code += text2num(href_list["code"]) - code = round(code) - code = min(100, code) - code = max(1, code) - else - if(href_list["power"]) - on = !( on ) - icon_state = "electropack[on]" - if(!( master )) - if(ismob(loc)) - attack_self(loc) - else - for(var/mob/M in viewers(1, src)) - if(M.client) - attack_self(M) - else - if(ismob(master.loc)) - attack_self(master.loc) - else - for(var/mob/M in viewers(1, master)) - if(M.client) - attack_self(M) - else + + if(!usr.canUseTopic(src, BE_CLOSE)) usr << browse(null, "window=radio") + onclose(usr, "radio") return + + if(href_list["set"]) + if(href_list["set"] == "freq") + var/new_freq = input(usr, "Input a new receiving frequency", "Electropack Frequency", format_frequency(frequency)) as num|null + if(!usr.canUseTopic(src, BE_CLOSE)) + return + new_freq = unformat_frequency(new_freq) + new_freq = sanitize_frequency(new_freq, TRUE) + set_frequency(new_freq) + + if(href_list["set"] == "code") + var/new_code = input(usr, "Input a new receiving code", "Electropack Code", code) as num|null + if(!usr.canUseTopic(src, BE_CLOSE)) + return + new_code = round(new_code) + new_code = CLAMP(new_code, 1, 100) + code = new_code + + if(href_list["set"] == "power") + if(!usr.canUseTopic(src, BE_CLOSE)) + return + on = !(on) + icon_state = "electropack[on]" + + if(usr) + attack_self(usr) + + return + +/obj/item/electropack/proc/set_frequency(new_frequency) + SSradio.remove_object(src, frequency) + frequency = new_frequency + SSradio.add_object(src, frequency, RADIO_SIGNALER) return /obj/item/electropack/receive_signal(datum/signal/signal) @@ -101,10 +106,10 @@ return if(isliving(loc) && on) - if(shock_cooldown != 0) + if(shock_cooldown == TRUE) return - shock_cooldown = 1 - addtimer(VARSET_CALLBACK(src, shock_cooldown, 0), 100) + shock_cooldown = TRUE + addtimer(VARSET_CALLBACK(src, shock_cooldown, FALSE), 100) var/mob/living/L = loc step(L, pick(GLOB.cardinals)) @@ -119,25 +124,22 @@ master.receive_signal() return -/obj/item/electropack/attack_self(mob/user) - +/obj/item/electropack/ui_interact(mob/user) if(!ishuman(user)) return + user.set_machine(src) - var/dat = {"Turned [on ? "On" : "Off"] - -Toggle
+ var/dat = {" + +Turned [on ? "On" : "Off"] - Toggle
Frequency/Code for electropack:
Frequency: -- -- [format_frequency(frequency)] -+ -+
+[format_frequency(src.frequency)] +Set
Code: -- -- [code] -+ -+
+[src.code] +Set
"} user << browse(dat, "window=radio") onclose(user, "radio") diff --git a/code/game/objects/items/devices/scanners.dm b/code/game/objects/items/devices/scanners.dm index 00381b9838..069c921914 100644 --- a/code/game/objects/items/devices/scanners.dm +++ b/code/game/objects/items/devices/scanners.dm @@ -262,7 +262,7 @@ SLIME SCANNER temp_message += " Subject has abnormal brain fuctions." //Astrogen shenanigans - if(H.reagents.has_reagent("astral")) + if(H.reagents.has_reagent(/datum/reagent/fermi/astral)) if(H.mind) temp_message += " Warning: subject may be possesed." else @@ -465,9 +465,9 @@ SLIME SCANNER else msg += "Subject is not addicted to any reagents.\n" - if(M.reagents.has_reagent("fermiTox")) - var/datum/reagent/fermiTox = M.reagents.has_reagent("fermiTox") - switch(fermiTox.volume) + var/datum/reagent/impure/fermiTox/F = M.reagents.has_reagent(/datum/reagent/impure/fermiTox) + if(istype(F)) + switch(F.volume) if(5 to 10) msg += "Subject contains a low amount of toxic isomers.\n" if(10 to 25) @@ -519,7 +519,7 @@ SLIME SCANNER throw_range = 7 tool_behaviour = TOOL_ANALYZER materials = list(MAT_METAL=30, MAT_GLASS=20) - grind_results = list("mercury" = 5, "iron" = 5, "silicon" = 5) + grind_results = list(/datum/reagent/mercury = 5, /datum/reagent/iron = 5, /datum/reagent/silicon = 5) var/cooldown = FALSE var/cooldown_time = 250 var/accuracy // 0 is the best accuracy. diff --git a/code/game/objects/items/extinguisher.dm b/code/game/objects/items/extinguisher.dm index b69d32617f..81317b6eab 100644 --- a/code/game/objects/items/extinguisher.dm +++ b/code/game/objects/items/extinguisher.dm @@ -17,7 +17,7 @@ resistance_flags = FIRE_PROOF var/max_water = 50 var/last_use = 1 - var/chem = "water" + var/chem = /datum/reagent/water var/safety = TRUE var/refilling = FALSE var/tanktype = /obj/structure/reagent_dispensers/watertank @@ -65,7 +65,7 @@ icon_state = "foam_extinguisher0" //item_state = "foam_extinguisher" needs sprite dog_fashion = null - chem = "firefighting_foam" + chem = /datum/reagent/firefighting_foam tanktype = /obj/structure/reagent_dispensers/foamtank sprite_name = "foam_extinguisher" precision = TRUE diff --git a/code/game/objects/items/grenades/chem_grenade.dm b/code/game/objects/items/grenades/chem_grenade.dm index 76d3a9fbf5..b5fee4e8d7 100644 --- a/code/game/objects/items/grenades/chem_grenade.dm +++ b/code/game/objects/items/grenades/chem_grenade.dm @@ -332,9 +332,9 @@ var/obj/item/reagent_containers/glass/beaker/B1 = new(src) var/obj/item/reagent_containers/glass/beaker/B2 = new(src) - B1.reagents.add_reagent("aluminium", 30) - B2.reagents.add_reagent("foaming_agent", 10) - B2.reagents.add_reagent("facid", 10) + B1.reagents.add_reagent(/datum/reagent/aluminium, 30) + B2.reagents.add_reagent(/datum/reagent/foaming_agent, 10) + B2.reagents.add_reagent(/datum/reagent/toxin/acid/fluacid, 10) beakers += B1 beakers += B2 @@ -350,9 +350,9 @@ var/obj/item/reagent_containers/glass/beaker/large/B1 = new(src) var/obj/item/reagent_containers/glass/beaker/B2 = new(src) - B1.reagents.add_reagent("aluminium", 75) - B2.reagents.add_reagent("smart_foaming_agent", 25) - B2.reagents.add_reagent("facid", 25) + B1.reagents.add_reagent(/datum/reagent/aluminium, 75) + B2.reagents.add_reagent(/datum/reagent/smart_foaming_agent, 25) + B2.reagents.add_reagent(/datum/reagent/toxin/acid/fluacid, 25) beakers += B1 beakers += B2 @@ -368,9 +368,9 @@ var/obj/item/reagent_containers/glass/beaker/B1 = new(src) var/obj/item/reagent_containers/glass/beaker/B2 = new(src) - B1.reagents.add_reagent("phosphorus", 25) - B2.reagents.add_reagent("stable_plasma", 25) - B2.reagents.add_reagent("sacid", 25) + B1.reagents.add_reagent(/datum/reagent/phosphorus, 25) + B2.reagents.add_reagent(/datum/reagent/stable_plasma, 25) + B2.reagents.add_reagent(/datum/reagent/toxin/acid, 25) beakers += B1 beakers += B2 @@ -386,10 +386,10 @@ var/obj/item/reagent_containers/glass/beaker/B1 = new(src) var/obj/item/reagent_containers/glass/beaker/B2 = new(src) - B1.reagents.add_reagent("plantbgone", 25) - B1.reagents.add_reagent("potassium", 25) - B2.reagents.add_reagent("phosphorus", 25) - B2.reagents.add_reagent("sugar", 25) + B1.reagents.add_reagent(/datum/reagent/toxin/plantbgone, 25) + B1.reagents.add_reagent(/datum/reagent/potassium, 25) + B2.reagents.add_reagent(/datum/reagent/phosphorus, 25) + B2.reagents.add_reagent(/datum/reagent/consumable/sugar, 25) beakers += B1 beakers += B2 @@ -405,9 +405,9 @@ var/obj/item/reagent_containers/glass/beaker/B1 = new(src) var/obj/item/reagent_containers/glass/beaker/B2 = new(src) - B1.reagents.add_reagent("fluorosurfactant", 40) - B2.reagents.add_reagent("water", 40) - B2.reagents.add_reagent("cleaner", 10) + B1.reagents.add_reagent(/datum/reagent/fluorosurfactant, 40) + B2.reagents.add_reagent(/datum/reagent/water, 40) + B2.reagents.add_reagent(/datum/reagent/space_cleaner, 10) beakers += B1 beakers += B2 @@ -423,9 +423,9 @@ var/obj/item/reagent_containers/glass/beaker/large/B1 = new(src) var/obj/item/reagent_containers/glass/beaker/large/B2 = new(src) - B1.reagents.add_reagent("fluorosurfactant", 40) - B2.reagents.add_reagent("water", 40) - B2.reagents.add_reagent("ez_clean", 60) //ensures a t h i c c distribution + B1.reagents.add_reagent(/datum/reagent/fluorosurfactant, 40) + B2.reagents.add_reagent(/datum/reagent/water, 40) + B2.reagents.add_reagent(/datum/reagent/space_cleaner/ez_clean, 60) //ensures a t h i c c distribution beakers += B1 beakers += B2 @@ -442,10 +442,10 @@ var/obj/item/reagent_containers/glass/beaker/large/B1 = new(src) var/obj/item/reagent_containers/glass/beaker/large/B2 = new(src) - B1.reagents.add_reagent("condensedcapsaicin", 60) - B1.reagents.add_reagent("potassium", 40) - B2.reagents.add_reagent("phosphorus", 40) - B2.reagents.add_reagent("sugar", 40) + B1.reagents.add_reagent(/datum/reagent/consumable/condensedcapsaicin, 60) + B1.reagents.add_reagent(/datum/reagent/potassium, 40) + B2.reagents.add_reagent(/datum/reagent/phosphorus, 40) + B2.reagents.add_reagent(/datum/reagent/consumable/sugar, 40) beakers += B1 beakers += B2 @@ -461,11 +461,11 @@ var/obj/item/reagent_containers/glass/beaker/bluespace/B1 = new(src) var/obj/item/reagent_containers/glass/beaker/bluespace/B2 = new(src) - B1.reagents.add_reagent("facid", 290) - B1.reagents.add_reagent("potassium", 10) - B2.reagents.add_reagent("phosphorus", 10) - B2.reagents.add_reagent("sugar", 10) - B2.reagents.add_reagent("facid", 280) + B1.reagents.add_reagent(/datum/reagent/toxin/acid/fluacid, 290) + B1.reagents.add_reagent(/datum/reagent/potassium, 10) + B2.reagents.add_reagent(/datum/reagent/phosphorus, 10) + B2.reagents.add_reagent(/datum/reagent/consumable/sugar, 10) + B2.reagents.add_reagent(/datum/reagent/toxin/acid/fluacid, 280) beakers += B1 beakers += B2 @@ -481,10 +481,10 @@ var/obj/item/reagent_containers/glass/beaker/B1 = new(src) var/obj/item/reagent_containers/glass/beaker/B2 = new(src) - B1.reagents.add_reagent("colorful_reagent", 25) - B1.reagents.add_reagent("potassium", 25) - B2.reagents.add_reagent("phosphorus", 25) - B2.reagents.add_reagent("sugar", 25) + B1.reagents.add_reagent(/datum/reagent/colorful_reagent, 25) + B1.reagents.add_reagent(/datum/reagent/potassium, 25) + B2.reagents.add_reagent(/datum/reagent/phosphorus, 25) + B2.reagents.add_reagent(/datum/reagent/consumable/sugar, 25) beakers += B1 beakers += B2 @@ -493,7 +493,7 @@ name = "generic glitter grenade" desc = "You shouldn't see this description." stage = READY - var/glitter_type = "glitter" + var/glitter_type = /datum/reagent/glitter /obj/item/grenade/chem_grenade/glitter/Initialize() . = ..() @@ -501,9 +501,9 @@ var/obj/item/reagent_containers/glass/beaker/B2 = new(src) B1.reagents.add_reagent(glitter_type, 25) - B1.reagents.add_reagent("potassium", 25) - B2.reagents.add_reagent("phosphorus", 25) - B2.reagents.add_reagent("sugar", 25) + B1.reagents.add_reagent(/datum/reagent/potassium, 25) + B2.reagents.add_reagent(/datum/reagent/phosphorus, 25) + B2.reagents.add_reagent(/datum/reagent/consumable/sugar, 25) beakers += B1 beakers += B2 @@ -511,17 +511,17 @@ /obj/item/grenade/chem_grenade/glitter/pink name = "pink glitter bomb" desc = "For that HOT glittery look." - glitter_type = "pink_glitter" + glitter_type = /datum/reagent/glitter/pink /obj/item/grenade/chem_grenade/glitter/blue name = "blue glitter bomb" desc = "For that COOL glittery look." - glitter_type = "blue_glitter" + glitter_type = /datum/reagent/glitter/blue /obj/item/grenade/chem_grenade/glitter/white name = "white glitter bomb" desc = "For that somnolent glittery look." - glitter_type = "white_glitter" + glitter_type = /datum/reagent/glitter/white /obj/item/grenade/chem_grenade/clf3 name = "clf3 grenade" @@ -533,10 +533,10 @@ var/obj/item/reagent_containers/glass/beaker/bluespace/B1 = new(src) var/obj/item/reagent_containers/glass/beaker/bluespace/B2 = new(src) - B1.reagents.add_reagent("fluorosurfactant", 250) - B1.reagents.add_reagent("clf3", 50) - B2.reagents.add_reagent("water", 250) - B2.reagents.add_reagent("clf3", 50) + B1.reagents.add_reagent(/datum/reagent/fluorosurfactant, 250) + B1.reagents.add_reagent(/datum/reagent/clf3, 50) + B2.reagents.add_reagent(/datum/reagent/water, 250) + B2.reagents.add_reagent(/datum/reagent/clf3, 50) beakers += B1 beakers += B2 @@ -551,13 +551,13 @@ var/obj/item/reagent_containers/glass/beaker/bluespace/B1 = new(src) var/obj/item/reagent_containers/glass/beaker/bluespace/B2 = new(src) - B1.reagents.add_reagent("cryptobiolin", 75) - B1.reagents.add_reagent("water", 50) - B1.reagents.add_reagent("mutetoxin", 50) - B1.reagents.add_reagent("spore", 75) - B1.reagents.add_reagent("itching_powder", 50) - B2.reagents.add_reagent("fluorosurfactant", 150) - B2.reagents.add_reagent("mutagen", 150) + B1.reagents.add_reagent(/datum/reagent/cryptobiolin, 75) + B1.reagents.add_reagent(/datum/reagent/water, 50) + B1.reagents.add_reagent(/datum/reagent/toxin/mutetoxin, 50) + B1.reagents.add_reagent(/datum/reagent/toxin/spore, 75) + B1.reagents.add_reagent(/datum/reagent/toxin/itching_powder, 50) + B2.reagents.add_reagent(/datum/reagent/fluorosurfactant, 150) + B2.reagents.add_reagent(/datum/reagent/toxin/mutagen, 150) beakers += B1 beakers += B2 @@ -571,11 +571,11 @@ var/obj/item/reagent_containers/glass/beaker/bluespace/B1 = new(src) var/obj/item/reagent_containers/glass/beaker/bluespace/B2 = new(src) - B1.reagents.add_reagent("potassium", 50) - B1.reagents.add_reagent("phosphorus", 50) - B1.reagents.add_reagent("fungalspores", 200) - B2.reagents.add_reagent("blood", 250) - B2.reagents.add_reagent("sugar", 50) + B1.reagents.add_reagent(/datum/reagent/potassium, 50) + B1.reagents.add_reagent(/datum/reagent/phosphorus, 50) + B1.reagents.add_reagent(/datum/reagent/fungalspores, 200) + B2.reagents.add_reagent(/datum/reagent/blood, 250) + B2.reagents.add_reagent(/datum/reagent/consumable/sugar, 50) beakers += B1 beakers += B2 @@ -591,8 +591,8 @@ var/obj/item/reagent_containers/glass/beaker/large/B1 = new(src) var/obj/item/reagent_containers/glass/beaker/large/B2 = new(src) - B1.reagents.add_reagent("potassium", 100) - B2.reagents.add_reagent("holywater", 100) + B1.reagents.add_reagent(/datum/reagent/potassium, 100) + B2.reagents.add_reagent(/datum/reagent/water/holywater, 100) beakers += B1 beakers += B2 diff --git a/code/game/objects/items/grenades/clusterbuster.dm b/code/game/objects/items/grenades/clusterbuster.dm index 923361de3c..c16b4a30a1 100644 --- a/code/game/objects/items/grenades/clusterbuster.dm +++ b/code/game/objects/items/grenades/clusterbuster.dm @@ -94,11 +94,11 @@ var/chem = pick(slime_chems) var/amount = 5 if(chem == "lesser plasma") //In the rare case we get another rainbow. - chem = "plasma" + chem = /datum/reagent/toxin/plasma amount = 4 if(chem == "holy water and uranium") - chem = "uranium" - reagents.add_reagent("holywater") + chem = /datum/reagent/uranium + reagents.add_reagent(/datum/reagent/water/holywater) reagents.add_reagent(chem,amount) /obj/effect/payload_spawner/random_slime/spawn_payload(type, numspawned) diff --git a/code/game/objects/items/grenades/plastic.dm b/code/game/objects/items/grenades/plastic.dm index 1956a1f317..75e4e0b477 100644 --- a/code/game/objects/items/grenades/plastic.dm +++ b/code/game/objects/items/grenades/plastic.dm @@ -62,7 +62,7 @@ location = get_turf(target) target.cut_overlay(plastic_overlay, TRUE) if(!ismob(target) || full_damage_on_mobs) - target.ex_act(2, target) + target.ex_act(EXPLODE_HEAVY, target) else location = get_turf(src) if(location) diff --git a/code/game/objects/items/holosign_creator.dm b/code/game/objects/items/holosign_creator.dm index eb58089293..e92c9b2d2e 100644 --- a/code/game/objects/items/holosign_creator.dm +++ b/code/game/objects/items/holosign_creator.dm @@ -78,12 +78,20 @@ /obj/item/holosign_creator/atmos name = "ATMOS holofan projector" - desc = "A holographic projector that creates holographic barriers that prevent changes in atmosphere conditions." + desc = "A holographic projector that creates holographic fans that prevent changes in atmosphere conditions. Somehow." icon_state = "signmaker_atmos" holosign_type = /obj/structure/holosign/barrier/atmos creation_time = 0 max_signs = 3 +/obj/item/holosign_creator/firelock + name = "ATMOS holofirelock projector" + desc = "A holographic projector that creates holographic barriers that prevent changes in temperature conditions." + icon_state = "signmaker_engi" + holosign_type = /obj/structure/holosign/barrier/firelock + creation_time = 0 + max_signs = 3 + /obj/item/holosign_creator/medical name = "\improper PENLITE barrier projector" desc = "A holographic projector that creates PENLITE holobarriers. Useful during quarantines since they halt those with malicious diseases." diff --git a/code/game/objects/items/holy_weapons.dm b/code/game/objects/items/holy_weapons.dm index c6c5547e54..5367f3461c 100644 --- a/code/game/objects/items/holy_weapons.dm +++ b/code/game/objects/items/holy_weapons.dm @@ -308,7 +308,7 @@ block_chance = 50 var/shield_icon = "shield-red" -/obj/item/nullrod/staff/worn_overlays(isinhands) +/obj/item/nullrod/staff/worn_overlays(isinhands, icon_file, style_flags = NONE) . = list() if(isinhands) . += mutable_appearance('icons/effects/effects.dmi', shield_icon, MOB_LAYER + 0.01) @@ -789,7 +789,7 @@ praying = TRUE if(do_after(user, 20, target = M)) - M.reagents?.add_reagent("holywater", 5) + M.reagents?.add_reagent(/datum/reagent/water/holywater, 5) to_chat(M, "[user]'s prayer to [deity_name] has eased your pain!") M.adjustToxLoss(-5, TRUE, TRUE) M.adjustOxyLoss(-5) diff --git a/code/game/objects/items/hot_potato.dm b/code/game/objects/items/hot_potato.dm index 40f2741a17..16ac2ad692 100644 --- a/code/game/objects/items/hot_potato.dm +++ b/code/game/objects/items/hot_potato.dm @@ -75,7 +75,7 @@ L.SetKnockdown(0) L.SetSleeping(0) L.SetUnconscious(0) - L.reagents.add_reagent("muscle_stimulant", CLAMP(5 - L.reagents.get_reagent_amount("muscle_stimulant"), 0, 5)) //If you don't have legs or get bola'd, tough luck! + L.reagents.add_reagent(/datum/reagent/medicine/muscle_stimulant, CLAMP(5 - L.reagents.get_reagent_amount(/datum/reagent/medicine/muscle_stimulant), 0, 5)) //If you don't have legs or get bola'd, tough luck! colorize(L) /obj/item/hot_potato/examine(mob/user) diff --git a/code/game/objects/items/implants/implant_misc.dm b/code/game/objects/items/implants/implant_misc.dm index 75b0c67798..6cdc5ee824 100644 --- a/code/game/objects/items/implants/implant_misc.dm +++ b/code/game/objects/items/implants/implant_misc.dm @@ -33,7 +33,7 @@ /obj/item/implant/adrenalin/activate() . = ..() uses-- - imp_in.do_adrenaline(150, TRUE, 0, 0, TRUE, list("inaprovaline" = 3, "synaptizine" = 10, "regen_jelly" = 10, "stimulants" = 10), "You feel a sudden surge of energy!") + imp_in.do_adrenaline(150, TRUE, 0, 0, TRUE, list(/datum/reagent/medicine/inaprovaline = 3, /datum/reagent/medicine/synaptizine = 10, /datum/reagent/medicine/regen_jelly = 10, /datum/reagent/medicine/stimulants = 10), "You feel a sudden surge of energy!") to_chat(imp_in, "You feel a sudden surge of energy!") if(!uses) qdel(src) diff --git a/code/game/objects/items/kitchen.dm b/code/game/objects/items/kitchen.dm index ef2aa825e7..6665d91c2b 100644 --- a/code/game/objects/items/kitchen.dm +++ b/code/game/objects/items/kitchen.dm @@ -41,10 +41,10 @@ if(forkload) if(M == user) M.visible_message("[user] eats a delicious forkful of omelette!") - M.reagents.add_reagent(forkload.id, 1) + M.reagents.add_reagent(forkload.type, 1) else M.visible_message("[user] feeds [M] a delicious forkful of omelette!") - M.reagents.add_reagent(forkload.id, 1) + M.reagents.add_reagent(forkload.type, 1) icon_state = "fork" forkload = null diff --git a/code/game/objects/items/melee/energy.dm b/code/game/objects/items/melee/energy.dm index 4549dc73b6..4d60716d0c 100644 --- a/code/game/objects/items/melee/energy.dm +++ b/code/game/objects/items/melee/energy.dm @@ -339,7 +339,7 @@ . = ..() . += "Alt-click to recolor it." -/obj/item/melee/transforming/energy/sword/cx/worn_overlays(isinhands, icon_file) +/obj/item/melee/transforming/energy/sword/cx/worn_overlays(isinhands, icon_file, style_flags = NONE) . = ..() if(active) if(isinhands) diff --git a/code/game/objects/items/mop.dm b/code/game/objects/items/mop.dm index 5d384a9346..a8b28f2544 100644 --- a/code/game/objects/items/mop.dm +++ b/code/game/objects/items/mop.dm @@ -25,7 +25,7 @@ /obj/item/mop/proc/clean(turf/A) - if(reagents.has_reagent("water", 1) || reagents.has_reagent("holywater", 1) || reagents.has_reagent("vodka", 1) || reagents.has_reagent("cleaner", 1)) + if(reagents.has_reagent(/datum/reagent/water, 1) || reagents.has_reagent(/datum/reagent/water/holywater, 1) || reagents.has_reagent(/datum/reagent/consumable/ethanol/vodka, 1) || reagents.has_reagent(/datum/reagent/space_cleaner, 1)) SEND_SIGNAL(A, COMSIG_COMPONENT_CLEAN_ACT, CLEAN_MEDIUM) A.clean_blood() for(var/obj/effect/O in A) @@ -98,7 +98,7 @@ stamusage = 1 var/refill_enabled = TRUE //Self-refill toggle for when a janitor decides to mop with something other than water. var/refill_rate = 1 //Rate per process() tick mop refills itself - var/refill_reagent = "water" //Determins what reagent to use for refilling, just in case someone wanted to make a HOLY MOP OF PURGING + var/refill_reagent = /datum/reagent/water //Determins what reagent to use for refilling, just in case someone wanted to make a HOLY MOP OF PURGING /obj/item/mop/advanced/New() ..() diff --git a/code/game/objects/items/religion.dm b/code/game/objects/items/religion.dm index ddc49a456c..5fd9600a97 100644 --- a/code/game/objects/items/religion.dm +++ b/code/game/objects/items/religion.dm @@ -98,7 +98,7 @@ /obj/item/banner/medical/special_inspiration(mob/living/carbon/human/H) H.adjustToxLoss(-15) H.setOxyLoss(0) - H.reagents.add_reagent("inaprovaline", 5) + H.reagents.add_reagent(/datum/reagent/medicine/inaprovaline, 5) /obj/item/banner/science name = "sciencia banner" diff --git a/code/game/objects/items/robot/robot_items.dm b/code/game/objects/items/robot/robot_items.dm index a0d58709c8..efe6bbadaa 100644 --- a/code/game/objects/items/robot/robot_items.dm +++ b/code/game/objects/items/robot/robot_items.dm @@ -886,7 +886,7 @@ else O.anchored = initial(O.anchored) else - to_chat(user, "Not enough room in cargo compartment! Maximum of eight objects!") + to_chat(user, "Not enough room in cargo compartment! Maximum of [cargo_capacity] objects!") else to_chat(user, "[target] is firmly secured!") @@ -899,6 +899,12 @@ user.visible_message("[user] unloads [chosen_cargo] from its cargo.") playsound(loc, 'sound/effects/bin_close.ogg', 50, 0) +/obj/item/cyborg_clamp/Destroy() + for(var/atom/movable/target in cargo) + target.forceMove(get_turf(src)) + playsound(loc, 'sound/effects/bin_close.ogg', 50, 0) + return ..() + /obj/item/card/id/miningborg name = "mining point card" desc = "A robotic ID strip used for claiming and transferring mining points. Must be held in an active slot to transfer points." diff --git a/code/game/objects/items/robot/robot_upgrades.dm b/code/game/objects/items/robot/robot_upgrades.dm index cc1cfec818..8c743cc3de 100644 --- a/code/game/objects/items/robot/robot_upgrades.dm +++ b/code/game/objects/items/robot/robot_upgrades.dm @@ -466,15 +466,15 @@ name = "medical cyborg expanded hypospray" desc = "An upgrade to the Medical module's hypospray, allowing it \ to treat a wider range of conditions and problems." - additional_reagents = list("mannitol", "oculine", "inacusiate", - "mutadone", "haloperidol") + additional_reagents = list(/datum/reagent/medicine/mannitol, /datum/reagent/medicine/oculine, /datum/reagent/medicine/inacusiate, + /datum/reagent/medicine/mutadone, /datum/reagent/medicine/haloperidol) /obj/item/borg/upgrade/hypospray/high_strength name = "medical cyborg high-strength hypospray" desc = "An upgrade to the Medical module's hypospray, containing \ stronger versions of existing chemicals." - additional_reagents = list("oxandrolone", "sal_acid", "rezadone", - "pen_acid") + additional_reagents = list(/datum/reagent/medicine/oxandrolone, /datum/reagent/medicine/sal_acid, + /datum/reagent/medicine/rezadone, /datum/reagent/medicine/pen_acid) /obj/item/borg/upgrade/piercing_hypospray name = "cyborg piercing hypospray" diff --git a/code/game/objects/items/stacks/bscrystal.dm b/code/game/objects/items/stacks/bscrystal.dm index 49a735af9c..a660e76da1 100644 --- a/code/game/objects/items/stacks/bscrystal.dm +++ b/code/game/objects/items/stacks/bscrystal.dm @@ -10,7 +10,7 @@ points = 50 var/blink_range = 8 // The teleport range when crushed/thrown at someone. refined_type = /obj/item/stack/sheet/bluespace_crystal - grind_results = list("bluespace" = 20) + grind_results = list(/datum/reagent/bluespace = 20) /obj/item/stack/ore/bluespace_crystal/refined name = "refined bluespace crystal" @@ -53,7 +53,7 @@ blink_range = 4 // Not as good as the organic stuff! points = 0 //nice try refined_type = null - grind_results = list("bluespace" = 10, "silicon" = 20) + grind_results = list(/datum/reagent/bluespace = 10, /datum/reagent/silicon = 20) //Polycrystals, aka stacks /obj/item/stack/sheet/bluespace_crystal @@ -66,7 +66,7 @@ materials = list(MAT_BLUESPACE=MINERAL_MATERIAL_AMOUNT) attack_verb = list("bluespace polybashed", "bluespace polybattered", "bluespace polybludgeoned", "bluespace polythrashed", "bluespace polysmashed") novariants = TRUE - grind_results = list("bluespace" = 20) + grind_results = list(/datum/reagent/bluespace = 20) point_value = 30 var/crystal_type = /obj/item/stack/ore/bluespace_crystal/refined diff --git a/code/game/objects/items/stacks/medical.dm b/code/game/objects/items/stacks/medical.dm index 178bdd8a5e..14c20af6b3 100644 --- a/code/game/objects/items/stacks/medical.dm +++ b/code/game/objects/items/stacks/medical.dm @@ -57,7 +57,7 @@ righthand_file = 'icons/mob/inhands/equipment/medical_righthand.dmi' var/heal_brute = 20 self_delay = 20 - grind_results = list("styptic_powder" = 10) + grind_results = list(/datum/reagent/medicine/styptic_powder = 10) /obj/item/stack/medical/bruise_pack/heal(mob/living/M, mob/user) if(M.stat == DEAD) @@ -140,7 +140,7 @@ righthand_file = 'icons/mob/inhands/equipment/medical_righthand.dmi' var/heal_burn = 20 self_delay = 20 - grind_results = list("silver_sulfadiazine" = 10) + grind_results = list(/datum/reagent/medicine/silver_sulfadiazine = 10) /obj/item/stack/medical/ointment/heal(mob/living/M, mob/user) if(M.stat == DEAD) diff --git a/code/game/objects/items/stacks/sheets/light.dm b/code/game/objects/items/stacks/sheets/light.dm index c2c6015747..c42cfbe571 100644 --- a/code/game/objects/items/stacks/sheets/light.dm +++ b/code/game/objects/items/stacks/sheets/light.dm @@ -11,7 +11,7 @@ throw_range = 7 flags_1 = CONDUCT_1 max_amount = 60 - grind_results = list("silicon" = 20, "copper" = 5) + grind_results = list(/datum/reagent/silicon = 20, /datum/reagent/copper = 5) /obj/item/stack/light_w/attackby(obj/item/O, mob/user, params) if(istype(O, /obj/item/stack/sheet/metal)) diff --git a/code/game/objects/items/stacks/sheets/mineral.dm b/code/game/objects/items/stacks/sheets/mineral.dm index fe42f88f56..53b78b2ecf 100644 --- a/code/game/objects/items/stacks/sheets/mineral.dm +++ b/code/game/objects/items/stacks/sheets/mineral.dm @@ -108,7 +108,7 @@ GLOBAL_LIST_INIT(sandbag_recipes, list ( \ sheettype = "diamond" materials = list(MAT_DIAMOND=MINERAL_MATERIAL_AMOUNT) novariants = TRUE - grind_results = list("carbon" = 20) + grind_results = list(/datum/reagent/carbon = 20) point_value = 25 merge_type = /obj/item/stack/sheet/mineral/diamond @@ -135,7 +135,7 @@ GLOBAL_LIST_INIT(diamond_recipes, list ( \ sheettype = "uranium" materials = list(MAT_URANIUM=MINERAL_MATERIAL_AMOUNT) novariants = TRUE - grind_results = list("uranium" = 20) + grind_results = list(/datum/reagent/uranium = 20) point_value = 20 merge_type = /obj/item/stack/sheet/mineral/uranium @@ -162,7 +162,7 @@ GLOBAL_LIST_INIT(uranium_recipes, list ( \ resistance_flags = FLAMMABLE max_integrity = 100 materials = list(MAT_PLASMA=MINERAL_MATERIAL_AMOUNT) - grind_results = list("plasma" = 20) + grind_results = list(/datum/reagent/toxin/plasma = 20) point_value = 20 merge_type = /obj/item/stack/sheet/mineral/plasma @@ -203,7 +203,7 @@ GLOBAL_LIST_INIT(plasma_recipes, list ( \ singular_name = "gold bar" sheettype = "gold" materials = list(MAT_GOLD=MINERAL_MATERIAL_AMOUNT) - grind_results = list("gold" = 20) + grind_results = list(/datum/reagent/gold = 20) point_value = 20 merge_type = /obj/item/stack/sheet/mineral/gold @@ -232,7 +232,7 @@ GLOBAL_LIST_INIT(gold_recipes, list ( \ singular_name = "silver bar" sheettype = "silver" materials = list(MAT_SILVER=MINERAL_MATERIAL_AMOUNT) - grind_results = list("silver" = 20) + grind_results = list(/datum/reagent/silver = 20) point_value = 20 merge_type = /obj/item/stack/sheet/mineral/silver tableVariant = /obj/structure/table/optable @@ -262,7 +262,7 @@ GLOBAL_LIST_INIT(silver_recipes, list ( \ sheettype = "bananium" materials = list(MAT_BANANIUM=MINERAL_MATERIAL_AMOUNT) novariants = TRUE - grind_results = list("banana" = 20) + grind_results = list(/datum/reagent/consumable/banana = 20) point_value = 50 merge_type = /obj/item/stack/sheet/mineral/bananium @@ -331,30 +331,6 @@ GLOBAL_LIST_INIT(plastitanium_recipes, list ( \ recipes = GLOB.plastitanium_recipes . = ..() - -/* - * Snow - */ -/obj/item/stack/sheet/mineral/snow - name = "snow" - icon_state = "sheet-snow" - item_state = "sheet-snow" - singular_name = "snow block" - force = 1 - throwforce = 2 - grind_results = list("ice" = 20) - merge_type = /obj/item/stack/sheet/mineral/snow - -GLOBAL_LIST_INIT(snow_recipes, list ( \ - new/datum/stack_recipe("Snow Wall", /turf/closed/wall/mineral/snow, 5, one_per_turf = 1, on_floor = 1), \ - new/datum/stack_recipe("Snowman", /obj/structure/statue/snow/snowman, 5, one_per_turf = 1, on_floor = 1), \ - new/datum/stack_recipe("Snowball", /obj/item/toy/snowball, 1), \ - )) - -/obj/item/stack/sheet/mineral/snow/Initialize(mapload, new_amount, merge = TRUE) - recipes = GLOB.snow_recipes - . = ..() - /****************************** Others ****************************/ /* @@ -386,6 +362,29 @@ GLOBAL_LIST_INIT(adamantine_recipes, list( novariants = TRUE merge_type = /obj/item/stack/sheet/mineral/mythril +/* + * Snow + */ +/obj/item/stack/sheet/mineral/snow + name = "snow" + icon_state = "sheet-snow" + item_state = "sheet-snow" + singular_name = "snow block" + force = 1 + throwforce = 2 + grind_results = list(/datum/reagent/consumable/ice = 20) + merge_type = /obj/item/stack/sheet/mineral/snow + +GLOBAL_LIST_INIT(snow_recipes, list ( \ + new/datum/stack_recipe("Snow Wall", /turf/closed/wall/mineral/snow, 5, one_per_turf = 1, on_floor = 1), \ + new/datum/stack_recipe("Snowman", /obj/structure/statue/snow/snowman, 5, one_per_turf = 1, on_floor = 1), \ + new/datum/stack_recipe("Snowball", /obj/item/toy/snowball, 1), \ + )) + +/obj/item/stack/sheet/mineral/snow/Initialize(mapload, new_amount, merge = TRUE) + recipes = GLOB.snow_recipes + . = ..() + /* * Alien Alloy */ @@ -422,7 +421,7 @@ GLOBAL_LIST_INIT(abductor_recipes, list ( \ icon_state = "slag" singular_name = "coal lump" merge_type = /obj/item/stack/sheet/mineral/coal - grind_results = list("carbon" = 20) + grind_results = list(/datum/reagent/carbon = 20) /obj/item/stack/sheet/mineral/coal/attackby(obj/item/W, mob/user, params) if(W.get_temperature() > 300)//If the temperature of the object is over 300, then ignite @@ -442,4 +441,4 @@ GLOBAL_LIST_INIT(abductor_recipes, list ( \ amount = 5 /obj/item/stack/sheet/mineral/coal/ten - amount = 10 \ No newline at end of file + amount = 10 diff --git a/code/game/objects/items/stacks/sheets/sheet_types.dm b/code/game/objects/items/stacks/sheets/sheet_types.dm index b20f412620..a80f0d5a3b 100644 --- a/code/game/objects/items/stacks/sheets/sheet_types.dm +++ b/code/game/objects/items/stacks/sheets/sheet_types.dm @@ -3,13 +3,18 @@ * Metal * Plasteel * Wood + * Bamboo * Cloth - * Plastic + * Silk + * Durathread * Cardboard - * Paper Frames * Runed Metal (cult) * Brass (clockwork cult) * Bronze (bake brass) + * Gems + * Bones + * Plastic + * Paper Frames * Cotton/Duracotton */ @@ -106,7 +111,7 @@ GLOBAL_LIST_INIT(metal_recipes, list ( \ flags_1 = CONDUCT_1 resistance_flags = FIRE_PROOF merge_type = /obj/item/stack/sheet/metal - grind_results = list("iron" = 20) + grind_results = list(/datum/reagent/iron = 20) point_value = 2 tableVariant = /obj/structure/table @@ -168,7 +173,7 @@ GLOBAL_LIST_INIT(plasteel_recipes, list ( \ armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 100, "acid" = 80) resistance_flags = FIRE_PROOF merge_type = /obj/item/stack/sheet/plasteel - grind_results = list("iron" = 20, "plasma" = 20) + grind_results = list(/datum/reagent/iron = 20, /datum/reagent/toxin/plasma = 20) point_value = 23 tableVariant = /obj/structure/table/reinforced @@ -238,8 +243,7 @@ GLOBAL_LIST_INIT(wood_recipes, list ( \ resistance_flags = FLAMMABLE merge_type = /obj/item/stack/sheet/mineral/wood novariants = TRUE - grind_results = list("carbon" = 20) - + grind_results = list(/datum/reagent/carbon = 20) /obj/item/stack/sheet/mineral/wood/attackby(obj/item/W, mob/user, params) // NOTE: sheet_types.dm is where the WOOD stack lives. Maybe move this over there. // Taken from /obj/item/stack/rods/attackby in [rods.dm] @@ -296,13 +300,12 @@ GLOBAL_LIST_INIT(bamboo_recipes, list ( \ armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 50, "acid" = 0) resistance_flags = FLAMMABLE merge_type = /obj/item/stack/sheet/mineral/bamboo - grind_results = list("carbon" = 5) + grind_results = list(/datum/reagent/carbon = 5) /obj/item/stack/sheet/mineral/bamboo/Initialize(mapload, new_amount, merge = TRUE) recipes = GLOB.bamboo_recipes return ..() - /* * Cloth */ @@ -356,6 +359,9 @@ GLOBAL_LIST_INIT(cloth_recipes, list ( \ /obj/item/stack/sheet/cloth/thirty amount = 30 +/* + * Silk + */ /obj/item/stack/sheet/silk name = "silk" desc = "A long soft material. This one is just made out of cotton rather then any spiders or wyrms" @@ -369,7 +375,9 @@ GLOBAL_LIST_INIT(cloth_recipes, list ( \ // recipes = GLOB.silk_recipes // return ..() -//Durathread fuck slash-asterisk comments +/* + * Durathread + */ GLOBAL_LIST_INIT(durathread_recipes, list ( \ new/datum/stack_recipe("durathread jumpsuit", /obj/item/clothing/under/durathread, 4, time = 40), new/datum/stack_recipe("durathread beret", /obj/item/clothing/head/beret/durathread, 2, time = 40), \ @@ -392,8 +400,6 @@ GLOBAL_LIST_INIT(cloth_recipes, list ( \ recipes = GLOB.durathread_recipes return ..() - - /* * Cardboard */ @@ -487,7 +493,6 @@ GLOBAL_LIST_INIT(cardboard_recipes, list ( \ else . = ..() - /* * Runed Metal */ @@ -511,7 +516,7 @@ GLOBAL_LIST_INIT(runed_metal_recipes, list ( \ sheettype = "runed" merge_type = /obj/item/stack/sheet/runed_metal novariants = TRUE - grind_results = list("iron" = 5, "blood" = 15) + grind_results = list(/datum/reagent/iron = 5, /datum/reagent/blood = 15) /obj/item/stack/sheet/runed_metal/ratvar_act() new /obj/item/stack/tile/brass(loc, amount) @@ -586,7 +591,7 @@ GLOBAL_LIST_INIT(brass_recipes, list ( \ throw_range = 3 turf_type = /turf/open/floor/clockwork novariants = FALSE - grind_results = list("iron" = 5, "teslium" = 15, "holyoil" = 1) + grind_results = list(/datum/reagent/iron = 5, /datum/reagent/teslium = 15, /datum/reagent/fuel/holyoil = 1) merge_type = /obj/item/stack/tile/brass tableVariant = /obj/structure/table/reinforced/brass @@ -639,7 +644,7 @@ GLOBAL_LIST_INIT(bronze_recipes, list ( \ throw_range = 3 turf_type = /turf/open/floor/bronze novariants = FALSE - grind_results = list("iron" = 5, "copper" = 3) //we have no "tin" reagent so this is the closest thing + grind_results = list(/datum/reagent/iron = 5, /datum/reagent/copper = 3) //we have no "tin" reagent so this is the closest thing merge_type = /obj/item/stack/tile/bronze tableVariant = /obj/structure/table/bronze @@ -693,7 +698,7 @@ GLOBAL_LIST_INIT(bronze_recipes, list ( \ w_class = WEIGHT_CLASS_NORMAL throw_speed = 1 throw_range = 3 - grind_results = list("carbon" = 10) + grind_results = list(/datum/reagent/carbon = 10) merge_type = /obj/item/stack/sheet/bone GLOBAL_LIST_INIT(plastic_recipes, list( @@ -712,6 +717,7 @@ GLOBAL_LIST_INIT(plastic_recipes, list( item_state = "sheet-plastic" materials = list(MAT_PLASTIC=MINERAL_MATERIAL_AMOUNT) throwforce = 7 + grind_results = list(/datum/reagent/glitter/white = 60) merge_type = /obj/item/stack/sheet/plastic /obj/item/stack/sheet/plastic/fifty @@ -748,7 +754,6 @@ new /datum/stack_recipe("paper frame door", /obj/structure/mineral_door/paperfra /obj/item/stack/sheet/paperframes/fifty amount = 50 - //durathread and cotton raw /obj/item/stack/sheet/cotton name = "raw cotton bundle" diff --git a/code/game/objects/items/storage/belt.dm b/code/game/objects/items/storage/belt.dm index 6c250029a6..0961726e6e 100755 --- a/code/game/objects/items/storage/belt.dm +++ b/code/game/objects/items/storage/belt.dm @@ -24,7 +24,7 @@ add_overlay(M) ..() -/obj/item/storage/belt/worn_overlays(isinhands, icon_file) +/obj/item/storage/belt/worn_overlays(isinhands, icon_file, style_flags = NONE) . = ..() if(!isinhands && worn_overlays) for(var/obj/item/I in contents) diff --git a/code/game/objects/items/storage/book.dm b/code/game/objects/items/storage/book.dm index c658eee3d5..e47021c1f6 100644 --- a/code/game/objects/items/storage/book.dm +++ b/code/game/objects/items/storage/book.dm @@ -163,16 +163,16 @@ GLOBAL_LIST_INIT(bibleitemstates, list("bible", "koran", "scrapbook", "bible", for(var/obj/effect/rune/R in orange(2,user)) R.invisibility = 0 if(user.mind && (user.mind.isholy)) - if(A.reagents && A.reagents.has_reagent("water")) // blesses all the water in the holder + if(A.reagents && A.reagents.has_reagent(/datum/reagent/water)) // blesses all the water in the holder to_chat(user, "You bless [A].") - var/water2holy = A.reagents.get_reagent_amount("water") - A.reagents.del_reagent("water") - A.reagents.add_reagent("holywater",water2holy) - if(A.reagents && A.reagents.has_reagent("unholywater")) // yeah yeah, copy pasted code - sue me + var/water2holy = A.reagents.get_reagent_amount(/datum/reagent/water) + A.reagents.del_reagent(/datum/reagent/water) + A.reagents.add_reagent(/datum/reagent/water/holywater,water2holy) + if(A.reagents && A.reagents.has_reagent(/datum/reagent/fuel/unholywater)) // yeah yeah, copy pasted code - sue me to_chat(user, "You purify [A].") - var/unholy2clean = A.reagents.get_reagent_amount("unholywater") - A.reagents.del_reagent("unholywater") - A.reagents.add_reagent("holywater",unholy2clean) + var/unholy2clean = A.reagents.get_reagent_amount(/datum/reagent/fuel/unholywater) + A.reagents.del_reagent(/datum/reagent/fuel/unholywater) + A.reagents.add_reagent(/datum/reagent/water/holywater,unholy2clean) if(istype(A, /obj/item/twohanded/required/cult_bastard) && !iscultist(user)) var/obj/item/twohanded/required/cult_bastard/sword = A to_chat(user, "You begin to exorcise [sword].") diff --git a/code/game/objects/items/storage/firstaid.dm b/code/game/objects/items/storage/firstaid.dm index 8c96e567d1..0ff20f16c5 100644 --- a/code/game/objects/items/storage/firstaid.dm +++ b/code/game/objects/items/storage/firstaid.dm @@ -205,7 +205,7 @@ new /obj/item/healthanalyzer/advanced(src) new /obj/item/reagent_containers/syringe/lethal/choral(src) // what the fuck does anyone use this piece of shit for new /obj/item/clothing/glasses/hud/health/night(src) - + /* * Pill Bottles */ @@ -439,8 +439,8 @@ if(empty) return new /obj/item/hypospray/mkii/tricord(src) - new /obj/item/reagent_containers/glass/bottle/vial/small/preloaded/tricord(src) - new /obj/item/reagent_containers/glass/bottle/vial/small/preloaded/tricord(src) + new /obj/item/reagent_containers/glass/bottle/vial/small/tricord(src) + new /obj/item/reagent_containers/glass/bottle/vial/small/tricord(src) /obj/item/storage/hypospraykit/fire name = "burn treatment hypospray kit" @@ -452,8 +452,8 @@ if(empty) return new /obj/item/hypospray/mkii/burn(src) - new /obj/item/reagent_containers/glass/bottle/vial/small/preloaded/kelotane(src) - new /obj/item/reagent_containers/glass/bottle/vial/small/preloaded/kelotane(src) + new /obj/item/reagent_containers/glass/bottle/vial/small/kelotane(src) + new /obj/item/reagent_containers/glass/bottle/vial/small/kelotane(src) /obj/item/storage/hypospraykit/toxin name = "toxin treatment hypospray kit" @@ -464,8 +464,8 @@ if(empty) return new /obj/item/hypospray/mkii/toxin(src) - new /obj/item/reagent_containers/glass/bottle/vial/small/preloaded/antitoxin(src) - new /obj/item/reagent_containers/glass/bottle/vial/small/preloaded/antitoxin(src) + new /obj/item/reagent_containers/glass/bottle/vial/small/antitoxin(src) + new /obj/item/reagent_containers/glass/bottle/vial/small/antitoxin(src) /obj/item/storage/hypospraykit/o2 name = "oxygen deprivation hypospray kit" @@ -476,8 +476,8 @@ if(empty) return new /obj/item/hypospray/mkii/oxygen(src) - new /obj/item/reagent_containers/glass/bottle/vial/small/preloaded/dexalin(src) - new /obj/item/reagent_containers/glass/bottle/vial/small/preloaded/dexalin(src) + new /obj/item/reagent_containers/glass/bottle/vial/small/dexalin(src) + new /obj/item/reagent_containers/glass/bottle/vial/small/dexalin(src) /obj/item/storage/hypospraykit/enlarge name = "organomegaly trauma hypospray kit" @@ -488,12 +488,12 @@ if(empty) return new /obj/item/hypospray/mkii/enlarge(src) - new /obj/item/reagent_containers/glass/bottle/vial/small/preloaded/breastreduction(src) - new /obj/item/reagent_containers/glass/bottle/vial/small/preloaded/breastreduction(src) - new /obj/item/reagent_containers/glass/bottle/vial/small/preloaded/breastreduction(src) - new /obj/item/reagent_containers/glass/bottle/vial/small/preloaded/penisreduction(src) - new /obj/item/reagent_containers/glass/bottle/vial/small/preloaded/penisreduction(src) - new /obj/item/reagent_containers/glass/bottle/vial/small/preloaded/penisreduction(src) + new /obj/item/reagent_containers/glass/bottle/vial/small/breastreduction(src) + new /obj/item/reagent_containers/glass/bottle/vial/small/breastreduction(src) + new /obj/item/reagent_containers/glass/bottle/vial/small/breastreduction(src) + new /obj/item/reagent_containers/glass/bottle/vial/small/penisreduction(src) + new /obj/item/reagent_containers/glass/bottle/vial/small/penisreduction(src) + new /obj/item/reagent_containers/glass/bottle/vial/small/penisreduction(src) /obj/item/storage/hypospraykit/brute name = "brute trauma hypospray kit" @@ -504,8 +504,8 @@ if(empty) return new /obj/item/hypospray/mkii/brute(src) - new /obj/item/reagent_containers/glass/bottle/vial/small/preloaded/bicaridine(src) - new /obj/item/reagent_containers/glass/bottle/vial/small/preloaded/bicaridine(src) + new /obj/item/reagent_containers/glass/bottle/vial/small/bicaridine(src) + new /obj/item/reagent_containers/glass/bottle/vial/small/bicaridine(src) /obj/item/storage/hypospraykit/tactical name = "combat hypospray kit" @@ -517,8 +517,8 @@ return new /obj/item/defibrillator/compact/combat/loaded(src) new /obj/item/hypospray/mkii/CMO/combat(src) - new /obj/item/reagent_containers/glass/bottle/vial/large/preloaded/combat(src) - new /obj/item/reagent_containers/glass/bottle/vial/large/preloaded/combat(src) + new /obj/item/reagent_containers/glass/bottle/vial/large/combat(src) + new /obj/item/reagent_containers/glass/bottle/vial/large/combat(src) /obj/item/storage/hypospraykit/cmo name = "deluxe hypospray kit" @@ -537,11 +537,11 @@ if(empty) return new /obj/item/hypospray/mkii/CMO(src) - new /obj/item/reagent_containers/glass/bottle/vial/large/preloaded/tricord(src) - new /obj/item/reagent_containers/glass/bottle/vial/large/preloaded/charcoal(src) - new /obj/item/reagent_containers/glass/bottle/vial/large/preloaded/salglu(src) - new /obj/item/reagent_containers/glass/bottle/vial/large/preloaded/dexalin(src) - new /obj/item/reagent_containers/glass/bottle/vial/large/preloaded/synthflesh(src) + new /obj/item/reagent_containers/glass/bottle/vial/large/tricord(src) + new /obj/item/reagent_containers/glass/bottle/vial/large/charcoal(src) + new /obj/item/reagent_containers/glass/bottle/vial/large/salglu(src) + new /obj/item/reagent_containers/glass/bottle/vial/large/dexalin(src) + new /obj/item/reagent_containers/glass/bottle/vial/large/synthflesh(src) /obj/item/storage/box/vials name = "box of hypovials" diff --git a/code/game/objects/items/tanks/watertank.dm b/code/game/objects/items/tanks/watertank.dm index f3be8cefc8..c1cbf534ca 100644 --- a/code/game/objects/items/tanks/watertank.dm +++ b/code/game/objects/items/tanks/watertank.dm @@ -148,7 +148,7 @@ /obj/item/watertank/janitor/Initialize() . = ..() - reagents.add_reagent("cleaner", 500) + reagents.add_reagent(/datum/reagent/space_cleaner, 500) /obj/item/reagent_containers/spray/mister/janitor name = "janitor spray nozzle" @@ -184,7 +184,7 @@ /obj/item/watertank/atmos/Initialize() . = ..() - reagents.add_reagent("water", 200) + reagents.add_reagent(/datum/reagent/water, 200) /obj/item/watertank/atmos/make_noz() return new /obj/item/extinguisher/mini/nozzle(src) @@ -376,7 +376,7 @@ filling.color = mix_color_from_reagents(reagents.reagent_list) add_overlay(filling) -/obj/item/reagent_containers/chemtank/worn_overlays(var/isinhands = FALSE) //apply chemcolor and level +/obj/item/reagent_containers/chemtank/worn_overlays(isinhands = FALSE, icon_file, style_flags = NONE) //apply chemcolor and level . = list() //inhands + reagent_filling if(!isinhands && reagents.total_volume) @@ -436,13 +436,13 @@ /obj/item/watertank/op/Initialize() . = ..() - reagents.add_reagent("mutagen",350) - reagents.add_reagent("napalm",125) - reagents.add_reagent("welding_fuel",125) - reagents.add_reagent("clf3",300) - reagents.add_reagent("cryptobiolin",350) - reagents.add_reagent("plasma",250) - reagents.add_reagent("condensedcapsaicin",500) + reagents.add_reagent(/datum/reagent/toxin/mutagen,350) + reagents.add_reagent(/datum/reagent/napalm,125) + reagents.add_reagent(/datum/reagent/fuel,125) + reagents.add_reagent(/datum/reagent/clf3,300) + reagents.add_reagent(/datum/reagent/cryptobiolin,350) + reagents.add_reagent(/datum/reagent/toxin/plasma,250) + reagents.add_reagent(/datum/reagent/consumable/condensedcapsaicin,500) /obj/item/reagent_containers/spray/mister/op desc = "A mister nozzle attached to several extended water tanks. It suspiciously has a compressor in the system and is labelled entirely in New Cyrillic." diff --git a/code/game/objects/items/tools/screwdriver.dm b/code/game/objects/items/tools/screwdriver.dm index 91a94e05c3..599577a85b 100644 --- a/code/game/objects/items/tools/screwdriver.dm +++ b/code/game/objects/items/tools/screwdriver.dm @@ -53,7 +53,7 @@ base_overlay.appearance_flags = RESET_COLOR add_overlay(base_overlay) -/obj/item/screwdriver/worn_overlays(isinhands = FALSE, icon_file) +/obj/item/screwdriver/worn_overlays(isinhands = FALSE, icon_file, style_flags = NONE) . = list() if(isinhands && random_color) var/mutable_appearance/M = mutable_appearance(icon_file, "screwdriver_head") diff --git a/code/game/objects/items/tools/weldingtool.dm b/code/game/objects/items/tools/weldingtool.dm index 65b240c528..a74ce67128 100644 --- a/code/game/objects/items/tools/weldingtool.dm +++ b/code/game/objects/items/tools/weldingtool.dm @@ -37,7 +37,7 @@ /obj/item/weldingtool/Initialize() . = ..() create_reagents(max_fuel) - reagents.add_reagent("welding_fuel", max_fuel) + reagents.add_reagent(/datum/reagent/fuel, max_fuel) update_icon() @@ -97,7 +97,7 @@ /obj/item/weldingtool/proc/explode() var/turf/T = get_turf(loc) - var/plasmaAmount = reagents.get_reagent_amount("plasma") + var/plasmaAmount = reagents.get_reagent_amount(/datum/reagent/toxin/plasma) dyn_explosion(T, plasmaAmount/5)//20 plasma in a standard welder has a 4 power explosion. no breaches, but enough to kill/dismember holder qdel(src) @@ -142,7 +142,7 @@ /obj/item/weldingtool/attack_self(mob/user) - if(src.reagents.has_reagent("plasma")) + if(src.reagents.has_reagent(/datum/reagent/toxin/plasma)) message_admins("[ADMIN_LOOKUPFLW(user)] activated a rigged welder at [AREACOORD(user)].") explode() switched_on(user) @@ -154,7 +154,7 @@ // Returns the amount of fuel in the welder /obj/item/weldingtool/proc/get_fuel() - return reagents.get_reagent_amount("welding_fuel") + return reagents.get_reagent_amount(/datum/reagent/fuel) // Uses fuel from the welding tool. @@ -165,7 +165,7 @@ if(used) burned_fuel_for = 0 if(get_fuel() >= used) - reagents.remove_reagent("welding_fuel", used) + reagents.remove_reagent(/datum/reagent/fuel, used) check_fuel() return TRUE else @@ -333,7 +333,7 @@ /obj/item/weldingtool/abductor/process() if(get_fuel() <= max_fuel) - reagents.add_reagent("welding_fuel", 1) + reagents.add_reagent(/datum/reagent/fuel, 1) ..() /obj/item/weldingtool/hugetank @@ -377,7 +377,7 @@ ..() if(get_fuel() < max_fuel && nextrefueltick < world.time) nextrefueltick = world.time + 10 - reagents.add_reagent("welding_fuel", 1) + reagents.add_reagent(/datum/reagent/fuel, 1) /obj/item/weldingtool/advanced name = "advanced welding tool" @@ -390,7 +390,7 @@ /obj/item/weldingtool/advanced/process() if(get_fuel() <= max_fuel) - reagents.add_reagent("welding_fuel", 1) + reagents.add_reagent(/datum/reagent/fuel, 1) ..() #undef WELDER_FUEL_BURN_INTERVAL diff --git a/code/game/objects/items/toys.dm b/code/game/objects/items/toys.dm index 08c43f0437..cf891f5a47 100644 --- a/code/game/objects/items/toys.dm +++ b/code/game/objects/items/toys.dm @@ -353,7 +353,7 @@ update_light() return TRUE -/obj/item/toy/sword/cx/worn_overlays(isinhands, icon_file) +/obj/item/toy/sword/cx/worn_overlays(isinhands, icon_file, style_flags = NONE) . = ..() if(active) if(isinhands) diff --git a/code/game/objects/items/trash.dm b/code/game/objects/items/trash.dm index b2158eb1c8..97f53d3ca7 100644 --- a/code/game/objects/items/trash.dm +++ b/code/game/objects/items/trash.dm @@ -70,12 +70,12 @@ name = "crushed can" icon_state = "cola" resistance_flags = NONE - grind_results = list("aluminium" = 10) + grind_results = list(/datum/reagent/aluminium = 10) /obj/item/trash/boritos name = "boritos bag" icon_state = "boritos" - grind_results = list("aluminium" = 1) //from the mylar bag + grind_results = list(/datum/reagent/aluminium = 1) //from the mylar bag /obj/item/trash/attack(mob/M, mob/living/user) return diff --git a/code/game/objects/items/twohanded.dm b/code/game/objects/items/twohanded.dm index d7891feaa0..b9862c3423 100644 --- a/code/game/objects/items/twohanded.dm +++ b/code/game/objects/items/twohanded.dm @@ -556,7 +556,7 @@ update_light() return TRUE -/obj/item/twohanded/dualsaber/hypereutactic/worn_overlays(isinhands, icon_file) +/obj/item/twohanded/dualsaber/hypereutactic/worn_overlays(isinhands, icon_file, style_flags = NONE) . = ..() if(isinhands) var/mutable_appearance/gem_inhand = mutable_appearance(icon_file, "hypereutactic_gem") @@ -781,6 +781,11 @@ throwforce = 20 throw_speed = 4 attack_verb = list("gored") + var/clonechance = 50 + var/clonedamage = 12 + var/clonespeed = 0 + var/clone_replication_chance = 30 + var/clone_lifespan = 100 /obj/item/twohanded/spear/grey_tide/afterattack(atom/movable/AM, mob/living/user, proximity) . = ..() @@ -791,10 +796,11 @@ var/mob/living/L = AM if(istype (L, /mob/living/simple_animal/hostile/illusion)) return - if(!L.stat && prob(50)) + if(!L.stat && prob(clonechance)) var/mob/living/simple_animal/hostile/illusion/M = new(user.loc) M.faction = user.faction.Copy() - M.Copy_Parent(user, 100, user.health/2.5, 12, 30) + M.set_varspeed(clonespeed) + M.Copy_Parent(user, clone_lifespan, user.health/2.5, clonedamage, clone_replication_chance) M.GiveTarget(L) /obj/item/twohanded/pitchfork @@ -1010,4 +1016,4 @@ var/client/C = user.client C.change_view(CONFIG_GET(string/default_view)) user.client.pixel_x = 0 - user.client.pixel_y = 0 \ No newline at end of file + user.client.pixel_y = 0 diff --git a/code/game/objects/structures/bedsheet_bin.dm b/code/game/objects/structures/bedsheet_bin.dm index 82a0c4d32f..9935fc8ec5 100644 --- a/code/game/objects/structures/bedsheet_bin.dm +++ b/code/game/objects/structures/bedsheet_bin.dm @@ -252,7 +252,7 @@ LINEN BINS add_overlay(g_mouth) add_overlay(g_eyes) -/obj/item/bedsheet/gondola/worn_overlays(isinhands = FALSE, icon_file) +/obj/item/bedsheet/gondola/worn_overlays(isinhands = FALSE, icon_file, style_flags = NONE) . = ..() if(!isinhands) . += mutable_appearance(icon_file, g_mouth) diff --git a/code/game/objects/structures/crates_lockers/closets/secure/engineering.dm b/code/game/objects/structures/crates_lockers/closets/secure/engineering.dm index 579b1444a5..c26dc78e52 100644 --- a/code/game/objects/structures/crates_lockers/closets/secure/engineering.dm +++ b/code/game/objects/structures/crates_lockers/closets/secure/engineering.dm @@ -91,6 +91,7 @@ new /obj/item/tank/internals/emergency_oxygen/engi(src) new /obj/item/analyzer(src) new /obj/item/holosign_creator/atmos(src) + new /obj/item/holosign_creator/firelock(src) new /obj/item/watertank/atmos(src) new /obj/item/clothing/suit/fire/atmos(src) new /obj/item/clothing/head/hardhat/atmos(src) diff --git a/code/game/objects/structures/divine.dm b/code/game/objects/structures/divine.dm index e7a0ac2d04..1da8a26b52 100644 --- a/code/game/objects/structures/divine.dm +++ b/code/game/objects/structures/divine.dm @@ -39,7 +39,7 @@ return last_process = world.time to_chat(user, "The water feels warm and soothing as you touch it. The fountain immediately dries up shortly afterwards.") - user.reagents.add_reagent("godblood",20) + user.reagents.add_reagent(/datum/reagent/medicine/omnizine/godblood,20) update_icon() addtimer(CALLBACK(src, /atom/.proc/update_icon), time_between_uses) diff --git a/code/game/objects/structures/ghost_role_spawners.dm b/code/game/objects/structures/ghost_role_spawners.dm index 705ca9a884..0cce1de41b 100644 --- a/code/game/objects/structures/ghost_role_spawners.dm +++ b/code/game/objects/structures/ghost_role_spawners.dm @@ -619,6 +619,24 @@ skip_reentry_check = TRUE banType = "ghostcafe" +/datum/action/toggle_dead_chat_mob + icon_icon = 'icons/mob/mob.dmi' + button_icon_state = "ghost" + name = "Toggle deadchat" + desc = "Turn off or on your ability to hear ghosts." + +/datum/action/toggle_dead_chat_mob/Trigger() + if(!..()) + return 0 + var/mob/M = target + if(HAS_TRAIT_FROM(M,TRAIT_SIXTHSENSE,GHOSTROLE_TRAIT)) + REMOVE_TRAIT(M,TRAIT_SIXTHSENSE,GHOSTROLE_TRAIT) + to_chat(M,"You're no longer hearing deadchat.") + else + ADD_TRAIT(M,TRAIT_SIXTHSENSE,GHOSTROLE_TRAIT) + to_chat(M,"You're once again longer hearing deadchat.") + + /obj/effect/mob_spawn/human/ghostcafe/special(mob/living/carbon/human/new_spawn) if(new_spawn.client) new_spawn.client.prefs.copy_to(new_spawn) @@ -629,10 +647,13 @@ new_spawn.AddElement(/datum/element/ghost_role_eligibility) ADD_TRAIT(new_spawn, TRAIT_SIXTHSENSE, GHOSTROLE_TRAIT) ADD_TRAIT(new_spawn,TRAIT_EXEMPT_HEALTH_EVENTS,GHOSTROLE_TRAIT) - to_chat(new_spawn,"You maybe sharing your cafe with some ninja-captured individuals, so make sure to only interact with the ghosts you hear as a ghost!") + ADD_TRAIT(new_spawn,TRAIT_PACIFISM,GHOSTROLE_TRAIT) + to_chat(new_spawn,"You may be sharing your cafe with some ninja-captured individuals, so make sure to only interact with the ghosts you hear as a ghost!") to_chat(new_spawn,"You can turn yourself into a ghost and freely reenter your body with the ghost action.") var/datum/action/ghost/G = new(new_spawn) G.Grant(new_spawn) + var/datum/action/toggle_dead_chat_mob/D = new(new_spawn) + D.Grant(new_spawn) /datum/outfit/ghostcafe name = "ID, jumpsuit and shoes" diff --git a/code/game/objects/structures/holosign.dm b/code/game/objects/structures/holosign.dm index 1f007b6993..69ad9f1567 100644 --- a/code/game/objects/structures/holosign.dm +++ b/code/game/objects/structures/holosign.dm @@ -69,9 +69,9 @@ rad_insulation = RAD_LIGHT_INSULATION /obj/structure/holosign/barrier/atmos - name = "holo firelock" - desc = "A holographic barrier resembling a firelock. Though it does not prevent solid objects from passing through, gas is kept out." - icon_state = "holo_firelock" + name = "holo fan" + desc = "A holographic barrier resembling a tiny fan. Though it does not prevent solid objects from passing through, gas is kept out. Somehow." + icon_state = "holo_fan" density = FALSE anchored = TRUE CanAtmosPass = ATMOS_PASS_NO @@ -81,6 +81,18 @@ . = ..() air_update_turf(TRUE) +/obj/structure/holosign/barrier/firelock + name = "holo firelock" + desc = "A holographic barrier resembling a firelock. Though it does not prevent solid objects or gas from passing through, temperature changes are kept out." + icon_state = "holo_firelock" + density = FALSE + anchored = TRUE + alpha = 150 + resistance_flags = FIRE_PROOF + +/obj/structure/holosign/barrier/firelock/blocksTemperature() + return TRUE + /obj/structure/holosign/barrier/cyborg name = "Energy Field" desc = "A fragile energy field that blocks movement. Excels at blocking lethal projectiles." diff --git a/code/game/objects/structures/tables_racks.dm b/code/game/objects/structures/tables_racks.dm index 0bb081625b..3c6a277307 100644 --- a/code/game/objects/structures/tables_racks.dm +++ b/code/game/objects/structures/tables_racks.dm @@ -184,7 +184,7 @@ /obj/structure/table/alt_attack_hand(mob/user) if(user && Adjacent(user) && !user.incapacitated()) - user.setClickCooldown(CLICK_CD_MELEE) + user.setClickCooldown(4) if(istype(user) && user.a_intent == INTENT_HARM) user.visible_message("[user] slams [user.p_their()] palms down on [src].", "You slam your palms down on [src].") playsound(src, 'sound/weapons/sonic_jackhammer.ogg', 50, 1) diff --git a/code/game/objects/structures/watercloset.dm b/code/game/objects/structures/watercloset.dm index e2e0f703f7..a8f95e30da 100644 --- a/code/game/objects/structures/watercloset.dm +++ b/code/game/objects/structures/watercloset.dm @@ -103,7 +103,7 @@ if (!open) return var/obj/item/reagent_containers/RG = I - RG.reagents.add_reagent("water", min(RG.volume - RG.reagents.total_volume, RG.amount_per_transfer_from_this)) + RG.reagents.add_reagent(/datum/reagent/water, min(RG.volume - RG.reagents.total_volume, RG.amount_per_transfer_from_this)) to_chat(user, "You fill [RG] from [src]. Gross.") else return ..() @@ -201,7 +201,7 @@ icon = 'icons/obj/items_and_weapons.dmi' icon_state = "urinalcake" w_class = WEIGHT_CLASS_TINY - list_reagents = list("chlorine" = 3, "ammonia" = 1) + list_reagents = list(/datum/reagent/chlorine = 3, /datum/reagent/ammonia = 1) /obj/item/reagent_containers/food/urinalcake/attack_self(mob/living/user) user.visible_message("[user] squishes [src]!", "You squish [src].", "You hear a squish.") @@ -463,7 +463,7 @@ desc = "A sink used for washing one's hands and face." anchored = TRUE var/busy = FALSE //Something's being washed at the moment - var/dispensedreagent = "water" // for whenever plumbing happens + var/dispensedreagent = /datum/reagent/water // for whenever plumbing happens /obj/structure/sink/attack_hand(mob/living/user) @@ -538,7 +538,7 @@ return if(istype(O, /obj/item/mop)) - O.reagents.add_reagent("[dispensedreagent]", 5) + O.reagents.add_reagent(dispensedreagent, 5) to_chat(user, "You wet [O] in [src].") playsound(loc, 'sound/effects/slosh.ogg', 25, 1) return diff --git a/code/game/turfs/simulated/floor.dm b/code/game/turfs/simulated/floor.dm index f9153ff8bf..720490942a 100644 --- a/code/game/turfs/simulated/floor.dm +++ b/code/game/turfs/simulated/floor.dm @@ -263,7 +263,7 @@ A.autoclose = TRUE return TRUE if(RCD_DECONSTRUCT) - if(ScrapeAway(flags = CHANGETURF_INHERIT_AIR) == src) + if(!ScrapeAway(flags = CHANGETURF_INHERIT_AIR)) return FALSE to_chat(user, "You deconstruct [src].") return TRUE diff --git a/code/game/turfs/turf.dm b/code/game/turfs/turf.dm index d280ba408b..e81b3d1062 100755 --- a/code/game/turfs/turf.dm +++ b/code/game/turfs/turf.dm @@ -554,12 +554,10 @@ clear_reagents_to_vomit_pool(C,V) /proc/clear_reagents_to_vomit_pool(mob/living/carbon/M, obj/effect/decal/cleanable/vomit/V) + for(var/datum/reagent/consumable/R in M.reagents.reagent_list) //clears the stomach of anything that might be digested as food + if(R.nutriment_factor > 0) + M.reagents.del_reagent(R.type) M.reagents.trans_to(V, M.reagents.total_volume / 10) - for(var/datum/reagent/R in M.reagents.reagent_list) //clears the stomach of anything that might be digested as food - if(istype(R, /datum/reagent/consumable)) - var/datum/reagent/consumable/nutri_check = R - if(nutri_check.nutriment_factor >0) - M.reagents.remove_reagent(R.id,R.volume) //Whatever happens after high temperature fire dies out or thermite reaction works. //Should return new turf diff --git a/code/game/world.dm b/code/game/world.dm index 034ecddfa2..e68372d768 100644 --- a/code/game/world.dm +++ b/code/game/world.dm @@ -2,6 +2,9 @@ GLOBAL_VAR(restart_counter) +GLOBAL_VAR(topic_status_lastcache) +GLOBAL_LIST(topic_status_cache) + //This happens after the Master subsystem new(s) (it's a global datum) //So subsystems globals exist, but are not initialised /world/New() diff --git a/code/modules/admin/admin_verbs.dm b/code/modules/admin/admin_verbs.dm index c3ffd10174..8a7269ccad 100644 --- a/code/modules/admin/admin_verbs.dm +++ b/code/modules/admin/admin_verbs.dm @@ -438,6 +438,8 @@ GLOBAL_PROTECT(admin_verbs_hideable) set category = "Admin" set name = "Stealth Mode" if(holder) + if(!check_rights(R_STEALTH, 0)) + return if(holder.fakekey) holder.fakekey = null if(isobserver(mob)) diff --git a/code/modules/admin/verbs/SDQL2/SDQL_2.dm b/code/modules/admin/verbs/SDQL2/SDQL_2.dm index f5075b57b7..d2693a83b6 100644 --- a/code/modules/admin/verbs/SDQL2/SDQL_2.dm +++ b/code/modules/admin/verbs/SDQL2/SDQL_2.dm @@ -95,6 +95,10 @@ Don't crash the server, OK? + "UPDATE /mob/living/carbon/monkey SET #null = forceMove(usr.loc)" + + Writing "#null" in front of the "=" will call the proc and discard the return value. + A quick recommendation: before you run something like a DELETE or another query.. Run it through SELECT first. You'd rather not gib every player on accident. @@ -740,6 +744,9 @@ GLOBAL_DATUM_INIT(sdql2_vv_statobj, /obj/effect/statclick/SDQL2_VV_all, new(null var/datum/temp = d var/i = 0 for(var/v in sets) + if(v == "#null") + SDQL_expression(d, set_list[sets]) + break if(++i == sets.len) if(superuser) if(temp.vars.Find(v)) diff --git a/code/modules/antagonists/abductor/equipment/abduction_gear.dm b/code/modules/antagonists/abductor/equipment/abduction_gear.dm index fce45810d1..dc6d12453d 100644 --- a/code/modules/antagonists/abductor/equipment/abduction_gear.dm +++ b/code/modules/antagonists/abductor/equipment/abduction_gear.dm @@ -795,7 +795,7 @@ icon_state = "bed" can_buckle = 1 - var/static/list/injected_reagents = list("corazone") + var/static/list/injected_reagents = list(/datum/reagent/medicine/corazone) /obj/structure/table/optable/abductor/Crossed(atom/movable/AM) . = ..() diff --git a/code/modules/antagonists/blob/blob/blobs/blob_mobs.dm b/code/modules/antagonists/blob/blob/blobs/blob_mobs.dm index 3cb90d64bb..182fcea0c2 100644 --- a/code/modules/antagonists/blob/blob/blobs/blob_mobs.dm +++ b/code/modules/antagonists/blob/blob/blobs/blob_mobs.dm @@ -143,9 +143,9 @@ create_reagents(10) if(overmind && overmind.blob_reagent_datum) - reagents.add_reagent(overmind.blob_reagent_datum.id, 10) + reagents.add_reagent(overmind.blob_reagent_datum.type, 10) else - reagents.add_reagent("spore", 10) + reagents.add_reagent(/datum/reagent/toxin/spore, 10) // Attach the smoke spreader and setup/start it. S.attach(location) diff --git a/code/modules/antagonists/bloodsucker/bloodsucker_life.dm b/code/modules/antagonists/bloodsucker/bloodsucker_life.dm index bbb8aeca30..10728d0664 100644 --- a/code/modules/antagonists/bloodsucker/bloodsucker_life.dm +++ b/code/modules/antagonists/bloodsucker/bloodsucker_life.dm @@ -84,7 +84,7 @@ //It is called from your coffin on close (by you only) if(poweron_masquerade == TRUE || owner.current.AmStaked()) return FALSE - owner.current.adjustStaminaLoss(-2 + (regenRate * 8) * mult, 0) // Humans lose stamina damage really quickly. Vamps should heal more. + owner.current.adjustStaminaLoss(-2 + (regenRate * -8) * mult, 0) // Humans lose stamina damage really quickly. Vamps should heal more. owner.current.adjustCloneLoss(-0.1 * (regenRate * 2) * mult, 0) owner.current.adjustOrganLoss(ORGAN_SLOT_BRAIN, -1 * (regenRate * 4) * mult) //adjustBrainLoss(-1 * (regenRate * 4) * mult, 0) // No Bleeding diff --git a/code/modules/antagonists/changeling/powers/adrenaline.dm b/code/modules/antagonists/changeling/powers/adrenaline.dm index 256d3e89e3..ba40388844 100644 --- a/code/modules/antagonists/changeling/powers/adrenaline.dm +++ b/code/modules/antagonists/changeling/powers/adrenaline.dm @@ -13,5 +13,5 @@ //Recover from stuns. /obj/effect/proc_holder/changeling/adrenaline/sting_action(mob/living/user) - user.do_adrenaline(0, FALSE, 70, 0, TRUE, list("epinephrine" = 3, "changelingmeth" = 10, "mannitol" = 10, "regen_jelly" = 10, "changelingadrenaline" = 5), "Energy rushes through us.", 0, 0.75, 0) + user.do_adrenaline(0, FALSE, 70, 0, TRUE, list(/datum/reagent/medicine/epinephrine = 3, /datum/reagent/drug/methamphetamine/changeling = 10, /datum/reagent/medicine/mannitol = 10, /datum/reagent/medicine/regen_jelly = 10, /datum/reagent/medicine/changelingadrenaline = 5), "Energy rushes through us.", 0, 0.75, 0) return TRUE \ No newline at end of file diff --git a/code/modules/antagonists/changeling/powers/linglink.dm b/code/modules/antagonists/changeling/powers/linglink.dm index 971c811074..332f543545 100644 --- a/code/modules/antagonists/changeling/powers/linglink.dm +++ b/code/modules/antagonists/changeling/powers/linglink.dm @@ -58,7 +58,7 @@ target.mind.linglink = 1 target.say("[MODE_TOKEN_CHANGELING] AAAAARRRRGGGGGHHHHH!!") to_chat(target, "You can now communicate in the changeling hivemind, say \"[MODE_TOKEN_CHANGELING] message\" to communicate!") - target.reagents.add_reagent("salbutamol", 40) // So they don't choke to death while you interrogate them + target.reagents.add_reagent(/datum/reagent/medicine/salbutamol, 40) // So they don't choke to death while you interrogate them sleep(1800) SSblackbox.record_feedback("nested tally", "changeling_powers", 1, list("[name]", "[i]")) if(!do_mob(user, target, 20)) diff --git a/code/modules/antagonists/changeling/powers/mutations.dm b/code/modules/antagonists/changeling/powers/mutations.dm index 92a4f28308..b2ab5caef8 100644 --- a/code/modules/antagonists/changeling/powers/mutations.dm +++ b/code/modules/antagonists/changeling/powers/mutations.dm @@ -500,7 +500,7 @@ /obj/item/clothing/suit/space/changeling/process() if(ishuman(loc)) var/mob/living/carbon/human/H = loc - H.reagents.add_reagent("salbutamol", REAGENTS_METABOLISM) + H.reagents.add_reagent(/datum/reagent/medicine/salbutamol, REAGENTS_METABOLISM) /obj/item/clothing/head/helmet/space/changeling name = "flesh mass" diff --git a/code/modules/antagonists/changeling/powers/panacea.dm b/code/modules/antagonists/changeling/powers/panacea.dm index 8d571d21e3..2a0451bc76 100644 --- a/code/modules/antagonists/changeling/powers/panacea.dm +++ b/code/modules/antagonists/changeling/powers/panacea.dm @@ -28,10 +28,10 @@ C.vomit(0, toxic = TRUE) O.forceMove(get_turf(user)) - user.reagents.add_reagent("mutadone", 10) - user.reagents.add_reagent("pen_jelly", 20) - user.reagents.add_reagent("antihol", 10) - user.reagents.add_reagent("mannitol", 25) + user.reagents.add_reagent(/datum/reagent/medicine/mutadone, 10) + user.reagents.add_reagent(/datum/reagent/medicine/pen_acid/pen_jelly, 20) + user.reagents.add_reagent(/datum/reagent/medicine/antihol, 10) + user.reagents.add_reagent(/datum/reagent/medicine/mannitol, 25) if(isliving(user)) var/mob/living/L = user diff --git a/code/modules/antagonists/changeling/powers/tiny_prick.dm b/code/modules/antagonists/changeling/powers/tiny_prick.dm index c58d934d6d..dc7887eee3 100644 --- a/code/modules/antagonists/changeling/powers/tiny_prick.dm +++ b/code/modules/antagonists/changeling/powers/tiny_prick.dm @@ -104,11 +104,11 @@ var/mob/living/carbon/C = target . = TRUE if(istype(C)) - if(C.reagents.has_reagent("changeling_sting_real")) - C.reagents.add_reagent("changeling_sting_real",120) + if(C.reagents.has_reagent(/datum/reagent/changeling_string)) + C.reagents.add_reagent(/datum/reagent/changeling_string,120) log_combat(user, target, "stung", "transformation sting", ", extending the duration.") else - C.reagents.add_reagent("changeling_sting_real",120,list("desired_dna" = selected_dna.dna)) + C.reagents.add_reagent(/datum/reagent/changeling_string,120,list("desired_dna" = selected_dna.dna)) log_combat(user, target, "stung", "transformation sting", " new identity is '[selected_dna.dna.real_name]'") @@ -243,8 +243,8 @@ /obj/effect/proc_holder/changeling/sting/LSD/sting_action(mob/user, mob/target) log_combat(user, target, "stung", "LSD sting") if(target.reagents) - target.reagents.add_reagent("regenerative_materia", 5) - target.reagents.add_reagent("mindbreaker", 5) + target.reagents.add_reagent(/datum/reagent/blob/regenerative_materia, 5) + target.reagents.add_reagent(/datum/reagent/toxin/mindbreaker, 5) return TRUE /obj/effect/proc_holder/changeling/sting/cryo @@ -262,5 +262,5 @@ /obj/effect/proc_holder/changeling/sting/cryo/sting_action(mob/user, mob/target) log_combat(user, target, "stung", "cryo sting") if(target.reagents) - target.reagents.add_reagent("frostoil", 30) + target.reagents.add_reagent(/datum/reagent/consumable/frostoil, 30) return TRUE diff --git a/code/modules/antagonists/clockcult/clock_helpers/slab_abilities.dm b/code/modules/antagonists/clockcult/clock_helpers/slab_abilities.dm index 1f616b7dbc..9f2ddfda47 100644 --- a/code/modules/antagonists/clockcult/clock_helpers/slab_abilities.dm +++ b/code/modules/antagonists/clockcult/clock_helpers/slab_abilities.dm @@ -100,7 +100,7 @@ var/burndamage = L.getFireLoss() var/oxydamage = L.getOxyLoss() var/totaldamage = brutedamage + burndamage + oxydamage - if(!totaldamage && (!L.reagents || !L.reagents.has_reagent("holywater"))) + if(!totaldamage && (!L.reagents || !L.reagents.has_reagent(/datum/reagent/water/holywater))) to_chat(ranged_ability_user, "\"[L] is unhurt and untainted.\"") return TRUE @@ -108,7 +108,7 @@ to_chat(ranged_ability_user, "You bathe [L == ranged_ability_user ? "yourself":"[L]"] in Inath-neq's power!") var/targetturf = get_turf(L) - var/has_holy_water = (L.reagents && L.reagents.has_reagent("holywater")) + var/has_holy_water = (L.reagents && L.reagents.has_reagent(/datum/reagent/water/holywater)) var/healseverity = max(round(totaldamage*0.05, 1), 1) //shows the general severity of the damage you just healed, 1 glow per 20 for(var/i in 1 to healseverity) new /obj/effect/temp_visual/heal(targetturf, "#1E8CE1") @@ -129,7 +129,7 @@ playsound(targetturf, 'sound/magic/staff_healing.ogg', 50, 1) if(has_holy_water) - L.reagents.remove_reagent("holywater", 1000) + L.reagents.del_reagent(/datum/reagent/water/holywater) remove_ranged_ability() diff --git a/code/modules/antagonists/clockcult/clock_items/clockwork_armor.dm b/code/modules/antagonists/clockcult/clock_items/clockwork_armor.dm index 88cf420420..e01156ba44 100644 --- a/code/modules/antagonists/clockcult/clock_items/clockwork_armor.dm +++ b/code/modules/antagonists/clockcult/clock_items/clockwork_armor.dm @@ -7,7 +7,7 @@ w_class = WEIGHT_CLASS_NORMAL resistance_flags = FIRE_PROOF | ACID_PROOF flags_inv = HIDEEARS|HIDEHAIR|HIDEFACE|HIDESNOUT - mutantrace_variation = MUTANTRACE_VARIATION + mutantrace_variation = STYLE_MUZZLE armor = list("melee" = 50, "bullet" = 70, "laser" = -25, "energy" = 0, "bomb" = 60, "bio" = 0, "rad" = 0, "fire" = 100, "acid" = 100) /obj/item/clothing/head/helmet/clockwork/Initialize() diff --git a/code/modules/antagonists/clockcult/clock_items/clockwork_slab.dm b/code/modules/antagonists/clockcult/clock_items/clockwork_slab.dm index d4d5349c70..b12c72b4af 100644 --- a/code/modules/antagonists/clockcult/clock_items/clockwork_slab.dm +++ b/code/modules/antagonists/clockcult/clock_items/clockwork_slab.dm @@ -103,7 +103,7 @@ . = ..() addtimer(CALLBACK(src, .proc/check_on_mob, user), 1) //dropped is called before the item is out of the slot, so we need to check slightly later -/obj/item/clockwork/slab/worn_overlays(isinhands = FALSE, icon_file) +/obj/item/clockwork/slab/worn_overlays(isinhands = FALSE, icon_file, style_flags = NONE) . = list() if(isinhands && item_state && inhand_overlay) var/mutable_appearance/M = mutable_appearance(icon_file, "slab_[inhand_overlay]") diff --git a/code/modules/antagonists/cult/cult_items.dm b/code/modules/antagonists/cult/cult_items.dm index b4ddb9dbff..f5be94a0e7 100644 --- a/code/modules/antagonists/cult/cult_items.dm +++ b/code/modules/antagonists/cult/cult_items.dm @@ -331,7 +331,7 @@ flags_inv = HIDEFACE|HIDEHAIR|HIDEFACIALHAIR|HIDEEARS|HIDEEYES|HIDESNOUT armor = list("melee" = 30, "bullet" = 30, "laser" = 30,"energy" = 20, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 10, "acid" = 10) flags_cover = HEADCOVERSEYES | HEADCOVERSMOUTH - mutantrace_variation = MUTANTRACE_VARIATION + mutantrace_variation = STYLE_MUZZLE /obj/item/clothing/suit/magusred name = "magus robes" @@ -424,7 +424,7 @@ return 1 return 0 -/obj/item/clothing/suit/hooded/cultrobes/cult_shield/worn_overlays(isinhands) +/obj/item/clothing/suit/hooded/cultrobes/cult_shield/worn_overlays(isinhands, icon_file, style_flags = NONE) . = list() if(!isinhands && current_charges) . += mutable_appearance('icons/effects/cult_effects.dmi', "shield-cult", MOB_LAYER + 0.01) @@ -487,7 +487,7 @@ icon = 'icons/obj/drinks.dmi' icon_state = "holyflask" color = "#333333" - list_reagents = list("unholywater" = 50) + list_reagents = list(/datum/reagent/fuel/unholywater = 50) /obj/item/shuttle_curse name = "cursed orb" @@ -797,7 +797,7 @@ if(ishuman(target)) var/mob/living/carbon/human/H = target if(H.stat != DEAD) - H.reagents.add_reagent("unholywater", 4) + H.reagents.add_reagent(/datum/reagent/fuel/unholywater, 4) if(isshade(target) || isconstruct(target)) var/mob/living/simple_animal/M = target if(M.health+5 < M.maxHealth) @@ -898,7 +898,7 @@ if(ishuman(target)) var/mob/living/carbon/human/H = target if(H.stat != DEAD) - H.reagents.add_reagent("unholywater", 7) + H.reagents.add_reagent(/datum/reagent/fuel/unholywater, 7) if(isshade(target) || isconstruct(target)) var/mob/living/simple_animal/M = target if(M.health+15 < M.maxHealth) diff --git a/code/modules/antagonists/cult/ritual.dm b/code/modules/antagonists/cult/ritual.dm index ff12a835ef..ba2a96289d 100644 --- a/code/modules/antagonists/cult/ritual.dm +++ b/code/modules/antagonists/cult/ritual.dm @@ -24,11 +24,11 @@ This file contains the cult dagger and rune list code /obj/item/melee/cultblade/dagger/attack(mob/living/M, mob/living/user) if(iscultist(M)) - if(M.reagents && M.reagents.has_reagent("holywater")) //allows cultists to be rescued from the clutches of ordained religion + if(M.reagents && M.reagents.has_reagent(/datum/reagent/water/holywater)) //allows cultists to be rescued from the clutches of ordained religion to_chat(user, "You remove the taint from [M]." ) - var/holy2unholy = M.reagents.get_reagent_amount("holywater") - M.reagents.del_reagent("holywater") - M.reagents.add_reagent("unholywater",holy2unholy) + var/holy2unholy = M.reagents.get_reagent_amount(/datum/reagent/water/holywater) + M.reagents.del_reagent(/datum/reagent/water/holywater) + M.reagents.add_reagent(/datum/reagent/fuel/unholywater,holy2unholy) log_combat(user, M, "smacked", src, " removing the holy water from them") return FALSE . = ..() diff --git a/code/modules/antagonists/devil/devil.dm b/code/modules/antagonists/devil/devil.dm index 2e38734b6f..951fe4e18a 100644 --- a/code/modules/antagonists/devil/devil.dm +++ b/code/modules/antagonists/devil/devil.dm @@ -384,14 +384,14 @@ GLOBAL_LIST_INIT(devil_suffix, list(" the Red", " the Soulless", " the Master", if(BANISH_WATER) if(iscarbon(body)) var/mob/living/carbon/H = body - return H.reagents.has_reagent("holy water") + return H.reagents.has_reagent(/datum/reagent/water/holywater) return 0 if(BANISH_COFFIN) return (body && istype(body.loc, /obj/structure/closet/crate/coffin)) if(BANISH_FORMALDYHIDE) if(iscarbon(body)) var/mob/living/carbon/H = body - return H.reagents.has_reagent("formaldehyde") + return H.reagents.has_reagent(/datum/reagent/toxin/formaldehyde) return 0 if(BANISH_RUNES) if(body) diff --git a/code/modules/antagonists/devil/true_devil/_true_devil.dm b/code/modules/antagonists/devil/true_devil/_true_devil.dm index fc50a0ecf5..5725ac137b 100644 --- a/code/modules/antagonists/devil/true_devil/_true_devil.dm +++ b/code/modules/antagonists/devil/true_devil/_true_devil.dm @@ -197,11 +197,11 @@ if(!ascended) var/b_loss switch (severity) - if (1) + if (EXPLODE_DEVASTATE) b_loss = 500 - if (2) + if (EXPLODE_HEAVY) b_loss = 150 - if(3) + if(EXPLODE_LIGHT) b_loss = 30 if(has_bane(BANE_LIGHT)) b_loss *=2 diff --git a/code/modules/antagonists/nukeop/equipment/nuclearbomb.dm b/code/modules/antagonists/nukeop/equipment/nuclearbomb.dm index e1c50a7cf5..2186e8b49e 100644 --- a/code/modules/antagonists/nukeop/equipment/nuclearbomb.dm +++ b/code/modules/antagonists/nukeop/equipment/nuclearbomb.dm @@ -513,7 +513,7 @@ /obj/machinery/nuclearbomb/beer/proc/fizzbuzz() var/datum/reagents/R = new/datum/reagents(1000) R.my_atom = src - R.add_reagent("beer", 100) + R.add_reagent(/datum/reagent/consumable/ethanol/beer, 100) var/datum/effect_system/foam_spread/foam = new foam.set_up(200, get_turf(src), R) diff --git a/code/modules/antagonists/revenant/revenant_abilities.dm b/code/modules/antagonists/revenant/revenant_abilities.dm index d6582a294f..d2e71615e3 100644 --- a/code/modules/antagonists/revenant/revenant_abilities.dm +++ b/code/modules/antagonists/revenant/revenant_abilities.dm @@ -353,7 +353,7 @@ to_chat(H, "You feel [pick("suddenly sick", "a surge of nausea", "like your skin is wrong")].") else if(mob.reagents) - mob.reagents.add_reagent("plasma", 5) + mob.reagents.add_reagent(/datum/reagent/toxin/plasma, 5) else mob.adjustToxLoss(5) for(var/obj/structure/spacevine/vine in T) //Fucking with botanists, the ability. diff --git a/code/modules/atmospherics/environmental/LINDA_turf_tile.dm b/code/modules/atmospherics/environmental/LINDA_turf_tile.dm index 196bf70fdc..389f1a69f3 100644 --- a/code/modules/atmospherics/environmental/LINDA_turf_tile.dm +++ b/code/modules/atmospherics/environmental/LINDA_turf_tile.dm @@ -358,6 +358,9 @@ SSair.excited_groups -= src ////////////////////////SUPERCONDUCTIVITY///////////////////////////// +/atom/movable/proc/blocksTemperature() + return FALSE + /turf/proc/conductivity_directions() if(archived_cycle < SSair.times_fired) archive() @@ -372,6 +375,9 @@ . |= direction /turf/proc/neighbor_conduct_with_src(turf/open/other) + for (var/atom/movable/G in src) + if (G.blocksTemperature()) + return if(!other.blocks_air) //Open but neighbor is solid other.temperature_share_open_to_solid(src) else //Both tiles are solid @@ -382,7 +388,9 @@ if(blocks_air) ..() return - + for (var/atom/movable/G in src) + if (G.blocksTemperature()) + return if(!other.blocks_air) //Both tiles are open var/turf/open/T = other T.air.temperature_share(air, WINDOW_HEAT_TRANSFER_COEFFICIENT) @@ -401,10 +409,8 @@ if(!neighbor.thermal_conductivity) continue - if(neighbor.archived_cycle < SSair.times_fired) neighbor.archive() - neighbor.neighbor_conduct_with_src(src) neighbor.consider_superconductivity() diff --git a/code/modules/atmospherics/machinery/airalarm.dm b/code/modules/atmospherics/machinery/airalarm.dm index cbbfc05f39..e49368016b 100644 --- a/code/modules/atmospherics/machinery/airalarm.dm +++ b/code/modules/atmospherics/machinery/airalarm.dm @@ -822,6 +822,21 @@ return ..() +/obj/machinery/airalarm/rcd_vals(mob/user, obj/item/construction/rcd/the_rcd) + if((buildstage == 0) && (the_rcd.upgrade & RCD_UPGRADE_SIMPLE_CIRCUITS)) + return list("mode" = RCD_UPGRADE_SIMPLE_CIRCUITS, "delay" = 20, "cost" = 1) + return FALSE + +/obj/machinery/airalarm/rcd_act(mob/user, obj/item/construction/rcd/the_rcd, passed_mode) + switch(passed_mode) + if(RCD_UPGRADE_SIMPLE_CIRCUITS) + user.visible_message("[user] fabricates a circuit and places it into [src].", \ + "You adapt an air alarm circuit and slot it into the assembly.") + buildstage = 1 + update_icon() + return TRUE + return FALSE + /obj/machinery/airalarm/AltClick(mob/user) . = ..() if(!user.canUseTopic(src, !issilicon(user)) || !isturf(loc)) diff --git a/code/modules/awaymissions/mission_code/snowdin.dm b/code/modules/awaymissions/mission_code/snowdin.dm index d885372f5f..85ac20ca0d 100644 --- a/code/modules/awaymissions/mission_code/snowdin.dm +++ b/code/modules/awaymissions/mission_code/snowdin.dm @@ -175,7 +175,7 @@ if(C.reagents.total_volume >= C.volume) to_chat(user, "[C] is full.") return - C.reagents.add_reagent("plasma", rand(5, 10)) + C.reagents.add_reagent(/datum/reagent/toxin/plasma, rand(5, 10)) user.visible_message("[user] scoops some plasma from the [src] with \the [C].", "You scoop out some plasma from the [src] using \the [C].") /turf/open/lava/plasma/burn_stuff(AM) diff --git a/code/modules/cargo/bounties/reagent.dm b/code/modules/cargo/bounties/reagent.dm index 5137d0a6f3..ca76c80df7 100644 --- a/code/modules/cargo/bounties/reagent.dm +++ b/code/modules/cargo/bounties/reagent.dm @@ -12,7 +12,7 @@ /datum/bounty/reagent/applies_to(obj/O) if(!istype(O, /obj/item/reagent_containers)) return FALSE - if(!O.reagents || !O.reagents.has_reagent(wanted_reagent.id)) + if(!O.reagents || !O.reagents.has_reagent(wanted_reagent.type)) return FALSE if(O.flags_1 & HOLOGRAM_1) return FALSE @@ -21,7 +21,7 @@ /datum/bounty/reagent/ship(obj/O) if(!applies_to(O)) return - shipped_volume += O.reagents.get_reagent_amount(wanted_reagent.id) + shipped_volume += O.reagents.get_reagent_amount(wanted_reagent.type) if(shipped_volume > required_volume) shipped_volume = required_volume @@ -29,7 +29,7 @@ if(!istype(other_bounty, /datum/bounty/reagent)) return TRUE var/datum/bounty/reagent/R = other_bounty - return wanted_reagent.id != R.wanted_reagent.id + return wanted_reagent.type != R.wanted_reagent.type /datum/bounty/reagent/simple_drink name = "Simple Drink" diff --git a/code/modules/client/preferences_savefile.dm b/code/modules/client/preferences_savefile.dm index d78b9fe6fd..2472cbef78 100644 --- a/code/modules/client/preferences_savefile.dm +++ b/code/modules/client/preferences_savefile.dm @@ -5,7 +5,7 @@ // You do not need to raise this if you are adding new values that have sane defaults. // Only raise this value when changing the meaning/format/name/layout of an existing value // where you would want the updater procs below to run -#define SAVEFILE_VERSION_MAX 24 +#define SAVEFILE_VERSION_MAX 25 /* SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Carn @@ -113,6 +113,11 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car var/datum/quirk/exhibitionism/E var/quirk_name = initial(E.name) all_quirks += quirk_name + if(current_version < 25) + var/digi + S["feature_lizard_legs"] >> digi + if(digi == "Digitigrade Legs") + WRITE_FILE(S["feature_lizard_legs"], "Digitigrade") /datum/preferences/proc/load_path(ckey,filename="preferences.sav") if(!ckey) @@ -509,7 +514,7 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car features["frills"] = sanitize_inlist(features["frills"], GLOB.frills_list) features["spines"] = sanitize_inlist(features["spines"], GLOB.spines_list) features["body_markings"] = sanitize_inlist(features["body_markings"], GLOB.body_markings_list) - features["feature_lizard_legs"] = sanitize_inlist(features["legs"], GLOB.legs_list) + features["legs"] = sanitize_inlist(features["legs"], GLOB.legs_list, "Plantigrade") features["deco_wings"] = sanitize_inlist(features["deco_wings"], GLOB.deco_wings_list, "None") features["insect_fluff"] = sanitize_inlist(features["insect_fluff"], GLOB.insect_fluffs_list) features["insect_markings"] = sanitize_inlist(features["insect_markings"], GLOB.insect_markings_list, "None") diff --git a/code/modules/client/verbs/looc.dm b/code/modules/client/verbs/looc.dm index b371372dfe..38cfd84b9c 100644 --- a/code/modules/client/verbs/looc.dm +++ b/code/modules/client/verbs/looc.dm @@ -10,9 +10,7 @@ GLOBAL_VAR_INIT(normal_looc_colour, "#6699CC") to_chat(usr, " Speech is currently admin-disabled.") return - if(!mob) return - if(IsGuestKey(key)) - to_chat(src, "Guests may not use OOC.") + if(!mob) return msg = copytext(sanitize(msg), 1, MAX_MESSAGE_LEN) diff --git a/code/modules/clothing/chameleon.dm b/code/modules/clothing/chameleon.dm index 8b2a34a089..b67fe2b462 100644 --- a/code/modules/clothing/chameleon.dm +++ b/code/modules/clothing/chameleon.dm @@ -220,10 +220,14 @@ var/obj/item/I = target I.item_state = initial(picked_item.item_state) I.item_color = initial(picked_item.item_color) - if(istype(I, /obj/item/clothing) && istype(initial(picked_item), /obj/item/clothing)) - var/obj/item/clothing/CL = I - var/obj/item/clothing/PCL = picked_item - CL.flags_cover = initial(PCL.flags_cover) + var/obj/item/clothing/CL = target + var/obj/item/clothing/PCL = new picked_item + if(istype(CL) && istype(PCL)) + CL.flags_cover = PCL.flags_cover + CL.flags_inv = PCL.flags_inv + CL.mutantrace_variation = PCL.mutantrace_variation + CL.alternate_worn_icon = PCL.alternate_worn_icon + qdel(PCL) target.icon = initial(picked_item.icon) /datum/action/item_action/chameleon/change/pda/update_item(obj/item/pda/picked_item) @@ -634,6 +638,7 @@ /obj/item/clothing/neck/cloak/chameleon name = "black tie" desc = "A neosilk clip-on tie." + icon = 'icons/obj/clothing/neck.dmi' icon_state = "blacktie" item_color = "blacktie" resistance_flags = NONE diff --git a/code/modules/clothing/clothing.dm b/code/modules/clothing/clothing.dm index 6fd1584e75..4d441e7e2b 100644 --- a/code/modules/clothing/clothing.dm +++ b/code/modules/clothing/clothing.dm @@ -81,7 +81,7 @@ /obj/item/reagent_containers/food/snacks/clothing name = "oops" desc = "If you're reading this it means I messed up. This is related to moths eating clothes and I didn't know a better way to do it than making a new food object." - list_reagents = list("nutriment" = 1) + list_reagents = list(/datum/reagent/consumable/nutriment = 1) tastes = list("dust" = 1, "lint" = 1) /obj/item/clothing/attack(mob/M, mob/user, def_zone) diff --git a/code/modules/clothing/glasses/_glasses.dm b/code/modules/clothing/glasses/_glasses.dm index a80cf6fba3..d91a2b9a2c 100644 --- a/code/modules/clothing/glasses/_glasses.dm +++ b/code/modules/clothing/glasses/_glasses.dm @@ -303,7 +303,7 @@ add_atom_colour("#[user.eye_color]", FIXED_COLOUR_PRIORITY) colored_before = TRUE -/obj/item/clothing/glasses/sunglasses/blindfold/white/worn_overlays(isinhands = FALSE, file2use) +/obj/item/clothing/glasses/sunglasses/blindfold/white/worn_overlays(isinhands = FALSE, icon_file, style_flags = NONE) . = list() if(!isinhands && ishuman(loc) && !colored_before) var/mob/living/carbon/human/H = loc diff --git a/code/modules/clothing/glasses/phantomthief.dm b/code/modules/clothing/glasses/phantomthief.dm index f5a15f7900..96f5cfc201 100644 --- a/code/modules/clothing/glasses/phantomthief.dm +++ b/code/modules/clothing/glasses/phantomthief.dm @@ -26,7 +26,7 @@ /obj/item/clothing/glasses/phantomthief/syndicate/proc/injectadrenaline(mob/user, combatmodestate) if(istype(user) && combatmodestate && world.time >= nextadrenalinepop) nextadrenalinepop = world.time + 5 MINUTES - user.reagents.add_reagent("syndicateadrenals", 5) + user.reagents.add_reagent(/datum/reagent/syndicateadrenals, 5) user.playsound_local(user, 'sound/misc/adrenalinject.ogg', 100, 0, pressure_affected = FALSE) /obj/item/clothing/glasses/phantomthief/syndicate/equipped(mob/user, slot) diff --git a/code/modules/clothing/gloves/_gloves.dm b/code/modules/clothing/gloves/_gloves.dm index ac491c2bc5..87d9f359eb 100644 --- a/code/modules/clothing/gloves/_gloves.dm +++ b/code/modules/clothing/gloves/_gloves.dm @@ -24,7 +24,7 @@ user.visible_message("\the [src] are forcing [user]'s hands around [user.p_their()] neck! It looks like the gloves are possessed!") return OXYLOSS -/obj/item/clothing/gloves/worn_overlays(isinhands = FALSE) +/obj/item/clothing/gloves/worn_overlays(isinhands = FALSE, icon_file, style_flags = NONE) . = list() if(!isinhands) if(damaged_clothes) diff --git a/code/modules/clothing/head/_head.dm b/code/modules/clothing/head/_head.dm index ec6db20cc4..a875561056 100644 --- a/code/modules/clothing/head/_head.dm +++ b/code/modules/clothing/head/_head.dm @@ -8,8 +8,6 @@ var/blockTracking = 0 //For AI tracking var/can_toggle = null dynamic_hair_suffix = "+generic" - var/muzzle_var = NORMAL_STYLE - mutantrace_variation = NO_MUTANTRACE_VARIATION //not all hats have muzzles /obj/item/clothing/head/Initialize() . = ..() @@ -17,30 +15,6 @@ var/mob/living/carbon/human/H = loc H.update_hair() -/obj/item/clothing/head/equipped(mob/user, slot) - ..() - if(ishuman(user)) - var/mob/living/carbon/human/H = user - var/datum/species/pref_species = H.dna.species - - if(mutantrace_variation) - if("mam_snouts" in pref_species.default_features) - if(H.dna.features["mam_snouts"] != "None") - muzzle_var = ALT_STYLE - else - muzzle_var = NORMAL_STYLE - - else if("snout" in pref_species.default_features) - if(H.dna.features["snout"] != "None") - muzzle_var = ALT_STYLE - else - muzzle_var = NORMAL_STYLE - - else - muzzle_var = NORMAL_STYLE - - H.update_inv_head() - ///Special throw_impact for hats to frisbee hats at people to place them on their heads. /obj/item/clothing/head/throw_impact(atom/hit_atom, datum/thrownthing/thrownthing) . = ..() @@ -74,7 +48,7 @@ -/obj/item/clothing/head/worn_overlays(isinhands = FALSE) +/obj/item/clothing/head/worn_overlays(isinhands = FALSE, icon_file, style_flags = NONE) . = list() if(!isinhands) if(damaged_clothes) diff --git a/code/modules/clothing/head/hardhat.dm b/code/modules/clothing/head/hardhat.dm index 19f03dfd0a..51822cab77 100644 --- a/code/modules/clothing/head/hardhat.dm +++ b/code/modules/clothing/head/hardhat.dm @@ -91,7 +91,7 @@ max_heat_protection_temperature = FIRE_IMMUNITY_MAX_TEMP_PROTECT cold_protection = HEAD min_cold_protection_temperature = FIRE_HELM_MIN_TEMP_PROTECT - mutantrace_variation = MUTANTRACE_VARIATION + mutantrace_variation = STYLE_MUZZLE /obj/item/clothing/head/hardhat/weldhat name = "welding hard hat" @@ -125,7 +125,7 @@ playsound(src, 'sound/mecha/mechmove03.ogg', 50, TRUE) //Visors don't just come from nothing update_icon() -/obj/item/clothing/head/hardhat/weldhat/worn_overlays(isinhands) +/obj/item/clothing/head/hardhat/weldhat/worn_overlays(isinhands, icon_file, style_flags = NONE) . = ..() if(!isinhands) . += mutable_appearance('icons/mob/head.dmi', "weldhelmet") diff --git a/code/modules/clothing/head/helmet.dm b/code/modules/clothing/head/helmet.dm index ad450ec7aa..c2992b7651 100644 --- a/code/modules/clothing/head/helmet.dm +++ b/code/modules/clothing/head/helmet.dm @@ -76,7 +76,7 @@ flags_cover = HEADCOVERSEYES | HEADCOVERSMOUTH visor_flags_cover = HEADCOVERSEYES | HEADCOVERSMOUTH dog_fashion = null - mutantrace_variation = MUTANTRACE_VARIATION + mutantrace_variation = STYLE_MUZZLE /obj/item/clothing/head/helmet/attack_self(mob/user) if(can_toggle && !user.incapacitated()) @@ -217,7 +217,7 @@ flags_cover = HEADCOVERSEYES | HEADCOVERSMOUTH strip_delay = 80 dog_fashion = null - mutantrace_variation = MUTANTRACE_VARIATION + mutantrace_variation = STYLE_MUZZLE /obj/item/clothing/head/helmet/knight/Initialize(mapload) @@ -246,7 +246,7 @@ icon_state = "skull" item_state = "skull" strip_delay = 100 - mutantrace_variation = MUTANTRACE_VARIATION + mutantrace_variation = STYLE_MUZZLE //LightToggle diff --git a/code/modules/clothing/head/misc.dm b/code/modules/clothing/head/misc.dm index 3fa5d56d1e..4c6a0fa3b6 100644 --- a/code/modules/clothing/head/misc.dm +++ b/code/modules/clothing/head/misc.dm @@ -66,7 +66,7 @@ item_state = "syndicate-helm-black-red" desc = "A plastic replica of a Syndicate agent's space helmet. You'll look just like a real murderous Syndicate agent in this! This is a toy, it is not made for use in space!" flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE|HIDEHAIR|HIDEFACIALHAIR|HIDESNOUT - mutantrace_variation = MUTANTRACE_VARIATION + mutantrace_variation = STYLE_MUZZLE /obj/item/clothing/head/cueball name = "cueball helmet" @@ -392,3 +392,33 @@ desc = "A green Christmas Hat! How festive!" icon_state = "christmashatg" item_state = "christmashatg" + +/obj/item/clothing/head/cowboyhat + name = "cowboy hat" + desc = "A standard brown cowboy hat, yeehaw." + icon_state = "cowboyhat" + item_state= "cowboyhat" + +/obj/item/clothing/head/cowboyhat/black + name = "black cowboy hat" + desc = "A a black cowboy hat, perfect for any outlaw" + icon_state = "cowboyhat_black" + item_state= "cowboyhat_black" + +/obj/item/clothing/head/cowboyhat/white + name = "white cowboy hat" + desc = "A white cowboy hat, perfect for your every day rancher" + icon_state = "cowboyhat_white" + item_state= "cowboyhat_white" + +/obj/item/clothing/head/cowboyhat/pink + name = "pink cowboy hat" + desc = "A pink cowboy? more like cowgirl hat, just don't be a buckle bunny." + icon_state = "cowboyhat_pink" + item_state= "cowboyhat_pink" + +/obj/item/clothing/head/cowboyhat/sec + name = "security cowboy hat" + desc = "A security cowboy hat, perfect for any true lawman" + icon_state = "cowboyhat_sec" + item_state= "cowboyhat_sec" \ No newline at end of file diff --git a/code/modules/clothing/head/misc_special.dm b/code/modules/clothing/head/misc_special.dm index 127bf4c773..a18d68cc72 100644 --- a/code/modules/clothing/head/misc_special.dm +++ b/code/modules/clothing/head/misc_special.dm @@ -28,7 +28,7 @@ visor_flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE visor_flags_cover = HEADCOVERSEYES | HEADCOVERSMOUTH resistance_flags = FIRE_PROOF - mutantrace_variation = MUTANTRACE_VARIATION + mutantrace_variation = STYLE_MUZZLE /obj/item/clothing/head/welding/attack_self(mob/user) weldingvisortoggle(user) @@ -206,7 +206,7 @@ M.color = hair_color add_overlay(M) -/obj/item/clothing/head/wig/worn_overlays(isinhands = FALSE, file2use) +/obj/item/clothing/head/wig/worn_overlays(isinhands = FALSE, icon_file, style_flags = NONE) . = list() if(!isinhands) var/datum/sprite_accessory/S = GLOB.hair_styles_list[hair_style] diff --git a/code/modules/clothing/masks/_masks.dm b/code/modules/clothing/masks/_masks.dm index c00e6f72e0..3b2edce795 100644 --- a/code/modules/clothing/masks/_masks.dm +++ b/code/modules/clothing/masks/_masks.dm @@ -8,9 +8,6 @@ var/modifies_speech = FALSE var/mask_adjusted = 0 var/adjusted_flags = null - var/muzzle_var = NORMAL_STYLE - mutantrace_variation = NO_MUTANTRACE_VARIATION //most masks have overrides, but not all probably. - /obj/item/clothing/mask/attack_self(mob/user) if(CHECK_BITFIELD(clothing_flags, VOICEBOX_TOGGLABLE)) @@ -24,28 +21,6 @@ RegisterSignal(M, COMSIG_MOB_SAY, .proc/handle_speech) else UnregisterSignal(M, COMSIG_MOB_SAY) - if(!ishuman(M)) - return - var/mob/living/carbon/human/H = M - var/datum/species/pref_species = H.dna.species - - if(mutantrace_variation) - if("mam_snouts" in pref_species.default_features) - if(H.dna.features["mam_snouts"] != "None") - muzzle_var = ALT_STYLE - else - muzzle_var = NORMAL_STYLE - - else if("snout" in pref_species.default_features) - if(H.dna.features["snout"] != "None") - muzzle_var = ALT_STYLE - else - muzzle_var = NORMAL_STYLE - - else - muzzle_var = NORMAL_STYLE - - H.update_inv_wear_mask() /obj/item/clothing/mask/dropped(mob/M) . = ..() @@ -53,7 +28,7 @@ /obj/item/clothing/mask/proc/handle_speech() -/obj/item/clothing/mask/worn_overlays(isinhands = FALSE) +/obj/item/clothing/mask/worn_overlays(isinhands = FALSE, icon_file, style_flags = NONE) . = list() if(!isinhands) if(body_parts_covered & HEAD) diff --git a/code/modules/clothing/masks/boxing.dm b/code/modules/clothing/masks/boxing.dm index aa8df7123a..dc151cdd42 100644 --- a/code/modules/clothing/masks/boxing.dm +++ b/code/modules/clothing/masks/boxing.dm @@ -7,7 +7,7 @@ visor_flags_inv = HIDEFACE|HIDEFACIALHAIR w_class = WEIGHT_CLASS_SMALL actions_types = list(/datum/action/item_action/adjust) - mutantrace_variation = MUTANTRACE_VARIATION + mutantrace_variation = STYLE_MUZZLE /obj/item/clothing/mask/balaclava/attack_self(mob/user) adjustmask(user) @@ -19,7 +19,7 @@ item_state = "luchag" flags_inv = HIDEFACE|HIDEHAIR|HIDEFACIALHAIR w_class = WEIGHT_CLASS_SMALL - mutantrace_variation = MUTANTRACE_VARIATION + mutantrace_variation = STYLE_MUZZLE modifies_speech = TRUE /obj/item/clothing/mask/luchador/handle_speech(datum/source, list/speech_args) diff --git a/code/modules/clothing/masks/breath.dm b/code/modules/clothing/masks/breath.dm index f4335d17e8..b979e2e526 100644 --- a/code/modules/clothing/masks/breath.dm +++ b/code/modules/clothing/masks/breath.dm @@ -13,7 +13,7 @@ flags_cover = MASKCOVERSMOUTH visor_flags_cover = MASKCOVERSMOUTH resistance_flags = NONE - mutantrace_variation = MUTANTRACE_VARIATION + mutantrace_variation = STYLE_MUZZLE /obj/item/clothing/mask/breath/suicide_act(mob/living/carbon/user) user.visible_message("[user] is wrapping \the [src]'s tube around [user.p_their()] neck! It looks like [user.p_theyre()] trying to commit suicide!") diff --git a/code/modules/clothing/masks/gasmask.dm b/code/modules/clothing/masks/gasmask.dm index c613d1a91e..5aedf7045d 100644 --- a/code/modules/clothing/masks/gasmask.dm +++ b/code/modules/clothing/masks/gasmask.dm @@ -10,7 +10,7 @@ permeability_coefficient = 0.01 flags_cover = MASKCOVERSEYES | MASKCOVERSMOUTH resistance_flags = NONE - mutantrace_variation = MUTANTRACE_VARIATION + mutantrace_variation = STYLE_MUZZLE /obj/item/clothing/mask/gas/glass name = "glass gas mask" diff --git a/code/modules/clothing/masks/miscellaneous.dm b/code/modules/clothing/masks/miscellaneous.dm index 4b8f16a77f..894ea2562f 100644 --- a/code/modules/clothing/masks/miscellaneous.dm +++ b/code/modules/clothing/masks/miscellaneous.dm @@ -7,7 +7,7 @@ w_class = WEIGHT_CLASS_SMALL gas_transfer_coefficient = 0.9 equip_delay_other = 20 - mutantrace_variation = MUTANTRACE_VARIATION + mutantrace_variation = STYLE_MUZZLE /obj/item/clothing/mask/muzzle/attack_paw(mob/user) if(iscarbon(user)) @@ -31,7 +31,7 @@ permeability_coefficient = 0.01 armor = list("melee" = 0, "bullet" = 0, "laser" = 0,"energy" = 0, "bomb" = 0, "bio" = 25, "rad" = 0, "fire" = 0, "acid" = 0) actions_types = list(/datum/action/item_action/adjust) - mutantrace_variation = MUTANTRACE_VARIATION + mutantrace_variation = STYLE_MUZZLE /obj/item/clothing/mask/surgical/attack_self(mob/user) adjustmask(user) @@ -41,7 +41,7 @@ desc = "Warning: moustache is fake." icon_state = "fake-moustache" flags_inv = HIDEFACE - mutantrace_variation = MUTANTRACE_VARIATION + mutantrace_variation = STYLE_MUZZLE /obj/item/clothing/mask/fakemoustache/italian name = "italian moustache" @@ -71,7 +71,7 @@ name = "joy mask" desc = "Express your happiness or hide your sorrows with this laughing face with crying tears of joy cutout." icon_state = "joy" - mutantrace_variation = MUTANTRACE_VARIATION + mutantrace_variation = STYLE_MUZZLE /obj/item/clothing/mask/pig name = "pig mask" @@ -242,7 +242,7 @@ slot_flags = ITEM_SLOT_MASK adjusted_flags = ITEM_SLOT_HEAD icon_state = "bandbotany" - mutantrace_variation = MUTANTRACE_VARIATION + mutantrace_variation = STYLE_MUZZLE /obj/item/clothing/mask/bandana/attack_self(mob/user) adjustmask(user) diff --git a/code/modules/clothing/neck/_neck.dm b/code/modules/clothing/neck/_neck.dm index e863dc8860..9a46b6b759 100644 --- a/code/modules/clothing/neck/_neck.dm +++ b/code/modules/clothing/neck/_neck.dm @@ -6,7 +6,7 @@ strip_delay = 40 equip_delay_other = 40 -/obj/item/clothing/neck/worn_overlays(isinhands = FALSE) +/obj/item/clothing/neck/worn_overlays(isinhands = FALSE, icon_flag, style_flags = NONE) . = list() if(!isinhands) if(body_parts_covered & HEAD) @@ -192,7 +192,7 @@ tagname = copytext(sanitize(input(user, "Would you like to change the name on the tag?", "Name your new pet", "Spot") as null|text),1,MAX_NAME_LEN) name = "[initial(name)] - [tagname]" -/obj/item/clothing/neck/petcollar/worn_overlays(isinhands, icon_file) +/obj/item/clothing/neck/petcollar/worn_overlays(isinhands, icon_file, style_flags = NONE) . = ..() if(hasprimary | hassecondary | hastertiary) if(!isinhands) //prevents the worn sprites from showing up if you're just holding them diff --git a/code/modules/clothing/outfits/standard.dm b/code/modules/clothing/outfits/standard.dm index 29fd06dcaf..4c8f9bdab2 100644 --- a/code/modules/clothing/outfits/standard.dm +++ b/code/modules/clothing/outfits/standard.dm @@ -53,7 +53,7 @@ return var/obj/item/reagent_containers/glass/bucket/bucket = H.get_item_for_held_index(1) - bucket.reagents.add_reagent("water",70) + bucket.reagents.add_reagent(/datum/reagent/water,70) /datum/outfit/laser_tag name = "Laser Tag Red" diff --git a/code/modules/clothing/shoes/_shoes.dm b/code/modules/clothing/shoes/_shoes.dm index a8406e3b12..eaaf4b90ce 100644 --- a/code/modules/clothing/shoes/_shoes.dm +++ b/code/modules/clothing/shoes/_shoes.dm @@ -15,9 +15,7 @@ var/offset = 0 var/equipped_before_drop = FALSE - //CITADEL EDIT Enables digitigrade shoe styles - var/adjusted = NORMAL_STYLE - mutantrace_variation = MUTANTRACE_VARIATION + mutantrace_variation = STYLE_DIGITIGRADE var/last_bloodtype = "" //used to track the last bloodtype to have graced these shoes; makes for better performing footprint shenanigans var/last_blood_DNA = "" //same as last one @@ -51,7 +49,7 @@ last_bloodtype = blood_dna[blood_dna[blood_dna.len]]//trust me this works last_blood_DNA = blood_dna[blood_dna.len] -/obj/item/clothing/shoes/worn_overlays(isinhands = FALSE) +/obj/item/clothing/shoes/worn_overlays(isinhands = FALSE, icon_file, style_flags = NONE) . = list() if(!isinhands) var/bloody = FALSE @@ -63,23 +61,12 @@ if(damaged_clothes) . += mutable_appearance('icons/effects/item_damage.dmi', "damagedshoe") if(bloody) - if(adjusted == NORMAL_STYLE) - . += mutable_appearance('icons/effects/blood.dmi', "shoeblood", color = blood_DNA_to_color()) - else - . += mutable_appearance('icons/mob/feet_digi.dmi', "shoeblood", color = blood_DNA_to_color()) + var/file2use = style_flags & STYLE_DIGITIGRADE ? 'icons/mob/feet_digi.dmi' : 'icons/effects/blood.dmi' + . += mutable_appearance(file2use, "shoeblood", color = blood_DNA_to_color()) /obj/item/clothing/shoes/equipped(mob/user, slot) . = ..() - if(mutantrace_variation && ishuman(user)) - var/mob/living/carbon/human/H = user - if(DIGITIGRADE in H.dna.species.species_traits) - adjusted = ALT_STYLE - H.update_inv_shoes() - else if(adjusted == ALT_STYLE) - adjusted = NORMAL_STYLE - H.update_inv_shoes() - if(offset && slot_flags & slotdefine2slotbit(slot)) user.pixel_y += offset worn_y_dimension -= (offset * 2) diff --git a/code/modules/clothing/shoes/miscellaneous.dm b/code/modules/clothing/shoes/miscellaneous.dm index c81584dbcc..c0e566cc0e 100644 --- a/code/modules/clothing/shoes/miscellaneous.dm +++ b/code/modules/clothing/shoes/miscellaneous.dm @@ -355,3 +355,13 @@ name = "blue leg wraps" desc = "Ankle coverings. Hang ten, brother." icon_state = "bluecuffs" + +/obj/item/clothing/shoes/cowboyboots + name = "cowboy boots" + desc = "A standard pair of brown cowboy boots." + icon_state = "cowboyboots" + +/obj/item/clothing/shoes/cowboyboots/black + name = "black cowboy boots" + desc = "A pair of black cowboy boots, pretty easy to scuff up." + icon_state = "cowboyboots_black" diff --git a/code/modules/clothing/shoes/vg_shoes.dm b/code/modules/clothing/shoes/vg_shoes.dm index 627a061181..53b093dc72 100644 --- a/code/modules/clothing/shoes/vg_shoes.dm +++ b/code/modules/clothing/shoes/vg_shoes.dm @@ -5,7 +5,7 @@ icon_state = "leather" item_color = "leather" icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi' - mutantrace_variation = NO_MUTANTRACE_VARIATION + mutantrace_variation = NONE /obj/item/clothing/shoes/magboots/deathsquad desc = "Very expensive and advanced magnetic boots, used only by the elite during extravehicular activity to ensure the user remains safely attached to the vehicle." @@ -14,7 +14,7 @@ magboot_state = "DS-magboots" icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi' resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | ACID_PROOF - mutantrace_variation = NO_MUTANTRACE_VARIATION + mutantrace_variation = NONE /obj/item/clothing/shoes/magboots/atmos desc = "Magnetic boots, often used during extravehicular activity to ensure the user remains safely attached to the vehicle. These are painted in the colors of an atmospheric technician." @@ -23,102 +23,102 @@ icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi' magboot_state = "atmosmagboots" resistance_flags = FIRE_PROOF - mutantrace_variation = NO_MUTANTRACE_VARIATION + mutantrace_variation = NONE /obj/item/clothing/shoes/simonshoes name = "Simon's Shoes" desc = "Simon's Shoes." icon_state = "simonshoes" icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi' - mutantrace_variation = NO_MUTANTRACE_VARIATION + mutantrace_variation = NONE /obj/item/clothing/shoes/kneesocks name = "kneesocks" desc = "A pair of girly knee-high socks." icon_state = "kneesock" icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi' - mutantrace_variation = NO_MUTANTRACE_VARIATION + mutantrace_variation = NONE /obj/item/clothing/shoes/jestershoes name = "Jester Shoes" desc = "As worn by the clowns of old." icon_state = "jestershoes" icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi' - mutantrace_variation = NO_MUTANTRACE_VARIATION + mutantrace_variation = NONE /obj/item/clothing/shoes/aviatorboots name = "Aviator Boots" desc = "Boots suitable for just about any occasion." icon_state = "aviator_boots" icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi' - mutantrace_variation = NO_MUTANTRACE_VARIATION + mutantrace_variation = NONE /obj/item/clothing/shoes/libertyshoes name = "Liberty Shoes" desc = "Freedom isn't free, neither were these shoes." icon_state = "libertyshoes" icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi' - mutantrace_variation = NO_MUTANTRACE_VARIATION + mutantrace_variation = NONE /obj/item/clothing/shoes/megaboots name = "DRN-001 Boots" desc = "Large armored boots, very weak to large spikes." icon_state = "megaboots" icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi' - mutantrace_variation = NO_MUTANTRACE_VARIATION + mutantrace_variation = NONE /obj/item/clothing/shoes/protoboots name = "Prototype Boots" desc = "Functionally identical to the DRN-001 model's boots, but in red." icon_state = "protoboots" icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi' - mutantrace_variation = NO_MUTANTRACE_VARIATION + mutantrace_variation = NONE /obj/item/clothing/shoes/megaxboots name = "Maverick Hunter boots" desc = "Regardless of how much stronger these boots are than the DRN-001 model's, they're still extremely easy to pierce with a large spike." icon_state = "megaxboots" icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi' - mutantrace_variation = NO_MUTANTRACE_VARIATION + mutantrace_variation = NONE /obj/item/clothing/shoes/joeboots name = "Sniper Boots" desc = "Nearly identical to the Prototype's boots, except in black." icon_state = "joeboots" icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi' - mutantrace_variation = NO_MUTANTRACE_VARIATION + mutantrace_variation = NONE /obj/item/clothing/shoes/doomguy name = "Doomguy's boots" desc = "If you look closely, you might see skull fragments still buried in these boots." icon_state = "doom" icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi' - mutantrace_variation = NO_MUTANTRACE_VARIATION + mutantrace_variation = NONE /obj/item/clothing/shoes/rottenshoes name = "rotten shoes" desc = "These shoes seem perfect for sneaking around." icon_state = "rottenshoes" icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi' - mutantrace_variation = NO_MUTANTRACE_VARIATION + mutantrace_variation = NONE /obj/item/clothing/shoes/sandal/slippers name = "magic slippers" icon_state = "slippers" desc = "For the wizard that puts comfort first. Who's going to laugh?" icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi' - mutantrace_variation = NO_MUTANTRACE_VARIATION + mutantrace_variation = NONE /obj/item/clothing/shoes/slippers_worn name = "worn bunny slippers" desc = "Fluffy..." icon_state = "slippers_worn" icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi' - mutantrace_variation = NO_MUTANTRACE_VARIATION + mutantrace_variation = NONE /obj/item/clothing/shoes/jackboots/neorussian name = "neo-Russian boots" desc = "Tovarish, no one will realize you stepped on a pile of shit if your pair already looks like shit." icon_state = "nr_boots" icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi' - mutantrace_variation = NO_MUTANTRACE_VARIATION \ No newline at end of file + mutantrace_variation = NONE \ No newline at end of file diff --git a/code/modules/clothing/spacesuits/_spacesuits.dm b/code/modules/clothing/spacesuits/_spacesuits.dm index 57866b5131..f49c26ce49 100644 --- a/code/modules/clothing/spacesuits/_spacesuits.dm +++ b/code/modules/clothing/spacesuits/_spacesuits.dm @@ -21,7 +21,7 @@ flags_cover = HEADCOVERSEYES | HEADCOVERSMOUTH resistance_flags = NONE dog_fashion = null - mutantrace_variation = MUTANTRACE_VARIATION + mutantrace_variation = STYLE_MUZZLE rad_flags = RAD_PROTECT_CONTENTS | RAD_NO_CONTAMINATE /obj/item/clothing/suit/space @@ -46,4 +46,4 @@ equip_delay_other = 80 resistance_flags = NONE rad_flags = RAD_PROTECT_CONTENTS | RAD_NO_CONTAMINATE //rated for cosmic radation :honk: - tauric = TRUE //Citadel Add for tauric hardsuits + mutantrace_variation = STYLE_DIGITIGRADE|STYLE_SNEK_TAURIC|STYLE_PAW_TAURIC diff --git a/code/modules/clothing/spacesuits/chronosuit.dm b/code/modules/clothing/spacesuits/chronosuit.dm index 5a53e2776a..a8387c5ccc 100644 --- a/code/modules/clothing/spacesuits/chronosuit.dm +++ b/code/modules/clothing/spacesuits/chronosuit.dm @@ -26,6 +26,7 @@ actions_types = list(/datum/action/item_action/toggle) armor = list("melee" = 60, "bullet" = 60, "laser" = 60, "energy" = 60, "bomb" = 30, "bio" = 90, "rad" = 90, "fire" = 100, "acid" = 1000) resistance_flags = FIRE_PROOF | ACID_PROOF + mutantrace_variation = STYLE_DIGITIGRADE var/list/chronosafe_items = list(/obj/item/chrono_eraser, /obj/item/gun/energy/chrono_gun) var/obj/item/clothing/head/helmet/space/chronos/helmet = null var/obj/effect/chronos_cam/camera = null diff --git a/code/modules/clothing/spacesuits/hardsuit.dm b/code/modules/clothing/spacesuits/hardsuit.dm index 324d4bc722..984c19e202 100644 --- a/code/modules/clothing/spacesuits/hardsuit.dm +++ b/code/modules/clothing/spacesuits/hardsuit.dm @@ -180,7 +180,7 @@ armor = list("melee" = 30, "bullet" = 5, "laser" = 10, "energy" = 5, "bomb" = 10, "bio" = 100, "rad" = 75, "fire" = 100, "acid" = 75) helmettype = /obj/item/clothing/head/helmet/space/hardsuit/engine resistance_flags = FIRE_PROOF - tauric = TRUE //Citadel Add for tauric hardsuits + mutantrace_variation = STYLE_DIGITIGRADE|STYLE_ALL_TAURIC //Atmospherics /obj/item/clothing/head/helmet/space/hardsuit/engine/atmos @@ -202,7 +202,6 @@ heat_protection = CHEST|GROIN|LEGS|FEET|ARMS|HANDS //Uncomment to enable firesuit protection max_heat_protection_temperature = FIRE_IMMUNITY_MAX_TEMP_PROTECT helmettype = /obj/item/clothing/head/helmet/space/hardsuit/engine/atmos - tauric = TRUE //Citadel Add for tauric hardsuits //Chief Engineer's hardsuit @@ -226,7 +225,6 @@ max_heat_protection_temperature = FIRE_IMMUNITY_MAX_TEMP_PROTECT helmettype = /obj/item/clothing/head/helmet/space/hardsuit/engine/elite jetpack = /obj/item/tank/jetpack/suit - tauric = TRUE //Citadel Add for tauric hardsuits //Mining hardsuit /obj/item/clothing/head/helmet/space/hardsuit/mining @@ -257,7 +255,7 @@ allowed = list(/obj/item/flashlight, /obj/item/tank/internals, /obj/item/storage/bag/ore, /obj/item/pickaxe) helmettype = /obj/item/clothing/head/helmet/space/hardsuit/mining heat_protection = CHEST|GROIN|LEGS|FEET|ARMS|HANDS - tauric = TRUE //Citadel Add for tauric hardsuits + mutantrace_variation = STYLE_DIGITIGRADE|STYLE_ALL_TAURIC /obj/item/clothing/suit/space/hardsuit/mining/Initialize() . = ..() @@ -353,7 +351,7 @@ allowed = list(/obj/item/gun, /obj/item/ammo_box,/obj/item/ammo_casing, /obj/item/melee/baton, /obj/item/melee/transforming/energy/sword/saber, /obj/item/restraints/handcuffs, /obj/item/tank/internals) helmettype = /obj/item/clothing/head/helmet/space/hardsuit/syndi jetpack = /obj/item/tank/jetpack/suit - tauric = TRUE //Citadel Add for tauric hardsuits + mutantrace_variation = STYLE_DIGITIGRADE|STYLE_ALL_TAURIC //Elite Syndie suit /obj/item/clothing/head/helmet/space/hardsuit/syndi/elite @@ -370,7 +368,6 @@ on = FALSE resistance_flags = FIRE_PROOF | ACID_PROOF - /obj/item/clothing/suit/space/hardsuit/syndi/elite name = "elite syndicate hardsuit" desc = "An elite version of the syndicate hardsuit, with improved armour and fireproofing. It is in travel mode." @@ -382,7 +379,8 @@ heat_protection = CHEST|GROIN|LEGS|FEET|ARMS|HANDS max_heat_protection_temperature = FIRE_IMMUNITY_MAX_TEMP_PROTECT resistance_flags = FIRE_PROOF | ACID_PROOF - tauric = TRUE //Citadel Add for tauric hardsuits + mutantrace_variation = STYLE_DIGITIGRADE|STYLE_SNEK_TAURIC|STYLE_PAW_TAURIC + //The Owl Hardsuit /obj/item/clothing/head/helmet/space/hardsuit/syndi/owl @@ -404,6 +402,7 @@ item_state = "s_suit" item_color = "owl" helmettype = /obj/item/clothing/head/helmet/space/hardsuit/syndi/owl + mutantrace_variation = STYLE_DIGITIGRADE //Wizard hardsuit @@ -430,6 +429,7 @@ heat_protection = CHEST|GROIN|LEGS|FEET|ARMS|HANDS //Uncomment to enable firesuit protection max_heat_protection_temperature = FIRE_IMMUNITY_MAX_TEMP_PROTECT helmettype = /obj/item/clothing/head/helmet/space/hardsuit/wizard + mutantrace_variation = STYLE_DIGITIGRADE /obj/item/clothing/suit/space/hardsuit/wizard/Initialize() . = ..() @@ -455,7 +455,7 @@ allowed = list(/obj/item/flashlight, /obj/item/tank/internals, /obj/item/storage/firstaid, /obj/item/healthanalyzer, /obj/item/stack/medical) armor = list("melee" = 30, "bullet" = 5, "laser" = 10, "energy" = 5, "bomb" = 10, "bio" = 100, "rad" = 60, "fire" = 60, "acid" = 75) helmettype = /obj/item/clothing/head/helmet/space/hardsuit/medical - tauric = TRUE //Citadel Add for tauric hardsuits + mutantrace_variation = STYLE_DIGITIGRADE|STYLE_ALL_TAURIC //Research Director hardsuit /obj/item/clothing/head/helmet/space/hardsuit/rd @@ -497,7 +497,6 @@ /obj/item/hand_tele, /obj/item/aicard) armor = list("melee" = 30, "bullet" = 5, "laser" = 10, "energy" = 5, "bomb" = 100, "bio" = 100, "rad" = 60, "fire" = 60, "acid" = 80) helmettype = /obj/item/clothing/head/helmet/space/hardsuit/rd - tauric = TRUE //Citadel Add for tauric hardsuits //Security hardsuit /obj/item/clothing/head/helmet/space/hardsuit/security @@ -515,7 +514,7 @@ item_state = "sec_hardsuit" armor = list("melee" = 35, "bullet" = 15, "laser" = 30, "energy" = 10, "bomb" = 10, "bio" = 100, "rad" = 50, "fire" = 75, "acid" = 75) helmettype = /obj/item/clothing/head/helmet/space/hardsuit/security - tauric = TRUE //Citadel Add for tauric hardsuits + mutantrace_variation = STYLE_DIGITIGRADE|STYLE_ALL_TAURIC /obj/item/clothing/suit/space/hardsuit/security/Initialize() . = ..() @@ -536,7 +535,6 @@ armor = list("melee" = 45, "bullet" = 25, "laser" = 30, "energy" = 10, "bomb" = 25, "bio" = 100, "rad" = 50, "fire" = 95, "acid" = 95) helmettype = /obj/item/clothing/head/helmet/space/hardsuit/security/hos jetpack = /obj/item/tank/jetpack/suit - tauric = TRUE //Citadel Add for tauric hardsuits //Captain /obj/item/clothing/head/helmet/space/hardsuit/captain @@ -564,7 +562,6 @@ heat_protection = CHEST|GROIN|LEGS|FEET|ARMS|HANDS max_heat_protection_temperature = FIRE_IMMUNITY_MAX_TEMP_PROTECT //this needed to be added a long fucking time ago helmettype = /obj/item/clothing/head/helmet/space/hardsuit/captain - tauric = TRUE //Citadel Add for tauric hardsuits /obj/item/clothing/suit/space/hardsuit/captain/Initialize() . = ..() @@ -586,6 +583,7 @@ item_state = "clown_hardsuit" armor = list("melee" = 30, "bullet" = 5, "laser" = 10, "energy" = 5, "bomb" = 10, "bio" = 100, "rad" = 75, "fire" = 60, "acid" = 30) helmettype = /obj/item/clothing/head/helmet/space/hardsuit/clown + mutantrace_variation = STYLE_DIGITIGRADE /obj/item/clothing/suit/space/hardsuit/clown/mob_can_equip(mob/M, slot) if(!..() || !ishuman(M)) @@ -614,6 +612,7 @@ slowdown = 3 helmettype = /obj/item/clothing/head/helmet/space/hardsuit/ancient resistance_flags = FIRE_PROOF + mutantrace_variation = STYLE_DIGITIGRADE var/footstep = 1 var/mob/listeningTo @@ -712,7 +711,6 @@ var/recharge_rate = 1 //How quickly the shield recharges once it starts charging var/shield_state = "shield-old" var/shield_on = "shield-old" - tauric = TRUE //Citadel Add for tauric hardsuits /obj/item/clothing/suit/space/hardsuit/shielded/Initialize() . = ..() @@ -752,13 +750,11 @@ var/mob/living/carbon/human/C = loc C.update_inv_wear_suit() -/obj/item/clothing/suit/space/hardsuit/shielded/worn_overlays(isinhands) - . = list() +/obj/item/clothing/suit/space/hardsuit/shielded/worn_overlays(isinhands, icon_file, style_flags = NONE) + . = ..() if(!isinhands) - if(taurmode >= SNEK_TAURIC) - . += mutable_appearance('modular_citadel/icons/mob/64x32_effects.dmi', shield_state, MOB_LAYER + 0.01) - else - . += mutable_appearance('icons/effects/effects.dmi', shield_state, MOB_LAYER + 0.01) + var/file2use = style_flags & STYLE_ALL_TAURIC ? 'modular_citadel/icons/mob/64x32_effects.dmi' : 'icons/effects/effects.dmi' + . += mutable_appearance(file2use, shield_state, MOB_LAYER + 0.01) /obj/item/clothing/head/helmet/space/hardsuit/shielded resistance_flags = FIRE_PROOF | ACID_PROOF @@ -828,7 +824,7 @@ allowed = list(/obj/item/gun, /obj/item/ammo_box, /obj/item/ammo_casing, /obj/item/melee/baton, /obj/item/melee/transforming/energy/sword/saber, /obj/item/restraints/handcuffs, /obj/item/tank/internals) helmettype = /obj/item/clothing/head/helmet/space/hardsuit/shielded/syndi slowdown = 0 - tauric = TRUE //Citadel Add for tauric hardsuits + mutantrace_variation = STYLE_DIGITIGRADE|STYLE_ALL_TAURIC /obj/item/clothing/suit/space/hardsuit/shielded/syndi/Initialize() jetpack = new /obj/item/tank/jetpack/suit(src) @@ -857,7 +853,6 @@ max_heat_protection_temperature = FIRE_IMMUNITY_MAX_TEMP_PROTECT helmettype = /obj/item/clothing/head/helmet/space/hardsuit/shielded/swat dog_fashion = /datum/dog_fashion/back/deathsquad - tauric = TRUE //Citadel Add for tauric hardsuits /obj/item/clothing/head/helmet/space/hardsuit/shielded/swat name = "death commando helmet" @@ -888,7 +883,7 @@ allowed = list(/obj/item/flashlight, /obj/item/tank/internals, /obj/item/resonator, /obj/item/mining_scanner, /obj/item/t_scanner/adv_mining_scanner, /obj/item/gun/energy/kinetic_accelerator) var/energy_color = "#35FFF0" var/obj/item/clothing/suit/space/hardsuit/lavaknight/linkedsuit = null - mutantrace_variation = NO_MUTANTRACE_VARIATION + mutantrace_variation = NONE /obj/item/clothing/head/helmet/space/hardsuit/lavaknight/Initialize() . = ..() @@ -918,7 +913,7 @@ add_overlay(helm_overlay) -/obj/item/clothing/head/helmet/space/hardsuit/lavaknight/worn_overlays(isinhands = FALSE, icon_file) +/obj/item/clothing/head/helmet/space/hardsuit/lavaknight/worn_overlays(isinhands = FALSE, icon_file, style_flags = NONE) . = ..() if(!isinhands) var/mutable_appearance/energy_overlay = mutable_appearance(icon_file, "knight_cydonia_overlay", ABOVE_LIGHTING_LAYER) @@ -937,8 +932,6 @@ allowed = list(/obj/item/flashlight, /obj/item/tank/internals, /obj/item/storage/bag/ore, /obj/item/pickaxe) helmettype = /obj/item/clothing/head/helmet/space/hardsuit/lavaknight heat_protection = CHEST|GROIN|LEGS|FEET|ARMS|HANDS - tauric = TRUE //Citadel Add for tauric hardsuits - var/energy_color = "#35FFF0" /obj/item/clothing/suit/space/hardsuit/lavaknight/Initialize() @@ -957,7 +950,7 @@ add_overlay(suit_overlay) -/obj/item/clothing/suit/space/hardsuit/lavaknight/worn_overlays(isinhands = FALSE, icon_file) +/obj/item/clothing/suit/space/hardsuit/lavaknight/worn_overlays(isinhands = FALSE, icon_file, style_flags = NONE) . = ..() if(!isinhands) var/mutable_appearance/energy_overlay = mutable_appearance(icon_file, "knight_cydonia_overlay", ABOVE_LIGHTING_LAYER) diff --git a/code/modules/clothing/spacesuits/miscellaneous.dm b/code/modules/clothing/spacesuits/miscellaneous.dm index 88e17d158c..b9b51e5d1c 100644 --- a/code/modules/clothing/spacesuits/miscellaneous.dm +++ b/code/modules/clothing/spacesuits/miscellaneous.dm @@ -53,6 +53,7 @@ Contains: armor = list("melee" = 40, "bullet" = 30, "laser" = 30,"energy" = 30, "bomb" = 50, "bio" = 90, "rad" = 20, "fire" = 100, "acid" = 100) strip_delay = 120 resistance_flags = FIRE_PROOF | ACID_PROOF + mutantrace_variation = STYLE_DIGITIGRADE /obj/item/clothing/head/helmet/space/beret name = "officer's beret" @@ -65,7 +66,7 @@ Contains: strip_delay = 130 max_heat_protection_temperature = FIRE_IMMUNITY_MAX_TEMP_PROTECT resistance_flags = FIRE_PROOF | ACID_PROOF - mutantrace_variation = NO_MUTANTRACE_VARIATION + mutantrace_variation = NONE /obj/item/clothing/suit/space/officer name = "officer's jacket" @@ -81,6 +82,7 @@ Contains: strip_delay = 130 max_heat_protection_temperature = FIRE_IMMUNITY_MAX_TEMP_PROTECT resistance_flags = FIRE_PROOF | ACID_PROOF + mutantrace_variation = STYLE_DIGITIGRADE //NASA Voidsuit /obj/item/clothing/head/helmet/space/nasavoid @@ -95,6 +97,7 @@ Contains: item_state = "void" desc = "An old, NASA CentCom branch designed, dark red space suit." allowed = list(/obj/item/flashlight, /obj/item/tank/internals, /obj/item/multitool) + mutantrace_variation = STYLE_DIGITIGRADE /obj/item/clothing/head/helmet/space/nasavoid/old name = "Engineering Void Helmet" @@ -116,7 +119,7 @@ Contains: desc = "Ho ho ho. Merrry X-mas!" icon_state = "santahat" flags_cover = HEADCOVERSEYES - mutantrace_variation = NO_MUTANTRACE_VARIATION + mutantrace_variation = NONE dog_fashion = /datum/dog_fashion/head/santa @@ -127,6 +130,7 @@ Contains: item_state = "santa" slowdown = 0 allowed = list(/obj/item) //for stuffing exta special presents + mutantrace_variation = STYLE_DIGITIGRADE //Space pirate outfit @@ -140,14 +144,14 @@ Contains: strip_delay = 40 equip_delay_other = 20 flags_cover = HEADCOVERSEYES - mutantrace_variation = NO_MUTANTRACE_VARIATION + mutantrace_variation = NONE /obj/item/clothing/head/helmet/space/pirate/bandana name = "royal bandana" desc = "A space-proof bandanna crafted with reflective kevlar." icon_state = "bandana" item_state = "bandana" - mutantrace_variation = NO_MUTANTRACE_VARIATION + mutantrace_variation = NONE /obj/item/clothing/suit/space/pirate name = "royal waistcoat " @@ -161,6 +165,7 @@ Contains: armor = list("melee" = 30, "bullet" = 50, "laser" = 30,"energy" = 15, "bomb" = 30, "bio" = 30, "rad" = 30, "fire" = 60, "acid" = 75) strip_delay = 40 equip_delay_other = 20 + mutantrace_variation = STYLE_DIGITIGRADE //Emergency Response Team suits /obj/item/clothing/head/helmet/space/hardsuit/ert @@ -189,7 +194,6 @@ Contains: slowdown = 0 strip_delay = 130 resistance_flags = ACID_PROOF - tauric = TRUE //Citadel Add for tauric hardsuits //ERT Security /obj/item/clothing/head/helmet/space/hardsuit/ert/sec @@ -251,6 +255,7 @@ Contains: helmettype = /obj/item/clothing/head/helmet/space/hardsuit/ert/alert armor = list("melee" = 70, "bullet" = 55, "laser" = 50, "energy" = 50, "bomb" = 65, "bio" = 100, "rad" = 100, "fire" = 100, "acid" = 100) resistance_flags = FIRE_PROOF | ACID_PROOF + mutantrace_variation = STYLE_DIGITIGRADE|STYLE_SNEK_TAURIC //ERT Security /obj/item/clothing/head/helmet/space/hardsuit/ert/alert/sec @@ -298,7 +303,6 @@ Contains: item_state = "s_suit" desc = "A lightweight space suit with the basic ability to protect the wearer from the vacuum of space during emergencies." armor = list("melee" = 0, "bullet" = 0, "laser" = 0,"energy" = 0, "bomb" = 0, "bio" = 100, "rad" = 20, "fire" = 50, "acid" = 65) - tauric = TRUE //Citadel Add for tauric hardsuits /obj/item/clothing/head/helmet/space/eva name = "EVA helmet" @@ -317,7 +321,7 @@ Contains: strip_delay = 130 max_heat_protection_temperature = FIRE_IMMUNITY_MAX_TEMP_PROTECT resistance_flags = ACID_PROOF | FIRE_PROOF - mutantrace_variation = NO_MUTANTRACE_VARIATION + mutantrace_variation = NONE /obj/item/clothing/suit/space/freedom name = "eagle suit" @@ -330,6 +334,7 @@ Contains: max_heat_protection_temperature = FIRE_IMMUNITY_MAX_TEMP_PROTECT resistance_flags = ACID_PROOF | FIRE_PROOF slowdown = 0 + mutantrace_variation = STYLE_DIGITIGRADE //Carpsuit, bestsuit, lovesuit /obj/item/clothing/head/helmet/space/hardsuit/carp @@ -340,7 +345,7 @@ Contains: armor = list("melee" = -20, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 100, "rad" = 75, "fire" = 60, "acid" = 75) //As whimpy as a space carp brightness_on = 0 //luminosity when on actions_types = list() - mutantrace_variation = NO_MUTANTRACE_VARIATION + mutantrace_variation = NONE /obj/item/clothing/head/helmet/space/hardsuit/carp/Initialize() . = ..() @@ -356,6 +361,7 @@ Contains: armor = list("melee" = -20, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 100, "rad" = 75, "fire" = 60, "acid" = 75) //As whimpy whimpy whoo allowed = list(/obj/item/tank/internals, /obj/item/gun/ballistic/automatic/speargun) //I'm giving you a hint here helmettype = /obj/item/clothing/head/helmet/space/hardsuit/carp + mutantrace_variation = STYLE_DIGITIGRADE /obj/item/clothing/head/helmet/space/hardsuit/ert/paranormal name = "paranormal response unit helmet" @@ -366,7 +372,7 @@ Contains: max_heat_protection_temperature = FIRE_IMMUNITY_MAX_TEMP_PROTECT actions_types = list() resistance_flags = FIRE_PROOF - mutantrace_variation = NO_MUTANTRACE_VARIATION + mutantrace_variation = NONE /obj/item/clothing/suit/space/hardsuit/ert/paranormal/Initialize() . = ..() @@ -380,7 +386,6 @@ Contains: helmettype = /obj/item/clothing/head/helmet/space/hardsuit/ert/paranormal max_heat_protection_temperature = FIRE_IMMUNITY_MAX_TEMP_PROTECT resistance_flags = FIRE_PROOF - tauric = TRUE //Citadel Add for tauric hardsuits /obj/item/clothing/suit/space/hardsuit/ert/paranormal/Initialize() . = ..() @@ -427,7 +432,6 @@ Contains: slowdown = 2 armor = list("melee" = 5, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 10, "fire" = 0, "acid" = 0) strip_delay = 65 - tauric = TRUE //Citadel Add for tauric hardsuits /obj/item/clothing/suit/space/fragile/hit_reaction(mob/living/carbon/human/owner, atom/movable/hitby, attack_text = "the attack", final_block_chance = 0, damage = 0, attack_type = MELEE_ATTACK) if(!torn && prob(50)) diff --git a/code/modules/clothing/spacesuits/plasmamen.dm b/code/modules/clothing/spacesuits/plasmamen.dm index 7c829e7570..fee8dbce33 100644 --- a/code/modules/clothing/spacesuits/plasmamen.dm +++ b/code/modules/clothing/spacesuits/plasmamen.dm @@ -12,7 +12,6 @@ var/next_extinguish = 0 var/extinguish_cooldown = 100 var/extinguishes_left = 10 - mutantrace_variation = NO_MUTANTRACE_VARIATION /obj/item/clothing/suit/space/eva/plasmaman/examine(mob/user) . = ..() @@ -47,7 +46,7 @@ var/on = FALSE var/light_overlay = "envirohelm-light" actions_types = list(/datum/action/item_action/toggle_helmet_light) - mutantrace_variation = NO_MUTANTRACE_VARIATION + mutantrace_variation = NONE /obj/item/clothing/head/helmet/space/plasmaman/attack_self(mob/user) if(!light_overlay) @@ -68,7 +67,7 @@ var/datum/action/A=X A.UpdateButtonIcon() -/obj/item/clothing/head/helmet/space/plasmaman/worn_overlays(isinhands, icon_file) +/obj/item/clothing/head/helmet/space/plasmaman/worn_overlays(isinhands, icon_file, style_flags = NONE) . = ..() if(!isinhands && on) . += mutable_appearance(icon_file, light_overlay) diff --git a/code/modules/clothing/spacesuits/syndi.dm b/code/modules/clothing/spacesuits/syndi.dm index e6710ee8f9..178e707125 100644 --- a/code/modules/clothing/spacesuits/syndi.dm +++ b/code/modules/clothing/spacesuits/syndi.dm @@ -14,7 +14,7 @@ w_class = WEIGHT_CLASS_NORMAL allowed = list(/obj/item/gun, /obj/item/ammo_box, /obj/item/ammo_casing, /obj/item/melee/baton, /obj/item/melee/transforming/energy/sword/saber, /obj/item/restraints/handcuffs, /obj/item/tank/internals) armor = list("melee" = 40, "bullet" = 50, "laser" = 30,"energy" = 15, "bomb" = 30, "bio" = 30, "rad" = 30, "fire" = 80, "acid" = 85) - + mutantrace_variation = STYLE_DIGITIGRADE //Green syndicate space suit /obj/item/clothing/head/helmet/space/syndicate/green @@ -50,6 +50,7 @@ name = "orange space suit" icon_state = "syndicate-orange" item_state = "syndicate-orange" + mutantrace_variation = STYLE_DIGITIGRADE|STYLE_SNEK_TAURIC|STYLE_PAW_TAURIC //Blue syndicate space suit /obj/item/clothing/head/helmet/space/syndicate/blue @@ -109,7 +110,6 @@ name = "green space suit" icon_state = "syndicate-black-med" item_state = "syndicate-black" - tauric = TRUE //Citadel Add for tauric hardsuits //Black-orange syndicate space suit @@ -134,6 +134,7 @@ name = "black and red space suit" icon_state = "syndicate-black-red" item_state = "syndicate-black-red" + mutantrace_variation = STYLE_DIGITIGRADE|STYLE_SNEK_TAURIC|STYLE_PAW_TAURIC //Black with yellow/red engineering syndicate space suit diff --git a/code/modules/clothing/suits/_suits.dm b/code/modules/clothing/suits/_suits.dm index faec9e2f4c..d05afc15e0 100644 --- a/code/modules/clothing/suits/_suits.dm +++ b/code/modules/clothing/suits/_suits.dm @@ -9,56 +9,16 @@ var/blood_overlay_type = "suit" var/togglename = null var/suittoggled = FALSE + mutantrace_variation = STYLE_DIGITIGRADE - var/adjusted = NORMAL_STYLE - mutantrace_variation = MUTANTRACE_VARIATION - var/tauric = FALSE //Citadel Add for tauric hardsuits - var/taurmode = NOT_TAURIC - var/dimension_x = 32 - var/dimension_y = 32 - var/center = FALSE //Should we center the sprite? - -/obj/item/clothing/suit/equipped(mob/user, slot) - ..() - if(ishuman(user)) - var/mob/living/carbon/human/H = user - - if(mutantrace_variation) - if(DIGITIGRADE in H.dna.species.species_traits) - adjusted = ALT_STYLE - H.update_inv_wear_suit() - else if(adjusted == ALT_STYLE) - adjusted = NORMAL_STYLE - - if(("taur" in H.dna.species.mutant_bodyparts) && (H.dna.features["taur"] != "None")) - if(H.dna.features["taur"] in GLOB.noodle_taurs) - taurmode = SNEK_TAURIC - if(tauric == TRUE) - center = TRUE - dimension_x = 64 - else if(H.dna.features["taur"] in GLOB.paw_taurs) - taurmode = PAW_TAURIC - if(tauric == TRUE) - center = TRUE - dimension_x = 64 - else - taurmode = NOT_TAURIC - if(tauric == TRUE) - center = FALSE - dimension_x = 32 - H.update_inv_wear_suit() - - -/obj/item/clothing/suit/worn_overlays(isinhands = FALSE) - . = list() +/obj/item/clothing/suit/worn_overlays(isinhands = FALSE, icon_file, style_flags = NONE) + . = ..() if(!isinhands) if(damaged_clothes) . += mutable_appearance('icons/effects/item_damage.dmi', "damaged[blood_overlay_type]") if(blood_DNA) - if(tauric && taurmode >= SNEK_TAURIC) - . += mutable_appearance('modular_citadel/icons/mob/64x32_effects.dmi', "[blood_overlay_type]blood", color = blood_DNA_to_color()) - else - . += mutable_appearance('icons/effects/blood.dmi', "[blood_overlay_type]blood", color = blood_DNA_to_color()) + var/file2use = (style_flags & STYLE_ALL_TAURIC) ? 'modular_citadel/icons/mob/64x32_effects.dmi' : 'icons/effects/blood.dmi' + . += mutable_appearance(file2use, "[blood_overlay_type]blood", color = blood_DNA_to_color()) var/mob/living/carbon/human/M = loc if(ishuman(M) && M.w_uniform) var/obj/item/clothing/under/U = M.w_uniform diff --git a/code/modules/clothing/suits/bio.dm b/code/modules/clothing/suits/bio.dm index 5d0a9b9914..5729daa741 100644 --- a/code/modules/clothing/suits/bio.dm +++ b/code/modules/clothing/suits/bio.dm @@ -9,7 +9,7 @@ flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEHAIR|HIDEFACIALHAIR|HIDEFACE|HIDESNOUT resistance_flags = ACID_PROOF flags_cover = HEADCOVERSEYES | HEADCOVERSMOUTH - mutantrace_variation = MUTANTRACE_VARIATION + mutantrace_variation = STYLE_MUZZLE /obj/item/clothing/suit/bio_suit name = "bio suit" @@ -28,7 +28,7 @@ strip_delay = 70 equip_delay_other = 70 resistance_flags = ACID_PROOF - tauric = TRUE //Citadel Add for tauric hardsuits + mutantrace_variation = STYLE_DIGITIGRADE|STYLE_SNEK_TAURIC|STYLE_PAW_TAURIC //Standard biosuit, orange stripe /obj/item/clothing/head/bio_hood/general diff --git a/code/modules/clothing/suits/jobs.dm b/code/modules/clothing/suits/jobs.dm index 4318839845..816f0edeba 100644 --- a/code/modules/clothing/suits/jobs.dm +++ b/code/modules/clothing/suits/jobs.dm @@ -207,7 +207,7 @@ item_state = "techpriest" body_parts_covered = CHEST|GROIN|LEGS|ARMS hoodtype = /obj/item/clothing/head/hooded/techpriest - mutantrace_variation = NO_MUTANTRACE_VARIATION + mutantrace_variation = NONE /obj/item/clothing/head/hooded/techpriest name = "techpriest's hood" @@ -216,4 +216,4 @@ item_state = "techpriesthood" body_parts_covered = HEAD flags_inv = HIDEHAIR|HIDEEARS - mutantrace_variation = MUTANTRACE_VARIATION + mutantrace_variation = STYLE_MUZZLE diff --git a/code/modules/clothing/suits/miscellaneous.dm b/code/modules/clothing/suits/miscellaneous.dm index 4e155cd341..4862512468 100644 --- a/code/modules/clothing/suits/miscellaneous.dm +++ b/code/modules/clothing/suits/miscellaneous.dm @@ -864,7 +864,7 @@ blood_overlay_type = "armor" body_parts_covered = CHEST resistance_flags = NONE - mutantrace_variation = NO_MUTANTRACE_VARIATION + mutantrace_variation = NONE armor = list("melee" = 0, "bullet" = 0, "laser" = 0,"energy" = 0, "bomb" = 5, "bio" = 0, "rad" = 0, "fire" = -5, "acid" = -15) //nylon sucks against acid /obj/item/clothing/suit/assu_suit diff --git a/code/modules/clothing/suits/toggles.dm b/code/modules/clothing/suits/toggles.dm index 559d3006a1..79b221a807 100644 --- a/code/modules/clothing/suits/toggles.dm +++ b/code/modules/clothing/suits/toggles.dm @@ -179,8 +179,7 @@ RemoveHelmet() /obj/item/clothing/suit/space/hardsuit/proc/ToggleHelmet() - var/mob/living/carbon/human/H = src.loc - var/datum/species/pref_species = H.dna.species + var/mob/living/carbon/human/H = loc if(!helmettype) return if(!helmet) @@ -194,18 +193,6 @@ to_chat(H, "You're already wearing something on your head!") return else if(H.equip_to_slot_if_possible(helmet,SLOT_HEAD,0,0,1)) - if(helmet.mutantrace_variation) - if("mam_snouts" in pref_species.default_features) - if(H.dna.features["mam_snouts"] != "None") - helmet.muzzle_var = ALT_STYLE - - else if("snout" in pref_species.default_features) - if(H.dna.features["snout"] != "None") - helmet.muzzle_var = ALT_STYLE - else - helmet.muzzle_var = NORMAL_STYLE - H.update_inv_head() - to_chat(H, "You engage the helmet on the hardsuit.") suittoggled = TRUE H.update_inv_wear_suit() diff --git a/code/modules/clothing/suits/utility.dm b/code/modules/clothing/suits/utility.dm index fbdca6ddbc..a6c272e550 100644 --- a/code/modules/clothing/suits/utility.dm +++ b/code/modules/clothing/suits/utility.dm @@ -21,7 +21,7 @@ allowed = list(/obj/item/flashlight, /obj/item/tank/internals/emergency_oxygen, /obj/item/tank/internals/plasmaman, /obj/item/extinguisher, /obj/item/crowbar) slowdown = 1 armor = list("melee" = 15, "bullet" = 5, "laser" = 20, "energy" = 10, "bomb" = 20, "bio" = 10, "rad" = 20, "fire" = 100, "acid" = 50) - flags_inv = HIDEGLOVES|HIDESHOES|HIDEJUMPSUIT|HIDETAUR + flags_inv = HIDEGLOVES|HIDESHOES|HIDEJUMPSUIT clothing_flags = STOPSPRESSUREDAMAGE | THICKMATERIAL heat_protection = CHEST|GROIN|LEGS|FEET|ARMS|HANDS max_heat_protection_temperature = FIRE_SUIT_MAX_TEMP_PROTECT @@ -30,11 +30,12 @@ strip_delay = 60 equip_delay_other = 60 resistance_flags = FIRE_PROOF - tauric = TRUE //Citadel Add for tauric hardsuits /obj/item/clothing/suit/fire/firefighter icon_state = "firesuit" item_state = "firefighter" + flags_inv = HIDEGLOVES|HIDESHOES|HIDEJUMPSUIT|HIDETAUR + mutantrace_variation = STYLE_DIGITIGRADE|STYLE_SNEK_TAURIC|STYLE_PAW_TAURIC /obj/item/clothing/suit/fire/heavy @@ -50,6 +51,8 @@ icon_state = "atmos_firesuit" item_state = "firesuit_atmos" max_heat_protection_temperature = FIRE_IMMUNITY_MAX_TEMP_PROTECT + flags_inv = HIDEGLOVES|HIDESHOES|HIDEJUMPSUIT|HIDETAUR + mutantrace_variation = STYLE_DIGITIGRADE|STYLE_SNEK_TAURIC|STYLE_PAW_TAURIC /* * Bomb protection @@ -71,7 +74,7 @@ equip_delay_other = 70 flags_cover = HEADCOVERSEYES | HEADCOVERSMOUTH resistance_flags = NONE - mutantrace_variation = MUTANTRACE_VARIATION + mutantrace_variation = STYLE_MUZZLE /obj/item/clothing/suit/bomb_suit @@ -94,7 +97,7 @@ strip_delay = 70 equip_delay_other = 70 resistance_flags = NONE - tauric = TRUE //Citadel Add for tauric hardsuits + mutantrace_variation = STYLE_DIGITIGRADE|STYLE_SNEK_TAURIC|STYLE_PAW_TAURIC /obj/item/clothing/head/bomb_hood/security @@ -131,7 +134,7 @@ flags_cover = HEADCOVERSEYES | HEADCOVERSMOUTH resistance_flags = NONE rad_flags = RAD_PROTECT_CONTENTS | RAD_NO_CONTAMINATE - mutantrace_variation = MUTANTRACE_VARIATION + mutantrace_variation = STYLE_MUZZLE /obj/item/clothing/suit/radiation name = "radiation suit" @@ -151,4 +154,4 @@ flags_inv = HIDEJUMPSUIT|HIDETAUR resistance_flags = NONE rad_flags = RAD_PROTECT_CONTENTS | RAD_NO_CONTAMINATE - tauric = TRUE //Citadel Add for tauric hardsuits + mutantrace_variation = STYLE_DIGITIGRADE|STYLE_ALL_TAURIC diff --git a/code/modules/clothing/suits/vg_suits.dm b/code/modules/clothing/suits/vg_suits.dm index 08fe029f9e..be6cd9938e 100644 --- a/code/modules/clothing/suits/vg_suits.dm +++ b/code/modules/clothing/suits/vg_suits.dm @@ -9,7 +9,7 @@ siemens_coefficient = 0.5 icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi' alternate_worn_icon = 'modular_citadel/icons/mob/citadel/suit.dmi' - mutantrace_variation = NO_MUTANTRACE_VARIATION + mutantrace_variation = NONE /obj/item/clothing/suit/armor/xcomsquaddie/dredd name = "Judge Armor" @@ -18,7 +18,7 @@ item_state = "dredd-suit" icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi' alternate_worn_icon = 'modular_citadel/icons/mob/citadel/suit.dmi' - mutantrace_variation = NO_MUTANTRACE_VARIATION + mutantrace_variation = NONE /obj/item/clothing/suit/armor/xcomarmor @@ -32,7 +32,7 @@ siemens_coefficient = 0.5 icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi' alternate_worn_icon = 'modular_citadel/icons/mob/citadel/suit.dmi' - mutantrace_variation = NO_MUTANTRACE_VARIATION + mutantrace_variation = NONE /obj/item/clothing/suit/armor/vest/neorussian name = "neo-Russian vest" @@ -41,7 +41,7 @@ item_state = "nr_vest" icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi' alternate_worn_icon = 'modular_citadel/icons/mob/citadel/suit.dmi' - mutantrace_variation = NO_MUTANTRACE_VARIATION + mutantrace_variation = NONE /obj/item/clothing/suit/armor/doomguy name = "Doomguy's armor" @@ -53,7 +53,7 @@ armor = list(melee = 50, bullet = 30, laser = 20, energy = 20, bomb = 30, bio = 0, rad = 0) icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi' alternate_worn_icon = 'modular_citadel/icons/mob/citadel/suit.dmi' - mutantrace_variation = NO_MUTANTRACE_VARIATION + mutantrace_variation = NONE /obj/item/clothing/suit/kaminacape @@ -63,7 +63,7 @@ body_parts_covered = 0 icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi' alternate_worn_icon = 'modular_citadel/icons/mob/citadel/suit.dmi' - mutantrace_variation = NO_MUTANTRACE_VARIATION + mutantrace_variation = NONE /obj/item/clothing/suit/officercoat name = "Officer's Coat" @@ -71,7 +71,7 @@ icon_state = "officersuit" body_parts_covered = CHEST|GROIN|LEGS|ARMS|HANDS icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi' - mutantrace_variation = NO_MUTANTRACE_VARIATION + mutantrace_variation = NONE /obj/item/clothing/suit/soldiercoat name = "Soldier's Coat" @@ -79,7 +79,7 @@ icon_state = "soldiersuit" body_parts_covered = CHEST|GROIN|LEGS|ARMS|HANDS icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi' - mutantrace_variation = NO_MUTANTRACE_VARIATION + mutantrace_variation = NONE /obj/item/clothing/suit/russofurcoat name = "russian fur coat" @@ -89,7 +89,7 @@ body_parts_covered = CHEST|GROIN|LEGS|ARMS|HANDS icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi' alternate_worn_icon = 'modular_citadel/icons/mob/citadel/suit.dmi' - mutantrace_variation = NO_MUTANTRACE_VARIATION + mutantrace_variation = NONE /obj/item/clothing/suit/doshjacket name = "Plasterer's Jacket" @@ -98,7 +98,7 @@ body_parts_covered = CHEST|GROIN|ARMS icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi' alternate_worn_icon = 'modular_citadel/icons/mob/citadel/suit.dmi' - mutantrace_variation = NO_MUTANTRACE_VARIATION + mutantrace_variation = NONE /obj/item/clothing/suit/maidapron name = "Apron" @@ -107,7 +107,7 @@ body_parts_covered = CHEST|GROIN icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi' alternate_worn_icon = 'modular_citadel/icons/mob/citadel/suit.dmi' - mutantrace_variation = NO_MUTANTRACE_VARIATION + mutantrace_variation = NONE /obj/item/clothing/suit/clownpiece name = "small fairy wings" @@ -116,7 +116,7 @@ body_parts_covered = 0 icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi' alternate_worn_icon = 'modular_citadel/icons/mob/citadel/suit.dmi' - mutantrace_variation = NO_MUTANTRACE_VARIATION + mutantrace_variation = NONE /obj/item/clothing/suit/clownpiece/flying name = "small fairy wings" @@ -124,7 +124,7 @@ icon_state = "clownpiece-fly" icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi' alternate_worn_icon = 'modular_citadel/icons/mob/citadel/suit.dmi' - mutantrace_variation = NO_MUTANTRACE_VARIATION + mutantrace_variation = NONE /obj/item/clothing/suit/raincoat name = "Raincoat" @@ -133,6 +133,6 @@ body_parts_covered =CHEST|GROIN|LEGS|ARMS|HANDS icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi' alternate_worn_icon = 'modular_citadel/icons/mob/citadel/suit.dmi' - mutantrace_variation = NO_MUTANTRACE_VARIATION + mutantrace_variation = NONE diff --git a/code/modules/clothing/under/_under.dm b/code/modules/clothing/under/_under.dm index bb5f909521..0322613c11 100644 --- a/code/modules/clothing/under/_under.dm +++ b/code/modules/clothing/under/_under.dm @@ -11,13 +11,12 @@ var/sensor_mode = NO_SENSORS var/can_adjust = TRUE var/adjusted = NORMAL_STYLE - var/suit_style = NORMAL_SUIT_STYLE var/alt_covers_chest = FALSE // for adjusted/rolled-down jumpsuits, FALSE = exposes chest and arms, TRUE = exposes arms only var/obj/item/clothing/accessory/attached_accessory var/mutable_appearance/accessory_overlay - mutantrace_variation = MUTANTRACE_VARIATION //Are there special sprites for specific situations? Don't use this unless you need to. + mutantrace_variation = STYLE_DIGITIGRADE -/obj/item/clothing/under/worn_overlays(isinhands = FALSE) +/obj/item/clothing/under/worn_overlays(isinhands = FALSE, icon_file, style_flags = NONE) . = list() if(!isinhands) if(damaged_clothes) @@ -49,8 +48,6 @@ if(random_sensor) //make the sensor mode favor higher levels, except coords. sensor_mode = pick(SENSOR_OFF, SENSOR_LIVING, SENSOR_LIVING, SENSOR_VITALS, SENSOR_VITALS, SENSOR_VITALS, SENSOR_COORDS, SENSOR_COORDS) - adjusted = NORMAL_STYLE - suit_style = NORMAL_SUIT_STYLE ..() /obj/item/clothing/under/equipped(mob/user, slot) @@ -61,14 +58,6 @@ if(!alt_covers_chest) body_parts_covered |= CHEST - if(mutantrace_variation && ishuman(user)) - var/mob/living/carbon/human/H = user - if(DIGITIGRADE in H.dna.species.species_traits) - suit_style = DIGITIGRADE_SUIT_STYLE - else - suit_style = NORMAL_SUIT_STYLE - H.update_inv_w_uniform() - if(attached_accessory && slot != SLOT_HANDS && ishuman(user)) var/mob/living/carbon/human/H = user attached_accessory.on_uniform_equip(src, user) diff --git a/code/modules/clothing/under/jobs/civilian.dm b/code/modules/clothing/under/jobs/civilian.dm index c6796d64c9..e42049ef6b 100644 --- a/code/modules/clothing/under/jobs/civilian.dm +++ b/code/modules/clothing/under/jobs/civilian.dm @@ -69,7 +69,6 @@ item_state = "lb_suit" item_color = "cargo" body_parts_covered = CHEST|GROIN|ARMS - mutantrace_variation = MUTANTRACE_VARIATION alt_covers_chest = TRUE /obj/item/clothing/under/rank/cargotech/skirt @@ -132,7 +131,7 @@ item_color = "blueclown" fitted = FEMALE_UNIFORM_TOP can_adjust = FALSE - mutantrace_variation = NO_MUTANTRACE_VARIATION + mutantrace_variation = NONE /obj/item/clothing/under/rank/greenclown name = "green clown suit" @@ -142,7 +141,7 @@ item_color = "greenclown" fitted = FEMALE_UNIFORM_TOP can_adjust = FALSE - mutantrace_variation = NO_MUTANTRACE_VARIATION + mutantrace_variation = NONE /obj/item/clothing/under/rank/yellowclown name = "yellow clown suit" @@ -152,7 +151,7 @@ item_color = "yellowclown" fitted = FEMALE_UNIFORM_TOP can_adjust = FALSE - mutantrace_variation = NO_MUTANTRACE_VARIATION + mutantrace_variation = NONE /obj/item/clothing/under/rank/purpleclown name = "purple clown suit" @@ -162,7 +161,7 @@ item_color = "purpleclown" fitted = FEMALE_UNIFORM_TOP can_adjust = FALSE - mutantrace_variation = NO_MUTANTRACE_VARIATION + mutantrace_variation = NONE /obj/item/clothing/under/rank/orangeclown name = "orange clown suit" @@ -172,7 +171,7 @@ item_color = "orangeclown" fitted = FEMALE_UNIFORM_TOP can_adjust = FALSE - mutantrace_variation = NO_MUTANTRACE_VARIATION + mutantrace_variation = NONE /obj/item/clothing/under/rank/rainbowclown name = "rainbow clown suit" @@ -182,7 +181,7 @@ item_color = "rainbowclown" fitted = FEMALE_UNIFORM_TOP can_adjust = FALSE - mutantrace_variation = NO_MUTANTRACE_VARIATION + mutantrace_variation = NONE /obj/item/clothing/under/rank/clown/Initialize() . = ..() diff --git a/code/modules/clothing/under/miscellaneous.dm b/code/modules/clothing/under/miscellaneous.dm index 177bce672f..06aa5aeb0c 100644 --- a/code/modules/clothing/under/miscellaneous.dm +++ b/code/modules/clothing/under/miscellaneous.dm @@ -750,7 +750,7 @@ armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 100, "rad" = 0, "fire" = 95, "acid" = 95) slowdown = 1 body_parts_covered = CHEST|GROIN|LEGS|FEET|ARMS|HANDS - mutantrace_variation = NO_MUTANTRACE_VARIATION + mutantrace_variation = NONE can_adjust = FALSE strip_delay = 80 var/next_extinguish = 0 diff --git a/code/modules/clothing/under/polychromic_clothes.dm b/code/modules/clothing/under/polychromic_clothes.dm index 9649d93eed..53011d42d1 100644 --- a/code/modules/clothing/under/polychromic_clothes.dm +++ b/code/modules/clothing/under/polychromic_clothes.dm @@ -25,9 +25,9 @@ secondary_color = "#FFFFFF" tertiary_color = "#808080" can_adjust = FALSE - mutantrace_variation = NO_MUTANTRACE_VARIATION //Not all clothes are currently digi-compatible (only the shorts are as of time of writing) + mutantrace_variation = NONE //Not all clothes are currently digi-compatible (only the shorts are as of time of writing) -/obj/item/clothing/under/polychromic/worn_overlays(isinhands, icon_file) //this is where the main magic happens. +/obj/item/clothing/under/polychromic/worn_overlays(isinhands, icon_file, style_flags = NONE) //this is where the main magic happens. . = ..() if(hasprimary | hassecondary | hastertiary) if(!isinhands) //prevents the worn sprites from showing up if you're just holding them @@ -86,7 +86,7 @@ secondary_color = "#808080" tertiary_color = "#808080" body_parts_covered = CHEST|GROIN|ARMS - mutantrace_variation = MUTANTRACE_VARIATION //to enable digitigrade wearing + mutantrace_variation = STYLE_DIGITIGRADE //to enable digitigrade wearing /obj/item/clothing/under/polychromic/jumpsuit name = "polychromic tri-tone jumpsuit" diff --git a/code/modules/clothing/under/shorts.dm b/code/modules/clothing/under/shorts.dm index 67ef30f0cc..a615081f24 100644 --- a/code/modules/clothing/under/shorts.dm +++ b/code/modules/clothing/under/shorts.dm @@ -4,7 +4,6 @@ gender = PLURAL body_parts_covered = GROIN fitted = NO_FEMALE_UNIFORM - mutantrace_variation = MUTANTRACE_VARIATION can_adjust = FALSE /obj/item/clothing/under/shorts/red diff --git a/code/modules/clothing/under/vg_under.dm b/code/modules/clothing/under/vg_under.dm index f416f2ecc5..555ed3b795 100644 --- a/code/modules/clothing/under/vg_under.dm +++ b/code/modules/clothing/under/vg_under.dm @@ -9,7 +9,7 @@ can_adjust = 0 icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi' alternate_worn_icon = 'modular_citadel/icons/mob/citadel/uniforms.dmi' - mutantrace_variation = NO_MUTANTRACE_VARIATION + mutantrace_variation = NONE /obj/item/clothing/under/stripper_green name = "green stripper outfit" @@ -19,7 +19,7 @@ can_adjust = 0 icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi' alternate_worn_icon = 'modular_citadel/icons/mob/citadel/uniforms.dmi' - mutantrace_variation = NO_MUTANTRACE_VARIATION + mutantrace_variation = NONE /obj/item/clothing/under/wedding/bride_orange name = "orange wedding dress" @@ -30,7 +30,7 @@ can_adjust = 0 icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi' alternate_worn_icon = 'modular_citadel/icons/mob/citadel/uniforms.dmi' - mutantrace_variation = NO_MUTANTRACE_VARIATION + mutantrace_variation = NONE /obj/item/clothing/under/wedding/bride_purple name = "purple wedding dress" @@ -41,7 +41,7 @@ can_adjust = 0 icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi' alternate_worn_icon = 'modular_citadel/icons/mob/citadel/uniforms.dmi' - mutantrace_variation = NO_MUTANTRACE_VARIATION + mutantrace_variation = NONE /obj/item/clothing/under/wedding/bride_blue name = "blue wedding dress" @@ -52,7 +52,7 @@ can_adjust = 0 icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi' alternate_worn_icon = 'modular_citadel/icons/mob/citadel/uniforms.dmi' - mutantrace_variation = NO_MUTANTRACE_VARIATION + mutantrace_variation = NONE /obj/item/clothing/under/wedding/bride_red name = "red wedding dress" @@ -63,7 +63,7 @@ can_adjust = 0 icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi' alternate_worn_icon = 'modular_citadel/icons/mob/citadel/uniforms.dmi' - mutantrace_variation = NO_MUTANTRACE_VARIATION + mutantrace_variation = NONE /obj/item/clothing/under/wedding/bride_white name = "white wedding dress" @@ -74,7 +74,7 @@ can_adjust = 0 icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi' alternate_worn_icon = 'modular_citadel/icons/mob/citadel/uniforms.dmi' - mutantrace_variation = NO_MUTANTRACE_VARIATION + mutantrace_variation = NONE /obj/item/clothing/under/mankini name = "pink mankini" @@ -84,7 +84,7 @@ can_adjust = 0 icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi' alternate_worn_icon = 'modular_citadel/icons/mob/citadel/uniforms.dmi' - mutantrace_variation = NO_MUTANTRACE_VARIATION + mutantrace_variation = NONE /* /obj/item/clothing/under/psysuit @@ -129,7 +129,7 @@ can_adjust = 0 icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi' alternate_worn_icon = 'modular_citadel/icons/mob/citadel/uniforms.dmi' - mutantrace_variation = NO_MUTANTRACE_VARIATION + mutantrace_variation = NONE /obj/item/clothing/under/russobluecamooutfit name = "russian blue camo" @@ -140,7 +140,7 @@ can_adjust = 0 icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi' alternate_worn_icon = 'modular_citadel/icons/mob/citadel/uniforms.dmi' - mutantrace_variation = NO_MUTANTRACE_VARIATION + mutantrace_variation = NONE /obj/item/clothing/under/stilsuit name = "stillsuit" @@ -151,7 +151,7 @@ can_adjust = 0 icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi' alternate_worn_icon = 'modular_citadel/icons/mob/citadel/uniforms.dmi' - mutantrace_variation = NO_MUTANTRACE_VARIATION + mutantrace_variation = NONE /obj/item/clothing/under/aviatoruniform name = "aviator uniform" @@ -162,7 +162,7 @@ can_adjust = 0 icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi' alternate_worn_icon = 'modular_citadel/icons/mob/citadel/uniforms.dmi' - mutantrace_variation = NO_MUTANTRACE_VARIATION + mutantrace_variation = NONE /obj/item/clothing/under/bikersuit name = "biker's outfit" @@ -172,7 +172,7 @@ can_adjust = 0 icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi' alternate_worn_icon = 'modular_citadel/icons/mob/citadel/uniforms.dmi' - mutantrace_variation = NO_MUTANTRACE_VARIATION + mutantrace_variation = NONE /obj/item/clothing/under/jacketsuit name = "richard's outfit" @@ -183,7 +183,7 @@ can_adjust = 0 icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi' alternate_worn_icon = 'modular_citadel/icons/mob/citadel/uniforms.dmi' - mutantrace_variation = NO_MUTANTRACE_VARIATION + mutantrace_variation = NONE obj/item/clothing/under/mega name = "\improper DRN-001 suit" @@ -194,7 +194,7 @@ obj/item/clothing/under/mega can_adjust = 0 icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi' alternate_worn_icon = 'modular_citadel/icons/mob/citadel/uniforms.dmi' - mutantrace_variation = NO_MUTANTRACE_VARIATION + mutantrace_variation = NONE /obj/item/clothing/under/proto name = "The Prototype Suit" @@ -205,7 +205,7 @@ obj/item/clothing/under/mega can_adjust = 0 icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi' alternate_worn_icon = 'modular_citadel/icons/mob/citadel/uniforms.dmi' - mutantrace_variation = NO_MUTANTRACE_VARIATION + mutantrace_variation = NONE /obj/item/clothing/under/megax name = "\improper Maverick Hunter regalia" @@ -216,7 +216,7 @@ obj/item/clothing/under/mega can_adjust = 0 icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi' alternate_worn_icon = 'modular_citadel/icons/mob/citadel/uniforms.dmi' - mutantrace_variation = NO_MUTANTRACE_VARIATION + mutantrace_variation = NONE /obj/item/clothing/under/joe name = "The Sniper Suit" @@ -227,7 +227,7 @@ obj/item/clothing/under/mega can_adjust = 0 icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi' alternate_worn_icon = 'modular_citadel/icons/mob/citadel/uniforms.dmi' - mutantrace_variation = NO_MUTANTRACE_VARIATION + mutantrace_variation = NONE /obj/item/clothing/under/roll name = "\improper DRN-002 Dress" @@ -238,7 +238,7 @@ obj/item/clothing/under/mega can_adjust = 0 icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi' alternate_worn_icon = 'modular_citadel/icons/mob/citadel/uniforms.dmi' - mutantrace_variation = NO_MUTANTRACE_VARIATION + mutantrace_variation = NONE /obj/item/clothing/under/gokugidown name = "turtle hermit undershirt" @@ -249,7 +249,7 @@ obj/item/clothing/under/mega can_adjust = 0 icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi' alternate_worn_icon = 'modular_citadel/icons/mob/citadel/uniforms.dmi' - mutantrace_variation = NO_MUTANTRACE_VARIATION + mutantrace_variation = NONE /obj/item/clothing/under/gokugi name = "turtle hermit outfit" @@ -260,7 +260,7 @@ obj/item/clothing/under/mega can_adjust = 0 icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi' alternate_worn_icon = 'modular_citadel/icons/mob/citadel/uniforms.dmi' - mutantrace_variation = NO_MUTANTRACE_VARIATION + mutantrace_variation = NONE /obj/item/clothing/under/doomguy name = "\improper Doomguy's pants" @@ -271,7 +271,7 @@ obj/item/clothing/under/mega can_adjust = 0 icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi' alternate_worn_icon = 'modular_citadel/icons/mob/citadel/uniforms.dmi' - mutantrace_variation = NO_MUTANTRACE_VARIATION + mutantrace_variation = NONE /obj/item/clothing/under/vault13 name = "vault 13 Jumpsuit" @@ -282,7 +282,7 @@ obj/item/clothing/under/mega can_adjust = 0 icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi' alternate_worn_icon = 'modular_citadel/icons/mob/citadel/uniforms.dmi' - mutantrace_variation = NO_MUTANTRACE_VARIATION + mutantrace_variation = NONE /obj/item/clothing/under/vault name = "vault jumpsuit" @@ -293,7 +293,7 @@ obj/item/clothing/under/mega can_adjust = 0 icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi' alternate_worn_icon = 'modular_citadel/icons/mob/citadel/uniforms.dmi' - mutantrace_variation = NO_MUTANTRACE_VARIATION + mutantrace_variation = NONE /obj/item/clothing/under/clownpiece name = "Clownpiece's Pierrot suit" @@ -304,7 +304,7 @@ obj/item/clothing/under/mega can_adjust = 0 icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi' alternate_worn_icon = 'modular_citadel/icons/mob/citadel/uniforms.dmi' - mutantrace_variation = NO_MUTANTRACE_VARIATION + mutantrace_variation = NONE /obj/item/clothing/under/cia name = "casual IAA outfit" @@ -315,7 +315,7 @@ obj/item/clothing/under/mega can_adjust = 0 icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi' alternate_worn_icon = 'modular_citadel/icons/mob/citadel/uniforms.dmi' - mutantrace_variation = NO_MUTANTRACE_VARIATION + mutantrace_variation = NONE /obj/item/clothing/under/greaser name = "greaser outfit" @@ -325,7 +325,7 @@ obj/item/clothing/under/mega can_adjust = 0 icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi' alternate_worn_icon = 'modular_citadel/icons/mob/citadel/uniforms.dmi' - mutantrace_variation = NO_MUTANTRACE_VARIATION + mutantrace_variation = NONE /obj/item/clothing/under/greaser/New() var/greaser_colour = "default" @@ -344,7 +344,7 @@ obj/item/clothing/under/mega item_color = "greaser_[greaser_colour]" can_adjust = 0 icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi' - mutantrace_variation = NO_MUTANTRACE_VARIATION + mutantrace_variation = NONE /obj/item/clothing/under/wintercasualwear @@ -356,7 +356,7 @@ obj/item/clothing/under/mega can_adjust = 0 icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi' alternate_worn_icon = 'modular_citadel/icons/mob/citadel/uniforms.dmi' - mutantrace_variation = NO_MUTANTRACE_VARIATION + mutantrace_variation = NONE /obj/item/clothing/under/casualwear name = "spring casualwear" @@ -367,7 +367,7 @@ obj/item/clothing/under/mega can_adjust = 0 icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi' alternate_worn_icon = 'modular_citadel/icons/mob/citadel/uniforms.dmi' - mutantrace_variation = NO_MUTANTRACE_VARIATION + mutantrace_variation = NONE /obj/item/clothing/under/keyholesweater name = "keyhole sweater" @@ -378,7 +378,7 @@ obj/item/clothing/under/mega can_adjust = 0 icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi' alternate_worn_icon = 'modular_citadel/icons/mob/citadel/uniforms.dmi' - mutantrace_variation = NO_MUTANTRACE_VARIATION + mutantrace_variation = NONE /obj/item/clothing/under/casualhoodie name = "casual hoodie" @@ -389,7 +389,7 @@ obj/item/clothing/under/mega can_adjust = 0 icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi' alternate_worn_icon = 'modular_citadel/icons/mob/citadel/uniforms.dmi' - mutantrace_variation = NO_MUTANTRACE_VARIATION + mutantrace_variation = NONE /obj/item/clothing/under/casualhoodie/skirt icon_state = "hoodieskirt" @@ -397,7 +397,7 @@ obj/item/clothing/under/mega item_color = "hoodieskirt" can_adjust = 0 icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi' - mutantrace_variation = NO_MUTANTRACE_VARIATION + mutantrace_variation = NONE /* /obj/item/clothing/under/mummy_rags @@ -432,5 +432,5 @@ obj/item/clothing/under/mega can_adjust = 0 icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi' alternate_worn_icon = 'modular_citadel/icons/mob/citadel/uniforms.dmi' - mutantrace_variation = NO_MUTANTRACE_VARIATION + mutantrace_variation = NONE diff --git a/code/modules/events/holiday/vday.dm b/code/modules/events/holiday/vday.dm index 0f1a7452df..13c516960a 100644 --- a/code/modules/events/holiday/vday.dm +++ b/code/modules/events/holiday/vday.dm @@ -157,7 +157,7 @@ icon = 'icons/obj/holiday_misc.dmi' icon_state = "candyheart" desc = "A heart-shaped candy that reads: " - list_reagents = list("sugar" = 2) + list_reagents = list(/datum/reagent/consumable/sugar = 2) junkiness = 5 /obj/item/reagent_containers/food/snacks/candyheart/New() diff --git a/code/modules/events/vent_clog.dm b/code/modules/events/vent_clog.dm index 79487a024c..9075f693db 100644 --- a/code/modules/events/vent_clog.dm +++ b/code/modules/events/vent_clog.dm @@ -15,48 +15,46 @@ var/randomProbability = 1 var/reagentsAmount = 100 var/list/saferChems = list( - "water", - "carbon", - "flour", - "cleaner", - "nutriment", - "condensedcapsaicin", - "mushroomhallucinogen", - "lube", - "pink_glitter", - "cryptobiolin", - "plantbgone", - "blood", - "charcoal", - "space_drugs", - "morphine", - "holywater", - "ethanol", - "hot_coco", - "sacid", - "mindbreaker", - "rotatium", - "bluespace", - "pax", - "laughter", - "concentrated_barbers_aid", - "colorful_reagent", - "dizzysolution", - "tiresolution", - "sodiumchloride", - "beer", - "hair_dye", - "sugar", - "white_glitter", - "growthserum", - "cornoil", - "uranium", - "carpet", - "firefighting_foam", - "semen", - "femcum", - "tearjuice", - "strange_reagent" + /datum/reagent/water, + /datum/reagent/carbon, + /datum/reagent/consumable/flour, + /datum/reagent/space_cleaner, + /datum/reagent/consumable/nutriment, + /datum/reagent/consumable/condensedcapsaicin, + /datum/reagent/drug/mushroomhallucinogen, + /datum/reagent/lube, + /datum/reagent/glitter/pink, + /datum/reagent/cryptobiolin, + /datum/reagent/toxin/plantbgone, + /datum/reagent/blood, + /datum/reagent/medicine/charcoal, + /datum/reagent/drug/space_drugs, + /datum/reagent/medicine/morphine, + /datum/reagent/water/holywater, + /datum/reagent/consumable/ethanol, + /datum/reagent/consumable/hot_coco, + /datum/reagent/toxin/acid, + /datum/reagent/toxin/mindbreaker, + /datum/reagent/toxin/rotatium, + /datum/reagent/bluespace, + /datum/reagent/pax, + /datum/reagent/consumable/laughter, + /datum/reagent/concentrated_barbers_aid, + /datum/reagent/colorful_reagent, + /datum/reagent/peaceborg_confuse, + /datum/reagent/peaceborg_tire, + /datum/reagent/consumable/sodiumchloride, + /datum/reagent/consumable/ethanol/beer, + /datum/reagent/hair_dye, + /datum/reagent/consumable/sugar, + /datum/reagent/glitter/white, + /datum/reagent/growthserum, + /datum/reagent/consumable/cornoil, + /datum/reagent/uranium, + /datum/reagent/carpet, + /datum/reagent/firefighting_foam, + /datum/reagent/consumable/tearjuice, + /datum/reagent/medicine/strange_reagent ) //needs to be chemid unit checked at some point @@ -165,7 +163,7 @@ if(vent && vent.loc && !vent.welded) var/datum/reagents/R = new/datum/reagents(1000) R.my_atom = vent - R.add_reagent("beer", reagentsAmount) + R.add_reagent(/datum/reagent/consumable/ethanol/beer, reagentsAmount) var/datum/effect_system/foam_spread/foam = new foam.set_up(200, get_turf(vent), R) @@ -180,7 +178,7 @@ if(vent && vent.loc && !vent.welded) var/datum/reagents/R = new/datum/reagents(1000) R.my_atom = vent - R.add_reagent("semen", reagentsAmount) + R.add_reagent(/datum/reagent/consumable/semen, reagentsAmount) var/datum/effect_system/foam_spread/foam = new foam.set_up(200, get_turf(vent), R) @@ -195,7 +193,7 @@ if(vent && vent.loc && !vent.welded) var/datum/reagents/R = new/datum/reagents(1000) R.my_atom = vent - R.add_reagent("femcum", reagentsAmount) + R.add_reagent(/datum/reagent/consumable/femcum, reagentsAmount) var/datum/effect_system/foam_spread/foam = new foam.set_up(200, get_turf(vent), R) diff --git a/code/modules/events/wizard/invincible.dm b/code/modules/events/wizard/invincible.dm index 209bdd26c1..6ba9b44ee1 100644 --- a/code/modules/events/wizard/invincible.dm +++ b/code/modules/events/wizard/invincible.dm @@ -8,5 +8,5 @@ /datum/round_event/wizard/invincible/start() for(var/mob/living/carbon/human/H in GLOB.alive_mob_list) - H.reagents.add_reagent("adminordrazine", 40) //100 ticks of absolute invinciblity (barring gibs) + H.reagents.add_reagent(/datum/reagent/medicine/adminordrazine, 40) //100 ticks of absolute invinciblity (barring gibs) to_chat(H, "You feel invincible, nothing can hurt you!") \ No newline at end of file diff --git a/code/modules/food_and_drinks/drinks/drinks.dm b/code/modules/food_and_drinks/drinks/drinks.dm index b33be2fa02..7111ae416b 100644 --- a/code/modules/food_and_drinks/drinks/drinks.dm +++ b/code/modules/food_and_drinks/drinks/drinks.dm @@ -194,7 +194,7 @@ name = "robust coffee" desc = "Careful, the beverage you're about to enjoy is extremely hot." icon_state = "coffee" - list_reagents = list("coffee" = 30) + list_reagents = list(/datum/reagent/consumable/coffee = 30) spillable = TRUE resistance_flags = FREEZE_PROOF isGlass = FALSE @@ -211,7 +211,7 @@ name = "ice cup" desc = "Careful, cold ice, do not chew." icon_state = "coffee" - list_reagents = list("ice" = 30) + list_reagents = list(/datum/reagent/consumable/ice = 30) spillable = TRUE isGlass = FALSE @@ -231,12 +231,12 @@ /obj/item/reagent_containers/food/drinks/mug/tea name = "Duke Purple tea" desc = "An insult to Duke Purple is an insult to the Space Queen! Any proper gentleman will fight you, if you sully this tea." - list_reagents = list("tea" = 30) + list_reagents = list(/datum/reagent/consumable/tea = 30) /obj/item/reagent_containers/food/drinks/mug/coco name = "Dutch hot coco" desc = "Made in Space South America." - list_reagents = list("hot_coco" = 30, "sugar" = 5) + list_reagents = list(/datum/reagent/consumable/hot_coco = 30, /datum/reagent/consumable/sugar = 5) foodtype = SUGAR resistance_flags = FREEZE_PROOF @@ -244,7 +244,7 @@ name = "cup ramen" desc = "Just add 10ml of water, self heats! A taste that reminds you of your school years." icon_state = "ramen" - list_reagents = list("dry_ramen" = 30) + list_reagents = list(/datum/reagent/consumable/dry_ramen = 30) foodtype = GRAIN isGlass = FALSE @@ -252,20 +252,20 @@ name = "space beer" desc = "Beer. In space." icon_state = "beer" - list_reagents = list("beer" = 30) + list_reagents = list(/datum/reagent/consumable/ethanol/beer = 30) foodtype = GRAIN | ALCOHOL /obj/item/reagent_containers/food/drinks/beer/light name = "Carp Lite" desc = "Brewed with \"Pure Ice Asteroid Spring Water\"." - list_reagents = list("light_beer" = 30) + list_reagents = list(/datum/reagent/consumable/ethanol/beer/light = 30) /obj/item/reagent_containers/food/drinks/ale name = "Magm-Ale" desc = "A true dorf's drink of choice." icon_state = "alebottle" item_state = "beer" - list_reagents = list("ale" = 30) + list_reagents = list(/datum/reagent/consumable/ethanol/ale = 30) foodtype = GRAIN | ALCOHOL /obj/item/reagent_containers/food/drinks/sillycup @@ -382,7 +382,7 @@ name = "detective's flask" desc = "The detective's only true friend." icon_state = "detflask" - list_reagents = list("whiskey" = 30) + list_reagents = list(/datum/reagent/consumable/ethanol/whiskey = 30) /obj/item/reagent_containers/food/drinks/britcup name = "cup" @@ -431,26 +431,26 @@ name = "Space Cola" desc = "Cola. in space." icon_state = "cola" - list_reagents = list("cola" = 30) + list_reagents = list(/datum/reagent/consumable/space_cola = 30) foodtype = SUGAR /obj/item/reagent_containers/food/drinks/soda_cans/tonic name = "T-Borg's tonic water" desc = "Quinine tastes funny, but at least it'll keep that Space Malaria away." icon_state = "tonic" - list_reagents = list("tonic" = 50) + list_reagents = list(/datum/reagent/consumable/tonic = 50) /obj/item/reagent_containers/food/drinks/soda_cans/sodawater name = "soda water" desc = "A can of soda water. Why not make a scotch and soda?" icon_state = "sodawater" - list_reagents = list("sodawater" = 50) + list_reagents = list(/datum/reagent/consumable/sodawater = 50) /obj/item/reagent_containers/food/drinks/soda_cans/lemon_lime name = "orange soda" desc = "You wanted ORANGE. It gave you Lemon Lime." icon_state = "lemon-lime" - list_reagents = list("lemon_lime" = 30) + list_reagents = list(/datum/reagent/consumable/lemon_lime = 30) foodtype = FRUIT /obj/item/reagent_containers/food/drinks/soda_cans/lemon_lime/Initialize() @@ -461,73 +461,73 @@ name = "Space-Up!" desc = "Tastes like a hull breach in your mouth." icon_state = "space-up" - list_reagents = list("space_up" = 30) + list_reagents = list(/datum/reagent/consumable/space_up = 30) foodtype = SUGAR | JUNKFOOD /obj/item/reagent_containers/food/drinks/soda_cans/starkist name = "Star-kist" desc = "The taste of a star in liquid form. And, a bit of tuna...?" icon_state = "starkist" - list_reagents = list("cola" = 15, "orangejuice" = 15) + list_reagents = list(/datum/reagent/consumable/space_cola = 15, /datum/reagent/consumable/orangejuice = 15) foodtype = SUGAR | FRUIT | JUNKFOOD /obj/item/reagent_containers/food/drinks/soda_cans/space_mountain_wind name = "Space Mountain Wind" desc = "Blows right through you like a space wind." icon_state = "space_mountain_wind" - list_reagents = list("spacemountainwind" = 30) + list_reagents = list(/datum/reagent/consumable/spacemountainwind = 30) foodtype = SUGAR | JUNKFOOD /obj/item/reagent_containers/food/drinks/soda_cans/thirteenloko name = "Thirteen Loko" desc = "The CMO has advised crew members that consumption of Thirteen Loko may result in seizures, blindness, drunkenness, or even death. Please Drink Responsibly." icon_state = "thirteen_loko" - list_reagents = list("thirteenloko" = 30) + list_reagents = list(/datum/reagent/consumable/ethanol/thirteenloko = 30) foodtype = SUGAR | JUNKFOOD /obj/item/reagent_containers/food/drinks/soda_cans/dr_gibb name = "Dr. Gibb" desc = "A delicious mixture of 42 different flavors." icon_state = "dr_gibb" - list_reagents = list("dr_gibb" = 30) + list_reagents = list(/datum/reagent/consumable/dr_gibb = 30) foodtype = SUGAR | JUNKFOOD /obj/item/reagent_containers/food/drinks/soda_cans/pwr_game name = "Pwr Game" desc = "The only drink with the PWR that true gamers crave." icon_state = "purple_can" - list_reagents = list("pwr_game" = 30) + list_reagents = list(/datum/reagent/consumable/pwr_game = 30) /obj/item/reagent_containers/food/drinks/soda_cans/shamblers name = "Shambler's juice" desc = "~Shake me up some of that Shambler's Juice!~" icon_state = "shamblers" - list_reagents = list("shamblers" = 30) + list_reagents = list(/datum/reagent/consumable/shamblers = 30) foodtype = SUGAR | JUNKFOOD /obj/item/reagent_containers/food/drinks/soda_cans/buzz_fuzz name = "Buzz Fuzz" desc = "The sister drink of Shambler's Juice! Uses real honey, making it a sweet tooth's dream drink. The slogan reads ''A Hive of Flavour'', there's also a label about how it is adddicting." icon_state = "honeysoda_can" - list_reagents = list("buzz_fuzz" = 25, "honey" = 5) + list_reagents = list(/datum/reagent/consumable/buzz_fuzz = 25, /datum/reagent/consumable/honey = 5) foodtype = SUGAR | JUNKFOOD /obj/item/reagent_containers/food/drinks/soda_cans/grey_bull name = "Grey Bull" desc = "Grey Bull, it gives you gloves!" icon_state = "energy_drink" - list_reagents = list("grey_bull" = 20) + list_reagents = list(/datum/reagent/consumable/grey_bull = 20) foodtype = SUGAR | JUNKFOOD /obj/item/reagent_containers/food/drinks/soda_cans/air name = "canned air" desc = "There is no air shortage. Do not drink." icon_state = "air" - list_reagents = list("nitrogen" = 24, "oxygen" = 6) + list_reagents = list(/datum/reagent/nitrogen = 24, /datum/reagent/oxygen = 6) /obj/item/reagent_containers/food/drinks/soda_cans/monkey_energy name = "Monkey Energy" desc = "Unleash the ape!" icon_state = "monkey_energy" - list_reagents = list("monkey_energy" = 50) + list_reagents = list(/datum/reagent/consumable/monkey_energy = 50) foodtype = SUGAR | JUNKFOOD diff --git a/code/modules/food_and_drinks/drinks/drinks/bottle.dm b/code/modules/food_and_drinks/drinks/drinks/bottle.dm index 271ff93b15..757af11b62 100644 --- a/code/modules/food_and_drinks/drinks/drinks/bottle.dm +++ b/code/modules/food_and_drinks/drinks/drinks/bottle.dm @@ -131,88 +131,87 @@ name = "Griffeater gin" desc = "A bottle of high quality gin, produced in the New London Space Station." icon_state = "ginbottle" - list_reagents = list("gin" = 100) + list_reagents = list(/datum/reagent/consumable/ethanol/gin = 100) /obj/item/reagent_containers/food/drinks/bottle/gin/empty - list_reagents = list("gin" = 0) + list_reagents = null /obj/item/reagent_containers/food/drinks/bottle/whiskey name = "Uncle Git's special reserve" desc = "A premium single-malt whiskey, gently matured inside the tunnels of a nuclear shelter. TUNNEL WHISKEY RULES." icon_state = "whiskeybottle" - list_reagents = list("whiskey" = 100) + list_reagents = list(/datum/reagent/consumable/ethanol/whiskey = 100) /obj/item/reagent_containers/food/drinks/bottle/whiskey/empty - list_reagents = list("whiskey" = 0) + list_reagents = null /obj/item/reagent_containers/food/drinks/bottle/vodka name = "Tunguska triple distilled" desc = "Aah, vodka. Prime choice of drink AND fuel by Russians worldwide." icon_state = "vodkabottle" - list_reagents = list("vodka" = 100) + list_reagents = list(/datum/reagent/consumable/ethanol/vodka = 100) /obj/item/reagent_containers/food/drinks/bottle/vodka/empty - list_reagents = list("vodka" = 0) + list_reagents = null /obj/item/reagent_containers/food/drinks/bottle/vodka/badminka name = "Badminka vodka" desc = "The label's written in Cyrillic. All you can make out is the name and a word that looks vaguely like 'Vodka'." icon_state = "badminka" - list_reagents = list("vodka" = 100) /obj/item/reagent_containers/food/drinks/bottle/tequila name = "Caccavo guaranteed quality tequila" desc = "Made from premium petroleum distillates, pure thalidomide and other fine quality ingredients!" icon_state = "tequilabottle" - list_reagents = list("tequila" = 100) + list_reagents = list(/datum/reagent/consumable/ethanol/tequila = 100) /obj/item/reagent_containers/food/drinks/bottle/tequila/empty - list_reagents = list("tequila" = 0) + list_reagents = null /obj/item/reagent_containers/food/drinks/bottle/bottleofnothing name = "bottle of nothing" desc = "A bottle filled with nothing." icon_state = "bottleofnothing" - list_reagents = list("nothing" = 100) + list_reagents = list(/datum/reagent/consumable/nothing = 100) foodtype = NONE /obj/item/reagent_containers/food/drinks/bottle/bottleofnothing/empty - list_reagents = list("nothing" = 0) + list_reagents = null /obj/item/reagent_containers/food/drinks/bottle/patron name = "Wrapp Artiste Patron" desc = "Silver laced tequila, served in space night clubs across the galaxy." icon_state = "patronbottle" - list_reagents = list("patron" = 100) + list_reagents = list(/datum/reagent/consumable/ethanol/patron = 100) /obj/item/reagent_containers/food/drinks/bottle/patron/empty - list_reagents = list("patron" = 0) + list_reagents = null /obj/item/reagent_containers/food/drinks/bottle/rum name = "Captain Pete's Cuban spiced rum" desc = "This isn't just rum, oh no. It's practically GRIFF in a bottle." icon_state = "rumbottle" - list_reagents = list("rum" = 100) + list_reagents = list(/datum/reagent/consumable/ethanol/rum = 100) /obj/item/reagent_containers/food/drinks/bottle/rum/empty - list_reagents = list("rum" = 0) + list_reagents = null /obj/item/reagent_containers/food/drinks/bottle/holywater name = "flask of holy water" desc = "A flask of the chaplain's holy water." icon_state = "holyflask" - list_reagents = list("holywater" = 100) + list_reagents = list(/datum/reagent/water/holywater = 100) foodtype = NONE /obj/item/reagent_containers/food/drinks/bottle/holywater/hell desc = "A flask of holy water...it's been sitting in the Necropolis a while though." - list_reagents = list("hell_water" = 100) + list_reagents = list(/datum/reagent/hellwater = 100) /obj/item/reagent_containers/food/drinks/bottle/holyoil name = "flask of zelus oil" desc = "A brass flask of Zelus oil, a viscous fluid scenting of brass. Can be thrown to deal damage from afar." icon_state = "zelusflask" - list_reagents = list("holyoil" = 30) + list_reagents = list(/datum/reagent/fuel/holyoil = 30) volume = 30 foodtype = NONE force = 18 @@ -220,63 +219,63 @@ knockdown_duration = 18 /obj/item/reagent_containers/food/drinks/bottle/holyoil/empty - list_reagents = list("holyoil" = 0) + list_reagents = null /obj/item/reagent_containers/food/drinks/bottle/vermouth name = "Goldeneye vermouth" desc = "Sweet, sweet dryness~" icon_state = "vermouthbottle" - list_reagents = list("vermouth" = 100) + list_reagents = list(/datum/reagent/consumable/ethanol/vermouth = 100) /obj/item/reagent_containers/food/drinks/bottle/vermouth/empty - list_reagents = list("vermouth" = 0) + list_reagents = null /obj/item/reagent_containers/food/drinks/bottle/kahlua name = "Robert Robust's coffee liqueur" desc = "A widely known, Mexican coffee-flavoured liqueur. In production since 1936, HONK." icon_state = "kahluabottle" - list_reagents = list("kahlua" = 100) + list_reagents = list(/datum/reagent/consumable/ethanol/kahlua = 100) foodtype = VEGETABLES /obj/item/reagent_containers/food/drinks/bottle/kahlua/empty - list_reagents = list("kahlua" = 0) + list_reagents = null /obj/item/reagent_containers/food/drinks/bottle/goldschlager name = "College Girl goldschlager" desc = "Because they are the only ones who will drink 100 proof cinnamon schnapps." icon_state = "goldschlagerbottle" - list_reagents = list("goldschlager" = 100) + list_reagents = list(/datum/reagent/consumable/ethanol/goldschlager = 100) /obj/item/reagent_containers/food/drinks/bottle/goldschlager/empty - list_reagents = list("goldschlager" = 0) + list_reagents = null /obj/item/reagent_containers/food/drinks/bottle/cognac name = "Chateau de Baton premium cognac" desc = "A sweet and strongly alchoholic drink, made after numerous distillations and years of maturing. You might as well not scream 'SHITCURITY' this time." icon_state = "cognacbottle" - list_reagents = list("cognac" = 100) + list_reagents = list(/datum/reagent/consumable/ethanol/cognac = 100) /obj/item/reagent_containers/food/drinks/bottle/cognac/empty - list_reagents = list("cognac" = 0) + list_reagents = null /obj/item/reagent_containers/food/drinks/bottle/wine name = "Doublebeard's bearded special wine" desc = "A faint aura of unease and asspainery surrounds the bottle." icon_state = "winebottle" - list_reagents = list("wine" = 100) + list_reagents = list(/datum/reagent/consumable/ethanol/wine = 100) foodtype = FRUIT | ALCOHOL /obj/item/reagent_containers/food/drinks/bottle/wine/empty - list_reagents = list("wine" = 0) + list_reagents = null /obj/item/reagent_containers/food/drinks/bottle/absinthe name = "extra-strong absinthe" desc = "An strong alcoholic drink brewed and distributed by" icon_state = "absinthebottle" - list_reagents = list("absinthe" = 100) + list_reagents = list(/datum/reagent/consumable/ethanol/absinthe = 100) /obj/item/reagent_containers/food/drinks/bottle/absinthe/empty - list_reagents = list("absinthe" = 0) + list_reagents = null /obj/item/reagent_containers/food/drinks/bottle/absinthe/Initialize() . = ..() @@ -329,7 +328,7 @@ name = "bottle of lizard wine" desc = "An alcoholic beverage from Space China, made by infusing lizard tails in ethanol. Inexplicably popular among command staff." icon_state = "lizardwine" - list_reagents = list("lizardwine" = 100) + list_reagents = list(/datum/reagent/consumable/ethanol/lizardwine = 100) foodtype = FRUIT | ALCOHOL /obj/item/reagent_containers/food/drinks/bottle/hcider @@ -337,28 +336,28 @@ desc = "Apple juice for adults." icon_state = "hcider" volume = 50 - list_reagents = list("hcider" = 50) + list_reagents = list(/datum/reagent/consumable/ethanol/hcider = 50) /obj/item/reagent_containers/food/drinks/bottle/hcider/empty - list_reagents = list("hcider" = 0) + list_reagents = null /obj/item/reagent_containers/food/drinks/bottle/grappa name = "Phillipes well-aged Grappa" desc = "Bottle of Grappa." icon_state = "grappabottle" - list_reagents = list("grappa" = 100) + list_reagents = list(/datum/reagent/consumable/ethanol/grappa = 100) /obj/item/reagent_containers/food/drinks/bottle/grappa/empty - list_reagents = list("grappa" = 0) + list_reagents = null /obj/item/reagent_containers/food/drinks/bottle/sake name = "Ryo's traditional sake" desc = "Sweet as can be, and burns like fire going down." icon_state = "sakebottle" - list_reagents = list("sake" = 100) + list_reagents = list(/datum/reagent/consumable/ethanol/sake = 100) /obj/item/reagent_containers/food/drinks/bottle/sake/empty - list_reagents = list("sake" = 0) + list_reagents = null /obj/item/reagent_containers/food/drinks/bottle/sake/Initialize() . = ..() @@ -375,48 +374,48 @@ name = "Fernet Bronca" desc = "A bottle of pure Fernet Bronca, produced in Cordoba Space Station" icon_state = "fernetbottle" - list_reagents = list("fernet" = 100) + list_reagents = list(/datum/reagent/consumable/ethanol/fernet = 100) /obj/item/reagent_containers/food/drinks/bottle/fernet/empty - list_reagents = list("fernet" = 0) + list_reagents = null /obj/item/reagent_containers/food/drinks/bottle/applejack name = "Buckin' Bronco's Applejack" desc = "Kicks like a horse, tastes like an apple!" icon_state = "applejack_bottle" - list_reagents = list("applejack" = 100) + list_reagents = list(/datum/reagent/consumable/ethanol/applejack = 100) foodtype = FRUIT /obj/item/reagent_containers/food/drinks/bottle/applejack/empty - list_reagents = list("applejack" = 0) + list_reagents = null /obj/item/reagent_containers/food/drinks/bottle/champagne name = "Eau d' Dandy Brut Champagne" desc = "Finely sourced from only the most pretentious French vineyards." icon_state = "champagne_bottle" - list_reagents = list("champagne" = 100) + list_reagents = list(/datum/reagent/consumable/ethanol/champagne = 100) /obj/item/reagent_containers/food/drinks/bottle/champagne/empty - list_reagents = list("champagne" = 0) + list_reagents = null /obj/item/reagent_containers/food/drinks/bottle/blazaam name = "Ginbad's Blazaam" desc = "You feel like you should give the bottle a good rub before opening." icon_state = "blazaambottle" - list_reagents = list("blazaam" = 100) + list_reagents = list(/datum/reagent/consumable/ethanol/blazaam = 100) /obj/item/reagent_containers/food/drinks/bottle/blazaam/empty - list_reagents = list("blazaam" = 0) + list_reagents = null /obj/item/reagent_containers/food/drinks/bottle/trappist name = "Mont de Requin Trappistes Bleu" desc = "Brewed in space-Belgium. Fancy!" icon_state = "trappistbottle" volume = 50 - list_reagents = list("trappist" = 50) + list_reagents = list(/datum/reagent/consumable/ethanol/trappist = 50) /obj/item/reagent_containers/food/drinks/bottle/trappist/empty - list_reagents = list("trappist" = 0) + list_reagents = null //////////////////////////JUICES AND STUFF /////////////////////// @@ -428,7 +427,7 @@ lefthand_file = 'icons/mob/inhands/equipment/kitchen_lefthand.dmi' righthand_file = 'icons/mob/inhands/equipment/kitchen_righthand.dmi' isGlass = FALSE - list_reagents = list("orangejuice" = 100) + list_reagents = list(/datum/reagent/consumable/orangejuice = 100) foodtype = FRUIT| BREAKFAST /obj/item/reagent_containers/food/drinks/bottle/cream @@ -439,7 +438,7 @@ lefthand_file = 'icons/mob/inhands/equipment/kitchen_lefthand.dmi' righthand_file = 'icons/mob/inhands/equipment/kitchen_righthand.dmi' isGlass = FALSE - list_reagents = list("cream" = 100) + list_reagents = list(/datum/reagent/consumable/cream = 100) foodtype = DAIRY /obj/item/reagent_containers/food/drinks/bottle/tomatojuice @@ -450,7 +449,7 @@ lefthand_file = 'icons/mob/inhands/equipment/kitchen_lefthand.dmi' righthand_file = 'icons/mob/inhands/equipment/kitchen_righthand.dmi' isGlass = FALSE - list_reagents = list("tomatojuice" = 100) + list_reagents = list(/datum/reagent/consumable/tomatojuice = 100) foodtype = VEGETABLES /obj/item/reagent_containers/food/drinks/bottle/limejuice @@ -461,7 +460,7 @@ lefthand_file = 'icons/mob/inhands/equipment/kitchen_lefthand.dmi' righthand_file = 'icons/mob/inhands/equipment/kitchen_righthand.dmi' isGlass = FALSE - list_reagents = list("limejuice" = 100) + list_reagents = list(/datum/reagent/consumable/limejuice = 100) foodtype = FRUIT /obj/item/reagent_containers/food/drinks/bottle/menthol @@ -472,18 +471,18 @@ lefthand_file = 'icons/mob/inhands/equipment/kitchen_lefthand.dmi' righthand_file = 'icons/mob/inhands/equipment/kitchen_righthand.dmi' isGlass = FALSE - list_reagents = list("menthol" = 100) + list_reagents = list(/datum/reagent/consumable/menthol = 100) /obj/item/reagent_containers/food/drinks/bottle/grenadine name = "Jester Grenadine" desc = "Contains 0% real cherries!" icon_state = "grenadine" isGlass = TRUE - list_reagents = list("grenadine" = 100) + list_reagents = list(/datum/reagent/consumable/grenadine = 100) foodtype = FRUIT /obj/item/reagent_containers/food/drinks/bottle/grenadine/empty - list_reagents = list("grenadine" = 0) + list_reagents = null ////////////////////////// MOLOTOV /////////////////////// /obj/item/reagent_containers/food/drinks/bottle/molotov diff --git a/code/modules/food_and_drinks/drinks/drinks/drinkingglass.dm b/code/modules/food_and_drinks/drinks/drinks/drinkingglass.dm index 1e5c2eaf60..0d769932db 100644 --- a/code/modules/food_and_drinks/drinks/drinks/drinkingglass.dm +++ b/code/modules/food_and_drinks/drinks/drinks/drinkingglass.dm @@ -81,19 +81,19 @@ /obj/item/reagent_containers/food/drinks/drinkingglass/filled/soda name = "Soda Water" - list_reagents = list("sodawater" = 50) + list_reagents = list(/datum/reagent/consumable/sodawater = 50) /obj/item/reagent_containers/food/drinks/drinkingglass/filled/cola name = "Space Cola" - list_reagents = list("cola" = 50) + list_reagents = list(/datum/reagent/consumable/space_cola = 50) /obj/item/reagent_containers/food/drinks/drinkingglass/filled/nuka_cola name = "Nuka Cola" - list_reagents = list("nuka_cola" = 50) + list_reagents = list(/datum/reagent/consumable/nuka_cola = 50) /obj/item/reagent_containers/food/drinks/drinkingglass/filled/syndicatebomb name = "Syndicat Bomb" - list_reagents = list("syndicatebomb" = 50) + list_reagents = list(/datum/reagent/consumable/ethanol/syndicatebomb = 50) /obj/item/reagent_containers/food/drinks/drinkingglass/attackby(obj/item/I, mob/user, params) if(istype(I, /obj/item/reagent_containers/food/snacks/egg)) //breaking eggs @@ -103,7 +103,7 @@ to_chat(user, "[src] is full.") else to_chat(user, "You break [E] in [src].") - reagents.add_reagent("eggyolk", 5) + reagents.add_reagent(/datum/reagent/consumable/eggyolk, 5) qdel(E) return else diff --git a/code/modules/food_and_drinks/food/condiment.dm b/code/modules/food_and_drinks/food/condiment.dm index 7288d91f2d..d8dafb7b8e 100644 --- a/code/modules/food_and_drinks/food/condiment.dm +++ b/code/modules/food_and_drinks/food/condiment.dm @@ -15,19 +15,18 @@ volume = 50 //Possible_states has the reagent id as key and a list of, in order, the icon_state, the name and the desc as values. Used in the on_reagent_change(changetype) to change names, descs and sprites. var/list/possible_states = list( - "ketchup" = list("ketchup", "ketchup bottle", "You feel more American already."), - "mustard" = list("mustard", "mustard bottle", "A spice mixed with enzymes and water."), - "capsaicin" = list("hotsauce", "hotsauce bottle", "You can almost TASTE the stomach ulcers now!"), - "enzyme" = list("enzyme", "universal enzyme bottle", "Used in cooking various dishes"), - "soysauce" = list("soysauce", "soy sauce bottle", "A salty soy-based flavoring"), - "frostoil" = list("coldsauce", "coldsauce bottle", "Leaves the tongue numb in its passage"), - "sodiumchloride" = list("saltshakersmall", "salt shaker", "Salt. From space oceans, presumably"), - "blackpepper" = list("peppermillsmall", "pepper mill", "Often used to flavor food or make people sneeze"), - "cornoil" = list("oliveoil", "corn oil bottle", "A delicious oil used in cooking. Made from corn"), - "sugar" = list("emptycondiment", "sugar bottle", "Tasty spacey sugar!"), - "mayonnaise" = list("mayonnaise", "mayonnaise jar", "An oily condiment made from egg yolks."), - "bbqsauce" = list("condi_bbq", "BBQ sauce", "Hand wipes not included."), - "peanut_butter" = list("peanutbutter", "peanut butter jar", "A deliciously and sticky spread made from peanuts.")) + /datum/reagent/consumable/ketchup = list("ketchup", "ketchup bottle", "You feel more American already."), + /datum/reagent/consumable/capsaicin = list("hotsauce", "hotsauce bottle", "You can almost TASTE the stomach ulcers now!"), + /datum/reagent/consumable/enzyme = list("enzyme", "universal enzyme bottle", "Used in cooking various dishes"), + /datum/reagent/consumable/soysauce = list("soysauce", "soy sauce bottle", "A salty soy-based flavoring"), + /datum/reagent/consumable/frostoil = list("coldsauce", "coldsauce bottle", "Leaves the tongue numb in its passage"), + /datum/reagent/consumable/sodiumchloride = list("saltshakersmall", "salt shaker", "Salt. From space oceans, presumably"), + /datum/reagent/consumable/blackpepper = list("peppermillsmall", "pepper mill", "Often used to flavor food or make people sneeze"), + /datum/reagent/consumable/cornoil = list("oliveoil", "corn oil bottle", "A delicious oil used in cooking. Made from corn"), + /datum/reagent/consumable/sugar = list("emptycondiment", "sugar bottle", "Tasty spacey sugar!"), + /datum/reagent/consumable/mayonnaise = list("mayonnaise", "mayonnaise jar", "An oily condiment made from egg yolks."), + /datum/reagent/consumable/bbqsauce = list("bbqsauce", "BBQ sauce", "Hand wipes not included."), + /datum/reagent/consumable/peanut_butter = list("peanutbutter", "peanut butter jar", "A deliciously and sticky spread made from peanuts.")) var/originalname = "condiment" //Can't use initial(name) for this. This stores the name set by condimasters. /obj/item/reagent_containers/food/condiment/suicide_act(mob/living/carbon/user) @@ -117,12 +116,12 @@ name = "universal enzyme" desc = "Used in cooking various dishes." icon_state = "enzyme" - list_reagents = list("enzyme" = 50) + list_reagents = list(/datum/reagent/consumable/enzyme = 50) /obj/item/reagent_containers/food/condiment/sugar name = "sugar bottle" desc = "Tasty spacey sugar!" - list_reagents = list("sugar" = 50) + list_reagents = list(/datum/reagent/consumable/sugar = 50) /obj/item/reagent_containers/food/condiment/saltshaker //Separate from above since it's a small shaker rather then name = "salt shaker" // a large one. @@ -131,7 +130,7 @@ possible_transfer_amounts = list(1,20) //for clown turning the lid off amount_per_transfer_from_this = 1 volume = 20 - list_reagents = list("sodiumchloride" = 20) + list_reagents = list(/datum/reagent/consumable/sodiumchloride = 20) possible_states = list() /obj/item/reagent_containers/food/condiment/saltshaker/on_reagent_change(changetype) @@ -154,11 +153,11 @@ if(!proximity) return if(isturf(target)) - if(!reagents.has_reagent("sodiumchloride", 2)) + if(!reagents.has_reagent(/datum/reagent/consumable/sodiumchloride, 2)) to_chat(user, "You don't have enough salt to make a pile!") return user.visible_message("[user] shakes some salt onto [target].", "You shake some salt onto [target].") - reagents.remove_reagent("sodiumchloride", 2) + reagents.remove_reagent(/datum/reagent/consumable/sodiumchloride, 2) new/obj/effect/decal/cleanable/salt(target) return @@ -169,7 +168,7 @@ possible_transfer_amounts = list(1,20) //for clown turning the lid off amount_per_transfer_from_this = 1 volume = 20 - list_reagents = list("blackpepper" = 20) + list_reagents = list(/datum/reagent/consumable/blackpepper = 20) possible_states = list() /obj/item/reagent_containers/food/condiment/peppermill/on_reagent_change(changetype) @@ -185,7 +184,7 @@ item_state = "carton" lefthand_file = 'icons/mob/inhands/equipment/kitchen_lefthand.dmi' righthand_file = 'icons/mob/inhands/equipment/kitchen_righthand.dmi' - list_reagents = list("milk" = 50) + list_reagents = list(/datum/reagent/consumable/milk = 50) possible_states = list() /obj/item/reagent_containers/food/condiment/flour @@ -193,7 +192,7 @@ desc = "A big bag of flour. Good for baking!" icon_state = "flour" item_state = "flour" - list_reagents = list("flour" = 30) + list_reagents = list(/datum/reagent/consumable/flour = 30) possible_states = list() /obj/item/reagent_containers/food/condiment/soymilk @@ -203,7 +202,7 @@ item_state = "carton" lefthand_file = 'icons/mob/inhands/equipment/kitchen_lefthand.dmi' righthand_file = 'icons/mob/inhands/equipment/kitchen_righthand.dmi' - list_reagents = list("soymilk" = 50) + list_reagents = list(/datum/reagent/consumable/soymilk = 50) possible_states = list() /obj/item/reagent_containers/food/condiment/rice @@ -211,21 +210,21 @@ desc = "A big bag of rice. Good for cooking!" icon_state = "rice" item_state = "flour" - list_reagents = list("rice" = 30) + list_reagents = list(/datum/reagent/consumable/rice = 30) possible_states = list() /obj/item/reagent_containers/food/condiment/soysauce name = "soy sauce" desc = "A salty soy-based flavoring." icon_state = "soysauce" - list_reagents = list("soysauce" = 50) + list_reagents = list(/datum/reagent/consumable/soysauce = 50) possible_states = list() /obj/item/reagent_containers/food/condiment/mayonnaise name = "mayonnaise" desc = "An oily condiment made from egg yolks." icon_state = "mayonnaise" - list_reagents = list("mayonnaise" = 50) + list_reagents = list(/datum/reagent/consumable/mayonnaise = 50) possible_states = list() @@ -239,7 +238,17 @@ volume = 10 amount_per_transfer_from_this = 10 possible_transfer_amounts = list() - possible_states = list("ketchup" = list("condi_ketchup", "Ketchup", "You feel more American already."), "capsaicin" = list("condi_hotsauce", "Hotsauce", "You can almost TASTE the stomach ulcers now!"), "soysauce" = list("condi_soysauce", "Soy Sauce", "A salty soy-based flavoring"), "frostoil" = list("condi_frostoil", "Coldsauce", "Leaves the tongue numb in it's passage"), "sodiumchloride" = list("condi_salt", "Salt Shaker", "Salt. From space oceans, presumably"), "blackpepper" = list("condi_pepper", "Pepper Mill", "Often used to flavor food or make people sneeze"), "cornoil" = list("condi_cornoil", "Corn Oil", "A delicious oil used in cooking. Made from corn"), "sugar" = list("condi_sugar", "Sugar", "Tasty spacey sugar!"), "astrotame" = list("condi_astrotame", "Astrotame", "The sweetness of a thousand sugars but none of the calories.")) + possible_states = list(/datum/reagent/consumable/ketchup = list("condi_ketchup", "Ketchup", "You feel more American already."), + /datum/reagent/consumable/capsaicin = list("condi_hotsauce", "Hotsauce", "You can almost TASTE the stomach ulcers now!"), + /datum/reagent/consumable/soysauce = list("condi_soysauce", "Soy Sauce", "A salty soy-based flavoring"), + /datum/reagent/consumable/frostoil = list("condi_frostoil", "Coldsauce", "Leaves the tongue numb in it's passage"), + /datum/reagent/consumable/sodiumchloride = list("condi_salt", "Salt Shaker", "Salt. From space oceans, presumably"), + /datum/reagent/consumable/blackpepper = list("condi_pepper", "Pepper Mill", "Often used to flavor food or make people sneeze"), + /datum/reagent/consumable/cornoil = list("condi_cornoil", "Corn Oil", "A delicious oil used in cooking. Made from corn"), + /datum/reagent/consumable/sugar = list("condi_sugar", "Sugar", "Tasty spacey sugar!"), + /datum/reagent/consumable/astrotame = list("condi_astrotame", "Astrotame", "The sweetness of a thousand sugars but none of the calories."), + /datum/reagent/consumable/mustard = list("condi_mustard", "Mustard", "A spice mixed with enzymes and water."), + /datum/reagent/consumable/bbqsauce = list("condi_bbq", "BBQ sauce", "Hand wipes not included.")) /obj/item/reagent_containers/food/condiment/pack/attack(mob/M, mob/user, def_zone) //Can't feed these to people directly. return @@ -282,26 +291,26 @@ /obj/item/reagent_containers/food/condiment/pack/ketchup name = "ketchup pack" originalname = "ketchup" - list_reagents = list("ketchup" = 10) + list_reagents = list(/datum/reagent/consumable/ketchup = 10) //Mustard /obj/item/reagent_containers/food/condiment/pack/mustard name = "mustard pack" originalname = "mustard" - list_reagents = list("mustard" = 10) + list_reagents = list(/datum/reagent/consumable/mustard = 10) //Hot sauce /obj/item/reagent_containers/food/condiment/pack/hotsauce name = "hotsauce pack" originalname = "hotsauce" - list_reagents = list("capsaicin" = 10) + list_reagents = list(/datum/reagent/consumable/capsaicin = 10) /obj/item/reagent_containers/food/condiment/pack/astrotame name = "astrotame pack" originalname = "astrotame" - list_reagents = list("astrotame" = 5) + list_reagents = list(/datum/reagent/consumable/astrotame = 5) /obj/item/reagent_containers/food/condiment/pack/bbqsauce name = "bbq sauce pack" originalname = "bbq sauce" - list_reagents = list("bbqsauce" = 10) + list_reagents = list(/datum/reagent/consumable/bbqsauce = 10) diff --git a/code/modules/food_and_drinks/food/customizables.dm b/code/modules/food_and_drinks/food/customizables.dm index 239273e421..016e37a5c4 100644 --- a/code/modules/food_and_drinks/food/customizables.dm +++ b/code/modules/food_and_drinks/food/customizables.dm @@ -189,7 +189,7 @@ desc = "Delicious food on a stick." ingredients_placement = INGREDIENTS_LINE trash = /obj/item/stack/rods - list_reagents = list("nutriment" = 1) + list_reagents = list(/datum/reagent/consumable/nutriment = 1) ingMax = 6 icon_state = "rod" @@ -304,7 +304,7 @@ else if(contents.len >= 20) to_chat(user, "You can't add more ingredients to [src]!") else - if(reagents.has_reagent("water", 10)) //are we starting a soup or a salad? + if(reagents.has_reagent(/datum/reagent/water, 10)) //are we starting a soup or a salad? var/obj/item/reagent_containers/food/snacks/customizable/A = new/obj/item/reagent_containers/food/snacks/customizable/soup(get_turf(src)) A.initialize_custom_food(src, S, user) else diff --git a/code/modules/food_and_drinks/food/snacks.dm b/code/modules/food_and_drinks/food/snacks.dm index 97e8423e78..c068c1aa40 100644 --- a/code/modules/food_and_drinks/food/snacks.dm +++ b/code/modules/food_and_drinks/food/snacks.dm @@ -19,11 +19,9 @@ Here is an example of the new formatting for anyone who wants to add more food i name = "Xenoburger" //Name that displays in the UI. desc = "Smells caustic. Tastes like heresy." //Duh icon_state = "xburger" //Refers to an icon in food.dmi -/obj/item/reagent_containers/food/snacks/xenoburger/Initialize() //Don't mess with this. | nO I WILL MESS WITH THIS - . = ..() //Same here. - reagents.add_reagent("xenomicrobes", 10) //This is what is in the food item. you may copy/paste - reagents.add_reagent("nutriment", 2) //this line of code for all the contents. - bitesize = 3 //This is the amount each bite consumes. + list_reagents = list(/datum/reagent/xenomicrobes = 10, + /datum/reagent/consumable/nutriment = 2) //What's inside the snack. + bitesize = 3 //This is the amount each bite consumes. ``` All foods are distributed among various categories. Use common sense. @@ -62,7 +60,7 @@ All foods are distributed among various categories. Use common sense. if(list_reagents) for(var/rid in list_reagents) var/amount = list_reagents[rid] - if(rid == "nutriment" || rid == "vitamin") + if(rid == /datum/reagent/consumable/nutriment || rid == /datum/reagent/consumable/nutriment/vitamin) reagents.add_reagent(rid, amount, tastes.Copy()) else reagents.add_reagent(rid, amount) @@ -208,7 +206,7 @@ All foods are distributed among various categories. Use common sense. if(bonus_reagents && bonus_reagents.len) for(var/r_id in bonus_reagents) var/amount = bonus_reagents[r_id] - if(r_id == "nutriment" || r_id == "vitamin") + if(r_id == /datum/reagent/consumable/nutriment || r_id == /datum/reagent/consumable/nutriment/vitamin) reagents.add_reagent(r_id, amount, tastes) else reagents.add_reagent(r_id, amount) @@ -287,7 +285,7 @@ All foods are distributed among various categories. Use common sense. if(S.bonus_reagents && S.bonus_reagents.len) for(var/r_id in S.bonus_reagents) var/amount = S.bonus_reagents[r_id] * cooking_efficiency - if(r_id == "nutriment" || r_id == "vitamin") + if(r_id == /datum/reagent/consumable/nutriment || r_id == /datum/reagent/consumable/nutriment/vitamin) S.reagents.add_reagent(r_id, amount, tastes) else S.reagents.add_reagent(r_id, amount) diff --git a/code/modules/food_and_drinks/food/snacks/dough.dm b/code/modules/food_and_drinks/food/snacks/dough.dm index 6ae8836b28..e071fb3df7 100644 --- a/code/modules/food_and_drinks/food/snacks/dough.dm +++ b/code/modules/food_and_drinks/food/snacks/dough.dm @@ -8,7 +8,7 @@ icon = 'icons/obj/food/food_ingredients.dmi' icon_state = "dough" cooked_type = /obj/item/reagent_containers/food/snacks/store/bread/plain - list_reagents = list("nutriment" = 6) + list_reagents = list(/datum/reagent/consumable/nutriment = 6) w_class = WEIGHT_CLASS_NORMAL tastes = list("dough" = 1) foodtype = GRAIN @@ -36,7 +36,7 @@ slice_path = /obj/item/reagent_containers/food/snacks/doughslice slices_num = 3 cooked_type = /obj/item/reagent_containers/food/snacks/pizzabread - list_reagents = list("nutriment" = 6) + list_reagents = list(/datum/reagent/consumable/nutriment = 6) w_class = WEIGHT_CLASS_NORMAL tastes = list("dough" = 1) foodtype = GRAIN @@ -47,7 +47,7 @@ icon = 'icons/obj/food/food_ingredients.dmi' icon_state = "pizzabread" custom_food_type = /obj/item/reagent_containers/food/snacks/customizable/pizza - list_reagents = list("nutriment" = 7) + list_reagents = list(/datum/reagent/consumable/nutriment = 7) w_class = WEIGHT_CLASS_NORMAL tastes = list("bread" = 1) foodtype = GRAIN @@ -69,7 +69,7 @@ desc = "A base for any self-respecting burger." icon = 'icons/obj/food/burgerbread.dmi' icon_state = "bun" - list_reagents = list("nutriment" = 1) + list_reagents = list(/datum/reagent/consumable/nutriment = 1) custom_food_type = /obj/item/reagent_containers/food/snacks/customizable/burger filling_color = "#CD853F" tastes = list("bun" = 1) // the bun tastes of bun. @@ -81,7 +81,7 @@ icon = 'icons/obj/food/food_ingredients.dmi' icon_state = "cakebatter" cooked_type = /obj/item/reagent_containers/food/snacks/store/cake/plain - list_reagents = list("nutriment" = 9) + list_reagents = list(/datum/reagent/consumable/nutriment = 9) w_class = WEIGHT_CLASS_NORMAL tastes = list("batter" = 1) foodtype = GRAIN | DAIRY @@ -106,7 +106,7 @@ slice_path = /obj/item/reagent_containers/food/snacks/rawpastrybase slices_num = 3 cooked_type = /obj/item/reagent_containers/food/snacks/pie/plain - list_reagents = list("nutriment" = 9) + list_reagents = list(/datum/reagent/consumable/nutriment = 9) w_class = WEIGHT_CLASS_NORMAL tastes = list("dough" = 1) foodtype = GRAIN | DAIRY @@ -118,7 +118,7 @@ icon_state = "rawpastrybase" cooked_type = /obj/item/reagent_containers/food/snacks/pastrybase filling_color = "#CD853F" - list_reagents = list("nutriment" = 1) + list_reagents = list(/datum/reagent/consumable/nutriment = 1) tastes = list("raw pastry" = 1) foodtype = GRAIN | DAIRY @@ -127,7 +127,7 @@ desc = "A base for any self-respecting pastry." icon = 'icons/obj/food/food_ingredients.dmi' icon_state = "pastrybase" - list_reagents = list("nutriment" = 1) + list_reagents = list(/datum/reagent/consumable/nutriment = 1) filling_color = "#CD853F" tastes = list("pastry" = 1) foodtype = GRAIN | DAIRY diff --git a/code/modules/food_and_drinks/food/snacks/meat.dm b/code/modules/food_and_drinks/food/snacks/meat.dm index 8f02cd81b4..28fb2edf61 100644 --- a/code/modules/food_and_drinks/food/snacks/meat.dm +++ b/code/modules/food_and_drinks/food/snacks/meat.dm @@ -8,7 +8,7 @@ icon_state = "meat" dried_type = /obj/item/reagent_containers/food/snacks/sosjerky/healthy bitesize = 3 - list_reagents = list("nutriment" = 3, "cooking_oil" = 2) //Meat has fats that a food processor can process into cooking oil + list_reagents = list(/datum/reagent/consumable/nutriment = 3, /datum/reagent/consumable/cooking_oil = 2) //Meat has fats that a food processor can process into cooking oil cooked_type = /obj/item/reagent_containers/food/snacks/meat/steak/plain slice_path = /obj/item/reagent_containers/food/snacks/meat/rawcutlet/plain slices_num = 3 @@ -63,7 +63,7 @@ icon_state = "crabmeatraw" cooked_type = /obj/item/reagent_containers/food/snacks/meat/crab bitesize = 3 - list_reagents = list("nutriment" = 1, "cooking_oil" = 3) + list_reagents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/consumable/cooking_oil = 3) filling_color = "#EAD079" tastes = list("raw crab" = 1) foodtype = RAW | MEAT @@ -72,8 +72,8 @@ name = "crab meat" desc = "Some deliciously cooked crab meat." icon_state = "crabmeat" - list_reagents = list("nutriment" = 2) - bonus_reagents = list("nutriment" = 3, "vitamin" = 2, "cooking_oil" = 2) + list_reagents = list(/datum/reagent/consumable/nutriment = 2) + bonus_reagents = list(/datum/reagent/consumable/nutriment = 3, /datum/reagent/consumable/nutriment/vitamin = 2, /datum/reagent/consumable/cooking_oil = 2) filling_color = "#DFB73A" tastes = list("crab" = 1) foodtype = MEAT @@ -88,7 +88,7 @@ /obj/item/reagent_containers/food/snacks/meat/slab/human/mutant/slime icon_state = "slimemeat" desc = "Because jello wasn't offensive enough to vegans." - list_reagents = list("nutriment" = 3, "slimejelly" = 3) + list_reagents = list(/datum/reagent/consumable/nutriment = 3, /datum/reagent/toxin/slimejelly = 3) filling_color = "#00FFFF" tastes = list("slime" = 1, "jelly" = 1) foodtype = MEAT | RAW | TOXIC @@ -96,7 +96,7 @@ /obj/item/reagent_containers/food/snacks/meat/slab/human/mutant/golem icon_state = "golemmeat" desc = "Edible rocks, welcome to the future." - list_reagents = list("nutriment" = 3, "iron" = 3) + list_reagents = list(/datum/reagent/consumable/nutriment = 3, /datum/reagent/iron = 3) filling_color = "#A9A9A9" tastes = list("rock" = 1) foodtype = MEAT | RAW | GROSS @@ -131,7 +131,7 @@ /obj/item/reagent_containers/food/snacks/meat/slab/human/mutant/fly icon_state = "flymeat" desc = "Nothing says tasty like maggot filled radioactive mutant flesh." - list_reagents = list("nutriment" = 3, "uranium" = 3) + list_reagents = list(/datum/reagent/consumable/nutriment = 3, /datum/reagent/uranium = 3) tastes = list("maggots" = 1, "the inside of a reactor" = 1) foodtype = MEAT | RAW | GROSS @@ -214,7 +214,7 @@ name = "killer tomato meat" desc = "A slice from a huge tomato." icon_state = "tomatomeat" - list_reagents = list("nutriment" = 2) + list_reagents = list(/datum/reagent/consumable/nutriment = 2) filling_color = "#FF0000" cooked_type = /obj/item/reagent_containers/food/snacks/meat/steak/killertomato slice_path = /obj/item/reagent_containers/food/snacks/meat/rawcutlet/killertomato @@ -225,7 +225,7 @@ name = "bear meat" desc = "A very manly slab of meat." icon_state = "bearmeat" - list_reagents = list("nutriment" = 12, "morphine" = 5, "vitamin" = 2, "cooking_oil" = 6) + list_reagents = list(/datum/reagent/consumable/nutriment = 12, /datum/reagent/medicine/morphine = 5, /datum/reagent/consumable/nutriment/vitamin = 2, /datum/reagent/consumable/cooking_oil = 6) filling_color = "#FFB6C1" cooked_type = /obj/item/reagent_containers/food/snacks/meat/steak/bear slice_path = /obj/item/reagent_containers/food/snacks/meat/rawcutlet/bear @@ -236,7 +236,7 @@ name = "xeno meat" desc = "A slab of meat." icon_state = "xenomeat" - list_reagents = list("nutriment" = 3, "vitamin" = 1) + list_reagents = list(/datum/reagent/consumable/nutriment = 3, /datum/reagent/consumable/nutriment/vitamin = 1) bitesize = 4 filling_color = "#32CD32" cooked_type = /obj/item/reagent_containers/food/snacks/meat/steak/xeno @@ -248,7 +248,7 @@ name = "spider meat" desc = "A slab of spider meat." icon_state = "spidermeat" - list_reagents = list("nutriment" = 3, "toxin" = 3, "vitamin" = 1) + list_reagents = list(/datum/reagent/consumable/nutriment = 3, /datum/reagent/toxin = 3, /datum/reagent/consumable/nutriment/vitamin = 1) filling_color = "#7CFC00" cooked_type = /obj/item/reagent_containers/food/snacks/meat/steak/spider slice_path = /obj/item/reagent_containers/food/snacks/meat/rawcutlet/spider @@ -258,7 +258,7 @@ /obj/item/reagent_containers/food/snacks/meat/slab/goliath name = "goliath meat" desc = "A slab of goliath meat. It's not very edible now, but it cooks great in lava." - list_reagents = list("nutriment" = 3, "toxin" = 5, "cooking_oil" = 3) + list_reagents = list(/datum/reagent/consumable/nutriment = 3, /datum/reagent/toxin = 5, /datum/reagent/consumable/cooking_oil = 3) icon_state = "goliathmeat" tastes = list("meat" = 1) foodtype = RAW | MEAT | TOXIC @@ -271,7 +271,7 @@ /obj/item/reagent_containers/food/snacks/meat/slab/meatwheat name = "meatwheat clump" desc = "This doesn't look like meat, but your standards aren't that high to begin with." - list_reagents = list("nutriment" = 3, "vitamin" = 2, "blood" = 5, "cooking_oil" = 1) + list_reagents = list(/datum/reagent/consumable/nutriment = 3, /datum/reagent/consumable/nutriment/vitamin = 2, /datum/reagent/blood = 5, /datum/reagent/consumable/cooking_oil = 1) filling_color = rgb(150, 0, 0) icon_state = "meatwheat_clump" bitesize = 4 @@ -281,7 +281,7 @@ /obj/item/reagent_containers/food/snacks/meat/slab/gorilla name = "gorilla meat" desc = "Much meatier than monkey meat." - list_reagents = list("nutriment" = 5, "vitamin" = 1, "cooking_oil" = 5) //Plenty of fat! + list_reagents = list(/datum/reagent/consumable/nutriment = 5, /datum/reagent/consumable/nutriment/vitamin = 1, /datum/reagent/consumable/cooking_oil = 5) //Plenty of fat! /obj/item/reagent_containers/food/snacks/meat/rawbacon name = "raw piece of bacon" @@ -289,7 +289,7 @@ icon_state = "bacon" cooked_type = /obj/item/reagent_containers/food/snacks/meat/bacon bitesize = 2 - list_reagents = list("nutriment" = 1, "cooking_oil" = 3) + list_reagents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/consumable/cooking_oil = 3) filling_color = "#B22222" tastes = list("bacon" = 1) foodtype = RAW | MEAT @@ -298,8 +298,8 @@ name = "piece of bacon" desc = "A delicious piece of bacon." icon_state = "baconcooked" - list_reagents = list("nutriment" = 2) - bonus_reagents = list("nutriment" = 1, "vitamin" = 1, "cooking_oil" = 2) + list_reagents = list(/datum/reagent/consumable/nutriment = 2) + bonus_reagents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/consumable/nutriment/vitamin = 1, /datum/reagent/consumable/cooking_oil = 2) filling_color = "#854817" tastes = list("bacon" = 1) foodtype = MEAT | BREAKFAST @@ -307,7 +307,7 @@ /obj/item/reagent_containers/food/snacks/meat/slab/gondola name = "gondola meat" desc = "According to legends of old, consuming raw gondola flesh grants one inner peace." - list_reagents = list("nutriment" = 3, "tranquility" = 5, "cooking_oil" = 3) + list_reagents = list(/datum/reagent/consumable/nutriment = 3, /datum/reagent/tranquility = 5, /datum/reagent/consumable/cooking_oil = 3) tastes = list("meat" = 4, "tranquility" = 1) filling_color = "#9A6750" cooked_type = /obj/item/reagent_containers/food/snacks/meat/steak/gondola @@ -321,8 +321,8 @@ name = "steak" desc = "A piece of hot spicy meat." icon_state = "meatsteak" - list_reagents = list("nutriment" = 5) - bonus_reagents = list("nutriment" = 2, "vitamin" = 1) + list_reagents = list(/datum/reagent/consumable/nutriment = 5) + bonus_reagents = list(/datum/reagent/consumable/nutriment = 2, /datum/reagent/consumable/nutriment/vitamin = 1) trash = /obj/item/trash/plate filling_color = "#B22222" foodtype = MEAT @@ -383,7 +383,7 @@ icon_state = "rawcutlet" cooked_type = /obj/item/reagent_containers/food/snacks/meat/cutlet/plain bitesize = 2 - list_reagents = list("nutriment" = 1) + list_reagents = list(/datum/reagent/consumable/nutriment = 1) filling_color = "#B22222" tastes = list("meat" = 1) var/meat_type = "meat" @@ -447,8 +447,8 @@ desc = "A cooked meat cutlet." icon_state = "cutlet" bitesize = 2 - list_reagents = list("nutriment" = 2) - bonus_reagents = list("nutriment" = 1, "vitamin" = 1) + list_reagents = list(/datum/reagent/consumable/nutriment = 2) + bonus_reagents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/consumable/nutriment/vitamin = 1) filling_color = "#B22222" tastes = list("meat" = 1) foodtype = MEAT diff --git a/code/modules/food_and_drinks/food/snacks_bread.dm b/code/modules/food_and_drinks/food/snacks_bread.dm index 628b883e73..b18dfc7968 100644 --- a/code/modules/food_and_drinks/food/snacks_bread.dm +++ b/code/modules/food_and_drinks/food/snacks_bread.dm @@ -12,7 +12,7 @@ bitesize = 2 custom_food_type = /obj/item/reagent_containers/food/snacks/customizable/sandwich filling_color = "#FFA500" - list_reagents = list("nutriment" = 2) + list_reagents = list(/datum/reagent/consumable/nutriment = 2) slot_flags = ITEM_SLOT_HEAD customfoodfilling = 0 //to avoid infinite bread-ception foodtype = GRAIN @@ -22,8 +22,8 @@ name = "bread" desc = "Some plain old earthen bread." icon_state = "bread" - bonus_reagents = list("nutriment" = 7) - list_reagents = list("nutriment" = 10) + bonus_reagents = list(/datum/reagent/consumable/nutriment = 7) + list_reagents = list(/datum/reagent/consumable/nutriment = 10) custom_food_type = /obj/item/reagent_containers/food/snacks/customizable/bread slice_path = /obj/item/reagent_containers/food/snacks/breadslice/plain tastes = list("bread" = 10) @@ -41,8 +41,8 @@ desc = "The culinary base of every self-respecting eloquen/tg/entleman." icon_state = "meatbread" slice_path = /obj/item/reagent_containers/food/snacks/breadslice/meat - bonus_reagents = list("nutriment" = 5, "vitamin" = 10) - list_reagents = list("nutriment" = 30, "vitamin" = 5) + bonus_reagents = list(/datum/reagent/consumable/nutriment = 5, /datum/reagent/consumable/nutriment/vitamin = 10) + list_reagents = list(/datum/reagent/consumable/nutriment = 30, /datum/reagent/consumable/nutriment/vitamin = 5) tastes = list("bread" = 10, "meat" = 10) foodtype = GRAIN | MEAT @@ -57,8 +57,8 @@ desc = "The culinary base of every self-respecting eloquen/tg/entleman. Extra Heretical." icon_state = "xenomeatbread" slice_path = /obj/item/reagent_containers/food/snacks/breadslice/xenomeat - bonus_reagents = list("nutriment" = 5, "vitamin" = 10) - list_reagents = list("nutriment" = 30, "vitamin" = 5) + bonus_reagents = list(/datum/reagent/consumable/nutriment = 5, /datum/reagent/consumable/nutriment/vitamin = 10) + list_reagents = list(/datum/reagent/consumable/nutriment = 30, /datum/reagent/consumable/nutriment/vitamin = 5) tastes = list("bread" = 10, "acid" = 10) foodtype = GRAIN | MEAT @@ -67,7 +67,7 @@ desc = "A slice of delicious meatbread. Extra Heretical." icon_state = "xenobreadslice" filling_color = "#32CD32" - list_reagents = list("nutriment" = 6, "vitamin" = 1) + list_reagents = list(/datum/reagent/consumable/nutriment = 6, /datum/reagent/consumable/nutriment/vitamin = 1) foodtype = GRAIN | MEAT /obj/item/reagent_containers/food/snacks/store/bread/spidermeat @@ -75,8 +75,8 @@ desc = "Reassuringly green meatloaf made from spider meat." icon_state = "spidermeatbread" slice_path = /obj/item/reagent_containers/food/snacks/breadslice/spidermeat - bonus_reagents = list("nutriment" = 5, "vitamin" = 10) - list_reagents = list("nutriment" = 30, "toxin" = 15, "vitamin" = 5) + bonus_reagents = list(/datum/reagent/consumable/nutriment = 5, /datum/reagent/consumable/nutriment/vitamin = 10) + list_reagents = list(/datum/reagent/consumable/nutriment = 30, /datum/reagent/toxin = 15, /datum/reagent/consumable/nutriment/vitamin = 5) tastes = list("bread" = 10, "cobwebs" = 5) foodtype = GRAIN | MEAT | TOXIC @@ -85,7 +85,7 @@ desc = "A slice of meatloaf made from an animal that most likely still wants you dead." icon_state = "xenobreadslice" filling_color = "#7CFC00" - list_reagents = list("nutriment" = 6, "toxin" = 3, "vitamin" = 1) + list_reagents = list(/datum/reagent/consumable/nutriment = 6, /datum/reagent/toxin = 3, /datum/reagent/consumable/nutriment/vitamin = 1) foodtype = GRAIN | MEAT | TOXIC /obj/item/reagent_containers/food/snacks/store/bread/banana @@ -93,8 +93,8 @@ desc = "A heavenly and filling treat." icon_state = "bananabread" slice_path = /obj/item/reagent_containers/food/snacks/breadslice/banana - bonus_reagents = list("nutriment" = 5, "banana" = 20) - list_reagents = list("nutriment" = 20, "banana" = 20) + bonus_reagents = list(/datum/reagent/consumable/nutriment = 5, /datum/reagent/consumable/banana = 20) + list_reagents = list(/datum/reagent/consumable/nutriment = 20, /datum/reagent/consumable/banana = 20) tastes = list("bread" = 10) // bananjuice will also flavour foodtype = GRAIN | FRUIT @@ -104,7 +104,7 @@ desc = "A slice of delicious banana bread." icon_state = "bananabreadslice" filling_color = "#FFD700" - list_reagents = list("nutriment" = 4, "banana" = 4) + list_reagents = list(/datum/reagent/consumable/nutriment = 4, /datum/reagent/consumable/banana = 4) foodtype = GRAIN | FRUIT /obj/item/reagent_containers/food/snacks/store/bread/tofu @@ -112,8 +112,8 @@ desc = "Like meatbread but for vegetarians. Not guaranteed to give superpowers." icon_state = "tofubread" slice_path = /obj/item/reagent_containers/food/snacks/breadslice/tofu - bonus_reagents = list("nutriment" = 5, "vitamin" = 10) - list_reagents = list("nutriment" = 20, "vitamin" = 5) + bonus_reagents = list(/datum/reagent/consumable/nutriment = 5, /datum/reagent/consumable/nutriment/vitamin = 10) + list_reagents = list(/datum/reagent/consumable/nutriment = 20, /datum/reagent/consumable/nutriment/vitamin = 5) tastes = list("bread" = 10, "tofu" = 10) foodtype = GRAIN | VEGETABLES @@ -122,7 +122,7 @@ desc = "A slice of delicious tofubread." icon_state = "tofubreadslice" filling_color = "#FF8C00" - list_reagents = list("nutriment" = 4, "vitamin" = 1) + list_reagents = list(/datum/reagent/consumable/nutriment = 4, /datum/reagent/consumable/nutriment/vitamin = 1) foodtype = GRAIN | VEGETABLES /obj/item/reagent_containers/food/snacks/store/bread/creamcheese @@ -130,8 +130,8 @@ desc = "Yum yum yum!" icon_state = "creamcheesebread" slice_path = /obj/item/reagent_containers/food/snacks/breadslice/creamcheese - bonus_reagents = list("nutriment" = 5, "vitamin" = 5) - list_reagents = list("nutriment" = 20, "vitamin" = 5) + bonus_reagents = list(/datum/reagent/consumable/nutriment = 5, /datum/reagent/consumable/nutriment/vitamin = 5) + list_reagents = list(/datum/reagent/consumable/nutriment = 20, /datum/reagent/consumable/nutriment/vitamin = 5) tastes = list("bread" = 10, "cheese" = 10) foodtype = GRAIN | DAIRY @@ -140,7 +140,7 @@ desc = "A slice of yum!" icon_state = "creamcheesebreadslice" filling_color = "#FF8C00" - list_reagents = list("nutriment" = 4, "vitamin" = 1) + list_reagents = list(/datum/reagent/consumable/nutriment = 4, /datum/reagent/consumable/nutriment/vitamin = 1) foodtype = GRAIN | DAIRY /obj/item/reagent_containers/food/snacks/store/bread/mimana @@ -148,8 +148,8 @@ desc = "Best eaten in silence." icon_state = "mimanabread" slice_path = /obj/item/reagent_containers/food/snacks/breadslice/mimana - bonus_reagents = list("nutriment" = 5, "vitamin" = 5) - list_reagents = list("nutriment" = 20, "mutetoxin" = 5, "nothing" = 5, "vitamin" = 5) + bonus_reagents = list(/datum/reagent/consumable/nutriment = 5, /datum/reagent/consumable/nutriment/vitamin = 5) + list_reagents = list(/datum/reagent/consumable/nutriment = 20, /datum/reagent/toxin/mutetoxin = 5, /datum/reagent/consumable/nothing = 5, /datum/reagent/consumable/nutriment/vitamin = 5) tastes = list("bread" = 10, "silence" = 10) foodtype = GRAIN | FRUIT @@ -158,7 +158,7 @@ desc = "A slice of silence!" icon_state = "mimanabreadslice" filling_color = "#C0C0C0" - list_reagents = list("nutriment" = 2, "mutetoxin" = 1, "nothing" = 1, "vitamin" = 1) + list_reagents = list(/datum/reagent/consumable/nutriment = 2, /datum/reagent/toxin/mutetoxin = 1, /datum/reagent/consumable/nothing = 1, /datum/reagent/consumable/nutriment/vitamin = 1) foodtype = GRAIN | FRUIT /obj/item/reagent_containers/food/snacks/breadslice/custom @@ -172,8 +172,8 @@ desc = "Bon appetit!" icon = 'icons/obj/food/burgerbread.dmi' icon_state = "baguette" - bonus_reagents = list("nutriment" = 2, "vitamin" = 2) - list_reagents = list("nutriment" = 6, "vitamin" = 1) + bonus_reagents = list(/datum/reagent/consumable/nutriment = 2, /datum/reagent/consumable/nutriment/vitamin = 2) + list_reagents = list(/datum/reagent/consumable/nutriment = 6, /datum/reagent/consumable/nutriment/vitamin = 1) bitesize = 3 w_class = WEIGHT_CLASS_NORMAL tastes = list("bread" = 1) @@ -189,12 +189,12 @@ GLOBAL_VAR_INIT(frying_hardmode, TRUE) GLOBAL_VAR_INIT(frying_bad_chem_add_volume, TRUE) GLOBAL_LIST_INIT(frying_bad_chems, list( -"bad_food" = 10, -"clf3" = 2, -"aranesp" = 2, -"blackpowder" = 10, -"phlogiston" = 3, -"cyanide" = 3, +/datum/reagent/toxin/bad_food = 10, +/datum/reagent/clf3 = 2, +/datum/reagent/drug/aranesp = 2, +/datum/reagent/blackpowder = 10, +/datum/reagent/phlogiston = 3, +/datum/reagent/toxin/cyanide = 3, )) /obj/item/reagent_containers/food/snacks/deepfryholder/Initialize(mapload, obj/item/fried) @@ -268,8 +268,8 @@ GLOBAL_LIST_INIT(frying_bad_chems, list( icon_state = "butteredtoast" bitesize = 3 filling_color = "#FFA500" - list_reagents = list("nutriment" = 4) - bonus_reagents = list("nutriment" = 1, "vitamin" = 1) + list_reagents = list(/datum/reagent/consumable/nutriment = 4) + bonus_reagents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/consumable/nutriment/vitamin = 1) tastes = list("butter" = 1, "toast" = 1) foodtype = GRAIN | BREAKFAST @@ -279,8 +279,8 @@ GLOBAL_LIST_INIT(frying_bad_chems, list( icon = 'icons/obj/food/food.dmi' icon_state = "butterbiscuit" filling_color = "#F0E68C" - list_reagents = list("nutriment" = 5) - bonus_reagents = list("nutriment" = 1, "vitamin" = 1) + list_reagents = list(/datum/reagent/consumable/nutriment = 5) + bonus_reagents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/consumable/nutriment/vitamin = 1) tastes = list("butter" = 1, "biscuit" = 1) foodtype = GRAIN | BREAKFAST @@ -291,8 +291,8 @@ GLOBAL_LIST_INIT(frying_bad_chems, list( icon_state = "butterdog" bitesize = 1 filling_color = "#F1F49A" - list_reagents = list("nutriment" = 5) - bonus_reagents = list("nutriment" = 1, "vitamin" = 1) + list_reagents = list(/datum/reagent/consumable/nutriment = 5) + bonus_reagents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/consumable/nutriment/vitamin = 1) tastes = list("butter", "exotic butter") /obj/item/reagent_containers/food/snacks/butterdog/ComponentInitialize() diff --git a/code/modules/food_and_drinks/food/snacks_burgers.dm b/code/modules/food_and_drinks/food/snacks_burgers.dm index 8b6d6212f1..35b17e67f0 100644 --- a/code/modules/food_and_drinks/food/snacks_burgers.dm +++ b/code/modules/food_and_drinks/food/snacks_burgers.dm @@ -3,14 +3,14 @@ icon = 'icons/obj/food/burgerbread.dmi' icon_state = "hburger" bitesize = 3 - list_reagents = list("nutriment" = 6, "vitamin" = 1) + list_reagents = list(/datum/reagent/consumable/nutriment = 6, /datum/reagent/consumable/nutriment/vitamin = 1) tastes = list("bun" = 4) foodtype = GRAIN | MEAT /obj/item/reagent_containers/food/snacks/burger/plain name = "burger" desc = "The cornerstone of every nutritious breakfast." - bonus_reagents = list("vitamin" = 1) + bonus_reagents = list(/datum/reagent/consumable/nutriment/vitamin = 1) foodtype = GRAIN | MEAT /obj/item/reagent_containers/food/snacks/burger/plain/Initialize() @@ -31,7 +31,7 @@ var/subjectjob = null name = "human burger" desc = "A bloody burger." - bonus_reagents = list("vitamin" = 4) + bonus_reagents = list(/datum/reagent/consumable/nutriment/vitamin = 4) foodtype = MEAT | GRAIN | GROSS /obj/item/reagent_containers/food/snacks/burger/human/CheckParts(list/parts_list) @@ -50,13 +50,13 @@ /obj/item/reagent_containers/food/snacks/burger/corgi name = "corgi burger" desc = "You monster." - bonus_reagents = list("vitamin" = 1) + bonus_reagents = list(/datum/reagent/consumable/nutriment/vitamin = 1) foodtype = GRAIN | MEAT | GROSS /obj/item/reagent_containers/food/snacks/burger/appendix name = "appendix burger" desc = "Tastes like appendicitis." - bonus_reagents = list("nutriment" = 6, "vitamin" = 6) + bonus_reagents = list(/datum/reagent/consumable/nutriment = 6, /datum/reagent/consumable/nutriment/vitamin = 6) icon_state = "appendixburger" tastes = list("bun" = 4, "grass" = 2) foodtype = GRAIN | MEAT | GROSS @@ -65,7 +65,7 @@ name = "fillet -o- carp sandwich" desc = "Almost like a carp is yelling somewhere... Give me back that fillet -o- carp, give me that carp." icon_state = "fishburger" - bonus_reagents = list("nutriment" = 2, "vitamin" = 3) + bonus_reagents = list(/datum/reagent/consumable/nutriment = 2, /datum/reagent/consumable/nutriment/vitamin = 3) tastes = list("bun" = 4, "fish" = 4) foodtype = GRAIN | MEAT @@ -73,7 +73,7 @@ name = "tofu burger" desc = "What.. is that meat?" icon_state = "tofuburger" - bonus_reagents = list("nutriment" = 2, "vitamin" = 2) + bonus_reagents = list(/datum/reagent/consumable/nutriment = 2, /datum/reagent/consumable/nutriment/vitamin = 2) tastes = list("bun" = 4, "tofu" = 4) foodtype = GRAIN | VEGETABLES @@ -81,8 +81,8 @@ name = "roburger" desc = "The lettuce is the only organic component. Beep." icon_state = "roburger" - bonus_reagents = list("nutriment" = 2, "nanomachines" = 2, "vitamin" = 5) - list_reagents = list("nutriment" = 6, "nanomachines" = 5, "vitamin" = 1) + bonus_reagents = list(/datum/reagent/consumable/nutriment = 2, /datum/reagent/nanomachines = 2, /datum/reagent/consumable/nutriment/vitamin = 5) + list_reagents = list(/datum/reagent/consumable/nutriment = 6, /datum/reagent/nanomachines = 5, /datum/reagent/consumable/nutriment/vitamin = 1) tastes = list("bun" = 4, "lettuce" = 2, "sludge" = 1) foodtype = GRAIN | TOXIC @@ -91,8 +91,8 @@ desc = "This massive patty looks like poison. Beep." icon_state = "roburger" volume = 120 - bonus_reagents = list("nutriment" = 5, "nanomachines" = 70, "vitamin" = 10) - list_reagents = list("nutriment" = 6, "nanomachines" = 70, "vitamin" = 5) + bonus_reagents = list(/datum/reagent/consumable/nutriment = 5, /datum/reagent/nanomachines = 70, /datum/reagent/consumable/nutriment/vitamin = 10) + list_reagents = list(/datum/reagent/consumable/nutriment = 6, /datum/reagent/nanomachines = 70, /datum/reagent/consumable/nutriment/vitamin = 5) tastes = list("bun" = 4, "lettuce" = 2, "sludge" = 1) foodtype = GRAIN | TOXIC @@ -100,7 +100,7 @@ name = "xenoburger" desc = "Smells caustic. Tastes like heresy." icon_state = "xburger" - bonus_reagents = list("nutriment" = 2, "vitamin" = 6) + bonus_reagents = list(/datum/reagent/consumable/nutriment = 2, /datum/reagent/consumable/nutriment/vitamin = 6) tastes = list("bun" = 4, "acid" = 4) foodtype = GRAIN | MEAT @@ -108,29 +108,29 @@ name = "bearger" desc = "Best served rawr." icon_state = "bearger" - bonus_reagents = list("nutriment" = 3, "vitamin" = 6) + bonus_reagents = list(/datum/reagent/consumable/nutriment = 3, /datum/reagent/consumable/nutriment/vitamin = 6) foodtype = GRAIN | MEAT /obj/item/reagent_containers/food/snacks/burger/clown name = "clown burger" desc = "This tastes funny..." icon_state = "clownburger" - bonus_reagents = list("nutriment" = 4, "vitamin" = 6, "banana" = 6) + bonus_reagents = list(/datum/reagent/consumable/nutriment = 4, /datum/reagent/consumable/nutriment/vitamin = 6, /datum/reagent/consumable/banana = 6) foodtype = GRAIN | FRUIT /obj/item/reagent_containers/food/snacks/burger/mime name = "mime burger" desc = "Its taste defies language." icon_state = "mimeburger" - bonus_reagents = list("nutriment" = 4, "vitamin" = 6, "nothing" = 6) + bonus_reagents = list(/datum/reagent/consumable/nutriment = 4, /datum/reagent/consumable/nutriment/vitamin = 6, /datum/reagent/consumable/nothing = 6) foodtype = GRAIN /obj/item/reagent_containers/food/snacks/burger/brain name = "brainburger" desc = "A strange looking burger. It looks almost sentient." icon_state = "brainburger" - bonus_reagents = list("nutriment" = 6, "mannitol" = 6, "vitamin" = 5) - list_reagents = list("nutriment" = 6, "mannitol" = 5, "vitamin" = 1) + bonus_reagents = list(/datum/reagent/consumable/nutriment = 6, /datum/reagent/medicine/mannitol = 6, /datum/reagent/consumable/nutriment/vitamin = 5) + list_reagents = list(/datum/reagent/consumable/nutriment = 6, /datum/reagent/medicine/mannitol = 5, /datum/reagent/consumable/nutriment/vitamin = 1) tastes = list("bun" = 4, "brains" = 2) foodtype = GRAIN | MEAT | GROSS @@ -139,7 +139,7 @@ name = "ghost burger" desc = "Too Spooky!" icon_state = "ghostburger" - bonus_reagents = list("nutriment" = 5, "vitamin" = 12) + bonus_reagents = list(/datum/reagent/consumable/nutriment = 5, /datum/reagent/consumable/nutriment/vitamin = 12) tastes = list("bun" = 4, "ectoplasm" = 2) foodtype = GRAIN alpha = 170 @@ -188,7 +188,7 @@ desc = "Perfect for hiding the fact it's burnt to a crisp." icon_state = "cburger" color = "#DA0000FF" - bonus_reagents = list("redcrayonpowder" = 10, "vitamin" = 5) + bonus_reagents = list(/datum/reagent/colorful_reagent/crayonpowder/red = 10, /datum/reagent/consumable/nutriment/vitamin = 5) foodtype = GRAIN | MEAT /obj/item/reagent_containers/food/snacks/burger/orange @@ -196,7 +196,7 @@ desc = "Contains 0% juice." icon_state = "cburger" color = "#FF9300FF" - bonus_reagents = list("orangecrayonpowder" = 10, "vitamin" = 5) + bonus_reagents = list(/datum/reagent/colorful_reagent/crayonpowder/orange = 10, /datum/reagent/consumable/nutriment/vitamin = 5) foodtype = GRAIN | MEAT /obj/item/reagent_containers/food/snacks/burger/yellow @@ -204,7 +204,7 @@ desc = "Bright to the last bite." icon_state = "cburger" color = "#FFF200FF" - bonus_reagents = list("yellowcrayonpowder" = 10, "vitamin" = 5) + bonus_reagents = list(/datum/reagent/colorful_reagent/crayonpowder/yellow = 10, /datum/reagent/consumable/nutriment/vitamin = 5) foodtype = GRAIN | MEAT /obj/item/reagent_containers/food/snacks/burger/green @@ -212,7 +212,7 @@ desc = "It's not tainted meat, it's painted meat!" icon_state = "cburger" color = "#A8E61DFF" - bonus_reagents = list("greencrayonpowder" = 10, "vitamin" = 5) + bonus_reagents = list(/datum/reagent/colorful_reagent/crayonpowder/green = 10, /datum/reagent/consumable/nutriment/vitamin = 5) foodtype = GRAIN | MEAT /obj/item/reagent_containers/food/snacks/burger/blue @@ -220,7 +220,7 @@ desc = "Is this blue rare?" icon_state = "cburger" color = "#00B7EFFF" - bonus_reagents = list("bluecrayonpowder" = 10, "vitamin" = 5) + bonus_reagents = list(/datum/reagent/colorful_reagent/crayonpowder/blue = 10, /datum/reagent/consumable/nutriment/vitamin = 5) foodtype = GRAIN | MEAT /obj/item/reagent_containers/food/snacks/burger/purple @@ -228,7 +228,7 @@ desc = "Regal and low class at the same time." icon_state = "cburger" color = "#DA00FFFF" - bonus_reagents = list("purplecrayonpowder" = 10, "vitamin" = 5) + bonus_reagents = list(/datum/reagent/colorful_reagent/crayonpowder/purple = 10, /datum/reagent/consumable/nutriment/vitamin = 5) foodtype = GRAIN | MEAT /obj/item/reagent_containers/food/snacks/burger/black @@ -236,7 +236,7 @@ desc = "This is overcooked." icon_state = "cburger" color = "#1C1C1C" - bonus_reagents = list("blackcrayonpowder" = 10, "vitamin" = 5) + bonus_reagents = list(/datum/reagent/colorful_reagent/crayonpowder/black = 10, /datum/reagent/consumable/nutriment/vitamin = 5) foodtype = GRAIN | MEAT /obj/item/reagent_containers/food/snacks/burger/white @@ -244,14 +244,14 @@ desc = "Delicous Titanium!" icon_state = "cburger" color = "#FFFFFF" - bonus_reagents = list("whitecrayonpowder" = 10, "vitamin" = 5) + bonus_reagents = list(/datum/reagent/colorful_reagent/crayonpowder/white = 10, /datum/reagent/consumable/nutriment/vitamin = 5) foodtype = GRAIN | MEAT /obj/item/reagent_containers/food/snacks/burger/spell name = "spell burger" desc = "This is absolutely Ei Nath." icon_state = "spellburger" - bonus_reagents = list("nutriment" = 6, "vitamin" = 10) + bonus_reagents = list(/datum/reagent/consumable/nutriment = 6, /datum/reagent/consumable/nutriment/vitamin = 10) tastes = list("bun" = 4, "magic" = 2) foodtype = GRAIN | MEAT @@ -259,8 +259,8 @@ name = "big bite burger" desc = "Forget the Big Mac. THIS is the future!" icon_state = "bigbiteburger" - bonus_reagents = list("vitamin" = 6) - list_reagents = list("nutriment" = 10, "vitamin" = 2) + bonus_reagents = list(/datum/reagent/consumable/nutriment/vitamin = 6) + list_reagents = list(/datum/reagent/consumable/nutriment = 10, /datum/reagent/consumable/nutriment/vitamin = 2) w_class = WEIGHT_CLASS_NORMAL foodtype = GRAIN | MEAT @@ -272,21 +272,21 @@ foodtype = GRAIN | MEAT /obj/item/reagent_containers/food/snacks/burger/jelly/slime - bonus_reagents = list("slimejelly" = 5, "vitamin" = 5) - list_reagents = list("nutriment" = 6, "slimejelly" = 5, "vitamin" = 1) + bonus_reagents = list(/datum/reagent/toxin/slimejelly = 5, /datum/reagent/consumable/nutriment/vitamin = 5) + list_reagents = list(/datum/reagent/consumable/nutriment = 6, /datum/reagent/toxin/slimejelly = 5, /datum/reagent/consumable/nutriment/vitamin = 1) foodtype = GRAIN | TOXIC /obj/item/reagent_containers/food/snacks/burger/jelly/cherry - bonus_reagents = list("cherryjelly" = 5, "vitamin" = 5) - list_reagents = list("nutriment" = 6, "cherryjelly" = 5, "vitamin" = 1) + bonus_reagents = list(/datum/reagent/consumable/cherryjelly = 5, /datum/reagent/consumable/nutriment/vitamin = 5) + list_reagents = list(/datum/reagent/consumable/nutriment = 6, /datum/reagent/consumable/cherryjelly = 5, /datum/reagent/consumable/nutriment/vitamin = 1) foodtype = GRAIN | FRUIT /obj/item/reagent_containers/food/snacks/burger/superbite name = "super bite burger" desc = "This is a mountain of a burger. FOOD!" icon_state = "superbiteburger" - bonus_reagents = list("vitamin" = 10) - list_reagents = list("nutriment" = 40, "vitamin" = 5) + bonus_reagents = list(/datum/reagent/consumable/nutriment/vitamin = 10) + list_reagents = list(/datum/reagent/consumable/nutriment = 40, /datum/reagent/consumable/nutriment/vitamin = 5) w_class = WEIGHT_CLASS_NORMAL bitesize = 7 volume = 100 @@ -297,29 +297,29 @@ name = "five alarm burger" desc = "HOT! HOT!" icon_state = "fivealarmburger" - bonus_reagents = list("nutriment" = 2, "vitamin" = 5) - list_reagents = list("nutriment" = 6, "capsaicin" = 5, "condensedcapsaicin" = 5, "vitamin" = 1) + bonus_reagents = list(/datum/reagent/consumable/nutriment = 2, /datum/reagent/consumable/nutriment/vitamin = 5) + list_reagents = list(/datum/reagent/consumable/nutriment = 6, /datum/reagent/consumable/capsaicin = 5, /datum/reagent/consumable/condensedcapsaicin = 5, /datum/reagent/consumable/nutriment/vitamin = 1) foodtype = GRAIN | MEAT /obj/item/reagent_containers/food/snacks/burger/rat name = "rat burger" desc = "Pretty much what you'd expect..." icon_state = "ratburger" - bonus_reagents = list("nutriment" = 1, "vitamin" = 1) + bonus_reagents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/consumable/nutriment/vitamin = 1) foodtype = GRAIN | MEAT | GROSS /obj/item/reagent_containers/food/snacks/burger/baseball name = "home run baseball burger" desc = "It's still warm. The steam coming off of it looks like baseball." icon_state = "baseball" - bonus_reagents = list("nutriment" = 1, "vitamin" = 1) + bonus_reagents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/consumable/nutriment/vitamin = 1) foodtype = GRAIN | GROSS /obj/item/reagent_containers/food/snacks/burger/baconburger name = "bacon burger" desc = "The perfect combination of all things American." icon_state = "baconburger" - bonus_reagents = list("nutriment" = 8, "vitamin" = 1) + bonus_reagents = list(/datum/reagent/consumable/nutriment = 8, /datum/reagent/consumable/nutriment/vitamin = 1) tastes = list("bun" = 4, "bacon" = 2) foodtype = GRAIN | MEAT @@ -327,7 +327,7 @@ name = "soylent burger" desc = "A eco-friendly burger made using upcycled low value biomass." icon_state = "soylentburger" - bonus_reagents = list("nutriment" = 5, "vitamin" = 3) + bonus_reagents = list(/datum/reagent/consumable/nutriment = 5, /datum/reagent/consumable/nutriment/vitamin = 3) tastes = list("bun" = 2, "assistant" = 4) foodtype = GRAIN | MEAT | DAIRY @@ -335,7 +335,7 @@ name = "mcrib" desc = "An elusive rib shaped burger with limited availablity across the galaxy. Not as good as you remember it." icon_state = "mcrib" - bonus_reagents = list("bbqsauce" = 5, "vitamin" = 3) + bonus_reagents = list(/datum/reagent/consumable/bbqsauce = 5, /datum/reagent/consumable/nutriment/vitamin = 3) tastes = list("bun" = 2, "pork patty" = 4) foodtype = GRAIN | MEAT @@ -344,7 +344,7 @@ desc = "A cheap and greasy imitation of an eggs benedict." icon_state = "mcguffin" tastes = list("muffin" = 2, "bacon" = 3) - bonus_reagents = list("eggyolk" = 3, "nutriment" = 1) + bonus_reagents = list(/datum/reagent/consumable/eggyolk = 3, /datum/reagent/consumable/nutriment = 1) foodtype = GRAIN | MEAT | BREAKFAST /obj/item/reagent_containers/food/snacks/burger/chicken @@ -352,7 +352,7 @@ desc = "A delicious chicken sandwich, it is said the proceeds from this treat helps criminalize homosexuality on the space frontier." icon_state = "chickenburger" tastes = list("bun" = 2, "chicken" = 4, "God's covenant" = 1) - bonus_reagents = list("mayonnaise" = 3, "cooking_oil" = 2, "nutriment" = 2) + bonus_reagents = list(/datum/reagent/consumable/mayonnaise = 3, /datum/reagent/consumable/cooking_oil = 2, /datum/reagent/consumable/nutriment = 2) foodtype = GRAIN | MEAT | FRIED /obj/item/reagent_containers/food/snacks/burger/cheese @@ -360,7 +360,7 @@ desc = "This noble burger stands proudly clad in golden cheese." icon_state = "cheeseburger" tastes = list("bun" = 2, "beef patty" = 4, "cheese" = 3) - bonus_reagents = list("nutriment" = 1) + bonus_reagents = list(/datum/reagent/consumable/nutriment = 1) foodtype = GRAIN | MEAT | DAIRY /obj/item/reagent_containers/food/snacks/burger/cheese/Initialize() diff --git a/code/modules/food_and_drinks/food/snacks_cake.dm b/code/modules/food_and_drinks/food/snacks_cake.dm index dd4dad4d9b..bb37ec9b5d 100644 --- a/code/modules/food_and_drinks/food/snacks_cake.dm +++ b/code/modules/food_and_drinks/food/snacks_cake.dm @@ -4,14 +4,14 @@ slices_num = 5 bitesize = 3 volume = 80 - list_reagents = list("nutriment" = 20, "vitamin" = 5) + list_reagents = list(/datum/reagent/consumable/nutriment = 20, /datum/reagent/consumable/nutriment/vitamin = 5) tastes = list("cake" = 1) foodtype = GRAIN | DAIRY /obj/item/reagent_containers/food/snacks/cakeslice icon = 'icons/obj/food/piecake.dmi' trash = /obj/item/trash/plate - list_reagents = list("nutriment" = 4, "vitamin" = 1) + list_reagents = list(/datum/reagent/consumable/nutriment = 4, /datum/reagent/consumable/nutriment/vitamin = 1) customfoodfilling = 0 //to avoid infinite cake-ception tastes = list("cake" = 1) foodtype = GRAIN | DAIRY @@ -21,7 +21,7 @@ desc = "A plain cake, not a lie." icon_state = "plaincake" custom_food_type = /obj/item/reagent_containers/food/snacks/customizable/cake - bonus_reagents = list("nutriment" = 10, "vitamin" = 2) + bonus_reagents = list(/datum/reagent/consumable/nutriment = 10, /datum/reagent/consumable/nutriment/vitamin = 2) tastes = list("sweetness" = 2,"cake" = 5) foodtype = GRAIN | DAIRY | SUGAR @@ -40,8 +40,8 @@ icon_state = "carrotcake" slice_path = /obj/item/reagent_containers/food/snacks/cakeslice/carrot slices_num = 5 - bonus_reagents = list("nutriment" = 3, "oculine" = 5, "vitamin" = 10) - list_reagents = list("nutriment" = 20, "oculine" = 10, "vitamin" = 5) + bonus_reagents = list(/datum/reagent/consumable/nutriment = 3, /datum/reagent/medicine/oculine = 5, /datum/reagent/consumable/nutriment/vitamin = 10) + list_reagents = list(/datum/reagent/consumable/nutriment = 20, /datum/reagent/medicine/oculine = 10, /datum/reagent/consumable/nutriment/vitamin = 5) tastes = list("cake" = 5, "sweetness" = 2, "carrot" = 1) foodtype = GRAIN | DAIRY | VEGETABLES | SUGAR @@ -50,7 +50,7 @@ desc = "Carrotty slice of Carrot Cake, carrots are good for your eyes! Also not a lie." icon_state = "carrotcake_slice" filling_color = "#FFA500" - list_reagents = list("nutriment" = 4, "oculine" = 2, "vitamin" = 1) + list_reagents = list(/datum/reagent/consumable/nutriment = 4, /datum/reagent/medicine/oculine = 2, /datum/reagent/consumable/nutriment/vitamin = 1) tastes = list("cake" = 5, "sweetness" = 2, "carrot" = 1) foodtype = GRAIN | DAIRY | VEGETABLES | SUGAR @@ -60,8 +60,8 @@ icon_state = "braincake" slice_path = /obj/item/reagent_containers/food/snacks/cakeslice/brain slices_num = 5 - bonus_reagents = list("nutriment" = 5, "mannitol" = 10, "vitamin" = 10) - list_reagents = list("nutriment" = 20, "mannitol" = 10, "vitamin" = 5) + bonus_reagents = list(/datum/reagent/consumable/nutriment = 5, /datum/reagent/medicine/mannitol = 10, /datum/reagent/consumable/nutriment/vitamin = 10) + list_reagents = list(/datum/reagent/consumable/nutriment = 20, /datum/reagent/medicine/mannitol = 10, /datum/reagent/consumable/nutriment/vitamin = 5) tastes = list("cake" = 5, "sweetness" = 2, "brains" = 1) foodtype = GRAIN | DAIRY | MEAT | GROSS | SUGAR @@ -71,7 +71,7 @@ desc = "Lemme tell you something about prions. THEY'RE DELICIOUS." icon_state = "braincakeslice" filling_color = "#FF69B4" - list_reagents = list("nutriment" = 4, "mannitol" = 2, "vitamin" = 1) + list_reagents = list(/datum/reagent/consumable/nutriment = 4, /datum/reagent/medicine/mannitol = 2, /datum/reagent/consumable/nutriment/vitamin = 1) tastes = list("cake" = 5, "sweetness" = 2, "brains" = 1) foodtype = GRAIN | DAIRY | MEAT | GROSS | SUGAR @@ -81,7 +81,7 @@ icon_state = "cheesecake" slice_path = /obj/item/reagent_containers/food/snacks/cakeslice/cheese slices_num = 5 - bonus_reagents = list("vitamin" = 10) + bonus_reagents = list(/datum/reagent/consumable/nutriment/vitamin = 10) tastes = list("cake" = 4, "cream cheese" = 3) foodtype = GRAIN | DAIRY @@ -99,7 +99,7 @@ icon_state = "orangecake" slice_path = /obj/item/reagent_containers/food/snacks/cakeslice/orange slices_num = 5 - bonus_reagents = list("nutriment" = 3, "vitamin" = 10) + bonus_reagents = list(/datum/reagent/consumable/nutriment = 3, /datum/reagent/consumable/nutriment/vitamin = 10) tastes = list("cake" = 5, "sweetness" = 2, "oranges" = 2) foodtype = GRAIN | DAIRY | FRUIT | SUGAR @@ -117,7 +117,7 @@ icon_state = "limecake" slice_path = /obj/item/reagent_containers/food/snacks/cakeslice/lime slices_num = 5 - bonus_reagents = list("nutriment" = 3, "vitamin" = 10) + bonus_reagents = list(/datum/reagent/consumable/nutriment = 3, /datum/reagent/consumable/nutriment/vitamin = 10) tastes = list("cake" = 5, "sweetness" = 2, "unbearable sourness" = 2) foodtype = GRAIN | DAIRY | FRUIT | SUGAR @@ -135,7 +135,7 @@ icon_state = "lemoncake" slice_path = /obj/item/reagent_containers/food/snacks/cakeslice/lemon slices_num = 5 - bonus_reagents = list("nutriment" = 3, "vitamin" = 10) + bonus_reagents = list(/datum/reagent/consumable/nutriment = 3, /datum/reagent/consumable/nutriment/vitamin = 10) tastes = list("cake" = 5, "sweetness" = 2, "sourness" = 2) foodtype = GRAIN | DAIRY | FRUIT | SUGAR @@ -153,7 +153,7 @@ icon_state = "chocolatecake" slice_path = /obj/item/reagent_containers/food/snacks/cakeslice/chocolate slices_num = 5 - bonus_reagents = list("nutriment" = 3, "vitamin" = 10) + bonus_reagents = list(/datum/reagent/consumable/nutriment = 3, /datum/reagent/consumable/nutriment/vitamin = 10) tastes = list("cake" = 5, "sweetness" = 1, "chocolate" = 4) foodtype = GRAIN | DAIRY | JUNKFOOD | SUGAR @@ -171,8 +171,8 @@ icon_state = "birthdaycake" slice_path = /obj/item/reagent_containers/food/snacks/cakeslice/birthday slices_num = 5 - bonus_reagents = list("nutriment" = 7, "sprinkles" = 10, "vitamin" = 5) - list_reagents = list("nutriment" = 20, "sprinkles" = 10, "vitamin" = 5) + bonus_reagents = list(/datum/reagent/consumable/nutriment = 7, /datum/reagent/consumable/sprinkles = 10, /datum/reagent/consumable/nutriment/vitamin = 5) + list_reagents = list(/datum/reagent/consumable/nutriment = 20, /datum/reagent/consumable/sprinkles = 10, /datum/reagent/consumable/nutriment/vitamin = 5) tastes = list("cake" = 5, "sweetness" = 1) foodtype = GRAIN | DAIRY | JUNKFOOD | SUGAR @@ -181,7 +181,7 @@ desc = "A slice of your birthday." icon_state = "birthdaycakeslice" filling_color = "#DC143C" - list_reagents = list("nutriment" = 4, "sprinkles" = 2, "vitamin" = 1) + list_reagents = list(/datum/reagent/consumable/nutriment = 4, /datum/reagent/consumable/sprinkles = 2, /datum/reagent/consumable/nutriment/vitamin = 1) tastes = list("cake" = 5, "sweetness" = 1) foodtype = GRAIN | DAIRY | JUNKFOOD | SUGAR @@ -191,7 +191,7 @@ icon_state = "applecake" slice_path = /obj/item/reagent_containers/food/snacks/cakeslice/apple slices_num = 5 - bonus_reagents = list("nutriment" = 3, "vitamin" = 10) + bonus_reagents = list(/datum/reagent/consumable/nutriment = 3, /datum/reagent/consumable/nutriment/vitamin = 10) tastes = list("cake" = 5, "sweetness" = 1, "apple" = 1) foodtype = GRAIN | DAIRY | FRUIT | SUGAR @@ -214,7 +214,7 @@ desc = "A cake made of slimes. Probably not electrified." icon_state = "slimecake" slice_path = /obj/item/reagent_containers/food/snacks/cakeslice/slimecake - bonus_reagents = list("nutriment" = 1, "vitamin" = 3) + bonus_reagents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/consumable/nutriment/vitamin = 3) tastes = list("cake" = 5, "sweetness" = 1, "slime" = 1) foodtype = GRAIN | DAIRY | SUGAR @@ -231,7 +231,7 @@ desc = "A hollow cake with real pumpkin." icon_state = "pumpkinspicecake" slice_path = /obj/item/reagent_containers/food/snacks/cakeslice/pumpkinspice - bonus_reagents = list("nutriment" = 3, "vitamin" = 5) + bonus_reagents = list(/datum/reagent/consumable/nutriment = 3, /datum/reagent/consumable/nutriment/vitamin = 5) tastes = list("cake" = 5, "sweetness" = 1, "pumpkin" = 1) foodtype = GRAIN | DAIRY | VEGETABLES | SUGAR @@ -248,7 +248,7 @@ desc = "A plain cake, filled with assortment of blackberries and strawberries!" icon_state = "blackbarry_strawberries_cake_vanilla_cake" slice_path = /obj/item/reagent_containers/food/snacks/cakeslice/bsvc - bonus_reagents = list("nutriment" = 14, "vitamin" = 4) + bonus_reagents = list(/datum/reagent/consumable/nutriment = 14, /datum/reagent/consumable/nutriment/vitamin = 4) tastes = list("blackbarry" = 2, "strawberries" = 2, "vanilla" = 2, "sweetness" = 2, "cake" = 3) foodtype = GRAIN | DAIRY | FRUIT | SUGAR @@ -265,7 +265,7 @@ desc = "A plain cake, filled with assortment of blackberries and strawberries!" icon_state = "blackbarry_strawberries_cake_coco_cake" slice_path = /obj/item/reagent_containers/food/snacks/cakeslice/bscc - bonus_reagents = list("nutriment" = 14, "vitamin" = 4, "cocoa" = 5) + bonus_reagents = list(/datum/reagent/consumable/nutriment = 14, /datum/reagent/consumable/nutriment/vitamin = 4, /datum/reagent/consumable/coco = 5) tastes = list("blackberry" = 2, "strawberries" = 2, "chocolate" = 2, "sweetness" = 2,"cake" = 3) foodtype = GRAIN | DAIRY | FRUIT | SUGAR @@ -282,7 +282,7 @@ desc = "A cake made for angels and chaplains alike! Contains holy water." icon_state = "holy_cake" slice_path = /obj/item/reagent_containers/food/snacks/cakeslice/holy_cake_slice - bonus_reagents = list("nutriment" = 1, "vitamin" = 3, "holy_water" = 10) + bonus_reagents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/consumable/nutriment/vitamin = 3, /datum/reagent/water/holywater = 10) tastes = list("cake" = 5, "sweetness" = 1, "clouds" = 1) foodtype = GRAIN | DAIRY | SUGAR @@ -300,7 +300,7 @@ obj/item/reagent_containers/food/snacks/store/cake/pound_cake icon_state = "pound_cake" slices_num = 7 //Its ment to feed the party slice_path = /obj/item/reagent_containers/food/snacks/cakeslice/pound_cake_slice - bonus_reagents = list("nutriment" = 60) + bonus_reagents = list(/datum/reagent/consumable/nutriment = 60) tastes = list("cake" = 5, "sweetness" = 1, "batter" = 1) foodtype = GRAIN | DAIRY | SUGAR | JUNKFOOD @@ -317,7 +317,7 @@ obj/item/reagent_containers/food/snacks/store/cake/pound_cake desc = "A cake that is made with electronic boards and leaks acid..." icon_state = "hardware_cake" slice_path = /obj/item/reagent_containers/food/snacks/cakeslice/hardware_cake_slice - bonus_reagents = list("sacid" = 15, "oil" = 15) + bonus_reagents = list(/datum/reagent/toxin/acid = 15, /datum/reagent/oil = 15) tastes = list("acid" = 1, "metal" = 1, "regret" = 10) foodtype = GRAIN | GROSS @@ -334,7 +334,7 @@ obj/item/reagent_containers/food/snacks/store/cake/pound_cake desc = "A vanilla frosted cake." icon_state = "vanillacake" slice_path = /obj/item/reagent_containers/food/snacks/cakeslice/vanilla_slice - bonus_reagents = list("sugar" = 15, "vanilla" = 15) + bonus_reagents = list(/datum/reagent/consumable/sugar = 15, /datum/reagent/consumable/vanilla = 15) tastes = list("cake" = 1, "sugar" = 1, "vanilla" = 10) foodtype = GRAIN | SUGAR | DAIRY @@ -351,7 +351,7 @@ obj/item/reagent_containers/food/snacks/store/cake/pound_cake desc = "A funny cake with a clown face on it." icon_state = "clowncake" slice_path = /obj/item/reagent_containers/food/snacks/cakeslice/clown_slice - bonus_reagents = list("sugar" = 15, "laugher" = 15) + bonus_reagents = list(/datum/reagent/consumable/sugar = 15, /datum/reagent/consumable/laughter = 15) tastes = list("cake" = 1, "sugar" = 1, "joy" = 10) foodtype = GRAIN | SUGAR | DAIRY @@ -368,7 +368,7 @@ obj/item/reagent_containers/food/snacks/store/cake/pound_cake desc = "A peach filled cake." icon_state = "peachcake" slice_path = /obj/item/reagent_containers/food/snacks/cakeslice/peach_slice - bonus_reagents = list("sugar" = 5, "peachjuice" = 15) + bonus_reagents = list(/datum/reagent/consumable/sugar = 5, /datum/reagent/consumable/peachjuice = 15) tastes = list("cake" = 1, "sugar" = 1, "peachjuice" = 10) foodtype = GRAIN | SUGAR | DAIRY @@ -385,7 +385,7 @@ obj/item/reagent_containers/food/snacks/store/cake/pound_cake desc = "A spaceman's trumpet frosted cake." icon_state = "trumpetcake" slice_path = /obj/item/reagent_containers/food/snacks/cakeslice/trumpet - bonus_reagents = list("polypyr" = 15, "cream" = 5, "vitamin" = 5, "berryjuice" = 5) + bonus_reagents = list(/datum/reagent/medicine/polypyr = 15, /datum/reagent/consumable/cream = 5, /datum/reagent/consumable/nutriment/vitamin = 5, /datum/reagent/consumable/berryjuice = 5) filling_color = "#7A3D80" tastes = list("cake" = 4, "violets" = 2, "jam" = 2) foodtype = GRAIN | DAIRY | FRUIT | SUGAR diff --git a/code/modules/food_and_drinks/food/snacks_egg.dm b/code/modules/food_and_drinks/food/snacks_egg.dm index 0d51db04ce..183e64ff7e 100644 --- a/code/modules/food_and_drinks/food/snacks_egg.dm +++ b/code/modules/food_and_drinks/food/snacks_egg.dm @@ -5,8 +5,8 @@ name = "chocolate egg" desc = "Such, sweet, fattening food." icon_state = "chocolateegg" - bonus_reagents = list("nutriment" = 1, "vitamin" = 1) - list_reagents = list("nutriment" = 4, "sugar" = 2, "cocoa" = 2) + bonus_reagents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/consumable/nutriment/vitamin = 1) + list_reagents = list(/datum/reagent/consumable/nutriment = 4, /datum/reagent/consumable/sugar = 2, /datum/reagent/consumable/coco = 2) filling_color = "#A0522D" tastes = list("chocolate" = 4, "sweetness" = 1) foodtype = JUNKFOOD | SUGAR @@ -15,7 +15,7 @@ name = "egg" desc = "An egg!" icon_state = "egg" - list_reagents = list("eggyolk" = 5) + list_reagents = list(/datum/reagent/consumable/eggyolk = 5) cooked_type = /obj/item/reagent_containers/food/snacks/boiledegg filling_color = "#F0E68C" foodtype = MEAT @@ -89,10 +89,10 @@ name = "fried egg" desc = "A fried egg, with a touch of salt and pepper." icon_state = "friedegg" - bonus_reagents = list("nutriment" = 1, "vitamin" = 1) + bonus_reagents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/consumable/nutriment/vitamin = 1) bitesize = 1 filling_color = "#FFFFF0" - list_reagents = list("nutriment" = 3) + list_reagents = list(/datum/reagent/consumable/nutriment = 3) tastes = list("egg" = 4, "salt" = 1, "pepper" = 1) foodtype = MEAT | FRIED | BREAKFAST @@ -100,9 +100,9 @@ name = "boiled egg" desc = "A hard boiled egg." icon_state = "egg" - bonus_reagents = list("nutriment" = 1, "vitamin" = 1) + bonus_reagents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/consumable/nutriment/vitamin = 1) filling_color = "#FFFFF0" - list_reagents = list("nutriment" = 2, "vitamin" = 1) + list_reagents = list(/datum/reagent/consumable/nutriment = 2, /datum/reagent/consumable/nutriment/vitamin = 1) tastes = list("egg" = 1) foodtype = MEAT | BREAKFAST @@ -111,8 +111,8 @@ desc = "That's all you can say!" icon_state = "omelette" trash = /obj/item/trash/plate - bonus_reagents = list("nutriment" = 1, "vitamin" = 2) - list_reagents = list("nutriment" = 8, "vitamin" = 1) + bonus_reagents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/consumable/nutriment/vitamin = 2) + list_reagents = list(/datum/reagent/consumable/nutriment = 8, /datum/reagent/consumable/nutriment/vitamin = 1) bitesize = 1 w_class = WEIGHT_CLASS_NORMAL tastes = list("egg" = 1, "cheese" = 1) @@ -129,7 +129,7 @@ "You take a piece of omelette with your fork.") var/datum/reagent/R = pick(reagents.reagent_list) - reagents.remove_reagent(R.id, 1) + reagents.remove_reagent(R.type, 1) F.forkload = R if(reagents.total_volume <= 0) qdel(src) @@ -140,9 +140,9 @@ name = "eggs benedict" desc = "There is only one egg on this, how rude." icon_state = "benedict" - bonus_reagents = list("vitamin" = 4) + bonus_reagents = list(/datum/reagent/consumable/nutriment/vitamin = 4) trash = /obj/item/trash/plate w_class = WEIGHT_CLASS_NORMAL - list_reagents = list("nutriment" = 6, "vitamin" = 4) + list_reagents = list(/datum/reagent/consumable/nutriment = 6, /datum/reagent/consumable/nutriment/vitamin = 4) tastes = list("egg" = 1, "bacon" = 1, "bun" = 1) foodtype = MEAT | BREAKFAST diff --git a/code/modules/food_and_drinks/food/snacks_frozen.dm b/code/modules/food_and_drinks/food/snacks_frozen.dm index fb7bcf33b4..5cef5b6fb6 100644 --- a/code/modules/food_and_drinks/food/snacks_frozen.dm +++ b/code/modules/food_and_drinks/food/snacks_frozen.dm @@ -3,8 +3,8 @@ desc = "Portable Ice-cream in its own packaging." icon = 'icons/obj/food/food.dmi' icon_state = "icecreamsandwich" - bonus_reagents = list("nutriment" = 1, "ice" = 2) - list_reagents = list("nutriment" = 2, "ice" = 2) + bonus_reagents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/consumable/ice = 2) + list_reagents = list(/datum/reagent/consumable/nutriment = 2, /datum/reagent/consumable/ice = 2) tastes = list("ice cream" = 1) foodtype = GRAIN | DAIRY @@ -12,8 +12,8 @@ name = "sundae" desc = "A classic dessert." icon_state = "sundae" - bonus_reagents = list("nutriment" = 2, "vitamin" = 1) - list_reagents = list("nutriment" = 6, "banana" = 5, "vitamin" = 2) + bonus_reagents = list(/datum/reagent/consumable/nutriment = 2, /datum/reagent/consumable/nutriment/vitamin = 1) + list_reagents = list(/datum/reagent/consumable/nutriment = 6, /datum/reagent/consumable/banana = 5, /datum/reagent/consumable/nutriment/vitamin = 2) filling_color = "#FFFACD" tastes = list("ice cream" = 1, "banana" = 1) foodtype = FRUIT | DAIRY | SUGAR @@ -22,8 +22,8 @@ name = "honkdae" desc = "The clown's favorite dessert." icon_state = "honkdae" - bonus_reagents = list("nutriment" = 2, "vitamin" = 2) - list_reagents = list("nutriment" = 6, "banana" = 10, "vitamin" = 4) + bonus_reagents = list(/datum/reagent/consumable/nutriment = 2, /datum/reagent/consumable/nutriment/vitamin = 2) + list_reagents = list(/datum/reagent/consumable/nutriment = 6, /datum/reagent/consumable/banana = 10, /datum/reagent/consumable/nutriment/vitamin = 4) filling_color = "#FFFACD" tastes = list("ice cream" = 1, "banana" = 1, "a bad joke" = 1) foodtype = FRUIT | DAIRY | SUGAR @@ -33,8 +33,8 @@ trash = /obj/item/reagent_containers/food/drinks/drinkingglass desc = "A long glass dish filled with ice-cream, chocolate and a banana down the middle. A timeless classic by any standards." icon_state = "banana_split" - bonus_reagents = list("nutriment" = 5, "vitamin" = 3) - list_reagents = list("nutriment" = 3, "banana" = 10, "vitamin" = 2) + bonus_reagents = list(/datum/reagent/consumable/nutriment = 5, /datum/reagent/consumable/nutriment/vitamin = 3) + list_reagents = list(/datum/reagent/consumable/nutriment = 3, /datum/reagent/consumable/banana = 10, /datum/reagent/consumable/nutriment/vitamin = 2) filling_color = "#FFFACD" tastes = list("ice cream" = 1, "banana" = 1, "charries" = 1) foodtype = FRUIT | DAIRY | SUGAR @@ -44,8 +44,8 @@ trash = /obj/item/reagent_containers/food/drinks/drinkingglass desc = "A glass filled with cream, soda and ice-cream with a cherry on top." icon_state = "cola_float" - bonus_reagents = list("nutriment" = 3, "vitamin" = 1) - list_reagents = list("nutriment" = 3, "vitamin" = 2) + bonus_reagents = list(/datum/reagent/consumable/nutriment = 3, /datum/reagent/consumable/nutriment/vitamin = 1) + list_reagents = list(/datum/reagent/consumable/nutriment = 3, /datum/reagent/consumable/nutriment/vitamin = 2) filling_color = "#FFFACD" tastes = list("ice cream" = 1, "space coal" = 1, "cherries" = 1) foodtype = FRUIT | DAIRY | SUGAR @@ -55,8 +55,8 @@ trash = /obj/item/reagent_containers/food/drinks/drinkingglass desc = "Cherries mixed with ice-cream, known for its filling tastes" icon_state = "cherryshake" - bonus_reagents = list("nutriment" = 3, "vitamin" = 1) - list_reagents = list("nutriment" = 3, "vitamin" = 2, "cherryshake" = 15) + bonus_reagents = list(/datum/reagent/consumable/nutriment = 3, /datum/reagent/consumable/nutriment/vitamin = 1) + list_reagents = list(/datum/reagent/consumable/nutriment = 3, /datum/reagent/consumable/nutriment/vitamin = 2, /datum/reagent/consumable/cherryshake = 15) filling_color = "#FFFACD" tastes = list("ice cream" = 1, "charries" = 1) foodtype = FRUIT | DAIRY | SUGAR @@ -66,8 +66,8 @@ trash = /obj/item/reagent_containers/food/drinks/drinkingglass desc = "Cherries mixed with ice-cream, known for its filling tastes. This one is a exotic blue!" icon_state = "bluecherryshake" - bonus_reagents = list("nutriment" = 3, "vitamin" = 1) - list_reagents = list("nutriment" = 3, "vitamin" = 2, "bluecherryshake" = 10) + bonus_reagents = list(/datum/reagent/consumable/nutriment = 3, /datum/reagent/consumable/nutriment/vitamin = 1) + list_reagents = list(/datum/reagent/consumable/nutriment = 3, /datum/reagent/consumable/nutriment/vitamin = 2, /datum/reagent/consumable/bluecherryshake = 10) filling_color = "#FFFACD" tastes = list("ice cream" = 1, "blue cherries" = 1) foodtype = FRUIT | DAIRY | SUGAR @@ -76,8 +76,8 @@ name = "space freezy" desc = "The best icecream in space." icon_state = "spacefreezy" - bonus_reagents = list("nutriment" = 2, "vitamin" = 2) - list_reagents = list("nutriment" = 6, "bluecherryjelly" = 5, "vitamin" = 4) + bonus_reagents = list(/datum/reagent/consumable/nutriment = 2, /datum/reagent/consumable/nutriment/vitamin = 2) + list_reagents = list(/datum/reagent/consumable/nutriment = 6, /datum/reagent/consumable/bluecherryjelly = 5, /datum/reagent/consumable/nutriment/vitamin = 4) filling_color = "#87CEFA" tastes = list("blue cherries" = 2, "ice cream" = 2) foodtype = FRUIT | DAIRY @@ -91,8 +91,8 @@ icon = 'icons/obj/food/snowcones.dmi' icon_state = "flavorless_sc" trash = /obj/item/reagent_containers/food/drinks/sillycup //We dont eat paper cups - bonus_reagents = list("water" = 10) //Base line will allways give water - list_reagents = list("water" = 1) // We dont get food for water/juices + bonus_reagents = list(/datum/reagent/water = 10) //Base line will allways give water + list_reagents = list(/datum/reagent/water = 1) // We dont get food for water/juices filling_color = "#FFFFFF" //Ice is white tastes = list("ice" = 1, "water" = 1) foodtype = SUGAR //We use SUGAR as a base line to act in as junkfood, other wise we use fruit @@ -101,7 +101,7 @@ name = "lime snowcone" desc = "Lime syrup drizzled over a snowball in a paper cup." icon_state = "lime_sc" - list_reagents = list("nutriment" = 1, "limejuice" = 5) + list_reagents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/consumable/limejuice = 5) tastes = list("ice" = 1, "water" = 1, "limes" = 5) foodtype = FRUIT @@ -109,7 +109,7 @@ name = "lemon snowcone" desc = "Lemon syrup drizzled over a snowball in a paper cup." icon_state = "lemon_sc" - list_reagents = list("nutriment" = 1, "lemonjuice" = 5) + list_reagents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/consumable/lemonjuice = 5) tastes = list("ice" = 1, "water" = 1, "lemons" = 5) foodtype = FRUIT @@ -117,7 +117,7 @@ name = "apple snowcone" desc = "Apple syrup drizzled over a snowball in a paper cup." icon_state = "amber_sc" - list_reagents = list("nutriment" = 1, "applejuice" = 5) + list_reagents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/consumable/applejuice = 5) tastes = list("ice" = 1, "water" = 1, "apples" = 5) foodtype = FRUIT @@ -125,7 +125,7 @@ name = "grape snowcone" desc = "Grape syrup drizzled over a snowball in a paper cup." icon_state = "grape_sc" - list_reagents = list("nutriment" = 1, "grapejuice" = 5) + list_reagents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/consumable/grapejuice = 5) tastes = list("ice" = 1, "water" = 1, "grape" = 5) foodtype = FRUIT @@ -133,7 +133,7 @@ name = "orange snowcone" desc = "Orange syrup drizzled over a snowball in a paper cup." icon_state = "orange_sc" - list_reagents = list("nutriment" = 1, "orangejuice" = 5) + list_reagents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/consumable/orangejuice = 5) tastes = list("ice" = 1, "water" = 1, "orange" = 5) foodtype = FRUIT @@ -141,7 +141,7 @@ name = "bluecherry snowcone" desc = "Bluecherry syrup drizzled over a snowball in a paper cup, how rare!" icon_state = "blue_sc" - list_reagents = list("nutriment" = 1, "bluecherryjelly" = 5) + list_reagents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/consumable/bluecherryjelly = 5) tastes = list("ice" = 1, "water" = 1, "blue" = 5, "cherries" = 5) foodtype = FRUIT @@ -149,7 +149,7 @@ name = "cherry snowcone" desc = "Cherry syrup drizzled over a snowball in a paper cup." icon_state = "red_sc" - list_reagents = list("nutriment" = 1, "cherryjelly" = 5) + list_reagents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/consumable/cherryjelly = 5) tastes = list("ice" = 1, "water" = 1, "red" = 5, "cherries" = 5) foodtype = FRUIT @@ -157,7 +157,7 @@ name = "kiwi snowcone" desc = "A kiwi snowball in a paper cup." icon_state = "kiwi_sc" - list_reagents = list("nutriment" = 3, "vitamin" = 6) + list_reagents = list(/datum/reagent/consumable/nutriment = 3, /datum/reagent/consumable/nutriment/vitamin = 6) tastes = list("ice" = 1, "space" = 3, "kiwi" = 5) foodtype = FRUIT @@ -165,7 +165,7 @@ name = "peach snowcone" desc = "A peach snowball in a paper cup." icon_state = "peach_sc" - list_reagents = list("nutriment" = 1, "peachjuice" = 10) + list_reagents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/consumable/peachjuice = 10) tastes = list("ice" = 1, "water" = 1, " peach" = 5) foodtype = FRUIT @@ -173,7 +173,7 @@ name = "strawberry snowcone" desc = "A strawberry snowball in a paper cup." icon_state = "blue_sc" - list_reagents = list("nutriment" = 1, "berryjuice" = 10) + list_reagents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/consumable/berryjuice = 10) tastes = list("ice" = 1, "water" = 1, " strawberry" = 5) foodtype = FRUIT @@ -181,7 +181,7 @@ name = "berry snowcone" desc = "Berry syrup drizzled over a snowball in a paper cup." icon_state = "berry_sc" - list_reagents = list("nutriment" = 1, "berryjuice" = 5) + list_reagents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/consumable/berryjuice = 5) tastes = list("ice" = 1, "water" = 1, "berries" = 5) foodtype = FRUIT @@ -189,7 +189,7 @@ name = "fruit salad snowcone" desc = "A delightful mix of citrus syrups drizzled over a snowball in a paper cup." icon_state = "fruitsalad_sc" - list_reagents = list("nutriment" = 1, "lemonjuice" = 5, "limejuice" = 5, "orangejuice" = 5) + list_reagents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/consumable/lemonjuice = 5, /datum/reagent/consumable/limejuice = 5, /datum/reagent/consumable/orangejuice = 5) tastes = list("ice" = 1, "water" = 1, "oranges" = 5, "limes" = 5, "lemons" = 5, "citrus" = 5, "salad" = 5) foodtype = FRUIT @@ -197,7 +197,7 @@ name = "pineapple snowcone" desc = "Pineapple syrup drizzled over a snowball in a paper cup." icon_state = "pineapple_sc" - list_reagents = list("nutriment" = 1, "water" = 10) + list_reagents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/water = 10) tastes = list("ice" = 1, "water" = 1, "pineapples" = 5) foodtype = PINEAPPLE //Pineapple to allow all that like pineapple to enjoy @@ -205,47 +205,47 @@ name = "mime snowcone" desc = "..." icon_state = "mime_sc" - list_reagents = list("nutriment" = 1, "nothing" = 5) + list_reagents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/consumable/nothing = 5) tastes = list("ice" = 1, "water" = 1, "nothing" = 5) /obj/item/reagent_containers/food/snacks/snowcones/clown name = "clown snowcone" desc = "Laughter drizzled over a snowball in a paper cup." icon_state = "clown_sc" - list_reagents = list("nutriment" = 1, "laughter" = 5) + list_reagents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/consumable/laughter = 5) tastes = list("ice" = 1, "water" = 1, "jokes" = 5, "brainfreeze" = 5, "joy" = 5) /obj/item/reagent_containers/food/snacks/snowcones/soda name = "space cola snowcone" desc = "Space Cola drizzled over a snowball in a paper cup." icon_state = "soda_sc" - list_reagents = list("nutriment" = 1, "cola" = 5) + list_reagents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/consumable/space_cola = 5) tastes = list("ice" = 1, "water" = 1, "cola" = 5) /obj/item/reagent_containers/food/snacks/snowcones/spacemountainwind name = "Space Mountain Wind snowcone" desc = "Space Mountain Wind drizzled over a snowball in a paper cup." icon_state = "kiwi_sc" - list_reagents = list("nutriment" = 1, "spacemountainwind" = 5) + list_reagents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/consumable/spacemountainwind = 5) tastes = list("ice" = 1, "water" = 1, "mountain wind" = 5) /obj/item/reagent_containers/food/snacks/snowcones/pwrgame name = "pwrgame snowcone" desc = "Pwrgame soda drizzled over a snowball in a paper cup." icon_state = "pwrgame_sc" - list_reagents = list("nutriment" = 1, "pwr_game" = 5) + list_reagents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/consumable/pwr_game = 5) tastes = list("ice" = 1, "water" = 1, "valid" = 5, "salt" = 5, "wats" = 5) /obj/item/reagent_containers/food/snacks/snowcones/honey name = "honey snowcone" desc = "Honey drizzled over a snowball in a paper cup." icon_state = "amber_sc" - list_reagents = list("nutriment" = 1, "honey" = 5) + list_reagents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/consumable/honey = 5) tastes = list("ice" = 1, "water" = 1, "flowers" = 5, "sweetness" = 5, "wax" = 1) /obj/item/reagent_containers/food/snacks/snowcones/rainbow name = "rainbow snowcone" desc = "A very colorful snowball in a paper cup." icon_state = "rainbow_sc" - list_reagents = list("nutriment" = 5, "laughter" = 25) + list_reagents = list(/datum/reagent/consumable/nutriment = 5, /datum/reagent/consumable/laughter = 25) tastes = list("ice" = 1, "water" = 1, "sunlight" = 5, "light" = 5, "slime" = 5, "paint" = 3, "clouds" = 3) diff --git a/code/modules/food_and_drinks/food/snacks_meat.dm b/code/modules/food_and_drinks/food/snacks_meat.dm index cf499c9d15..5103418e6b 100644 --- a/code/modules/food_and_drinks/food/snacks_meat.dm +++ b/code/modules/food_and_drinks/food/snacks_meat.dm @@ -8,10 +8,10 @@ desc = "A grifftastic sandwich that burns your tongue and then leaves it numb!" icon_state = "cubancarp" trash = /obj/item/trash/plate - bonus_reagents = list("nutriment" = 1, "vitamin" = 4) + bonus_reagents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/consumable/nutriment/vitamin = 4) bitesize = 3 filling_color = "#CD853F" - list_reagents = list("nutriment" = 6, "capsaicin" = 1) + list_reagents = list(/datum/reagent/consumable/nutriment = 6, /datum/reagent/consumable/capsaicin = 1) tastes = list("fish" = 4, "batter" = 1, "hot peppers" = 1) foodtype = MEAT @@ -19,7 +19,7 @@ name = "carp fillet" desc = "A fillet of spess carp meat." icon_state = "fishfillet" - list_reagents = list("nutriment" = 3, "carpotoxin" = 2, "vitamin" = 2) + list_reagents = list(/datum/reagent/consumable/nutriment = 3, /datum/reagent/toxin/carpotoxin = 2, /datum/reagent/consumable/nutriment/vitamin = 2) bitesize = 6 filling_color = "#FA8072" tastes = list("fish" = 1) @@ -37,8 +37,8 @@ name = "fish fingers" desc = "A finger of fish." icon_state = "fishfingers" - bonus_reagents = list("nutriment" = 1, "vitamin" = 2) - list_reagents = list("nutriment" = 4) + bonus_reagents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/consumable/nutriment/vitamin = 2) + list_reagents = list(/datum/reagent/consumable/nutriment = 4) bitesize = 1 filling_color = "#CD853F" tastes = list("fish" = 1, "breadcrumbs" = 1) @@ -48,8 +48,8 @@ name = "fish and chips" desc = "I do say so myself chap." icon_state = "fishandchips" - bonus_reagents = list("nutriment" = 1, "vitamin" = 2) - list_reagents = list("nutriment" = 6) + bonus_reagents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/consumable/nutriment/vitamin = 2) + list_reagents = list(/datum/reagent/consumable/nutriment = 6) filling_color = "#FA8072" tastes = list("fish" = 1, "chips" = 1) foodtype = MEAT | VEGETABLES | FRIED @@ -59,8 +59,8 @@ desc = "A small cylindrical kudzu skin, filled with rice and fish." icon = 'modular_citadel/icons/obj/food/food.dmi' icon_state = "sushie_basic" - bonus_reagents = list("vitamin" = 2) - list_reagents = list("nutriment" = 4) + bonus_reagents = list(/datum/reagent/consumable/nutriment/vitamin = 2) + list_reagents = list(/datum/reagent/consumable/nutriment = 4) bitesize = 10 filling_color = "#F2EEEA" //rgb(242, 238, 234) tastes = list("fish" = 1, "rice" = 2, "salt" = 1) @@ -71,8 +71,8 @@ desc = "A peace of carp lightly placed on some rice." icon = 'modular_citadel/icons/obj/food/food.dmi' icon_state = "sushie_adv" - bonus_reagents = list("vitamin" = 2) - list_reagents = list("nutriment" = 6) + bonus_reagents = list(/datum/reagent/consumable/nutriment/vitamin = 2) + list_reagents = list(/datum/reagent/consumable/nutriment = 6) bitesize = 10 filling_color = "#F2EEEA" //rgb(242, 238, 234) tastes = list("fish" = 2, "rice" = 2, "salt" = 1) @@ -83,8 +83,8 @@ desc = "A well prepared peace of the best of the carp fillet placed on rice. Looks fancy and fresh!" icon = 'modular_citadel/icons/obj/food/food.dmi' icon_state = "sushie_pro" - bonus_reagents = list("nutriment" = 2, "vitamin" = 2) - list_reagents = list("nutriment" = 6, "vitamin" = 2) + bonus_reagents = list(/datum/reagent/consumable/nutriment = 2, /datum/reagent/consumable/nutriment/vitamin = 2) + list_reagents = list(/datum/reagent/consumable/nutriment = 6, /datum/reagent/consumable/nutriment/vitamin = 2) bitesize = 10 filling_color = "#F2EEEA" //rgb(242, 238, 234) tastes = list("fish" = 3, "rice" = 2, "salt" = 1) @@ -97,7 +97,7 @@ name = "tofu" desc = "We all love tofu." icon_state = "tofu" - list_reagents = list("nutriment" = 2) + list_reagents = list(/datum/reagent/consumable/nutriment = 2) filling_color = "#F0E68C" tastes = list("tofu" = 1) foodtype = VEGETABLES @@ -106,7 +106,7 @@ name = "spider leg" desc = "A still twitching leg of a giant spider... you don't really want to eat this, do you?" icon_state = "spiderleg" - list_reagents = list("nutriment" = 2, "toxin" = 2) + list_reagents = list(/datum/reagent/consumable/nutriment = 2, /datum/reagent/toxin = 2) cooked_type = /obj/item/reagent_containers/food/snacks/boiledspiderleg filling_color = "#000000" tastes = list("cobwebs" = 1) @@ -117,8 +117,8 @@ desc = "Now you can feel like a real tourist vacationing in Ireland." icon_state = "cornedbeef" trash = /obj/item/trash/plate - bonus_reagents = list("nutriment" = 1, "vitamin" = 4) - list_reagents = list("nutriment" = 5) + bonus_reagents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/consumable/nutriment/vitamin = 4) + list_reagents = list(/datum/reagent/consumable/nutriment = 5) tastes = list("meat" = 1, "cabbage" = 1) foodtype = MEAT | VEGETABLES @@ -127,8 +127,8 @@ desc = "Because eating bear wasn't manly enough." icon_state = "bearsteak" trash = /obj/item/trash/plate - bonus_reagents = list("nutriment" = 2, "vitamin" = 6) - list_reagents = list("nutriment" = 2, "vitamin" = 5, "manlydorf" = 5) + bonus_reagents = list(/datum/reagent/consumable/nutriment = 2, /datum/reagent/consumable/nutriment/vitamin = 6) + list_reagents = list(/datum/reagent/consumable/nutriment = 2, /datum/reagent/consumable/nutriment/vitamin = 5, /datum/reagent/consumable/ethanol/manly_dorf = 5) tastes = list("meat" = 1, "salmon" = 1) foodtype = MEAT | ALCOHOL @@ -136,7 +136,7 @@ name = "faggot" desc = "A great meal all round. Not a cord of wood." icon_state = "faggot" - list_reagents = list("nutriment" = 4, "vitamin" = 1) + list_reagents = list(/datum/reagent/consumable/nutriment = 4, /datum/reagent/consumable/nutriment/vitamin = 1) filling_color = "#800000" tastes = list("meat" = 1) foodtype = MEAT @@ -146,8 +146,8 @@ desc = "A piece of mixed, long meat." icon_state = "sausage" filling_color = "#CD5C5C" - bonus_reagents = list("nutriment" = 1, "vitamin" = 1) - list_reagents = list("nutriment" = 6, "vitamin" = 1) + bonus_reagents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/consumable/nutriment/vitamin = 1) + list_reagents = list(/datum/reagent/consumable/nutriment = 6, /datum/reagent/consumable/nutriment/vitamin = 1) tastes = list("meat" = 1) foodtype = MEAT | BREAKFAST var/roasted = FALSE @@ -160,35 +160,35 @@ trash = /obj/item/stack/rods icon_state = "kebab" w_class = WEIGHT_CLASS_NORMAL - list_reagents = list("nutriment" = 8) + list_reagents = list(/datum/reagent/consumable/nutriment = 8) tastes = list("meat" = 3, "metal" = 1) foodtype = MEAT /obj/item/reagent_containers/food/snacks/kebab/human name = "human-kebab" desc = "A human meat, on a stick." - bonus_reagents = list("nutriment" = 1, "vitamin" = 6) + bonus_reagents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/consumable/nutriment/vitamin = 6) tastes = list("tender meat" = 3, "metal" = 1) foodtype = MEAT | GROSS /obj/item/reagent_containers/food/snacks/kebab/monkey name = "meat-kebab" desc = "Delicious meat, on a stick." - bonus_reagents = list("nutriment" = 1, "vitamin" = 2) + bonus_reagents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/consumable/nutriment/vitamin = 2) tastes = list("meat" = 3, "metal" = 1) foodtype = MEAT /obj/item/reagent_containers/food/snacks/kebab/tofu name = "tofu-kebab" desc = "Vegan meat, on a stick." - bonus_reagents = list("nutriment" = 1) + bonus_reagents = list(/datum/reagent/consumable/nutriment = 1) tastes = list("tofu" = 3, "metal" = 1) foodtype = VEGETABLES /obj/item/reagent_containers/food/snacks/kebab/tail name = "lizard-tail kebab" desc = "Severed lizard tail on a stick." - bonus_reagents = list("nutriment" = 1, "vitamin" = 4) + bonus_reagents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/consumable/nutriment/vitamin = 4) tastes = list("meat" = 8, "metal" = 4, "scales" = 1) foodtype = MEAT @@ -196,7 +196,7 @@ name = "raw khinkali" desc = "One hundred khinkalis? Do I look like a pig?" icon_state = "khinkali" - list_reagents = list("nutriment" = 1, "vitamin" = 1) + list_reagents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/consumable/nutriment/vitamin = 1) cooked_type = /obj/item/reagent_containers/food/snacks/khinkali tastes = list("meat" = 1, "onions" = 1, "garlic" = 1) foodtype = MEAT @@ -205,7 +205,7 @@ name = "khinkali" desc = "One hundred khinkalis? Do I look like a pig?" icon_state = "khinkali" - list_reagents = list("nutriment" = 4, "vitamin" = 2) + list_reagents = list(/datum/reagent/consumable/nutriment = 4, /datum/reagent/consumable/nutriment/vitamin = 2) bitesize = 3 filling_color = "#F0F0F0" tastes = list("meat" = 1, "onions" = 1, "garlic" = 1) @@ -216,7 +216,7 @@ desc = "Just add water!" icon_state = "monkeycube" bitesize = 12 - list_reagents = list("nutriment" = 2) + list_reagents = list(/datum/reagent/consumable/nutriment = 2) filling_color = "#CD853F" tastes = list("the jungle" = 1, "bananas" = 1) foodtype = MEAT | SUGAR @@ -244,10 +244,10 @@ name = "enchiladas" desc = "Viva La Mexico!" icon_state = "enchiladas" - bonus_reagents = list("nutriment" = 1, "vitamin" = 2) + bonus_reagents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/consumable/nutriment/vitamin = 2) bitesize = 4 filling_color = "#FFA07A" - list_reagents = list("nutriment" = 8, "capsaicin" = 6) + list_reagents = list(/datum/reagent/consumable/nutriment = 8, /datum/reagent/consumable/capsaicin = 6) tastes = list("hot peppers" = 1, "meat" = 3, "cheese" = 1, "sour cream" = 1) foodtype = MEAT @@ -256,8 +256,8 @@ desc = "Even non-vegetarians will LOVE this!" icon_state = "stewedsoymeat" trash = /obj/item/trash/plate - bonus_reagents = list("nutriment" = 1) - list_reagents = list("nutriment" = 8) + bonus_reagents = list(/datum/reagent/consumable/nutriment = 1) + list_reagents = list(/datum/reagent/consumable/nutriment = 8) filling_color = "#D2691E" tastes = list("soy" = 1, "vegetables" = 1) foodtype = VEGETABLES @@ -271,8 +271,8 @@ desc = "A giant spider's leg that's still twitching after being cooked. Gross!" icon_state = "spiderlegcooked" trash = /obj/item/trash/plate - bonus_reagents = list("nutriment" = 1, "capsaicin" = 2, "vitamin" = 2) - list_reagents = list("nutriment" = 3, "capsaicin" = 2) + bonus_reagents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/consumable/capsaicin = 2, /datum/reagent/consumable/nutriment/vitamin = 2) + list_reagents = list(/datum/reagent/consumable/nutriment = 3, /datum/reagent/consumable/capsaicin = 2) filling_color = "#000000" tastes = list("hot peppers" = 1, "cobwebs" = 1) foodtype = MEAT @@ -282,8 +282,8 @@ desc = "Would you eat them on a train? Would you eat them on a plane? Would you eat them on a state of the art corporate deathtrap floating through space?" icon_state = "spidereggsham" trash = /obj/item/trash/plate - bonus_reagents = list("nutriment" = 1, "vitamin" = 3) - list_reagents = list("nutriment" = 6) + bonus_reagents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/consumable/nutriment/vitamin = 3) + list_reagents = list(/datum/reagent/consumable/nutriment = 6) bitesize = 4 filling_color = "#7FFF00" tastes = list("meat" = 1, "the colour green" = 1) @@ -293,8 +293,8 @@ name = "carp sashimi" desc = "Celebrate surviving attack from hostile alien lifeforms by hospitalising yourself." icon_state = "sashimi" - bonus_reagents = list("nutriment" = 1, "capsaicin" = 4, "vitamin" = 4) - list_reagents = list("nutriment" = 6, "capsaicin" = 5) + bonus_reagents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/consumable/capsaicin = 4, /datum/reagent/consumable/nutriment/vitamin = 4) + list_reagents = list(/datum/reagent/consumable/nutriment = 6, /datum/reagent/consumable/capsaicin = 5) filling_color = "#FA8072" tastes = list("fish" = 1, "hot peppers" = 1) foodtype = MEAT | TOXIC @@ -302,8 +302,8 @@ /obj/item/reagent_containers/food/snacks/nugget name = "chicken nugget" filling_color = "#B22222" - bonus_reagents = list("nutriment" = 1, "vitamin" = 1) - list_reagents = list("nutriment" = 2) + bonus_reagents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/consumable/nutriment/vitamin = 1) + list_reagents = list(/datum/reagent/consumable/nutriment = 2) tastes = list("\"chicken\"" = 1) foodtype = MEAT @@ -317,8 +317,8 @@ name = "pig in a blanket" desc = "A tiny sausage wrapped in a flakey, buttery roll. Free this pig from its blanket prison by eating it." icon_state = "pigblanket" - list_reagents = list("nutriment" = 6, "vitamin" = 1) - bonus_reagents = list("nutriment" = 1, "vitamin" = 1) + list_reagents = list(/datum/reagent/consumable/nutriment = 6, /datum/reagent/consumable/nutriment/vitamin = 1) + bonus_reagents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/consumable/nutriment/vitamin = 1) filling_color = "#800000" tastes = list("meat" = 1, "butter" = 1) @@ -328,14 +328,14 @@ icon_state = "dorndog" trash = /obj/item/trash/plate/alt tastes = list("hotdog" = 2, "mustard and ketchup" = 1, "fryed bread" = 1) - bonus_reagents = list("nutriment" = 6, "vitamin" = 2, "mustard" = 5, "ketchup" = 5) + bonus_reagents = list(/datum/reagent/consumable/nutriment = 6, /datum/reagent/consumable/nutriment/vitamin = 2, /datum/reagent/consumable/mustard = 5, /datum/reagent/consumable/ketchup = 5) /obj/item/reagent_containers/food/snacks/kebab/rat name = "rat-kebab" desc = "Not so delicious rat meat, on a stick." icon_state = "ratkebab" w_class = WEIGHT_CLASS_NORMAL - list_reagents = list("nutriment" = 6, "vitamin" = 2) + list_reagents = list(/datum/reagent/consumable/nutriment = 6, /datum/reagent/consumable/nutriment/vitamin = 2) tastes = list("rat meat" = 1, "metal" = 1) foodtype = MEAT | GROSS @@ -343,20 +343,20 @@ name = "double rat-kebab" icon_state = "doubleratkebab" tastes = list("rat meat" = 2, "metal" = 1) - bonus_reagents = list("nutriment" = 6, "vitamin" = 2) + bonus_reagents = list(/datum/reagent/consumable/nutriment = 6, /datum/reagent/consumable/nutriment/vitamin = 2) /obj/item/reagent_containers/food/snacks/kebab/fiesta name = "fiesta skewer" icon_state = "fiestaskewer" tastes = list("tex-mex" = 3, "cumin" = 2) - bonus_reagents = list("vitamin" = 5, "capsaicin" = 3) + bonus_reagents = list(/datum/reagent/consumable/nutriment/vitamin = 5, /datum/reagent/consumable/capsaicin = 3) /obj/item/reagent_containers/food/snacks/bbqribs name = "bbq ribs" desc = "BBQ ribs, slathered in a healthy coating of BBQ sauce. The least vegan thing to ever exist." icon_state = "ribs" w_class = WEIGHT_CLASS_NORMAL - list_reagents = list("nutriment" = 8, "vitamin" = 2, "bbqsauce" = 5) - bonus_reagents = list("nutriment" = 1, "vitamin" = 1) + list_reagents = list(/datum/reagent/consumable/nutriment = 8, /datum/reagent/consumable/nutriment/vitamin = 2, /datum/reagent/consumable/bbqsauce = 5) + bonus_reagents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/consumable/nutriment/vitamin = 1) tastes = list("meat" = 3, "smokey sauce" = 1) foodtype = MEAT \ No newline at end of file diff --git a/code/modules/food_and_drinks/food/snacks_other.dm b/code/modules/food_and_drinks/food/snacks_other.dm index de22537063..0c17814c98 100644 --- a/code/modules/food_and_drinks/food/snacks_other.dm +++ b/code/modules/food_and_drinks/food/snacks_other.dm @@ -7,7 +7,7 @@ icon_state = "cheesewheel" slice_path = /obj/item/reagent_containers/food/snacks/cheesewedge slices_num = 5 - list_reagents = list("nutriment" = 15, "vitamin" = 5) + list_reagents = list(/datum/reagent/consumable/nutriment = 15, /datum/reagent/consumable/nutriment/vitamin = 5) w_class = WEIGHT_CLASS_NORMAL tastes = list("cheese" = 1) foodtype = DAIRY @@ -17,7 +17,7 @@ desc = "A wedge of delicious Cheddar. The cheese wheel it was cut from can't have gone far." icon_state = "cheesewedge" filling_color = "#FFD700" - list_reagents = list("nutriment" = 3, "vitamin" = 1) + list_reagents = list(/datum/reagent/consumable/nutriment = 3, /datum/reagent/consumable/nutriment/vitamin = 1) tastes = list("cheese" = 1) foodtype = DAIRY @@ -28,13 +28,13 @@ filling_color = "#FF1493" tastes = list("watermelon" = 1) foodtype = FRUIT - juice_results = list("watermelonjuice" = 5) + juice_results = list(/datum/reagent/consumable/watermelonjuice = 5) /obj/item/reagent_containers/food/snacks/candy_corn name = "candy corn" desc = "It's a handful of candy corn. Can be stored in a detective's hat." icon_state = "candy_corn" - list_reagents = list("nutriment" = 4, "sugar" = 2) + list_reagents = list(/datum/reagent/consumable/nutriment = 4, /datum/reagent/consumable/sugar = 2) filling_color = "#FF8C00" tastes = list("candy corn" = 1) foodtype = JUNKFOOD | SUGAR @@ -43,7 +43,7 @@ name = "chocolate bar" desc = "Such, sweet, fattening food." icon_state = "chocolatebar" - list_reagents = list("nutriment" = 2, "sugar" = 2, "cocoa" = 2) + list_reagents = list(/datum/reagent/consumable/nutriment = 2, /datum/reagent/consumable/sugar = 2, /datum/reagent/consumable/coco = 2) filling_color = "#A0522D" tastes = list("chocolate" = 1) foodtype = JUNKFOOD | SUGAR @@ -53,7 +53,7 @@ name = "huge mushroom slice" desc = "A slice from a huge mushroom." icon_state = "hugemushroomslice" - list_reagents = list("nutriment" = 3, "vitamin" = 1) + list_reagents = list(/datum/reagent/consumable/nutriment = 3, /datum/reagent/consumable/nutriment/vitamin = 1) tastes = list("mushroom" = 1) foodtype = VEGETABLES @@ -62,7 +62,7 @@ desc = "Now let's find some cinema." icon_state = "popcorn" trash = /obj/item/trash/popcorn - list_reagents = list("nutriment" = 2) + list_reagents = list(/datum/reagent/consumable/nutriment = 2) bitesize = 0.1 //this snack is supposed to be eating during looooong time. And this it not dinner food! --rastaf0 filling_color = "#FFEFD5" tastes = list("popcorn" = 3, "butter" = 1) @@ -76,8 +76,8 @@ name = "loaded baked potato" desc = "Totally baked." icon_state = "loadedbakedpotato" - bonus_reagents = list("nutriment" = 1, "vitamin" = 2) - list_reagents = list("nutriment" = 6) + bonus_reagents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/consumable/nutriment/vitamin = 2) + list_reagents = list(/datum/reagent/consumable/nutriment = 6) filling_color = "#D2B48C" tastes = list("potato" = 1) foodtype = VEGETABLES | DAIRY @@ -87,7 +87,7 @@ desc = "AKA: French Fries, Freedom Fries, etc." icon_state = "fries" trash = /obj/item/trash/plate - list_reagents = list("nutriment" = 4) + list_reagents = list(/datum/reagent/consumable/nutriment = 4) filling_color = "#FFD700" tastes = list("fries" = 3, "salt" = 1) foodtype = VEGETABLES | GRAIN | FRIED @@ -97,7 +97,7 @@ name = "tator tot" desc = "A large fried potato nugget that may or may not try to valid you." icon_state = "tatortot" - list_reagents = list("nutriment" = 4) + list_reagents = list(/datum/reagent/consumable/nutriment = 4) filling_color = "FFD700" tastes = list("potato" = 3, "valids" = 1) foodtype = FRIED | VEGETABLES @@ -108,7 +108,7 @@ desc = "Dope from a soy." icon_state = "soydope" trash = /obj/item/trash/plate - list_reagents = list("nutriment" = 2) + list_reagents = list(/datum/reagent/consumable/nutriment = 2) filling_color = "#DEB887" tastes = list("soy" = 1) foodtype = VEGETABLES @@ -119,8 +119,8 @@ desc = "Fries. Covered in cheese. Duh." icon_state = "cheesyfries" trash = /obj/item/trash/plate - bonus_reagents = list("nutriment" = 1, "vitamin" = 2) - list_reagents = list("nutriment" = 6) + bonus_reagents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/consumable/nutriment/vitamin = 2) + list_reagents = list(/datum/reagent/consumable/nutriment = 6) filling_color = "#FFD700" tastes = list("fries" = 3, "cheese" = 1) foodtype = VEGETABLES | GRAIN @@ -129,7 +129,7 @@ name = "burned mess" desc = "Someone should be demoted from cook for this." icon_state = "badrecipe" - list_reagents = list("bad_food" = 30) + list_reagents = list(/datum/reagent/toxin/bad_food = 30) filling_color = "#8B4513" foodtype = GROSS dunkable = TRUE @@ -139,7 +139,7 @@ desc = "Tasty fries from fresh Carrots." icon_state = "carrotfries" trash = /obj/item/trash/plate - list_reagents = list("nutriment" = 3, "oculine" = 3, "vitamin" = 2) + list_reagents = list(/datum/reagent/consumable/nutriment = 3, /datum/reagent/medicine/oculine = 3, /datum/reagent/consumable/nutriment/vitamin = 2) filling_color = "#FFA500" tastes = list("carrots" = 3, "salt" = 1) foodtype = VEGETABLES @@ -149,8 +149,8 @@ desc = "An apple coated in sugary sweetness." icon_state = "candiedapple" bitesize = 3 - bonus_reagents = list("nutriment" = 2, "sugar" = 3) - list_reagents = list("nutriment" = 3, "sugar" = 2) + bonus_reagents = list(/datum/reagent/consumable/nutriment = 2, /datum/reagent/consumable/sugar = 3) + list_reagents = list(/datum/reagent/consumable/nutriment = 3, /datum/reagent/consumable/sugar = 2) filling_color = "#FF4500" tastes = list("apple" = 2, "sweetness" = 2) foodtype = JUNKFOOD | FRUIT | SUGAR @@ -161,7 +161,7 @@ icon_state = "mint" bitesize = 1 trash = /obj/item/trash/plate - list_reagents = list("minttoxin" = 2) + list_reagents = list(/datum/reagent/toxin/minttoxin = 2) filling_color = "#800000" foodtype = TOXIC | SUGAR @@ -169,8 +169,8 @@ name = "egg wrap" desc = "The precursor to Pigs in a Blanket." icon_state = "eggwrap" - bonus_reagents = list("nutriment" = 1, "vitamin" = 3) - list_reagents = list("nutriment" = 5) + bonus_reagents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/consumable/nutriment/vitamin = 3) + list_reagents = list(/datum/reagent/consumable/nutriment = 5) filling_color = "#F0E68C" tastes = list("egg" = 1) foodtype = MEAT | GRAIN @@ -179,8 +179,8 @@ name = "tin of beans" desc = "Musical fruit in a slightly less musical container." icon_state = "beans" - bonus_reagents = list("nutriment" = 1, "vitamin" = 1) - list_reagents = list("nutriment" = 10) + bonus_reagents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/consumable/nutriment/vitamin = 1) + list_reagents = list(/datum/reagent/consumable/nutriment = 10) filling_color = "#B22222" tastes = list("beans" = 1) foodtype = VEGETABLES @@ -189,7 +189,7 @@ name = "spider eggs" desc = "A cluster of juicy spider eggs. A great side dish for when you care not for your health." icon_state = "spidereggs" - list_reagents = list("nutriment" = 2, "toxin" = 2) + list_reagents = list(/datum/reagent/consumable/nutriment = 2, /datum/reagent/toxin = 2) filling_color = "#008000" tastes = list("cobwebs" = 1) foodtype = MEAT | TOXIC @@ -198,7 +198,7 @@ name = "spiderling" desc = "It's slightly twitching in your hand. Ew..." icon_state = "spiderling" - list_reagents = list("nutriment" = 1, "toxin" = 4) + list_reagents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/toxin = 4) filling_color = "#00800" tastes = list("cobwebs" = 1, "guts" = 2) foodtype = MEAT | TOXIC @@ -207,7 +207,7 @@ name = "spider lollipop" desc = "Still gross, but at least it has a mountain of sugar on it." icon_state = "spiderlollipop" - list_reagents = list("nutriment" = 1, "toxin" = 1, "iron" = 10, "sugar" = 5, "omnizine" = 2) //lollipop, but vitamins = toxins + list_reagents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/toxin = 1, /datum/reagent/iron = 10, /datum/reagent/consumable/sugar = 5, /datum/reagent/medicine/omnizine = 2) //lollipop, but vitamins = toxins filling_color = "#00800" tastes = list("cobwebs" = 1, "sugar" = 2) foodtype = JUNKFOOD | SUGAR @@ -217,7 +217,7 @@ desc = "Spider eggs wrapped in a thin salted Kudzu pod" icon = 'modular_citadel/icons/obj/food/food.dmi' icon_state = "sushie_egg" - list_reagents = list("nutriment" = 6, "vitamin" = 2) + list_reagents = list(/datum/reagent/consumable/nutriment = 6, /datum/reagent/consumable/nutriment/vitamin = 2) filling_color = "#FF3333" // R225 G051 B051 tastes = list("seaweed" = 1, "cobwebs" = 1, "salty" = 2) foodtype = MEAT | VEGETABLES @@ -226,8 +226,8 @@ name = "chocolate coin" desc = "A completely edible but nonflippable festive coin." icon_state = "chococoin" - bonus_reagents = list("nutriment" = 1, "sugar" = 1) - list_reagents = list("nutriment" = 3, "cocoa" = 1) + bonus_reagents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/consumable/sugar = 1) + list_reagents = list(/datum/reagent/consumable/nutriment = 3, /datum/reagent/consumable/coco = 1) filling_color = "#A0522D" tastes = list("chocolate" = 1) foodtype = JUNKFOOD | SUGAR @@ -236,8 +236,8 @@ name = "fudge dice" desc = "A little cube of chocolate that tends to have a less intense taste if you eat too many at once." icon_state = "chocodice" - bonus_reagents = list("nutriment" = 1, "sugar" = 1) - list_reagents = list("nutriment" = 3, "cocoa" = 1) + bonus_reagents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/consumable/sugar = 1) + list_reagents = list(/datum/reagent/consumable/nutriment = 3, /datum/reagent/consumable/coco = 1) filling_color = "#A0522D" trash = /obj/item/dice/fudge tastes = list("fudge" = 1) @@ -247,8 +247,8 @@ name = "chocolate orange" desc = "A festive chocolate orange." icon_state = "chocoorange" - bonus_reagents = list("nutriment" = 1, "sugar" = 1) - list_reagents = list("nutriment" = 3, "sugar" = 1) + bonus_reagents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/consumable/sugar = 1) + list_reagents = list(/datum/reagent/consumable/nutriment = 3, /datum/reagent/consumable/sugar = 1) filling_color = "#A0522D" tastes = list("chocolate" = 3, "oranges" = 1) foodtype = JUNKFOOD | SUGAR @@ -258,8 +258,8 @@ desc = "The only good recipe for eggplant." icon_state = "eggplantparm" trash = /obj/item/trash/plate - bonus_reagents = list("nutriment" = 1, "vitamin" = 3) - list_reagents = list("nutriment" = 6, "vitamin" = 2) + bonus_reagents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/consumable/nutriment/vitamin = 3) + list_reagents = list(/datum/reagent/consumable/nutriment = 6, /datum/reagent/consumable/nutriment/vitamin = 2) filling_color = "#BA55D3" tastes = list("eggplant" = 3, "cheese" = 1) foodtype = VEGETABLES | DAIRY @@ -269,7 +269,7 @@ desc = "The base for all your burritos." icon = 'icons/obj/food/food_ingredients.dmi' icon_state = "tortilla" - list_reagents = list("nutriment" = 3, "vitamin" = 1) + list_reagents = list(/datum/reagent/consumable/nutriment = 3, /datum/reagent/consumable/nutriment/vitamin = 1) filling_color = "#FFEFD5" tastes = list("tortilla" = 1) foodtype = GRAIN @@ -278,8 +278,8 @@ name = "burrito" desc = "Tortilla wrapped goodness." icon_state = "burrito" - bonus_reagents = list("nutriment" = 2, "vitamin" = 2) - list_reagents = list("nutriment" = 4, "vitamin" = 1) + bonus_reagents = list(/datum/reagent/consumable/nutriment = 2, /datum/reagent/consumable/nutriment/vitamin = 2) + list_reagents = list(/datum/reagent/consumable/nutriment = 4, /datum/reagent/consumable/nutriment/vitamin = 1) filling_color = "#FFEFD5" tastes = list("torilla" = 2, "meat" = 3) foodtype = GRAIN | MEAT @@ -288,8 +288,8 @@ name = "cheesy burrito" desc = "It's a burrito filled with cheese." icon_state = "cheesyburrito" - bonus_reagents = list("nutriment" = 1, "vitamin" = 2) - list_reagents = list("nutriment" = 4, "vitamin" = 2) + bonus_reagents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/consumable/nutriment/vitamin = 2) + list_reagents = list(/datum/reagent/consumable/nutriment = 4, /datum/reagent/consumable/nutriment/vitamin = 2) filling_color = "#FFD800" tastes = list("torilla" = 2, "meat" = 3, "cheese" = 1) foodtype = GRAIN | MEAT | DAIRY @@ -298,8 +298,8 @@ name = "carne asada burrito" desc = "The best burrito for meat lovers." icon_state = "carneburrito" - bonus_reagents = list("nutriment" = 2, "vitamin" = 1) - list_reagents = list("nutriment" = 5, "vitamin" = 1) + bonus_reagents = list(/datum/reagent/consumable/nutriment = 2, /datum/reagent/consumable/nutriment/vitamin = 1) + list_reagents = list(/datum/reagent/consumable/nutriment = 5, /datum/reagent/consumable/nutriment/vitamin = 1) filling_color = "#A0522D" tastes = list("torilla" = 2, "meat" = 4) foodtype = GRAIN | MEAT @@ -308,8 +308,8 @@ name = "fuego plasma burrito" desc = "A super spicy burrito." icon_state = "fuegoburrito" - bonus_reagents = list("nutriment" = 2, "vitamin" = 3) - list_reagents = list("nutriment" = 4, "capsaicin" = 5, "vitamin" = 3) + bonus_reagents = list(/datum/reagent/consumable/nutriment = 2, /datum/reagent/consumable/nutriment/vitamin = 3) + list_reagents = list(/datum/reagent/consumable/nutriment = 4, /datum/reagent/consumable/capsaicin = 5, /datum/reagent/consumable/nutriment/vitamin = 3) filling_color = "#FF2000" tastes = list("torilla" = 2, "meat" = 3, "hot peppers" = 1) foodtype = GRAIN | MEAT @@ -319,7 +319,7 @@ desc = "Made with roasted sweet potatoes!" icon_state = "yakiimo" trash = /obj/item/trash/plate - list_reagents = list("nutriment" = 5, "vitamin" = 4) + list_reagents = list(/datum/reagent/consumable/nutriment = 5, /datum/reagent/consumable/nutriment/vitamin = 4) filling_color = "#8B1105" tastes = list("sweet potato" = 1) foodtype = GRAIN | VEGETABLES | SUGAR @@ -329,7 +329,7 @@ desc = "Sweet and crunchy." icon_state = "roastparsnip" trash = /obj/item/trash/plate - list_reagents = list("nutriment" = 3, "vitamin" = 4) + list_reagents = list(/datum/reagent/consumable/nutriment = 3, /datum/reagent/consumable/nutriment/vitamin = 4) filling_color = "#FF5500" tastes = list("parsnip" = 1) foodtype = VEGETABLES @@ -338,8 +338,8 @@ name = "melon fruit bowl" desc = "For people who wants edible fruit bowls." icon_state = "melonfruitbowl" - bonus_reagents = list("nutriment" = 2, "vitamin" = 2) - list_reagents = list("nutriment" = 6, "vitamin" = 4) + bonus_reagents = list(/datum/reagent/consumable/nutriment = 2, /datum/reagent/consumable/nutriment/vitamin = 2) + list_reagents = list(/datum/reagent/consumable/nutriment = 6, /datum/reagent/consumable/nutriment/vitamin = 4) filling_color = "#FF5500" w_class = WEIGHT_CLASS_NORMAL tastes = list("melon" = 1) @@ -349,8 +349,8 @@ name = "nachos" desc = "Chips from Space Mexico." icon_state = "nachos" - bonus_reagents = list("nutriment" = 1, "vitamin" = 1) - list_reagents = list("nutriment" = 6, "vitamin" = 2) + bonus_reagents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/consumable/nutriment/vitamin = 1) + list_reagents = list(/datum/reagent/consumable/nutriment = 6, /datum/reagent/consumable/nutriment/vitamin = 2) filling_color = "#F4A460" tastes = list("nachos" = 1) foodtype = VEGETABLES | FRIED @@ -359,8 +359,8 @@ name = "cheesy nachos" desc = "The delicious combination of nachos and melting cheese." icon_state = "cheesynachos" - bonus_reagents = list("nutriment" = 1, "vitamin" = 2) - list_reagents = list("nutriment" = 6, "vitamin" = 3) + bonus_reagents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/consumable/nutriment/vitamin = 2) + list_reagents = list(/datum/reagent/consumable/nutriment = 6, /datum/reagent/consumable/nutriment/vitamin = 3) filling_color = "#FFD700" tastes = list("nachos" = 2, "cheese" = 1) foodtype = VEGETABLES | FRIED | DAIRY @@ -369,8 +369,8 @@ name = "Cuban nachos" desc = "That's some dangerously spicy nachos." icon_state = "cubannachos" - bonus_reagents = list("nutriment" = 2, "vitamin" = 3) - list_reagents = list("nutriment" = 7, "capsaicin" = 8, "vitamin" = 4) + bonus_reagents = list(/datum/reagent/consumable/nutriment = 2, /datum/reagent/consumable/nutriment/vitamin = 3) + list_reagents = list(/datum/reagent/consumable/nutriment = 7, /datum/reagent/consumable/capsaicin = 8, /datum/reagent/consumable/nutriment/vitamin = 4) filling_color = "#DC143C" tastes = list("nachos" = 2, "hot pepper" = 1) foodtype = VEGETABLES | FRIED | DAIRY @@ -379,8 +379,8 @@ name = "melon keg" desc = "Who knew vodka was a fruit?" icon_state = "melonkeg" - bonus_reagents = list("nutriment" = 3, "vitamin" = 3) - list_reagents = list("nutriment" = 9, "vodka" = 15, "vitamin" = 4) + bonus_reagents = list(/datum/reagent/consumable/nutriment = 3, /datum/reagent/consumable/nutriment/vitamin = 3) + list_reagents = list(/datum/reagent/consumable/nutriment = 9, /datum/reagent/consumable/ethanol/vodka = 15, /datum/reagent/consumable/nutriment/vitamin = 4) filling_color = "#FFD700" volume = 80 bitesize = 5 @@ -391,8 +391,8 @@ name = "honey nut bar" desc = "Oats and nuts compressed together into a bar, held together with a honey glaze." icon_state = "honeybar" - bonus_reagents = list("nutriment" = 2, "honey" = 2, "vitamin" = 2) - list_reagents = list("nutriment" = 5, "honey" = 5) + bonus_reagents = list(/datum/reagent/consumable/nutriment = 2, /datum/reagent/consumable/honey = 2, /datum/reagent/consumable/nutriment/vitamin = 2) + list_reagents = list(/datum/reagent/consumable/nutriment = 5, /datum/reagent/consumable/honey = 5) filling_color = "#F2CE91" tastes = list("oats" = 3, "nuts" = 2, "honey" = 1) foodtype = FRUIT | SUGAR @@ -401,8 +401,8 @@ name = "stuffed legion" desc = "The former skull of a damned human, filled with goliath meat. It has a decorative lava pool made of ketchup and hotsauce." icon_state = "stuffed_legion" - bonus_reagents = list("vitamin" = 3, "capsaicin" = 1, "tricordrazine" = 5) - list_reagents = list("nutriment" = 5, "vitamin" = 5, "capsaicin" = 2, "tricordrazine" = 10) + bonus_reagents = list(/datum/reagent/consumable/nutriment/vitamin = 3, /datum/reagent/consumable/capsaicin = 1, /datum/reagent/medicine/tricordrazine = 5) + list_reagents = list(/datum/reagent/consumable/nutriment = 5, /datum/reagent/consumable/nutriment/vitamin = 5, /datum/reagent/consumable/capsaicin = 2, /datum/reagent/medicine/tricordrazine = 10) tastes = list("death" = 2, "rock" = 1, "meat" = 1, "hot peppers" = 1) foodtype = MEAT @@ -410,8 +410,8 @@ name = "Powercrepe" desc = "With great power, comes great crepes. It looks like a pancake filled with jelly but packs quite a punch." icon_state = "powercrepe" - bonus_reagents = list("nutriment" = 5, "vitamin" = 3, "iron" = 10) - list_reagents = list("nutriment" = 10, "vitamin" = 5, "cherryjelly" = 5) + bonus_reagents = list(/datum/reagent/consumable/nutriment = 5, /datum/reagent/consumable/nutriment/vitamin = 3, /datum/reagent/iron = 10) + list_reagents = list(/datum/reagent/consumable/nutriment = 10, /datum/reagent/consumable/nutriment/vitamin = 5, /datum/reagent/consumable/cherryjelly = 5) force = 20 throwforce = 10 block_chance = 50 @@ -426,7 +426,7 @@ desc = "A delicious lollipop. Makes for a great Valentine's present." icon = 'icons/obj/lollipop.dmi' icon_state = "lollipop_stick" - list_reagents = list("nutriment" = 1, "vitamin" = 1, "iron" = 10, "sugar" = 5, "omnizine" = 2) //Honk + list_reagents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/consumable/nutriment/vitamin = 1, /datum/reagent/iron = 10, /datum/reagent/consumable/sugar = 5, /datum/reagent/medicine/omnizine = 2) //Honk var/mutable_appearance/head var/headcolor = rgb(0, 0, 0) tastes = list("candy" = 1) @@ -468,7 +468,7 @@ desc = "A colorful, sugary gumball." icon = 'icons/obj/lollipop.dmi' icon_state = "gumball" - list_reagents = list("sugar" = 5, "bicaridine" = 2, "kelotane" = 2) //Kek + list_reagents = list(/datum/reagent/consumable/sugar = 5, /datum/reagent/medicine/bicaridine = 2, /datum/reagent/medicine/kelotane = 2) //Kek tastes = list("candy") foodtype = JUNKFOOD @@ -495,8 +495,8 @@ name = "taco" desc = "A traditional taco with meat, cheese, and lettuce." icon_state = "taco" - bonus_reagents = list("nutriment" = 3, "vitamin" = 2) - list_reagents = list("nutriment" = 4, "vitamin" = 2) + bonus_reagents = list(/datum/reagent/consumable/nutriment = 3, /datum/reagent/consumable/nutriment/vitamin = 2) + list_reagents = list(/datum/reagent/consumable/nutriment = 4, /datum/reagent/consumable/nutriment/vitamin = 2) filling_color = "F0D830" tastes = list("taco" = 4, "meat" = 2, "cheese" = 2, "lettuce" = 1) foodtype = MEAT | DAIRY | GRAIN | VEGETABLES @@ -504,8 +504,8 @@ /obj/item/reagent_containers/food/snacks/taco/plain desc = "A traditional taco with meat and cheese, minus the rabbit food." icon_state = "taco_plain" - bonus_reagents = list("nutriment" = 2, "vitamin" = 2) - list_reagents = list("nutriment" = 3, "vitamin" = 1) + bonus_reagents = list(/datum/reagent/consumable/nutriment = 2, /datum/reagent/consumable/nutriment/vitamin = 2) + list_reagents = list(/datum/reagent/consumable/nutriment = 3, /datum/reagent/consumable/nutriment/vitamin = 1) tastes = list("taco" = 4, "meat" = 2, "cheese" = 2) foodtype = MEAT | DAIRY | GRAIN @@ -513,8 +513,8 @@ name = "Bran Requests Cereal" desc = "A dry cereal that satiates your requests for bran. Tastes uniquely like raisins and salt." icon_state = "bran_requests" - list_reagents = list("nutriment" = 3, "vitamin" = 2, "sodiumchloride" = 5) - bonus_reagents = list("sodiumchloride" = 10) + list_reagents = list(/datum/reagent/consumable/nutriment = 3, /datum/reagent/consumable/nutriment/vitamin = 2, /datum/reagent/consumable/sodiumchloride = 5) + bonus_reagents = list(/datum/reagent/consumable/sodiumchloride = 10) tastes = list("bran" = 4, "raisins" = 3, "salt" = 1) foodtype = GRAIN | FRUIT @@ -522,7 +522,7 @@ name = "stick of butter" desc = "A stick of delicious, golden, fatty goodness." icon_state = "butter" - list_reagents = list("nutriment" = 5) + list_reagents = list(/datum/reagent/consumable/nutriment = 5) filling_color = "#FFD700" tastes = list("butter" = 1) foodtype = DAIRY @@ -531,7 +531,7 @@ name = "onion rings" desc = "Onion slices coated in batter." icon_state = "onionrings" - list_reagents = list("nutriment" = 3) + list_reagents = list(/datum/reagent/consumable/nutriment = 3) filling_color = "#C0C9A0" gender = PLURAL tastes = list("batter" = 3, "onion" = 1) @@ -549,7 +549,7 @@ name = "chocolate" desc = "A tiny and sweet chocolate. Has a 'strawberry' filling!" icon_state = "tiny_chocolate" - list_reagents = list("nutriment" = 1, "sugar" = 1, "cocoa" = 1, "aphro" = 1) + list_reagents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/consumable/sugar = 1, /datum/reagent/consumable/coco = 1, /datum/reagent/drug/aphrodisiac = 1) filling_color = "#A0522D" tastes = list("chocolate" = 1) foodtype = JUNKFOOD | SUGAR @@ -559,7 +559,7 @@ desc = "A ball of rice with some light salt and a wrap of Kudzu skin." icon = 'modular_citadel/icons/obj/food/food.dmi' icon_state = "riceball" - list_reagents = list("nutriment" = 6, "sodiumchloride" = 2) + list_reagents = list(/datum/reagent/consumable/nutriment = 6, /datum/reagent/consumable/sodiumchloride = 2) tastes = list("rice" = 3, "salt" = 1) foodtype = GRAIN @@ -567,7 +567,7 @@ name = "Canned Peaches" desc = "Just a nice can of ripe peaches swimming in their own juices." icon_state = "peachcan" - list_reagents = list("peachjuice" = 20, "sugar" = 8, "nutriment" = 2) + list_reagents = list(/datum/reagent/consumable/peachjuice = 20, /datum/reagent/consumable/sugar = 8, /datum/reagent/consumable/nutriment = 2) filling_color = "#ffdf26" w_class = WEIGHT_CLASS_NORMAL tastes = list("peaches" = 7, "tin" = 1) @@ -583,7 +583,7 @@ name = "Chocolate dipped strawberries" desc = "A strawberry dipped in a bit of chocolate." icon_state = "chocolatestrawberry" - list_reagents = list("sugar" = 5, "nutriment" = 2) + list_reagents = list(/datum/reagent/consumable/sugar = 5, /datum/reagent/consumable/nutriment = 2) filling_color = "#ffdf26" tastes = list("strawberries" = 5, "chocolate" = 3) foodtype = FRUIT | SUGAR @@ -593,7 +593,7 @@ name = "Chocolate dipped banana" desc = "A banana dipped in a bit of chocolate and held on a stick." icon_state = "banana_coco" - list_reagents = list("sugar" = 5, "nutriment" = 3, "vitamin" = 1) + list_reagents = list(/datum/reagent/consumable/sugar = 5, /datum/reagent/consumable/nutriment = 3, /datum/reagent/consumable/nutriment/vitamin = 1) filling_color = "#ffdf26" tastes = list("banana" = 5, "chocolate" = 3) foodtype = FRUIT | SUGAR @@ -605,7 +605,7 @@ icon_state = "boritos" trash = /obj/item/trash/boritos bitesize = 2 - list_reagents = list("nutriment" = 3, "cooking_oil" = 2, "sodiumchloride" = 3) + list_reagents = list(/datum/reagent/consumable/nutriment = 3, /datum/reagent/consumable/cooking_oil = 2, /datum/reagent/consumable/sodiumchloride = 3) filling_color = "#ECA735" tastes = list("fried corn" = 1) foodtype = JUNKFOOD | FRIED @@ -615,7 +615,7 @@ name = "marshmallow" desc = "A marshmallow filled with fluffy marshmallow fluff." icon_state = "marshmallow" - list_reagents = list("sugar" = 5, "nutriment" = 2) + list_reagents = list(/datum/reagent/consumable/sugar = 5, /datum/reagent/consumable/nutriment = 2) filling_color = "#fafafa" w_class = WEIGHT_CLASS_TINY tastes = list("marshmallow" = 2) diff --git a/code/modules/food_and_drinks/food/snacks_pastry.dm b/code/modules/food_and_drinks/food/snacks_pastry.dm index de5d577193..516c8b2c31 100644 --- a/code/modules/food_and_drinks/food/snacks_pastry.dm +++ b/code/modules/food_and_drinks/food/snacks_pastry.dm @@ -8,8 +8,8 @@ icon = 'icons/obj/food/donut.dmi' icon_state = "donut" bitesize = 5 - bonus_reagents = list("sugar" = 1) - list_reagents = list("nutriment" = 3, "sprinkles" = 1, "sugar" = 2) + bonus_reagents = list(/datum/reagent/consumable/sugar = 1) + list_reagents = list(/datum/reagent/consumable/nutriment = 3, /datum/reagent/consumable/sprinkles = 1, /datum/reagent/consumable/sugar = 2) filling_color = "#D2691E" tastes = list("donut" = 1) foodtype = JUNKFOOD | GRAIN | FRIED | SUGAR | BREAKFAST @@ -30,7 +30,7 @@ is_decorated = TRUE name = "[decorated_adjective] [name]" icon_state = decorated_icon //delish~! - reagents.add_reagent("sprinkles", 1) + reagents.add_reagent(/datum/reagent/consumable/sprinkles, 1) filling_color = "#FF69B4" return TRUE @@ -58,15 +58,18 @@ /obj/item/reagent_containers/food/snacks/donut/chaos/Initialize() . = ..() - extra_reagent = pick("nutriment", "capsaicin", "frostoil", "krokodil", "plasma", "cocoa", "slimejelly", "banana", "berryjuice", "omnizine") + extra_reagent = pick(/datum/reagent/consumable/nutriment, /datum/reagent/consumable/capsaicin, /datum/reagent/consumable/frostoil, + /datum/reagent/drug/krokodil, /datum/reagent/toxin/plasma, /datum/reagent/consumable/coco, + /datum/reagent/toxin/slimejelly, /datum/reagent/consumable/banana, /datum/reagent/consumable/berryjuice, + /datum/reagent/medicine/omnizine) reagents.add_reagent(extra_reagent, 3) /obj/item/reagent_containers/food/snacks/donut/meat name = "Meat Donut" desc = "Tastes as gross as it looks." icon_state = "donut_meat" - bonus_reagents = list("ketchup" = 1) - list_reagents = list("nutriment" = 3, "ketchup" = 2) + bonus_reagents = list(/datum/reagent/consumable/ketchup = 1) + list_reagents = list(/datum/reagent/consumable/nutriment = 3, /datum/reagent/consumable/ketchup = 2) tastes = list("meat" = 1) foodtype = JUNKFOOD | MEAT | GROSS | FRIED | BREAKFAST @@ -74,7 +77,7 @@ name = "pink donut" desc = "Goes great with a soy latte." icon_state = "donut_pink" - bonus_reagents = list("berryjuice" = 3, "sprinkles" = 1) //Extra sprinkles to reward frosting + bonus_reagents = list(/datum/reagent/consumable/berryjuice = 3, /datum/reagent/consumable/sprinkles = 1) //Extra sprinkles to reward frosting filling_color = "#E57d9A" decorated_icon = "donut_homer" @@ -82,7 +85,7 @@ name = "spaceman's donut" desc = "Goes great with a cold beaker of malk." icon_state = "donut_purple" - bonus_reagents = list("polypyr" = 3, "sprinkles" = 1) + bonus_reagents = list(/datum/reagent/medicine/polypyr = 3, /datum/reagent/consumable/sprinkles = 1) tastes = list("donut" = 3, "violets" = 1) is_decorated = TRUE filling_color = "#8739BF" @@ -91,7 +94,7 @@ name = "apple donut" desc = "Goes great with a shot of cinnamon schnapps." icon_state = "donut_green" - bonus_reagents = list("applejuice" = 3, "sprinkles" = 1) + bonus_reagents = list(/datum/reagent/consumable/applejuice = 3, /datum/reagent/consumable/sprinkles = 1) tastes = list("donut" = 3, "green apples" = 1) is_decorated = TRUE filling_color = "#6ABE30" @@ -100,7 +103,7 @@ name = "caramel donut" desc = "Goes great with a mug of hot coco." icon_state = "donut_beige" - bonus_reagents = list("caramel" = 3, "sprinkles" = 1) + bonus_reagents = list(/datum/reagent/consumable/caramel = 3, /datum/reagent/consumable/sprinkles = 1) tastes = list("donut" = 3, "buttery sweetness" = 1) is_decorated = TRUE filling_color = "#D4AD5B" @@ -109,7 +112,7 @@ name = "chocolate donut" desc = "Goes great with a glass of warm milk." icon_state = "donut_choc" - bonus_reagents = list("hot_coco" = 3, "sprinkles" = 1) //the coco reagent is just bitter. + bonus_reagents = list(/datum/reagent/consumable/hot_coco = 3, /datum/reagent/consumable/sprinkles = 1) //the coco reagent is just bitter. tastes = list("donut" = 4, "bitterness" = 1) decorated_icon = "donut_choc_sprinkles" filling_color = "#4F230D" @@ -118,7 +121,7 @@ name = "blumpkin donut" desc = "Goes great with a mug of soothing drunken blumpkin." icon_state = "donut_blue" - bonus_reagents = list("blumpkinjuice" = 3, "sprinkles" = 1) + bonus_reagents = list(/datum/reagent/consumable/blumpkinjuice = 3, /datum/reagent/consumable/sprinkles = 1) tastes = list("donut" = 2, "blumpkin" = 1) is_decorated = TRUE filling_color = "#2788C4" @@ -127,7 +130,7 @@ name = "bungo donut" desc = "Goes great with a mason jar of hippie's delight." icon_state = "donut_yellow" - bonus_reagents = list("bungojuice" = 3, "sprinkles" = 1) + bonus_reagents = list(/datum/reagent/consumable/bungojuice = 3, /datum/reagent/consumable/sprinkles = 1) tastes = list("donut" = 3, "tropical sweetness" = 1) is_decorated = TRUE filling_color = "#DEC128" @@ -136,7 +139,7 @@ name = "matcha donut" desc = "Goes great with a cup of tea." icon_state = "donut_olive" - bonus_reagents = list("teapowder = 3", "sprinkles" = 1) + bonus_reagents = list(/datum/reagent/toxin/teapowder = 3, /datum/reagent/consumable/sprinkles = 1) tastes = list("donut" = 3, "matcha" = 1) is_decorated = TRUE filling_color = "#879630" @@ -148,7 +151,7 @@ desc = "You jelly?" icon_state = "jelly" decorated_icon = "jelly_homer" - bonus_reagents = list("sugar" = 1, "vitamin" = 1) + bonus_reagents = list(/datum/reagent/consumable/sugar = 1, /datum/reagent/consumable/nutriment/vitamin = 1) extra_reagent = "berryjuice" tastes = list("jelly" = 1, "donut" = 3) foodtype = JUNKFOOD | GRAIN | FRIED | FRUIT | SUGAR | BREAKFAST @@ -156,7 +159,7 @@ /obj/item/reagent_containers/food/snacks/donut/jelly/Initialize() . = ..() if(extra_reagent) - reagents.add_reagent("[extra_reagent]", 3) + reagents.add_reagent(extra_reagent, 3) /obj/item/reagent_containers/food/snacks/donut/jelly/plain //use this ingame to avoid inheritance related crafting issues. @@ -164,7 +167,7 @@ name = "pink jelly donut" desc = "Goes great with a soy latte." icon_state = "jelly_pink" - bonus_reagents = list("berryjuice" = 3, "sprinkles" = 1, "vitamin" = 1) //Extra sprinkles to reward frosting. + bonus_reagents = list(/datum/reagent/consumable/berryjuice = 3, /datum/reagent/consumable/sprinkles = 1, /datum/reagent/consumable/nutriment/vitamin = 1) //Extra sprinkles to reward frosting. filling_color = "#E57d9A" decorated_icon = "jelly_homer" @@ -172,7 +175,7 @@ name = "spaceman's jelly donut" desc = "Goes great with a cold beaker of malk." icon_state = "jelly_purple" - bonus_reagents = list("polypyr" = 3, "sprinkles" = 1, "vitamin" = 1) + bonus_reagents = list(/datum/reagent/medicine/polypyr = 3, /datum/reagent/consumable/sprinkles = 1, /datum/reagent/consumable/nutriment/vitamin = 1) tastes = list("jelly" = 1, "donut" = 3, "violets" = 1) is_decorated = TRUE filling_color = "#8739BF" @@ -181,7 +184,7 @@ name = "apple jelly donut" desc = "Goes great with a shot of cinnamon schnapps." icon_state = "jelly_green" - bonus_reagents = list("applejuice" = 3, "sprinkles" = 1, "vitamin" = 1) + bonus_reagents = list(/datum/reagent/consumable/applejuice = 3, /datum/reagent/consumable/sprinkles = 1, /datum/reagent/consumable/nutriment/vitamin = 1) tastes = list("jelly" = 1, "donut" = 3, "green apples" = 1) is_decorated = TRUE filling_color = "#6ABE30" @@ -190,7 +193,7 @@ name = "caramel jelly donut" desc = "Goes great with a mug of hot coco." icon_state = "jelly_beige" - bonus_reagents = list("caramel" = 3, "sprinkles" = 1, "vitamin" = 1) + bonus_reagents = list(/datum/reagent/consumable/caramel = 3, /datum/reagent/consumable/sprinkles = 1, /datum/reagent/consumable/nutriment/vitamin = 1) tastes = list("jelly" = 1, "donut" = 3, "buttery sweetness" = 1) is_decorated = TRUE filling_color = "#D4AD5B" @@ -199,7 +202,7 @@ name = "chocolate jelly donut" desc = "Goes great with a glass of warm milk." icon_state = "jelly_choc" - bonus_reagents = list("hot_coco" = 3, "sprinkles" = 1, "vitamin" = 1) //the coco reagent is just bitter. + bonus_reagents = list(/datum/reagent/consumable/hot_coco = 3, /datum/reagent/consumable/sprinkles = 1, /datum/reagent/consumable/nutriment/vitamin = 1) //the coco reagent is just bitter. tastes = list("jelly" = 1, "donut" = 4, "bitterness" = 1) decorated_icon = "jelly_choc_sprinkles" filling_color = "#4F230D" @@ -208,7 +211,7 @@ name = "blumpkin jelly donut" desc = "Goes great with a mug of soothing drunken blumpkin." icon_state = "jelly_blue" - bonus_reagents = list("blumpkinjuice" = 3, "sprinkles" = 1, "vitamin" = 1) + bonus_reagents = list(/datum/reagent/consumable/blumpkinjuice = 3, /datum/reagent/consumable/sprinkles = 1, /datum/reagent/consumable/nutriment/vitamin = 1) tastes = list("jelly" = 1, "donut" = 2, "blumpkin" = 1) is_decorated = TRUE filling_color = "#2788C4" @@ -217,7 +220,7 @@ name = "bungo jelly donut" desc = "Goes great with a mason jar of hippie's delight." icon_state = "jelly_yellow" - bonus_reagents = list("bungojuice" = 3, "sprinkles" = 1, "vitamin" = 1) + bonus_reagents = list(/datum/reagent/consumable/bungojuice = 3, /datum/reagent/consumable/sprinkles = 1, /datum/reagent/consumable/nutriment/vitamin = 1) tastes = list("jelly" = 1, "donut" = 3, "tropical sweetness" = 1) is_decorated = TRUE filling_color = "#DEC128" @@ -226,7 +229,7 @@ name = "matcha jelly donut" desc = "Goes great with a cup of tea." icon_state = "jelly_olive" - bonus_reagents = list("teapowder" = 3, "sprinkles" = 1, "vitamin" = 1) + bonus_reagents = list(/datum/reagent/toxin/teapowder = 3, /datum/reagent/consumable/sprinkles = 1, /datum/reagent/consumable/nutriment/vitamin = 1) tastes = list("jelly" = 1, "donut" = 3, "matcha" = 1) is_decorated = TRUE filling_color = "#879630" @@ -246,14 +249,14 @@ name = "pink jelly donut" desc = "Goes great with a soy latte." icon_state = "jelly_pink" - bonus_reagents = list("berryjuice" = 3, "sprinkles" = 1, "vitamin" = 1) //Extra sprinkles to reward frosting + bonus_reagents = list(/datum/reagent/consumable/berryjuice = 3, /datum/reagent/consumable/sprinkles = 1, /datum/reagent/consumable/nutriment/vitamin = 1) //Extra sprinkles to reward frosting filling_color = "#E57d9A" /obj/item/reagent_containers/food/snacks/donut/jelly/slimejelly/trumpet name = "spaceman's jelly donut" desc = "Goes great with a cold beaker of malk." icon_state = "jelly_purple" - bonus_reagents = list("polypyr" = 3, "sprinkles" = 1, "vitamin" = 1) + bonus_reagents = list(/datum/reagent/medicine/polypyr = 3, /datum/reagent/consumable/sprinkles = 1, /datum/reagent/consumable/nutriment/vitamin = 1) tastes = list("jelly" = 1, "donut" = 3, "violets" = 1) is_decorated = TRUE filling_color = "#8739BF" @@ -262,7 +265,7 @@ name = "apple jelly donut" desc = "Goes great with a shot of cinnamon schnapps." icon_state = "jelly_green" - bonus_reagents = list("applejuice" = 3, "sprinkles" = 1, "vitamin" = 1) + bonus_reagents = list(/datum/reagent/consumable/applejuice = 3, /datum/reagent/consumable/sprinkles = 1, /datum/reagent/consumable/nutriment/vitamin = 1) tastes = list("jelly" = 1, "donut" = 3, "green apples" = 1) is_decorated = TRUE filling_color = "#6ABE30" @@ -271,7 +274,7 @@ name = "caramel jelly donut" desc = "Goes great with a mug of hot coco." icon_state = "jelly_beige" - bonus_reagents = list("caramel" = 3, "sprinkles" = 1, "vitamin" = 1) + bonus_reagents = list(/datum/reagent/consumable/caramel = 3, /datum/reagent/consumable/sprinkles = 1, /datum/reagent/consumable/nutriment/vitamin = 1) tastes = list("jelly" = 1, "donut" = 3, "buttery sweetness" = 1) is_decorated = TRUE filling_color = "#D4AD5B" @@ -280,7 +283,7 @@ name = "chocolate jelly donut" desc = "Goes great with a glass of warm milk." icon_state = "jelly_choc" - bonus_reagents = list("hot_coco" = 3, "sprinkles" = 1, "vitamin" = 1) //the coco reagent is just bitter. + bonus_reagents = list(/datum/reagent/consumable/hot_coco = 3, /datum/reagent/consumable/sprinkles = 1, /datum/reagent/consumable/nutriment/vitamin = 1) //the coco reagent is just bitter. tastes = list("jelly" = 1, "donut" = 4, "bitterness" = 1) decorated_icon = "jelly_choc_sprinkles" filling_color = "#4F230D" @@ -289,7 +292,7 @@ name = "blumpkin jelly donut" desc = "Goes great with a mug of soothing drunken blumpkin." icon_state = "jelly_blue" - bonus_reagents = list("blumpkinjuice" = 3, "sprinkles" = 1, "vitamin" = 1) + bonus_reagents = list(/datum/reagent/consumable/blumpkinjuice = 3, /datum/reagent/consumable/sprinkles = 1, /datum/reagent/consumable/nutriment/vitamin = 1) tastes = list("jelly" = 1, "donut" = 2, "blumpkin" = 1) is_decorated = TRUE filling_color = "#2788C4" @@ -298,7 +301,7 @@ name = "bungo jelly donut" desc = "Goes great with a mason jar of hippie's delight." icon_state = "jelly_yellow" - bonus_reagents = list("bungojuice" = 3, "sprinkles" = 1, "vitamin" = 1) + bonus_reagents = list(/datum/reagent/consumable/bungojuice = 3, /datum/reagent/consumable/sprinkles = 1, /datum/reagent/consumable/nutriment/vitamin = 1) tastes = list("jelly" = 1, "donut" = 3, "tropical sweetness" = 1) is_decorated = TRUE filling_color = "#DEC128" @@ -307,7 +310,7 @@ name = "matcha jelly donut" desc = "Goes great with a cup of tea." icon_state = "jelly_olive" - bonus_reagents = list("teapowder" = 3, "sprinkles" = 1, "vitamin" = 1) + bonus_reagents = list(/datum/reagent/toxin/teapowder = 3, /datum/reagent/consumable/sprinkles = 1, /datum/reagent/consumable/nutriment/vitamin = 1) tastes = list("jelly" = 1, "donut" = 3, "matcha" = 1) is_decorated = TRUE filling_color = "#879630" @@ -317,8 +320,8 @@ desc = "A sugar glazed donut." icon_state = "donut_glaze" bitesize = 10 - bonus_reagents = list("sugar" = 3) - list_reagents = list("nutriment" = 3, "sugar" = 8) + bonus_reagents = list(/datum/reagent/consumable/sugar = 3) + list_reagents = list(/datum/reagent/consumable/nutriment = 3, /datum/reagent/consumable/sugar = 8) filling_color = "#FFFFFF" tastes = list("donut" = 1, "salt" = 3) foodtype = JUNKFOOD | GRAIN | FRIED | SUGAR @@ -329,8 +332,8 @@ name = "muffin" desc = "A delicious and spongy little cake." icon_state = "muffin" - bonus_reagents = list("vitamin" = 1) - list_reagents = list("nutriment" = 6) + bonus_reagents = list(/datum/reagent/consumable/nutriment/vitamin = 1) + list_reagents = list(/datum/reagent/consumable/nutriment = 6) filling_color = "#F4A460" tastes = list("muffin" = 1) foodtype = GRAIN | SUGAR | BREAKFAST @@ -354,8 +357,8 @@ name = "chawanmushi" desc = "A legendary egg custard that makes friends out of enemies. Probably too hot for a cat to eat." icon_state = "chawanmushi" - bonus_reagents = list("vitamin" = 1) - list_reagents = list("nutriment" = 5) + bonus_reagents = list(/datum/reagent/consumable/nutriment/vitamin = 1) + list_reagents = list(/datum/reagent/consumable/nutriment = 5) filling_color = "#FFE4E1" tastes = list("custard" = 1) foodtype = GRAIN | MEAT | VEGETABLES @@ -367,8 +370,8 @@ desc = "Mmm, waffles." icon_state = "waffles" trash = /obj/item/trash/waffles - bonus_reagents = list("vitamin" = 1) - list_reagents = list("nutriment" = 8, "vitamin" = 1) + bonus_reagents = list(/datum/reagent/consumable/nutriment/vitamin = 1) + list_reagents = list(/datum/reagent/consumable/nutriment = 8, /datum/reagent/consumable/nutriment/vitamin = 1) filling_color = "#D2691E" tastes = list("waffles" = 1) foodtype = GRAIN | SUGAR | BREAKFAST @@ -378,8 +381,8 @@ desc = "Not made of people. Honest." //Totally people. icon_state = "soylent_green" trash = /obj/item/trash/waffles - bonus_reagents = list("vitamin" = 1) - list_reagents = list("nutriment" = 10, "vitamin" = 1) + bonus_reagents = list(/datum/reagent/consumable/nutriment/vitamin = 1) + list_reagents = list(/datum/reagent/consumable/nutriment = 10, /datum/reagent/consumable/nutriment/vitamin = 1) filling_color = "#9ACD32" tastes = list("waffles" = 7, "people" = 1) foodtype = GRAIN | MEAT @@ -389,8 +392,8 @@ desc = "Not made of people. Honest." //Actually honest for once. icon_state = "soylent_yellow" trash = /obj/item/trash/waffles - bonus_reagents = list("vitamin" = 1) - list_reagents = list("nutriment" = 10, "vitamin" = 1) + bonus_reagents = list(/datum/reagent/consumable/nutriment/vitamin = 1) + list_reagents = list(/datum/reagent/consumable/nutriment = 10, /datum/reagent/consumable/nutriment/vitamin = 1) filling_color = "#9ACD32" tastes = list("waffles" = 7, "the colour green" = 1) foodtype = GRAIN @@ -401,8 +404,8 @@ icon_state = "rofflewaffles" trash = /obj/item/trash/waffles bitesize = 4 - bonus_reagents = list("vitamin" = 2) - list_reagents = list("nutriment" = 8, "mushroomhallucinogen" = 2, "vitamin" = 2) + bonus_reagents = list(/datum/reagent/consumable/nutriment/vitamin = 2) + list_reagents = list(/datum/reagent/consumable/nutriment = 8, /datum/reagent/drug/mushroomhallucinogen = 2, /datum/reagent/consumable/nutriment/vitamin = 2) filling_color = "#00BFFF" tastes = list("waffle" = 1, "mushrooms" = 1) foodtype = GRAIN | VEGETABLES | SUGAR | BREAKFAST @@ -414,8 +417,8 @@ desc = "COOKIE!!!" icon_state = "COOKIE!!!" bitesize = 1 - bonus_reagents = list("nutriment" = 1) - list_reagents = list("nutriment" = 1) + bonus_reagents = list(/datum/reagent/consumable/nutriment = 1) + list_reagents = list(/datum/reagent/consumable/nutriment = 1) filling_color = "#F0E68C" tastes = list("cookie" = 1) foodtype = GRAIN | SUGAR @@ -425,7 +428,7 @@ name = "\improper Donk-pocket" desc = "The food of choice for the seasoned traitor." icon_state = "donkpocket" - list_reagents = list("nutriment" = 4) + list_reagents = list(/datum/reagent/consumable/nutriment = 4) cooked_type = /obj/item/reagent_containers/food/snacks/donkpocket/warm filling_color = "#CD853F" tastes = list("meat" = 2, "dough" = 2, "laziness" = 1) @@ -434,8 +437,8 @@ /obj/item/reagent_containers/food/snacks/donkpocket/warm name = "warm Donk-pocket" desc = "The heated food of choice for the seasoned traitor." - bonus_reagents = list("omnizine" = 3) - list_reagents = list("nutriment" = 4, "omnizine" = 3) + bonus_reagents = list(/datum/reagent/medicine/omnizine = 3) + list_reagents = list(/datum/reagent/consumable/nutriment = 4, /datum/reagent/medicine/omnizine = 3) cooked_type = null tastes = list("meat" = 2, "dough" = 2, "laziness" = 1) foodtype = GRAIN @@ -444,7 +447,7 @@ name = "\improper Dank-pocket" desc = "The food of choice for the seasoned botanist." icon_state = "dankpocket" - list_reagents = list("lipolicide" = 3, "space_drugs" = 3, "nutriment" = 4) + list_reagents = list(/datum/reagent/toxin/lipolicide = 3, /datum/reagent/drug/space_drugs = 3, /datum/reagent/consumable/nutriment = 4) filling_color = "#00FF00" tastes = list("meat" = 2, "dough" = 2) foodtype = GRAIN | VEGETABLES @@ -453,8 +456,8 @@ name = "fortune cookie" desc = "A true prophecy in each cookie!" icon_state = "fortune_cookie" - bonus_reagents = list("nutriment" = 2) - list_reagents = list("nutriment" = 3) + bonus_reagents = list(/datum/reagent/consumable/nutriment = 2) + list_reagents = list(/datum/reagent/consumable/nutriment = 3) filling_color = "#F4A460" tastes = list("cookie" = 1) foodtype = GRAIN | SUGAR @@ -463,8 +466,8 @@ name = "poppy pretzel" desc = "It's all twisted up!" icon_state = "poppypretzel" - bonus_reagents = list("nutriment" = 1, "vitamin" = 2) - list_reagents = list("nutriment" = 5) + bonus_reagents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/consumable/nutriment/vitamin = 2) + list_reagents = list(/datum/reagent/consumable/nutriment = 5) filling_color = "#F0E68C" tastes = list("pretzel" = 1) foodtype = GRAIN | SUGAR @@ -473,8 +476,8 @@ name = "plump helmet biscuit" desc = "This is a finely-prepared plump helmet biscuit. The ingredients are exceptionally minced plump helmet, and well-minced dwarven wheat flour." icon_state = "phelmbiscuit" - bonus_reagents = list("nutriment" = 1, "vitamin" = 1) - list_reagents = list("nutriment" = 5) + bonus_reagents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/consumable/nutriment/vitamin = 1) + list_reagents = list(/datum/reagent/consumable/nutriment = 5) filling_color = "#F0E68C" tastes = list("mushroom" = 1, "biscuit" = 1) foodtype = GRAIN | VEGETABLES @@ -484,18 +487,18 @@ if(fey) name = "exceptional plump helmet biscuit" desc = "Microwave is taken by a fey mood! It has cooked an exceptional plump helmet biscuit!" - bonus_reagents = list("omnizine" = 5, "nutriment" = 1, "vitamin" = 1) + bonus_reagents = list(/datum/reagent/medicine/omnizine = 5, /datum/reagent/consumable/nutriment = 1, /datum/reagent/consumable/nutriment/vitamin = 1) . = ..() if(fey) - reagents.add_reagent("omnizine", 5) + reagents.add_reagent(/datum/reagent/medicine/omnizine, 5) /obj/item/reagent_containers/food/snacks/cracker name = "cracker" desc = "It's a salted cracker." icon_state = "cracker" bitesize = 1 - bonus_reagents = list("nutriment" = 1) - list_reagents = list("nutriment" = 1) + bonus_reagents = list(/datum/reagent/consumable/nutriment = 1) + list_reagents = list(/datum/reagent/consumable/nutriment = 1) filling_color = "#F0E68C" tastes = list("cracker" = 1) foodtype = GRAIN @@ -505,8 +508,8 @@ desc = "Fresh footlong ready to go down on." icon_state = "hotdog" bitesize = 3 - bonus_reagents = list("nutriment" = 1, "vitamin" = 3) - list_reagents = list("nutriment" = 6, "ketchup" = 3, "vitamin" = 3) + bonus_reagents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/consumable/nutriment/vitamin = 3) + list_reagents = list(/datum/reagent/consumable/nutriment = 6, /datum/reagent/consumable/ketchup = 3, /datum/reagent/consumable/nutriment/vitamin = 3) filling_color = "#8B0000" tastes = list("bun" = 3, "meat" = 2) foodtype = GRAIN | MEAT | VEGETABLES @@ -515,8 +518,8 @@ name = "meat bun" desc = "Has the potential to not be Dog." icon_state = "meatbun" - bonus_reagents = list("nutriment" = 1, "vitamin" = 2) - list_reagents = list("nutriment" = 6, "vitamin" = 2) + bonus_reagents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/consumable/nutriment/vitamin = 2) + list_reagents = list(/datum/reagent/consumable/nutriment = 6, /datum/reagent/consumable/nutriment/vitamin = 2) filling_color = "#8B0000" tastes = list("bun" = 3, "meat" = 2) foodtype = GRAIN | MEAT | VEGETABLES @@ -525,7 +528,7 @@ name = "khachapuri" desc = "Bread with egg and cheese?" icon_state = "khachapuri" - list_reagents = list("nutriment" = 12, "vitamin" = 2) + list_reagents = list(/datum/reagent/consumable/nutriment = 12, /datum/reagent/consumable/nutriment/vitamin = 2) filling_color = "#FFFF4D" tastes = list("bread" = 1, "egg" = 1, "cheese" = 1) foodtype = GRAIN | MEAT | DAIRY @@ -534,8 +537,8 @@ name = "sugar cookie" desc = "Just like your little sister used to make." icon_state = "sugarcookie" - bonus_reagents = list("nutriment" = 1, "sugar" = 3) - list_reagents = list("nutriment" = 3, "sugar" = 3) + bonus_reagents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/consumable/sugar = 3) + list_reagents = list(/datum/reagent/consumable/nutriment = 3, /datum/reagent/consumable/sugar = 3) filling_color = "#CD853F" tastes = list("sweetness" = 1) foodtype = GRAIN | JUNKFOOD | SUGAR @@ -545,8 +548,8 @@ name = "chocolate cornet" desc = "Which side's the head, the fat end or the thin end?" icon_state = "chococornet" - bonus_reagents = list("nutriment" = 1, "vitamin" = 1) - list_reagents = list("nutriment" = 5, "vitamin" = 1) + bonus_reagents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/consumable/nutriment/vitamin = 1) + list_reagents = list(/datum/reagent/consumable/nutriment = 5, /datum/reagent/consumable/nutriment/vitamin = 1) filling_color = "#FFE4C4" tastes = list("biscuit" = 3, "chocolate" = 1) foodtype = GRAIN | JUNKFOOD @@ -555,8 +558,8 @@ name = "oatmeal cookie" desc = "The best of both cookie and oat." icon_state = "oatmealcookie" - bonus_reagents = list("nutriment" = 1, "vitamin" = 1) - list_reagents = list("nutriment" = 5, "vitamin" = 1) + bonus_reagents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/consumable/nutriment/vitamin = 1) + list_reagents = list(/datum/reagent/consumable/nutriment = 5, /datum/reagent/consumable/nutriment/vitamin = 1) filling_color = "#D2691E" tastes = list("cookie" = 2, "oat" = 1) foodtype = GRAIN @@ -566,8 +569,8 @@ name = "raisin cookie" desc = "Why would you put raisins on a cookie?" icon_state = "raisincookie" - bonus_reagents = list("nutriment" = 1, "vitamin" = 1) - list_reagents = list("nutriment" = 5, "vitamin" = 1) + bonus_reagents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/consumable/nutriment/vitamin = 1) + list_reagents = list(/datum/reagent/consumable/nutriment = 5, /datum/reagent/consumable/nutriment/vitamin = 1) filling_color = "#F0E68C" tastes = list("cookie" = 1, "raisins" = 1) foodtype = GRAIN | FRUIT @@ -577,8 +580,8 @@ name = "cherry cupcake" desc = "A sweet cupcake with cherry bits." icon_state = "cherrycupcake" - bonus_reagents = list("nutriment" = 1, "vitamin" = 1) - list_reagents = list("nutriment" = 5, "vitamin" = 1) + bonus_reagents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/consumable/nutriment/vitamin = 1) + list_reagents = list(/datum/reagent/consumable/nutriment = 5, /datum/reagent/consumable/nutriment/vitamin = 1) filling_color = "#F0E68C" tastes = list("cake" = 3, "cherry" = 1) foodtype = GRAIN | FRUIT | SUGAR @@ -587,8 +590,8 @@ name = "blue cherry cupcake" desc = "Blue cherries inside a delicious cupcake." icon_state = "bluecherrycupcake" - bonus_reagents = list("nutriment" = 1, "vitamin" = 3) - list_reagents = list("nutriment" = 5, "vitamin" = 1) + bonus_reagents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/consumable/nutriment/vitamin = 3) + list_reagents = list(/datum/reagent/consumable/nutriment = 5, /datum/reagent/consumable/nutriment/vitamin = 1) filling_color = "#F0E68C" tastes = list("cake" = 3, "blue cherry" = 1) foodtype = GRAIN | FRUIT | SUGAR @@ -597,8 +600,8 @@ name = "strawberry cupcake" desc = "Strawberry inside a delicious cupcake." icon_state = "strawberrycupcake" - bonus_reagents = list("nutriment" = 1, "vitamin" = 3) - list_reagents = list("nutriment" = 5, "vitamin" = 1) + bonus_reagents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/consumable/nutriment/vitamin = 3) + list_reagents = list(/datum/reagent/consumable/nutriment = 5, /datum/reagent/consumable/nutriment/vitamin = 1) filling_color = "#F0E68C" tastes = list("cake" = 2, "strawberry" = 1) foodtype = GRAIN | FRUIT | SUGAR @@ -607,8 +610,8 @@ name = "honey bun" desc = "A sticky pastry bun glazed with honey." icon_state = "honeybun" - bonus_reagents = list("nutriment" = 1, "honey" = 1) - list_reagents = list("nutriment" = 5, "honey" = 5) + bonus_reagents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/consumable/honey = 1) + list_reagents = list(/datum/reagent/consumable/nutriment = 5, /datum/reagent/consumable/honey = 5) filling_color = "#F2CE91" tastes = list("pastry" = 1, "sweetness" = 1) foodtype = GRAIN | SUGAR @@ -620,8 +623,8 @@ desc = "A fluffy pancake. The softer, superior relative of the waffle." icon_state = "pancakes_1" item_state = "pancakes" - bonus_reagents = list("vitamin" = 1) - list_reagents = list("nutriment" = 4, "vitamin" = 1) + bonus_reagents = list(/datum/reagent/consumable/nutriment/vitamin = 1) + list_reagents = list(/datum/reagent/consumable/nutriment = 4, /datum/reagent/consumable/nutriment/vitamin = 1) filling_color = "#D2691E" tastes = list("pancakes" = 1) foodtype = GRAIN | SUGAR | BREAKFAST @@ -631,8 +634,8 @@ desc = "A fluffy and delicious blueberry pancake." icon_state = "bbpancakes_1" item_state = "bbpancakes" - bonus_reagents = list("vitamin" = 2) - list_reagents = list("nutriment" = 6, "vitamin" = 3) + bonus_reagents = list(/datum/reagent/consumable/nutriment/vitamin = 2) + list_reagents = list(/datum/reagent/consumable/nutriment = 6, /datum/reagent/consumable/nutriment/vitamin = 3) tastes = list("pancakes" = 1, "blueberries" = 1) /obj/item/reagent_containers/food/snacks/pancakes/chocolatechip @@ -640,8 +643,8 @@ desc = "A fluffy and delicious chocolate chip pancake." icon_state = "ccpancakes_1" item_state = "ccpancakes" - bonus_reagents = list("vitamin" = 2) - list_reagents = list("nutriment" = 6, "vitamin" = 3) + bonus_reagents = list(/datum/reagent/consumable/nutriment/vitamin = 2) + list_reagents = list(/datum/reagent/consumable/nutriment = 6, /datum/reagent/consumable/nutriment/vitamin = 3) tastes = list("pancakes" = 1, "chocolate" = 1) /obj/item/reagent_containers/food/snacks/pancakes/Initialize() diff --git a/code/modules/food_and_drinks/food/snacks_pie.dm b/code/modules/food_and_drinks/food/snacks_pie.dm index bc66d353e1..357a921c66 100644 --- a/code/modules/food_and_drinks/food/snacks_pie.dm +++ b/code/modules/food_and_drinks/food/snacks_pie.dm @@ -5,7 +5,7 @@ bitesize = 3 w_class = WEIGHT_CLASS_NORMAL volume = 80 - list_reagents = list("nutriment" = 10, "vitamin" = 2) + list_reagents = list(/datum/reagent/consumable/nutriment = 10, /datum/reagent/consumable/nutriment/vitamin = 2) tastes = list("pie" = 1) foodtype = GRAIN @@ -14,7 +14,7 @@ desc = "A simple pie, still delicious." icon_state = "pie" custom_food_type = /obj/item/reagent_containers/food/snacks/customizable/pie - bonus_reagents = list("nutriment" = 8, "vitamin" = 1) + bonus_reagents = list(/datum/reagent/consumable/nutriment = 8, /datum/reagent/consumable/nutriment/vitamin = 1) tastes = list("pie" = 1) foodtype = GRAIN @@ -23,8 +23,8 @@ desc = "Just like back home, on clown planet! HONK!" icon_state = "pie" trash = /obj/item/trash/plate - bonus_reagents = list("nutriment" = 2, "vitamin" = 2) - list_reagents = list("nutriment" = 6, "banana" = 5, "vitamin" = 2) + bonus_reagents = list(/datum/reagent/consumable/nutriment = 2, /datum/reagent/consumable/nutriment/vitamin = 2) + list_reagents = list(/datum/reagent/consumable/nutriment = 6, /datum/reagent/consumable/banana = 5, /datum/reagent/consumable/nutriment/vitamin = 2) tastes = list("pie" = 1) foodtype = GRAIN | DAIRY | SUGAR var/stunning = TRUE @@ -61,7 +61,7 @@ qdel(src) /obj/item/reagent_containers/food/snacks/pie/cream/nostun - list_reagents = list("laughter" = 15) + list_reagents = list(/datum/reagent/consumable/laughter = 15) stunning = FALSE /obj/item/reagent_containers/food/snacks/pie/cream/body @@ -90,8 +90,8 @@ name = "berry clafoutis" desc = "No black birds, this is a good sign." icon_state = "berryclafoutis" - bonus_reagents = list("nutriment" = 1, "vitamin" = 2) - list_reagents = list("nutriment" = 10, "berryjuice" = 5, "vitamin" = 2) + bonus_reagents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/consumable/nutriment/vitamin = 2) + list_reagents = list(/datum/reagent/consumable/nutriment = 10, /datum/reagent/consumable/berryjuice = 5, /datum/reagent/consumable/nutriment/vitamin = 2) tastes = list("pie" = 1, "blackberries" = 1) foodtype = GRAIN | FRUIT | SUGAR @@ -99,8 +99,8 @@ name = "beary pie" desc = "No brown bears, this is a good sign." icon_state = "bearypie" - bonus_reagents = list("nutriment" = 2, "vitamin" = 3) - list_reagents = list("nutriment" = 2, "vitamin" = 3) + bonus_reagents = list(/datum/reagent/consumable/nutriment = 2, /datum/reagent/consumable/nutriment/vitamin = 3) + list_reagents = list(/datum/reagent/consumable/nutriment = 2, /datum/reagent/consumable/nutriment/vitamin = 3) tastes = list("pie" = 1, "meat" = 1, "salmon" = 1) foodtype = GRAIN | SUGAR @@ -108,7 +108,7 @@ name = "meat-pie" icon_state = "meatpie" desc = "An old barber recipe, very delicious!" - bonus_reagents = list("nutriment" = 1, "vitamin" = 5) + bonus_reagents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/consumable/nutriment/vitamin = 5) tastes = list("pie" = 1, "meat" = 1) foodtype = GRAIN | MEAT @@ -117,7 +117,7 @@ name = "tofu-pie" icon_state = "meatpie" desc = "A delicious tofu pie." - bonus_reagents = list("nutriment" = 1, "vitamin" = 2) + bonus_reagents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/consumable/nutriment/vitamin = 2) tastes = list("pie" = 1, "tofu" = 1) foodtype = GRAIN @@ -127,8 +127,8 @@ desc = "Sweet and tasty poison pie." icon_state = "amanita_pie" bitesize = 4 - bonus_reagents = list("nutriment" = 1, "vitamin" = 4) - list_reagents = list("nutriment" = 6, "amatoxin" = 3, "mushroomhallucinogen" = 1, "vitamin" = 4) + bonus_reagents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/consumable/nutriment/vitamin = 4) + list_reagents = list(/datum/reagent/consumable/nutriment = 6, /datum/reagent/toxin/amatoxin = 3, /datum/reagent/drug/mushroomhallucinogen = 1, /datum/reagent/consumable/nutriment/vitamin = 4) tastes = list("pie" = 1, "mushroom" = 1) foodtype = GRAIN | VEGETABLES | TOXIC | GROSS @@ -137,7 +137,7 @@ name = "plump pie" desc = "I bet you love stuff made out of plump helmets!" icon_state = "plump_pie" - bonus_reagents = list("nutriment" = 1, "vitamin" = 4) + bonus_reagents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/consumable/nutriment/vitamin = 4) tastes = list("pie" = 1, "mushroom" = 1) foodtype = GRAIN | VEGETABLES @@ -148,9 +148,9 @@ if(fey) name = "exceptional plump pie" desc = "Microwave is taken by a fey mood! It has cooked an exceptional plump pie!" - bonus_reagents = list("nutriment" = 1, "omnizine" = 5, "vitamin" = 4) + bonus_reagents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/medicine/omnizine = 5, /datum/reagent/consumable/nutriment/vitamin = 4) if(fey) - reagents.add_reagent("omnizine", 5) + reagents.add_reagent(/datum/reagent/medicine/omnizine, 5) /obj/item/reagent_containers/food/snacks/pie/xemeatpie @@ -158,7 +158,7 @@ icon_state = "xenomeatpie" desc = "A delicious meatpie. Probably heretical." trash = /obj/item/trash/plate - bonus_reagents = list("nutriment" = 1, "vitamin" = 5) + bonus_reagents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/consumable/nutriment/vitamin = 5) tastes = list("pie" = 1, "meat" = 1, "acid" = 1) foodtype = GRAIN | MEAT @@ -167,7 +167,7 @@ name = "apple pie" desc = "A pie containing sweet sweet love...or apple." icon_state = "applepie" - bonus_reagents = list("nutriment" = 1, "vitamin" = 3) + bonus_reagents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/consumable/nutriment/vitamin = 3) tastes = list("pie" = 1, "apple" = 1) foodtype = GRAIN | FRUIT | SUGAR @@ -175,7 +175,7 @@ name = "cherry pie" desc = "Taste so good, make a grown man cry." icon_state = "cherrypie" - bonus_reagents = list("nutriment" = 1, "vitamin" = 2) + bonus_reagents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/consumable/nutriment/vitamin = 2) tastes = list("pie" = 7, "Nicole Paige Brooks" = 2) foodtype = GRAIN | FRUIT | SUGAR @@ -186,7 +186,7 @@ icon_state = "pumpkinpie" slice_path = /obj/item/reagent_containers/food/snacks/pumpkinpieslice slices_num = 5 - bonus_reagents = list("nutriment" = 1, "vitamin" = 5) + bonus_reagents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/consumable/nutriment/vitamin = 5) tastes = list("pie" = 1, "pumpkin" = 1) foodtype = GRAIN | VEGETABLES @@ -197,7 +197,7 @@ icon_state = "pumpkinpieslice" trash = /obj/item/trash/plate filling_color = "#FFA500" - list_reagents = list("nutriment" = 2) + list_reagents = list(/datum/reagent/consumable/nutriment = 2) tastes = list("pie" = 1, "pumpkin" = 1) foodtype = GRAIN | VEGETABLES @@ -205,8 +205,8 @@ name = "golden apple streusel tart" desc = "A tasty dessert that won't make it through a metal detector." icon_state = "gappletart" - bonus_reagents = list("nutriment" = 1, "vitamin" = 4) - list_reagents = list("nutriment" = 8, "gold" = 5, "vitamin" = 4) + bonus_reagents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/consumable/nutriment/vitamin = 4) + list_reagents = list(/datum/reagent/consumable/nutriment = 8, /datum/reagent/gold = 5, /datum/reagent/consumable/nutriment/vitamin = 4) tastes = list("pie" = 1, "apple" = 1, "expensive metal" = 1) foodtype = GRAIN | FRUIT | SUGAR @@ -214,8 +214,8 @@ name = "grape tart" desc = "A tasty dessert that reminds you of the wine you didn't make." icon_state = "grapetart" - bonus_reagents = list("nutriment" = 1, "vitamin" = 4) - list_reagents = list("nutriment" = 4, "vitamin" = 4) + bonus_reagents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/consumable/nutriment/vitamin = 4) + list_reagents = list(/datum/reagent/consumable/nutriment = 4, /datum/reagent/consumable/nutriment/vitamin = 4) tastes = list("pie" = 1, "grape" = 1) foodtype = GRAIN | FRUIT | SUGAR @@ -223,8 +223,8 @@ name = "mime tart" desc = "..." icon_state = "mimetart" - bonus_reagents = list("nutriment" = 1, "vitamin" = 4, "nothing" = 10) - list_reagents = list("nutriment" = 5, "vitamin" = 5) + bonus_reagents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/consumable/nutriment/vitamin = 4, /datum/reagent/consumable/nothing = 10) + list_reagents = list(/datum/reagent/consumable/nutriment = 5, /datum/reagent/consumable/nutriment/vitamin = 5) tastes = list("pie" = 1, "nothing" = 1) foodtype = GRAIN @@ -232,8 +232,8 @@ name = "berry tart" desc = "A tasty dessert of many different small barries on a thin pie crust." icon_state = "berrytart" - bonus_reagents = list("nutriment" = 1, "vitamin" = 4) - list_reagents = list("nutriment" = 3, "vitamin" = 5) + bonus_reagents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/consumable/nutriment/vitamin = 4) + list_reagents = list(/datum/reagent/consumable/nutriment = 3, /datum/reagent/consumable/nutriment/vitamin = 5) tastes = list("pie" = 1, "berries" = 2) foodtype = GRAIN | FRUIT @@ -241,8 +241,8 @@ name = "chocolate lava tart" desc = "A tasty dessert made of chocaloate, with a liquid core." icon_state = "cocolavatart" - bonus_reagents = list("nutriment" = 1, "vitamin" = 4) - list_reagents = list("nutriment" = 4, "vitamin" = 4) + bonus_reagents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/consumable/nutriment/vitamin = 4) + list_reagents = list(/datum/reagent/consumable/nutriment = 4, /datum/reagent/consumable/nutriment/vitamin = 4) tastes = list("pie" = 1, "grape" = 1) foodtype = GRAIN | SUGAR @@ -252,7 +252,7 @@ icon_state = "blumpkinpie" slice_path = /obj/item/reagent_containers/food/snacks/blumpkinpieslice slices_num = 5 - bonus_reagents = list("nutriment" = 3, "vitamin" = 6) + bonus_reagents = list(/datum/reagent/consumable/nutriment = 3, /datum/reagent/consumable/nutriment/vitamin = 6) tastes = list("pie" = 1, "a mouthful of pool water" = 1) foodtype = GRAIN | VEGETABLES @@ -263,7 +263,7 @@ icon_state = "blumpkinpieslice" trash = /obj/item/trash/plate filling_color = "#1E90FF" - list_reagents = list("nutriment" = 2) + list_reagents = list(/datum/reagent/consumable/nutriment = 2) tastes = list("pie" = 1, "a mouthful of pool water" = 1) foodtype = GRAIN | VEGETABLES @@ -273,7 +273,7 @@ icon_state = "dulcedebatata" slice_path = /obj/item/reagent_containers/food/snacks/dulcedebatataslice slices_num = 5 - bonus_reagents = list("nutriment" = 4, "vitamin" = 8) + bonus_reagents = list(/datum/reagent/consumable/nutriment = 4, /datum/reagent/consumable/nutriment/vitamin = 8) tastes = list("jelly" = 1, "sweet potato" = 1) foodtype = GRAIN | VEGETABLES | SUGAR @@ -284,7 +284,7 @@ icon_state = "dulcedebatataslice" trash = /obj/item/trash/plate filling_color = "#8B4513" - list_reagents = list("nutriment" = 2) + list_reagents = list(/datum/reagent/consumable/nutriment = 2) tastes = list("jelly" = 1, "sweet potato" = 1) foodtype = GRAIN | VEGETABLES | SUGAR @@ -292,7 +292,7 @@ name = "frosty pie" desc = "Tastes like blue and cold." icon_state = "frostypie" - bonus_reagents = list("nutriment" = 4, "vitamin" = 6) + bonus_reagents = list(/datum/reagent/consumable/nutriment = 4, /datum/reagent/consumable/nutriment/vitamin = 6) tastes = list("mint" = 1, "pie" = 1) foodtype = GRAIN | FRUIT | SUGAR @@ -302,7 +302,7 @@ icon_state = "baklava" slice_path = /obj/item/reagent_containers/food/snacks/baklavaslice slices_num = 6 - bonus_reagents = list("nutriment" = 2, "vitamin" = 6) + bonus_reagents = list(/datum/reagent/consumable/nutriment = 2, /datum/reagent/consumable/nutriment/vitamin = 6) tastes = list("nuts" = 1, "pie" = 1) foodtype = GRAIN @@ -313,7 +313,7 @@ icon_state = "baklavaslice" trash = /obj/item/trash/plate filling_color = "#1E90FF" - list_reagents = list("nutriment" = 2, "vitamin" = 4) + list_reagents = list(/datum/reagent/consumable/nutriment = 2, /datum/reagent/consumable/nutriment/vitamin = 4) tastes = list("nuts" = 1, "pie" = 1) foodtype = GRAIN @@ -321,7 +321,7 @@ name = "strawberry pie" desc = "A strawberry pie." icon_state = "strawberrypie" - bonus_reagents = list("nutriment" = 6, "vitamin" = 6) + bonus_reagents = list(/datum/reagent/consumable/nutriment = 6, /datum/reagent/consumable/nutriment/vitamin = 6) tastes = list("strawberry" = 1, "pie" = 1) foodtype = GRAIN | FRUIT | SUGAR @@ -329,6 +329,6 @@ name = "peach pie" desc = "A pie with peach filling." icon_state = "strawberrypie" - bonus_reagents = list("nutriment" = 5, "vitamin" = 6, "peachjuice" = 15) + bonus_reagents = list(/datum/reagent/consumable/nutriment = 5, /datum/reagent/consumable/nutriment/vitamin = 6, /datum/reagent/consumable/peachjuice = 15) tastes = list("peach" = 1, "pie" = 1) foodtype = GRAIN | FRUIT diff --git a/code/modules/food_and_drinks/food/snacks_pizza.dm b/code/modules/food_and_drinks/food/snacks_pizza.dm index 74fd7dda65..ebc67a28c1 100644 --- a/code/modules/food_and_drinks/food/snacks_pizza.dm +++ b/code/modules/food_and_drinks/food/snacks_pizza.dm @@ -6,13 +6,13 @@ w_class = WEIGHT_CLASS_NORMAL slices_num = 6 volume = 80 - list_reagents = list("nutriment" = 30, "tomatojuice" = 6, "vitamin" = 5) + list_reagents = list(/datum/reagent/consumable/nutriment = 30, /datum/reagent/consumable/tomatojuice = 6, /datum/reagent/consumable/nutriment/vitamin = 5) tastes = list("crust" = 1, "tomato" = 1, "cheese" = 1) foodtype = GRAIN | DAIRY | VEGETABLES /obj/item/reagent_containers/food/snacks/pizzaslice icon = 'icons/obj/food/pizzaspaghetti.dmi' - list_reagents = list("nutriment" = 5) + list_reagents = list(/datum/reagent/consumable/nutriment = 5) foodtype = GRAIN | DAIRY | VEGETABLES /obj/item/reagent_containers/food/snacks/pizza/margherita @@ -20,7 +20,7 @@ desc = "The most cheezy pizza in galaxy." icon_state = "pizzamargherita" slice_path = /obj/item/reagent_containers/food/snacks/pizzaslice/margherita - bonus_reagents = list("nutriment" = 5, "vitamin" = 5) + bonus_reagents = list(/datum/reagent/consumable/nutriment = 5, /datum/reagent/consumable/nutriment/vitamin = 5) tastes = list("crust" = 1, "tomato" = 1, "cheese" = 1) foodtype = GRAIN | VEGETABLES @@ -41,8 +41,8 @@ desc = "Greasy pizza with delicious meat." icon_state = "meatpizza" slice_path = /obj/item/reagent_containers/food/snacks/pizzaslice/meat - bonus_reagents = list("nutriment" = 5, "vitamin" = 8) - list_reagents = list("nutriment" = 30, "tomatojuice" = 6, "vitamin" = 8) + bonus_reagents = list(/datum/reagent/consumable/nutriment = 5, /datum/reagent/consumable/nutriment/vitamin = 8) + list_reagents = list(/datum/reagent/consumable/nutriment = 30, /datum/reagent/consumable/tomatojuice = 6, /datum/reagent/consumable/nutriment/vitamin = 8) tastes = list("crust" = 1, "tomato" = 1, "cheese" = 1, "meat" = 1) foodtype = GRAIN | VEGETABLES| DAIRY | MEAT @@ -59,8 +59,8 @@ desc = "Very special pizza." icon_state = "mushroompizza" slice_path = /obj/item/reagent_containers/food/snacks/pizzaslice/mushroom - bonus_reagents = list("nutriment" = 5, "vitamin" = 5) - list_reagents = list("nutriment" = 30, "vitamin" = 5) + bonus_reagents = list(/datum/reagent/consumable/nutriment = 5, /datum/reagent/consumable/nutriment/vitamin = 5) + list_reagents = list(/datum/reagent/consumable/nutriment = 30, /datum/reagent/consumable/nutriment/vitamin = 5) tastes = list("crust" = 1, "tomato" = 1, "cheese" = 1, "mushroom" = 1) foodtype = GRAIN | VEGETABLES | DAIRY @@ -77,8 +77,8 @@ desc = "No one of Tomatos Sapiens were harmed during making this pizza." icon_state = "vegetablepizza" slice_path = /obj/item/reagent_containers/food/snacks/pizzaslice/vegetable - bonus_reagents = list("nutriment" = 5, "vitamin" = 5) - list_reagents = list("nutriment" = 25, "tomatojuice" = 6, "oculine" = 12, "vitamin" = 5) + bonus_reagents = list(/datum/reagent/consumable/nutriment = 5, /datum/reagent/consumable/nutriment/vitamin = 5) + list_reagents = list(/datum/reagent/consumable/nutriment = 25, /datum/reagent/consumable/tomatojuice = 6, /datum/reagent/medicine/oculine = 12, /datum/reagent/consumable/nutriment/vitamin = 5) tastes = list("crust" = 1, "tomato" = 2, "cheese" = 1, "carrot" = 1) foodtype = GRAIN | VEGETABLES | DAIRY @@ -95,8 +95,8 @@ desc = "Who thought this would be a good idea?" icon_state = "donkpocketpizza" slice_path = /obj/item/reagent_containers/food/snacks/pizzaslice/donkpocket - bonus_reagents = list("nutriment" = 5, "vitamin" = 5) - list_reagents = list("nutriment" = 25, "tomatojuice" = 6, "omnizine" = 10, "vitamin" = 5) + bonus_reagents = list(/datum/reagent/consumable/nutriment = 5, /datum/reagent/consumable/nutriment/vitamin = 5) + list_reagents = list(/datum/reagent/consumable/nutriment = 25, /datum/reagent/consumable/tomatojuice = 6, /datum/reagent/medicine/omnizine = 10, /datum/reagent/consumable/nutriment/vitamin = 5) tastes = list("crust" = 1, "tomato" = 1, "cheese" = 1, "meat" = 1, "laziness" = 1) foodtype = GRAIN | VEGETABLES | DAIRY | MEAT | JUNKFOOD @@ -113,8 +113,8 @@ desc = "The hippie's pizza of choice." icon_state = "dankpizza" slice_path = /obj/item/reagent_containers/food/snacks/pizzaslice/dank - bonus_reagents = list("nutriment" = 2, "vitamin" = 6) - list_reagents = list("nutriment" = 25, "doctorsdelight" = 5, "tomatojuice" = 6, "vitamin" = 5) + bonus_reagents = list(/datum/reagent/consumable/nutriment = 2, /datum/reagent/consumable/nutriment/vitamin = 6) + list_reagents = list(/datum/reagent/consumable/nutriment = 25, /datum/reagent/consumable/doctor_delight = 5, /datum/reagent/consumable/tomatojuice = 6, /datum/reagent/consumable/nutriment/vitamin = 5) tastes = list("crust" = 1, "tomato" = 1, "cheese" = 1, "meat" = 1) foodtype = GRAIN | VEGETABLES | FRUIT | DAIRY @@ -131,7 +131,7 @@ desc = "You can really smell the sassiness." icon_state = "sassysagepizza" slice_path = /obj/item/reagent_containers/food/snacks/pizzaslice/sassysage - bonus_reagents = list("nutriment" = 6, "vitamin" = 6) + bonus_reagents = list(/datum/reagent/consumable/nutriment = 6, /datum/reagent/consumable/nutriment/vitamin = 6) tastes = list("crust" = 1, "tomato" = 1, "cheese" = 1, "meat" = 1) foodtype = GRAIN | VEGETABLES | DAIRY @@ -148,7 +148,7 @@ desc = "The pizza equivalent of Einstein's riddle." icon_state = "pineapplepizza" slice_path = /obj/item/reagent_containers/food/snacks/pizzaslice/pineapple - bonus_reagents = list("nutriment" = 6, "vitamin" = 6) + bonus_reagents = list(/datum/reagent/consumable/nutriment = 6, /datum/reagent/consumable/nutriment/vitamin = 6) tastes = list("crust" = 1, "tomato" = 1, "cheese" = 1, "pineapple" = 6, "ham" = 2) foodtype = PINEAPPLE //Over powering tast of gods fruit @@ -162,7 +162,7 @@ /obj/item/reagent_containers/food/snacks/pizza/pineapple/anomaly desc = "A anomaly made pizza with pineapple..." - bonus_reagents = list("nutriment" = 16, "vitamin" = 16) + bonus_reagents = list(/datum/reagent/consumable/nutriment = 16, /datum/reagent/consumable/nutriment/vitamin = 16) tastes = list("crust" = 1, "tomato" = 1, "cheese" = 1, "pineapple" = 6, "ham" = 2, "good" = 10) /obj/item/reagent_containers/food/snacks/pizzaslice/pineapple/anomaly @@ -174,7 +174,7 @@ desc = "Hello, you've reached Arnold's pizza shop. I'm not here now, I'm out killing pepperoni." icon_state = "arnoldpizza" slice_path = /obj/item/reagent_containers/food/snacks/pizzaslice/arnold - bonus_reagents = list("nutriment" = 30, "vitamin" = 6, "iron" = 10, "omnizine" = 30) + bonus_reagents = list(/datum/reagent/consumable/nutriment = 30, /datum/reagent/consumable/nutriment/vitamin = 6, /datum/reagent/iron = 10, /datum/reagent/medicine/omnizine = 30) tastes = list("crust" = 1, "tomato" = 1, "cheese" = 1, "pepperoni" = 2, "9 millimeter bullets" = 2) /obj/item/reagent_containers/food/snacks/proc/try_break_off(mob/living/M, mob/living/user) //maybe i give you a pizza maybe i break off your arm diff --git a/code/modules/food_and_drinks/food/snacks_salad.dm b/code/modules/food_and_drinks/food/snacks_salad.dm index f5fcec0ac5..e272733235 100644 --- a/code/modules/food_and_drinks/food/snacks_salad.dm +++ b/code/modules/food_and_drinks/food/snacks_salad.dm @@ -5,7 +5,7 @@ trash = /obj/item/reagent_containers/glass/bowl bitesize = 3 w_class = WEIGHT_CLASS_NORMAL - list_reagents = list("nutriment" = 7, "vitamin" = 2) + list_reagents = list(/datum/reagent/consumable/nutriment = 7, /datum/reagent/consumable/nutriment/vitamin = 2) tastes = list("leaves" = 1) foodtype = VEGETABLES @@ -17,8 +17,8 @@ name = "\improper Aesir salad" desc = "Probably too incredible for mortal men to fully enjoy." icon_state = "aesirsalad" - bonus_reagents = list("omnizine" = 2, "vitamin" = 6) - list_reagents = list("nutriment" = 8, "omnizine" = 8, "vitamin" = 6) + bonus_reagents = list(/datum/reagent/medicine/omnizine = 2, /datum/reagent/consumable/nutriment/vitamin = 6) + list_reagents = list(/datum/reagent/consumable/nutriment = 8, /datum/reagent/medicine/omnizine = 8, /datum/reagent/consumable/nutriment/vitamin = 6) tastes = list("leaves" = 1) foodtype = VEGETABLES @@ -26,8 +26,8 @@ name = "herb salad" desc = "A tasty salad with apples on top." icon_state = "herbsalad" - bonus_reagents = list("vitamin" = 4) - list_reagents = list("nutriment" = 8, "vitamin" = 2) + bonus_reagents = list(/datum/reagent/consumable/nutriment/vitamin = 4) + list_reagents = list(/datum/reagent/consumable/nutriment = 8, /datum/reagent/consumable/nutriment/vitamin = 2) tastes = list("leaves" = 1, "apple" = 1) foodtype = VEGETABLES | FRUIT @@ -35,8 +35,8 @@ name = "valid salad" desc = "It's just an herb salad with meatballs and fried potato slices. Nothing suspicious about it." icon_state = "validsalad" - bonus_reagents = list("doctorsdelight" = 5, "vitamin" = 4) - list_reagents = list("nutriment" = 8, "doctorsdelight" = 5, "vitamin" = 2) + bonus_reagents = list(/datum/reagent/consumable/doctor_delight = 5, /datum/reagent/consumable/nutriment/vitamin = 4) + list_reagents = list(/datum/reagent/consumable/nutriment = 8, /datum/reagent/consumable/doctor_delight = 5, /datum/reagent/consumable/nutriment/vitamin = 2) tastes = list("leaves" = 1, "potato" = 1, "meat" = 1, "valids" = 1) foodtype = VEGETABLES | MEAT | FRIED | JUNKFOOD | FRUIT @@ -44,8 +44,8 @@ name = "oatmeal" desc = "A nice bowl of oatmeal." icon_state = "oatmeal" - bonus_reagents = list("nutriment" = 4, "vitamin" = 4) - list_reagents = list("nutriment" = 7, "milk" = 10, "vitamin" = 2) + bonus_reagents = list(/datum/reagent/consumable/nutriment = 4, /datum/reagent/consumable/nutriment/vitamin = 4) + list_reagents = list(/datum/reagent/consumable/nutriment = 7, /datum/reagent/consumable/milk = 10, /datum/reagent/consumable/nutriment/vitamin = 2) tastes = list("oats" = 1, "milk" = 1) foodtype = DAIRY | GRAIN | BREAKFAST @@ -53,7 +53,7 @@ name = "fruit salad" desc = "Your standard fruit salad." icon_state = "fruitsalad" - bonus_reagents = list("nutriment" = 2, "vitamin" = 4) + bonus_reagents = list(/datum/reagent/consumable/nutriment = 2, /datum/reagent/consumable/nutriment/vitamin = 4) tastes = list("fruit" = 1) foodtype = FRUIT | BREAKFAST @@ -61,8 +61,8 @@ name = "jungle salad" desc = "Exotic fruits in a bowl." icon_state = "junglesalad" - bonus_reagents = list("nutriment" = 4, "vitamin" = 4) - list_reagents = list("nutriment" = 7, "banana" = 5, "vitamin" = 4) + bonus_reagents = list(/datum/reagent/consumable/nutriment = 4, /datum/reagent/consumable/nutriment/vitamin = 4) + list_reagents = list(/datum/reagent/consumable/nutriment = 7, /datum/reagent/consumable/banana = 5, /datum/reagent/consumable/nutriment/vitamin = 4) tastes = list("fruit" = 1, "the jungle" = 1) foodtype = FRUIT | BREAKFAST @@ -70,8 +70,8 @@ name = "citrus delight" desc = "Citrus overload!" icon_state = "citrusdelight" - bonus_reagents = list("nutriment" = 4, "vitamin" = 4) - list_reagents = list("nutriment" = 7, "vitamin" = 5) + bonus_reagents = list(/datum/reagent/consumable/nutriment = 4, /datum/reagent/consumable/nutriment/vitamin = 4) + list_reagents = list(/datum/reagent/consumable/nutriment = 7, /datum/reagent/consumable/nutriment/vitamin = 5) tastes = list("sourness" = 1, "leaves" = 1) foodtype = FRUIT | BREAKFAST @@ -80,7 +80,7 @@ desc = "A bowl of raw rice." icon_state = "ricebowl" cooked_type = /obj/item/reagent_containers/food/snacks/salad/boiledrice - list_reagents = list("nutriment" = 4) + list_reagents = list(/datum/reagent/consumable/nutriment = 4) tastes = list("rice" = 1) foodtype = GRAIN | RAW @@ -88,8 +88,8 @@ name = "boiled rice" desc = "A warm bowl of rice." icon_state = "boiledrice" - bonus_reagents = list("nutriment" = 1, "vitamin" = 1) - list_reagents = list("nutriment" = 5, "vitamin" = 1) + bonus_reagents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/consumable/nutriment/vitamin = 1) + list_reagents = list(/datum/reagent/consumable/nutriment = 5, /datum/reagent/consumable/nutriment/vitamin = 1) tastes = list("rice" = 1) foodtype = GRAIN | BREAKFAST @@ -97,7 +97,7 @@ name = "rice pudding" desc = "Everybody loves rice pudding!" icon_state = "ricepudding" - bonus_reagents = list("nutriment" = 4, "vitamin" = 2) + bonus_reagents = list(/datum/reagent/consumable/nutriment = 4, /datum/reagent/consumable/nutriment/vitamin = 2) tastes = list("rice" = 1, "sweetness" = 1) foodtype = GRAIN | DAIRY @@ -105,7 +105,7 @@ name = "rice and pork" desc = "Well, it looks like pork..." icon_state = "riceporkbowl" - bonus_reagents = list("nutriment" = 4, "vitamin" = 4) + bonus_reagents = list(/datum/reagent/consumable/nutriment = 4, /datum/reagent/consumable/nutriment/vitamin = 4) tastes = list("rice" = 1, "meat" = 1) foodtype = GRAIN | MEAT @@ -113,6 +113,6 @@ name = "egg bowl" desc = "A bowl of rice with a fried egg." icon_state = "eggbowl" - bonus_reagents = list("nutriment" = 4, "vitamin" = 4) + bonus_reagents = list(/datum/reagent/consumable/nutriment = 4, /datum/reagent/consumable/nutriment/vitamin = 4) tastes = list("rice" = 1, "egg" = 1) foodtype = GRAIN | MEAT //EGG = MEAT -NinjaNomNom 2017 diff --git a/code/modules/food_and_drinks/food/snacks_sandwichtoast.dm b/code/modules/food_and_drinks/food/snacks_sandwichtoast.dm index 17a710ada2..3cc4cfe63f 100644 --- a/code/modules/food_and_drinks/food/snacks_sandwichtoast.dm +++ b/code/modules/food_and_drinks/food/snacks_sandwichtoast.dm @@ -4,8 +4,8 @@ icon = 'icons/obj/food/burgerbread.dmi' icon_state = "sandwich" trash = /obj/item/trash/plate - bonus_reagents = list("nutriment" = 1, "vitamin" = 1) - list_reagents = list("nutriment" = 6, "vitamin" = 1) + bonus_reagents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/consumable/nutriment/vitamin = 1) + list_reagents = list(/datum/reagent/consumable/nutriment = 6, /datum/reagent/consumable/nutriment/vitamin = 1) cooked_type = /obj/item/reagent_containers/food/snacks/toastedsandwich tastes = list("meat" = 2, "cheese" = 1, "bread" = 2, "lettuce" = 1) foodtype = GRAIN | VEGETABLES @@ -16,8 +16,8 @@ icon = 'icons/obj/food/burgerbread.dmi' icon_state = "toastedsandwich" trash = /obj/item/trash/plate - bonus_reagents = list("nutriment" = 1, "carbon" = 2) - list_reagents = list("nutriment" = 6, "carbon" = 2) + bonus_reagents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/carbon = 2) + list_reagents = list(/datum/reagent/consumable/nutriment = 6, /datum/reagent/carbon = 2) tastes = list("toast" = 1) foodtype = GRAIN @@ -27,8 +27,8 @@ icon = 'icons/obj/food/burgerbread.dmi' icon_state = "toastedsandwich" trash = /obj/item/trash/plate - bonus_reagents = list("nutriment" = 1, "vitamin" = 1) - list_reagents = list("nutriment" = 7, "vitamin" = 1) + bonus_reagents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/consumable/nutriment/vitamin = 1) + list_reagents = list(/datum/reagent/consumable/nutriment = 7, /datum/reagent/consumable/nutriment/vitamin = 1) tastes = list("toast" = 1, "cheese" = 1) foodtype = GRAIN | DAIRY @@ -43,13 +43,13 @@ foodtype = GRAIN /obj/item/reagent_containers/food/snacks/jellysandwich/slime - bonus_reagents = list("slimejelly" = 5, "vitamin" = 2) - list_reagents = list("nutriment" = 2, "slimejelly" = 5, "vitamin" = 2) + bonus_reagents = list(/datum/reagent/toxin/slimejelly = 5, /datum/reagent/consumable/nutriment/vitamin = 2) + list_reagents = list(/datum/reagent/consumable/nutriment = 2, /datum/reagent/toxin/slimejelly = 5, /datum/reagent/consumable/nutriment/vitamin = 2) foodtype = GRAIN | TOXIC /obj/item/reagent_containers/food/snacks/jellysandwich/cherry - bonus_reagents = list("cherryjelly" = 5, "vitamin" = 2) - list_reagents = list("nutriment" = 2, "cherryjelly" = 5, "vitamin" = 2) + bonus_reagents = list(/datum/reagent/consumable/cherryjelly = 5, /datum/reagent/consumable/nutriment/vitamin = 2) + list_reagents = list(/datum/reagent/consumable/nutriment = 2, /datum/reagent/consumable/cherryjelly = 5, /datum/reagent/consumable/nutriment/vitamin = 2) foodtype = GRAIN | FRUIT /obj/item/reagent_containers/food/snacks/jellysandwich/pbj @@ -59,13 +59,13 @@ tastes = list("bread" = 1, "jelly" = 1, "peanuts" = 1) /obj/item/reagent_containers/food/snacks/jellysandwich/pbj/cherry - bonus_reagents = list("cherryjelly" = 5, "peanut_butter" = 5, "vitamin" = 2) - list_reagents = list("nutriment" = 2, "cherryjelly" = 5, "peanut_butter" = 5, "vitamin" = 2) + bonus_reagents = list(/datum/reagent/consumable/cherryjelly = 5, /datum/reagent/consumable/peanut_butter = 5, /datum/reagent/consumable/nutriment/vitamin = 2) + list_reagents = list(/datum/reagent/consumable/nutriment = 2, /datum/reagent/consumable/cherryjelly = 5, /datum/reagent/consumable/peanut_butter = 5, /datum/reagent/consumable/nutriment/vitamin = 2) foodtype = GRAIN | FRUIT /obj/item/reagent_containers/food/snacks/jellysandwich/pbj/slime - bonus_reagents = list("slimejelly" = 5, "peanut_butter" = 5, "vitamin" = 2) - list_reagents = list("nutriment" = 2, "slimejelly" = 5, "peanut_butter" = 5, "vitamin" = 2) + bonus_reagents = list(/datum/reagent/toxin/slimejelly = 5, /datum/reagent/consumable/peanut_butter = 5, /datum/reagent/consumable/nutriment/vitamin = 2) + list_reagents = list(/datum/reagent/consumable/nutriment = 2, /datum/reagent/toxin/slimejelly = 5, /datum/reagent/consumable/peanut_butter = 5, /datum/reagent/consumable/nutriment/vitamin = 2) foodtype = GRAIN | TOXIC /obj/item/reagent_containers/food/snacks/peanutbutter_sandwich @@ -75,8 +75,8 @@ icon_state = "peanutbuttersandwich" trash = /obj/item/trash/plate bitesize = 3 - bonus_reagents = list("peanut_butter" = 5, "vitamin" = 2) - list_reagents = list("nutriment" = 2, "peanut_butter" = 5, "vitamin" = 2) + bonus_reagents = list(/datum/reagent/consumable/peanut_butter = 5, /datum/reagent/consumable/nutriment/vitamin = 2) + list_reagents = list(/datum/reagent/consumable/nutriment = 2, /datum/reagent/consumable/peanut_butter = 5, /datum/reagent/consumable/nutriment/vitamin = 2) foodtype = GRAIN /obj/item/reagent_containers/food/snacks/notasandwich @@ -85,8 +85,8 @@ icon = 'icons/obj/food/burgerbread.dmi' icon_state = "notasandwich" trash = /obj/item/trash/plate - bonus_reagents = list("vitamin" = 6) - list_reagents = list("nutriment" = 6, "vitamin" = 6) + bonus_reagents = list(/datum/reagent/consumable/nutriment/vitamin = 6) + list_reagents = list(/datum/reagent/consumable/nutriment = 6, /datum/reagent/consumable/nutriment/vitamin = 6) tastes = list("nothing suspicious" = 1) foodtype = GRAIN | GROSS @@ -101,13 +101,13 @@ foodtype = GRAIN /obj/item/reagent_containers/food/snacks/jelliedtoast/cherry - bonus_reagents = list("cherryjelly" = 5, "vitamin" = 2) - list_reagents = list("nutriment" = 1, "cherryjelly" = 5, "vitamin" = 2) + bonus_reagents = list(/datum/reagent/consumable/cherryjelly = 5, /datum/reagent/consumable/nutriment/vitamin = 2) + list_reagents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/consumable/cherryjelly = 5, /datum/reagent/consumable/nutriment/vitamin = 2) foodtype = GRAIN | FRUIT | SUGAR /obj/item/reagent_containers/food/snacks/jelliedtoast/slime - bonus_reagents = list("slimejelly" = 5, "vitamin" = 2) - list_reagents = list("nutriment" = 1, "slimejelly" = 5, "vitamin" = 2) + bonus_reagents = list(/datum/reagent/toxin/slimejelly = 5, /datum/reagent/consumable/nutriment/vitamin = 2) + list_reagents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/toxin/slimejelly = 5, /datum/reagent/consumable/nutriment/vitamin = 2) foodtype = GRAIN | TOXIC | SUGAR /obj/item/reagent_containers/food/snacks/peanut_buttertoast @@ -117,8 +117,8 @@ icon_state = "peanutbuttertoast" trash = /obj/item/trash/plate bitesize = 3 - bonus_reagents = list("peanut_butter" = 5, "vitamin" = 2) - list_reagents = list("nutriment" = 1, "peanut_butter" = 5, "vitamin" = 2) + bonus_reagents = list(/datum/reagent/consumable/peanut_butter = 5, /datum/reagent/consumable/nutriment/vitamin = 2) + list_reagents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/consumable/peanut_butter = 5, /datum/reagent/consumable/nutriment/vitamin = 2) tastes = list("toast" = 1, "peanuts" = 1) foodtype = GRAIN @@ -128,8 +128,8 @@ desc = "This seems awfully bitter." icon = 'icons/obj/food/burgerbread.dmi' icon_state = "twobread" - bonus_reagents = list("nutriment" = 1, "vitamin" = 2) - list_reagents = list("nutriment" = 2, "vitamin" = 2) + bonus_reagents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/consumable/nutriment/vitamin = 2) + list_reagents = list(/datum/reagent/consumable/nutriment = 2, /datum/reagent/consumable/nutriment/vitamin = 2) tastes = list("bread" = 2) foodtype = GRAIN @@ -139,6 +139,6 @@ icon = 'modular_citadel/icons/obj/food/food.dmi' icon_state = "tunasandwich" trash = /obj/item/trash/plate - bonus_reagents = list("nutriment" = 1, "vitamin" = 3) + bonus_reagents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/consumable/nutriment/vitamin = 3) tastes = list("tuna" = 4, "mayonnaise" = 2, "bread" = 2) foodtype = GRAIN | MEAT diff --git a/code/modules/food_and_drinks/food/snacks_soup.dm b/code/modules/food_and_drinks/food/snacks_soup.dm index 47c9f02fb9..a0e1ebcb39 100644 --- a/code/modules/food_and_drinks/food/snacks_soup.dm +++ b/code/modules/food_and_drinks/food/snacks_soup.dm @@ -4,7 +4,7 @@ trash = /obj/item/reagent_containers/glass/bowl bitesize = 5 volume = 80 - list_reagents = list("nutriment" = 8, "water" = 5, "vitamin" = 4) + list_reagents = list(/datum/reagent/consumable/nutriment = 8, /datum/reagent/water = 5, /datum/reagent/consumable/nutriment/vitamin = 4) tastes = list("tasteless soup" = 1) foodtype = VEGETABLES @@ -16,7 +16,7 @@ name = "wish soup" desc = "I wish this was soup." icon_state = "wishsoup" - list_reagents = list("water" = 10) + list_reagents = list(/datum/reagent/water = 10) tastes = list("wishes" = 1) /obj/item/reagent_containers/food/snacks/soup/wish/Initialize() @@ -24,17 +24,17 @@ var/wish_true = prob(25) if(wish_true) desc = "A wish come true!" - bonus_reagents = list("nutriment" = 9, "vitamin" = 1) + bonus_reagents = list(/datum/reagent/consumable/nutriment = 9, /datum/reagent/consumable/nutriment/vitamin = 1) if(wish_true) - reagents.add_reagent("nutriment", 9) - reagents.add_reagent("vitamin", 1) + reagents.add_reagent(/datum/reagent/consumable/nutriment, 9) + reagents.add_reagent(/datum/reagent/consumable/nutriment/vitamin, 1) foodtype = VEGETABLES /obj/item/reagent_containers/food/snacks/soup/meatball name = "meatball soup" desc = "You've got balls kid, BALLS!" icon_state = "meatballsoup" - bonus_reagents = list("nutriment" = 1, "vitamin" = 5) + bonus_reagents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/consumable/nutriment/vitamin = 5) tastes = list("meat" = 1) foodtype = MEAT @@ -42,8 +42,8 @@ name = "slime soup" desc = "If no water is available, you may substitute tears." icon_state = "slimesoup" - bonus_reagents = list("nutriment" = 1, "slimejelly" = 5, "vitamin" = 5) - list_reagents = list("nutriment" = 5, "slimejelly" = 5, "water" = 5, "vitamin" = 4) + bonus_reagents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/toxin/slimejelly = 5, /datum/reagent/consumable/nutriment/vitamin = 5) + list_reagents = list(/datum/reagent/consumable/nutriment = 5, /datum/reagent/toxin/slimejelly = 5, /datum/reagent/water = 5, /datum/reagent/consumable/nutriment/vitamin = 4) tastes = list("slime" = 1) foodtype = TOXIC | SUGAR @@ -51,8 +51,8 @@ name = "tomato soup" desc = "Smells like copper." icon_state = "tomatosoup" - bonus_reagents = list("nutriment" = 1, "vitamin" = 6) - list_reagents = list("nutriment" = 2, "blood" = 10, "water" = 5, "vitamin" = 4) + bonus_reagents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/consumable/nutriment/vitamin = 6) + list_reagents = list(/datum/reagent/consumable/nutriment = 2, /datum/reagent/blood = 10, /datum/reagent/water = 5, /datum/reagent/consumable/nutriment/vitamin = 4) tastes = list("iron" = 1) foodtype = GROSS @@ -61,8 +61,8 @@ desc = "A savory dish of alien wing wang in soy." icon_state = "wingfangchu" trash = /obj/item/reagent_containers/glass/bowl - bonus_reagents = list("nutriment" = 1, "vitamin" = 2) - list_reagents = list("nutriment" = 6, "soysauce" = 5, "vitamin" = 2) + bonus_reagents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/consumable/nutriment/vitamin = 2) + list_reagents = list(/datum/reagent/consumable/nutriment = 6, /datum/reagent/consumable/soysauce = 5, /datum/reagent/consumable/nutriment/vitamin = 2) tastes = list("soy" = 1) foodtype = MEAT @@ -70,8 +70,8 @@ name = "clown's tears" desc = "Not very funny." icon_state = "clownstears" - bonus_reagents = list("nutriment" = 1, "banana" = 5, "vitamin" = 8, "clownstears" = 10) - list_reagents = list("nutriment" = 4, "banana" = 5, "water" = 5, "vitamin" = 8, "clownstears" = 10) + bonus_reagents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/consumable/banana = 5, /datum/reagent/consumable/nutriment/vitamin = 8, /datum/reagent/consumable/clownstears = 10) + list_reagents = list(/datum/reagent/consumable/nutriment = 4, /datum/reagent/consumable/banana = 5, /datum/reagent/water = 5, /datum/reagent/consumable/nutriment/vitamin = 8, /datum/reagent/consumable/clownstears = 10) tastes = list("a bad joke" = 1) foodtype = FRUIT | SUGAR @@ -79,7 +79,7 @@ name = "vegetable soup" desc = "A true vegan meal." icon_state = "vegetablesoup" - bonus_reagents = list("nutriment" = 1, "vitamin" = 4) + bonus_reagents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/consumable/nutriment/vitamin = 4) tastes = list("vegetables" = 1) foodtype = VEGETABLES @@ -87,7 +87,7 @@ name = "nettle soup" desc = "To think, the botanist would've beat you to death with one of these." icon_state = "nettlesoup" - bonus_reagents = list("nutriment" = 1, "omnizine" = 5, "vitamin" = 5) + bonus_reagents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/medicine/omnizine = 5, /datum/reagent/consumable/nutriment/vitamin = 5) tastes = list("nettles" = 1) foodtype = VEGETABLES @@ -96,21 +96,23 @@ desc = "The mystery is, why aren't you eating it?" icon_state = "mysterysoup" var/extra_reagent = null - list_reagents = list("nutriment" = 6) + list_reagents = list(/datum/reagent/consumable/nutriment = 6) tastes = list("chaos" = 1) /obj/item/reagent_containers/food/snacks/soup/mystery/Initialize() . = ..() - extra_reagent = pick("capsaicin", "frostoil", "omnizine", "banana", "blood", "slimejelly", "toxin", "banana", "carbon", "oculine") - bonus_reagents = list("[extra_reagent]" = 5, "nutriment" = 6) - reagents.add_reagent("[extra_reagent]", 5) + extra_reagent = pick(/datum/reagent/consumable/capsaicin, /datum/reagent/consumable/frostoil, + /datum/reagent/medicine/omnizine, /datum/reagent/consumable/banana, /datum/reagent/blood, + /datum/reagent/toxin/slimejelly, /datum/reagent/toxin, /datum/reagent/carbon, /datum/reagent/medicine/oculine) + bonus_reagents = list(extra_reagent = 5, /datum/reagent/consumable/nutriment = 6) + reagents.add_reagent(extra_reagent, 5) /obj/item/reagent_containers/food/snacks/soup/hotchili name = "hot chili" desc = "A five alarm Texan Chili!" icon_state = "hotchili" - bonus_reagents = list("nutriment" = 1, "tomatojuice" = 2, "vitamin" = 2) - list_reagents = list("nutriment" = 5, "capsaicin" = 1, "tomatojuice" = 2, "vitamin" = 2) + bonus_reagents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/consumable/tomatojuice = 2, /datum/reagent/consumable/nutriment/vitamin = 2) + list_reagents = list(/datum/reagent/consumable/nutriment = 5, /datum/reagent/consumable/capsaicin = 1, /datum/reagent/consumable/tomatojuice = 2, /datum/reagent/consumable/nutriment/vitamin = 2) tastes = list("hot peppers" = 1) foodtype = VEGETABLES @@ -118,8 +120,8 @@ name = "cold chili" desc = "This slush is barely a liquid!" icon_state = "coldchili" - bonus_reagents = list("nutriment" = 1, "tomatojuice" = 2, "vitamin" = 2) - list_reagents = list("nutriment" = 5, "frostoil" = 1, "tomatojuice" = 2, "vitamin" = 2) + bonus_reagents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/consumable/tomatojuice = 2, /datum/reagent/consumable/nutriment/vitamin = 2) + list_reagents = list(/datum/reagent/consumable/nutriment = 5, /datum/reagent/consumable/frostoil = 1, /datum/reagent/consumable/tomatojuice = 2, /datum/reagent/consumable/nutriment/vitamin = 2) tastes = list("tomato" = 1, "mint" = 1) foodtype = VEGETABLES @@ -127,8 +129,8 @@ name = "monkey's delight" desc = "A delicious soup with dumplings and hunks of monkey meat simmered to perfection, in a broth that tastes faintly of bananas." icon_state = "monkeysdelight" - bonus_reagents = list("nutriment" = 1, "vitamin" = 5) - list_reagents = list("nutriment" = 10, "banana" = 5, "vitamin" = 5) + bonus_reagents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/consumable/nutriment/vitamin = 5) + list_reagents = list(/datum/reagent/consumable/nutriment = 10, /datum/reagent/consumable/banana = 5, /datum/reagent/consumable/nutriment/vitamin = 5) tastes = list("the jungle" = 1, "banana" = 1) foodtype = FRUIT @@ -136,8 +138,8 @@ name = "tomato soup" desc = "Drinking this feels like being a vampire! A tomato vampire..." icon_state = "tomatosoup" - bonus_reagents = list("nutriment" = 1, "tomatojuice" = 10, "vitamin" = 3) - list_reagents = list("nutriment" = 5, "tomatojuice" = 10, "vitamin" = 3) + bonus_reagents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/consumable/tomatojuice = 10, /datum/reagent/consumable/nutriment/vitamin = 3) + list_reagents = list(/datum/reagent/consumable/nutriment = 5, /datum/reagent/consumable/tomatojuice = 10, /datum/reagent/consumable/nutriment/vitamin = 3) tastes = list("tomato" = 1) foodtype = VEGETABLES @@ -145,7 +147,7 @@ name = "eyeball soup" desc = "It looks back at you..." icon_state = "eyeballsoup" - bonus_reagents = list("nutriment" = 1, "liquidgibs" = 3) + bonus_reagents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/liquidgibs = 3) tastes = list("tomato" = 1, "squirming" = 1) foodtype = MEAT | GROSS @@ -153,7 +155,7 @@ name = "milosoup" desc = "The universes best soup! Yum!!!" icon_state = "milosoup" - bonus_reagents = list("nutriment" = 1, "vitamin" = 3) + bonus_reagents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/consumable/nutriment/vitamin = 3) tastes = list("milo" = 1) // wtf is milo foodtype = GROSS @@ -161,8 +163,8 @@ name = "chantrelle soup" desc = "A delicious and hearty mushroom soup." icon_state = "mushroomsoup" - bonus_reagents = list("nutriment" = 1, "vitamin" = 5) - list_reagents = list("nutriment" = 8, "vitamin" = 4) + bonus_reagents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/consumable/nutriment/vitamin = 5) + list_reagents = list(/datum/reagent/consumable/nutriment = 8, /datum/reagent/consumable/nutriment/vitamin = 4) tastes = list("mushroom" = 1) foodtype = VEGETABLES @@ -170,7 +172,7 @@ name = "beet soup" desc = "Wait, how do you spell it again..?" icon_state = "beetsoup" - bonus_reagents = list("nutriment" = 1, "vitamin" = 5) + bonus_reagents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/consumable/nutriment/vitamin = 5) foodtype = VEGETABLES /obj/item/reagent_containers/food/snacks/soup/beet/Initialize() @@ -184,8 +186,8 @@ desc = "Jello gelatin, from Alfred Hubbard's cookbook." icon_state = "spacylibertyduff" bitesize = 3 - bonus_reagents = list("nutriment" = 1, "vitamin" = 5) - list_reagents = list("nutriment" = 6, "mushroomhallucinogen" = 6) + bonus_reagents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/consumable/nutriment/vitamin = 5) + list_reagents = list(/datum/reagent/consumable/nutriment = 6, /datum/reagent/drug/mushroomhallucinogen = 6) tastes = list("jelly" = 1, "mushroom" = 1) foodtype = VEGETABLES @@ -194,8 +196,8 @@ desc = "Looks curiously toxic." icon_state = "amanitajelly" bitesize = 3 - bonus_reagents = list("nutriment" = 1, "vitamin" = 5) - list_reagents = list("nutriment" = 6, "mushroomhallucinogen" = 3, "amatoxin" = 6) + bonus_reagents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/consumable/nutriment/vitamin = 5) + list_reagents = list(/datum/reagent/consumable/nutriment = 6, /datum/reagent/drug/mushroomhallucinogen = 3, /datum/reagent/toxin/amatoxin = 6) tastes = list("jelly" = 1, "mushroom" = 1) foodtype = VEGETABLES | TOXIC @@ -203,8 +205,8 @@ name = "stew" desc = "A nice and warm stew. Healthy and strong." icon_state = "stew" - bonus_reagents = list("nutriment" = 1, "tomatojuice" = 5, "vitamin" = 5) - list_reagents = list("nutriment" = 10, "oculine" = 5, "tomatojuice" = 5, "vitamin" = 5) + bonus_reagents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/consumable/tomatojuice = 5, /datum/reagent/consumable/nutriment/vitamin = 5) + list_reagents = list(/datum/reagent/consumable/nutriment = 10, /datum/reagent/medicine/oculine = 5, /datum/reagent/consumable/tomatojuice = 5, /datum/reagent/consumable/nutriment/vitamin = 5) bitesize = 7 volume = 100 tastes = list("tomato" = 1, "carrot" = 1) @@ -214,7 +216,7 @@ name = "sweet potato soup" desc = "Delicious sweet potato in soup form." icon_state = "sweetpotatosoup" - bonus_reagents = list("nutriment" = 4, "vitamin" = 5) + bonus_reagents = list(/datum/reagent/consumable/nutriment = 4, /datum/reagent/consumable/nutriment/vitamin = 5) tastes = list("sweet potato" = 1) foodtype = VEGETABLES | SUGAR @@ -222,7 +224,7 @@ name = "red beet soup" desc = "Quite a delicacy." icon_state = "redbeetsoup" - bonus_reagents = list("nutriment" = 4, "vitamin" = 6) + bonus_reagents = list(/datum/reagent/consumable/nutriment = 4, /datum/reagent/consumable/nutriment/vitamin = 6) tastes = list("beet" = 1) foodtype = VEGETABLES @@ -230,8 +232,8 @@ name = "electron soup" desc = "A gastronomic curiosity of ethereal origin. It is famed for the minature weather system formed over a properly prepared soup." icon_state = "electronsoup" - list_reagents = list("nutriment" = 3, "liquidelectricity" = 5) - tastes = list("mushroom" = 1, "electrons" = 4, "shockingly good") + list_reagents = list(/datum/reagent/consumable/nutriment = 3, /datum/reagent/consumable/liquidelectricity = 5) + tastes = list("mushroom" = 1, "electrons" = 4, "shockingly good" = 1) filling_color = "#CC2B52" foodtype = VEGETABLES | TOXIC @@ -239,8 +241,8 @@ name = "bungo curry" desc = "A spicy vegetable curry made with the humble bungo fruit, Exotic!" icon_state = "bungocurry" - bonus_reagents = list("vitamin" = 11) - list_reagents = list("nutriment" = 6, "capsaicin" = 5) + bonus_reagents = list(/datum/reagent/consumable/nutriment/vitamin = 11) + list_reagents = list(/datum/reagent/consumable/nutriment = 6, /datum/reagent/consumable/capsaicin = 5) tastes = list("bungo" = 2, "hot curry" = 4, "tropical sweetness" = 1) filling_color = "#E6A625" foodtype = VEGETABLES | FRUIT | DAIRY diff --git a/code/modules/food_and_drinks/food/snacks_spaghetti.dm b/code/modules/food_and_drinks/food/snacks_spaghetti.dm index 70a1922050..d54ba6f030 100644 --- a/code/modules/food_and_drinks/food/snacks_spaghetti.dm +++ b/code/modules/food_and_drinks/food/snacks_spaghetti.dm @@ -4,7 +4,7 @@ desc = "Now that's a nic'e pasta!" icon = 'icons/obj/food/pizzaspaghetti.dmi' icon_state = "spaghetti" - list_reagents = list("nutriment" = 1, "vitamin" = 1) + list_reagents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/consumable/nutriment/vitamin = 1) cooked_type = /obj/item/reagent_containers/food/snacks/boiledspaghetti filling_color = "#F0E68C" tastes = list("pasta" = 1) @@ -16,8 +16,8 @@ icon = 'icons/obj/food/pizzaspaghetti.dmi' icon_state = "spaghettiboiled" trash = /obj/item/trash/plate - bonus_reagents = list("nutriment" = 2) - list_reagents = list("nutriment" = 2, "vitamin" = 1) + bonus_reagents = list(/datum/reagent/consumable/nutriment = 2) + list_reagents = list(/datum/reagent/consumable/nutriment = 2, /datum/reagent/consumable/nutriment/vitamin = 1) custom_food_type = /obj/item/reagent_containers/food/snacks/customizable/pasta filling_color = "#F0E68C" tastes = list("pasta" = 1) @@ -30,8 +30,8 @@ icon_state = "pastatomato" trash = /obj/item/trash/plate bitesize = 4 - bonus_reagents = list("nutriment" = 1, "tomatojuice" = 10, "vitamin" = 4) - list_reagents = list("nutriment" = 6, "tomatojuice" = 10, "vitamin" = 4) + bonus_reagents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/consumable/tomatojuice = 10, /datum/reagent/consumable/nutriment/vitamin = 4) + list_reagents = list(/datum/reagent/consumable/nutriment = 6, /datum/reagent/consumable/tomatojuice = 10, /datum/reagent/consumable/nutriment/vitamin = 4) filling_color = "#DC143C" tastes = list("pasta" = 1, "tomato" = 1) foodtype = GRAIN | VEGETABLES @@ -43,8 +43,8 @@ icon_state = "copypasta" trash = /obj/item/trash/plate bitesize = 4 - bonus_reagents = list("nutriment" = 1, "vitamin" = 4) - list_reagents = list("nutriment" = 12, "tomatojuice" = 20, "vitamin" = 8) + bonus_reagents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/consumable/nutriment/vitamin = 4) + list_reagents = list(/datum/reagent/consumable/nutriment = 12, /datum/reagent/consumable/tomatojuice = 20, /datum/reagent/consumable/nutriment/vitamin = 8) filling_color = "#DC143C" tastes = list("pasta" = 1, "tomato" = 1) foodtype = GRAIN | VEGETABLES @@ -55,8 +55,8 @@ icon = 'icons/obj/food/pizzaspaghetti.dmi' icon_state = "meatballspaghetti" trash = /obj/item/trash/plate - bonus_reagents = list("nutriment" = 1, "vitamin" = 4) - list_reagents = list("nutriment" = 8, "vitamin" = 4) + bonus_reagents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/consumable/nutriment/vitamin = 4) + list_reagents = list(/datum/reagent/consumable/nutriment = 8, /datum/reagent/consumable/nutriment/vitamin = 4) filling_color = "#F0E68C" tastes = list("pasta" = 1, "tomato" = 1, "meat" = 1) foodtype = GRAIN | MEAT @@ -67,8 +67,8 @@ icon = 'icons/obj/food/pizzaspaghetti.dmi' icon_state = "spesslaw" trash = /obj/item/trash/plate - bonus_reagents = list("nutriment" = 1, "vitamin" = 6) - list_reagents = list("nutriment" = 8, "vitamin" = 6) + bonus_reagents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/consumable/nutriment/vitamin = 6) + list_reagents = list(/datum/reagent/consumable/nutriment = 8, /datum/reagent/consumable/nutriment/vitamin = 6) filling_color = "#F0E68C" tastes = list("pasta" = 1, "tomato" = 1, "meat" = 1) foodtype = GRAIN @@ -79,8 +79,8 @@ icon = 'icons/obj/food/pizzaspaghetti.dmi' icon_state = "chowmein" trash = /obj/item/trash/plate - bonus_reagents = list("nutriment" = 3, "vitamin" = 4) - list_reagents = list("nutriment" = 7, "vitamin" = 6) + bonus_reagents = list(/datum/reagent/consumable/nutriment = 3, /datum/reagent/consumable/nutriment/vitamin = 4) + list_reagents = list(/datum/reagent/consumable/nutriment = 7, /datum/reagent/consumable/nutriment/vitamin = 6) tastes = list("noodle" = 1, "tomato" = 1) foodtype = GRAIN @@ -90,7 +90,7 @@ icon = 'icons/obj/food/pizzaspaghetti.dmi' icon_state = "beefnoodle" trash = /obj/item/reagent_containers/glass/bowl - bonus_reagents = list("nutriment" = 5, "vitamin" = 6, "liquidgibs" = 3) + bonus_reagents = list(/datum/reagent/consumable/nutriment = 5, /datum/reagent/consumable/nutriment/vitamin = 6, /datum/reagent/liquidgibs = 3) tastes = list("noodle" = 1, "meat" = 1) foodtype = GRAIN | MEAT @@ -100,6 +100,6 @@ icon = 'icons/obj/food/pizzaspaghetti.dmi' icon_state = "butternoodles" trash = /obj/item/trash/plate - bonus_reagents = list("nutriment" = 8, "vitamin" = 1) + bonus_reagents = list(/datum/reagent/consumable/nutriment = 8, /datum/reagent/consumable/nutriment/vitamin = 1) tastes = list("noodle" = 1, "butter" = 1) foodtype = GRAIN | DAIRY diff --git a/code/modules/food_and_drinks/food/snacks_sushi.dm b/code/modules/food_and_drinks/food/snacks_sushi.dm index a4cbc5e344..d16ca79001 100644 --- a/code/modules/food_and_drinks/food/snacks_sushi.dm +++ b/code/modules/food_and_drinks/food/snacks_sushi.dm @@ -5,7 +5,7 @@ desc = "A bowl of sticky rice for making sushi." icon = 'modular_citadel/icons/obj/food/food.dmi' icon_state = "sushi_rice" - list_reagents = list("sodiumchloride" = 5) + list_reagents = list(/datum/reagent/consumable/sodiumchloride = 5) tastes = list("rice" = 5, "salt" = 1) foodtype = GRAIN @@ -14,7 +14,7 @@ desc = "A thin, light salt sheet of plant mater. This is commenly used in sushi recipes," icon = 'modular_citadel/icons/obj/food/food.dmi' icon_state = "sea_weed" - list_reagents = list("sodiumchloride" = 2) + list_reagents = list(/datum/reagent/consumable/sodiumchloride = 2) tastes = list("plants" = 2, "salt" = 1) foodtype = VEGETABLES @@ -24,7 +24,7 @@ icon = 'modular_citadel/icons/obj/food/food.dmi' icon_state = "tuna_can" //trash = /obj/item/trash/tuna_used //I dont know if I like this idea - A Masked Cat - list_reagents = list("sodiumchloride" = 5, "mercury" = 2) + list_reagents = list(/datum/reagent/consumable/sodiumchloride = 5, /datum/reagent/mercury = 2) tastes = list("tuna" = 15, "mercury" = 1, "salt" = 3) foodtype = MEAT @@ -34,8 +34,8 @@ desc = "A small cylindrical filled with rice and fish." icon = 'modular_citadel/icons/obj/food/food.dmi' icon_state = "sushie_basic" - bonus_reagents = list("vitamin" = 2) - list_reagents = list("nutriment" = 1) + bonus_reagents = list(/datum/reagent/consumable/nutriment/vitamin = 2) + list_reagents = list(/datum/reagent/consumable/nutriment = 1) bitesize = 1 filling_color = "#F2EEEA" //rgb(242, 238, 234) tastes = list("fish" = 1, "rice" = 1, "salt" = 1) @@ -46,8 +46,8 @@ desc = "A pice of carp lightly placed on some rice." icon = 'modular_citadel/icons/obj/food/food.dmi' icon_state = "sushie_adv" - bonus_reagents = list("vitamin" = 2) - list_reagents = list("nutriment" = 2) + bonus_reagents = list(/datum/reagent/consumable/nutriment/vitamin = 2) + list_reagents = list(/datum/reagent/consumable/nutriment = 2) bitesize = 1 filling_color = "#F2EEEA" //rgb(242, 238, 234) tastes = list("fish" = 1, "rice" = 1, "salt" = 1) @@ -58,8 +58,8 @@ desc = "A well prepared pice of the best of the carp fillet placed on rice. Looks fancy and fresh!" icon = 'modular_citadel/icons/obj/food/food.dmi' icon_state = "sushie_pro" - bonus_reagents = list("nutriment" = 1, "vitamin" = 2) - list_reagents = list("nutriment" = 8, "vitamin" = 1) + bonus_reagents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/consumable/nutriment/vitamin = 2) + list_reagents = list(/datum/reagent/consumable/nutriment = 8, /datum/reagent/consumable/nutriment/vitamin = 1) bitesize = 1 filling_color = "#F2EEEA" //rgb(242, 238, 234) tastes = list("fish" = 1, "rice" = 1, "salt" = 1) @@ -70,7 +70,7 @@ desc = "Spider eggs wrapped in a thin salted Kudzu pod" icon = 'modular_citadel/icons/obj/food/food.dmi' icon_state = "sushie_egg" - list_reagents = list("nutriment" = 3, "vitamin" = 2) + list_reagents = list(/datum/reagent/consumable/nutriment = 3, /datum/reagent/consumable/nutriment/vitamin = 2) filling_color = "#FF3333" // R225 G051 B051 tastes = list("seaweed" = 1, "salty" = 2) foodtype = MEAT | VEGETABLES @@ -80,7 +80,7 @@ desc = "A ball of rice with some light salt and a wrap of Kudzu skin." icon = 'modular_citadel/icons/obj/food/food.dmi' icon_state = "riceball" - list_reagents = list("nutriment" = 5, "sodiumchloride" = 2) + list_reagents = list(/datum/reagent/consumable/nutriment = 5, /datum/reagent/consumable/sodiumchloride = 2) tastes = list("rice" = 4, "salt" = 1) foodtype = GRAIN @@ -88,8 +88,8 @@ name = "carp sashimi" desc = "Celebrate surviving attack from hostile alien lifeforms by hospitalising yourself." icon_state = "sashimi" - bonus_reagents = list("nutriment" = 1, "capsaicin" = 4, "vitamin" = 4) - list_reagents = list("nutriment" = 6, "capsaicin" = 5) + bonus_reagents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/consumable/capsaicin = 4, /datum/reagent/consumable/nutriment/vitamin = 4) + list_reagents = list(/datum/reagent/consumable/nutriment = 6, /datum/reagent/consumable/capsaicin = 5) filling_color = "#FA8072" tastes = list("fish" = 1, "hot peppers" = 1) foodtype = MEAT | TOXIC \ No newline at end of file diff --git a/code/modules/food_and_drinks/food/snacks_vend.dm b/code/modules/food_and_drinks/food/snacks_vend.dm index 8f661b868e..239dd433b0 100644 --- a/code/modules/food_and_drinks/food/snacks_vend.dm +++ b/code/modules/food_and_drinks/food/snacks_vend.dm @@ -7,7 +7,7 @@ desc = "Nougat love it or hate it." icon_state = "candy" trash = /obj/item/trash/candy - list_reagents = list("nutriment" = 1, "sugar" = 3, "cocoa" = 3) + list_reagents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/consumable/sugar = 3, /datum/reagent/consumable/coco = 3) junkiness = 25 filling_color = "#D2691E" tastes = list("candy" = 1) @@ -18,7 +18,7 @@ icon_state = "sosjerky" desc = "Beef jerky made from the finest space cows." trash = /obj/item/trash/sosjerky - list_reagents = list("nutriment" = 1, "sugar" = 3, "sodiumchloride" = 2) + list_reagents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/consumable/sugar = 3, /datum/reagent/consumable/sodiumchloride = 2) junkiness = 25 filling_color = "#8B0000" tastes = list("dried meat" = 1) @@ -27,7 +27,7 @@ /obj/item/reagent_containers/food/snacks/sosjerky/healthy name = "homemade beef jerky" desc = "Homemade beef jerky made from the finest space cows." - list_reagents = list("nutriment" = 3, "vitamin" = 1) + list_reagents = list(/datum/reagent/consumable/nutriment = 3, /datum/reagent/consumable/nutriment/vitamin = 1) junkiness = 0 /obj/item/reagent_containers/food/snacks/chips @@ -36,7 +36,7 @@ icon_state = "chips" trash = /obj/item/trash/chips bitesize = 1 - list_reagents = list("nutriment" = 1, "sugar" = 3, "sodiumchloride" = 1) + list_reagents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/consumable/sugar = 3, /datum/reagent/consumable/sodiumchloride = 1) junkiness = 20 filling_color = "#FFD700" tastes = list("salt" = 1, "crisps" = 1) @@ -47,7 +47,7 @@ icon_state = "4no_raisins" desc = "Best raisins in the universe. Not sure why." trash = /obj/item/trash/raisins - list_reagents = list("nutriment" = 2, "sugar" = 4) + list_reagents = list(/datum/reagent/consumable/nutriment = 2, /datum/reagent/consumable/sugar = 4) junkiness = 25 filling_color = "#8B0000" tastes = list("dried raisins" = 1) @@ -56,7 +56,7 @@ /obj/item/reagent_containers/food/snacks/no_raisin/healthy name = "homemade raisins" desc = "Homemade raisins, the best in all of spess." - list_reagents = list("nutriment" = 3, "vitamin" = 2) + list_reagents = list(/datum/reagent/consumable/nutriment = 3, /datum/reagent/consumable/nutriment/vitamin = 2) junkiness = 0 foodtype = FRUIT @@ -64,7 +64,7 @@ name = "space twinkie" icon_state = "space_twinkie" desc = "Guaranteed to survive longer than you will." - list_reagents = list("sugar" = 4) + list_reagents = list(/datum/reagent/consumable/sugar = 4) junkiness = 25 filling_color = "#FFD700" foodtype = JUNKFOOD | GRAIN | SUGAR @@ -74,7 +74,7 @@ desc = "Bite sized cheesie snacks that will honk all over your mouth." icon_state = "cheesie_honkers" trash = /obj/item/trash/cheesie - list_reagents = list("nutriment" = 1, "sugar" = 3) + list_reagents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/consumable/sugar = 3) junkiness = 25 filling_color = "#FFD700" tastes = list("cheese" = 5, "crisps" = 2) @@ -85,7 +85,7 @@ icon_state = "syndi_cakes" desc = "An extremely moist snack cake that tastes just as good after being nuked." trash = /obj/item/trash/syndi_cakes - list_reagents = list("nutriment" = 4, "doctorsdelight" = 5) + list_reagents = list(/datum/reagent/consumable/nutriment = 4, /datum/reagent/consumable/doctor_delight = 5) filling_color = "#F5F5DC" tastes = list("sweetness" = 3, "cake" = 1) foodtype = GRAIN | FRUIT | VEGETABLES diff --git a/code/modules/food_and_drinks/kitchen_machinery/deep_fryer.dm b/code/modules/food_and_drinks/kitchen_machinery/deep_fryer.dm index 1bc2e4bb89..27ee54815f 100644 --- a/code/modules/food_and_drinks/kitchen_machinery/deep_fryer.dm +++ b/code/modules/food_and_drinks/kitchen_machinery/deep_fryer.dm @@ -52,7 +52,7 @@ God bless America. /obj/machinery/deepfryer/Initialize() . = ..() create_reagents(50, OPENCONTAINER) - reagents.add_reagent("cooking_oil", 25) + reagents.add_reagent(/datum/reagent/consumable/cooking_oil, 25) component_parts = list() component_parts += new /obj/item/circuitboard/machine/deep_fryer(null) component_parts += new /obj/item/stock_parts/micro_laser(null) @@ -81,9 +81,9 @@ God bless America. qdel(I) return if(istype(I,/obj/item/clothing/head/mob_holder)) - to_chat(user, "This does not fit in the fryer.") // TODO: Deepfrying instakills mobs, spawns a whole deep-fried mob. + to_chat(user, "This does not fit in the fryer.") // TODO: Deepfrying instakills mobs, spawns a whole deep-fried mob. return - if(!reagents.has_reagent("cooking_oil")) + if(!reagents.has_reagent(/datum/reagent/consumable/cooking_oil)) to_chat(user, "[src] has no cooking oil to fry with!") return if(I.resistance_flags & INDESTRUCTIBLE) @@ -107,7 +107,7 @@ God bless America. /obj/machinery/deepfryer/process() ..() - var/datum/reagent/consumable/cooking_oil/C = reagents.has_reagent("cooking_oil") + var/datum/reagent/consumable/cooking_oil/C = reagents.has_reagent(/datum/reagent/consumable/cooking_oil) if(!C) return reagents.chem_temp = C.fry_temperature diff --git a/code/modules/food_and_drinks/kitchen_machinery/food_cart.dm b/code/modules/food_and_drinks/kitchen_machinery/food_cart.dm index 4dda9dd773..68cc84c639 100644 --- a/code/modules/food_and_drinks/kitchen_machinery/food_cart.dm +++ b/code/modules/food_and_drinks/kitchen_machinery/food_cart.dm @@ -35,16 +35,16 @@ dat += "Portion: [portion]
" for(var/datum/reagent/R in reagents.reagent_list) dat += "[R.name]: [R.volume] " - dat += "Purge" + dat += "Purge" if (glasses > 0) - dat += "Pour in a glass" - dat += "Add to the mixer
" + dat += "Pour in a glass" + dat += "Add to the mixer
" dat += "
MIXER CONTENTS
" for(var/datum/reagent/R in mixer.reagents.reagent_list) dat += "[R.name]: [R.volume] " - dat += "Transfer back" + dat += "Transfer back" if (glasses > 0) - dat += "Pour in a glass" + dat += "Pour in a glass" dat += "
" dat += "

STORED FOOD
" for(var/V in stored_food) diff --git a/code/modules/food_and_drinks/kitchen_machinery/gibber.dm b/code/modules/food_and_drinks/kitchen_machinery/gibber.dm index e02c3c1334..e5c5a4f933 100644 --- a/code/modules/food_and_drinks/kitchen_machinery/gibber.dm +++ b/code/modules/food_and_drinks/kitchen_machinery/gibber.dm @@ -176,7 +176,7 @@ newmeat.name = "[sourcename] [newmeat.name]" if(istype(newmeat)) newmeat.subjectname = sourcename - newmeat.reagents.add_reagent ("nutriment", sourcenutriment / meat_produced) // Thehehe. Fat guys go first + newmeat.reagents.add_reagent (/datum/reagent/consumable/nutriment, sourcenutriment / meat_produced) // Thehehe. Fat guys go first if(sourcejob) newmeat.subjectjob = sourcejob allmeat[i] = newmeat diff --git a/code/modules/food_and_drinks/kitchen_machinery/grill.dm b/code/modules/food_and_drinks/kitchen_machinery/grill.dm index 449da2afe3..c52389cd56 100644 --- a/code/modules/food_and_drinks/kitchen_machinery/grill.dm +++ b/code/modules/food_and_drinks/kitchen_machinery/grill.dm @@ -52,10 +52,10 @@ grill_loop.start() return else - if(I.reagents.has_reagent("monkey_energy")) - grill_fuel += (20 * (I.reagents.get_reagent_amount("monkey_energy"))) + if(I.reagents.has_reagent(/datum/reagent/consumable/monkey_energy)) + grill_fuel += (20 * (I.reagents.get_reagent_amount(/datum/reagent/consumable/monkey_energy))) to_chat(user, "You pour the Monkey Energy in [src].") - I.reagents.remove_reagent("monkey_energy", I.reagents.get_reagent_amount("monkey_energy")) + I.reagents.remove_reagent("monkey_energy", I.reagents.get_reagent_amount(/datum/reagent/consumable/monkey_energy)) update_icon() return ..() diff --git a/code/modules/food_and_drinks/kitchen_machinery/icecream_vat.dm b/code/modules/food_and_drinks/kitchen_machinery/icecream_vat.dm index 8db6956da9..71becf0542 100644 --- a/code/modules/food_and_drinks/kitchen_machinery/icecream_vat.dm +++ b/code/modules/food_and_drinks/kitchen_machinery/icecream_vat.dm @@ -25,37 +25,37 @@ var/flavour_name = "vanilla" var/obj/item/reagent_containers/beaker = null var/static/list/icecream_vat_reagents = list( - "milk" = 6, - "flour" = 6, - "sugar" = 6, - "ice" = 6, - "cocoa" = 6, - "vanilla" = 6, - "berryjuice" = 6, - "singulo" = 6, - "peachjuice" = 6, - "grapejuice" = 6) + /datum/reagent/consumable/milk = 6, + /datum/reagent/consumable/flour = 6, + /datum/reagent/consumable/sugar = 6, + /datum/reagent/consumable/ice = 6, + /datum/reagent/consumable/coco = 6, + /datum/reagent/consumable/vanilla = 6, + /datum/reagent/consumable/berryjuice = 6, + /datum/reagent/consumable/ethanol/singulo = 6, + /datum/reagent/consumable/peachjuice = 6, + /datum/reagent/consumable/grapejuice = 6) /obj/machinery/icecream_vat/proc/get_ingredient_list(type) switch(type) if(ICECREAM_CHOCOLATE) - return list("milk", "ice", "cocoa") + return list(/datum/reagent/consumable/milk, /datum/reagent/consumable/ice, /datum/reagent/consumable/coco) if(ICECREAM_STRAWBERRY) - return list("milk", "ice", "berryjuice") + return list(/datum/reagent/consumable/milk, /datum/reagent/consumable/ice, /datum/reagent/consumable/berryjuice) if(ICECREAM_CUSTOM) - return list("milk", "ice") + return list(/datum/reagent/consumable/milk, /datum/reagent/consumable/ice) if(ICECREAM_PEACH) - return list("milk", "ice", "peachjuice") + return list(/datum/reagent/consumable/milk, /datum/reagent/consumable/ice, /datum/reagent/consumable/peachjuice) if(ICECREAM_GRAPE) - return list("milk", "ice", "grapejuice") + return list(/datum/reagent/consumable/milk, /datum/reagent/consumable/ice, /datum/reagent/consumable/grapejuice) if(ICECREAM_BLUE) - return list("milk", "ice", "singulo") + return list(/datum/reagent/consumable/milk, /datum/reagent/consumable/ice, /datum/reagent/consumable/ethanol/singulo) if(CONE_WAFFLE) - return list("flour", "sugar") + return list(/datum/reagent/consumable/flour, /datum/reagent/consumable/sugar) if(CONE_CHOC) - return list("flour", "sugar", "cocoa") + return list(/datum/reagent/consumable/flour, /datum/reagent/consumable/sugar, /datum/reagent/consumable/coco) else //ICECREAM_VANILLA - return list("milk", "ice", "vanilla") + return list(/datum/reagent/consumable/milk, /datum/reagent/consumable/ice, /datum/reagent/consumable/vanilla) /obj/machinery/icecream_vat/proc/get_flavour_name(flavour_type) @@ -113,7 +113,7 @@ dat += "VAT CONTENT
" for(var/datum/reagent/R in reagents.reagent_list) dat += "[R.name]: [R.volume]" - dat += "Purge
" + dat += "Purge
" dat += "Refresh Close" var/datum/browser/popup = new(user, "icecreamvat","Icecream Vat", 700, 500, src) @@ -132,7 +132,7 @@ else I.add_ice_cream(flavour_name) if(I.reagents.total_volume < 10) - I.reagents.add_reagent("sugar", 10 - I.reagents.total_volume) + I.reagents.add_reagent(/datum/reagent/consumable/sugar, 10 - I.reagents.total_volume) updateDialog() else to_chat(user, "There is not enough ice cream left!") @@ -228,7 +228,7 @@ desc = "Delicious waffle cone, but no ice cream." icon = 'icons/obj/kitchen.dmi' icon_state = "icecream_cone_waffle" //default for admin-spawned cones, href_list["cone"] should overwrite this all the time - list_reagents = list("nutriment" = 4) + list_reagents = list(/datum/reagent/consumable/nutriment = 4) tastes = list("cream" = 2, "waffle" = 1) var/ice_creamed = 0 var/cone_type @@ -244,9 +244,9 @@ icon_state = "icecream_cone_[cone_name]" switch (cone_type) if ("waffle") - reagents.add_reagent("nutriment", 1) + reagents.add_reagent(/datum/reagent/consumable/nutriment, 1) if ("chocolate") - reagents.add_reagent("cocoa", 1) // chocolate ain't as nutritious kids + reagents.add_reagent(/datum/reagent/consumable/coco, 1) // chocolate ain't as nutritious kids desc = "Delicious [cone_name] cone, but no ice cream." @@ -256,31 +256,31 @@ switch (flavour_name) // adding the actual reagents advertised in the ingredient list if ("vanilla") desc = "A delicious [cone_type] cone filled with vanilla ice cream. All the other ice creams take content from it." - reagents.add_reagent("vanilla", 3) + reagents.add_reagent(/datum/reagent/consumable/vanilla, 3) filling_color = "#ECE1C1" if ("chocolate") desc = "A delicious [cone_type] cone filled with chocolate ice cream. Surprisingly, made with real cocoa." - reagents.add_reagent("cocoa", 3) + reagents.add_reagent(/datum/reagent/consumable/coco, 3) filling_color = "#93673B" if ("strawberry") desc = "A delicious [cone_type] cone filled with strawberry ice cream. Definitely not made with real strawberries." - reagents.add_reagent("berryjuice", 3) + reagents.add_reagent(/datum/reagent/consumable/berryjuice, 3) filling_color = "#EFB4B4" if ("peach") desc = "A delicious [cone_type] cone filled with peach ice cream. Definitely made with real peaches!" - reagents.add_reagent("peachjuice", 3) + reagents.add_reagent(/datum/reagent/consumable/peachjuice, 3) filling_color = "#E78108" if ("grape") desc = "A delicious [cone_type] cone filled with grape ice cream. Surprisingly, made with real pink grape, likely not real sugarcanes used." - reagents.add_reagent("grapejuice", 3) + reagents.add_reagent(/datum/reagent/consumable/grapejuice, 3) filling_color = "#FF1493" if ("blue") desc = "A delicious [cone_type] cone filled with blue ice cream. Made with real... blue?" - reagents.add_reagent("singulo", 3) + reagents.add_reagent(/datum/reagent/consumable/ethanol/singulo, 3) filling_color = "#ACBCED" if ("mob") desc = "A suspicious [cone_type] cone filled with bright red ice cream. That's probably not strawberry..." - reagents.add_reagent("liquidgibs", 3) + reagents.add_reagent(/datum/reagent/liquidgibs, 3) filling_color = "#EFB4B4" if ("custom") if(R && R.total_volume >= 4) //consumable reagents have stronger taste so higher volume will allow non-food flavourings to break through better. diff --git a/code/modules/food_and_drinks/kitchen_machinery/microwave.dm b/code/modules/food_and_drinks/kitchen_machinery/microwave.dm index 4efac6f508..e4d36b29d2 100644 --- a/code/modules/food_and_drinks/kitchen_machinery/microwave.dm +++ b/code/modules/food_and_drinks/kitchen_machinery/microwave.dm @@ -134,8 +134,8 @@ if(istype(O, /obj/item/reagent_containers/spray)) var/obj/item/reagent_containers/spray/clean_spray = O - if(clean_spray.reagents.has_reagent("cleaner", clean_spray.amount_per_transfer_from_this)) - clean_spray.reagents.remove_reagent("cleaner", clean_spray.amount_per_transfer_from_this,1) + if(clean_spray.reagents.has_reagent(/datum/reagent/space_cleaner, clean_spray.amount_per_transfer_from_this)) + clean_spray.reagents.remove_reagent(/datum/reagent/space_cleaner, clean_spray.amount_per_transfer_from_this,1) playsound(loc, 'sound/effects/spray3.ogg', 50, 1, -6) user.visible_message("[user] has cleaned \the [src].", "You clean \the [src].") dirty = 0 diff --git a/code/modules/food_and_drinks/pizzabox.dm b/code/modules/food_and_drinks/pizzabox.dm index 355660ecec..da67eaa9cf 100644 --- a/code/modules/food_and_drinks/pizzabox.dm +++ b/code/modules/food_and_drinks/pizzabox.dm @@ -86,7 +86,7 @@ tag_overlay.pixel_y = boxes.len * 3 add_overlay(tag_overlay) -/obj/item/pizzabox/worn_overlays(isinhands, icon_file) +/obj/item/pizzabox/worn_overlays(isinhands, icon_file, style_flags = NONE) . = list() var/current_offset = 2 if(isinhands) diff --git a/code/modules/food_and_drinks/recipes/drinks_recipes.dm b/code/modules/food_and_drinks/recipes/drinks_recipes.dm index 9dbddfb519..9df650500a 100644 --- a/code/modules/food_and_drinks/recipes/drinks_recipes.dm +++ b/code/modules/food_and_drinks/recipes/drinks_recipes.dm @@ -2,385 +2,385 @@ /datum/chemical_reaction/goldschlager name = "Goldschlager" - id = "goldschlager" - results = list("goldschlager" = 10) - required_reagents = list("vodka" = 10, "gold" = 1) + id = /datum/reagent/consumable/ethanol/goldschlager + results = list(/datum/reagent/consumable/ethanol/goldschlager = 10) + required_reagents = list(/datum/reagent/consumable/ethanol/vodka = 10, /datum/reagent/gold = 1) /datum/chemical_reaction/patron name = "Patron" - id = "patron" - results = list("patron" = 10) - required_reagents = list("tequila" = 10, "silver" = 1) + id = /datum/reagent/consumable/ethanol/patron + results = list(/datum/reagent/consumable/ethanol/patron = 10) + required_reagents = list(/datum/reagent/consumable/ethanol/tequila = 10, /datum/reagent/silver = 1) /datum/chemical_reaction/bilk name = "Bilk" - id = "bilk" - results = list("bilk" = 2) - required_reagents = list("milk" = 1, "beer" = 1) + id = /datum/reagent/consumable/ethanol/bilk + results = list(/datum/reagent/consumable/ethanol/bilk = 2) + required_reagents = list(/datum/reagent/consumable/milk = 1, /datum/reagent/consumable/ethanol/beer = 1) /datum/chemical_reaction/icetea name = "Iced Tea" - id = "icetea" - results = list("icetea" = 4) - required_reagents = list("ice" = 1, "tea" = 3) + id = /datum/reagent/consumable/icetea + results = list(/datum/reagent/consumable/icetea = 4) + required_reagents = list(/datum/reagent/consumable/ice = 1, /datum/reagent/consumable/tea = 3) /datum/chemical_reaction/icecoffee name = "Iced Coffee" - id = "icecoffee" - results = list("icecoffee" = 4) - required_reagents = list("ice" = 1, "coffee" = 3) + id = /datum/reagent/consumable/icecoffee + results = list(/datum/reagent/consumable/icecoffee = 4) + required_reagents = list(/datum/reagent/consumable/ice = 1, /datum/reagent/consumable/coffee = 3) /datum/chemical_reaction/nuka_cola name = "Nuka Cola" - id = "nuka_cola" - results = list("nuka_cola" = 6) - required_reagents = list("uranium" = 1, "cola" = 6) + id = /datum/reagent/consumable/nuka_cola + results = list(/datum/reagent/consumable/nuka_cola = 6) + required_reagents = list(/datum/reagent/uranium = 1, /datum/reagent/consumable/space_cola = 6) /datum/chemical_reaction/moonshine name = "Moonshine" - id = "moonshine" - results = list("moonshine" = 10) - required_reagents = list("nutriment" = 5, "sugar" = 5) - required_catalysts = list("enzyme" = 5) + id = /datum/reagent/consumable/ethanol/moonshine + results = list(/datum/reagent/consumable/ethanol/moonshine = 10) + required_reagents = list(/datum/reagent/consumable/nutriment = 5, /datum/reagent/consumable/sugar = 5) + required_catalysts = list(/datum/reagent/consumable/enzyme = 5) /datum/chemical_reaction/wine name = "Wine" - id = "wine" - results = list("wine" = 10) - required_reagents = list("grapejuice" = 10) - required_catalysts = list("enzyme" = 5) + id = /datum/reagent/consumable/ethanol/wine + results = list(/datum/reagent/consumable/ethanol/wine = 10) + required_reagents = list(/datum/reagent/consumable/grapejuice = 10) + required_catalysts = list(/datum/reagent/consumable/enzyme = 5) /datum/chemical_reaction/spacebeer name = "Space Beer" - id = "spacebeer" - results = list("beer" = 10) - required_reagents = list("flour" = 10) - required_catalysts = list("enzyme" = 5) + id = /datum/reagent/consumable/ethanol/beer + results = list(/datum/reagent/consumable/ethanol/beer = 10) + required_reagents = list(/datum/reagent/consumable/flour = 10) + required_catalysts = list(/datum/reagent/consumable/enzyme = 5) /datum/chemical_reaction/vodka name = "Vodka" - id = "vodka" - results = list("vodka" = 10) - required_reagents = list("potato" = 10) - required_catalysts = list("enzyme" = 5) + id = /datum/reagent/consumable/ethanol/vodka + results = list(/datum/reagent/consumable/ethanol/vodka = 10) + required_reagents = list(/datum/reagent/consumable/potato_juice = 10) + required_catalysts = list(/datum/reagent/consumable/enzyme = 5) /datum/chemical_reaction/kahlua name = "Kahlua" - id = "kahlua" - results = list("kahlua" = 5) - required_reagents = list("coffee" = 5, "sugar" = 5) - required_catalysts = list("enzyme" = 5) + id = /datum/reagent/consumable/ethanol/kahlua + results = list(/datum/reagent/consumable/ethanol/kahlua = 5) + required_reagents = list(/datum/reagent/consumable/coffee = 5, /datum/reagent/consumable/sugar = 5) + required_catalysts = list(/datum/reagent/consumable/enzyme = 5) /datum/chemical_reaction/gin_tonic name = "Gin and Tonic" - id = "gintonic" - results = list("gintonic" = 3) - required_reagents = list("gin" = 2, "tonic" = 1) + id = /datum/reagent/consumable/ethanol/gintonic + results = list(/datum/reagent/consumable/ethanol/gintonic = 3) + required_reagents = list(/datum/reagent/consumable/ethanol/gin = 2, /datum/reagent/consumable/tonic = 1) /datum/chemical_reaction/rum_coke name = "Rum and Coke" - id = "rumcoke" - results = list("rumcoke" = 3) - required_reagents = list("rum" = 2, "cola" = 1) + id = /datum/reagent/consumable/ethanol/rum_coke + results = list(/datum/reagent/consumable/ethanol/rum_coke = 3) + required_reagents = list(/datum/reagent/consumable/ethanol/rum = 2, /datum/reagent/consumable/space_cola = 1) /datum/chemical_reaction/cuba_libre name = "Cuba Libre" - id = "cubalibre" - results = list("cubalibre" = 4) - required_reagents = list("rumcoke" = 3, "limejuice" = 1) + id = /datum/reagent/consumable/ethanol/cuba_libre + results = list(/datum/reagent/consumable/ethanol/cuba_libre = 4) + required_reagents = list(/datum/reagent/consumable/ethanol/rum_coke = 3, /datum/reagent/consumable/limejuice = 1) /datum/chemical_reaction/martini name = "Classic Martini" - id = "martini" - results = list("martini" = 3) - required_reagents = list("gin" = 2, "vermouth" = 1) + id = /datum/reagent/consumable/ethanol/martini + results = list(/datum/reagent/consumable/ethanol/martini = 3) + required_reagents = list(/datum/reagent/consumable/ethanol/gin = 2, /datum/reagent/consumable/ethanol/vermouth = 1) /datum/chemical_reaction/vodkamartini name = "Vodka Martini" - id = "vodkamartini" - results = list("vodkamartini" = 3) - required_reagents = list("vodka" = 2, "vermouth" = 1) + id = /datum/reagent/consumable/ethanol/vodkamartini + results = list(/datum/reagent/consumable/ethanol/vodkamartini = 3) + required_reagents = list(/datum/reagent/consumable/ethanol/vodka = 2, /datum/reagent/consumable/ethanol/vermouth = 1) /datum/chemical_reaction/white_russian name = "White Russian" - id = "whiterussian" - results = list("whiterussian" = 5) - required_reagents = list("blackrussian" = 3, "cream" = 2) + id = /datum/reagent/consumable/ethanol/white_russian + results = list(/datum/reagent/consumable/ethanol/white_russian = 5) + required_reagents = list(/datum/reagent/consumable/ethanol/black_russian = 3, /datum/reagent/consumable/cream = 2) /datum/chemical_reaction/whiskey_cola name = "Whiskey Cola" - id = "whiskeycola" - results = list("whiskeycola" = 3) - required_reagents = list("whiskey" = 2, "cola" = 1) + id = /datum/reagent/consumable/ethanol/whiskey_cola + results = list(/datum/reagent/consumable/ethanol/whiskey_cola = 3) + required_reagents = list(/datum/reagent/consumable/ethanol/whiskey = 2, /datum/reagent/consumable/space_cola = 1) /datum/chemical_reaction/screwdriver name = "Screwdriver" - id = "screwdrivercocktail" - results = list("screwdrivercocktail" = 3) - required_reagents = list("vodka" = 2, "orangejuice" = 1) + id = /datum/reagent/consumable/ethanol/screwdrivercocktail + results = list(/datum/reagent/consumable/ethanol/screwdrivercocktail = 3) + required_reagents = list(/datum/reagent/consumable/ethanol/vodka = 2, /datum/reagent/consumable/orangejuice = 1) /datum/chemical_reaction/bloody_mary name = "Bloody Mary" - id = "bloodymary" - results = list("bloodymary" = 4) - required_reagents = list("vodka" = 1, "tomatojuice" = 2, "limejuice" = 1) + id = /datum/reagent/consumable/ethanol/bloody_mary + results = list(/datum/reagent/consumable/ethanol/bloody_mary = 4) + required_reagents = list(/datum/reagent/consumable/ethanol/vodka = 1, /datum/reagent/consumable/tomatojuice = 2, /datum/reagent/consumable/limejuice = 1) /datum/chemical_reaction/gargle_blaster name = "Pan-Galactic Gargle Blaster" - id = "gargleblaster" - results = list("gargleblaster" = 5) - required_reagents = list("vodka" = 1, "gin" = 1, "whiskey" = 1, "cognac" = 1, "limejuice" = 1) + id = /datum/reagent/consumable/ethanol/gargle_blaster + results = list(/datum/reagent/consumable/ethanol/gargle_blaster = 5) + required_reagents = list(/datum/reagent/consumable/ethanol/vodka = 1, /datum/reagent/consumable/ethanol/gin = 1, /datum/reagent/consumable/ethanol/whiskey = 1, /datum/reagent/consumable/ethanol/cognac = 1, /datum/reagent/consumable/limejuice = 1) /datum/chemical_reaction/brave_bull name = "Brave Bull" - id = "bravebull" - results = list("bravebull" = 3) - required_reagents = list("tequila" = 2, "kahlua" = 1) + id = /datum/reagent/consumable/ethanol/brave_bull + results = list(/datum/reagent/consumable/ethanol/brave_bull = 3) + required_reagents = list(/datum/reagent/consumable/ethanol/tequila = 2, /datum/reagent/consumable/ethanol/kahlua = 1) /datum/chemical_reaction/tequila_sunrise name = "Tequila Sunrise" - id = "tequilasunrise" - results = list("tequilasunrise" = 5) - required_reagents = list("tequila" = 2, "orangejuice" = 2, "grenadine" = 1) + id = /datum/reagent/consumable/ethanol/tequila_sunrise + results = list(/datum/reagent/consumable/ethanol/tequila_sunrise = 5) + required_reagents = list(/datum/reagent/consumable/ethanol/tequila = 2, /datum/reagent/consumable/orangejuice = 2, /datum/reagent/consumable/grenadine = 1) /datum/chemical_reaction/toxins_special name = "Toxins Special" - id = "toxinsspecial" - results = list("toxinsspecial" = 5) - required_reagents = list("rum" = 2, "vermouth" = 1, "plasma" = 2) + id = /datum/reagent/consumable/ethanol/toxins_special + results = list(/datum/reagent/consumable/ethanol/toxins_special = 5) + required_reagents = list(/datum/reagent/consumable/ethanol/rum = 2, /datum/reagent/consumable/ethanol/vermouth = 1, /datum/reagent/toxin/plasma = 2) /datum/chemical_reaction/beepsky_smash name = "Beepksy Smash" - id = "beepksysmash" - results = list("beepskysmash" = 5) - required_reagents = list("limejuice" = 2, "quadruple_sec" = 2, "iron" = 1) + id = /datum/reagent/consumable/ethanol/beepsky_smash + results = list(/datum/reagent/consumable/ethanol/beepsky_smash = 5) + required_reagents = list(/datum/reagent/consumable/limejuice = 2, /datum/reagent/consumable/ethanol/quadruple_sec = 2, /datum/reagent/iron = 1) /datum/chemical_reaction/doctor_delight name = "The Doctor's Delight" - id = "doctordelight" - results = list("doctorsdelight" = 5) - required_reagents = list("limejuice" = 1, "tomatojuice" = 1, "orangejuice" = 1, "cream" = 1, "cryoxadone" = 1) + id = /datum/reagent/consumable/doctor_delight + results = list(/datum/reagent/consumable/doctor_delight = 5) + required_reagents = list(/datum/reagent/consumable/limejuice = 1, /datum/reagent/consumable/tomatojuice = 1, /datum/reagent/consumable/orangejuice = 1, /datum/reagent/consumable/cream = 1, /datum/reagent/medicine/cryoxadone = 1) /datum/chemical_reaction/irish_cream name = "Irish Cream" - id = "irishcream" - results = list("irishcream" = 3) - required_reagents = list("whiskey" = 2, "cream" = 1) + id = /datum/reagent/consumable/ethanol/irish_cream + results = list(/datum/reagent/consumable/ethanol/irish_cream = 3) + required_reagents = list(/datum/reagent/consumable/ethanol/whiskey = 2, /datum/reagent/consumable/cream = 1) /datum/chemical_reaction/manly_dorf name = "The Manly Dorf" - id = "manlydorf" - results = list("manlydorf" = 3) - required_reagents = list ("beer" = 1, "ale" = 2) + id = /datum/reagent/consumable/ethanol/manly_dorf + results = list(/datum/reagent/consumable/ethanol/manly_dorf = 3) + required_reagents = list (/datum/reagent/consumable/ethanol/beer = 1, /datum/reagent/consumable/ethanol/ale = 2) /datum/chemical_reaction/greenbeer name = "Green Beer" - id = "greenbeer" - results = list("greenbeer" = 10) - required_reagents = list("greencrayonpowder" = 1, "beer" = 10) + id = /datum/reagent/consumable/ethanol/beer/green + results = list(/datum/reagent/consumable/ethanol/beer/green = 10) + required_reagents = list(/datum/reagent/colorful_reagent/crayonpowder/green = 1, /datum/reagent/consumable/ethanol/beer = 10) /datum/chemical_reaction/hooch name = "Hooch" - id = "hooch" - results = list("hooch" = 3) - required_reagents = list ("ethanol" = 2, "welding_fuel" = 1) - required_catalysts = list("enzyme" = 1) + id = /datum/reagent/consumable/ethanol/hooch + results = list(/datum/reagent/consumable/ethanol/hooch = 3) + required_reagents = list (/datum/reagent/consumable/ethanol = 2, /datum/reagent/fuel = 1) + required_catalysts = list(/datum/reagent/consumable/enzyme = 1) /datum/chemical_reaction/irish_coffee name = "Irish Coffee" - id = "irishcoffee" - results = list("irishcoffee" = 2) - required_reagents = list("irishcream" = 1, "coffee" = 1) + id = /datum/reagent/consumable/ethanol/irishcoffee + results = list(/datum/reagent/consumable/ethanol/irishcoffee = 2) + required_reagents = list(/datum/reagent/consumable/ethanol/irish_cream = 1, /datum/reagent/consumable/coffee = 1) /datum/chemical_reaction/b52 name = "B-52" - id = "b52" - results = list("b52" = 3) - required_reagents = list("irishcream" = 1, "kahlua" = 1, "cognac" = 1) + id = /datum/reagent/consumable/ethanol/b52 + results = list(/datum/reagent/consumable/ethanol/b52 = 3) + required_reagents = list(/datum/reagent/consumable/ethanol/irish_cream = 1, /datum/reagent/consumable/ethanol/kahlua = 1, /datum/reagent/consumable/ethanol/cognac = 1) /datum/chemical_reaction/atomicbomb name = "Atomic Bomb" - id = "atomicbomb" - results = list("atomicbomb" = 10) - required_reagents = list("b52" = 10, "uranium" = 1) + id = /datum/reagent/consumable/ethanol/atomicbomb + results = list(/datum/reagent/consumable/ethanol/atomicbomb = 10) + required_reagents = list(/datum/reagent/consumable/ethanol/b52 = 10, /datum/reagent/uranium = 1) /datum/chemical_reaction/margarita name = "Margarita" - id = "margarita" - results = list("margarita" = 3) - required_reagents = list("tequila" = 2, "limejuice" = 1) + id = /datum/reagent/consumable/ethanol/margarita + results = list(/datum/reagent/consumable/ethanol/margarita = 3) + required_reagents = list(/datum/reagent/consumable/ethanol/tequila = 2, /datum/reagent/consumable/limejuice = 1) /datum/chemical_reaction/longislandicedtea name = "Long Island Iced Tea" - id = "longislandicedtea" - results = list("longislandicedtea" = 4) - required_reagents = list("vodka" = 1, "gin" = 1, "tequila" = 1, "cubalibre" = 1) + id = /datum/reagent/consumable/ethanol/longislandicedtea + results = list(/datum/reagent/consumable/ethanol/longislandicedtea = 4) + required_reagents = list(/datum/reagent/consumable/ethanol/vodka = 1, /datum/reagent/consumable/ethanol/gin = 1, /datum/reagent/consumable/ethanol/tequila = 1, /datum/reagent/consumable/ethanol/cuba_libre = 1) /datum/chemical_reaction/threemileisland name = "Three Mile Island Iced Tea" - id = "threemileisland" - results = list("threemileisland" = 10) - required_reagents = list("longislandicedtea" = 10, "uranium" = 1) + id = /datum/reagent/consumable/ethanol/threemileisland + results = list(/datum/reagent/consumable/ethanol/threemileisland = 10) + required_reagents = list(/datum/reagent/consumable/ethanol/longislandicedtea = 10, /datum/reagent/uranium = 1) /datum/chemical_reaction/whiskeysoda name = "Whiskey Soda" - id = "whiskeysoda" - results = list("whiskeysoda" = 3) - required_reagents = list("whiskey" = 2, "sodawater" = 1) + id = /datum/reagent/consumable/ethanol/whiskeysoda + results = list(/datum/reagent/consumable/ethanol/whiskeysoda = 3) + required_reagents = list(/datum/reagent/consumable/ethanol/whiskey = 2, /datum/reagent/consumable/sodawater = 1) /datum/chemical_reaction/black_russian name = "Black Russian" - id = "blackrussian" - results = list("blackrussian" = 5) - required_reagents = list("vodka" = 3, "kahlua" = 2) + id = /datum/reagent/consumable/ethanol/black_russian + results = list(/datum/reagent/consumable/ethanol/black_russian = 5) + required_reagents = list(/datum/reagent/consumable/ethanol/vodka = 3, /datum/reagent/consumable/ethanol/kahlua = 2) /datum/chemical_reaction/manhattan name = "Manhattan" - id = "manhattan" - results = list("manhattan" = 3) - required_reagents = list("whiskey" = 2, "vermouth" = 1) + id = /datum/reagent/consumable/ethanol/manhattan + results = list(/datum/reagent/consumable/ethanol/manhattan = 3) + required_reagents = list(/datum/reagent/consumable/ethanol/whiskey = 2, /datum/reagent/consumable/ethanol/vermouth = 1) /datum/chemical_reaction/manhattan_proj name = "Manhattan Project" - id = "manhattan_proj" - results = list("manhattan_proj" = 10) - required_reagents = list("manhattan" = 10, "uranium" = 1) + id = /datum/reagent/consumable/ethanol/manhattan_proj + results = list(/datum/reagent/consumable/ethanol/manhattan_proj = 10) + required_reagents = list(/datum/reagent/consumable/ethanol/manhattan = 10, /datum/reagent/uranium = 1) /datum/chemical_reaction/vodka_tonic name = "Vodka and Tonic" - id = "vodkatonic" - results = list("vodkatonic" = 3) - required_reagents = list("vodka" = 2, "tonic" = 1) + id = /datum/reagent/consumable/ethanol/vodkatonic + results = list(/datum/reagent/consumable/ethanol/vodkatonic = 3) + required_reagents = list(/datum/reagent/consumable/ethanol/vodka = 2, /datum/reagent/consumable/tonic = 1) /datum/chemical_reaction/gin_fizz name = "Gin Fizz" - id = "ginfizz" - results = list("ginfizz" = 4) - required_reagents = list("gin" = 2, "sodawater" = 1, "limejuice" = 1) + id = /datum/reagent/consumable/ethanol/ginfizz + results = list(/datum/reagent/consumable/ethanol/ginfizz = 4) + required_reagents = list(/datum/reagent/consumable/ethanol/gin = 2, /datum/reagent/consumable/sodawater = 1, /datum/reagent/consumable/limejuice = 1) /datum/chemical_reaction/bahama_mama name = "Bahama mama" - id = "bahama_mama" - results = list("bahama_mama" = 6) - required_reagents = list("rum" = 2, "orangejuice" = 2, "limejuice" = 1, "ice" = 1) + id = /datum/reagent/consumable/ethanol/bahama_mama + results = list(/datum/reagent/consumable/ethanol/bahama_mama = 6) + required_reagents = list(/datum/reagent/consumable/ethanol/rum = 2, /datum/reagent/consumable/orangejuice = 2, /datum/reagent/consumable/limejuice = 1, /datum/reagent/consumable/ice = 1) /datum/chemical_reaction/singulo name = "Singulo" - id = "singulo" - results = list("singulo" = 10) - required_reagents = list("vodka" = 5, "radium" = 1, "wine" = 5) + id = /datum/reagent/consumable/ethanol/singulo + results = list(/datum/reagent/consumable/ethanol/singulo = 10) + required_reagents = list(/datum/reagent/consumable/ethanol/vodka = 5, /datum/reagent/radium = 1, /datum/reagent/consumable/ethanol/wine = 5) /datum/chemical_reaction/alliescocktail name = "Allies Cocktail" - id = "alliescocktail" - results = list("alliescocktail" = 2) - required_reagents = list("martini" = 1, "vodka" = 1) + id = /datum/reagent/consumable/ethanol/alliescocktail + results = list(/datum/reagent/consumable/ethanol/alliescocktail = 2) + required_reagents = list(/datum/reagent/consumable/ethanol/martini = 1, /datum/reagent/consumable/ethanol/vodka = 1) /datum/chemical_reaction/demonsblood name = "Demons Blood" - id = "demonsblood" - results = list("demonsblood" = 4) - required_reagents = list("rum" = 1, "spacemountainwind" = 1, "blood" = 1, "dr_gibb" = 1) + id = /datum/reagent/consumable/ethanol/demonsblood + results = list(/datum/reagent/consumable/ethanol/demonsblood = 4) + required_reagents = list(/datum/reagent/consumable/ethanol/rum = 1, /datum/reagent/consumable/spacemountainwind = 1, /datum/reagent/blood = 1, /datum/reagent/consumable/dr_gibb = 1) /datum/chemical_reaction/booger name = "Booger" - id = "booger" - results = list("booger" = 4) - required_reagents = list("cream" = 1, "banana" = 1, "rum" = 1, "watermelonjuice" = 1) + id = /datum/reagent/consumable/ethanol/booger + results = list(/datum/reagent/consumable/ethanol/booger = 4) + required_reagents = list(/datum/reagent/consumable/cream = 1, /datum/reagent/consumable/banana = 1, /datum/reagent/consumable/ethanol/rum = 1, /datum/reagent/consumable/watermelonjuice = 1) /datum/chemical_reaction/antifreeze name = "Anti-freeze" - id = "antifreeze" - results = list("antifreeze" = 4) - required_reagents = list("vodka" = 2, "cream" = 1, "ice" = 1) + id = /datum/reagent/consumable/ethanol/antifreeze + results = list(/datum/reagent/consumable/ethanol/antifreeze = 4) + required_reagents = list(/datum/reagent/consumable/ethanol/vodka = 2, /datum/reagent/consumable/cream = 1, /datum/reagent/consumable/ice = 1) /datum/chemical_reaction/barefoot name = "Barefoot" - id = "barefoot" - results = list("barefoot" = 3) - required_reagents = list("berryjuice" = 1, "cream" = 1, "vermouth" = 1) + id = /datum/reagent/consumable/ethanol/barefoot + results = list(/datum/reagent/consumable/ethanol/barefoot = 3) + required_reagents = list(/datum/reagent/consumable/berryjuice = 1, /datum/reagent/consumable/cream = 1, /datum/reagent/consumable/ethanol/vermouth = 1) ////DRINKS THAT REQUIRED IMPROVED SPRITES BELOW:: -Agouri///// /datum/chemical_reaction/sbiten name = "Sbiten" - id = "sbiten" - results = list("sbiten" = 10) - required_reagents = list("vodka" = 10, "capsaicin" = 1) + id = /datum/reagent/consumable/ethanol/sbiten + results = list(/datum/reagent/consumable/ethanol/sbiten = 10) + required_reagents = list(/datum/reagent/consumable/ethanol/vodka = 10, /datum/reagent/consumable/capsaicin = 1) /datum/chemical_reaction/red_mead name = "Red Mead" - id = "red_mead" - results = list("red_mead" = 2) - required_reagents = list("blood" = 1, "mead" = 1) + id = /datum/reagent/consumable/ethanol/red_mead + results = list(/datum/reagent/consumable/ethanol/red_mead = 2) + required_reagents = list(/datum/reagent/blood = 1, /datum/reagent/consumable/ethanol/mead = 1) /datum/chemical_reaction/mead name = "Mead" - id = "mead" - results = list("mead" = 2) - required_reagents = list("honey" = 2) - required_catalysts = list("enzyme" = 5) + id = /datum/reagent/consumable/ethanol/mead + results = list(/datum/reagent/consumable/ethanol/mead = 2) + required_reagents = list(/datum/reagent/consumable/honey = 2) + required_catalysts = list(/datum/reagent/consumable/enzyme = 5) /datum/chemical_reaction/iced_beer name = "Iced Beer" - id = "iced_beer" - results = list("iced_beer" = 6) - required_reagents = list("beer" = 5, "ice" = 1) + id = /datum/reagent/consumable/ethanol/iced_beer + results = list(/datum/reagent/consumable/ethanol/iced_beer = 6) + required_reagents = list(/datum/reagent/consumable/ethanol/beer = 5, /datum/reagent/consumable/ice = 1) /datum/chemical_reaction/grog name = "Grog" - id = "grog" - results = list("grog" = 2) - required_reagents = list("rum" = 1, "water" = 1) + id = /datum/reagent/consumable/ethanol/grog + results = list(/datum/reagent/consumable/ethanol/grog = 2) + required_reagents = list(/datum/reagent/consumable/ethanol/rum = 1, /datum/reagent/water = 1) /datum/chemical_reaction/soy_latte name = "Soy Latte" - id = "soy_latte" - results = list("soy_latte" = 2) - required_reagents = list("coffee" = 1, "soymilk" = 1) + id = /datum/reagent/consumable/soy_latte + results = list(/datum/reagent/consumable/soy_latte = 2) + required_reagents = list(/datum/reagent/consumable/coffee = 1, /datum/reagent/consumable/soymilk = 1) /datum/chemical_reaction/cafe_latte name = "Cafe Latte" - id = "cafe_latte" - results = list("cafe_latte" = 2) - required_reagents = list("coffee" = 1, "milk" = 1) + id = /datum/reagent/consumable/cafe_latte + results = list(/datum/reagent/consumable/cafe_latte = 2) + required_reagents = list(/datum/reagent/consumable/coffee = 1, /datum/reagent/consumable/milk = 1) /datum/chemical_reaction/acidspit name = "Acid Spit" - id = "acidspit" - results = list("acidspit" = 6) - required_reagents = list("sacid" = 1, "wine" = 5) + id = /datum/reagent/consumable/ethanol/acid_spit + results = list(/datum/reagent/consumable/ethanol/acid_spit = 6) + required_reagents = list(/datum/reagent/toxin/acid = 1, /datum/reagent/consumable/ethanol/wine = 5) /datum/chemical_reaction/amasec name = "Amasec" - id = "amasec" - results = list("amasec" = 10) - required_reagents = list("iron" = 1, "wine" = 5, "vodka" = 5) + id = /datum/reagent/consumable/ethanol/amasec + results = list(/datum/reagent/consumable/ethanol/amasec = 10) + required_reagents = list(/datum/reagent/iron = 1, /datum/reagent/consumable/ethanol/wine = 5, /datum/reagent/consumable/ethanol/vodka = 5) /datum/chemical_reaction/changelingsting name = "Changeling Sting" - id = "changelingsting" - results = list("changelingsting" = 5) - required_reagents = list("screwdrivercocktail" = 1, "lemon_lime" = 2) + id = /datum/reagent/consumable/ethanol/changelingsting + results = list(/datum/reagent/consumable/ethanol/changelingsting = 5) + required_reagents = list(/datum/reagent/consumable/ethanol/screwdrivercocktail = 1, /datum/reagent/consumable/lemon_lime = 2) /datum/chemical_reaction/aloe name = "Aloe" - id = "aloe" - results = list("aloe" = 2) - required_reagents = list("irishcream" = 1, "watermelonjuice" = 1) + id = /datum/reagent/consumable/ethanol/aloe + results = list(/datum/reagent/consumable/ethanol/aloe = 2) + required_reagents = list(/datum/reagent/consumable/ethanol/irish_cream = 1, /datum/reagent/consumable/watermelonjuice = 1) /datum/chemical_reaction/andalusia name = "Andalusia" - id = "andalusia" - results = list("andalusia" = 3) - required_reagents = list("rum" = 1, "whiskey" = 1, "lemonjuice" = 1) + id = /datum/reagent/consumable/ethanol/andalusia + results = list(/datum/reagent/consumable/ethanol/andalusia = 3) + required_reagents = list(/datum/reagent/consumable/ethanol/rum = 1, /datum/reagent/consumable/ethanol/whiskey = 1, /datum/reagent/consumable/lemonjuice = 1) /datum/chemical_reaction/neurotoxin name = "Neurotoxin" - id = "neurotoxin" - results = list("neurotoxin" = 2) - required_reagents = list("gargleblaster" = 1, "morphine" = 1) + id = /datum/reagent/consumable/ethanol/neurotoxin + results = list(/datum/reagent/consumable/ethanol/neurotoxin = 2) + required_reagents = list(/datum/reagent/consumable/ethanol/gargle_blaster = 1, /datum/reagent/medicine/morphine = 1) //FermiChem vars: Easy to make, but hard to make potent OptimalTempMin = 100 // Lower area of bell curve for determining heat based rate reactions OptimalTempMax = 950 // Upper end for above @@ -404,8 +404,8 @@ var/datum/reagent/consumable/ethanol/neurotoxin/Nt = locate(/datum/reagent/consumable/ethanol/neurotoxin) in my_atom.reagents.reagent_list var/cached_volume = Nt.volume if(Nt.purity < 0.5) - holder.remove_reagent(src.id, cached_volume) - holder.add_reagent("neuroweak", cached_volume) + holder.remove_reagent(type, cached_volume) + holder.add_reagent(/datum/reagent/consumable/ethanol/neuroweak, cached_volume) */ /datum/chemical_reaction/neurotoxin/FermiExplode(datum/reagents, var/atom/my_atom, volume, temp, pH)//reduced size @@ -414,415 +414,415 @@ /datum/chemical_reaction/snowwhite name = "Snow White" - id = "snowwhite" - results = list("snowwhite" = 2) - required_reagents = list("beer" = 1, "lemon_lime" = 1) + id = /datum/reagent/consumable/ethanol/snowwhite + results = list(/datum/reagent/consumable/ethanol/snowwhite = 2) + required_reagents = list(/datum/reagent/consumable/ethanol/beer = 1, /datum/reagent/consumable/lemon_lime = 1) /datum/chemical_reaction/irishcarbomb name = "Irish Car Bomb" - id = "irishcarbomb" - results = list("irishcarbomb" = 2) - required_reagents = list("ale" = 1, "irishcream" = 1) + id = /datum/reagent/consumable/ethanol/irishcarbomb + results = list(/datum/reagent/consumable/ethanol/irishcarbomb = 2) + required_reagents = list(/datum/reagent/consumable/ethanol/ale = 1, /datum/reagent/consumable/ethanol/irish_cream = 1) /datum/chemical_reaction/syndicatebomb name = "Syndicate Bomb" - id = "syndicatebomb" - results = list("syndicatebomb" = 2) - required_reagents = list("beer" = 1, "whiskeycola" = 1) + id = /datum/reagent/consumable/ethanol/syndicatebomb + results = list(/datum/reagent/consumable/ethanol/syndicatebomb = 2) + required_reagents = list(/datum/reagent/consumable/ethanol/beer = 1, /datum/reagent/consumable/ethanol/whiskey_cola = 1) /datum/chemical_reaction/erikasurprise name = "Erika Surprise" - id = "erikasurprise" - results = list("erikasurprise" = 5) - required_reagents = list("ale" = 1, "limejuice" = 1, "whiskey" = 1, "banana" = 1, "ice" = 1) + id = /datum/reagent/consumable/ethanol/erikasurprise + results = list(/datum/reagent/consumable/ethanol/erikasurprise = 5) + required_reagents = list(/datum/reagent/consumable/ethanol/ale = 1, /datum/reagent/consumable/limejuice = 1, /datum/reagent/consumable/ethanol/whiskey = 1, /datum/reagent/consumable/banana = 1, /datum/reagent/consumable/ice = 1) /datum/chemical_reaction/devilskiss name = "Devils Kiss" - id = "devilskiss" - results = list("devilskiss" = 3) - required_reagents = list("blood" = 1, "kahlua" = 1, "rum" = 1) + id = /datum/reagent/consumable/ethanol/devilskiss + results = list(/datum/reagent/consumable/ethanol/devilskiss = 3) + required_reagents = list(/datum/reagent/blood = 1, /datum/reagent/consumable/ethanol/kahlua = 1, /datum/reagent/consumable/ethanol/rum = 1) /datum/chemical_reaction/hippiesdelight name = "Hippies Delight" - id = "hippiesdelight" - results = list("hippiesdelight" = 2) - required_reagents = list("mushroomhallucinogen" = 1, "gargleblaster" = 1) + id = /datum/reagent/consumable/ethanol/hippies_delight + results = list(/datum/reagent/consumable/ethanol/hippies_delight = 2) + required_reagents = list(/datum/reagent/drug/mushroomhallucinogen = 1, /datum/reagent/consumable/ethanol/gargle_blaster = 1) /datum/chemical_reaction/bananahonk name = "Banana Honk" - id = "bananahonk" - results = list("bananahonk" = 2) - required_reagents = list("laughter" = 1, "cream" = 1) + id = /datum/reagent/consumable/ethanol/bananahonk + results = list(/datum/reagent/consumable/ethanol/bananahonk = 2) + required_reagents = list(/datum/reagent/consumable/laughter = 1, /datum/reagent/consumable/cream = 1) /datum/chemical_reaction/silencer name = "Silencer" - id = "silencer" - results = list("silencer" = 3) - required_reagents = list("nothing" = 1, "cream" = 1, "sugar" = 1) + id = /datum/reagent/consumable/ethanol/silencer + results = list(/datum/reagent/consumable/ethanol/silencer = 3) + required_reagents = list(/datum/reagent/consumable/nothing = 1, /datum/reagent/consumable/cream = 1, /datum/reagent/consumable/sugar = 1) /datum/chemical_reaction/driestmartini name = "Driest Martini" - id = "driestmartini" - results = list("driestmartini" = 2) - required_reagents = list("nothing" = 1, "gin" = 1) + id = /datum/reagent/consumable/ethanol/driestmartini + results = list(/datum/reagent/consumable/ethanol/driestmartini = 2) + required_reagents = list(/datum/reagent/consumable/nothing = 1, /datum/reagent/consumable/ethanol/gin = 1) /datum/chemical_reaction/thirteenloko name = "Thirteen Loko" - id = "thirteenloko" - results = list("thirteenloko" = 3) - required_reagents = list("vodka" = 1, "coffee" = 1, "limejuice" = 1) + id = /datum/reagent/consumable/ethanol/thirteenloko + results = list(/datum/reagent/consumable/ethanol/thirteenloko = 3) + required_reagents = list(/datum/reagent/consumable/ethanol/vodka = 1, /datum/reagent/consumable/coffee = 1, /datum/reagent/consumable/limejuice = 1) /datum/chemical_reaction/chocolatepudding name = "Chocolate Pudding" - id = "chocolatepudding" - results = list("chocolatepudding" = 20) - required_reagents = list("chocolate_milk" = 10, "eggyolk" = 5) + id = /datum/reagent/consumable/chocolatepudding + results = list(/datum/reagent/consumable/chocolatepudding = 20) + required_reagents = list(/datum/reagent/consumable/milk/chocolate_milk = 10, /datum/reagent/consumable/eggyolk = 5) /datum/chemical_reaction/vanillapudding name = "Vanilla Pudding" - id = "vanillapudding" - results = list("vanillapudding" = 20) - required_reagents = list("vanilla" = 5, "milk" = 5, "eggyolk" = 5) + id = /datum/reagent/consumable/vanillapudding + results = list(/datum/reagent/consumable/vanillapudding = 20) + required_reagents = list(/datum/reagent/consumable/vanilla = 5, /datum/reagent/consumable/milk = 5, /datum/reagent/consumable/eggyolk = 5) /datum/chemical_reaction/drunkenblumpkin name = "Drunken Blumpkin" - id = "drunkenblumpkin" - results = list("drunkenblumpkin" = 4) - required_reagents = list("blumpkinjuice" = 1, "irishcream" = 2, "ice" = 1) + id = /datum/reagent/consumable/ethanol/drunkenblumpkin + results = list(/datum/reagent/consumable/ethanol/drunkenblumpkin = 4) + required_reagents = list(/datum/reagent/consumable/blumpkinjuice = 1, /datum/reagent/consumable/ethanol/irish_cream = 2, /datum/reagent/consumable/ice = 1) /datum/chemical_reaction/pumpkin_latte name = "Pumpkin space latte" - id = "pumpkin_latte" - results = list("pumpkin_latte" = 15) - required_reagents = list("pumpkinjuice" = 5, "coffee" = 5, "cream" = 5) + id = /datum/reagent/consumable/pumpkin_latte + results = list(/datum/reagent/consumable/pumpkin_latte = 15) + required_reagents = list(/datum/reagent/consumable/pumpkinjuice = 5, /datum/reagent/consumable/coffee = 5, /datum/reagent/consumable/cream = 5) /datum/chemical_reaction/gibbfloats name = "Gibb Floats" - id = "gibbfloats" - results = list("gibbfloats" = 15) - required_reagents = list("dr_gibb" = 5, "ice" = 5, "cream" = 5) + id = /datum/reagent/consumable/gibbfloats + results = list(/datum/reagent/consumable/gibbfloats = 15) + required_reagents = list(/datum/reagent/consumable/dr_gibb = 5, /datum/reagent/consumable/ice = 5, /datum/reagent/consumable/cream = 5) /datum/chemical_reaction/triple_citrus name = "triple_citrus" - id = "triple_citrus" - results = list("triple_citrus" = 5) - required_reagents = list("lemonjuice" = 1, "limejuice" = 1, "orangejuice" = 1) + id = /datum/reagent/consumable/triple_citrus + results = list(/datum/reagent/consumable/triple_citrus = 5) + required_reagents = list(/datum/reagent/consumable/lemonjuice = 1, /datum/reagent/consumable/limejuice = 1, /datum/reagent/consumable/orangejuice = 1) /datum/chemical_reaction/grape_soda name = "grape soda" - id = "grapesoda" - results = list("grapesoda" = 2) - required_reagents = list("grapejuice" = 1, "sodawater" = 1) + id = /datum/reagent/consumable/grape_soda + results = list(/datum/reagent/consumable/grape_soda = 2) + required_reagents = list(/datum/reagent/consumable/grapejuice = 1, /datum/reagent/consumable/sodawater = 1) /datum/chemical_reaction/grappa name = "grappa" - id = "grappa" - results = list("grappa" = 10) - required_reagents = list ("wine" = 10) - required_catalysts = list ("enzyme" = 5) + id = /datum/reagent/consumable/ethanol/grappa + results = list(/datum/reagent/consumable/ethanol/grappa = 10) + required_reagents = list (/datum/reagent/consumable/ethanol/wine = 10) + required_catalysts = list (/datum/reagent/consumable/enzyme = 5) /datum/chemical_reaction/whiskey_sour name = "Whiskey Sour" - id = "whiskey_sour" - results = list("whiskey_sour" = 3) - required_reagents = list("whiskey" = 1, "lemonjuice" = 1, "sugar" = 1) + id = /datum/reagent/consumable/ethanol/whiskey_sour + results = list(/datum/reagent/consumable/ethanol/whiskey_sour = 3) + required_reagents = list(/datum/reagent/consumable/ethanol/whiskey = 1, /datum/reagent/consumable/lemonjuice = 1, /datum/reagent/consumable/sugar = 1) mix_message = "The mixture darkens to a rich gold hue." /datum/chemical_reaction/fetching_fizz name = "Fetching Fizz" - id = "fetching_fizz" - results = list("fetching_fizz" = 3) - required_reagents = list("nuka_cola" = 1, "iron" = 1) //Manufacturable from only the mining station + id = /datum/reagent/consumable/ethanol/fetching_fizz + results = list(/datum/reagent/consumable/ethanol/fetching_fizz = 3) + required_reagents = list(/datum/reagent/consumable/nuka_cola = 1, /datum/reagent/iron = 1) //Manufacturable from only the mining station mix_message = "The mixture slightly vibrates before settling." /datum/chemical_reaction/hearty_punch name = "Hearty Punch" - id = "hearty_punch" - results = list("hearty_punch" = 1) //Very little, for balance reasons - required_reagents = list("bravebull" = 5, "syndicatebomb" = 5, "absinthe" = 5) + id = /datum/reagent/consumable/ethanol/hearty_punch + results = list(/datum/reagent/consumable/ethanol/hearty_punch = 1) //Very little, for balance reasons + required_reagents = list(/datum/reagent/consumable/ethanol/brave_bull = 5, /datum/reagent/consumable/ethanol/syndicatebomb = 5, /datum/reagent/consumable/ethanol/absinthe = 5) mix_message = "The mixture darkens to a healthy crimson." required_temp = 315 //Piping hot! /datum/chemical_reaction/bacchus_blessing name = "Bacchus' Blessing" - id = "bacchus_blessing" - results = list("bacchus_blessing" = 4) - required_reagents = list("hooch" = 1, "absinthe" = 1, "manlydorf" = 1, "syndicatebomb" = 1) + id = /datum/reagent/consumable/ethanol/bacchus_blessing + results = list(/datum/reagent/consumable/ethanol/bacchus_blessing = 4) + required_reagents = list(/datum/reagent/consumable/ethanol/hooch = 1, /datum/reagent/consumable/ethanol/absinthe = 1, /datum/reagent/consumable/ethanol/manly_dorf = 1, /datum/reagent/consumable/ethanol/syndicatebomb = 1) mix_message = "The mixture turns to a sickening froth." /datum/chemical_reaction/lemonade name = "Lemonade" - id = "lemonade" - results = list("lemonade" = 5) - required_reagents = list("lemonjuice" = 2, "water" = 2, "sugar" = 1, "ice" = 1) + id = /datum/reagent/consumable/lemonade + results = list(/datum/reagent/consumable/lemonade = 5) + required_reagents = list(/datum/reagent/consumable/lemonjuice = 2, /datum/reagent/water = 2, /datum/reagent/consumable/sugar = 1, /datum/reagent/consumable/ice = 1) mix_message = "You're suddenly reminded of home." /datum/chemical_reaction/arnold_palmer name = "Arnold Palmer" - id = "arnold_palmer" - results = list("arnold_palmer" = 2) - required_reagents = list("tea" = 1, "lemonade" = 1) + id = /datum/reagent/consumable/tea/arnold_palmer + results = list(/datum/reagent/consumable/tea/arnold_palmer = 2) + required_reagents = list(/datum/reagent/consumable/tea = 1, /datum/reagent/consumable/lemonade = 1) mix_message = "The smells of fresh green grass and sand traps waft through the air as the mixture turns a friendly yellow-orange." /datum/chemical_reaction/chocolate_milk name = "chocolate milk" - id = "chocolate_milk" - results = list("chocolate_milk" = 2) - required_reagents = list("milk" = 1, "cocoa" = 1) + id = /datum/reagent/consumable/milk/chocolate_milk + results = list(/datum/reagent/consumable/milk/chocolate_milk = 2) + required_reagents = list(/datum/reagent/consumable/milk = 1, /datum/reagent/consumable/coco = 1) mix_message = "The color changes as the mixture blends smoothly." /datum/chemical_reaction/eggnog name = "eggnog" - id = "eggnog" - results = list("eggnog" = 15) - required_reagents = list("rum" = 5, "cream" = 5, "eggyolk" = 5) + id = /datum/reagent/consumable/ethanol/eggnog + results = list(/datum/reagent/consumable/ethanol/eggnog = 15) + required_reagents = list(/datum/reagent/consumable/ethanol/rum = 5, /datum/reagent/consumable/cream = 5, /datum/reagent/consumable/eggyolk = 5) /datum/chemical_reaction/narsour name = "Nar'sour" - id = "narsour" - results = list("narsour" = 1) - required_reagents = list("blood" = 1, "lemonjuice" = 1, "demonsblood" = 1) + id = /datum/reagent/consumable/ethanol/narsour + results = list(/datum/reagent/consumable/ethanol/narsour = 1) + required_reagents = list(/datum/reagent/blood = 1, /datum/reagent/consumable/lemonjuice = 1, /datum/reagent/consumable/ethanol/demonsblood = 1) mix_message = "The mixture develops a sinister glow." mix_sound = 'sound/effects/singlebeat.ogg' /datum/chemical_reaction/quadruplesec name = "Quadruple Sec" - id = "quadruple_sec" - results = list("quadruple_sec" = 15) - required_reagents = list("triple_sec" = 5, "triple_citrus" = 5, "creme_de_menthe" = 5) + id = /datum/reagent/consumable/ethanol/quadruple_sec + results = list(/datum/reagent/consumable/ethanol/quadruple_sec = 15) + required_reagents = list(/datum/reagent/consumable/ethanol/triple_sec = 5, /datum/reagent/consumable/triple_citrus = 5, /datum/reagent/consumable/ethanol/creme_de_menthe = 5) mix_message = "The snap of a taser emanates clearly from the mixture as it settles." mix_sound = 'sound/weapons/taser.ogg' /datum/chemical_reaction/grasshopper name = "Grasshopper" - id = "grasshopper" - results = list("grasshopper" = 15) - required_reagents = list("cream" = 5, "creme_de_menthe" = 5, "creme_de_cacao" = 5) + id = /datum/reagent/consumable/ethanol/grasshopper + results = list(/datum/reagent/consumable/ethanol/grasshopper = 15) + required_reagents = list(/datum/reagent/consumable/cream = 5, /datum/reagent/consumable/ethanol/creme_de_menthe = 5, /datum/reagent/consumable/ethanol/creme_de_cacao = 5) mix_message = "A vibrant green bubbles forth as the mixture emulsifies." /datum/chemical_reaction/stinger name = "Stinger" - id = "stinger" - results = list("stinger" = 15) - required_reagents = list("whiskey" = 10, "creme_de_menthe" = 5 ) + id = /datum/reagent/consumable/ethanol/stinger + results = list(/datum/reagent/consumable/ethanol/stinger = 15) + required_reagents = list(/datum/reagent/consumable/ethanol/whiskey = 10, /datum/reagent/consumable/ethanol/creme_de_menthe = 5) /datum/chemical_reaction/quintuplesec name = "Quintuple Sec" - id = "quintuple_sec" - results = list("quintuple_sec" = 15) - required_reagents = list("quadruple_sec" = 5, "clownstears" = 5, "syndicatebomb" = 5) + id = /datum/reagent/consumable/ethanol/quintuple_sec + results = list(/datum/reagent/consumable/ethanol/quintuple_sec = 15) + required_reagents = list(/datum/reagent/consumable/ethanol/quadruple_sec = 5, /datum/reagent/consumable/clownstears = 5, /datum/reagent/consumable/ethanol/syndicatebomb = 5) mix_message = "Judgement is upon you." mix_message = 'sound/items/airhorn2.ogg' /datum/chemical_reaction/bastion_bourbon name = "Bastion Bourbon" - id = "bastion_bourbon" - results = list("bastion_bourbon" = 2) - required_reagents = list("tea" = 1, "creme_de_menthe" = 1, "triple_citrus" = 1, "berryjuice" = 1) //herbal and minty, with a hint of citrus and berry + id = /datum/reagent/consumable/ethanol/bastion_bourbon + results = list(/datum/reagent/consumable/ethanol/bastion_bourbon = 2) + required_reagents = list(/datum/reagent/consumable/tea = 1, /datum/reagent/consumable/ethanol/creme_de_menthe = 1, /datum/reagent/consumable/triple_citrus = 1, /datum/reagent/consumable/berryjuice = 1) //herbal and minty, with a hint of citrus and berry mix_message = "You catch an aroma of hot tea and fruits as the mix blends into a blue-green color." /datum/chemical_reaction/squirt_cider name = "Squirt Cider" - id = "squirt_cider" - results = list("squirt_cider" = 1) - required_reagents = list("water" = 1, "tomatojuice" = 1, "nutriment" = 1) + id = /datum/reagent/consumable/ethanol/squirt_cider + results = list(/datum/reagent/consumable/ethanol/squirt_cider = 1) + required_reagents = list(/datum/reagent/water = 1, /datum/reagent/consumable/tomatojuice = 1, /datum/reagent/consumable/nutriment = 1) mix_message = "The mix swirls and turns a bright red that reminds you of an apple's skin." /datum/chemical_reaction/fringe_weaver name = "Fringe Weaver" - id = "fringe_weaver" - results = list("fringe_weaver" = 10) - required_reagents = list("ethanol" = 9, "sugar" = 1) //9 karmotrine, 1 adelhyde + id = /datum/reagent/consumable/ethanol/fringe_weaver + results = list(/datum/reagent/consumable/ethanol/fringe_weaver = 10) + required_reagents = list(/datum/reagent/consumable/ethanol = 9, /datum/reagent/consumable/sugar = 1) //9 karmotrine, 1 adelhyde mix_message = "The mix turns a pleasant cream color and foams up." /datum/chemical_reaction/sugar_rush name = "Sugar Rush" - id = "sugar_rush" - results = list("sugar_rush" = 4) - required_reagents = list("sugar" = 2, "lemonjuice" = 1, "wine" = 1) //2 adelhyde (sweet), 1 powdered delta (sour), 1 karmotrine (alcohol) + id = /datum/reagent/consumable/ethanol/sugar_rush + results = list(/datum/reagent/consumable/ethanol/sugar_rush = 4) + required_reagents = list(/datum/reagent/consumable/sugar = 2, /datum/reagent/consumable/lemonjuice = 1, /datum/reagent/consumable/ethanol/wine = 1) //2 adelhyde (sweet), 1 powdered delta (sour), 1 karmotrine (alcohol) mix_message = "The mixture bubbles and brightens into a girly pink." /datum/chemical_reaction/crevice_spike name = "Crevice Spike" - id = "crevice_spike" - results = list("crevice_spike" = 6) - required_reagents = list("limejuice" = 2, "capsaicin" = 4) //2 powdered delta (sour), 4 flanergide (spicy) + id = /datum/reagent/consumable/ethanol/crevice_spike + results = list(/datum/reagent/consumable/ethanol/crevice_spike = 6) + required_reagents = list(/datum/reagent/consumable/limejuice = 2, /datum/reagent/consumable/capsaicin = 4) //2 powdered delta (sour), 4 flanergide (spicy) mix_message = "The mixture stings your eyes as it settles." /datum/chemical_reaction/sake name = "sake" - id = "sake" - results = list("sake" = 10) - required_reagents = list("rice" = 10) - required_catalysts = list("enzyme" = 5) + id = /datum/reagent/consumable/ethanol/sake + results = list(/datum/reagent/consumable/ethanol/sake = 10) + required_reagents = list(/datum/reagent/consumable/rice = 10) + required_catalysts = list(/datum/reagent/consumable/enzyme = 5) mix_message = "The rice grains ferment into a clear, sweet-smelling liquid." /datum/chemical_reaction/peppermint_patty name = "Peppermint Patty" - id = "peppermint_patty" - results = list("peppermint_patty" = 10) - required_reagents = list("hot_coco" = 6, "creme_de_cacao" = 1, "creme_de_menthe" = 1, "vodka" = 1, "menthol" = 1) + id = /datum/reagent/consumable/ethanol/peppermint_patty + results = list(/datum/reagent/consumable/ethanol/peppermint_patty = 10) + required_reagents = list(/datum/reagent/consumable/hot_coco = 6, /datum/reagent/consumable/ethanol/creme_de_cacao = 1, /datum/reagent/consumable/ethanol/creme_de_menthe = 1, /datum/reagent/consumable/ethanol/vodka = 1, /datum/reagent/consumable/menthol = 1) mix_message = "The coco turns mint green just as the strong scent hits your nose." /datum/chemical_reaction/alexander name = "Alexander" - id = "alexander" - results = list("alexander" = 3) - required_reagents = list("cognac" = 1, "creme_de_cacao" = 1, "cream" = 1) + id = /datum/reagent/consumable/ethanol/alexander + results = list(/datum/reagent/consumable/ethanol/alexander = 3) + required_reagents = list(/datum/reagent/consumable/ethanol/cognac = 1, /datum/reagent/consumable/ethanol/creme_de_cacao = 1, /datum/reagent/consumable/cream = 1) /datum/chemical_reaction/sidecar name = "Sidecar" - id = "sidecar" - results = list("sidecar" = 4) - required_reagents = list("cognac" = 2, "triple_sec" = 1, "lemonjuice" = 1) + id = /datum/reagent/consumable/ethanol/sidecar + results = list(/datum/reagent/consumable/ethanol/sidecar = 4) + required_reagents = list(/datum/reagent/consumable/ethanol/cognac = 2, /datum/reagent/consumable/ethanol/triple_sec = 1, /datum/reagent/consumable/lemonjuice = 1) /datum/chemical_reaction/between_the_sheets name = "Between the Sheets" - id = "between_the_sheets" - results = list("between_the_sheets" = 5) - required_reagents = list("rum" = 1, "sidecar" = 4) + id = /datum/reagent/consumable/ethanol/between_the_sheets + results = list(/datum/reagent/consumable/ethanol/between_the_sheets = 5) + required_reagents = list(/datum/reagent/consumable/ethanol/rum = 1, /datum/reagent/consumable/ethanol/sidecar = 4) /datum/chemical_reaction/kamikaze name = "Kamikaze" - id = "kamikaze" - results = list("kamikaze" = 3) - required_reagents = list("vodka" = 1, "triple_sec" = 1, "limejuice" = 1) + id = /datum/reagent/consumable/ethanol/kamikaze + results = list(/datum/reagent/consumable/ethanol/kamikaze = 3) + required_reagents = list(/datum/reagent/consumable/ethanol/vodka = 1, /datum/reagent/consumable/ethanol/triple_sec = 1, /datum/reagent/consumable/limejuice = 1) /datum/chemical_reaction/mojito name = "Mojito" - id = "mojito" - results = list("mojito" = 5) - required_reagents = list("rum" = 1, "sugar" = 1, "limejuice" = 1, "sodawater" = 1, "menthol" = 1) + id = /datum/reagent/consumable/ethanol/mojito + results = list(/datum/reagent/consumable/ethanol/mojito = 5) + required_reagents = list(/datum/reagent/consumable/ethanol/rum = 1, /datum/reagent/consumable/sugar = 1, /datum/reagent/consumable/limejuice = 1, /datum/reagent/consumable/sodawater = 1, /datum/reagent/consumable/menthol = 1) /datum/chemical_reaction/fernet_cola name = "Fernet Cola" - id = "fernet_cola" - results = list("fernet_cola" = 2) - required_reagents = list("fernet" = 1, "cola" = 1) + id = /datum/reagent/consumable/ethanol/fernet_cola + results = list(/datum/reagent/consumable/ethanol/fernet_cola = 2) + required_reagents = list(/datum/reagent/consumable/ethanol/fernet = 1, /datum/reagent/consumable/space_cola = 1) /datum/chemical_reaction/fanciulli name = "Fanciulli" - id = "fanciulli" - results = list("fanciulli" = 2) - required_reagents = list("manhattan" = 1, "fernet" = 1) + id = /datum/reagent/consumable/ethanol/fanciulli + results = list(/datum/reagent/consumable/ethanol/fanciulli = 2) + required_reagents = list(/datum/reagent/consumable/ethanol/manhattan = 1, /datum/reagent/consumable/ethanol/fernet = 1) /datum/chemical_reaction/branca_menta name = "Branca Menta" - id = "branca_menta" - results = list("branca_menta" = 3) - required_reagents = list("fernet" = 1, "creme_de_menthe" = 1, "ice" = 1) + id = /datum/reagent/consumable/ethanol/branca_menta + results = list(/datum/reagent/consumable/ethanol/branca_menta = 3) + required_reagents = list(/datum/reagent/consumable/ethanol/fernet = 1, /datum/reagent/consumable/ethanol/creme_de_menthe = 1, /datum/reagent/consumable/ice = 1) /datum/chemical_reaction/pwrgame name = "Power Gamer" - id = "pwr_game" - results = list("pwr_game" = 5) - required_reagents = list("sodawater" = 1, "blackcrayonpowder" = 1, "sodiumchloride" = 1) + id = /datum/reagent/consumable/pwr_game + results = list(/datum/reagent/consumable/pwr_game = 5) + required_reagents = list(/datum/reagent/consumable/sodawater = 1, /datum/reagent/colorful_reagent/crayonpowder/black = 1, /datum/reagent/consumable/sodiumchloride = 1) /datum/chemical_reaction/pinkmilk name = "Strawberry Milk" - id = "pinkmilk" - results = list("pinkmilk" = 5) - required_reagents = list("aphro+" = 1, "milk" = 1) + id = /datum/reagent/consumable/pinkmilk + results = list(/datum/reagent/consumable/pinkmilk = 5) + required_reagents = list(/datum/reagent/drug/aphrodisiacplus = 1, /datum/reagent/consumable/milk = 1) /datum/chemical_reaction/pinktea name = "Strawberry Tea" - id = "pinktea" - results = list("pinktea" = 5) - required_reagents = list("aphro" = 1, "arnold_palmer" = 1, "sugar" = 1) + id = /datum/reagent/consumable/pinktea + results = list(/datum/reagent/consumable/pinktea = 5) + required_reagents = list(/datum/reagent/drug/aphrodisiac = 1, /datum/reagent/consumable/tea/arnold_palmer = 1, /datum/reagent/consumable/sugar = 1) /datum/chemical_reaction/blank_paper name = "Blank Paper" - id = "blank_paper" - results = list("blank_paper" = 3) - required_reagents = list("silencer" = 1, "nothing" = 1, "nuka_cola" = 1) + id = /datum/reagent/consumable/ethanol/blank_paper + results = list(/datum/reagent/consumable/ethanol/blank_paper = 3) + required_reagents = list(/datum/reagent/consumable/ethanol/silencer = 1, /datum/reagent/consumable/nothing = 1, /datum/reagent/consumable/nuka_cola = 1) /datum/chemical_reaction/wizz_fizz name = "Wizz Fizz" - id = "wizz_fizz" - results = list("wizz_fizz" = 3) - required_reagents = list("triple_sec" = 1, "sodawater" = 1, "champagne" = 1) + id = /datum/reagent/consumable/ethanol/wizz_fizz + results = list(/datum/reagent/consumable/ethanol/wizz_fizz = 3) + required_reagents = list(/datum/reagent/consumable/ethanol/triple_sec = 1, /datum/reagent/consumable/sodawater = 1, /datum/reagent/consumable/ethanol/champagne = 1) mix_message = "The beverage starts to froth with an almost mystical zeal!" mix_sound = 'sound/effects/bubbles2.ogg' /datum/chemical_reaction/bug_spray name = "Bug Spray" - id = "bug_spray" - results = list("bug_spray" = 5) - required_reagents = list("triple_sec" = 2, "lemon_lime" = 1, "rum" = 2, "vodka" = 1) + id = /datum/reagent/consumable/ethanol/bug_spray + results = list(/datum/reagent/consumable/ethanol/bug_spray = 5) + required_reagents = list(/datum/reagent/consumable/ethanol/triple_sec = 2, /datum/reagent/consumable/lemon_lime = 1, /datum/reagent/consumable/ethanol/rum = 2, /datum/reagent/consumable/ethanol/vodka = 1) mix_message = "The faint aroma of summer camping trips wafts through the air; but what's that buzzing noise?" mix_sound = 'sound/creatures/bee.ogg' /datum/chemical_reaction/jack_rose name = "Jack Rose" - id = "jack_rose" - results = list("jack_rose" = 4) - required_reagents = list("grenadine" = 1, "applejack" = 2, "limejuice" = 1) + id = /datum/reagent/consumable/ethanol/jack_rose + results = list(/datum/reagent/consumable/ethanol/jack_rose = 4) + required_reagents = list(/datum/reagent/consumable/grenadine = 1, /datum/reagent/consumable/ethanol/applejack = 2, /datum/reagent/consumable/limejuice = 1) mix_message = "As the grenadine incorporates, the beverage takes on a mellow, red-orange glow." /datum/chemical_reaction/turbo name = "Turbo" - id = "turbo" - results = list("turbo" = 5) - required_reagents = list("moonshine" = 2, "nitrous_oxide" = 1, "sugar_rush" = 1, "pwr_game" = 1) + id = /datum/reagent/consumable/ethanol/turbo + results = list(/datum/reagent/consumable/ethanol/turbo = 5) + required_reagents = list(/datum/reagent/consumable/ethanol/moonshine = 2, /datum/reagent/nitrous_oxide = 1, /datum/reagent/consumable/ethanol/sugar_rush = 1, /datum/reagent/consumable/pwr_game = 1) /datum/chemical_reaction/old_timer name = "Old Timer" - id = "old_timer" - results = list("old_timer" = 6) - required_reagents = list("whiskeysoda" = 3, "parsnipjuice" = 2, "alexander" = 1) + id = /datum/reagent/consumable/ethanol/old_timer + results = list(/datum/reagent/consumable/ethanol/old_timer = 6) + required_reagents = list(/datum/reagent/consumable/ethanol/whiskeysoda = 3, /datum/reagent/consumable/parsnipjuice = 2, /datum/reagent/consumable/ethanol/alexander = 1) /datum/chemical_reaction/rubberneck name = "Rubberneck" - id = "rubberneck" - results = list("rubberneck" = 10) - required_reagents = list("ethanol" = 4, "grey_bull" = 5, "astrotame" = 1) + id = /datum/reagent/consumable/ethanol/rubberneck + results = list(/datum/reagent/consumable/ethanol/rubberneck = 10) + required_reagents = list(/datum/reagent/consumable/ethanol = 4, /datum/reagent/consumable/grey_bull = 5, /datum/reagent/consumable/astrotame = 1) /datum/chemical_reaction/duplex name = "Duplex" - id = "duplex" - results = list("duplex" = 4) - required_reagents = list("hcider" = 2, "applejuice" = 1, "berryjuice" = 1) + id = /datum/reagent/consumable/ethanol/duplex + results = list(/datum/reagent/consumable/ethanol/duplex = 4) + required_reagents = list(/datum/reagent/consumable/ethanol/hcider = 2, /datum/reagent/consumable/applejuice = 1, /datum/reagent/consumable/berryjuice = 1) /datum/chemical_reaction/trappist name = "Trappist" - id = "trappist" - results = list("trappist" = 5) - required_reagents = list("ale" = 2, "holywater" = 2, "sugar" = 1) + id = /datum/reagent/consumable/ethanol/trappist + results = list(/datum/reagent/consumable/ethanol/trappist = 5) + required_reagents = list(/datum/reagent/consumable/ethanol/ale = 2, /datum/reagent/water/holywater = 2, /datum/reagent/consumable/sugar = 1) /datum/chemical_reaction/cream_soda name = "Cream Soda" - id = "cream_soda" - results = list("cream_soda" = 4) - required_reagents = list("sugar" = 2, "sodawater" = 2, "vanilla" = 1) + id = /datum/reagent/consumable/cream_soda + results = list(/datum/reagent/consumable/cream_soda = 4) + required_reagents = list(/datum/reagent/consumable/sugar = 2, /datum/reagent/consumable/sodawater = 2, /datum/reagent/consumable/vanilla = 1) /datum/chemical_reaction/blazaam name = "Blazaam" - id = "blazaam" - results = list("blazaam" = 3) - required_reagents = list("gin" = 2, "peachjuice" = 1, "bluespace" = 1) + id = /datum/reagent/consumable/ethanol/blazaam + results = list(/datum/reagent/consumable/ethanol/blazaam = 3) + required_reagents = list(/datum/reagent/consumable/ethanol/gin = 2, /datum/reagent/consumable/peachjuice = 1, /datum/reagent/bluespace = 1) /datum/chemical_reaction/planet_cracker name = "Planet Cracker" - id = "planet_cracker" - results = list("planet_cracker" = 4) - required_reagents = list("champagne" = 2, "lizardwine" = 2, "eggyolk" = 1, "gold" = 1) + id = /datum/reagent/consumable/ethanol/planet_cracker + results = list(/datum/reagent/consumable/ethanol/planet_cracker = 4) + required_reagents = list(/datum/reagent/consumable/ethanol/champagne = 2, /datum/reagent/consumable/ethanol/lizardwine = 2, /datum/reagent/consumable/eggyolk = 1, /datum/reagent/gold = 1) mix_message = "The liquid's color starts shifting as the nanogold is alternately corroded and redeposited." /datum/chemical_reaction/red_queen name = "Red Queen" - id = "red_queen" - results = list("red_queen" = 10) - required_reagents = list("tea" = 6, "mercury" = 2, "blackpepper" = 1, "growthserum" = 1) + id = /datum/reagent/consumable/red_queen + results = list(/datum/reagent/consumable/red_queen = 10) + required_reagents = list(/datum/reagent/consumable/tea = 6, /datum/reagent/mercury = 2, /datum/reagent/consumable/blackpepper = 1, /datum/reagent/growthserum = 1) /datum/chemical_reaction/catnip_tea name = "Catnip Tea" - id = "catnip_tea" - results = list("catnip_tea" = 3) - required_reagents = list("tea" = 5, "catnip" = 2) + id = /datum/reagent/consumable/catnip_tea + results = list(/datum/reagent/consumable/catnip_tea = 3) + required_reagents = list(/datum/reagent/consumable/tea = 5, /datum/reagent/pax/catnip = 2) /datum/chemical_reaction/commander_and_chief name = "Commander and Chief" - id = "commander_and_chief" - results = list("commander_and_chief" = 50) - required_reagents = list("alliescocktail" = 50, "champagne" = 20, "doctorsdelight" = 10, "quintuple_sec" = 10, "screwdrivercocktail" = 10) + id = /datum/reagent/consumable/ethanol/commander_and_chief + results = list(/datum/reagent/consumable/ethanol/commander_and_chief = 50) + required_reagents = list(/datum/reagent/consumable/ethanol/alliescocktail = 50, /datum/reagent/consumable/ethanol/champagne = 20, /datum/reagent/consumable/doctor_delight = 10, /datum/reagent/consumable/ethanol/quintuple_sec = 10, /datum/reagent/consumable/ethanol/screwdrivercocktail = 10) mix_message = "When your powers combine, I am Captain Pl-..." diff --git a/code/modules/food_and_drinks/recipes/food_mixtures.dm b/code/modules/food_and_drinks/recipes/food_mixtures.dm index 07732a415d..130640ee8a 100644 --- a/code/modules/food_and_drinks/recipes/food_mixtures.dm +++ b/code/modules/food_and_drinks/recipes/food_mixtures.dm @@ -11,8 +11,8 @@ /datum/chemical_reaction/tofu name = "Tofu" id = "tofu" - required_reagents = list("soymilk" = 10) - required_catalysts = list("enzyme" = 5) + required_reagents = list(/datum/reagent/consumable/soymilk = 10) + required_catalysts = list(/datum/reagent/consumable/enzyme = 5) mob_react = FALSE /datum/chemical_reaction/tofu/on_reaction(datum/reagents/holder, created_volume) @@ -24,7 +24,7 @@ /datum/chemical_reaction/chocolate_bar name = "Chocolate Bar" id = "chocolate_bar" - required_reagents = list("soymilk" = 2, "cocoa" = 2, "sugar" = 2) + required_reagents = list(/datum/reagent/consumable/soymilk = 2, /datum/reagent/consumable/coco = 2, /datum/reagent/consumable/sugar = 2) /datum/chemical_reaction/chocolate_bar/on_reaction(datum/reagents/holder, created_volume) var/location = get_turf(holder.my_atom) @@ -35,8 +35,8 @@ /datum/chemical_reaction/chocolate_bar2 name = "Chocolate Bar" - id = "chocolate_bar" - required_reagents = list("chocolate_milk" = 4, "sugar" = 2) + id = "chocolate_bar2" + required_reagents = list(/datum/reagent/consumable/milk/chocolate_milk = 4, /datum/reagent/consumable/sugar = 2) mob_react = FALSE /datum/chemical_reaction/chocolate_bar2/on_reaction(datum/reagents/holder, created_volume) @@ -47,48 +47,48 @@ /datum/chemical_reaction/hot_coco name = "Hot Coco" - id = "hot_coco" - results = list("hot_coco" = 5) - required_reagents = list("water" = 5, "cocoa" = 1) + id = /datum/reagent/consumable/hot_coco + results = list(/datum/reagent/consumable/hot_coco = 5) + required_reagents = list(/datum/reagent/water = 5, /datum/reagent/consumable/coco = 1) /datum/chemical_reaction/coffee name = "Coffee" - id = "coffee" - results = list("coffee" = 5) - required_reagents = list("coffeepowder" = 1, "water" = 5) + id = /datum/reagent/consumable/coffee + results = list(/datum/reagent/consumable/coffee = 5) + required_reagents = list(/datum/reagent/toxin/coffeepowder = 1, /datum/reagent/water = 5) /datum/chemical_reaction/tea name = "Tea" - id = "tea" - results = list("tea" = 5) - required_reagents = list("teapowder" = 1, "water" = 5) + id = /datum/reagent/consumable/tea + results = list(/datum/reagent/consumable/tea = 5) + required_reagents = list(/datum/reagent/toxin/teapowder = 1, /datum/reagent/water = 5) /datum/chemical_reaction/soysauce name = "Soy Sauce" - id = "soysauce" - results = list("soysauce" = 5) - required_reagents = list("soymilk" = 4, "sacid" = 1) + id = /datum/reagent/consumable/soysauce + results = list(/datum/reagent/consumable/soysauce = 5) + required_reagents = list(/datum/reagent/consumable/soymilk = 4, /datum/reagent/toxin/acid = 1) /datum/chemical_reaction/corn_syrup name = "corn_syrup" - id = "corn_syrup" - results = list("corn_syrup" = 5) - required_reagents = list("corn_starch" = 1, "sacid" = 1) + id = /datum/reagent/consumable/corn_syrup + results = list(/datum/reagent/consumable/corn_syrup = 5) + required_reagents = list(/datum/reagent/consumable/corn_starch = 1, /datum/reagent/toxin/acid = 1) required_temp = 374 /datum/chemical_reaction/caramel name = "Caramel" - id = "caramel" - results = list("caramel" = 1) - required_reagents = list("sugar" = 1) + id = /datum/reagent/consumable/caramel + results = list(/datum/reagent/consumable/caramel = 1) + required_reagents = list(/datum/reagent/consumable/sugar = 1) required_temp = 413 mob_react = FALSE /datum/chemical_reaction/cheesewheel name = "Cheesewheel" id = "cheesewheel" - required_reagents = list("milk" = 40) - required_catalysts = list("enzyme" = 5) + required_reagents = list(/datum/reagent/consumable/milk = 40) + required_catalysts = list(/datum/reagent/consumable/enzyme = 5) /datum/chemical_reaction/cheesewheel/on_reaction(datum/reagents/holder, created_volume) var/location = get_turf(holder.my_atom) @@ -98,7 +98,7 @@ /datum/chemical_reaction/synthmeat name = "synthmeat" id = "synthmeat" - required_reagents = list("blood" = 5, "cryoxadone" = 1) + required_reagents = list(/datum/reagent/blood = 5, /datum/reagent/medicine/cryoxadone = 1) mob_react = FALSE /datum/chemical_reaction/synthmeat/on_reaction(datum/reagents/holder, created_volume) @@ -108,20 +108,20 @@ /datum/chemical_reaction/hot_ramen name = "Hot Ramen" - id = "hot_ramen" - results = list("hot_ramen" = 3) - required_reagents = list("water" = 1, "dry_ramen" = 3) + id = /datum/reagent/consumable/hot_ramen + results = list(/datum/reagent/consumable/hot_ramen = 3) + required_reagents = list(/datum/reagent/water = 1, /datum/reagent/consumable/dry_ramen = 3) /datum/chemical_reaction/hell_ramen name = "Hell Ramen" - id = "hell_ramen" - results = list("hell_ramen" = 6) - required_reagents = list("capsaicin" = 1, "hot_ramen" = 6) + id = /datum/reagent/consumable/hell_ramen + results = list(/datum/reagent/consumable/hell_ramen = 6) + required_reagents = list(/datum/reagent/consumable/capsaicin = 1, /datum/reagent/consumable/hot_ramen = 6) /datum/chemical_reaction/imitationcarpmeat name = "Imitation Carpmeat" id = "imitationcarpmeat" - required_reagents = list("carpotoxin" = 5) + required_reagents = list(/datum/reagent/toxin/carpotoxin = 5) required_container = /obj/item/reagent_containers/food/snacks/tofu mix_message = "The mixture becomes similar to carp meat." @@ -134,7 +134,7 @@ /datum/chemical_reaction/dough name = "Dough" id = "dough" - required_reagents = list("water" = 10, "flour" = 15) + required_reagents = list(/datum/reagent/water = 10, /datum/reagent/consumable/flour = 15) mix_message = "The ingredients form a dough." /datum/chemical_reaction/dough/on_reaction(datum/reagents/holder, created_volume) @@ -145,7 +145,7 @@ /datum/chemical_reaction/cakebatter name = "Cake Batter" id = "cakebatter" - required_reagents = list("eggyolk" = 15, "flour" = 15, "sugar" = 5) + required_reagents = list(/datum/reagent/consumable/eggyolk = 15, /datum/reagent/consumable/flour = 15, /datum/reagent/consumable/sugar = 5) mix_message = "The ingredients form a cake batter." /datum/chemical_reaction/cakebatter/on_reaction(datum/reagents/holder, created_volume) @@ -155,12 +155,12 @@ /datum/chemical_reaction/cakebatter/vegan id = "vegancakebatter" - required_reagents = list("soymilk" = 15, "flour" = 15, "sugar" = 5) + required_reagents = list(/datum/reagent/consumable/soymilk = 15, /datum/reagent/consumable/flour = 15, /datum/reagent/consumable/sugar = 5) /datum/chemical_reaction/ricebowl name = "Rice Bowl" id = "ricebowl" - required_reagents = list("rice" = 10, "water" = 10) + required_reagents = list(/datum/reagent/consumable/rice = 10, /datum/reagent/water = 10) required_container = /obj/item/reagent_containers/glass/bowl mix_message = "The rice absorbs the water." @@ -172,6 +172,6 @@ /datum/chemical_reaction/bbqsauce name = "BBQ Sauce" - id = "bbqsauce" - results = list("bbqsauce" = 5) - required_reagents = list("ash" = 1, "tomatojuice" = 1, "salglu_solution" = 3, "blackpepper" = 1) + id = /datum/reagent/consumable/bbqsauce + results = list(/datum/reagent/consumable/bbqsauce = 5) + required_reagents = list(/datum/reagent/ash = 1, /datum/reagent/consumable/tomatojuice = 1, /datum/reagent/medicine/salglu_solution = 3, /datum/reagent/consumable/blackpepper = 1) diff --git a/code/modules/food_and_drinks/recipes/tablecraft/recipes_pastry.dm b/code/modules/food_and_drinks/recipes/tablecraft/recipes_pastry.dm index 7977a715d8..f0fe936d05 100644 --- a/code/modules/food_and_drinks/recipes/tablecraft/recipes_pastry.dm +++ b/code/modules/food_and_drinks/recipes/tablecraft/recipes_pastry.dm @@ -108,7 +108,7 @@ datum/crafting_recipe/food/donut/meat /datum/crafting_recipe/food/donut/bungo name = "Bungo Donut" reqs = list( - /obj/item/reagent_containers/food/snacks/grown/bungofruit = 1, + /datum/reagent/consumable/bungojuice = 3, /obj/item/reagent_containers/food/snacks/donut/plain = 1 ) result = /obj/item/reagent_containers/food/snacks/donut/bungo @@ -175,7 +175,7 @@ datum/crafting_recipe/food/donut/meat /datum/crafting_recipe/food/donut/jelly/bungo name = "Bungo Jelly Donut" reqs = list( - /obj/item/reagent_containers/food/snacks/grown/bungofruit = 1, + /datum/reagent/consumable/bungojuice = 3, /obj/item/reagent_containers/food/snacks/donut/jelly/plain = 1 ) result = /obj/item/reagent_containers/food/snacks/donut/jelly/bungo @@ -242,7 +242,7 @@ datum/crafting_recipe/food/donut/meat /datum/crafting_recipe/food/donut/slimejelly/bungo name = "Bungo Slime Donut" reqs = list( - /obj/item/reagent_containers/food/snacks/grown/bungofruit = 1, + /datum/reagent/consumable/bungojuice = 3, /obj/item/reagent_containers/food/snacks/donut/jelly/slimejelly/plain = 1 ) result = /obj/item/reagent_containers/food/snacks/donut/jelly/slimejelly/bungo diff --git a/code/modules/holiday/easter.dm b/code/modules/holiday/easter.dm index 3cb05a8f7e..1898fe4b01 100644 --- a/code/modules/holiday/easter.dm +++ b/code/modules/holiday/easter.dm @@ -163,7 +163,7 @@ icon_state = "briochecake" slice_path = /obj/item/reagent_containers/food/snacks/cakeslice/brioche slices_num = 6 - bonus_reagents = list("nutriment" = 10, "vitamin" = 2) + bonus_reagents = list(/datum/reagent/consumable/nutriment = 10, /datum/reagent/consumable/nutriment/vitamin = 2) /obj/item/reagent_containers/food/snacks/cakeslice/brioche name = "brioche cake slice" @@ -184,10 +184,10 @@ name = "scotch egg" desc = "A boiled egg wrapped in a delicious, seasoned meatball." icon_state = "scotchegg" - bonus_reagents = list("nutriment" = 2, "vitamin" = 2) + bonus_reagents = list(/datum/reagent/consumable/nutriment = 2, /datum/reagent/consumable/nutriment/vitamin = 2) bitesize = 3 filling_color = "#FFFFF0" - list_reagents = list("nutriment" = 6) + list_reagents = list(/datum/reagent/consumable/nutriment = 6) /datum/crafting_recipe/food/scotchegg name = "Scotch egg" @@ -204,8 +204,8 @@ name = "Mammi" desc = "A bowl of mushy bread and milk. It reminds you, not too fondly, of a bowel movement." icon_state = "mammi" - bonus_reagents = list("nutriment" = 3, "vitamin" = 1) - list_reagents = list("nutriment" = 8, "vitamin" = 1) + bonus_reagents = list(/datum/reagent/consumable/nutriment = 3, /datum/reagent/consumable/nutriment/vitamin = 1) + list_reagents = list(/datum/reagent/consumable/nutriment = 8, /datum/reagent/consumable/nutriment/vitamin = 1) /datum/crafting_recipe/food/mammi name = "Mammi" @@ -221,8 +221,8 @@ name = "chocolate bunny" desc = "Contains less than 10% real rabbit!" icon_state = "chocolatebunny" - bonus_reagents = list("nutriment" = 1, "vitamin" = 1) - list_reagents = list("nutriment" = 4, "sugar" = 2, "cocoa" = 2) + bonus_reagents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/consumable/nutriment/vitamin = 1) + list_reagents = list(/datum/reagent/consumable/nutriment = 4, /datum/reagent/consumable/sugar = 2, /datum/reagent/consumable/coco = 2) filling_color = "#A0522D" /datum/crafting_recipe/food/chocolatebunny diff --git a/code/modules/holiday/halloween/jacqueen.dm b/code/modules/holiday/halloween/jacqueen.dm index d71e7c0f6a..bd4c26e0f2 100644 --- a/code/modules/holiday/halloween/jacqueen.dm +++ b/code/modules/holiday/halloween/jacqueen.dm @@ -95,7 +95,7 @@ last_poof = world.realtime var/datum/reagents/R = new/datum/reagents(100)//Hey, just in case. var/datum/effect_system/smoke_spread/chem/s = new() - R.add_reagent("secretcatchem", 10) + R.add_reagent(/datum/reagent/fermi/secretcatchem, 10) s.set_up(R, 0, loc) s.start() visible_message("[src] disappears in a puff of smoke!") @@ -181,7 +181,7 @@ visible_message("[src] raises an eyebrown, \"It's 4 candies for that [gender]! Thems the rules!\"") return visible_message("[src] waves their arms around, \"Off comes your head, a pumpkin taking it's stead!\"") - C.reagents.add_reagent("pumpkinmutationtoxin", 5) + C.reagents.add_reagent(/datum/reagent/mutationtoxin/pumpkinhead, 5) sleep(20) poof() return @@ -340,7 +340,7 @@ C.equip_to_slot(jaqc_latern, SLOT_HEAD, 1, 1) if(4) visible_message("[src] waves their arms around, \"In your body there's something amiss, you'll find it's a chem made by my sis!\"") - C.reagents.add_reagent("eigenstate", 30) + C.reagents.add_reagent(/datum/reagent/fermi/eigenstate, 30) if(5) visible_message("[src] waves their arms around, \"A new familiar for me, and you'll see it's thee!\"") C.reagents.add_reagent("secretcatchem", 30) @@ -411,7 +411,6 @@ /datum/reagent/mutationtoxin/pumpkinhead name = "Pumpkin head mutation toxin" - id = "pumpkinmutationtoxin" race = /datum/species/dullahan/pumpkin mutationtext = "The pain subsides. You feel your head roll off your shoulders... and you smell pumpkin." //I couldn't get the replace head sprite with a pumpkin to work so, it is what it is. diff --git a/code/modules/hydroponics/beekeeping/beebox.dm b/code/modules/hydroponics/beekeeping/beebox.dm index 3c4ed776b7..a058601c39 100644 --- a/code/modules/hydroponics/beekeeping/beebox.dm +++ b/code/modules/hydroponics/beekeeping/beebox.dm @@ -65,7 +65,7 @@ var/datum/reagent/R = null if(random_reagent) R = pick(subtypesof(/datum/reagent)) - R = GLOB.chemical_reagents_list[initial(R.id)] + R = GLOB.chemical_reagents_list[R] queen_bee = new(src) queen_bee.beehome = src @@ -95,7 +95,7 @@ bee_resources = max(bee_resources-BEE_RESOURCE_HONEYCOMB_COST, 0) var/obj/item/reagent_containers/honeycomb/HC = new(src) if(queen_bee.beegent) - HC.set_reagent(queen_bee.beegent.id) + HC.set_reagent(queen_bee.beegent.type) honeycombs += HC if(bees.len < get_max_bees()) diff --git a/code/modules/hydroponics/beekeeping/honeycomb.dm b/code/modules/hydroponics/beekeeping/honeycomb.dm index e7faff0209..5bb2936c1e 100644 --- a/code/modules/hydroponics/beekeeping/honeycomb.dm +++ b/code/modules/hydroponics/beekeeping/honeycomb.dm @@ -9,7 +9,7 @@ disease_amount = 0 volume = 10 amount_per_transfer_from_this = 0 - list_reagents = list("honey" = 5) + list_reagents = list(/datum/reagent/consumable/honey = 5) grind_results = list() var/honey_color = "" @@ -31,10 +31,10 @@ /obj/item/reagent_containers/honeycomb/proc/set_reagent(reagent) var/datum/reagent/R = GLOB.chemical_reagents_list[reagent] - if(istype(R)) + if(R) name = "honeycomb ([R.name])" honey_color = R.color - reagents.add_reagent(R.id,5) + reagents.add_reagent(reagent,5) else honey_color = "" update_icon() \ No newline at end of file diff --git a/code/modules/hydroponics/biogenerator.dm b/code/modules/hydroponics/biogenerator.dm index fb40e4eebd..ac750a0492 100644 --- a/code/modules/hydroponics/biogenerator.dm +++ b/code/modules/hydroponics/biogenerator.dm @@ -210,9 +210,9 @@ var/S = 0 for(var/obj/item/reagent_containers/food/snacks/grown/I in contents) S += 5 - if(I.reagents.get_reagent_amount("nutriment") < 0.1) + if(I.reagents.get_reagent_amount(/datum/reagent/consumable/nutriment) < 0.1) points += 1*productivity - else points += I.reagents.get_reagent_amount("nutriment")*10*productivity + else points += I.reagents.get_reagent_amount(/datum/reagent/consumable/nutriment)*10*productivity qdel(I) if(S) processing = TRUE diff --git a/code/modules/hydroponics/fermenting_barrel.dm b/code/modules/hydroponics/fermenting_barrel.dm index e9001322d3..ab6625b46d 100644 --- a/code/modules/hydroponics/fermenting_barrel.dm +++ b/code/modules/hydroponics/fermenting_barrel.dm @@ -33,7 +33,7 @@ data["tastes"] = list(fruit.wine_flavor = 1) else data["tastes"] = list(fruit.tastes[1] = 1) - reagents.add_reagent("fruit_wine", amount, data) + reagents.add_reagent(/datum/reagent/consumable/ethanol/fruit_wine, amount, data) qdel(fruit) playsound(src, 'sound/effects/bubbles.ogg', 50, TRUE) diff --git a/code/modules/hydroponics/grown.dm b/code/modules/hydroponics/grown.dm index 660f1e17e4..91ccce7cfd 100644 --- a/code/modules/hydroponics/grown.dm +++ b/code/modules/hydroponics/grown.dm @@ -144,20 +144,20 @@ return TRUE /obj/item/reagent_containers/food/snacks/grown/on_grind() - var/nutriment = reagents.get_reagent_amount("nutriment") + var/nutriment = reagents.get_reagent_amount(/datum/reagent/consumable/nutriment) if(grind_results&&grind_results.len) for(var/i in 1 to grind_results.len) grind_results[grind_results[i]] = nutriment - reagents.del_reagent("nutriment") - reagents.del_reagent("vitamin") + reagents.del_reagent(/datum/reagent/consumable/nutriment) + reagents.del_reagent(/datum/reagent/consumable/nutriment/vitamin) /obj/item/reagent_containers/food/snacks/grown/on_juice() - var/nutriment = reagents.get_reagent_amount("nutriment") + var/nutriment = reagents.get_reagent_amount(/datum/reagent/consumable/nutriment) if(juice_results&&juice_results.len) for(var/i in 1 to juice_results.len) juice_results[juice_results[i]] = nutriment - reagents.del_reagent("nutriment") - reagents.del_reagent("vitamin") + reagents.del_reagent(/datum/reagent/consumable/nutriment) + reagents.del_reagent(/datum/reagent/consumable/nutriment/vitamin) // For item-containing growns such as eggy or gatfruit /obj/item/reagent_containers/food/snacks/grown/shell/attack_self(mob/user) diff --git a/code/modules/hydroponics/grown/ambrosia.dm b/code/modules/hydroponics/grown/ambrosia.dm index a3b93db1ea..e84025208a 100644 --- a/code/modules/hydroponics/grown/ambrosia.dm +++ b/code/modules/hydroponics/grown/ambrosia.dm @@ -25,7 +25,7 @@ icon_dead = "ambrosia-dead" genes = list(/datum/plant_gene/trait/repeated_harvest) mutatelist = list(/obj/item/seeds/ambrosia/deus) - reagents_add = list("space_drugs" = 0.15, "bicaridine" = 0.1, "kelotane" = 0.1, "vitamin" = 0.04, "nutriment" = 0.05, "toxin" = 0.1) + reagents_add = list(/datum/reagent/drug/space_drugs = 0.15, /datum/reagent/medicine/bicaridine = 0.1, /datum/reagent/medicine/kelotane = 0.1, /datum/reagent/consumable/nutriment/vitamin = 0.04, /datum/reagent/consumable/nutriment = 0.05, /datum/reagent/toxin = 0.1) /obj/item/reagent_containers/food/snacks/grown/ambrosia/vulgaris seed = /obj/item/seeds/ambrosia @@ -42,7 +42,7 @@ plantname = "Ambrosia Deus" product = /obj/item/reagent_containers/food/snacks/grown/ambrosia/deus mutatelist = list(/obj/item/seeds/ambrosia/gaia) - reagents_add = list("omnizine" = 0.15, "synaptizine" = 0.15, "space_drugs" = 0.1, "vitamin" = 0.04, "nutriment" = 0.05) + reagents_add = list(/datum/reagent/medicine/omnizine = 0.15, /datum/reagent/medicine/synaptizine = 0.15, /datum/reagent/drug/space_drugs = 0.1, /datum/reagent/consumable/nutriment/vitamin = 0.04, /datum/reagent/consumable/nutriment = 0.05) rarity = 40 /obj/item/reagent_containers/food/snacks/grown/ambrosia/deus @@ -62,7 +62,7 @@ plantname = "Ambrosia Gaia" product = /obj/item/reagent_containers/food/snacks/grown/ambrosia/gaia mutatelist = list(/obj/item/seeds/ambrosia/deus) - reagents_add = list("earthsblood" = 0.05, "nutriment" = 0.06, "vitamin" = 0.05) + reagents_add = list(/datum/reagent/medicine/earthsblood = 0.05, /datum/reagent/consumable/nutriment = 0.06, /datum/reagent/consumable/nutriment/vitamin = 0.05) rarity = 30 //These are some pretty good plants right here genes = list() weed_rate = 4 diff --git a/code/modules/hydroponics/grown/apple.dm b/code/modules/hydroponics/grown/apple.dm index 007c0b2454..f8e58aee1b 100644 --- a/code/modules/hydroponics/grown/apple.dm +++ b/code/modules/hydroponics/grown/apple.dm @@ -14,7 +14,7 @@ icon_dead = "apple-dead" genes = list(/datum/plant_gene/trait/repeated_harvest) mutatelist = list(/obj/item/seeds/apple/gold) - reagents_add = list("vitamin" = 0.04, "nutriment" = 0.1) + reagents_add = list(/datum/reagent/consumable/nutriment/vitamin = 0.04, /datum/reagent/consumable/nutriment = 0.1) /obj/item/reagent_containers/food/snacks/grown/apple seed = /obj/item/seeds/apple @@ -24,9 +24,9 @@ filling_color = "#FF4500" bitesize = 100 // Always eat the apple in one bite foodtype = FRUIT - juice_results = list("applejuice" = 0) + juice_results = list(/datum/reagent/consumable/applejuice = 0) tastes = list("apple" = 1) - distill_reagent = "hcider" + distill_reagent = /datum/reagent/consumable/ethanol/hcider // Gold Apple /obj/item/seeds/apple/gold @@ -39,7 +39,7 @@ maturation = 10 production = 10 mutatelist = list() - reagents_add = list("gold" = 0.2, "vitamin" = 0.04, "nutriment" = 0.1) + reagents_add = list(/datum/reagent/gold = 0.2, /datum/reagent/consumable/nutriment/vitamin = 0.04, /datum/reagent/consumable/nutriment = 0.1) rarity = 40 // Alchemy! /obj/item/reagent_containers/food/snacks/grown/apple/gold diff --git a/code/modules/hydroponics/grown/banana.dm b/code/modules/hydroponics/grown/banana.dm index b25f76c1c8..7668d17ac1 100644 --- a/code/modules/hydroponics/grown/banana.dm +++ b/code/modules/hydroponics/grown/banana.dm @@ -12,7 +12,7 @@ icon_dead = "banana-dead" genes = list(/datum/plant_gene/trait/slip, /datum/plant_gene/trait/repeated_harvest) mutatelist = list(/obj/item/seeds/banana/mime, /obj/item/seeds/banana/bluespace, /obj/item/seeds/banana/exotic_banana) - reagents_add = list("banana" = 0.1, "potassium" = 0.1, "vitamin" = 0.04, "nutriment" = 0.02) + reagents_add = list(/datum/reagent/consumable/banana = 0.1, /datum/reagent/potassium = 0.1, /datum/reagent/consumable/nutriment/vitamin = 0.04, /datum/reagent/consumable/nutriment = 0.02) /obj/item/reagent_containers/food/snacks/grown/banana seed = /obj/item/seeds/banana @@ -24,8 +24,8 @@ filling_color = "#FFFF00" bitesize = 5 foodtype = FRUIT - juice_results = list("banana" = 0) - distill_reagent = "bananahonk" + juice_results = list(/datum/reagent/consumable/banana = 0) + distill_reagent = /datum/reagent/consumable/ethanol/bananahonk /obj/item/reagent_containers/food/snacks/grown/banana/suicide_act(mob/user) user.visible_message("[user] is aiming [src] at [user.p_them()]self! It looks like [user.p_theyre()] trying to commit suicide!") @@ -70,7 +70,7 @@ product = /obj/item/reagent_containers/food/snacks/grown/banana/mime growthstages = 4 mutatelist = list() - reagents_add = list("nothing" = 0.1, "mutetoxin" = 0.1, "nutriment" = 0.02) + reagents_add = list(/datum/reagent/consumable/nothing = 0.1, /datum/reagent/toxin/mutetoxin = 0.1, /datum/reagent/consumable/nutriment = 0.02) rarity = 15 /obj/item/reagent_containers/food/snacks/grown/banana/mime @@ -80,7 +80,7 @@ icon_state = "mimana" trash = /obj/item/grown/bananapeel/mimanapeel filling_color = "#FFFFEE" - distill_reagent = "silencer" + distill_reagent = /datum/reagent/consumable/ethanol/silencer /obj/item/grown/bananapeel/mimanapeel seed = /obj/item/seeds/banana/mime @@ -100,7 +100,7 @@ product = /obj/item/reagent_containers/food/snacks/grown/banana/bluespace mutatelist = list() genes = list(/datum/plant_gene/trait/slip, /datum/plant_gene/trait/teleport, /datum/plant_gene/trait/repeated_harvest) - reagents_add = list("bluespace" = 0.2, "banana" = 0.1, "vitamin" = 0.04, "nutriment" = 0.02) + reagents_add = list(/datum/reagent/bluespace = 0.2, /datum/reagent/consumable/banana = 0.1, /datum/reagent/consumable/nutriment/vitamin = 0.04, /datum/reagent/consumable/nutriment = 0.02) rarity = 30 /obj/item/reagent_containers/food/snacks/grown/banana/bluespace @@ -137,9 +137,9 @@ name = "banana spider" desc = "You do not know what it is, but you can bet the clown would love it." icon_state = "exoticbanana" - list_reagents = list("nutriment" = 3, "vitamin" = 2) + list_reagents = list(/datum/reagent/consumable/nutriment = 3, /datum/reagent/consumable/nutriment/vitamin = 2) foodtype = GROSS | MEAT | RAW | FRUIT - grind_results = list("blood" = 20, "liquidgibs" = 5) + grind_results = list(/datum/reagent/blood = 20, /datum/reagent/liquidgibs = 5) var/awakening = 0 /obj/item/reagent_containers/food/snacks/grown/banana/banana_spider_spawnable/attack_self(mob/user) diff --git a/code/modules/hydroponics/grown/beans.dm b/code/modules/hydroponics/grown/beans.dm index 4338e3b070..3e5fee411f 100644 --- a/code/modules/hydroponics/grown/beans.dm +++ b/code/modules/hydroponics/grown/beans.dm @@ -15,7 +15,7 @@ icon_dead = "soybean-dead" genes = list(/datum/plant_gene/trait/repeated_harvest) mutatelist = list(/obj/item/seeds/soya/koi) - reagents_add = list("vitamin" = 0.04, "nutriment" = 0.05, "cooking_oil" = 0.03) //Vegetable oil! + reagents_add = list(/datum/reagent/consumable/nutriment/vitamin = 0.04, /datum/reagent/consumable/nutriment = 0.05, /datum/reagent/consumable/cooking_oil = 0.03) //Vegetable oil! /obj/item/reagent_containers/food/snacks/grown/soybeans seed = /obj/item/seeds/soya @@ -26,7 +26,7 @@ filling_color = "#F0E68C" bitesize_mod = 2 foodtype = VEGETABLES - grind_results = list("soymilk" = 0) + grind_results = list(/datum/reagent/consumable/soymilk = 0) tastes = list("soy" = 1) wine_power = 20 @@ -40,7 +40,7 @@ product = /obj/item/reagent_containers/food/snacks/grown/koibeans potency = 10 mutatelist = list() - reagents_add = list("carpotoxin" = 0.1, "vitamin" = 0.04, "nutriment" = 0.05) + reagents_add = list(/datum/reagent/toxin/carpotoxin = 0.1, /datum/reagent/consumable/nutriment/vitamin = 0.04, /datum/reagent/consumable/nutriment = 0.05) rarity = 20 /obj/item/reagent_containers/food/snacks/grown/koibeans diff --git a/code/modules/hydroponics/grown/berries.dm b/code/modules/hydroponics/grown/berries.dm index 94dbc74499..0646ae1a8c 100644 --- a/code/modules/hydroponics/grown/berries.dm +++ b/code/modules/hydroponics/grown/berries.dm @@ -15,7 +15,7 @@ icon_dead = "berry-dead" // Same for the dead icon genes = list(/datum/plant_gene/trait/repeated_harvest) mutatelist = list(/obj/item/seeds/berry/glow, /obj/item/seeds/berry/poison) - reagents_add = list("vitamin" = 0.04, "nutriment" = 0.1) + reagents_add = list(/datum/reagent/consumable/nutriment/vitamin = 0.04, /datum/reagent/consumable/nutriment = 0.1) /obj/item/reagent_containers/food/snacks/grown/berries seed = /obj/item/seeds/berry @@ -26,9 +26,9 @@ filling_color = "#FF00FF" bitesize_mod = 2 foodtype = FRUIT - juice_results = list("berryjuice" = 0) + juice_results = list(/datum/reagent/consumable/berryjuice = 0) tastes = list("berry" = 1) - distill_reagent = "gin" + distill_reagent = /datum/reagent/consumable/ethanol/gin // Poison Berries /obj/item/seeds/berry/poison @@ -39,7 +39,7 @@ plantname = "Poison-Berry Bush" product = /obj/item/reagent_containers/food/snacks/grown/berries/poison mutatelist = list(/obj/item/seeds/berry/death) - reagents_add = list("cyanide" = 0.15, "tirizene" = 0.2, "vitamin" = 0.04, "nutriment" = 0.1) + reagents_add = list(/datum/reagent/toxin/cyanide = 0.15, /datum/reagent/toxin/staminatoxin = 0.2, /datum/reagent/consumable/nutriment/vitamin = 0.04, /datum/reagent/consumable/nutriment = 0.1) rarity = 10 // Mildly poisonous berries are common in reality /obj/item/reagent_containers/food/snacks/grown/berries/poison @@ -49,7 +49,7 @@ icon_state = "poisonberrypile" filling_color = "#C71585" foodtype = FRUIT | TOXIC - juice_results = list("poisonberryjuice" = 0) + juice_results = list(/datum/reagent/consumable/poisonberryjuice = 0) tastes = list("poison-berry" = 1) distill_reagent = null wine_power = 35 @@ -65,7 +65,7 @@ lifespan = 30 potency = 50 mutatelist = list() - reagents_add = list("coniine" = 0.08, "tirizene" = 0.1, "vitamin" = 0.04, "nutriment" = 0.1) + reagents_add = list(/datum/reagent/toxin/coniine = 0.08, /datum/reagent/toxin/staminatoxin = 0.1, /datum/reagent/consumable/nutriment/vitamin = 0.04, /datum/reagent/consumable/nutriment = 0.1) rarity = 30 /obj/item/reagent_containers/food/snacks/grown/berries/death @@ -91,7 +91,7 @@ endurance = 25 mutatelist = list() genes = list(/datum/plant_gene/trait/glow/white, /datum/plant_gene/trait/noreact, /datum/plant_gene/trait/repeated_harvest) - reagents_add = list("uranium" = 0.25, "iodine" = 0.2, "vitamin" = 0.04, "nutriment" = 0.1) + reagents_add = list(/datum/reagent/uranium = 0.25, /datum/reagent/iodine = 0.2, /datum/reagent/consumable/nutriment/vitamin = 0.04, /datum/reagent/consumable/nutriment = 0.1) rarity = 20 /obj/item/reagent_containers/food/snacks/grown/berries/glow @@ -124,7 +124,7 @@ icon_harvest = "cherry-harvest" genes = list(/datum/plant_gene/trait/repeated_harvest) mutatelist = list(/obj/item/seeds/cherry/blue, /obj/item/seeds/cherry/bulb) - reagents_add = list("nutriment" = 0.07, "sugar" = 0.07) + reagents_add = list(/datum/reagent/consumable/nutriment = 0.07, /datum/reagent/consumable/sugar = 0.07) /obj/item/reagent_containers/food/snacks/grown/cherries seed = /obj/item/seeds/cherry @@ -135,7 +135,7 @@ filling_color = "#FF0000" bitesize_mod = 2 foodtype = FRUIT - grind_results = list("cherryjelly" = 0) + grind_results = list(/datum/reagent/consumable/cherryjelly = 0) tastes = list("cherry" = 1) wine_power = 30 @@ -148,7 +148,7 @@ plantname = "Blue Cherry Tree" product = /obj/item/reagent_containers/food/snacks/grown/bluecherries mutatelist = list() - reagents_add = list("nutriment" = 0.07, "sugar" = 0.07) + reagents_add = list(/datum/reagent/consumable/nutriment = 0.07, /datum/reagent/consumable/sugar = 0.07) rarity = 10 /obj/item/reagent_containers/food/snacks/grown/bluecherries @@ -159,7 +159,7 @@ filling_color = "#6495ED" bitesize_mod = 2 foodtype = FRUIT - grind_results = list("bluecherryjelly" = 0) + grind_results = list(/datum/reagent/consumable/bluecherryjelly = 0) tastes = list("blue cherry" = 1) wine_power = 50 @@ -173,7 +173,7 @@ product = /obj/item/reagent_containers/food/snacks/grown/cherrybulbs genes = list(/datum/plant_gene/trait/repeated_harvest, /datum/plant_gene/trait/glow/pink) mutatelist = list() - reagents_add = list("nutriment" = 0.07, "sugar" = 0.07) + reagents_add = list(/datum/reagent/consumable/nutriment = 0.07, /datum/reagent/consumable/sugar = 0.07) rarity = 10 /obj/item/reagent_containers/food/snacks/grown/cherrybulbs @@ -184,7 +184,7 @@ filling_color = "#FF0000" bitesize_mod = 2 foodtype = FRUIT - grind_results = list("cherryjelly" = 0) + grind_results = list(/datum/reagent/consumable/cherryjelly = 0) tastes = list("cherry" = 1) wine_power = 50 @@ -207,7 +207,7 @@ icon_dead = "grape-dead" genes = list(/datum/plant_gene/trait/repeated_harvest) mutatelist = list(/obj/item/seeds/grape/green) - reagents_add = list("vitamin" = 0.04, "nutriment" = 0.1, "sugar" = 0.1) + reagents_add = list(/datum/reagent/consumable/nutriment/vitamin = 0.04, /datum/reagent/consumable/nutriment = 0.1, /datum/reagent/consumable/sugar = 0.1) /obj/item/reagent_containers/food/snacks/grown/grapes seed = /obj/item/seeds/grape @@ -218,9 +218,9 @@ filling_color = "#FF1493" bitesize_mod = 2 foodtype = FRUIT - juice_results = list("grapejuice" = 0) + juice_results = list(/datum/reagent/consumable/grapejuice = 0) tastes = list("grape" = 1) - distill_reagent = "wine" + distill_reagent = /datum/reagent/consumable/ethanol/wine // Green Grapes /obj/item/seeds/grape/green @@ -230,7 +230,7 @@ species = "greengrape" plantname = "Green-Grape Vine" product = /obj/item/reagent_containers/food/snacks/grown/grapes/green - reagents_add = list("kelotane" = 0.2, "vitamin" = 0.04, "nutriment" = 0.1, "sugar" = 0.1) + reagents_add = list(/datum/reagent/medicine/kelotane = 0.2, /datum/reagent/consumable/nutriment/vitamin = 0.04, /datum/reagent/consumable/nutriment = 0.1, /datum/reagent/consumable/sugar = 0.1) // No rarity: technically it's a beneficial mutant, but it's not exactly "new"... mutatelist = list() @@ -240,7 +240,7 @@ icon_state = "greengrapes" filling_color = "#7FFF00" tastes = list("green grape" = 1) - distill_reagent = "cognac" + distill_reagent = /datum/reagent/consumable/ethanol/cognac // Strawberry /obj/item/seeds/strawberry @@ -254,7 +254,7 @@ growing_icon = 'icons/obj/hydroponics/growing_fruits.dmi' icon_grow = "strawberry-grow" icon_dead = "berry-dead" - reagents_add = list("vitamin" = 0.07, "nutriment" = 0.1, "sugar" = 0.2) + reagents_add = list(/datum/reagent/consumable/nutriment/vitamin = 0.07, /datum/reagent/consumable/nutriment = 0.1, /datum/reagent/consumable/sugar = 0.2) mutatelist = list() /obj/item/reagent_containers/food/snacks/grown/strawberry diff --git a/code/modules/hydroponics/grown/cannabis.dm b/code/modules/hydroponics/grown/cannabis.dm index 6ce3558bc3..621e79fb77 100644 --- a/code/modules/hydroponics/grown/cannabis.dm +++ b/code/modules/hydroponics/grown/cannabis.dm @@ -17,7 +17,7 @@ /obj/item/seeds/cannabis/death, /obj/item/seeds/cannabis/white, /obj/item/seeds/cannabis/ultimate) - reagents_add = list("space_drugs" = 0.15, "lipolicide" = 0.35) // gives u the munchies + reagents_add = list(/datum/reagent/drug/space_drugs = 0.15, /datum/reagent/toxin/lipolicide = 0.35) // gives u the munchies /obj/item/seeds/cannabis/rainbow @@ -28,7 +28,7 @@ plantname = "Rainbow Weed" product = /obj/item/reagent_containers/food/snacks/grown/cannabis/rainbow mutatelist = list() - reagents_add = list("mindbreaker" = 0.15, "lipolicide" = 0.35) + reagents_add = list(/datum/reagent/toxin/mindbreaker = 0.15, /datum/reagent/toxin/lipolicide = 0.35) rarity = 40 /obj/item/seeds/cannabis/death @@ -39,7 +39,7 @@ plantname = "Deathweed" product = /obj/item/reagent_containers/food/snacks/grown/cannabis/death mutatelist = list() - reagents_add = list("cyanide" = 0.35, "space_drugs" = 0.15, "lipolicide" = 0.15) + reagents_add = list(/datum/reagent/toxin/cyanide = 0.35, /datum/reagent/drug/space_drugs = 0.15, /datum/reagent/toxin/lipolicide = 0.15) rarity = 40 /obj/item/seeds/cannabis/white @@ -50,7 +50,7 @@ plantname = "Lifeweed" product = /obj/item/reagent_containers/food/snacks/grown/cannabis/white mutatelist = list() - reagents_add = list("omnizine" = 0.35, "space_drugs" = 0.15, "lipolicide" = 0.15) + reagents_add = list(/datum/reagent/medicine/omnizine = 0.35, /datum/reagent/drug/space_drugs = 0.15, /datum/reagent/toxin/lipolicide = 0.15) rarity = 40 @@ -63,21 +63,21 @@ product = /obj/item/reagent_containers/food/snacks/grown/cannabis/ultimate genes = list(/datum/plant_gene/trait/repeated_harvest, /datum/plant_gene/trait/glow/green) mutatelist = list() - reagents_add = list("space_drugs" = 0.3, - "mindbreaker" = 0.3, - "mercury" = 0.15, - "lithium" = 0.15, - "atropine" = 0.15, - "haloperidol" = 0.15, - "methamphetamine" = 0.15, - "capsaicin" = 0.15, - "barbers_aid" = 0.15, - "bath_salts" = 0.15, - "itching_powder" = 0.15, - "crank" = 0.15, - "krokodil" = 0.15, - "histamine" = 0.15, - "lipolicide" = 0.15) + reagents_add = list(/datum/reagent/drug/space_drugs = 0.3, + /datum/reagent/toxin/mindbreaker = 0.3, + /datum/reagent/mercury = 0.15, + /datum/reagent/lithium = 0.15, + /datum/reagent/medicine/atropine = 0.15, + /datum/reagent/medicine/haloperidol = 0.15, + /datum/reagent/drug/methamphetamine = 0.15, + /datum/reagent/consumable/capsaicin = 0.15, + /datum/reagent/barbers_aid = 0.15, + /datum/reagent/drug/bath_salts = 0.15, + /datum/reagent/toxin/itching_powder = 0.15, + /datum/reagent/drug/crank = 0.15, + /datum/reagent/drug/krokodil = 0.15, + /datum/reagent/toxin/histamine = 0.15, + /datum/reagent/toxin/lipolicide = 0.15) rarity = 69 diff --git a/code/modules/hydroponics/grown/cereals.dm b/code/modules/hydroponics/grown/cereals.dm index c53cd6718a..c5a7e0797a 100644 --- a/code/modules/hydroponics/grown/cereals.dm +++ b/code/modules/hydroponics/grown/cereals.dm @@ -11,7 +11,7 @@ potency = 15 icon_dead = "wheat-dead" mutatelist = list(/obj/item/seeds/wheat/oat, /obj/item/seeds/wheat/meat) - reagents_add = list("nutriment" = 0.04) + reagents_add = list(/datum/reagent/consumable/nutriment = 0.04) /obj/item/reagent_containers/food/snacks/grown/wheat seed = /obj/item/seeds/wheat @@ -22,9 +22,9 @@ filling_color = "#F0E68C" bitesize_mod = 2 foodtype = GRAIN - grind_results = list("flour" = 0) + grind_results = list(/datum/reagent/consumable/flour = 0) tastes = list("wheat" = 1) - distill_reagent = "beer" + distill_reagent = /datum/reagent/consumable/ethanol/beer // Oat /obj/item/seeds/wheat/oat @@ -45,9 +45,9 @@ filling_color = "#556B2F" bitesize_mod = 2 foodtype = GRAIN - grind_results = list("flour" = 0) + grind_results = list(/datum/reagent/consumable/flour = 0) tastes = list("oat" = 1) - distill_reagent = "ale" + distill_reagent = /datum/reagent/consumable/ethanol/ale // Rice /obj/item/seeds/wheat/rice @@ -69,9 +69,9 @@ filling_color = "#FAFAD2" bitesize_mod = 2 foodtype = GRAIN - grind_results = list("rice" = 0) + grind_results = list(/datum/reagent/consumable/rice = 0) tastes = list("rice" = 1) - distill_reagent = "sake" + distill_reagent = /datum/reagent/consumable/ethanol/sake //Meatwheat - grows into synthetic meat /obj/item/seeds/wheat/meat @@ -92,7 +92,7 @@ bitesize_mod = 2 seed = /obj/item/seeds/wheat/meat foodtype = MEAT | GRAIN - grind_results = list("flour" = 0, "blood" = 0) + grind_results = list(/datum/reagent/consumable/flour = 0, /datum/reagent/blood = 0) tastes = list("meatwheat" = 1) can_distill = FALSE diff --git a/code/modules/hydroponics/grown/chili.dm b/code/modules/hydroponics/grown/chili.dm index 6325daacdc..0522b5fd45 100644 --- a/code/modules/hydroponics/grown/chili.dm +++ b/code/modules/hydroponics/grown/chili.dm @@ -16,7 +16,7 @@ icon_dead = "chili-dead" // Same for the dead icon genes = list(/datum/plant_gene/trait/repeated_harvest) mutatelist = list(/obj/item/seeds/chili/ice, /obj/item/seeds/chili/ghost) - reagents_add = list("capsaicin" = 0.25, "vitamin" = 0.04, "nutriment" = 0.04) + reagents_add = list(/datum/reagent/consumable/capsaicin = 0.25, /datum/reagent/consumable/nutriment/vitamin = 0.04, /datum/reagent/consumable/nutriment = 0.04) /obj/item/reagent_containers/food/snacks/grown/chili seed = /obj/item/seeds/chili @@ -41,7 +41,7 @@ production = 4 rarity = 20 mutatelist = list() - reagents_add = list("frostoil" = 0.25, "vitamin" = 0.02, "nutriment" = 0.02) + reagents_add = list(/datum/reagent/consumable/frostoil = 0.25, /datum/reagent/consumable/nutriment/vitamin = 0.02, /datum/reagent/consumable/nutriment = 0.02) /obj/item/reagent_containers/food/snacks/grown/icepepper seed = /obj/item/seeds/chili/ice @@ -67,7 +67,7 @@ yield = 3 rarity = 20 mutatelist = list() - reagents_add = list("condensedcapsaicin" = 0.3, "capsaicin" = 0.55, "nutriment" = 0.04) + reagents_add = list(/datum/reagent/consumable/condensedcapsaicin = 0.3, /datum/reagent/consumable/capsaicin = 0.55, /datum/reagent/consumable/nutriment = 0.04) /obj/item/reagent_containers/food/snacks/grown/ghost_chili seed = /obj/item/seeds/chili/ghost diff --git a/code/modules/hydroponics/grown/citrus.dm b/code/modules/hydroponics/grown/citrus.dm index 66d03c777c..851753da46 100644 --- a/code/modules/hydroponics/grown/citrus.dm +++ b/code/modules/hydroponics/grown/citrus.dm @@ -23,7 +23,7 @@ growing_icon = 'icons/obj/hydroponics/growing_fruits.dmi' genes = list(/datum/plant_gene/trait/repeated_harvest) mutatelist = list(/obj/item/seeds/orange) - reagents_add = list("vitamin" = 0.04, "nutriment" = 0.05) + reagents_add = list(/datum/reagent/consumable/nutriment/vitamin = 0.04, /datum/reagent/consumable/nutriment = 0.05) /obj/item/reagent_containers/food/snacks/grown/citrus/lime seed = /obj/item/seeds/lime @@ -31,7 +31,7 @@ desc = "It's so sour, your face will twist." icon_state = "lime" filling_color = "#00FF00" - juice_results = list("limejuice" = 0) + juice_results = list(/datum/reagent/consumable/limejuice = 0) // Electric Lime /obj/item/seeds/lime/electric @@ -70,7 +70,7 @@ icon_dead = "lime-dead" genes = list(/datum/plant_gene/trait/repeated_harvest) mutatelist = list(/obj/item/seeds/lime, /obj/item/seeds/orange_3d) - reagents_add = list("vitamin" = 0.04, "nutriment" = 0.05) + reagents_add = list(/datum/reagent/consumable/nutriment/vitamin = 0.04, /datum/reagent/consumable/nutriment = 0.05) /obj/item/reagent_containers/food/snacks/grown/citrus/orange seed = /obj/item/seeds/orange @@ -78,8 +78,8 @@ desc = "It's a tangy fruit." icon_state = "orange" filling_color = "#FFA500" - juice_results = list("orangejuice" = 0) - distill_reagent = "triple_sec" + juice_results = list(/datum/reagent/consumable/orangejuice = 0) + distill_reagent = /datum/reagent/consumable/ethanol/triple_sec //3D Orange @@ -98,7 +98,7 @@ icon_grow = "lime-grow" icon_dead = "lime-dead" genes = list(/datum/plant_gene/trait/repeated_harvest) - reagents_add = list("vitamin" = 0.04, "nutriment" = 0.05, "haloperidol" = 0.15) + reagents_add = list(/datum/reagent/consumable/nutriment/vitamin = 0.04, /datum/reagent/consumable/nutriment = 0.05, /datum/reagent/medicine/haloperidol = 0.15) /obj/item/reagent_containers/food/snacks/grown/citrus/orange_3d seed = /obj/item/seeds/orange_3d @@ -106,8 +106,8 @@ desc = "You can hardly wrap your head around this thing." icon_state = "orang" filling_color = "#FFA500" - juice_results = list("orangejuice" = 0) - distill_reagent = "triple_sec" + juice_results = list(/datum/reagent/consumable/orangejuice = 0) + distill_reagent = /datum/reagent/consumable/ethanol/triple_sec tastes = list("polygons" = 1, "oranges" = 1) /obj/item/reagent_containers/food/snacks/grown/citrus/orange_3d/pickup(mob/user) @@ -134,7 +134,7 @@ icon_dead = "lime-dead" genes = list(/datum/plant_gene/trait/repeated_harvest) mutatelist = list(/obj/item/seeds/firelemon) - reagents_add = list("vitamin" = 0.04, "nutriment" = 0.05) + reagents_add = list(/datum/reagent/consumable/nutriment/vitamin = 0.04, /datum/reagent/consumable/nutriment = 0.05) /obj/item/reagent_containers/food/snacks/grown/citrus/lemon seed = /obj/item/seeds/lemon @@ -142,7 +142,7 @@ desc = "When life gives you lemons, make lemonade." icon_state = "lemon" filling_color = "#FFD700" - juice_results = list("lemonjuice" = 0) + juice_results = list(/datum/reagent/consumable/lemonjuice = 0) // Combustible lemon /obj/item/seeds/firelemon //combustible lemon is too long so firelemon @@ -159,7 +159,7 @@ lifespan = 55 endurance = 45 yield = 4 - reagents_add = list("nutriment" = 0.05) + reagents_add = list(/datum/reagent/consumable/nutriment = 0.05) /obj/item/reagent_containers/food/snacks/grown/firelemon seed = /obj/item/seeds/firelemon diff --git a/code/modules/hydroponics/grown/cocoa_vanilla.dm b/code/modules/hydroponics/grown/cocoa_vanilla.dm index 44373515c6..9ac705aa83 100644 --- a/code/modules/hydroponics/grown/cocoa_vanilla.dm +++ b/code/modules/hydroponics/grown/cocoa_vanilla.dm @@ -16,7 +16,7 @@ icon_dead = "cocoapod-dead" genes = list(/datum/plant_gene/trait/repeated_harvest) mutatelist = list(/obj/item/seeds/cocoapod/vanillapod, /obj/item/seeds/cocoapod/bungotree) - reagents_add = list("cocoa" = 0.25, "nutriment" = 0.1) + reagents_add = list(/datum/reagent/consumable/coco = 0.25, /datum/reagent/consumable/nutriment = 0.1) /obj/item/reagent_containers/food/snacks/grown/cocoapod seed = /obj/item/seeds/cocoapod @@ -27,7 +27,7 @@ bitesize_mod = 2 foodtype = FRUIT tastes = list("cocoa" = 1) - distill_reagent = "creme_de_cacao" + distill_reagent = /datum/reagent/consumable/ethanol/creme_de_cacao // Vanilla Pod /obj/item/seeds/cocoapod/vanillapod @@ -39,7 +39,7 @@ product = /obj/item/reagent_containers/food/snacks/grown/vanillapod genes = list(/datum/plant_gene/trait/repeated_harvest) mutatelist = list() - reagents_add = list("vanilla" = 0.25, "nutriment" = 0.1) + reagents_add = list(/datum/reagent/consumable/vanilla = 0.25, /datum/reagent/consumable/nutriment = 0.1) /obj/item/reagent_containers/food/snacks/grown/vanillapod seed = /obj/item/seeds/cocoapod/vanillapod @@ -49,7 +49,7 @@ filling_color = "#FFD700" foodtype = FRUIT tastes = list("vanilla" = 1) - distill_reagent = "vanilla" //Takes longer, but you can get even more vanilla from it. + distill_reagent = /datum/reagent/consumable/vanilla //Takes longer, but you can get even more vanilla from it. /obj/item/seeds/cocoapod/bungotree name = "pack of bungo tree seeds" @@ -64,7 +64,7 @@ production = 7 genes = list(/datum/plant_gene/trait/repeated_harvest) mutatelist = list() - reagents_add = list("enzyme" = 0.1, "nutriment" = 0.1) + reagents_add = list(/datum/reagent/consumable/enzyme = 0.1, /datum/reagent/consumable/nutriment = 0.1) growthstages = 4 growing_icon = 'icons/obj/hydroponics/growing_fruits.dmi' icon_grow = "bungotree-grow" @@ -79,6 +79,7 @@ trash = /obj/item/reagent_containers/food/snacks/grown/bungopit filling_color = "#E8C22F" foodtype = FRUIT + juice_results = list(/datum/reagent/consumable/bungojuice = 0) tastes = list("bungo" = 2, "tropical fruitiness" = 1) distill_reagent = null @@ -97,7 +98,7 @@ /obj/item/reagent_containers/food/snacks/grown/bungopit/Initialize() . =..() reagents.clear_reagents() - reagents.add_reagent("bungotoxin", seed.potency * 0.10) //More than this will kill at too low potency - reagents.add_reagent("nutriment", seed.potency * 0.04) + reagents.add_reagent(/datum/reagent/toxin/bungotoxin, seed.potency * 0.10) //More than this will kill at too low potency + reagents.add_reagent(/datum/reagent/consumable/nutriment, seed.potency * 0.04) diff --git a/code/modules/hydroponics/grown/corn.dm b/code/modules/hydroponics/grown/corn.dm index 0e5b5272ed..6c852c426d 100644 --- a/code/modules/hydroponics/grown/corn.dm +++ b/code/modules/hydroponics/grown/corn.dm @@ -13,7 +13,7 @@ icon_grow = "corn-grow" // Uses one growth icons set for all the subtypes icon_dead = "corn-dead" // Same for the dead icon mutatelist = list(/obj/item/seeds/corn/snapcorn) - reagents_add = list("cornoil" = 0.2, "vitamin" = 0.04, "nutriment" = 0.1) + reagents_add = list(/datum/reagent/consumable/cornoil = 0.2, /datum/reagent/consumable/nutriment/vitamin = 0.04, /datum/reagent/consumable/nutriment = 0.1) /obj/item/reagent_containers/food/snacks/grown/corn seed = /obj/item/seeds/corn @@ -25,9 +25,9 @@ trash = /obj/item/grown/corncob bitesize_mod = 2 foodtype = VEGETABLES - juice_results = list("corn_starch" = 0) + juice_results = list(/datum/reagent/consumable/corn_starch = 0) tastes = list("corn" = 1) - distill_reagent = "whiskey" + distill_reagent = /datum/reagent/consumable/ethanol/whiskey /obj/item/grown/corncob name = "corn cob" diff --git a/code/modules/hydroponics/grown/eggplant.dm b/code/modules/hydroponics/grown/eggplant.dm index 7c01a68f0a..f893ad9e57 100644 --- a/code/modules/hydroponics/grown/eggplant.dm +++ b/code/modules/hydroponics/grown/eggplant.dm @@ -13,7 +13,7 @@ icon_dead = "eggplant-dead" genes = list(/datum/plant_gene/trait/repeated_harvest) mutatelist = list(/obj/item/seeds/eggplant/eggy) - reagents_add = list("vitamin" = 0.04, "nutriment" = 0.1) + reagents_add = list(/datum/reagent/consumable/nutriment/vitamin = 0.04, /datum/reagent/consumable/nutriment = 0.1) /obj/item/reagent_containers/food/snacks/grown/eggplant seed = /obj/item/seeds/eggplant @@ -36,7 +36,7 @@ lifespan = 75 production = 12 mutatelist = list() - reagents_add = list("nutriment" = 0.1) + reagents_add = list(/datum/reagent/consumable/nutriment = 0.1) /obj/item/reagent_containers/food/snacks/grown/shell/eggy seed = /obj/item/seeds/eggplant/eggy @@ -47,4 +47,4 @@ filling_color = "#F8F8FF" bitesize_mod = 2 foodtype = MEAT - distill_reagent = "eggnog" + distill_reagent = /datum/reagent/consumable/ethanol/eggnog diff --git a/code/modules/hydroponics/grown/flowers.dm b/code/modules/hydroponics/grown/flowers.dm index b7c9550bb9..8cdf403b00 100644 --- a/code/modules/hydroponics/grown/flowers.dm +++ b/code/modules/hydroponics/grown/flowers.dm @@ -15,7 +15,7 @@ icon_grow = "poppy-grow" icon_dead = "poppy-dead" mutatelist = list(/obj/item/seeds/poppy/geranium, /obj/item/seeds/poppy/lily) - reagents_add = list("bicaridine" = 0.2, "nutriment" = 0.05) + reagents_add = list(/datum/reagent/medicine/bicaridine = 0.2, /datum/reagent/consumable/nutriment = 0.05) /obj/item/reagent_containers/food/snacks/grown/poppy seed = /obj/item/seeds/poppy @@ -27,7 +27,7 @@ bitesize_mod = 3 tastes = list("sesame seeds" = 1) foodtype = VEGETABLES | GROSS - distill_reagent = "vermouth" + distill_reagent = /datum/reagent/consumable/ethanol/vermouth // Lily /obj/item/seeds/poppy/lily @@ -68,7 +68,7 @@ icon_dead = "spacemanstrumpet-dead" mutatelist = list() genes = list(/datum/plant_gene/reagent/polypyr) - reagents_add = list("nutriment" = 0.05) + reagents_add = list(/datum/reagent/consumable/nutriment = 0.05) rarity = 30 /obj/item/seeds/poppy/lily/trumpet/Initialize() @@ -119,7 +119,7 @@ growthstages = 4 genes = list(/datum/plant_gene/trait/plant_type/weed_hardy) growing_icon = 'icons/obj/hydroponics/growing_flowers.dmi' - reagents_add = list("nutriment" = 0.04) + reagents_add = list(/datum/reagent/consumable/nutriment = 0.04) /obj/item/reagent_containers/food/snacks/grown/harebell seed = /obj/item/seeds/harebell @@ -130,7 +130,7 @@ slot_flags = ITEM_SLOT_HEAD filling_color = "#E6E6FA" bitesize_mod = 3 - distill_reagent = "vermouth" + distill_reagent = /datum/reagent/consumable/ethanol/vermouth // Sunflower /obj/item/seeds/sunflower @@ -148,7 +148,7 @@ icon_grow = "sunflower-grow" icon_dead = "sunflower-dead" mutatelist = list(/obj/item/seeds/sunflower/moonflower, /obj/item/seeds/sunflower/novaflower) - reagents_add = list("cooking_oil" = 0.08, "nutriment" = 0.04) + reagents_add = list(/datum/reagent/consumable/cooking_oil = 0.08, /datum/reagent/consumable/nutriment = 0.04) /obj/item/grown/sunflower // FLOWER POWER! seed = /obj/item/seeds/sunflower @@ -184,7 +184,7 @@ product = /obj/item/reagent_containers/food/snacks/grown/moonflower genes = list(/datum/plant_gene/trait/glow/purple) mutatelist = list() - reagents_add = list("moonshine" = 0.2, "vitamin" = 0.02, "nutriment" = 0.02) + reagents_add = list(/datum/reagent/consumable/ethanol/moonshine = 0.2, /datum/reagent/consumable/nutriment/vitamin = 0.02, /datum/reagent/consumable/nutriment = 0.02) rarity = 15 /obj/item/reagent_containers/food/snacks/grown/moonflower @@ -195,7 +195,7 @@ slot_flags = ITEM_SLOT_HEAD filling_color = "#E6E6FA" bitesize_mod = 2 - distill_reagent = "absinthe" //It's made from flowers. + distill_reagent = /datum/reagent/consumable/ethanol/absinthe //It's made from flowers. tastes = list("glowbugs" = 1) // Novaflower @@ -209,7 +209,7 @@ icon_dead = "sunflower-dead" product = /obj/item/grown/novaflower mutatelist = list() - reagents_add = list("condensedcapsaicin" = 0.25, "capsaicin" = 0.3, "nutriment" = 0) + reagents_add = list(/datum/reagent/consumable/condensedcapsaicin = 0.25, /datum/reagent/consumable/capsaicin = 0.3, /datum/reagent/consumable/nutriment = 0) rarity = 20 /obj/item/grown/novaflower @@ -227,7 +227,7 @@ throw_speed = 1 throw_range = 3 attack_verb = list("roasted", "scorched", "burned") - grind_results = list("capsaicin" = 0, "condensedcapsaicin" = 0) + grind_results = list(/datum/reagent/consumable/capsaicin = 0, /datum/reagent/consumable/condensedcapsaicin = 0) tastes = list("cooked sunflower" = 1) /obj/item/grown/novaflower/add_juice() @@ -277,7 +277,7 @@ icon_grow = "bee_balm-grow" icon_dead = "bee_balm-dead" mutatelist = list(/obj/item/seeds/poppy/geranium, /obj/item/seeds/bee_balm/honey) //Lower odds of becoming honey - reagents_add = list("spaceacillin" = 0.1, "sterilizine" = 0.05) + reagents_add = list(/datum/reagent/medicine/spaceacillin = 0.1, /datum/reagent/space_cleaner/sterilizine = 0.05) /obj/item/reagent_containers/food/snacks/grown/bee_balm seed = /obj/item/seeds/bee_balm @@ -305,7 +305,7 @@ growing_icon = 'icons/obj/hydroponics/growing_flowers.dmi' icon_grow = "bee_balmalt-grow" icon_dead = "bee_balmalt-dead" - reagents_add = list("honey" = 0.1, "lye" = 0.3) //To make wax + reagents_add = list(/datum/reagent/consumable/honey = 0.1, /datum/reagent/lye = 0.3) //To make wax rarity = 30 /obj/item/reagent_containers/food/snacks/grown/bee_balm/honey diff --git a/code/modules/hydroponics/grown/grass_carpet.dm b/code/modules/hydroponics/grown/grass_carpet.dm index 02b36d6a3f..3b5159465c 100644 --- a/code/modules/hydroponics/grown/grass_carpet.dm +++ b/code/modules/hydroponics/grown/grass_carpet.dm @@ -16,7 +16,7 @@ icon_dead = "grass-dead" genes = list(/datum/plant_gene/trait/repeated_harvest) mutatelist = list(/obj/item/seeds/grass/carpet, /obj/item/seeds/grass/fairy) - reagents_add = list("nutriment" = 0.02, "hydrogen" = 0.05) + reagents_add = list(/datum/reagent/consumable/nutriment = 0.02, /datum/reagent/hydrogen = 0.05) /obj/item/reagent_containers/food/snacks/grown/grass seed = /obj/item/seeds/grass @@ -51,7 +51,7 @@ icon_grow = "fairygrass-grow" icon_dead = "fairygrass-dead" genes = list(/datum/plant_gene/trait/repeated_harvest, /datum/plant_gene/trait/glow/blue) - reagents_add = list("nutriment" = 0.02, "hydrogen" = 0.05, "space_drugs" = 0.15) + reagents_add = list(/datum/reagent/consumable/nutriment = 0.02, /datum/reagent/hydrogen = 0.05, /datum/reagent/drug/space_drugs = 0.15) /obj/item/reagent_containers/food/snacks/grown/grass/fairy seed = /obj/item/seeds/grass/fairy @@ -66,9 +66,9 @@ for(var/datum/plant_gene/trait/glow/gene in seed.genes) G = gene break - + stacktype = initial(stacktype) - + if(G) switch(G.type) if(/datum/plant_gene/trait/glow/white) @@ -85,10 +85,10 @@ stacktype = /obj/item/stack/tile/fairygrass/purple if(/datum/plant_gene/trait/glow/pink) stacktype = /obj/item/stack/tile/fairygrass/pink - + . = ..() - + // Carpet diff --git a/code/modules/hydroponics/grown/kudzu.dm b/code/modules/hydroponics/grown/kudzu.dm index 6ceb69536d..5f1fdcdaa9 100644 --- a/code/modules/hydroponics/grown/kudzu.dm +++ b/code/modules/hydroponics/grown/kudzu.dm @@ -14,7 +14,7 @@ growthstages = 4 rarity = 30 var/list/mutations = list() - reagents_add = list("charcoal" = 0.04, "nutriment" = 0.02) + reagents_add = list(/datum/reagent/medicine/charcoal = 0.04, /datum/reagent/consumable/nutriment = 0.02) /obj/item/seeds/kudzu/Copy() var/obj/item/seeds/kudzu/S = ..() @@ -58,7 +58,7 @@ /obj/item/seeds/kudzu/on_chem_reaction(datum/reagents/S) var/list/temp_mut_list = list() - if(S.has_reagent("sterilizine", 5)) + if(S.has_reagent(/datum/reagent/space_cleaner/sterilizine, 5)) for(var/datum/spacevine_mutation/SM in mutations) if(SM.quality == NEGATIVE) temp_mut_list += SM @@ -66,7 +66,7 @@ mutations.Remove(pick(temp_mut_list)) temp_mut_list.Cut() - if(S.has_reagent("welding_fuel", 5)) + if(S.has_reagent(/datum/reagent/fuel, 5)) for(var/datum/spacevine_mutation/SM in mutations) if(SM.quality == POSITIVE) temp_mut_list += SM @@ -74,7 +74,7 @@ mutations.Remove(pick(temp_mut_list)) temp_mut_list.Cut() - if(S.has_reagent("phenol", 5)) + if(S.has_reagent(/datum/reagent/phenol, 5)) for(var/datum/spacevine_mutation/SM in mutations) if(SM.quality == MINOR_NEGATIVE) temp_mut_list += SM @@ -82,16 +82,16 @@ mutations.Remove(pick(temp_mut_list)) temp_mut_list.Cut() - if(S.has_reagent("blood", 15)) + if(S.has_reagent(/datum/reagent/blood, 15)) adjust_production(rand(15, -5)) - if(S.has_reagent("amatoxin", 5)) + if(S.has_reagent(/datum/reagent/toxin/amatoxin, 5)) adjust_production(rand(5, -15)) - if(S.has_reagent("plasma", 5)) + if(S.has_reagent(/datum/reagent/toxin/plasma, 5)) adjust_potency(rand(5, -15)) - if(S.has_reagent("holywater", 10)) + if(S.has_reagent(/datum/reagent/water/holywater, 10)) adjust_potency(rand(15, -5)) diff --git a/code/modules/hydroponics/grown/melon.dm b/code/modules/hydroponics/grown/melon.dm index e85a36f4b6..940508f66b 100644 --- a/code/modules/hydroponics/grown/melon.dm +++ b/code/modules/hydroponics/grown/melon.dm @@ -12,7 +12,7 @@ icon_dead = "watermelon-dead" genes = list(/datum/plant_gene/trait/repeated_harvest) mutatelist = list(/obj/item/seeds/watermelon/holy) - reagents_add = list("water" = 0.2, "vitamin" = 0.04, "nutriment" = 0.2) + reagents_add = list(/datum/reagent/water = 0.2, /datum/reagent/consumable/nutriment/vitamin = 0.04, /datum/reagent/consumable/nutriment = 0.2) /obj/item/seeds/watermelon/suicide_act(mob/user) user.visible_message("[user] is swallowing [src]! It looks like [user.p_theyre()] trying to commit suicide!") @@ -33,7 +33,7 @@ filling_color = "#008000" bitesize_mod = 3 foodtype = FRUIT - juice_results = list("watermelonjuice" = 0) + juice_results = list(/datum/reagent/consumable/watermelonjuice = 0) wine_power = 40 // Holymelon @@ -46,7 +46,7 @@ product = /obj/item/reagent_containers/food/snacks/grown/holymelon genes = list(/datum/plant_gene/trait/glow/yellow) mutatelist = list() - reagents_add = list("holywater" = 0.2, "vitamin" = 0.04, "nutriment" = 0.1) + reagents_add = list(/datum/reagent/water/holywater = 0.2, /datum/reagent/consumable/nutriment/vitamin = 0.04, /datum/reagent/consumable/nutriment = 0.1) rarity = 20 /obj/item/reagent_containers/food/snacks/grown/holymelon diff --git a/code/modules/hydroponics/grown/misc.dm b/code/modules/hydroponics/grown/misc.dm index 3af284974e..e0a2453353 100644 --- a/code/modules/hydroponics/grown/misc.dm +++ b/code/modules/hydroponics/grown/misc.dm @@ -12,7 +12,7 @@ yield = 6 potency = 10 growthstages = 3 - grind_results = list("mustardgrind" = 1) + grind_results = list(/datum/reagent/mustardgrind = 1) growing_icon = 'icons/obj/hydroponics/growing_flowers.dmi' genes = list(/datum/plant_gene/trait/plant_type/weed_hardy) mutatelist = list(/obj/item/seeds/starthistle/corpse_flower, /obj/item/seeds/galaxythistle) @@ -80,7 +80,7 @@ growing_icon = 'icons/obj/hydroponics/growing_flowers.dmi' genes = list(/datum/plant_gene/trait/plant_type/weed_hardy, /datum/plant_gene/trait/invasive) mutatelist = list() - reagents_add = list("nutriment" = 0.05, "silibinin" = 0.1) + reagents_add = list(/datum/reagent/consumable/nutriment = 0.05, /datum/reagent/medicine/silibinin = 0.1) /obj/item/seeds/galaxythistle/Initialize() ..() @@ -116,7 +116,7 @@ growing_icon = 'icons/obj/hydroponics/growing_vegetables.dmi' genes = list(/datum/plant_gene/trait/repeated_harvest) mutatelist = list(/obj/item/seeds/replicapod) - reagents_add = list("vitamin" = 0.04, "nutriment" = 0.1) + reagents_add = list(/datum/reagent/consumable/nutriment/vitamin = 0.04, /datum/reagent/consumable/nutriment = 0.1) /obj/item/reagent_containers/food/snacks/grown/cabbage seed = /obj/item/seeds/cabbage @@ -142,7 +142,7 @@ maturation = 3 yield = 4 growthstages = 2 - reagents_add = list("sugar" = 0.25) + reagents_add = list(/datum/reagent/consumable/sugar = 0.25) mutatelist = list(/obj/item/seeds/bamboo) /obj/item/reagent_containers/food/snacks/grown/sugarcane @@ -153,7 +153,7 @@ filling_color = "#FFD700" bitesize_mod = 2 foodtype = VEGETABLES | SUGAR - distill_reagent = "rum" + distill_reagent = /datum/reagent/consumable/ethanol/rum // Gatfruit /obj/item/seeds/gatfruit @@ -173,7 +173,7 @@ growthstages = 2 rarity = 60 // Obtainable only with xenobio+superluck. growing_icon = 'icons/obj/hydroponics/growing_fruits.dmi' - reagents_add = list("sulfur" = 0.1, "carbon" = 0.1, "nitrogen" = 0.07, "potassium" = 0.05) + reagents_add = list(/datum/reagent/sulfur = 0.1, /datum/reagent/carbon = 0.1, /datum/reagent/nitrogen = 0.07, /datum/reagent/potassium = 0.05) /obj/item/reagent_containers/food/snacks/grown/shell/gatfruit seed = /obj/item/seeds/gatfruit @@ -195,7 +195,7 @@ plantname = "Cherry Bomb Tree" product = /obj/item/reagent_containers/food/snacks/grown/cherry_bomb mutatelist = list() - reagents_add = list("nutriment" = 0.1, "sugar" = 0.1, "blackpowder" = 0.7) + reagents_add = list(/datum/reagent/consumable/nutriment = 0.1, /datum/reagent/consumable/sugar = 0.1, /datum/reagent/blackpowder = 0.7) rarity = 60 //See above /obj/item/reagent_containers/food/snacks/grown/cherry_bomb @@ -261,7 +261,7 @@ icon_dead = "coconut-dead" genes = list(/datum/plant_gene/trait/repeated_harvest) forbiddengenes = list(/datum/plant_gene/trait/squash, /datum/plant_gene/trait/stinging) - reagents_add = list("coconutmilk" = 0.3) + reagents_add = list(/datum/reagent/consumable/coconutmilk = 0.3) /obj/item/reagent_containers/food/snacks/grown/coconut seed = /obj/item/seeds/coconut @@ -432,7 +432,7 @@ "[user] splashes the contents of [src] onto [M]!") if(reagents) for(var/datum/reagent/A in reagents.reagent_list) - R += A.id + " (" + R += A.type + " (" R += num2text(A.volume) + ")," if(isturf(target) && reagents.reagent_list.len && thrownby) log_combat(thrownby, target, "splashed (thrown) [english_list(reagents.reagent_list)]") diff --git a/code/modules/hydroponics/grown/mushrooms.dm b/code/modules/hydroponics/grown/mushrooms.dm index c8e97c78de..7e43911c5c 100644 --- a/code/modules/hydroponics/grown/mushrooms.dm +++ b/code/modules/hydroponics/grown/mushrooms.dm @@ -21,7 +21,7 @@ growthstages = 4 genes = list(/datum/plant_gene/trait/plant_type/fungal_metabolism) growing_icon = 'icons/obj/hydroponics/growing_mushrooms.dmi' - reagents_add = list("morphine" = 0.35, "charcoal" = 0.35, "nutriment" = 0) + reagents_add = list(/datum/reagent/medicine/morphine = 0.35, /datum/reagent/medicine/charcoal = 0.35, /datum/reagent/consumable/nutriment = 0) /obj/item/reagent_containers/food/snacks/grown/mushroom/reishi seed = /obj/item/seeds/reishi @@ -47,7 +47,7 @@ genes = list(/datum/plant_gene/trait/plant_type/fungal_metabolism) growing_icon = 'icons/obj/hydroponics/growing_mushrooms.dmi' mutatelist = list(/obj/item/seeds/angel) - reagents_add = list("mushroomhallucinogen" = 0.04, "amatoxin" = 0.35, "nutriment" = 0, "growthserum" = 0.1) + reagents_add = list(/datum/reagent/drug/mushroomhallucinogen = 0.04, /datum/reagent/toxin/amatoxin = 0.35, /datum/reagent/consumable/nutriment = 0, /datum/reagent/growthserum = 0.1) /obj/item/reagent_containers/food/snacks/grown/mushroom/amanita seed = /obj/item/seeds/amanita @@ -73,7 +73,7 @@ growthstages = 3 genes = list(/datum/plant_gene/trait/plant_type/fungal_metabolism) growing_icon = 'icons/obj/hydroponics/growing_mushrooms.dmi' - reagents_add = list("mushroomhallucinogen" = 0.04, "amatoxin" = 0.1, "nutriment" = 0, "amanitin" = 0.2) + reagents_add = list(/datum/reagent/drug/mushroomhallucinogen = 0.04, /datum/reagent/toxin/amatoxin = 0.1, /datum/reagent/consumable/nutriment = 0, /datum/reagent/toxin/amanitin = 0.2) rarity = 30 /obj/item/reagent_containers/food/snacks/grown/mushroom/angel @@ -99,7 +99,7 @@ growthstages = 3 genes = list(/datum/plant_gene/trait/plant_type/fungal_metabolism) growing_icon = 'icons/obj/hydroponics/growing_mushrooms.dmi' - reagents_add = list("mushroomhallucinogen" = 0.25, "nutriment" = 0.02) + reagents_add = list(/datum/reagent/drug/mushroomhallucinogen = 0.25, /datum/reagent/consumable/nutriment = 0.02) /obj/item/reagent_containers/food/snacks/grown/mushroom/libertycap seed = /obj/item/seeds/liberty @@ -125,7 +125,7 @@ genes = list(/datum/plant_gene/trait/plant_type/fungal_metabolism) growing_icon = 'icons/obj/hydroponics/growing_mushrooms.dmi' mutatelist = list(/obj/item/seeds/plump/walkingmushroom) - reagents_add = list("vitamin" = 0.04, "nutriment" = 0.1) + reagents_add = list(/datum/reagent/consumable/nutriment/vitamin = 0.04, /datum/reagent/consumable/nutriment = 0.1) /obj/item/reagent_containers/food/snacks/grown/mushroom/plumphelmet seed = /obj/item/seeds/plump @@ -133,7 +133,7 @@ desc = "Plumus Hellmus: Plump, soft and s-so inviting~" icon_state = "plumphelmet" filling_color = "#9370DB" - distill_reagent = "manlydorf" + distill_reagent = /datum/reagent/consumable/ethanol/manly_dorf // Walking Mushroom /obj/item/seeds/plump/walkingmushroom @@ -149,7 +149,7 @@ yield = 1 growing_icon = 'icons/obj/hydroponics/growing_mushrooms.dmi' mutatelist = list() - reagents_add = list("vitamin" = 0.05, "nutriment" = 0.15) + reagents_add = list(/datum/reagent/consumable/nutriment/vitamin = 0.05, /datum/reagent/consumable/nutriment = 0.15) rarity = 30 /obj/item/reagent_containers/food/snacks/grown/mushroom/walkingmushroom @@ -190,7 +190,7 @@ growthstages = 3 genes = list(/datum/plant_gene/trait/plant_type/fungal_metabolism) growing_icon = 'icons/obj/hydroponics/growing_mushrooms.dmi' - reagents_add = list("nutriment" = 0.1) + reagents_add = list(/datum/reagent/consumable/nutriment = 0.1) mutatelist = list(/obj/item/seeds/chanterelle/jupitercup) /obj/item/reagent_containers/food/snacks/grown/mushroom/chanterelle @@ -215,7 +215,7 @@ growthstages = 2 genes = list(/datum/plant_gene/trait/plant_type/fungal_metabolism, /datum/plant_gene/reagent/liquidelectricity, /datum/plant_gene/trait/plant_type/carnivory) growing_icon = 'icons/obj/hydroponics/growing_mushrooms.dmi' - reagents_add = list("nutriment" = 0.1) + reagents_add = list(/datum/reagent/consumable/nutriment = 0.1) /obj/item/seeds/chanterelle/jupitercup/Initialize() ..() @@ -248,7 +248,7 @@ genes = list(/datum/plant_gene/trait/glow, /datum/plant_gene/trait/plant_type/fungal_metabolism) growing_icon = 'icons/obj/hydroponics/growing_mushrooms.dmi' mutatelist = list(/obj/item/seeds/glowshroom/glowcap, /obj/item/seeds/glowshroom/shadowshroom) - reagents_add = list("radium" = 0.1, "phosphorus" = 0.1, "nutriment" = 0.04) + reagents_add = list(/datum/reagent/radium = 0.1, /datum/reagent/phosphorus = 0.1, /datum/reagent/consumable/nutriment = 0.04) /obj/item/reagent_containers/food/snacks/grown/mushroom/glowshroom seed = /obj/item/seeds/glowshroom @@ -293,7 +293,7 @@ product = /obj/item/reagent_containers/food/snacks/grown/mushroom/glowshroom/glowcap genes = list(/datum/plant_gene/trait/glow/red, /datum/plant_gene/trait/cell_charge, /datum/plant_gene/trait/plant_type/fungal_metabolism) mutatelist = list() - reagents_add = list("teslium" = 0.1, "nutriment" = 0.04) + reagents_add = list(/datum/reagent/teslium = 0.1, /datum/reagent/consumable/nutriment = 0.04) rarity = 30 /obj/item/reagent_containers/food/snacks/grown/mushroom/glowshroom/glowcap @@ -318,7 +318,7 @@ product = /obj/item/reagent_containers/food/snacks/grown/mushroom/glowshroom/shadowshroom genes = list(/datum/plant_gene/trait/glow/shadow, /datum/plant_gene/trait/plant_type/fungal_metabolism) mutatelist = list() - reagents_add = list("radium" = 0.2, "nutriment" = 0.04) + reagents_add = list(/datum/reagent/radium = 0.2, /datum/reagent/consumable/nutriment = 0.04) rarity = 30 /obj/item/reagent_containers/food/snacks/grown/mushroom/glowshroom/shadowshroom @@ -350,7 +350,7 @@ potency = 15 growthstages = 3 rarity = 20 - reagents_add = list("nutriment" = 0.1) + reagents_add = list(/datum/reagent/consumable/nutriment = 0.1) resistance_flags = FIRE_PROOF /obj/item/seeds/lavaland/polypore diff --git a/code/modules/hydroponics/grown/nettle.dm b/code/modules/hydroponics/grown/nettle.dm index dbcce2830b..c3bd82c624 100644 --- a/code/modules/hydroponics/grown/nettle.dm +++ b/code/modules/hydroponics/grown/nettle.dm @@ -11,7 +11,7 @@ growthstages = 5 genes = list(/datum/plant_gene/trait/repeated_harvest, /datum/plant_gene/trait/plant_type/weed_hardy) mutatelist = list(/obj/item/seeds/nettle/death) - reagents_add = list("sacid" = 0.5) + reagents_add = list(/datum/reagent/toxin/acid = 0.5) /obj/item/seeds/nettle/death name = "pack of death-nettle seeds" @@ -25,7 +25,7 @@ yield = 2 genes = list(/datum/plant_gene/trait/repeated_harvest, /datum/plant_gene/trait/plant_type/weed_hardy, /datum/plant_gene/trait/stinging) mutatelist = list() - reagents_add = list("facid" = 0.5, "sacid" = 0.5) + reagents_add = list(/datum/reagent/toxin/acid/fluacid = 0.5, /datum/reagent/toxin/acid = 0.5) rarity = 20 /obj/item/reagent_containers/food/snacks/grown/nettle // "snack" diff --git a/code/modules/hydroponics/grown/onion.dm b/code/modules/hydroponics/grown/onion.dm index 9cb8d1a63c..2ebaa6d5e2 100644 --- a/code/modules/hydroponics/grown/onion.dm +++ b/code/modules/hydroponics/grown/onion.dm @@ -13,7 +13,7 @@ growthstages = 3 weed_chance = 3 growing_icon = 'icons/obj/hydroponics/growing_vegetables.dmi' - reagents_add = list("vitamin" = 0.04, "nutriment" = 0.1) + reagents_add = list(/datum/reagent/consumable/nutriment/vitamin = 0.04, /datum/reagent/consumable/nutriment = 0.1) mutatelist = list(/obj/item/seeds/onion/red) /obj/item/reagent_containers/food/snacks/grown/onion @@ -36,7 +36,7 @@ plantname = "Red Onion Sprouts" weed_chance = 1 product = /obj/item/reagent_containers/food/snacks/grown/onion/red - reagents_add = list("vitamin" = 0.04, "nutriment" = 0.1, "tearjuice" = 0.05) + reagents_add = list(/datum/reagent/consumable/nutriment/vitamin = 0.04, /datum/reagent/consumable/nutriment = 0.1, /datum/reagent/consumable/tearjuice = 0.05) /obj/item/reagent_containers/food/snacks/grown/onion/red seed = /obj/item/seeds/onion/red @@ -61,7 +61,7 @@ name = "onion slices" desc = "Rings, not for wearing." icon_state = "onionslice" - list_reagents = list("nutriment" = 5, "vitamin" = 2) + list_reagents = list(/datum/reagent/consumable/nutriment = 5, /datum/reagent/consumable/nutriment/vitamin = 2) filling_color = "#C0C9A0" gender = PLURAL cooked_type = /obj/item/reagent_containers/food/snacks/onionrings @@ -71,4 +71,4 @@ desc = "They shine like exceptionally low quality amethyst." icon_state = "onionslice_red" filling_color = "#C29ACF" - list_reagents = list("nutriment" = 5, "vitamin" = 2, "tearjuice" = 2.5) + list_reagents = list(/datum/reagent/consumable/nutriment = 5, /datum/reagent/consumable/nutriment/vitamin = 2, /datum/reagent/consumable/tearjuice = 2.5) diff --git a/code/modules/hydroponics/grown/peach.dm b/code/modules/hydroponics/grown/peach.dm index 6fbf933bd1..1f48ab5512 100644 --- a/code/modules/hydroponics/grown/peach.dm +++ b/code/modules/hydroponics/grown/peach.dm @@ -13,7 +13,7 @@ icon_grow = "peach-grow" icon_dead = "peach-dead" genes = list(/datum/plant_gene/trait/repeated_harvest) - reagents_add = list("vitamin" = 0.04, "nutriment" = 0.1) + reagents_add = list(/datum/reagent/consumable/nutriment/vitamin = 0.04, /datum/reagent/consumable/nutriment = 0.1) /obj/item/reagent_containers/food/snacks/grown/peach seed = /obj/item/seeds/peach @@ -23,5 +23,5 @@ filling_color = "#FF4500" bitesize = 25 foodtype = FRUIT - juice_results = list("peachjuice" = 0) + juice_results = list(/datum/reagent/consumable/peachjuice = 0) tastes = list("peach" = 1) diff --git a/code/modules/hydroponics/grown/peanuts.dm b/code/modules/hydroponics/grown/peanuts.dm index 2423300cc4..3ac1497148 100644 --- a/code/modules/hydroponics/grown/peanuts.dm +++ b/code/modules/hydroponics/grown/peanuts.dm @@ -8,7 +8,7 @@ yield = 6 growthstages = 4 growing_icon = 'icons/obj/hydroponics/growing_vegetables.dmi' - reagents_add = list("vitamin" = 0.02, "nutriment" = 0.15, "cooking_oil" = 0.03) + reagents_add = list(/datum/reagent/consumable/nutriment/vitamin = 0.02, /datum/reagent/consumable/nutriment = 0.15, /datum/reagent/consumable/cooking_oil = 0.03) /obj/item/reagent_containers/food/snacks/grown/peanut seed = /obj/item/seeds/peanutseed @@ -26,5 +26,5 @@ desc = "A handful of roasted peanuts, with or without salt." icon_state = "roasted_peanuts" foodtype = VEGETABLES - list_reagents = list("nutriment" = 6, "vitamin" = 1) - juice_results = list("peanut_butter" = 3) \ No newline at end of file + list_reagents = list(/datum/reagent/consumable/nutriment = 6, /datum/reagent/consumable/nutriment/vitamin = 1) + juice_results = list(/datum/reagent/consumable/peanut_butter = 3) \ No newline at end of file diff --git a/code/modules/hydroponics/grown/pineapple.dm b/code/modules/hydroponics/grown/pineapple.dm index e52c261217..40b3a67573 100644 --- a/code/modules/hydroponics/grown/pineapple.dm +++ b/code/modules/hydroponics/grown/pineapple.dm @@ -12,7 +12,7 @@ growing_icon = 'icons/obj/hydroponics/growing_fruits.dmi' genes = list(/datum/plant_gene/trait/repeated_harvest) mutatelist = list(/obj/item/seeds/apple) - reagents_add = list("vitamin" = 0.02, "nutriment" = 0.2, "water" = 0.04) + reagents_add = list(/datum/reagent/consumable/nutriment/vitamin = 0.02, /datum/reagent/consumable/nutriment = 0.2, /datum/reagent/water = 0.04) /obj/item/reagent_containers/food/snacks/grown/pineapple seed = /obj/item/seeds/pineapple diff --git a/code/modules/hydroponics/grown/potato.dm b/code/modules/hydroponics/grown/potato.dm index 50341dfa3a..fad916030d 100644 --- a/code/modules/hydroponics/grown/potato.dm +++ b/code/modules/hydroponics/grown/potato.dm @@ -16,7 +16,7 @@ icon_dead = "potato-dead" genes = list(/datum/plant_gene/trait/battery) mutatelist = list(/obj/item/seeds/potato/sweet) - reagents_add = list("vitamin" = 0.04, "nutriment" = 0.1) + reagents_add = list(/datum/reagent/consumable/nutriment/vitamin = 0.04, /datum/reagent/consumable/nutriment = 0.1) /obj/item/reagent_containers/food/snacks/grown/potato seed = /obj/item/seeds/potato @@ -26,8 +26,8 @@ filling_color = "#E9967A" bitesize = 100 foodtype = VEGETABLES - juice_results = list("potato" = 0) - distill_reagent = "vodka" + juice_results = list(/datum/reagent/consumable/potato_juice = 0) + distill_reagent = /datum/reagent/consumable/ethanol/vodka /obj/item/reagent_containers/food/snacks/grown/potato/wedges name = "potato wedges" @@ -57,11 +57,11 @@ plantname = "Sweet Potato Plants" product = /obj/item/reagent_containers/food/snacks/grown/potato/sweet mutatelist = list() - reagents_add = list("vitamin" = 0.1, "sugar" = 0.1, "nutriment" = 0.1) + reagents_add = list(/datum/reagent/consumable/nutriment/vitamin = 0.1, /datum/reagent/consumable/sugar = 0.1, /datum/reagent/consumable/nutriment = 0.1) /obj/item/reagent_containers/food/snacks/grown/potato/sweet seed = /obj/item/seeds/potato/sweet name = "sweet potato" desc = "It's sweet." icon_state = "sweetpotato" - distill_reagent = "sbiten" + distill_reagent = /datum/reagent/consumable/ethanol/sbiten diff --git a/code/modules/hydroponics/grown/pumpkin.dm b/code/modules/hydroponics/grown/pumpkin.dm index 46dc49a169..6254fb5bcc 100644 --- a/code/modules/hydroponics/grown/pumpkin.dm +++ b/code/modules/hydroponics/grown/pumpkin.dm @@ -14,7 +14,7 @@ icon_dead = "pumpkin-dead" genes = list(/datum/plant_gene/trait/repeated_harvest) mutatelist = list(/obj/item/seeds/pumpkin/blumpkin) - reagents_add = list("vitamin" = 0.04, "nutriment" = 0.2) + reagents_add = list(/datum/reagent/consumable/nutriment/vitamin = 0.04, /datum/reagent/consumable/nutriment = 0.2) /obj/item/reagent_containers/food/snacks/grown/pumpkin seed = /obj/item/seeds/pumpkin @@ -24,7 +24,7 @@ filling_color = "#FFA500" bitesize_mod = 2 foodtype = FRUIT - juice_results = list("pumpkinjuice" = 0) + juice_results = list(/datum/reagent/consumable/pumpkinjuice = 0) wine_power = 20 /obj/item/reagent_containers/food/snacks/grown/pumpkin/attackby(obj/item/W as obj, mob/user as mob, params) @@ -45,7 +45,7 @@ plantname = "Blumpkin Vines" product = /obj/item/reagent_containers/food/snacks/grown/blumpkin mutatelist = list() - reagents_add = list("ammonia" = 0.2, "chlorine" = 0.1, "nutriment" = 0.2) + reagents_add = list(/datum/reagent/ammonia = 0.2, /datum/reagent/chlorine = 0.1, /datum/reagent/consumable/nutriment = 0.2) rarity = 20 /obj/item/reagent_containers/food/snacks/grown/blumpkin @@ -56,5 +56,5 @@ filling_color = "#87CEFA" bitesize_mod = 2 foodtype = FRUIT - juice_results = list("blumpkinjuice" = 0) + juice_results = list(/datum/reagent/consumable/blumpkinjuice = 0) wine_power = 50 diff --git a/code/modules/hydroponics/grown/replicapod.dm b/code/modules/hydroponics/grown/replicapod.dm index bac480bee6..3769f9eacc 100644 --- a/code/modules/hydroponics/grown/replicapod.dm +++ b/code/modules/hydroponics/grown/replicapod.dm @@ -31,7 +31,7 @@ /obj/item/seeds/replicapod/on_reagent_change(changetype) if(changetype == ADD_REAGENT) - var/datum/reagent/blood/B = reagents.has_reagent("blood") + var/datum/reagent/blood/B = reagents.has_reagent(/datum/reagent/blood) if(B) if(B.data["mind"] && B.data["cloneable"]) mind = B.data["mind"] @@ -47,7 +47,7 @@ else visible_message("The [src] rejects the sample!") - if(!reagents.has_reagent("blood")) + if(!reagents.has_reagent(/datum/reagent/blood)) mind = null ckey = null realName = null diff --git a/code/modules/hydroponics/grown/root.dm b/code/modules/hydroponics/grown/root.dm index e28043e4b1..ac171b4e45 100644 --- a/code/modules/hydroponics/grown/root.dm +++ b/code/modules/hydroponics/grown/root.dm @@ -12,7 +12,7 @@ growthstages = 3 growing_icon = 'icons/obj/hydroponics/growing_vegetables.dmi' mutatelist = list(/obj/item/seeds/carrot/parsnip) - reagents_add = list("oculine" = 0.25, "vitamin" = 0.04, "nutriment" = 0.05) + reagents_add = list(/datum/reagent/medicine/oculine = 0.25, /datum/reagent/consumable/nutriment/vitamin = 0.04, /datum/reagent/consumable/nutriment = 0.05) /obj/item/reagent_containers/food/snacks/grown/carrot seed = /obj/item/seeds/carrot @@ -22,7 +22,7 @@ filling_color = "#FFA500" bitesize_mod = 2 foodtype = VEGETABLES - juice_results = list("carrotjuice" = 0) + juice_results = list(/datum/reagent/consumable/carrotjuice = 0) wine_power = 30 /obj/item/reagent_containers/food/snacks/grown/carrot/attackby(obj/item/I, mob/user, params) @@ -45,7 +45,7 @@ product = /obj/item/reagent_containers/food/snacks/grown/parsnip icon_dead = "carrot-dead" mutatelist = list() - reagents_add = list("vitamin" = 0.05, "nutriment" = 0.05) + reagents_add = list(/datum/reagent/consumable/nutriment/vitamin = 0.05, /datum/reagent/consumable/nutriment = 0.05) /obj/item/reagent_containers/food/snacks/grown/parsnip seed = /obj/item/seeds/carrot/parsnip @@ -54,7 +54,7 @@ icon_state = "parsnip" bitesize_mod = 2 foodtype = VEGETABLES - juice_results = list("parsnipjuice" = 0) + juice_results = list(/datum/reagent/consumable/parsnipjuice = 0) wine_power = 35 @@ -72,7 +72,7 @@ growing_icon = 'icons/obj/hydroponics/growing_vegetables.dmi' icon_dead = "whitebeet-dead" mutatelist = list(/obj/item/seeds/redbeet) - reagents_add = list("vitamin" = 0.04, "sugar" = 0.2, "nutriment" = 0.05) + reagents_add = list(/datum/reagent/consumable/nutriment/vitamin = 0.04, /datum/reagent/consumable/sugar = 0.2, /datum/reagent/consumable/nutriment = 0.05) /obj/item/reagent_containers/food/snacks/grown/whitebeet seed = /obj/item/seeds/whitebeet @@ -98,7 +98,7 @@ growing_icon = 'icons/obj/hydroponics/growing_vegetables.dmi' icon_dead = "whitebeet-dead" genes = list(/datum/plant_gene/trait/maxchem) - reagents_add = list("vitamin" = 0.05, "nutriment" = 0.05) + reagents_add = list(/datum/reagent/consumable/nutriment/vitamin = 0.05, /datum/reagent/consumable/nutriment = 0.05) /obj/item/reagent_containers/food/snacks/grown/redbeet seed = /obj/item/seeds/redbeet diff --git a/code/modules/hydroponics/grown/tea_coffee.dm b/code/modules/hydroponics/grown/tea_coffee.dm index bdb5bdb3f9..44e11c372d 100644 --- a/code/modules/hydroponics/grown/tea_coffee.dm +++ b/code/modules/hydroponics/grown/tea_coffee.dm @@ -14,7 +14,7 @@ icon_dead = "tea-dead" genes = list(/datum/plant_gene/trait/repeated_harvest) mutatelist = list(/obj/item/seeds/tea/astra) - reagents_add = list("teapowder" = 0.1) + reagents_add = list(/datum/reagent/toxin/teapowder = 0.1) /obj/item/reagent_containers/food/snacks/grown/tea seed = /obj/item/seeds/tea @@ -22,7 +22,7 @@ desc = "These aromatic tips of the tea plant can be dried to make tea." icon_state = "tea_aspera_leaves" filling_color = "#008000" - grind_results = list("teapowder" = 0) + grind_results = list(/datum/reagent/toxin/teapowder = 0) dry_grind = TRUE can_distill = FALSE @@ -34,7 +34,7 @@ plantname = "Tea Astra Plant" product = /obj/item/reagent_containers/food/snacks/grown/tea/astra mutatelist = list(/obj/item/seeds/tea/catnip) - reagents_add = list("synaptizine" = 0.1, "vitamin" = 0.04, "teapowder" = 0.1) + reagents_add = list(/datum/reagent/medicine/synaptizine = 0.1, /datum/reagent/consumable/nutriment/vitamin = 0.04, /datum/reagent/toxin/teapowder = 0.1) rarity = 20 /obj/item/reagent_containers/food/snacks/grown/tea/astra @@ -42,7 +42,7 @@ name = "Tea Astra tips" icon_state = "tea_astra_leaves" filling_color = "#4582B4" - grind_results = list("teapowder" = 0, "salglu_solution" = 0) + grind_results = list(/datum/reagent/toxin/teapowder = 0, /datum/reagent/medicine/salglu_solution = 0) // Kitty drugs /obj/item/seeds/tea/catnip @@ -52,7 +52,7 @@ species = "catnip" plantname = "Catnip Plant" product = /obj/item/reagent_containers/food/snacks/grown/tea/catnip - reagents_add = list("catnip" = 0.1, "vitamin" = 0.06, "teapowder" = 0.3) + reagents_add = list(/datum/reagent/pax/catnip = 0.1, /datum/reagent/consumable/nutriment/vitamin = 0.06, /datum/reagent/toxin/teapowder = 0.3) rarity = 50 /obj/item/reagent_containers/food/snacks/grown/tea/catnip @@ -60,7 +60,7 @@ name = "Catnip buds" icon_state = "catnip" filling_color = "#4582B4" - grind_results = list("catnp" = 2, "water" = 1) + grind_results = list(/datum/reagent/pax/catnip = 2, /datum/reagent/water = 1) // Coffee /obj/item/seeds/coffee @@ -79,7 +79,7 @@ icon_dead = "coffee-dead" genes = list(/datum/plant_gene/trait/repeated_harvest) mutatelist = list(/obj/item/seeds/coffee/robusta) - reagents_add = list("vitamin" = 0.04, "coffeepowder" = 0.1) + reagents_add = list(/datum/reagent/consumable/nutriment/vitamin = 0.04, /datum/reagent/toxin/coffeepowder = 0.1) /obj/item/reagent_containers/food/snacks/grown/coffee seed = /obj/item/seeds/coffee @@ -89,8 +89,8 @@ filling_color = "#DC143C" bitesize_mod = 2 dry_grind = TRUE - grind_results = list("coffeepowder" = 0) - distill_reagent = "kahlua" + grind_results = list(/datum/reagent/toxin/coffeepowder = 0) + distill_reagent = /datum/reagent/consumable/ethanol/kahlua // Coffee Robusta /obj/item/seeds/coffee/robusta @@ -101,7 +101,7 @@ plantname = "Coffee Robusta Bush" product = /obj/item/reagent_containers/food/snacks/grown/coffee/robusta mutatelist = list() - reagents_add = list("ephedrine" = 0.1, "vitamin" = 0.04, "coffeepowder" = 0.1) + reagents_add = list(/datum/reagent/medicine/ephedrine = 0.1, /datum/reagent/consumable/nutriment/vitamin = 0.04, /datum/reagent/toxin/coffeepowder = 0.1) rarity = 20 /obj/item/reagent_containers/food/snacks/grown/coffee/robusta @@ -109,4 +109,4 @@ name = "coffee robusta beans" desc = "Increases robustness by 37 percent!" icon_state = "coffee_robusta" - grind_results = list("coffeepowder" = 0, "morphine" = 0) + grind_results = list(/datum/reagent/toxin/coffeepowder = 0, /datum/reagent/medicine/morphine = 0) diff --git a/code/modules/hydroponics/grown/tobacco.dm b/code/modules/hydroponics/grown/tobacco.dm index 684271fa6b..1e2d25d825 100644 --- a/code/modules/hydroponics/grown/tobacco.dm +++ b/code/modules/hydroponics/grown/tobacco.dm @@ -13,7 +13,7 @@ growthstages = 3 icon_dead = "tobacco-dead" mutatelist = list(/obj/item/seeds/tobacco/space) - reagents_add = list("nicotine" = 0.03, "nutriment" = 0.03) + reagents_add = list(/datum/reagent/drug/nicotine = 0.03, /datum/reagent/consumable/nutriment = 0.03) /obj/item/reagent_containers/food/snacks/grown/tobacco seed = /obj/item/seeds/tobacco @@ -21,7 +21,7 @@ desc = "Dry them out to make some smokes." icon_state = "tobacco_leaves" filling_color = "#008000" - distill_reagent = "creme_de_menthe" //Menthol, I guess. + distill_reagent = /datum/reagent/consumable/ethanol/creme_de_menthe //Menthol, I guess. // Space Tobacco /obj/item/seeds/tobacco/space @@ -32,7 +32,7 @@ plantname = "Space Tobacco Plant" product = /obj/item/reagent_containers/food/snacks/grown/tobacco/space mutatelist = list() - reagents_add = list("salbutamol" = 0.05, "nicotine" = 0.08, "nutriment" = 0.03) + reagents_add = list(/datum/reagent/medicine/salbutamol = 0.05, /datum/reagent/drug/nicotine = 0.08, /datum/reagent/consumable/nutriment = 0.03) rarity = 20 /obj/item/reagent_containers/food/snacks/grown/tobacco/space diff --git a/code/modules/hydroponics/grown/tomato.dm b/code/modules/hydroponics/grown/tomato.dm index d07f5d4d08..53c3389695 100644 --- a/code/modules/hydroponics/grown/tomato.dm +++ b/code/modules/hydroponics/grown/tomato.dm @@ -12,7 +12,7 @@ icon_dead = "tomato-dead" genes = list(/datum/plant_gene/trait/squash, /datum/plant_gene/trait/repeated_harvest) mutatelist = list(/obj/item/seeds/tomato/blue, /obj/item/seeds/tomato/blood, /obj/item/seeds/tomato/killer) - reagents_add = list("vitamin" = 0.04, "nutriment" = 0.1) + reagents_add = list(/datum/reagent/consumable/nutriment/vitamin = 0.04, /datum/reagent/consumable/nutriment = 0.1) /obj/item/reagent_containers/food/snacks/grown/tomato seed = /obj/item/seeds/tomato @@ -23,9 +23,9 @@ filling_color = "#FF6347" bitesize_mod = 2 foodtype = FRUIT - grind_results = list("ketchup" = 0) - juice_results = list("tomatojuice" = 0) - distill_reagent = "enzyme" + grind_results = list(/datum/reagent/consumable/ketchup = 0) + juice_results = list(/datum/reagent/consumable/tomatojuice = 0) + distill_reagent = /datum/reagent/consumable/enzyme // Blood Tomato /obj/item/seeds/tomato/blood @@ -36,7 +36,7 @@ plantname = "Blood-Tomato Plants" product = /obj/item/reagent_containers/food/snacks/grown/tomato/blood mutatelist = list() - reagents_add = list("blood" = 0.2, "vitamin" = 0.04, "nutriment" = 0.1) + reagents_add = list(/datum/reagent/blood = 0.2, /datum/reagent/consumable/nutriment/vitamin = 0.04, /datum/reagent/consumable/nutriment = 0.1) rarity = 20 /obj/item/reagent_containers/food/snacks/grown/tomato/blood @@ -47,8 +47,8 @@ splat_type = /obj/effect/gibspawner/generic filling_color = "#FF0000" foodtype = FRUIT | GROSS - grind_results = list("ketchup" = 0, "blood" = 0) - distill_reagent = "bloodymary" + grind_results = list(/datum/reagent/consumable/ketchup = 0, /datum/reagent/blood = 0) + distill_reagent = /datum/reagent/consumable/ethanol/bloody_mary // Blue Tomato /obj/item/seeds/tomato/blue @@ -62,7 +62,7 @@ icon_grow = "bluetomato-grow" mutatelist = list(/obj/item/seeds/tomato/blue/bluespace) genes = list(/datum/plant_gene/trait/slip, /datum/plant_gene/trait/repeated_harvest) - reagents_add = list("lube" = 0.2, "vitamin" = 0.04, "nutriment" = 0.1) + reagents_add = list(/datum/reagent/lube = 0.2, /datum/reagent/consumable/nutriment/vitamin = 0.04, /datum/reagent/consumable/nutriment = 0.1) rarity = 20 /obj/item/reagent_containers/food/snacks/grown/tomato/blue @@ -72,7 +72,7 @@ icon_state = "bluetomato" splat_type = /obj/effect/decal/cleanable/oil filling_color = "#0000FF" - distill_reagent = "laughter" + distill_reagent = /datum/reagent/consumable/laughter // Bluespace Tomato /obj/item/seeds/tomato/blue/bluespace @@ -85,7 +85,7 @@ yield = 2 mutatelist = list() genes = list(/datum/plant_gene/trait/squash, /datum/plant_gene/trait/slip, /datum/plant_gene/trait/teleport, /datum/plant_gene/trait/repeated_harvest) - reagents_add = list("lube" = 0.2, "bluespace" = 0.2, "vitamin" = 0.04, "nutriment" = 0.1) + reagents_add = list(/datum/reagent/lube = 0.2, /datum/reagent/bluespace = 0.2, /datum/reagent/consumable/nutriment/vitamin = 0.04, /datum/reagent/consumable/nutriment = 0.1) rarity = 50 /obj/item/reagent_containers/food/snacks/grown/tomato/blue/bluespace @@ -120,7 +120,7 @@ icon_state = "killertomato" var/awakening = 0 filling_color = "#FF0000" - distill_reagent = "demonsblood" + distill_reagent = /datum/reagent/consumable/ethanol/demonsblood /obj/item/reagent_containers/food/snacks/grown/tomato/killer/attack(mob/M, mob/user, def_zone) if(awakening) diff --git a/code/modules/hydroponics/hydroitemdefines.dm b/code/modules/hydroponics/hydroitemdefines.dm index 1ea0068a1a..9655b13862 100644 --- a/code/modules/hydroponics/hydroitemdefines.dm +++ b/code/modules/hydroponics/hydroitemdefines.dm @@ -24,7 +24,7 @@ lefthand_file = 'icons/mob/inhands/equipment/hydroponics_lefthand.dmi' righthand_file = 'icons/mob/inhands/equipment/hydroponics_righthand.dmi' volume = 100 - list_reagents = list("weedkiller" = 100) + list_reagents = list(/datum/reagent/toxin/plantbgone/weedkiller = 100) /obj/item/reagent_containers/spray/weedspray/suicide_act(mob/user) user.visible_message("[user] is huffing [src]! It looks like [user.p_theyre()] trying to commit suicide!") @@ -39,7 +39,7 @@ lefthand_file = 'icons/mob/inhands/equipment/hydroponics_lefthand.dmi' righthand_file = 'icons/mob/inhands/equipment/hydroponics_righthand.dmi' volume = 100 - list_reagents = list("pestkiller" = 100) + list_reagents = list(/datum/reagent/toxin/pestkiller = 100) /obj/item/reagent_containers/spray/pestspray/suicide_act(mob/user) user.visible_message("[user] is huffing [src]! It looks like [user.p_theyre()] trying to commit suicide!") @@ -164,17 +164,17 @@ /obj/item/reagent_containers/glass/bottle/nutrient/ez name = "bottle of E-Z-Nutrient" desc = "Contains a fertilizer that causes mild mutations with each harvest." - list_reagents = list("eznutriment" = 50) + list_reagents = list(/datum/reagent/plantnutriment/eznutriment = 50) /obj/item/reagent_containers/glass/bottle/nutrient/l4z name = "bottle of Left 4 Zed" desc = "Contains a fertilizer that limits plant yields to no more than one and causes significant mutations in plants." - list_reagents = list("left4zednutriment" = 50) + list_reagents = list(/datum/reagent/plantnutriment/left4zednutriment = 50) /obj/item/reagent_containers/glass/bottle/nutrient/rh name = "bottle of Robust Harvest" desc = "Contains a fertilizer that increases the yield of a plant by 30% while causing no mutations." - list_reagents = list("robustharvestnutriment" = 50) + list_reagents = list(/datum/reagent/plantnutriment/robustharvestnutriment = 50) /obj/item/reagent_containers/glass/bottle/nutrient/empty name = "bottle" @@ -187,9 +187,9 @@ /obj/item/reagent_containers/glass/bottle/killer/weedkiller name = "bottle of weed killer" desc = "Contains a herbicide." - list_reagents = list("weedkiller" = 50) + list_reagents = list(/datum/reagent/toxin/plantbgone/weedkiller = 50) /obj/item/reagent_containers/glass/bottle/killer/pestkiller name = "bottle of pest spray" desc = "Contains a pesticide." - list_reagents = list("pestkiller" = 50) \ No newline at end of file + list_reagents = list(/datum/reagent/toxin/pestkiller = 50) \ No newline at end of file diff --git a/code/modules/hydroponics/hydroponics.dm b/code/modules/hydroponics/hydroponics.dm index 59a9725383..0b6834c408 100644 --- a/code/modules/hydroponics/hydroponics.dm +++ b/code/modules/hydroponics/hydroponics.dm @@ -470,7 +470,7 @@ myseed.on_chem_reaction(S) //In case seeds have some special interactions with special chems, currently only used by vines // Requires 5 mutagen to possibly change species.// Poor man's mutagen. - if(S.has_reagent("mutagen", 5) || S.has_reagent("radium", 10) || S.has_reagent("uranium", 10)) + if(S.has_reagent(/datum/reagent/toxin/mutagen, 5) || S.has_reagent(/datum/reagent/radium, 10) || S.has_reagent(/datum/reagent/uranium, 10)) switch(rand(100)) if(91 to 100) adjustHealth(-10) @@ -491,214 +491,214 @@ to_chat(user, "Nothing happens...") // 2 or 1 units is enough to change the yield and other stats.// Can change the yield and other stats, but requires more than mutagen - else if(S.has_reagent("mutagen", 2) || S.has_reagent("radium", 5) || S.has_reagent("uranium", 5)) + else if(S.has_reagent(/datum/reagent/toxin/mutagen, 2) || S.has_reagent(/datum/reagent/radium, 5) || S.has_reagent(/datum/reagent/uranium, 5)) hardmutate() - else if(S.has_reagent("mutagen", 1) || S.has_reagent("radium", 2) || S.has_reagent("uranium", 2)) + else if(S.has_reagent(/datum/reagent/toxin/mutagen, 1) || S.has_reagent(/datum/reagent/radium, 2) || S.has_reagent(/datum/reagent/uranium, 2)) mutate() // After handling the mutating, we now handle the damage from adding crude radioactives... - if(S.has_reagent("uranium", 1)) - adjustHealth(-round(S.get_reagent_amount("uranium") * 1)) - adjustToxic(round(S.get_reagent_amount("uranium") * 2)) - if(S.has_reagent("radium", 1)) - adjustHealth(-round(S.get_reagent_amount("radium") * 1)) - adjustToxic(round(S.get_reagent_amount("radium") * 3)) // Radium is harsher (OOC: also easier to produce) + if(S.has_reagent(/datum/reagent/uranium, 1)) + adjustHealth(-round(S.get_reagent_amount(/datum/reagent/uranium) * 1)) + adjustToxic(round(S.get_reagent_amount(/datum/reagent/uranium) * 2)) + if(S.has_reagent(/datum/reagent/radium, 1)) + adjustHealth(-round(S.get_reagent_amount(/datum/reagent/radium) * 1)) + adjustToxic(round(S.get_reagent_amount(/datum/reagent/radium) * 3)) // Radium is harsher (OOC: also easier to produce) // Nutriments - if(S.has_reagent("eznutriment", 1)) + if(S.has_reagent(/datum/reagent/plantnutriment/eznutriment, 1)) yieldmod = 1 mutmod = 1 - adjustNutri(round(S.get_reagent_amount("eznutriment") * 1)) + adjustNutri(round(S.get_reagent_amount(/datum/reagent/plantnutriment/eznutriment) * 1)) - if(S.has_reagent("left4zednutriment", 1)) + if(S.has_reagent(/datum/reagent/plantnutriment/left4zednutriment, 1)) yieldmod = 0 mutmod = 2 - adjustNutri(round(S.get_reagent_amount("left4zednutriment") * 1)) + adjustNutri(round(S.get_reagent_amount(/datum/reagent/plantnutriment/left4zednutriment) * 1)) - if(S.has_reagent("robustharvestnutriment", 1)) + if(S.has_reagent(/datum/reagent/plantnutriment/robustharvestnutriment, 1)) yieldmod = 1.3 mutmod = 0 - adjustNutri(round(S.get_reagent_amount("robustharvestnutriment") *1 )) + adjustNutri(round(S.get_reagent_amount(/datum/reagent/plantnutriment/robustharvestnutriment) *1 )) // Ambrosia Gaia produces earthsblood. - if(S.has_reagent("earthsblood")) - self_sufficiency_progress += S.get_reagent_amount("earthsblood") + if(S.has_reagent(/datum/reagent/medicine/earthsblood)) + self_sufficiency_progress += S.get_reagent_amount(/datum/reagent/medicine/earthsblood) if(self_sufficiency_progress >= self_sufficiency_req) become_self_sufficient() else if(!self_sustaining) to_chat(user, "[src] warms as it might on a spring day under a genuine Sun.") // Antitoxin binds shit pretty well. So the tox goes significantly down - if(S.has_reagent("charcoal", 1)) - adjustToxic(-round(S.get_reagent_amount("charcoal") * 2)) + if(S.has_reagent(/datum/reagent/medicine/charcoal, 1)) + adjustToxic(-round(S.get_reagent_amount(/datum/reagent/medicine/charcoal) * 2)) // Toxins, not good for anything - if(S.has_reagent("toxin", 1)) - adjustToxic(round(S.get_reagent_amount("toxin") * 2)) + if(S.has_reagent(/datum/reagent/toxin, 1)) + adjustToxic(round(S.get_reagent_amount(/datum/reagent/toxin) * 2)) // Milk is good for humans, but bad for plants. The sugars canot be used by plants, and the milk fat fucks up growth. Not shrooms though. I can't deal with this now... - if(S.has_reagent("milk", 1)) - adjustNutri(round(S.get_reagent_amount("milk") * 0.1)) - adjustWater(round(S.get_reagent_amount("milk") * 0.9)) + if(S.has_reagent(/datum/reagent/consumable/milk, 1)) + adjustNutri(round(S.get_reagent_amount(/datum/reagent/consumable/milk) * 0.1)) + adjustWater(round(S.get_reagent_amount(/datum/reagent/consumable/milk) * 0.9)) // Beer is a chemical composition of alcohol and various other things. It's a shitty nutrient but hey, it's still one. Also alcohol is bad, mmmkay? - if(S.has_reagent("beer", 1)) - adjustHealth(-round(S.get_reagent_amount("beer") * 0.05)) - adjustNutri(round(S.get_reagent_amount("beer") * 0.25)) - adjustWater(round(S.get_reagent_amount("beer") * 0.7)) + if(S.has_reagent(/datum/reagent/consumable/ethanol/beer, 1)) + adjustHealth(-round(S.get_reagent_amount(/datum/reagent/consumable/ethanol/beer) * 0.05)) + adjustNutri(round(S.get_reagent_amount(/datum/reagent/consumable/ethanol/beer) * 0.25)) + adjustWater(round(S.get_reagent_amount(/datum/reagent/consumable/ethanol/beer) * 0.7)) // Fluorine one of the most corrosive and deadly gasses - if(S.has_reagent("fluorine", 1)) - adjustHealth(-round(S.get_reagent_amount("fluorine") * 2)) - adjustToxic(round(S.get_reagent_amount("fluorine") * 2.5)) - adjustWater(-round(S.get_reagent_amount("fluorine") * 0.5)) + if(S.has_reagent(/datum/reagent/fluorine, 1)) + adjustHealth(-round(S.get_reagent_amount(/datum/reagent/fluorine) * 2)) + adjustToxic(round(S.get_reagent_amount(/datum/reagent/fluorine) * 2.5)) + adjustWater(-round(S.get_reagent_amount(/datum/reagent/fluorine) * 0.5)) adjustWeeds(-rand(1,4)) // Chlorine one of the most corrosive and deadly gasses - if(S.has_reagent("chlorine", 1)) - adjustHealth(-round(S.get_reagent_amount("chlorine") * 1)) - adjustToxic(round(S.get_reagent_amount("chlorine") * 1.5)) - adjustWater(-round(S.get_reagent_amount("chlorine") * 0.5)) + if(S.has_reagent(/datum/reagent/chlorine, 1)) + adjustHealth(-round(S.get_reagent_amount(/datum/reagent/chlorine) * 1)) + adjustToxic(round(S.get_reagent_amount(/datum/reagent/chlorine) * 1.5)) + adjustWater(-round(S.get_reagent_amount(/datum/reagent/chlorine) * 0.5)) adjustWeeds(-rand(1,3)) // White Phosphorous + water -> phosphoric acid. That's not a good thing really. // Phosphoric salts are beneficial though. And even if the plant suffers, in the long run the tray gets some nutrients. The benefit isn't worth that much. - if(S.has_reagent("phosphorus", 1)) - adjustHealth(-round(S.get_reagent_amount("phosphorus") * 0.75)) - adjustNutri(round(S.get_reagent_amount("phosphorus") * 0.1)) - adjustWater(-round(S.get_reagent_amount("phosphorus") * 0.5)) + if(S.has_reagent(/datum/reagent/phosphorus, 1)) + adjustHealth(-round(S.get_reagent_amount(/datum/reagent/phosphorus) * 0.75)) + adjustNutri(round(S.get_reagent_amount(/datum/reagent/phosphorus) * 0.1)) + adjustWater(-round(S.get_reagent_amount(/datum/reagent/phosphorus) * 0.5)) adjustWeeds(-rand(1,2)) // Plants should not have sugar, they can't use it and it prevents them getting water/nutients, it is good for mold though... - if(S.has_reagent("sugar", 1)) + if(S.has_reagent(/datum/reagent/consumable/sugar, 1)) adjustWeeds(rand(1,2)) adjustPests(rand(1,2)) - adjustNutri(round(S.get_reagent_amount("sugar") * 0.1)) + adjustNutri(round(S.get_reagent_amount(/datum/reagent/consumable/sugar) * 0.1)) // It is water! - if(S.has_reagent("water", 1)) - adjustWater(round(S.get_reagent_amount("water") * 1)) + if(S.has_reagent(/datum/reagent/water, 1)) + adjustWater(round(S.get_reagent_amount(/datum/reagent/water) * 1)) // Holy water. Mostly the same as water, it also heals the plant a little with the power of the spirits~ - if(S.has_reagent("holywater", 1)) - adjustWater(round(S.get_reagent_amount("holywater") * 1)) - adjustHealth(round(S.get_reagent_amount("holywater") * 0.1)) + if(S.has_reagent(/datum/reagent/water/holywater, 1)) + adjustWater(round(S.get_reagent_amount(/datum/reagent/water/holywater) * 1)) + adjustHealth(round(S.get_reagent_amount(/datum/reagent/water/holywater) * 0.1)) // A variety of nutrients are dissolved in club soda, without sugar. // These nutrients include carbon, oxygen, hydrogen, phosphorous, potassium, sulfur and sodium, all of which are needed for healthy plant growth. - if(S.has_reagent("sodawater", 1)) - adjustWater(round(S.get_reagent_amount("sodawater") * 1)) - adjustHealth(round(S.get_reagent_amount("sodawater") * 0.1)) - adjustNutri(round(S.get_reagent_amount("sodawater") * 0.1)) + if(S.has_reagent(/datum/reagent/consumable/sodawater, 1)) + adjustWater(round(S.get_reagent_amount(/datum/reagent/consumable/sodawater) * 1)) + adjustHealth(round(S.get_reagent_amount(/datum/reagent/consumable/sodawater) * 0.1)) + adjustNutri(round(S.get_reagent_amount(/datum/reagent/consumable/sodawater) * 0.1)) // Sulphuric Acid - if(S.has_reagent("sacid", 1)) - adjustHealth(-round(S.get_reagent_amount("sacid") * 1)) - adjustToxic(round(S.get_reagent_amount("sacid") * 1.5)) + if(S.has_reagent(/datum/reagent/toxin/acid, 1)) + adjustHealth(-round(S.get_reagent_amount(/datum/reagent/toxin/acid) * 1)) + adjustToxic(round(S.get_reagent_amount(/datum/reagent/toxin/acid) * 1.5)) adjustWeeds(-rand(1,2)) // Acid - if(S.has_reagent("facid", 1)) - adjustHealth(-round(S.get_reagent_amount("facid") * 2)) - adjustToxic(round(S.get_reagent_amount("facid") * 3)) + if(S.has_reagent(/datum/reagent/toxin/acid/fluacid, 1)) + adjustHealth(-round(S.get_reagent_amount(/datum/reagent/toxin/acid/fluacid) * 2)) + adjustToxic(round(S.get_reagent_amount(/datum/reagent/toxin/acid/fluacid) * 3)) adjustWeeds(-rand(1,4)) // Plant-B-Gone is just as bad - if(S.has_reagent("plantbgone", 1)) - adjustHealth(-round(S.get_reagent_amount("plantbgone") * 5)) - adjustToxic(round(S.get_reagent_amount("plantbgone") * 6)) + if(S.has_reagent(/datum/reagent/toxin/plantbgone, 1)) + adjustHealth(-round(S.get_reagent_amount(/datum/reagent/toxin/plantbgone) * 5)) + adjustToxic(round(S.get_reagent_amount(/datum/reagent/toxin/plantbgone) * 6)) adjustWeeds(-rand(4,8)) // Napalm, not known for being good for anything organic - if(S.has_reagent("napalm", 1)) + if(S.has_reagent(/datum/reagent/napalm, 1)) if(!(myseed.resistance_flags & FIRE_PROOF)) - adjustHealth(-round(S.get_reagent_amount("napalm") * 6)) - adjustToxic(round(S.get_reagent_amount("napalm") * 7)) + adjustHealth(-round(S.get_reagent_amount(/datum/reagent/napalm) * 6)) + adjustToxic(round(S.get_reagent_amount(/datum/reagent/napalm) * 7)) adjustWeeds(-rand(5,9)) //Weed Spray - if(S.has_reagent("weedkiller", 1)) - adjustToxic(round(S.get_reagent_amount("weedkiller") * 0.5)) + if(S.has_reagent(/datum/reagent/toxin/plantbgone/weedkiller, 1)) + adjustToxic(round(S.get_reagent_amount(/datum/reagent/toxin/plantbgone/weedkiller) * 0.5)) //old toxicity was 4, each spray is default 10 (minimal of 5) so 5 and 2.5 are the new ammounts adjustWeeds(-rand(1,2)) //Pest Spray - if(S.has_reagent("pestkiller", 1)) - adjustToxic(round(S.get_reagent_amount("pestkiller") * 0.5)) + if(S.has_reagent(/datum/reagent/toxin/pestkiller, 1)) + adjustToxic(round(S.get_reagent_amount(/datum/reagent/toxin/pestkiller) * 0.5)) adjustPests(-rand(1,2)) // Healing - if(S.has_reagent("cryoxadone", 1)) - adjustHealth(round(S.get_reagent_amount("cryoxadone") * 3)) - adjustToxic(-round(S.get_reagent_amount("cryoxadone") * 3)) + if(S.has_reagent(/datum/reagent/medicine/cryoxadone, 1)) + adjustHealth(round(S.get_reagent_amount(/datum/reagent/medicine/cryoxadone) * 3)) + adjustToxic(-round(S.get_reagent_amount(/datum/reagent/medicine/cryoxadone) * 3)) // Ammonia is bad ass. - if(S.has_reagent("ammonia", 1)) - adjustHealth(round(S.get_reagent_amount("ammonia") * 0.5)) - adjustNutri(round(S.get_reagent_amount("ammonia") * 1)) + if(S.has_reagent(/datum/reagent/ammonia, 1)) + adjustHealth(round(S.get_reagent_amount(/datum/reagent/ammonia) * 0.5)) + adjustNutri(round(S.get_reagent_amount(/datum/reagent/ammonia) * 1)) if(myseed) - myseed.adjust_yield(round(S.get_reagent_amount("ammonia") * 0.01)) + myseed.adjust_yield(round(S.get_reagent_amount(/datum/reagent/ammonia) * 0.01)) // Saltpetre is used for gardening IRL, to simplify highly, it speeds up growth and strengthens plants - if(S.has_reagent("saltpetre", 1)) - var/salt = S.get_reagent_amount("saltpetre") + if(S.has_reagent(/datum/reagent/saltpetre, 1)) + var/salt = S.get_reagent_amount(/datum/reagent/saltpetre) adjustHealth(round(salt * 0.25)) if (myseed) myseed.adjust_production(-round(salt/100)-prob(salt%100)) myseed.adjust_potency(round(salt*0.5)) // Ash is also used IRL in gardening, as a fertilizer enhancer and weed killer - if(S.has_reagent("ash", 1)) - adjustHealth(round(S.get_reagent_amount("ash") * 0.25)) - adjustNutri(round(S.get_reagent_amount("ash") * 0.5)) + if(S.has_reagent(/datum/reagent/ash, 1)) + adjustHealth(round(S.get_reagent_amount(/datum/reagent/ash) * 0.25)) + adjustNutri(round(S.get_reagent_amount(/datum/reagent/ash) * 0.5)) adjustWeeds(-1) // Diethylamine is more bad ass, and pests get hurt by the corrosive nature of it, not the plant. - if(S.has_reagent("diethylamine", 1)) - adjustHealth(round(S.get_reagent_amount("diethylamine") * 1)) - adjustNutri(round(S.get_reagent_amount("diethylamine") * 2)) + if(S.has_reagent(/datum/reagent/diethylamine, 1)) + adjustHealth(round(S.get_reagent_amount(/datum/reagent/diethylamine) * 1)) + adjustNutri(round(S.get_reagent_amount(/datum/reagent/diethylamine) * 2)) if(myseed) - myseed.adjust_yield(round(S.get_reagent_amount("diethylamine") * 0.02)) + myseed.adjust_yield(round(S.get_reagent_amount(/datum/reagent/diethylamine) * 0.02)) adjustPests(-rand(1,2)) // Nutriment Compost, effectively - if(S.has_reagent("nutriment", 1)) - adjustHealth(round(S.get_reagent_amount("nutriment") * 0.5)) - adjustNutri(round(S.get_reagent_amount("nutriment") * 1)) + if(S.has_reagent(/datum/reagent/consumable/nutriment, 1)) + adjustHealth(round(S.get_reagent_amount(/datum/reagent/consumable/nutriment) * 0.5)) + adjustNutri(round(S.get_reagent_amount(/datum/reagent/consumable/nutriment) * 1)) // Virusfood Compost for EVERYTHING - if(S.has_reagent("virusfood", 1)) - adjustNutri(round(S.get_reagent_amount("virusfood") * 0.5)) - adjustHealth(-round(S.get_reagent_amount("virusfood") * 0.5)) + if(S.has_reagent(/datum/reagent/toxin/mutagen/mutagenvirusfood, 1)) + adjustNutri(round(S.get_reagent_amount(/datum/reagent/toxin/mutagen/mutagenvirusfood) * 0.5)) + adjustHealth(-round(S.get_reagent_amount(/datum/reagent/toxin/mutagen/mutagenvirusfood) * 0.5)) // Blood - if(S.has_reagent("blood", 1)) - adjustNutri(round(S.get_reagent_amount("blood") * 1)) + if(S.has_reagent(/datum/reagent/blood, 1)) + adjustNutri(round(S.get_reagent_amount(/datum/reagent/blood) * 1)) adjustPests(rand(2,4)) // Strange reagent - if(S.has_reagent("strangereagent", 1)) + if(S.has_reagent(/datum/reagent/medicine/strange_reagent, 1)) spawnplant() // Honey, Pests are dieing of sugar, so is the plant - if(S.has_reagent("honey", 1)) + if(S.has_reagent(/datum/reagent/consumable/honey, 1)) adjustPests(-rand(2,5)) - adjustHealth(-round(S.get_reagent_amount("honey") * 1)) + adjustHealth(-round(S.get_reagent_amount(/datum/reagent/consumable/honey) * 1)) // Buzz Fuzz, a drink seemingly made for plants... - if(S.has_reagent("buzz_fuzz", 1)) + if(S.has_reagent(/datum/reagent/consumable/buzz_fuzz, 1)) adjustPests(-rand(2,5)) - adjustHealth(round(S.get_reagent_amount("buzz_fuzz") * 0.1)) - adjustNutri(round(S.get_reagent_amount("buzz_fuzz") * 0.5)) + adjustHealth(round(S.get_reagent_amount(/datum/reagent/consumable/buzz_fuzz) * 0.1)) + adjustNutri(round(S.get_reagent_amount(/datum/reagent/consumable/buzz_fuzz) * 0.5)) // Adminordrazine the best stuff there is. For testing/debugging. - if(S.has_reagent("adminordrazine", 1)) - adjustWater(round(S.get_reagent_amount("adminordrazine") * 1)) - adjustHealth(round(S.get_reagent_amount("adminordrazine") * 1)) - adjustNutri(round(S.get_reagent_amount("adminordrazine") * 1)) + if(S.has_reagent(/datum/reagent/medicine/adminordrazine, 1)) + adjustWater(round(S.get_reagent_amount(/datum/reagent/medicine/adminordrazine) * 1)) + adjustHealth(round(S.get_reagent_amount(/datum/reagent/medicine/adminordrazine) * 1)) + adjustNutri(round(S.get_reagent_amount(/datum/reagent/medicine/adminordrazine) * 1)) adjustPests(-rand(1,5)) adjustWeeds(-rand(1,5)) - if(S.has_reagent("adminordrazine", 5)) + if(S.has_reagent(/datum/reagent/medicine/adminordrazine, 5)) switch(rand(100)) if(66 to 100) mutatespecie() diff --git a/code/modules/hydroponics/plant_genes.dm b/code/modules/hydroponics/plant_genes.dm index 3597ed5be6..99fd873995 100644 --- a/code/modules/hydroponics/plant_genes.dm +++ b/code/modules/hydroponics/plant_genes.dm @@ -129,7 +129,7 @@ name = "UNKNOWN" var/datum/reagent/R = GLOB.chemical_reagents_list[reag_id] - if(R && R.id == reagent_id) + if(R && R.type == reagent_id) name = R.name /datum/plant_gene/reagent/New(reag_id = null, reag_rate = 0) @@ -228,7 +228,7 @@ var/obj/item/seeds/seed = G.seed var/stun_len = seed.potency * rate - if(!istype(G, /obj/item/grown/bananapeel) && (!G.reagents || !G.reagents.has_reagent("lube"))) + if(!istype(G, /obj/item/grown/bananapeel) && (!G.reagents || !G.reagents.has_reagent(/datum/reagent/lube))) stun_len /= 3 G.AddComponent(/datum/component/slippery, min(stun_len,140), NONE, CALLBACK(src, .proc/handle_slip, G)) @@ -412,7 +412,7 @@ pocell.name = "[G.name] battery" pocell.desc = "A rechargeable plant-based power cell. This one has a rating of [DisplayEnergy(pocell.maxcharge)], and you should not swallow it." - if(G.reagents.has_reagent("plasma", 2)) + if(G.reagents.has_reagent(/datum/reagent/toxin/plasma, 2)) pocell.rigged = TRUE qdel(G) diff --git a/code/modules/hydroponics/seeds.dm b/code/modules/hydroponics/seeds.dm index 39e97e3801..b35665c8e6 100644 --- a/code/modules/hydroponics/seeds.dm +++ b/code/modules/hydroponics/seeds.dm @@ -200,7 +200,7 @@ obj/item/seeds/proc/is_gene_forbidden(typepath) var/list/data = null if(rid == "blood") // Hack to make blood in plants always O- data = list("blood_type" = "O-") - if(rid == "nutriment" || rid == "vitamin") + if(rid == /datum/reagent/consumable/nutriment || rid == /datum/reagent/consumable/nutriment/vitamin) // apple tastes of apple. data = T.tastes diff --git a/code/modules/integrated_electronics/passive/power.dm b/code/modules/integrated_electronics/passive/power.dm index 40ed235863..4b6b8723dd 100644 --- a/code/modules/integrated_electronics/passive/power.dm +++ b/code/modules/integrated_electronics/passive/power.dm @@ -96,7 +96,8 @@ activators = list("push ref" = IC_PINTYPE_PULSE_IN) spawn_flags = IC_SPAWN_DEFAULT|IC_SPAWN_RESEARCH var/volume = 60 - var/list/fuel = list("plasma" = 50000, "welding_fuel" = 15000, "carbon" = 10000, "ethanol" = 10000, "nutriment" = 8000) + var/list/fuel = list(/datum/reagent/toxin/plasma = 50000, /datum/reagent/fuel = 15000, /datum/reagent/carbon = 10000, + /datum/reagent/consumable/ethanol = 10000, /datum/reagent/consumable/nutriment = 8000) var/multi = 1 var/lfwb =TRUE @@ -119,7 +120,7 @@ if(assembly) if(assembly.battery) var/bp = 5000 - if(reagents.get_reagent_amount("blood")) //only blood is powerful enough to power the station(c) + if(reagents.get_reagent_amount(/datum/reagent/blood)) //only blood is powerful enough to power the station(c) var/datum/reagent/blood/B = locate() in reagents.reagent_list if(lfwb) if(B && B.data["cloneable"]) @@ -127,7 +128,7 @@ if(M && (M.stat != DEAD) && (M.client)) bp = 500000 if((assembly.battery.maxcharge-assembly.battery.charge) / GLOB.CELLRATE > bp) - if(reagents.remove_reagent("blood", 1)) + if(reagents.remove_reagent(/datum/reagent/blood, 1)) assembly.give_power(bp) for(var/I in fuel) if((assembly.battery.maxcharge-assembly.battery.charge) / GLOB.CELLRATE > fuel[I]) diff --git a/code/modules/integrated_electronics/subtypes/reagents.dm b/code/modules/integrated_electronics/subtypes/reagents.dm index 027a03650a..0fc9f58db8 100644 --- a/code/modules/integrated_electronics/subtypes/reagents.dm +++ b/code/modules/integrated_electronics/subtypes/reagents.dm @@ -424,7 +424,7 @@ if(1) var/cont[0] for(var/datum/reagent/RE in reagents.reagent_list) - cont += RE.id + cont += RE.type set_pin_data(IC_OUTPUT, 3, cont) push_data() if(2) @@ -492,11 +492,11 @@ for(var/datum/reagent/G in source.reagents.reagent_list) if(!direction_mode) - if(G.id in demand) - source.reagents.trans_id_to(target, G.id, transfer_amount) + if(G.type in demand) + source.reagents.trans_id_to(target, G.type, transfer_amount) else - if(!(G.id in demand)) - source.reagents.trans_id_to(target, G.id, transfer_amount) + if(!(G.type in demand)) + source.reagents.trans_id_to(target, G.type, transfer_amount) activate_pin(2) push_data() diff --git a/code/modules/mining/equipment/explorer_gear.dm b/code/modules/mining/equipment/explorer_gear.dm index 559ffc0673..bdca4bb7df 100644 --- a/code/modules/mining/equipment/explorer_gear.dm +++ b/code/modules/mining/equipment/explorer_gear.dm @@ -14,7 +14,7 @@ flags_inv = HIDEJUMPSUIT|HIDETAUR allowed = list(/obj/item/flashlight, /obj/item/tank/internals, /obj/item/resonator, /obj/item/mining_scanner, /obj/item/t_scanner/adv_mining_scanner, /obj/item/gun/energy/kinetic_accelerator, /obj/item/pickaxe) resistance_flags = FIRE_PROOF - tauric = TRUE //Citadel Add for tauric hardsuits + mutantrace_variation = STYLE_DIGITIGRADE|STYLE_SNEK_TAURIC|STYLE_PAW_TAURIC /obj/item/clothing/head/hooded/explorer @@ -29,6 +29,7 @@ resistance_flags = FIRE_PROOF /obj/item/clothing/suit/hooded/explorer/standard + hoodtype = /obj/item/clothing/head/hooded/explorer/standard /obj/item/clothing/head/hooded/explorer/standard @@ -70,7 +71,7 @@ clothing_flags = THICKMATERIAL //not spaceproof max_heat_protection_temperature = FIRE_IMMUNITY_MAX_TEMP_PROTECT resistance_flags = FIRE_PROOF | LAVA_PROOF - tauric = TRUE //Citadel Add for tauric hardsuits + mutantrace_variation = STYLE_DIGITIGRADE|STYLE_SNEK_TAURIC|STYLE_PAW_TAURIC slowdown = 0 armor = list("melee" = 70, "bullet" = 40, "laser" = 10, "energy" = 10, "bomb" = 50, "bio" = 100, "rad" = 100, "fire" = 100, "acid" = 100) allowed = list(/obj/item/flashlight, /obj/item/tank/internals, /obj/item/resonator, /obj/item/mining_scanner, /obj/item/t_scanner/adv_mining_scanner, /obj/item/gun/energy/kinetic_accelerator, /obj/item/pickaxe) @@ -116,7 +117,7 @@ glass_overlay.appearance_flags = RESET_COLOR add_overlay(glass_overlay) -/obj/item/clothing/head/helmet/space/hostile_environment/worn_overlays(isinhands) +/obj/item/clothing/head/helmet/space/hostile_environment/worn_overlays(isinhands, icon_file, style_flags = NONE) . = ..() if(!isinhands) var/mutable_appearance/M = mutable_appearance('icons/mob/head.dmi', "hostile_env_glass") diff --git a/code/modules/mining/lavaland/ash_flora.dm b/code/modules/mining/lavaland/ash_flora.dm index 4077f21ea9..ea0174d2a5 100644 --- a/code/modules/mining/lavaland/ash_flora.dm +++ b/code/modules/mining/lavaland/ash_flora.dm @@ -148,7 +148,7 @@ desc = "Some shavings from a tall mushroom. With enough, might serve as a bowl." icon = 'icons/obj/lavaland/ash_flora.dmi' icon_state = "mushroom_shavings" - list_reagents = list("sugar" = 3, "ethanol" = 2, "stabilizing_agent" = 3, "minttoxin" = 2) + list_reagents = list(/datum/reagent/consumable/sugar = 3, /datum/reagent/consumable/ethanol = 2, /datum/reagent/stabilizing_agent = 3, /datum/reagent/toxin/minttoxin = 2) w_class = WEIGHT_CLASS_TINY resistance_flags = FLAMMABLE max_integrity = 100 @@ -166,7 +166,7 @@ /obj/item/reagent_containers/food/snacks/grown/ash_flora/mushroom_leaf name = "mushroom leaf" desc = "A leaf, from a mushroom." - list_reagents = list("nutriment" = 3, "vitfro" = 2, "nicotine" = 2) + list_reagents = list(/datum/reagent/consumable/nutriment = 3, /datum/reagent/consumable/vitfro = 2, /datum/reagent/drug/nicotine = 2) icon_state = "mushroom_leaf" seed = /obj/item/seeds/lavaland/porcini wine_power = 40 @@ -174,7 +174,7 @@ /obj/item/reagent_containers/food/snacks/grown/ash_flora/mushroom_cap name = "mushroom cap" desc = "The cap of a large mushroom." - list_reagents = list("mindbreaker" = 2, "entpoly" = 4, "mushroomhallucinogen" = 2) + list_reagents = list(/datum/reagent/toxin/mindbreaker = 2, /datum/reagent/consumable/entpoly = 4, /datum/reagent/drug/mushroomhallucinogen = 2) icon_state = "mushroom_cap" seed = /obj/item/seeds/lavaland/inocybe wine_power = 70 @@ -182,14 +182,14 @@ /obj/item/reagent_containers/food/snacks/grown/ash_flora/mushroom_stem name = "mushroom stem" desc = "A long mushroom stem. It's slightly glowing." - list_reagents = list("tinlux" = 2, "vitamin" = 1, "space_drugs" = 1) + list_reagents = list(/datum/reagent/consumable/tinlux = 2, /datum/reagent/consumable/nutriment/vitamin = 1, /datum/reagent/drug/space_drugs = 1) icon_state = "mushroom_stem" seed = /obj/item/seeds/lavaland/ember wine_power = 60 /obj/item/reagent_containers/food/snacks/grown/ash_flora/cactus_fruit name = "cactus fruit" - list_reagents = list("vitamin" = 2, "nutriment" = 2, "vitfro" = 6) + list_reagents = list(/datum/reagent/consumable/nutriment/vitamin = 2, /datum/reagent/consumable/nutriment = 2, /datum/reagent/consumable/vitfro = 6) desc = "A cactus fruit covered in a thick, reddish skin. And some ash." icon_state = "cactus_fruit" seed = /obj/item/seeds/lavaland/cactus @@ -218,7 +218,7 @@ else if(contents.len >= 20) to_chat(user, "You can't add more ingredients to [src]!") else - if(reagents.has_reagent("water", 10)) //are we starting a soup or a salad? + if(reagents.has_reagent(/datum/reagent/water, 10)) //are we starting a soup or a salad? var/obj/item/reagent_containers/food/snacks/customizable/A = new/obj/item/reagent_containers/food/snacks/customizable/soup/ashsoup(get_turf(src)) A.initialize_custom_food(src, S, user) else diff --git a/code/modules/mining/lavaland/necropolis_chests.dm b/code/modules/mining/lavaland/necropolis_chests.dm index 7bef9b652a..11190009cc 100644 --- a/code/modules/mining/lavaland/necropolis_chests.dm +++ b/code/modules/mining/lavaland/necropolis_chests.dm @@ -559,7 +559,7 @@ /obj/item/reagent_containers/glass/bottle/potion/flight name = "strange elixir" desc = "A flask with an almost-holy aura emitting from it. The label on the bottle says: 'erqo'hyy tvi'rf lbh jv'atf'." - list_reagents = list("flightpotion" = 5) + list_reagents = list(/datum/reagent/flightpotion = 5) /obj/item/reagent_containers/glass/bottle/potion/update_icon() if(reagents.total_volume) @@ -569,7 +569,6 @@ /datum/reagent/flightpotion name = "Flight Potion" - id = "flightpotion" description = "Strange mutagenic compound of unknown origins." reagent_state = LIQUID color = "#FFEBEB" @@ -844,7 +843,7 @@ switch(random) if(1) to_chat(user, "Your appearance morphs to that of a very small humanoid ash dragon! You get to look like a freak without the cool abilities.") - H.dna.features = list("mcolor" = "A02720", "tail_lizard" = "Dark Tiger", "tail_human" = "None", "snout" = "Sharp", "horns" = "Curled", "ears" = "None", "wings" = "None", "frills" = "None", "spines" = "Long", "body_markings" = "Dark Tiger Body", "legs" = "Digitigrade Legs") + H.dna.features = list("mcolor" = "A02720", "tail_lizard" = "Dark Tiger", "tail_human" = "None", "snout" = "Sharp", "horns" = "Curled", "ears" = "None", "wings" = "None", "frills" = "None", "spines" = "Long", "body_markings" = "Dark Tiger Body", "legs" = "Digitigrade") H.eye_color = "fee5a3" H.set_species(/datum/species/lizard) if(2) diff --git a/code/modules/mining/machine_vending.dm b/code/modules/mining/machine_vending.dm index e5cab4438a..54f8e11b07 100644 --- a/code/modules/mining/machine_vending.dm +++ b/code/modules/mining/machine_vending.dm @@ -302,7 +302,7 @@ /obj/item/storage/backpack/duffelbag/mining_cloned name = "mining replacement kit" - desc = "A large bag that has advance tools and a spare jumpsuit, boots, and gloves for a newly cloned miner to get back in the field. Even as a new Id!" + desc = "A large bag that has advance tools and a spare jumpsuit, boots, and gloves for a newly cloned miner to get back in the field. Even has a new ID!" /obj/item/storage/backpack/duffelbag/mining_cloned/PopulateContents() new /obj/item/pickaxe/mini(src) diff --git a/code/modules/mining/ores_coins.dm b/code/modules/mining/ores_coins.dm index c3a33f36f5..291664ce3e 100644 --- a/code/modules/mining/ores_coins.dm +++ b/code/modules/mining/ores_coins.dm @@ -358,7 +358,7 @@ GLOBAL_LIST_INIT(sand_recipes, list(\ icon_state = "coin_gold_heads" value = 50 materials = list(MAT_GOLD = MINERAL_MATERIAL_AMOUNT*0.2) - grind_results = list("gold" = 4) + grind_results = list(/datum/reagent/gold = 4) /obj/item/coin/silver name = "silver coin" @@ -366,7 +366,7 @@ GLOBAL_LIST_INIT(sand_recipes, list(\ icon_state = "coin_silver_heads" value = 20 materials = list(MAT_SILVER = MINERAL_MATERIAL_AMOUNT*0.2) - grind_results = list("silver" = 4) + grind_results = list(/datum/reagent/silver = 4) /obj/item/coin/diamond name = "diamond coin" @@ -374,7 +374,7 @@ GLOBAL_LIST_INIT(sand_recipes, list(\ icon_state = "coin_diamond_heads" value = 500 materials = list(MAT_DIAMOND = MINERAL_MATERIAL_AMOUNT*0.2) - grind_results = list("carbon" = 4) + grind_results = list(/datum/reagent/carbon = 4) /obj/item/coin/iron name = "iron coin" @@ -382,7 +382,7 @@ GLOBAL_LIST_INIT(sand_recipes, list(\ icon_state = "coin_iron_heads" value = 1 materials = list(MAT_METAL = MINERAL_MATERIAL_AMOUNT*0.2) - grind_results = list("iron" = 4) + grind_results = list(/datum/reagent/iron = 4) /obj/item/coin/plasma name = "plasma coin" @@ -390,7 +390,7 @@ GLOBAL_LIST_INIT(sand_recipes, list(\ icon_state = "coin_plasma_heads" value = 100 materials = list(MAT_PLASMA = MINERAL_MATERIAL_AMOUNT*0.2) - grind_results = list("plasma" = 4) + grind_results = list(/datum/reagent/toxin/plasma = 4) /obj/item/coin/uranium name = "uranium coin" @@ -398,7 +398,7 @@ GLOBAL_LIST_INIT(sand_recipes, list(\ icon_state = "coin_uranium_heads" value = 80 materials = list(MAT_URANIUM = MINERAL_MATERIAL_AMOUNT*0.2) - grind_results = list("uranium" = 4) + grind_results = list(/datum/reagent/uranium = 4) /obj/item/coin/bananium name = "bananium coin" @@ -406,7 +406,7 @@ GLOBAL_LIST_INIT(sand_recipes, list(\ icon_state = "coin_bananium_heads" value = 1000 //makes the clown cry materials = list(MAT_BANANIUM = MINERAL_MATERIAL_AMOUNT*0.2) - grind_results = list("banana" = 4) + grind_results = list(/datum/reagent/consumable/banana = 4) /obj/item/coin/adamantine name = "adamantine coin" @@ -427,7 +427,7 @@ GLOBAL_LIST_INIT(sand_recipes, list(\ sideslist = list("heads") materials = list(MAT_METAL = MINERAL_MATERIAL_AMOUNT*0.2) value = 1 - grind_results = list("iron" = 4) + grind_results = list(/datum/reagent/iron = 4) /obj/item/coin/antagtoken name = "antag token" @@ -436,7 +436,7 @@ GLOBAL_LIST_INIT(sand_recipes, list(\ desc = "A novelty coin that helps the heart know what hard evidence cannot prove." sideslist = list("valid", "salad") value = 0 - grind_results = list("sodiumchloride" = 4) + grind_results = list(/datum/reagent/consumable/sodiumchloride = 4) /obj/item/coin/attackby(obj/item/W, mob/user, params) if(istype(W, /obj/item/stack/cable_coil)) diff --git a/code/modules/mob/dead/new_player/sprite_accessories/legs_and_taurs.dm b/code/modules/mob/dead/new_player/sprite_accessories/legs_and_taurs.dm index 15640a2699..b31a41bcc7 100644 --- a/code/modules/mob/dead/new_player/sprite_accessories/legs_and_taurs.dm +++ b/code/modules/mob/dead/new_player/sprite_accessories/legs_and_taurs.dm @@ -27,28 +27,33 @@ extra2 = TRUE center = TRUE dimension_x = 64 - var/taur_mode = NOT_TAURIC + var/taur_mode = NONE //Must be a single specific tauric suit variation bitflag. Don't do FLAG_1|FLAG_2 + var/alt_taur_mode = NONE //Same as above. color_src = MATRIXED /datum/sprite_accessory/taur/none + dimension_x = 32 + center = FALSE name = "None" icon_state = "None" /datum/sprite_accessory/taur/cow name = "Cow" icon_state = "cow" - taur_mode = HOOF_TAURIC + taur_mode = STYLE_HOOF_TAURIC + alt_taur_mode = STYLE_PAW_TAURIC /datum/sprite_accessory/taur/deer name = "Deer" icon_state = "deer" - taur_mode = HOOF_TAURIC + taur_mode = STYLE_HOOF_TAURIC + alt_taur_mode = STYLE_PAW_TAURIC color_src = MUTCOLORS /datum/sprite_accessory/taur/drake name = "Drake" icon_state = "drake" - taur_mode = PAW_TAURIC + taur_mode = STYLE_PAW_TAURIC /datum/sprite_accessory/taur/drider name = "Drider" @@ -58,67 +63,68 @@ /datum/sprite_accessory/taur/eevee name = "Eevee" icon_state = "eevee" - taur_mode = PAW_TAURIC + taur_mode = STYLE_PAW_TAURIC color_src = MUTCOLORS /datum/sprite_accessory/taur/fox name = "Fox" icon_state = "fox" - taur_mode = PAW_TAURIC + taur_mode = STYLE_PAW_TAURIC /datum/sprite_accessory/taur/husky name = "Husky" icon_state = "husky" - taur_mode = PAW_TAURIC + taur_mode = STYLE_PAW_TAURIC /datum/sprite_accessory/taur/horse name = "Horse" icon_state = "horse" - taur_mode = HOOF_TAURIC + taur_mode = STYLE_HOOF_TAURIC + alt_taur_mode = STYLE_PAW_TAURIC /datum/sprite_accessory/taur/lab name = "Lab" icon_state = "lab" - taur_mode = PAW_TAURIC + taur_mode = STYLE_PAW_TAURIC /datum/sprite_accessory/taur/naga name = "Naga" icon_state = "naga" - taur_mode = SNEK_TAURIC + taur_mode = STYLE_SNEK_TAURIC /datum/sprite_accessory/taur/otie name = "Otie" icon_state = "otie" - taur_mode = PAW_TAURIC + taur_mode = STYLE_PAW_TAURIC /datum/sprite_accessory/taur/pede name = "Scolipede" icon_state = "pede" - taur_mode = PAW_TAURIC + taur_mode = STYLE_PAW_TAURIC color_src = MUTCOLORS /datum/sprite_accessory/taur/panther name = "Panther" icon_state = "panther" - taur_mode = PAW_TAURIC + taur_mode = STYLE_PAW_TAURIC /datum/sprite_accessory/taur/shepherd name = "Shepherd" icon_state = "shepherd" - taur_mode = PAW_TAURIC + taur_mode = STYLE_PAW_TAURIC /datum/sprite_accessory/taur/tentacle name = "Tentacle" icon_state = "tentacle" - taur_mode = SNEK_TAURIC + taur_mode = STYLE_SNEK_TAURIC color_src = MUTCOLORS /datum/sprite_accessory/taur/tiger name = "Tiger" icon_state = "tiger" - taur_mode = PAW_TAURIC + taur_mode = STYLE_PAW_TAURIC /datum/sprite_accessory/taur/wolf name = "Wolf" icon_state = "wolf" - taur_mode = PAW_TAURIC + taur_mode = STYLE_PAW_TAURIC diff --git a/code/modules/mob/dead/new_player/sprite_accessories/undershirt.dm b/code/modules/mob/dead/new_player/sprite_accessories/undershirt.dm index fb40563ccf..58c64dc7d0 100644 --- a/code/modules/mob/dead/new_player/sprite_accessories/undershirt.dm +++ b/code/modules/mob/dead/new_player/sprite_accessories/undershirt.dm @@ -310,4 +310,40 @@ name = "Tube Top" icon_state = "tubetop" has_color = TRUE - gender = FEMALE \ No newline at end of file + gender = FEMALE + +/datum/sprite_accessory/underwear/top/cowboyshirt + name = "Cowboy Shirt Black" + icon_state = "cowboyshirt" + +/datum/sprite_accessory/underwear/top/cowboyshirt/s + name = "Cowboy Shirt Shortsleeved Black" + icon_state = "cowboyshirt_s" + +/datum/sprite_accessory/underwear/top/cowboyshirt/white + name = "Cowboy Shirt White" + icon_state = "cowboyshirt_white" + +/datum/sprite_accessory/underwear/top/cowboyshirt/white/s + name = "Cowboy Shirt Shortsleeved White" + icon_state = "cowboyshirt_whites" + +/datum/sprite_accessory/underwear/top/cowboyshirt/navy + name = "Cowboy Shirt Navy" + icon_state = "cowboyshirt_navy" + +/datum/sprite_accessory/underwear/top/cowboyshirt/navy/s + name = "Cowboy Shirt Shortsleeved Navy" + icon_state = "cowboyshirt_navys" + +/datum/sprite_accessory/underwear/top/cowboyshirt/red + name = "Cowboy Shirt Red" + icon_state = "cowboyshirt_red" + +/datum/sprite_accessory/underwear/top/cowboyshirt/red/s + name = "Cowboy Shirt Shortsleeved Red" + icon_state = "cowboyshirt_reds" + + + + diff --git a/code/modules/mob/dead/observer/observer.dm b/code/modules/mob/dead/observer/observer.dm index f1c4316c65..d234aafca6 100644 --- a/code/modules/mob/dead/observer/observer.dm +++ b/code/modules/mob/dead/observer/observer.dm @@ -477,6 +477,32 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp pixel_y = 0 animate(src, pixel_y = 2, time = 10, loop = -1) +/mob/dead/observer/verb/observe() + set name = "Observe" + set category = "Ghost" + + var/list/creatures = getpois() + + reset_perspective(null) + + var/eye_name = null + + eye_name = input("Please, select a player!", "Observe", null, null) as null|anything in creatures + + if (!eye_name) + return + + var/mob/mob_eye = creatures[eye_name] + //Istype so we filter out points of interest that are not mobs + if(client && mob_eye && istype(mob_eye)) + client.eye = mob_eye + if(mob_eye.hud_used) + client.screen = list() + LAZYINITLIST(mob_eye.observers) + mob_eye.observers |= src + mob_eye.hud_used.show_hud(mob_eye.hud_used.hud_version, src) + observetarget = mob_eye + /mob/dead/observer/verb/jumptomob() //Moves the ghost instead of just changing the ghosts's eye -Nodrak set category = "Ghost" set name = "Jump to Mob" @@ -807,32 +833,6 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp client.screen = list() hud_used.show_hud(hud_used.hud_version) -/mob/dead/observer/verb/observe() - set name = "Observe" - set category = "OOC" - - var/list/creatures = getpois() - - reset_perspective(null) - - var/eye_name = null - - eye_name = input("Please, select a player!", "Observe", null, null) as null|anything in creatures - - if (!eye_name) - return - - var/mob/mob_eye = creatures[eye_name] - //Istype so we filter out points of interest that are not mobs - if(client && mob_eye && istype(mob_eye)) - client.eye = mob_eye - if(mob_eye.hud_used) - client.screen = list() - LAZYINITLIST(mob_eye.observers) - mob_eye.observers |= src - mob_eye.hud_used.show_hud(mob_eye.hud_used.hud_version, src) - observetarget = mob_eye - /mob/dead/observer/verb/register_pai_candidate() set category = "Ghost" set name = "pAI Setup" diff --git a/code/modules/mob/living/blood.dm b/code/modules/mob/living/blood.dm index 8195b3d84b..ade8158e02 100644 --- a/code/modules/mob/living/blood.dm +++ b/code/modules/mob/living/blood.dm @@ -155,7 +155,7 @@ if(iscarbon(AM)) var/mob/living/carbon/C = AM if(blood_id == C.get_blood_id())//both mobs have the same blood substance - if(blood_id == "blood" || blood_id == "jellyblood") //normal blood + if(blood_id == /datum/reagent/blood || blood_id == /datum/reagent/blood/jellyblood) //normal blood if(blood_data["viruses"]) for(var/thing in blood_data["viruses"]) var/datum/disease/D = thing @@ -175,7 +175,7 @@ return /mob/living/carbon/get_blood_data(blood_id) - if(blood_id == "blood" || blood_id == "jellyblood") //actual blood reagent + if(blood_id == /datum/reagent/blood || /datum/reagent/blood/jellyblood) //actual blood reagent var/blood_data = list() //set the blood data blood_data["donor"] = src @@ -191,7 +191,7 @@ blood_data["resistances"] = disease_resistances.Copy() var/list/temp_chem = list() for(var/datum/reagent/R in reagents.reagent_list) - temp_chem[R.id] = R.volume + temp_chem[R.type] = R.volume blood_data["trace_chem"] = list2params(temp_chem) if(mind) blood_data["mind"] = mind @@ -226,21 +226,21 @@ /mob/living/simple_animal/get_blood_id() if(blood_volume) - return "blood" + return /datum/reagent/blood /mob/living/carbon/monkey/get_blood_id() if(!(HAS_TRAIT(src, TRAIT_NOCLONE))) - return "blood" + return /datum/reagent/blood /mob/living/carbon/get_blood_id() if(isjellyperson(src)) - return "jellyblood" + return /datum/reagent/blood/jellyblood if(dna?.species?.exotic_blood) return dna.species.exotic_blood else if((NOBLOOD in dna.species.species_traits) || (HAS_TRAIT(src, TRAIT_NOCLONE))) return else - return "blood" + return /datum/reagent/blood // This is has more potential uses, and is probably faster than the old proc. /proc/get_safe_blood(bloodtype) diff --git a/code/modules/mob/living/bloodcrawl.dm b/code/modules/mob/living/bloodcrawl.dm index d1ace36b8c..4ed539adc2 100644 --- a/code/modules/mob/living/bloodcrawl.dm +++ b/code/modules/mob/living/bloodcrawl.dm @@ -73,7 +73,7 @@ if(victim.stat == CONSCIOUS) src.visible_message("[victim] kicks free of the blood pool just before entering it!", null, "You hear splashing and struggling.") - else if(victim.reagents && victim.reagents.has_reagent("demonsblood")) + else if(victim.reagents && victim.reagents.has_reagent(/datum/reagent/consumable/ethanol/demonsblood)) visible_message("Something prevents [victim] from entering the pool!", "A strange force is blocking [victim] from entering!", "You hear a splash and a thud.") else victim.forceMove(src) @@ -104,7 +104,7 @@ if(!victim) return FALSE - if(victim.reagents && victim.reagents.has_reagent("devilskiss")) + if(victim.reagents && victim.reagents.has_reagent(/datum/reagent/consumable/ethanol/devilskiss)) to_chat(src, "AAH! THEIR FLESH! IT BURNS!") adjustBruteLoss(25) //I can't use adjustHealth() here because bloodcrawl affects /mob/living and adjustHealth() only affects simple mobs var/found_bloodpool = FALSE diff --git a/code/modules/mob/living/brain/brain_item.dm b/code/modules/mob/living/brain/brain_item.dm index 48e79a9050..f2ea4f2b01 100644 --- a/code/modules/mob/living/brain/brain_item.dm +++ b/code/modules/mob/living/brain/brain_item.dm @@ -102,16 +102,16 @@ if(istype(O, /obj/item/organ_storage)) //BUG_PROBABLE_CAUSE return //Borg organ bags shouldn't be killing brains - if((organ_flags & ORGAN_FAILING) && O.is_drainable() && O.reagents.has_reagent("neurine")) //Neurine fixes dead brains + if((organ_flags & ORGAN_FAILING) && O.is_drainable() && O.reagents.has_reagent(/datum/reagent/medicine/neurine)) //Neurine fixes dead brains . = TRUE //don't do attack animation. var/cached_Bdamage = brainmob?.health - var/datum/reagent/medicine/neurine/N = reagents.has_reagent("neurine") - var/datum/reagent/medicine/mannitol/M1 = reagents.has_reagent("mannitol") + var/datum/reagent/medicine/neurine/N = reagents.has_reagent(/datum/reagent/medicine/neurine) + var/datum/reagent/medicine/mannitol/M1 = reagents.has_reagent(/datum/reagent/medicine/mannitol) - if(O.reagents.has_reagent("mannitol"))//Just a quick way to bolster the effects if someone mixes up a batch. + if(O.reagents.has_reagent(/datum/reagent/medicine/mannitol))//Just a quick way to bolster the effects if someone mixes up a batch. N.volume *= (M1.volume*0.5) - if(!O.reagents.has_reagent("neurine", 10)) + if(!O.reagents.has_reagent(/datum/reagent/medicine/neurine, 10)) to_chat(user, "There's not enough neurine in [O] to restore [src]!") return @@ -134,14 +134,14 @@ gain_trauma_type(BRAIN_TRAUMA_SPECIAL) return - if((organ_flags & ORGAN_FAILING) && O.is_drainable() && O.reagents.has_reagent("mannitol")) //attempt to heal the brain + if((organ_flags & ORGAN_FAILING) && O.is_drainable() && O.reagents.has_reagent(/datum/reagent/medicine/mannitol)) //attempt to heal the brain . = TRUE //don't do attack animation. - var/datum/reagent/medicine/mannitol/M = reagents.has_reagent("mannitol") + var/datum/reagent/medicine/mannitol/M = reagents.has_reagent(/datum/reagent/medicine/mannitol) if(brain_death || brainmob?.health <= HEALTH_THRESHOLD_DEAD) //if the brain is fucked anyway, do nothing to_chat(user, "[src] is far too damaged, you'll have to use neurine on it!") return - if(!O.reagents.has_reagent("mannitol", 10)) + if(!O.reagents.has_reagent(/datum/reagent/medicine/mannitol, 10)) to_chat(user, "There's not enough mannitol in [O] to restore [src]!") return diff --git a/code/modules/mob/living/carbon/alien/alien_defense.dm b/code/modules/mob/living/carbon/alien/alien_defense.dm index bdc691ce49..8c74b7408b 100644 --- a/code/modules/mob/living/carbon/alien/alien_defense.dm +++ b/code/modules/mob/living/carbon/alien/alien_defense.dm @@ -107,15 +107,15 @@ In all, this is a lot like the monkey code. /N return ..() switch (severity) - if (1) + if (EXPLODE_DEVASTATE) gib() return - if (2) + if (EXPLODE_HEAVY) take_overall_damage(60, 60) adjustEarDamage(30,120) - if(3) + if(EXPLODE_LIGHT) take_overall_damage(30,0) if(prob(50)) Unconscious(20) diff --git a/code/modules/mob/living/carbon/alien/organs.dm b/code/modules/mob/living/carbon/alien/organs.dm index e4e8f06cfa..35751e4b86 100644 --- a/code/modules/mob/living/carbon/alien/organs.dm +++ b/code/modules/mob/living/carbon/alien/organs.dm @@ -27,7 +27,7 @@ /obj/item/organ/alien/prepare_eat() var/obj/S = ..() - S.reagents.add_reagent("sacid", 10) + S.reagents.add_reagent(/datum/reagent/toxin/acid, 10) return S @@ -46,7 +46,7 @@ /obj/item/organ/alien/plasmavessel/prepare_eat() var/obj/S = ..() - S.reagents.add_reagent("plasma", storedPlasma/10) + S.reagents.add_reagent(/datum/reagent/toxin/plasma, storedPlasma/10) return S /obj/item/organ/alien/plasmavessel/large diff --git a/code/modules/mob/living/carbon/alien/special/alien_embryo.dm b/code/modules/mob/living/carbon/alien/special/alien_embryo.dm index c08fe4f582..e74f2e54a9 100644 --- a/code/modules/mob/living/carbon/alien/special/alien_embryo.dm +++ b/code/modules/mob/living/carbon/alien/special/alien_embryo.dm @@ -18,7 +18,7 @@ /obj/item/organ/body_egg/alien_embryo/prepare_eat() var/obj/S = ..() - S.reagents.add_reagent("sacid", 10) + S.reagents.add_reagent(/datum/reagent/toxin/acid, 10) return S /obj/item/organ/body_egg/alien_embryo/on_life() diff --git a/code/modules/mob/living/carbon/alien/special/facehugger.dm b/code/modules/mob/living/carbon/alien/special/facehugger.dm index 1cea4a6e82..8baeb93195 100644 --- a/code/modules/mob/living/carbon/alien/special/facehugger.dm +++ b/code/modules/mob/living/carbon/alien/special/facehugger.dm @@ -21,7 +21,7 @@ flags_cover = MASKCOVERSEYES | MASKCOVERSMOUTH layer = MOB_LAYER max_integrity = 100 - mutantrace_variation = MUTANTRACE_VARIATION + mutantrace_variation = STYLE_MUZZLE var/stat = CONSCIOUS //UNCONSCIOUS is the idle state in this case diff --git a/code/modules/mob/living/carbon/carbon.dm b/code/modules/mob/living/carbon/carbon.dm index 998fd3770f..2d58eb6a7e 100644 --- a/code/modules/mob/living/carbon/carbon.dm +++ b/code/modules/mob/living/carbon/carbon.dm @@ -1,991 +1,991 @@ -/mob/living/carbon - blood_volume = BLOOD_VOLUME_NORMAL - -/mob/living/carbon/Initialize() - . = ..() - create_reagents(1000) - update_body_parts() //to update the carbon's new bodyparts appearance - GLOB.carbon_list += src - blood_volume = (BLOOD_VOLUME_NORMAL * blood_ratio) - -/mob/living/carbon/Destroy() - //This must be done first, so the mob ghosts correctly before DNA etc is nulled - . = ..() - - QDEL_LIST(internal_organs) - QDEL_LIST(stomach_contents) - QDEL_LIST(bodyparts) - QDEL_LIST(implants) - remove_from_all_data_huds() - QDEL_NULL(dna) - GLOB.carbon_list -= src - -/mob/living/carbon/initialize_footstep() - AddComponent(/datum/component/footstep, 0.6, 2) - -/mob/living/carbon/relaymove(mob/user, direction) - if(user in src.stomach_contents) - if(prob(40)) - if(prob(25)) - audible_message("You hear something rumbling inside [src]'s stomach...", \ - "You hear something rumbling.", 4,\ - "Something is rumbling inside your stomach!") - var/obj/item/I = user.get_active_held_item() - if(I && I.force) - var/d = rand(round(I.force / 4), I.force) - var/obj/item/bodypart/BP = get_bodypart(BODY_ZONE_CHEST) - if(BP.receive_damage(d, 0)) - update_damage_overlays() - visible_message("[user] attacks [src]'s stomach wall with the [I.name]!", \ - "[user] attacks your stomach wall with the [I.name]!") - playsound(user.loc, 'sound/effects/attackblob.ogg', 50, 1) - - if(prob(src.getBruteLoss() - 50)) - for(var/atom/movable/A in stomach_contents) - A.forceMove(drop_location()) - stomach_contents.Remove(A) - src.gib() - - -/mob/living/carbon/swap_hand(held_index) - if(!held_index) - held_index = (active_hand_index % held_items.len)+1 - - var/obj/item/item_in_hand = src.get_active_held_item() - if(item_in_hand) //this segment checks if the item in your hand is twohanded. - var/obj/item/twohanded/TH = item_in_hand - if(istype(TH)) - if(TH.wielded == 1) - to_chat(usr, "Your other hand is too busy holding [TH]") - return - var/oindex = active_hand_index - active_hand_index = held_index - if(hud_used) - var/obj/screen/inventory/hand/H - H = hud_used.hand_slots["[oindex]"] - if(H) - H.update_icon() - H = hud_used.hand_slots["[held_index]"] - if(H) - H.update_icon() - - -/mob/living/carbon/activate_hand(selhand) //l/r OR 1-held_items.len - if(!selhand) - selhand = (active_hand_index % held_items.len)+1 - - if(istext(selhand)) - selhand = lowertext(selhand) - if(selhand == "right" || selhand == "r") - selhand = 2 - if(selhand == "left" || selhand == "l") - selhand = 1 - - if(selhand != active_hand_index) - swap_hand(selhand) - else - mode() // Activate held item - -/mob/living/carbon/attackby(obj/item/I, mob/user, params) - if(lying && surgeries.len) - if(user != src && (user.a_intent == INTENT_HELP || user.a_intent == INTENT_DISARM)) - for(var/datum/surgery/S in surgeries) - if(S.next_step(user,user.a_intent)) - return 1 - return ..() - -/mob/living/carbon/throw_impact(atom/hit_atom, throwingdatum) - . = ..() - var/hurt = TRUE - if(istype(throwingdatum, /datum/thrownthing)) - var/datum/thrownthing/D = throwingdatum - if(iscyborg(D.thrower)) - var/mob/living/silicon/robot/R = D.thrower - if(!R.emagged) - hurt = FALSE - if(hit_atom.density && isturf(hit_atom)) - if(hurt) - Knockdown(20) - take_bodypart_damage(10) - if(iscarbon(hit_atom) && hit_atom != src) - var/mob/living/carbon/victim = hit_atom - if(victim.movement_type & FLYING) - return - if(hurt) - victim.take_bodypart_damage(10) - take_bodypart_damage(10) - victim.Knockdown(20) - Knockdown(20) - visible_message("[src] crashes into [victim], knocking them both over!",\ - "You violently crash into [victim]!") - playsound(src,'sound/weapons/punch1.ogg',50,1) - - -//Throwing stuff -/mob/living/carbon/proc/toggle_throw_mode() - if(stat) - return - if(in_throw_mode) - throw_mode_off() - else - throw_mode_on() - - -/mob/living/carbon/proc/throw_mode_off() - in_throw_mode = 0 - if(client && hud_used) - hud_used.throw_icon.icon_state = "act_throw_off" - - -/mob/living/carbon/proc/throw_mode_on() - in_throw_mode = 1 - if(client && hud_used) - hud_used.throw_icon.icon_state = "act_throw_on" - -/mob/proc/throw_item(atom/target) - SEND_SIGNAL(src, COMSIG_MOB_THROW, target) - return - -/mob/living/carbon/throw_item(atom/target) - throw_mode_off() - if(!target || !isturf(loc)) - return - if(istype(target, /obj/screen)) - return - - //CIT CHANGES - makes it impossible to throw while in stamina softcrit - if(getStaminaLoss() >= STAMINA_SOFTCRIT) - to_chat(src, "You're too exhausted.") - return - var/random_turn = a_intent == INTENT_HARM - //END OF CIT CHANGES - - var/obj/item/I = src.get_active_held_item() - - var/atom/movable/thrown_thing - var/mob/living/throwable_mob - - if(istype(I, /obj/item/clothing/head/mob_holder)) - var/obj/item/clothing/head/mob_holder/holder = I - if(holder.held_mob) - throwable_mob = holder.held_mob - holder.release() - - if(!I || throwable_mob) - if(!throwable_mob && pulling && isliving(pulling) && grab_state >= GRAB_AGGRESSIVE) - throwable_mob = pulling - - if(throwable_mob && !throwable_mob.buckled) - thrown_thing = throwable_mob - if(pulling) - stop_pulling() - if(HAS_TRAIT(src, TRAIT_PACIFISM)) - to_chat(src, "You gently let go of [throwable_mob].") - return - - adjustStaminaLossBuffered(25)//CIT CHANGE - throwing an entire person shall be very tiring - var/turf/start_T = get_turf(loc) //Get the start and target tile for the descriptors - var/turf/end_T = get_turf(target) - if(start_T && end_T) - log_combat(src, throwable_mob, "thrown", addition="grab from tile in [AREACOORD(start_T)] towards tile at [AREACOORD(end_T)]") - - else if(!CHECK_BITFIELD(I.item_flags, ABSTRACT) && !HAS_TRAIT(I, TRAIT_NODROP)) - thrown_thing = I - dropItemToGround(I) - - if(HAS_TRAIT(src, TRAIT_PACIFISM) && I.throwforce) - to_chat(src, "You set [I] down gently on the ground.") - return - - adjustStaminaLossBuffered(I.getweight()*2)//CIT CHANGE - throwing items shall be more tiring than swinging em. Doubly so. - - if(thrown_thing) - visible_message("[src] has thrown [thrown_thing].") - src.log_message("has thrown [thrown_thing]", LOG_ATTACK) - do_attack_animation(target, no_effect = 1) - playsound(loc, 'sound/weapons/punchmiss.ogg', 50, 1, -1) - newtonian_move(get_dir(target, src)) - thrown_thing.throw_at(target, thrown_thing.throw_range, thrown_thing.throw_speed, src, null, null, null, random_turn) - - - -/mob/living/carbon/restrained(ignore_grab) - . = (handcuffed || (!ignore_grab && pulledby && pulledby.grab_state >= GRAB_AGGRESSIVE)) - -/mob/living/carbon/proc/canBeHandcuffed() - return 0 - - -/mob/living/carbon/show_inv(mob/user) - user.set_machine(src) - var/dat = {" -
- [name] -
-
Head: [(head && !(head.item_flags & ABSTRACT)) ? head : "Nothing"] -
Mask: [(wear_mask && !(wear_mask.item_flags & ABSTRACT)) ? wear_mask : "Nothing"] -
Neck: [(wear_neck && !(wear_neck.item_flags & ABSTRACT)) ? wear_neck : "Nothing"]"} - - for(var/i in 1 to held_items.len) - var/obj/item/I = get_item_for_held_index(i) - dat += "
[get_held_index_name(i)]:[(I && !(I.item_flags & ABSTRACT)) ? I : "Nothing"]" - - dat += "
Back: [back ? back : "Nothing"]" - - if(istype(wear_mask, /obj/item/clothing/mask) && istype(back, /obj/item/tank)) - dat += "
[internal ? "Disable Internals" : "Set Internals"]" - - if(handcuffed) - dat += "
Handcuffed" - if(legcuffed) - dat += "
Legcuffed" - - dat += {" -
-
Close - "} - user << browse(dat, "window=mob[REF(src)];size=325x500") - onclose(user, "mob[REF(src)]") - -/mob/living/carbon/Topic(href, href_list) - ..() - //strip panel - if(usr.canUseTopic(src, BE_CLOSE, NO_DEXTERY)) - if(href_list["internal"]) - var/slot = text2num(href_list["internal"]) - var/obj/item/ITEM = get_item_by_slot(slot) - if(ITEM && istype(ITEM, /obj/item/tank) && wear_mask && (wear_mask.clothing_flags & ALLOWINTERNALS)) - visible_message("[usr] tries to [internal ? "close" : "open"] the valve on [src]'s [ITEM.name].", \ - "[usr] tries to [internal ? "close" : "open"] the valve on [src]'s [ITEM.name].") - if(do_mob(usr, src, POCKET_STRIP_DELAY)) - if(internal) - internal = null - update_internals_hud_icon(0) - else if(ITEM && istype(ITEM, /obj/item/tank)) - if((wear_mask && (wear_mask.clothing_flags & ALLOWINTERNALS)) || getorganslot(ORGAN_SLOT_BREATHING_TUBE)) - internal = ITEM - update_internals_hud_icon(1) - - visible_message("[usr] [internal ? "opens" : "closes"] the valve on [src]'s [ITEM.name].", \ - "[usr] [internal ? "opens" : "closes"] the valve on [src]'s [ITEM.name].") - - -/mob/living/carbon/fall(forced) - loc.handle_fall(src, forced)//it's loc so it doesn't call the mob's handle_fall which does nothing - -/mob/living/carbon/is_muzzled() - return(istype(src.wear_mask, /obj/item/clothing/mask/muzzle)) - -/mob/living/carbon/hallucinating() - if(hallucination) - return TRUE - else - return FALSE - -/mob/living/carbon/resist_buckle() - if(restrained()) - changeNext_move(CLICK_CD_BREAKOUT) - last_special = world.time + CLICK_CD_BREAKOUT - var/buckle_cd = 600 - if(handcuffed) - var/obj/item/restraints/O = src.get_item_by_slot(SLOT_HANDCUFFED) - buckle_cd = O.breakouttime - visible_message("[src] attempts to unbuckle [p_them()]self!", \ - "You attempt to unbuckle yourself... (This will take around [round(buckle_cd/600,1)] minute\s, and you need to stay still.)") - if(do_after(src, buckle_cd, 0, target = src)) - if(!buckled) - return - buckled.user_unbuckle_mob(src,src) - else - if(src && buckled) - to_chat(src, "You fail to unbuckle yourself!") - else - buckled.user_unbuckle_mob(src,src) - -/mob/living/carbon/resist_fire() - fire_stacks -= 5 - Knockdown(60, TRUE, TRUE) - spin(32,2) - visible_message("[src] rolls on the floor, trying to put [p_them()]self out!", \ - "You stop, drop, and roll!") - sleep(30) - if(fire_stacks <= 0) - visible_message("[src] has successfully extinguished [p_them()]self!", \ - "You extinguish yourself.") - ExtinguishMob() - return - -/mob/living/carbon/resist_restraints() - var/obj/item/I = null - var/type = 0 - if(handcuffed) - I = handcuffed - type = 1 - else if(legcuffed) - I = legcuffed - type = 2 - if(I) - if(type == 1) - changeNext_move(CLICK_CD_BREAKOUT) - last_special = world.time + CLICK_CD_BREAKOUT - if(type == 2) - changeNext_move(CLICK_CD_RANGE) - last_special = world.time + CLICK_CD_RANGE - cuff_resist(I) - - -/mob/living/carbon/proc/cuff_resist(obj/item/I, breakouttime = 600, cuff_break = 0) - if(I.item_flags & BEING_REMOVED) - to_chat(src, "You're already attempting to remove [I]!") - return - I.item_flags |= BEING_REMOVED - breakouttime = I.breakouttime - if(!cuff_break) - visible_message("[src] attempts to remove [I]!") - to_chat(src, "You attempt to remove [I]... (This will take around [DisplayTimeText(breakouttime)] and you need to stand still.)") - if(do_after(src, breakouttime, 0, target = src)) - clear_cuffs(I, cuff_break) - else - to_chat(src, "You fail to remove [I]!") - - else if(cuff_break == FAST_CUFFBREAK) - breakouttime = 50 - visible_message("[src] is trying to break [I]!") - to_chat(src, "You attempt to break [I]... (This will take around 5 seconds and you need to stand still.)") - if(do_after(src, breakouttime, 0, target = src)) - clear_cuffs(I, cuff_break) - else - to_chat(src, "You fail to break [I]!") - - else if(cuff_break == INSTANT_CUFFBREAK) - clear_cuffs(I, cuff_break) - I.item_flags &= ~BEING_REMOVED - -/mob/living/carbon/proc/uncuff() - if (handcuffed) - var/obj/item/W = handcuffed - handcuffed = null - if (buckled && buckled.buckle_requires_restraints) - buckled.unbuckle_mob(src) - update_handcuffed() - if (client) - client.screen -= W - if (W) - W.forceMove(drop_location()) - W.dropped(src) - if (W) - W.layer = initial(W.layer) - W.plane = initial(W.plane) - changeNext_move(0) - if (legcuffed) - var/obj/item/W = legcuffed - legcuffed = null - update_inv_legcuffed() - if (client) - client.screen -= W - if (W) - W.forceMove(drop_location()) - W.dropped(src) - if (W) - W.layer = initial(W.layer) - W.plane = initial(W.plane) - changeNext_move(0) - -/mob/living/carbon/proc/clear_cuffs(obj/item/I, cuff_break) - if(!I.loc || buckled) - return - visible_message("[src] manages to [cuff_break ? "break" : "remove"] [I]!") - to_chat(src, "You successfully [cuff_break ? "break" : "remove"] [I].") - - if(cuff_break) - . = !((I == handcuffed) || (I == legcuffed)) - qdel(I) - return - - else - if(I == handcuffed) - handcuffed.forceMove(drop_location()) - handcuffed.dropped(src) - handcuffed = null - if(buckled && buckled.buckle_requires_restraints) - buckled.unbuckle_mob(src) - update_handcuffed() - return - if(I == legcuffed) - legcuffed.forceMove(drop_location()) - legcuffed.dropped() - legcuffed = null - update_inv_legcuffed() - return - else - dropItemToGround(I) - return - return TRUE - -/mob/living/carbon/get_standard_pixel_y_offset(lying = 0) - if(lying) - return -6 - else - return initial(pixel_y) - -/mob/living/carbon/proc/accident(obj/item/I) - if(!I || (I.item_flags & ABSTRACT) || HAS_TRAIT(I, TRAIT_NODROP)) - return - - //dropItemToGround(I) CIT CHANGE - makes it so the item doesn't drop if the modifier rolls above 100 - - var/modifier = 0 - - if(HAS_TRAIT(src, TRAIT_CLUMSY)) - modifier -= 40 //Clumsy people are more likely to hit themselves -Honk! - - //CIT CHANGES START HERE - else if(combatmode) - modifier += 50 - - if(modifier < 100) - dropItemToGround(I) - //END OF CIT CHANGES - - switch(rand(1,100)+modifier) //91-100=Nothing special happens - if(-INFINITY to 0) //attack yourself - I.attack(src,src) - if(1 to 30) //throw it at yourself - I.throw_impact(src) - if(31 to 60) //Throw object in facing direction - var/turf/target = get_turf(loc) - var/range = rand(2,I.throw_range) - for(var/i = 1; i < range; i++) - var/turf/new_turf = get_step(target, dir) - target = new_turf - if(new_turf.density) - break - I.throw_at(target,I.throw_range,I.throw_speed,src) - if(61 to 90) //throw it down to the floor - var/turf/target = get_turf(loc) - I.throw_at(target,I.throw_range,I.throw_speed,src) - -/mob/living/carbon/Stat() - ..() - if(statpanel("Status")) - var/obj/item/organ/alien/plasmavessel/vessel = getorgan(/obj/item/organ/alien/plasmavessel) - if(vessel) - stat(null, "Plasma Stored: [vessel.storedPlasma]/[vessel.max_plasma]") - if(locate(/obj/item/assembly/health) in src) - stat(null, "Health: [health]") - - add_abilities_to_panel() - -/mob/living/carbon/attack_ui(slot) - if(!has_hand_for_held_index(active_hand_index)) - return 0 - return ..() - -/mob/living/carbon/proc/vomit(lost_nutrition = 10, blood = FALSE, stun = TRUE, distance = 1, message = TRUE, toxic = FALSE) - if(HAS_TRAIT(src, TRAIT_NOHUNGER)) - return 1 - - if(nutrition < 100 && !blood) - if(message) - visible_message("[src] dry heaves!", \ - "You try to throw up, but there's nothing in your stomach!") - if(stun) - Knockdown(200) - return 1 - - if(is_mouth_covered()) //make this add a blood/vomit overlay later it'll be hilarious - if(message) - visible_message("[src] throws up all over [p_them()]self!", \ - "You throw up all over yourself!") - SEND_SIGNAL(src, COMSIG_ADD_MOOD_EVENT, "vomit", /datum/mood_event/vomitself) - distance = 0 - else - if(message) - visible_message("[src] throws up!", "You throw up!") - if(!isflyperson(src)) - SEND_SIGNAL(src, COMSIG_ADD_MOOD_EVENT, "vomit", /datum/mood_event/vomit) - if(stun) - Stun(80) - - playsound(get_turf(src), 'sound/effects/splat.ogg', 50, 1) - var/turf/T = get_turf(src) - if(!blood) - nutrition -= lost_nutrition - adjustToxLoss(-3) - for(var/i=0 to distance) - if(blood) - if(T) - add_splatter_floor(T) - if(stun) - adjustBruteLoss(3) - else if(src.reagents.has_reagent("blazaam")) - if(T) - T.add_vomit_floor(src, VOMIT_PURPLE) - else - if(T) - T.add_vomit_floor(src, VOMIT_TOXIC)//toxic barf looks different - T = get_step(T, dir) - if (is_blocked_turf(T)) - break - return 1 - -/mob/living/carbon/proc/spew_organ(power = 5, amt = 1) - for(var/i in 1 to amt) - if(!internal_organs.len) - break //Guess we're out of organs! - var/obj/item/organ/guts = pick(internal_organs) - var/turf/T = get_turf(src) - guts.Remove(src) - guts.forceMove(T) - var/atom/throw_target = get_edge_target_turf(guts, dir) - guts.throw_at(throw_target, power, 4, src) - - -/mob/living/carbon/fully_replace_character_name(oldname,newname) - ..() - if(dna) - dna.real_name = real_name - -//Updates the mob's health from bodyparts and mob damage variables -/mob/living/carbon/updatehealth() - if(status_flags & GODMODE) - return - var/total_burn = 0 - var/total_brute = 0 - var/total_stamina = 0 - for(var/X in bodyparts) //hardcoded to streamline things a bit - var/obj/item/bodypart/BP = X - total_brute += (BP.brute_dam * BP.body_damage_coeff) - total_burn += (BP.burn_dam * BP.body_damage_coeff) - total_stamina += (BP.stamina_dam * BP.stam_damage_coeff) - health = round(maxHealth - getOxyLoss() - getToxLoss() - getCloneLoss() - total_burn - total_brute, DAMAGE_PRECISION) - staminaloss = round(total_stamina, DAMAGE_PRECISION) - update_stat() - if(((maxHealth - total_burn) < HEALTH_THRESHOLD_DEAD) && stat == DEAD ) - become_husk("burn") - med_hud_set_health() - if(stat == SOFT_CRIT) - add_movespeed_modifier(MOVESPEED_ID_CARBON_SOFTCRIT, TRUE, multiplicative_slowdown = SOFTCRIT_ADD_SLOWDOWN) - else - remove_movespeed_modifier(MOVESPEED_ID_CARBON_SOFTCRIT, TRUE) - -/mob/living/carbon/update_stamina() - var/stam = getStaminaLoss() - if(stam > DAMAGE_PRECISION) - var/total_health = (health - stam) - if(total_health <= crit_threshold && !stat) - if(!IsKnockdown()) - to_chat(src, "You're too exhausted to keep going...") - Knockdown(100) - update_health_hud() - -/mob/living/carbon/update_sight() - if(!client) - return - if(stat == DEAD) - sight = (SEE_TURFS|SEE_MOBS|SEE_OBJS) - see_in_dark = 8 - see_invisible = SEE_INVISIBLE_OBSERVER - return - - sight = initial(sight) - lighting_alpha = initial(lighting_alpha) - var/obj/item/organ/eyes/E = getorganslot(ORGAN_SLOT_EYES) - if(!E) - update_tint() - else - see_invisible = E.see_invisible - see_in_dark = E.see_in_dark - sight |= E.sight_flags - if(!isnull(E.lighting_alpha)) - lighting_alpha = E.lighting_alpha - if(HAS_TRAIT(src, TRAIT_NIGHT_VISION)) - lighting_alpha = min(LIGHTING_PLANE_ALPHA_NV_TRAIT, lighting_alpha) - see_in_dark = max(NIGHT_VISION_DARKSIGHT_RANGE, see_in_dark) - - if(client.eye && client.eye != src) - var/atom/A = client.eye - if(A.update_remote_sight(src)) //returns 1 if we override all other sight updates. - return - - if(glasses) - var/obj/item/clothing/glasses/G = glasses - sight |= G.vision_flags - see_in_dark = max(G.darkness_view, see_in_dark) - if(G.invis_override) - see_invisible = G.invis_override - else - see_invisible = min(G.invis_view, see_invisible) - if(!isnull(G.lighting_alpha)) - lighting_alpha = min(lighting_alpha, G.lighting_alpha) - if(dna) - for(var/X in dna.mutations) - var/datum/mutation/M = X - if(M.name == XRAY) - sight |= (SEE_TURFS|SEE_MOBS|SEE_OBJS) - see_in_dark = max(see_in_dark, 8) - - if(see_override) - see_invisible = see_override - . = ..() - - -//to recalculate and update the mob's total tint from tinted equipment it's wearing. -/mob/living/carbon/proc/update_tint() - if(!GLOB.tinted_weldhelh) - return - tinttotal = get_total_tint() - if(tinttotal >= TINT_BLIND) - become_blind(EYES_COVERED) - else if(tinttotal >= TINT_DARKENED) - cure_blind(EYES_COVERED) - overlay_fullscreen("tint", /obj/screen/fullscreen/impaired, 2) - else - cure_blind(EYES_COVERED) - clear_fullscreen("tint", 0) - -/mob/living/carbon/proc/get_total_tint() - . = 0 - if(istype(head, /obj/item/clothing/head)) - var/obj/item/clothing/head/HT = head - . += HT.tint - if(wear_mask) - . += wear_mask.tint - - var/obj/item/organ/eyes/E = getorganslot(ORGAN_SLOT_EYES) - if(E) - . += E.tint - - else - . += INFINITY - -/mob/living/carbon/get_permeability_protection(list/target_zones = list(HANDS,CHEST,GROIN,LEGS,FEET,ARMS,HEAD)) - var/list/tally = list() - for(var/obj/item/I in get_equipped_items()) - for(var/zone in target_zones) - if(I.body_parts_covered & zone) - tally["[zone]"] = max(1 - I.permeability_coefficient, target_zones["[zone]"]) - var/protection = 0 - for(var/key in tally) - protection += tally[key] - protection *= INVERSE(target_zones.len) - return protection - -//this handles hud updates -/mob/living/carbon/update_damage_hud() - - if(!client) - return - - if(health <= crit_threshold) - var/severity = 0 - switch(health) - if(-20 to -10) - severity = 1 - if(-30 to -20) - severity = 2 - if(-40 to -30) - severity = 3 - if(-50 to -40) - severity = 4 - if(-50 to -40) - severity = 5 - if(-60 to -50) - severity = 6 - if(-70 to -60) - severity = 7 - if(-90 to -70) - severity = 8 - if(-95 to -90) - severity = 9 - if(-INFINITY to -95) - severity = 10 - if(!InFullCritical()) - var/visionseverity = 4 - switch(health) - if(-8 to -4) - visionseverity = 5 - if(-12 to -8) - visionseverity = 6 - if(-16 to -12) - visionseverity = 7 - if(-20 to -16) - visionseverity = 8 - if(-24 to -20) - visionseverity = 9 - if(-INFINITY to -24) - visionseverity = 10 - overlay_fullscreen("critvision", /obj/screen/fullscreen/crit/vision, visionseverity) - else - clear_fullscreen("critvision") - overlay_fullscreen("crit", /obj/screen/fullscreen/crit, severity) - else - clear_fullscreen("crit") - clear_fullscreen("critvision") - - //Oxygen damage overlay - var/windedup = getOxyLoss() + getStaminaLoss() * 0.2 - if(windedup) - var/severity = 0 - switch(windedup) - if(10 to 20) - severity = 1 - if(20 to 25) - severity = 2 - if(25 to 30) - severity = 3 - if(30 to 35) - severity = 4 - if(35 to 40) - severity = 5 - if(40 to 45) - severity = 6 - if(45 to INFINITY) - severity = 7 - overlay_fullscreen("oxy", /obj/screen/fullscreen/oxy, severity) - else - clear_fullscreen("oxy") - - //Fire and Brute damage overlay (BSSR) - var/hurtdamage = getBruteLoss() + getFireLoss() + damageoverlaytemp - if(hurtdamage) - var/severity = 0 - switch(hurtdamage) - if(5 to 15) - severity = 1 - if(15 to 30) - severity = 2 - if(30 to 45) - severity = 3 - if(45 to 70) - severity = 4 - if(70 to 85) - severity = 5 - if(85 to INFINITY) - severity = 6 - overlay_fullscreen("brute", /obj/screen/fullscreen/brute, severity) - else - clear_fullscreen("brute") - -/mob/living/carbon/update_health_hud(shown_health_amount) - if(!client || !hud_used) - return - if(hud_used.healths) - if(stat != DEAD) - . = 1 - if(!shown_health_amount) - shown_health_amount = health - if(shown_health_amount >= maxHealth) - hud_used.healths.icon_state = "health0" - else if(shown_health_amount > maxHealth*0.8) - hud_used.healths.icon_state = "health1" - else if(shown_health_amount > maxHealth*0.6) - hud_used.healths.icon_state = "health2" - else if(shown_health_amount > maxHealth*0.4) - hud_used.healths.icon_state = "health3" - else if(shown_health_amount > maxHealth*0.2) - hud_used.healths.icon_state = "health4" - else if(shown_health_amount > 0) - hud_used.healths.icon_state = "health5" - else - hud_used.healths.icon_state = "health6" - else - hud_used.healths.icon_state = "health7" - -/mob/living/carbon/proc/update_internals_hud_icon(internal_state = 0) - if(hud_used && hud_used.internals) - hud_used.internals.icon_state = "internal[internal_state]" - -/mob/living/carbon/update_stat() - if(status_flags & GODMODE) - return - if(stat != DEAD) - if(health <= HEALTH_THRESHOLD_DEAD && !HAS_TRAIT(src, TRAIT_NODEATH)) - death() - return - if(IsUnconscious() || IsSleeping() || getOxyLoss() > 50 || (HAS_TRAIT(src, TRAIT_DEATHCOMA)) || (health <= HEALTH_THRESHOLD_FULLCRIT && !HAS_TRAIT(src, TRAIT_NOHARDCRIT))) - stat = UNCONSCIOUS - blind_eyes(1) - if(combatmode) - toggle_combat_mode(TRUE, TRUE) - else - if(health <= crit_threshold && !HAS_TRAIT(src, TRAIT_NOSOFTCRIT)) - stat = SOFT_CRIT - if(combatmode) - toggle_combat_mode(TRUE, TRUE) - else - stat = CONSCIOUS - adjust_blindness(-1) - update_canmove() - update_damage_hud() - update_health_hud() - med_hud_set_status() - -//called when we get cuffed/uncuffed -/mob/living/carbon/proc/update_handcuffed() - if(handcuffed) - drop_all_held_items() - stop_pulling() - throw_alert("handcuffed", /obj/screen/alert/restrained/handcuffed, new_master = src.handcuffed) - if(handcuffed.demoralize_criminals) - SEND_SIGNAL(src, COMSIG_ADD_MOOD_EVENT, "handcuffed", /datum/mood_event/handcuffed) - else - clear_alert("handcuffed") - SEND_SIGNAL(src, COMSIG_CLEAR_MOOD_EVENT, "handcuffed") - update_action_buttons_icon() //some of our action buttons might be unusable when we're handcuffed. - update_inv_handcuffed() - update_hud_handcuffed() - -/mob/living/carbon/fully_heal(admin_revive = FALSE) - if(reagents) - reagents.clear_reagents() - var/obj/item/organ/brain/B = getorgan(/obj/item/organ/brain) - if(B) - B.brain_death = FALSE - for(var/thing in diseases) - var/datum/disease/D = thing - if(D.severity != DISEASE_SEVERITY_POSITIVE) - D.cure(FALSE) - if(admin_revive) - regenerate_limbs() - regenerate_organs() - handcuffed = initial(handcuffed) - for(var/obj/item/restraints/R in contents) //actually remove cuffs from inventory - qdel(R) - update_handcuffed() - if(reagents) - reagents.addiction_list = list() - cure_all_traumas(TRAUMA_RESILIENCE_MAGIC) - ..() - // heal ears after healing traits, since ears check TRAIT_DEAF trait - // when healing. - restoreEars() - -/mob/living/carbon/can_be_revived() - . = ..() - if(!getorgan(/obj/item/organ/brain) && (!mind || !mind.has_antag_datum(/datum/antagonist/changeling))) - return 0 - -/mob/living/carbon/harvest(mob/living/user) - if(QDELETED(src)) - return - var/organs_amt = 0 - for(var/X in internal_organs) - var/obj/item/organ/O = X - if(prob(50)) - organs_amt++ - O.Remove(src) - O.forceMove(drop_location()) - if(organs_amt) - to_chat(user, "You retrieve some of [src]\'s internal organs!") - -/mob/living/carbon/ExtinguishMob() - for(var/X in get_equipped_items()) - var/obj/item/I = X - I.acid_level = 0 //washes off the acid on our clothes - I.extinguish() //extinguishes our clothes - ..() - -/mob/living/carbon/fakefire(var/fire_icon = "Generic_mob_burning") - var/mutable_appearance/new_fire_overlay = mutable_appearance('icons/mob/OnFire.dmi', fire_icon, -FIRE_LAYER) - new_fire_overlay.appearance_flags = RESET_COLOR - overlays_standing[FIRE_LAYER] = new_fire_overlay - apply_overlay(FIRE_LAYER) - -/mob/living/carbon/fakefireextinguish() - remove_overlay(FIRE_LAYER) - - -/mob/living/carbon/proc/devour_mob(mob/living/carbon/C, devour_time = 130) - C.visible_message("[src] is attempting to devour [C]!", \ - "[src] is attempting to devour you!") - if(!do_mob(src, C, devour_time)) - return - if(pulling && pulling == C && grab_state >= GRAB_AGGRESSIVE && a_intent == INTENT_GRAB) - C.visible_message("[src] devours [C]!", \ - "[src] devours you!") - C.forceMove(src) - stomach_contents.Add(C) - log_combat(src, C, "devoured") - -/mob/living/carbon/proc/create_bodyparts() - var/l_arm_index_next = -1 - var/r_arm_index_next = 0 - for(var/X in bodyparts) - var/obj/item/bodypart/O = new X() - O.owner = src - bodyparts.Remove(X) - bodyparts.Add(O) - if(O.body_part == ARM_LEFT) - l_arm_index_next += 2 - O.held_index = l_arm_index_next //1, 3, 5, 7... - hand_bodyparts += O - else if(O.body_part == ARM_RIGHT) - r_arm_index_next += 2 - O.held_index = r_arm_index_next //2, 4, 6, 8... - hand_bodyparts += O - -/mob/living/carbon/do_after_coefficent() - . = ..() - var/datum/component/mood/mood = src.GetComponent(/datum/component/mood) //Currently, only carbons or higher use mood, move this once that changes. - if(mood) - switch(mood.sanity) //Alters do_after delay based on how sane you are - if(SANITY_INSANE to SANITY_DISTURBED) - . *= 1.25 - if(SANITY_NEUTRAL to SANITY_GREAT) - . *= 0.90 - - -/mob/living/carbon/proc/create_internal_organs() - for(var/X in internal_organs) - var/obj/item/organ/I = X - I.Insert(src) - -/mob/living/carbon/proc/update_disabled_bodyparts() - for(var/B in bodyparts) - var/obj/item/bodypart/BP = B - BP.update_disabled() - -/mob/living/carbon/vv_get_dropdown() - . = ..() - . += "---" - .["Make AI"] = "?_src_=vars;[HrefToken()];makeai=[REF(src)]" - .["Modify bodypart"] = "?_src_=vars;[HrefToken()];editbodypart=[REF(src)]" - .["Modify organs"] = "?_src_=vars;[HrefToken()];editorgans=[REF(src)]" - .["Hallucinate"] = "?_src_=vars;[HrefToken()];hallucinate=[REF(src)]" - .["Give martial arts"] = "?_src_=vars;[HrefToken()];givemartialart=[REF(src)]" - .["Give brain trauma"] = "?_src_=vars;[HrefToken()];givetrauma=[REF(src)]" - .["Cure brain traumas"] = "?_src_=vars;[HrefToken()];curetraumas=[REF(src)]" - -/mob/living/carbon/can_resist() - return bodyparts.len > 2 && ..() - -/mob/living/carbon/proc/hypnosis_vulnerable()//unused atm, but added in case - if(HAS_TRAIT(src, TRAIT_MINDSHIELD)) - return FALSE - if(hallucinating()) - return TRUE - if(IsSleeping()) - return TRUE - if(HAS_TRAIT(src, TRAIT_DUMB)) - return TRUE - var/datum/component/mood/mood = src.GetComponent(/datum/component/mood) - if(mood) - if(mood.sanity < SANITY_UNSTABLE) - return TRUE - -/mob/living/carbon/transfer_ckey(mob/new_mob, send_signal = TRUE) - if(combatmode) - toggle_combat_mode(TRUE, TRUE) - return ..() - -/mob/living/carbon/can_see_reagents() - . = ..() - if(.) //No need to run through all of this if it's already true. - return - if(isclothing(head)) - var/obj/item/clothing/H = head - if(H.clothing_flags & SCAN_REAGENTS) - return TRUE - if(isclothing(wear_mask) && (wear_mask.clothing_flags & SCAN_REAGENTS)) +/mob/living/carbon + blood_volume = BLOOD_VOLUME_NORMAL + +/mob/living/carbon/Initialize() + . = ..() + create_reagents(1000) + update_body_parts() //to update the carbon's new bodyparts appearance + GLOB.carbon_list += src + blood_volume = (BLOOD_VOLUME_NORMAL * blood_ratio) + +/mob/living/carbon/Destroy() + //This must be done first, so the mob ghosts correctly before DNA etc is nulled + . = ..() + + QDEL_LIST(internal_organs) + QDEL_LIST(stomach_contents) + QDEL_LIST(bodyparts) + QDEL_LIST(implants) + remove_from_all_data_huds() + QDEL_NULL(dna) + GLOB.carbon_list -= src + +/mob/living/carbon/initialize_footstep() + AddComponent(/datum/component/footstep, 0.6, 2) + +/mob/living/carbon/relaymove(mob/user, direction) + if(user in src.stomach_contents) + if(prob(40)) + if(prob(25)) + audible_message("You hear something rumbling inside [src]'s stomach...", \ + "You hear something rumbling.", 4,\ + "Something is rumbling inside your stomach!") + var/obj/item/I = user.get_active_held_item() + if(I && I.force) + var/d = rand(round(I.force / 4), I.force) + var/obj/item/bodypart/BP = get_bodypart(BODY_ZONE_CHEST) + if(BP.receive_damage(d, 0)) + update_damage_overlays() + visible_message("[user] attacks [src]'s stomach wall with the [I.name]!", \ + "[user] attacks your stomach wall with the [I.name]!") + playsound(user.loc, 'sound/effects/attackblob.ogg', 50, 1) + + if(prob(src.getBruteLoss() - 50)) + for(var/atom/movable/A in stomach_contents) + A.forceMove(drop_location()) + stomach_contents.Remove(A) + src.gib() + + +/mob/living/carbon/swap_hand(held_index) + if(!held_index) + held_index = (active_hand_index % held_items.len)+1 + + var/obj/item/item_in_hand = src.get_active_held_item() + if(item_in_hand) //this segment checks if the item in your hand is twohanded. + var/obj/item/twohanded/TH = item_in_hand + if(istype(TH)) + if(TH.wielded == 1) + to_chat(usr, "Your other hand is too busy holding [TH]") + return + var/oindex = active_hand_index + active_hand_index = held_index + if(hud_used) + var/obj/screen/inventory/hand/H + H = hud_used.hand_slots["[oindex]"] + if(H) + H.update_icon() + H = hud_used.hand_slots["[held_index]"] + if(H) + H.update_icon() + + +/mob/living/carbon/activate_hand(selhand) //l/r OR 1-held_items.len + if(!selhand) + selhand = (active_hand_index % held_items.len)+1 + + if(istext(selhand)) + selhand = lowertext(selhand) + if(selhand == "right" || selhand == "r") + selhand = 2 + if(selhand == "left" || selhand == "l") + selhand = 1 + + if(selhand != active_hand_index) + swap_hand(selhand) + else + mode() // Activate held item + +/mob/living/carbon/attackby(obj/item/I, mob/user, params) + if(lying && surgeries.len) + if(user != src && (user.a_intent == INTENT_HELP || user.a_intent == INTENT_DISARM)) + for(var/datum/surgery/S in surgeries) + if(S.next_step(user,user.a_intent)) + return 1 + return ..() + +/mob/living/carbon/throw_impact(atom/hit_atom, throwingdatum) + . = ..() + var/hurt = TRUE + if(istype(throwingdatum, /datum/thrownthing)) + var/datum/thrownthing/D = throwingdatum + if(iscyborg(D.thrower)) + var/mob/living/silicon/robot/R = D.thrower + if(!R.emagged) + hurt = FALSE + if(hit_atom.density && isturf(hit_atom)) + if(hurt) + Knockdown(20) + take_bodypart_damage(10) + if(iscarbon(hit_atom) && hit_atom != src) + var/mob/living/carbon/victim = hit_atom + if(victim.movement_type & FLYING) + return + if(hurt) + victim.take_bodypart_damage(10) + take_bodypart_damage(10) + victim.Knockdown(20) + Knockdown(20) + visible_message("[src] crashes into [victim], knocking them both over!",\ + "You violently crash into [victim]!") + playsound(src,'sound/weapons/punch1.ogg',50,1) + + +//Throwing stuff +/mob/living/carbon/proc/toggle_throw_mode() + if(stat) + return + if(in_throw_mode) + throw_mode_off() + else + throw_mode_on() + + +/mob/living/carbon/proc/throw_mode_off() + in_throw_mode = 0 + if(client && hud_used) + hud_used.throw_icon.icon_state = "act_throw_off" + + +/mob/living/carbon/proc/throw_mode_on() + in_throw_mode = 1 + if(client && hud_used) + hud_used.throw_icon.icon_state = "act_throw_on" + +/mob/proc/throw_item(atom/target) + SEND_SIGNAL(src, COMSIG_MOB_THROW, target) + return + +/mob/living/carbon/throw_item(atom/target) + throw_mode_off() + if(!target || !isturf(loc)) + return + if(istype(target, /obj/screen)) + return + + //CIT CHANGES - makes it impossible to throw while in stamina softcrit + if(getStaminaLoss() >= STAMINA_SOFTCRIT) + to_chat(src, "You're too exhausted.") + return + var/random_turn = a_intent == INTENT_HARM + //END OF CIT CHANGES + + var/obj/item/I = src.get_active_held_item() + + var/atom/movable/thrown_thing + var/mob/living/throwable_mob + + if(istype(I, /obj/item/clothing/head/mob_holder)) + var/obj/item/clothing/head/mob_holder/holder = I + if(holder.held_mob) + throwable_mob = holder.held_mob + holder.release() + + if(!I || throwable_mob) + if(!throwable_mob && pulling && isliving(pulling) && grab_state >= GRAB_AGGRESSIVE) + throwable_mob = pulling + + if(throwable_mob && !throwable_mob.buckled) + thrown_thing = throwable_mob + if(pulling) + stop_pulling() + if(HAS_TRAIT(src, TRAIT_PACIFISM)) + to_chat(src, "You gently let go of [throwable_mob].") + return + + adjustStaminaLossBuffered(25)//CIT CHANGE - throwing an entire person shall be very tiring + var/turf/start_T = get_turf(loc) //Get the start and target tile for the descriptors + var/turf/end_T = get_turf(target) + if(start_T && end_T) + log_combat(src, throwable_mob, "thrown", addition="grab from tile in [AREACOORD(start_T)] towards tile at [AREACOORD(end_T)]") + + else if(!CHECK_BITFIELD(I.item_flags, ABSTRACT) && !HAS_TRAIT(I, TRAIT_NODROP)) + thrown_thing = I + dropItemToGround(I) + + if(HAS_TRAIT(src, TRAIT_PACIFISM) && I.throwforce) + to_chat(src, "You set [I] down gently on the ground.") + return + + adjustStaminaLossBuffered(I.getweight()*2)//CIT CHANGE - throwing items shall be more tiring than swinging em. Doubly so. + + if(thrown_thing) + visible_message("[src] has thrown [thrown_thing].") + src.log_message("has thrown [thrown_thing]", LOG_ATTACK) + do_attack_animation(target, no_effect = 1) + playsound(loc, 'sound/weapons/punchmiss.ogg', 50, 1, -1) + newtonian_move(get_dir(target, src)) + thrown_thing.throw_at(target, thrown_thing.throw_range, thrown_thing.throw_speed, src, null, null, null, random_turn) + + + +/mob/living/carbon/restrained(ignore_grab) + . = (handcuffed || (!ignore_grab && pulledby && pulledby.grab_state >= GRAB_AGGRESSIVE)) + +/mob/living/carbon/proc/canBeHandcuffed() + return 0 + + +/mob/living/carbon/show_inv(mob/user) + user.set_machine(src) + var/dat = {" +
+ [name] +
+
Head: [(head && !(head.item_flags & ABSTRACT)) ? head : "Nothing"] +
Mask: [(wear_mask && !(wear_mask.item_flags & ABSTRACT)) ? wear_mask : "Nothing"] +
Neck: [(wear_neck && !(wear_neck.item_flags & ABSTRACT)) ? wear_neck : "Nothing"]"} + + for(var/i in 1 to held_items.len) + var/obj/item/I = get_item_for_held_index(i) + dat += "
[get_held_index_name(i)]:[(I && !(I.item_flags & ABSTRACT)) ? I : "Nothing"]" + + dat += "
Back: [back ? back : "Nothing"]" + + if(istype(wear_mask, /obj/item/clothing/mask) && istype(back, /obj/item/tank)) + dat += "
[internal ? "Disable Internals" : "Set Internals"]" + + if(handcuffed) + dat += "
Handcuffed" + if(legcuffed) + dat += "
Legcuffed" + + dat += {" +
+
Close + "} + user << browse(dat, "window=mob[REF(src)];size=325x500") + onclose(user, "mob[REF(src)]") + +/mob/living/carbon/Topic(href, href_list) + ..() + //strip panel + if(usr.canUseTopic(src, BE_CLOSE, NO_DEXTERY)) + if(href_list["internal"]) + var/slot = text2num(href_list["internal"]) + var/obj/item/ITEM = get_item_by_slot(slot) + if(ITEM && istype(ITEM, /obj/item/tank) && wear_mask && (wear_mask.clothing_flags & ALLOWINTERNALS)) + visible_message("[usr] tries to [internal ? "close" : "open"] the valve on [src]'s [ITEM.name].", \ + "[usr] tries to [internal ? "close" : "open"] the valve on [src]'s [ITEM.name].") + if(do_mob(usr, src, POCKET_STRIP_DELAY)) + if(internal) + internal = null + update_internals_hud_icon(0) + else if(ITEM && istype(ITEM, /obj/item/tank)) + if((wear_mask && (wear_mask.clothing_flags & ALLOWINTERNALS)) || getorganslot(ORGAN_SLOT_BREATHING_TUBE)) + internal = ITEM + update_internals_hud_icon(1) + + visible_message("[usr] [internal ? "opens" : "closes"] the valve on [src]'s [ITEM.name].", \ + "[usr] [internal ? "opens" : "closes"] the valve on [src]'s [ITEM.name].") + + +/mob/living/carbon/fall(forced) + loc.handle_fall(src, forced)//it's loc so it doesn't call the mob's handle_fall which does nothing + +/mob/living/carbon/is_muzzled() + return(istype(src.wear_mask, /obj/item/clothing/mask/muzzle)) + +/mob/living/carbon/hallucinating() + if(hallucination) + return TRUE + else + return FALSE + +/mob/living/carbon/resist_buckle() + if(restrained()) + changeNext_move(CLICK_CD_BREAKOUT) + last_special = world.time + CLICK_CD_BREAKOUT + var/buckle_cd = 600 + if(handcuffed) + var/obj/item/restraints/O = src.get_item_by_slot(SLOT_HANDCUFFED) + buckle_cd = O.breakouttime + visible_message("[src] attempts to unbuckle [p_them()]self!", \ + "You attempt to unbuckle yourself... (This will take around [round(buckle_cd/600,1)] minute\s, and you need to stay still.)") + if(do_after(src, buckle_cd, 0, target = src)) + if(!buckled) + return + buckled.user_unbuckle_mob(src,src) + else + if(src && buckled) + to_chat(src, "You fail to unbuckle yourself!") + else + buckled.user_unbuckle_mob(src,src) + +/mob/living/carbon/resist_fire() + fire_stacks -= 5 + Knockdown(60, TRUE, TRUE) + spin(32,2) + visible_message("[src] rolls on the floor, trying to put [p_them()]self out!", \ + "You stop, drop, and roll!") + sleep(30) + if(fire_stacks <= 0) + visible_message("[src] has successfully extinguished [p_them()]self!", \ + "You extinguish yourself.") + ExtinguishMob() + return + +/mob/living/carbon/resist_restraints() + var/obj/item/I = null + var/type = 0 + if(handcuffed) + I = handcuffed + type = 1 + else if(legcuffed) + I = legcuffed + type = 2 + if(I) + if(type == 1) + changeNext_move(CLICK_CD_BREAKOUT) + last_special = world.time + CLICK_CD_BREAKOUT + if(type == 2) + changeNext_move(CLICK_CD_RANGE) + last_special = world.time + CLICK_CD_RANGE + cuff_resist(I) + + +/mob/living/carbon/proc/cuff_resist(obj/item/I, breakouttime = 600, cuff_break = 0) + if(I.item_flags & BEING_REMOVED) + to_chat(src, "You're already attempting to remove [I]!") + return + I.item_flags |= BEING_REMOVED + breakouttime = I.breakouttime + if(!cuff_break) + visible_message("[src] attempts to remove [I]!") + to_chat(src, "You attempt to remove [I]... (This will take around [DisplayTimeText(breakouttime)] and you need to stand still.)") + if(do_after(src, breakouttime, 0, target = src)) + clear_cuffs(I, cuff_break) + else + to_chat(src, "You fail to remove [I]!") + + else if(cuff_break == FAST_CUFFBREAK) + breakouttime = 50 + visible_message("[src] is trying to break [I]!") + to_chat(src, "You attempt to break [I]... (This will take around 5 seconds and you need to stand still.)") + if(do_after(src, breakouttime, 0, target = src)) + clear_cuffs(I, cuff_break) + else + to_chat(src, "You fail to break [I]!") + + else if(cuff_break == INSTANT_CUFFBREAK) + clear_cuffs(I, cuff_break) + I.item_flags &= ~BEING_REMOVED + +/mob/living/carbon/proc/uncuff() + if (handcuffed) + var/obj/item/W = handcuffed + handcuffed = null + if (buckled && buckled.buckle_requires_restraints) + buckled.unbuckle_mob(src) + update_handcuffed() + if (client) + client.screen -= W + if (W) + W.forceMove(drop_location()) + W.dropped(src) + if (W) + W.layer = initial(W.layer) + W.plane = initial(W.plane) + changeNext_move(0) + if (legcuffed) + var/obj/item/W = legcuffed + legcuffed = null + update_inv_legcuffed() + if (client) + client.screen -= W + if (W) + W.forceMove(drop_location()) + W.dropped(src) + if (W) + W.layer = initial(W.layer) + W.plane = initial(W.plane) + changeNext_move(0) + +/mob/living/carbon/proc/clear_cuffs(obj/item/I, cuff_break) + if(!I.loc || buckled) + return + visible_message("[src] manages to [cuff_break ? "break" : "remove"] [I]!") + to_chat(src, "You successfully [cuff_break ? "break" : "remove"] [I].") + + if(cuff_break) + . = !((I == handcuffed) || (I == legcuffed)) + qdel(I) + return + + else + if(I == handcuffed) + handcuffed.forceMove(drop_location()) + handcuffed.dropped(src) + handcuffed = null + if(buckled && buckled.buckle_requires_restraints) + buckled.unbuckle_mob(src) + update_handcuffed() + return + if(I == legcuffed) + legcuffed.forceMove(drop_location()) + legcuffed.dropped() + legcuffed = null + update_inv_legcuffed() + return + else + dropItemToGround(I) + return + return TRUE + +/mob/living/carbon/get_standard_pixel_y_offset(lying = 0) + if(lying) + return -6 + else + return initial(pixel_y) + +/mob/living/carbon/proc/accident(obj/item/I) + if(!I || (I.item_flags & ABSTRACT) || HAS_TRAIT(I, TRAIT_NODROP)) + return + + //dropItemToGround(I) CIT CHANGE - makes it so the item doesn't drop if the modifier rolls above 100 + + var/modifier = 0 + + if(HAS_TRAIT(src, TRAIT_CLUMSY)) + modifier -= 40 //Clumsy people are more likely to hit themselves -Honk! + + //CIT CHANGES START HERE + else if(combatmode) + modifier += 50 + + if(modifier < 100) + dropItemToGround(I) + //END OF CIT CHANGES + + switch(rand(1,100)+modifier) //91-100=Nothing special happens + if(-INFINITY to 0) //attack yourself + I.attack(src,src) + if(1 to 30) //throw it at yourself + I.throw_impact(src) + if(31 to 60) //Throw object in facing direction + var/turf/target = get_turf(loc) + var/range = rand(2,I.throw_range) + for(var/i = 1; i < range; i++) + var/turf/new_turf = get_step(target, dir) + target = new_turf + if(new_turf.density) + break + I.throw_at(target,I.throw_range,I.throw_speed,src) + if(61 to 90) //throw it down to the floor + var/turf/target = get_turf(loc) + I.throw_at(target,I.throw_range,I.throw_speed,src) + +/mob/living/carbon/Stat() + ..() + if(statpanel("Status")) + var/obj/item/organ/alien/plasmavessel/vessel = getorgan(/obj/item/organ/alien/plasmavessel) + if(vessel) + stat(null, "Plasma Stored: [vessel.storedPlasma]/[vessel.max_plasma]") + if(locate(/obj/item/assembly/health) in src) + stat(null, "Health: [health]") + + add_abilities_to_panel() + +/mob/living/carbon/attack_ui(slot) + if(!has_hand_for_held_index(active_hand_index)) + return 0 + return ..() + +/mob/living/carbon/proc/vomit(lost_nutrition = 10, blood = FALSE, stun = TRUE, distance = 1, message = TRUE, toxic = FALSE) + if(HAS_TRAIT(src, TRAIT_NOHUNGER)) + return 1 + + if(nutrition < 100 && !blood) + if(message) + visible_message("[src] dry heaves!", \ + "You try to throw up, but there's nothing in your stomach!") + if(stun) + Knockdown(200) + return 1 + + if(is_mouth_covered()) //make this add a blood/vomit overlay later it'll be hilarious + if(message) + visible_message("[src] throws up all over [p_them()]self!", \ + "You throw up all over yourself!") + SEND_SIGNAL(src, COMSIG_ADD_MOOD_EVENT, "vomit", /datum/mood_event/vomitself) + distance = 0 + else + if(message) + visible_message("[src] throws up!", "You throw up!") + if(!isflyperson(src)) + SEND_SIGNAL(src, COMSIG_ADD_MOOD_EVENT, "vomit", /datum/mood_event/vomit) + if(stun) + Stun(80) + + playsound(get_turf(src), 'sound/effects/splat.ogg', 50, 1) + var/turf/T = get_turf(src) + if(!blood) + nutrition -= lost_nutrition + adjustToxLoss(-3) + for(var/i=0 to distance) + if(blood) + if(T) + add_splatter_floor(T) + if(stun) + adjustBruteLoss(3) + else if(src.reagents.has_reagent(/datum/reagent/consumable/ethanol/blazaam)) + if(T) + T.add_vomit_floor(src, VOMIT_PURPLE) + else + if(T) + T.add_vomit_floor(src, VOMIT_TOXIC)//toxic barf looks different + T = get_step(T, dir) + if (is_blocked_turf(T)) + break + return 1 + +/mob/living/carbon/proc/spew_organ(power = 5, amt = 1) + for(var/i in 1 to amt) + if(!internal_organs.len) + break //Guess we're out of organs! + var/obj/item/organ/guts = pick(internal_organs) + var/turf/T = get_turf(src) + guts.Remove(src) + guts.forceMove(T) + var/atom/throw_target = get_edge_target_turf(guts, dir) + guts.throw_at(throw_target, power, 4, src) + + +/mob/living/carbon/fully_replace_character_name(oldname,newname) + ..() + if(dna) + dna.real_name = real_name + +//Updates the mob's health from bodyparts and mob damage variables +/mob/living/carbon/updatehealth() + if(status_flags & GODMODE) + return + var/total_burn = 0 + var/total_brute = 0 + var/total_stamina = 0 + for(var/X in bodyparts) //hardcoded to streamline things a bit + var/obj/item/bodypart/BP = X + total_brute += (BP.brute_dam * BP.body_damage_coeff) + total_burn += (BP.burn_dam * BP.body_damage_coeff) + total_stamina += (BP.stamina_dam * BP.stam_damage_coeff) + health = round(maxHealth - getOxyLoss() - getToxLoss() - getCloneLoss() - total_burn - total_brute, DAMAGE_PRECISION) + staminaloss = round(total_stamina, DAMAGE_PRECISION) + update_stat() + if(((maxHealth - total_burn) < HEALTH_THRESHOLD_DEAD) && stat == DEAD ) + become_husk("burn") + med_hud_set_health() + if(stat == SOFT_CRIT) + add_movespeed_modifier(MOVESPEED_ID_CARBON_SOFTCRIT, TRUE, multiplicative_slowdown = SOFTCRIT_ADD_SLOWDOWN) + else + remove_movespeed_modifier(MOVESPEED_ID_CARBON_SOFTCRIT, TRUE) + +/mob/living/carbon/update_stamina() + var/stam = getStaminaLoss() + if(stam > DAMAGE_PRECISION) + var/total_health = (health - stam) + if(total_health <= crit_threshold && !stat) + if(!IsKnockdown()) + to_chat(src, "You're too exhausted to keep going...") + Knockdown(100) + update_health_hud() + +/mob/living/carbon/update_sight() + if(!client) + return + if(stat == DEAD) + sight = (SEE_TURFS|SEE_MOBS|SEE_OBJS) + see_in_dark = 8 + see_invisible = SEE_INVISIBLE_OBSERVER + return + + sight = initial(sight) + lighting_alpha = initial(lighting_alpha) + var/obj/item/organ/eyes/E = getorganslot(ORGAN_SLOT_EYES) + if(!E) + update_tint() + else + see_invisible = E.see_invisible + see_in_dark = E.see_in_dark + sight |= E.sight_flags + if(!isnull(E.lighting_alpha)) + lighting_alpha = E.lighting_alpha + if(HAS_TRAIT(src, TRAIT_NIGHT_VISION)) + lighting_alpha = min(LIGHTING_PLANE_ALPHA_NV_TRAIT, lighting_alpha) + see_in_dark = max(NIGHT_VISION_DARKSIGHT_RANGE, see_in_dark) + + if(client.eye && client.eye != src) + var/atom/A = client.eye + if(A.update_remote_sight(src)) //returns 1 if we override all other sight updates. + return + + if(glasses) + var/obj/item/clothing/glasses/G = glasses + sight |= G.vision_flags + see_in_dark = max(G.darkness_view, see_in_dark) + if(G.invis_override) + see_invisible = G.invis_override + else + see_invisible = min(G.invis_view, see_invisible) + if(!isnull(G.lighting_alpha)) + lighting_alpha = min(lighting_alpha, G.lighting_alpha) + if(dna) + for(var/X in dna.mutations) + var/datum/mutation/M = X + if(M.name == XRAY) + sight |= (SEE_TURFS|SEE_MOBS|SEE_OBJS) + see_in_dark = max(see_in_dark, 8) + + if(see_override) + see_invisible = see_override + . = ..() + + +//to recalculate and update the mob's total tint from tinted equipment it's wearing. +/mob/living/carbon/proc/update_tint() + if(!GLOB.tinted_weldhelh) + return + tinttotal = get_total_tint() + if(tinttotal >= TINT_BLIND) + become_blind(EYES_COVERED) + else if(tinttotal >= TINT_DARKENED) + cure_blind(EYES_COVERED) + overlay_fullscreen("tint", /obj/screen/fullscreen/impaired, 2) + else + cure_blind(EYES_COVERED) + clear_fullscreen("tint", 0) + +/mob/living/carbon/proc/get_total_tint() + . = 0 + if(istype(head, /obj/item/clothing/head)) + var/obj/item/clothing/head/HT = head + . += HT.tint + if(wear_mask) + . += wear_mask.tint + + var/obj/item/organ/eyes/E = getorganslot(ORGAN_SLOT_EYES) + if(E) + . += E.tint + + else + . += INFINITY + +/mob/living/carbon/get_permeability_protection(list/target_zones = list(HANDS,CHEST,GROIN,LEGS,FEET,ARMS,HEAD)) + var/list/tally = list() + for(var/obj/item/I in get_equipped_items()) + for(var/zone in target_zones) + if(I.body_parts_covered & zone) + tally["[zone]"] = max(1 - I.permeability_coefficient, target_zones["[zone]"]) + var/protection = 0 + for(var/key in tally) + protection += tally[key] + protection *= INVERSE(target_zones.len) + return protection + +//this handles hud updates +/mob/living/carbon/update_damage_hud() + + if(!client) + return + + if(health <= crit_threshold) + var/severity = 0 + switch(health) + if(-20 to -10) + severity = 1 + if(-30 to -20) + severity = 2 + if(-40 to -30) + severity = 3 + if(-50 to -40) + severity = 4 + if(-50 to -40) + severity = 5 + if(-60 to -50) + severity = 6 + if(-70 to -60) + severity = 7 + if(-90 to -70) + severity = 8 + if(-95 to -90) + severity = 9 + if(-INFINITY to -95) + severity = 10 + if(!InFullCritical()) + var/visionseverity = 4 + switch(health) + if(-8 to -4) + visionseverity = 5 + if(-12 to -8) + visionseverity = 6 + if(-16 to -12) + visionseverity = 7 + if(-20 to -16) + visionseverity = 8 + if(-24 to -20) + visionseverity = 9 + if(-INFINITY to -24) + visionseverity = 10 + overlay_fullscreen("critvision", /obj/screen/fullscreen/crit/vision, visionseverity) + else + clear_fullscreen("critvision") + overlay_fullscreen("crit", /obj/screen/fullscreen/crit, severity) + else + clear_fullscreen("crit") + clear_fullscreen("critvision") + + //Oxygen damage overlay + var/windedup = getOxyLoss() + getStaminaLoss() * 0.2 + if(windedup) + var/severity = 0 + switch(windedup) + if(10 to 20) + severity = 1 + if(20 to 25) + severity = 2 + if(25 to 30) + severity = 3 + if(30 to 35) + severity = 4 + if(35 to 40) + severity = 5 + if(40 to 45) + severity = 6 + if(45 to INFINITY) + severity = 7 + overlay_fullscreen("oxy", /obj/screen/fullscreen/oxy, severity) + else + clear_fullscreen("oxy") + + //Fire and Brute damage overlay (BSSR) + var/hurtdamage = getBruteLoss() + getFireLoss() + damageoverlaytemp + if(hurtdamage) + var/severity = 0 + switch(hurtdamage) + if(5 to 15) + severity = 1 + if(15 to 30) + severity = 2 + if(30 to 45) + severity = 3 + if(45 to 70) + severity = 4 + if(70 to 85) + severity = 5 + if(85 to INFINITY) + severity = 6 + overlay_fullscreen("brute", /obj/screen/fullscreen/brute, severity) + else + clear_fullscreen("brute") + +/mob/living/carbon/update_health_hud(shown_health_amount) + if(!client || !hud_used) + return + if(hud_used.healths) + if(stat != DEAD) + . = 1 + if(!shown_health_amount) + shown_health_amount = health + if(shown_health_amount >= maxHealth) + hud_used.healths.icon_state = "health0" + else if(shown_health_amount > maxHealth*0.8) + hud_used.healths.icon_state = "health1" + else if(shown_health_amount > maxHealth*0.6) + hud_used.healths.icon_state = "health2" + else if(shown_health_amount > maxHealth*0.4) + hud_used.healths.icon_state = "health3" + else if(shown_health_amount > maxHealth*0.2) + hud_used.healths.icon_state = "health4" + else if(shown_health_amount > 0) + hud_used.healths.icon_state = "health5" + else + hud_used.healths.icon_state = "health6" + else + hud_used.healths.icon_state = "health7" + +/mob/living/carbon/proc/update_internals_hud_icon(internal_state = 0) + if(hud_used && hud_used.internals) + hud_used.internals.icon_state = "internal[internal_state]" + +/mob/living/carbon/update_stat() + if(status_flags & GODMODE) + return + if(stat != DEAD) + if(health <= HEALTH_THRESHOLD_DEAD && !HAS_TRAIT(src, TRAIT_NODEATH)) + death() + return + if(IsUnconscious() || IsSleeping() || getOxyLoss() > 50 || (HAS_TRAIT(src, TRAIT_DEATHCOMA)) || (health <= HEALTH_THRESHOLD_FULLCRIT && !HAS_TRAIT(src, TRAIT_NOHARDCRIT))) + stat = UNCONSCIOUS + blind_eyes(1) + if(combatmode) + toggle_combat_mode(TRUE, TRUE) + else + if(health <= crit_threshold && !HAS_TRAIT(src, TRAIT_NOSOFTCRIT)) + stat = SOFT_CRIT + if(combatmode) + toggle_combat_mode(TRUE, TRUE) + else + stat = CONSCIOUS + adjust_blindness(-1) + update_canmove() + update_damage_hud() + update_health_hud() + med_hud_set_status() + +//called when we get cuffed/uncuffed +/mob/living/carbon/proc/update_handcuffed() + if(handcuffed) + drop_all_held_items() + stop_pulling() + throw_alert("handcuffed", /obj/screen/alert/restrained/handcuffed, new_master = src.handcuffed) + if(handcuffed.demoralize_criminals) + SEND_SIGNAL(src, COMSIG_ADD_MOOD_EVENT, "handcuffed", /datum/mood_event/handcuffed) + else + clear_alert("handcuffed") + SEND_SIGNAL(src, COMSIG_CLEAR_MOOD_EVENT, "handcuffed") + update_action_buttons_icon() //some of our action buttons might be unusable when we're handcuffed. + update_inv_handcuffed() + update_hud_handcuffed() + +/mob/living/carbon/fully_heal(admin_revive = FALSE) + if(reagents) + reagents.clear_reagents() + var/obj/item/organ/brain/B = getorgan(/obj/item/organ/brain) + if(B) + B.brain_death = FALSE + for(var/thing in diseases) + var/datum/disease/D = thing + if(D.severity != DISEASE_SEVERITY_POSITIVE) + D.cure(FALSE) + if(admin_revive) + regenerate_limbs() + regenerate_organs() + handcuffed = initial(handcuffed) + for(var/obj/item/restraints/R in contents) //actually remove cuffs from inventory + qdel(R) + update_handcuffed() + if(reagents) + reagents.addiction_list = list() + cure_all_traumas(TRAUMA_RESILIENCE_MAGIC) + ..() + // heal ears after healing traits, since ears check TRAIT_DEAF trait + // when healing. + restoreEars() + +/mob/living/carbon/can_be_revived() + . = ..() + if(!getorgan(/obj/item/organ/brain) && (!mind || !mind.has_antag_datum(/datum/antagonist/changeling))) + return 0 + +/mob/living/carbon/harvest(mob/living/user) + if(QDELETED(src)) + return + var/organs_amt = 0 + for(var/X in internal_organs) + var/obj/item/organ/O = X + if(prob(50)) + organs_amt++ + O.Remove(src) + O.forceMove(drop_location()) + if(organs_amt) + to_chat(user, "You retrieve some of [src]\'s internal organs!") + +/mob/living/carbon/ExtinguishMob() + for(var/X in get_equipped_items()) + var/obj/item/I = X + I.acid_level = 0 //washes off the acid on our clothes + I.extinguish() //extinguishes our clothes + ..() + +/mob/living/carbon/fakefire(var/fire_icon = "Generic_mob_burning") + var/mutable_appearance/new_fire_overlay = mutable_appearance('icons/mob/OnFire.dmi', fire_icon, -FIRE_LAYER) + new_fire_overlay.appearance_flags = RESET_COLOR + overlays_standing[FIRE_LAYER] = new_fire_overlay + apply_overlay(FIRE_LAYER) + +/mob/living/carbon/fakefireextinguish() + remove_overlay(FIRE_LAYER) + + +/mob/living/carbon/proc/devour_mob(mob/living/carbon/C, devour_time = 130) + C.visible_message("[src] is attempting to devour [C]!", \ + "[src] is attempting to devour you!") + if(!do_mob(src, C, devour_time)) + return + if(pulling && pulling == C && grab_state >= GRAB_AGGRESSIVE && a_intent == INTENT_GRAB) + C.visible_message("[src] devours [C]!", \ + "[src] devours you!") + C.forceMove(src) + stomach_contents.Add(C) + log_combat(src, C, "devoured") + +/mob/living/carbon/proc/create_bodyparts() + var/l_arm_index_next = -1 + var/r_arm_index_next = 0 + for(var/X in bodyparts) + var/obj/item/bodypart/O = new X() + O.owner = src + bodyparts.Remove(X) + bodyparts.Add(O) + if(O.body_part == ARM_LEFT) + l_arm_index_next += 2 + O.held_index = l_arm_index_next //1, 3, 5, 7... + hand_bodyparts += O + else if(O.body_part == ARM_RIGHT) + r_arm_index_next += 2 + O.held_index = r_arm_index_next //2, 4, 6, 8... + hand_bodyparts += O + +/mob/living/carbon/do_after_coefficent() + . = ..() + var/datum/component/mood/mood = src.GetComponent(/datum/component/mood) //Currently, only carbons or higher use mood, move this once that changes. + if(mood) + switch(mood.sanity) //Alters do_after delay based on how sane you are + if(SANITY_INSANE to SANITY_DISTURBED) + . *= 1.25 + if(SANITY_NEUTRAL to SANITY_GREAT) + . *= 0.90 + + +/mob/living/carbon/proc/create_internal_organs() + for(var/X in internal_organs) + var/obj/item/organ/I = X + I.Insert(src) + +/mob/living/carbon/proc/update_disabled_bodyparts() + for(var/B in bodyparts) + var/obj/item/bodypart/BP = B + BP.update_disabled() + +/mob/living/carbon/vv_get_dropdown() + . = ..() + . += "---" + .["Make AI"] = "?_src_=vars;[HrefToken()];makeai=[REF(src)]" + .["Modify bodypart"] = "?_src_=vars;[HrefToken()];editbodypart=[REF(src)]" + .["Modify organs"] = "?_src_=vars;[HrefToken()];editorgans=[REF(src)]" + .["Hallucinate"] = "?_src_=vars;[HrefToken()];hallucinate=[REF(src)]" + .["Give martial arts"] = "?_src_=vars;[HrefToken()];givemartialart=[REF(src)]" + .["Give brain trauma"] = "?_src_=vars;[HrefToken()];givetrauma=[REF(src)]" + .["Cure brain traumas"] = "?_src_=vars;[HrefToken()];curetraumas=[REF(src)]" + +/mob/living/carbon/can_resist() + return bodyparts.len > 2 && ..() + +/mob/living/carbon/proc/hypnosis_vulnerable()//unused atm, but added in case + if(HAS_TRAIT(src, TRAIT_MINDSHIELD)) + return FALSE + if(hallucinating()) + return TRUE + if(IsSleeping()) + return TRUE + if(HAS_TRAIT(src, TRAIT_DUMB)) + return TRUE + var/datum/component/mood/mood = src.GetComponent(/datum/component/mood) + if(mood) + if(mood.sanity < SANITY_UNSTABLE) + return TRUE + +/mob/living/carbon/transfer_ckey(mob/new_mob, send_signal = TRUE) + if(combatmode) + toggle_combat_mode(TRUE, TRUE) + return ..() + +/mob/living/carbon/can_see_reagents() + . = ..() + if(.) //No need to run through all of this if it's already true. + return + if(isclothing(head)) + var/obj/item/clothing/H = head + if(H.clothing_flags & SCAN_REAGENTS) + return TRUE + if(isclothing(wear_mask) && (wear_mask.clothing_flags & SCAN_REAGENTS)) return TRUE \ No newline at end of file diff --git a/code/modules/mob/living/carbon/carbon_defense.dm b/code/modules/mob/living/carbon/carbon_defense.dm index ba40ae8e5f..161b5875b1 100644 --- a/code/modules/mob/living/carbon/carbon_defense.dm +++ b/code/modules/mob/living/carbon/carbon_defense.dm @@ -243,7 +243,7 @@ shock_damage *= dna.species.siemens_coeff if(shock_damage<1 && !override) return 0 - if(reagents.has_reagent("teslium")) + if(reagents.has_reagent(/datum/reagent/teslium)) shock_damage *= 1.5 //If the mob has teslium in their body, shocks are 50% more damaging! if(illusion) adjustStaminaLoss(shock_damage) diff --git a/code/modules/mob/living/carbon/human/examine.dm b/code/modules/mob/living/carbon/human/examine.dm index 3a6f0e6724..ff356d7001 100644 --- a/code/modules/mob/living/carbon/human/examine.dm +++ b/code/modules/mob/living/carbon/human/examine.dm @@ -255,7 +255,7 @@ else msg += "[t_He] [t_is] bleeding!\n" - if(reagents.has_reagent("teslium")) + if(reagents.has_reagent(/datum/reagent/teslium)) msg += "[t_He] [t_is] emitting a gentle blue glow!\n" if(islist(stun_absorption)) @@ -278,7 +278,7 @@ if(91.01 to INFINITY) msg += "[t_He] [t_is] a shitfaced, slobbering wreck.\n" - if(reagents.has_reagent("astral")) + if(reagents.has_reagent(/datum/reagent/fermi/astral)) if(mind) msg += "[t_He] has wild, spacey eyes and they have a strange, abnormal look to them.\n" else @@ -392,6 +392,13 @@ . += "...?" else . += "[print_flavor_text()]" + if(print_flavor_text_2()) + if(get_visible_name() == "Unknown") //Are we sure we know who this is? Don't show flavor text unless we can recognize them. Prevents certain metagaming with impersonation. + . += "...?" + else if(skipface) //Sometimes we're not unknown, but impersonating someone in a hardsuit, let's not reveal our flavor text then either. + . += "...?" + else + . += "[print_flavor_text_2()]" . += "*---------*
" /mob/living/proc/status_effect_examines(pronoun_replacement) //You can include this in any mob's examine() to show the examine texts of status effects! diff --git a/code/modules/mob/living/carbon/human/human_defense.dm b/code/modules/mob/living/carbon/human/human_defense.dm index 9cbb5b1a0a..94bc2ea2e3 100644 --- a/code/modules/mob/living/carbon/human/human_defense.dm +++ b/code/modules/mob/living/carbon/human/human_defense.dm @@ -326,38 +326,49 @@ ..() if (!severity) return - var/b_loss = 0 - var/f_loss = 0 - var/bomb_armor = max(0,(100-getarmor(null, "bomb"))/100) + var/brute_loss = 0 + var/burn_loss = 0 + var/bomb_armor = getarmor(null, "bomb") + + //200 max knockdown for EXPLODE_HEAVY + //160 max knockdown for EXPLODE_LIGHT switch (severity) - if (1) - if(bomb_armor) - b_loss = (350*bomb_armor)+150 - var/atom/throw_target = get_edge_target_turf(src, get_dir(src, get_step_away(src, src))) - throw_at(throw_target, 200, 4) - damage_clothes(400*bomb_armor, BRUTE, "bomb") - else - damage_clothes(400,BRUTE,"bomb") + if (EXPLODE_DEVASTATE) + if(bomb_armor < EXPLODE_GIB_THRESHOLD) //gibs the mob if their bomb armor is lower than EXPLODE_GIB_THRESHOLD + for(var/I in contents) + var/atom/A = I + A.ex_act(severity) gib() return + else + brute_loss = 500 + var/atom/throw_target = get_edge_target_turf(src, get_dir(src, get_step_away(src, src))) + throw_at(throw_target, 200, 4) + damage_clothes(400 - bomb_armor, BRUTE, "bomb") - if (2) - b_loss = 60*bomb_armor - f_loss = 60*bomb_armor - damage_clothes(200*bomb_armor, BRUTE, "bomb") + if (EXPLODE_HEAVY) + brute_loss = 60 + burn_loss = 60 + if(bomb_armor) + brute_loss = 30*(2 - round(bomb_armor*0.01, 0.05)) + burn_loss = brute_loss //damage gets reduced from 120 to up to 60 combined brute+burn + damage_clothes(200 - bomb_armor, BRUTE, "bomb") if (!istype(ears, /obj/item/clothing/ears/earmuffs)) adjustEarDamage(30, 120) - Unconscious(200*bomb_armor) + Unconscious(20) //short amount of time for follow up attacks against elusive enemies like wizards + Knockdown(200 - (bomb_armor * 1.6)) //between ~4 and ~20 seconds of knockdown depending on bomb armor - if(3) - b_loss = 30*bomb_armor + if(EXPLODE_LIGHT) + brute_loss = 30 + if(bomb_armor) + brute_loss = 15*(2 - round(bomb_armor*0.01, 0.05)) damage_clothes(max(50 - bomb_armor, 0), BRUTE, "bomb") if (!istype(ears, /obj/item/clothing/ears/earmuffs)) adjustEarDamage(15,60) - Unconscious(100*bomb_armor) + Knockdown(160 - (bomb_armor * 1.6)) //100 bomb armor will prevent knockdown altogether - take_overall_damage(b_loss,f_loss) + take_overall_damage(brute_loss,burn_loss) //attempt to dismember bodyparts if(severity <= 2 || !bomb_armor) diff --git a/code/modules/mob/living/carbon/human/species.dm b/code/modules/mob/living/carbon/human/species.dm index 2e069297b3..5b8173b6ba 100644 --- a/code/modules/mob/living/carbon/human/species.dm +++ b/code/modules/mob/living/carbon/human/species.dm @@ -290,7 +290,7 @@ GLOBAL_LIST_EMPTY(roundstart_race_names) // this needs to be FIRST because qdel calls update_body which checks if we have DIGITIGRADE legs or not and if not then removes DIGITIGRADE from species_traits if(("legs" in C.dna.species.mutant_bodyparts) && (C.dna.features["legs"] == "Digitigrade" || C.dna.features["legs"] == "Avian")) - species_traits += DIGITIGRADE + species_traits |= DIGITIGRADE if(DIGITIGRADE in species_traits) C.Digitigrade_Leg_Swap(FALSE) @@ -611,34 +611,34 @@ GLOBAL_LIST_EMPTY(roundstart_race_names) return var/obj/item/bodypart/head/HD = H.get_bodypart(BODY_ZONE_HEAD) + var/tauric = H.dna.features["taur"] && H.dna.features["taur"] != "None" if("tail_lizard" in mutant_bodyparts) - if(H.wear_suit && (H.wear_suit.flags_inv & HIDETAUR) || (!H.dna.features["taur"] == "None")) + if((H.wear_suit && (H.wear_suit.flags_inv & HIDETAUR)) || tauric) bodyparts_to_add -= "tail_lizard" if("waggingtail_lizard" in mutant_bodyparts) - if(H.wear_suit && (H.wear_suit.flags_inv & HIDETAUR) || (!H.dna.features["taur"] == "None")) + if((H.wear_suit && (H.wear_suit.flags_inv & HIDETAUR)) || tauric) bodyparts_to_add -= "waggingtail_lizard" else if ("tail_lizard" in mutant_bodyparts) bodyparts_to_add -= "waggingtail_lizard" if("tail_human" in mutant_bodyparts) - if(H.wear_suit && (H.wear_suit.flags_inv & HIDETAUR) || (!H.dna.features["taur"] == "None")) + if((H.wear_suit && (H.wear_suit.flags_inv & HIDETAUR)) || tauric) bodyparts_to_add -= "tail_human" - if("waggingtail_human" in mutant_bodyparts) - if(H.wear_suit && (H.wear_suit.flags_inv & HIDETAUR) || (!H.dna.features["taur"] == "None")) + if((H.wear_suit && (H.wear_suit.flags_inv & HIDETAUR)) || tauric) bodyparts_to_add -= "waggingtail_human" else if ("tail_human" in mutant_bodyparts) bodyparts_to_add -= "waggingtail_human" if("spines" in mutant_bodyparts) - if(!H.dna.features["spines"] || H.dna.features["spines"] == "None" || H.wear_suit && (H.wear_suit.flags_inv & HIDEJUMPSUIT)) + if(!H.dna.features["spines"] || H.dna.features["spines"] == "None" || H.wear_suit && (H.wear_suit.flags_inv & HIDETAUR)) bodyparts_to_add -= "spines" if("waggingspines" in mutant_bodyparts) - if(!H.dna.features["spines"] || H.dna.features["spines"] == "None" || H.wear_suit && (H.wear_suit.flags_inv & HIDEJUMPSUIT)) + if(!H.dna.features["spines"] || H.dna.features["spines"] == "None" || H.wear_suit && (H.wear_suit.flags_inv & HIDETAUR)) bodyparts_to_add -= "waggingspines" else if ("tail" in mutant_bodyparts) bodyparts_to_add -= "waggingspines" @@ -688,11 +688,11 @@ GLOBAL_LIST_EMPTY(roundstart_race_names) //Other Races if("mam_tail" in mutant_bodyparts) - if(H.wear_suit && (H.wear_suit.flags_inv & HIDETAUR) || (!H.dna.features["taur"] == "None")) + if((H.wear_suit && (H.wear_suit.flags_inv & HIDETAUR)) || tauric) bodyparts_to_add -= "mam_tail" if("mam_waggingtail" in mutant_bodyparts) - if(H.wear_suit && (H.wear_suit.flags_inv & HIDETAUR) || (!H.dna.features["taur"] == "None")) + if((H.wear_suit && (H.wear_suit.flags_inv & HIDETAUR)) || tauric) bodyparts_to_add -= "mam_waggingtail" else if ("mam_tail" in mutant_bodyparts) bodyparts_to_add -= "mam_waggingtail" @@ -706,7 +706,7 @@ GLOBAL_LIST_EMPTY(roundstart_race_names) bodyparts_to_add -= "mam_snouts" if("taur" in mutant_bodyparts) - if(!H.dna.features["taur"] || H.dna.features["taur"] == "None" || (H.wear_suit && (H.wear_suit.flags_inv & HIDETAUR))) + if(!tauric || (H.wear_suit && (H.wear_suit.flags_inv & HIDETAUR))) bodyparts_to_add -= "taur" //END EDIT @@ -723,10 +723,10 @@ GLOBAL_LIST_EMPTY(roundstart_race_names) species_traits += DIGITIGRADE var/should_be_squished = FALSE if(H.wear_suit) - if(H.wear_suit.mutantrace_variation == NO_MUTANTRACE_VARIATION) //we got digitigrade suits now fam + if(!(H.wear_suit.mutantrace_variation & STYLE_DIGITIGRADE) || (tauric && (H.wear_suit.mutantrace_variation & STYLE_ALL_TAURIC))) //digitigrade/taur suits should_be_squished = TRUE if(H.w_uniform && !H.wear_suit) - if(H.w_uniform.mutantrace_variation == NO_MUTANTRACE_VARIATION) + if(!(H.w_uniform.mutantrace_variation & STYLE_DIGITIGRADE)) should_be_squished = TRUE if(O.use_digitigrade == FULL_DIGITIGRADE && should_be_squished) O.use_digitigrade = SQUISHED_DIGITIGRADE @@ -1270,9 +1270,9 @@ GLOBAL_LIST_EMPTY(roundstart_race_names) H.update_mutant_bodyparts() /datum/species/proc/handle_chemicals(datum/reagent/chem, mob/living/carbon/human/H) - if(chem.id == exotic_blood) + if(chem.type == exotic_blood) H.blood_volume = min(H.blood_volume + round(chem.volume, 0.1), BLOOD_VOLUME_MAXIMUM) - H.reagents.del_reagent(chem.id) + H.reagents.del_reagent(chem.type) return 1 return FALSE diff --git a/code/modules/mob/living/carbon/human/species_types/dwarves.dm b/code/modules/mob/living/carbon/human/species_types/dwarves.dm index 946bffbdbc..9c28b8a0b7 100644 --- a/code/modules/mob/living/carbon/human/species_types/dwarves.dm +++ b/code/modules/mob/living/carbon/human/species_types/dwarves.dm @@ -7,18 +7,18 @@ GLOBAL_LIST_INIT(dwarf_last, world.file2list("strings/names/dwarf_last.txt")) // id = "dwarf" //Also called Homo sapiens pumilionis default_color = "FFFFFF" species_traits = list(EYECOLOR,HAIR,FACEHAIR,LIPS,NO_UNDERWEAR) - inherent_traits = list() + inherent_traits = list() default_features = list("mcolor" = "FFF", "wings" = "None") limbs_id = "human" use_skintones = 1 say_mod = "bellows" //high energy, EXTRA BIOLOGICAL FUEL - damage_overlay_type = "human" + damage_overlay_type = "human" skinned_type = /obj/item/stack/sheet/animalhide/human liked_food = ALCOHOL | MEAT | DAIRY //Dwarves like alcohol, meat, and dairy products. disliked_food = JUNKFOOD | FRIED //Dwarves hate foods that have no nutrition other than alcohol. mutant_organs = list(/obj/item/organ/dwarfgland) //Dwarven alcohol gland, literal gland warrior mutantliver = /obj/item/organ/liver/dwarf //Dwarven super liver (Otherwise they r doomed) - + /mob/living/carbon/human/species/dwarf //species admin spawn path race = /datum/species/dwarf //and the race the path is set to. @@ -30,7 +30,7 @@ GLOBAL_LIST_INIT(dwarf_last, world.file2list("strings/names/dwarf_last.txt")) // /datum/species/dwarf/on_species_gain(mob/living/carbon/C, datum/species/old_species) . = ..() var/dwarf_hair = pick("Beard (Dwarf)", "Beard (Very Long)", "Beard (Long)") //beard roullette - var/mob/living/carbon/human/H = C + var/mob/living/carbon/human/H = C H.facial_hair_style = dwarf_hair H.update_hair() H.transform = H.transform.Scale(1, 0.8) //We use scale, and yeah. Dwarves can become gnomes with DWARFISM. @@ -95,7 +95,7 @@ GLOBAL_LIST_INIT(dwarf_last, world.file2list("strings/names/dwarf_last.txt")) // /obj/item/organ/dwarfgland/prepare_eat() var/obj/S = ..() - S.reagents.add_reagent("ethanol", stored_alcohol/10) + S.reagents.add_reagent(/datum/reagent/consumable/ethanol, stored_alcohol/10) return S /obj/item/organ/dwarfgland/on_life() //Primary loop to hook into to start delayed loops for other loops.. @@ -108,8 +108,8 @@ GLOBAL_LIST_INIT(dwarf_last, world.file2list("strings/names/dwarf_last.txt")) // return //We make sure they are not dead, so they don't increment any tickers. dwarf_eth_ticker++ dwarf_filth_ticker++ - - if(dwarf_filth_ticker >= 4) //Should be around 4-8 seconds since a tick is around 2 seconds. + + if(dwarf_filth_ticker >= 4) //Should be around 4-8 seconds since a tick is around 2 seconds. dwarf_filth_cycle() //On_life will adjust regarding other factors, so we are along for the ride. dwarf_filth_ticker = 0 //We set the ticker back to 0 to go again. if(dwarf_eth_ticker >= 1) //Alcohol reagent check should be around 2 seconds, since a tick is around 2 seconds. diff --git a/code/modules/mob/living/carbon/human/species_types/flypeople.dm b/code/modules/mob/living/carbon/human/species_types/flypeople.dm index 0c3bcc2b00..426213161e 100644 --- a/code/modules/mob/living/carbon/human/species_types/flypeople.dm +++ b/code/modules/mob/living/carbon/human/species_types/flypeople.dm @@ -13,9 +13,9 @@ exotic_bloodtype = "BUG" /datum/species/fly/handle_chemicals(datum/reagent/chem, mob/living/carbon/human/H) - if(chem.id == "pestkiller") + if(chem.type == /datum/reagent/toxin/pestkiller) H.adjustToxLoss(3) - H.reagents.remove_reagent(chem.id, REAGENTS_METABOLISM) + H.reagents.remove_reagent(chem.type, REAGENTS_METABOLISM) return 1 diff --git a/code/modules/mob/living/carbon/human/species_types/furrypeople.dm b/code/modules/mob/living/carbon/human/species_types/furrypeople.dm index 1e4b3e9fae..e2adb2acd9 100644 --- a/code/modules/mob/living/carbon/human/species_types/furrypeople.dm +++ b/code/modules/mob/living/carbon/human/species_types/furrypeople.dm @@ -70,20 +70,6 @@ damage_overlay_type = "xeno" liked_food = MEAT -/datum/species/xeno/on_species_gain(mob/living/carbon/human/C, datum/species/old_species) - if(("legs" in C.dna.species.mutant_bodyparts) && (C.dna.features["legs"] == "Digitigrade" || C.dna.features["legs"] == "Avian")) - species_traits += DIGITIGRADE - if(DIGITIGRADE in species_traits) - C.Digitigrade_Leg_Swap(FALSE) - . = ..() - -/datum/species/xeno/on_species_loss(mob/living/carbon/human/C, datum/species/new_species) - if(("legs" in C.dna.species.mutant_bodyparts) && C.dna.features["legs"] == "Plantigrade") - species_traits -= DIGITIGRADE - if(DIGITIGRADE in species_traits) - C.Digitigrade_Leg_Swap(TRUE) - . = ..() - //Praise the Omnissiah, A challange worthy of my skills - HS //EXOTIC// diff --git a/code/modules/mob/living/carbon/human/species_types/golems.dm b/code/modules/mob/living/carbon/human/species_types/golems.dm index 3d6c5092e1..c247d14589 100644 --- a/code/modules/mob/living/carbon/human/species_types/golems.dm +++ b/code/modules/mob/living/carbon/human/species_types/golems.dm @@ -305,9 +305,9 @@ H.take_overall_damage(2,0) /datum/species/golem/wood/handle_chemicals(datum/reagent/chem, mob/living/carbon/human/H) - if(chem.id == "plantbgone") + if(chem.type == /datum/reagent/toxin/plantbgone) H.adjustToxLoss(3) - H.reagents.remove_reagent(chem.id, REAGENTS_METABOLISM) + H.reagents.remove_reagent(chem.type, REAGENTS_METABOLISM) return 1 //Radioactive @@ -619,14 +619,14 @@ C.RemoveSpell(dominate) /datum/species/golem/runic/handle_chemicals(datum/reagent/chem, mob/living/carbon/human/H) - if(chem.id == "holywater") + if(chem.type == /datum/reagent/water/holywater) H.adjustFireLoss(4) - H.reagents.remove_reagent(chem.id, REAGENTS_METABOLISM) + H.reagents.remove_reagent(chem.type, REAGENTS_METABOLISM) - if(chem.id == "unholywater") + if(chem.type == /datum/reagent/fuel/unholywater) H.adjustBruteLoss(-4) H.adjustFireLoss(-4) - H.reagents.remove_reagent(chem.id, REAGENTS_METABOLISM) + H.reagents.remove_reagent(chem.type, REAGENTS_METABOLISM) /datum/species/golem/clockwork diff --git a/code/modules/mob/living/carbon/human/species_types/jellypeople.dm b/code/modules/mob/living/carbon/human/species_types/jellypeople.dm index 5f91e3ae66..b63cd59173 100644 --- a/code/modules/mob/living/carbon/human/species_types/jellypeople.dm +++ b/code/modules/mob/living/carbon/human/species_types/jellypeople.dm @@ -12,7 +12,7 @@ inherent_traits = list(TRAIT_TOXINLOVER) meat = /obj/item/reagent_containers/food/snacks/meat/slab/human/mutant/slime gib_types = list(/obj/effect/gibspawner/slime, /obj/effect/gibspawner/slime/bodypartless) - exotic_blood = "jellyblood" + exotic_blood = /datum/reagent/blood/jellyblood exotic_bloodtype = "GEL" damage_overlay_type = "" var/datum/action/innate/regenerate_limbs/regenerate_limbs diff --git a/code/modules/mob/living/carbon/human/species_types/lizardpeople.dm b/code/modules/mob/living/carbon/human/species_types/lizardpeople.dm index 9317a51050..df8d4d727a 100644 --- a/code/modules/mob/living/carbon/human/species_types/lizardpeople.dm +++ b/code/modules/mob/living/carbon/human/species_types/lizardpeople.dm @@ -73,19 +73,6 @@ mutant_bodyparts |= "spines" H.update_body() -/datum/species/lizard/on_species_gain(mob/living/carbon/human/C, datum/species/old_species) - if(("legs" in C.dna.species.mutant_bodyparts) && (C.dna.features["legs"] == "Digitigrade" || C.dna.features["legs"] == "Avian")) - species_traits += DIGITIGRADE - if(DIGITIGRADE in species_traits) - C.Digitigrade_Leg_Swap(FALSE) - return ..() - -/datum/species/lizard/on_species_loss(mob/living/carbon/human/C, datum/species/new_species) - if(("legs" in C.dna.species.mutant_bodyparts) && C.dna.features["legs"] == "Plantigrade") - species_traits -= DIGITIGRADE - if(DIGITIGRADE in species_traits) - C.Digitigrade_Leg_Swap(TRUE) - /* Lizard subspecies: ASHWALKERS */ diff --git a/code/modules/mob/living/carbon/human/species_types/mushpeople.dm b/code/modules/mob/living/carbon/human/species_types/mushpeople.dm index 7744a65464..ab0962cf12 100644 --- a/code/modules/mob/living/carbon/human/species_types/mushpeople.dm +++ b/code/modules/mob/living/carbon/human/species_types/mushpeople.dm @@ -52,9 +52,9 @@ QDEL_NULL(mush) /datum/species/mush/handle_chemicals(datum/reagent/chem, mob/living/carbon/human/H) - if(chem.id == "weedkiller") + if(chem.type == /datum/reagent/toxin/plantbgone/weedkiller) H.adjustToxLoss(3) - H.reagents.remove_reagent(chem.id, REAGENTS_METABOLISM) + H.reagents.remove_reagent(chem.type, REAGENTS_METABOLISM) return TRUE /datum/species/mush/handle_mutant_bodyparts(mob/living/carbon/human/H, forced_colour) diff --git a/code/modules/mob/living/carbon/human/species_types/podpeople.dm b/code/modules/mob/living/carbon/human/species_types/podpeople.dm index f0dd48c6c1..66eb207670 100644 --- a/code/modules/mob/living/carbon/human/species_types/podpeople.dm +++ b/code/modules/mob/living/carbon/human/species_types/podpeople.dm @@ -47,9 +47,9 @@ H.take_overall_damage(2,0) /datum/species/pod/handle_chemicals(datum/reagent/chem, mob/living/carbon/human/H) - if(chem.id == "plantbgone") + if(chem.type == /datum/reagent/toxin/plantbgone) H.adjustToxLoss(3) - H.reagents.remove_reagent(chem.id, REAGENTS_METABOLISM) + H.reagents.remove_reagent(chem.type, REAGENTS_METABOLISM) return 1 /datum/species/pod/on_hit(obj/item/projectile/P, mob/living/carbon/human/H) diff --git a/code/modules/mob/living/carbon/human/species_types/synths.dm b/code/modules/mob/living/carbon/human/species_types/synths.dm index 5cd1a599ad..0335e08922 100644 --- a/code/modules/mob/living/carbon/human/species_types/synths.dm +++ b/code/modules/mob/living/carbon/human/species_types/synths.dm @@ -36,9 +36,9 @@ UnregisterSignal(H, COMSIG_MOB_SAY) /datum/species/synth/handle_chemicals(datum/reagent/chem, mob/living/carbon/human/H) - if(chem.id == "synthflesh") + if(chem.type == /datum/reagent/medicine/synthflesh) chem.reaction_mob(H, TOUCH, 2 ,0) //heal a little - H.reagents.remove_reagent(chem.id, REAGENTS_METABOLISM) + H.reagents.remove_reagent(chem.type, REAGENTS_METABOLISM) return 1 else return ..() diff --git a/code/modules/mob/living/carbon/human/update_icons.dm b/code/modules/mob/living/carbon/human/update_icons.dm index ae69d5dc90..c4088317b1 100644 --- a/code/modules/mob/living/carbon/human/update_icons.dm +++ b/code/modules/mob/living/carbon/human/update_icons.dm @@ -119,24 +119,25 @@ There are several things that need to be remembered: var/t_color = U.item_color if(!t_color) t_color = U.icon_state - if(U.suit_style == NORMAL_SUIT_STYLE) - if(U.adjusted == ALT_STYLE) - t_color = "[t_color]_d" + if(U.adjusted == ALT_STYLE) + t_color = "[t_color]_d" - var/alt_worn = U.alternate_worn_icon + var/alt_worn = U.alternate_worn_icon || 'icons/mob/uniform.dmi' + var/variant_flag = NONE - if(!U.force_alternate_icon && U.mutantrace_variation && U.suit_style == DIGITIGRADE_SUIT_STYLE) + if((DIGITIGRADE in dna.species.species_traits) && U.mutantrace_variation & STYLE_DIGITIGRADE) alt_worn = 'icons/mob/uniform_digi.dmi' + variant_flag |= STYLE_DIGITIGRADE var/mutable_appearance/uniform_overlay if(dna && dna.species.sexes) var/G = (gender == FEMALE) ? "f" : "m" if(G == "f" && U.fitted != NO_FEMALE_UNIFORM) - uniform_overlay = U.build_worn_icon(state = "[t_color]", default_layer = UNIFORM_LAYER, default_icon_file = (alt_worn ? alt_worn : 'icons/mob/uniform.dmi'), isinhands = FALSE, femaleuniform = U.fitted) + uniform_overlay = U.build_worn_icon(t_color, UNIFORM_LAYER, alt_worn, FALSE, U.fitted, variant_flag, FALSE) if(!uniform_overlay) - uniform_overlay = U.build_worn_icon(state = "[t_color]", default_layer = UNIFORM_LAYER, default_icon_file = (alt_worn ? alt_worn : 'icons/mob/uniform.dmi'), isinhands = FALSE) + uniform_overlay = U.build_worn_icon(t_color, UNIFORM_LAYER, alt_worn, FALSE, NO_FEMALE_UNIFORM, variant_flag, FALSE) if(OFFSET_UNIFORM in dna.species.offset_features) @@ -164,7 +165,7 @@ There are several things that need to be remembered: update_observer_view(wear_id) //TODO: add an icon file for ID slot stuff, so it's less snowflakey - id_overlay = wear_id.build_worn_icon(state = wear_id.item_state, default_layer = ID_LAYER, default_icon_file = ((wear_id.alternate_worn_icon) ? wear_id.alternate_worn_icon : 'icons/mob/mob.dmi')) + id_overlay = wear_id.build_worn_icon(state = wear_id.item_state, default_layer = ID_LAYER, default_icon_file = 'icons/mob/mob.dmi') if(OFFSET_ID in dna.species.offset_features) id_overlay.pixel_x += dna.species.offset_features[OFFSET_ID][1] id_overlay.pixel_y += dna.species.offset_features[OFFSET_ID][2] @@ -199,7 +200,7 @@ There are several things that need to be remembered: var/t_state = gloves.item_state if(!t_state) t_state = gloves.icon_state - overlays_standing[GLOVES_LAYER] = gloves.build_worn_icon(state = t_state, default_layer = GLOVES_LAYER, default_icon_file = ((gloves.alternate_worn_icon) ? gloves.alternate_worn_icon : 'icons/mob/hands.dmi')) + overlays_standing[GLOVES_LAYER] = gloves.build_worn_icon(state = t_state, default_layer = GLOVES_LAYER, default_icon_file = 'icons/mob/hands.dmi') gloves_overlay = overlays_standing[GLOVES_LAYER] if(OFFSET_GLOVES in dna.species.offset_features) gloves_overlay.pixel_x += dna.species.offset_features[OFFSET_GLOVES][1] @@ -225,7 +226,7 @@ There are several things that need to be remembered: client.screen += glasses //Either way, add the item to the HUD update_observer_view(glasses,1) if(!(head && (head.flags_inv & HIDEEYES)) && !(wear_mask && (wear_mask.flags_inv & HIDEEYES))) - overlays_standing[GLASSES_LAYER] = glasses.build_worn_icon(state = glasses.icon_state, default_layer = GLASSES_LAYER, default_icon_file = ((glasses.alternate_worn_icon) ? glasses.alternate_worn_icon : 'icons/mob/eyes.dmi')) + overlays_standing[GLASSES_LAYER] = glasses.build_worn_icon(state = glasses.icon_state, default_layer = GLASSES_LAYER, default_icon_file = 'icons/mob/eyes.dmi') var/mutable_appearance/glasses_overlay = overlays_standing[GLASSES_LAYER] if(glasses_overlay) if(OFFSET_GLASSES in dna.species.offset_features) @@ -252,7 +253,7 @@ There are several things that need to be remembered: client.screen += ears //add it to the client's screen update_observer_view(ears,1) - overlays_standing[EARS_LAYER] = ears.build_worn_icon(state = ears.icon_state, default_layer = EARS_LAYER, default_icon_file = ((ears.alternate_worn_icon) ? ears.alternate_worn_icon : 'icons/mob/ears.dmi')) + overlays_standing[EARS_LAYER] = ears.build_worn_icon(state = ears.icon_state, default_layer = EARS_LAYER, default_icon_file = 'icons/mob/ears.dmi') var/mutable_appearance/ears_overlay = overlays_standing[EARS_LAYER] if(OFFSET_EARS in dna.species.offset_features) ears_overlay.pixel_x += dna.species.offset_features[OFFSET_EARS][1] @@ -270,32 +271,6 @@ There are several things that need to be remembered: if(client && hud_used) var/obj/screen/inventory/inv = hud_used.inv_slots[SLOT_SHOES] inv.update_icon() -/* - if(!shoes && bloody_feet) - var/mutable_appearance/bloody_overlay = mutable_appearance('icons/effects/blood.dmi', "bloodyfeet", -SHOES_LAYER, color = blood_DNA_to_color()) - if(dna.features["taur"] != "None") - if(dna.features["taur"] in GLOB.noodle_taurs) - bloody_overlay = mutable_appearance('modular_citadel/icons/mob/64x32_effects.dmi', "snekbloodyfeet", -SHOES_LAYER, color = blood_DNA_to_color()) - if(get_num_legs() < 2) - if(has_left_leg()) - bloody_overlay.icon_state = "snekbloodyfeet_left" - else if(has_right_leg()) - bloody_overlay.icon_state = "snekbloodyfeet_right" - else if(dna.features["taur"] in GLOB.paw_taurs) - bloody_overlay = mutable_appearance('modular_citadel/icons/mob/64x32_effects.dmi', "pawbloodyfeet", -SHOES_LAYER, color = blood_DNA_to_color()) - if(get_num_legs() < 2) - if(has_left_leg()) - bloody_overlay.icon_state = "pawbloodyfeet_left" - else if(has_right_leg()) - bloody_overlay.icon_state = "pawbloodyfeet_right" - else - if(get_num_legs() < 2) - if(has_left_leg()) - bloody_overlay.icon_state = "bloodyfeet_left" - else if(has_right_leg()) - bloody_overlay.icon_state = "bloodyfeet_right" - - overlays_standing[GLOVES_LAYER] = bloody_overlay*/ if(shoes) var/obj/item/clothing/shoes/S = shoes @@ -304,15 +279,17 @@ There are several things that need to be remembered: if(hud_used.inventory_shown) //if the inventory is open client.screen += shoes //add it to client's screen update_observer_view(shoes,1) - if(S.mutantrace_variation) - if(S.adjusted == ALT_STYLE) - S.alternate_worn_icon = 'icons/mob/feet_digi.dmi' - else - S.alternate_worn_icon = null + + var/alt_icon = S.alternate_worn_icon || 'icons/mob/feet.dmi' + var/variation_flag = NONE + if((DIGITIGRADE in dna.species.species_traits) && S.mutantrace_variation & STYLE_DIGITIGRADE) + alt_icon = 'icons/mob/feet_digi.dmi' + variation_flag |= STYLE_DIGITIGRADE + var/t_state = shoes.item_state if (!t_state) t_state = shoes.icon_state - overlays_standing[SHOES_LAYER] = shoes.build_worn_icon(state = t_state, default_layer = SHOES_LAYER, default_icon_file = ((shoes.alternate_worn_icon) ? shoes.alternate_worn_icon : 'icons/mob/feet.dmi')) + overlays_standing[SHOES_LAYER] = shoes.build_worn_icon(t_state, SHOES_LAYER, alt_icon, FALSE, NO_FEMALE_UNIFORM, variation_flag, FALSE) var/mutable_appearance/shoes_overlay = overlays_standing[SHOES_LAYER] if(OFFSET_SHOES in dna.species.offset_features) shoes_overlay.pixel_x += dna.species.offset_features[OFFSET_SHOES][1] @@ -350,13 +327,18 @@ There are several things that need to be remembered: if(head) remove_overlay(HEAD_LAYER) var/obj/item/clothing/head/H = head - if(H.mutantrace_variation) - if(H.muzzle_var == ALT_STYLE) - H.alternate_worn_icon = 'icons/mob/head_muzzled.dmi' - else - H.alternate_worn_icon = null + var/alt_icon = H.alternate_worn_icon || 'icons/mob/head.dmi' + var/muzzled = FALSE + var/variation_flag = NONE + if(("mam_snouts" in dna.species.default_features) && dna.features["mam_snouts"] != "None") + muzzled = TRUE + if(!muzzled && ("snout" in dna.species.default_features) && dna.features["snout"] != "None") + muzzled = TRUE + if(muzzled && H.mutantrace_variation & STYLE_MUZZLE) + alt_icon = 'icons/mob/head_muzzled.dmi' + variation_flag |= STYLE_MUZZLE - overlays_standing[HEAD_LAYER] = H.build_worn_icon(state = H.icon_state, default_layer = HEAD_LAYER, default_icon_file = ((head.alternate_worn_icon) ? H.alternate_worn_icon : 'icons/mob/head.dmi')) + overlays_standing[HEAD_LAYER] = H.build_worn_icon(H.icon_state, HEAD_LAYER, alt_icon, FALSE, NO_FEMALE_UNIFORM, variation_flag, FALSE) var/mutable_appearance/head_overlay = overlays_standing[HEAD_LAYER] if(OFFSET_HEAD in dna.species.offset_features) @@ -382,7 +364,7 @@ There are several things that need to be remembered: if(!t_state) t_state = belt.icon_state - overlays_standing[BELT_LAYER] = belt.build_worn_icon(state = t_state, default_layer = BELT_LAYER, default_icon_file = ((belt.alternate_worn_icon) ? belt.alternate_worn_icon : 'icons/mob/belt.dmi')) + overlays_standing[BELT_LAYER] = belt.build_worn_icon(state = t_state, default_layer = BELT_LAYER, default_icon_file = 'icons/mob/belt.dmi') var/mutable_appearance/belt_overlay = overlays_standing[BELT_LAYER] if(OFFSET_BELT in dna.species.offset_features) belt_overlay.pixel_x += dna.species.offset_features[OFFSET_BELT][1] @@ -409,30 +391,41 @@ There are several things that need to be remembered: client.screen += wear_suit update_observer_view(wear_suit,1) - if(!item_level_support && !S.force_alternate_icon) - if(S.mutantrace_variation) //Just make sure we've got this checked too - if(S.taurmode == NOT_TAURIC && S.adjusted == ALT_STYLE) //are we not a taur, but we have Digitigrade legs? Run this check first, then. - S.alternate_worn_icon = 'icons/mob/suit_digi.dmi' - else - S.alternate_worn_icon = null + var/worn_icon = wear_suit.alternate_worn_icon || 'icons/mob/suit.dmi' + var/center = FALSE + var/dimension_x = 32 + var/dimension_y = 32 + var/variation_flag = NONE + var/datum/sprite_accessory/taur/T + if("taur" in dna.species.mutant_bodyparts) + T = GLOB.taur_list[dna.features["taur"]] - if(S.tauric == TRUE) //Are we a suit with tauric mode possible? - if(S.taurmode == SNEK_TAURIC) - S.alternate_worn_icon = 'icons/mob/taur_naga.dmi' - if(S.taurmode == PAW_TAURIC) - S.alternate_worn_icon = 'icons/mob/taur_canine.dmi' - if(S.taurmode == NOT_TAURIC && S.adjusted == ALT_STYLE) - S.alternate_worn_icon = 'icons/mob/suit_digi.dmi' - else if(S.taurmode == NOT_TAURIC && S.adjusted == NORMAL_STYLE) - S.alternate_worn_icon = null + if(!item_level_support && S.mutantrace_variation) + if(T?.taur_mode) + var/init_worn_icon = worn_icon + variation_flag |= S.mutantrace_variation & T.taur_mode || S.mutantrace_variation & T.alt_taur_mode + switch(variation_flag) + if(STYLE_HOOF_TAURIC) + worn_icon = 'icons/mob/taur_hooved.dmi' + if(STYLE_SNEK_TAURIC) + worn_icon = 'icons/mob/taur_naga.dmi' + if(STYLE_PAW_TAURIC) + worn_icon = 'icons/mob/taur_canine.dmi' + if(worn_icon != init_worn_icon) //worn icon sprite was changed, taur offsets will have to be applied. + center = T.center + dimension_x = T.dimension_x + dimension_y = T.dimension_y + else if((DIGITIGRADE in dna.species.species_traits) && S.mutantrace_variation & STYLE_DIGITIGRADE) //not a taur, but digitigrade legs. + worn_icon = 'icons/mob/suit_digi.dmi' + variation_flag |= STYLE_DIGITIGRADE - overlays_standing[SUIT_LAYER] = S.build_worn_icon(state = wear_suit.icon_state, default_layer = SUIT_LAYER, default_icon_file = ((wear_suit.alternate_worn_icon) ? S.alternate_worn_icon : 'icons/mob/suit.dmi')) + overlays_standing[SUIT_LAYER] = S.build_worn_icon(wear_suit.icon_state, SUIT_LAYER, worn_icon, FALSE, NO_FEMALE_UNIFORM, variation_flag, FALSE) var/mutable_appearance/suit_overlay = overlays_standing[SUIT_LAYER] if(OFFSET_SUIT in dna.species.offset_features) suit_overlay.pixel_x += dna.species.offset_features[OFFSET_SUIT][1] suit_overlay.pixel_y += dna.species.offset_features[OFFSET_SUIT][2] - if(!item_level_support && S.center) - suit_overlay = center_image(suit_overlay, S.dimension_x, S.dimension_y) + if(center) + suit_overlay = center_image(suit_overlay, dimension_x, dimension_y) overlays_standing[SUIT_LAYER] = suit_overlay update_hair() update_mutant_bodyparts() @@ -468,13 +461,18 @@ There are several things that need to be remembered: if(wear_mask) var/obj/item/clothing/mask/M = wear_mask remove_overlay(FACEMASK_LAYER) - if(M.mutantrace_variation) - if(M.muzzle_var == ALT_STYLE) - M.alternate_worn_icon = 'icons/mob/mask_muzzled.dmi' - else - M.alternate_worn_icon = null + var/alt_icon = M.alternate_worn_icon || 'icons/mob/mask.dmi' + var/muzzled = FALSE + var/variation_flag = NONE + if(("mam_snouts" in dna.species.default_features) && dna.features["mam_snouts"] != "None") + muzzled = TRUE + if(!muzzled && ("snout" in dna.species.default_features) && dna.features["snout"] != "None") + muzzled = TRUE + if(muzzled && M.mutantrace_variation & STYLE_MUZZLE) + alt_icon = 'icons/mob/mask_muzzled.dmi' + variation_flag |= STYLE_MUZZLE - overlays_standing[FACEMASK_LAYER] = M.build_worn_icon(state = wear_mask.icon_state, default_layer = FACEMASK_LAYER, default_icon_file = ((wear_mask.alternate_worn_icon) ? M.alternate_worn_icon : 'icons/mob/mask.dmi')) + overlays_standing[FACEMASK_LAYER] = M.build_worn_icon(wear_mask.icon_state, FACEMASK_LAYER, alt_icon, FALSE, NO_FEMALE_UNIFORM, variation_flag, FALSE) var/mutable_appearance/mask_overlay = overlays_standing[FACEMASK_LAYER] if(OFFSET_FACEMASK in dna.species.offset_features) @@ -496,11 +494,11 @@ There are several things that need to be remembered: apply_overlay(BACK_LAYER) /proc/wear_female_version(t_color, icon, layer, type) - var/index = t_color + var/index = "[t_color]-[icon]" var/icon/female_clothing_icon = GLOB.female_clothing_icons[index] if(!female_clothing_icon) //Create standing/laying icons if they don't exist generate_female_clothing(index,t_color,icon,type) - return mutable_appearance(GLOB.female_clothing_icons[t_color], layer = -layer) + return mutable_appearance(GLOB.female_clothing_icons[index], layer = -layer) /mob/living/carbon/human/proc/get_overlays_copy(list/unwantedLayers) var/list/out = new @@ -572,11 +570,11 @@ generate/load female uniform sprites matching all previously decided variables */ -/obj/item/proc/build_worn_icon(var/state = "", var/default_layer = 0, var/default_icon_file = null, var/isinhands = FALSE, var/femaleuniform = NO_FEMALE_UNIFORM) +/obj/item/proc/build_worn_icon(state = "", default_layer = 0, default_icon_file = null, isinhands = FALSE, femaleuniform = NO_FEMALE_UNIFORM, style_flags = NONE, use_alt_icon = TRUE) //Find a valid icon file from variables+arguments var/file2use - if(!isinhands && alternate_worn_icon) + if(!isinhands && alternate_worn_icon && use_alt_icon) file2use = alternate_worn_icon if(!file2use) file2use = default_icon_file @@ -596,7 +594,7 @@ generate/load female uniform sprites matching all previously decided variables //Get the overlays for this item when it's being worn //eg: ammo counters, primed grenade flashes, etc. - var/list/worn_overlays = worn_overlays(isinhands, file2use) + var/list/worn_overlays = worn_overlays(isinhands, file2use, style_flags) if(worn_overlays && worn_overlays.len) standing.overlays.Add(worn_overlays) @@ -675,6 +673,8 @@ generate/load female uniform sprites matching all previously decided variables . += "-robotic" if(BP.use_digitigrade) . += "-digitigrade[BP.use_digitigrade]" + if(BP.digitigrade_type) + . += "-[BP.digitigrade_type]" if(BP.dmg_overlay_type) . += "-[BP.dmg_overlay_type]" if(BP.body_markings) diff --git a/code/modules/mob/living/carbon/life.dm b/code/modules/mob/living/carbon/life.dm index 0061c7ed70..9e9d440574 100644 --- a/code/modules/mob/living/carbon/life.dm +++ b/code/modules/mob/living/carbon/life.dm @@ -80,7 +80,7 @@ //Second link in a breath chain, calls check_breath() /mob/living/carbon/proc/breathe() var/obj/item/organ/lungs = getorganslot(ORGAN_SLOT_LUNGS) - if(reagents.has_reagent("lexorin")) + if(reagents.has_reagent(/datum/reagent/toxin/lexorin)) return if(istype(loc, /obj/machinery/atmospherics/components/unary/cryo_cell)) return @@ -156,7 +156,7 @@ //CRIT if(!breath || (breath.total_moles() == 0) || !lungs) - if(reagents.has_reagent("epinephrine") && lungs) + if(reagents.has_reagent(/datum/reagent/medicine/epinephrine) && lungs) return adjustOxyLoss(1) @@ -357,7 +357,7 @@ return // No decay if formaldehyde in corpse or when the corpse is charred - if(reagents.has_reagent("formaldehyde", 15) || HAS_TRAIT(src, TRAIT_HUSK)) + if(reagents.has_reagent(/datum/reagent/toxin/formaldehyde, 15) || HAS_TRAIT(src, TRAIT_HUSK)) return // Also no decay if corpse chilled or not organic/undead diff --git a/code/modules/mob/living/carbon/monkey/monkey.dm b/code/modules/mob/living/carbon/monkey/monkey.dm index fe041dd0a6..14c3a76307 100644 --- a/code/modules/mob/living/carbon/monkey/monkey.dm +++ b/code/modules/mob/living/carbon/monkey/monkey.dm @@ -66,7 +66,7 @@ . = ..() remove_movespeed_modifier(MOVESPEED_ID_MONKEY_REAGENT_SPEEDMOD, TRUE) var/amount - if(reagents.has_reagent("morphine")) + if(reagents.has_reagent(/datum/reagent/medicine/morphine)) amount = -1 if(amount) add_movespeed_modifier(MOVESPEED_ID_MONKEY_REAGENT_SPEEDMOD, TRUE, 100, override = TRUE, multiplicative_slowdown = amount) diff --git a/code/modules/mob/living/carbon/monkey/monkey_defense.dm b/code/modules/mob/living/carbon/monkey/monkey_defense.dm index 32e3d21ee2..62550f4ccb 100644 --- a/code/modules/mob/living/carbon/monkey/monkey_defense.dm +++ b/code/modules/mob/living/carbon/monkey/monkey_defense.dm @@ -189,18 +189,18 @@ ..() switch (severity) - if (1) + if (EXPLODE_DEVASTATE) gib() return - if (2) + if (EXPLODE_HEAVY) take_overall_damage(60, 60) damage_clothes(200, BRUTE, "bomb") adjustEarDamage(30, 120) if(prob(70)) Unconscious(200) - if(3) + if(EXPLODE_LIGHT) take_overall_damage(30, 0) damage_clothes(50, BRUTE, "bomb") adjustEarDamage(15,60) diff --git a/code/modules/mob/living/carbon/update_icons.dm b/code/modules/mob/living/carbon/update_icons.dm index 0155f2575d..ca1a946e10 100644 --- a/code/modules/mob/living/carbon/update_icons.dm +++ b/code/modules/mob/living/carbon/update_icons.dm @@ -200,7 +200,7 @@ //Overlays for the worn overlay so you can overlay while you overlay //eg: ammo counters, primed grenade flashing, etc. //"icon_file" is used automatically for inhands etc. to make sure it gets the right inhand file -/obj/item/proc/worn_overlays(isinhands = FALSE, icon_file) +/obj/item/proc/worn_overlays(isinhands = FALSE, icon_file, style_flags = NONE) . = list() diff --git a/code/modules/mob/living/living.dm b/code/modules/mob/living/living.dm index 78542ab052..c2a307950c 100644 --- a/code/modules/mob/living/living.dm +++ b/code/modules/mob/living/living.dm @@ -1225,7 +1225,7 @@ clamp_unconscious_to = 0, clamp_immobility_to = 0, reset_misc = TRUE, - healing_chems = list("inaprovaline" = 3, "synaptizine" = 10, "regen_jelly" = 10, "stimulants" = 10), + healing_chems = list(/datum/reagent/medicine/inaprovaline = 3, /datum/reagent/medicine/synaptizine = 10, /datum/reagent/medicine/regen_jelly = 10, /datum/reagent/medicine/stimulants = 10), message = "You feel a surge of energy!", stamina_buffer_boost = 0, //restores stamina buffer rather than just health scale_stamina_loss_recovery, //defaults to null. if this is set, restores loss * this stamina. make sure it's a fraction. @@ -1252,5 +1252,5 @@ updatehealth() update_stamina() update_canmove() - for(var/chem in healing_chems) - reagents.add_reagent(chem, healing_chems[chem]) + if(healing_chems) + reagents.add_reagent_list(healing_chems) diff --git a/code/modules/mob/living/living_defense.dm b/code/modules/mob/living/living_defense.dm index 3c5c5e3518..e398dad65b 100644 --- a/code/modules/mob/living/living_defense.dm +++ b/code/modules/mob/living/living_defense.dm @@ -464,7 +464,7 @@ to_chat(src, "You resist Nar'Sie's influence... but not all of it. Run!") adjustBruteLoss(35) if(src && reagents) - reagents.add_reagent("heparin", 5) + reagents.add_reagent(/datum/reagent/toxin/heparin, 5) return FALSE if(GLOB.cult_narsie && GLOB.cult_narsie.souls_needed[src]) GLOB.cult_narsie.souls_needed -= src diff --git a/code/modules/mob/living/silicon/robot/robot_modules.dm b/code/modules/mob/living/silicon/robot/robot_modules.dm index 1d8e5ed21b..eab0cc1d66 100644 --- a/code/modules/mob/living/silicon/robot/robot_modules.dm +++ b/code/modules/mob/living/silicon/robot/robot_modules.dm @@ -647,11 +647,11 @@ /obj/item/reagent_containers/spray/cyborg_drying name = "drying agent spray" color = "#A000A0" - list_reagents = list("drying_agent" = 250) + list_reagents = list(/datum/reagent/drying_agent = 250) /obj/item/reagent_containers/spray/cyborg_lube name = "lube spray" - list_reagents = list("lube" = 250) + list_reagents = list(/datum/reagent/lube = 250) /obj/item/robot_module/clown name = "Clown" @@ -725,17 +725,17 @@ var/obj/item/reagent_containers/O = locate(/obj/item/reagent_containers/food/condiment/enzyme) in basic_modules var/obj/item/lightreplacer/LR = locate(/obj/item/lightreplacer) in basic_modules if(O) - O.reagents.add_reagent("enzyme", 2 * coeff) + O.reagents.add_reagent(/datum/reagent/consumable/enzyme, 2 * coeff) if(LR) for(var/i in 1 to coeff) LR.Charge(R) var/obj/item/reagent_containers/spray/cyborg_drying/CD = locate(/obj/item/reagent_containers/spray/cyborg_drying) in basic_modules if(CD) - CD.reagents.add_reagent("drying_agent", 5 * coeff) + CD.reagents.add_reagent(/datum/reagent/drying_agent, 5 * coeff) var/obj/item/reagent_containers/spray/cyborg_lube/CL = locate(/obj/item/reagent_containers/spray/cyborg_lube) in emag_modules if(CL) - CL.reagents.add_reagent("lube", 2 * coeff) + CL.reagents.add_reagent(/datum/reagent/lube, 2 * coeff) /obj/item/robot_module/butler/be_transformed_to(obj/item/robot_module/old_module) var/mob/living/silicon/robot/R = loc @@ -835,7 +835,7 @@ /obj/item/robot_module/miner/be_transformed_to(obj/item/robot_module/old_module) var/mob/living/silicon/robot/R = loc - var/borg_icon = input(R, "Select an icon!", "Robot Icon", null) as null|anything in list("Lavaland", "Heavy", "Sleek", "Marina", "Can", "Spider", "Asteroid", "Droid", "Blade") + var/borg_icon = input(R, "Select an icon!", "Robot Icon", null) as null|anything in list("Lavaland", "Heavy", "Sleek", "Marina", "Can", "Spider", "Asteroid", "Droid", "Blade", "Vale") if(!borg_icon) return FALSE switch(borg_icon) @@ -868,6 +868,11 @@ cyborg_icon_override = 'modular_citadel/icons/mob/widerobot.dmi' sleeper_overlay = "bladesleeper" dogborg = TRUE + if("Vale") + cyborg_base_icon = "valemine" + cyborg_icon_override = 'modular_citadel/icons/mob/widerobot.dmi' + sleeper_overlay = "valeminesleeper" + dogborg = TRUE return ..() /obj/item/robot_module/syndicate diff --git a/code/modules/mob/living/simple_animal/animal_defense.dm b/code/modules/mob/living/simple_animal/animal_defense.dm index 0dfa126e79..ad8dfc4900 100644 --- a/code/modules/mob/living/simple_animal/animal_defense.dm +++ b/code/modules/mob/living/simple_animal/animal_defense.dm @@ -122,19 +122,19 @@ ..() var/bomb_armor = getarmor(null, "bomb") switch (severity) - if (1) + if (EXPLODE_DEVASTATE) if(prob(bomb_armor)) adjustBruteLoss(500) else gib() return - if (2) + if (EXPLODE_HEAVY) var/bloss = 60 if(prob(bomb_armor)) bloss = bloss / 1.5 adjustBruteLoss(bloss) - if(3) + if(EXPLODE_LIGHT) var/bloss = 30 if(prob(bomb_armor)) bloss = bloss / 1.5 diff --git a/code/modules/mob/living/simple_animal/astral.dm b/code/modules/mob/living/simple_animal/astral.dm index 3d0c335989..472cbd7414 100644 --- a/code/modules/mob/living/simple_animal/astral.dm +++ b/code/modules/mob/living/simple_animal/astral.dm @@ -44,7 +44,7 @@ if(isliving(A)) if(ishuman(A)) var/mob/living/carbon/human/H = A - if(H.reagents.has_reagent("astral") && !H.mind) + if(H.reagents.has_reagent(/datum/reagent/fermi/astral) && !H.mind) var/datum/reagent/fermi/astral/As = locate(/datum/reagent/fermi/astral) in H.reagents.reagent_list if(As.originalmind == src.mind && As.current_cycle < 10 && H.stat != DEAD) //So you can return to your body. to_chat(src, "The intensity of the astrogen in your body is too much allow you to return to yourself yet!") diff --git a/code/modules/mob/living/simple_animal/bot/medbot.dm b/code/modules/mob/living/simple_animal/bot/medbot.dm index fed770d0b0..13e9299b1d 100644 --- a/code/modules/mob/living/simple_animal/bot/medbot.dm +++ b/code/modules/mob/living/simple_animal/bot/medbot.dm @@ -43,17 +43,17 @@ var/declare_cooldown = 0 //Prevents spam of critical patient alerts. var/stationary_mode = 0 //If enabled, the Medibot will not move automatically. //Setting which reagents to use to treat what by default. By id. - var/treatment_brute_avoid = "tricordrazine" - var/treatment_brute = "bicaridine" + var/treatment_brute_avoid = /datum/reagent/medicine/tricordrazine + var/treatment_brute = /datum/reagent/medicine/bicaridine var/treatment_oxy_avoid = null - var/treatment_oxy = "dexalin" - var/treatment_fire_avoid = "tricordrazine" - var/treatment_fire = "kelotane" - var/treatment_tox_avoid = "tricordrazine" - var/treatment_tox = "charcoal" - var/treatment_tox_toxlover = "toxin" + var/treatment_oxy = /datum/reagent/medicine/dexalin + var/treatment_fire_avoid = /datum/reagent/medicine/tricordrazine + var/treatment_fire = /datum/reagent/medicine/kelotane + var/treatment_tox_avoid = /datum/reagent/medicine/tricordrazine + var/treatment_tox = /datum/reagent/medicine/charcoal + var/treatment_tox_toxlover = /datum/reagent/toxin var/treatment_virus_avoid = null - var/treatment_virus = "spaceacillin" + var/treatment_virus = /datum/reagent/medicine/spaceacillin var/treat_virus = 1 //If on, the bot will attempt to treat viral infections, curing them if possible. var/shut_up = 0 //self explanatory :) @@ -61,9 +61,9 @@ name = "\improper Mysterious Medibot" desc = "International Medibot of mystery." skin = "bezerk" - treatment_brute = "tricordrazine" - treatment_fire = "tricordrazine" - treatment_tox = "tricordrazine" + treatment_brute = /datum/reagent/medicine/tricordrazine + treatment_fire = /datum/reagent/medicine/tricordrazine + treatment_tox = /datum/reagent/medicine/tricordrazine /mob/living/simple_animal/bot/medbot/derelict name = "\improper Old Medibot" @@ -71,13 +71,13 @@ skin = "bezerk" heal_threshold = 0 declare_crit = 0 - treatment_oxy = "pancuronium" + treatment_oxy = /datum/reagent/toxin/pancuronium treatment_brute_avoid = null - treatment_brute = "pancuronium" + treatment_brute = /datum/reagent/toxin/pancuronium treatment_fire_avoid = null - treatment_fire = "sodium_thiopental" + treatment_fire = /datum/reagent/toxin/sodium_thiopental treatment_tox_avoid = null - treatment_tox = "sodium_thiopental" + treatment_tox = /datum/reagent/toxin/sodium_thiopental /mob/living/simple_animal/bot/medbot/update_icon() cut_overlays() @@ -369,8 +369,9 @@ //If they're injured, we're using a beaker, and don't have one of our WONDERCHEMS. if((reagent_glass) && (use_beaker) && ((C.getBruteLoss() >= heal_threshold) || (C.getToxLoss() >= heal_threshold) || (C.getToxLoss() >= heal_threshold) || (C.getOxyLoss() >= (heal_threshold + 15)))) - for(var/datum/reagent/R in reagent_glass.reagents.reagent_list) - if(!C.reagents.has_reagent(R.id)) + for(var/A in reagent_glass.reagents.reagent_list) + var/datum/reagent/R = A + if(!C.reagents.has_reagent(R.type)) return TRUE //They're injured enough for it! @@ -477,8 +478,9 @@ //If the patient is injured but doesn't have our special reagent in them then we should give it to them first if(reagent_id && use_beaker && reagent_glass && reagent_glass.reagents.total_volume) - for(var/datum/reagent/R in reagent_glass.reagents.reagent_list) - if(!C.reagents.has_reagent(R.id)) + for(var/A in reagent_glass.reagents.reagent_list) + var/datum/reagent/R = A + if(!C.reagents.has_reagent(R.type)) reagent_id = "internal_beaker" break diff --git a/code/modules/mob/living/simple_animal/bot/secbot.dm b/code/modules/mob/living/simple_animal/bot/secbot.dm index ee770fc2ca..bfe7b2cde0 100644 --- a/code/modules/mob/living/simple_animal/bot/secbot.dm +++ b/code/modules/mob/living/simple_animal/bot/secbot.dm @@ -54,7 +54,7 @@ var/atom/Tsec = drop_location() new /obj/item/stock_parts/cell/potato(Tsec) var/obj/item/reagent_containers/food/drinks/drinkingglass/shotglass/S = new(Tsec) - S.reagents.add_reagent("whiskey", 15) + S.reagents.add_reagent(/datum/reagent/consumable/ethanol/whiskey, 15) S.on_reagent_change(ADD_REAGENT) ..() diff --git a/code/modules/mob/living/simple_animal/friendly/bumbles.dm b/code/modules/mob/living/simple_animal/friendly/bumbles.dm new file mode 100644 index 0000000000..63e9fbf852 --- /dev/null +++ b/code/modules/mob/living/simple_animal/friendly/bumbles.dm @@ -0,0 +1,48 @@ +/mob/living/simple_animal/pet/bumbles + name = "Bumbles" + desc = "Bumbles, the very humble bumblebee." + icon_state = "bumbles" + icon_living = "bumbles" + icon_dead = "bumbles_dead" + turns_per_move = 1 + response_help = "shoos" + response_disarm = "brushes aside" + response_harm = "squashes" + speak_emote = list("bzzzs") + maxHealth = 100 + health = 100 + harm_intent_damage = 1 + friendly = "bzzs" + density = FALSE + movement_type = FLYING + pass_flags = PASSTABLE | PASSGRILLE | PASSMOB + ventcrawler = VENTCRAWLER_ALWAYS + mob_size = MOB_SIZE_TINY + mob_biotypes = list(MOB_ORGANIC, MOB_BEAST) + gold_core_spawnable = FRIENDLY_SPAWN + verb_say = "bzzs" + verb_ask = "bzzs inquisitively" + verb_exclaim = "bzzs intensely" + verb_yell = "bzzs intensely" + +/mob/living/simple_animal/pet/bumbles/Initialize() + . = ..() + verbs += /mob/living/proc/lay_down + +/mob/living/simple_animal/pet/bumbles/ComponentInitialize() + . = ..() + AddElement(/datum/element/wuv, "bzzs!") + +/mob/living/simple_animal/pet/bumbles/update_canmove() + ..() + if(client && stat != DEAD) + if (resting) + icon_state = "[icon_living]_rest" + collar_type = "[initial(collar_type)]_rest" + else + icon_state = "[icon_living]" + collar_type = "[initial(collar_type)]" + regenerate_icons() + +/mob/living/simple_animal/pet/bumbles/bee_friendly() + return TRUE //treaty signed at the Beeneeva convention diff --git a/code/modules/mob/living/simple_animal/friendly/cat.dm b/code/modules/mob/living/simple_animal/friendly/cat.dm index 00f7b8cab7..dacf8c4833 100644 --- a/code/modules/mob/living/simple_animal/friendly/cat.dm +++ b/code/modules/mob/living/simple_animal/friendly/cat.dm @@ -280,8 +280,8 @@ if(.) //the attack was blocked return if(L.a_intent == INTENT_HARM && L.reagents && !stat) - L.reagents.add_reagent("nutriment", 0.4) - L.reagents.add_reagent("vitamin", 0.4) + L.reagents.add_reagent(/datum/reagent/consumable/nutriment, 0.4) + L.reagents.add_reagent(/datum/reagent/consumable/nutriment/vitamin, 0.4) //Cat made /mob/living/simple_animal/pet/cat/custom_cat diff --git a/code/modules/mob/living/simple_animal/friendly/farm_animals.dm b/code/modules/mob/living/simple_animal/friendly/farm_animals.dm index 2679c68b52..6754f94b01 100644 --- a/code/modules/mob/living/simple_animal/friendly/farm_animals.dm +++ b/code/modules/mob/living/simple_animal/friendly/farm_animals.dm @@ -455,12 +455,12 @@ /obj/item/udder/Initialize() create_reagents(50) - reagents.add_reagent("milk", 20) + reagents.add_reagent(/datum/reagent/consumable/milk, 20) . = ..() /obj/item/udder/proc/generateMilk() if(prob(5)) - reagents.add_reagent("milk", rand(5, 10)) + reagents.add_reagent(/datum/reagent/consumable/milk, rand(5, 10)) /obj/item/udder/proc/milkAnimal(obj/O, mob/user) var/obj/item/reagent_containers/glass/G = O diff --git a/code/modules/mob/living/simple_animal/friendly/mouse.dm b/code/modules/mob/living/simple_animal/friendly/mouse.dm index fec75e4a36..69d9a0eef3 100644 --- a/code/modules/mob/living/simple_animal/friendly/mouse.dm +++ b/code/modules/mob/living/simple_animal/friendly/mouse.dm @@ -117,9 +117,9 @@ icon_state = "mouse_gray_dead" bitesize = 3 eatverb = "devour" - list_reagents = list("nutriment" = 3, "vitamin" = 2) + list_reagents = list(/datum/reagent/consumable/nutriment = 3, /datum/reagent/consumable/nutriment/vitamin = 2) foodtype = GROSS | MEAT | RAW - grind_results = list("blood" = 20, "liquidgibs" = 5) + grind_results = list(/datum/reagent/blood = 20, /datum/reagent/liquidgibs = 5) /obj/item/reagent_containers/food/snacks/deadmouse/on_grind() reagents.clear_reagents() diff --git a/code/modules/mob/living/simple_animal/friendly/snake.dm b/code/modules/mob/living/simple_animal/friendly/snake.dm index 2f37857902..95838c9acb 100644 --- a/code/modules/mob/living/simple_animal/friendly/snake.dm +++ b/code/modules/mob/living/simple_animal/friendly/snake.dm @@ -1,6 +1,6 @@ /mob/living/simple_animal/hostile/retaliate/poison var/poison_per_bite = 0 - var/poison_type = "toxin" + var/poison_type = /datum/reagent/toxin /mob/living/simple_animal/hostile/retaliate/poison/AttackingTarget() . = ..() diff --git a/code/modules/mob/living/simple_animal/hostile/banana_spider.dm b/code/modules/mob/living/simple_animal/hostile/banana_spider.dm index 81dc9d3e24..f3ce343bfd 100644 --- a/code/modules/mob/living/simple_animal/hostile/banana_spider.dm +++ b/code/modules/mob/living/simple_animal/hostile/banana_spider.dm @@ -96,10 +96,10 @@ icon_state = "bananaspider" bitesize = 3 eatverb = "devours" - list_reagents = list("nutriment" = 3, "vitamin" = 2) + list_reagents = list(/datum/reagent/consumable/nutriment = 3, /datum/reagent/consumable/nutriment/vitamin = 2) foodtype = GROSS | MEAT | RAW - grind_results = list("blood" = 20, "liquidgibs" = 5) - juice_results = list("banana" = 0) + grind_results = list(/datum/reagent/blood = 20, /datum/reagent/liquidgibs = 5) + juice_results = list(/datum/reagent/consumable/banana = 0) /obj/item/reagent_containers/food/snacks/deadbanana_spider/Initialize() diff --git a/code/modules/mob/living/simple_animal/hostile/bees.dm b/code/modules/mob/living/simple_animal/hostile/bees.dm index 89c4f70f69..bb1f1284b5 100644 --- a/code/modules/mob/living/simple_animal/hostile/bees.dm +++ b/code/modules/mob/living/simple_animal/hostile/bees.dm @@ -140,7 +140,7 @@ var/mob/living/L = target if(L.reagents) beegent.reaction_mob(L, INJECT) - L.reagents.add_reagent(beegent.id, rand(1,5)) + L.reagents.add_reagent(beegent.type, rand(1,5)) /mob/living/simple_animal/hostile/poison/bees/proc/assign_reagent(datum/reagent/R) @@ -205,7 +205,7 @@ /mob/living/simple_animal/hostile/poison/bees/toxin/Initialize() . = ..() var/datum/reagent/R = pick(typesof(/datum/reagent/toxin)) - assign_reagent(GLOB.chemical_reagents_list[initial(R.id)]) + assign_reagent(GLOB.chemical_reagents_list[R]) /mob/living/simple_animal/hostile/poison/bees/queen name = "queen bee" @@ -225,7 +225,7 @@ if(. && beegent && isliving(target)) var/mob/living/L = target beegent.reaction_mob(L, TOUCH) - L.reagents.add_reagent(beegent.id, rand(1,5)) + L.reagents.add_reagent(beegent.type, rand(1,5)) //PEASENT BEES @@ -236,7 +236,7 @@ /mob/living/simple_animal/hostile/poison/bees/proc/reagent_incompatible(mob/living/simple_animal/hostile/poison/bees/B) if(!B) return FALSE - if(B.beegent && beegent && B.beegent.id != beegent.id || B.beegent && !beegent || !B.beegent && beegent) + if(B.beegent && beegent && B.beegent.type != beegent.type || B.beegent && !beegent || !B.beegent && beegent) return TRUE return FALSE @@ -253,9 +253,10 @@ /obj/item/queen_bee/attackby(obj/item/I, mob/user, params) if(istype(I, /obj/item/reagent_containers/syringe)) var/obj/item/reagent_containers/syringe/S = I - if(S.reagents.has_reagent("royal_bee_jelly")) //checked twice, because I really don't want royal bee jelly to be duped - if(S.reagents.has_reagent("royal_bee_jelly",5)) - S.reagents.remove_reagent("royal_bee_jelly", 5) + var/jelly_amount = S.reagents.get_reagent_amount(/datum/reagent/royal_bee_jelly) + if(jelly_amount) + if(jelly_amount >= 5) + S.reagents.remove_reagent(/datum/reagent/royal_bee_jelly, 5) var/obj/item/queen_bee/qb = new(user.drop_location()) qb.queen = new(qb) if(queen && queen.beegent) @@ -266,8 +267,8 @@ to_chat(user, "You don't have enough royal bee jelly to split a bee in two!") else var/datum/reagent/R = GLOB.chemical_reagents_list[S.reagents.get_master_reagent_id()] - if(R && S.reagents.has_reagent(R.id, 5)) - S.reagents.remove_reagent(R.id,5) + if(R && S.reagents.has_reagent(R.type, 5)) + S.reagents.remove_reagent(R.type,5) queen.assign_reagent(R) user.visible_message("[user] injects [src]'s genome with [R.name], mutating it's DNA!","You inject [src]'s genome with [R.name], mutating it's DNA!") name = queen.name diff --git a/code/modules/mob/living/simple_animal/hostile/giant_spider.dm b/code/modules/mob/living/simple_animal/hostile/giant_spider.dm index 69209f7266..2e7c0ff455 100644 --- a/code/modules/mob/living/simple_animal/hostile/giant_spider.dm +++ b/code/modules/mob/living/simple_animal/hostile/giant_spider.dm @@ -6,7 +6,7 @@ /mob/living/simple_animal/hostile/poison var/poison_per_bite = 5 - var/poison_type = "toxin" + var/poison_type = /datum/reagent/toxin /mob/living/simple_animal/hostile/poison/AttackingTarget() . = ..() @@ -158,7 +158,7 @@ melee_damage_upper = 1 poison_per_bite = 12 move_to_delay = 4 - poison_type = "venom" //all in venom, glass cannon. you bite 5 times and they are DEFINITELY dead, but 40 health and you are extremely obvious. Ambush, maybe? + poison_type = /datum/reagent/toxin/venom //all in venom, glass cannon. you bite 5 times and they are DEFINITELY dead, but 40 health and you are extremely obvious. Ambush, maybe? speed = 1 gold_core_spawnable = NO_SPAWN @@ -217,7 +217,7 @@ atmos_requirements = list("min_oxy" = 0, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 0, "min_co2" = 0, "max_co2" = 0, "min_n2" = 0, "max_n2" = 0) minbodytemp = 0 maxbodytemp = 1500 - poison_type = "frostoil" + poison_type = /datum/reagent/consumable/frostoil color = rgb(114,228,250) gold_core_spawnable = NO_SPAWN @@ -226,7 +226,7 @@ atmos_requirements = list("min_oxy" = 0, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 0, "min_co2" = 0, "max_co2" = 0, "min_n2" = 0, "max_n2" = 0) minbodytemp = 0 maxbodytemp = 1500 - poison_type = "frostoil" + poison_type = /datum/reagent/consumable/frostoil color = rgb(114,228,250) gold_core_spawnable = NO_SPAWN @@ -235,7 +235,7 @@ atmos_requirements = list("min_oxy" = 0, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 0, "min_co2" = 0, "max_co2" = 0, "min_n2" = 0, "max_n2" = 0) minbodytemp = 0 maxbodytemp = 1500 - poison_type = "frostoil" + poison_type = /datum/reagent/consumable/frostoil color = rgb(114,228,250) gold_core_spawnable = NO_SPAWN diff --git a/code/modules/mob/living/simple_animal/hostile/jungle/leaper.dm b/code/modules/mob/living/simple_animal/hostile/jungle/leaper.dm index d1e8f1f49e..34903a477b 100644 --- a/code/modules/mob/living/simple_animal/hostile/jungle/leaper.dm +++ b/code/modules/mob/living/simple_animal/hostile/jungle/leaper.dm @@ -42,7 +42,7 @@ ..() if(iscarbon(target)) var/mob/living/carbon/C = target - C.reagents.add_reagent("leaper_venom", 5) + C.reagents.add_reagent(/datum/reagent/toxin/leaper_venom, 5) return if(isanimal(target)) var/mob/living/simple_animal/L = target @@ -96,7 +96,7 @@ L.Knockdown(50) if(iscarbon(L)) var/mob/living/carbon/C = L - C.reagents.add_reagent("leaper_venom", 5) + C.reagents.add_reagent(/datum/reagent/toxin/leaper_venom, 5) if(isanimal(L)) var/mob/living/simple_animal/A = L A.adjustHealth(25) @@ -105,7 +105,6 @@ /datum/reagent/toxin/leaper_venom name = "Leaper venom" - id = "leaper_venom" description = "A toxin spat out by leapers that, while harmless in small doses, quickly creates a toxic reaction if too much is in the body." color = "#801E28" // rgb: 128, 30, 40 toxpwr = 0 diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/megafauna.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/megafauna.dm index c6386540f7..af3014cb18 100644 --- a/code/modules/mob/living/simple_animal/hostile/megafauna/megafauna.dm +++ b/code/modules/mob/living/simple_animal/hostile/megafauna/megafauna.dm @@ -103,13 +103,13 @@ /mob/living/simple_animal/hostile/megafauna/ex_act(severity, target) switch (severity) - if (1) + if (EXPLODE_DEVASTATE) adjustBruteLoss(250) - if (2) + if (EXPLODE_HEAVY) adjustBruteLoss(100) - if(3) + if(EXPLODE_LIGHT) adjustBruteLoss(50) /mob/living/simple_animal/hostile/megafauna/proc/SetRecoveryTime(buffer_time) diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/gutlunch.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/gutlunch.dm index 910e9c3c4a..9e9fbaeab8 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/gutlunch.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/gutlunch.dm @@ -131,7 +131,7 @@ /obj/item/udder/gutlunch/generateMilk() if(prob(60)) - reagents.add_reagent("cream", rand(2, 5)) + reagents.add_reagent(/datum/reagent/consumable/cream, rand(2, 5)) if(prob(45)) - reagents.add_reagent("salglu_solution", rand(2,5)) + reagents.add_reagent(/datum/reagent/medicine/salglu_solution, rand(2,5)) diff --git a/code/modules/mob/living/simple_animal/hostile/mushroom.dm b/code/modules/mob/living/simple_animal/hostile/mushroom.dm index a5e3cd8120..8301489e8c 100644 --- a/code/modules/mob/living/simple_animal/hostile/mushroom.dm +++ b/code/modules/mob/living/simple_animal/hostile/mushroom.dm @@ -187,6 +187,6 @@ var/counter for(counter=0, counter<=powerlevel, counter++) var/obj/item/reagent_containers/food/snacks/hugemushroomslice/S = new /obj/item/reagent_containers/food/snacks/hugemushroomslice(src.loc) - S.reagents.add_reagent("mushroomhallucinogen", powerlevel) - S.reagents.add_reagent("omnizine", powerlevel) - S.reagents.add_reagent("synaptizine", powerlevel) + S.reagents.add_reagent(/datum/reagent/drug/mushroomhallucinogen, powerlevel) + S.reagents.add_reagent(/datum/reagent/medicine/omnizine, powerlevel) + S.reagents.add_reagent(/datum/reagent/medicine/synaptizine, powerlevel) diff --git a/code/modules/mob/living/simple_animal/slime/slime.dm b/code/modules/mob/living/simple_animal/slime/slime.dm index 439ea5b2bf..107a6eed38 100644 --- a/code/modules/mob/living/simple_animal/slime/slime.dm +++ b/code/modules/mob/living/simple_animal/slime/slime.dm @@ -141,9 +141,9 @@ . = ..() remove_movespeed_modifier(MOVESPEED_ID_SLIME_REAGENTMOD, TRUE) var/amount = 0 - if(reagents.has_reagent("morphine")) // morphine slows slimes down + if(reagents.has_reagent(/datum/reagent/medicine/morphine)) // morphine slows slimes down amount = 2 - if(reagents.has_reagent("frostoil")) // Frostoil also makes them move VEEERRYYYYY slow + if(reagents.has_reagent(/datum/reagent/consumable/frostoil)) // Frostoil also makes them move VEEERRYYYYY slow amount = 5 if(amount) add_movespeed_modifier(MOVESPEED_ID_SLIME_REAGENTMOD, TRUE, 100, override = TRUE, multiplicative_slowdown = amount) diff --git a/code/modules/mob/say_vr.dm b/code/modules/mob/say_vr.dm index a7ffd29463..a387dcb1d2 100644 --- a/code/modules/mob/say_vr.dm +++ b/code/modules/mob/say_vr.dm @@ -3,6 +3,7 @@ ////////////////////////////////////////////////////// /mob var/flavor_text = "" //tired of fucking double checking this + var/flavor_text_2 = "" /mob/proc/update_flavor_text() set src in usr @@ -16,6 +17,19 @@ flavor_text = msg +/mob/proc/update_flavor_text_2() + set src in usr + if(usr != src) + to_chat(usr, "No.") + var/msg = stripped_multiline_input(usr, "Set the temporary flavor text in your 'examine' verb. This should be used only for things pertaining to the current round!", "Short-Term Flavor Text", html_decode(flavor_text_2), MAX_MESSAGE_LEN*2, TRUE) + + if(!isnull(msg)) + msg = copytext(msg, 1, MAX_MESSAGE_LEN) + msg = html_encode(msg) + + flavor_text_2 = msg + + /mob/proc/warn_flavor_changed() if(flavor_text && flavor_text != "") // don't spam people that don't use it! to_chat(src, "

OOC Warning:

") @@ -30,6 +44,16 @@ else return "[html_encode(copytext(msg, 1, 37))]... More..." +/mob/proc/print_flavor_text_2() + if(flavor_text && flavor_text != "") + // We are decoding and then encoding to not only get correct amount of characters, but also to prevent partial escaping characters being shown. + var/msg = html_decode(replacetext(flavor_text_2, "\n", " ")) + if(length(msg) <= 40) + return "[html_encode(msg)]" + else + return "[html_encode(copytext(msg, 1, 37))]... More..." + + /mob/proc/get_top_level_mob() if(istype(src.loc,/mob)&&src.loc!=src) var/mob/M=src.loc diff --git a/code/modules/ninja/suit/n_suit_verbs/ninja_adrenaline.dm b/code/modules/ninja/suit/n_suit_verbs/ninja_adrenaline.dm index 816ae58749..89f5d20e70 100644 --- a/code/modules/ninja/suit/n_suit_verbs/ninja_adrenaline.dm +++ b/code/modules/ninja/suit/n_suit_verbs/ninja_adrenaline.dm @@ -4,7 +4,7 @@ if(!ninjacost(0,N_ADRENALINE)) var/mob/living/carbon/human/H = affecting - H.do_adrenaline(150, TRUE, 0, 0, TRUE, list("inaprovaline" = 3, "synaptizine" = 10, "omnizine" = 10), "You feel a sudden surge of energy!") + H.do_adrenaline(150, TRUE, 0, 0, TRUE, list(/datum/reagent/medicine/inaprovaline = 3, /datum/reagent/medicine/synaptizine = 10, /datum/reagent/medicine/omnizine = 10), "You feel a sudden surge of energy!") H.say(pick("A CORNERED FOX IS MORE DANGEROUS THAN A JACKAL!","HURT ME MOOORRREEE!","IMPRESSIVE!"), forced = "ninjaboost") @@ -15,5 +15,5 @@ /obj/item/clothing/suit/space/space_ninja/proc/ninjaboost_after() var/mob/living/carbon/human/H = affecting - H.reagents.add_reagent("radium", a_transfer) + H.reagents.add_reagent(/datum/reagent/radium, a_transfer) to_chat(H, "You are beginning to feel the after-effect of the injection.") diff --git a/code/modules/ninja/suit/suit_attackby.dm b/code/modules/ninja/suit/suit_attackby.dm index 0496a2f1c3..ed920a57d1 100644 --- a/code/modules/ninja/suit/suit_attackby.dm +++ b/code/modules/ninja/suit/suit_attackby.dm @@ -5,13 +5,13 @@ return ..() if(istype(I, /obj/item/reagent_containers/glass))//If it's a glass beaker. - if(I.reagents.has_reagent("radium", a_transfer) && a_boost < a_maxamount) - I.reagents.remove_reagent("radium", a_transfer) + if(I.reagents.has_reagent(/datum/reagent/radium, a_transfer) && a_boost < a_maxamount) + I.reagents.remove_reagent(/datum/reagent/radium, a_transfer) a_boost++; to_chat(U, "There are now [a_boost] adrenaline boosts remaining.") return - if(I.reagents.has_reagent("smoke_powder", a_transfer) && s_bombs < s_maxamount) - I.reagents.remove_reagent("smoke_powder", a_transfer) + if(I.reagents.has_reagent(/datum/reagent/smoke_powder, a_transfer) && s_bombs < s_maxamount) + I.reagents.remove_reagent(/datum/reagent/smoke_powder, a_transfer) s_bombs++; to_chat(U, "There are now [s_bombs] smoke bombs remaining.") return diff --git a/code/modules/paperwork/pen.dm b/code/modules/paperwork/pen.dm index 7567fc1a52..8172a57399 100644 --- a/code/modules/paperwork/pen.dm +++ b/code/modules/paperwork/pen.dm @@ -23,7 +23,7 @@ throw_range = 7 materials = list(MAT_METAL=10) pressure_resistance = 2 - grind_results = list("iron" = 2, "iodine" = 1) + grind_results = list(/datum/reagent/iron = 2, /datum/reagent/iodine = 1) var/colour = "black" //what colour the ink is! var/degrees = 0 var/font = PEN_FONT @@ -165,9 +165,9 @@ /obj/item/pen/sleepy/Initialize() . = ..() create_reagents(45, OPENCONTAINER) - reagents.add_reagent("chloralhydrate", 20) - reagents.add_reagent("mutetoxin", 15) - reagents.add_reagent("tirizene", 10) + reagents.add_reagent(/datum/reagent/toxin/chloralhydrate, 20) + reagents.add_reagent(/datum/reagent/toxin/mutetoxin, 15) + reagents.add_reagent(/datum/reagent/toxin/staminatoxin, 10) /* * (Alan) Edaggers diff --git a/code/modules/paperwork/photocopier.dm b/code/modules/paperwork/photocopier.dm index 4e74ccc44b..e8d318697c 100644 --- a/code/modules/paperwork/photocopier.dm +++ b/code/modules/paperwork/photocopier.dm @@ -335,6 +335,6 @@ name = "toner cartridge" icon = 'icons/obj/device.dmi' icon_state = "tonercartridge" - grind_results = list("iodine" = 40, "iron" = 10) + grind_results = list(/datum/reagent/iodine = 40, /datum/reagent/iron = 10) var/charges = 5 var/max_charges = 5 diff --git a/code/modules/photography/photos/photo.dm b/code/modules/photography/photos/photo.dm index 5682c333c7..49f315d998 100644 --- a/code/modules/photography/photos/photo.dm +++ b/code/modules/photography/photos/photo.dm @@ -9,7 +9,7 @@ w_class = WEIGHT_CLASS_TINY resistance_flags = FLAMMABLE max_integrity = 50 - grind_results = list("iodine" = 4) + grind_results = list(/datum/reagent/iodine = 4) var/datum/picture/picture var/scribble //Scribble on the back. diff --git a/code/modules/power/apc.dm b/code/modules/power/apc.dm index 2652026a11..0ad2983b91 100644 --- a/code/modules/power/apc.dm +++ b/code/modules/power/apc.dm @@ -701,6 +701,52 @@ else return ..() +/obj/machinery/power/apc/rcd_vals(mob/user, obj/item/construction/rcd/the_rcd) + if(the_rcd.upgrade & RCD_UPGRADE_SIMPLE_CIRCUITS) + if(!has_electronics) + if(stat & BROKEN) + to_chat(user, "[src]'s frame is too damaged to support a circuit.") + return FALSE + return list("mode" = RCD_UPGRADE_SIMPLE_CIRCUITS, "delay" = 20, "cost" = 1) + else if(!cell) + if(stat & MAINT) + to_chat(user, "There's no connector for a power cell.") + return FALSE + return list("mode" = RCD_UPGRADE_SIMPLE_CIRCUITS, "delay" = 50, "cost" = 10) //16 for a wall + else + to_chat(user, "[src] has both electronics and a cell.") + return FALSE + return FALSE + +/obj/machinery/power/apc/rcd_act(mob/user, obj/item/construction/rcd/the_rcd, passed_mode) + switch(passed_mode) + if(RCD_UPGRADE_SIMPLE_CIRCUITS) + if(!has_electronics) + if(stat & BROKEN) + to_chat(user, "[src]'s frame is too damaged to support a circuit.") + return + user.visible_message("[user] fabricates a circuit and places it into [src].", \ + "You adapt a power control board and click it into place in [src]'s guts.") + has_electronics = TRUE + locked = TRUE + return TRUE + else if(!cell) + if(stat & MAINT) + to_chat(user, "There's no connector for a power cell.") + return FALSE + var/obj/item/stock_parts/cell/crap/empty/C = new(src) + C.forceMove(src) + cell = C + chargecount = 0 + user.visible_message("[user] fabricates a weak power cell and places it into [src].", \ + "Your [the_rcd.name] whirrs with strain as you create a weak power cell and place it into [src]!") + update_icon() + return TRUE + else + to_chat(user, "[src] has both electronics and a cell.") + return FALSE + return FALSE + /obj/machinery/power/apc/AltClick(mob/user) . = ..() if(!user.canUseTopic(src, !issilicon(user)) || !isturf(loc)) diff --git a/code/modules/power/cable.dm b/code/modules/power/cable.dm index cc03976f79..fde2ce4178 100644 --- a/code/modules/power/cable.dm +++ b/code/modules/power/cable.dm @@ -490,7 +490,7 @@ GLOBAL_LIST_INIT(cable_coil_recipes, list (new/datum/stack_recipe("cable restrai attack_verb = list("whipped", "lashed", "disciplined", "flogged") singular_name = "cable piece" full_w_class = WEIGHT_CLASS_SMALL - grind_results = list("copper" = 2) //2 copper per cable in the coil + grind_results = list(/datum/reagent/copper = 2) //2 copper per cable in the coil usesound = 'sound/items/deconstruct.ogg' /obj/item/stack/cable_coil/cyborg diff --git a/code/modules/power/cell.dm b/code/modules/power/cell.dm index ded99d6fa6..5f9e7038f3 100644 --- a/code/modules/power/cell.dm +++ b/code/modules/power/cell.dm @@ -14,7 +14,7 @@ var/charge = 0 // note %age conveted to actual charge in New var/maxcharge = 1000 materials = list(MAT_METAL=700, MAT_GLASS=50) - grind_results = list("lithium" = 15, "iron" = 5, "silicon" = 5) + grind_results = list(/datum/reagent/lithium = 15, /datum/reagent/iron = 5, /datum/reagent/silicon = 5) var/rigged = FALSE // true if rigged to explode var/chargerate = 100 //how much power is given every tick in a recharger var/self_recharge = 0 //does it self recharge, over time, or not? @@ -106,7 +106,7 @@ /obj/item/stock_parts/cell/on_reagent_change(changetype) ..() - rigged = reagents?.has_reagent("plasma", 5) ? TRUE : FALSE //has_reagent returns the reagent datum + rigged = reagents?.has_reagent(/datum/reagent/toxin/plasma, 5) ? TRUE : FALSE //has_reagent returns the reagent datum /obj/item/stock_parts/cell/proc/explode() var/turf/T = get_turf(src.loc) diff --git a/code/modules/power/lighting.dm b/code/modules/power/lighting.dm index cdbaa29a3b..e50b11ea35 100644 --- a/code/modules/power/lighting.dm +++ b/code/modules/power/lighting.dm @@ -719,7 +719,7 @@ var/base_state var/switchcount = 0 // number of times switched materials = list(MAT_GLASS=100) - grind_results = list("silicon" = 5, "nitrogen" = 10) //Nitrogen is used as a cheaper alternative to argon in incandescent lighbulbs + grind_results = list(/datum/reagent/silicon = 5, /datum/reagent/nitrogen = 10) //Nitrogen is used as a cheaper alternative to argon in incandescent lighbulbs var/rigged = 0 // true if rigged to explode var/brightness = 2 //how much light it gives off @@ -789,7 +789,7 @@ to_chat(user, "You inject the solution into \the [src].") - if(S.reagents.has_reagent("plasma", 5)) + if(S.reagents.has_reagent(/datum/reagent/toxin/plasma, 5)) rigged = 1 diff --git a/code/modules/projectiles/ammunition/ballistic/shotgun.dm b/code/modules/projectiles/ammunition/ballistic/shotgun.dm index ab463163f0..a8d3934208 100644 --- a/code/modules/projectiles/ammunition/ballistic/shotgun.dm +++ b/code/modules/projectiles/ammunition/ballistic/shotgun.dm @@ -134,8 +134,8 @@ /obj/item/ammo_casing/shotgun/dart/bioterror/Initialize() . = ..() - reagents.add_reagent("neurotoxin", 6) - reagents.add_reagent("spore", 6) - reagents.add_reagent("mutetoxin", 6) //;HELP OPS IN MAINT - reagents.add_reagent("coniine", 6) - reagents.add_reagent("sodium_thiopental", 6) + reagents.add_reagent(/datum/reagent/toxin/fentanyl, 6) + reagents.add_reagent(/datum/reagent/toxin/spore, 6) + reagents.add_reagent(/datum/reagent/toxin/mutetoxin, 6) //;HELP OPS IN MAINT + reagents.add_reagent(/datum/reagent/toxin/coniine, 6) + reagents.add_reagent(/datum/reagent/toxin/sodium_thiopental, 6) diff --git a/code/modules/projectiles/projectile.dm b/code/modules/projectiles/projectile.dm index 9141a6d299..04fffaf431 100644 --- a/code/modules/projectiles/projectile.dm +++ b/code/modules/projectiles/projectile.dm @@ -210,7 +210,7 @@ if(reagents && reagents.reagent_list) reagent_note = " REAGENTS:" for(var/datum/reagent/R in reagents.reagent_list) - reagent_note += R.id + " (" + reagent_note += R.type + " (" reagent_note += num2text(R.volume) + ") " if(ismob(firer)) diff --git a/code/modules/projectiles/projectile/bullets/dart_syringe.dm b/code/modules/projectiles/projectile/bullets/dart_syringe.dm index bdbf706448..29e6c39c31 100644 --- a/code/modules/projectiles/projectile/bullets/dart_syringe.dm +++ b/code/modules/projectiles/projectile/bullets/dart_syringe.dm @@ -31,9 +31,9 @@ /obj/item/projectile/bullet/dart/metalfoam/Initialize() . = ..() - reagents.add_reagent("aluminium", 15) - reagents.add_reagent("foaming_agent", 5) - reagents.add_reagent("facid", 5) + reagents.add_reagent(/datum/reagent/aluminium, 15) + reagents.add_reagent(/datum/reagent/foaming_agent, 5) + reagents.add_reagent(/datum/reagent/toxin/acid, 5) /obj/item/projectile/bullet/dart/syringe name = "syringe" @@ -52,20 +52,19 @@ if(blocked != 100) if(M.can_inject(null, FALSE, def_zone, piercing)) // Pass the hit zone to see if it can inject by whether it hit the head or the body. ..(target, blocked, TRUE) - for(var/datum/reagent/R in reagents.reagent_list) //OD prevention time! - if(istype(R, /datum/reagent/medicine)) //Is this a medicine? - if(M.reagents.has_reagent(R.id)) - if(R.overdose_threshold == 0 || emptrig == TRUE) //Is there a possible OD? - M.reagents.add_reagent(R.id, R.volume) - else - var/transVol = CLAMP(R.volume, 0, (R.overdose_threshold - M.reagents.get_reagent_amount(R.id)) -1) - M.reagents.add_reagent(R.id, transVol) + for(var/datum/reagent/medicine/R in reagents.reagent_list) //OD prevention time! + if(M.reagents.has_reagent(R.type)) + if(R.overdose_threshold == 0 || emptrig == TRUE) //Is there a possible OD? + M.reagents.add_reagent(R.type, R.volume) else - if(!R.overdose_threshold == 0) - var/transVol = CLAMP(R.volume, 0, R.overdose_threshold-1) - M.reagents.add_reagent(R.id, transVol) - else - M.reagents.add_reagent(R.id, R.volume) + var/transVol = CLAMP(R.volume, 0, (R.overdose_threshold - M.reagents.get_reagent_amount(R.type)) -1) + M.reagents.add_reagent(R.type, transVol) + else + if(!R.overdose_threshold == 0) + var/transVol = CLAMP(R.volume, 0, R.overdose_threshold-1) + M.reagents.add_reagent(R.type, transVol) + else + M.reagents.add_reagent(R.type, R.volume) diff --git a/code/modules/reagents/chem_wiki_render.dm b/code/modules/reagents/chem_wiki_render.dm index efb6bdecfd..e24da70d47 100644 --- a/code/modules/reagents/chem_wiki_render.dm +++ b/code/modules/reagents/chem_wiki_render.dm @@ -1,18 +1,11 @@ //Generates a markdown txt file for use with the wiki /proc/find_reagent(input) - . = FALSE - if(GLOB.chemical_reagents_list[input]) //prefer IDs! - var/datum/reagent/R = GLOB.chemical_reagents_list[input] - return R - else - for(var/X in GLOB.chemical_reagents_list) - var/datum/reagent/R = GLOB.chemical_reagents_list[X] - if(input == replacetext(lowertext(R.name), " ", "")) - return R - if(input == replacetext(lowertext(R.id), " ", "")) - return R - + //prefer types! + . = GLOB.chemical_reagents_list[text2path(input)] + if(.) + return + . = GLOB.name2reagent[ckey(input)] @@ -24,7 +17,7 @@ var/prefix = "|Name | Reagents | Reaction vars | Description | Chem properties |\n|---|---|---|-----------|---|\n" - var/input_reagent = replacetext(lowertext(input("Input the name/id of a reagent to get it's description on it's own, or leave blank to parse every chem.", "Input") as text), " ", "") //95% of the time, the reagent id is a lowercase/no spaces version of the name + var/input_reagent = replacetext(lowertext(input("Input the name/type of a reagent to get it's description on it's own, or leave blank to parse every chem.", "Input") as text), " ", "") //95% of the time, the reagent type is a lowercase, no spaces / underscored version of the name if(input_reagent) var/input_reagent2 = find_reagent(input_reagent) if(!input_reagent2) @@ -68,98 +61,23 @@ var/impure = "" //Chem_dispencer - var/list/dispensable_reagents = list( - "hydrogen", - "lithium", - "carbon", - "nitrogen", - "oxygen", - "fluorine", - "sodium", - "aluminium", - "silicon", - "phosphorus", - "sulfur", - "chlorine", - "potassium", - "iron", - "copper", - "mercury", - "radium", - "water", - "ethanol", - "sugar", - "sacid", - "welding_fuel", - "silver", - "iodine", - "bromine", - "stable_plasma" - ) - var/list/components = list( - "oil", - "ammonia", - "ash", - "acetone", - "phenol", - "diethylamine", - "saltpetre", - "sodiumchloride", - "lye" - ) + var/obj/machinery/chem_dispenser/C + var/list/dispensable_reagents = initial(C.dispensable_reagents) + var/list/components = initial(C.upgrade_reagents) + initial(C.upgrade_reagents2) + initial(C.upgrade_reagents3) var/list/grind = list( - "bluespace", - "gold", - "plasma", - "uranium" + /datum/reagent/bluespace, + /datum/reagent/gold, + /datum/reagent/toxin/plasma, + /datum/reagent/uranium ) //Bartender - var/dispence_drinks = list( - "water", - "ice", - "coffee", - "cream", - "tea", - "icetea", - "cola", - "spacemountainwind", - "dr_gibb", - "space_up", - "tonic", - "sodawater", - "lemon_lime", - "pwr_game", - "shamblers", - "sugar", - "orangejuice", - "grenadine", - "limejuice", - "tomatojuice", - "lemonjuice", - "menthol" - ) - var/dispence_alco = list( - "beer", - "kahlua", - "whiskey", - "wine", - "vodka", - "gin", - "rum", - "tequila", - "vermouth", - "cognac", - "ale", - "absinthe", - "hcider", - "creme_de_menthe", - "creme_de_cacao", - "triple_sec", - "sake", - "applejack" - ) + var/obj/machinery/chem_dispenser/drinks/D + var/dispence_drinks = initial(D.dispensable_reagents) + + var/obj/machinery/chem_dispenser/drinks/beer/B + var/dispence_alco = initial(B.dispensable_reagents) var/breakout = FALSE for(var/i = 1, i <= 2, i+=1) @@ -169,31 +87,31 @@ continue for(var/Y in dispensable_reagents) //Why do you have to do this - if(R.id == Y) + if(R.type == Y) basic += generate_chemwiki_line(R, X, processCR) breakout = TRUE continue for(var/Y in components) - if(R.id == Y) + if(R.type == Y) upgraded += generate_chemwiki_line(R, X, processCR) breakout = TRUE continue for(var/Y in dispence_drinks) - if(R.id == Y) + if(R.type == Y) drinks += generate_chemwiki_line(R, X, processCR) breakout = TRUE continue for(var/Y in dispence_alco) - if(R.id == Y) + if(R.type == Y) alco += generate_chemwiki_line(R, X, processCR) breakout = TRUE continue for(var/Y in grind) - if(R.id == Y) + if(R.type == Y) grinded += generate_chemwiki_line(R, X, processCR) breakout = TRUE continue @@ -273,7 +191,7 @@ /proc/generate_chemwiki_line(datum/reagent/R, X, processCR) //name | Reagent pH | reagents | reaction temp | explosion temp | pH range | Kinetics | description | OD level | Addiction level | Metabolism rate | impure chem | inverse chem - var/datum/chemical_reaction/CR = get_chemical_reaction(R.id) + var/datum/chemical_reaction/CR = get_chemical_reaction(R.type) if((!CR && processCR) || (CR && !processCR)) // Do reactions first. return "" @@ -284,11 +202,11 @@ outstring += "
    " for(var/R2 in CR.required_reagents) R3 = GLOB.chemical_reagents_list[R2]//What a convoluted mess - outstring += "
  • [R3.name]: [CR.required_reagents[R3.id]]u
  • " + outstring += "
  • [R3.name]: [CR.required_reagents[R3.type]]u
  • " if(CR.required_catalysts) for(var/R2 in CR.required_catalysts) R3 = GLOB.chemical_reagents_list[R2] - outstring += "
  • Catalyst: [R3.name]: [CR.required_catalysts[R3.id]]u
  • " + outstring += "
  • Catalyst: [R3.name]: [CR.required_catalysts[R3.type]]u
  • " outstring += "
| " else outstring += "N/A | " @@ -332,11 +250,11 @@ //Description, OD, Addict, Meta outstring += "[R.description] |
  • Metabolism rate: [R.metabolization_rate/2]u/s
  • [(R.overdose_threshold?"
  • Overdose: [R.overdose_threshold]u
  • ":"")] [(R.addiction_threshold?"
  • Addiction: [R.addiction_threshold]u
  • ":"")] " - if(R.impure_chem && R.impure_chem != "fermiTox") + if(R.impure_chem && R.impure_chem != /datum/reagent/impure/fermiTox) R3 = GLOB.chemical_reagents_list[R.impure_chem] outstring += "
  • Impure chem:[R3.name]
  • " - if(R.inverse_chem && R.impure_chem != "fermiTox") + if(R.inverse_chem && R.impure_chem != /datum/reagent/impure/fermiTox) R3 = GLOB.chemical_reagents_list[R.inverse_chem] outstring += "
  • Inverse chem:[R3.name]
  • [(R3.inverse_chem_val?"
  • Inverse purity: [R3.inverse_chem_val]
  • ":"")] " @@ -361,11 +279,11 @@ var/datum/reagent/R3 for(var/R2 in CR.required_reagents) R3 = GLOB.chemical_reagents_list[R2] - outstring += "
  • [R3.name]: [CR.required_reagents[R3.id]]u
  • " + outstring += "
  • [R3.name]: [CR.required_reagents[R3.type]]u
  • " if(CR.required_catalysts) for(var/R2 in CR.required_catalysts) R3 = GLOB.chemical_reagents_list[R2] - outstring += "
  • Catalyst: [R3.name]: [CR.required_catalysts[R3.id]]u
  • " + outstring += "
  • Catalyst: [R3.name]: [CR.required_catalysts[R3.type]]u
  • " outstring += "
|
    " //Reaction vars diff --git a/code/modules/reagents/chemistry/holder.dm b/code/modules/reagents/chemistry/holder.dm index d540cd02fe..bf3c4220b4 100644 --- a/code/modules/reagents/chemistry/holder.dm +++ b/code/modules/reagents/chemistry/holder.dm @@ -11,13 +11,13 @@ for(var/path in paths) var/datum/reagent/D = new path() - GLOB.chemical_reagents_list[D.id] = D + GLOB.chemical_reagents_list[path] = D /proc/build_chemical_reactions_list() //Chemical Reactions - Initialises all /datum/chemical_reaction into a list // It is filtered into multiple lists within a list. // For example: - // chemical_reaction_list["plasma"] is a list of all reactions relating to plasma + // chemical_reaction_list[/datum/reagent/toxin/plasma] is a list of all reactions relating to plasma if(GLOB.chemical_reactions_list) return @@ -32,14 +32,11 @@ var/datum/chemical_reaction/D = new path() var/list/reaction_ids = list() - if(!D.id) - continue - if(D.required_reagents && D.required_reagents.len) for(var/reaction in D.required_reagents) reaction_ids += reaction - // Create filters based on each reagent id in the required reagents list + // Create filters based on each reagent type in the required reagents list for(var/id in reaction_ids) if(!GLOB.chemical_reactions_list[id]) GLOB.chemical_reactions_list[id] = list() @@ -63,7 +60,7 @@ var/targetVol = 0 //the target volume, i.e. the total amount that can be created during a fermichem reaction. var/reactedVol = 0 //how much of the reagent is reacted during a fermireaction var/fermiIsReacting = FALSE //that prevents multiple reactions from occurring (i.e. add_reagent calls to process_reactions(), this stops any extra reactions.) - var/fermiReactID //ID of the chem being made during a fermireaction, kept here so it's cache isn't lost between loops/procs. + var/fermiReactID //instance of the chem reaction used during a fermireaction, kept here so it's cache isn't lost between loops/procs. /datum/reagents/New(maximum=100, new_flags) maximum_volume = maximum @@ -96,7 +93,7 @@ var/list/data = list() for(var/r in reagent_list) //no reagents will be left behind var/datum/reagent/R = r - data += "[R.id] ([round(R.volume, CHEMICAL_QUANTISATION_LEVEL)]u)" + data += "[R.type] ([round(R.volume, CHEMICAL_QUANTISATION_LEVEL)]u)" //Using IDs because SOME chemicals (I'm looking at you, chlorhydrate-beer) have the same names as other chemicals. return english_list(data) @@ -117,7 +114,7 @@ current_list_element = 1 var/datum/reagent/R = cached_reagents[current_list_element] - remove_reagent(R.id, 1) + remove_reagent(R.type, 1) current_list_element++ total_transfered++ @@ -132,7 +129,7 @@ var/part = amount / total_volume for(var/reagent in cached_reagents) var/datum/reagent/R = reagent - remove_reagent(R.id, R.volume * part, ignore_pH = TRUE) + remove_reagent(R.type, R.volume * part, ignore_pH = TRUE) pH = REAGENT_NORMAL_PH update_total() handle_reactions() @@ -152,15 +149,15 @@ /datum/reagents/proc/get_master_reagent_id() var/list/cached_reagents = reagent_list - var/id + var/max_type var/max_volume = 0 for(var/reagent in cached_reagents) var/datum/reagent/R = reagent if(R.volume > max_volume) max_volume = R.volume - id = R.id + max_type = R.type - return id + return max_type /datum/reagents/proc/get_master_reagent() var/list/cached_reagents = reagent_list @@ -198,9 +195,9 @@ trans_data = copy_data(T) - R.add_reagent(T.id, transfer_amount * multiplier, trans_data, chem_temp, T.purity, pH, no_react = TRUE, ignore_pH = TRUE) //we only handle reaction after every reagent has been transfered. + R.add_reagent(T.type, transfer_amount * multiplier, trans_data, chem_temp, T.purity, pH, no_react = TRUE, ignore_pH = TRUE) //we only handle reaction after every reagent has been transfered. - remove_reagent(T.id, transfer_amount, ignore_pH = TRUE) + remove_reagent(T.type, transfer_amount, ignore_pH = TRUE) update_total() R.update_total() @@ -232,7 +229,7 @@ var/copy_amount = T.volume * part if(preserve_data) trans_data = T.data - R.add_reagent(T.id, copy_amount * multiplier, trans_data) + R.add_reagent(T.type, copy_amount * multiplier, trans_data) src.update_total() R.update_total() @@ -256,12 +253,12 @@ var/trans_data = null for (var/CR in cached_reagents) var/datum/reagent/current_reagent = CR - if(current_reagent.id == reagent) + if(current_reagent.type == reagent) if(preserve_data) trans_data = current_reagent.data - R.add_reagent(current_reagent.id, amount, trans_data, chem_temp, current_reagent.purity, pH, no_react = TRUE) + R.add_reagent(current_reagent.type, amount, trans_data, chem_temp, current_reagent.purity, pH, no_react = TRUE) - remove_reagent(current_reagent.id, amount, 1) + remove_reagent(current_reagent.type, amount, 1) break src.update_total() @@ -313,18 +310,21 @@ var/datum/reagent/R = addiction if(C && R) R.addiction_stage++ - if(1 <= R.addiction_stage && R.addiction_stage <= R.addiction_stage1_end) - need_mob_update += R.addiction_act_stage1(C) - else if(R.addiction_stage1_end <= R.addiction_stage && R.addiction_stage <= R.addiction_stage2_end) - need_mob_update += R.addiction_act_stage2(C) - else if(R.addiction_stage2_end <= R.addiction_stage && R.addiction_stage <= R.addiction_stage3_end) - need_mob_update += R.addiction_act_stage3(C) - else if(R.addiction_stage3_end <= R.addiction_stage && R.addiction_stage <= R.addiction_stage4_end) - need_mob_update += R.addiction_act_stage4(C) - else if(R.addiction_stage4_end <= R.addiction_stage) - to_chat(C, "You feel like you've gotten over your need for [R.name].") - SEND_SIGNAL(C, COMSIG_CLEAR_MOOD_EVENT, "[R.id]_addiction") - cached_addictions.Remove(R) + switch(R.addiction_stage) + if(1 to R.addiction_stage1_end) + need_mob_update += R.addiction_act_stage1(C) + if(R.addiction_stage1_end to R.addiction_stage2_end) + need_mob_update += R.addiction_act_stage2(C) + if(R.addiction_stage2_end to R.addiction_stage3_end) + need_mob_update += R.addiction_act_stage3(C) + if(R.addiction_stage3_end to R.addiction_stage4_end) + need_mob_update += R.addiction_act_stage4(C) + if(R.addiction_stage4_end to INFINITY) + to_chat(C, "You feel like you've gotten over your need for [R.name].") + SEND_SIGNAL(C, COMSIG_CLEAR_MOOD_EVENT, "[R.type]_addiction") + cached_addictions.Remove(R) + else + SEND_SIGNAL(C, COMSIG_CLEAR_MOOD_EVENT, "[R.type]_overdose") addiction_tick++ if(C && need_mob_update) //some of the metabolized reagents had effects on the mob that requires some updates. C.updatehealth() @@ -381,7 +381,7 @@ reaction_occurred = 0 for(var/reagent in cached_reagents) var/datum/reagent/R = reagent - for(var/reaction in cached_reactions[R.id]) // Was a big list but now it should be smaller since we filtered it with our reagent id + for(var/reaction in cached_reactions[R.type]) // Was a big list but now it should be smaller since we filtered it with our reagent type if(!reaction) continue @@ -630,7 +630,7 @@ deltapH = 1 //This should never proc: else - WARNING("[my_atom] attempted to determine FermiChem pH for '[C.id]' which broke for some reason! ([usr])") + WARNING("[my_atom] attempted to determine FermiChem pH for '[C.type]' which broke for some reason! ([usr])") //Calculate DeltaT (Deviation of T from optimal) if (cached_temp < C.OptimalTempMax && cached_temp >= C.OptimalTempMin) @@ -679,7 +679,7 @@ //Above should reduce yeild based on holder purity. //Purity Check for(var/datum/reagent/R in my_atom.reagents.reagent_list) - if(P == R.id) + if(P == R.type) if (R.purity < C.PurityMin)//If purity is below the min, blow it up. fermiIsReacting = FALSE SSblackbox.record_feedback("tally", "fermi_chem", 1, ("[P] explosion")) @@ -724,7 +724,7 @@ return cachedPurity/i /datum/reagents/proc/uncache_purity(id) - var/datum/reagent/R = has_reagent("[id]") + var/datum/reagent/R = has_reagent(id) if(!R) return if(R.cached_purity == 1) @@ -735,15 +735,15 @@ var/list/cached_reagents = reagent_list for(var/_reagent in cached_reagents) var/datum/reagent/R = _reagent - if(R.id != reagent) - del_reagent(R.id) + if(R.type != reagent) + del_reagent(R.type) update_total() /datum/reagents/proc/del_reagent(reagent) var/list/cached_reagents = reagent_list for(var/_reagent in cached_reagents) var/datum/reagent/R = _reagent - if(R.id == reagent) + if(R.type == reagent) if(my_atom && isliving(my_atom)) var/mob/living/M = my_atom if(R.metabolizing) @@ -763,9 +763,9 @@ for(var/reagent in cached_reagents) var/datum/reagent/R = reagent if(R.volume <= 0)//For clarity - del_reagent(R.id) + del_reagent(R.type) if((R.volume < 0.01) && !fermiIsReacting) - del_reagent(R.id) + del_reagent(R.type) else total_volume += R.volume if(!reagent_list || !total_volume) @@ -776,7 +776,7 @@ var/list/cached_reagents = reagent_list for(var/reagent in cached_reagents) var/datum/reagent/R = reagent - del_reagent(R.id) + del_reagent(R.type) pH = REAGENT_NORMAL_PH return 0 @@ -842,13 +842,13 @@ WARNING("[my_atom] attempted to add a reagent called '[reagent]' which doesn't exist. ([usr])") return FALSE - if (D.id == "water" && !no_react && !istype(my_atom, /obj/item/reagent_containers/food)) //Do like an otter, add acid to water, but also don't blow up botany. + if (D.type == /datum/reagent/water && !no_react && !istype(my_atom, /obj/item/reagent_containers/food)) //Do like an otter, add acid to water, but also don't blow up botany. if (pH < 2) SSblackbox.record_feedback("tally", "fermi_chem", 1, "water-acid explosions") var/datum/effect_system/smoke_spread/chem/s = new var/turf/T = get_turf(my_atom) var/datum/reagents/R = new/datum/reagents(3000) - R.add_reagent("fermiAcid", amount) + R.add_reagent(/datum/reagent/fermi/fermiAcid, amount) for (var/datum/reagent/reagentgas in reagent_list) R.add_reagent(reagentgas, amount/5) remove_reagent(reagentgas, amount/5) @@ -895,7 +895,7 @@ //add the reagent to the existing if it exists for(var/A in cached_reagents) var/datum/reagent/R = A - if (R.id == reagent) //IF MERGING + if (R.type == reagent) //IF MERGING //Add amount and equalize purity R.volume += round(amount, CHEMICAL_QUANTISATION_LEVEL) R.purity = ((R.purity * R.volume) + (other_purity * amount)) /((R.volume + amount)) //This should add the purity to the product @@ -937,7 +937,7 @@ return TRUE -/datum/reagents/proc/add_reagent_list(list/list_reagents, list/data=null) // Like add_reagent but you can enter a list. Format it like this: list("toxin" = 10, "beer" = 15) +/datum/reagents/proc/add_reagent_list(list/list_reagents, list/data=null) // Like add_reagent but you can enter a list. Format it like this: list(/datum/reagent/toxin = 10, /datum/reagent/consumable/ethanol/beer = 15) for(var/r_id in list_reagents) var/amt = list_reagents[r_id] add_reagent(r_id, amt, data) @@ -959,7 +959,7 @@ for(var/A in cached_reagents) var/datum/reagent/R = A - if (R.id == reagent) + if (R.type == reagent) if((total_volume - amount) <= 0)//Because this can result in 0, I don't want it to crash. pH = REAGENT_NORMAL_PH //In practice this is really confusing and players feel like it randomly melts their beakers, but I'm not sure how else to handle it. We'll see how it goes and I can remove this if it confuses people. @@ -986,7 +986,7 @@ var/list/cached_reagents = reagent_list for(var/_reagent in cached_reagents) var/datum/reagent/R = _reagent - if (R.id == reagent) + if (R.type == reagent) if(!amount) return R else @@ -1001,7 +1001,7 @@ var/list/cached_reagents = reagent_list for(var/_reagent in cached_reagents) var/datum/reagent/R = _reagent - if (R.id == reagent) + if (R.type == reagent) return round(R.volume, CHEMICAL_QUANTISATION_LEVEL) return 0 @@ -1034,7 +1034,7 @@ // We found a match, proceed to remove the reagent. Keep looping, we might find other reagents of the same type. if(matches) // Have our other proc handle removement - has_removed_reagent = remove_reagent(R.id, amount, safety) + has_removed_reagent = remove_reagent(R.type, amount, safety) return has_removed_reagent @@ -1043,14 +1043,14 @@ var/list/cached_reagents = reagent_list for(var/reagent in cached_reagents) var/datum/reagent/R = reagent - if(R.id == reagent_id) + if(R.type == reagent_id) return R.data /datum/reagents/proc/set_data(reagent_id, new_data) var/list/cached_reagents = reagent_list for(var/reagent in cached_reagents) var/datum/reagent/R = reagent - if(R.id == reagent_id) + if(R.type == reagent_id) R.data = new_data /datum/reagents/proc/copy_data(datum/reagent/current_reagent) @@ -1143,12 +1143,12 @@ reagents = new/datum/reagents(max_vol, flags) reagents.my_atom = src -/proc/get_random_reagent_id() // Returns a random reagent ID minus blacklisted reagents +/proc/get_random_reagent_id() // Returns a random reagent type minus blacklisted reagents var/static/list/random_reagents = list() if(!random_reagents.len) for(var/thing in subtypesof(/datum/reagent)) var/datum/reagent/R = thing if(initial(R.can_synth)) - random_reagents += initial(R.id) + random_reagents += R var/picked_reagent = pick(random_reagents) return picked_reagent diff --git a/code/modules/reagents/chemistry/machinery/chem_dispenser.dm b/code/modules/reagents/chemistry/machinery/chem_dispenser.dm index 2c5d7aa3e2..424f2bce30 100644 --- a/code/modules/reagents/chemistry/machinery/chem_dispenser.dm +++ b/code/modules/reagents/chemistry/machinery/chem_dispenser.dm @@ -1,3 +1,16 @@ +/proc/translate_legacy_chem_id(id) + switch (id) + if ("sacid") + return "sulphuricacid" + if ("facid") + return "fluorosulfuricacid" + if ("co2") + return "carbondioxide" + if ("mine_salve") + return "minerssalve" + else + return ckey(id) + /obj/machinery/chem_dispenser name = "chem dispenser" desc = "Creates and dispenses chemicals." @@ -21,65 +34,73 @@ var/macrotier = 1 var/obj/item/reagent_containers/beaker = null var/list/dispensable_reagents = list( - "hydrogen", - "lithium", - "carbon", - "nitrogen", - "oxygen", - "fluorine", - "sodium", - "aluminium", - "silicon", - "phosphorus", - "sulfur", - "chlorine", - "potassium", - "iron", - "copper", - "mercury", - "radium", - "water", - "ethanol", - "sugar", - "sacid", - "welding_fuel", - "silver", - "iodine", - "bromine", - "stable_plasma" + /datum/reagent/hydrogen, + /datum/reagent/lithium, + /datum/reagent/carbon, + /datum/reagent/nitrogen, + /datum/reagent/oxygen, + /datum/reagent/fluorine, + /datum/reagent/sodium, + /datum/reagent/aluminium, + /datum/reagent/silicon, + /datum/reagent/phosphorus, + /datum/reagent/sulfur, + /datum/reagent/chlorine, + /datum/reagent/potassium, + /datum/reagent/iron, + /datum/reagent/copper, + /datum/reagent/mercury, + /datum/reagent/radium, + /datum/reagent/water, + /datum/reagent/consumable/ethanol, + /datum/reagent/consumable/sugar, + /datum/reagent/toxin/acid, + /datum/reagent/fuel, + /datum/reagent/silver, + /datum/reagent/iodine, + /datum/reagent/bromine, + /datum/reagent/stable_plasma ) //these become available once upgraded. var/list/upgrade_reagents = list( - "oil", - "ammonia", - "ash" + /datum/reagent/oil, + /datum/reagent/ammonia, + /datum/reagent/ash ) var/list/upgrade_reagents2 = list( - "acetone", - "phenol", - "diethylamine" + /datum/reagent/acetone, + /datum/reagent/phenol, + /datum/reagent/diethylamine ) var/list/upgrade_reagents3 = list( - "mine_salve", - "toxin" + /datum/reagent/medicine/mine_salve, + /datum/reagent/toxin ) var/list/emagged_reagents = list( - "space_drugs", - "plasma", - "frostoil", - "carpotoxin", - "histamine", - "morphine" + /datum/reagent/drug/space_drugs, + /datum/reagent/toxin/plasma, + /datum/reagent/consumable/frostoil, + /datum/reagent/toxin/carpotoxin, + /datum/reagent/toxin/histamine, + /datum/reagent/medicine/morphine ) var/list/saved_recipes = list() /obj/machinery/chem_dispenser/Initialize() . = ..() - dispensable_reagents = sortList(dispensable_reagents) + if(emagged_reagents) + emagged_reagents = sortList(emagged_reagents, /proc/cmp_reagents_asc) + if(upgrade_reagents) + upgrade_reagents = sortList(upgrade_reagents, /proc/cmp_reagents_asc) + if(upgrade_reagents2) + upgrade_reagents2 = sortList(upgrade_reagents2, /proc/cmp_reagents_asc) + if(upgrade_reagents3) + upgrade_reagents3 = sortList(upgrade_reagents3, /proc/cmp_reagents_asc) + dispensable_reagents = sortList(dispensable_reagents, /proc/cmp_reagents_asc) update_icon() /obj/machinery/chem_dispenser/Destroy() @@ -213,7 +234,7 @@ var/chemname = temp.name if(is_hallucinating && prob(5)) chemname = "[pick_list_replacements("hallucination.json", "chemicals")]" - chemicals.Add(list(list("title" = chemname, "id" = temp.id))) + chemicals.Add(list(list("title" = chemname, "id" = ckey(temp.name)))) for(var/recipe in saved_recipes) recipes.Add(list(recipe)) data["chemicals"] = chemicals @@ -235,7 +256,7 @@ if("dispense") if(!is_operational() || QDELETED(cell)) return - var/reagent = params["reagent"] + var/reagent = GLOB.name2reagent[params["reagent"]] if(beaker && dispensable_reagents.Find(reagent)) var/datum/reagents/R = beaker.reagents var/free = R.maximum_volume - R.total_volume @@ -267,7 +288,7 @@ var/res = get_macro_resolution() for(var/key in chemicals_to_dispense) // i suppose you could edit the list locally before passing it var/list/keysplit = splittext(key," ") - var/r_id = keysplit[1] + var/r_id = GLOB.name2reagent[translate_legacy_chem_id(keysplit[1])] if(beaker && dispensable_reagents.Find(r_id)) // but since we verify we have the reagent, it'll be fine var/datum/reagents/R = beaker.reagents var/free = R.maximum_volume - R.total_volume @@ -299,7 +320,8 @@ var/resmismatch = FALSE for(var/reagents in first_process) var/list/reagent = splittext(reagents, "=") - if(dispensable_reagents.Find(reagent[1])) + var/reagent_id = GLOB.name2reagent[translate_legacy_chem_id(reagent[1])] + if(dispensable_reagents.Find(reagent_id)) if (!resmismatch && !check_macro_part(reagents, res)) resmismatch = TRUE continue @@ -475,45 +497,45 @@ nopower_state = null pass_flags = PASSTABLE dispensable_reagents = list( - "water", - "ice", - "coffee", - "cream", - "tea", - "icetea", - "cola", - "spacemountainwind", - "dr_gibb", - "space_up", - "tonic", - "sodawater", - "lemon_lime", - "pwr_game", - "shamblers", - "sugar", - "orangejuice", - "grenadine", - "limejuice", - "tomatojuice", - "lemonjuice", - "menthol" + /datum/reagent/water, + /datum/reagent/consumable/ice, + /datum/reagent/consumable/coffee, + /datum/reagent/consumable/cream, + /datum/reagent/consumable/tea, + /datum/reagent/consumable/icetea, + /datum/reagent/consumable/space_cola, + /datum/reagent/consumable/spacemountainwind, + /datum/reagent/consumable/dr_gibb, + /datum/reagent/consumable/space_up, + /datum/reagent/consumable/tonic, + /datum/reagent/consumable/sodawater, + /datum/reagent/consumable/lemon_lime, + /datum/reagent/consumable/pwr_game, + /datum/reagent/consumable/shamblers, + /datum/reagent/consumable/sugar, + /datum/reagent/consumable/orangejuice, + /datum/reagent/consumable/grenadine, + /datum/reagent/consumable/limejuice, + /datum/reagent/consumable/tomatojuice, + /datum/reagent/consumable/lemonjuice, + /datum/reagent/consumable/menthol ) upgrade_reagents = list( - "mushroomhallucinogen", - "nothing", - "cryoxadone" + /datum/reagent/drug/mushroomhallucinogen, + /datum/reagent/consumable/nothing, + /datum/reagent/medicine/cryoxadone ) upgrade_reagents2 = list( - "banana", - "berryjuice" + /datum/reagent/consumable/banana, + /datum/reagent/consumable/berryjuice ) upgrade_reagents3 = null emagged_reagents = list( - "thirteenloko", - "changelingsting", - "whiskeycola", - "mindbreaker", - "tirizene" + /datum/reagent/consumable/ethanol/thirteenloko, + /datum/reagent/consumable/ethanol/changelingsting, + /datum/reagent/consumable/ethanol/whiskey_cola, + /datum/reagent/toxin/mindbreaker, + /datum/reagent/toxin/staminatoxin ) @@ -542,39 +564,39 @@ icon_state = "booze_dispenser" circuit = /obj/item/circuitboard/machine/chem_dispenser/drinks/beer dispensable_reagents = list( - "beer", - "kahlua", - "whiskey", - "wine", - "vodka", - "gin", - "rum", - "tequila", - "vermouth", - "cognac", - "ale", - "absinthe", - "hcider", - "creme_de_menthe", - "creme_de_cacao", - "triple_sec", - "sake", - "applejack" + /datum/reagent/consumable/ethanol/beer, + /datum/reagent/consumable/ethanol/kahlua, + /datum/reagent/consumable/ethanol/whiskey, + /datum/reagent/consumable/ethanol/wine, + /datum/reagent/consumable/ethanol/vodka, + /datum/reagent/consumable/ethanol/gin, + /datum/reagent/consumable/ethanol/rum, + /datum/reagent/consumable/ethanol/tequila, + /datum/reagent/consumable/ethanol/vermouth, + /datum/reagent/consumable/ethanol/cognac, + /datum/reagent/consumable/ethanol/ale, + /datum/reagent/consumable/ethanol/absinthe, + /datum/reagent/consumable/ethanol/hcider, + /datum/reagent/consumable/ethanol/creme_de_menthe, + /datum/reagent/consumable/ethanol/creme_de_cacao, + /datum/reagent/consumable/ethanol/triple_sec, + /datum/reagent/consumable/ethanol/sake, + /datum/reagent/consumable/ethanol/applejack ) upgrade_reagents = list( - "ethanol", - "fernet" + /datum/reagent/consumable/ethanol, + /datum/reagent/consumable/ethanol/fernet ) upgrade_reagents2 = null upgrade_reagents3 = null emagged_reagents = list( - "iron", - "alexander", - "clownstears", - "minttoxin", - "atomicbomb", - "aphro", - "aphro+" + /datum/reagent/iron, + /datum/reagent/consumable/ethanol/alexander, + /datum/reagent/consumable/clownstears, + /datum/reagent/toxin/minttoxin, + /datum/reagent/consumable/ethanol/atomicbomb, + /datum/reagent/drug/aphrodisiac, + /datum/reagent/drug/aphrodisiacplus ) /obj/machinery/chem_dispenser/drinks/beer/fullupgrade //fully ugpraded stock parts, emagged @@ -598,9 +620,9 @@ /obj/machinery/chem_dispenser/mutagen name = "mutagen dispenser" desc = "Creates and dispenses mutagen." - dispensable_reagents = list("mutagen") + dispensable_reagents = list(/datum/reagent/toxin/mutagen) upgrade_reagents = null - emagged_reagents = list("plasma") + emagged_reagents = list(/datum/reagent/toxin/plasma) /obj/machinery/chem_dispenser/mutagensaltpeter @@ -609,19 +631,19 @@ flags_1 = NODECONSTRUCT_1 dispensable_reagents = list( - "mutagen", - "saltpetre", - "eznutriment", - "left4zednutriment", - "robustharvestnutriment", - "water", - "plantbgone", - "weedkiller", - "pestkiller", - "cryoxadone", - "ammonia", - "ash", - "diethylamine") + /datum/reagent/toxin/mutagen, + /datum/reagent/saltpetre, + /datum/reagent/plantnutriment/eznutriment, + /datum/reagent/plantnutriment/left4zednutriment, + /datum/reagent/plantnutriment/robustharvestnutriment, + /datum/reagent/water, + /datum/reagent/toxin/plantbgone, + /datum/reagent/toxin/plantbgone/weedkiller, + /datum/reagent/toxin/pestkiller, + /datum/reagent/medicine/cryoxadone, + /datum/reagent/ammonia, + /datum/reagent/ash, + /datum/reagent/diethylamine) //same as above. upgrade_reagents = null upgrade_reagents2 = null @@ -667,46 +689,46 @@ working_state = null nopower_state = null dispensable_reagents = list( - "hydrogen", - "lithium", - "carbon", - "nitrogen", - "oxygen", - "fluorine", - "sodium", - "aluminium", - "silicon", - "phosphorus", - "sulfur", - "chlorine", - "potassium", - "iron", - "copper", - "mercury", - "radium", - "water", - "ethanol", - "sugar", - "sacid", - "welding_fuel", - "silver", - "iodine", - "bromine", - "stable_plasma", - "oil", - "ammonia", - "ash", - "acetone", - "phenol", - "diethylamine", - "mine_salve", - "toxin", - "space_drugs", - "plasma", - "frostoil", - "uranium", - "histamine", - "morphine" + /datum/reagent/hydrogen, + /datum/reagent/lithium, + /datum/reagent/carbon, + /datum/reagent/nitrogen, + /datum/reagent/oxygen, + /datum/reagent/fluorine, + /datum/reagent/sodium, + /datum/reagent/aluminium, + /datum/reagent/silicon, + /datum/reagent/phosphorus, + /datum/reagent/sulfur, + /datum/reagent/chlorine, + /datum/reagent/potassium, + /datum/reagent/iron, + /datum/reagent/copper, + /datum/reagent/mercury, + /datum/reagent/radium, + /datum/reagent/water, + /datum/reagent/consumable/ethanol, + /datum/reagent/consumable/sugar, + /datum/reagent/toxin/acid, + /datum/reagent/fuel, + /datum/reagent/silver, + /datum/reagent/iodine, + /datum/reagent/bromine, + /datum/reagent/stable_plasma, + /datum/reagent/oil, + /datum/reagent/ammonia, + /datum/reagent/ash, + /datum/reagent/acetone, + /datum/reagent/phenol, + /datum/reagent/diethylamine, + /datum/reagent/medicine/mine_salve, + /datum/reagent/toxin, + /datum/reagent/drug/space_drugs, + /datum/reagent/toxin/plasma, + /datum/reagent/consumable/frostoil, + /datum/reagent/uranium, + /datum/reagent/toxin/histamine, + /datum/reagent/medicine/morphine ) /obj/machinery/chem_dispenser/abductor/Initialize() @@ -719,4 +741,4 @@ component_parts += new /obj/item/stock_parts/manipulator/femto(null) component_parts += new /obj/item/stack/sheet/glass(null) component_parts += new /obj/item/stock_parts/cell/bluespace(null) - RefreshParts() \ No newline at end of file + RefreshParts() diff --git a/code/modules/reagents/chemistry/machinery/chem_master.dm b/code/modules/reagents/chemistry/machinery/chem_master.dm index 513626465a..e6b19417d8 100644 --- a/code/modules/reagents/chemistry/machinery/chem_master.dm +++ b/code/modules/reagents/chemistry/machinery/chem_master.dm @@ -186,13 +186,13 @@ var/beakerContents[0] if(beaker) for(var/datum/reagent/R in beaker.reagents.reagent_list) - beakerContents.Add(list(list("name" = R.name, "id" = R.id, "volume" = R.volume))) // list in a list because Byond merges the first list... + beakerContents.Add(list(list("name" = R.name, "id" = ckey(R.name), "volume" = R.volume))) // list in a list because Byond merges the first list... data["beakerContents"] = beakerContents var/bufferContents[0] if(reagents.total_volume) for(var/datum/reagent/N in reagents.reagent_list) - bufferContents.Add(list(list("name" = N.name, "id" = N.id, "volume" = N.volume))) // ^ + bufferContents.Add(list(list("name" = N.name, "id" = ckey(N.name), "volume" = N.volume))) // ^ data["bufferContents"] = bufferContents //Calculated at init time as it never changes @@ -214,34 +214,34 @@ if("transferToBuffer") if(beaker) - var/id = params["id"] + var/reagent = GLOB.name2reagent[params["id"]] var/amount = text2num(params["amount"]) if (amount > 0) end_fermi_reaction() - beaker.reagents.trans_id_to(src, id, amount) + beaker.reagents.trans_id_to(src, reagent, amount) . = TRUE else if (amount == -1) // -1 means custom amount useramount = input("Enter the Amount you want to transfer:", name, useramount) as num|null if (useramount > 0) end_fermi_reaction() - beaker.reagents.trans_id_to(src, id, useramount) + beaker.reagents.trans_id_to(src, reagent, useramount) . = TRUE if("transferFromBuffer") - var/id = params["id"] + var/reagent = GLOB.name2reagent[params["id"]] var/amount = text2num(params["amount"]) if (amount > 0) if(mode) - reagents.trans_id_to(beaker, id, amount) + reagents.trans_id_to(beaker, reagent, amount) . = TRUE else - reagents.remove_reagent(id, amount) + reagents.remove_reagent(reagent, amount) . = TRUE else if (amount == -1) // -1 means custom amount useramount = input("Enter the Amount you want to transfer:", name, useramount) as num|null if (useramount > 0) end_fermi_reaction() - reagents.trans_id_to(beaker, id, useramount) + reagents.trans_id_to(beaker, reagent, useramount) . = TRUE if("toggleMode") @@ -423,7 +423,7 @@ //END CITADEL ADDITIONS if("analyzeBeak") - var/datum/reagent/R = GLOB.chemical_reagents_list[params["id"]] + var/datum/reagent/R = GLOB.name2reagent[params["id"]] if(R) var/state = "Unknown" if(initial(R.reagent_state) == 1) @@ -434,11 +434,11 @@ state = "Gas" var/const/P = 3 //The number of seconds between life ticks var/T = initial(R.metabolization_rate) * (60 / P) - var/datum/chemical_reaction/Rcr = get_chemical_reaction(R.id) + var/datum/chemical_reaction/Rcr = get_chemical_reaction(R.type) if(Rcr && Rcr.FermiChem) fermianalyze = TRUE var/pHpeakCache = (Rcr.OptimalpHMin + Rcr.OptimalpHMax)/2 - var/datum/reagent/targetReagent = beaker.reagents.has_reagent("[R.id]") + var/datum/reagent/targetReagent = beaker.reagents.has_reagent(R.type) if(!targetReagent) CRASH("Tried to find a reagent that doesn't exist in the chem_master!") @@ -450,7 +450,7 @@ return if("analyzeBuff") - var/datum/reagent/R = GLOB.chemical_reagents_list[params["id"]] + var/datum/reagent/R = GLOB.name2reagent[params["id"]] if(R) var/state = "Unknown" if(initial(R.reagent_state) == 1) @@ -463,9 +463,9 @@ var/T = initial(R.metabolization_rate) * (60 / P) if(istype(R, /datum/reagent/fermi)) fermianalyze = TRUE - var/datum/chemical_reaction/Rcr = get_chemical_reaction(R.id) + var/datum/chemical_reaction/Rcr = get_chemical_reaction(R.type) var/pHpeakCache = (Rcr.OptimalpHMin + Rcr.OptimalpHMax)/2 - var/datum/reagent/targetReagent = reagents.has_reagent("[R.id]") + var/datum/reagent/targetReagent = reagents.has_reagent(R.type) if(!targetReagent) CRASH("Tried to find a reagent that doesn't exist in the chem_master!") diff --git a/code/modules/reagents/chemistry/machinery/chem_synthesizer.dm b/code/modules/reagents/chemistry/machinery/chem_synthesizer.dm index daac5a5d1c..ed23e7c75c 100644 --- a/code/modules/reagents/chemistry/machinery/chem_synthesizer.dm +++ b/code/modules/reagents/chemistry/machinery/chem_synthesizer.dm @@ -8,8 +8,8 @@ flags_1 = NODECONSTRUCT_1 use_power = NO_POWER_USE var/static/list/shortcuts = list( - "meth" = "methamphetamine", - "tricord" = "tricordrazine" + "meth" = /datum/reagent/drug/methamphetamine, + "tricord" = /datum/reagent/medicine/tricordrazine ) /obj/machinery/chem_dispenser/chem_synthesizer/ui_interact(mob/user, ui_key = "main", datum/tgui/ui = null, force_open = FALSE, \ @@ -31,13 +31,13 @@ beaker = null . = TRUE if("input") - var/input_reagent = replacetext(lowertext(input("Enter the name of any liquid", "Input") as text), " ", "") //95% of the time, the reagent id is a lowercase/no spaces version of the name + var/input_reagent = replacetext(lowertext(input("Enter the name of any reagent", "Input") as text), " ", "") //95% of the time, the reagent types is a lowercase, no spaces / underscored version of the name if(shortcuts[input_reagent]) input_reagent = shortcuts[input_reagent] else input_reagent = find_reagent(input_reagent) - if(!input_reagent || !GLOB.chemical_reagents_list[input_reagent]) - say("OUT OF RANGE") + if(!input_reagent) + say("REAGENT NOT FOUND") return else if(!beaker) diff --git a/code/modules/reagents/chemistry/machinery/pandemic.dm b/code/modules/reagents/chemistry/machinery/pandemic.dm index 6ae0a682d8..68ce6e490f 100644 --- a/code/modules/reagents/chemistry/machinery/pandemic.dm +++ b/code/modules/reagents/chemistry/machinery/pandemic.dm @@ -144,9 +144,9 @@ var/datum/reagent/blood/B = locate() in beaker.reagents.reagent_list if(B) data["has_blood"] = TRUE - data["blood"] = list() - data["blood"]["dna"] = B.data["blood_DNA"] || "none" - data["blood"]["type"] = B.data["blood_type"] || "none" + data[/datum/reagent/blood] = list() + data[/datum/reagent/blood]["dna"] = B.data["blood_DNA"] || "none" + data[/datum/reagent/blood]["type"] = B.data["blood_type"] || "none" data["viruses"] = get_viruses_data(B) data["resistances"] = get_resistance_data(B) if(SYMPTOM_DETAILS) @@ -192,7 +192,7 @@ var/obj/item/reagent_containers/glass/bottle/B = new(drop_location()) B.name = "[A.name] culture bottle" B.desc = "A small bottle. Contains [A.agent] culture in synthblood medium." - B.reagents.add_reagent("blood", 20, data) + B.reagents.add_reagent(/datum/reagent/blood, 20, data) wait = TRUE update_icon() var/turf/source_turf = get_turf(src) @@ -204,7 +204,7 @@ var/datum/disease/D = SSdisease.archive_diseases[id] var/obj/item/reagent_containers/glass/bottle/B = new(drop_location()) B.name = "[D.name] vaccine bottle" - B.reagents.add_reagent("vaccine", 15, list(id)) + B.reagents.add_reagent(/datum/reagent/vaccine, 15, list(id)) wait = TRUE update_icon() addtimer(CALLBACK(src, .proc/reset_replicator_cooldown), 200) diff --git a/code/modules/reagents/chemistry/machinery/reagentgrinder.dm b/code/modules/reagents/chemistry/machinery/reagentgrinder.dm index 98cfd877b2..7e1b7ec018 100644 --- a/code/modules/reagents/chemistry/machinery/reagentgrinder.dm +++ b/code/modules/reagents/chemistry/machinery/reagentgrinder.dm @@ -299,18 +299,18 @@ /obj/machinery/reagentgrinder/proc/mix_complete() if(beaker?.reagents.total_volume) //Recipe to make Butter - var/butter_amt = FLOOR(beaker.reagents.get_reagent_amount("milk") / MILK_TO_BUTTER_COEFF, 1) - beaker.reagents.remove_reagent("milk", MILK_TO_BUTTER_COEFF * butter_amt) + var/butter_amt = FLOOR(beaker.reagents.get_reagent_amount(/datum/reagent/consumable/milk) / MILK_TO_BUTTER_COEFF, 1) + beaker.reagents.remove_reagent(/datum/reagent/consumable/milk, MILK_TO_BUTTER_COEFF * butter_amt) for(var/i in 1 to butter_amt) new /obj/item/reagent_containers/food/snacks/butter(drop_location()) //Recipe to make Mayonnaise - if (beaker.reagents.has_reagent("eggyolk")) - var/amount = beaker.reagents.get_reagent_amount("eggyolk") - beaker.reagents.remove_reagent("eggyolk", amount) - beaker.reagents.add_reagent("mayonnaise", amount) + if (beaker.reagents.has_reagent(/datum/reagent/consumable/eggyolk)) + var/amount = beaker.reagents.get_reagent_amount(/datum/reagent/consumable/eggyolk) + beaker.reagents.remove_reagent(/datum/reagent/consumable/eggyolk, amount) + beaker.reagents.add_reagent(/datum/reagent/consumable/mayonnaise, amount) //Moonsugar for skooma - if(beaker.reagents.has_reagent("sugar") && beaker.reagents.has_reagent("moonshine")) - var/amount = min(beaker.reagents.get_reagent_amount("sugar"), beaker.reagents.get_reagent_amount("moonshine")) - beaker.reagents.remove_reagent("sugar", amount) - beaker.reagents.remove_reagent("moonshine", amount) - beaker.reagents.add_reagent("moonsugar", amount*2) + if(beaker.reagents.has_reagent(/datum/reagent/consumable/sugar) && beaker.reagents.has_reagent(/datum/reagent/consumable/ethanol/moonshine)) + var/amount = min(beaker.reagents.get_reagent_amount(/datum/reagent/consumable/sugar), beaker.reagents.get_reagent_amount(/datum/reagent/consumable/ethanol/moonshine)) + beaker.reagents.remove_reagent(/datum/reagent/consumable/sugar, amount) + beaker.reagents.remove_reagent(/datum/reagent/consumable/ethanol/moonshine, amount) + beaker.reagents.add_reagent(/datum/reagent/moonsugar, amount*2) diff --git a/code/modules/reagents/chemistry/reagents.dm b/code/modules/reagents/chemistry/reagents.dm index da41ac9dc4..5eb2c135a8 100644 --- a/code/modules/reagents/chemistry/reagents.dm +++ b/code/modules/reagents/chemistry/reagents.dm @@ -1,12 +1,20 @@ #define REM REAGENTS_EFFECT_MULTIPLIER +GLOBAL_LIST_INIT(name2reagent, build_name2reagent()) + +/proc/build_name2reagent() + . = list() + for (var/t in subtypesof(/datum/reagent)) + var/datum/reagent/R = t + if (length(initial(R.name))) + .[ckey(initial(R.name))] = t + //Various reagents //Toxin & acid reagents //Hydroponics stuff /datum/reagent var/name = "Reagent" - var/id = "reagent" var/description = "" var/specific_heat = SPECIFIC_HEAT_DEFAULT //J/(K*mol) var/taste_description = "metaphorical salt" @@ -58,7 +66,7 @@ var/modifier = CLAMP((1 - touch_protection), 0, 1) var/amount = round(reac_volume*modifier, 0.1) if(amount >= 0.5) - M.reagents.add_reagent(id, amount) + M.reagents.add_reagent(type, amount) return 1 /datum/reagent/proc/reaction_obj(obj/O, volume) @@ -70,7 +78,7 @@ /datum/reagent/proc/on_mob_life(mob/living/carbon/M) current_cycle++ if(holder) - holder.remove_reagent(src.id, metabolization_rate * M.metabolism_efficiency) //By default it slowly disappears. + holder.remove_reagent(type, metabolization_rate * M.metabolism_efficiency) //By default it slowly disappears. return //called when a mob processes chems when dead. @@ -79,7 +87,7 @@ return current_cycle++ if(holder) - holder.remove_reagent(src.id, metabolization_rate * M.metabolism_efficiency) //By default it slowly disappears. + holder.remove_reagent(type, metabolization_rate * M.metabolism_efficiency) //By default it slowly disappears. return // Called when this reagent is first added to a mob @@ -88,19 +96,19 @@ return var/mob/living/carbon/M = L if (purity == 1) - log_game("CHEM: [L] ckey: [L.key] has ingested [volume]u of [id]") + log_game("CHEM: [L] ckey: [L.key] has ingested [volume]u of [type]") return if(cached_purity == 1) cached_purity = purity else if(purity < 0) - CRASH("Purity below 0 for chem: [id], Please let Fermis Know!") + CRASH("Purity below 0 for chem: [type], Please let Fermis Know!") if(chemical_flags & REAGENT_DONOTSPLIT) return if ((inverse_chem_val > purity) && (inverse_chem))//Turns all of a added reagent into the inverse chem - M.reagents.remove_reagent(id, amount, FALSE) + M.reagents.remove_reagent(type, amount, FALSE) M.reagents.add_reagent(inverse_chem, amount, FALSE, other_purity = 1-cached_purity) - var/datum/reagent/R = M.reagents.has_reagent("[inverse_chem]") + var/datum/reagent/R = M.reagents.has_reagent(inverse_chem) if(R.chemical_flags & REAGENT_SNEAKYNAME) R.name = name//Negative effects are hidden if(R.chemical_flags & REAGENT_INVISIBLE) @@ -110,9 +118,9 @@ else if (impure_chem) var/impureVol = amount * (1 - purity) //turns impure ratio into impure chem if(!(chemical_flags & REAGENT_SPLITRETAINVOL)) - M.reagents.remove_reagent(id, (impureVol), FALSE) + M.reagents.remove_reagent(type, (impureVol), FALSE) M.reagents.add_reagent(impure_chem, impureVol, FALSE, other_purity = 1-cached_purity) - log_game("FERMICHEM: [M] ckey: [M.key] has ingested [volume - impureVol]u of [id]") + log_game("FERMICHEM: [M] ckey: [M.key] has ingested [volume - impureVol]u of [type]") log_game("FERMICHEM: [M] ckey: [M.key] has ingested [volume]u of [impure_chem]") return @@ -140,18 +148,18 @@ if(!iscarbon(M)) return if (purity == 1) - log_game("FERMICHEM: [M] ckey: [M.key] has ingested [volume]u of [id]") + log_game("FERMICHEM: [M] ckey: [M.key] has ingested [volume]u of [type]") return cached_purity = purity //purity SHOULD be precalculated from the add_reagent, update cache. if (purity < 0) - CRASH("Purity below 0 for chem: [id], Please let Fermis Know!") + CRASH("Purity below 0 for chem: [type], Please let Fermis Know!") if(chemical_flags & REAGENT_DONOTSPLIT) return if ((inverse_chem_val > purity) && (inverse_chem)) //INVERT - M.reagents.remove_reagent(id, amount, FALSE) + M.reagents.remove_reagent(type, amount, FALSE) M.reagents.add_reagent(inverse_chem, amount, FALSE, other_purity = 1-cached_purity) - var/datum/reagent/R = M.reagents.has_reagent("[inverse_chem]") + var/datum/reagent/R = M.reagents.has_reagent(inverse_chem) if(R.chemical_flags & REAGENT_SNEAKYNAME) R.name = name//Negative effects are hidden if(R.chemical_flags & REAGENT_INVISIBLE) @@ -161,9 +169,9 @@ else if (impure_chem) //SPLIT var/impureVol = amount * (1 - purity) if(!(chemical_flags & REAGENT_SPLITRETAINVOL)) - M.reagents.remove_reagent(id, impureVol, FALSE) + M.reagents.remove_reagent(type, impureVol, FALSE) M.reagents.add_reagent(impure_chem, impureVol, FALSE, other_purity = 1-cached_purity) - log_game("FERMICHEM: [M] ckey: [M.key] has merged [volume - impureVol]u of [id]") + log_game("FERMICHEM: [M] ckey: [M.key] has merged [volume - impureVol]u of [type]") log_game("FERMICHEM: [M] ckey: [M.key] has merged [volume]u of [impure_chem]") return @@ -180,29 +188,29 @@ /datum/reagent/proc/overdose_start(mob/living/M) to_chat(M, "You feel like you took too much of [name]!") - SEND_SIGNAL(M, COMSIG_ADD_MOOD_EVENT, "[id]_overdose", /datum/mood_event/overdose, name) + SEND_SIGNAL(M, COMSIG_ADD_MOOD_EVENT, "[type]_overdose", /datum/mood_event/overdose, name) return /datum/reagent/proc/addiction_act_stage1(mob/living/M) - SEND_SIGNAL(M, COMSIG_ADD_MOOD_EVENT, "[id]_overdose", /datum/mood_event/withdrawal_light, name) + SEND_SIGNAL(M, COMSIG_ADD_MOOD_EVENT, "[type]_overdose", /datum/mood_event/withdrawal_light, name) if(prob(30)) to_chat(M, "You feel like having some [name] right about now.") return /datum/reagent/proc/addiction_act_stage2(mob/living/M) - SEND_SIGNAL(M, COMSIG_ADD_MOOD_EVENT, "[id]_overdose", /datum/mood_event/withdrawal_medium, name) + SEND_SIGNAL(M, COMSIG_ADD_MOOD_EVENT, "[type]_overdose", /datum/mood_event/withdrawal_medium, name) if(prob(30)) to_chat(M, "You feel like you need [name]. You just can't get enough.") return /datum/reagent/proc/addiction_act_stage3(mob/living/M) - SEND_SIGNAL(M, COMSIG_ADD_MOOD_EVENT, "[id]_overdose", /datum/mood_event/withdrawal_severe, name) + SEND_SIGNAL(M, COMSIG_ADD_MOOD_EVENT, "[type]_overdose", /datum/mood_event/withdrawal_severe, name) if(prob(30)) to_chat(M, "You have an intense craving for [name].") return /datum/reagent/proc/addiction_act_stage4(mob/living/M) - SEND_SIGNAL(M, COMSIG_ADD_MOOD_EVENT, "[id]_overdose", /datum/mood_event/withdrawal_critical, name) + SEND_SIGNAL(M, COMSIG_ADD_MOOD_EVENT, "[type]_overdose", /datum/mood_event/withdrawal_critical, name) if(prob(30)) to_chat(M, "You're not feeling good at all! You really need some [name].") return diff --git a/code/modules/reagents/chemistry/reagents/alcohol_reagents.dm b/code/modules/reagents/chemistry/reagents/alcohol_reagents.dm index 077ab1fb7a..62a8d97b2d 100644 --- a/code/modules/reagents/chemistry/reagents/alcohol_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/alcohol_reagents.dm @@ -8,7 +8,6 @@ /datum/reagent/consumable/ethanol name = "Ethanol" - id = "ethanol" description = "A well-known alcohol with a variety of applications." color = "#404030" // rgb: 64, 64, 48 nutriment_factor = 0 @@ -81,7 +80,6 @@ All effects don't start immediately, but rather get worse over time; the rate is /datum/reagent/consumable/ethanol/beer name = "Beer" - id = "beer" description = "An alcoholic beverage brewed since ancient times on Old Earth. Still popular today." color = "#664300" // rgb: 102, 67, 0 nutriment_factor = 1 * REAGENTS_METABOLISM @@ -94,7 +92,6 @@ All effects don't start immediately, but rather get worse over time; the rate is /datum/reagent/consumable/ethanol/beer/light name = "Light Beer" - id = "light_beer" description = "An alcoholic beverage brewed since ancient times on Old Earth. This variety has reduced calorie and alcohol content." boozepwr = 5 //Space Europeans hate it taste_description = "dish water" @@ -105,7 +102,6 @@ All effects don't start immediately, but rather get worse over time; the rate is /datum/reagent/consumable/ethanol/beer/green name = "Green Beer" - id = "greenbeer" description = "An alcoholic beverage brewed since ancient times on Old Earth. This variety is dyed a festive green." color = "#A8E61D" taste_description = "green piss water" @@ -125,7 +121,6 @@ All effects don't start immediately, but rather get worse over time; the rate is /datum/reagent/consumable/ethanol/kahlua name = "Kahlua" - id = "kahlua" description = "A widely known, Mexican coffee-flavoured liqueur. In production since 1936!" color = "#664300" // rgb: 102, 67, 0 boozepwr = 45 @@ -148,7 +143,6 @@ All effects don't start immediately, but rather get worse over time; the rate is /datum/reagent/consumable/ethanol/whiskey name = "Whiskey" - id = "whiskey" description = "A superb and well-aged single-malt whiskey. Damn." color = "#664300" // rgb: 102, 67, 0 boozepwr = 75 @@ -162,7 +156,6 @@ All effects don't start immediately, but rather get worse over time; the rate is /datum/reagent/consumable/ethanol/thirteenloko name = "Thirteen Loko" - id = "thirteenloko" description = "A potent mixture of caffeine and alcohol." color = "#102000" // rgb: 16, 32, 0 nutriment_factor = 1 * REAGENTS_METABOLISM @@ -227,7 +220,6 @@ All effects don't start immediately, but rather get worse over time; the rate is /datum/reagent/consumable/ethanol/vodka name = "Vodka" - id = "vodka" description = "Number one drink AND fueling choice for Russians worldwide." color = "#0064C8" // rgb: 0, 100, 200 boozepwr = 65 @@ -245,7 +237,6 @@ All effects don't start immediately, but rather get worse over time; the rate is /datum/reagent/consumable/ethanol/bilk name = "Bilk" - id = "bilk" description = "This appears to be beer mixed with milk. Disgusting." color = "#895C4C" // rgb: 137, 92, 76 nutriment_factor = 2 * REAGENTS_METABOLISM @@ -264,7 +255,6 @@ All effects don't start immediately, but rather get worse over time; the rate is /datum/reagent/consumable/ethanol/threemileisland name = "Three Mile Island Iced Tea" - id = "threemileisland" description = "Made for a woman, strong enough for a man." color = "#666340" // rgb: 102, 99, 64 boozepwr = 10 @@ -282,7 +272,6 @@ All effects don't start immediately, but rather get worse over time; the rate is /datum/reagent/consumable/ethanol/gin name = "Gin" - id = "gin" description = "It's gin. In space. I say, good sir." color = "#664300" // rgb: 102, 67, 0 boozepwr = 45 @@ -295,7 +284,6 @@ All effects don't start immediately, but rather get worse over time; the rate is /datum/reagent/consumable/ethanol/rum name = "Rum" - id = "rum" description = "Yohoho and all that." color = "#664300" // rgb: 102, 67, 0 boozepwr = 60 @@ -309,7 +297,6 @@ All effects don't start immediately, but rather get worse over time; the rate is /datum/reagent/consumable/ethanol/tequila name = "Tequila" - id = "tequila" description = "A strong and mildly flavoured, Mexican produced spirit. Feeling thirsty, hombre?" color = "#FFFF91" // rgb: 255, 255, 145 boozepwr = 70 @@ -323,7 +310,6 @@ All effects don't start immediately, but rather get worse over time; the rate is /datum/reagent/consumable/ethanol/vermouth name = "Vermouth" - id = "vermouth" description = "You suddenly feel a craving for a martini..." color = "#91FF91" // rgb: 145, 255, 145 boozepwr = 45 @@ -337,7 +323,6 @@ All effects don't start immediately, but rather get worse over time; the rate is /datum/reagent/consumable/ethanol/wine name = "Wine" - id = "wine" description = "A premium alcoholic beverage made from distilled grape juice." color = "#7E4043" // rgb: 126, 64, 67 boozepwr = 35 @@ -351,7 +336,6 @@ All effects don't start immediately, but rather get worse over time; the rate is /datum/reagent/consumable/ethanol/lizardwine name = "Lizard wine" - id = "lizardwine" description = "An alcoholic beverage from Space China, made by infusing lizard tails in ethanol." color = "#7E4043" // rgb: 126, 64, 67 boozepwr = 45 @@ -362,7 +346,6 @@ All effects don't start immediately, but rather get worse over time; the rate is /datum/reagent/consumable/ethanol/grappa name = "Grappa" - id = "grappa" description = "A fine Italian brandy, for when regular wine just isn't alcoholic enough for you." color = "#F8EBF1" boozepwr = 60 @@ -375,7 +358,6 @@ All effects don't start immediately, but rather get worse over time; the rate is /datum/reagent/consumable/ethanol/cognac name = "Cognac" - id = "cognac" description = "A sweet and strongly alcoholic drink, made after numerous distillations and years of maturing. Classy as fornication." color = "#AB3C05" // rgb: 171, 60, 5 boozepwr = 75 @@ -389,7 +371,6 @@ All effects don't start immediately, but rather get worse over time; the rate is /datum/reagent/consumable/ethanol/absinthe name = "Absinthe" - id = "absinthe" description = "A powerful alcoholic drink. Rumored to cause hallucinations but does not." color = rgb(10, 206, 0) boozepwr = 80 //Very strong even by default @@ -407,7 +388,6 @@ All effects don't start immediately, but rather get worse over time; the rate is /datum/reagent/consumable/ethanol/hooch name = "Hooch" - id = "hooch" description = "Either someone's failure at cocktail making or attempt in alcohol production. In any case, do you really want to drink that?" color = "#664300" // rgb: 102, 67, 0 boozepwr = 100 @@ -424,7 +404,6 @@ All effects don't start immediately, but rather get worse over time; the rate is /datum/reagent/consumable/ethanol/ale name = "Ale" - id = "ale" description = "A dark alcoholic beverage made with malted barley and yeast." color = "#664300" // rgb: 102, 67, 0 boozepwr = 65 @@ -437,7 +416,6 @@ All effects don't start immediately, but rather get worse over time; the rate is /datum/reagent/consumable/ethanol/goldschlager name = "Goldschlager" - id = "goldschlager" description = "100 proof cinnamon schnapps, made for alcoholic teen girls on spring break." color = "#FFFF91" // rgb: 255, 255, 145 boozepwr = 25 @@ -451,7 +429,6 @@ All effects don't start immediately, but rather get worse over time; the rate is /datum/reagent/consumable/ethanol/patron name = "Patron" - id = "patron" description = "Tequila with silver in it, a favorite of alcoholic women in the club scene." color = "#585840" // rgb: 88, 88, 64 boozepwr = 60 @@ -466,7 +443,6 @@ All effects don't start immediately, but rather get worse over time; the rate is /datum/reagent/consumable/ethanol/gintonic name = "Gin and Tonic" - id = "gintonic" description = "An all time classic, mild cocktail." color = "#664300" // rgb: 102, 67, 0 boozepwr = 25 @@ -480,7 +456,6 @@ All effects don't start immediately, but rather get worse over time; the rate is /datum/reagent/consumable/ethanol/rum_coke name = "Rum and Coke" - id = "rumcoke" description = "Rum, mixed with cola." taste_description = "cola" boozepwr = 40 @@ -494,7 +469,6 @@ All effects don't start immediately, but rather get worse over time; the rate is /datum/reagent/consumable/ethanol/cuba_libre name = "Cuba Libre" - id = "cubalibre" description = "Viva la Revolucion! Viva Cuba Libre!" color = "#3E1B00" // rgb: 62, 27, 0 boozepwr = 50 @@ -517,7 +491,6 @@ All effects don't start immediately, but rather get worse over time; the rate is /datum/reagent/consumable/ethanol/whiskey_cola name = "Whiskey Cola" - id = "whiskeycola" description = "Whiskey, mixed with cola. Surprisingly refreshing." color = "#3E1B00" // rgb: 62, 27, 0 boozepwr = 70 @@ -530,7 +503,6 @@ All effects don't start immediately, but rather get worse over time; the rate is /datum/reagent/consumable/ethanol/martini name = "Classic Martini" - id = "martini" description = "Vermouth with Gin. Not quite how 007 enjoyed it, but still delicious." color = "#664300" // rgb: 102, 67, 0 boozepwr = 60 @@ -543,7 +515,6 @@ All effects don't start immediately, but rather get worse over time; the rate is /datum/reagent/consumable/ethanol/vodkamartini name = "Vodka Martini" - id = "vodkamartini" description = "Vodka with Gin. Not quite how 007 enjoyed it, but still delicious." color = "#664300" // rgb: 102, 67, 0 boozepwr = 65 @@ -557,7 +528,6 @@ All effects don't start immediately, but rather get worse over time; the rate is /datum/reagent/consumable/ethanol/white_russian name = "White Russian" - id = "whiterussian" description = "That's just, like, your opinion, man..." color = "#A68340" // rgb: 166, 131, 64 boozepwr = 50 @@ -570,7 +540,6 @@ All effects don't start immediately, but rather get worse over time; the rate is /datum/reagent/consumable/ethanol/screwdrivercocktail name = "Screwdriver" - id = "screwdrivercocktail" description = "Vodka, mixed with plain ol' orange juice. The result is surprisingly delicious." color = "#A68310" // rgb: 166, 131, 16 boozepwr = 55 @@ -588,7 +557,6 @@ All effects don't start immediately, but rather get worse over time; the rate is /datum/reagent/consumable/ethanol/booger name = "Booger" - id = "booger" description = "Ewww..." color = "#8CFF8C" // rgb: 140, 255, 140 boozepwr = 45 @@ -600,7 +568,6 @@ All effects don't start immediately, but rather get worse over time; the rate is /datum/reagent/consumable/ethanol/bloody_mary name = "Bloody Mary" - id = "bloodymary" description = "A strange yet pleasurable mixture made of vodka, tomato and lime juice. Or at least you THINK the red stuff is tomato juice." color = "#664300" // rgb: 102, 67, 0 boozepwr = 55 @@ -620,7 +587,6 @@ All effects don't start immediately, but rather get worse over time; the rate is /datum/reagent/consumable/ethanol/brave_bull name = "Brave Bull" - id = "bravebull" description = "It's just as effective as Dutch-Courage!" color = "#664300" // rgb: 102, 67, 0 boozepwr = 80 @@ -645,7 +611,6 @@ All effects don't start immediately, but rather get worse over time; the rate is /datum/reagent/consumable/ethanol/tequila_sunrise name = "Tequila Sunrise" - id = "tequilasunrise" description = "Tequila, Grenadine, and Orange Juice." color = "#FFE48C" // rgb: 255, 228, 140 boozepwr = 45 @@ -664,7 +629,7 @@ All effects don't start immediately, but rather get worse over time; the rate is /datum/reagent/consumable/ethanol/tequila_sunrise/on_mob_life(mob/living/carbon/M) if(QDELETED(light_holder)) - M.reagents.del_reagent("tequilasunrise") //If we lost our light object somehow, remove the reagent + M.reagents.del_reagent(type) //If we lost our light object somehow, remove the reagent else if(light_holder.loc != M) light_holder.forceMove(M) return ..() @@ -675,7 +640,6 @@ All effects don't start immediately, but rather get worse over time; the rate is /datum/reagent/consumable/ethanol/toxins_special name = "Toxins Special" - id = "toxinsspecial" description = "This thing is ON FIRE! CALL THE DAMN SHUTTLE!" color = "#664300" // rgb: 102, 67, 0 boozepwr = 25 @@ -693,7 +657,6 @@ All effects don't start immediately, but rather get worse over time; the rate is /datum/reagent/consumable/ethanol/beepsky_smash name = "Beepsky Smash" - id = "beepskysmash" description = "Drink this and prepare for the LAW." color = "#664300" // rgb: 102, 67, 0 boozepwr = 90 //THE FIST OF THE LAW IS STRONG AND HARD @@ -738,7 +701,6 @@ All effects don't start immediately, but rather get worse over time; the rate is /datum/reagent/consumable/ethanol/irish_cream name = "Irish Cream" - id = "irishcream" description = "Whiskey-imbued cream, what else would you expect from the Irish?" color = "#664300" // rgb: 102, 67, 0 boozepwr = 50 @@ -751,7 +713,6 @@ All effects don't start immediately, but rather get worse over time; the rate is /datum/reagent/consumable/ethanol/manly_dorf name = "The Manly Dorf" - id = "manlydorf" description = "Beer and Ale, brought together in a delicious mix. Intended for true men only." color = "#664300" // rgb: 102, 67, 0 boozepwr = 100 //For the manly only @@ -779,7 +740,6 @@ All effects don't start immediately, but rather get worse over time; the rate is /datum/reagent/consumable/ethanol/longislandicedtea name = "Long Island Iced Tea" - id = "longislandicedtea" description = "The liquor cabinet, brought together in a delicious mix. Intended for middle-aged alcoholic women only." color = "#664300" // rgb: 102, 67, 0 boozepwr = 35 @@ -792,7 +752,6 @@ All effects don't start immediately, but rather get worse over time; the rate is /datum/reagent/consumable/ethanol/moonshine name = "Moonshine" - id = "moonshine" description = "You've really hit rock bottom now... your liver packed its bags and left last night." color = "#664300" // rgb: 102, 67, 0 boozepwr = 95 @@ -804,7 +763,6 @@ All effects don't start immediately, but rather get worse over time; the rate is /datum/reagent/consumable/ethanol/b52 name = "B-52" - id = "b52" description = "Coffee, Irish Cream, and cognac. You will get bombed." color = "#664300" // rgb: 102, 67, 0 boozepwr = 85 @@ -821,7 +779,6 @@ All effects don't start immediately, but rather get worse over time; the rate is /datum/reagent/consumable/ethanol/irishcoffee name = "Irish Coffee" - id = "irishcoffee" description = "Coffee, and alcohol. More fun than a Mimosa to drink in the morning." color = "#664300" // rgb: 102, 67, 0 boozepwr = 35 @@ -834,7 +791,6 @@ All effects don't start immediately, but rather get worse over time; the rate is /datum/reagent/consumable/ethanol/margarita name = "Margarita" - id = "margarita" description = "On the rocks with salt on the rim. Arriba~!" color = "#8CFF8C" // rgb: 140, 255, 140 boozepwr = 35 @@ -847,7 +803,6 @@ All effects don't start immediately, but rather get worse over time; the rate is /datum/reagent/consumable/ethanol/black_russian name = "Black Russian" - id = "blackrussian" description = "For the lactose-intolerant. Still as classy as a White Russian." color = "#360000" // rgb: 54, 0, 0 boozepwr = 70 @@ -861,7 +816,6 @@ All effects don't start immediately, but rather get worse over time; the rate is /datum/reagent/consumable/ethanol/manhattan name = "Manhattan" - id = "manhattan" description = "The Detective's undercover drink of choice. He never could stomach gin..." color = "#664300" // rgb: 102, 67, 0 boozepwr = 30 @@ -875,7 +829,6 @@ All effects don't start immediately, but rather get worse over time; the rate is /datum/reagent/consumable/ethanol/manhattan_proj name = "Manhattan Project" - id = "manhattan_proj" description = "A scientist's drink of choice, for pondering ways to blow up the station." color = "#664300" // rgb: 102, 67, 0 boozepwr = 45 @@ -893,7 +846,6 @@ All effects don't start immediately, but rather get worse over time; the rate is /datum/reagent/consumable/ethanol/whiskeysoda name = "Whiskey Soda" - id = "whiskeysoda" description = "For the more refined griffon." color = "#664300" // rgb: 102, 67, 0 boozepwr = 70 @@ -906,7 +858,6 @@ All effects don't start immediately, but rather get worse over time; the rate is /datum/reagent/consumable/ethanol/antifreeze name = "Anti-freeze" - id = "antifreeze" description = "The ultimate refreshment. Not what it sounds like." color = "#664300" // rgb: 102, 67, 0 boozepwr = 35 @@ -923,7 +874,6 @@ All effects don't start immediately, but rather get worse over time; the rate is /datum/reagent/consumable/ethanol/barefoot name = "Barefoot" - id = "barefoot" description = "Barefoot and pregnant." color = "#664300" // rgb: 102, 67, 0 boozepwr = 45 @@ -944,7 +894,6 @@ All effects don't start immediately, but rather get worse over time; the rate is /datum/reagent/consumable/ethanol/snowwhite name = "Snow White" - id = "snowwhite" description = "A cold refreshment." color = "#FFFFFF" // rgb: 255, 255, 255 boozepwr = 35 @@ -957,7 +906,6 @@ All effects don't start immediately, but rather get worse over time; the rate is /datum/reagent/consumable/ethanol/demonsblood //Prevents the imbiber from being dragged into a pool of blood by a slaughter demon. name = "Demon's Blood" - id = "demonsblood" description = "AHHHH!!!!" color = "#820000" // rgb: 130, 0, 0 boozepwr = 75 @@ -970,7 +918,6 @@ All effects don't start immediately, but rather get worse over time; the rate is /datum/reagent/consumable/ethanol/devilskiss //If eaten by a slaughter demon, the demon will regret it. name = "Devil's Kiss" - id = "devilskiss" description = "Creepy time!" color = "#A68310" // rgb: 166, 131, 16 boozepwr = 70 @@ -983,7 +930,6 @@ All effects don't start immediately, but rather get worse over time; the rate is /datum/reagent/consumable/ethanol/vodkatonic name = "Vodka and Tonic" - id = "vodkatonic" description = "For when a gin and tonic isn't Russian enough." color = "#0064C8" // rgb: 0, 100, 200 boozepwr = 70 @@ -996,7 +942,6 @@ All effects don't start immediately, but rather get worse over time; the rate is /datum/reagent/consumable/ethanol/ginfizz name = "Gin Fizz" - id = "ginfizz" description = "Refreshingly lemony, deliciously dry." color = "#664300" // rgb: 102, 67, 0 boozepwr = 45 @@ -1009,7 +954,6 @@ All effects don't start immediately, but rather get worse over time; the rate is /datum/reagent/consumable/ethanol/bahama_mama name = "Bahama Mama" - id = "bahama_mama" description = "Tropical cocktail." color = "#FF7F3B" // rgb: 255, 127, 59 boozepwr = 35 @@ -1022,7 +966,6 @@ All effects don't start immediately, but rather get worse over time; the rate is /datum/reagent/consumable/ethanol/singulo name = "Singulo" - id = "singulo" description = "A blue-space beverage!" color = "#2E6671" // rgb: 46, 102, 113 boozepwr = 35 @@ -1035,7 +978,6 @@ All effects don't start immediately, but rather get worse over time; the rate is /datum/reagent/consumable/ethanol/sbiten name = "Sbiten" - id = "sbiten" description = "A spicy Vodka! Might be a little hot for the little guys!" color = "#664300" // rgb: 102, 67, 0 boozepwr = 70 @@ -1052,7 +994,6 @@ All effects don't start immediately, but rather get worse over time; the rate is /datum/reagent/consumable/ethanol/red_mead name = "Red Mead" - id = "red_mead" description = "The true Viking drink! Even though it has a strange red color." color = "#C73C00" // rgb: 199, 60, 0 boozepwr = 31 //Red drinks are stronger @@ -1065,7 +1006,6 @@ All effects don't start immediately, but rather get worse over time; the rate is /datum/reagent/consumable/ethanol/mead name = "Mead" - id = "mead" description = "A Viking drink, though a cheap one." color = "#664300" // rgb: 102, 67, 0 nutriment_factor = 1 * REAGENTS_METABOLISM @@ -1079,7 +1019,6 @@ All effects don't start immediately, but rather get worse over time; the rate is /datum/reagent/consumable/ethanol/iced_beer name = "Iced Beer" - id = "iced_beer" description = "A beer which is so cold the air around it freezes." color = "#664300" // rgb: 102, 67, 0 boozepwr = 15 @@ -1095,7 +1034,6 @@ All effects don't start immediately, but rather get worse over time; the rate is /datum/reagent/consumable/ethanol/grog name = "Grog" - id = "grog" description = "Watered down rum, Nanotrasen approves!" color = "#664300" // rgb: 102, 67, 0 boozepwr = 1 //Basically nothing @@ -1107,7 +1045,6 @@ All effects don't start immediately, but rather get worse over time; the rate is /datum/reagent/consumable/ethanol/aloe name = "Aloe" - id = "aloe" description = "So very, very, very good." color = "#664300" // rgb: 102, 67, 0 boozepwr = 35 @@ -1120,7 +1057,6 @@ All effects don't start immediately, but rather get worse over time; the rate is /datum/reagent/consumable/ethanol/andalusia name = "Andalusia" - id = "andalusia" description = "A nice, strangely named drink." color = "#664300" // rgb: 102, 67, 0 boozepwr = 40 @@ -1133,7 +1069,6 @@ All effects don't start immediately, but rather get worse over time; the rate is /datum/reagent/consumable/ethanol/alliescocktail name = "Allies Cocktail" - id = "alliescocktail" description = "A drink made from your allies. Not as sweet as those made from your enemies." color = "#664300" // rgb: 102, 67, 0 boozepwr = 45 @@ -1146,7 +1081,6 @@ All effects don't start immediately, but rather get worse over time; the rate is /datum/reagent/consumable/ethanol/acid_spit name = "Acid Spit" - id = "acidspit" description = "A drink for the daring, can be deadly if incorrectly prepared!" color = "#365000" // rgb: 54, 80, 0 boozepwr = 80 @@ -1159,7 +1093,6 @@ All effects don't start immediately, but rather get worse over time; the rate is /datum/reagent/consumable/ethanol/amasec name = "Amasec" - id = "amasec" description = "Official drink of the Nanotrasen Gun-Club!" color = "#664300" // rgb: 102, 67, 0 boozepwr = 35 @@ -1172,7 +1105,6 @@ All effects don't start immediately, but rather get worse over time; the rate is /datum/reagent/consumable/ethanol/changelingsting name = "Changeling Sting" - id = "changelingsting" description = "You take a tiny sip and feel a burning sensation..." color = "#2E6671" // rgb: 46, 102, 113 boozepwr = 95 @@ -1193,7 +1125,6 @@ All effects don't start immediately, but rather get worse over time; the rate is /datum/reagent/consumable/ethanol/irishcarbomb name = "Irish Car Bomb" - id = "irishcarbomb" description = "Mmm, tastes like chocolate cake..." color = "#2E6671" // rgb: 46, 102, 113 boozepwr = 25 @@ -1206,7 +1137,6 @@ All effects don't start immediately, but rather get worse over time; the rate is /datum/reagent/consumable/ethanol/syndicatebomb name = "Syndicate Bomb" - id = "syndicatebomb" description = "Tastes like terrorism!" color = "#2E6671" // rgb: 46, 102, 113 boozepwr = 90 @@ -1224,7 +1154,6 @@ All effects don't start immediately, but rather get worse over time; the rate is /datum/reagent/consumable/ethanol/erikasurprise name = "Erika Surprise" - id = "erikasurprise" description = "The surprise is, it's green!" color = "#2E6671" // rgb: 46, 102, 113 boozepwr = 35 @@ -1237,7 +1166,6 @@ All effects don't start immediately, but rather get worse over time; the rate is /datum/reagent/consumable/ethanol/driestmartini name = "Driest Martini" - id = "driestmartini" description = "Only for the experienced. You think you see sand floating in the glass." nutriment_factor = 1 * REAGENTS_METABOLISM color = "#2E6671" // rgb: 46, 102, 113 @@ -1251,7 +1179,6 @@ All effects don't start immediately, but rather get worse over time; the rate is /datum/reagent/consumable/ethanol/bananahonk name = "Banana Honk" - id = "bananahonk" description = "A drink from Clown Heaven." nutriment_factor = 1 * REAGENTS_METABOLISM color = "#FFFF91" // rgb: 255, 255, 140 @@ -1271,7 +1198,6 @@ All effects don't start immediately, but rather get worse over time; the rate is /datum/reagent/consumable/ethanol/silencer name = "Silencer" - id = "silencer" description = "A drink from Mime Heaven." nutriment_factor = 1 * REAGENTS_METABOLISM color = "#664300" // rgb: 102, 67, 0 @@ -1291,7 +1217,6 @@ All effects don't start immediately, but rather get worse over time; the rate is /datum/reagent/consumable/ethanol/drunkenblumpkin name = "Drunken Blumpkin" - id = "drunkenblumpkin" description = "A weird mix of whiskey and blumpkin juice." color = "#1EA0FF" // rgb: 102, 67, 0 boozepwr = 50 @@ -1304,7 +1229,6 @@ All effects don't start immediately, but rather get worse over time; the rate is /datum/reagent/consumable/ethanol/whiskey_sour //Requested since we had whiskey cola and soda but not sour. name = "Whiskey Sour" - id = "whiskey_sour" description = "Lemon juice/whiskey/sugar mixture. Moderate alcohol content." color = rgb(255, 201, 49) boozepwr = 35 @@ -1317,7 +1241,6 @@ All effects don't start immediately, but rather get worse over time; the rate is /datum/reagent/consumable/ethanol/hcider name = "Hard Cider" - id = "hcider" description = "Apple juice, for adults." color = "#CD6839" nutriment_factor = 1 * REAGENTS_METABOLISM @@ -1331,7 +1254,6 @@ All effects don't start immediately, but rather get worse over time; the rate is /datum/reagent/consumable/ethanol/fetching_fizz //A reference to one of my favorite games of all time. Pulls nearby ores to the imbiber! name = "Fetching Fizz" - id = "fetching_fizz" description = "Whiskey sour/iron/uranium mixture resulting in a highly magnetic slurry. Mild alcohol content." //Requires no alcohol to make but has alcohol anyway because ~magic~ color = rgb(255, 91, 15) boozepwr = 10 @@ -1351,7 +1273,6 @@ All effects don't start immediately, but rather get worse over time; the rate is //Another reference. Heals those in critical condition extremely quickly. /datum/reagent/consumable/ethanol/hearty_punch name = "Hearty Punch" - id = "hearty_punch" description = "Brave bull/syndicate bomb/absinthe mixture resulting in an energizing beverage. Mild alcohol content." color = rgb(140, 0, 0) boozepwr = 90 @@ -1375,7 +1296,6 @@ All effects don't start immediately, but rather get worse over time; the rate is /datum/reagent/consumable/ethanol/bacchus_blessing //An EXTREMELY powerful drink. Smashed in seconds, dead in minutes. name = "Bacchus' Blessing" - id = "bacchus_blessing" description = "Unidentifiable mixture. Unmeasurably high alcohol content." color = rgb(51, 19, 3) //Sickly brown boozepwr = 300 //I warned you @@ -1388,7 +1308,6 @@ All effects don't start immediately, but rather get worse over time; the rate is /datum/reagent/consumable/ethanol/atomicbomb name = "Atomic Bomb" - id = "atomicbomb" description = "Nuclear proliferation never tasted so good." color = "#666300" // rgb: 102, 99, 0 boozepwr = 0 //custom drunk effect @@ -1418,7 +1337,6 @@ All effects don't start immediately, but rather get worse over time; the rate is /datum/reagent/consumable/ethanol/gargle_blaster name = "Pan-Galactic Gargle Blaster" - id = "gargleblaster" description = "Whoah, this stuff looks volatile!" color = "#664300" // rgb: 102, 67, 0 boozepwr = 0 //custom drunk effect @@ -1447,7 +1365,6 @@ All effects don't start immediately, but rather get worse over time; the rate is /datum/reagent/consumable/ethanol/neurotoxin name = "Neurotoxin" - id = "neurotoxin" description = "A strong neurotoxin that puts the subject into a death-like state." color = "#2E2E61" // rgb: 46, 46, 97 boozepwr = 50 @@ -1458,9 +1375,9 @@ All effects don't start immediately, but rather get worse over time; the rate is glass_name = "Neurotoxin" glass_desc = "A drink that is guaranteed to knock you silly." //SplitChem = TRUE - impure_chem = "neuroweak" + impure_chem = /datum/reagent/consumable/ethanol/neuroweak inverse_chem_val = 0.5 //Clear conversion - inverse_chem = "neuroweak" + inverse_chem = /datum/reagent/consumable/ethanol/neuroweak value = 4 /datum/reagent/consumable/ethanol/neurotoxin/proc/pickt() @@ -1470,12 +1387,12 @@ All effects don't start immediately, but rather get worse over time; the rate is M.set_drugginess(50) M.dizziness +=2 M.adjustOrganLoss(ORGAN_SLOT_BRAIN, 1*REM, 150) - if(prob(20) && !holder.has_reagent("neuroweak")) + if(prob(20) && !holder.has_reagent(/datum/reagent/consumable/ethanol/neuroweak)) M.adjustStaminaLoss(10) M.drop_all_held_items() to_chat(M, "You cant feel your hands!") if(current_cycle > 5) - if(prob(20) && !holder.has_reagent("neuroweak")) + if(prob(20) && !holder.has_reagent(/datum/reagent/consumable/ethanol/neuroweak)) var/t = pickt() ADD_TRAIT(M, t, type) M.adjustStaminaLoss(10) @@ -1499,19 +1416,18 @@ All effects don't start immediately, but rather get worse over time; the rate is /datum/reagent/consumable/ethanol/neuroweak name = "Neuro-Smash" - id = "neuroweak" description = "A mostly safe alcoholic drink for the true daredevils. Counteracts Neurotoxins." boozepwr = 60 pH = 8 value = 3 /datum/reagent/consumable/ethanol/neuroweak/on_mob_life(mob/living/carbon/M) - if(holder.has_reagent("neurotoxin")) + if(holder.has_reagent(/datum/reagent/consumable/ethanol/neurotoxin)) M.adjustOrganLoss(ORGAN_SLOT_BRAIN, -1*REM, 150) - M.reagents.remove_reagent("neurotoxin", 1.5 * REAGENTS_METABOLISM, FALSE) - if(holder.has_reagent("fentanyl")) + M.reagents.remove_reagent(/datum/reagent/consumable/ethanol/neurotoxin, 1.5 * REAGENTS_METABOLISM, FALSE) + else if(holder.has_reagent(/datum/reagent/toxin/fentanyl)) M.adjustOrganLoss(ORGAN_SLOT_BRAIN, -1*REM, 150) - M.reagents.remove_reagent("fentanyl", 0.75 * REAGENTS_METABOLISM, FALSE) + M.reagents.remove_reagent(/datum/reagent/toxin/fentanyl, 0.75 * REAGENTS_METABOLISM, FALSE) else M.adjustOrganLoss(ORGAN_SLOT_BRAIN, -0.5*REM, 150) M.dizziness +=2 @@ -1519,7 +1435,6 @@ All effects don't start immediately, but rather get worse over time; the rate is /datum/reagent/consumable/ethanol/hippies_delight name = "Hippie's Delight" - id = "hippiesdelight" description = "You just don't get it maaaan." color = "#664300" // rgb: 102, 67, 0 nutriment_factor = 0 @@ -1565,7 +1480,6 @@ All effects don't start immediately, but rather get worse over time; the rate is /datum/reagent/consumable/ethanol/eggnog name = "Eggnog" - id = "eggnog" description = "The traditional way to get absolutely hammered at a Christmas party." color = "#fcfdc6" // rgb: 252, 253, 198 nutriment_factor = 2 * REAGENTS_METABOLISM @@ -1580,7 +1494,6 @@ All effects don't start immediately, but rather get worse over time; the rate is /datum/reagent/consumable/ethanol/narsour name = "Nar'Sour" - id = "narsour" description = "Side effects include self-mutilation and hoarding plasteel." color = RUNE_COLOR_DARKRED boozepwr = 10 @@ -1598,7 +1511,6 @@ All effects don't start immediately, but rather get worse over time; the rate is /datum/reagent/consumable/ethanol/triple_sec name = "Triple Sec" - id = "triple_sec" description = "A sweet and vibrant orange liqueur." color = "#ffcc66" boozepwr = 30 @@ -1610,7 +1522,6 @@ All effects don't start immediately, but rather get worse over time; the rate is /datum/reagent/consumable/ethanol/creme_de_menthe name = "Creme de Menthe" - id = "creme_de_menthe" description = "A minty liqueur excellent for refreshing, cool drinks." color = "#00cc00" boozepwr = 20 @@ -1622,7 +1533,6 @@ All effects don't start immediately, but rather get worse over time; the rate is /datum/reagent/consumable/ethanol/creme_de_cacao name = "Creme de Cacao" - id = "creme_de_cacao" description = "A chocolatey liqueur excellent for adding dessert notes to beverages and bribing sororities." color = "#996633" boozepwr = 20 @@ -1634,7 +1544,6 @@ All effects don't start immediately, but rather get worse over time; the rate is /datum/reagent/consumable/ethanol/quadruple_sec name = "Quadruple Sec" - id = "quadruple_sec" description = "Kicks just as hard as licking the powercell on a baton, but tastier." color = "#cc0000" boozepwr = 35 @@ -1654,7 +1563,6 @@ All effects don't start immediately, but rather get worse over time; the rate is /datum/reagent/consumable/ethanol/quintuple_sec name = "Quintuple Sec" - id = "quintuple_sec" description = "Law, Order, Alcohol, and Police Brutality distilled into one single elixir of JUSTICE." color = "#ff3300" boozepwr = 80 @@ -1677,7 +1585,6 @@ All effects don't start immediately, but rather get worse over time; the rate is /datum/reagent/consumable/ethanol/grasshopper name = "Grasshopper" - id = "grasshopper" description = "A fresh and sweet dessert shooter. Difficult to look manly while drinking this." color = "00ff00" boozepwr = 25 @@ -1690,7 +1597,6 @@ All effects don't start immediately, but rather get worse over time; the rate is /datum/reagent/consumable/ethanol/stinger name = "Stinger" - id = "stinger" description = "A snappy way to end the day." color = "ccff99" boozepwr = 25 @@ -1703,7 +1609,6 @@ All effects don't start immediately, but rather get worse over time; the rate is /datum/reagent/consumable/ethanol/bastion_bourbon name = "Bastion Bourbon" - id = "bastion_bourbon" description = "Soothing hot herbal brew with restorative properties. Hints of citrus and berry flavors." color = "#00FFFF" boozepwr = 30 @@ -1743,7 +1648,6 @@ All effects don't start immediately, but rather get worse over time; the rate is /datum/reagent/consumable/ethanol/squirt_cider name = "Squirt Cider" - id = "squirt_cider" description = "Fermented squirt extract with a nose of stale bread and ocean water. Whatever a squirt is." color = "#FF0000" boozepwr = 40 @@ -1762,7 +1666,6 @@ All effects don't start immediately, but rather get worse over time; the rate is /datum/reagent/consumable/ethanol/fringe_weaver name = "Fringe Weaver" - id = "fringe_weaver" description = "Bubbly, classy, and undoubtedly strong - a Glitch City classic." color = "#FFEAC4" boozepwr = 90 //classy hooch, essentially, but lower pwr to make up for slightly easier access @@ -1775,7 +1678,6 @@ All effects don't start immediately, but rather get worse over time; the rate is /datum/reagent/consumable/ethanol/sugar_rush name = "Sugar Rush" - id = "sugar_rush" description = "Sweet, light, and fruity - as girly as it gets." color = "#FF226C" boozepwr = 10 @@ -1794,7 +1696,6 @@ All effects don't start immediately, but rather get worse over time; the rate is /datum/reagent/consumable/ethanol/crevice_spike name = "Crevice Spike" - id = "crevice_spike" description = "Sour, bitter, and smashingly sobering." color = "#5BD231" boozepwr = -10 //sobers you up - ideally, one would drink to get hit with brute damage now to avoid alcohol problems later @@ -1810,7 +1711,6 @@ All effects don't start immediately, but rather get worse over time; the rate is /datum/reagent/consumable/ethanol/sake name = "Sake" - id = "sake" description = "A sweet rice wine of questionable legality and extreme potency." color = "#DDDDDD" boozepwr = 70 @@ -1822,7 +1722,6 @@ All effects don't start immediately, but rather get worse over time; the rate is /datum/reagent/consumable/ethanol/peppermint_patty name = "Peppermint Patty" - id = "peppermint_patty" description = "This lightly alcoholic drink combines the benefits of menthol and cocoa." color = "#45ca7a" taste_description = "mint and chocolate" @@ -1840,7 +1739,6 @@ All effects don't start immediately, but rather get worse over time; the rate is /datum/reagent/consumable/ethanol/alexander name = "Alexander" - id = "alexander" description = "Named after a Greek hero, this mix is said to embolden a user's shield as if they were in a phalanx." color = "#F5E9D3" boozepwr = 80 @@ -1864,7 +1762,7 @@ All effects don't start immediately, but rather get worse over time; the rate is /datum/reagent/consumable/ethanol/alexander/on_mob_life(mob/living/L) ..() if(mighty_shield && !(mighty_shield in L.contents)) //If you had a shield and lose it, you lose the reagent as well. Otherwise this is just a normal drink. - L.reagents.del_reagent("alexander") + L.reagents.del_reagent(type) /datum/reagent/consumable/ethanol/alexander/on_mob_end_metabolize(mob/living/L) if(mighty_shield) @@ -1874,7 +1772,6 @@ All effects don't start immediately, but rather get worse over time; the rate is /datum/reagent/consumable/ethanol/sidecar name = "Sidecar" - id = "sidecar" description = "The one ride you'll gladly give up the wheel for." color = "#FFC55B" boozepwr = 80 @@ -1887,7 +1784,6 @@ All effects don't start immediately, but rather get worse over time; the rate is /datum/reagent/consumable/ethanol/between_the_sheets name = "Between the Sheets" - id = "between_the_sheets" description = "A provocatively named classic. Funny enough, doctors recommend drinking it before taking a nap." color = "#F4C35A" boozepwr = 80 @@ -1913,7 +1809,6 @@ All effects don't start immediately, but rather get worse over time; the rate is /datum/reagent/consumable/ethanol/kamikaze name = "Kamikaze" - id = "kamikaze" description = "Divinely windy." color = "#EEF191" boozepwr = 60 @@ -1926,7 +1821,6 @@ All effects don't start immediately, but rather get worse over time; the rate is /datum/reagent/consumable/ethanol/mojito name = "Mojito" - id = "mojito" description = "A drink that looks as refreshing as it tastes." color = "#DFFAD9" boozepwr = 30 @@ -1939,7 +1833,6 @@ All effects don't start immediately, but rather get worse over time; the rate is /datum/reagent/consumable/ethanol/fernet name = "Fernet" - id = "fernet" description = "An incredibly bitter herbal liqueur used as a digestif." color = "#1B2E24" // rgb: 27, 46, 36 boozepwr = 80 @@ -1957,7 +1850,6 @@ All effects don't start immediately, but rather get worse over time; the rate is /datum/reagent/consumable/ethanol/fernet_cola name = "Fernet Cola" - id = "fernet_cola" description = "A very popular and bittersweet digestif, ideal after a heavy meal. Best served on a sawed-off cola bottle as per tradition." color = "#390600" // rgb: 57, 6, 0 boozepwr = 25 @@ -1978,7 +1870,6 @@ All effects don't start immediately, but rather get worse over time; the rate is /datum/reagent/consumable/ethanol/fanciulli name = "Fanciulli" - id = "fanciulli" description = "What if the Manhattan coctail ACTUALLY used a bitter herb liquour? Helps you sobers up." //also causes a bit of stamina damage to symbolize the afterdrink lazyness color = "#CA933F" // rgb: 202, 147, 63 boozepwr = -10 @@ -2003,7 +1894,6 @@ All effects don't start immediately, but rather get worse over time; the rate is /datum/reagent/consumable/ethanol/branca_menta name = "Branca Menta" - id = "branca_menta" description = "A refreshing mixture of bitter Fernet with mint creme liquour." color = "#4B5746" // rgb: 75, 87, 70 boozepwr = 35 @@ -2026,7 +1916,6 @@ All effects don't start immediately, but rather get worse over time; the rate is /datum/reagent/consumable/ethanol/blank_paper name = "Blank Paper" - id = "blank_paper" description = "A bubbling glass of blank paper. Just looking at it makes you feel fresh." nutriment_factor = 1 * REAGENTS_METABOLISM color = "#DCDCDC" // rgb: 220, 220, 220 @@ -2046,7 +1935,6 @@ All effects don't start immediately, but rather get worse over time; the rate is /datum/reagent/consumable/ethanol/champagne //How the hell did we not have champagne already!? name = "Champagne" - id = "champagne" description = "A sparkling wine known for its ability to strike fast and hard." color = "#ffffc1" boozepwr = 40 @@ -2058,7 +1946,6 @@ All effects don't start immediately, but rather get worse over time; the rate is /datum/reagent/consumable/ethanol/wizz_fizz name = "Wizz Fizz" - id = "wizz_fizz" description = "A magical potion, fizzy and wild! However the taste, you will find, is quite mild." color = "#4235d0" //Just pretend that the triple-sec was blue curacao. boozepwr = 50 @@ -2079,7 +1966,6 @@ All effects don't start immediately, but rather get worse over time; the rate is /datum/reagent/consumable/ethanol/bug_spray name = "Bug Spray" - id = "bug_spray" description = "A harsh, acrid, bitter drink, for those who need something to brace themselves." color = "#33ff33" boozepwr = 50 @@ -2103,7 +1989,6 @@ All effects don't start immediately, but rather get worse over time; the rate is /datum/reagent/consumable/ethanol/applejack name = "Applejack" - id = "applejack" description = "The perfect beverage for when you feel the need to horse around." color = "#ff6633" boozepwr = 20 @@ -2115,7 +2000,6 @@ All effects don't start immediately, but rather get worse over time; the rate is /datum/reagent/consumable/ethanol/jack_rose name = "Jack Rose" - id = "jack_rose" description = "A light cocktail perfect for sipping with a slice of pie." color = "#ff6633" boozepwr = 15 @@ -2128,7 +2012,6 @@ All effects don't start immediately, but rather get worse over time; the rate is /datum/reagent/consumable/ethanol/turbo name = "Turbo" - id = "turbo" description = "A turbulent cocktail associated with outlaw hoverbike racing. Not for the faint of heart." color = "#e94c3a" boozepwr = 85 @@ -2147,7 +2030,6 @@ All effects don't start immediately, but rather get worse over time; the rate is /datum/reagent/consumable/ethanol/old_timer name = "Old Timer" - id = "old_timer" description = "An archaic potation enjoyed by old coots of all ages." color = "#996835" boozepwr = 35 @@ -2168,7 +2050,7 @@ All effects don't start immediately, but rather get worse over time; the rate is N.hair_color = "ccc" N.update_hair() if(N.age > 100) - N.become_nearsighted(id) + N.become_nearsighted(type) if(N.gender == MALE) N.facial_hair_style = "Beard (Very Long)" N.update_hair() @@ -2181,7 +2063,6 @@ All effects don't start immediately, but rather get worse over time; the rate is /datum/reagent/consumable/ethanol/rubberneck name = "Rubberneck" - id = "rubberneck" description = "A quality rubberneck should not contain any gross natural ingredients." color = "#ffe65b" boozepwr = 60 @@ -2194,7 +2075,6 @@ All effects don't start immediately, but rather get worse over time; the rate is /datum/reagent/consumable/ethanol/duplex name = "Duplex" - id = "duplex" description = "An inseparable combination of two fruity drinks." color = "#50e5cf" boozepwr = 25 @@ -2207,7 +2087,6 @@ All effects don't start immediately, but rather get worse over time; the rate is /datum/reagent/consumable/ethanol/trappist name = "Trappist Beer" - id = "trappist" description = "A strong dark ale brewed by space-monks." color = "#390c00" boozepwr = 40 @@ -2227,7 +2106,6 @@ All effects don't start immediately, but rather get worse over time; the rate is /datum/reagent/consumable/ethanol/blazaam name = "Blazaam" - id = "blazaam" description = "A strange drink that few people seem to remember existing. Doubles as a Berenstain remover." boozepwr = 70 quality = DRINK_FANTASTIC @@ -2251,7 +2129,6 @@ All effects don't start immediately, but rather get worse over time; the rate is /datum/reagent/consumable/ethanol/planet_cracker name = "Planet Cracker" - id = "planet_cracker" description = "This jubilant drink celebrates humanity's triumph over the alien menace. May be offensive to non-human crewmembers." boozepwr = 50 quality = DRINK_FANTASTIC @@ -2263,7 +2140,6 @@ All effects don't start immediately, but rather get worse over time; the rate is /datum/reagent/consumable/ethanol/commander_and_chief name = "Commander and Chief" - id = "commander_and_chief" description = "A cocktail for the captain on the go." color = "#ffffc9" boozepwr = 50 @@ -2287,7 +2163,6 @@ All effects don't start immediately, but rather get worse over time; the rate is /datum/reagent/consumable/ethanol/fruit_wine name = "Fruit Wine" - id = "fruit_wine" description = "A wine made from grown plants." color = "#FFFFFF" boozepwr = 35 diff --git a/code/modules/reagents/chemistry/reagents/blob_reagents.dm b/code/modules/reagents/chemistry/reagents/blob_reagents.dm index ada4cd8d8e..fba0b47eb4 100644 --- a/code/modules/reagents/chemistry/reagents/blob_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/blob_reagents.dm @@ -47,7 +47,6 @@ //does brute damage but can replicate when damaged and has a chance of expanding again /datum/reagent/blob/replicating_foam name = "Replicating Foam" - id = "replicating_foam" description = "will do medium brute damage and occasionally expand again when expanding." shortdesc = "will do medium brute damage." effectdesc = "will also expand when attacked with burn damage, but takes more brute damage." @@ -78,7 +77,6 @@ //does massive brute and burn damage, but can only expand manually /datum/reagent/blob/networked_fibers name = "Networked Fibers" - id = "networked_fibers" description = "will do high brute and burn damage and will generate resources quicker, but can only expand manually." shortdesc = "will do high brute and burn damage." taste_description = "efficiency" @@ -112,7 +110,6 @@ //does brute damage, shifts away when damaged /datum/reagent/blob/shifting_fragments name = "Shifting Fragments" - id = "shifting_fragments" description = "will do medium brute damage." effectdesc = "will also cause blob parts to shift away when attacked." taste_description = "something other-dimensional" @@ -134,7 +131,7 @@ if((damage_flag == "melee" || damage_flag == "bullet" || damage_flag == "laser") && damage > 0 && B.obj_integrity - damage > 0 && prob(60-damage)) var/list/blobstopick = list() for(var/obj/structure/blob/OB in orange(1, B)) - if((istype(OB, /obj/structure/blob/normal) || (istype(OB, /obj/structure/blob/shield) && prob(25))) && OB.overmind && OB.overmind.blob_reagent_datum.id == B.overmind.blob_reagent_datum.id) + if((istype(OB, /obj/structure/blob/normal) || (istype(OB, /obj/structure/blob/shield) && prob(25))) && OB.overmind && OB.overmind.blob_reagent_datum.type == B.overmind.blob_reagent_datum.type) blobstopick += OB //as long as the blob picked is valid; ie, a normal or shield blob that has the same chemical as we do, we can swap with it if(blobstopick.len) var/obj/structure/blob/targeted = pick(blobstopick) //randomize the blob chosen, because otherwise it'd tend to the lower left @@ -146,7 +143,6 @@ //sets you on fire, does burn damage, explodes into flame when burnt, weak to water /datum/reagent/blob/blazing_oil name = "Blazing Oil" - id = "blazing_oil" description = "will do medium burn damage and set targets on fire." effectdesc = "will also release bursts of flame when burnt, but takes damage from water." taste_description = "burning oil" @@ -174,7 +170,7 @@ if(damage_type == BURN && damage_flag != "energy") for(var/turf/open/T in range(1, B)) var/obj/structure/blob/C = locate() in T - if(!(C && C.overmind && C.overmind.blob_reagent_datum.id == B.overmind.blob_reagent_datum.id) && prob(80)) + if(!(C && C.overmind && C.overmind.blob_reagent_datum.type == B.overmind.blob_reagent_datum.type) && prob(80)) new /obj/effect/hotspot(T) if(damage_flag == "fire") return 0 @@ -183,7 +179,6 @@ //does toxin damage, hallucination, targets think they're not hurt at all /datum/reagent/blob/regenerative_materia name = "Regenerative Materia" - id = "regenerative_materia" description = "will do toxin damage and cause targets to believe they are fully healed." analyzerdescdamage = "Does toxin damage and injects a toxin that causes the target to believe they are fully healed." taste_description = "heaven" @@ -195,8 +190,8 @@ reac_volume = ..() M.adjust_drugginess(reac_volume) if(M.reagents) - M.reagents.add_reagent("regenerative_materia", 0.2*reac_volume) - M.reagents.add_reagent("spore", 0.2*reac_volume) + M.reagents.add_reagent(/datum/reagent/blob/regenerative_materia, 0.2*reac_volume) + M.reagents.add_reagent(/datum/reagent/toxin/spore, 0.2*reac_volume) M.apply_damage(0.7*reac_volume, TOX) /datum/reagent/blob/regenerative_materia/on_mob_life(mob/living/carbon/C) @@ -213,7 +208,6 @@ //kills sleeping targets and turns them into blob zombies, produces fragile spores when killed or on expanding /datum/reagent/blob/zombifying_pods name = "Zombifying Pods" - id = "zombifying_pods" description = "will do very low toxin damage and harvest sleeping targets for additional resources and a blob zombie." effectdesc = "will also produce fragile spores when killed and on expanding." taste_description = "fungi" @@ -257,7 +251,6 @@ //does tons of oxygen damage and a little stamina, immune to tesla bolts, weak to EMP /datum/reagent/blob/energized_jelly name = "Energized Jelly" - id = "energized_jelly" description = "will cause low stamina and high oxygen damage, and cause targets to be unable to breathe." taste_description = "gelatin" effectdesc = "will also conduct electricity, but takes damage from EMPs." @@ -289,7 +282,6 @@ //does aoe brute damage when hitting targets, is immune to explosions /datum/reagent/blob/explosive_lattice name = "Explosive Lattice" - id = "explosive_lattice" description = "will do brute damage in an area around targets." taste_description = "the bomb" effectdesc = "will also resist explosions, but takes increased damage from fire and other energy sources." @@ -326,7 +318,6 @@ //does brute, burn, and toxin damage, and cools targets down /datum/reagent/blob/cryogenic_poison name = "Cryogenic Poison" - id = "cryogenic_poison" description = "will inject targets with a freezing poison that does high damage over time." analyzerdescdamage = "Injects targets with a freezing poison that will gradually solidify the target's internal organs." color = "#8BA6E9" @@ -339,9 +330,9 @@ /datum/reagent/blob/cryogenic_poison/reaction_mob(mob/living/M, method=TOUCH, reac_volume, show_message, touch_protection, mob/camera/blob/O) reac_volume = ..() if(M.reagents) - M.reagents.add_reagent("frostoil", 0.3*reac_volume) - M.reagents.add_reagent("ice", 0.3*reac_volume) - M.reagents.add_reagent("cryogenic_poison", 0.3*reac_volume) + M.reagents.add_reagent(/datum/reagent/consumable/frostoil, 0.3*reac_volume) + M.reagents.add_reagent(/datum/reagent/consumable/ice, 0.3*reac_volume) + M.reagents.add_reagent(/datum/reagent/blob/cryogenic_poison, 0.3*reac_volume) M.apply_damage(0.2*reac_volume, BRUTE) /datum/reagent/blob/cryogenic_poison/on_mob_life(mob/living/carbon/M) @@ -354,7 +345,6 @@ //does burn damage and EMPs, slightly fragile /datum/reagent/blob/electromagnetic_web name = "Electromagnetic Web" - id = "electromagnetic_web" description = "will do high burn damage and EMP targets." taste_description = "pop rocks" effectdesc = "will also take massively increased damage and release an EMP when killed." @@ -391,7 +381,6 @@ //does brute damage, bonus damage for each nearby blob, and spreads damage out /datum/reagent/blob/synchronous_mesh name = "Synchronous Mesh" - id = "synchronous_mesh" description = "will do massively increased brute damage for each blob near the target." effectdesc = "will also spread damage between each blob near the attacked blob." taste_description = "toxic mold" @@ -415,10 +404,10 @@ if(damage_flag == "melee" || damage_flag == "bullet" || damage_flag == "laser") //the cause isn't fire or bombs, so split the damage var/damagesplit = 1 //maximum split is 9, reducing the damage each blob takes to 11% but doing that damage to 9 blobs for(var/obj/structure/blob/C in orange(1, B)) - if(!istype(C, /obj/structure/blob/core) && !istype(C, /obj/structure/blob/node) && C.overmind && C.overmind.blob_reagent_datum.id == B.overmind.blob_reagent_datum.id) //if it doesn't have the same chemical or is a core or node, don't split damage to it + if(!istype(C, /obj/structure/blob/core) && !istype(C, /obj/structure/blob/node) && C.overmind && C.overmind.blob_reagent_datum.type == B.overmind.blob_reagent_datum.type) //if it doesn't have the same chemical or is a core or node, don't split damage to it damagesplit += 1 for(var/obj/structure/blob/C in orange(1, B)) - if(!istype(C, /obj/structure/blob/core) && !istype(C, /obj/structure/blob/node) && C.overmind && C.overmind.blob_reagent_datum.id == B.overmind.blob_reagent_datum.id) //only hurt blobs that have the same overmind chemical and aren't cores or nodes + if(!istype(C, /obj/structure/blob/core) && !istype(C, /obj/structure/blob/node) && C.overmind && C.overmind.blob_reagent_datum.type == B.overmind.blob_reagent_datum.type) //only hurt blobs that have the same overmind chemical and aren't cores or nodes C.take_damage(damage/damagesplit, CLONE, 0, 0) return damage / damagesplit else @@ -427,7 +416,6 @@ //does brute damage through armor and bio resistance /datum/reagent/blob/reactive_spines name = "Reactive Spines" - id = "reactive_spines" description = "will do medium brute damage through armor and bio resistance." taste_description = "rock" effectdesc = "will also react when attacked with brute damage, attacking all near the attacked blob." @@ -454,7 +442,6 @@ //does low brute damage, oxygen damage, and stamina damage and wets tiles when damaged /datum/reagent/blob/pressurized_slime name = "Pressurized Slime" - id = "pressurized_slime" description = "will do low brute, oxygen, and stamina damage, and wet tiles under targets." effectdesc = "will also wet tiles near blobs that are attacked or killed." taste_description = "a sponge" diff --git a/code/modules/reagents/chemistry/reagents/drink_reagents.dm b/code/modules/reagents/chemistry/reagents/drink_reagents.dm index e8551074e7..6460bfed78 100644 --- a/code/modules/reagents/chemistry/reagents/drink_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/drink_reagents.dm @@ -6,7 +6,6 @@ /datum/reagent/consumable/orangejuice name = "Orange Juice" - id = "orangejuice" description = "Both delicious AND rich in Vitamin C, what more do you need?" color = "#E78108" // rgb: 231, 129, 8 taste_description = "oranges" @@ -23,7 +22,6 @@ /datum/reagent/consumable/tomatojuice name = "Tomato Juice" - id = "tomatojuice" description = "Tomatoes made into juice. What a waste of big, juicy tomatoes, huh?" color = "#731008" // rgb: 115, 16, 8 taste_description = "tomatoes" @@ -39,7 +37,6 @@ /datum/reagent/consumable/limejuice name = "Lime Juice" - id = "limejuice" description = "The sweet-sour juice of limes." color = "#365E30" // rgb: 54, 94, 48 taste_description = "unbearable sourness" @@ -56,7 +53,6 @@ /datum/reagent/consumable/carrotjuice name = "Carrot Juice" - id = "carrotjuice" description = "It is just like a carrot but without crunching." color = "#973800" // rgb: 151, 56, 0 taste_description = "carrots" @@ -78,7 +74,6 @@ /datum/reagent/consumable/berryjuice name = "Berry Juice" - id = "berryjuice" description = "A delicious blend of several different kinds of berries." color = "#863333" // rgb: 134, 51, 51 taste_description = "berries" @@ -88,7 +83,6 @@ /datum/reagent/consumable/applejuice name = "Apple Juice" - id = "applejuice" description = "The sweet juice of an apple, fit for all ages." color = "#ECFF56" // rgb: 236, 255, 86 taste_description = "apples" @@ -96,7 +90,6 @@ /datum/reagent/consumable/poisonberryjuice name = "Poison Berry Juice" - id = "poisonberryjuice" description = "A tasty juice blended from various kinds of very deadly and toxic berries." color = "#863353" // rgb: 134, 51, 83 taste_description = "berries" @@ -111,7 +104,6 @@ /datum/reagent/consumable/watermelonjuice name = "Watermelon Juice" - id = "watermelonjuice" description = "Delicious juice made from watermelon." color = "#863333" // rgb: 134, 51, 51 taste_description = "juicy watermelon" @@ -121,7 +113,6 @@ /datum/reagent/consumable/lemonjuice name = "Lemon Juice" - id = "lemonjuice" description = "This juice is VERY sour." color = "#863333" // rgb: 175, 175, 0 taste_description = "sourness" @@ -132,7 +123,6 @@ /datum/reagent/consumable/banana name = "Banana Juice" - id = "banana" description = "The raw essence of a banana. HONK" color = "#863333" // rgb: 175, 175, 0 taste_description = "banana" @@ -148,7 +138,6 @@ /datum/reagent/consumable/nothing name = "Nothing" - id = "nothing" description = "Absolutely nothing." taste_description = "nothing" glass_icon_state = "nothing" @@ -164,7 +153,6 @@ /datum/reagent/consumable/laughter name = "Laughter" - id = "laughter" description = "Some say that this is the best medicine, but recent studies have proven that to be untrue." metabolization_rate = INFINITY color = "#FF4DD2" @@ -177,7 +165,6 @@ /datum/reagent/consumable/superlaughter name = "Super Laughter" - id = "superlaughter" description = "Funny until you're the one laughing." metabolization_rate = 1.5 * REAGENTS_METABOLISM color = "#FF4DD2" @@ -192,7 +179,6 @@ /datum/reagent/consumable/potato_juice name = "Potato Juice" - id = "potato" description = "Juice of the potato. Bleh." nutriment_factor = 2 * REAGENTS_METABOLISM color = "#302000" // rgb: 48, 32, 0 @@ -203,14 +189,12 @@ /datum/reagent/consumable/grapejuice name = "Grape Juice" - id = "grapejuice" description = "The juice of a bunch of grapes. Guaranteed non-alcoholic." color = "#290029" // dark purple taste_description = "grape soda" /datum/reagent/consumable/milk name = "Milk" - id = "milk" description = "An opaque white liquid produced by the mammary glands of mammals." color = "#DFDFDF" // rgb: 223, 223, 223 taste_description = "milk" @@ -227,13 +211,12 @@ if(M.getBruteLoss() && prob(20)) M.heal_bodypart_damage(1,0, 0) . = 1 - if(holder.has_reagent("capsaicin")) - holder.remove_reagent("capsaicin", 2) + if(holder.has_reagent(/datum/reagent/consumable/capsaicin)) + holder.remove_reagent(/datum/reagent/consumable/capsaicin, 2) ..() /datum/reagent/consumable/soymilk name = "Soy Milk" - id = "soymilk" description = "An opaque white liquid made from soybeans." color = "#DFDFC7" // rgb: 223, 223, 199 taste_description = "soy milk" @@ -249,7 +232,6 @@ /datum/reagent/consumable/coconutmilk name = "Coconut Milk" - id = "coconutmilk" description = "A transparent white liquid extracted from coconuts. Rich in taste." color = "#DFDFDF" // rgb: 223, 223, 223 taste_description = "sweet milk" @@ -266,7 +248,6 @@ /datum/reagent/consumable/cream name = "Cream" - id = "cream" description = "The fatty, still liquid part of milk. Why don't you mix this with sum scotch, eh?" color = "#DFD7AF" // rgb: 223, 215, 175 taste_description = "creamy milk" @@ -282,7 +263,6 @@ /datum/reagent/consumable/coffee name = "Coffee" - id = "coffee" description = "Coffee is a brewed drink prepared from roasted seeds, commonly called coffee beans, of the coffee plant." color = "#482000" // rgb: 72, 32, 0 nutriment_factor = 0 @@ -302,14 +282,13 @@ M.AdjustSleeping(-40, FALSE) //310.15 is the normal bodytemp. M.adjust_bodytemperature(25 * TEMPERATURE_DAMAGE_COEFFICIENT, 0, BODYTEMP_NORMAL) - if(holder.has_reagent("frostoil")) - holder.remove_reagent("frostoil", 5) + if(holder.has_reagent(/datum/reagent/consumable/frostoil)) + holder.remove_reagent(/datum/reagent/consumable/frostoil, 5) ..() . = 1 /datum/reagent/consumable/tea name = "Tea" - id = "tea" description = "Tasty black tea, it has antioxidants, it's good for you!" color = "#101000" // rgb: 16, 16, 0 nutriment_factor = 0 @@ -331,7 +310,6 @@ /datum/reagent/consumable/lemonade name = "Lemonade" - id = "lemonade" description = "Sweet, tangy lemonade. Good for the soul." quality = DRINK_NICE taste_description = "sunshine and summertime" @@ -341,7 +319,6 @@ /datum/reagent/consumable/tea/arnold_palmer name = "Arnold Palmer" - id = "arnold_palmer" description = "Encourages the patient to go golfing." color = "#FFB766" quality = DRINK_NICE @@ -359,7 +336,6 @@ /datum/reagent/consumable/icecoffee name = "Iced Coffee" - id = "icecoffee" description = "Coffee and ice, refreshing and cool." color = "#102838" // rgb: 16, 40, 56 nutriment_factor = 0 @@ -379,7 +355,6 @@ /datum/reagent/consumable/icetea name = "Iced Tea" - id = "icetea" description = "No relation to a certain rap artist/actor." color = "#104038" // rgb: 16, 64, 56 nutriment_factor = 0 @@ -400,7 +375,6 @@ /datum/reagent/consumable/space_cola name = "Cola" - id = "cola" description = "A refreshing beverage." color = "#100800" // rgb: 16, 8, 0 taste_description = "cola" @@ -415,7 +389,6 @@ /datum/reagent/consumable/nuka_cola name = "Nuka Cola" - id = "nuka_cola" description = "Cola, cola never changes." color = "#100800" // rgb: 16, 8, 0 quality = DRINK_VERYGOOD @@ -424,10 +397,6 @@ glass_name = "glass of Nuka Cola" glass_desc = "Don't cry, Don't raise your eye, It's only nuclear wasteland." -/datum/reagent/consumable/nuka_cola/on_mob_end_metabolize(mob/living/L) - L.remove_movespeed_modifier(id) - ..() - /datum/reagent/consumable/nuka_cola/on_mob_life(mob/living/carbon/M) M.Jitter(20) M.set_drugginess(30) @@ -440,7 +409,6 @@ /datum/reagent/consumable/spacemountainwind name = "SM Wind" - id = "spacemountainwind" description = "Blows right through you like a space wind." color = "#102000" // rgb: 16, 32, 0 taste_description = "sweet citrus soda" @@ -458,7 +426,6 @@ /datum/reagent/consumable/dr_gibb name = "Dr. Gibb" - id = "dr_gibb" description = "A delicious blend of 42 different flavours." color = "#102000" // rgb: 16, 32, 0 taste_description = "cherry soda" // FALSE ADVERTISING @@ -473,7 +440,6 @@ /datum/reagent/consumable/space_up name = "Space-Up" - id = "space_up" description = "Tastes like a hull breach in your mouth." color = "#00FF00" // rgb: 0, 255, 0 taste_description = "cherry soda" @@ -489,7 +455,6 @@ /datum/reagent/consumable/lemon_lime name = "Lemon Lime" description = "A tangy substance made of 0.5% natural citrus!" - id = "lemon_lime" color = "#8CFF00" // rgb: 135, 255, 0 taste_description = "tangy lime and lemon soda" glass_icon_state = "glass_yellow" @@ -503,7 +468,6 @@ /datum/reagent/consumable/pwr_game name = "Pwr Game" description = "The only drink with the PWR that true gamers crave." - id = "pwr_game" color = "#9385bf" // rgb: 58, 52, 75 taste_description = "sweet and salty tang" glass_icon_state = "glass_red" @@ -517,7 +481,6 @@ /datum/reagent/consumable/shamblers name = "Shambler's Juice" description = "~Shake me up some of that Shambler's Juice!~" - id = "shamblers" color = "#f00060" // rgb: 94, 0, 38 taste_description = "carbonated metallic soda" glass_icon_state = "glass_red" @@ -531,7 +494,6 @@ /datum/reagent/consumable/buzz_fuzz name = "Buzz Fuzz" description = "~A Hive of Flavour!~ NOTICE: Addicting." - id = "buzz_fuzz" addiction_threshold = 26 //A can and a sip color = "#8CFF00" // rgb: 135, 255, 0 taste_description = "carbonated honey and pollen" @@ -540,9 +502,9 @@ glass_desc = "Stinging with flavour." /datum/reagent/consumable/buzz_fuzz/on_mob_life(mob/living/carbon/M) - M.reagents.add_reagent("sugar",1) + M.reagents.add_reagent(/datum/reagent/consumable/sugar,1) if(prob(5)) - M.reagents.add_reagent("honey",1) + M.reagents.add_reagent(/datum/reagent/consumable/honey,1) ..() /datum/reagent/consumable/buzz_fuzz/reaction_mob(mob/living/M, method=TOUCH, reac_volume) @@ -575,7 +537,6 @@ /datum/reagent/consumable/grey_bull name = "Grey Bull" - id = "grey_bull" description = "Grey Bull, it gives you gloves!" color = "#EEFF00" // rgb: 238, 255, 0 quality = DRINK_VERYGOOD @@ -586,10 +547,10 @@ /datum/reagent/consumable/grey_bull/on_mob_metabolize(mob/living/L) ..() - ADD_TRAIT(L, TRAIT_SHOCKIMMUNE, id) + ADD_TRAIT(L, TRAIT_SHOCKIMMUNE, type) /datum/reagent/consumable/grey_bull/on_mob_end_metabolize(mob/living/L) - REMOVE_TRAIT(L, TRAIT_SHOCKIMMUNE, id) + REMOVE_TRAIT(L, TRAIT_SHOCKIMMUNE, type) ..() /datum/reagent/consumable/grey_bull/on_mob_life(mob/living/carbon/M) @@ -602,7 +563,6 @@ /datum/reagent/consumable/sodawater name = "Soda Water" - id = "sodawater" description = "A can of club soda. Why not make a scotch and soda?" color = "#619494" // rgb: 97, 148, 148 taste_description = "carbonated water" @@ -618,7 +578,6 @@ /datum/reagent/consumable/tonic name = "Tonic Water" - id = "tonic" description = "It tastes strange but at least the quinine keeps the Space Malaria at bay." color = "#0064C8" // rgb: 0, 100, 200 taste_description = "tart and fresh" @@ -636,7 +595,6 @@ /datum/reagent/consumable/ice name = "Ice" - id = "ice" description = "Frozen water, your dentist wouldn't like you chewing this." reagent_state = SOLID color = "#619494" // rgb: 97, 148, 148 @@ -651,7 +609,6 @@ /datum/reagent/consumable/soy_latte name = "Soy Latte" - id = "soy_latte" description = "A nice and tasty beverage while you are reading your hippie books." color = "#664300" // rgb: 102, 67, 0 quality = DRINK_NICE @@ -673,7 +630,6 @@ /datum/reagent/consumable/cafe_latte name = "Cafe Latte" - id = "cafe_latte" description = "A nice, strong and tasty beverage while you are reading." color = "#664300" // rgb: 102, 67, 0 quality = DRINK_NICE @@ -695,7 +651,6 @@ /datum/reagent/consumable/doctor_delight name = "The Doctor's Delight" - id = "doctorsdelight" description = "A gulp a day keeps the Medibot away! A mixture of juices that heals most damage types fairly quickly at the cost of hunger." color = "#FF8CFF" // rgb: 255, 140, 255 quality = DRINK_VERYGOOD @@ -717,7 +672,6 @@ /datum/reagent/consumable/chocolatepudding name = "Chocolate Pudding" - id = "chocolatepudding" description = "A great dessert for chocolate lovers." color = "#800000" quality = DRINK_VERYGOOD @@ -729,7 +683,6 @@ /datum/reagent/consumable/vanillapudding name = "Vanilla Pudding" - id = "vanillapudding" description = "A great dessert for vanilla lovers." color = "#FAFAD2" quality = DRINK_VERYGOOD @@ -741,7 +694,6 @@ /datum/reagent/consumable/cherryshake name = "Cherry Shake" - id = "cherryshake" description = "A cherry flavored milkshake." color = "#FFB6C1" quality = DRINK_VERYGOOD @@ -753,7 +705,6 @@ /datum/reagent/consumable/bluecherryshake name = "Blue Cherry Shake" - id = "bluecherryshake" description = "An exotic milkshake." color = "#00F1FF" quality = DRINK_VERYGOOD @@ -765,7 +716,6 @@ /datum/reagent/consumable/pumpkin_latte name = "Pumpkin Latte" - id = "pumpkin_latte" description = "A mix of pumpkin juice and coffee." color = "#F4A460" quality = DRINK_VERYGOOD @@ -777,7 +727,6 @@ /datum/reagent/consumable/gibbfloats name = "Gibb Floats" - id = "gibbfloats" description = "Ice cream on top of a Dr. Gibb glass." color = "#B22222" quality = DRINK_NICE @@ -789,21 +738,18 @@ /datum/reagent/consumable/pumpkinjuice name = "Pumpkin Juice" - id = "pumpkinjuice" description = "Juiced from real pumpkin." color = "#FFA500" taste_description = "pumpkin" /datum/reagent/consumable/blumpkinjuice name = "Blumpkin Juice" - id = "blumpkinjuice" description = "Juiced from real blumpkin." color = "#00BFFF" taste_description = "a mouthful of pool water" /datum/reagent/consumable/triple_citrus name = "Triple Citrus" - id = "triple_citrus" description = "A solution." color = "#fff12b" quality = DRINK_NICE @@ -814,7 +760,6 @@ /datum/reagent/consumable/grape_soda name = "Grape soda" - id = "grapesoda" description = "Beloved of children and teetotalers." color = "#E6CDFF" taste_description = "grape soda" @@ -827,7 +772,6 @@ /datum/reagent/consumable/milk/chocolate_milk name = "Chocolate Milk" - id = "chocolate_milk" description = "Milk for cool kids." color = "#7D4E29" quality = DRINK_NICE @@ -835,7 +779,6 @@ /datum/reagent/consumable/menthol name = "Menthol" - id = "menthol" description = "Alleviates coughing symptoms one might have." color = "#80AF9C" taste_description = "mint" @@ -849,7 +792,6 @@ /datum/reagent/consumable/grenadine name = "Grenadine" - id = "grenadine" description = "Not cherry flavored!" color = "#EA1D26" taste_description = "sweet pomegranates" @@ -858,7 +800,6 @@ /datum/reagent/consumable/parsnipjuice name = "Parsnip Juice" - id = "parsnipjuice" description = "Why..." color = "#FFA500" taste_description = "parsnip" @@ -866,7 +807,6 @@ /datum/reagent/consumable/peachjuice //Intended to be extremely rare due to being the limiting ingredients in the blazaam drink name = "Peach Juice" - id = "peachjuice" description = "Just peachy." color = "#E78108" taste_description = "peaches" @@ -874,7 +814,6 @@ /datum/reagent/consumable/cream_soda name = "Cream Soda" - id = "cream_soda" description = "A classic space-American vanilla flavored soft drink." color = "#dcb137" quality = DRINK_VERYGOOD @@ -889,7 +828,6 @@ /datum/reagent/consumable/red_queen name = "Red Queen" - id = "red_queen" description = "DRINK ME." color = "#e6ddc3" quality = DRINK_GOOD @@ -917,7 +855,6 @@ /datum/reagent/consumable/pinkmilk name = "Strawberry Milk" - id = "pinkmilk" description = "A drink of a bygone era of milk and artificial sweetener back on a rock." color = "#f76aeb"//rgb(247, 106, 235) glass_icon_state = "pinkmilk" @@ -934,7 +871,6 @@ /datum/reagent/consumable/pinktea //Tiny Tim song name = "Strawberry Tea" - id = "pinktea" description = "A timeless classic!" color = "#f76aeb"//rgb(247, 106, 235) glass_icon_state = "pinktea" @@ -951,7 +887,6 @@ /datum/reagent/consumable/catnip_tea name = "Catnip Tea" - id = "catnip_tea" description = "A sleepy and tasty catnip tea!" color = "#101000" // rgb: 16, 16, 0 nutriment_factor = 0 @@ -971,7 +906,6 @@ /datum/reagent/consumable/monkey_energy name = "Monkey Energy" - id = "monkey_energy" description = "The only drink that will make you unleash the ape." color = "#f39b03" // rgb: 243, 155, 3 taste_description = "barbecue and nostalgia" @@ -986,3 +920,12 @@ M.AdjustSleeping(-40, FALSE) M.adjust_bodytemperature(-5 * TEMPERATURE_DAMAGE_COEFFICIENT, BODYTEMP_NORMAL) ..() + +/datum/reagent/consumable/bungojuice + name = "Bungo Juice" + color = "#F9E43D" + description = "Exotic! You feel like you are on vactation already." + taste_description = "succulent bungo" + glass_icon_state = "glass_yellow" + glass_name = "glass of bungo juice" + glass_desc = "Exotic! You feel like you are on vacation already." diff --git a/code/modules/reagents/chemistry/reagents/drug_reagents.dm b/code/modules/reagents/chemistry/reagents/drug_reagents.dm index e956fcac36..a2e651d791 100644 --- a/code/modules/reagents/chemistry/reagents/drug_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/drug_reagents.dm @@ -1,6 +1,5 @@ /datum/reagent/drug name = "Drug" - id = "drug" value = 12 metabolization_rate = 0.5 * REAGENTS_METABOLISM taste_description = "bitterness" @@ -8,11 +7,10 @@ /datum/reagent/drug/on_mob_end_metabolize(mob/living/M) if(trippy) - SEND_SIGNAL(M, COMSIG_CLEAR_MOOD_EVENT, "[id]_high") + SEND_SIGNAL(M, COMSIG_CLEAR_MOOD_EVENT, "[type]_high") /datum/reagent/drug/space_drugs name = "Space drugs" - id = "space_drugs" value = 6 description = "An illegal chemical compound used as drug." color = "#60A584" // rgb: 96, 165, 132 @@ -31,7 +29,7 @@ /datum/reagent/drug/space_drugs/overdose_start(mob/living/M) to_chat(M, "You start tripping hard!") - SEND_SIGNAL(M, COMSIG_ADD_MOOD_EVENT, "[id]_overdose", /datum/mood_event/overdose, name) + SEND_SIGNAL(M, COMSIG_ADD_MOOD_EVENT, "[type]_overdose", /datum/mood_event/overdose, name) /datum/reagent/drug/space_drugs/overdose_process(mob/living/M) if(M.hallucination < volume && prob(20)) @@ -40,7 +38,6 @@ /datum/reagent/drug/nicotine name = "Nicotine" - id = "nicotine" value = 0 description = "Slightly reduces stun times. If overdosed it will deal toxin and oxygen damage." reagent_state = LIQUID @@ -64,7 +61,6 @@ /datum/reagent/drug/crank name = "Crank" - id = "crank" description = "Reduces stun times by about 200%. If overdosed or addicted it will deal significant Toxin, Brute and Brain damage." reagent_state = LIQUID color = "#FA00C8" @@ -112,7 +108,6 @@ /datum/reagent/drug/krokodil name = "Krokodil" - id = "krokodil" description = "Cools and calms you down. If overdosed it will deal significant Brain and Toxin damage. If addicted it will begin to deal fatal amounts of Brute damage as the subject's skin falls off." reagent_state = LIQUID color = "#0064B4" @@ -164,7 +159,6 @@ /datum/reagent/drug/methamphetamine name = "Methamphetamine" - id = "methamphetamine" description = "Reduces stun times by about 300%, and allows the user to quickly recover stamina while dealing a small amount of Brain damage. If overdosed the subject will move randomly, laugh randomly, drop items and suffer from Toxin and Brain damage. If addicted the subject will constantly jitter and drool, before becoming dizzy and losing motor control and eventually suffer heavy toxin damage." reagent_state = LIQUID color = "#FAFAFA" @@ -178,10 +172,10 @@ /datum/reagent/drug/methamphetamine/on_mob_metabolize(mob/living/L) ..() - L.ignore_slowdown(id) + L.ignore_slowdown(type) /datum/reagent/drug/methamphetamine/on_mob_end_metabolize(mob/living/L) - L.unignore_slowdown(id) + L.unignore_slowdown(type) ..() /datum/reagent/drug/methamphetamine/on_mob_life(mob/living/carbon/M) @@ -252,7 +246,6 @@ . = 1 /datum/reagent/drug/methamphetamine/changeling - id = "changelingmeth" name = "Changeling Adrenaline" addiction_threshold = 35 overdose_threshold = 35 @@ -261,7 +254,6 @@ /datum/reagent/drug/bath_salts name = "Bath Salts" - id = "bath_salts" description = "Makes you impervious to stuns and grants a stamina regeneration buff, but you will be a nearly uncontrollable tramp-bearded raving lunatic." reagent_state = LIQUID color = "#FAFAFA" @@ -273,16 +265,16 @@ /datum/reagent/drug/bath_salts/on_mob_metabolize(mob/living/L) ..() - ADD_TRAIT(L, TRAIT_STUNIMMUNE, id) - ADD_TRAIT(L, TRAIT_SLEEPIMMUNE, id) + ADD_TRAIT(L, TRAIT_STUNIMMUNE, type) + ADD_TRAIT(L, TRAIT_SLEEPIMMUNE, type) if(iscarbon(L)) var/mob/living/carbon/C = L rage = new() C.gain_trauma(rage, TRAUMA_RESILIENCE_ABSOLUTE) /datum/reagent/drug/bath_salts/on_mob_end_metabolize(mob/living/L) - REMOVE_TRAIT(L, TRAIT_STUNIMMUNE, id) - REMOVE_TRAIT(L, TRAIT_SLEEPIMMUNE, id) + REMOVE_TRAIT(L, TRAIT_STUNIMMUNE, type) + REMOVE_TRAIT(L, TRAIT_SLEEPIMMUNE, type) if(rage) QDEL_NULL(rage) ..() @@ -362,7 +354,6 @@ /datum/reagent/drug/aranesp name = "Aranesp" - id = "aranesp" description = "Amps you up and gets you going, fixes all stamina damage you might have but can cause toxin and oxygen damage." reagent_state = LIQUID color = "#78FFF0" @@ -382,7 +373,6 @@ /datum/reagent/drug/happiness name = "Happiness" - id = "happiness" description = "Fills you with ecstasic numbness and causes minor brain damage. Highly addictive. If overdosed causes sudden mood swings." reagent_state = LIQUID color = "#FFF378" @@ -392,11 +382,11 @@ /datum/reagent/drug/happiness/on_mob_add(mob/living/L) ..() - ADD_TRAIT(L, TRAIT_FEARLESS, id) + ADD_TRAIT(L, TRAIT_FEARLESS, type) SEND_SIGNAL(L, COMSIG_ADD_MOOD_EVENT, "happiness_drug", /datum/mood_event/happiness_drug) /datum/reagent/drug/happiness/on_mob_delete(mob/living/L) - REMOVE_TRAIT(L, TRAIT_FEARLESS, id) + REMOVE_TRAIT(L, TRAIT_FEARLESS, type) SEND_SIGNAL(L, COMSIG_CLEAR_MOOD_EVENT, "happiness_drug") ..() @@ -460,7 +450,6 @@ /datum/reagent/drug/skooma name = "Skooma" - id = "skooma" description = "An ancient, highly-addictive drug of long-forgotten times. It greatly improves the user's speed and strength, but heavily impedes their intelligence and agility." reagent_state = LIQUID color = "#F3E0F9" @@ -472,7 +461,7 @@ /datum/reagent/drug/skooma/on_mob_metabolize(mob/living/L) . = ..() - L.add_movespeed_modifier(id, update=TRUE, priority=100, multiplicative_slowdown=-1, blacklisted_movetypes=(FLYING|FLOATING)) + L.add_movespeed_modifier(type, update=TRUE, priority=100, multiplicative_slowdown=-1, blacklisted_movetypes=(FLYING|FLOATING)) L.next_move_modifier *= 2 if(ishuman(L)) var/mob/living/carbon/human/H = L @@ -483,7 +472,7 @@ /datum/reagent/drug/skooma/on_mob_end_metabolize(mob/living/L) . = ..() - L.remove_movespeed_modifier(id) + L.remove_movespeed_modifier(type) L.next_move_modifier *= 0.5 if(ishuman(L)) var/mob/living/carbon/human/H = L diff --git a/code/modules/reagents/chemistry/reagents/food_reagents.dm b/code/modules/reagents/chemistry/reagents/food_reagents.dm index 8936866305..b6cb387b81 100644 --- a/code/modules/reagents/chemistry/reagents/food_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/food_reagents.dm @@ -9,7 +9,6 @@ /datum/reagent/consumable name = "Consumable" - id = "consumable" taste_description = "generic food" taste_mult = 4 value = 0.1 @@ -19,7 +18,7 @@ /datum/reagent/consumable/on_mob_life(mob/living/carbon/M) current_cycle++ M.nutrition += nutriment_factor - holder.remove_reagent(src.id, metabolization_rate) + holder.remove_reagent(type, metabolization_rate) /datum/reagent/consumable/reaction_mob(mob/living/M, method=TOUCH, reac_volume) if(method == INGEST) @@ -39,7 +38,6 @@ /datum/reagent/consumable/nutriment name = "Nutriment" - id = "nutriment" description = "All the vitamins, minerals, and carbohydrates the body needs in pure form." reagent_state = SOLID nutriment_factor = 15 * REAGENTS_METABOLISM @@ -90,7 +88,6 @@ /datum/reagent/consumable/nutriment/vitamin name = "Vitamin" - id = "vitamin" description = "All the best vitamins, minerals, and carbohydrates the body needs in pure form." value = 0.5 @@ -104,7 +101,6 @@ /datum/reagent/consumable/cooking_oil name = "Cooking Oil" - id = "cooking_oil" description = "A variety of cooking oil derived from fat or plants. Used in food preparation and frying." color = "#EADD6B" //RGB: 234, 221, 107 (based off of canola oil) taste_mult = 0.8 @@ -121,7 +117,7 @@ O.loc.visible_message("[O] rapidly fries as it's splashed with hot oil! Somehow.") var/obj/item/reagent_containers/food/snacks/deepfryholder/F = new(O.drop_location(), O) F.fry(volume) - F.reagents.add_reagent("cooking_oil", reac_volume) + F.reagents.add_reagent(/datum/reagent/consumable/cooking_oil, reac_volume) /datum/reagent/consumable/cooking_oil/reaction_mob(mob/living/M, method = TOUCH, reac_volume, show_message = 1, touch_protection = 0) if(!istype(M)) @@ -150,7 +146,6 @@ /datum/reagent/consumable/sugar name = "Sugar" - id = "sugar" description = "The organic compound commonly known as table sugar and sometimes called saccharose. This white, odorless, crystalline powder has a pleasing, sweet taste." reagent_state = SOLID color = "#FFFFFF" // rgb: 255, 255, 255 @@ -173,7 +168,6 @@ /datum/reagent/consumable/virus_food name = "Virus Food" - id = "virusfood" description = "A mixture of water and milk. Virus cells can use this mixture to reproduce." nutriment_factor = 2 * REAGENTS_METABOLISM color = "#899613" // rgb: 137, 150, 19 @@ -181,7 +175,6 @@ /datum/reagent/consumable/soysauce name = "Soysauce" - id = "soysauce" description = "A salty sauce made from the soy plant." nutriment_factor = 2 * REAGENTS_METABOLISM color = "#792300" // rgb: 121, 35, 0 @@ -189,7 +182,6 @@ /datum/reagent/consumable/ketchup name = "Ketchup" - id = "ketchup" description = "Ketchup, catsup, whatever. It's tomato paste." nutriment_factor = 5 * REAGENTS_METABOLISM color = "#731008" // rgb: 115, 16, 8 @@ -197,7 +189,6 @@ /datum/reagent/consumable/mustard name = "Mustard" - id = "mustard" description = "Mustard, mostly used on hotdogs, corndogs and burgers." nutriment_factor = 5 * REAGENTS_METABOLISM color = "#DDED26" // rgb: 221, 237, 38 @@ -205,7 +196,6 @@ /datum/reagent/consumable/capsaicin name = "Capsaicin Oil" - id = "capsaicin" description = "This is what makes chilis hot." color = "#B31008" // rgb: 179, 16, 8 taste_description = "hot peppers" @@ -216,8 +206,8 @@ switch(current_cycle) if(1 to 15) heating = 5 * TEMPERATURE_DAMAGE_COEFFICIENT - if(holder.has_reagent("cryostylane")) - holder.remove_reagent("cryostylane", 5) + if(holder.has_reagent(/datum/reagent/cryostylane)) + holder.remove_reagent(/datum/reagent/cryostylane, 5) if(isslime(M)) heating = rand(5,20) if(15 to 25) @@ -237,7 +227,6 @@ /datum/reagent/consumable/frostoil name = "Frost Oil" - id = "frostoil" description = "A special oil that noticably chills the body. Extracted from Icepeppers and slimes." color = "#8BA6E9" // rgb: 139, 166, 233 taste_description = "mint" @@ -249,8 +238,8 @@ switch(current_cycle) if(1 to 15) cooling = -10 * TEMPERATURE_DAMAGE_COEFFICIENT - if(holder.has_reagent("capsaicin")) - holder.remove_reagent("capsaicin", 5) + if(holder.has_reagent(/datum/reagent/consumable/capsaicin)) + holder.remove_reagent(/datum/reagent/consumable/capsaicin, 5) if(isslime(M)) cooling = -rand(5,20) if(15 to 25) @@ -284,7 +273,6 @@ /datum/reagent/consumable/condensedcapsaicin name = "Condensed Capsaicin" - id = "condensedcapsaicin" description = "A chemical agent used for self-defense and in police work." color = "#B31008" // rgb: 179, 16, 8 taste_description = "scorching agony" @@ -358,7 +346,6 @@ /datum/reagent/consumable/sodiumchloride name = "Table Salt" - id = "sodiumchloride" description = "A salt made of sodium chloride. Commonly used to season food." reagent_state = SOLID color = "#FFFFFF" // rgb: 255,255,255 @@ -379,7 +366,6 @@ /datum/reagent/consumable/blackpepper name = "Black Pepper" - id = "blackpepper" description = "A powder ground from peppercorns. *AAAACHOOO*" reagent_state = SOLID // no color (ie, black) @@ -387,7 +373,6 @@ /datum/reagent/consumable/coco name = "Coco Powder" - id = "cocoa" description = "A fatty, bitter paste made from coco beans." reagent_state = SOLID nutriment_factor = 5 * REAGENTS_METABOLISM @@ -396,7 +381,6 @@ /datum/reagent/consumable/hot_coco name = "Hot Chocolate" - id = "hot_coco" description = "Made with love! And coco beans." nutriment_factor = 3 * REAGENTS_METABOLISM color = "#403010" // rgb: 64, 48, 16 @@ -411,7 +395,6 @@ /datum/reagent/drug/mushroomhallucinogen name = "Mushroom Hallucinogen" - id = "mushroomhallucinogen" description = "A strong hallucinogenic drug derived from certain species of mushroom." color = "#E700E7" // rgb: 231, 0, 231 metabolization_rate = 0.2 * REAGENTS_METABOLISM @@ -442,7 +425,6 @@ /datum/reagent/consumable/sprinkles name = "Sprinkles" - id = "sprinkles" value = 3 description = "Multi-colored little bits of sugar, commonly found on donuts. Loved by cops." color = "#FF00FF" // rgb: 255, 0, 255 @@ -456,7 +438,6 @@ /datum/reagent/consumable/peanut_butter name = "Peanut Butter" - id = "peanut_butter" description = "A popular food paste made from ground dry-roasted peanuts." color = "#C29261" value = 3 @@ -465,7 +446,6 @@ /datum/reagent/consumable/cornoil name = "Corn Oil" - id = "cornoil" description = "An oil derived from various types of corn." nutriment_factor = 20 * REAGENTS_METABOLISM value = 4 @@ -486,7 +466,6 @@ /datum/reagent/consumable/enzyme name = "Universal Enzyme" - id = "enzyme" value = 1 description = "A universal enzyme used in the preperation of certain chemicals and foods." color = "#365E30" // rgb: 54, 94, 48 @@ -494,7 +473,6 @@ /datum/reagent/consumable/dry_ramen name = "Dry Ramen" - id = "dry_ramen" description = "Space age food, since August 25, 1958. Contains dried noodles, vegetables, and chemicals that boil in contact with water." reagent_state = SOLID color = "#302000" // rgb: 48, 32, 0 @@ -502,7 +480,6 @@ /datum/reagent/consumable/hot_ramen name = "Hot Ramen" - id = "hot_ramen" description = "The noodles are boiled, the flavors are artificial, just like being back in school." nutriment_factor = 5 * REAGENTS_METABOLISM color = "#302000" // rgb: 48, 32, 0 @@ -514,7 +491,6 @@ /datum/reagent/consumable/hell_ramen name = "Hell Ramen" - id = "hell_ramen" description = "The noodles are boiled, the flavors are artificial, just like being back in school." nutriment_factor = 5 * REAGENTS_METABOLISM color = "#302000" // rgb: 48, 32, 0 @@ -526,7 +502,6 @@ /datum/reagent/consumable/flour name = "Flour" - id = "flour" value = 0.5 description = "This is what you rub all over yourself to pretend to be a ghost." reagent_state = SOLID @@ -538,11 +513,10 @@ var/obj/effect/decal/cleanable/flour/reagentdecal = new/obj/effect/decal/cleanable/flour(T) reagentdecal = locate() in T //Might have merged with flour already there. if(reagentdecal) - reagentdecal.reagents.add_reagent("flour", reac_volume) + reagentdecal.reagents.add_reagent(/datum/reagent/consumable/flour, reac_volume) /datum/reagent/consumable/cherryjelly name = "Cherry Jelly" - id = "cherryjelly" description = "Totally the best. Only to be spread on foods with excellent lateral symmetry." color = "#801E28" // rgb: 128, 30, 40 value = 1 @@ -550,7 +524,6 @@ /datum/reagent/consumable/bluecherryjelly name = "Blue Cherry Jelly" - id = "bluecherryjelly" description = "Blue and tastier kind of cherry jelly." color = "#00F0FF" value = 12 @@ -558,7 +531,6 @@ /datum/reagent/consumable/rice name = "Rice" - id = "rice" value = 0.5 description = "tiny nutritious grains" reagent_state = SOLID @@ -568,7 +540,6 @@ /datum/reagent/consumable/vanilla name = "Vanilla Powder" - id = "vanilla" value = 1 description = "A fatty, bitter paste made from vanilla pods." reagent_state = SOLID @@ -578,7 +549,6 @@ /datum/reagent/consumable/eggyolk name = "Egg Yolk" - id = "eggyolk" value = 1 description = "It's full of protein." nutriment_factor = 3 * REAGENTS_METABOLISM @@ -587,7 +557,6 @@ /datum/reagent/consumable/corn_starch name = "Corn Starch" - id = "corn_starch" value = 2 description = "A slippery solution." color = "#f7f6e4" @@ -595,7 +564,6 @@ /datum/reagent/consumable/corn_syrup name = "Corn Syrup" - id = "corn_syrup" value = 1 description = "Decays into sugar." color = "#fff882" @@ -603,12 +571,11 @@ taste_description = "sweet slime" /datum/reagent/consumable/corn_syrup/on_mob_life(mob/living/carbon/M) - holder.add_reagent("sugar", 3) + holder.add_reagent(/datum/reagent/consumable/sugar, 3) ..() /datum/reagent/consumable/honey name = "honey" - id = "honey" description = "Sweet sweet honey that decays into sugar. Has antibacterial and natural healing properties." color = "#d3a308" value = 15 @@ -617,7 +584,7 @@ taste_description = "sweetness" /datum/reagent/consumable/honey/on_mob_life(mob/living/carbon/M) - M.reagents.add_reagent("sugar",3) + M.reagents.add_reagent(/datum/reagent/consumable/sugar,3) if(prob(55)) M.adjustBruteLoss(-1*REM, 0) M.adjustFireLoss(-1*REM, 0) @@ -635,7 +602,6 @@ /datum/reagent/consumable/mayonnaise name = "Mayonnaise" - id = "mayonnaise" description = "An white and oily mixture of mixed egg yolks." color = "#DFDFDF" value = 5 @@ -643,7 +609,6 @@ /datum/reagent/consumable/tearjuice name = "Tear Juice" - id = "tearjuice" description = "A blinding substance extracted from certain onions." color = "#c0c9a0" taste_description = "bitterness" @@ -682,7 +647,6 @@ /datum/reagent/consumable/nutriment/stabilized name = "Stabilized Nutriment" - id = "stabilizednutriment" description = "A bioengineered protien-nutrient structure designed to decompose in high saturation. In layman's terms, it won't get you fat." reagent_state = SOLID nutriment_factor = 15 * REAGENTS_METABOLISM @@ -698,7 +662,6 @@ /datum/reagent/consumable/entpoly name = "Entropic Polypnium" - id = "entpoly" description = "An ichor, derived from a certain mushroom, makes for a bad time." color = "#1d043d" taste_description = "bitter mushroom" @@ -719,7 +682,6 @@ /datum/reagent/consumable/tinlux name = "Tinea Luxor" - id = "tinlux" description = "A stimulating ichor which causes luminescent fungi to grow on the skin. " color = "#b5a213" taste_description = "tingling mushroom" @@ -733,7 +695,6 @@ /datum/reagent/consumable/vitfro name = "Vitrium Froth" - id = "vitfro" description = "A bubbly paste that heals wounds of the skin." color = "#d3a308" nutriment_factor = 3 * REAGENTS_METABOLISM @@ -749,7 +710,6 @@ /datum/reagent/consumable/clownstears name = "Clown's Tears" - id = "clownstears" description = "The sorrow and melancholy of a thousand bereaved clowns, forever denied their Honkmechs." nutriment_factor = 5 * REAGENTS_METABOLISM color = "#eef442" // rgb: 238, 244, 66 @@ -758,7 +718,6 @@ /datum/reagent/consumable/liquidelectricity name = "Liquid Electricity" - id = "liquidelectricity" description = "The blood of Ethereals, and the stuff that keeps them going. Great for them, horrid for anyone else." nutriment_factor = 5 * REAGENTS_METABOLISM color = "#97ee63" @@ -782,7 +741,6 @@ /datum/reagent/consumable/astrotame name = "Astrotame" - id = "astrotame" description = "A space age artifical sweetener." nutriment_factor = 0 metabolization_rate = 2 * REAGENTS_METABOLISM @@ -801,7 +759,6 @@ /datum/reagent/consumable/caramel name = "Caramel" - id = "caramel" description = "Who would have guessed that heated sugar could be so delicious?" nutriment_factor = 10 * REAGENTS_METABOLISM color = "#D98736" @@ -811,7 +768,6 @@ /datum/reagent/consumable/secretsauce name = "secret sauce" - id = "secret_sauce" description = "What could it be." nutriment_factor = 2 * REAGENTS_METABOLISM color = "#792300" @@ -823,7 +779,6 @@ /datum/reagent/consumable/char name = "Char" - id = "char" description = "Essence of the grill. Has strange properties when overdosed." reagent_state = LIQUID nutriment_factor = 5 * REAGENTS_METABOLISM @@ -838,7 +793,6 @@ /datum/reagent/consumable/bbqsauce name = "BBQ Sauce" - id = "bbqsauce" description = "Sweet, Smokey, Savory, and gets everywhere. Perfect for Grilling." nutriment_factor = 5 * REAGENTS_METABOLISM color = "#78280A" // rgb: 120 40, 10 diff --git a/code/modules/reagents/chemistry/reagents/impure_reagents.dm b/code/modules/reagents/chemistry/reagents/impure_reagents.dm index 4489088adc..63f62406b5 100644 --- a/code/modules/reagents/chemistry/reagents/impure_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/impure_reagents.dm @@ -8,7 +8,6 @@ /datum/reagent/impure/fermiTox name = "Chemical Isomers" - id = "fermiTox" description = "Toxic chemical isomers made from impure reactions. At low volumes will cause light toxin damage, but as the volume increases, it deals larger amounts, damages the liver, then eventually the heart. This is default impure chem for all chems, and changes only if stated." data = "merge" color = "FFFFFF" diff --git a/code/modules/reagents/chemistry/reagents/medicine_reagents.dm b/code/modules/reagents/chemistry/reagents/medicine_reagents.dm index d8ff084227..d8fc47d1b8 100644 --- a/code/modules/reagents/chemistry/reagents/medicine_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/medicine_reagents.dm @@ -7,17 +7,15 @@ /datum/reagent/medicine name = "Medicine" - id = "medicine" value = 2 taste_description = "bitterness" /datum/reagent/medicine/on_mob_life(mob/living/carbon/M) current_cycle++ - holder.remove_reagent(src.id, metabolization_rate / M.metabolism_efficiency) //medicine reagents stay longer if you have a better metabolism + holder.remove_reagent(type, metabolization_rate / M.metabolism_efficiency) //medicine reagents stay longer if you have a better metabolism /datum/reagent/medicine/leporazine name = "Leporazine" - id = "leporazine" description = "Leporazine will effectively regulate a patient's body temperature, ensuring it never leaves safe levels." pH = 8.4 color = "#82b8aa" @@ -31,7 +29,6 @@ /datum/reagent/medicine/adminordrazine //An OP chemical for admins name = "Adminordrazine" - id = "adminordrazine" description = "It's magic. We don't have to explain it." color = "#ffffff" can_synth = FALSE @@ -79,13 +76,11 @@ /datum/reagent/medicine/adminordrazine/quantum_heal name = "Quantum Medicine" - id = "quantum_heal" description = "Rare and experimental particles, that apparently swap the user's body with one from an alternate dimension where it's completely healthy." taste_description = "science" /datum/reagent/medicine/synaptizine name = "Synaptizine" - id = "synaptizine" description = "Increases resistance to stuns as well as reducing drowsiness and hallucinations." color = "#FF00FF" pH = 4 @@ -95,8 +90,8 @@ M.AdjustStun(-20, 0) M.AdjustKnockdown(-20, 0) M.AdjustUnconscious(-20, 0) - if(holder.has_reagent("mindbreaker")) - holder.remove_reagent("mindbreaker", 5) + if(holder.has_reagent(/datum/reagent/toxin/mindbreaker)) + holder.remove_reagent(/datum/reagent/toxin/mindbreaker, 5) M.hallucination = max(0, M.hallucination - 10) if(prob(30)) M.adjustToxLoss(1, 0) @@ -105,17 +100,16 @@ /datum/reagent/medicine/synaphydramine name = "Diphen-Synaptizine" - id = "synaphydramine" description = "Reduces drowsiness, hallucinations, and Histamine from body." color = "#EC536D" // rgb: 236, 83, 109 pH = 5.2 /datum/reagent/medicine/synaphydramine/on_mob_life(mob/living/carbon/M) M.drowsyness = max(M.drowsyness-5, 0) - if(holder.has_reagent("mindbreaker")) - holder.remove_reagent("mindbreaker", 5) - if(holder.has_reagent("histamine")) - holder.remove_reagent("histamine", 5) + if(holder.has_reagent(/datum/reagent/toxin/mindbreaker)) + holder.remove_reagent(/datum/reagent/toxin/mindbreaker, 5) + if(holder.has_reagent(/datum/reagent/toxin/histamine)) + holder.remove_reagent(/datum/reagent/toxin/histamine, 5) M.hallucination = max(0, M.hallucination - 10) if(prob(30)) M.adjustToxLoss(1, 0) @@ -124,7 +118,6 @@ /datum/reagent/medicine/inacusiate name = "Inacusiate" - id = "inacusiate" description = "Instantly restores all hearing to the patient, but does not cure deafness." color = "#6600FF" // rgb: 100, 165, 255 pH = 2 @@ -136,7 +129,6 @@ /datum/reagent/medicine/cryoxadone name = "Cryoxadone" - id = "cryoxadone" description = "A chemical mixture with almost magical healing powers. Its main limitation is that the patient's body temperature must be under 270K for it to metabolise correctly." color = "#0000C8" taste_description = "sludge" @@ -157,7 +149,6 @@ /datum/reagent/medicine/clonexadone name = "Clonexadone" - id = "clonexadone" description = "A chemical that derives from Cryoxadone. It specializes in healing clone damage, but nothing else. Requires very cold temperatures to properly metabolize, and metabolizes quicker than cryoxadone." color = "#0000C8" taste_description = "muscle" @@ -174,7 +165,6 @@ /datum/reagent/medicine/pyroxadone name = "Pyroxadone" - id = "pyroxadone" description = "A mixture of cryoxadone and slime jelly, that apparently inverses the requirement for its activation." color = "#f7832a" taste_description = "spicy jelly" @@ -204,7 +194,6 @@ /datum/reagent/medicine/rezadone name = "Rezadone" - id = "rezadone" description = "A powder derived from fish toxin, Rezadone can effectively treat genetic damage as well as restoring minor wounds. Overdose will cause intense nausea and minor toxin damage." reagent_state = SOLID color = "#669900" // rgb: 102, 153, 0 @@ -229,7 +218,6 @@ /datum/reagent/medicine/spaceacillin name = "Spaceacillin" - id = "spaceacillin" description = "Spaceacillin will prevent a patient from conventionally spreading any diseases they are currently infected with." color = "#f2f2f2" metabolization_rate = 0.1 * REAGENTS_METABOLISM @@ -238,7 +226,6 @@ //Goon Chems. Ported mainly from Goonstation. Easily mixable (or not so easily) and provide a variety of effects. /datum/reagent/medicine/silver_sulfadiazine name = "Silver Sulfadiazine" - id = "silver_sulfadiazine" description = "If used in touch-based applications, immediately restores burn wounds as well as restoring more over time. It is mildly poisonous taken orally or by injection. If overdosed, deals brute and minor liver damage." reagent_state = LIQUID pH = 7.2 @@ -277,7 +264,6 @@ /datum/reagent/medicine/oxandrolone name = "Oxandrolone" - id = "oxandrolone" description = "Stimulates the healing of severe burns. Extremely rapidly heals severe burns and slowly heals minor ones. Overdose will worsen existing burns." reagent_state = LIQUID color = "#f7ffa5" @@ -302,7 +288,6 @@ /datum/reagent/medicine/styptic_powder name = "Styptic Powder" - id = "styptic_powder" description = "If used in touch-based applications, immediately restores bruising as well as restoring more over time. It is poisonous if taken orally or by injection. If overdosed, deals brute and minor liver damage." reagent_state = LIQUID color = "#FF9696" @@ -342,7 +327,6 @@ datum/reagent/medicine/styptic_powder/overdose_start(mob/living/M) /datum/reagent/medicine/salglu_solution name = "Saline-Glucose Solution" - id = "salglu_solution" description = "Has a 33% chance per metabolism cycle to heal brute and burn damage. Can be used as a temporary blood substitute." reagent_state = LIQUID color = "#DCDCDC" @@ -374,12 +358,12 @@ datum/reagent/medicine/styptic_powder/overdose_start(mob/living/M) /datum/reagent/medicine/salglu_solution/overdose_process(mob/living/M) if(prob(3)) to_chat(M, "You feel salty.") - holder.add_reagent("sodiumchloride", 1) - holder.remove_reagent("salglu_solution", 0.5) + holder.add_reagent(/datum/reagent/consumable/sodiumchloride, 1) + holder.remove_reagent(/datum/reagent/medicine/salglu_solution, 0.5) else if(prob(3)) to_chat(M, "You feel sweet.") - holder.add_reagent("sugar", 1) - holder.remove_reagent("salglu_solution", 0.5) + holder.add_reagent(/datum/reagent/consumable/sugar, 1) + holder.remove_reagent(/datum/reagent/medicine/salglu_solution, 0.5) if(prob(33)) M.adjustBruteLoss(0.5*REM, 0) M.adjustFireLoss(0.5*REM, 0) @@ -388,7 +372,6 @@ datum/reagent/medicine/styptic_powder/overdose_start(mob/living/M) /datum/reagent/medicine/mine_salve name = "Miner's Salve" - id = "mine_salve" description = "A powerful painkiller. Restores bruising and burns in addition to making the patient believe they are fully healed." reagent_state = LIQUID color = "#6D6374" @@ -428,7 +411,6 @@ datum/reagent/medicine/styptic_powder/overdose_start(mob/living/M) /datum/reagent/medicine/synthflesh name = "Synthflesh" - id = "synthflesh" description = "Has a 100% chance of healing large amounts of brute and burn damage very quickly. One unit of the chemical will heal one point of damage. Touch application only." reagent_state = LIQUID color = "#FFEBEB" @@ -461,7 +443,6 @@ datum/reagent/medicine/styptic_powder/overdose_start(mob/living/M) /datum/reagent/medicine/charcoal name = "Charcoal" - id = "charcoal" description = "Heals toxin damage as well as slowly removing any other chemicals the patient has in their bloodstream." reagent_state = LIQUID color = "#000000" @@ -473,14 +454,14 @@ datum/reagent/medicine/styptic_powder/overdose_start(mob/living/M) /datum/reagent/medicine/charcoal/on_mob_life(mob/living/carbon/M) M.adjustToxLoss(-2*REM, 0) . = 1 - for(var/datum/reagent/R in M.reagents.reagent_list) + for(var/A in M.reagents.reagent_list) + var/datum/reagent/R = A if(R != src) - M.reagents.remove_reagent(R.id,1) + M.reagents.remove_reagent(R.type,1) ..() /datum/reagent/medicine/omnizine name = "Omnizine" - id = "omnizine" description = "Slowly heals all damage types. Overdose will cause damage in all types instead." reagent_state = LIQUID color = "#DCDCDC" @@ -507,7 +488,6 @@ datum/reagent/medicine/styptic_powder/overdose_start(mob/living/M) /datum/reagent/medicine/calomel name = "Calomel" - id = "calomel" description = "Quickly purges the body of all chemicals. Toxin damage is dealt if the patient is in good condition." reagent_state = LIQUID color = "#19C832" @@ -516,9 +496,10 @@ datum/reagent/medicine/styptic_powder/overdose_start(mob/living/M) pH = 1.5 /datum/reagent/medicine/calomel/on_mob_life(mob/living/carbon/M) - for(var/datum/reagent/R in M.reagents.reagent_list) + for(var/A in M.reagents.reagent_list) + var/datum/reagent/R = A if(R != src) - M.reagents.remove_reagent(R.id,2.5) + M.reagents.remove_reagent(R.type,2.5) if(M.health > 20) M.adjustToxLoss(2.5*REM, 0) . = 1 @@ -526,7 +507,6 @@ datum/reagent/medicine/styptic_powder/overdose_start(mob/living/M) /datum/reagent/medicine/potass_iodide name = "Potassium Iodide" - id = "potass_iodide" description = "Efficiently restores low radiation damage." reagent_state = LIQUID color = "#14FF3C" @@ -540,7 +520,6 @@ datum/reagent/medicine/styptic_powder/overdose_start(mob/living/M) /datum/reagent/medicine/prussian_blue name = "Prussian Blue" - id = "prussian_blue" description = "Efficiently restores heavy radiation damage." reagent_state = LIQUID color = "#003153" // RGB 0, 49, 83 @@ -554,7 +533,6 @@ datum/reagent/medicine/styptic_powder/overdose_start(mob/living/M) /datum/reagent/medicine/pen_acid name = "Pentetic Acid" - id = "pen_acid" description = "Reduces massive amounts of radiation and toxin damage while purging other chemicals from the body." reagent_state = LIQUID color = "#E6FFF0" @@ -565,15 +543,15 @@ datum/reagent/medicine/styptic_powder/overdose_start(mob/living/M) /datum/reagent/medicine/pen_acid/on_mob_life(mob/living/carbon/M) M.radiation -= max(M.radiation-RAD_MOB_SAFE, 0)/50 M.adjustToxLoss(-2*REM, 0, healtoxinlover) - for(var/datum/reagent/R in M.reagents.reagent_list) + for(var/A in M.reagents.reagent_list) + var/datum/reagent/R = A if(R != src) - M.reagents.remove_reagent(R.id,2) + M.reagents.remove_reagent(R.type,2) ..() . = 1 /datum/reagent/medicine/pen_acid/pen_jelly name = "Pentetic Jelly" - id = "pen_jelly" description = "Reduces massive amounts of radiation and toxin damage while purging other chemicals from the body. Slimepeople friendly!" color = "#91D865" healtoxinlover = TRUE @@ -581,7 +559,6 @@ datum/reagent/medicine/styptic_powder/overdose_start(mob/living/M) /datum/reagent/medicine/sal_acid name = "Salicyclic Acid" - id = "sal_acid" description = "Stimulates the healing of severe bruises. Extremely rapidly heals severe bruising and slowly heals minor ones. Overdose will worsen existing bruising." reagent_state = LIQUID color = "#D2D2D2" @@ -606,7 +583,6 @@ datum/reagent/medicine/styptic_powder/overdose_start(mob/living/M) /datum/reagent/medicine/salbutamol name = "Salbutamol" - id = "salbutamol" description = "Rapidly restores oxygen deprivation as well as preventing more of it to an extent." reagent_state = LIQUID color = "#00FFFF" @@ -622,7 +598,6 @@ datum/reagent/medicine/styptic_powder/overdose_start(mob/living/M) /datum/reagent/medicine/perfluorodecalin name = "Perfluorodecalin" - id = "perfluorodecalin" description = "Extremely rapidly restores oxygen deprivation, but inhibits speech. May also heal small amounts of bruising and burns." reagent_state = LIQUID color = "#FF6464" @@ -640,7 +615,6 @@ datum/reagent/medicine/styptic_powder/overdose_start(mob/living/M) /datum/reagent/medicine/ephedrine name = "Ephedrine" - id = "ephedrine" description = "Increases stun resistance. Overdose deals toxin damage and inhibits breathing." reagent_state = LIQUID color = "#D2FFFA" @@ -697,7 +671,6 @@ datum/reagent/medicine/styptic_powder/overdose_start(mob/living/M) /datum/reagent/medicine/diphenhydramine name = "Diphenhydramine" - id = "diphenhydramine" description = "Rapidly purges the body of Histamine and reduces jitteriness. Slight chance of causing drowsiness." reagent_state = LIQUID color = "#64FFE6" @@ -708,12 +681,11 @@ datum/reagent/medicine/styptic_powder/overdose_start(mob/living/M) if(prob(10)) M.drowsyness += 1 M.jitteriness -= 1 - M.reagents.remove_reagent("histamine",3) + M.reagents.remove_reagent(/datum/reagent/toxin/histamine,3) ..() /datum/reagent/medicine/morphine name = "Morphine" - id = "morphine" description = "A painkiller that allows the patient to move at full speed even in bulky objects. Causes drowsiness and eventually unconsciousness in high doses. Overdose will cause a variety of effects, ranging from minor to lethal." reagent_state = LIQUID color = "#A9FBFB" @@ -724,10 +696,10 @@ datum/reagent/medicine/styptic_powder/overdose_start(mob/living/M) /datum/reagent/medicine/morphine/on_mob_metabolize(mob/living/L) ..() - L.ignore_slowdown(id) + L.ignore_slowdown(type) /datum/reagent/medicine/morphine/on_mob_end_metabolize(mob/living/L) - L.unignore_slowdown(id) + L.unignore_slowdown(type) ..() /datum/reagent/medicine/morphine/on_mob_life(mob/living/carbon/M) @@ -783,7 +755,6 @@ datum/reagent/medicine/styptic_powder/overdose_start(mob/living/M) /datum/reagent/medicine/oculine name = "Oculine" - id = "oculine" description = "Quickly restores eye damage, cures nearsightedness, and has a chance to restore vision to the blind." reagent_state = LIQUID color = "#FFFFFF" @@ -814,7 +785,6 @@ datum/reagent/medicine/styptic_powder/overdose_start(mob/living/M) /datum/reagent/medicine/atropine name = "Atropine" - id = "atropine" description = "If a patient is in critical condition, rapidly heals all damage types as well as regulating oxygen in the body. Excellent for stabilizing wounded patients." reagent_state = LIQUID color = "#000000" @@ -844,7 +814,6 @@ datum/reagent/medicine/styptic_powder/overdose_start(mob/living/M) /datum/reagent/medicine/epinephrine name = "Epinephrine" - id = "epinephrine" description = "Minor boost to stun resistance. Slowly heals damage if a patient is in critical condition, as well as regulating oxygen loss. Overdose causes weakness and toxin damage." reagent_state = LIQUID color = "#D2FFFA" @@ -881,7 +850,6 @@ datum/reagent/medicine/styptic_powder/overdose_start(mob/living/M) /datum/reagent/medicine/strange_reagent name = "Strange Reagent" - id = "strange_reagent" description = "A miracle drug capable of bringing the dead back to life. Only functions when applied by patch or spray, if the target has less than 100 brute and burn damage (independent of one another) and hasn't been husked. Causes slight damage to the living." reagent_state = LIQUID color = "#A0E85E" @@ -933,7 +901,6 @@ datum/reagent/medicine/styptic_powder/overdose_start(mob/living/M) /datum/reagent/medicine/mannitol name = "Mannitol" - id = "mannitol" description = "Efficiently restores brain damage." color = "#DCDCFF" pH = 10.4 @@ -946,7 +913,6 @@ datum/reagent/medicine/styptic_powder/overdose_start(mob/living/M) /datum/reagent/medicine/neurine name = "Neurine" - id = "neurine" description = "Reacts with neural tissue, helping reform damaged connections. Can cure minor traumas." color = "#EEFF8F" @@ -966,15 +932,14 @@ datum/reagent/medicine/styptic_powder/overdose_start(mob/living/M) /datum/reagent/medicine/neurine/on_mob_life(mob/living/carbon/C) - if(holder.has_reagent("neurotoxin")) - holder.remove_reagent("neurotoxin", 5) + if(holder.has_reagent(/datum/reagent/consumable/ethanol/neurotoxin)) + holder.remove_reagent(/datum/reagent/consumable/ethanol/neurotoxin, 5) if(prob(15)) C.cure_trauma_type(resilience = TRAUMA_RESILIENCE_BASIC) ..() /datum/reagent/medicine/mutadone name = "Mutadone" - id = "mutadone" description = "Removes jitteriness and restores genetic defects." color = "#5096C8" taste_description = "acid" @@ -989,7 +954,6 @@ datum/reagent/medicine/styptic_powder/overdose_start(mob/living/M) /datum/reagent/medicine/antihol name = "Antihol" - id = "antihol" description = "Purges alcoholic substance from the patient's body and eliminates its side effects." color = "#00B4C8" taste_description = "raw egg" @@ -1010,7 +974,6 @@ datum/reagent/medicine/styptic_powder/overdose_start(mob/living/M) /datum/reagent/medicine/stimulants name = "Stimulants" - id = "stimulants" description = "Increases stun resistance and movement speed in addition to restoring minor damage and weakness. Overdose causes weakness and toxin damage." color = "#78008C" metabolization_rate = 0.5 * REAGENTS_METABOLISM @@ -1019,10 +982,10 @@ datum/reagent/medicine/styptic_powder/overdose_start(mob/living/M) /datum/reagent/medicine/stimulants/on_mob_metabolize(mob/living/L) ..() - L.add_movespeed_modifier(id, update=TRUE, priority=100, multiplicative_slowdown=-1, blacklisted_movetypes=(FLYING|FLOATING)) + L.add_movespeed_modifier(type, update=TRUE, priority=100, multiplicative_slowdown=-1, blacklisted_movetypes=(FLYING|FLOATING)) /datum/reagent/medicine/stimulants/on_mob_end_metabolize(mob/living/L) - L.remove_movespeed_modifier(id) + L.remove_movespeed_modifier(type) ..() /datum/reagent/medicine/stimulants/on_mob_life(mob/living/carbon/M) @@ -1048,7 +1011,6 @@ datum/reagent/medicine/styptic_powder/overdose_start(mob/living/M) /datum/reagent/medicine/insulin name = "Insulin" - id = "insulin" description = "Increases sugar depletion rates." reagent_state = LIQUID color = "#FFFFF0" @@ -1058,13 +1020,12 @@ datum/reagent/medicine/styptic_powder/overdose_start(mob/living/M) /datum/reagent/medicine/insulin/on_mob_life(mob/living/carbon/M) if(M.AdjustSleeping(-20, FALSE)) . = 1 - M.reagents.remove_reagent("sugar", 3) + M.reagents.remove_reagent(/datum/reagent/consumable/sugar, 3) ..() //Trek Chems, used primarily by medibots. Only heals a specific damage type, but is very efficient. /datum/reagent/medicine/bicaridine name = "Bicaridine" - id = "bicaridine" description = "Restores bruising. Overdose causes it instead." reagent_state = LIQUID color = "#fc2626" @@ -1083,7 +1044,6 @@ datum/reagent/medicine/styptic_powder/overdose_start(mob/living/M) /datum/reagent/medicine/dexalin name = "Dexalin" - id = "dexalin" description = "Restores oxygen loss. Overdose causes it instead." reagent_state = LIQUID color = "#13d2f0" @@ -1102,7 +1062,6 @@ datum/reagent/medicine/styptic_powder/overdose_start(mob/living/M) /datum/reagent/medicine/kelotane name = "Kelotane" - id = "kelotane" description = "Restores fire damage. Overdose causes it instead." reagent_state = LIQUID color = "#ffc400" @@ -1121,7 +1080,6 @@ datum/reagent/medicine/styptic_powder/overdose_start(mob/living/M) /datum/reagent/medicine/antitoxin name = "Anti-Toxin" - id = "antitoxin" description = "Heals toxin damage and removes toxins in the bloodstream. Overdose causes toxin damage." reagent_state = LIQUID color = "#6aff00" @@ -1132,7 +1090,7 @@ datum/reagent/medicine/styptic_powder/overdose_start(mob/living/M) /datum/reagent/medicine/antitoxin/on_mob_life(mob/living/carbon/M) M.adjustToxLoss(-2*REM, 0) for(var/datum/reagent/toxin/R in M.reagents.reagent_list) - M.reagents.remove_reagent(R.id,1) + M.reagents.remove_reagent(R.type,1) ..() . = 1 @@ -1143,7 +1101,6 @@ datum/reagent/medicine/styptic_powder/overdose_start(mob/living/M) /datum/reagent/medicine/inaprovaline name = "Inaprovaline" - id = "inaprovaline" description = "Stabilizes the breathing of patients. Good for those in critical condition." reagent_state = LIQUID pH = 8.5 @@ -1156,7 +1113,6 @@ datum/reagent/medicine/styptic_powder/overdose_start(mob/living/M) /datum/reagent/medicine/tricordrazine name = "Tricordrazine" - id = "tricordrazine" description = "Has a high chance to heal all types of damage. Overdose instead causes it." reagent_state = LIQUID color = "#e650c0" @@ -1182,7 +1138,6 @@ datum/reagent/medicine/styptic_powder/overdose_start(mob/living/M) /datum/reagent/medicine/regen_jelly name = "Regenerative Jelly" - id = "regen_jelly" description = "Gradually regenerates all types of damage, without harming slime anatomy." reagent_state = LIQUID color = "#91D865" @@ -1198,7 +1153,6 @@ datum/reagent/medicine/styptic_powder/overdose_start(mob/living/M) /datum/reagent/medicine/syndicate_nanites //Used exclusively by Syndicate medical cyborgs name = "Restorative Nanites" - id = "syndicate_nanites" description = "Miniature medical robots that swiftly restore bodily damage." reagent_state = SOLID color = "#555555" @@ -1219,7 +1173,6 @@ datum/reagent/medicine/styptic_powder/overdose_start(mob/living/M) /datum/reagent/medicine/lesser_syndicate_nanites // the one in the injector name = "Regenerative Nanites" - id = "lesser_syndicate_nanites" description = "Miniature medical robots that restore damage and get operatives back in the fight." reagent_state = SOLID color = "#555555" @@ -1240,7 +1193,6 @@ datum/reagent/medicine/styptic_powder/overdose_start(mob/living/M) /datum/reagent/medicine/neo_jelly name = "Neo Jelly" - id = "neo_jelly" description = "Gradually regenerates all types of damage, without harming slime anatomy.Can OD" reagent_state = LIQUID metabolization_rate = 1 * REAGENTS_METABOLISM @@ -1266,7 +1218,6 @@ datum/reagent/medicine/styptic_powder/overdose_start(mob/living/M) /datum/reagent/medicine/earthsblood //Created by ambrosia gaia plants name = "Earthsblood" - id = "earthsblood" description = "Ichor from an extremely powerful plant. Great for restoring wounds, but it's a little heavy on the brain." color = rgb(255, 175, 0) overdose_threshold = 25 @@ -1293,7 +1244,6 @@ datum/reagent/medicine/styptic_powder/overdose_start(mob/living/M) /datum/reagent/medicine/haloperidol name = "Haloperidol" - id = "haloperidol" description = "Increases depletion rates for most stimulating/hallucinogenic drugs. Reduces druggy effects and jitteriness. Severe stamina regeneration penalty, causes drowsiness. Small chance of brain damage." reagent_state = LIQUID color = "#27870a" @@ -1302,7 +1252,7 @@ datum/reagent/medicine/styptic_powder/overdose_start(mob/living/M) /datum/reagent/medicine/haloperidol/on_mob_life(mob/living/carbon/M) for(var/datum/reagent/drug/R in M.reagents.reagent_list) - M.reagents.remove_reagent(R.id,5) + M.reagents.remove_reagent(R.type,5) M.drowsyness += 2 if(M.jitteriness >= 3) M.jitteriness -= 3 @@ -1316,7 +1266,6 @@ datum/reagent/medicine/styptic_powder/overdose_start(mob/living/M) /datum/reagent/medicine/lavaland_extract name = "Lavaland Extract" - id = "lavaland_extract" description = "An extract of lavaland atmospheric and mineral elements. Heals the user in small doses, but is extremely toxic otherwise." color = "#a1a1a1" overdose_threshold = 3 //To prevent people stacking massive amounts of a very strong healing reagent @@ -1338,7 +1287,6 @@ datum/reagent/medicine/styptic_powder/overdose_start(mob/living/M) //used for changeling's adrenaline power /datum/reagent/medicine/changelingadrenaline name = "Changeling Adrenaline" - id = "changelingadrenaline" description = "Reduces the duration of unconciousness, knockdown and stuns. Restores stamina, but deals toxin damage when overdosed." color = "#918e53" overdose_threshold = 30 @@ -1359,17 +1307,16 @@ datum/reagent/medicine/styptic_powder/overdose_start(mob/living/M) /datum/reagent/medicine/changelinghaste name = "Changeling Haste" - id = "changelinghaste" description = "Drastically increases movement speed, but deals toxin damage." color = "#669153" metabolization_rate = 1 /datum/reagent/medicine/changelinghaste/on_mob_metabolize(mob/living/L) ..() - L.add_movespeed_modifier(id, update=TRUE, priority=100, multiplicative_slowdown=-2, blacklisted_movetypes=(FLYING|FLOATING)) + L.add_movespeed_modifier(type, update=TRUE, priority=100, multiplicative_slowdown=-2, blacklisted_movetypes=(FLYING|FLOATING)) /datum/reagent/medicine/changelinghaste/on_mob_end_metabolize(mob/living/L) - L.remove_movespeed_modifier(id) + L.remove_movespeed_modifier(type) ..() /datum/reagent/medicine/changelinghaste/on_mob_life(mob/living/carbon/M) @@ -1381,7 +1328,6 @@ datum/reagent/medicine/styptic_powder/overdose_start(mob/living/M) // Heart attack code will not do damage if corazone is present // because it's SPACE MAGIC ASPIRIN name = "Corazone" - id = "corazone" description = "A medication used to treat pain, fever, and inflammation, along with heart attacks." color = "#F5F5F5" self_consuming = TRUE @@ -1399,20 +1345,18 @@ datum/reagent/medicine/styptic_powder/overdose_start(mob/living/M) /datum/reagent/medicine/muscle_stimulant name = "Muscle Stimulant" - id = "muscle_stimulant" description = "A potent chemical that allows someone under its influence to be at full physical ability even when under massive amounts of pain." /datum/reagent/medicine/muscle_stimulant/on_mob_metabolize(mob/living/M) . = ..() - M.ignore_slowdown(id) + M.ignore_slowdown(type) /datum/reagent/medicine/muscle_stimulant/on_mob_end_metabolize(mob/living/M) . = ..() - M.unignore_slowdown(id) + M.unignore_slowdown(type) /datum/reagent/medicine/modafinil name = "Modafinil" - id = "modafinil" description = "Long-lasting sleep suppressant that very slightly reduces stun and knockdown times. Overdosing has horrendous side effects and deals lethal oxygen damage, will knock you unconscious if not dealt with." reagent_state = LIQUID color = "#BEF7D8" // palish blue white @@ -1423,11 +1367,11 @@ datum/reagent/medicine/styptic_powder/overdose_start(mob/living/M) pH = 7.89 /datum/reagent/medicine/modafinil/on_mob_metabolize(mob/living/M) - ADD_TRAIT(M, TRAIT_SLEEPIMMUNE, id) + ADD_TRAIT(M, TRAIT_SLEEPIMMUNE, type) ..() /datum/reagent/medicine/modafinil/on_mob_end_metabolize(mob/living/M) - REMOVE_TRAIT(M, TRAIT_SLEEPIMMUNE, id) + REMOVE_TRAIT(M, TRAIT_SLEEPIMMUNE, type) ..() /datum/reagent/medicine/modafinil/on_mob_life(mob/living/carbon/M) @@ -1480,7 +1424,6 @@ datum/reagent/medicine/styptic_powder/overdose_start(mob/living/M) /datum/reagent/medicine/psicodine name = "Psicodine" - id = "psicodine" description = "Suppresses anxiety and other various forms of mental distress. Overdose causes hallucinations and minor toxin damage." reagent_state = LIQUID color = "#07E79E" @@ -1490,10 +1433,10 @@ datum/reagent/medicine/styptic_powder/overdose_start(mob/living/M) /datum/reagent/medicine/psicodine/on_mob_add(mob/living/L) ..() - ADD_TRAIT(L, TRAIT_FEARLESS, id) + ADD_TRAIT(L, TRAIT_FEARLESS, type) /datum/reagent/medicine/psicodine/on_mob_delete(mob/living/L) - REMOVE_TRAIT(L, TRAIT_FEARLESS, id) + REMOVE_TRAIT(L, TRAIT_FEARLESS, type) ..() /datum/reagent/medicine/psicodine/on_mob_life(mob/living/carbon/M) @@ -1515,7 +1458,6 @@ datum/reagent/medicine/styptic_powder/overdose_start(mob/living/M) /datum/reagent/medicine/silibinin name = "Silibinin" - id = "silibinin" description = "A thistle derrived hepatoprotective flavolignan mixture that help reverse damage to the liver." reagent_state = SOLID color = "#FFFFD0" @@ -1528,7 +1470,6 @@ datum/reagent/medicine/styptic_powder/overdose_start(mob/living/M) /datum/reagent/medicine/polypyr //This is intended to be an ingredient in advanced chems. name = "Polypyrylium Oligomers" - id = "polypyr" description = "A�purple mixture of short polyelectrolyte chains not easily synthesized in the laboratory. It is valued as an intermediate in the synthesis of the cutting edge pharmaceuticals." reagent_state = SOLID color = "#9423FF" diff --git a/code/modules/reagents/chemistry/reagents/other_reagents.dm b/code/modules/reagents/chemistry/reagents/other_reagents.dm index bd6eb4244c..dbede29e5f 100644 --- a/code/modules/reagents/chemistry/reagents/other_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/other_reagents.dm @@ -1,7 +1,6 @@ /datum/reagent/blood data = list("donor"=null,"viruses"=null,"blood_DNA"=null, "bloodcolor" = BLOOD_COLOR_HUMAN, "blood_type"= null,"resistances"=null,"trace_chem"=null,"mind"=null,"ckey"=null,"gender"=null,"real_name"=null,"cloneable"=null,"factions"=null,"quirks"=null) name = "Blood" - id = "blood" value = 1 color = BLOOD_COLOR_HUMAN // rgb: 200, 0, 0 description = "Blood from some creature." @@ -30,7 +29,7 @@ if(iscarbon(L)) var/mob/living/carbon/C = L var/blood_id = C.get_blood_id() - if((HAS_TRAIT(C, TRAIT_NOMARROW) || blood_id == "blood" || blood_id == "jellyblood") && (method == INJECT || (method == INGEST && C.dna && C.dna.species && (DRINKSBLOOD in C.dna.species.species_traits)))) + if((HAS_TRAIT(C, TRAIT_NOMARROW) || blood_id == /datum/reagent/blood || blood_id == /datum/reagent/blood/jellyblood) && (method == INJECT || (method == INGEST && C.dna && C.dna.species && (DRINKSBLOOD in C.dna.species.species_traits)))) C.blood_volume = min(C.blood_volume + round(reac_volume, 0.1), BLOOD_VOLUME_MAXIMUM * C.blood_ratio) // we don't care about bloodtype here, we're just refilling the mob @@ -41,7 +40,7 @@ if((HAS_TRAIT(C, TRAIT_NOMARROW))) return //We dont want vampires getting toxed from blood var/blood_id = C.get_blood_id() - if((blood_id == "blood" || blood_id == "jellyblood")) + if((blood_id == /datum/reagent/blood || blood_id == /datum/reagent/blood/jellyblood)) if(!data || !(data["blood_type"] in get_safe_blood(C.dna.blood_type))) //we only care about bloodtype here because this is where the poisoning should be C.adjustToxLoss(rand(2,8)*REM, TRUE, TRUE) //forced to ensure people don't use it to gain beneficial toxin as slime person ..() @@ -62,7 +61,7 @@ if(data["blood_DNA"]) B.blood_DNA[data["blood_DNA"]] = data["blood_type"] if(!B.reagents) - B.reagents.add_reagent(id, reac_volume) + B.reagents.add_reagent(type, reac_volume) B.update_icon() /datum/reagent/blood/on_new(list/data) @@ -132,14 +131,12 @@ /datum/reagent/blood/synthetics data = list("donor"=null,"viruses"=null,"blood_DNA"="REPLICATED", "bloodcolor" = BLOOD_COLOR_SYNTHETIC, "blood_type"="SY","resistances"=null,"trace_chem"=null,"mind"=null,"ckey"=null,"gender"=null,"real_name"=null,"cloneable"=null,"factions"=null) name = "Synthetic Blood" - id = "syntheticblood" taste_description = "oily" color = BLOOD_COLOR_SYNTHETIC // rgb: 11, 7, 48 /datum/reagent/blood/lizard data = list("donor"=null,"viruses"=null,"blood_DNA"=null, "bloodcolor" = BLOOD_COLOR_LIZARD, "blood_type"="L","resistances"=null,"trace_chem"=null,"mind"=null,"ckey"=null,"gender"=null,"real_name"=null,"cloneable"=null,"factions"=null) name = "Lizard Blood" - id = "lizardblood" taste_description = "spicy" color = BLOOD_COLOR_LIZARD // rgb: 11, 7, 48 pH = 6.85 @@ -147,7 +144,6 @@ /datum/reagent/blood/jellyblood data = list("donor"=null,"viruses"=null,"blood_DNA"=null, "bloodcolor" = BLOOD_COLOR_SLIME, "blood_type"="GEL","resistances"=null,"trace_chem"=null,"mind"=null,"ckey"=null,"gender"=null,"real_name"=null,"cloneable"=null,"factions"=null) name = "Slime Jelly Blood" - id = "jellyblood" description = "A gooey semi-liquid produced from one of the deadliest lifeforms in existence. SO REAL." color = BLOOD_COLOR_SLIME taste_description = "slime" @@ -157,7 +153,6 @@ /datum/reagent/blood/xenomorph data = list("donor"=null,"viruses"=null,"blood_DNA"=null, "bloodcolor" = BLOOD_COLOR_XENO, "blood_type"="X*","resistances"=null,"trace_chem"=null,"mind"=null,"ckey"=null,"gender"=null,"real_name"=null,"cloneable"=null,"factions"=null) name = "Xenomorph Blood" - id = "xenoblood" taste_description = "acidic heresy" color = BLOOD_COLOR_XENO // greenish yellow ooze shot_glass_icon_state = "shotglassgreen" @@ -166,7 +161,6 @@ /datum/reagent/blood/oil data = list("donor"=null,"viruses"=null,"blood_DNA"=null, "bloodcolor" = BLOOD_COLOR_OIL, "blood_type"="HF","resistances"=null,"trace_chem"=null,"mind"=null,"ckey"=null,"gender"=null,"real_name"=null,"cloneable"=null,"factions"=null) name = "Hydraulic Blood" - id = "oilblood" taste_description = "burnt oil" color = BLOOD_COLOR_OIL // dark, y'know, expected batman colors. pH = 9.75 @@ -174,7 +168,6 @@ /datum/reagent/blood/insect data = list("donor"=null,"viruses"=null,"blood_DNA"=null, "bloodcolor" = BLOOD_COLOR_BUG, "blood_type"="BUG","resistances"=null,"trace_chem"=null,"mind"=null,"ckey"=null,"gender"=null,"real_name"=null,"cloneable"=null,"factions"=null) name = "Insectoid Blood" - id = "bugblood" taste_description = "waxy" color = BLOOD_COLOR_BUG // Bug colored, I guess. pH = 7.25 @@ -193,7 +186,6 @@ /datum/reagent/liquidgibs name = "Liquid gibs" - id = "liquidgibs" color = BLOOD_COLOR_HUMAN description = "You don't even want to think about what's in here." taste_description = "gross iron" @@ -203,7 +195,6 @@ /datum/reagent/liquidgibs/xeno name = "Liquid xeno gibs" - id = "liquidxenogibs" color = BLOOD_COLOR_XENO taste_description = "blended heresy" shot_glass_icon_state = "shotglassgreen" @@ -212,7 +203,6 @@ /datum/reagent/liquidgibs/slime name = "Slime sludge" - id = "liquidslimegibs" color = BLOOD_COLOR_SLIME taste_description = "slime" shot_glass_icon_state = "shotglassgreen" @@ -221,14 +211,12 @@ /datum/reagent/liquidgibs/synth name = "Synthetic sludge" - id = "liquidsyntheticgibs" color = BLOOD_COLOR_SYNTHETIC taste_description = "jellied plastic" data = list("donor"=null,"viruses"=null,"blood_DNA"=null, "bloodcolor" = BLOOD_COLOR_SYNTHETIC, "blood_type"="SY","resistances"=null,"trace_chem"=null,"mind"=null,"ckey"=null,"gender"=null,"real_name"=null,"cloneable"=null,"factions"=null) /datum/reagent/liquidgibs/oil name = "Hydraulic sludge" - id = "liquidoilgibs" color = BLOOD_COLOR_OIL taste_description = "chunky burnt oil" data = list("donor"=null,"viruses"=null,"blood_DNA"=null, "bloodcolor" = BLOOD_COLOR_OIL, "blood_type"="HF","resistances"=null,"trace_chem"=null,"mind"=null,"ckey"=null,"gender"=null,"real_name"=null,"cloneable"=null,"factions"=null) @@ -237,7 +225,6 @@ /datum/reagent/vaccine //data must contain virus type name = "Vaccine" - id = "vaccine" color = "#C81040" // rgb: 200, 16, 64 taste_description = "slime" @@ -255,7 +242,6 @@ /datum/reagent/water name = "Water" - id = "water" description = "An ubiquitous chemical substance that is composed of hydrogen and oxygen." color = "#AAAAAA77" // rgb: 170, 170, 170, 77 (alpha) taste_description = "water" @@ -327,7 +313,6 @@ /datum/reagent/water/holywater name = "Holy Water" - id = "holywater" description = "Water blessed by some deity." color = "#E0E8EF" // rgb: 224, 232, 239 glass_icon_state = "glass_clear" @@ -337,7 +322,7 @@ /datum/reagent/water/holywater/on_mob_metabolize(mob/living/L) . = ..() - ADD_TRAIT(L, TRAIT_HOLY, id) + ADD_TRAIT(L, TRAIT_HOLY, type) if(is_servant_of_ratvar(L)) to_chat(L, "A fog spreads through your mind, purging the Justiciar's influence!") @@ -345,7 +330,7 @@ to_chat(L, "A fog spreads through your mind, weakening your connection to the veil and purging Nar-sie's influence") /datum/reagent/water/holywater/on_mob_end_metabolize(mob/living/L) - REMOVE_TRAIT(L, TRAIT_HOLY, id) + REMOVE_TRAIT(L, TRAIT_HOLY, type) if(iscultist(L)) for(var/datum/action/innate/cult/blood_magic/BM in L.actions) BM.holy_dispel = FALSE @@ -392,9 +377,9 @@ remove_servant_of_ratvar(M) M.jitteriness = 0 M.stuttering = 0 - holder.remove_reagent(id, volume) // maybe this is a little too perfect and a max() cap on the statuses would be better?? + holder.del_reagent(type) // maybe this is a little too perfect and a max() cap on the statuses would be better?? return - holder.remove_reagent(id, 0.4) //fixed consumption to prevent balancing going out of whack + holder.remove_reagent(type, 0.4) //fixed consumption to prevent balancing going out of whack /datum/reagent/water/holywater/reaction_turf(turf/T, reac_volume) ..() @@ -407,14 +392,13 @@ /datum/reagent/fuel/unholywater //if you somehow managed to extract this from someone, dont splash it on yourself and have a smoke name = "Unholy Water" - id = "unholywater" description = "Something that shouldn't exist on this plane of existence." taste_description = "suffering" pH = 6.5 /datum/reagent/fuel/unholywater/reaction_mob(mob/living/M, method=TOUCH, reac_volume) if(method == TOUCH || method == VAPOR) - M.reagents.add_reagent(id,reac_volume/4) + M.reagents.add_reagent(type, reac_volume/4) return return ..() @@ -437,12 +421,11 @@ M.adjustFireLoss(2, 0) M.adjustOxyLoss(2, 0) M.adjustBruteLoss(2, 0) - holder.remove_reagent(id, 1) + holder.remove_reagent(type, 1) return TRUE /datum/reagent/hellwater //if someone has this in their system they've really pissed off an eldrich god name = "Hell Water" - id = "hell_water" description = "YOUR FLESH! IT BURNS!" taste_description = "burning" @@ -452,12 +435,11 @@ M.adjustToxLoss(1, 0) M.adjustFireLoss(1, 0) //Hence the other damages... ain't I a bastard? M.adjustOrganLoss(ORGAN_SLOT_BRAIN, 5, 150) - holder.remove_reagent(id, 1) + holder.remove_reagent(type, 1) pH = 0.1 /datum/reagent/fuel/holyoil //Its oil name = "Zelus Oil" - id = "holyoil" description = "Oil blessed by a greater being." taste_description = "metallic oil" @@ -481,7 +463,7 @@ M.adjustToxLoss(3, 0) M.adjustOxyLoss(2, 0) M.adjustStaminaLoss(10, 0) - holder.remove_reagent(id, 1) + holder.remove_reagent(type, 1) return TRUE //We only get 30u to start with... @@ -496,13 +478,11 @@ /datum/reagent/medicine/omnizine/godblood name = "Godblood" - id = "godblood" description = "Slowly heals all damage types. Has a rather high overdose threshold. Glows with mysterious power." overdose_threshold = 150 /datum/reagent/lube name = "Space Lube" - id = "lube" description = "Lubricant is a substance introduced between two moving surfaces to reduce the friction and wear between them. giggity." color = "#009CA8" // rgb: 0, 156, 168 taste_description = "cherry" // by popular demand @@ -517,13 +497,11 @@ ///Stronger kind of lube. Applies TURF_WET_SUPERLUBE. /datum/reagent/lube/superlube name = "Super Duper Lube" - id = "superlube" description = "This \[REDACTED\] has been outlawed after the incident on \[DATA EXPUNGED\]." lube_kind = TURF_WET_SUPERLUBE /datum/reagent/spraytan name = "Spray Tan" - id = "spraytan" description = "A substance applied to the skin to darken the skin." color = "#FFC080" // rgb: 255, 196, 128 Bright orange metabolization_rate = 10 * REAGENTS_METABOLISM // very fast, so it can be applied rapidly. But this changes on an overdose @@ -620,7 +598,6 @@ /datum/reagent/mutationtoxin name = "Stable Mutation Toxin" - id = "stablemutationtoxin" description = "A humanizing toxin." color = "#5EFF3B" //RGB: 94, 255, 59 metabolization_rate = INFINITY //So it instantly removes all of itself @@ -651,7 +628,6 @@ /datum/reagent/mutationtoxin/classic //The one from plasma on green slimes name = "Mutation Toxin" - id = "mutationtoxin" description = "A corruptive toxin." color = "#13BC5E" // rgb: 19, 188, 94 race = /datum/species/jelly/slime @@ -659,14 +635,12 @@ /datum/reagent/mutationtoxin/felinid name = "Felinid Mutation Toxin" - id = "felinidmutationtoxin" color = "#5EFF3B" //RGB: 94, 255, 59 race = /datum/species/human/felinid mutationtext = "The pain subsides. You feel... like a degenerate." /datum/reagent/mutationtoxin/lizard name = "Lizard Mutation Toxin" - id = "lizardmutationtoxin" description = "A lizarding toxin." color = "#5EFF3B" //RGB: 94, 255, 59 race = /datum/species/lizard @@ -674,7 +648,6 @@ /datum/reagent/mutationtoxin/fly name = "Fly Mutation Toxin" - id = "flymutationtoxin" description = "An insectifying toxin." color = "#5EFF3B" //RGB: 94, 255, 59 race = /datum/species/fly @@ -682,7 +655,6 @@ /datum/reagent/mutationtoxin/insect name = "Insect Mutation Toxin" - id = "mothmutationtoxin" description = "A glowing toxin." color = "#5EFF3B" //RGB: 94, 255, 59 race = /datum/species/insect @@ -690,7 +662,6 @@ /datum/reagent/mutationtoxin/pod name = "Podperson Mutation Toxin" - id = "podmutationtoxin" description = "A vegetalizing toxin." color = "#5EFF3B" //RGB: 94, 255, 59 race = /datum/species/pod @@ -698,7 +669,6 @@ /datum/reagent/mutationtoxin/jelly name = "Imperfect Mutation Toxin" - id = "jellymutationtoxin" description = "An jellyfying toxin." color = "#5EFF3B" //RGB: 94, 255, 59 race = /datum/species/jelly @@ -706,7 +676,6 @@ /datum/reagent/mutationtoxin/golem name = "Golem Mutation Toxin" - id = "golemmutationtoxin" description = "A crystal toxin." color = "#5EFF3B" //RGB: 94, 255, 59 race = /datum/species/golem/random @@ -714,7 +683,6 @@ /datum/reagent/mutationtoxin/abductor name = "Abductor Mutation Toxin" - id = "abductormutationtoxin" description = "An alien toxin." color = "#5EFF3B" //RGB: 94, 255, 59 race = /datum/species/abductor @@ -722,7 +690,6 @@ /datum/reagent/mutationtoxin/android name = "Android Mutation Toxin" - id = "androidmutationtoxin" description = "A robotic toxin." color = "#5EFF3B" //RGB: 94, 255, 59 race = /datum/species/android @@ -731,7 +698,6 @@ //Citadel Races /datum/reagent/mutationtoxin/mammal name = "Mammal Mutation Toxin" - id = "mammalmutationtoxin" description = "A glowing toxin." color = "#5EFF3B" //RGB: 94, 255, 59 race = /datum/species/mammal @@ -739,7 +705,6 @@ /datum/reagent/mutationtoxin/insect name = "Insect Mutation Toxin" - id = "insectmutationtoxin" description = "A glowing toxin." color = "#5EFF3B" //RGB: 94, 255, 59 race = /datum/species/insect @@ -747,7 +712,6 @@ /datum/reagent/mutationtoxin/xenoperson name = "Xeno-Hybrid Mutation Toxin" - id = "xenopersonmutationtoxin" description = "A glowing toxin." color = "#5EFF3B" //RGB: 94, 255, 59 race = /datum/species/xeno @@ -756,7 +720,6 @@ //BLACKLISTED RACES /datum/reagent/mutationtoxin/skeleton name = "Skeleton Mutation Toxin" - id = "skeletonmutationtoxin" description = "A scary toxin." color = "#5EFF3B" //RGB: 94, 255, 59 race = /datum/species/skeleton @@ -764,7 +727,6 @@ /datum/reagent/mutationtoxin/zombie name = "Zombie Mutation Toxin" - id = "zombiemutationtoxin" description = "An undead toxin." color = "#5EFF3B" //RGB: 94, 255, 59 race = /datum/species/zombie //Not the infectious kind. The days of xenobio zombie outbreaks are long past. @@ -772,7 +734,6 @@ /datum/reagent/mutationtoxin/ash name = "Ash Mutation Toxin" - id = "ashmutationtoxin" description = "An ashen toxin." color = "#5EFF3B" //RGB: 94, 255, 59 race = /datum/species/lizard/ashwalker @@ -782,7 +743,6 @@ //DANGEROUS RACES /datum/reagent/mutationtoxin/shadow name = "Shadow Mutation Toxin" - id = "shadowmutationtoxin" description = "A dark toxin." color = "#5EFF3B" //RGB: 94, 255, 59 race = /datum/species/shadow @@ -790,7 +750,6 @@ /datum/reagent/mutationtoxin/plasma name = "Plasma Mutation Toxin" - id = "plasmamutationtoxin" description = "A plasma-based toxin." color = "#5EFF3B" //RGB: 94, 255, 59 race = /datum/species/plasmaman @@ -798,7 +757,6 @@ /datum/reagent/slime_toxin name = "Slime Mutation Toxin" - id = "slime_toxin" description = "A toxin that turns organic material into slime." color = "#5EFF3B" //RGB: 94, 255, 59 taste_description = "slime" @@ -815,7 +773,7 @@ to_chat(H, "Your jelly shifts and morphs, turning you into another subspecies!") var/species_type = pick(subtypesof(/datum/species/jelly)) H.set_species(species_type) - H.reagents.del_reagent(id) + H.reagents.del_reagent(type) switch(current_cycle) if(1 to 6) @@ -830,12 +788,11 @@ if(20 to INFINITY) var/species_type = pick(subtypesof(/datum/species/jelly)) H.set_species(species_type) - H.reagents.del_reagent(id) + H.reagents.del_reagent(type) to_chat(H, "You've become \a jellyperson!") /datum/reagent/mulligan name = "Mulligan Toxin" - id = "mulligan" description = "This toxin will rapidly change the DNA of human beings. Commonly used by Syndicate spies and assassins in need of an emergency ID change." color = "#5EFF3B" //RGB: 94, 255, 59 metabolization_rate = INFINITY @@ -851,7 +808,6 @@ /datum/reagent/aslimetoxin name = "Advanced Mutation Toxin" - id = "amutationtoxin" description = "An advanced corruptive toxin produced by slimes." color = "#13BC5E" // rgb: 19, 188, 94 taste_description = "slime" @@ -862,7 +818,6 @@ /datum/reagent/gluttonytoxin name = "Gluttony's Blessing" - id = "gluttonytoxin" description = "An advanced corruptive toxin produced by something terrible." color = "#5EFF3B" //RGB: 94, 255, 59 can_synth = FALSE @@ -873,7 +828,6 @@ /datum/reagent/serotrotium name = "Serotrotium" - id = "serotrotium" description = "A chemical compound that promotes concentrated production of the serotonin neurotransmitter in humans." color = "#202040" // rgb: 20, 20, 40 metabolization_rate = 0.25 * REAGENTS_METABOLISM @@ -888,7 +842,6 @@ /datum/reagent/oxygen name = "Oxygen" - id = "oxygen" description = "A colorless, odorless gas. Grows on trees but is still pretty valuable." reagent_state = GAS color = "#808080" // rgb: 128, 128, 128 @@ -909,7 +862,6 @@ /datum/reagent/copper name = "Copper" - id = "copper" description = "A highly ductile metal. Things made out of copper aren't very durable, but it makes a decent material for electrical wiring." reagent_state = SOLID color = "#6E3B08" // rgb: 110, 59, 8 @@ -925,7 +877,6 @@ /datum/reagent/nitrogen name = "Nitrogen" - id = "nitrogen" description = "A colorless, odorless, tasteless gas. A simple asphyxiant that can silently displace vital oxygen." reagent_state = GAS color = "#808080" // rgb: 128, 128, 128 @@ -946,7 +897,6 @@ /datum/reagent/hydrogen name = "Hydrogen" - id = "hydrogen" description = "A colorless, odorless, nonmetallic, tasteless, highly combustible diatomic gas." reagent_state = GAS color = "#808080" // rgb: 128, 128, 128 @@ -955,7 +905,6 @@ /datum/reagent/potassium name = "Potassium" - id = "potassium" description = "A soft, low-melting solid that can easily be cut with a knife. Reacts violently with water." reagent_state = SOLID color = "#A0A0A0" // rgb: 160, 160, 160 @@ -963,7 +912,6 @@ /datum/reagent/mercury name = "Mercury" - id = "mercury" description = "A curious metal that's a liquid at room temperature. Neurodegenerative and very bad for the mind." color = "#484848" // rgb: 72, 72, 72A taste_mult = 0 // apparently tasteless. @@ -978,7 +926,6 @@ /datum/reagent/sulfur name = "Sulfur" - id = "sulfur" description = "A sickly yellow solid mostly known for its nasty smell. It's actually much more helpful than it looks in biochemisty." reagent_state = SOLID color = "#BF8C00" // rgb: 191, 140, 0 @@ -987,7 +934,6 @@ /datum/reagent/carbon name = "Carbon" - id = "carbon" description = "A crumbly black solid that, while unexciting on an physical level, forms the base of all known life. Kind of a big deal." reagent_state = SOLID color = "#1C1300" // rgb: 30, 20, 0 @@ -1002,7 +948,6 @@ /datum/reagent/chlorine name = "Chlorine" - id = "chlorine" description = "A pale yellow gas that's well known as an oxidizer. While it forms many harmless molecules in its elemental form it is far from harmless." reagent_state = GAS color = "#808080" // rgb: 128, 128, 128 @@ -1016,7 +961,6 @@ /datum/reagent/fluorine name = "Fluorine" - id = "fluorine" description = "A comically-reactive chemical element. The universe does not want this stuff to exist in this form in the slightest." reagent_state = GAS color = "#808080" // rgb: 128, 128, 128 @@ -1030,7 +974,6 @@ /datum/reagent/sodium name = "Sodium" - id = "sodium" description = "A soft silver metal that can easily be cut with a knife. It's not salt just yet, so refrain from putting in on your chips." reagent_state = SOLID color = "#808080" // rgb: 128, 128, 128 @@ -1039,7 +982,6 @@ /datum/reagent/phosphorus name = "Phosphorus" - id = "phosphorus" description = "A ruddy red powder that burns readily. Though it comes in many colors, the general theme is always the same." reagent_state = SOLID color = "#832828" // rgb: 131, 40, 40 @@ -1048,7 +990,6 @@ /datum/reagent/lithium name = "Lithium" - id = "lithium" description = "A silver metal, its claim to fame is its remarkably low density. Using it is a bit too effective in calming oneself down." reagent_state = SOLID color = "#808080" // rgb: 128, 128, 128 @@ -1064,7 +1005,6 @@ /datum/reagent/glycerol name = "Glycerol" - id = "glycerol" description = "Glycerol is a simple polyol compound. Glycerol is sweet-tasting and of low toxicity." color = "#808080" // rgb: 128, 128, 128 taste_description = "sweetness" @@ -1072,7 +1012,6 @@ /datum/reagent/radium name = "Radium" - id = "radium" description = "Radium is an alkaline earth metal. It is extremely radioactive." reagent_state = SOLID color = "#C7C7C7" // rgb: 199,199,199 @@ -1089,11 +1028,10 @@ var/obj/effect/decal/cleanable/greenglow/GG = locate() in T.contents if(!GG) GG = new/obj/effect/decal/cleanable/greenglow(T) - GG.reagents.add_reagent("radium", reac_volume) + GG.reagents.add_reagent(/datum/reagent/radium, reac_volume) /datum/reagent/space_cleaner/sterilizine name = "Sterilizine" - id = "sterilizine" description = "Sterilizes wounds in preparation for surgery." color = "#e6f1f5" // rgb: 200, 165, 220 taste_description = "bitterness" @@ -1109,7 +1047,6 @@ /datum/reagent/iron name = "Iron" - id = "iron" description = "Pure iron is a metal." reagent_state = SOLID taste_description = "iron" @@ -1127,12 +1064,12 @@ /datum/reagent/iron/reaction_mob(mob/living/M, method=TOUCH, reac_volume) if(M.has_bane(BANE_IRON)) //If the target is weak to cold iron, then poison them. if(holder && holder.chem_temp < 100) // COLD iron. - M.reagents.add_reagent("toxin", reac_volume) + M.reagents.add_reagent(/datum/reagent/toxin, reac_volume) ..() /datum/reagent/iron/overdose_start(mob/living/M) to_chat(M, "You start feeling your guts twisting painfully!") - SEND_SIGNAL(M, COMSIG_ADD_MOOD_EVENT, "[id]_overdose", /datum/mood_event/overdose, name) + SEND_SIGNAL(M, COMSIG_ADD_MOOD_EVENT, "[type]_overdose", /datum/mood_event/overdose, name) /datum/reagent/iron/overdose_process(mob/living/carbon/C) if(prob(20)) @@ -1143,7 +1080,6 @@ /datum/reagent/gold name = "Gold" - id = "gold" description = "Gold is a dense, soft, shiny metal and the most malleable and ductile metal known." reagent_state = SOLID color = "#F7C430" // rgb: 247, 196, 48 @@ -1151,7 +1087,6 @@ /datum/reagent/silver name = "Silver" - id = "silver" description = "A soft, white, lustrous transition metal, it has the highest electrical conductivity of any element and the highest thermal conductivity of any metal." reagent_state = SOLID color = "#D0D0D0" // rgb: 208, 208, 208 @@ -1159,12 +1094,11 @@ /datum/reagent/silver/reaction_mob(mob/living/M, method=TOUCH, reac_volume) if(M.has_bane(BANE_SILVER)) - M.reagents.add_reagent("toxin", reac_volume) + M.reagents.add_reagent(/datum/reagent/toxin, reac_volume) ..() /datum/reagent/uranium name ="Uranium" - id = "uranium" description = "A silvery-white metallic chemical element in the actinide series, weakly radioactive." reagent_state = SOLID color = "#B8B8C0" // rgb: 184, 184, 192 @@ -1181,11 +1115,10 @@ var/obj/effect/decal/cleanable/greenglow/GG = locate() in T.contents if(!GG) GG = new/obj/effect/decal/cleanable/greenglow(T) - GG.reagents.add_reagent("uranium", reac_volume) + GG.reagents.add_reagent(/datum/reagent/uranium, reac_volume) /datum/reagent/bluespace name = "Bluespace Dust" - id = "bluespace" description = "A dust composed of microscopic bluespace crystals, with minor space-warping properties." reagent_state = SOLID color = "#0000CC" @@ -1210,7 +1143,6 @@ /datum/reagent/aluminium name = "Aluminium" - id = "aluminium" description = "A silvery white and ductile member of the boron group of chemical elements." reagent_state = SOLID color = "#A8A8A8" // rgb: 168, 168, 168 @@ -1218,7 +1150,6 @@ /datum/reagent/silicon name = "Silicon" - id = "silicon" description = "A tetravalent metalloid, silicon is less reactive than its chemical analog carbon." reagent_state = SOLID color = "#A8A8A8" // rgb: 168, 168, 168 @@ -1227,7 +1158,6 @@ /datum/reagent/fuel name = "Welding fuel" - id = "welding_fuel" description = "Required for welders. Flamable." color = "#660000" // rgb: 102, 0, 0 taste_description = "gross metal" @@ -1250,7 +1180,6 @@ /datum/reagent/space_cleaner name = "Space cleaner" - id = "cleaner" description = "A compound used to clean things. Now with 50% more sodium hypochlorite!" color = "#A5F0EE" // rgb: 165, 240, 238 taste_description = "sourness" @@ -1317,7 +1246,6 @@ /datum/reagent/space_cleaner/ez_clean name = "EZ Clean" - id = "ez_clean" description = "A powerful, acidic cleaner sold by Waffle Co. Affects organic matter while leaving other objects unaffected." metabolization_rate = 1.5 * REAGENTS_METABOLISM taste_description = "acid" @@ -1337,7 +1265,6 @@ /datum/reagent/cryptobiolin name = "Cryptobiolin" - id = "cryptobiolin" description = "Cryptobiolin causes confusion and dizziness." color = "#7529b3" // rgb: 200, 165, 220 metabolization_rate = 1.5 * REAGENTS_METABOLISM @@ -1353,7 +1280,6 @@ /datum/reagent/impedrezene name = "Impedrezene" - id = "impedrezene" description = "Impedrezene is a narcotic that impedes one's ability by slowing down the higher brain cell functions." color = "#587a31" // rgb: 200, 165, 220A taste_description = "numbness" @@ -1371,7 +1297,6 @@ /datum/reagent/nanomachines name = "Nanomachines" - id = "nanomachines" description = "Microscopic construction robots." color = "#535E66" // rgb: 83, 94, 102 can_synth = FALSE @@ -1383,7 +1308,6 @@ /datum/reagent/xenomicrobes name = "Xenomicrobes" - id = "xenomicrobes" description = "Microbes with an entirely alien cellular structure." color = "#535E66" // rgb: 83, 94, 102 can_synth = FALSE @@ -1395,7 +1319,6 @@ /datum/reagent/fungalspores name = "Tubercle bacillus Cosmosis microbes" - id = "fungalspores" description = "Active fungal spores." color = "#92D17D" // rgb: 146, 209, 125 can_synth = FALSE @@ -1408,7 +1331,6 @@ /datum/reagent/fluorosurfactant//foam precursor name = "Fluorosurfactant" - id = "fluorosurfactant" description = "A perfluoronated sulfonic acid that forms a foam when mixed with water." color = "#9E6B38" // rgb: 158, 107, 56 taste_description = "metal" @@ -1416,7 +1338,6 @@ /datum/reagent/foaming_agent// Metal foaming agent. This is lithium hydride. Add other recipes (e.g. LiH + H2O -> LiOH + H2) eventually. name = "Foaming agent" - id = "foaming_agent" description = "An agent that yields metallic foam when mixed with light metal and a strong acid." reagent_state = SOLID color = "#664B63" // rgb: 102, 75, 99 @@ -1425,7 +1346,6 @@ /datum/reagent/smart_foaming_agent //Smart foaming agent. Functions similarly to metal foam, but conforms to walls. name = "Smart foaming agent" - id = "smart_foaming_agent" description = "An agent that yields metallic foam which conforms to area boundaries when mixed with light metal and a strong acid." reagent_state = SOLID color = "#664B63" // rgb: 102, 75, 99 @@ -1434,7 +1354,6 @@ /datum/reagent/ammonia name = "Ammonia" - id = "ammonia" description = "A caustic substance commonly used in fertilizer or household cleaners." reagent_state = GAS color = "#404030" // rgb: 64, 64, 48 @@ -1443,7 +1362,6 @@ /datum/reagent/diethylamine name = "Diethylamine" - id = "diethylamine" description = "A secondary amine, mildly corrosive." color = "#604030" // rgb: 96, 64, 48 taste_description = "iron" @@ -1451,7 +1369,6 @@ /datum/reagent/carbondioxide name = "Carbon Dioxide" - id = "co2" reagent_state = GAS description = "A gas commonly produced by burning carbon fuels. You're constantly producing this in your lungs." color = "#B0B0B0" // rgb : 192, 192, 192 @@ -1472,7 +1389,6 @@ /datum/reagent/nitrous_oxide name = "Nitrous Oxide" - id = "nitrous_oxide" description = "A potent oxidizer used as fuel in rockets and as an anaesthetic during surgery." reagent_state = LIQUID metabolization_rate = 1.5 * REAGENTS_METABOLISM @@ -1507,7 +1423,6 @@ /datum/reagent/stimulum name = "Stimulum" - id = "stimulum" description = "An unstable experimental gas that greatly increases the energy of those that inhale it" reagent_state = GAS metabolization_rate = 1.5 * REAGENTS_METABOLISM @@ -1516,23 +1431,22 @@ /datum/reagent/stimulum/on_mob_metabolize(mob/living/L) ..() - ADD_TRAIT(L, TRAIT_STUNIMMUNE, id) - ADD_TRAIT(L, TRAIT_SLEEPIMMUNE, id) + ADD_TRAIT(L, TRAIT_STUNIMMUNE, type) + ADD_TRAIT(L, TRAIT_SLEEPIMMUNE, type) /datum/reagent/stimulum/on_mob_end_metabolize(mob/living/L) - REMOVE_TRAIT(L, TRAIT_STUNIMMUNE, id) - REMOVE_TRAIT(L, TRAIT_SLEEPIMMUNE, id) + REMOVE_TRAIT(L, TRAIT_STUNIMMUNE, type) + REMOVE_TRAIT(L, TRAIT_SLEEPIMMUNE, type) ..() /datum/reagent/stimulum/on_mob_life(mob/living/carbon/M) M.adjustStaminaLoss(-2*REM, 0) current_cycle++ - holder.remove_reagent(id, 0.99) //Gives time for the next tick of life(). + holder.remove_reagent(type, 0.99) //Gives time for the next tick of life(). . = TRUE //Update status effects. /datum/reagent/nitryl name = "Nitryl" - id = "no2" description = "A highly reactive gas that makes you feel faster" reagent_state = GAS metabolization_rate = REAGENTS_METABOLISM @@ -1542,10 +1456,10 @@ /datum/reagent/nitryl/on_mob_metabolize(mob/living/L) ..() - L.add_movespeed_modifier(id, update=TRUE, priority=100, multiplicative_slowdown=-1, blacklisted_movetypes=(FLYING|FLOATING)) + L.add_movespeed_modifier(type, update=TRUE, priority=100, multiplicative_slowdown=-1, blacklisted_movetypes=(FLYING|FLOATING)) /datum/reagent/nitryl/on_mob_end_metabolize(mob/living/L) - L.remove_movespeed_modifier(id) + L.remove_movespeed_modifier(type) ..() /////////////////////////Coloured Crayon Powder//////////////////////////// @@ -1554,7 +1468,6 @@ /datum/reagent/colorful_reagent/crayonpowder name = "Crayon Powder" - id = "crayon powder" var/colorname = "none" description = "A powder made by grinding down crayons, good for colouring chemical reagents." reagent_state = SOLID @@ -1568,7 +1481,6 @@ /datum/reagent/colorful_reagent/crayonpowder/red name = "Red Crayon Powder" - id = "redcrayonpowder" colorname = "red" color = "#DA0000" // red random_color_list = list("#DA0000") @@ -1576,7 +1488,6 @@ /datum/reagent/colorful_reagent/crayonpowder/orange name = "Orange Crayon Powder" - id = "orangecrayonpowder" colorname = "orange" color = "#FF9300" // orange random_color_list = list("#FF9300") @@ -1584,7 +1495,6 @@ /datum/reagent/colorful_reagent/crayonpowder/yellow name = "Yellow Crayon Powder" - id = "yellowcrayonpowder" colorname = "yellow" color = "#FFF200" // yellow random_color_list = list("#FFF200") @@ -1592,7 +1502,6 @@ /datum/reagent/colorful_reagent/crayonpowder/green name = "Green Crayon Powder" - id = "greencrayonpowder" colorname = "green" color = "#A8E61D" // green random_color_list = list("#A8E61D") @@ -1600,7 +1509,6 @@ /datum/reagent/colorful_reagent/crayonpowder/blue name = "Blue Crayon Powder" - id = "bluecrayonpowder" colorname = "blue" color = "#00B7EF" // blue random_color_list = list("#00B7EF") @@ -1608,7 +1516,6 @@ /datum/reagent/colorful_reagent/crayonpowder/purple name = "Purple Crayon Powder" - id = "purplecrayonpowder" colorname = "purple" color = "#DA00FF" // purple random_color_list = list("#DA00FF") @@ -1616,21 +1523,18 @@ /datum/reagent/colorful_reagent/crayonpowder/invisible name = "Invisible Crayon Powder" - id = "invisiblecrayonpowder" colorname = "invisible" color = "#FFFFFF00" // white + no alpha random_color_list = list(null) //because using the powder color turns things invisible /datum/reagent/colorful_reagent/crayonpowder/black name = "Black Crayon Powder" - id = "blackcrayonpowder" colorname = "black" color = "#1C1C1C" // not quite black random_color_list = list("#404040") /datum/reagent/colorful_reagent/crayonpowder/white name = "White Crayon Powder" - id = "whitecrayonpowder" colorname = "white" color = "#FFFFFF" // white random_color_list = list("#FFFFFF") //doesn't actually change appearance at all @@ -1639,7 +1543,6 @@ /datum/reagent/plantnutriment name = "Generic nutriment" - id = "plantnutriment" description = "Some kind of nutriment. You can't really tell what it is. You should probably report it, along with how you obtained it." color = "#000000" // RBG: 0, 0, 0 var/tox_prob = 0 @@ -1654,7 +1557,6 @@ /datum/reagent/plantnutriment/eznutriment name = "E-Z-Nutrient" - id = "eznutriment" description = "Cheap and extremely common type of plant nutriment." color = "#376400" // RBG: 50, 100, 0 tox_prob = 10 @@ -1662,7 +1564,6 @@ /datum/reagent/plantnutriment/left4zednutriment name = "Left 4 Zed" - id = "left4zednutriment" description = "Unstable nutriment that makes plants mutate more often than usual." color = "#1A1E4D" // RBG: 26, 30, 77 tox_prob = 25 @@ -1670,7 +1571,6 @@ /datum/reagent/plantnutriment/robustharvestnutriment name = "Robust Harvest" - id = "robustharvestnutriment" description = "Very potent nutriment that prevents plants from mutating." color = "#9D9D00" // RBG: 157, 157, 0 tox_prob = 15 @@ -1680,7 +1580,6 @@ /datum/reagent/oil name = "Oil" - id = "oil" description = "Burns in a small smoky fire, mostly used to get Ash." reagent_state = LIQUID color = "#292929" @@ -1688,7 +1587,6 @@ /datum/reagent/stable_plasma name = "Stable Plasma" - id = "stable_plasma" description = "Non-flammable plasma locked into a liquid form that cannot ignite or become gaseous/solid." reagent_state = LIQUID color = "#6b008f" @@ -1702,7 +1600,6 @@ /datum/reagent/iodine name = "Iodine" - id = "iodine" description = "Commonly added to table salt as a nutrient. On its own it tastes far less pleasing." reagent_state = LIQUID color = "#694600" @@ -1711,7 +1608,6 @@ /datum/reagent/bromine name = "Bromine" - id = "bromine" description = "A brownish liquid that's highly reactive. Useful for stopping free radicals, but not intended for human consumption." reagent_state = LIQUID color = "#b37740" @@ -1720,7 +1616,6 @@ /datum/reagent/phenol name = "Phenol" - id = "phenol" description = "An aromatic ring of carbon with a hydroxyl group. A useful precursor to some medicines, but has no healing properties on its own." reagent_state = LIQUID taste_description = "sweet and tarry" //Again, not a strong acid. @@ -1729,7 +1624,6 @@ /datum/reagent/ash name = "Ash" - id = "ash" description = "Supposedly phoenixes rise from these, but you've never seen it." reagent_state = LIQUID color = "#665c56" @@ -1738,7 +1632,6 @@ /datum/reagent/acetone name = "Acetone" - id = "acetone" description = "A slick, slightly carcinogenic liquid. Has a multitude of mundane uses in everyday life." reagent_state = LIQUID taste_description = "solvent"//It's neutral though..? @@ -1746,7 +1639,6 @@ /datum/reagent/colorful_reagent name = "Colorful Reagent" - id = "colorful_reagent" description = "Thoroughly sample the rainbow." reagent_state = LIQUID color = "#FFFF00" @@ -1776,7 +1668,6 @@ /datum/reagent/hair_dye name = "Quantum Hair Dye" - id = "hair_dye" description = "Has a high chance of making you look like a mad scientist." reagent_state = LIQUID color = "#ff00dd" @@ -1793,7 +1684,6 @@ /datum/reagent/barbers_aid name = "Barber's Aid" - id = "barbers_aid" description = "A solution to hair loss across the world." reagent_state = LIQUID color = "#fac34b" @@ -1811,7 +1701,6 @@ /datum/reagent/concentrated_barbers_aid name = "Concentrated Barber's Aid" - id = "concentrated_barbers_aid" description = "A concentrated solution to hair loss across the world." reagent_state = LIQUID color = "#ffaf00" @@ -1827,7 +1716,6 @@ /datum/reagent/saltpetre name = "Saltpetre" - id = "saltpetre" description = "Volatile. Controversial. Third Thing." reagent_state = LIQUID color = "#60A584" // rgb: 96, 165, 132 @@ -1836,7 +1724,6 @@ /datum/reagent/lye name = "Lye" - id = "lye" description = "Also known as sodium hydroxide. As a profession making this is somewhat underwhelming." reagent_state = LIQUID color = "#FFFFD6" // very very light yellow @@ -1845,7 +1732,6 @@ /datum/reagent/drying_agent name = "Drying agent" - id = "drying_agent" description = "A desiccant. Can be used to dry things." reagent_state = LIQUID color = "#A70FFF" @@ -1865,7 +1751,6 @@ // Liquid Carpets /datum/reagent/carpet name = "Liquid Carpet" - id = "carpet" description = "For those that need a more creative way to roll out a carpet." reagent_state = LIQUID color = "#b51d05" @@ -1880,70 +1765,59 @@ /datum/reagent/carpet/black name = "Liquid Black Carpet" - id = "blackcarpet" color = "#363636" carpet_type = /turf/open/floor/carpet/black /datum/reagent/carpet/blackred name = "Liquid Red Black Carpet" - id = "blackredcarpet" color = "#342125" carpet_type = /turf/open/floor/carpet/blackred /datum/reagent/carpet/monochrome name = "Liquid Monochrome Carpet" - id = "monochromecarpet" color = "#b4b4b4" carpet_type = /turf/open/floor/carpet/monochrome /datum/reagent/carpet/blue name = "Liquid Blue Carpet" - id = "bluecarpet" color = "#1256ff" carpet_type = /turf/open/floor/carpet/blue /datum/reagent/carpet/cyan name = "Liquid Cyan Carpet" - id = "cyancarpet" color = "#3acfb9" carpet_type = /turf/open/floor/carpet/cyan /datum/reagent/carpet/green name = "Liquid Green Carpet" - id = "greencarpet" color = "#619b62" carpet_type = /turf/open/floor/carpet/green /datum/reagent/carpet/orange name = "Liquid Orange Carpet" - id = "orangecarpet" color = "#cc7900" carpet_type = /turf/open/floor/carpet/orange /datum/reagent/carpet/purple name = "Liquid Purple Carpet" - id = "purplecarpet" color = "#6d3392" carpet_type = /turf/open/floor/carpet/purple /datum/reagent/carpet/red name = "Liquid Red Carpet" - id = "redcarpet" color = "#871515" carpet_type = /turf/open/floor/carpet/red /datum/reagent/carpet/royalblack name = "Liquid Royal Black Carpet" - id = "royalblackcarpet" color = "#483d05" carpet_type = /turf/open/floor/carpet/royalblack /datum/reagent/carpet/royalblue name = "Liquid Royal Blue Carpet" - id = "royalbluecarpet" color = "#24227e" carpet_type = /turf/open/floor/carpet/royalblue @@ -1952,51 +1826,43 @@ /datum/reagent/toxin/mutagen/mutagenvirusfood name = "mutagenic agar" - id = "mutagenvirusfood" color = "#A3C00F" // rgb: 163,192,15 taste_description = "sourness" /datum/reagent/toxin/mutagen/mutagenvirusfood/sugar name = "sucrose agar" - id = "sugarvirusfood" color = "#41B0C0" // rgb: 65,176,192 taste_description = "sweetness" /datum/reagent/medicine/synaptizine/synaptizinevirusfood name = "virus rations" - id = "synaptizinevirusfood" color = "#D18AA5" // rgb: 209,138,165 taste_description = "bitterness" /datum/reagent/toxin/plasma/plasmavirusfood name = "virus plasma" - id = "plasmavirusfood" color = "#A69DA9" // rgb: 166,157,169 taste_description = "bitterness" taste_mult = 1.5 /datum/reagent/toxin/plasma/plasmavirusfood/weak name = "weakened virus plasma" - id = "weakplasmavirusfood" color = "#CEC3C6" // rgb: 206,195,198 taste_description = "bitterness" taste_mult = 1.5 /datum/reagent/uranium/uraniumvirusfood name = "decaying uranium gel" - id = "uraniumvirusfood" color = "#67ADBA" // rgb: 103,173,186 taste_description = "the inside of a reactor" /datum/reagent/uranium/uraniumvirusfood/unstable name = "unstable uranium gel" - id = "uraniumplasmavirusfood_unstable" color = "#2FF2CB" // rgb: 47,242,203 taste_description = "the inside of a reactor" /datum/reagent/uranium/uraniumvirusfood/stable name = "stable uranium gel" - id = "uraniumplasmavirusfood_stable" color = "#04506C" // rgb: 4,80,108 taste_description = "the inside of a reactor" @@ -2004,7 +1870,6 @@ /datum/reagent/royal_bee_jelly name = "royal bee jelly" - id = "royal_bee_jelly" description = "Royal Bee Jelly, if injected into a Queen Space Bee said bee will split into two bees." color = "#00ff80" taste_description = "strange honey" @@ -2020,7 +1885,6 @@ /datum/reagent/romerol name = "Romerol" // the REAL zombie powder - id = "romerol" description = "Romerol is a highly experimental bioterror agent \ which causes dormant nodules to be etched into the grey matter of \ the subject. These nodules only become active upon death of the \ @@ -2041,7 +1905,6 @@ /datum/reagent/magillitis name = "Magillitis" - id = "magillitis" description = "An experimental serum which causes rapid muscular growth in Hominidae. Side-affects may include hypertrichosis, violent outbursts, and an unending affinity for bananas." reagent_state = LIQUID color = "#00f041" @@ -2053,7 +1916,6 @@ /datum/reagent/growthserum name = "Growth Serum" - id = "growthserum" description = "A commercial chemical designed to help older men in the bedroom."//not really it just makes you a giant color = "#ff0000"//strong red. rgb 255, 0, 0 var/current_size = 1 @@ -2085,7 +1947,6 @@ /datum/reagent/plastic_polymers name = "plastic polymers" - id = "plastic_polymers" description = "the petroleum based components of plastic." color = "#f7eded" taste_description = "plastic" @@ -2093,7 +1954,6 @@ /datum/reagent/glitter name = "generic glitter" - id = "glitter" description = "if you can see this description, contact a coder." color = "#FFFFFF" //pure white taste_description = "plastic" @@ -2107,27 +1967,23 @@ /datum/reagent/glitter/pink name = "pink glitter" - id = "pink_glitter" description = "pink sparkles that get everywhere" color = "#ff8080" //A light pink color glitter_type = /obj/effect/decal/cleanable/glitter/pink /datum/reagent/glitter/white name = "white glitter" - id = "white_glitter" description = "white sparkles that get everywhere" glitter_type = /obj/effect/decal/cleanable/glitter/white /datum/reagent/glitter/blue name = "blue glitter" - id = "blue_glitter" description = "blue sparkles that get everywhere" color = "#4040FF" //A blueish color glitter_type = /obj/effect/decal/cleanable/glitter/blue /datum/reagent/pax name = "pax" - id = "pax" description = "A colorless liquid that suppresses violence on the subjects." color = "#AAAAAA55" taste_description = "water" @@ -2136,15 +1992,14 @@ /datum/reagent/pax/on_mob_metabolize(mob/living/L) ..() - ADD_TRAIT(L, TRAIT_PACIFISM, id) + ADD_TRAIT(L, TRAIT_PACIFISM, type) /datum/reagent/pax/on_mob_end_metabolize(mob/living/L) - REMOVE_TRAIT(L, TRAIT_PACIFISM, id) + REMOVE_TRAIT(L, TRAIT_PACIFISM, type) ..() /datum/reagent/bz_metabolites name = "BZ metabolites" - id = "bz_metabolites" description = "A harmless metabolite of BZ gas" color = "#FAFF00" taste_description = "acrid cinnamon" @@ -2152,11 +2007,11 @@ /datum/reagent/bz_metabolites/on_mob_metabolize(mob/living/L) ..() - ADD_TRAIT(L, CHANGELING_HIVEMIND_MUTE, id) + ADD_TRAIT(L, CHANGELING_HIVEMIND_MUTE, type) /datum/reagent/bz_metabolites/on_mob_end_metabolize(mob/living/L) ..() - REMOVE_TRAIT(L, CHANGELING_HIVEMIND_MUTE, id) + REMOVE_TRAIT(L, CHANGELING_HIVEMIND_MUTE, type) /datum/reagent/bz_metabolites/on_mob_life(mob/living/L) if(L.mind) @@ -2167,13 +2022,11 @@ /datum/reagent/pax/peaceborg name = "synth-pax" - id = "synthpax" description = "A colorless liquid that suppresses violence on the subjects. Cheaper to synthetize, but wears out faster than normal Pax." metabolization_rate = 1.5 * REAGENTS_METABOLISM /datum/reagent/peaceborg_confuse name = "Dizzying Solution" - id = "dizzysolution" description = "Makes the target off balance and dizzy" metabolization_rate = 1.5 * REAGENTS_METABOLISM taste_description = "dizziness" @@ -2189,7 +2042,6 @@ /datum/reagent/peaceborg_tire name = "Tiring Solution" - id = "tiresolution" description = "An extremely weak stamina-toxin that tires out the target. Completely harmless." metabolization_rate = 1.5 * REAGENTS_METABOLISM taste_description = "tiredness" @@ -2204,7 +2056,6 @@ /datum/reagent/tranquility name = "Tranquility" - id = "tranquility" description = "A highly mutative liquid of unknown origin." color = "#9A6750" //RGB: 154, 103, 80 taste_description = "inner peace" @@ -2216,7 +2067,6 @@ /datum/reagent/moonsugar name = "Moonsugar" - id = "moonsugar" description = "The primary precursor for an ancient feline delicacy known as skooma. While it has no notable effects on it's own, mixing it with morphine in a chilled container may yield interesting results." color = "#FAEAFF" taste_description = "synthetic catnip" @@ -2229,7 +2079,6 @@ /datum/reagent/changeling_string name = "UNKNOWN" - id = "changeling_sting_real" description = "404: Chemical not found." metabolization_rate = REAGENTS_METABOLISM color = "#0000FF" @@ -2263,14 +2112,12 @@ /datum/reagent/mustardgrind name = "Mustardgrind" - id = "mustardgrind" description = "A powerd that is mixed with water and enzymes to make mustard." color = "#BCC740" //RGB: 188, 199, 64 taste_description = "plant dust" /datum/reagent/pax/catnip name = "catnip" - id = "catnip" taste_description = "grass" description = "A colorless liquid that makes people more peaceful and felines more happy." metabolization_rate = 1.75 * REAGENTS_METABOLISM diff --git a/code/modules/reagents/chemistry/reagents/pyrotechnic_reagents.dm b/code/modules/reagents/chemistry/reagents/pyrotechnic_reagents.dm index 36621aa662..9eb033824d 100644 --- a/code/modules/reagents/chemistry/reagents/pyrotechnic_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/pyrotechnic_reagents.dm @@ -1,7 +1,6 @@ /datum/reagent/thermite name = "Thermite" - id = "thermite" description = "Thermite produces an aluminothermic reaction known as a thermite reaction. Can be used to melt walls." reagent_state = SOLID color = "#550000" @@ -18,7 +17,6 @@ /datum/reagent/nitroglycerin name = "Nitroglycerin" - id = "nitroglycerin" value = 5 description = "Nitroglycerin is a heavy, colorless, oily, explosive liquid obtained by nitrating glycerol." color = "#808080" // rgb: 128, 128, 128 @@ -26,7 +24,6 @@ /datum/reagent/stabilizing_agent name = "Stabilizing Agent" - id = "stabilizing_agent" description = "Keeps unstable chemicals stable. This does not work on everything." reagent_state = LIQUID color = "#FFFF00" @@ -35,7 +32,6 @@ /datum/reagent/clf3 name = "Chlorine Trifluoride" - id = "clf3" 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, sometimes through the very floors of the station and exposing it to the vacuum of space." reagent_state = LIQUID color = "#FFC8C8" @@ -79,7 +75,6 @@ /datum/reagent/sorium name = "Sorium" - id = "sorium" description = "Sends everything flying from the detonation point." reagent_state = LIQUID color = "#5A64C8" @@ -87,7 +82,6 @@ /datum/reagent/liquid_dark_matter name = "Liquid Dark Matter" - id = "liquid_dark_matter" description = "Sucks everything into the detonation point." reagent_state = LIQUID color = "#210021" @@ -96,7 +90,6 @@ /datum/reagent/blackpowder name = "Black Powder" - id = "blackpowder" description = "Explodes. Violently." reagent_state = LIQUID color = "#000000" @@ -118,7 +111,6 @@ /datum/reagent/flash_powder name = "Flash Powder" - id = "flash_powder" description = "Makes a very bright flash." reagent_state = LIQUID color = "#C8C8C8" @@ -126,7 +118,6 @@ /datum/reagent/smoke_powder name = "Smoke Powder" - id = "smoke_powder" description = "Makes a large cloud of smoke that can carry reagents." reagent_state = LIQUID color = "#C8C8C8" @@ -134,7 +125,6 @@ /datum/reagent/sonic_powder name = "Sonic Powder" - id = "sonic_powder" description = "Makes a deafening noise." reagent_state = LIQUID color = "#C8C8C8" @@ -142,7 +132,6 @@ /datum/reagent/phlogiston name = "Phlogiston" - id = "phlogiston" description = "Catches you on fire and makes you ignite." reagent_state = LIQUID color = "#FA00AF" @@ -164,7 +153,6 @@ /datum/reagent/napalm name = "Napalm" - id = "napalm" description = "Very flammable." reagent_state = LIQUID color = "#FA00AF" @@ -182,7 +170,6 @@ /datum/reagent/cryostylane name = "Cryostylane" - id = "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." color = "#0000DC" metabolization_rate = 0.5 * REAGENTS_METABOLISM @@ -190,8 +177,8 @@ /datum/reagent/cryostylane/on_mob_life(mob/living/carbon/M) //TODO: code freezing into an ice cube - if(M.reagents.has_reagent("oxygen")) - M.reagents.remove_reagent("oxygen", 0.5) + if(M.reagents.has_reagent(/datum/reagent/oxygen)) + M.reagents.remove_reagent(/datum/reagent/oxygen, 0.5) M.adjust_bodytemperature(-15) ..() @@ -202,21 +189,19 @@ /datum/reagent/pyrosium name = "Pyrosium" - id = "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." color = "#64FAC8" metabolization_rate = 0.5 * REAGENTS_METABOLISM taste_description = "bitterness" /datum/reagent/pyrosium/on_mob_life(mob/living/carbon/M) - if(M.reagents.has_reagent("oxygen")) - M.reagents.remove_reagent("oxygen", 0.5) + if(M.reagents.has_reagent(/datum/reagent/oxygen)) + M.reagents.remove_reagent(/datum/reagent/oxygen, 0.5) M.adjust_bodytemperature(15) ..() /datum/reagent/teslium //Teslium. Causes periodic shocks, and makes shocks against the target much more effective. name = "Teslium" - id = "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." reagent_state = LIQUID color = "#20324D" //RGB: 32, 50, 77 @@ -234,7 +219,6 @@ /datum/reagent/teslium/energized_jelly name = "Energized Jelly" - id = "energized_jelly" description = "Electrically-charged jelly. Boosts jellypeople's nervous system, but only shocks other lifeforms." reagent_state = LIQUID color = "#CAFF43" @@ -255,7 +239,6 @@ /datum/reagent/firefighting_foam name = "Firefighting Foam" - id = "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." reagent_state = LIQUID color = "#A6FAFF55" diff --git a/code/modules/reagents/chemistry/reagents/toxin_reagents.dm b/code/modules/reagents/chemistry/reagents/toxin_reagents.dm index f97204b45e..ad3a2c90a4 100644 --- a/code/modules/reagents/chemistry/reagents/toxin_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/toxin_reagents.dm @@ -3,7 +3,6 @@ /datum/reagent/toxin name = "Toxin" - id = "toxin" description = "A toxic chemical." color = "#CF3600" // rgb: 207, 54, 0 taste_description = "bitterness" @@ -18,7 +17,6 @@ /datum/reagent/toxin/amatoxin name = "Amatoxin" - id = "amatoxin" description = "A powerful poison derived from certain species of mushroom." color = "#792300" // rgb: 121, 35, 0 toxpwr = 2.5 @@ -27,7 +25,6 @@ /datum/reagent/toxin/mutagen name = "Unstable mutagen" - id = "mutagen" description = "Might cause unpredictable mutations. Keep away from children." color = "#00FF00" toxpwr = 0 @@ -56,7 +53,6 @@ /datum/reagent/toxin/plasma name = "Plasma" - id = "plasma" description = "Plasma in its liquid form." taste_description = "bitterness" specific_heat = SPECIFIC_HEAT_PLASMA @@ -66,8 +62,8 @@ pH = 4 /datum/reagent/toxin/plasma/on_mob_life(mob/living/carbon/C) - if(holder.has_reagent("epinephrine")) - holder.remove_reagent("epinephrine", 2*REM) + if(holder.has_reagent(/datum/reagent/medicine/epinephrine)) + holder.remove_reagent(/datum/reagent/medicine/epinephrine, 2*REM) C.adjustPlasma(20) return ..() @@ -91,7 +87,6 @@ /datum/reagent/toxin/lexorin name = "Lexorin" - id = "lexorin" description = "A powerful poison used to stop respiration." color = "#7DC3A0" toxpwr = 0 @@ -113,7 +108,6 @@ /datum/reagent/toxin/slimejelly name = "Slime Jelly" - id = "slimejelly" description = "A gooey semi-liquid produced from one of the deadliest lifeforms in existence. SO REAL." color = "#801E28" // rgb: 128, 30, 40 toxpwr = 0 @@ -133,7 +127,6 @@ /datum/reagent/toxin/minttoxin name = "Mint Toxin" - id = "minttoxin" description = "Useful for dealing with undesirable customers." color = "#CF3600" // rgb: 207, 54, 0 toxpwr = 0 @@ -147,7 +140,6 @@ /datum/reagent/toxin/carpotoxin name = "Carpotoxin" - id = "carpotoxin" description = "A deadly neurotoxin produced by the dreaded spess carp." color = "#003333" // rgb: 0, 51, 51 toxpwr = 2 @@ -156,7 +148,6 @@ /datum/reagent/toxin/zombiepowder name = "Zombie Powder" - id = "zombiepowder" description = "A strong neurotoxin that puts the subject into a death-like state." reagent_state = SOLID color = "#669900" // rgb: 102, 153, 0 @@ -166,10 +157,10 @@ /datum/reagent/toxin/zombiepowder/on_mob_metabolize(mob/living/L) ..() - L.fakedeath(id) + L.fakedeath(type) /datum/reagent/toxin/zombiepowder/on_mob_end_metabolize(mob/living/L) - L.cure_fakedeath(id) + L.cure_fakedeath(type) ..() /datum/reagent/toxin/zombiepowder/on_mob_life(mob/living/carbon/M) @@ -179,7 +170,6 @@ /datum/reagent/toxin/ghoulpowder name = "Ghoul Powder" - id = "ghoulpowder" description = "A strong neurotoxin that slows metabolism to a death-like state, while keeping the patient fully active. Causes toxin buildup if used too long." reagent_state = SOLID color = "#664700" // rgb: 102, 71, 0 @@ -189,10 +179,10 @@ /datum/reagent/toxin/ghoulpowder/on_mob_metabolize(mob/living/L) ..() - ADD_TRAIT(L, TRAIT_FAKEDEATH, id) + ADD_TRAIT(L, TRAIT_FAKEDEATH, type) /datum/reagent/toxin/ghoulpowder/on_mob_end_metabolize(mob/living/L) - REMOVE_TRAIT(L, TRAIT_FAKEDEATH, id) + REMOVE_TRAIT(L, TRAIT_FAKEDEATH, type) ..() /datum/reagent/toxin/ghoulpowder/on_mob_life(mob/living/carbon/M) @@ -202,7 +192,6 @@ /datum/reagent/toxin/mindbreaker name = "Mindbreaker Toxin" - id = "mindbreaker" description = "A powerful hallucinogen. Not a thing to be messed with. For some mental patients. it counteracts their symptoms and anchors them to reality." color = "#B31008" // rgb: 139, 166, 233 toxpwr = 0 @@ -215,7 +204,6 @@ /datum/reagent/toxin/plantbgone name = "Plant-B-Gone" - id = "plantbgone" description = "A harmful toxic mixture to kill plantlife. Do not ingest!" color = "#49002E" // rgb: 73, 0, 46 toxpwr = 1 @@ -242,14 +230,12 @@ /datum/reagent/toxin/plantbgone/weedkiller name = "Weed Killer" - id = "weedkiller" description = "A harmful toxic mixture to kill weeds. Do not ingest!" color = "#4B004B" // rgb: 75, 0, 75 pH = 3 /datum/reagent/toxin/pestkiller name = "Pest Killer" - id = "pestkiller" description = "A harmful toxic mixture to kill pests. Do not ingest!" color = "#4B004B" // rgb: 75, 0, 75 toxpwr = 1 @@ -263,7 +249,6 @@ /datum/reagent/toxin/spore name = "Spore Toxin" - id = "spore" description = "A natural toxin produced by blob spores that inhibits vision when ingested." color = "#9ACD32" toxpwr = 1 @@ -277,7 +262,6 @@ /datum/reagent/toxin/spore_burning name = "Burning Spore Toxin" - id = "spore_burning" description = "A natural toxin produced by blob spores that induces combustion in its victim." color = "#9ACD32" toxpwr = 0.5 @@ -291,7 +275,6 @@ /datum/reagent/toxin/chloralhydrate name = "Chloral Hydrate" - id = "chloralhydrate" description = "A powerful sedative that induces confusion and drowsiness before putting its target to sleep." reagent_state = SOLID color = "#000067" // rgb: 0, 0, 103 @@ -315,7 +298,6 @@ /datum/reagent/toxin/fakebeer //disguised as normal beer for use by emagged brobots name = "Beer" - id = "fakebeer" description = "A specially-engineered sedative disguised as beer. It induces instant sleep in its target." color = "#664300" // rgb: 102, 67, 0 metabolization_rate = 1.5 * REAGENTS_METABOLISM @@ -336,7 +318,6 @@ /datum/reagent/toxin/coffeepowder name = "Coffee Grounds" - id = "coffeepowder" description = "Finely ground coffee beans, used to make coffee." reagent_state = SOLID color = "#5B2E0D" // rgb: 91, 46, 13 @@ -345,7 +326,6 @@ /datum/reagent/toxin/teapowder name = "Ground Tea Leaves" - id = "teapowder" description = "Finely shredded tea leaves, used for making tea." reagent_state = SOLID color = "#7F8400" // rgb: 127, 132, 0 @@ -354,7 +334,6 @@ /datum/reagent/toxin/mutetoxin //the new zombie powder. name = "Mute Toxin" - id = "mutetoxin" description = "A nonlethal poison that inhibits speech in its victim." color = "#F0F8FF" // rgb: 240, 248, 255 toxpwr = 0 @@ -367,7 +346,6 @@ /datum/reagent/toxin/staminatoxin name = "Tirizene" - id = "tirizene" description = "A nonlethal poison that causes extreme fatigue and weakness in its victim." color = "#6E2828" data = 15 @@ -381,7 +359,6 @@ /datum/reagent/toxin/polonium name = "Polonium" - id = "polonium" description = "An extremely radioactive material in liquid form. Ingestion results in fatal irradiation." reagent_state = LIQUID color = "#787878" @@ -394,7 +371,6 @@ /datum/reagent/toxin/histamine name = "Histamine" - id = "histamine" description = "Histamine's effects become more dangerous depending on the dosage amount. They range from mildly annoying to incredibly lethal." reagent_state = LIQUID color = "#FA6464" @@ -428,7 +404,6 @@ /datum/reagent/toxin/formaldehyde name = "Formaldehyde" - id = "formaldehyde" description = "Formaldehyde, on its own, is a fairly weak toxin. It contains trace amounts of Histamine, very rarely making it decay into Histamine." reagent_state = LIQUID color = "#B4004B" @@ -437,14 +412,13 @@ /datum/reagent/toxin/formaldehyde/on_mob_life(mob/living/carbon/M) if(prob(5)) - holder.add_reagent("histamine", pick(5,15)) - holder.remove_reagent("formaldehyde", 1.2) + holder.add_reagent(/datum/reagent/toxin/histamine, pick(5,15)) + holder.remove_reagent(type, 1.2) else return ..() /datum/reagent/toxin/venom name = "Venom" - id = "venom" description = "An exotic poison extracted from highly toxic fauna. Causes scaling amounts of toxin damage and bruising depending and dosage. Often decays into Histamine." reagent_state = LIQUID color = "#F0FFF0" @@ -456,14 +430,13 @@ M.adjustBruteLoss((0.3*volume)*REM, 0) . = 1 if(prob(15)) - M.reagents.add_reagent("histamine", pick(5,10)) - M.reagents.remove_reagent("venom", 1.1) + M.reagents.add_reagent(/datum/reagent/toxin/histamine, pick(5,10)) + M.reagents.remove_reagent(type, 1.1) else ..() /datum/reagent/toxin/fentanyl name = "Fentanyl" - id = "fentanyl" description = "Fentanyl will inhibit brain function and cause toxin damage before eventually knocking out its victim." reagent_state = LIQUID color = "#64916E" @@ -481,7 +454,6 @@ /datum/reagent/toxin/cyanide name = "Cyanide" - id = "cyanide" description = "An infamous poison known for its use in assassination. Causes small amounts of toxin damage with a small chance of oxygen damage or a stun." reagent_state = LIQUID color = "#00B4FF" @@ -499,7 +471,6 @@ /datum/reagent/toxin/bad_food name = "Bad Food" - id = "bad_food" description = "The result of some abomination of cookery, food so bad it's toxic." reagent_state = LIQUID color = "#d6d6d8" @@ -509,7 +480,6 @@ /datum/reagent/toxin/itching_powder name = "Itching Powder" - id = "itching_powder" description = "A powder that induces itching upon contact with the skin. Causes the victim to scratch at their itches and has a very low chance to decay into Histamine." reagent_state = LIQUID color = "#C8C8C8" @@ -518,7 +488,7 @@ /datum/reagent/toxin/itching_powder/reaction_mob(mob/living/M, method=TOUCH, reac_volume) if(method == TOUCH || method == VAPOR) - M.reagents.add_reagent("itching_powder", reac_volume) + M.reagents.add_reagent(/datum/reagent/toxin/itching_powder, reac_volume) /datum/reagent/toxin/itching_powder/on_mob_life(mob/living/carbon/M) if(prob(15)) @@ -534,14 +504,13 @@ M.adjustBruteLoss(0.2*REM, 0) . = 1 if(prob(3)) - M.reagents.add_reagent("histamine",rand(1,3)) - M.reagents.remove_reagent("itching_powder",1.2) + M.reagents.add_reagent(/datum/reagent/toxin/histamine,rand(1,3)) + M.reagents.remove_reagent(type,1.2) return ..() /datum/reagent/toxin/initropidril name = "Initropidril" - id = "initropidril" description = "A powerful poison with insidious effects. It can cause stuns, lethal breathing failure, and cardiac arrest." reagent_state = LIQUID color = "#7F10C0" @@ -572,7 +541,6 @@ /datum/reagent/toxin/pancuronium name = "Pancuronium" - id = "pancuronium" description = "An undetectable toxin that swiftly incapacitates its victim. May also cause breathing failure." reagent_state = LIQUID color = "#195096" @@ -590,7 +558,6 @@ /datum/reagent/toxin/sodium_thiopental name = "Sodium Thiopental" - id = "sodium_thiopental" description = "Sodium Thiopental induces heavy weakness in its target as well as unconsciousness." reagent_state = LIQUID color = "#6496FA" @@ -606,7 +573,6 @@ /datum/reagent/toxin/sulfonal name = "Sulfonal" - id = "sulfonal" description = "A stealthy poison that deals minor toxin damage and eventually puts the target to sleep." reagent_state = LIQUID color = "#7DC3A0" @@ -620,7 +586,6 @@ /datum/reagent/toxin/amanitin name = "Amanitin" - id = "amanitin" description = "A very powerful delayed toxin. Upon full metabolization, a massive amount of toxin damage will be dealt depending on how long it has been in the victim's bloodstream." reagent_state = LIQUID color = "#FFFFFF" @@ -635,7 +600,6 @@ /datum/reagent/toxin/lipolicide name = "Lipolicide" - id = "lipolicide" description = "A powerful toxin that will destroy fat cells, massively reducing body weight in a short time. Deadly to those without nutriment in their body." taste_description = "mothballs" reagent_state = LIQUID @@ -652,7 +616,6 @@ /datum/reagent/toxin/coniine name = "Coniine" - id = "coniine" description = "Coniine metabolizes extremely slowly, but deals high amounts of toxin damage and stops breathing." reagent_state = LIQUID color = "#7DC3A0" @@ -665,7 +628,6 @@ /datum/reagent/toxin/spewium name = "Spewium" - id = "spewium" description = "A powerful emetic, causes uncontrollable vomiting. May result in vomiting organs at high doses." reagent_state = LIQUID color = "#2f6617" //A sickly green color @@ -680,7 +642,7 @@ C.vomit(10, prob(10), prob(50), rand(0,4), TRUE, prob(30)) for(var/datum/reagent/toxin/R in C.reagents.reagent_list) if(R != src) - C.reagents.remove_reagent(R.id,1) + C.reagents.remove_reagent(R.type,1) /datum/reagent/toxin/spewium/overdose_process(mob/living/carbon/C) . = ..() @@ -691,7 +653,6 @@ /datum/reagent/toxin/curare name = "Curare" - id = "curare" description = "Causes slight toxin damage followed by chain-stunning and oxygen damage." reagent_state = LIQUID color = "#191919" @@ -707,7 +668,6 @@ /datum/reagent/toxin/heparin //Based on a real-life anticoagulant. I'm not a doctor, so this won't be realistic. name = "Heparin" - id = "heparin" description = "A powerful anticoagulant. Victims will bleed uncontrollably and suffer scaling bruising." reagent_state = LIQUID color = "#C8C8C8" //RGB: 200, 200, 200 @@ -725,7 +685,6 @@ /datum/reagent/toxin/rotatium //Rotatium. Fucks up your rotation and is hilarious name = "Rotatium" - id = "rotatium" description = "A constantly swirling, oddly colourful fluid. Causes the consumer's sense of direction and hand-eye coordination to become wild." reagent_state = LIQUID color = "#AC88CA" //RGB: 172, 136, 202 @@ -752,7 +711,6 @@ /datum/reagent/toxin/skewium name = "Skewium" - id = "skewium" description = "A strange, dull coloured liquid that appears to warp back and forth inside its container. Causes any consumer to experience a visual phenomena similar to said warping." reagent_state = LIQUID color = "#ADBDCD" @@ -790,7 +748,6 @@ /datum/reagent/toxin/anacea name = "Anacea" - id = "anacea" description = "A toxin that quickly purges medicines and metabolizes very slowly." reagent_state = LIQUID color = "#3C5133" @@ -799,10 +756,10 @@ /datum/reagent/toxin/anacea/on_mob_life(mob/living/carbon/M) var/remove_amt = 5 - if(holder.has_reagent("calomel") || holder.has_reagent("pen_acid") || holder.has_reagent("pen_jelly")) + if(holder.has_reagent(/datum/reagent/medicine/calomel) || holder.has_reagent(/datum/reagent/medicine/pen_acid) || holder.has_reagent(/datum/reagent/medicine/pen_acid/pen_jelly)) remove_amt = 0.5 for(var/datum/reagent/medicine/R in M.reagents.reagent_list) - M.reagents.remove_reagent(R.id,remove_amt) + M.reagents.remove_reagent(R.type,remove_amt) return ..() //ACID @@ -810,7 +767,6 @@ /datum/reagent/toxin/acid name = "Sulphuric acid" - id = "sacid" description = "A strong mineral acid with the molecular formula H2SO4." color = "#00FF32" toxpwr = 1 @@ -845,7 +801,6 @@ /datum/reagent/toxin/acid/fluacid name = "Fluorosulfuric acid" - id = "facid" description = "Fluorosulfuric acid is an extremely corrosive chemical substance." color = "#5050FF" toxpwr = 2 @@ -858,7 +813,6 @@ /datum/reagent/toxin/delayed name = "Toxin Microcapsules" - id = "delayed_toxin" description = "Causes heavy toxin damage after a brief time of inactivity." reagent_state = LIQUID metabolization_rate = 0 //stays in the system until active. @@ -869,7 +823,7 @@ /datum/reagent/toxin/delayed/on_mob_life(mob/living/carbon/M) if(current_cycle > delay) - holder.remove_reagent(id, actual_metaboliztion_rate * M.metabolism_efficiency) + holder.remove_reagent(type, actual_metaboliztion_rate * M.metabolism_efficiency) M.adjustToxLoss(actual_toxpwr*REM, 0) if(prob(10)) M.Knockdown(20, 0) @@ -878,21 +832,19 @@ /datum/reagent/toxin/mimesbane name = "Mime's Bane" - id = "mimesbane" description = "A nonlethal neurotoxin that interferes with the victim's ability to gesture." color = "#F0F8FF" // rgb: 240, 248, 255 toxpwr = 0 taste_description = "stillness" /datum/reagent/toxin/mimesbane/on_mob_metabolize(mob/living/L) - ADD_TRAIT(L, TRAIT_EMOTEMUTE, id) + ADD_TRAIT(L, TRAIT_EMOTEMUTE, type) /datum/reagent/toxin/mimesbane/on_mob_end_metabolize(mob/living/L) - REMOVE_TRAIT(L, TRAIT_EMOTEMUTE, id) + REMOVE_TRAIT(L, TRAIT_EMOTEMUTE, type) /datum/reagent/toxin/bonehurtingjuice //oof ouch name = "Bone Hurting Juice" - id = "bonehurtingjuice" description = "A strange substance that looks a lot like water. Drinking it is oddly tempting. Oof ouch." color = "#AAAAAA77" //RGBA: 170, 170, 170, 77 toxpwr = 0 @@ -953,7 +905,6 @@ /datum/reagent/toxin/brainhurtingjuice //oof ouch name = "Brain Hurting Juice" - id = "brainhurtingjuice" color = "#AAAAAA77" //RGBA: 170, 170, 170, 77 toxpwr = 0 taste_description = "brain hurting" @@ -970,7 +921,6 @@ /datum/reagent/toxin/bungotoxin name = "Bungotoxin" - id = "bungotoxin" description = "A horrible cardiotoxin that protects the humble bungo pit." //silent_toxin = TRUE //I guess we don't really have the entire tox system ported. color = "#EBFF8E" diff --git a/code/modules/reagents/chemistry/recipes/drugs.dm b/code/modules/reagents/chemistry/recipes/drugs.dm index 27b1fe12ee..468d29c052 100644 --- a/code/modules/reagents/chemistry/recipes/drugs.dm +++ b/code/modules/reagents/chemistry/recipes/drugs.dm @@ -1,64 +1,64 @@ /datum/chemical_reaction/space_drugs name = "Space Drugs" - id = "space_drugs" - results = list("space_drugs" = 3) - required_reagents = list("mercury" = 1, "sugar" = 1, "lithium" = 1) + id = /datum/reagent/drug/space_drugs + results = list(/datum/reagent/drug/space_drugs = 3) + required_reagents = list(/datum/reagent/mercury = 1, /datum/reagent/consumable/sugar = 1, /datum/reagent/lithium = 1) /datum/chemical_reaction/crank name = "Crank" - id = "crank" - results = list("crank" = 5) - required_reagents = list("diphenhydramine" = 1, "ammonia" = 1, "lithium" = 1, "sacid" = 1, "welding_fuel" = 1) + id = /datum/reagent/drug/crank + results = list(/datum/reagent/drug/crank = 5) + required_reagents = list(/datum/reagent/medicine/diphenhydramine = 1, /datum/reagent/ammonia = 1, /datum/reagent/lithium = 1, /datum/reagent/toxin/acid = 1, /datum/reagent/fuel = 1) mix_message = "The mixture violently reacts, leaving behind a few crystalline shards." required_temp = 390 /datum/chemical_reaction/krokodil name = "Krokodil" - id = "krokodil" - results = list("krokodil" = 6) - required_reagents = list("diphenhydramine" = 1, "morphine" = 1, "cleaner" = 1, "potassium" = 1, "phosphorus" = 1, "welding_fuel" = 1) + id = /datum/reagent/drug/krokodil + results = list(/datum/reagent/drug/krokodil = 6) + required_reagents = list(/datum/reagent/medicine/diphenhydramine = 1, /datum/reagent/medicine/morphine = 1, /datum/reagent/space_cleaner = 1, /datum/reagent/potassium = 1, /datum/reagent/phosphorus = 1, /datum/reagent/fuel = 1) mix_message = "The mixture dries into a pale blue powder." required_temp = 380 /datum/chemical_reaction/methamphetamine name = "methamphetamine" - id = "methamphetamine" - results = list("methamphetamine" = 4) - required_reagents = list("ephedrine" = 1, "iodine" = 1, "phosphorus" = 1, "hydrogen" = 1) + id = /datum/reagent/drug/methamphetamine + results = list(/datum/reagent/drug/methamphetamine = 4) + required_reagents = list(/datum/reagent/medicine/ephedrine = 1, /datum/reagent/iodine = 1, /datum/reagent/phosphorus = 1, /datum/reagent/hydrogen = 1) required_temp = 374 /datum/chemical_reaction/bath_salts name = "bath_salts" - id = "bath_salts" - results = list("bath_salts" = 7) - required_reagents = list("bad_food" = 1, "saltpetre" = 1, "nutriment" = 1, "cleaner" = 1, "enzyme" = 1, "tea" = 1, "mercury" = 1) + id = /datum/reagent/drug/bath_salts + results = list(/datum/reagent/drug/bath_salts = 7) + required_reagents = list(/datum/reagent/toxin/bad_food = 1, /datum/reagent/saltpetre = 1, /datum/reagent/consumable/nutriment = 1, /datum/reagent/space_cleaner = 1, /datum/reagent/consumable/enzyme = 1, /datum/reagent/consumable/tea = 1, /datum/reagent/mercury = 1) required_temp = 374 /datum/chemical_reaction/aranesp name = "aranesp" - id = "aranesp" - results = list("aranesp" = 3) - required_reagents = list("epinephrine" = 1, "atropine" = 1, "morphine" = 1) + id = /datum/reagent/drug/aranesp + results = list(/datum/reagent/drug/aranesp = 3) + required_reagents = list(/datum/reagent/medicine/epinephrine = 1, /datum/reagent/medicine/atropine = 1, /datum/reagent/medicine/morphine = 1) /datum/chemical_reaction/happiness name = "Happiness" - id = "happiness" - results = list("happiness" = 4) - required_reagents = list("nitrous_oxide" = 2, "epinephrine" = 1, "ethanol" = 1) - required_catalysts = list("plasma" = 5) + id = /datum/reagent/drug/happiness + results = list(/datum/reagent/drug/happiness = 4) + required_reagents = list(/datum/reagent/nitrous_oxide = 2, /datum/reagent/medicine/epinephrine = 1, /datum/reagent/consumable/ethanol = 1) + required_catalysts = list(/datum/reagent/toxin/plasma = 5) /datum/chemical_reaction/skooma name = "skooma" - id = "skooma" - results = list("skooma" = 2, "moonshine" = 4, "sugar" = 4) + id = /datum/reagent/drug/skooma + results = list(/datum/reagent/drug/skooma = 2, /datum/reagent/consumable/ethanol/moonshine = 4, /datum/reagent/consumable/sugar = 4) required_temp = 280 is_cold_recipe = TRUE - required_reagents = list("moonsugar" = 10, "morphine" = 5) + required_reagents = list(/datum/reagent/moonsugar = 10, /datum/reagent/medicine/morphine = 5) /datum/chemical_reaction/skoomarevert name = "skoomarevert" id = "skoomarevert" - results = list("moonsugar" = 1, "morphine" = 2.5) + results = list(/datum/reagent/moonsugar = 1, /datum/reagent/medicine/morphine = 2.5) required_temp = 315 //a little above normal body temperature - required_reagents = list("skooma" = 1) + required_reagents = list(/datum/reagent/drug/skooma = 1) diff --git a/code/modules/reagents/chemistry/recipes/medicine.dm b/code/modules/reagents/chemistry/recipes/medicine.dm index 607e0b5a4e..a07e7697bc 100644 --- a/code/modules/reagents/chemistry/recipes/medicine.dm +++ b/code/modules/reagents/chemistry/recipes/medicine.dm @@ -1,79 +1,79 @@ /datum/chemical_reaction/leporazine name = "Leporazine" - id = "leporazine" - results = list("leporazine" = 2) - required_reagents = list("silicon" = 1, "copper" = 1) - required_catalysts = list("plasma" = 5) + id = /datum/reagent/medicine/leporazine + results = list(/datum/reagent/medicine/leporazine = 2) + required_reagents = list(/datum/reagent/silicon = 1, /datum/reagent/copper = 1) + required_catalysts = list(/datum/reagent/toxin/plasma = 5) /datum/chemical_reaction/rezadone name = "Rezadone" - id = "rezadone" - results = list("rezadone" = 3) - required_reagents = list("carpotoxin" = 1, "cryptobiolin" = 1, "copper" = 1) + id = /datum/reagent/medicine/rezadone + results = list(/datum/reagent/medicine/rezadone = 3) + required_reagents = list(/datum/reagent/toxin/carpotoxin = 1, /datum/reagent/cryptobiolin = 1, /datum/reagent/copper = 1) /datum/chemical_reaction/spaceacillin name = "Spaceacillin" - id = "spaceacillin" - results = list("spaceacillin" = 2) - required_reagents = list("cryptobiolin" = 1, "epinephrine" = 1) + id = /datum/reagent/medicine/spaceacillin + results = list(/datum/reagent/medicine/spaceacillin = 2) + required_reagents = list(/datum/reagent/cryptobiolin = 1, /datum/reagent/medicine/epinephrine = 1) /datum/chemical_reaction/inacusiate name = "inacusiate" - id = "inacusiate" - results = list("inacusiate" = 2) - required_reagents = list("water" = 1, "carbon" = 1, "charcoal" = 1) + id = /datum/reagent/medicine/inacusiate + results = list(/datum/reagent/medicine/inacusiate = 2) + required_reagents = list(/datum/reagent/water = 1, /datum/reagent/carbon = 1, /datum/reagent/medicine/charcoal = 1) /datum/chemical_reaction/synaptizine name = "Synaptizine" - id = "synaptizine" - results = list("synaptizine" = 3) - required_reagents = list("sugar" = 1, "lithium" = 1, "water" = 1) + id = /datum/reagent/medicine/synaptizine + results = list(/datum/reagent/medicine/synaptizine = 3) + required_reagents = list(/datum/reagent/consumable/sugar = 1, /datum/reagent/lithium = 1, /datum/reagent/water = 1) /datum/chemical_reaction/charcoal name = "Charcoal" - id = "charcoal" - results = list("charcoal" = 2) - required_reagents = list("ash" = 1, "sodiumchloride" = 1) + id = /datum/reagent/medicine/charcoal + results = list(/datum/reagent/medicine/charcoal = 2) + required_reagents = list(/datum/reagent/ash = 1, /datum/reagent/consumable/sodiumchloride = 1) mix_message = "The mixture yields a fine black powder." required_temp = 380 /datum/chemical_reaction/silver_sulfadiazine name = "Silver Sulfadiazine" - id = "silver_sulfadiazine" - results = list("silver_sulfadiazine" = 5) - required_reagents = list("ammonia" = 1, "silver" = 1, "sulfur" = 1, "oxygen" = 1, "chlorine" = 1) + id = /datum/reagent/medicine/silver_sulfadiazine + results = list(/datum/reagent/medicine/silver_sulfadiazine = 5) + required_reagents = list(/datum/reagent/ammonia = 1, /datum/reagent/silver = 1, /datum/reagent/sulfur = 1, /datum/reagent/oxygen = 1, /datum/reagent/chlorine = 1) /datum/chemical_reaction/salglu_solution name = "Saline-Glucose Solution" - id = "salglu_solution" - results = list("salglu_solution" = 3) - required_reagents = list("sodiumchloride" = 1, "water" = 1, "sugar" = 1) + id = /datum/reagent/medicine/salglu_solution + results = list(/datum/reagent/medicine/salglu_solution = 3) + required_reagents = list(/datum/reagent/consumable/sodiumchloride = 1, /datum/reagent/water = 1, /datum/reagent/consumable/sugar = 1) /datum/chemical_reaction/mine_salve name = "Miner's Salve" - id = "mine_salve" - results = list("mine_salve" = 3) - required_reagents = list("oil" = 1, "water" = 1, "iron" = 1) + id = /datum/reagent/medicine/mine_salve + results = list(/datum/reagent/medicine/mine_salve = 3) + required_reagents = list(/datum/reagent/oil = 1, /datum/reagent/water = 1, /datum/reagent/iron = 1) /datum/chemical_reaction/mine_salve2 name = "Miner's Salve" - id = "mine_salve" - results = list("mine_salve" = 15) - required_reagents = list("plasma" = 5, "iron" = 5, "sugar" = 1) // A sheet of plasma, a twinkie and a sheet of metal makes four of these + id = "mine_salve_2" + results = list(/datum/reagent/medicine/mine_salve = 15) + required_reagents = list(/datum/reagent/toxin/plasma = 5, /datum/reagent/iron = 5, /datum/reagent/consumable/sugar = 1) // A sheet of plasma, a twinkie and a sheet of metal makes four of these /datum/chemical_reaction/synthflesh name = "Synthflesh" - id = "synthflesh" - results = list("synthflesh" = 3) - required_reagents = list("blood" = 1, "carbon" = 1, "styptic_powder" = 1) + id = /datum/reagent/medicine/synthflesh + results = list(/datum/reagent/medicine/synthflesh = 3) + required_reagents = list(/datum/reagent/blood = 1, /datum/reagent/carbon = 1, /datum/reagent/medicine/styptic_powder = 1) /datum/chemical_reaction/synthtissue name = "Synthtissue" - id = "synthtissue" - results = list("synthtissue" = 5) - required_reagents = list("synthflesh" = 1) - required_catalysts = list("sugar" = 0.1) + id = /datum/reagent/synthtissue + results = list(/datum/reagent/synthtissue = 5) + required_reagents = list(/datum/reagent/medicine/synthflesh = 1) + required_catalysts = list(/datum/reagent/consumable/sugar = 0.1) //FermiChem vars: OptimalTempMin = 305 // Lower area of bell curve for determining heat based rate reactions OptimalTempMax = 315 // Upper end for above @@ -91,13 +91,13 @@ PurityMin = 0 /datum/chemical_reaction/synthtissue/FermiCreate(datum/reagents/holder, added_volume, added_purity) - var/datum/reagent/synthtissue/St = holder.has_reagent("synthtissue") - var/datum/reagent/N = holder.has_reagent("sugar") + var/datum/reagent/synthtissue/St = holder.has_reagent(/datum/reagent/synthtissue) + var/datum/reagent/N = holder.has_reagent(/datum/reagent/consumable/sugar) if(!St) return if(holder.chem_temp > 320) var/temp_ratio = 1-(330 - holder.chem_temp)/10 - holder.remove_reagent(src.id, added_volume*temp_ratio) + holder.remove_reagent(id, added_volume*temp_ratio) if(St.purity < 1) St.volume *= St.purity St.purity = 1 @@ -108,209 +108,209 @@ /datum/chemical_reaction/styptic_powder name = "Styptic Powder" - id = "styptic_powder" - results = list("styptic_powder" = 4) - required_reagents = list("aluminium" = 1, "hydrogen" = 1, "oxygen" = 1, "sacid" = 1) + id = /datum/reagent/medicine/styptic_powder + results = list(/datum/reagent/medicine/styptic_powder = 4) + required_reagents = list(/datum/reagent/aluminium = 1, /datum/reagent/hydrogen = 1, /datum/reagent/oxygen = 1, /datum/reagent/toxin/acid = 1) mix_message = "The solution yields an astringent powder." /datum/chemical_reaction/calomel name = "Calomel" - id = "calomel" - results = list("calomel" = 2) - required_reagents = list("mercury" = 1, "chlorine" = 1) + id = /datum/reagent/medicine/calomel + results = list(/datum/reagent/medicine/calomel = 2) + required_reagents = list(/datum/reagent/mercury = 1, /datum/reagent/chlorine = 1) required_temp = 374 /datum/chemical_reaction/potass_iodide name = "Potassium Iodide" - id = "potass_iodide" - results = list("potass_iodide" = 2) - required_reagents = list("potassium" = 1, "iodine" = 1) + id = /datum/reagent/medicine/potass_iodide + results = list(/datum/reagent/medicine/potass_iodide = 2) + required_reagents = list(/datum/reagent/potassium = 1, /datum/reagent/iodine = 1) /datum/chemical_reaction/pen_acid name = "Pentetic Acid" - id = "pen_acid" - results = list("pen_acid" = 6) - required_reagents = list("welding_fuel" = 1, "chlorine" = 1, "ammonia" = 1, "formaldehyde" = 1, "sodium" = 1, "cyanide" = 1) + id = /datum/reagent/medicine/pen_acid + results = list(/datum/reagent/medicine/pen_acid = 6) + required_reagents = list(/datum/reagent/fuel = 1, /datum/reagent/chlorine = 1, /datum/reagent/ammonia = 1, /datum/reagent/toxin/formaldehyde = 1, /datum/reagent/sodium = 1, /datum/reagent/toxin/cyanide = 1) /datum/chemical_reaction/pen_jelly name = "Pentetic Jelly" - id = "pen_jelly" - results = list("pen_jelly" = 2) - required_reagents = list("pen_acid" = 1, "slimejelly" = 1) + id = /datum/reagent/medicine/pen_acid/pen_jelly + results = list(/datum/reagent/medicine/pen_acid/pen_jelly = 2) + required_reagents = list(/datum/reagent/medicine/pen_acid = 1, /datum/reagent/toxin/slimejelly = 1) /datum/chemical_reaction/sal_acid name = "Salicyclic Acid" - id = "sal_acid" - results = list("sal_acid" = 5) - required_reagents = list("sodium" = 1, "phenol" = 1, "carbon" = 1, "oxygen" = 1, "sacid" = 1) + id = /datum/reagent/medicine/sal_acid + results = list(/datum/reagent/medicine/sal_acid = 5) + required_reagents = list(/datum/reagent/sodium = 1, /datum/reagent/phenol = 1, /datum/reagent/carbon = 1, /datum/reagent/oxygen = 1, /datum/reagent/toxin/acid = 1) /datum/chemical_reaction/oxandrolone name = "Oxandrolone" - id = "oxandrolone" - results = list("oxandrolone" = 6) - required_reagents = list("carbon" = 3, "phenol" = 1, "hydrogen" = 1, "oxygen" = 1) + id = /datum/reagent/medicine/oxandrolone + results = list(/datum/reagent/medicine/oxandrolone = 6) + required_reagents = list(/datum/reagent/carbon = 3, /datum/reagent/phenol = 1, /datum/reagent/hydrogen = 1, /datum/reagent/oxygen = 1) /datum/chemical_reaction/salbutamol name = "Salbutamol" - id = "salbutamol" - results = list("salbutamol" = 5) - required_reagents = list("sal_acid" = 1, "lithium" = 1, "aluminium" = 1, "bromine" = 1, "ammonia" = 1) + id = /datum/reagent/medicine/salbutamol + results = list(/datum/reagent/medicine/salbutamol = 5) + required_reagents = list(/datum/reagent/medicine/sal_acid = 1, /datum/reagent/lithium = 1, /datum/reagent/aluminium = 1, /datum/reagent/bromine = 1, /datum/reagent/ammonia = 1) /datum/chemical_reaction/perfluorodecalin name = "Perfluorodecalin" - id = "perfluorodecalin" - results = list("perfluorodecalin" = 3) - required_reagents = list("hydrogen" = 1, "fluorine" = 1, "oil" = 1) + id = /datum/reagent/medicine/perfluorodecalin + results = list(/datum/reagent/medicine/perfluorodecalin = 3) + required_reagents = list(/datum/reagent/hydrogen = 1, /datum/reagent/fluorine = 1, /datum/reagent/oil = 1) required_temp = 370 mix_message = "The mixture rapidly turns into a dense pink liquid." /datum/chemical_reaction/ephedrine name = "Ephedrine" - id = "ephedrine" - results = list("ephedrine" = 4) - required_reagents = list("sugar" = 1, "oil" = 1, "hydrogen" = 1, "diethylamine" = 1) + id = /datum/reagent/medicine/ephedrine + results = list(/datum/reagent/medicine/ephedrine = 4) + required_reagents = list(/datum/reagent/consumable/sugar = 1, /datum/reagent/oil = 1, /datum/reagent/hydrogen = 1, /datum/reagent/diethylamine = 1) mix_message = "The solution fizzes and gives off toxic fumes." /datum/chemical_reaction/diphenhydramine name = "Diphenhydramine" - id = "diphenhydramine" - results = list("diphenhydramine" = 4) - required_reagents = list("oil" = 1, "carbon" = 1, "bromine" = 1, "diethylamine" = 1, "ethanol" = 1) + id = /datum/reagent/medicine/diphenhydramine + results = list(/datum/reagent/medicine/diphenhydramine = 4) + required_reagents = list(/datum/reagent/oil = 1, /datum/reagent/carbon = 1, /datum/reagent/bromine = 1, /datum/reagent/diethylamine = 1, /datum/reagent/consumable/ethanol = 1) mix_message = "The mixture dries into a pale blue powder." /datum/chemical_reaction/oculine name = "Oculine" - id = "oculine" - results = list("oculine" = 3) - required_reagents = list("charcoal" = 1, "carbon" = 1, "hydrogen" = 1) + id = /datum/reagent/medicine/oculine + results = list(/datum/reagent/medicine/oculine = 3) + required_reagents = list(/datum/reagent/medicine/charcoal = 1, /datum/reagent/carbon = 1, /datum/reagent/hydrogen = 1) mix_message = "The mixture sputters loudly and becomes a pale pink color." /datum/chemical_reaction/atropine name = "Atropine" - id = "atropine" - results = list("atropine" = 5) - required_reagents = list("ethanol" = 1, "acetone" = 1, "diethylamine" = 1, "phenol" = 1, "sacid" = 1) + id = /datum/reagent/medicine/atropine + results = list(/datum/reagent/medicine/atropine = 5) + required_reagents = list(/datum/reagent/consumable/ethanol = 1, /datum/reagent/acetone = 1, /datum/reagent/diethylamine = 1, /datum/reagent/phenol = 1, /datum/reagent/toxin/acid = 1) /datum/chemical_reaction/epinephrine name = "Epinephrine" - id = "epinephrine" - results = list("epinephrine" = 6) - required_reagents = list("phenol" = 1, "acetone" = 1, "diethylamine" = 1, "oxygen" = 1, "chlorine" = 1, "hydrogen" = 1) + id = /datum/reagent/medicine/epinephrine + results = list(/datum/reagent/medicine/epinephrine = 6) + required_reagents = list(/datum/reagent/phenol = 1, /datum/reagent/acetone = 1, /datum/reagent/diethylamine = 1, /datum/reagent/oxygen = 1, /datum/reagent/chlorine = 1, /datum/reagent/hydrogen = 1) /datum/chemical_reaction/strange_reagent name = "Strange Reagent" - id = "strange_reagent" - results = list("strange_reagent" = 3) - required_reagents = list("omnizine" = 1, "holywater" = 1, "mutagen" = 1) + id = /datum/reagent/medicine/strange_reagent + results = list(/datum/reagent/medicine/strange_reagent = 3) + required_reagents = list(/datum/reagent/medicine/omnizine = 1, /datum/reagent/water/holywater = 1, /datum/reagent/toxin/mutagen = 1) /datum/chemical_reaction/mannitol name = "Mannitol" - id = "mannitol" - results = list("mannitol" = 3) - required_reagents = list("sugar" = 1, "hydrogen" = 1, "water" = 1) + id = /datum/reagent/medicine/mannitol + results = list(/datum/reagent/medicine/mannitol = 3) + required_reagents = list(/datum/reagent/consumable/sugar = 1, /datum/reagent/hydrogen = 1, /datum/reagent/water = 1) mix_message = "The solution slightly bubbles, becoming thicker." /datum/chemical_reaction/mutadone name = "Mutadone" - id = "mutadone" - results = list("mutadone" = 3) - required_reagents = list("mutagen" = 1, "acetone" = 1, "bromine" = 1) + id = /datum/reagent/medicine/mutadone + results = list(/datum/reagent/medicine/mutadone = 3) + required_reagents = list(/datum/reagent/toxin/mutagen = 1, /datum/reagent/acetone = 1, /datum/reagent/bromine = 1) /datum/chemical_reaction/neurine name = "Neurine" - id = "neurine" - results = list("neurine" = 3) - required_reagents = list("mannitol" = 1, "acetone" = 1, "oxygen" = 1) + id = /datum/reagent/medicine/neurine + results = list(/datum/reagent/medicine/neurine = 3) + required_reagents = list(/datum/reagent/medicine/mannitol = 1, /datum/reagent/acetone = 1, /datum/reagent/oxygen = 1) /datum/chemical_reaction/antihol name = "antihol" - id = "antihol" - results = list("antihol" = 3) - required_reagents = list("ethanol" = 1, "charcoal" = 1, "copper" = 1) + id = /datum/reagent/medicine/antihol + results = list(/datum/reagent/medicine/antihol = 3) + required_reagents = list(/datum/reagent/consumable/ethanol = 1, /datum/reagent/medicine/charcoal = 1, /datum/reagent/copper = 1) /datum/chemical_reaction/cryoxadone name = "Cryoxadone" - id = "cryoxadone" - results = list("cryoxadone" = 3) - required_reagents = list("stable_plasma" = 1, "acetone" = 1, "mutagen" = 1) + id = /datum/reagent/medicine/cryoxadone + results = list(/datum/reagent/medicine/cryoxadone = 3) + required_reagents = list(/datum/reagent/stable_plasma = 1, /datum/reagent/acetone = 1, /datum/reagent/toxin/mutagen = 1) /datum/chemical_reaction/pyroxadone name = "Pyroxadone" - id = "pyroxadone" - results = list("pyroxadone" = 2) - required_reagents = list("cryoxadone" = 1, "slimejelly" = 1) + id = /datum/reagent/medicine/pyroxadone + results = list(/datum/reagent/medicine/pyroxadone = 2) + required_reagents = list(/datum/reagent/medicine/cryoxadone = 1, /datum/reagent/toxin/slimejelly = 1) /datum/chemical_reaction/clonexadone name = "Clonexadone" - id = "clonexadone" - results = list("clonexadone" = 2) - required_reagents = list("cryoxadone" = 1, "sodium" = 1) - required_catalysts = list("plasma" = 5) + id = /datum/reagent/medicine/clonexadone + results = list(/datum/reagent/medicine/clonexadone = 2) + required_reagents = list(/datum/reagent/medicine/cryoxadone = 1, /datum/reagent/sodium = 1) + required_catalysts = list(/datum/reagent/toxin/plasma = 5) /datum/chemical_reaction/haloperidol name = "Haloperidol" - id = "haloperidol" - results = list("haloperidol" = 5) - required_reagents = list("chlorine" = 1, "fluorine" = 1, "aluminium" = 1, "potass_iodide" = 1, "oil" = 1) + id = /datum/reagent/medicine/haloperidol + results = list(/datum/reagent/medicine/haloperidol = 5) + required_reagents = list(/datum/reagent/chlorine = 1, /datum/reagent/fluorine = 1, /datum/reagent/aluminium = 1, /datum/reagent/medicine/potass_iodide = 1, /datum/reagent/oil = 1) /datum/chemical_reaction/bicaridine name = "Bicaridine" - id = "bicaridine" - results = list("bicaridine" = 3) - required_reagents = list("carbon" = 1, "oxygen" = 1, "sugar" = 1) + id = /datum/reagent/medicine/bicaridine + results = list(/datum/reagent/medicine/bicaridine = 3) + required_reagents = list(/datum/reagent/carbon = 1, /datum/reagent/oxygen = 1, /datum/reagent/consumable/sugar = 1) /datum/chemical_reaction/kelotane name = "Kelotane" - id = "kelotane" - results = list("kelotane" = 2) - required_reagents = list("carbon" = 1, "silicon" = 1) + id = /datum/reagent/medicine/kelotane + results = list(/datum/reagent/medicine/kelotane = 2) + required_reagents = list(/datum/reagent/carbon = 1, /datum/reagent/silicon = 1) /datum/chemical_reaction/antitoxin name = "Antitoxin" - id = "antitoxin" - results = list("antitoxin" = 3) - required_reagents = list("nitrogen" = 1, "silicon" = 1, "potassium" = 1) + id = /datum/reagent/medicine/antitoxin + results = list(/datum/reagent/medicine/antitoxin = 3) + required_reagents = list(/datum/reagent/nitrogen = 1, /datum/reagent/silicon = 1, /datum/reagent/potassium = 1) /datum/chemical_reaction/tricordrazine name = "Tricordrazine" - id = "tricordrazine" - results = list("tricordrazine" = 3) - required_reagents = list("bicaridine" = 1, "kelotane" = 1, "antitoxin" = 1) + id = /datum/reagent/medicine/tricordrazine + results = list(/datum/reagent/medicine/tricordrazine = 3) + required_reagents = list(/datum/reagent/medicine/bicaridine = 1, /datum/reagent/medicine/kelotane = 1, /datum/reagent/medicine/antitoxin = 1) /datum/chemical_reaction/regen_jelly name = "Regenerative Jelly" - id = "regen_jelly" - results = list("regen_jelly" = 2) - required_reagents = list("tricordrazine" = 1, "slimejelly" = 1) + id = /datum/reagent/medicine/regen_jelly + results = list(/datum/reagent/medicine/regen_jelly = 2) + required_reagents = list(/datum/reagent/medicine/tricordrazine = 1, /datum/reagent/toxin/slimejelly = 1) /datum/chemical_reaction/jelly_convert name = "Blood Jelly Conversion" - id = "blood_jelly" - results = list("slimejelly" = 1) - required_reagents = list("toxin" = 1, "jellyblood" = 1) + id = /datum/reagent/toxin/slimejelly + results = list(/datum/reagent/toxin/slimejelly = 1) + required_reagents = list(/datum/reagent/toxin = 1, /datum/reagent/blood/jellyblood = 1) /datum/chemical_reaction/corazone name = "Corazone" - id = "corazone" - results = list("corazone" = 3) - required_reagents = list("phenol" = 2, "lithium" = 1) + id = /datum/reagent/medicine/corazone + results = list(/datum/reagent/medicine/corazone = 3) + required_reagents = list(/datum/reagent/phenol = 2, /datum/reagent/lithium = 1) /datum/chemical_reaction/morphine name = "Morphine" - id = "morphine" - results = list("morphine" = 2) - required_reagents = list("carbon" = 2, "hydrogen" = 2, "ethanol" = 1, "oxygen" = 1) + id = /datum/reagent/medicine/morphine + results = list(/datum/reagent/medicine/morphine = 2) + required_reagents = list(/datum/reagent/carbon = 2, /datum/reagent/hydrogen = 2, /datum/reagent/consumable/ethanol = 1, /datum/reagent/oxygen = 1) required_temp = 480 /datum/chemical_reaction/modafinil name = "Modafinil" - id = "modafinil" - results = list("modafinil" = 5) - required_reagents = list("diethylamine" = 1, "ammonia" = 1, "phenol" = 1, "acetone" = 1, "sacid" = 1) - required_catalysts = list("bromine" = 1) // as close to the real world synthesis as possible + id = /datum/reagent/medicine/modafinil + results = list(/datum/reagent/medicine/modafinil = 5) + required_reagents = list(/datum/reagent/diethylamine = 1, /datum/reagent/ammonia = 1, /datum/reagent/phenol = 1, /datum/reagent/acetone = 1, /datum/reagent/toxin/acid = 1) + required_catalysts = list(/datum/reagent/bromine = 1) // as close to the real world synthesis as possible /datum/chemical_reaction/psicodine name = "Psicodine" - id = "psicodine" - results = list("psicodine" = 5) - required_reagents = list( "mannitol" = 2, "water" = 2, "impedrezene" = 1) + id = /datum/reagent/medicine/psicodine + results = list(/datum/reagent/medicine/psicodine = 5) + required_reagents = list( /datum/reagent/medicine/mannitol = 2, /datum/reagent/water = 2, /datum/reagent/impedrezene = 1) diff --git a/code/modules/reagents/chemistry/recipes/others.dm b/code/modules/reagents/chemistry/recipes/others.dm index ad349ea926..d4c71ebb44 100644 --- a/code/modules/reagents/chemistry/recipes/others.dm +++ b/code/modules/reagents/chemistry/recipes/others.dm @@ -2,55 +2,55 @@ /datum/chemical_reaction/sterilizine name = "Sterilizine" id = "sterilizine" - results = list("sterilizine" = 3) - required_reagents = list("ethanol" = 1, "charcoal" = 1, "chlorine" = 1) + results = list(/datum/reagent/space_cleaner/sterilizine = 3) + required_reagents = list(/datum/reagent/consumable/ethanol = 1, /datum/reagent/medicine/charcoal = 1, /datum/reagent/chlorine = 1) /datum/chemical_reaction/lube name = "Space Lube" - id = "lube" - results = list("lube" = 4) - required_reagents = list("water" = 1, "silicon" = 1, "oxygen" = 1) + id = /datum/reagent/lube + results = list(/datum/reagent/lube = 4) + required_reagents = list(/datum/reagent/water = 1, /datum/reagent/silicon = 1, /datum/reagent/oxygen = 1) /datum/chemical_reaction/spraytan name = "Spray Tan" - id = "spraytan" - results = list("spraytan" = 2) - required_reagents = list("orangejuice" = 1, "oil" = 1) + id = /datum/reagent/spraytan + results = list(/datum/reagent/spraytan = 2) + required_reagents = list(/datum/reagent/consumable/orangejuice = 1, /datum/reagent/oil = 1) /datum/chemical_reaction/spraytan2 name = "Spray Tan" - id = "spraytan" - results = list("spraytan" = 2) - required_reagents = list("orangejuice" = 1, "cornoil" = 1) + id = "spraytan2" + results = list(/datum/reagent/spraytan = 2) + required_reagents = list(/datum/reagent/consumable/orangejuice = 1, /datum/reagent/consumable/cornoil = 1) /datum/chemical_reaction/impedrezene name = "Impedrezene" - id = "impedrezene" - results = list("impedrezene" = 2) - required_reagents = list("mercury" = 1, "oxygen" = 1, "sugar" = 1) + id = /datum/reagent/impedrezene + results = list(/datum/reagent/impedrezene = 2) + required_reagents = list(/datum/reagent/mercury = 1, /datum/reagent/oxygen = 1, /datum/reagent/consumable/sugar = 1) /datum/chemical_reaction/cryptobiolin name = "Cryptobiolin" - id = "cryptobiolin" - results = list("cryptobiolin" = 3) - required_reagents = list("potassium" = 1, "oxygen" = 1, "sugar" = 1) + id = /datum/reagent/cryptobiolin + results = list(/datum/reagent/cryptobiolin = 3) + required_reagents = list(/datum/reagent/potassium = 1, /datum/reagent/oxygen = 1, /datum/reagent/consumable/sugar = 1) /datum/chemical_reaction/glycerol name = "Glycerol" - id = "glycerol" - results = list("glycerol" = 1) - required_reagents = list("cornoil" = 3, "sacid" = 1) + id = /datum/reagent/glycerol + results = list(/datum/reagent/glycerol = 1) + required_reagents = list(/datum/reagent/consumable/cornoil = 3, /datum/reagent/toxin/acid = 1) /datum/chemical_reaction/sodiumchloride name = "Sodium Chloride" id = "sodiumchloride" - results = list("sodiumchloride" = 3) - required_reagents = list("water" = 1, "sodium" = 1, "chlorine" = 1) + results = list(/datum/reagent/consumable/sodiumchloride = 3) + required_reagents = list(/datum/reagent/water = 1, /datum/reagent/sodium = 1, /datum/reagent/chlorine = 1) /datum/chemical_reaction/plasmasolidification name = "Solid Plasma" id = "solidplasma" - required_reagents = list("iron" = 5, "frostoil" = 5, "plasma" = 20) + required_reagents = list(/datum/reagent/iron = 5, /datum/reagent/consumable/frostoil = 5, /datum/reagent/toxin/plasma = 20) mob_react = FALSE /datum/chemical_reaction/plasmasolidification/on_reaction(datum/reagents/holder, created_volume) @@ -61,7 +61,7 @@ /datum/chemical_reaction/goldsolidification name = "Solid Gold" id = "solidgold" - required_reagents = list("frostoil" = 5, "gold" = 20, "iron" = 1) + required_reagents = list(/datum/reagent/consumable/frostoil = 5, /datum/reagent/gold = 20, /datum/reagent/iron = 1) mob_react = FALSE /datum/chemical_reaction/goldsolidification/on_reaction(datum/reagents/holder, created_volume) @@ -71,22 +71,22 @@ /datum/chemical_reaction/capsaicincondensation name = "Capsaicincondensation" - id = "capsaicincondensation" - results = list("condensedcapsaicin" = 5) - required_reagents = list("capsaicin" = 1, "ethanol" = 5) + id = /datum/reagent/consumable/condensedcapsaicin + results = list(/datum/reagent/consumable/condensedcapsaicin = 5) + required_reagents = list(/datum/reagent/consumable/capsaicin = 1, /datum/reagent/consumable/ethanol = 5) /datum/chemical_reaction/soapification name = "Soapification" id = "soapification" - required_reagents = list("liquidgibs" = 10, "lye" = 10) // requires two scooped gib tiles + required_reagents = list(/datum/reagent/liquidgibs = 10, /datum/reagent/lye = 10) // requires two scooped gib tiles required_temp = 374 mob_react = FALSE /datum/chemical_reaction/mustard name = "Mustard" - id = "mustard" - results = list("mustard" = 5) - required_reagents = list("mustardgrind" = 1, "water" = 10, "enzyme"= 1) + id = /datum/reagent/consumable/mustard + results = list(/datum/reagent/consumable/mustard = 5) + required_reagents = list(/datum/reagent/mustardgrind = 1, /datum/reagent/water = 10, /datum/reagent/consumable/enzyme= 1) /datum/chemical_reaction/soapification/on_reaction(datum/reagents/holder, created_volume) var/location = get_turf(holder.my_atom) @@ -96,7 +96,7 @@ /datum/chemical_reaction/candlefication name = "Candlefication" id = "candlefication" - required_reagents = list("liquidgibs" = 5, "oxygen" = 5) // + required_reagents = list(/datum/reagent/liquidgibs = 5, /datum/reagent/oxygen = 5) required_temp = 374 mob_react = FALSE @@ -108,7 +108,7 @@ /datum/chemical_reaction/meatification name = "Meatification" id = "meatification" - required_reagents = list("liquidgibs" = 10, "nutriment" = 10, "carbon" = 10) + required_reagents = list(/datum/reagent/liquidgibs = 10, /datum/reagent/consumable/nutriment = 10, /datum/reagent/carbon = 10) mob_react = FALSE /datum/chemical_reaction/meatification/on_reaction(datum/reagents/holder, created_volume) @@ -119,30 +119,30 @@ /datum/chemical_reaction/carbondioxide name = "Direct Carbon Oxidation" - id = "burningcarbon" - results = list("co2" = 3) - required_reagents = list("carbon" = 1, "oxygen" = 2) + id = /datum/reagent/carbondioxide + results = list(/datum/reagent/carbondioxide = 3) + required_reagents = list(/datum/reagent/carbon = 1, /datum/reagent/oxygen = 2) required_temp = 777 // pure carbon isn't especially reactive. /datum/chemical_reaction/nitrous_oxide name = "Nitrous Oxide" - id = "nitrous_oxide" - results = list("nitrous_oxide" = 5) - required_reagents = list("ammonia" = 2, "nitrogen" = 1, "oxygen" = 2) + id = /datum/reagent/nitrous_oxide + results = list(/datum/reagent/nitrous_oxide = 5) + required_reagents = list(/datum/reagent/ammonia = 2, /datum/reagent/nitrogen = 1, /datum/reagent/oxygen = 2) required_temp = 525 //Technically a mutation toxin /datum/chemical_reaction/mulligan name = "Mulligan" id = "mulligan" - results = list("mulligan" = 1) - required_reagents = list("slime_toxin" = 1, "mutagen" = 1) + results = list(/datum/reagent/mulligan = 1) + required_reagents = list(/datum/reagent/slime_toxin = 1, /datum/reagent/toxin/mutagen = 1) /datum/chemical_reaction/fermis_plush name = "Fermis plush" id = "fermis_plush" - required_reagents = list("caramel" = 10, "blood" = 10, "stable_plasma" = 10) + required_reagents = list(/datum/reagent/consumable/caramel = 10, /datum/reagent/blood = 10, /datum/reagent/stable_plasma = 10) mob_react = FALSE required_temp = 300 @@ -156,75 +156,75 @@ /datum/chemical_reaction/virus_food name = "Virus Food" id = "virusfood" - results = list("virusfood" = 15) - required_reagents = list("water" = 5, "milk" = 5) + results = list(/datum/reagent/consumable/virus_food = 15) + required_reagents = list(/datum/reagent/water = 5, /datum/reagent/consumable/milk = 5) /datum/chemical_reaction/virus_food_mutagen name = "mutagenic agar" id = "mutagenvirusfood" - results = list("mutagenvirusfood" = 1) - required_reagents = list("mutagen" = 1, "virusfood" = 1) + results = list(/datum/reagent/toxin/mutagen/mutagenvirusfood = 1) + required_reagents = list(/datum/reagent/toxin/mutagen = 1, /datum/reagent/consumable/virus_food = 1) /datum/chemical_reaction/virus_food_synaptizine name = "virus rations" id = "synaptizinevirusfood" - results = list("synaptizinevirusfood" = 1) - required_reagents = list("synaptizine" = 1, "virusfood" = 1) + results = list(/datum/reagent/medicine/synaptizine/synaptizinevirusfood = 1) + required_reagents = list(/datum/reagent/medicine/synaptizine = 1, /datum/reagent/consumable/virus_food = 1) /datum/chemical_reaction/virus_food_plasma name = "virus plasma" - id = "plasmavirusfood" - results = list("plasmavirusfood" = 1) - required_reagents = list("plasma" = 1, "virusfood" = 1) + id = /datum/reagent/toxin/plasma/plasmavirusfood + results = list(/datum/reagent/toxin/plasma/plasmavirusfood = 1) + required_reagents = list(/datum/reagent/toxin/plasma = 1, /datum/reagent/consumable/virus_food = 1) /datum/chemical_reaction/virus_food_plasma_synaptizine name = "weakened virus plasma" - id = "weakplasmavirusfood" - results = list("weakplasmavirusfood" = 2) - required_reagents = list("synaptizine" = 1, "plasmavirusfood" = 1) + id = /datum/reagent/toxin/plasma/plasmavirusfood/weak + results = list(/datum/reagent/toxin/plasma/plasmavirusfood/weak = 2) + required_reagents = list(/datum/reagent/medicine/synaptizine = 1, /datum/reagent/toxin/plasma/plasmavirusfood = 1) /datum/chemical_reaction/virus_food_mutagen_sugar name = "sucrose agar" - id = "sugarvirusfood" - results = list("sugarvirusfood" = 2) - required_reagents = list("sugar" = 1, "mutagenvirusfood" = 1) + id = /datum/reagent/toxin/mutagen/mutagenvirusfood/sugar + results = list(/datum/reagent/toxin/mutagen/mutagenvirusfood/sugar = 2) + required_reagents = list(/datum/reagent/consumable/sugar = 1, /datum/reagent/toxin/mutagen/mutagenvirusfood = 1) /datum/chemical_reaction/virus_food_mutagen_salineglucose name = "sucrose agar" id = "salineglucosevirusfood" - results = list("sugarvirusfood" = 2) - required_reagents = list("salglu_solution" = 1, "mutagenvirusfood" = 1) + results = list(/datum/reagent/toxin/mutagen/mutagenvirusfood/sugar = 2) + required_reagents = list(/datum/reagent/medicine/salglu_solution = 1, /datum/reagent/toxin/mutagen/mutagenvirusfood = 1) /datum/chemical_reaction/virus_food_uranium name = "Decaying uranium gel" - id = "uraniumvirusfood" - results = list("uraniumvirusfood" = 1) - required_reagents = list("uranium" = 1, "virusfood" = 1) + id = /datum/reagent/uranium/uraniumvirusfood + results = list(/datum/reagent/uranium/uraniumvirusfood = 1) + required_reagents = list(/datum/reagent/uranium = 1, /datum/reagent/consumable/virus_food = 1) /datum/chemical_reaction/virus_food_uranium_plasma name = "Unstable uranium gel" - id = "uraniumvirusfood_plasma" - results = list("uraniumplasmavirusfood_unstable" = 1) - required_reagents = list("uranium" = 5, "plasmavirusfood" = 1) + id = /datum/reagent/uranium/uraniumvirusfood/unstable + results = list(/datum/reagent/uranium/uraniumvirusfood/unstable = 1) + required_reagents = list(/datum/reagent/uranium = 5, /datum/reagent/toxin/plasma/plasmavirusfood = 1) /datum/chemical_reaction/virus_food_uranium_plasma_gold name = "Stable uranium gel" id = "uraniumvirusfood_gold" - results = list("uraniumplasmavirusfood_stable" = 1) - required_reagents = list("uranium" = 10, "gold" = 10, "plasma" = 1) + results = list(/datum/reagent/uranium/uraniumvirusfood/stable = 1) + required_reagents = list(/datum/reagent/uranium = 10, /datum/reagent/gold = 10, /datum/reagent/toxin/plasma = 1) /datum/chemical_reaction/virus_food_uranium_plasma_silver name = "Stable uranium gel" id = "uraniumvirusfood_silver" - results = list("uraniumplasmavirusfood_stable" = 1) - required_reagents = list("uranium" = 10, "silver" = 10, "plasma" = 1) + results = list(/datum/reagent/uranium/uraniumvirusfood/stable = 1) + required_reagents = list(/datum/reagent/uranium = 10, /datum/reagent/silver = 10, /datum/reagent/toxin/plasma = 1) /datum/chemical_reaction/mix_virus name = "Mix Virus" id = "mixvirus" - results = list("blood" = 1) - required_reagents = list("virusfood" = 1) - required_catalysts = list("blood" = 1) + results = list(/datum/reagent/blood = 1) + required_reagents = list(/datum/reagent/consumable/virus_food = 1) + required_catalysts = list(/datum/reagent/blood = 1) var/level_min = 1 var/level_max = 2 @@ -241,7 +241,7 @@ name = "Mix Virus 2" id = "mixvirus2" - required_reagents = list("mutagen" = 1) + required_reagents = list(/datum/reagent/toxin/mutagen = 1) level_min = 2 level_max = 4 @@ -249,7 +249,7 @@ name = "Mix Virus 3" id = "mixvirus3" - required_reagents = list("plasma" = 1) + required_reagents = list(/datum/reagent/toxin/plasma = 1) level_min = 4 level_max = 6 @@ -257,7 +257,7 @@ name = "Mix Virus 4" id = "mixvirus4" - required_reagents = list("uranium" = 1) + required_reagents = list(/datum/reagent/uranium = 1) level_min = 5 level_max = 6 @@ -265,7 +265,7 @@ name = "Mix Virus 5" id = "mixvirus5" - required_reagents = list("mutagenvirusfood" = 1) + required_reagents = list(/datum/reagent/toxin/mutagen/mutagenvirusfood = 1) level_min = 3 level_max = 3 @@ -273,7 +273,7 @@ name = "Mix Virus 6" id = "mixvirus6" - required_reagents = list("sugarvirusfood" = 1) + required_reagents = list(/datum/reagent/toxin/mutagen/mutagenvirusfood/sugar = 1) level_min = 4 level_max = 4 @@ -281,7 +281,7 @@ name = "Mix Virus 7" id = "mixvirus7" - required_reagents = list("weakplasmavirusfood" = 1) + required_reagents = list(/datum/reagent/toxin/plasma/plasmavirusfood/weak = 1) level_min = 5 level_max = 5 @@ -289,7 +289,7 @@ name = "Mix Virus 8" id = "mixvirus8" - required_reagents = list("plasmavirusfood" = 1) + required_reagents = list(/datum/reagent/toxin/plasma/plasmavirusfood = 1) level_min = 6 level_max = 6 @@ -297,7 +297,7 @@ name = "Mix Virus 9" id = "mixvirus9" - required_reagents = list("synaptizinevirusfood" = 1) + required_reagents = list(/datum/reagent/medicine/synaptizine/synaptizinevirusfood = 1) level_min = 1 level_max = 1 @@ -305,7 +305,7 @@ name = "Mix Virus 10" id = "mixvirus10" - required_reagents = list("uraniumvirusfood" = 1) + required_reagents = list(/datum/reagent/uranium/uraniumvirusfood = 1) level_min = 6 level_max = 7 @@ -313,7 +313,7 @@ name = "Mix Virus 11" id = "mixvirus11" - required_reagents = list("uraniumplasmavirusfood_unstable" = 1) + required_reagents = list(/datum/reagent/uranium/uraniumvirusfood/unstable = 1) level_min = 7 level_max = 7 @@ -321,7 +321,7 @@ name = "Mix Virus 12" id = "mixvirus12" - required_reagents = list("uraniumplasmavirusfood_stable" = 1) + required_reagents = list(/datum/reagent/uranium/uraniumvirusfood/stable = 1) level_min = 8 level_max = 8 @@ -329,8 +329,8 @@ name = "Devolve Virus" id = "remvirus" - required_reagents = list("synaptizine" = 1) - required_catalysts = list("blood" = 1) + required_reagents = list(/datum/reagent/medicine/synaptizine = 1) + required_catalysts = list(/datum/reagent/blood = 1) /datum/chemical_reaction/mix_virus/rem_virus/on_reaction(datum/reagents/holder, created_volume) @@ -343,8 +343,8 @@ /datum/chemical_reaction/mix_virus/neuter_virus name = "Neuter Virus" id = "neutervirus" - required_reagents = list("formaldehyde" = 1) - required_catalysts = list("blood" = 1) + required_reagents = list(/datum/reagent/toxin/formaldehyde = 1) + required_catalysts = list(/datum/reagent/blood = 1) /datum/chemical_reaction/mix_virus/neuter_virus/on_reaction(datum/reagents/holder, created_volume) @@ -362,13 +362,13 @@ /datum/chemical_reaction/surfactant name = "Foam surfactant" id = "foam surfactant" - results = list("fluorosurfactant" = 5) - required_reagents = list("fluorine" = 2, "carbon" = 2, "sacid" = 1) + results = list(/datum/reagent/fluorosurfactant = 5) + required_reagents = list(/datum/reagent/fluorine = 2, /datum/reagent/carbon = 2, /datum/reagent/toxin/acid = 1) /datum/chemical_reaction/foam name = "Foam" id = "foam" - required_reagents = list("fluorosurfactant" = 1, "water" = 1) + required_reagents = list(/datum/reagent/fluorosurfactant = 1, /datum/reagent/water = 1) mob_react = FALSE /datum/chemical_reaction/foam/on_reaction(datum/reagents/holder, created_volume) @@ -385,7 +385,7 @@ /datum/chemical_reaction/metalfoam name = "Metal Foam" id = "metalfoam" - required_reagents = list("aluminium" = 3, "foaming_agent" = 1, "facid" = 1) + required_reagents = list(/datum/reagent/aluminium = 3, /datum/reagent/foaming_agent = 1, /datum/reagent/toxin/acid/fluacid = 1) mob_react = FALSE /datum/chemical_reaction/metalfoam/on_reaction(datum/reagents/holder, created_volume) @@ -402,7 +402,7 @@ /datum/chemical_reaction/smart_foam name = "Smart Metal Foam" id = "smart_metal_foam" - required_reagents = list("aluminium" = 3, "smart_foaming_agent" = 1, "facid" = 1) + required_reagents = list(/datum/reagent/aluminium = 3, /datum/reagent/smart_foaming_agent = 1, /datum/reagent/toxin/acid/fluacid = 1) mob_react = TRUE /datum/chemical_reaction/smart_foam/on_reaction(datum/reagents/holder, created_volume) @@ -416,7 +416,7 @@ /datum/chemical_reaction/ironfoam name = "Iron Foam" id = "ironlfoam" - required_reagents = list("iron" = 3, "foaming_agent" = 1, "facid" = 1) + required_reagents = list(/datum/reagent/iron = 3, /datum/reagent/foaming_agent = 1, /datum/reagent/toxin/acid/fluacid = 1) mob_react = FALSE /datum/chemical_reaction/ironfoam/on_reaction(datum/reagents/holder, created_volume) @@ -430,15 +430,15 @@ /datum/chemical_reaction/foaming_agent name = "Foaming Agent" - id = "foaming_agent" - results = list("foaming_agent" = 1) - required_reagents = list("lithium" = 1, "hydrogen" = 1) + id = /datum/reagent/foaming_agent + results = list(/datum/reagent/foaming_agent = 1) + required_reagents = list(/datum/reagent/lithium = 1, /datum/reagent/hydrogen = 1) /datum/chemical_reaction/smart_foaming_agent name = "Smart foaming Agent" - id = "smart_foaming_agent" - results = list("smart_foaming_agent" = 3) - required_reagents = list("foaming_agent" = 3, "acetone" = 1, "iron" = 1) + id = /datum/reagent/smart_foaming_agent + results = list(/datum/reagent/smart_foaming_agent = 3) + required_reagents = list(/datum/reagent/foaming_agent = 3, /datum/reagent/acetone = 1, /datum/reagent/iron = 1) mix_message = "The solution mixes into a frothy metal foam and conforms to the walls of its container." @@ -446,83 +446,83 @@ /datum/chemical_reaction/ammonia name = "Ammonia" - id = "ammonia" - results = list("ammonia" = 3) - required_reagents = list("hydrogen" = 3, "nitrogen" = 1) + id = /datum/reagent/ammonia + results = list(/datum/reagent/ammonia = 3) + required_reagents = list(/datum/reagent/hydrogen = 3, /datum/reagent/nitrogen = 1) /datum/chemical_reaction/diethylamine name = "Diethylamine" - id = "diethylamine" - results = list("diethylamine" = 2) - required_reagents = list ("ammonia" = 1, "ethanol" = 1) + id = /datum/reagent/diethylamine + results = list(/datum/reagent/diethylamine = 2) + required_reagents = list (/datum/reagent/ammonia = 1, /datum/reagent/consumable/ethanol = 1) /datum/chemical_reaction/space_cleaner name = "Space cleaner" - id = "cleaner" - results = list("cleaner" = 2) - required_reagents = list("ammonia" = 1, "water" = 1) + id = /datum/reagent/space_cleaner + results = list(/datum/reagent/space_cleaner = 2) + required_reagents = list(/datum/reagent/ammonia = 1, /datum/reagent/water = 1) /datum/chemical_reaction/plantbgone name = "Plant-B-Gone" - id = "plantbgone" - results = list("plantbgone" = 5) - required_reagents = list("toxin" = 1, "water" = 4) + id = /datum/reagent/toxin/plantbgone + results = list(/datum/reagent/toxin/plantbgone = 5) + required_reagents = list(/datum/reagent/toxin = 1, /datum/reagent/water = 4) /datum/chemical_reaction/weedkiller name = "Weed Killer" - id = "weedkiller" - results = list("weedkiller" = 5) - required_reagents = list("toxin" = 1, "ammonia" = 4) + id = /datum/reagent/toxin/plantbgone/weedkiller + results = list(/datum/reagent/toxin/plantbgone/weedkiller = 5) + required_reagents = list(/datum/reagent/toxin = 1, /datum/reagent/ammonia = 4) /datum/chemical_reaction/pestkiller name = "Pest Killer" - id = "pestkiller" - results = list("pestkiller" = 5) - required_reagents = list("toxin" = 1, "ethanol" = 4) + id = /datum/reagent/toxin/pestkiller + results = list(/datum/reagent/toxin/pestkiller = 5) + required_reagents = list(/datum/reagent/toxin = 1, /datum/reagent/consumable/ethanol = 4) /datum/chemical_reaction/drying_agent name = "Drying agent" - id = "drying_agent" - results = list("drying_agent" = 3) - required_reagents = list("stable_plasma" = 2, "ethanol" = 1, "sodium" = 1) + id = /datum/reagent/drying_agent + results = list(/datum/reagent/drying_agent = 3) + required_reagents = list(/datum/reagent/stable_plasma = 2, /datum/reagent/consumable/ethanol = 1, /datum/reagent/sodium = 1) //////////////////////////////////// Other goon stuff /////////////////////////////////////////// /datum/chemical_reaction/acetone name = "acetone" - id = "acetone" - results = list("acetone" = 3) - required_reagents = list("oil" = 1, "welding_fuel" = 1, "oxygen" = 1) + id = /datum/reagent/acetone + results = list(/datum/reagent/acetone = 3) + required_reagents = list(/datum/reagent/oil = 1, /datum/reagent/fuel = 1, /datum/reagent/oxygen = 1) /datum/chemical_reaction/oil name = "Oil" - id = "oil" - results = list("oil" = 3) - required_reagents = list("welding_fuel" = 1, "carbon" = 1, "hydrogen" = 1) + id = /datum/reagent/oil + results = list(/datum/reagent/oil = 3) + required_reagents = list(/datum/reagent/fuel = 1, /datum/reagent/carbon = 1, /datum/reagent/hydrogen = 1) /datum/chemical_reaction/phenol name = "phenol" - id = "phenol" - results = list("phenol" = 3) - required_reagents = list("water" = 1, "chlorine" = 1, "oil" = 1) + id = /datum/reagent/phenol + results = list(/datum/reagent/phenol = 3) + required_reagents = list(/datum/reagent/water = 1, /datum/reagent/chlorine = 1, /datum/reagent/oil = 1) /datum/chemical_reaction/ash name = "Ash" - id = "ash" - results = list("ash" = 1) - required_reagents = list("oil" = 1) + id = /datum/reagent/ash + results = list(/datum/reagent/ash = 1) + required_reagents = list(/datum/reagent/oil = 1) required_temp = 480 /datum/chemical_reaction/colorful_reagent name = "colorful_reagent" - id = "colorful_reagent" - results = list("colorful_reagent" = 5) - required_reagents = list("stable_plasma" = 1, "radium" = 1, "space_drugs" = 1, "cryoxadone" = 1, "triple_citrus" = 1) + id = /datum/reagent/colorful_reagent + results = list(/datum/reagent/colorful_reagent = 5) + required_reagents = list(/datum/reagent/stable_plasma = 1, /datum/reagent/radium = 1, /datum/reagent/drug/space_drugs = 1, /datum/reagent/medicine/cryoxadone = 1, /datum/reagent/consumable/triple_citrus = 1) /datum/chemical_reaction/life name = "Life" id = "life" - required_reagents = list("strange_reagent" = 1, "synthflesh" = 1, "blood" = 1) + required_reagents = list(/datum/reagent/medicine/strange_reagent = 1, /datum/reagent/medicine/synthflesh = 1, /datum/reagent/blood = 1) required_temp = 374 /datum/chemical_reaction/life/on_reaction(datum/reagents/holder, created_volume) @@ -532,7 +532,7 @@ /datum/chemical_reaction/life_friendly name = "Life (Friendly)" id = "life_friendly" - required_reagents = list("strange_reagent" = 1, "synthflesh" = 1, "sugar" = 1) + required_reagents = list(/datum/reagent/medicine/strange_reagent = 1, /datum/reagent/medicine/synthflesh = 1, /datum/reagent/consumable/sugar = 1) required_temp = 374 /datum/chemical_reaction/life_friendly/on_reaction(datum/reagents/holder, created_volume) @@ -541,7 +541,7 @@ /datum/chemical_reaction/corgium name = "corgium" id = "corgium" - required_reagents = list("nutriment" = 1, "colorful_reagent" = 1, "strange_reagent" = 1, "blood" = 1) + required_reagents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/colorful_reagent = 1, /datum/reagent/medicine/strange_reagent = 1, /datum/reagent/blood = 1) required_temp = 374 /datum/chemical_reaction/corgium/on_reaction(datum/reagents/holder, created_volume) @@ -552,56 +552,56 @@ /datum/chemical_reaction/hair_dye name = "hair_dye" - id = "hair_dye" - results = list("hair_dye" = 5) - required_reagents = list("colorful_reagent" = 1, "radium" = 1, "space_drugs" = 1) + id = /datum/reagent/hair_dye + results = list(/datum/reagent/hair_dye = 5) + required_reagents = list(/datum/reagent/colorful_reagent = 1, /datum/reagent/radium = 1, /datum/reagent/drug/space_drugs = 1) /datum/chemical_reaction/barbers_aid name = "barbers_aid" - id = "barbers_aid" - results = list("barbers_aid" = 5) - required_reagents = list("carpet" = 1, "radium" = 1, "space_drugs" = 1) + id = /datum/reagent/barbers_aid + results = list(/datum/reagent/barbers_aid = 5) + required_reagents = list(/datum/reagent/carpet = 1, /datum/reagent/radium = 1, /datum/reagent/drug/space_drugs = 1) /datum/chemical_reaction/concentrated_barbers_aid name = "concentrated_barbers_aid" - id = "concentrated_barbers_aid" - results = list("concentrated_barbers_aid" = 2) - required_reagents = list("barbers_aid" = 1, "mutagen" = 1) + id = /datum/reagent/concentrated_barbers_aid + results = list(/datum/reagent/concentrated_barbers_aid = 2) + required_reagents = list(/datum/reagent/barbers_aid = 1, /datum/reagent/toxin/mutagen = 1) /datum/chemical_reaction/saltpetre name = "saltpetre" - id = "saltpetre" - results = list("saltpetre" = 3) - required_reagents = list("potassium" = 1, "nitrogen" = 1, "oxygen" = 3) + id = /datum/reagent/saltpetre + results = list(/datum/reagent/saltpetre = 3) + required_reagents = list(/datum/reagent/potassium = 1, /datum/reagent/nitrogen = 1, /datum/reagent/oxygen = 3) /datum/chemical_reaction/lye name = "lye" - id = "lye" - results = list("lye" = 3) - required_reagents = list("sodium" = 1, "hydrogen" = 1, "oxygen" = 1) + id = /datum/reagent/lye + results = list(/datum/reagent/lye = 3) + required_reagents = list(/datum/reagent/sodium = 1, /datum/reagent/hydrogen = 1, /datum/reagent/oxygen = 1) /datum/chemical_reaction/lye2 name = "lye" - id = "lye" - results = list("lye" = 2) - required_reagents = list("ash" = 1, "water" = 1, "carbon" = 1) + id = "lye2" + results = list(/datum/reagent/lye = 2) + required_reagents = list(/datum/reagent/ash = 1, /datum/reagent/water = 1, /datum/reagent/carbon = 1) /datum/chemical_reaction/royal_bee_jelly name = "royal bee jelly" - id = "royal_bee_jelly" - results = list("royal_bee_jelly" = 5) - required_reagents = list("mutagen" = 10, "honey" = 40) + id = /datum/reagent/royal_bee_jelly + results = list(/datum/reagent/royal_bee_jelly = 5) + required_reagents = list(/datum/reagent/toxin/mutagen = 10, /datum/reagent/consumable/honey = 40) /datum/chemical_reaction/laughter name = "laughter" - id = "laughter" - results = list("laughter" = 10) // Fuck it. I'm not touching this one. - required_reagents = list("sugar" = 1, "banana" = 1) + id = /datum/reagent/consumable/laughter + results = list(/datum/reagent/consumable/laughter = 10) // Fuck it. I'm not touching this one. + required_reagents = list(/datum/reagent/consumable/sugar = 1, /datum/reagent/consumable/banana = 1) /datum/chemical_reaction/plastic_polymers name = "plastic polymers" id = "plastic_polymers" - required_reagents = list("oil" = 5, "sacid" = 2, "ash" = 3) + required_reagents = list(/datum/reagent/oil = 5, /datum/reagent/toxin/acid = 2, /datum/reagent/ash = 3) required_temp = 374 //lazily consistent with soap & other crafted objects generically created with heat. /datum/chemical_reaction/plastic_polymers/on_reaction(datum/reagents/holder, created_volume) @@ -611,101 +611,139 @@ /datum/chemical_reaction/pax name = "pax" - id = "pax" - results = list("pax" = 3) - required_reagents = list("mindbreaker" = 1, "synaptizine" = 1, "water" = 1) + id = /datum/reagent/pax + results = list(/datum/reagent/pax = 3) + required_reagents = list(/datum/reagent/toxin/mindbreaker = 1, /datum/reagent/medicine/synaptizine = 1, /datum/reagent/water = 1) /datum/chemical_reaction/cat name = "felined mutation toxic" - id = "cats" - results = list("felinidmutationtoxin" = 1) - required_reagents = list("mindbreaker" = 1, "ammonia" = 1, "water" = 1, "aphro" = 10, "stablemutationtoxin" = 1) // Maybe aphro+ if it becomes a shitty meme + id = /datum/reagent/mutationtoxin/felinid + results = list(/datum/reagent/mutationtoxin/felinid = 1) + required_reagents = list(/datum/reagent/toxin/mindbreaker = 1, /datum/reagent/ammonia = 1, /datum/reagent/water = 1, /datum/reagent/drug/aphrodisiac = 10, /datum/reagent/mutationtoxin = 1) // Maybe aphro+ if it becomes a shitty meme required_temp = 450 /datum/chemical_reaction/moff name = "insect mutation toxic" - id = "moffs" - results = list("mothmutationtoxin" = 1) - required_reagents = list("liquid_dark_matter" = 2, "ammonia" = 5, "lithium" = 1, "stablemutationtoxin" = 1) + id = /datum/reagent/mutationtoxin/insect + results = list(/datum/reagent/mutationtoxin/insect = 1) + required_reagents = list(/datum/reagent/liquid_dark_matter = 2, /datum/reagent/ammonia = 5, /datum/reagent/lithium = 1, /datum/reagent/mutationtoxin = 1) required_temp = 320 /datum/chemical_reaction/notlight //Harder to make do to it being a hard race to play name = "shadow muatatuin toxic" - id = "notlight" - results = list("shadowmutationtoxin" = 1) - required_reagents = list("liquid_dark_matter" = 5, "synaptizine" = 10, "oculine" = 10, "stablemutationtoxin" = 1) + id = /datum/reagent/mutationtoxin/shadow + results = list(/datum/reagent/mutationtoxin/shadow = 1) + required_reagents = list(/datum/reagent/liquid_dark_matter = 5, /datum/reagent/medicine/synaptizine = 10, /datum/reagent/medicine/oculine = 10, /datum/reagent/mutationtoxin = 1) required_temp = 600 // Liquid Carpets /datum/chemical_reaction/carpet name = "carpet" - id = "carpet" - results = list("carpet" = 2) - required_reagents = list("space_drugs" = 1, "blood" = 1) + id = /datum/reagent/carpet + results = list(/datum/reagent/carpet = 2) + required_reagents = list(/datum/reagent/drug/space_drugs = 1, /datum/reagent/blood = 1) /datum/chemical_reaction/carpet/black name = "liquid black carpet" - id = "blackcarpet" - results = list("blackcarpet" = 2) - required_reagents = list("carpet" = 1, "carbon" = 1) + id = /datum/reagent/carpet/black + results = list(/datum/reagent/carpet/black = 2) + required_reagents = list(/datum/reagent/carpet = 1, /datum/reagent/carbon = 1) /datum/chemical_reaction/carpet/blackred name = "liquid red black carpet" - id = "blackredcarpet" - results = list("blackredcarpet" = 2) - required_reagents = list("carpet" = 1, "charcoal" = 1) + id = /datum/reagent/carpet/blackred + results = list(/datum/reagent/carpet/blackred = 2) + required_reagents = list(/datum/reagent/carpet = 1, /datum/reagent/medicine/charcoal = 1) /datum/chemical_reaction/carpet/monochrome name = "liquid monochrome carpet" - id = "monochromecarpet" - results = list("monochromecarpet" = 2) - required_reagents = list("carpet" = 1, "oil" = 1) + id = /datum/reagent/carpet/monochrome + results = list(/datum/reagent/carpet/monochrome = 2) + required_reagents = list(/datum/reagent/carpet = 1, /datum/reagent/oil = 1) /datum/chemical_reaction/carpet/blue name = "liquid blue carpet" - id = "bluecarpet" - results = list("bluecarpet" = 2) - required_reagents = list("carpet" = 1, "tonic" = 1) + id = /datum/reagent/carpet/blue + results = list(/datum/reagent/carpet/blue = 2) + required_reagents = list(/datum/reagent/carpet = 1, /datum/reagent/consumable/tonic = 1) /datum/chemical_reaction/carpet/cyan name = "liquid cyan carpet" - id = "cyancarpet" - results = list("cyancarpet" = 2) - required_reagents = list("carpet" = 1, "ice" = 1) + id = /datum/reagent/carpet/cyan + results = list(/datum/reagent/carpet/cyan = 2) + required_reagents = list(/datum/reagent/carpet = 1, /datum/reagent/consumable/ice = 1) /datum/chemical_reaction/carpet/green name = "liquid green carpet" - id = "greencarpet" - results = list("greencarpet" = 2) - required_reagents = list("carpet" = 1, "sacid" = 1) + id = /datum/reagent/carpet/green + results = list(/datum/reagent/carpet/green = 2) + required_reagents = list(/datum/reagent/carpet = 1, /datum/reagent/toxin/acid = 1) /datum/chemical_reaction/carpet/orange name = "liquid orange carpet" - id = "orangecarpet" - results = list("orangecarpet" = 2) - required_reagents = list("carpet" = 1, "orangejuice" = 1) + id = /datum/reagent/carpet/orange + results = list(/datum/reagent/carpet/orange = 2) + required_reagents = list(/datum/reagent/carpet = 1, /datum/reagent/consumable/orangejuice = 1) /datum/chemical_reaction/carpet/purple name = "liquid purple carpet" - id = "purplecarpet" - results = list("purplecarpet" = 2) - required_reagents = list("carpet" = 1, "stable_plasma" = 1) + id = /datum/reagent/carpet/purple + results = list(/datum/reagent/carpet/purple = 2) + required_reagents = list(/datum/reagent/carpet = 1, /datum/reagent/stable_plasma = 1) /datum/chemical_reaction/carpet/red name = "liquid red carpet" - id = "redcarpet" - results = list("redcarpet" = 2) - required_reagents = list("carpet" = 1, "welding_fuel" = 1) + id = /datum/reagent/carpet/red + results = list(/datum/reagent/carpet/red = 2) + required_reagents = list(/datum/reagent/carpet = 1, /datum/reagent/fuel = 1) /datum/chemical_reaction/carpet/royalblack name = "liquid royal black carpet" - id = "royalblackcarpet" - results = list("royalblackcarpet" = 2) - required_reagents = list("carpet" = 1, "blackpepper" = 1) + id = /datum/reagent/carpet/royalblack + results = list(/datum/reagent/carpet/royalblack = 2) + required_reagents = list(/datum/reagent/carpet = 1, /datum/reagent/consumable/blackpepper = 1) /datum/chemical_reaction/carpet/royalblue name = "liquid royal blue carpet" - id = "royalbluecarpet" - results = list("royalbluecarpet" = 2) - required_reagents = list("carpet" = 1, "clonexadone" = 1) + id = /datum/reagent/carpet/royalblue + results = list(/datum/reagent/carpet/royalblue = 2) + required_reagents = list(/datum/reagent/carpet = 1, /datum/reagent/medicine/clonexadone = 1) + +//////////////////////////////////// Glitter /////////////////////////////////////////// + +/datum/chemical_reaction/white_glitter/blue + name = "white glitter from blue" + id = "white_glitter_blue" + results = list(/datum/reagent/glitter/white = 2) + required_reagents = list(/datum/reagent/glitter/blue = 1, /datum/reagent/colorful_reagent/crayonpowder/white = 1) + +/datum/chemical_reaction/white_glitter/pink + name = "white glitter from pink" + id = "white_glitter_pink" + results = list(/datum/reagent/glitter/white = 2) + required_reagents = list(/datum/reagent/glitter/pink = 1, /datum/reagent/colorful_reagent/crayonpowder/white = 1) + +/datum/chemical_reaction/pink_glitter/blue + name = "pink glitter from blue" + id = "pink_glitter_blue" + results = list(/datum/reagent/glitter/pink = 2) + required_reagents = list(/datum/reagent/glitter/blue = 1, /datum/reagent/colorful_reagent/crayonpowder/red = 1) + +/datum/chemical_reaction/pink_glitter/white + name = "pink glitter from white" + id = "pink_glitter_white" + results = list(/datum/reagent/glitter/pink = 2) + required_reagents = list(/datum/reagent/glitter/white = 1, /datum/reagent/colorful_reagent/crayonpowder/red = 1) + +/datum/chemical_reaction/blue_glitter/pink + name = "blue glitter from pink" + id = "blue_glitter_pink" + results = list(/datum/reagent/glitter/blue = 2) + required_reagents = list(/datum/reagent/glitter/pink = 1, /datum/reagent/colorful_reagent/crayonpowder/blue = 1) + +/datum/chemical_reaction/blue_glitter/white + name = "blue glitter from white" + id = "blue_glitter_white" + results = list(/datum/reagent/glitter/blue = 2) + required_reagents = list(/datum/reagent/glitter/white = 1, /datum/reagent/colorful_reagent/crayonpowder/blue = 1) diff --git a/code/modules/reagents/chemistry/recipes/pyrotechnics.dm b/code/modules/reagents/chemistry/recipes/pyrotechnics.dm index ad1efc1da7..cb9636bf02 100644 --- a/code/modules/reagents/chemistry/recipes/pyrotechnics.dm +++ b/code/modules/reagents/chemistry/recipes/pyrotechnics.dm @@ -27,21 +27,21 @@ /datum/chemical_reaction/reagent_explosion/nitroglycerin name = "Nitroglycerin" - id = "nitroglycerin" - results = list("nitroglycerin" = 2) - required_reagents = list("glycerol" = 1, "facid" = 1, "sacid" = 1) + id = /datum/reagent/nitroglycerin + results = list(/datum/reagent/nitroglycerin = 2) + required_reagents = list(/datum/reagent/glycerol = 1, /datum/reagent/toxin/acid/fluacid = 1, /datum/reagent/toxin/acid = 1) strengthdiv = 2 /datum/chemical_reaction/reagent_explosion/nitroglycerin/on_reaction(datum/reagents/holder, created_volume) - if(holder.has_reagent("stabilizing_agent")) + if(holder.has_reagent(/datum/reagent/stabilizing_agent)) return - holder.remove_reagent("nitroglycerin", created_volume*2) + holder.remove_reagent(/datum/reagent/nitroglycerin, created_volume*2) ..() /datum/chemical_reaction/reagent_explosion/nitroglycerin_explosion name = "Nitroglycerin explosion" id = "nitroglycerin_explosion" - required_reagents = list("nitroglycerin" = 1) + required_reagents = list(/datum/reagent/nitroglycerin = 1) required_temp = 474 strengthdiv = 2 @@ -49,13 +49,13 @@ /datum/chemical_reaction/reagent_explosion/potassium_explosion name = "Explosion" id = "potassium_explosion" - required_reagents = list("water" = 1, "potassium" = 1) + required_reagents = list(/datum/reagent/water = 1, /datum/reagent/potassium = 1) strengthdiv = 10 /datum/chemical_reaction/reagent_explosion/potassium_explosion/holyboom name = "Holy Explosion" id = "holyboom" - required_reagents = list("holywater" = 1, "potassium" = 1) + required_reagents = list(/datum/reagent/water/holywater = 1, /datum/reagent/potassium = 1) /datum/chemical_reaction/reagent_explosion/potassium_explosion/holyboom/on_reaction(datum/reagents/holder, created_volume) var/turf/T = get_turf(holder.my_atom) @@ -84,14 +84,14 @@ /datum/chemical_reaction/blackpowder name = "Black Powder" - id = "blackpowder" - results = list("blackpowder" = 3) - required_reagents = list("saltpetre" = 1, "charcoal" = 1, "sulfur" = 1) + id = /datum/reagent/blackpowder + results = list(/datum/reagent/blackpowder = 3) + required_reagents = list(/datum/reagent/saltpetre = 1, /datum/reagent/medicine/charcoal = 1, /datum/reagent/sulfur = 1) /datum/chemical_reaction/reagent_explosion/blackpowder_explosion name = "Black Powder Kaboom" id = "blackpowder_explosion" - required_reagents = list("blackpowder" = 1) + required_reagents = list(/datum/reagent/blackpowder = 1) required_temp = 474 strengthdiv = 6 modifier = 1 @@ -103,14 +103,14 @@ /datum/chemical_reaction/thermite name = "Thermite" - id = "thermite" - results = list("thermite" = 3) - required_reagents = list("aluminium" = 1, "iron" = 1, "oxygen" = 1) + id = /datum/reagent/thermite + results = list(/datum/reagent/thermite = 3) + required_reagents = list(/datum/reagent/aluminium = 1, /datum/reagent/iron = 1, /datum/reagent/oxygen = 1) /datum/chemical_reaction/emp_pulse name = "EMP Pulse" id = "emp_pulse" - required_reagents = list("uranium" = 1, "iron" = 1) // Yes, laugh, it's the best recipe I could think of that makes a little bit of sense + required_reagents = list(/datum/reagent/uranium = 1, /datum/reagent/iron = 1) // Yes, laugh, it's the best recipe I could think of that makes a little bit of sense /datum/chemical_reaction/emp_pulse/on_reaction(datum/reagents/holder, created_volume) var/location = get_turf(holder.my_atom) @@ -123,7 +123,7 @@ /datum/chemical_reaction/beesplosion name = "Bee Explosion" id = "beesplosion" - required_reagents = list("honey" = 1, "strange_reagent" = 1, "radium" = 1) + required_reagents = list(/datum/reagent/consumable/honey = 1, /datum/reagent/medicine/strange_reagent = 1, /datum/reagent/radium = 1) /datum/chemical_reaction/beesplosion/on_reaction(datum/reagents/holder, created_volume) var/location = holder.my_atom.drop_location() @@ -134,7 +134,7 @@ var/list/beeagents = list() for(var/X in holder.reagent_list) var/datum/reagent/R = X - if(required_reagents[R.id]) + if(required_reagents[R.type]) continue beeagents += R var/bee_amount = round(created_volume * 0.2) @@ -146,15 +146,15 @@ /datum/chemical_reaction/stabilizing_agent name = "stabilizing_agent" - id = "stabilizing_agent" - results = list("stabilizing_agent" = 3) - required_reagents = list("iron" = 1, "oxygen" = 1, "hydrogen" = 1) + id = /datum/reagent/stabilizing_agent + results = list(/datum/reagent/stabilizing_agent = 3) + required_reagents = list(/datum/reagent/iron = 1, /datum/reagent/oxygen = 1, /datum/reagent/hydrogen = 1) /datum/chemical_reaction/clf3 name = "Chlorine Trifluoride" - id = "clf3" - results = list("clf3" = 4) - required_reagents = list("chlorine" = 1, "fluorine" = 3) + id = /datum/reagent/clf3 + results = list(/datum/reagent/clf3 = 4) + required_reagents = list(/datum/reagent/chlorine = 1, /datum/reagent/fluorine = 3) required_temp = 424 /datum/chemical_reaction/clf3/on_reaction(datum/reagents/holder, created_volume) @@ -167,7 +167,7 @@ name = "Meth explosion" id = "methboom1" required_temp = 380 //slightly above the meth mix time. - required_reagents = list("methamphetamine" = 1) + required_reagents = list(/datum/reagent/drug/methamphetamine = 1) strengthdiv = 6 modifier = 1 mob_react = FALSE @@ -181,19 +181,19 @@ /datum/chemical_reaction/reagent_explosion/methsplosion/methboom2 id = "methboom2" - required_reagents = list("diethylamine" = 1, "iodine" = 1, "phosphorus" = 1, "hydrogen" = 1) //diethylamine is often left over from mixing the ephedrine. + required_reagents = list(/datum/reagent/diethylamine = 1, /datum/reagent/iodine = 1, /datum/reagent/phosphorus = 1, /datum/reagent/hydrogen = 1) //diethylamine is often left over from mixing the ephedrine. required_temp = 300 //room temperature, chilling it even a little will prevent the explosion /datum/chemical_reaction/sorium name = "Sorium" - id = "sorium" - results = list("sorium" = 4) - required_reagents = list("mercury" = 1, "oxygen" = 1, "nitrogen" = 1, "carbon" = 1) + id = /datum/reagent/sorium + results = list(/datum/reagent/sorium = 4) + required_reagents = list(/datum/reagent/mercury = 1, /datum/reagent/oxygen = 1, /datum/reagent/nitrogen = 1, /datum/reagent/carbon = 1) /datum/chemical_reaction/sorium/on_reaction(datum/reagents/holder, created_volume) - if(holder.has_reagent("stabilizing_agent")) + if(holder.has_reagent(/datum/reagent/stabilizing_agent)) return - holder.remove_reagent("sorium", created_volume*4) + holder.remove_reagent(/datum/reagent/sorium, created_volume*4) var/turf/T = get_turf(holder.my_atom) var/range = CLAMP(sqrt(created_volume*4), 1, 6) goonchem_vortex(T, 1, range) @@ -201,7 +201,7 @@ /datum/chemical_reaction/sorium_vortex name = "sorium_vortex" id = "sorium_vortex" - required_reagents = list("sorium" = 1) + required_reagents = list(/datum/reagent/sorium = 1) required_temp = 474 /datum/chemical_reaction/sorium_vortex/on_reaction(datum/reagents/holder, created_volume) @@ -211,14 +211,14 @@ /datum/chemical_reaction/liquid_dark_matter name = "Liquid Dark Matter" - id = "liquid_dark_matter" - results = list("liquid_dark_matter" = 3) - required_reagents = list("stable_plasma" = 1, "radium" = 1, "carbon" = 1) + id = /datum/reagent/liquid_dark_matter + results = list(/datum/reagent/liquid_dark_matter = 3) + required_reagents = list(/datum/reagent/stable_plasma = 1, /datum/reagent/radium = 1, /datum/reagent/carbon = 1) /datum/chemical_reaction/liquid_dark_matter/on_reaction(datum/reagents/holder, created_volume) - if(holder.has_reagent("stabilizing_agent")) + if(holder.has_reagent(/datum/reagent/stabilizing_agent)) return - holder.remove_reagent("liquid_dark_matter", created_volume*3) + holder.remove_reagent(/datum/reagent/liquid_dark_matter, created_volume*3) var/turf/T = get_turf(holder.my_atom) var/range = CLAMP(sqrt(created_volume*3), 1, 6) goonchem_vortex(T, 0, range) @@ -226,7 +226,7 @@ /datum/chemical_reaction/ldm_vortex name = "LDM Vortex" id = "ldm_vortex" - required_reagents = list("liquid_dark_matter" = 1) + required_reagents = list(/datum/reagent/liquid_dark_matter = 1) required_temp = 474 /datum/chemical_reaction/ldm_vortex/on_reaction(datum/reagents/holder, created_volume) @@ -236,12 +236,12 @@ /datum/chemical_reaction/flash_powder name = "Flash powder" - id = "flash_powder" - results = list("flash_powder" = 3) - required_reagents = list("aluminium" = 1, "potassium" = 1, "sulfur" = 1 ) + id = /datum/reagent/flash_powder + results = list(/datum/reagent/flash_powder = 3) + required_reagents = list(/datum/reagent/aluminium = 1, /datum/reagent/potassium = 1, /datum/reagent/sulfur = 1 ) /datum/chemical_reaction/flash_powder/on_reaction(datum/reagents/holder, created_volume) - if(holder.has_reagent("stabilizing_agent")) + if(holder.has_reagent(/datum/reagent/stabilizing_agent)) return var/location = get_turf(holder.my_atom) do_sparks(2, TRUE, location) @@ -255,12 +255,12 @@ C.Knockdown(60) else C.Stun(100) - holder.remove_reagent("flash_powder", created_volume*3) + holder.remove_reagent(/datum/reagent/flash_powder, created_volume*3) /datum/chemical_reaction/flash_powder_flash name = "Flash powder activation" id = "flash_powder_flash" - required_reagents = list("flash_powder" = 1) + required_reagents = list(/datum/reagent/flash_powder = 1) required_temp = 374 /datum/chemical_reaction/flash_powder_flash/on_reaction(datum/reagents/holder, created_volume) @@ -279,14 +279,14 @@ /datum/chemical_reaction/smoke_powder name = "smoke_powder" - id = "smoke_powder" - results = list("smoke_powder" = 3) - required_reagents = list("potassium" = 1, "sugar" = 1, "phosphorus" = 1) + id = /datum/reagent/smoke_powder + results = list(/datum/reagent/smoke_powder = 3) + required_reagents = list(/datum/reagent/potassium = 1, /datum/reagent/consumable/sugar = 1, /datum/reagent/phosphorus = 1) /datum/chemical_reaction/smoke_powder/on_reaction(datum/reagents/holder, created_volume) - if(holder.has_reagent("stabilizing_agent")) + if(holder.has_reagent(/datum/reagent/stabilizing_agent)) return - holder.remove_reagent("smoke_powder", created_volume*3) + holder.remove_reagent(/datum/reagent/smoke_powder, created_volume*3) var/smoke_radius = round(sqrt(created_volume * 1.5), 1) var/location = get_turf(holder.my_atom) var/datum/effect_system/smoke_spread/chem/S = new @@ -301,7 +301,7 @@ /datum/chemical_reaction/smoke_powder_smoke name = "smoke_powder_smoke" id = "smoke_powder_smoke" - required_reagents = list("smoke_powder" = 1) + required_reagents = list(/datum/reagent/smoke_powder = 1) required_temp = 374 mob_react = FALSE @@ -319,14 +319,14 @@ /datum/chemical_reaction/sonic_powder name = "sonic_powder" - id = "sonic_powder" - results = list("sonic_powder" = 3) - required_reagents = list("oxygen" = 1, "cola" = 1, "phosphorus" = 1) + id = /datum/reagent/sonic_powder + results = list(/datum/reagent/sonic_powder = 3) + required_reagents = list(/datum/reagent/oxygen = 1, /datum/reagent/consumable/space_cola = 1, /datum/reagent/phosphorus = 1) /datum/chemical_reaction/sonic_powder/on_reaction(datum/reagents/holder, created_volume) - if(holder.has_reagent("stabilizing_agent")) + if(holder.has_reagent(/datum/reagent/stabilizing_agent)) return - holder.remove_reagent("sonic_powder", created_volume*3) + holder.remove_reagent(/datum/reagent/sonic_powder, created_volume*3) var/location = get_turf(holder.my_atom) playsound(location, 'sound/effects/bang.ogg', 25, 1) for(var/mob/living/carbon/C in get_hearers_in_view(created_volume/3, location)) @@ -335,7 +335,7 @@ /datum/chemical_reaction/sonic_powder_deafen name = "sonic_powder_deafen" id = "sonic_powder_deafen" - required_reagents = list("sonic_powder" = 1) + required_reagents = list(/datum/reagent/sonic_powder = 1) required_temp = 374 /datum/chemical_reaction/sonic_powder_deafen/on_reaction(datum/reagents/holder, created_volume) @@ -346,12 +346,12 @@ /datum/chemical_reaction/phlogiston name = "phlogiston" - id = "phlogiston" - results = list("phlogiston" = 3) - required_reagents = list("phosphorus" = 1, "sacid" = 1, "stable_plasma" = 1) + id = /datum/reagent/phlogiston + results = list(/datum/reagent/phlogiston = 3) + required_reagents = list(/datum/reagent/phosphorus = 1, /datum/reagent/toxin/acid = 1, /datum/reagent/stable_plasma = 1) /datum/chemical_reaction/phlogiston/on_reaction(datum/reagents/holder, created_volume) - if(holder.has_reagent("stabilizing_agent")) + if(holder.has_reagent(/datum/reagent/stabilizing_agent)) return var/turf/open/T = get_turf(holder.my_atom) if(istype(T)) @@ -361,15 +361,15 @@ /datum/chemical_reaction/napalm name = "Napalm" - id = "napalm" - results = list("napalm" = 3) - required_reagents = list("oil" = 1, "welding_fuel" = 1, "ethanol" = 1 ) + id = /datum/reagent/napalm + results = list(/datum/reagent/napalm = 3) + required_reagents = list(/datum/reagent/oil = 1, /datum/reagent/fuel = 1, /datum/reagent/consumable/ethanol = 1 ) /datum/chemical_reaction/cryostylane name = "cryostylane" - id = "cryostylane" - results = list("cryostylane" = 3) - required_reagents = list("water" = 1, "stable_plasma" = 1, "nitrogen" = 1) + id = /datum/reagent/cryostylane + results = list(/datum/reagent/cryostylane = 3) + required_reagents = list(/datum/reagent/water = 1, /datum/reagent/stable_plasma = 1, /datum/reagent/nitrogen = 1) /datum/chemical_reaction/cryostylane/on_reaction(datum/reagents/holder, created_volume) holder.chem_temp = 20 // cools the fuck down @@ -378,8 +378,8 @@ /datum/chemical_reaction/cryostylane_oxygen name = "ephemeral cryostylane reaction" id = "cryostylane_oxygen" - results = list("cryostylane" = 1) - required_reagents = list("cryostylane" = 1, "oxygen" = 1) + results = list(/datum/reagent/cryostylane = 1) + required_reagents = list(/datum/reagent/cryostylane = 1, /datum/reagent/oxygen = 1) mob_react = FALSE /datum/chemical_reaction/cryostylane_oxygen/on_reaction(datum/reagents/holder, created_volume) @@ -388,8 +388,8 @@ /datum/chemical_reaction/pyrosium_oxygen name = "ephemeral pyrosium reaction" id = "pyrosium_oxygen" - results = list("pyrosium" = 1) - required_reagents = list("pyrosium" = 1, "oxygen" = 1) + results = list(/datum/reagent/pyrosium = 1) + required_reagents = list(/datum/reagent/pyrosium = 1, /datum/reagent/oxygen = 1) mob_react = FALSE /datum/chemical_reaction/pyrosium_oxygen/on_reaction(datum/reagents/holder, created_volume) @@ -397,9 +397,9 @@ /datum/chemical_reaction/pyrosium name = "pyrosium" - id = "pyrosium" - results = list("pyrosium" = 3) - required_reagents = list("stable_plasma" = 1, "radium" = 1, "phosphorus" = 1) + id = /datum/reagent/pyrosium + results = list(/datum/reagent/pyrosium = 3) + required_reagents = list(/datum/reagent/stable_plasma = 1, /datum/reagent/radium = 1, /datum/reagent/phosphorus = 1) /datum/chemical_reaction/pyrosium/on_reaction(datum/reagents/holder, created_volume) holder.chem_temp = 20 // also cools the fuck down @@ -407,23 +407,23 @@ /datum/chemical_reaction/teslium name = "Teslium" - id = "teslium" - results = list("teslium" = 3) - required_reagents = list("stable_plasma" = 1, "silver" = 1, "blackpowder" = 1) + id = /datum/reagent/teslium + results = list(/datum/reagent/teslium = 3) + required_reagents = list(/datum/reagent/stable_plasma = 1, /datum/reagent/silver = 1, /datum/reagent/blackpowder = 1) mix_message = "A jet of sparks flies from the mixture as it merges into a flickering slurry." required_temp = 400 /datum/chemical_reaction/energized_jelly name = "Energized Jelly" - id = "energized_jelly" - results = list("energized_jelly" = 2) - required_reagents = list("slimejelly" = 1, "teslium" = 1) + id = /datum/reagent/teslium/energized_jelly + results = list(/datum/reagent/teslium/energized_jelly = 2) + required_reagents = list(/datum/reagent/toxin/slimejelly = 1, /datum/reagent/teslium = 1) mix_message = "The slime jelly starts glowing intermittently." /datum/chemical_reaction/reagent_explosion/teslium_lightning name = "Teslium Destabilization" id = "teslium_lightning" - required_reagents = list("teslium" = 1, "water" = 1) + required_reagents = list(/datum/reagent/teslium = 1, /datum/reagent/water = 1) strengthdiv = 100 modifier = -100 noexplosion = TRUE @@ -452,29 +452,29 @@ /datum/chemical_reaction/reagent_explosion/teslium_lightning/heat id = "teslium_lightning2" required_temp = 474 - required_reagents = list("teslium" = 1) + required_reagents = list(/datum/reagent/teslium = 1) /datum/chemical_reaction/reagent_explosion/nitrous_oxide name = "N2O explosion" id = "n2o_explosion" - required_reagents = list("nitrous_oxide" = 1) + required_reagents = list(/datum/reagent/nitrous_oxide = 1) strengthdiv = 7 required_temp = 575 modifier = 1 /datum/chemical_reaction/firefighting_foam name = "Firefighting Foam" - id = "firefighting_foam" - results = list("firefighting_foam" = 3) - required_reagents = list("stabilizing_agent" = 1,"fluorosurfactant" = 1,"carbon" = 1) + id = /datum/reagent/firefighting_foam + results = list(/datum/reagent/firefighting_foam = 3) + required_reagents = list(/datum/reagent/stabilizing_agent = 1, /datum/reagent/fluorosurfactant = 1,/datum/reagent/carbon = 1) required_temp = 200 is_cold_recipe = 1 /datum/chemical_reaction/reagent_explosion/lingblood name = "Changeling Blood Reaction" id = "ling_blood_reaction" - results = list("ash" = 1) - required_reagents = list("blood" = 1) + results = list(/datum/reagent/ash = 1) + required_reagents = list(/datum/reagent/blood = 1) strengthdiv = 4 //The explosion should be somewhat strong if a full 15u is heated within a syringe. !!fun!! required_temp = 666 special_react = TRUE diff --git a/code/modules/reagents/chemistry/recipes/slime_extracts.dm b/code/modules/reagents/chemistry/recipes/slime_extracts.dm index 8edca91a91..5228d4a281 100644 --- a/code/modules/reagents/chemistry/recipes/slime_extracts.dm +++ b/code/modules/reagents/chemistry/recipes/slime_extracts.dm @@ -16,7 +16,7 @@ /datum/chemical_reaction/slime/slimespawn name = "Slime Spawn" id = "m_spawn" - required_reagents = list("plasma" = 1) + required_reagents = list(/datum/reagent/toxin/plasma = 1) required_container = /obj/item/slime_extract/grey required_other = TRUE @@ -28,15 +28,15 @@ /datum/chemical_reaction/slime/slimeinaprov name = "Slime epinephrine" id = "m_inaprov" - results = list("epinephrine" = 3) - required_reagents = list("water" = 5) + results = list(/datum/reagent/medicine/epinephrine = 3) + required_reagents = list(/datum/reagent/water = 5) required_other = TRUE required_container = /obj/item/slime_extract/grey /datum/chemical_reaction/slime/slimemonkey name = "Slime Monkey" id = "m_monkey" - required_reagents = list("blood" = 1) + required_reagents = list(/datum/reagent/blood = 1) required_container = /obj/item/slime_extract/grey required_other = TRUE @@ -48,25 +48,25 @@ //Green /datum/chemical_reaction/slime/slimemutate name = "Mutation Toxin" - id = "slimetoxin" - results = list("slime_toxin" = 1) - required_reagents = list("plasma" = 1) + id = /datum/reagent/slime_toxin + results = list(/datum/reagent/slime_toxin = 1) + required_reagents = list(/datum/reagent/toxin/plasma = 1) required_other = TRUE required_container = /obj/item/slime_extract/green /datum/chemical_reaction/slime/slimehuman name = "Human Mutation Toxin" - id = "humanmuttoxin" - results = list("stablemutationtoxin" = 1) - required_reagents = list("blood" = 1) + id = /datum/reagent/mutationtoxin + results = list(/datum/reagent/mutationtoxin = 1) + required_reagents = list(/datum/reagent/blood = 1) required_other = TRUE required_container = /obj/item/slime_extract/green /datum/chemical_reaction/slime/slimelizard name = "Lizard Mutation Toxin" - id = "lizardmuttoxin" - results = list("lizardmutationtoxin" = 1) - required_reagents = list("radium" = 1) + id = /datum/reagent/mutationtoxin/lizard + results = list(/datum/reagent/mutationtoxin/lizard = 1) + required_reagents = list(/datum/reagent/radium = 1) required_other = TRUE required_container = /obj/item/slime_extract/green @@ -74,7 +74,7 @@ /datum/chemical_reaction/slime/slimemetal name = "Slime Metal" id = "m_metal" - required_reagents = list("plasma" = 1) + required_reagents = list(/datum/reagent/toxin/plasma = 1) required_container = /obj/item/slime_extract/metal required_other = TRUE @@ -87,7 +87,7 @@ /datum/chemical_reaction/slime/slimeglass name = "Slime Glass" id = "m_glass" - required_reagents = list("water" = 1) + required_reagents = list(/datum/reagent/water = 1) required_container = /obj/item/slime_extract/metal required_other = TRUE @@ -101,7 +101,7 @@ /datum/chemical_reaction/slime/slimemobspawn name = "Slime Crit" id = "m_tele" - required_reagents = list("plasma" = 1) + required_reagents = list(/datum/reagent/toxin/plasma = 1) required_container = /obj/item/slime_extract/gold required_other = TRUE deletes_extract = FALSE //we do delete, but we don't do so instantly @@ -121,7 +121,7 @@ /datum/chemical_reaction/slime/slimemobspawn/lesser name = "Slime Crit Lesser" id = "m_tele3" - required_reagents = list("blood" = 1) + required_reagents = list(/datum/reagent/blood = 1) /datum/chemical_reaction/slime/slimemobspawn/lesser/summon_mobs(datum/reagents/holder, turf/T) T.visible_message("The slime extract begins to vibrate violently!") @@ -130,7 +130,7 @@ /datum/chemical_reaction/slime/slimemobspawn/friendly name = "Slime Crit Friendly" id = "m_tele5" - required_reagents = list("water" = 1) + required_reagents = list(/datum/reagent/water = 1) /datum/chemical_reaction/slime/slimemobspawn/friendly/summon_mobs(datum/reagents/holder, turf/T) T.visible_message("The slime extract begins to vibrate adorably!") @@ -140,7 +140,7 @@ /datum/chemical_reaction/slime/slimebork name = "Slime Bork" id = "m_tele2" - required_reagents = list("plasma" = 1) + required_reagents = list(/datum/reagent/toxin/plasma = 1) required_container = /obj/item/slime_extract/silver required_other = TRUE @@ -172,7 +172,7 @@ /datum/chemical_reaction/slime/slimebork/drinks name = "Slime Bork 2" id = "m_tele4" - required_reagents = list("water" = 1) + required_reagents = list(/datum/reagent/water = 1) /datum/chemical_reaction/slime/slimebork/drinks/getbork() return get_random_drink() @@ -181,15 +181,15 @@ /datum/chemical_reaction/slime/slimefrost name = "Slime Frost Oil" id = "m_frostoil" - results = list("frostoil" = 10) - required_reagents = list("plasma" = 1) + results = list(/datum/reagent/consumable/frostoil = 10) + required_reagents = list(/datum/reagent/toxin/plasma = 1) required_container = /obj/item/slime_extract/blue required_other = TRUE /datum/chemical_reaction/slime/slimestabilizer name = "Slime Stabilizer" id = "m_slimestabilizer" - required_reagents = list("blood" = 1) + required_reagents = list(/datum/reagent/blood = 1) required_container = /obj/item/slime_extract/blue required_other = TRUE @@ -200,8 +200,8 @@ /datum/chemical_reaction/slime/slimefoam name = "Slime Foam" id = "m_foam" - results = list("fluorosurfactant" = 20, "water" = 20) - required_reagents = list("water" = 5) + results = list(/datum/reagent/fluorosurfactant = 20, /datum/reagent/water = 20) + required_reagents = list(/datum/reagent/water = 5) required_container = /obj/item/slime_extract/blue required_other = TRUE @@ -209,7 +209,7 @@ /datum/chemical_reaction/slime/slimefreeze name = "Slime Freeze" id = "m_freeze" - required_reagents = list("plasma" = 1) + required_reagents = list(/datum/reagent/toxin/plasma = 1) required_container = /obj/item/slime_extract/darkblue required_other = TRUE deletes_extract = FALSE @@ -233,7 +233,7 @@ /datum/chemical_reaction/slime/slimefireproof name = "Slime Fireproof" id = "m_fireproof" - required_reagents = list("water" = 1) + required_reagents = list(/datum/reagent/water = 1) required_container = /obj/item/slime_extract/darkblue required_other = TRUE @@ -245,15 +245,15 @@ /datum/chemical_reaction/slime/slimecasp name = "Slime Capsaicin Oil" id = "m_capsaicinoil" - results = list("capsaicin" = 10) - required_reagents = list("blood" = 1) + results = list(/datum/reagent/consumable/capsaicin = 10) + required_reagents = list(/datum/reagent/blood = 1) required_container = /obj/item/slime_extract/orange required_other = TRUE /datum/chemical_reaction/slime/slimefire name = "Slime fire" id = "m_fire" - required_reagents = list("plasma" = 1) + required_reagents = list(/datum/reagent/toxin/plasma = 1) required_container = /obj/item/slime_extract/orange required_other = TRUE deletes_extract = FALSE @@ -277,8 +277,8 @@ /datum/chemical_reaction/slime/slimesmoke name = "Slime Smoke" id = "m_smoke" - results = list("phosphorus" = 10, "potassium" = 10, "sugar" = 10) - required_reagents = list("water" = 5) + results = list(/datum/reagent/phosphorus = 10, /datum/reagent/potassium = 10, /datum/reagent/consumable/sugar = 10) + required_reagents = list(/datum/reagent/water = 5) required_container = /obj/item/slime_extract/orange required_other = TRUE @@ -286,7 +286,7 @@ /datum/chemical_reaction/slime/slimeoverload name = "Slime EMP" id = "m_emp" - required_reagents = list("blood" = 1) + required_reagents = list(/datum/reagent/blood = 1) required_container = /obj/item/slime_extract/yellow required_other = TRUE @@ -297,7 +297,7 @@ /datum/chemical_reaction/slime/slimecell name = "Slime Powercell" id = "m_cell" - required_reagents = list("plasma" = 1) + required_reagents = list(/datum/reagent/toxin/plasma = 1) required_container = /obj/item/slime_extract/yellow required_other = TRUE @@ -308,7 +308,7 @@ /datum/chemical_reaction/slime/slimeglow name = "Slime Glow" id = "m_glow" - required_reagents = list("water" = 1) + required_reagents = list(/datum/reagent/water = 1) required_container = /obj/item/slime_extract/yellow required_other = TRUE @@ -322,7 +322,7 @@ /datum/chemical_reaction/slime/slimepsteroid name = "Slime Steroid" id = "m_steroid" - required_reagents = list("plasma" = 1) + required_reagents = list(/datum/reagent/toxin/plasma = 1) required_container = /obj/item/slime_extract/purple required_other = TRUE @@ -333,8 +333,8 @@ /datum/chemical_reaction/slime/slimeregen name = "Slime Regen" id = "m_regen" - results = list("regen_jelly" = 5) - required_reagents = list("blood" = 1) + results = list(/datum/reagent/medicine/regen_jelly = 5) + required_reagents = list(/datum/reagent/blood = 1) required_container = /obj/item/slime_extract/purple required_other = TRUE @@ -342,7 +342,7 @@ /datum/chemical_reaction/slime/slimeplasma name = "Slime Plasma" id = "m_plasma" - required_reagents = list("plasma" = 1) + required_reagents = list(/datum/reagent/toxin/plasma = 1) required_container = /obj/item/slime_extract/darkpurple required_other = TRUE @@ -354,7 +354,7 @@ /datum/chemical_reaction/slime/slimemutator name = "Slime Mutator" id = "m_slimemutator" - required_reagents = list("plasma" = 1) + required_reagents = list(/datum/reagent/toxin/plasma = 1) required_container = /obj/item/slime_extract/red required_other = TRUE @@ -365,7 +365,7 @@ /datum/chemical_reaction/slime/slimebloodlust name = "Bloodlust" id = "m_bloodlust" - required_reagents = list("blood" = 1) + required_reagents = list(/datum/reagent/blood = 1) required_container = /obj/item/slime_extract/red required_other = TRUE @@ -383,7 +383,7 @@ /datum/chemical_reaction/slime/slimespeed name = "Slime Speed" id = "m_speed" - required_reagents = list("water" = 1) + required_reagents = list(/datum/reagent/water = 1) required_container = /obj/item/slime_extract/red required_other = TRUE @@ -395,7 +395,7 @@ /datum/chemical_reaction/slime/docility name = "Docility Potion" id = "m_potion" - required_reagents = list("plasma" = 1) + required_reagents = list(/datum/reagent/toxin/plasma = 1) required_container = /obj/item/slime_extract/pink required_other = TRUE @@ -406,7 +406,7 @@ /datum/chemical_reaction/slime/gender name = "Gender Potion" id = "m_gender" - required_reagents = list("blood" = 1) + required_reagents = list(/datum/reagent/blood = 1) required_container = /obj/item/slime_extract/pink required_other = TRUE @@ -417,9 +417,9 @@ //Black /datum/chemical_reaction/slime/slimemutate2 name = "Advanced Mutation Toxin" - id = "mutationtoxin2" - results = list("amutationtoxin" = 1) - required_reagents = list("plasma" = 1) + id = /datum/reagent/aslimetoxin + results = list(/datum/reagent/aslimetoxin = 1) + required_reagents = list(/datum/reagent/toxin/plasma = 1) required_other = TRUE required_container = /obj/item/slime_extract/black @@ -427,7 +427,7 @@ /datum/chemical_reaction/slime/slimeexplosion name = "Slime Explosion" id = "m_explosion" - required_reagents = list("plasma" = 1) + required_reagents = list(/datum/reagent/toxin/plasma = 1) required_container = /obj/item/slime_extract/oil required_other = TRUE deletes_extract = FALSE @@ -456,8 +456,8 @@ /datum/chemical_reaction/slime/slimecornoil name = "Slime Corn Oil" id = "m_cornoil" - results = list("cornoil" = 10) - required_reagents = list("blood" = 1) + results = list(/datum/reagent/consumable/cornoil = 10) + required_reagents = list(/datum/reagent/blood = 1) required_container = /obj/item/slime_extract/oil required_other = TRUE @@ -466,7 +466,7 @@ name = "Slime Potion 2" id = "m_potion2" required_container = /obj/item/slime_extract/lightpink - required_reagents = list("plasma" = 1) + required_reagents = list(/datum/reagent/toxin/plasma = 1) required_other = TRUE /datum/chemical_reaction/slime/slimepotion2/on_reaction(datum/reagents/holder) @@ -477,7 +477,7 @@ name = "Renaming Potion" id = "m_renaming_potion" required_container = /obj/item/slime_extract/lightpink - required_reagents = list("water" = 1) + required_reagents = list(/datum/reagent/water = 1) required_other = TRUE /datum/chemical_reaction/slime/renaming/on_reaction(datum/reagents/holder) @@ -489,7 +489,7 @@ /datum/chemical_reaction/slime/adamantine name = "Adamantine" id = "adamantine" - required_reagents = list("plasma" = 1) + required_reagents = list(/datum/reagent/toxin/plasma = 1) required_container = /obj/item/slime_extract/adamantine required_other = TRUE @@ -501,7 +501,7 @@ /datum/chemical_reaction/slime/slimefloor2 name = "Bluespace Floor" id = "m_floor2" - required_reagents = list("blood" = 1) + required_reagents = list(/datum/reagent/blood = 1) required_container = /obj/item/slime_extract/bluespace required_other = TRUE @@ -513,7 +513,7 @@ /datum/chemical_reaction/slime/slimecrystal name = "Slime Crystal" id = "m_crystal" - required_reagents = list("plasma" = 1) + required_reagents = list(/datum/reagent/toxin/plasma = 1) required_container = /obj/item/slime_extract/bluespace required_other = TRUE @@ -525,7 +525,7 @@ /datum/chemical_reaction/slime/slimeradio name = "Slime Radio" id = "m_radio" - required_reagents = list("water" = 1) + required_reagents = list(/datum/reagent/water = 1) required_container = /obj/item/slime_extract/bluespace required_other = TRUE @@ -537,7 +537,7 @@ /datum/chemical_reaction/slime/slimepsteroid2 name = "Slime Steroid 2" id = "m_steroid2" - required_reagents = list("plasma" = 1) + required_reagents = list(/datum/reagent/toxin/plasma = 1) required_container = /obj/item/slime_extract/cerulean required_other = TRUE @@ -548,7 +548,7 @@ /datum/chemical_reaction/slime/slime_territory name = "Slime Territory" id = "s_territory" - required_reagents = list("blood" = 1) + required_reagents = list(/datum/reagent/blood = 1) required_container = /obj/item/slime_extract/cerulean required_other = TRUE @@ -560,7 +560,7 @@ /datum/chemical_reaction/slime/slimestop name = "Slime Stop" id = "m_stop" - required_reagents = list("plasma" = 1) + required_reagents = list(/datum/reagent/toxin/plasma = 1) required_container = /obj/item/slime_extract/sepia required_other = TRUE @@ -573,7 +573,7 @@ /datum/chemical_reaction/slime/slimecamera name = "Slime Camera" id = "m_camera" - required_reagents = list("water" = 1) + required_reagents = list(/datum/reagent/water = 1) required_container = /obj/item/slime_extract/sepia required_other = TRUE @@ -585,7 +585,7 @@ /datum/chemical_reaction/slime/slimefloor name = "Sepia Floor" id = "m_floor" - required_reagents = list("blood" = 1) + required_reagents = list(/datum/reagent/blood = 1) required_container = /obj/item/slime_extract/sepia required_other = TRUE @@ -597,7 +597,7 @@ /datum/chemical_reaction/slime/slimepaint name = "Slime Paint" id = "s_paint" - required_reagents = list("plasma" = 1) + required_reagents = list(/datum/reagent/toxin/plasma = 1) required_container = /obj/item/slime_extract/pyrite required_other = TRUE @@ -609,7 +609,7 @@ /datum/chemical_reaction/slime/slimecrayon name = "Slime Crayon" id = "s_crayon" - required_reagents = list("blood" = 1) + required_reagents = list(/datum/reagent/blood = 1) required_container = /obj/item/slime_extract/pyrite required_other = TRUE @@ -622,7 +622,7 @@ /datum/chemical_reaction/slime/slimeRNG name = "Random Core" id = "slimerng" - required_reagents = list("plasma" = 1) + required_reagents = list(/datum/reagent/toxin/plasma = 1) required_other = TRUE required_container = /obj/item/slime_extract/rainbow @@ -642,7 +642,7 @@ /datum/chemical_reaction/slime/slimebomb name = "Clusterblorble" id = "slimebomb" - required_reagents = list("slimejelly" = 1) + required_reagents = list(/datum/reagent/toxin/slimejelly = 1) required_other = TRUE required_container = /obj/item/slime_extract/rainbow @@ -658,7 +658,7 @@ /datum/chemical_reaction/slime/slime_transfer name = "Transfer Potion" id = "slimetransfer" - required_reagents = list("blood" = 1) + required_reagents = list(/datum/reagent/blood = 1) required_other = TRUE required_container = /obj/item/slime_extract/rainbow @@ -669,7 +669,7 @@ /datum/chemical_reaction/slime/flight_potion name = "Flight Potion" id = "flightpotion" - required_reagents = list("holywater" = 5, "uranium" = 5) + required_reagents = list(/datum/reagent/water/holywater = 5, /datum/reagent/uranium = 5) required_other = TRUE required_container = /obj/item/slime_extract/rainbow diff --git a/code/modules/reagents/chemistry/recipes/special.dm b/code/modules/reagents/chemistry/recipes/special.dm index 08d07b8a52..5ad9728b22 100644 --- a/code/modules/reagents/chemistry/recipes/special.dm +++ b/code/modules/reagents/chemistry/recipes/special.dm @@ -123,11 +123,23 @@ GLOBAL_LIST_INIT(food_reagents, build_reagents_to_food()) //reagentid = related /datum/chemical_reaction/randomized/proc/LoadOldRecipe(recipe_data) created = text2num(recipe_data["timestamp"]) - required_reagents = SANITIZE_LIST(recipe_data["required_reagents"]) - required_catalysts = SANITIZE_LIST(recipe_data["required_catalysts"]) + var/req_reag = unwrap_reagent_list(recipe_data["required_reagents"]) + if(!req_reag) + return FALSE + required_reagents = req_reag + + var/req_catalysts = unwrap_reagent_list(recipe_data["required_catalysts"]) + if(!req_catalysts) + return FALSE + required_catalysts = req_catalysts + required_temp = recipe_data["required_temp"] is_cold_recipe = recipe_data["is_cold_recipe"] - results = SANITIZE_LIST(recipe_data["results"]) + + var/temp_results = unwrap_reagent_list(recipe_data["results"]) + if(!temp_results) + return FALSE + results = temp_results var/containerpath = text2path(recipe_data["required_container"]) if(!containerpath) return FALSE @@ -136,13 +148,13 @@ GLOBAL_LIST_INIT(food_reagents, build_reagents_to_food()) //reagentid = related /datum/chemical_reaction/randomized/secret_sauce name = "secret sauce creation" - id = "secretsauce" + id = /datum/reagent/consumable/secretsauce persistent = TRUE persistence_period = 7 //Reset every week randomize_container = TRUE possible_containers = list(/obj/item/reagent_containers/glass/bucket) //easy way to ensure no common conflicts randomize_req_temperature = TRUE - results = list("secret_sauce" =1) + results = list(/datum/reagent/consumable/secretsauce =1) /datum/chemical_reaction/randomized/secret_sauce/GetPossibleReagents(kind) switch(kind) diff --git a/code/modules/reagents/chemistry/recipes/toxins.dm b/code/modules/reagents/chemistry/recipes/toxins.dm index 726175a6c6..d9f28d2135 100644 --- a/code/modules/reagents/chemistry/recipes/toxins.dm +++ b/code/modules/reagents/chemistry/recipes/toxins.dm @@ -1,128 +1,128 @@ /datum/chemical_reaction/formaldehyde name = "formaldehyde" - id = "Formaldehyde" - results = list("formaldehyde" = 3) - required_reagents = list("ethanol" = 1, "oxygen" = 1, "silver" = 1) + id = /datum/reagent/toxin/formaldehyde + results = list(/datum/reagent/toxin/formaldehyde = 3) + required_reagents = list(/datum/reagent/consumable/ethanol = 1, /datum/reagent/oxygen = 1, /datum/reagent/silver = 1) required_temp = 420 /datum/chemical_reaction/fentanyl name = "fentanyl" - id = "fentanyl" - results = list("fentanyl" = 1) - required_reagents = list("space_drugs" = 1) + id = /datum/reagent/toxin/fentanyl + results = list(/datum/reagent/toxin/fentanyl = 1) + required_reagents = list(/datum/reagent/drug/space_drugs = 1) required_temp = 674 /datum/chemical_reaction/cyanide name = "Cyanide" - id = "cyanide" - results = list("cyanide" = 3) - required_reagents = list("oil" = 1, "ammonia" = 1, "oxygen" = 1) + id = /datum/reagent/toxin/cyanide + results = list(/datum/reagent/toxin/cyanide = 3) + required_reagents = list(/datum/reagent/oil = 1, /datum/reagent/ammonia = 1, /datum/reagent/oxygen = 1) required_temp = 380 /datum/chemical_reaction/itching_powder name = "Itching Powder" - id = "itching_powder" - results = list("itching_powder" = 3) - required_reagents = list("welding_fuel" = 1, "ammonia" = 1, "charcoal" = 1) + id = /datum/reagent/toxin/itching_powder + results = list(/datum/reagent/toxin/itching_powder = 3) + required_reagents = list(/datum/reagent/fuel = 1, /datum/reagent/ammonia = 1, /datum/reagent/medicine/charcoal = 1) /datum/chemical_reaction/facid name = "Fluorosulfuric acid" - id = "facid" - results = list("facid" = 4) - required_reagents = list("sacid" = 1, "fluorine" = 1, "hydrogen" = 1, "potassium" = 1) + id = /datum/reagent/toxin/acid/fluacid + results = list(/datum/reagent/toxin/acid/fluacid = 4) + required_reagents = list(/datum/reagent/toxin/acid = 1, /datum/reagent/fluorine = 1, /datum/reagent/hydrogen = 1, /datum/reagent/potassium = 1) required_temp = 380 /datum/chemical_reaction/sulfonal name = "sulfonal" - id = "sulfonal" - results = list("sulfonal" = 3) - required_reagents = list("acetone" = 1, "diethylamine" = 1, "sulfur" = 1) + id = /datum/reagent/toxin/sulfonal + results = list(/datum/reagent/toxin/sulfonal = 3) + required_reagents = list(/datum/reagent/acetone = 1, /datum/reagent/diethylamine = 1, /datum/reagent/sulfur = 1) /datum/chemical_reaction/lipolicide name = "lipolicide" - id = "lipolicide" - results = list("lipolicide" = 3) - required_reagents = list("mercury" = 1, "diethylamine" = 1, "ephedrine" = 1) + id = /datum/reagent/toxin/lipolicide + results = list(/datum/reagent/toxin/lipolicide = 3) + required_reagents = list(/datum/reagent/mercury = 1, /datum/reagent/diethylamine = 1, /datum/reagent/medicine/ephedrine = 1) /datum/chemical_reaction/mutagen name = "Unstable mutagen" - id = "mutagen" - results = list("mutagen" = 3) - required_reagents = list("radium" = 1, "phosphorus" = 1, "chlorine" = 1) + id = /datum/reagent/toxin/mutagen + results = list(/datum/reagent/toxin/mutagen = 3) + required_reagents = list(/datum/reagent/radium = 1, /datum/reagent/phosphorus = 1, /datum/reagent/chlorine = 1) /datum/chemical_reaction/lexorin name = "Lexorin" - id = "lexorin" - results = list("lexorin" = 3) - required_reagents = list("plasma" = 1, "hydrogen" = 1, "oxygen" = 1) + id = /datum/reagent/toxin/lexorin + results = list(/datum/reagent/toxin/lexorin = 3) + required_reagents = list(/datum/reagent/toxin/plasma = 1, /datum/reagent/hydrogen = 1, /datum/reagent/oxygen = 1) /datum/chemical_reaction/chloralhydrate name = "Chloral Hydrate" - id = "chloralhydrate" - results = list("chloralhydrate" = 1) - required_reagents = list("ethanol" = 1, "chlorine" = 3, "water" = 1) + id = /datum/reagent/toxin/chloralhydrate + results = list(/datum/reagent/toxin/chloralhydrate = 1) + required_reagents = list(/datum/reagent/consumable/ethanol = 1, /datum/reagent/chlorine = 3, /datum/reagent/water = 1) /datum/chemical_reaction/mutetoxin //i'll just fit this in here snugly between other unfun chemicals :v name = "Mute Toxin" - id = "mutetoxin" - results = list("mutetoxin" = 2) - required_reagents = list("uranium" = 2, "water" = 1, "carbon" = 1) + id = /datum/reagent/toxin/mutetoxin + results = list(/datum/reagent/toxin/mutetoxin = 2) + required_reagents = list(/datum/reagent/uranium = 2, /datum/reagent/water = 1, /datum/reagent/carbon = 1) /datum/chemical_reaction/zombiepowder name = "Zombie Powder" - id = "zombiepowder" - results = list("zombiepowder" = 2) - required_reagents = list("carpotoxin" = 5, "morphine" = 5, "copper" = 5) - + id = /datum/reagent/toxin/zombiepowder + results = list(/datum/reagent/toxin/zombiepowder = 2) + required_reagents = list(/datum/reagent/toxin/carpotoxin = 5, /datum/reagent/medicine/morphine = 5, /datum/reagent/copper = 5) + /datum/chemical_reaction/ghoulpowder name = "Ghoul Powder" - id = "ghoulpowder" - results = list("ghoulpowder" = 2) - required_reagents = list("zombiepowder" = 1, "epinephrine" = 1) + id = /datum/reagent/toxin/ghoulpowder + results = list(/datum/reagent/toxin/ghoulpowder = 2) + required_reagents = list(/datum/reagent/toxin/zombiepowder = 1, /datum/reagent/medicine/epinephrine = 1) /datum/chemical_reaction/mindbreaker name = "Mindbreaker Toxin" - id = "mindbreaker" - results = list("mindbreaker" = 5) - required_reagents = list("silicon" = 1, "hydrogen" = 1, "charcoal" = 1) + id = /datum/reagent/toxin/mindbreaker + results = list(/datum/reagent/toxin/mindbreaker = 5) + required_reagents = list(/datum/reagent/silicon = 1, /datum/reagent/hydrogen = 1, /datum/reagent/medicine/charcoal = 1) /datum/chemical_reaction/heparin name = "Heparin" - id = "Heparin" - results = list("heparin" = 4) - required_reagents = list("formaldehyde" = 1, "sodium" = 1, "chlorine" = 1, "lithium" = 1) + id = /datum/reagent/toxin/heparin + results = list(/datum/reagent/toxin/heparin = 4) + required_reagents = list(/datum/reagent/toxin/formaldehyde = 1, /datum/reagent/sodium = 1, /datum/reagent/chlorine = 1, /datum/reagent/lithium = 1) mix_message = "The mixture thins and loses all color." /datum/chemical_reaction/rotatium name = "Rotatium" - id = "Rotatium" - results = list("rotatium" = 3) - required_reagents = list("mindbreaker" = 1, "teslium" = 1, "fentanyl" = 1) + id = /datum/reagent/toxin/rotatium + results = list(/datum/reagent/toxin/rotatium = 3) + required_reagents = list(/datum/reagent/toxin/mindbreaker = 1, /datum/reagent/teslium = 1, /datum/reagent/toxin/fentanyl = 1) mix_message = "After sparks, fire, and the smell of mindbreaker, the mix is constantly spinning with no stop in sight." /datum/chemical_reaction/skewium name = "Skewium" - id = "Skewium" - results = list("skewium" = 5) - required_reagents = list("rotatium" = 2, "plasma" = 2, "sacid" = 1) + id = /datum/reagent/toxin/skewium + results = list(/datum/reagent/toxin/skewium = 5) + required_reagents = list(/datum/reagent/toxin/rotatium = 2, /datum/reagent/toxin/plasma = 2, /datum/reagent/toxin/acid = 1) mix_message = "Wow! it turns out if you mix rotatium with some plasma and sulphuric acid, it gets even worse!" /datum/chemical_reaction/anacea name = "Anacea" - id = "anacea" - results = list("anacea" = 3) - required_reagents = list("haloperidol" = 1, "impedrezene" = 1, "radium" = 1) + id = /datum/reagent/toxin/anacea + results = list(/datum/reagent/toxin/anacea = 3) + required_reagents = list(/datum/reagent/medicine/haloperidol = 1, /datum/reagent/impedrezene = 1, /datum/reagent/radium = 1) /datum/chemical_reaction/mimesbane name = "Mime's Bane" - id = "mimesbane" - results = list("mimesbane" = 3) - required_reagents = list("radium" = 1, "mutetoxin" = 1, "nothing" = 1) + id = /datum/reagent/toxin/mimesbane + results = list(/datum/reagent/toxin/mimesbane = 3) + required_reagents = list(/datum/reagent/radium = 1, /datum/reagent/toxin/mutetoxin = 1, /datum/reagent/consumable/nothing = 1) /datum/chemical_reaction/bonehurtingjuice name = "Bone Hurting Juice" - id = "bonehurtingjuice" - results = list("bonehurtingjuice" = 5) - required_reagents = list("mutagen" = 1, "itching_powder" = 3, "milk" = 1) + id = /datum/reagent/toxin/bonehurtingjuice + results = list(/datum/reagent/toxin/bonehurtingjuice = 5) + required_reagents = list(/datum/reagent/toxin/mutagen = 1, /datum/reagent/toxin/itching_powder = 3, /datum/reagent/consumable/milk = 1) mix_message = "The mixture suddenly becomes clear and looks a lot like water. You feel a strong urge to drink it." diff --git a/code/modules/reagents/reagent_containers.dm b/code/modules/reagents/reagent_containers.dm index b31b5c600d..97bc054ecd 100644 --- a/code/modules/reagents/reagent_containers.dm +++ b/code/modules/reagents/reagent_containers.dm @@ -9,6 +9,7 @@ w_class = WEIGHT_CLASS_TINY var/amount_per_transfer_from_this = 5 var/list/possible_transfer_amounts = list(5,10,15,20,25,30) + var/APTFT_altclick = TRUE //will the set amount_per_transfer_from_this proc be called on AltClick() ? var/volume = 30 var/reagent_flags var/list/list_reagents = null @@ -19,37 +20,40 @@ var/container_HP = 2 var/cached_icon -/obj/item/reagent_containers/verb/set_APTFT(mob/user) //set amount_per_transfer_from_this - set name = "Set Transfer Amount" - set category = "Object" - var/N = input("Amount per transfer from this:","[src]") as null|anything in possible_transfer_amounts - if(N) - amount_per_transfer_from_this = N - to_chat(user, "[src]'s transfer amount is now [amount_per_transfer_from_this] units.") - /obj/item/reagent_containers/Initialize(mapload, vol) . = ..() if(isnum(vol) && vol > 0) volume = vol - if(!possible_transfer_amounts) - src.verbs -= /obj/item/reagent_containers/verb/set_APTFT + if(length(possible_transfer_amounts)) + verbs += /obj/item/reagent_containers/proc/set_APTFT create_reagents(volume, reagent_flags) if(spawned_disease) var/datum/disease/F = new spawned_disease() var/list/data = list("blood_DNA" = "UNKNOWN DNA", "blood_type" = "SY","viruses"= list(F)) - reagents.add_reagent("blood", disease_amount, data) + reagents.add_reagent(/datum/reagent/blood, disease_amount, data) add_initial_reagents() /obj/item/reagent_containers/examine(mob/user) . = ..() - . += "Currently transferring [amount_per_transfer_from_this] units per use." - if(possible_transfer_amounts && user.Adjacent(src)) - . += "Alt-click it to set its transfer amount." + if(length(possible_transfer_amounts) > 1) + . += "Currently transferring [amount_per_transfer_from_this] units per use." + if(APTFT_altclick && user.Adjacent(src)) + . += "Alt-click it to set its transfer amount." /obj/item/reagent_containers/AltClick(mob/user) . = ..() - if(possible_transfer_amounts && user.Adjacent(src)) + if(APTFT_altclick && length(possible_transfer_amounts) > 1 && user.canUseTopic(src, BE_CLOSE, NO_DEXTERY)) set_APTFT() + return TRUE + +/obj/item/reagent_containers/proc/set_APTFT(mob/user) //set amount_per_transfer_from_this + set name = "Set Transfer Amount" + set category = "Object" + set waitfor = FALSE + var/N = input("Amount per transfer from this:","[src]") as null|anything in possible_transfer_amounts + if(N) + amount_per_transfer_from_this = N + to_chat(user, "[src]'s transfer amount is now [amount_per_transfer_from_this] units.") /obj/item/reagent_containers/proc/add_initial_reagents() if(list_reagents) @@ -124,7 +128,7 @@ target.visible_message("[M] has been splashed with something!", \ "[M] has been splashed with something!") for(var/datum/reagent/A in reagents.reagent_list) - R += A.id + " (" + R += A.type + " (" R += num2text(A.volume) + ")," if(thrownby) diff --git a/code/modules/reagents/reagent_containers/blood_pack.dm b/code/modules/reagents/reagent_containers/blood_pack.dm index 61449fc153..2f5fb067ea 100644 --- a/code/modules/reagents/reagent_containers/blood_pack.dm +++ b/code/modules/reagents/reagent_containers/blood_pack.dm @@ -13,12 +13,12 @@ /obj/item/reagent_containers/blood/Initialize() . = ..() if(blood_type != null) - reagents.add_reagent("blood", 200, list("donor"=null,"viruses"=null,"blood_DNA"=null,"blood_colour"=color, "blood_type"=blood_type,"resistances"=null,"trace_chem"=null)) + reagents.add_reagent(/datum/reagent/blood, 200, list("donor"=null,"viruses"=null,"blood_DNA"=null,"blood_colour"=color, "blood_type"=blood_type,"resistances"=null,"trace_chem"=null)) update_icon() /obj/item/reagent_containers/blood/on_reagent_change(changetype) if(reagents) - var/datum/reagent/blood/B = reagents.has_reagent("blood") + var/datum/reagent/blood/B = reagents.has_reagent(/datum/reagent/blood) if(B && B.data && B.data["blood_type"]) blood_type = B.data["blood_type"] color_to_apply = bloodtype_to_color(blood_type) diff --git a/code/modules/reagents/reagent_containers/borghydro.dm b/code/modules/reagents/reagent_containers/borghydro.dm index 94ad5fdb2c..48a5c10e3b 100644 --- a/code/modules/reagents/reagent_containers/borghydro.dm +++ b/code/modules/reagents/reagent_containers/borghydro.dm @@ -26,10 +26,12 @@ Borg Hypospray var/bypass_protection = 0 //If the hypospray can go through armor or thick material var/list/datum/reagents/reagent_list = list() - var/list/reagent_ids = list("dexalin", "kelotane", "bicaridine", "antitoxin", "epinephrine", "spaceacillin", "salglu_solution", "insulin") + var/list/reagent_ids = list(/datum/reagent/medicine/dexalin, /datum/reagent/medicine/kelotane, /datum/reagent/medicine/bicaridine, /datum/reagent/medicine/antitoxin, + /datum/reagent/medicine/epinephrine, /datum/reagent/medicine/spaceacillin, /datum/reagent/medicine/salglu_solution, /datum/reagent/medicine/insulin) var/accepts_reagent_upgrades = TRUE //If upgrades can increase number of reagents dispensed. var/list/modes = list() //Basically the inverse of reagent_ids. Instead of having numbers as "keys" and strings as values it has strings as keys and numbers as values. //Used as list for input() in shakers. + var/list/reagent_names = list() /obj/item/reagent_containers/borghypo/Initialize() . = ..() @@ -53,7 +55,7 @@ Borg Hypospray return 1 // Use this to add more chemicals for the borghypo to produce. -/obj/item/reagent_containers/borghypo/proc/add_reagent(reagent) +/obj/item/reagent_containers/borghypo/proc/add_reagent(datum/reagent/reagent) reagent_ids |= reagent var/datum/reagents/RG = new(30) RG.my_atom = src @@ -63,9 +65,11 @@ Borg Hypospray R.add_reagent(reagent, 30) modes[reagent] = modes.len + 1 + reagent_names[initial(reagent.name)] = reagent -/obj/item/reagent_containers/borghypo/proc/del_reagent(reagent) +/obj/item/reagent_containers/borghypo/proc/del_reagent(datum/reagent/reagent) reagent_ids -= reagent + reagent_names -= initial(reagent.name) var/datum/reagents/RG var/datum/reagents/TRG for(var/i in 1 to reagent_ids.len) @@ -111,7 +115,7 @@ Borg Hypospray log_combat(user, M, "injected", src, "(CHEMICALS: [english_list(injected)])") /obj/item/reagent_containers/borghypo/attack_self(mob/user) - var/chosen_reagent = modes[input(user, "What reagent do you want to dispense?") as null|anything in reagent_ids] + var/chosen_reagent = modes[reagent_names[input(user, "What reagent do you want to dispense?") as null|anything in reagent_names]] if(!chosen_reagent) return mode = chosen_reagent @@ -138,19 +142,19 @@ Borg Hypospray /obj/item/reagent_containers/borghypo/hacked icon_state = "borghypo_s" - reagent_ids = list ("facid", "mutetoxin", "cyanide", "sodium_thiopental", "heparin", "lexorin") + reagent_ids = list (/datum/reagent/toxin/acid, /datum/reagent/toxin/mutetoxin, /datum/reagent/toxin/cyanide, /datum/reagent/toxin/sodium_thiopental, /datum/reagent/toxin/heparin, /datum/reagent/toxin/lexorin) accepts_reagent_upgrades = FALSE /obj/item/reagent_containers/borghypo/clown name = "laughter injector" desc = "Keeps the crew happy and productive!" - reagent_ids = list("laughter") + reagent_ids = list(/datum/reagent/consumable/laughter) accepts_reagent_upgrades = FALSE /obj/item/reagent_containers/borghypo/clown/hacked name = "laughter injector" desc = "Keeps the crew so happy they don't work!" - reagent_ids = list("superlaughter") + reagent_ids = list(/datum/reagent/consumable/superlaughter) accepts_reagent_upgrades = FALSE /obj/item/reagent_containers/borghypo/syndicate @@ -159,7 +163,7 @@ Borg Hypospray icon_state = "borghypo_s" charge_cost = 20 recharge_time = 2 - reagent_ids = list("syndicate_nanites", "potass_iodide", "morphine", "insulin") + reagent_ids = list(/datum/reagent/medicine/syndicate_nanites, /datum/reagent/medicine/potass_iodide, /datum/reagent/medicine/morphine, /datum/reagent/medicine/insulin) bypass_protection = 1 accepts_reagent_upgrades = FALSE @@ -175,7 +179,14 @@ Borg Shaker charge_cost = 20 //Lots of reagents all regenerating at once, so the charge cost is lower. They also regenerate faster. recharge_time = 3 accepts_reagent_upgrades = FALSE - reagent_ids = list("beer", "orangejuice", "grenadine", "limejuice", "tomatojuice", "cola", "tonic", "sodawater", "ice", "cream", "whiskey", "vodka", "rum", "gin", "tequila", "vermouth", "wine", "kahlua", "cognac", "ale", "milk", "coffee", "banana", "lemonjuice") + reagent_ids = list(/datum/reagent/consumable/ethanol/beer, /datum/reagent/consumable/orangejuice, /datum/reagent/consumable/grenadine, + /datum/reagent/consumable/limejuice, /datum/reagent/consumable/tomatojuice, /datum/reagent/consumable/space_cola, + /datum/reagent/consumable/tonic, /datum/reagent/consumable/sodawater, /datum/reagent/consumable/ice, + /datum/reagent/consumable/cream, /datum/reagent/consumable/ethanol/whiskey, /datum/reagent/consumable/ethanol/vodka, + /datum/reagent/consumable/ethanol/rum, /datum/reagent/consumable/ethanol/gin, /datum/reagent/consumable/ethanol/tequila, + /datum/reagent/consumable/ethanol/vermouth, /datum/reagent/consumable/ethanol/wine, /datum/reagent/consumable/ethanol/kahlua, + /datum/reagent/consumable/ethanol/cognac, /datum/reagent/consumable/ethanol/ale, /datum/reagent/consumable/milk, + /datum/reagent/consumable/coffee, /datum/reagent/consumable/banana, /datum/reagent/consumable/lemonjuice) /obj/item/reagent_containers/borghypo/borgshaker/attack(mob/M, mob/user) return //Can't inject stuff with a shaker, can we? //not with that attitude @@ -230,21 +241,24 @@ Borg Shaker charge_cost = 20 //Lots of reagents all regenerating at once, so the charge cost is lower. They also regenerate faster. recharge_time = 3 accepts_reagent_upgrades = FALSE - reagent_ids = list("fakebeer", "fernet") + reagent_ids = list(/datum/reagent/toxin/fakebeer, /datum/reagent/consumable/ethanol/fernet) /obj/item/reagent_containers/borghypo/peace name = "Peace Hypospray" - reagent_ids = list("dizzysolution", "tiresolution", "synthpax", "insulin") + + reagent_ids = list(/datum/reagent/peaceborg_confuse, /datum/reagent/peaceborg_tire, /datum/reagent/pax/peaceborg, /datum/reagent/medicine/insulin) accepts_reagent_upgrades = FALSE /obj/item/reagent_containers/borghypo/peace/hacked desc = "Everything's peaceful in death!" icon_state = "borghypo_s" - reagent_ids = list("dizzysolution", "tiresolution", "synthpax", "tirizene", "sulfonal", "sodium_thiopental", "cyanide", "fentanyl") + reagent_ids = list(/datum/reagent/peaceborg_confuse, /datum/reagent/peaceborg_tire, /datum/reagent/pax/peaceborg, + /datum/reagent/toxin/staminatoxin,/datum/reagent/toxin/sulfonal,/datum/reagent/toxin/sodium_thiopental, + /datum/reagent/toxin/cyanide,/datum/reagent/toxin/fentanyl) accepts_reagent_upgrades = FALSE /obj/item/reagent_containers/borghypo/epi name = "Stabilizer injector" desc = "An advanced chemical synthesizer and injection system, designed to stabilize patients." - reagent_ids = list("epinephrine", "insulin") + reagent_ids = list(/datum/reagent/medicine/epinephrine, /datum/reagent/medicine/insulin) accepts_reagent_upgrades = FALSE diff --git a/code/modules/reagents/reagent_containers/bottle.dm b/code/modules/reagents/reagent_containers/bottle.dm index 0ee131bc14..c05f4f3e78 100644 --- a/code/modules/reagents/reagent_containers/bottle.dm +++ b/code/modules/reagents/reagent_containers/bottle.dm @@ -43,96 +43,96 @@ /obj/item/reagent_containers/glass/bottle/epinephrine name = "epinephrine bottle" desc = "A small bottle. Contains epinephrine - used to stabilize patients." - list_reagents = list("epinephrine" = 30) + list_reagents = list(/datum/reagent/medicine/epinephrine = 30) /obj/item/reagent_containers/glass/bottle/toxin name = "toxin bottle" desc = "A small bottle of toxins. Do not drink, it is poisonous." - list_reagents = list("toxin" = 30) + list_reagents = list(/datum/reagent/toxin = 30) /obj/item/reagent_containers/glass/bottle/cyanide name = "cyanide bottle" desc = "A small bottle of cyanide. Bitter almonds?" - list_reagents = list("cyanide" = 30) + list_reagents = list(/datum/reagent/toxin/cyanide = 30) /obj/item/reagent_containers/glass/bottle/spewium name = "spewium bottle" desc = "A small bottle of spewium." - list_reagents = list("spewium" = 30) + list_reagents = list(/datum/reagent/toxin/spewium = 30) /obj/item/reagent_containers/glass/bottle/morphine name = "morphine bottle" desc = "A small bottle of morphine." icon = 'icons/obj/chemical.dmi' - list_reagents = list("morphine" = 30) + list_reagents = list(/datum/reagent/medicine/morphine = 30) /obj/item/reagent_containers/glass/bottle/chloralhydrate name = "Chloral Hydrate Bottle" desc = "A small bottle of Choral Hydrate. Mickey's Favorite!" icon_state = "bottle20" - list_reagents = list("chloralhydrate" = 15) + list_reagents = list(/datum/reagent/toxin/chloralhydrate = 15) /obj/item/reagent_containers/glass/bottle/charcoal name = "charcoal bottle" desc = "A small bottle of charcoal, which removes toxins and other chemicals from the bloodstream." - list_reagents = list("charcoal" = 30) + list_reagents = list(/datum/reagent/medicine/charcoal = 30) /obj/item/reagent_containers/glass/bottle/cryoxadone name = "cryoxadone bottle" desc = "A small bottle of cryoxadone, heals most types of damage when used in extremely cold enviornments." - list_reagents = list("cryoxadone" = 30) + list_reagents = list(/datum/reagent/medicine/cryoxadone = 30) /obj/item/reagent_containers/glass/bottle/mutagen name = "unstable mutagen bottle" desc = "A small bottle of unstable mutagen. Randomly changes the DNA structure of whoever comes in contact." - list_reagents = list("mutagen" = 30) + list_reagents = list(/datum/reagent/toxin/mutagen = 30) /obj/item/reagent_containers/glass/bottle/plasma name = "liquid plasma bottle" desc = "A small bottle of liquid plasma. Extremely toxic and reacts with micro-organisms inside blood." - list_reagents = list("plasma" = 30) + list_reagents = list(/datum/reagent/toxin/plasma = 30) /obj/item/reagent_containers/glass/bottle/synaptizine name = "synaptizine bottle" desc = "A small bottle of synaptizine." - list_reagents = list("synaptizine" = 30) + list_reagents = list(/datum/reagent/medicine/synaptizine = 30) /obj/item/reagent_containers/glass/bottle/formaldehyde name = "formaldehyde bottle" desc = "A small bottle of formaldehyde." - list_reagents = list("formaldehyde" = 30) + list_reagents = list(/datum/reagent/toxin/formaldehyde = 30) /obj/item/reagent_containers/glass/bottle/ammonia name = "ammonia bottle" desc = "A small bottle of ammonia." - list_reagents = list("ammonia" = 30) + list_reagents = list(/datum/reagent/ammonia = 30) /obj/item/reagent_containers/glass/bottle/diethylamine name = "diethylamine bottle" desc = "A small bottle of diethylamine." - list_reagents = list("diethylamine" = 30) + list_reagents = list(/datum/reagent/diethylamine = 30) /obj/item/reagent_containers/glass/bottle/facid name = "Fluorosulfuric Acid Bottle" desc = "A small bottle. Contains a small amount of fluorosulfuric acid." - list_reagents = list("facid" = 30) + list_reagents = list(/datum/reagent/toxin/acid/fluacid = 30) /obj/item/reagent_containers/glass/bottle/adminordrazine name = "Adminordrazine Bottle" desc = "A small bottle. Contains the liquid essence of the gods." icon = 'icons/obj/drinks.dmi' icon_state = "holyflask" - list_reagents = list("adminordrazine" = 30) + list_reagents = list(/datum/reagent/medicine/adminordrazine = 30) /obj/item/reagent_containers/glass/bottle/capsaicin name = "Capsaicin Bottle" desc = "A small bottle. Contains hot sauce." - list_reagents = list("capsaicin" = 30) + list_reagents = list(/datum/reagent/consumable/capsaicin = 30) /obj/item/reagent_containers/glass/bottle/frostoil name = "Frost Oil Bottle" desc = "A small bottle. Contains cold sauce." - list_reagents = list("frostoil" = 30) + list_reagents = list(/datum/reagent/consumable/frostoil = 30) /obj/item/reagent_containers/glass/bottle/traitor name = "syndicate bottle" @@ -142,94 +142,95 @@ /obj/item/reagent_containers/glass/bottle/traitor/Initialize() . = ..() - extra_reagent = pick("polonium", "histamine", "formaldehyde", "venom", "fentanyl", "cyanide") - reagents.add_reagent("[extra_reagent]", 3) + extra_reagent = pick(/datum/reagent/toxin/polonium, /datum/reagent/toxin/histamine, /datum/reagent/toxin/formaldehyde, + /datum/reagent/toxin/venom, /datum/reagent/toxin/fentanyl, /datum/reagent/toxin/cyanide) + reagents.add_reagent(extra_reagent, 3) /obj/item/reagent_containers/glass/bottle/polonium name = "polonium bottle" desc = "A small bottle. Contains Polonium." - list_reagents = list("polonium" = 30) + list_reagents = list(/datum/reagent/toxin/polonium = 30) /obj/item/reagent_containers/glass/bottle/magillitis name = "magillitis bottle" desc = "A small bottle. Contains a serum known only as 'magillitis'." - list_reagents = list("magillitis" = 5) + list_reagents = list(/datum/reagent/magillitis = 5) /obj/item/reagent_containers/glass/bottle/venom name = "venom bottle" desc = "A small bottle. Contains Venom." - list_reagents = list("venom" = 30) + list_reagents = list(/datum/reagent/toxin/venom = 30) /obj/item/reagent_containers/glass/bottle/fentanyl name = "fentanyl bottle" desc = "A small bottle. Contains Fentanyl." - list_reagents = list("fentanyl" = 30) + list_reagents = list(/datum/reagent/toxin/fentanyl = 30) /obj/item/reagent_containers/glass/bottle/formaldehyde name = "formaldehyde bottle" desc = "A small bottle. Contains Formaldehyde." - list_reagents = list("formaldehyde" = 30) + list_reagents = list(/datum/reagent/toxin/formaldehyde = 30) /obj/item/reagent_containers/glass/bottle/initropidril name = "initropidril bottle" desc = "A small bottle. Contains initropidril." - list_reagents = list("initropidril" = 30) + list_reagents = list(/datum/reagent/toxin/initropidril = 30) /obj/item/reagent_containers/glass/bottle/pancuronium name = "pancuronium bottle" desc = "A small bottle. Contains pancuronium." - list_reagents = list("pancuronium" = 30) + list_reagents = list(/datum/reagent/toxin/pancuronium = 30) /obj/item/reagent_containers/glass/bottle/sodium_thiopental name = "sodium thiopental bottle" desc = "A small bottle. Contains sodium thiopental." - list_reagents = list("sodium_thiopental" = 30) + list_reagents = list(/datum/reagent/toxin/sodium_thiopental = 30) /obj/item/reagent_containers/glass/bottle/coniine name = "coniine bottle" desc = "A small bottle. Contains coniine." - list_reagents = list("coniine" = 30) + list_reagents = list(/datum/reagent/toxin/coniine = 30) /obj/item/reagent_containers/glass/bottle/curare name = "curare bottle" desc = "A small bottle. Contains curare." - list_reagents = list("curare" = 30) + list_reagents = list(/datum/reagent/toxin/curare = 30) /obj/item/reagent_containers/glass/bottle/amanitin name = "amanitin bottle" desc = "A small bottle. Contains amanitin." - list_reagents = list("amanitin" = 30) + list_reagents = list(/datum/reagent/toxin/amanitin = 30) /obj/item/reagent_containers/glass/bottle/histamine name = "histamine bottle" desc = "A small bottle. Contains Histamine." - list_reagents = list("histamine" = 30) + list_reagents = list(/datum/reagent/toxin/histamine = 30) /obj/item/reagent_containers/glass/bottle/diphenhydramine name = "antihistamine bottle" desc = "A small bottle of diphenhydramine." - list_reagents = list("diphenhydramine" = 30) + list_reagents = list(/datum/reagent/medicine/diphenhydramine = 30) /obj/item/reagent_containers/glass/bottle/potass_iodide name = "anti-radiation bottle" desc = "A small bottle of potassium iodide." - list_reagents = list("potass_iodide" = 30) + list_reagents = list(/datum/reagent/medicine/potass_iodide = 30) /obj/item/reagent_containers/glass/bottle/salglu_solution name = "saline-glucose solution bottle" desc = "A small bottle of saline-glucose solution." icon_state = "bottle1" - list_reagents = list("salglu_solution" = 30) + list_reagents = list(/datum/reagent/medicine/salglu_solution = 30) /obj/item/reagent_containers/glass/bottle/atropine name = "atropine bottle" desc = "A small bottle of atropine." - list_reagents = list("atropine" = 30) + list_reagents = list(/datum/reagent/medicine/atropine = 30) /obj/item/reagent_containers/glass/bottle/romerol name = "romerol bottle" desc = "A small bottle of Romerol. The REAL zombie powder." - list_reagents = list("romerol" = 30) + list_reagents = list(/datum/reagent/romerol = 30) /obj/item/reagent_containers/glass/bottle/random_virus name = "Experimental disease culture bottle" @@ -306,128 +307,128 @@ /obj/item/reagent_containers/glass/bottle/tuberculosiscure name = "BVAK bottle" desc = "A small bottle containing Bio Virus Antidote Kit." - list_reagents = list("atropine" = 5, "epinephrine" = 5, "salbutamol" = 10, "spaceacillin" = 10) + list_reagents = list(/datum/reagent/medicine/atropine = 5, /datum/reagent/medicine/epinephrine = 5, /datum/reagent/medicine/salbutamol = 10, /datum/reagent/medicine/spaceacillin = 10) //Oldstation.dmm chemical storage bottles /obj/item/reagent_containers/glass/bottle/hydrogen name = "hydrogen bottle" - list_reagents = list("hydrogen" = 30) + list_reagents = list(/datum/reagent/hydrogen = 30) /obj/item/reagent_containers/glass/bottle/lithium name = "lithium bottle" - list_reagents = list("lithium" = 30) + list_reagents = list(/datum/reagent/lithium = 30) /obj/item/reagent_containers/glass/bottle/carbon name = "carbon bottle" - list_reagents = list("carbon" = 30) + list_reagents = list(/datum/reagent/carbon = 30) /obj/item/reagent_containers/glass/bottle/nitrogen name = "nitrogen bottle" - list_reagents = list("nitrogen" = 30) + list_reagents = list(/datum/reagent/nitrogen = 30) /obj/item/reagent_containers/glass/bottle/oxygen name = "oxygen bottle" - list_reagents = list("oxygen" = 30) + list_reagents = list(/datum/reagent/oxygen = 30) /obj/item/reagent_containers/glass/bottle/fluorine name = "fluorine bottle" - list_reagents = list("fluorine" = 30) + list_reagents = list(/datum/reagent/fluorine = 30) /obj/item/reagent_containers/glass/bottle/sodium name = "sodium bottle" - list_reagents = list("sodium" = 30) + list_reagents = list(/datum/reagent/sodium = 30) /obj/item/reagent_containers/glass/bottle/aluminium name = "aluminium bottle" - list_reagents = list("aluminium" = 30) + list_reagents = list(/datum/reagent/aluminium = 30) /obj/item/reagent_containers/glass/bottle/silicon name = "silicon bottle" - list_reagents = list("silicon" = 30) + list_reagents = list(/datum/reagent/silicon = 30) /obj/item/reagent_containers/glass/bottle/phosphorus name = "phosphorus bottle" - list_reagents = list("phosphorus" = 30) + list_reagents = list(/datum/reagent/phosphorus = 30) /obj/item/reagent_containers/glass/bottle/sulfur name = "sulfur bottle" - list_reagents = list("sulfur" = 30) + list_reagents = list(/datum/reagent/sulfur = 30) /obj/item/reagent_containers/glass/bottle/chlorine name = "chlorine bottle" - list_reagents = list("chlorine" = 30) + list_reagents = list(/datum/reagent/chlorine = 30) /obj/item/reagent_containers/glass/bottle/potassium name = "potassium bottle" - list_reagents = list("potassium" = 30) + list_reagents = list(/datum/reagent/potassium = 30) /obj/item/reagent_containers/glass/bottle/iron name = "iron bottle" - list_reagents = list("iron" = 30) + list_reagents = list(/datum/reagent/iron = 30) /obj/item/reagent_containers/glass/bottle/copper name = "copper bottle" - list_reagents = list("copper" = 30) + list_reagents = list(/datum/reagent/copper = 30) /obj/item/reagent_containers/glass/bottle/mercury name = "mercury bottle" - list_reagents = list("mercury" = 30) + list_reagents = list(/datum/reagent/mercury = 30) /obj/item/reagent_containers/glass/bottle/radium name = "radium bottle" - list_reagents = list("radium" = 30) + list_reagents = list(/datum/reagent/radium = 30) /obj/item/reagent_containers/glass/bottle/water name = "water bottle" - list_reagents = list("water" = 30) + list_reagents = list(/datum/reagent/water = 30) /obj/item/reagent_containers/glass/bottle/ethanol name = "ethanol bottle" - list_reagents = list("ethanol" = 30) + list_reagents = list(/datum/reagent/consumable/ethanol = 30) /obj/item/reagent_containers/glass/bottle/sugar name = "sugar bottle" - list_reagents = list("sugar" = 30) + list_reagents = list(/datum/reagent/consumable/sugar = 30) /obj/item/reagent_containers/glass/bottle/sacid name = "sulphuric acid bottle" - list_reagents = list("sacid" = 30) + list_reagents = list(/datum/reagent/toxin/acid = 30) /obj/item/reagent_containers/glass/bottle/welding_fuel name = "welding fuel bottle" - list_reagents = list("welding_fuel" = 30) + list_reagents = list(/datum/reagent/fuel = 30) /obj/item/reagent_containers/glass/bottle/silver name = "silver bottle" - list_reagents = list("silver" = 30) + list_reagents = list(/datum/reagent/silver = 30) /obj/item/reagent_containers/glass/bottle/iodine name = "iodine bottle" - list_reagents = list("iodine" = 30) + list_reagents = list(/datum/reagent/iodine = 30) /obj/item/reagent_containers/glass/bottle/bromine name = "bromine bottle" - list_reagents = list("bromine" = 30) + list_reagents = list(/datum/reagent/bromine = 30) //Lewd Stuff /obj/item/reagent_containers/glass/bottle/crocin name = "Crocin bottle" desc = "A bottle of mild aphrodisiac. Increases libido." - list_reagents = list("aphro" = 30) + list_reagents = list(/datum/reagent/drug/aphrodisiac = 30) /obj/item/reagent_containers/glass/bottle/hexacrocin name = "Hexacrocin bottle" desc = "A bottle of strong aphrodisiac. Increases libido." - list_reagents = list("aphro+" = 30) + list_reagents = list(/datum/reagent/drug/aphrodisiacplus = 30) /obj/item/reagent_containers/glass/bottle/camphor name = "Camphor bottle" desc = "A bottle of mild anaphrodisiac. Reduces libido." - list_reagents = list("anaphro" = 30) + list_reagents = list(/datum/reagent/drug/anaphrodisiac = 30) /obj/item/reagent_containers/glass/bottle/hexacamphor name = "Hexacamphor bottle" desc = "A bottle of strong anaphrodisiac. Reduces libido." - list_reagents = list("anaphro+" = 30) \ No newline at end of file + list_reagents = list(/datum/reagent/drug/anaphrodisiacplus = 30) \ No newline at end of file diff --git a/code/modules/reagents/reagent_containers/dropper.dm b/code/modules/reagents/reagent_containers/dropper.dm index efe9c378d9..a215d09517 100644 --- a/code/modules/reagents/reagent_containers/dropper.dm +++ b/code/modules/reagents/reagent_containers/dropper.dm @@ -67,7 +67,7 @@ var/R if(reagents) for(var/datum/reagent/A in src.reagents.reagent_list) - R += A.id + " (" + R += A.type + " (" R += num2text(A.volume) + ")," log_combat(user, M, "squirted", R) diff --git a/code/modules/reagents/reagent_containers/glass.dm b/code/modules/reagents/reagent_containers/glass.dm index 1b213fed0f..98f5111501 100644 --- a/code/modules/reagents/reagent_containers/glass.dm +++ b/code/modules/reagents/reagent_containers/glass.dm @@ -27,7 +27,7 @@ "[user] splashes the contents of [src] onto [M]!") if(reagents) for(var/datum/reagent/A in reagents.reagent_list) - R += A.id + " (" + R += A.type + " (" R += num2text(A.volume) + ")," if(isturf(target) && reagents.reagent_list.len && thrownby) log_combat(thrownby, target, "splashed (thrown) [english_list(reagents.reagent_list)]") @@ -233,32 +233,32 @@ container_HP = 5 /obj/item/reagent_containers/glass/beaker/cryoxadone - list_reagents = list("cryoxadone" = 30) + list_reagents = list(/datum/reagent/medicine/cryoxadone = 30) /obj/item/reagent_containers/glass/beaker/sulphuric - list_reagents = list("sacid" = 50) + list_reagents = list(/datum/reagent/toxin/acid = 50) /obj/item/reagent_containers/glass/beaker/slime - list_reagents = list("slimejelly" = 50) + list_reagents = list(/datum/reagent/toxin/slimejelly = 50) /obj/item/reagent_containers/glass/beaker/large/styptic name = "styptic reserve tank" - list_reagents = list("styptic_powder" = 50) + list_reagents = list(/datum/reagent/medicine/styptic_powder = 50) /obj/item/reagent_containers/glass/beaker/large/silver_sulfadiazine name = "silver sulfadiazine reserve tank" - list_reagents = list("silver_sulfadiazine" = 50) + list_reagents = list(/datum/reagent/medicine/silver_sulfadiazine = 50) /obj/item/reagent_containers/glass/beaker/large/charcoal name = "charcoal reserve tank" - list_reagents = list("charcoal" = 50) + list_reagents = list(/datum/reagent/medicine/charcoal = 50) /obj/item/reagent_containers/glass/beaker/large/epinephrine name = "epinephrine reserve tank" - list_reagents = list("epinephrine" = 50) + list_reagents = list(/datum/reagent/medicine/epinephrine = 50) /obj/item/reagent_containers/glass/beaker/synthflesh - list_reagents = list("synthflesh" = 50) + list_reagents = list(/datum/reagent/medicine/synthflesh = 50) /obj/item/reagent_containers/glass/bucket name = "bucket" @@ -337,7 +337,7 @@ icon = 'icons/obj/drinks.dmi' icon_state = "smallbottle" item_state = "bottle" - list_reagents = list("water" = 49.5, "fluorine" = 0.5)//see desc, don't think about it too hard + list_reagents = list(/datum/reagent/water = 49.5, /datum/reagent/fluorine = 0.5)//see desc, don't think about it too hard materials = list(MAT_GLASS=0) volume = 50 amount_per_transfer_from_this = 10 @@ -355,7 +355,7 @@ desc = "A fresh commercial-sized bottle of water." icon_state = "largebottle" materials = list(MAT_GLASS=0) - list_reagents = list("water" = 100) + list_reagents = list(/datum/reagent/water = 100) volume = 100 amount_per_transfer_from_this = 20 possible_transfer_amounts = list(5,10,15,20,25,30,50,100) diff --git a/code/modules/reagents/reagent_containers/hypospray.dm b/code/modules/reagents/reagent_containers/hypospray.dm index 9232bb69b3..664ba81f9e 100644 --- a/code/modules/reagents/reagent_containers/hypospray.dm +++ b/code/modules/reagents/reagent_containers/hypospray.dm @@ -51,7 +51,7 @@ log_combat(user, M, "injected", src, "([contained])") /obj/item/reagent_containers/hypospray/CMO - list_reagents = list("omnizine" = 30) + list_reagents = list(/datum/reagent/medicine/omnizine = 30) resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | ACID_PROOF /obj/item/reagent_containers/hypospray/combat @@ -61,17 +61,17 @@ icon_state = "combat_hypo" volume = 100 ignore_flags = 1 // So they can heal their comrades. - list_reagents = list("epinephrine" = 30, "lesser_syndicate_nanites" = 40, "leporazine" = 15, "atropine" = 15) + list_reagents = list(/datum/reagent/medicine/epinephrine = 30, /datum/reagent/medicine/lesser_syndicate_nanites = 40, /datum/reagent/medicine/leporazine = 15, /datum/reagent/medicine/atropine = 15) /obj/item/reagent_containers/hypospray/combat/omnizine // owned idiot desc = "A modified air-needle autoinjector, used by underfunded support operatives to slowly heal injuries in combat and limp away from a fight." volume = 90 - list_reagents = list("epinephrine" = 30, "omnizine" = 30, "leporazine" = 15, "atropine" = 15) + list_reagents = list(/datum/reagent/medicine/epinephrine = 30, /datum/reagent/medicine/omnizine = 30, /datum/reagent/medicine/leporazine = 15, /datum/reagent/medicine/atropine = 15) /obj/item/reagent_containers/hypospray/combat/nanites desc = "A modified air-needle autoinjector for use in combat situations. Prefilled with experimental medical compounds for rapid healing." volume = 100 - list_reagents = list("quantum_heal" = 80, "synaptizine" = 20) + list_reagents = list(/datum/reagent/medicine/adminordrazine/quantum_heal = 80, /datum/reagent/medicine/synaptizine = 20) /obj/item/reagent_containers/hypospray/magillitis name = "experimental autoinjector" @@ -79,7 +79,7 @@ icon_state = "combat_hypo" volume = 5 reagent_flags = NONE - list_reagents = list("magillitis" = 5) + list_reagents = list(/datum/reagent/magillitis = 5) //MediPens @@ -95,7 +95,7 @@ ignore_flags = 1 //so you can medipen through hardsuits reagent_flags = DRAWABLE flags_1 = null - list_reagents = list("epinephrine" = 10) + list_reagents = list(/datum/reagent/medicine/epinephrine = 10) /obj/item/reagent_containers/hypospray/medipen/suicide_act(mob/living/carbon/user) user.visible_message("[user] begins to choke on \the [src]! It looks like [user.p_theyre()] trying to commit suicide!") @@ -137,7 +137,7 @@ desc = "A highly illegal medipen due to its load and small injections, allow for five uses before being drained" volume = 50 amount_per_transfer_from_this = 10 - list_reagents = list("stimulants" = 50) + list_reagents = list(/datum/reagent/medicine/stimulants = 50) /obj/item/reagent_containers/hypospray/medipen/stimulants/baseball name = "the reason the syndicate major league team wins" @@ -145,7 +145,7 @@ icon_state = "baseballstim" volume = 50 amount_per_transfer_from_this = 50 - list_reagents = list("stimulants" = 50) + list_reagents = list(/datum/reagent/medicine/stimulants = 50) /obj/item/reagent_containers/hypospray/medipen/stimpack //goliath kiting name = "stimpack medipen" @@ -153,16 +153,16 @@ icon_state = "stimpen" volume = 20 amount_per_transfer_from_this = 20 - list_reagents = list("ephedrine" = 10, "coffee" = 10) + list_reagents = list(/datum/reagent/medicine/ephedrine = 10, /datum/reagent/consumable/coffee = 10) /obj/item/reagent_containers/hypospray/medipen/stimpack/traitor desc = "A modified stimulants autoinjector for use in combat situations. Has a mild healing effect." - list_reagents = list("stimulants" = 10, "omnizine" = 10) + list_reagents = list(/datum/reagent/medicine/stimulants = 10, /datum/reagent/medicine/omnizine = 10) /obj/item/reagent_containers/hypospray/medipen/morphine name = "morphine medipen" desc = "A rapid way to get you out of a tight situation and fast! You'll feel rather drowsy, though." - list_reagents = list("morphine" = 10) + list_reagents = list(/datum/reagent/medicine/morphine = 10) /obj/item/reagent_containers/hypospray/medipen/tuberculosiscure name = "BVAK autoinjector" @@ -170,7 +170,7 @@ icon_state = "stimpen" volume = 60 amount_per_transfer_from_this = 30 - list_reagents = list("atropine" = 10, "epinephrine" = 10, "salbutamol" = 20, "spaceacillin" = 20) + list_reagents = list(/datum/reagent/medicine/atropine = 10, /datum/reagent/medicine/epinephrine = 10, /datum/reagent/medicine/salbutamol = 20, /datum/reagent/medicine/spaceacillin = 20) /obj/item/reagent_containers/hypospray/medipen/survival name = "survival medipen" @@ -178,28 +178,20 @@ icon_state = "stimpen" volume = 52 amount_per_transfer_from_this = 52 - list_reagents = list("salbutamol" = 10, "leporazine" = 15, "neo_jelly" = 15, "epinephrine" = 10, "lavaland_extract" = 2) - -/obj/item/reagent_containers/hypospray/medipen/species_mutator - name = "species mutator medipen" - desc = "Embark on a whirlwind tour of racial insensitivity by \ - literally appropriating other races." - volume = 1 - amount_per_transfer_from_this = 1 - list_reagents = list("unstablemutationtoxin" = 1) + list_reagents = list(/datum/reagent/medicine/salbutamol = 10, /datum/reagent/medicine/leporazine = 15, /datum/reagent/medicine/neo_jelly = 15, /datum/reagent/medicine/epinephrine = 10, /datum/reagent/medicine/lavaland_extract = 2) /obj/item/reagent_containers/hypospray/medipen/firelocker name = "fire treatment medipen" desc = "A medipen that has been fulled with burn healing chemicals for personnel without advanced medical knowledge." volume = 15 amount_per_transfer_from_this = 15 - list_reagents = list("oxandrolone" = 5, "kelotane" = 10) + list_reagents = list(/datum/reagent/medicine/oxandrolone = 5, /datum/reagent/medicine/kelotane = 10) /obj/item/reagent_containers/hypospray/combat/heresypurge name = "holy water autoinjector" desc = "A modified air-needle autoinjector for use in combat situations. Prefilled with 5 doses of a holy water mixture." volume = 250 - list_reagents = list("holywater" = 150, "tiresolution" = 50, "dizzysolution" = 50) + list_reagents = list(/datum/reagent/water/holywater = 150, /datum/reagent/peaceborg_tire = 50, /datum/reagent/peaceborg_confuse = 50) amount_per_transfer_from_this = 50 #define HYPO_SPRAY 0 @@ -240,19 +232,19 @@ var/penetrates = FALSE /obj/item/hypospray/mkii/brute - start_vial = /obj/item/reagent_containers/glass/bottle/vial/small/preloaded/bicaridine + start_vial = /obj/item/reagent_containers/glass/bottle/vial/small/bicaridine /obj/item/hypospray/mkii/toxin - start_vial = /obj/item/reagent_containers/glass/bottle/vial/small/preloaded/antitoxin + start_vial = /obj/item/reagent_containers/glass/bottle/vial/small/antitoxin /obj/item/hypospray/mkii/oxygen - start_vial = /obj/item/reagent_containers/glass/bottle/vial/small/preloaded/dexalin + start_vial = /obj/item/reagent_containers/glass/bottle/vial/small/dexalin /obj/item/hypospray/mkii/burn - start_vial = /obj/item/reagent_containers/glass/bottle/vial/small/preloaded/kelotane + start_vial = /obj/item/reagent_containers/glass/bottle/vial/small/kelotane /obj/item/hypospray/mkii/tricord - start_vial = /obj/item/reagent_containers/glass/bottle/vial/small/preloaded/tricord + start_vial = /obj/item/reagent_containers/glass/bottle/vial/small/tricord /obj/item/hypospray/mkii/enlarge spawnwithvial = FALSE @@ -263,7 +255,7 @@ icon_state = "cmo2" desc = "The Deluxe Hypospray can take larger-size vials. It also acts faster and delivers more reagents per spray." resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | ACID_PROOF - start_vial = /obj/item/reagent_containers/glass/bottle/vial/large/preloaded/CMO + start_vial = /obj/item/reagent_containers/glass/bottle/vial/large/CMO inject_wait = DELUXE_WAIT_INJECT spray_wait = DELUXE_WAIT_SPRAY spray_self = DELUXE_SELF_SPRAY @@ -273,7 +265,7 @@ name = "combat hypospray mk.II" desc = "A combat-ready deluxe hypospray that acts almost instantly. It can be tactically reloaded by using a vial on it." icon_state = "combat2" - start_vial = /obj/item/reagent_containers/glass/bottle/vial/large/preloaded/combat + start_vial = /obj/item/reagent_containers/glass/bottle/vial/large/combat inject_wait = COMBAT_WAIT_INJECT spray_wait = COMBAT_WAIT_SPRAY spray_self = COMBAT_SELF_SPRAY diff --git a/code/modules/reagents/reagent_containers/hypovial.dm b/code/modules/reagents/reagent_containers/hypovial.dm index 1f83e895bb..c0db92e0e8 100644 --- a/code/modules/reagents/reagent_containers/hypovial.dm +++ b/code/modules/reagents/reagent_containers/hypovial.dm @@ -5,9 +5,9 @@ desc = "A hypovial compatible with most hyposprays." icon_state = "hypovial" spillable = FALSE - var/comes_with = list() //Easy way of doing this. volume = 10 possible_transfer_amounts = list(1,2,5,10) + APTFT_altclick = FALSE obj_flags = UNIQUE_RENAME unique_reskin = list("hypovial" = "hypovial", "red hypovial" = "hypovial-b", @@ -24,8 +24,6 @@ . = ..() if(!icon_state) icon_state = "hypovial" - for(var/R in comes_with) - reagents.add_reagent(R,comes_with[R]) update_icon() // beaker_weakness_bitflag |= PH_WEAK // fuck you if you're using these like beakers // beaker_weakness_bitflag |= TEMP_WEAK @@ -115,87 +113,87 @@ unique_reskin = null -/obj/item/reagent_containers/glass/bottle/vial/small/preloaded/bicaridine +/obj/item/reagent_containers/glass/bottle/vial/small/bicaridine name = "red hypovial (bicaridine)" icon_state = "hypovial-b" - comes_with = list("bicaridine" = 30) + list_reagents = list(/datum/reagent/medicine/bicaridine = 30) -/obj/item/reagent_containers/glass/bottle/vial/small/preloaded/antitoxin +/obj/item/reagent_containers/glass/bottle/vial/small/antitoxin name = "green hypovial (Anti-Tox)" icon_state = "hypovial-a" - comes_with = list("antitoxin" = 30) + list_reagents = list(/datum/reagent/medicine/antitoxin = 30) -/obj/item/reagent_containers/glass/bottle/vial/small/preloaded/kelotane +/obj/item/reagent_containers/glass/bottle/vial/small/kelotane name = "orange hypovial (kelotane)" icon_state = "hypovial-k" - comes_with = list("kelotane" = 30) + list_reagents = list(/datum/reagent/medicine/kelotane = 30) -/obj/item/reagent_containers/glass/bottle/vial/small/preloaded/dexalin +/obj/item/reagent_containers/glass/bottle/vial/small/dexalin name = "blue hypovial (dexalin)" icon_state = "hypovial-d" - comes_with = list("dexalin" = 30) + list_reagents = list(/datum/reagent/medicine/dexalin = 30) -/obj/item/reagent_containers/glass/bottle/vial/small/preloaded/tricord +/obj/item/reagent_containers/glass/bottle/vial/small/tricord name = "hypovial (tricordrazine)" icon_state = "hypovial" - comes_with = list("tricordrazine" = 30) + list_reagents = list(/datum/reagent/medicine/tricordrazine = 30) -/obj/item/reagent_containers/glass/bottle/vial/small/preloaded/breastreduction +/obj/item/reagent_containers/glass/bottle/vial/small/breastreduction name = "pink hypovial (breast treatment)" icon_state = "hypovial-pink" - comes_with = list("BEsmaller_hypo" = 30) + list_reagents = list(/datum/reagent/fermi/BEsmaller_hypo = 30) -/obj/item/reagent_containers/glass/bottle/vial/small/preloaded/penisreduction +/obj/item/reagent_containers/glass/bottle/vial/small/penisreduction name = "pink hypovial (penis treatment)" icon_state = "hypovial-pink" - comes_with = list("PEsmaller_hypo" = 30) + list_reagents = list(/datum/reagent/fermi/PEsmaller_hypo = 30) -/obj/item/reagent_containers/glass/bottle/vial/large/preloaded/CMO +/obj/item/reagent_containers/glass/bottle/vial/large/CMO name = "deluxe hypovial" icon_state = "hypoviallarge-cmos" - comes_with = list("omnizine" = 20, "leporazine" = 20, "atropine" = 20) + list_reagents = list(/datum/reagent/medicine/omnizine = 20, /datum/reagent/medicine/leporazine = 20, /datum/reagent/medicine/atropine = 20) -/obj/item/reagent_containers/glass/bottle/vial/large/preloaded/bicaridine +/obj/item/reagent_containers/glass/bottle/vial/large/bicaridine name = "large red hypovial (bicaridine)" icon_state = "hypoviallarge-b" - comes_with = list("bicaridine" = 60) + list_reagents = list(/datum/reagent/medicine/bicaridine = 60) -/obj/item/reagent_containers/glass/bottle/vial/large/preloaded/antitoxin +/obj/item/reagent_containers/glass/bottle/vial/large/antitoxin name = "large green hypovial (anti-tox)" icon_state = "hypoviallarge-a" - comes_with = list("antitoxin" = 60) + list_reagents = list(/datum/reagent/medicine/antitoxin = 60) -/obj/item/reagent_containers/glass/bottle/vial/large/preloaded/kelotane +/obj/item/reagent_containers/glass/bottle/vial/large/kelotane name = "large orange hypovial (kelotane)" icon_state = "hypoviallarge-k" - comes_with = list("kelotane" = 60) + list_reagents = list(/datum/reagent/medicine/kelotane = 60) -/obj/item/reagent_containers/glass/bottle/vial/large/preloaded/dexalin +/obj/item/reagent_containers/glass/bottle/vial/large/dexalin name = "large blue hypovial (dexalin)" icon_state = "hypoviallarge-d" - comes_with = list("dexalin" = 60) + list_reagents = list(/datum/reagent/medicine/dexalin = 60) -/obj/item/reagent_containers/glass/bottle/vial/large/preloaded/charcoal +/obj/item/reagent_containers/glass/bottle/vial/large/charcoal name = "large black hypovial (charcoal)" icon_state = "hypoviallarge-t" - comes_with = list("charcoal" = 60) + list_reagents = list(/datum/reagent/medicine/charcoal = 60) -/obj/item/reagent_containers/glass/bottle/vial/large/preloaded/tricord +/obj/item/reagent_containers/glass/bottle/vial/large/tricord name = "large hypovial (tricord)" icon_state = "hypoviallarge" - comes_with = list("tricordrazine" = 60) + list_reagents = list(/datum/reagent/medicine/tricordrazine = 60) -/obj/item/reagent_containers/glass/bottle/vial/large/preloaded/salglu +/obj/item/reagent_containers/glass/bottle/vial/large/salglu name = "large green hypovial (salglu)" icon_state = "hypoviallarge-a" - comes_with = list("salglu_solution" = 60) + list_reagents = list(/datum/reagent/medicine/salglu_solution = 60) -/obj/item/reagent_containers/glass/bottle/vial/large/preloaded/synthflesh +/obj/item/reagent_containers/glass/bottle/vial/large/synthflesh name = "large orange hypovial (synthflesh)" icon_state = "hypoviallarge-k" - comes_with = list("synthflesh" = 60) + list_reagents = list(/datum/reagent/medicine/synthflesh = 60) -/obj/item/reagent_containers/glass/bottle/vial/large/preloaded/combat +/obj/item/reagent_containers/glass/bottle/vial/large/combat name = "combat hypovial" icon_state = "hypoviallarge-t" - comes_with = list("epinephrine" = 3, "omnizine" = 19, "leporazine" = 19, "atropine" = 19) //Epinephrine's main effect here is to kill suff damage, so we don't need much given atropine + list_reagents = list(/datum/reagent/medicine/epinephrine = 3, /datum/reagent/medicine/omnizine = 19, /datum/reagent/medicine/leporazine = 19, /datum/reagent/medicine/atropine = 19) //Epinephrine's main effect here is to kill suff damage, so we don't need much given atropine diff --git a/code/modules/reagents/reagent_containers/medspray.dm b/code/modules/reagents/reagent_containers/medspray.dm index b445c38ad9..02a3f987bc 100644 --- a/code/modules/reagents/reagent_containers/medspray.dm +++ b/code/modules/reagents/reagent_containers/medspray.dm @@ -82,26 +82,26 @@ name = "medical spray (styptic powder)" desc = "A medical spray bottle, designed for precision application, with an unscrewable cap. This one contains styptic powder, for treating cuts and bruises." icon_state = "brutespray" - list_reagents = list("styptic_powder" = 60) + list_reagents = list(/datum/reagent/medicine/styptic_powder = 60) /obj/item/reagent_containers/medspray/silver_sulf name = "medical spray (silver sulfadiazine)" desc = "A medical spray bottle, designed for precision application, with an unscrewable cap. This one contains silver sulfadiazine, useful for treating burns." icon_state = "burnspray" - list_reagents = list("silver_sulfadiazine" = 60) + list_reagents = list(/datum/reagent/medicine/silver_sulfadiazine = 60) /obj/item/reagent_containers/medspray/synthflesh name = "medical spray (synthflesh)" desc = "A medical spray bottle, designed for precision application, with an unscrewable cap. This one contains synthflesh, an apex brute and burn healing agent." icon_state = "synthspray" - list_reagents = list("synthflesh" = 60) + list_reagents = list(/datum/reagent/medicine/synthflesh = 60) /obj/item/reagent_containers/medspray/sterilizine name = "sterilizer spray" desc = "Spray bottle loaded with non-toxic sterilizer. Useful in preparation for surgery." - list_reagents = list("sterilizine" = 60) + list_reagents = list(/datum/reagent/space_cleaner/sterilizine = 60) /obj/item/reagent_containers/medspray/synthtissue name = "Synthtissue young culture spray" desc = "Spray bottle loaded with synthtissue. Useful in synthtissue grafting surgeries." - list_reagents = list("synthtissue" = 60) + list_reagents = list(/datum/reagent/synthtissue = 60) diff --git a/code/modules/reagents/reagent_containers/patch.dm b/code/modules/reagents/reagent_containers/patch.dm index 02852f2218..1e23f46d9f 100644 --- a/code/modules/reagents/reagent_containers/patch.dm +++ b/code/modules/reagents/reagent_containers/patch.dm @@ -32,13 +32,13 @@ /obj/item/reagent_containers/pill/patch/styptic name = "brute patch" desc = "Helps with brute injuries." - list_reagents = list("styptic_powder" = 20) + list_reagents = list(/datum/reagent/medicine/styptic_powder = 20) icon_state = "bandaid_brute" /obj/item/reagent_containers/pill/patch/silver_sulf name = "burn patch" desc = "Helps with burn injuries." - list_reagents = list("silver_sulfadiazine" = 20) + list_reagents = list(/datum/reagent/medicine/silver_sulfadiazine = 20) icon_state = "bandaid_burn" /obj/item/reagent_containers/pill/patch/get_belt_overlay() diff --git a/code/modules/reagents/reagent_containers/pill.dm b/code/modules/reagents/reagent_containers/pill.dm index d4880aa085..e6fa18ba9c 100644 --- a/code/modules/reagents/reagent_containers/pill.dm +++ b/code/modules/reagents/reagent_containers/pill.dm @@ -82,97 +82,97 @@ name = "toxins pill" desc = "Highly toxic." icon_state = "pill5" - list_reagents = list("toxin" = 50) + list_reagents = list(/datum/reagent/toxin = 50) roundstart = 1 /obj/item/reagent_containers/pill/cyanide name = "cyanide pill" desc = "Don't swallow this." icon_state = "pill5" - list_reagents = list("cyanide" = 50) + list_reagents = list(/datum/reagent/toxin/cyanide = 50) roundstart = 1 /obj/item/reagent_containers/pill/adminordrazine name = "adminordrazine pill" desc = "It's magic. We don't have to explain it." icon_state = "pill16" - list_reagents = list("adminordrazine" = 50) + list_reagents = list(/datum/reagent/medicine/adminordrazine = 50) roundstart = 1 /obj/item/reagent_containers/pill/morphine name = "morphine pill" desc = "Commonly used to treat insomnia." icon_state = "pill8" - list_reagents = list("morphine" = 30) + list_reagents = list(/datum/reagent/medicine/morphine = 30) roundstart = 1 /obj/item/reagent_containers/pill/stimulant name = "stimulant pill" desc = "Often taken by overworked employees, athletes, and the inebriated. You'll snap to attention immediately!" icon_state = "pill19" - list_reagents = list("ephedrine" = 10, "antihol" = 10, "coffee" = 30) + list_reagents = list(/datum/reagent/medicine/ephedrine = 10, /datum/reagent/medicine/antihol = 10, /datum/reagent/consumable/coffee = 30) roundstart = 1 /obj/item/reagent_containers/pill/salbutamol name = "salbutamol pill" desc = "Used to treat oxygen deprivation." icon_state = "pill16" - list_reagents = list("salbutamol" = 30) + list_reagents = list(/datum/reagent/medicine/salbutamol = 30) roundstart = 1 /obj/item/reagent_containers/pill/charcoal name = "charcoal pill" desc = "Neutralizes many common toxins." icon_state = "pill17" - list_reagents = list("charcoal" = 10) + list_reagents = list(/datum/reagent/medicine/charcoal = 10) roundstart = 1 /obj/item/reagent_containers/pill/epinephrine name = "epinephrine pill" desc = "Used to stabilize patients." icon_state = "pill5" - list_reagents = list("epinephrine" = 15) + list_reagents = list(/datum/reagent/medicine/epinephrine = 15) roundstart = 1 /obj/item/reagent_containers/pill/mannitol name = "mannitol pill" desc = "Used to treat brain damage." icon_state = "pill17" - list_reagents = list("mannitol" = 50) + list_reagents = list(/datum/reagent/medicine/mannitol = 50) roundstart = 1 /obj/item/reagent_containers/pill/mutadone name = "mutadone pill" desc = "Used to treat genetic damage." icon_state = "pill20" - list_reagents = list("mutadone" = 50) + list_reagents = list(/datum/reagent/medicine/mutadone = 50) roundstart = 1 /obj/item/reagent_containers/pill/salicyclic name = "salicylic acid pill" desc = "Used to dull pain." icon_state = "pill9" - list_reagents = list("sal_acid" = 24) + list_reagents = list(/datum/reagent/medicine/sal_acid = 24) roundstart = 1 /obj/item/reagent_containers/pill/oxandrolone name = "oxandrolone pill" desc = "Used to stimulate burn healing." icon_state = "pill11" - list_reagents = list("oxandrolone" = 24) + list_reagents = list(/datum/reagent/medicine/oxandrolone = 24) roundstart = 1 /obj/item/reagent_containers/pill/insulin name = "insulin pill" desc = "Handles hyperglycaemic coma." icon_state = "pill18" - list_reagents = list("insulin" = 50) + list_reagents = list(/datum/reagent/medicine/insulin = 50) roundstart = 1 /obj/item/reagent_containers/pill/psicodine name = "psicodine pill" desc = "Used to treat mental instability and traumas." - list_reagents = list("psicodine" = 10) + list_reagents = list(/datum/reagent/medicine/psicodine = 10) icon_state = "pill22" roundstart = 1 @@ -180,21 +180,21 @@ name = "potassium iodide pill" desc = "Used to treat radition used to counter radiation poisoning." icon_state = "pill18" - list_reagents = list("potass_iodide" = 50) + list_reagents = list(/datum/reagent/medicine/potass_iodide = 50) roundstart = 1 /obj/item/reagent_containers/pill/antirad_plus name = "prussian blue pill" desc = "Used to treat heavy radition poisoning." icon_state = "prussian_blue" - list_reagents = list("prussian_blue" = 25, "water" = 10) + list_reagents = list(/datum/reagent/medicine/prussian_blue = 25, /datum/reagent/water = 10) roundstart = 1 /obj/item/reagent_containers/pill/mutarad name = "radiation treatment deluxe pill" desc = "Used to treat heavy radition poisoning and genetic defects." icon_state = "anit_rad_fixgene" - list_reagents = list("prussian_blue" = 15, "potass_iodide" = 15, "mutadone" = 15, "water" = 5) + list_reagents = list(/datum/reagent/medicine/prussian_blue = 15, /datum/reagent/medicine/potass_iodide = 15, /datum/reagent/medicine/mutadone = 15, /datum/reagent/water = 5) roundstart = 1 ///////////////////////////////////////// this pill is used only in a legion mob drop @@ -203,32 +203,32 @@ desc = "I wouldn't eat this if I were you." icon_state = "pill9" color = "#454545" - list_reagents = list("shadowmutationtoxin" = 1) + list_reagents = list(/datum/reagent/mutationtoxin/shadow = 1) //////////////////////////////////////// drugs /obj/item/reagent_containers/pill/zoom name = "zoom pill" - list_reagents = list("synaptizine" = 10, "nicotine" = 10, "methamphetamine" = 1) + list_reagents = list(/datum/reagent/medicine/synaptizine = 10, /datum/reagent/drug/nicotine = 10, /datum/reagent/drug/methamphetamine = 1) /obj/item/reagent_containers/pill/happy name = "happy pill" - list_reagents = list("sugar" = 10, "space_drugs" = 10) + list_reagents = list(/datum/reagent/consumable/sugar = 10, /datum/reagent/drug/space_drugs = 10) /obj/item/reagent_containers/pill/lsd name = "hallucinogen pill" - list_reagents = list("mushroomhallucinogen" = 15, "mindbreaker" = 15) + list_reagents = list(/datum/reagent/drug/mushroomhallucinogen = 15, /datum/reagent/toxin/mindbreaker = 15) /obj/item/reagent_containers/pill/aranesp name = "speedy pill" - list_reagents = list("aranesp" = 10) + list_reagents = list(/datum/reagent/drug/aranesp = 10) /obj/item/reagent_containers/pill/happiness name = "happiness pill" desc = "It has a creepy smiling face on it." icon_state = "pill_happy" - list_reagents = list("happiness" = 10) + list_reagents = list(/datum/reagent/drug/happiness = 10) /obj/item/reagent_containers/pill/floorpill name = "floorpill" @@ -250,8 +250,8 @@ /obj/item/reagent_containers/pill/penis_enlargement name = "penis enlargement pill" - list_reagents = list("penis_enlarger" = 10) + list_reagents = list(/datum/reagent/fermi/penis_enlarger = 10) /obj/item/reagent_containers/pill/breast_enlargement name = "breast enlargement pill" - list_reagents = list("breast_enlarger" = 10) + list_reagents = list(/datum/reagent/fermi/breast_enlarger = 10) diff --git a/code/modules/reagents/reagent_containers/rags.dm b/code/modules/reagents/reagent_containers/rags.dm index d09b18f244..812b3144e9 100644 --- a/code/modules/reagents/reagent_containers/rags.dm +++ b/code/modules/reagents/reagent_containers/rags.dm @@ -8,6 +8,7 @@ reagent_flags = REFILLABLE | DRAINABLE amount_per_transfer_from_this = 5 possible_transfer_amounts = list() + APTFT_altclick = FALSE volume = 5 spillable = FALSE var/wipe_sound @@ -73,9 +74,9 @@ if(M.fire_stacks) var/minus_plus = M.fire_stacks < 0 ? 1 : -1 var/amount = min(abs(M.fire_stacks), soak_efficiency) - var/r_id = "fuel" + var/r_id = /datum/reagent/fuel if(M.fire_stacks < 0) - r_id = "water" + r_id = /datum/reagent/water reagents.add_reagent(r_id, amount * 0.3) M.adjust_fire_stacks(minus_plus * amount) M.wash_cream() diff --git a/code/modules/reagents/reagent_containers/sleeper_buffer.dm b/code/modules/reagents/reagent_containers/sleeper_buffer.dm index 044dab2924..d353174c06 100644 --- a/code/modules/reagents/reagent_containers/sleeper_buffer.dm +++ b/code/modules/reagents/reagent_containers/sleeper_buffer.dm @@ -8,4 +8,4 @@ spillable = TRUE resistance_flags = ACID_PROOF amount_per_transfer_from_this = 0 - possible_transfer_amounts = list(0) + possible_transfer_amounts = list() diff --git a/code/modules/reagents/reagent_containers/spray.dm b/code/modules/reagents/reagent_containers/spray.dm index 2be6401cf3..06ad8a1d04 100644 --- a/code/modules/reagents/reagent_containers/spray.dm +++ b/code/modules/reagents/reagent_containers/spray.dm @@ -52,13 +52,13 @@ user.changeNext_move(CLICK_CD_RANGE*2) user.newtonian_move(get_dir(A, user)) var/turf/T = get_turf(src) - if(reagents.has_reagent("sacid")) + if(reagents.has_reagent(/datum/reagent/toxin/acid)) message_admins("[ADMIN_LOOKUPFLW(user)] fired sulphuric acid from \a [src] at [ADMIN_VERBOSEJMP(T)].") log_game("[key_name(user)] fired sulphuric acid from \a [src] at [AREACOORD(T)].") - if(reagents.has_reagent("facid")) + if(reagents.has_reagent(/datum/reagent/toxin/acid/fluacid)) message_admins("[ADMIN_LOOKUPFLW(user)] fired Fluacid from \a [src] at [ADMIN_VERBOSEJMP(T)].") log_game("[key_name(user)] fired Fluacid from \a [src] at [AREACOORD(T)].") - if(reagents.has_reagent("lube")) + if(reagents.has_reagent(/datum/reagent/lube)) message_admins("[ADMIN_LOOKUPFLW(user)] fired Space lube from \a [src] at [ADMIN_VERBOSEJMP(T)].") log_game("[key_name(user)] fired Space lube from \a [src] at [AREACOORD(T)].") return @@ -149,7 +149,7 @@ name = "space cleaner" desc = "BLAM!-brand non-foaming space cleaner!" volume = 100 - list_reagents = list("cleaner" = 100) + list_reagents = list(/datum/reagent/space_cleaner = 100) amount_per_transfer_from_this = 2 stream_amount = 5 @@ -172,7 +172,7 @@ name = "drying agent spray" desc = "A spray bottle for drying agent." volume = 100 - list_reagents = list("drying_agent" = 100) + list_reagents = list(/datum/reagent/drying_agent = 100) amount_per_transfer_from_this = 2 stream_amount = 5 @@ -181,7 +181,7 @@ name = "spray tan" volume = 50 desc = "Gyaro brand spray tan. Do not spray near eyes or other orifices." - list_reagents = list("spraytan" = 50) + list_reagents = list(/datum/reagent/spraytan = 50) //pepperspray @@ -197,7 +197,7 @@ stream_range = 4 spray_delay = 1 amount_per_transfer_from_this = 5 - list_reagents = list("condensedcapsaicin" = 40) + list_reagents = list(/datum/reagent/consumable/condensedcapsaicin = 40) /obj/item/reagent_containers/spray/pepper/empty // for techfab printing list_reagents = null @@ -221,7 +221,7 @@ item_state = "sunflower" amount_per_transfer_from_this = 1 volume = 10 - list_reagents = list("water" = 10) + list_reagents = list(/datum/reagent/water = 10) /obj/item/reagent_containers/spray/waterflower/attack_self(mob/user) //Don't allow changing how much the flower sprays return @@ -233,14 +233,14 @@ icon = 'icons/obj/chemical.dmi' icon_state = "clownflower" volume = 30 - list_reagents = list("superlube" = 30) + list_reagents = list(/datum/reagent/lube/superlube = 30) /obj/item/reagent_containers/spray/waterflower/cyborg reagent_flags = NONE volume = 100 - list_reagents = list("water" = 100) + list_reagents = list(/datum/reagent/water = 100) var/generate_amount = 5 - var/generate_type = "water" + var/generate_type = /datum/reagent/water var/last_generate = 0 var/generate_delay = 10 //deciseconds can_fill_from_container = FALSE @@ -248,9 +248,9 @@ /obj/item/reagent_containers/spray/waterflower/cyborg/hacked name = "nova flower" desc = "This doesn't look safe at all..." - list_reagents = list("clf3" = 3) + list_reagents = list(/datum/reagent/clf3 = 3) volume = 3 - generate_type = "clf3" + generate_type = /datum/reagent/clf3 generate_amount = 1 generate_delay = 40 //deciseconds @@ -312,7 +312,7 @@ ..(the_targets[i]) /obj/item/reagent_containers/spray/chemsprayer/bioterror - list_reagents = list("sodium_thiopental" = 100, "coniine" = 100, "venom" = 100, "condensedcapsaicin" = 100, "initropidril" = 100, "polonium" = 100) + list_reagents = list(/datum/reagent/toxin/sodium_thiopental = 100, /datum/reagent/toxin/coniine = 100, /datum/reagent/toxin/venom = 100, /datum/reagent/consumable/condensedcapsaicin = 100, /datum/reagent/toxin/initropidril = 100, /datum/reagent/toxin/polonium = 100) // Plant-B-Gone /obj/item/reagent_containers/spray/plantbgone // -- Skie @@ -324,4 +324,4 @@ lefthand_file = 'icons/mob/inhands/equipment/hydroponics_lefthand.dmi' righthand_file = 'icons/mob/inhands/equipment/hydroponics_righthand.dmi' volume = 100 - list_reagents = list("plantbgone" = 100) + list_reagents = list(/datum/reagent/toxin/plantbgone = 100) diff --git a/code/modules/reagents/reagent_containers/syringes.dm b/code/modules/reagents/reagent_containers/syringes.dm index 6bdae6225a..7fafbc319c 100644 --- a/code/modules/reagents/reagent_containers/syringes.dm +++ b/code/modules/reagents/reagent_containers/syringes.dm @@ -179,39 +179,39 @@ /obj/item/reagent_containers/syringe/epinephrine name = "syringe (epinephrine)" desc = "Contains epinephrine - used to stabilize patients." - list_reagents = list("epinephrine" = 15) + list_reagents = list(/datum/reagent/medicine/epinephrine = 15) /obj/item/reagent_containers/syringe/charcoal name = "syringe (charcoal)" desc = "Contains charcoal." - list_reagents = list("charcoal" = 15) + list_reagents = list(/datum/reagent/medicine/charcoal = 15) /obj/item/reagent_containers/syringe/antiviral name = "syringe (spaceacillin)" desc = "Contains antiviral agents." - list_reagents = list("spaceacillin" = 15) + list_reagents = list(/datum/reagent/medicine/spaceacillin = 15) /obj/item/reagent_containers/syringe/bioterror name = "bioterror syringe" desc = "Contains several paralyzing reagents." - list_reagents = list("neurotoxin" = 5, "mutetoxin" = 5, "sodium_thiopental" = 5) + list_reagents = list(/datum/reagent/consumable/ethanol/neurotoxin = 5, /datum/reagent/toxin/mutetoxin = 5, /datum/reagent/toxin/sodium_thiopental = 5) /obj/item/reagent_containers/syringe/stimulants name = "Stimpack" desc = "Contains stimulants." amount_per_transfer_from_this = 50 volume = 50 - list_reagents = list("stimulants" = 50) + list_reagents = list(/datum/reagent/medicine/stimulants = 50) /obj/item/reagent_containers/syringe/calomel name = "syringe (calomel)" desc = "Contains calomel." - list_reagents = list("calomel" = 15) + list_reagents = list(/datum/reagent/medicine/calomel = 15) /obj/item/reagent_containers/syringe/plasma name = "syringe (plasma)" desc = "Contains plasma." - list_reagents = list("plasma" = 15) + list_reagents = list(/datum/reagent/toxin/plasma = 15) /obj/item/reagent_containers/syringe/lethal name = "lethal injection syringe" @@ -220,24 +220,24 @@ volume = 50 /obj/item/reagent_containers/syringe/lethal/choral - list_reagents = list("chloralhydrate" = 50) + list_reagents = list(/datum/reagent/toxin/chloralhydrate = 50) /obj/item/reagent_containers/syringe/lethal/execution - list_reagents = list("amatoxin" = 15, "formaldehyde" = 15, "cyanide" = 10, "facid" = 10) //Citadel edit, changing out plasma from lethals + list_reagents = list(/datum/reagent/toxin/amatoxin = 15, /datum/reagent/toxin/formaldehyde = 15, /datum/reagent/toxin/cyanide = 10, /datum/reagent/toxin/acid/fluacid = 10) //Citadel edit, changing out plasma from lethals /obj/item/reagent_containers/syringe/mulligan name = "Mulligan" desc = "A syringe used to completely change the users identity." amount_per_transfer_from_this = 1 volume = 1 - list_reagents = list("mulligan" = 1) + list_reagents = list(/datum/reagent/mulligan = 1) /obj/item/reagent_containers/syringe/gluttony name = "Gluttony's Blessing" desc = "A syringe recovered from a dread place. It probably isn't wise to use." amount_per_transfer_from_this = 1 volume = 1 - list_reagents = list("gluttonytoxin" = 1) + list_reagents = list(/datum/reagent/gluttonytoxin = 1) /obj/item/reagent_containers/syringe/bluespace name = "bluespace syringe" diff --git a/code/modules/reagents/reagent_dispenser.dm b/code/modules/reagents/reagent_dispenser.dm index 0964b67490..1a8c960b2f 100644 --- a/code/modules/reagents/reagent_dispenser.dm +++ b/code/modules/reagents/reagent_dispenser.dm @@ -8,7 +8,7 @@ pressure_resistance = 2*ONE_ATMOSPHERE max_integrity = 300 var/tank_volume = 1000 //In units, how much the dispenser can hold - var/reagent_id = "water" //The ID of the reagent that the dispenser uses + var/reagent_id = /datum/reagent/water //The ID of the reagent that the dispenser uses /obj/structure/reagent_dispensers/take_damage(damage_amount, damage_type = BRUTE, damage_flag = 0, sound_effect = 1, attack_dir) . = ..() @@ -58,7 +58,7 @@ name = "firefighting foam tank" desc = "A tank full of firefighting foam." icon_state = "foam" - reagent_id = "firefighting_foam" + reagent_id = /datum/reagent/firefighting_foam tank_volume = 500 /obj/structure/reagent_dispensers/water_cooler @@ -99,7 +99,7 @@ name = "fuel tank" desc = "A tank full of industrial welding fuel. Do not consume." icon_state = "fuel" - reagent_id = "welding_fuel" + reagent_id = /datum/reagent/fuel /obj/structure/reagent_dispensers/fueltank/high //Unused - Good for ghost roles name = "high-capacity fuel tank" @@ -136,12 +136,12 @@ /obj/structure/reagent_dispensers/fueltank/attackby(obj/item/I, mob/living/user, params) if(istype(I, /obj/item/weldingtool)) - if(!reagents.has_reagent("welding_fuel")) + if(!reagents.has_reagent(/datum/reagent/fuel)) to_chat(user, "[src] is out of fuel!") return var/obj/item/weldingtool/W = I if(!W.welding) - if(W.reagents.has_reagent("welding_fuel", W.max_fuel)) + if(W.reagents.has_reagent(/datum/reagent/fuel, W.max_fuel)) to_chat(user, "Your [W.name] is already full!") return reagents.trans_to(W, W.max_fuel) @@ -171,7 +171,7 @@ icon_state = "pepper" anchored = TRUE density = FALSE - reagent_id = "condensedcapsaicin" + reagent_id = /datum/reagent/consumable/condensedcapsaicin /obj/structure/reagent_dispensers/peppertank/Initialize() . = ..() @@ -184,14 +184,14 @@ icon_state = "virus_food" anchored = TRUE density = FALSE - reagent_id = "virusfood" + reagent_id = /datum/reagent/consumable/virus_food /obj/structure/reagent_dispensers/cooking_oil name = "vat of cooking oil" desc = "A huge metal vat with a tap on the front. Filled with cooking oil for use in frying food." icon_state = "vat" anchored = TRUE - reagent_id = "cooking_oil" + reagent_id = /datum/reagent/consumable/cooking_oil //////// //Kegs// @@ -201,7 +201,7 @@ name = "beer keg" desc = "Beer is liquid bread, it's good for you..." icon_state = "beer" - reagent_id = "beer" + reagent_id = /datum/reagent/consumable/ethanol/beer /obj/structure/reagent_dispensers/beerkeg/blob_act(obj/structure/blob/B) explosion(src.loc,0,3,5,7,10) @@ -213,42 +213,41 @@ desc = "A keg." icon = 'modular_citadel/icons/obj/objects.dmi' icon_state = "keg" - reagent_id = "water" /obj/structure/reagent_dispensers/keg/mead name = "keg of mead" desc = "A keg of mead." icon_state = "orangekeg" - reagent_id = "mead" + reagent_id = /datum/reagent/consumable/ethanol/mead /obj/structure/reagent_dispensers/keg/aphro name = "keg of aphrodisiac" desc = "A keg of aphrodisiac." icon_state = "pinkkeg" - reagent_id = "aphro" + reagent_id = /datum/reagent/drug/aphrodisiac tank_volume = 150 /obj/structure/reagent_dispensers/keg/aphro/strong name = "keg of strong aphrodisiac" desc = "A keg of strong and addictive aphrodisiac." - reagent_id = "aphro+" + reagent_id = /datum/reagent/drug/aphrodisiacplus tank_volume = 120 /obj/structure/reagent_dispensers/keg/milk name = "keg of milk" desc = "It's not quite what you were hoping for." icon_state = "whitekeg" - reagent_id = "milk" + reagent_id = /datum/reagent/consumable/milk /obj/structure/reagent_dispensers/keg/semen name = "keg of semen" desc = "Dear lord, where did this even come from?" icon_state = "whitekeg" - reagent_id = "semen" + reagent_id = /datum/reagent/consumable/semen /obj/structure/reagent_dispensers/keg/gargle name = "keg of pan galactic gargleblaster" desc = "A keg of... wow that's a long name." icon_state = "bluekeg" - reagent_id = "gargleblaster" + reagent_id = /datum/reagent/consumable/ethanol/gargle_blaster tank_volume = 100 \ No newline at end of file diff --git a/code/modules/research/designs.dm b/code/modules/research/designs.dm index cdb9ea4120..516ae5bddd 100644 --- a/code/modules/research/designs.dm +++ b/code/modules/research/designs.dm @@ -37,9 +37,9 @@ other types of metals and chemistry for reagents). var/list/materials = list() //List of materials. Format: "id" = amount. var/construction_time //Amount of time required for building the object var/build_path = null //The file path of the object that gets created - var/list/make_reagents = list() //Reagents produced. Format: "id" = amount. Currently only supported by the biogenerator. + var/list/make_reagents = list() //Reagents produced. Format: type = amount. Currently only supported by the biogenerator. var/list/category = null //Primarily used for Mech Fabricators, but can be used for anything - var/list/reagents_list = list() //List of reagents. Format: "id" = amount. + var/list/reagents_list = list() //List of reagents. Format: type = amount. var/maxstack = 1 var/lathe_time_factor = 1 //How many times faster than normal is this to build on the protolathe var/dangerous_construction = FALSE //notify and log for admin investigations if this is printed. diff --git a/code/modules/research/designs/autobotter_designs.dm b/code/modules/research/designs/autobotter_designs.dm index 7b56beaf77..d2a38a29f9 100644 --- a/code/modules/research/designs/autobotter_designs.dm +++ b/code/modules/research/designs/autobotter_designs.dm @@ -151,97 +151,97 @@ name = "Export Design (Wine)" desc = "Allows for the blowing, and bottling of Wine bottles." id = "wine_export" - reagents_list = list("wine" = 100) + reagents_list = list(/datum/reagent/consumable/ethanol/wine = 100) build_path = /obj/item/export/bottle/wine /datum/design/bottle/export/rum name = "Export Design (Rum)" desc = "Allows for the blowing, and bottling of Rum bottles." id = "rum_export" - reagents_list = list("rum" = 100) + reagents_list = list(/datum/reagent/consumable/ethanol/rum = 100) build_path = /obj/item/export/bottle/rum /datum/design/bottle/export/gin name = "Export Design (Gin)" desc = "Allows for the blowing, and bottling of Gin bottles." id = "gin_export" - reagents_list = list("gin" = 100) + reagents_list = list(/datum/reagent/consumable/ethanol/gin = 100) build_path = /obj/item/export/bottle/gin /datum/design/bottle/export/whiskey name = "Export Design (Whiskey)" desc = "Allows for the blowing, and bottling of Whiskey bottles." id = "whiskey_export" - reagents_list = list("whiskey" = 100) + reagents_list = list(/datum/reagent/consumable/ethanol/whiskey = 100) build_path = /obj/item/export/bottle/whiskey /datum/design/bottle/export/vodka name = "Export Design (Vodka)" desc = "Allows for the blowing, and bottling of 99% Vodka bottles." id = "vodka_export" - reagents_list = list("vodka" = 99, "water" = 1) + reagents_list = list(/datum/reagent/consumable/ethanol/vodka = 99, /datum/reagent/water = 1) build_path = /obj/item/export/bottle/vodka /datum/design/bottle/export/tequila name = "Export Design (Tequila)" desc = "Allows for the blowing, and bottling of Tequila bottles." id = "tequila_export" - reagents_list = list("tequila" = 80, "lemon_juice" = 20) + reagents_list = list(/datum/reagent/consumable/ethanol/tequila = 80, /datum/reagent/consumable/lemonjuice = 20) build_path = /obj/item/export/bottle/tequila /datum/design/bottle/export/patron name = "Export Design (Patron)" desc = "Allows for the blowing, and bottling of Patron bottles." id = "patron_export" - reagents_list = list("patron" = 100) + reagents_list = list(/datum/reagent/consumable/ethanol/patron = 100) build_path = /obj/item/export/bottle/patron /datum/design/bottle/export/kahlua name = "Export Design (Kahlua)" desc = "Allows for the blowing, and bottling of Kahlua bottles." id = "kahlua_export" - reagents_list = list("kahlua" = 100) + reagents_list = list(/datum/reagent/consumable/ethanol/kahlua = 100) build_path = /obj/item/export/bottle/kahlua /datum/design/bottle/export/sake name = "Export Design (Sake)" desc = "Allows for the blowing, and bottling of Sake bottles." id = "sake_export" - reagents_list = list("sake" = 80, "rice" = 10, "sugar" = 10) + reagents_list = list(/datum/reagent/consumable/ethanol/sake = 80, /datum/reagent/consumable/rice = 10, /datum/reagent/consumable/sugar = 10) build_path = /obj/item/export/bottle/sake /datum/design/bottle/export/vermouth name = "Export Design (Vermouth)" desc = "Allows for the blowing, and bottling of Vermouth bottles." id = "vermouth_export" - reagents_list = list("vermouth" = 100) + reagents_list = list(/datum/reagent/consumable/ethanol/vermouth = 100) build_path = /obj/item/export/bottle/vermouth /datum/design/bottle/export/goldschlager name = "Export Design (Goldschlager)" desc = "Allows for the blowing, and bottling of Goldschlager bottles." id = "goldschlager_export" - reagents_list = list("goldschlager" = 100) + reagents_list = list(/datum/reagent/consumable/ethanol/goldschlager = 100) build_path = /obj/item/export/bottle/goldschlager /datum/design/bottle/export/hcider name = "Export Design (Cider)" desc = "Allows for the blowing, and bottling of Cider bottles." id = "hcider_export" - reagents_list = list("hcider" = 30, "water" = 20) + reagents_list = list(/datum/reagent/consumable/ethanol/hcider = 30, /datum/reagent/water = 20) build_path = /obj/item/export/bottle/hcider /datum/design/bottle/export/cognac name = "Export Design (Cognac)" desc = "Allows for the blowing, and bottling of Cognac bottles." id = "cognac_export" - reagents_list = list("cognac" = 100) + reagents_list = list(/datum/reagent/consumable/ethanol/cognac = 100) build_path = /obj/item/export/bottle/cognac /datum/design/bottle/export/absinthe name = "Export Design (Absinthe)" desc = "Allows for the blowing, and bottling of Absinthe bottles." - reagents_list = list("absinthe" = 100) + reagents_list = list(/datum/reagent/consumable/ethanol/absinthe = 100) id = "absinthe_export" build_path = /obj/item/export/bottle/absinthe @@ -249,49 +249,49 @@ name = "Export Design (Grappa)" desc = "Allows for the blowing, and bottling of Grappa bottles." id = "grappa_export" - reagents_list = list("grappa" = 100) + reagents_list = list(/datum/reagent/consumable/ethanol/grappa = 100) build_path = /obj/item/export/bottle/grappa /datum/design/bottle/export/fernet name = "Export Design (Fernet)" desc = "Allows for the blowing, and bottling of Fernet bottles." id = "fernet_export" - reagents_list = list("fernet" = 100) + reagents_list = list(/datum/reagent/consumable/ethanol/fernet = 100) build_path = /obj/item/export/bottle/fernet /datum/design/bottle/export/applejack name = "Export Design (Applejack)" desc = "Allows for the blowing, and bottling of Applejack bottles." id = "applejack_export" - reagents_list = list("applejack" = 50, "gin" = 10) + reagents_list = list(/datum/reagent/consumable/ethanol/applejack = 50, /datum/reagent/consumable/ethanol/gin = 10) build_path = /obj/item/export/bottle/applejack /datum/design/bottle/export/champagne name = "Export Design (Champagne)" desc = "Allows for the blowing, and bottling of Champagne bottles." id = "champagne_export" - reagents_list = list("champagne" = 90, "co2" = 10) + reagents_list = list(/datum/reagent/consumable/ethanol/champagne = 90, /datum/reagent/carbondioxide = 10) build_path = /obj/item/export/bottle/champagne /datum/design/bottle/export/blazaam name = "Export Design (Blazaam)" desc = "Allows for the blowing, and bottling of Blazaam bottles." id = "blazaam_export" - reagents_list = list("blazaam" = 80, "holywater" = 20) + reagents_list = list(/datum/reagent/consumable/ethanol/blazaam = 80, /datum/reagent/water/holywater = 20) build_path = /obj/item/export/bottle/blazaam /datum/design/bottle/export/trappist name = "Export Design (Trappist)" desc = "Allows for the blowing, and bottling of Trappist bottles." id = "trappist_export" - reagents_list = list("trappist" = 100) + reagents_list = list(/datum/reagent/consumable/ethanol/trappist = 100) build_path = /obj/item/export/bottle/trappist /datum/design/bottle/export/grenadine name = "Export Design (Grenadine)" desc = "Allows for the blowing, and bottling of Grenadine bottles." id = "grenadine_export" - reagents_list = list("grenadine" = 100) + reagents_list = list(/datum/reagent/consumable/grenadine = 100) build_path = /obj/item/export/bottle/grenadine /datum/design/bottle/export/minikeg @@ -299,7 +299,7 @@ desc = "Allows for the fabication, and bottling of Minikeg of craft beer." id = "minikeg" category = list("Beers") - reagents_list = list("light_beer" = 100) + reagents_list = list(/datum/reagent/consumable/ethanol/beer/light = 100) build_path = /obj/item/export/bottle/minikeg /datum/design/bottle/export/blooddrop @@ -307,7 +307,7 @@ desc = "Allows for the blowing, and bottling of Blooddrop bottles." id = "blooddrop" category = list("Wines") - reagents_list = list("champagne" = 30, "co2" = 30, "wine" = 10, "grape_juice" = 30) + reagents_list = list(/datum/reagent/consumable/ethanol/champagne = 30, /datum/reagent/carbondioxide = 30, /datum/reagent/consumable/ethanol/wine = 10, /datum/reagent/consumable/grapejuice = 30) build_path = /obj/item/export/bottle/blooddrop /datum/design/bottle/export/slim_gold @@ -315,7 +315,7 @@ desc = "Allows for the blowing, and bottling of Slim Gold bottles." id = "slim_gold" category = list("Beers") - reagents_list = list("gold" = 10, "co2" = 10, "rum" = 30, "beer" = 40) + reagents_list = list(/datum/reagent/gold = 10, /datum/reagent/carbondioxide = 10, /datum/reagent/consumable/ethanol/rum = 30, /datum/reagent/consumable/ethanol/beer = 40) build_path = /obj/item/export/bottle/slim_gold /datum/design/bottle/export/white_bloodmoon @@ -323,13 +323,13 @@ desc = "Allows for the blowing, and bottling of White Bloodmoon bottles." id = "white_bloodmoon" category = list("Wines") - reagents_list = list("synthflesh" = 50, "blood" = 50, "gib" = 10) + reagents_list = list(/datum/reagent/medicine/synthflesh = 50, /datum/reagent/blood = 50, /datum/reagent/liquidgibs = 10) build_path = /obj/item/export/bottle/white_bloodmoon /datum/design/bottle/export/greenroad name = "Export Design (Greenroad)" desc = "Allows for the blowing, and bottling of Greenroad bottles." id = "greenroad" - reagents_list = list("vitfro" = 50, "rum" = 50, "ash" = 10) + reagents_list = list(/datum/reagent/consumable/vitfro = 50, /datum/reagent/consumable/ethanol/rum = 50, /datum/reagent/ash = 10) category = list("Beers") build_path = /obj/item/export/bottle/greenroad \ No newline at end of file diff --git a/modular_citadel/code/modules/research/designs/autoylathe_designs.dm b/code/modules/research/designs/autoylathe_designs.dm similarity index 100% rename from modular_citadel/code/modules/research/designs/autoylathe_designs.dm rename to code/modules/research/designs/autoylathe_designs.dm diff --git a/code/modules/research/designs/biogenerator_designs.dm b/code/modules/research/designs/biogenerator_designs.dm index 2be4d106b6..dd55697bee 100644 --- a/code/modules/research/designs/biogenerator_designs.dm +++ b/code/modules/research/designs/biogenerator_designs.dm @@ -7,7 +7,7 @@ id = "milk" build_type = BIOGENERATOR materials = list(MAT_BIOMASS = 20) - make_reagents = list("milk" = 10) + make_reagents = list(/datum/reagent/consumable/milk = 10) category = list("initial","Food") /datum/design/cream @@ -15,7 +15,7 @@ id = "cream" build_type = BIOGENERATOR materials = list(MAT_BIOMASS = 30) - make_reagents = list("cream" = 10) + make_reagents = list(/datum/reagent/consumable/cream = 10) category = list("initial","Food") /datum/design/milk_carton @@ -39,7 +39,7 @@ id = "black_pepper" build_type = BIOGENERATOR materials = list(MAT_BIOMASS = 25) - make_reagents = list("blackpepper" = 10) + make_reagents = list(/datum/reagent/consumable/blackpepper = 10) category = list("initial","Food") /datum/design/pepper_mill diff --git a/code/modules/research/designs/limbgrower_designs.dm b/code/modules/research/designs/limbgrower_designs.dm index dae59408c8..d002c84c5f 100644 --- a/code/modules/research/designs/limbgrower_designs.dm +++ b/code/modules/research/designs/limbgrower_designs.dm @@ -6,7 +6,7 @@ name = "Left Arm" id = "leftarm" build_type = LIMBGROWER - reagents_list = list("synthflesh" = 25) + reagents_list = list(/datum/reagent/medicine/synthflesh = 25) build_path = /obj/item/bodypart/l_arm category = list("initial","human","lizard","fly","insect","plasmaman","mammal","xeno") @@ -14,7 +14,7 @@ name = "Right Arm" id = "rightarm" build_type = LIMBGROWER - reagents_list = list("synthflesh" = 25) + reagents_list = list(/datum/reagent/medicine/synthflesh = 25) build_path = /obj/item/bodypart/r_arm category = list("initial","human","lizard","fly","insect","plasmaman","mammal","xeno") @@ -22,7 +22,7 @@ name = "Left Leg" id = "leftleg" build_type = LIMBGROWER - reagents_list = list("synthflesh" = 25) + reagents_list = list(/datum/reagent/medicine/synthflesh = 25) build_path = /obj/item/bodypart/l_leg category = list("initial","human","lizard","fly","insect","plasmaman","mammal","xeno") @@ -30,7 +30,7 @@ name = "Right Leg" id = "rightleg" build_type = LIMBGROWER - reagents_list = list("synthflesh" = 25) + reagents_list = list(/datum/reagent/medicine/synthflesh = 25) build_path = /obj/item/bodypart/r_leg category = list("initial","human","lizard","fly","insect","plasmaman","mammal","xeno") @@ -38,6 +38,6 @@ name = "Arm Blade" id = "armblade" build_type = LIMBGROWER - reagents_list = list("synthflesh" = 75) + reagents_list = list(/datum/reagent/medicine/synthflesh = 75) build_path = /obj/item/melee/synthetic_arm_blade category = list("other","emagged") \ No newline at end of file diff --git a/code/modules/research/designs/machine_desings/machine_designs_medical.dm b/code/modules/research/designs/machine_desings/machine_designs_medical.dm index 2f95954e01..329fb7bf6e 100644 --- a/code/modules/research/designs/machine_desings/machine_designs_medical.dm +++ b/code/modules/research/designs/machine_desings/machine_designs_medical.dm @@ -24,7 +24,15 @@ id = "sleeper" build_path = /obj/item/circuitboard/machine/sleeper departmental_flags = DEPARTMENTAL_FLAG_MEDICAL | DEPARTMENTAL_FLAG_ENGINEERING - category = list ("Medical Machinery") + category = list("Medical Machinery") + +/datum/design/board/syndiesleeper + name = "Machine Design (Syndicate Sleeper Board)" + desc = "The circuit board for a Syndicate sleeper, with controls inside." + id = "syndiesleeper" + build_path = /obj/item/circuitboard/machine/sleeper/syndie + departmental_flags = DEPARTMENTAL_FLAG_MEDICAL | DEPARTMENTAL_FLAG_ENGINEERING + category = list("Medical Machinery") /datum/design/board/cryotube name = "Machine Design (Cryotube Board)" diff --git a/code/modules/research/designs/misc_designs.dm b/code/modules/research/designs/misc_designs.dm index 6cd343503d..54a7af8f8c 100644 --- a/code/modules/research/designs/misc_designs.dm +++ b/code/modules/research/designs/misc_designs.dm @@ -393,6 +393,16 @@ category = list("Equipment") departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING +/datum/design/holosignfirelock + name = "ATMOS Holofirelock Projector" + desc = "A holographic projector that creates holographic barriers that prevent changes in temperature conditions." + id = "holosignfirelock" + build_type = PROTOLATHE + materials = list(MAT_METAL = 5000, MAT_GLASS = 1000, MAT_GOLD = 1000, MAT_SILVER = 1000) + build_path = /obj/item/holosign_creator/firelock + category = list("Equipment") + departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING + /datum/design/forcefield_projector name = "Forcefield Projector" desc = "A device which can project temporary forcefields to seal off an area." diff --git a/code/modules/research/designs/weapon_designs.dm b/code/modules/research/designs/weapon_designs.dm index fde795d87c..e6f4670f87 100644 --- a/code/modules/research/designs/weapon_designs.dm +++ b/code/modules/research/designs/weapon_designs.dm @@ -237,7 +237,7 @@ id = "decloner" build_type = PROTOLATHE materials = list(MAT_GOLD = 5000,MAT_URANIUM = 10000) - reagents_list = list("mutagen" = 40) + reagents_list = list(/datum/reagent/toxin/mutagen = 40) build_path = /obj/item/gun/energy/decloner category = list("Weapons") departmental_flags = DEPARTMENTAL_FLAG_SECURITY @@ -268,7 +268,7 @@ id = "flora_gun" build_type = PROTOLATHE materials = list(MAT_METAL = 2000, MAT_GLASS = 500) - reagents_list = list("radium" = 20) + reagents_list = list(/datum/reagent/radium = 20) build_path = /obj/item/gun/energy/floragun category = list("Weapons") departmental_flags = DEPARTMENTAL_FLAG_SERVICE | DEPARTMENTAL_FLAG_SCIENCE diff --git a/code/modules/research/experimentor.dm b/code/modules/research/experimentor.dm index 05c4a7cd93..b25ee9bb2d 100644 --- a/code/modules/research/experimentor.dm +++ b/code/modules/research/experimentor.dm @@ -271,7 +271,7 @@ if(!T.density) if(prob(EFFECT_PROB_VERYHIGH) && !(locate(/obj/effect/decal/cleanable/greenglow) in T)) var/obj/effect/decal/cleanable/reagentdecal = new/obj/effect/decal/cleanable/greenglow(T) - reagentdecal.reagents.add_reagent("radium", 7) + reagentdecal.reagents.add_reagent(/datum/reagent/radium, 7) else if(prob(EFFECT_PROB_MEDIUM-badThingCoeff)) var/savedName = "[exp_on]" ejectItem(TRUE) @@ -291,7 +291,9 @@ new /obj/item/stack/sheet/mineral/plasma(get_turf(pick(oview(1,src)))) else if(prob(EFFECT_PROB_VERYLOW-badThingCoeff)) visible_message("[src] destroys [exp_on], leaking dangerous gas!") - chosenchem = pick("carbon","radium","toxin","condensedcapsaicin","mushroomhallucinogen","space_drugs","ethanol","beepskysmash") + chosenchem = pick(/datum/reagent/carbon,/datum/reagent/radium,/datum/reagent/toxin, + /datum/reagent/consumable/condensedcapsaicin,/datum/reagent/drug/mushroomhallucinogen, + /datum/reagent/drug/space_drugs,/datum/reagent/consumable/ethanol,/datum/reagent/consumable/ethanol/beepsky_smash) var/datum/reagents/R = new/datum/reagents(50) R.my_atom = src R.add_reagent(chosenchem , 50) @@ -304,7 +306,7 @@ ejectItem(TRUE) else if(prob(EFFECT_PROB_VERYLOW-badThingCoeff)) visible_message("[src]'s chemical chamber has sprung a leak!") - chosenchem = pick("mutationtoxin","nanomachines","sacid") + chosenchem = pick(/datum/reagent/mutationtoxin,/datum/reagent/nanomachines,/datum/reagent/toxin/acid) var/datum/reagents/R = new/datum/reagents(50) R.my_atom = src R.add_reagent(chosenchem , 50) @@ -331,7 +333,7 @@ visible_message("[src]'s emergency coolant system gives off a small ding!") playsound(src, 'sound/machines/ding.ogg', 50, 1) var/obj/item/reagent_containers/food/drinks/coffee/C = new /obj/item/reagent_containers/food/drinks/coffee(get_turf(pick(oview(1,src)))) - chosenchem = pick("plasma","capsaicin","ethanol") + chosenchem = pick(/datum/reagent/toxin/plasma,/datum/reagent/consumable/capsaicin,/datum/reagent/consumable/ethanol) C.reagents.remove_any(25) C.reagents.add_reagent(chosenchem , 50) C.name = "Cup of Suspicious Liquid" @@ -380,7 +382,7 @@ visible_message("[src]'s emergency coolant system gives off a small ding!") var/obj/item/reagent_containers/food/drinks/coffee/C = new /obj/item/reagent_containers/food/drinks/coffee(get_turf(pick(oview(1,src)))) playsound(src, 'sound/machines/ding.ogg', 50, 1) //Ding! Your death coffee is ready! - chosenchem = pick("uranium","frostoil","ephedrine") + chosenchem = pick(/datum/reagent/uranium,/datum/reagent/consumable/frostoil,/datum/reagent/medicine/ephedrine) C.reagents.remove_any(25) C.reagents.add_reagent(chosenchem , 50) C.name = "Cup of Suspicious Liquid" @@ -390,7 +392,7 @@ visible_message("[src] malfunctions, shattering [exp_on] and releasing a dangerous cloud of coolant!") var/datum/reagents/R = new/datum/reagents(50) R.my_atom = src - R.add_reagent("frostoil" , 50) + R.add_reagent(/datum/reagent/consumable/frostoil, 50) investigate_log("Experimentor has released frostoil gas.", INVESTIGATE_EXPERIMENTOR) var/datum/effect_system/smoke_spread/chem/smoke = new smoke.set_up(R, 0, src, silent = TRUE) diff --git a/code/modules/research/machinery/_production.dm b/code/modules/research/machinery/_production.dm index 78f636d948..9ba45fb1a3 100644 --- a/code/modules/research/machinery/_production.dm +++ b/code/modules/research/machinery/_production.dm @@ -222,7 +222,7 @@ l += "

    Chemical Storage:

    " for(var/datum/reagent/R in reagents.reagent_list) l += "[R.name]: [R.volume]" - l += "Purge" + l += "Purge" l += "
" return l diff --git a/code/modules/research/nanites/nanite_programs/buffing.dm b/code/modules/research/nanites/nanite_programs/buffing.dm index be12d06ede..dde61ec378 100644 --- a/code/modules/research/nanites/nanite_programs/buffing.dm +++ b/code/modules/research/nanites/nanite_programs/buffing.dm @@ -35,7 +35,7 @@ host_mob.adjustStaminaLoss(-10) //stimulants give stamina heal now host_mob.lying = 0 host_mob.update_canmove() - host_mob.reagents.add_reagent("stimulants", 1.5) + host_mob.reagents.add_reagent(/datum/reagent/medicine/stimulants, 1.5) /datum/nanite_program/hardening name = "Dermal Hardening" diff --git a/code/modules/research/nanites/nanite_programs/healing.dm b/code/modules/research/nanites/nanite_programs/healing.dm index e2e1661ab7..ad48b64baa 100644 --- a/code/modules/research/nanites/nanite_programs/healing.dm +++ b/code/modules/research/nanites/nanite_programs/healing.dm @@ -61,10 +61,10 @@ /datum/nanite_program/purging/active_effect() host_mob.adjustToxLoss(-1) for(var/datum/reagent/R in host_mob.reagents.reagent_list) - if(R.id == "nanite_b_gone") + if(R.type == /datum/reagent/fermi/nanite_b_gone) host_mob.adjustToxLoss(4) continue - host_mob.reagents.remove_reagent(R.id,1) + host_mob.reagents.remove_reagent(R.type,1) /datum/nanite_program/brain_heal name = "Neural Regeneration" @@ -164,7 +164,7 @@ /datum/nanite_program/purging_advanced/active_effect() host_mob.adjustToxLoss(-1, forced = TRUE) for(var/datum/reagent/toxin/R in host_mob.reagents.reagent_list) - host_mob.reagents.remove_reagent(R.id,1) + host_mob.reagents.remove_reagent(R.type,1) /datum/nanite_program/regenerative_advanced name = "Bio-Reconstruction" diff --git a/code/modules/research/rdconsole.dm b/code/modules/research/rdconsole.dm index 38a5282aef..6cd54dd941 100644 --- a/code/modules/research/rdconsole.dm +++ b/code/modules/research/rdconsole.dm @@ -394,7 +394,7 @@ Nothing else in the console has ID requirements. l += "

Chemical Storage:

" for(var/datum/reagent/R in linked_lathe.reagents.reagent_list) l += "[R.name]: [R.volume]" - l += "Purge" + l += "Purge" l += "" return l @@ -497,7 +497,7 @@ Nothing else in the console has ID requirements. l += "

Chemical Storage:

" for(var/datum/reagent/R in linked_imprinter.reagents.reagent_list) l += "[R.name]: [R.volume]" - l += "Purge" + l += "Purge" return l /obj/machinery/computer/rdconsole/proc/ui_circuit_materials() //Legacy code! diff --git a/code/modules/research/techweb/all_nodes.dm b/code/modules/research/techweb/all_nodes.dm index 63619fe262..178921dacd 100644 --- a/code/modules/research/techweb/all_nodes.dm +++ b/code/modules/research/techweb/all_nodes.dm @@ -200,7 +200,7 @@ display_name = "Advanced Engineering" description = "Pushing the boundaries of physics, one chainsaw-fist at a time." prereq_ids = list("engineering", "emp_basic") - design_ids = list("engine_goggles", "magboots", "forcefield_projector", "weldingmask", "tray_goggles_prescription", "engine_goggles_prescription", "mesons_prescription", "rcd_upgrade") + design_ids = list("engine_goggles", "magboots", "forcefield_projector", "weldingmask" , "rcd_loaded", "rpd", "tray_goggles_prescription", "engine_goggles_prescription", "mesons_prescription", "rcd_upgrade_frames", "rcd_upgrade_simple_circuits") research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 4000) export_price = 5000 @@ -430,7 +430,7 @@ display_name = "Electromagnetic Theory" description = "Study into usage of frequencies in the electromagnetic spectrum." prereq_ids = list("base") - design_ids = list("holosign", "holosignsec", "holosignengi", "holosignatmos", "inducer", "tray_goggles", "holopad") + design_ids = list("holosign", "holosignsec", "holosignengi", "holosignatmos", "holosignfirelock", "inducer", "tray_goggles", "holopad") research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) export_price = 5000 @@ -1099,7 +1099,7 @@ display_name = "Illegal Technology" description = "Dangerous research used to create dangerous objects." prereq_ids = list("adv_engi", "adv_weaponry", "explosive_weapons") - design_ids = list("decloner", "borg_syndicate_module", "ai_cam_upgrade", "suppressor", "largecrossbow", "donksofttoyvendor", "donksoft_refill") + design_ids = list("decloner", "borg_syndicate_module", "ai_cam_upgrade", "suppressor", "largecrossbow", "donksofttoyvendor", "donksoft_refill", "syndiesleeper") research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 10000) export_price = 5000 hidden = TRUE diff --git a/code/modules/research/xenobiology/crossbreeding/__corecross.dm b/code/modules/research/xenobiology/crossbreeding/__corecross.dm index 1146f01f0b..17a6b77bfe 100644 --- a/code/modules/research/xenobiology/crossbreeding/__corecross.dm +++ b/code/modules/research/xenobiology/crossbreeding/__corecross.dm @@ -114,19 +114,19 @@ To add a crossbreed: name = "blood extract" desc = "A sphere of liquid blood, somehow managing to stay together." color = "#FF0000" - list_reagents = list("blood" = 50) + list_reagents = list(/datum/reagent/blood = 50) /obj/item/slimecrossbeaker/pax //5u synthpax. name = "peace-inducing extract" desc = "A small blob of synthetic pax." color = "#FFCCCC" - list_reagents = list("synthpax" = 5) + list_reagents = list(/datum/reagent/pax/peaceborg = 5) /obj/item/slimecrossbeaker/omnizine //15u omnizine. name = "healing extract" desc = "A gelatinous extract of pure omnizine." color = "#FF00FF" - list_reagents = list("omnizine" = 15) + list_reagents = list(/datum/reagent/medicine/omnizine = 15) /obj/item/slimecrossbeaker/autoinjector //As with the above, but automatically injects whomever it is used on with contents. var/ignore_flags = FALSE @@ -160,7 +160,7 @@ To add a crossbreed: name = "mending solution" desc = "A strange glob of sweet-smelling semifluid, which seems to stick to skin rather easily." color = "#FF00FF" - list_reagents = list("regen_jelly" = 20) + list_reagents = list(/datum/reagent/medicine/regen_jelly = 20) /obj/item/slimecrossbeaker/autoinjector/slimejelly //Primarily for slimepeople, but you do you. self_use_only = TRUE @@ -168,13 +168,13 @@ To add a crossbreed: name = "slime jelly bubble" desc = "A sphere of slime jelly. It seems to stick to your skin, but avoids other surfaces." color = "#00FF00" - list_reagents = list("slimejelly" = 50) + list_reagents = list(/datum/reagent/toxin/slimejelly = 50) /obj/item/slimecrossbeaker/autoinjector/peaceandlove name = "peaceful distillation" desc = "A light pink gooey sphere. Simply touching it makes you a little dizzy." color = "#DDAAAA" - list_reagents = list("synthpax" = 10, "space_drugs" = 15) //Peace, dudes + list_reagents = list(/datum/reagent/pax/peaceborg = 10, /datum/reagent/drug/space_drugs = 15) //Peace, dudes /obj/item/slimecrossbeaker/autoinjector/peaceandlove/Initialize() . = ..() @@ -184,4 +184,4 @@ To add a crossbreed: name = "invigorating gel" desc = "A bubbling purple mixture, designed to heal and boost movement." color = "#FF00FF" - list_reagents = list("regen_jelly" = 30, "methamphetamine" = 9) + list_reagents = list(/datum/reagent/medicine/regen_jelly = 30, /datum/reagent/drug/methamphetamine = 9) diff --git a/code/modules/research/xenobiology/crossbreeding/_misc.dm b/code/modules/research/xenobiology/crossbreeding/_misc.dm index 0099fe143d..4684352ef5 100644 --- a/code/modules/research/xenobiology/crossbreeding/_misc.dm +++ b/code/modules/research/xenobiology/crossbreeding/_misc.dm @@ -50,7 +50,7 @@ filling_color = "#964B00" tastes = list("cardboard" = 3, "sadness" = 3) foodtype = null //Don't ask what went into them. You're better off not knowing. - list_reagents = list("stabilizednutriment" = 10, "nutriment" = 2) //Won't make you fat. Will make you question your sanity. + list_reagents = list(/datum/reagent/consumable/nutriment/stabilized = 10, /datum/reagent/consumable/nutriment = 2) //Won't make you fat. Will make you question your sanity. /obj/item/reagent_containers/food/snacks/rationpack/checkLiked(fraction, mob/M) //Nobody likes rationpacks. Nobody. if(last_check_time + 50 < world.time) diff --git a/code/modules/research/xenobiology/crossbreeding/_status_effects.dm b/code/modules/research/xenobiology/crossbreeding/_status_effects.dm index 292aba6c05..0838e70bfd 100644 --- a/code/modules/research/xenobiology/crossbreeding/_status_effects.dm +++ b/code/modules/research/xenobiology/crossbreeding/_status_effects.dm @@ -910,9 +910,9 @@ datum/status_effect/stabilized/blue/on_remove() /datum/status_effect/stabilized/lightpink/tick() owner.adjustStaminaLoss(-4.5) for(var/mob/living/carbon/human/H in range(1, get_turf(owner))) - if(H != owner && H.stat != DEAD && H.health <= 0 && !H.reagents.has_reagent("epinephrine")) + if(H != owner && H.stat != DEAD && H.health <= 0 && !H.reagents.has_reagent(/datum/reagent/medicine/epinephrine)) to_chat(owner, "[linked_extract] pulses in sync with [H]'s heartbeat, trying to keep [H.p_them()] alive.") - H.reagents.add_reagent("epinephrine",5) + H.reagents.add_reagent(/datum/reagent/medicine/epinephrine,5) return ..() /datum/status_effect/stabilized/lightpink/on_remove() diff --git a/code/modules/research/xenobiology/crossbreeding/burning.dm b/code/modules/research/xenobiology/crossbreeding/burning.dm index 363331e12d..e5b30962ae 100644 --- a/code/modules/research/xenobiology/crossbreeding/burning.dm +++ b/code/modules/research/xenobiology/crossbreeding/burning.dm @@ -14,10 +14,10 @@ Burning extracts: create_reagents(10, INJECTABLE | DRAWABLE) /obj/item/slimecross/burning/attack_self(mob/user) - if(!reagents.has_reagent("plasma",10)) + if(!reagents.has_reagent(/datum/reagent/toxin/plasma,10)) to_chat(user, "This extract needs to be full of plasma to activate!") return - reagents.remove_reagent("plasma",10) + reagents.remove_reagent(/datum/reagent/toxin/plasma,10) to_chat(user, "You squeeze the extract, and it absorbs the plasma!") playsound(src, 'sound/effects/bubbles.ogg', 50, 1) playsound(src, 'sound/magic/fireball.ogg', 50, 1) @@ -44,7 +44,7 @@ Burning extracts: /obj/item/slimecross/burning/orange/do_effect(mob/user) user.visible_message("[src] boils over with a caustic gas!") var/datum/reagents/R = new/datum/reagents(100) - R.add_reagent("condensedcapsaicin", 100) + R.add_reagent(/datum/reagent/consumable/condensedcapsaicin, 100) var/datum/effect_system/smoke_spread/chem/smoke = new smoke.set_up(R, 7, get_turf(user)) @@ -113,8 +113,8 @@ Burning extracts: /obj/item/slimecross/burning/darkblue/do_effect(mob/user) user.visible_message("[src] releases a burst of chilling smoke!") var/datum/reagents/R = new/datum/reagents(100) - R.add_reagent("frostoil", 40) - user.reagents.add_reagent("cryoxadone",10) + R.add_reagent(/datum/reagent/consumable/frostoil, 40) + user.reagents.add_reagent(/datum/reagent/medicine/cryoxadone,10) var/datum/effect_system/smoke_spread/chem/smoke = new smoke.set_up(R, 7, get_turf(user)) smoke.start() @@ -131,7 +131,7 @@ Burning extracts: for(var/i = 0, i < amount, i++) var/path = get_random_food() var/obj/item/O = new path(pick(turfs)) - O.reagents.add_reagent("slimejelly",5) //Oh god it burns + O.reagents.add_reagent(/datum/reagent/toxin/slimejelly, 5) //Oh god it burns if(prob(50)) O.desc += " It smells strange..." user.visible_message("[src] produces a few pieces of food!") @@ -268,7 +268,7 @@ Burning extracts: /obj/item/slimecross/burning/lightpink/do_effect(mob/user) user.visible_message("[src] lets off a hypnotizing pink glow!") for(var/mob/living/carbon/C in view(7, get_turf(user))) - C.reagents.add_reagent("pax",5) + C.reagents.add_reagent(/datum/reagent/pax, 5) ..() /obj/item/slimecross/burning/adamantine diff --git a/code/modules/research/xenobiology/crossbreeding/charged.dm b/code/modules/research/xenobiology/crossbreeding/charged.dm index 7b5fe9e8b8..75a15be9ce 100644 --- a/code/modules/research/xenobiology/crossbreeding/charged.dm +++ b/code/modules/research/xenobiology/crossbreeding/charged.dm @@ -15,10 +15,10 @@ Charged extracts: create_reagents(10, INJECTABLE | DRAWABLE) /obj/item/slimecross/charged/attack_self(mob/user) - if(!reagents.has_reagent("plasma",10)) + if(!reagents.has_reagent(/datum/reagent/toxin/plasma,10)) to_chat(user, "This extract needs to be full of plasma to activate!") return - reagents.remove_reagent("plasma",10) + reagents.remove_reagent(/datum/reagent/toxin/plasma,10) to_chat(user, "You squeeze the extract, and it absorbs the plasma!") playsound(src, 'sound/effects/bubbles.ogg', 50, 1) playsound(src, 'sound/effects/light_flicker.ogg', 50, 1) diff --git a/code/modules/research/xenobiology/crossbreeding/chilling.dm b/code/modules/research/xenobiology/crossbreeding/chilling.dm index ff55a87dfa..1405bbad51 100644 --- a/code/modules/research/xenobiology/crossbreeding/chilling.dm +++ b/code/modules/research/xenobiology/crossbreeding/chilling.dm @@ -14,10 +14,10 @@ Chilling extracts: create_reagents(10, INJECTABLE | DRAWABLE) /obj/item/slimecross/chilling/attack_self(mob/user) - if(!reagents.has_reagent("plasma",10)) + if(!reagents.has_reagent(/datum/reagent/toxin/plasma,10)) to_chat(user, "This extract needs to be full of plasma to activate!") return - reagents.remove_reagent("plasma",10) + reagents.remove_reagent(/datum/reagent/toxin/plasma,10) to_chat(user, "You squeeze the extract, and it absorbs the plasma!") playsound(src, 'sound/effects/bubbles.ogg', 50, 1) playsound(src, 'sound/effects/glassbr1.ogg', 50, 1) @@ -56,7 +56,7 @@ Chilling extracts: return user.visible_message("[src] shatters, and a healing aura fills the room briefly.") for(var/mob/living/carbon/C in A) - C.reagents.add_reagent("regen_jelly",10) + C.reagents.add_reagent(/datum/reagent/medicine/regen_jelly,10) ..() /obj/item/slimecross/chilling/blue diff --git a/code/modules/research/xenobiology/crossbreeding/consuming.dm b/code/modules/research/xenobiology/crossbreeding/consuming.dm index d6536f4fdd..0e8bf1e11f 100644 --- a/code/modules/research/xenobiology/crossbreeding/consuming.dm +++ b/code/modules/research/xenobiology/crossbreeding/consuming.dm @@ -20,7 +20,7 @@ Consuming extracts: if(last_produced + cooldown > world.time) to_chat(user, "[src] is still digesting after its last meal!") return - var/datum/reagent/N = O.reagents.has_reagent("nutriment") + var/datum/reagent/N = O.reagents.has_reagent(/datum/reagent/consumable/nutriment) if(N) nutriment_eaten += N.volume to_chat(user, "[src] opens up and swallows [O] whole!") @@ -73,7 +73,7 @@ Consuming extracts: to_chat(M, "Tastes like [taste].") playsound(get_turf(M), 'sound/items/eatfood.ogg', 20, 1) if(nutrition) - M.reagents.add_reagent("nutriment",nutrition) + M.reagents.add_reagent(/datum/reagent/consumable/nutriment,nutrition) do_effect(M, user) qdel(src) return @@ -199,7 +199,7 @@ Consuming extracts: nutrition = 0 //We don't want normal nutriment /obj/item/slime_cookie/silver/do_effect(mob/living/M, mob/user) - M.reagents.add_reagent("stabilizednutriment",10) + M.reagents.add_reagent(/datum/reagent/consumable/nutriment/stabilized, 10) /obj/item/slimecross/consuming/bluespace colour = "bluespace" diff --git a/code/modules/research/xenobiology/crossbreeding/industrial.dm b/code/modules/research/xenobiology/crossbreeding/industrial.dm index a21fddb6cf..bec2c2c1ae 100644 --- a/code/modules/research/xenobiology/crossbreeding/industrial.dm +++ b/code/modules/research/xenobiology/crossbreeding/industrial.dm @@ -30,13 +30,13 @@ Industrial extracts: /obj/item/slimecross/industrial/process() var/IsWorking = FALSE - if(reagents.has_reagent("plasma",amount = 2) && plasmarequired > 1) //Can absorb as much as 2 + if(reagents.has_reagent(/datum/reagent/toxin/plasma,amount = 2) && plasmarequired > 1) //Can absorb as much as 2 IsWorking = TRUE - reagents.remove_reagent("plasma",2) + reagents.remove_reagent(/datum/reagent/toxin/plasma,2) plasmaabsorbed += 2 - else if(reagents.has_reagent("plasma",amount = 1)) //Can absorb as little as 1 + else if(reagents.has_reagent(/datum/reagent/toxin/plasma,amount = 1)) //Can absorb as little as 1 IsWorking = TRUE - reagents.remove_reagent("plasma",1) + reagents.remove_reagent(/datum/reagent/toxin/plasma,1) plasmaabsorbed += 1 if(plasmaabsorbed >= plasmarequired) diff --git a/code/modules/research/xenobiology/crossbreeding/regenerative.dm b/code/modules/research/xenobiology/crossbreeding/regenerative.dm index 6c7ea102bc..55865d1ae2 100644 --- a/code/modules/research/xenobiology/crossbreeding/regenerative.dm +++ b/code/modules/research/xenobiology/crossbreeding/regenerative.dm @@ -51,7 +51,7 @@ Regenerative extracts: colour = "purple" /obj/item/slimecross/regenerative/purple/core_effect(mob/living/target, mob/user) - target.reagents.add_reagent("regen_jelly",10) + target.reagents.add_reagent(/datum/reagent/medicine/regen_jelly,10) /obj/item/slimecross/regenerative/blue colour = "blue" @@ -174,7 +174,7 @@ Regenerative extracts: /obj/item/slimecross/regenerative/red/core_effect(mob/living/target, mob/user) to_chat(target, "You feel... faster.") - target.reagents.add_reagent("ephedrine",3) + target.reagents.add_reagent(/datum/reagent/medicine/ephedrine,3) /obj/item/slimecross/regenerative/green colour = "green" @@ -185,7 +185,7 @@ Regenerative extracts: var/mob/living/simple_animal/slime/S = target S.random_colour() if(isjellyperson(target)) - target.reagents.add_reagent("slime_toxin",5) + target.reagents.add_reagent(/datum/reagent/slime_toxin,5) /obj/item/slimecross/regenerative/pink @@ -193,7 +193,7 @@ Regenerative extracts: /obj/item/slimecross/regenerative/pink/core_effect(mob/living/target, mob/user) to_chat(target, "You feel more calm.") - target.reagents.add_reagent("krokodil",4) + target.reagents.add_reagent(/datum/reagent/drug/krokodil,4) /obj/item/slimecross/regenerative/gold colour = "gold" diff --git a/code/modules/research/xenobiology/crossbreeding/selfsustaining.dm b/code/modules/research/xenobiology/crossbreeding/selfsustaining.dm index a86db788a6..72b4158be6 100644 --- a/code/modules/research/xenobiology/crossbreeding/selfsustaining.dm +++ b/code/modules/research/xenobiology/crossbreeding/selfsustaining.dm @@ -38,10 +38,10 @@ Self-sustaining extracts: return if(reagentselect == "lesser plasma") amount = 4 - reagentselect = "plasma" + reagentselect = /datum/reagent/toxin/plasma if(reagentselect == "holy water and uranium") - reagentselect = "holywater" - secondary = "uranium" + reagentselect = /datum/reagent/water/holywater + secondary = /datum/reagent/uranium extract.forceMove(user.drop_location()) qdel(src) user.put_in_active_hand(extract) diff --git a/code/modules/research/xenobiology/xenobiology.dm b/code/modules/research/xenobiology/xenobiology.dm index ab0db8c4a7..8eecf1f635 100644 --- a/code/modules/research/xenobiology/xenobiology.dm +++ b/code/modules/research/xenobiology/xenobiology.dm @@ -42,7 +42,7 @@ /obj/item/slime_extract/on_grind() if(Uses) - grind_results["slimejelly"] = 20 + grind_results[/datum/reagent/toxin/slimejelly] = 20 //Effect when activated by a Luminescent. Separated into a minor and major effect. Returns cooldown in deciseconds. /obj/item/slime_extract/proc/activate(mob/living/carbon/human/user, datum/species/jelly/luminescent/species, activation_type) @@ -78,7 +78,7 @@ name = "grey slime extract" icon_state = "grey slime extract" effectmod = "reproductive" - activate_reagents = list("blood","plasma","water") + activate_reagents = list(/datum/reagent/blood,/datum/reagent/toxin/plasma,/datum/reagent/water) /obj/item/slime_extract/grey/activate(mob/living/carbon/human/user, datum/species/jelly/luminescent/species, activation_type) switch(activation_type) @@ -103,7 +103,7 @@ name = "gold slime extract" icon_state = "gold slime extract" effectmod = "symbiont" - activate_reagents = list("blood","plasma","water") + activate_reagents = list(/datum/reagent/blood,/datum/reagent/toxin/plasma,/datum/reagent/water) /obj/item/slime_extract/gold/activate(mob/living/carbon/human/user, datum/species/jelly/luminescent/species, activation_type) switch(activation_type) @@ -132,7 +132,7 @@ name = "silver slime extract" icon_state = "silver slime extract" effectmod = "consuming" - activate_reagents = list("plasma","water") + activate_reagents = list(/datum/reagent/toxin/plasma,/datum/reagent/water) /obj/item/slime_extract/silver/activate(mob/living/carbon/human/user, datum/species/jelly/luminescent/species, activation_type) switch(activation_type) @@ -157,7 +157,7 @@ name = "metal slime extract" icon_state = "metal slime extract" effectmod = "industrial" - activate_reagents = list("plasma","water") + activate_reagents = list(/datum/reagent/toxin/plasma,/datum/reagent/water) /obj/item/slime_extract/metal/activate(mob/living/carbon/human/user, datum/species/jelly/luminescent/species, activation_type) switch(activation_type) @@ -181,7 +181,7 @@ name = "purple slime extract" icon_state = "purple slime extract" effectmod = "regenerative" - activate_reagents = list("blood","plasma") + activate_reagents = list(/datum/reagent/blood,/datum/reagent/toxin/plasma) /obj/item/slime_extract/purple/activate(mob/living/carbon/human/user, datum/species/jelly/luminescent/species, activation_type) switch(activation_type) @@ -193,14 +193,14 @@ if(SLIME_ACTIVATE_MAJOR) to_chat(user, "You activate [src], and it releases regenerative chemicals!") - user.reagents.add_reagent("regen_jelly",10) + user.reagents.add_reagent(/datum/reagent/medicine/regen_jelly,10) return 600 /obj/item/slime_extract/darkpurple name = "dark purple slime extract" icon_state = "dark purple slime extract" effectmod = "self-sustaining" - activate_reagents = list("plasma") + activate_reagents = list(/datum/reagent/toxin/plasma) /obj/item/slime_extract/darkpurple/activate(mob/living/carbon/human/user, datum/species/jelly/luminescent/species, activation_type) switch(activation_type) @@ -223,19 +223,19 @@ name = "orange slime extract" icon_state = "orange slime extract" effectmod = "burning" - activate_reagents = list("blood","plasma","water") + activate_reagents = list(/datum/reagent/blood,/datum/reagent/toxin/plasma,/datum/reagent/water) /obj/item/slime_extract/orange/activate(mob/living/carbon/human/user, datum/species/jelly/luminescent/species, activation_type) switch(activation_type) if(SLIME_ACTIVATE_MINOR) to_chat(user, "You activate [src]. You start feeling hot!") - user.reagents.add_reagent("capsaicin",10) + user.reagents.add_reagent(/datum/reagent/consumable/capsaicin,10) return 150 if(SLIME_ACTIVATE_MAJOR) - user.reagents.add_reagent("phosphorus",5)// - user.reagents.add_reagent("potassium",5) // = smoke, along with any reagents inside mr. slime - user.reagents.add_reagent("sugar",5) // + user.reagents.add_reagent(/datum/reagent/phosphorus,5) + user.reagents.add_reagent(/datum/reagent/potassium,5) // = smoke, along with any reagents inside mr. slime + user.reagents.add_reagent(/datum/reagent/consumable/sugar,5) to_chat(user, "You activate [src], and a cloud of smoke bursts out of your skin!") return 450 @@ -243,7 +243,7 @@ name = "yellow slime extract" icon_state = "yellow slime extract" effectmod = "charged" - activate_reagents = list("blood","plasma","water") + activate_reagents = list(/datum/reagent/blood,/datum/reagent/toxin/plasma,/datum/reagent/water) /obj/item/slime_extract/yellow/activate(mob/living/carbon/human/user, datum/species/jelly/luminescent/species, activation_type) switch(activation_type) @@ -266,13 +266,13 @@ name = "red slime extract" icon_state = "red slime extract" effectmod = "sanguine" - activate_reagents = list("blood","plasma","water") + activate_reagents = list(/datum/reagent/blood,/datum/reagent/toxin/plasma,/datum/reagent/water) /obj/item/slime_extract/red/activate(mob/living/carbon/human/user, datum/species/jelly/luminescent/species, activation_type) switch(activation_type) if(SLIME_ACTIVATE_MINOR) to_chat(user, "You activate [src]. You start feeling fast!") - user.reagents.add_reagent("ephedrine",5) + user.reagents.add_reagent(/datum/reagent/medicine/ephedrine,5) return 450 if(SLIME_ACTIVATE_MAJOR) @@ -286,15 +286,15 @@ name = "blue slime extract" icon_state = "blue slime extract" effectmod = "stabilized" - activate_reagents = list("blood","plasma","water") + activate_reagents = list(/datum/reagent/blood, /datum/reagent/toxin/plasma, /datum/reagent/water) /obj/item/slime_extract/blue/activate(mob/living/carbon/human/user, datum/species/jelly/luminescent/species, activation_type) switch(activation_type) if(SLIME_ACTIVATE_MINOR) to_chat(user, "You activate [src]. Your genome feels more stable!") user.adjustCloneLoss(-15) - user.reagents.add_reagent("mutadone", 10) - user.reagents.add_reagent("potass_iodide", 10) + user.reagents.add_reagent(/datum/reagent/medicine/mutadone, 10) + user.reagents.add_reagent(/datum/reagent/medicine/potass_iodide, 10) return 250 if(SLIME_ACTIVATE_MAJOR) @@ -310,7 +310,7 @@ name = "dark blue slime extract" icon_state = "dark blue slime extract" effectmod = "chilling" - activate_reagents = list("plasma","water") + activate_reagents = list(/datum/reagent/toxin/plasma, /datum/reagent/water) /obj/item/slime_extract/darkblue/activate(mob/living/carbon/human/user, datum/species/jelly/luminescent/species, activation_type) switch(activation_type) @@ -318,8 +318,8 @@ to_chat(user, "You activate [src]. You start feeling colder!") user.ExtinguishMob() user.adjust_fire_stacks(-20) - user.reagents.add_reagent("frostoil",4) - user.reagents.add_reagent("cryoxadone",5) + user.reagents.add_reagent(/datum/reagent/consumable/frostoil,4) + user.reagents.add_reagent(/datum/reagent/medicine/cryoxadone,5) return 100 if(SLIME_ACTIVATE_MAJOR) @@ -333,7 +333,7 @@ name = "pink slime extract" icon_state = "pink slime extract" effectmod = "gentle" - activate_reagents = list("blood","plasma") + activate_reagents = list(/datum/reagent/blood, /datum/reagent/toxin/plasma) /obj/item/slime_extract/pink/activate(mob/living/carbon/human/user, datum/species/jelly/luminescent/species, activation_type) switch(activation_type) @@ -354,14 +354,14 @@ user.visible_message("[user]'s skin starts flashing hypnotically...", "Your skin starts forming odd patterns, pacifying creatures around you.") for(var/mob/living/carbon/C in viewers(user, null)) if(C != user) - C.reagents.add_reagent("pax",2) + C.reagents.add_reagent(/datum/reagent/pax,2) return 600 /obj/item/slime_extract/green name = "green slime extract" icon_state = "green slime extract" effectmod = "mutative" - activate_reagents = list("blood","plasma","radium") + activate_reagents = list(/datum/reagent/blood, /datum/reagent/toxin/plasma, /datum/reagent/radium) /obj/item/slime_extract/green/activate(mob/living/carbon/human/user, datum/species/jelly/luminescent/species, activation_type) switch(activation_type) @@ -385,7 +385,7 @@ name = "light pink slime extract" icon_state = "light pink slime extract" effectmod = "loyal" - activate_reagents = list("plasma") + activate_reagents = list(/datum/reagent/toxin/plasma) /obj/item/slime_extract/lightpink/activate(mob/living/carbon/human/user, datum/species/jelly/luminescent/species, activation_type) switch(activation_type) @@ -409,7 +409,7 @@ name = "black slime extract" icon_state = "black slime extract" effectmod = "transformative" - activate_reagents = list("plasma") + activate_reagents = list(/datum/reagent/toxin/plasma) /obj/item/slime_extract/black/activate(mob/living/carbon/human/user, datum/species/jelly/luminescent/species, activation_type) switch(activation_type) @@ -430,7 +430,7 @@ name = "oil slime extract" icon_state = "oil slime extract" effectmod = "detonating" - activate_reagents = list("blood","plasma") + activate_reagents = list(/datum/reagent/blood, /datum/reagent/toxin/plasma) /obj/item/slime_extract/oil/activate(mob/living/carbon/human/user, datum/species/jelly/luminescent/species, activation_type) switch(activation_type) @@ -453,7 +453,7 @@ name = "adamantine slime extract" icon_state = "adamantine slime extract" effectmod = "crystalline" - activate_reagents = list("plasma") + activate_reagents = list(/datum/reagent/toxin/plasma) /obj/item/slime_extract/adamantine/activate(mob/living/carbon/human/user, datum/species/jelly/luminescent/species, activation_type) switch(activation_type) @@ -482,7 +482,7 @@ name = "bluespace slime extract" icon_state = "bluespace slime extract" effectmod = "warping" - activate_reagents = list("blood","plasma") + activate_reagents = list(/datum/reagent/blood, /datum/reagent/toxin/plasma) var/teleport_ready = FALSE var/teleport_x = 0 var/teleport_y = 0 @@ -518,7 +518,7 @@ name = "pyrite slime extract" icon_state = "pyrite slime extract" effectmod = "prismatic" - activate_reagents = list("blood","plasma") + activate_reagents = list(/datum/reagent/blood, /datum/reagent/toxin/plasma) /obj/item/slime_extract/pyrite/activate(mob/living/carbon/human/user, datum/species/jelly/luminescent/species, activation_type) switch(activation_type) @@ -545,12 +545,12 @@ name = "cerulean slime extract" icon_state = "cerulean slime extract" effectmod = "recurring" - activate_reagents = list("blood","plasma") + activate_reagents = list(/datum/reagent/blood, /datum/reagent/toxin/plasma) /obj/item/slime_extract/cerulean/activate(mob/living/carbon/human/user, datum/species/jelly/luminescent/species, activation_type) switch(activation_type) if(SLIME_ACTIVATE_MINOR) - user.reagents.add_reagent("salbutamol",15) + user.reagents.add_reagent(/datum/reagent/medicine/salbutamol,15) to_chat(user, "You feel like you don't need to breathe!") return 150 @@ -565,7 +565,7 @@ name = "sepia slime extract" icon_state = "sepia slime extract" effectmod = "lengthened" - activate_reagents = list("blood","plasma","water") + activate_reagents = list(/datum/reagent/blood, /datum/reagent/toxin/plasma, /datum/reagent/water) /obj/item/slime_extract/sepia/activate(mob/living/carbon/human/user, datum/species/jelly/luminescent/species, activation_type) switch(activation_type) @@ -587,7 +587,7 @@ name = "rainbow slime extract" icon_state = "rainbow slime extract" effectmod = "hyperchromatic" - activate_reagents = list("blood","plasma","lesser plasma","slimejelly","holy water and uranium") //Curse this snowflake reagent list. + activate_reagents = list(/datum/reagent/blood, /datum/reagent/toxin/plasma,"lesser plasma", /datum/reagent/toxin/slimejelly,"holy water and uranium") //Curse this snowflake reagent list. /obj/item/slime_extract/rainbow/activate(mob/living/carbon/human/user, datum/species/jelly/luminescent/species, activation_type) switch(activation_type) diff --git a/code/modules/ruins/lavalandruin_code/alien_nest.dm b/code/modules/ruins/lavalandruin_code/alien_nest.dm index ca33324a90..d98a6bf5c1 100644 --- a/code/modules/ruins/lavalandruin_code/alien_nest.dm +++ b/code/modules/ruins/lavalandruin_code/alien_nest.dm @@ -16,4 +16,4 @@ desc = "A syringe filled with a strange viscous liquid. It might be best to leave it alone." amount_per_transfer_from_this = 1 volume = 1 - list_reagents = list("xenomicrobes" = 1) + list_reagents = list(/datum/reagent/xenomicrobes = 1) diff --git a/code/modules/surgery/advanced/necrotic_revival.dm b/code/modules/surgery/advanced/necrotic_revival.dm index f8fb160a8a..d95d0a3ac7 100644 --- a/code/modules/surgery/advanced/necrotic_revival.dm +++ b/code/modules/surgery/advanced/necrotic_revival.dm @@ -19,7 +19,7 @@ implements = list(TOOL_HEMOSTAT = 100, TOOL_SCREWDRIVER = 35, /obj/item/pen = 15) implements = list(/obj/item/reagent_containers/syringe = 100, /obj/item/pen = 30) time = 50 - chems_needed = list("zombiepowder", "rezadone") + chems_needed = list(/datum/reagent/toxin/zombiepowder, /datum/reagent/medicine/rezadone) require_all_chems = FALSE /datum/surgery_step/bionecrosis/preop(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery) diff --git a/code/modules/surgery/advanced/viral_bonding.dm b/code/modules/surgery/advanced/viral_bonding.dm index 87e6a8a99f..86832602e8 100644 --- a/code/modules/surgery/advanced/viral_bonding.dm +++ b/code/modules/surgery/advanced/viral_bonding.dm @@ -20,7 +20,7 @@ name = "viral bond" implements = list(TOOL_CAUTERY = 100, TOOL_WELDER = 50, /obj/item = 30) // 30% success with any hot item. time = 100 - chems_needed = list("spaceacillin","virusfood","formaldehyde") + chems_needed = list(/datum/reagent/medicine/spaceacillin, /datum/reagent/consumable/virus_food,/datum/reagent/toxin/formaldehyde) /datum/surgery_step/viral_bond/tool_check(mob/user, obj/item/tool) if(implement_type == TOOL_WELDER || implement_type == /obj/item) diff --git a/code/modules/surgery/bodyparts/helpers.dm b/code/modules/surgery/bodyparts/helpers.dm index 069f30e24c..51866b6719 100644 --- a/code/modules/surgery/bodyparts/helpers.dm +++ b/code/modules/surgery/bodyparts/helpers.dm @@ -287,51 +287,19 @@ . = "ffc905" /mob/living/carbon/proc/Digitigrade_Leg_Swap(swap_back) - var/body_plan_changed = FALSE for(var/X in bodyparts) var/obj/item/bodypart/O = X - var/obj/item/bodypart/N - if((!O.use_digitigrade && swap_back == FALSE) || (O.use_digitigrade && swap_back == TRUE)) - if(O.body_part == LEG_LEFT) - if(swap_back == TRUE) - N = new /obj/item/bodypart/l_leg - else - N = new /obj/item/bodypart/l_leg/digitigrade - else if(O.body_part == LEG_RIGHT) - if(swap_back == TRUE) - N = new /obj/item/bodypart/r_leg - else - N = new /obj/item/bodypart/r_leg/digitigrade - if(!N) - continue - body_plan_changed = TRUE - O.drop_limb(1) - qdel(O) - N.attach_limb(src) + if((O.body_part == LEG_LEFT || O.body_part == LEG_RIGHT) && ((!O.use_digitigrade && !swap_back) || (O.use_digitigrade && swap_back))) + O.use_digitigrade = swap_back ? NOT_DIGITIGRADE : FULL_DIGITIGRADE + O.update_limb(FALSE, src) - if(body_plan_changed && ishuman(src)) + if(ishuman(src)) var/mob/living/carbon/human/H = src if(H.w_uniform) - var/obj/item/clothing/under/U = H.w_uniform - if(U.mutantrace_variation) - if(swap_back) - U.suit_style = NORMAL_SUIT_STYLE - else - U.suit_style = DIGITIGRADE_SUIT_STYLE - H.update_inv_w_uniform() + H.update_inv_w_uniform() if(H.shoes) - var/obj/item/clothing/shoes/S = H.shoes - if(swap_back) - S.adjusted = NORMAL_STYLE - else - S.adjusted = ALT_STYLE H.update_inv_shoes() if(H.wear_suit) - var/obj/item/clothing/suit/S = H.wear_suit - if(swap_back) - S.adjusted = NORMAL_STYLE - else - S.adjusted = ALT_STYLE H.update_inv_wear_suit() /mob/living/carbon/proc/get_body_parts_flags() diff --git a/code/modules/surgery/embalming.dm b/code/modules/surgery/embalming.dm index 0af3240c5d..c6d2c72caa 100644 --- a/code/modules/surgery/embalming.dm +++ b/code/modules/surgery/embalming.dm @@ -12,7 +12,7 @@ /datum/surgery_step/embalming name = "embalming body" implements = list(TOOL_HEMOSTAT = 100, TOOL_SCREWDRIVER = 35) - chems_needed = list("drying_agent", "sterilizine") + chems_needed = list(/datum/reagent/drying_agent, /datum/reagent/space_cleaner/sterilizine) require_all_chems = FALSE /datum/surgery_step/embalming/preop(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery) diff --git a/code/modules/surgery/graft_synthtissue.dm b/code/modules/surgery/graft_synthtissue.dm index 86b2a8e909..afe8c9d1d1 100644 --- a/code/modules/surgery/graft_synthtissue.dm +++ b/code/modules/surgery/graft_synthtissue.dm @@ -22,7 +22,7 @@ implements = list(TOOL_HEMOSTAT = 100, TOOL_SCREWDRIVER = 35, /obj/item/pen = 15) repeatable = TRUE time = 75 - chems_needed = list("synthtissue") + chems_needed = list(/datum/reagent/synthtissue) var/obj/item/organ/chosen_organ var/health_restored = 10 @@ -41,7 +41,7 @@ chosen_organ = organs[chosen_organ] if(!chosen_organ) return -1 - if(!target.reagents.has_reagent("synthtissue")) + if(!target.reagents.has_reagent(/datum/reagent/synthtissue)) to_chat(user, "There's no synthtissue available for use on [chosen_organ]") return -1 var/datum/reagent/synthtissue/Sf = locate(/datum/reagent/synthtissue) in target.reagents.reagent_list @@ -58,7 +58,7 @@ health_restored += (Sf.data["grown_volume"]/10) user.visible_message("[user] begins to graft synthtissue onto [chosen_organ].") - target.reagents.remove_reagent("synthtissue", 10) + target.reagents.remove_reagent(/datum/reagent/synthtissue, 10) /datum/surgery_step/graft_synthtissue/success(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery) user.visible_message("[user] successfully grafts synthtissue to [chosen_organ].", "You succeed in grafting 10u of the synthflesh to the [chosen_organ].") diff --git a/code/modules/surgery/limb_augmentation.dm b/code/modules/surgery/limb_augmentation.dm index b1d8990b48..684996a0f5 100644 --- a/code/modules/surgery/limb_augmentation.dm +++ b/code/modules/surgery/limb_augmentation.dm @@ -1,15 +1,5 @@ /////AUGMENTATION SURGERIES////// //SURGERY STEPS -/datum/surgery_step/replace - name = "sever muscles" - implements = list(TOOL_SCALPEL = 100, TOOL_WIRECUTTER = 55) - time = 32 - - -/datum/surgery_step/replace/preop(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery) - display_results(user, target, "You begin to sever the muscles on [target]'s [parse_zone(user.zone_selected)]...", - "[user] begins to sever the muscles on [target]'s [parse_zone(user.zone_selected)].", - "[user] begins an incision on [target]'s [parse_zone(user.zone_selected)].") /datum/surgery_step/replace_limb name = "replace limb" @@ -37,7 +27,7 @@ //ACTUAL SURGERIES /datum/surgery/augmentation name = "Augmentation" - steps = list(/datum/surgery_step/incise, /datum/surgery_step/clamp_bleeders, /datum/surgery_step/retract_skin, /datum/surgery_step/replace, /datum/surgery_step/saw, /datum/surgery_step/replace_limb) + steps = list(/datum/surgery_step/incise, /datum/surgery_step/clamp_bleeders, /datum/surgery_step/retract_skin, /datum/surgery_step/replace_limb) target_mobtypes = list(/mob/living/carbon/human) possible_locs = list(BODY_ZONE_R_ARM,BODY_ZONE_L_ARM,BODY_ZONE_R_LEG,BODY_ZONE_L_LEG,BODY_ZONE_CHEST,BODY_ZONE_HEAD) requires_real_bodypart = TRUE diff --git a/code/modules/surgery/organs/appendix.dm b/code/modules/surgery/organs/appendix.dm index 0a4bd270a8..8ea4ea855d 100644 --- a/code/modules/surgery/organs/appendix.dm +++ b/code/modules/surgery/organs/appendix.dm @@ -42,5 +42,5 @@ /obj/item/organ/appendix/prepare_eat() var/obj/S = ..() if(inflamed) - S.reagents.add_reagent("bad_food", 5) + S.reagents.add_reagent(/datum/reagent/toxin/bad_food, 5) return S diff --git a/code/modules/surgery/organs/augments_chest.dm b/code/modules/surgery/organs/augments_chest.dm index 65172a1545..93ed149a2b 100644 --- a/code/modules/surgery/organs/augments_chest.dm +++ b/code/modules/surgery/organs/augments_chest.dm @@ -32,7 +32,7 @@ . = ..() if(!owner || . & EMP_PROTECT_SELF) return - owner.reagents.add_reagent("bad_food", poison_amount / severity) + owner.reagents.add_reagent(/datum/reagent/toxin/bad_food, poison_amount / severity) to_chat(owner, "You feel like your insides are burning.") diff --git a/code/modules/surgery/organs/heart.dm b/code/modules/surgery/organs/heart.dm index 5b74b58cd0..51784bdc61 100644 --- a/code/modules/surgery/organs/heart.dm +++ b/code/modules/surgery/organs/heart.dm @@ -247,5 +247,5 @@ obj/item/organ/heart/cybernetic/upgraded/on_life() min_next_adrenaline = world.time + rand(250, 600) //anywhere from 4.5 to 10 minutes to_chat(owner, "You feel yourself dying, but you refuse to give up!") owner.heal_overall_damage(15, 15) - if(owner.reagents.get_reagent_amount("ephedrine") < 20) - owner.reagents.add_reagent("ephedrine", 10) + if(owner.reagents.get_reagent_amount(/datum/reagent/medicine/ephedrine) < 20) + owner.reagents.add_reagent(/datum/reagent/medicine/ephedrine, 10) diff --git a/code/modules/surgery/organs/liver.dm b/code/modules/surgery/organs/liver.dm index 01559c83c3..59185ebaaf 100755 --- a/code/modules/surgery/organs/liver.dm +++ b/code/modules/surgery/organs/liver.dm @@ -33,14 +33,12 @@ if(filterToxins && !HAS_TRAIT(owner, TRAIT_TOXINLOVER)) //handle liver toxin filtration - for(var/I in C.reagents.reagent_list) - var/datum/reagent/pickedreagent = I - if(istype(pickedreagent, /datum/reagent/toxin)) - var/thisamount = C.reagents.get_reagent_amount(initial(pickedreagent.id)) - if (thisamount <= toxTolerance && thisamount) - C.reagents.remove_reagent(initial(pickedreagent.id), 1) - else - damage += (thisamount*toxLethality) + for(var/datum/reagent/toxin/T in C.reagents.reagent_list) + var/thisamount = C.reagents.get_reagent_amount(T.type) + if (thisamount && thisamount <= toxTolerance) + C.reagents.remove_reagent(T.type, 1) + else + damage += (thisamount*toxLethality) //metabolize reagents C.reagents.metabolize(C, can_overdose=TRUE) @@ -56,7 +54,7 @@ /obj/item/organ/liver/prepare_eat() var/obj/S = ..() - S.reagents.add_reagent("iron", 5) + S.reagents.add_reagent(/datum/reagent/iron, 5) return S //Just in case diff --git a/code/modules/surgery/organs/lungs.dm b/code/modules/surgery/organs/lungs.dm index 6b0e4f01ae..91153655d3 100644 --- a/code/modules/surgery/organs/lungs.dm +++ b/code/modules/surgery/organs/lungs.dm @@ -69,7 +69,7 @@ var/heat_level_3_damage = HEAT_GAS_DAMAGE_LEVEL_3 var/heat_damage_type = BURN - var/crit_stabilizing_reagent = "epinephrine" + var/crit_stabilizing_reagent = /datum/reagent/medicine/epinephrine @@ -301,13 +301,13 @@ var/bz_pp = breath.get_breath_partial_pressure(breath_gases[/datum/gas/bz]) if(bz_pp > BZ_trip_balls_min) H.hallucination += 10 - H.reagents.add_reagent("bz_metabolites",5) + H.reagents.add_reagent(/datum/reagent/bz_metabolites,5) if(prob(33)) H.adjustOrganLoss(ORGAN_SLOT_BRAIN, 3, 150) else if(bz_pp > 0.01) H.hallucination += 5 - H.reagents.add_reagent("bz_metabolites",1) + H.reagents.add_reagent(/datum/reagent/bz_metabolites,1) // Tritium @@ -331,15 +331,15 @@ H.adjustFireLoss(nitryl_pp/4) gas_breathed = breath_gases[/datum/gas/nitryl] if (gas_breathed > gas_stimulation_min) - H.reagents.add_reagent("no2",1) + H.reagents.add_reagent(/datum/reagent/nitryl,1) breath_gases[/datum/gas/nitryl]-=gas_breathed // Stimulum gas_breathed = breath_gases[/datum/gas/stimulum] if (gas_breathed > gas_stimulation_min) - var/existing = H.reagents.get_reagent_amount("stimulum") - H.reagents.add_reagent("stimulum", max(0, 5 - existing)) + var/existing = H.reagents.get_reagent_amount(/datum/reagent/stimulum) + H.reagents.add_reagent(/datum/reagent/stimulum, max(0, 5 - existing)) breath_gases[/datum/gas/stimulum]-=gas_breathed // Miasma @@ -459,7 +459,7 @@ /obj/item/organ/lungs/prepare_eat() var/obj/S = ..() - S.reagents.add_reagent("salbutamol", 5) + S.reagents.add_reagent(/datum/reagent/medicine/salbutamol, 5) return S /obj/item/organ/lungs/plasmaman diff --git a/code/modules/surgery/organs/organ_internal.dm b/code/modules/surgery/organs/organ_internal.dm index a180bd947e..fcbed13d94 100644 --- a/code/modules/surgery/organs/organ_internal.dm +++ b/code/modules/surgery/organs/organ_internal.dm @@ -173,7 +173,7 @@ name = "appendix" icon_state = "appendix" icon = 'icons/obj/surgery.dmi' - list_reagents = list("nutriment" = 5) + list_reagents = list(/datum/reagent/consumable/nutriment = 5) foodtype = RAW | MEAT | GROSS diff --git a/code/modules/uplink/uplink_items.dm b/code/modules/uplink/uplink_items.dm index 97fa6041a9..18dc34e34b 100644 --- a/code/modules/uplink/uplink_items.dm +++ b/code/modules/uplink/uplink_items.dm @@ -165,1866 +165,3 @@ //Discounts (dynamically filled above) /datum/uplink_item/discounts category = "Discounted Gear" - - -/* - Uplink Items: - Unlike categories, uplink item entries are automatically sorted alphabetically on server init in a global list, - When adding new entries to the file, please keep them sorted by category. -*/ - -//All bundles and telecrystals - -/datum/uplink_item/bundles_TC/chemical - name = "Bioterror bundle" - desc = "For the madman: Contains a handheld Bioterror chem sprayer, a Bioterror foam grenade, a box of lethal chemicals, a dart pistol, \ - box of syringes, Donksoft assault rifle, and some riot darts. Remember: Seal suit and equip internals before use." - item = /obj/item/storage/backpack/duffelbag/syndie/med/bioterrorbundle - cost = 30 // normally 42 - include_modes = list(/datum/game_mode/nuclear) - -/datum/uplink_item/bundles_TC/bulldog - name = "Bulldog bundle" - desc = "Lean and mean: Optimized for people that want to get up close and personal. Contains the popular \ - Bulldog shotgun, a 12g buckshot drum, a 12g taser slug drum and a pair of Thermal imaging goggles." - item = /obj/item/storage/backpack/duffelbag/syndie/bulldogbundle - cost = 13 // normally 16 - include_modes = list(/datum/game_mode/nuclear) - -/datum/uplink_item/bundles_TC/c20r - name = "C-20r bundle" - desc = "Old Faithful: The classic C-20r, bundled with two magazines, and a (surplus) suppressor at discount price." - item = /obj/item/storage/backpack/duffelbag/syndie/c20rbundle - cost = 14 // normally 16 - include_modes = list(/datum/game_mode/nuclear) - -/datum/uplink_item/bundles_TC/cybernetics_bundle - name = "Cybernetic Implants Bundle" - desc = "A random selection of cybernetic implants. Guaranteed 5 high quality implants. Comes with an autosurgeon." - item = /obj/item/storage/box/cyber_implants - cost = 40 - include_modes = list(/datum/game_mode/nuclear) - -/datum/uplink_item/bundles_TC/medical - name = "Medical bundle" - desc = "The support specialist: Aid your fellow operatives with this medical bundle. Contains a tactical medkit, \ - a Donksoft LMG, a box of riot darts and a pair of magboots to rescue your friends in no-gravity environments." - item = /obj/item/storage/backpack/duffelbag/syndie/med/medicalbundle - cost = 15 // normally 20 - include_modes = list(/datum/game_mode/nuclear) - -/datum/uplink_item/bundles_TC/modular - name = "Modular Pistol Kit" - desc = "A heavy briefcase containing one modular pistol (chambered in 10mm), one supressor, and spare ammunition, including a box of soporific ammo. \ - Includes a suit jacket that is padded with a robust liner." - item = /obj/item/storage/briefcase/modularbundle - cost = 12 - -/datum/uplink_item/bundles_TC/shredder - name = "Shredder bundle" - desc = "A truly horrific weapon designed simply to maim its victim, the CX Shredder is banned by several intergalactic treaties. \ - You'll get two of them with this. And spare ammo to boot. And we'll throw in an extra elite hardsuit and chest rig to hold them all!" - item = /obj/item/storage/backpack/duffelbag/syndie/shredderbundle - cost = 30 // normally 41 - include_modes = list(/datum/game_mode/nuclear) - -/datum/uplink_item/bundles_TC/sniper - name = "Sniper bundle" - desc = "Elegant and refined: Contains a collapsed sniper rifle in an expensive carrying case, \ - two soporific knockout magazines, a free surplus supressor, and a sharp-looking tactical turtleneck suit. \ - We'll throw in a free red tie if you order NOW." - item = /obj/item/storage/briefcase/sniperbundle - cost = 20 // normally 26 - include_modes = list(/datum/game_mode/nuclear) - -/datum/uplink_item/bundles_TC/firestarter - name = "Spetsnaz Pyro bundle" - desc = "For systematic suppression of carbon lifeforms in close quarters: Contains a lethal New Russian backpack spray, Elite hardsuit, \ - Stechkin APS pistol, two magazines, a minibomb and a stimulant syringe. \ - Order NOW and comrade Boris will throw in an extra tracksuit." - item = /obj/item/storage/backpack/duffelbag/syndie/firestarter - cost = 30 - include_modes = list(/datum/game_mode/nuclear) - -/datum/uplink_item/bundles_TC/bundle - name = "Syndicate Bundle" - desc = "Syndicate Bundles are specialized groups of items that arrive in a plain box. \ - These items are collectively worth more than 20 telecrystals, but you do not know which specialization \ - you will receive. May contain discontinued and/or exotic items." - item = /obj/item/storage/box/syndicate - cost = 20 - exclude_modes = list(/datum/game_mode/nuclear) - cant_discount = TRUE - -/datum/uplink_item/bundles_TC/surplus - name = "Syndicate Surplus Crate" - desc = "A dusty crate from the back of the Syndicate warehouse. Rumored to contain a valuable assortment of items, \ - but you never know. Contents are sorted to always be worth 50 TC." - item = /obj/structure/closet/crate - cost = 20 - player_minimum = 25 - exclude_modes = list(/datum/game_mode/nuclear, /datum/game_mode/nuclear/clown_ops) - cant_discount = TRUE - var/starting_crate_value = 50 - -/datum/uplink_item/bundles_TC/surplus/super - name = "Super Surplus Crate" - desc = "A dusty SUPER-SIZED from the back of the Syndicate warehouse. Rumored to contain a valuable assortment of items, \ - but you never know. Contents are sorted to always be worth 125 TC." - cost = 40 - player_minimum = 40 - starting_crate_value = 125 - -/datum/uplink_item/bundles_TC/surplus/purchase(mob/user, datum/component/uplink/U) - var/list/uplink_items = get_uplink_items(SSticker && SSticker.mode? SSticker.mode : null, FALSE) - - var/crate_value = starting_crate_value - var/obj/structure/closet/crate/C = spawn_item(/obj/structure/closet/crate, user, U) - if(U.purchase_log) - U.purchase_log.LogPurchase(C, src, cost) - while(crate_value) - var/category = pick(uplink_items) - var/item = pick(uplink_items[category]) - var/datum/uplink_item/I = uplink_items[category][item] - - if(!I.surplus || prob(100 - I.surplus)) - continue - if(crate_value < I.cost) - continue - crate_value -= I.cost - var/obj/goods = new I.item(C) - if(U.purchase_log) - U.purchase_log.LogPurchase(goods, I, 0) - return C - -/datum/uplink_item/bundles_TC/random - name = "Random Item" - desc = "Picking this will purchase a random item. Useful if you have some TC to spare or if you haven't decided on a strategy yet." - item = /obj/effect/gibspawner/generic // non-tangible item because techwebs use this path to determine illegal tech - cost = 0 - cant_discount = TRUE - -/datum/uplink_item/bundles_TC/random/purchase(mob/user, datum/component/uplink/U) - var/list/uplink_items = U.uplink_items - var/list/possible_items = list() - for(var/category in uplink_items) - for(var/item in uplink_items[category]) - var/datum/uplink_item/I = uplink_items[category][item] - if(src == I || !I.item) - continue - if(U.telecrystals < I.cost) - continue - if(I.limited_stock == 0) - continue - possible_items += I - - if(possible_items.len) - var/datum/uplink_item/I = pick(possible_items) - SSblackbox.record_feedback("tally", "traitor_random_uplink_items_gotten", 1, initial(I.name)) - U.MakePurchase(user, I) - -/datum/uplink_item/bundles_TC/telecrystal - name = "1 Raw Telecrystal" - desc = "A telecrystal in its rawest and purest form; can be utilized on active uplinks to increase their telecrystal count." - item = /obj/item/stack/telecrystal - cost = 1 - surplus = 0 - cant_discount = TRUE - // Don't add telecrystals to the purchase_log since - // it's just used to buy more items (including itself!) - purchase_log_vis = FALSE - -/datum/uplink_item/bundles_TC/telecrystal/five - name = "5 Raw Telecrystals" - desc = "Five telecrystals in their rawest and purest form; can be utilized on active uplinks to increase their telecrystal count." - item = /obj/item/stack/telecrystal/five - cost = 5 - -/datum/uplink_item/bundles_TC/telecrystal/twenty - name = "20 Raw Telecrystals" - desc = "Twenty telecrystals in their rawest and purest form; can be utilized on active uplinks to increase their telecrystal count." - item = /obj/item/stack/telecrystal/twenty - cost = 20 - -// Dangerous Items - -/datum/uplink_item/dangerous/pistol - name = "Stechkin Pistol" - desc = "A small, easily concealable handgun that uses 10mm auto rounds in 8-round magazines and is compatible \ - with suppressors." - item = /obj/item/gun/ballistic/automatic/pistol - cost = 7 - exclude_modes = list(/datum/game_mode/nuclear/clown_ops) - -/datum/uplink_item/dangerous/revolver - name = "Syndicate Revolver Kit" - desc = "A sleek box containing a brutally simple Syndicate revolver that fires .357 Magnum rounds and has 7 chambers, and an extra speedloader." - item = /obj/item/storage/box/syndie_kit/revolver - cost = 13 - surplus = 50 - exclude_modes = list(/datum/game_mode/nuclear/clown_ops) - -/datum/uplink_item/dangerous/rawketlawnchair - name = "84mm Rocket Propelled Grenade Launcher" - desc = "A reusable rocket propelled grenade launcher preloaded with a low-yield 84mm HE round. \ - Guaranteed to send your target out with a bang or your money back!" - item = /obj/item/gun/ballistic/rocketlauncher - cost = 8 - surplus = 30 - include_modes = list(/datum/game_mode/nuclear) - -/datum/uplink_item/dangerous/antitank - name = "Anti Tank Pistol" - desc = "Essentially amounting to a sniper rifle with no stock and barrel (or indeed, any rifling at all), \ - this extremely dubious pistol is guaranteed to dislocate your wrists and hit the broad side of a barn! \ - Uses sniper ammo. \ - Bullets tend to veer off-course. We are not responsible for any unintentional damage or injury resulting from inaacuracy." - item = /obj/item/gun/ballistic/automatic/pistol/antitank/syndicate - cost = 14 - surplus = 25 - include_modes = list(/datum/game_mode/nuclear) - -/datum/uplink_item/dangerous/pie_cannon - name = "Banana Cream Pie Cannon" - desc = "A special pie cannon for a special clown, this gadget can hold up to 20 pies and automatically fabricates one every two seconds!" - cost = 10 - item = /obj/item/pneumatic_cannon/pie/selfcharge - surplus = 0 - include_modes = list(/datum/game_mode/nuclear/clown_ops) - -/datum/uplink_item/dangerous/bananashield - name = "Bananium Energy Shield" - desc = "A clown's most powerful defensive weapon, this personal shield provides near immunity to ranged energy attacks \ - by bouncing them back at the ones who fired them. It can also be thrown to bounce off of people, slipping them, \ - and returning to you even if you miss. WARNING: DO NOT ATTEMPT TO STAND ON SHIELD WHILE DEPLOYED, EVEN IF WEARING ANTI-SLIP SHOES." - item = /obj/item/shield/energy/bananium - cost = 16 - surplus = 0 - include_modes = list(/datum/game_mode/nuclear/clown_ops) - -/datum/uplink_item/dangerous/clownsword - name = "Bananium Energy Sword" - desc = "An energy sword that deals no damage, but will slip anyone it contacts, be it by melee attack, thrown \ - impact, or just stepping on it. Beware friendly fire, as even anti-slip shoes will not protect against it." - item = /obj/item/melee/transforming/energy/sword/bananium - cost = 3 - surplus = 0 - include_modes = list(/datum/game_mode/nuclear/clown_ops) - -/datum/uplink_item/dangerous/bioterror - name = "Biohazardous Chemical Sprayer" - desc = "A handheld chemical sprayer that allows a wide dispersal of selected chemicals. Especially tailored by the Tiger \ - Cooperative, the deadly blend it comes stocked with will disorient, damage, and disable your foes... \ - Use with extreme caution, to prevent exposure to yourself and your fellow operatives." - item = /obj/item/reagent_containers/spray/chemsprayer/bioterror - cost = 20 - surplus = 0 - include_modes = list(/datum/game_mode/nuclear, /datum/game_mode/nuclear/clown_ops) - -/datum/uplink_item/dangerous/throwingweapons - name = "Box of Throwing Weapons" - desc = "A box of shurikens and reinforced bolas from ancient Earth martial arts. They are highly effective \ - throwing weapons. The bolas can knock a target down and the shurikens will embed into limbs." - item = /obj/item/storage/box/syndie_kit/throwing_weapons - cost = 3 - -/datum/uplink_item/dangerous/shotgun - name = "Bulldog Shotgun" - desc = "A fully-loaded semi-automatic drum-fed shotgun. Compatible with all 12g rounds. Designed for close \ - quarter anti-personnel engagements." - item = /obj/item/gun/ballistic/automatic/shotgun/bulldog - cost = 8 - surplus = 40 - include_modes = list(/datum/game_mode/nuclear) - -/datum/uplink_item/dangerous/smg - name = "C-20r Submachine Gun" - desc = "A fully-loaded Scarborough Arms bullpup submachine gun. The C-20r fires .45 rounds with a \ - 24-round magazine and is compatible with suppressors." - item = /obj/item/gun/ballistic/automatic/c20r - cost = 10 - surplus = 40 - include_modes = list(/datum/game_mode/nuclear) - -/datum/uplink_item/dangerous/doublesword - name = "Double-Bladed Energy Sword" - desc = "The double-bladed energy sword does slightly more damage than a standard energy sword and will deflect \ - all energy projectiles, but requires two hands to wield." - item = /obj/item/twohanded/dualsaber - player_minimum = 25 - cost = 16 - exclude_modes = list(/datum/game_mode/nuclear/clown_ops) - -/datum/uplink_item/dangerous/doublesword/get_discount() - return pick(4;0.8,2;0.65,1;0.5) - -/datum/uplink_item/dangerous/cxneb - name = "Dragon's Tooth Non-Eutactic Blade" - desc = "An illegal modification of a weapon that is functionally identical to the energy sword, \ - the Non-Eutactic Blade (NEB) forges a hardlight blade on-demand, \ - generating an extremely sharp, unbreakable edge that is guaranteed to satisfy your every need. \ - This particular model has a polychromic hardlight generator, allowing you to murder in style! \ - The illegal modifications bring this weapon up to par with the classic energy sword, and also gives it the energy sword's distinctive sounds." - item = /obj/item/melee/transforming/energy/sword/cx/traitor - cost = 8 - -/datum/uplink_item/dangerous/sword - name = "Energy Sword" - desc = "The energy sword is an edged weapon with a blade of pure energy. The sword is small enough to be \ - pocketed when inactive. Activating it produces a loud, distinctive noise." - item = /obj/item/melee/transforming/energy/sword/saber - cost = 8 - exclude_modes = list(/datum/game_mode/nuclear/clown_ops) - -/datum/uplink_item/dangerous/shield - name = "Energy Shield" - desc = "An incredibly useful personal shield projector, capable of reflecting energy projectiles and defending \ - against other attacks. Pair with an Energy Sword for a killer combination." - item = /obj/item/shield/energy - cost = 16 - surplus = 20 - include_modes = list(/datum/game_mode/nuclear) - -/datum/uplink_item/dangerous/rapier - name = "Rapier" - desc = "A fancy rapier with a diamond tip piercing anything that it comes into contack with. \ - The rapier comes with its own sheath, this is rather noticeable as only the captain is known to carry a sheath. \ - The sheath itself can be used to block melee attacks only. Its also jet black colours." - item = /obj/item/storage/belt/sabre/rapier - cost = 8 - exclude_modes = list(/datum/game_mode/nuclear/clown_ops) - -/datum/uplink_item/dangerous/flamethrower - name = "Flamethrower" - desc = "A flamethrower, fueled by a portion of highly flammable biotoxins stolen previously from Nanotrasen \ - stations. Make a statement by roasting the filth in their own greed. Use with caution." - item = /obj/item/flamethrower/full/tank - cost = 4 - surplus = 40 - include_modes = list(/datum/game_mode/nuclear) - -/datum/uplink_item/dangerous/flechettegun - name = "Flechette Launcher" - desc = "A compact bullpup that fires micro-flechettes.\ - Flechettes have very poor performance idividually, but can be very deadly in numbers. \ - Pre-loaded with armor piercing flechettes that are capable of puncturing most kinds of armor." - item = /obj/item/gun/ballistic/automatic/flechette - cost = 12 - surplus = 30 - include_modes = list(/datum/game_mode/nuclear) - -/datum/uplink_item/dangerous/rapid - name = "Gloves of the North Star" - desc = "These gloves let the user punch people very fast. Does not improve weapon attack speed or the meaty fists of a hulk." - item = /obj/item/clothing/gloves/rapid - cost = 8 - -/datum/uplink_item/dangerous/guardian - name = "Holoparasites" - desc = "Though capable of near sorcerous feats via use of hardlight holograms and nanomachines, they require an \ - organic host as a home base and source of fuel. Holoparasites come in various types and share damage with their host." - item = /obj/item/storage/box/syndie_kit/guardian - cost = 15 - refundable = TRUE - cant_discount = TRUE - surplus = 0 - exclude_modes = list(/datum/game_mode/nuclear, /datum/game_mode/nuclear/clown_ops) - player_minimum = 25 - restricted = TRUE - refund_path = /obj/item/guardiancreator/tech/choose/traitor - -/datum/uplink_item/dangerous/machinegun - name = "L6 Squad Automatic Weapon" - desc = "A fully-loaded Aussec Armoury belt-fed machine gun. \ - This deadly weapon has a massive 50-round magazine of devastating 1.95x129mm ammunition." - item = /obj/item/gun/ballistic/automatic/l6_saw - cost = 18 - surplus = 0 - include_modes = list(/datum/game_mode/nuclear) - -/datum/uplink_item/dangerous/carbine - name = "M-90gl Carbine" - desc = "A fully-loaded, specialized three-round burst carbine that fires 5.56mm ammunition from a 30 round magazine \ - with a toggleable 40mm underbarrel grenade launcher." - item = /obj/item/gun/ballistic/automatic/m90 - cost = 18 - surplus = 50 - include_modes = list(/datum/game_mode/nuclear) - -/datum/uplink_item/dangerous/powerfist - name = "Power Fist" - desc = "The power-fist is a metal gauntlet with a built-in piston-ram powered by an external gas supply.\ - Upon hitting a target, the piston-ram will extend forward to make contact for some serious damage. \ - Using a wrench on the piston valve will allow you to tweak the amount of gas used per punch to \ - deal extra damage and hit targets further. Use a screwdriver to take out any attached tanks." - item = /obj/item/melee/powerfist - cost = 8 - -/datum/uplink_item/dangerous/sniper - name = "Sniper Rifle" - desc = "Ranged fury, Syndicate style. Guaranteed to cause shock and awe or your TC back!" - item = /obj/item/gun/ballistic/automatic/sniper_rifle/syndicate - cost = 16 - surplus = 25 - include_modes = list(/datum/game_mode/nuclear) - -/datum/uplink_item/dangerous/bolt_action - name = "Surplus Rifle" - desc = "A horribly outdated bolt action weapon. You've got to be desperate to use this." - item = /obj/item/gun/ballistic/shotgun/boltaction - cost = 2 - include_modes = list(/datum/game_mode/nuclear) - -/datum/uplink_item/dangerous/foamsmg - name = "Toy Submachine Gun" - desc = "A fully-loaded Donksoft bullpup submachine gun that fires riot grade darts with a 20-round magazine." - item = /obj/item/gun/ballistic/automatic/c20r/toy - cost = 5 - surplus = 0 - include_modes = list(/datum/game_mode/nuclear, /datum/game_mode/nuclear/clown_ops) - -/datum/uplink_item/dangerous/foammachinegun - name = "Toy Machine Gun" - desc = "A fully-loaded Donksoft belt-fed machine gun. This weapon has a massive 50-round magazine of devastating \ - riot grade darts, that can briefly incapacitate someone in just one volley." - item = /obj/item/gun/ballistic/automatic/l6_saw/toy - cost = 10 - surplus = 0 - include_modes = list(/datum/game_mode/nuclear, /datum/game_mode/nuclear/clown_ops) - -/datum/uplink_item/dangerous/foampistol - name = "Toy Pistol with Riot Darts" - desc = "An innocent-looking toy pistol designed to fire foam darts. Comes loaded with riot-grade \ - darts effective at incapacitating a target." - item = /obj/item/gun/ballistic/automatic/toy/pistol/riot - cost = 3 - surplus = 10 - -// Stealthy Weapons - -/datum/uplink_item/stealthy_weapons/combatglovesplus - name = "Combat Gloves Plus" - desc = "A pair of gloves that are fireproof and shock resistant, however unlike the regular Combat Gloves this one uses nanotechnology \ - to learn the abilities of krav maga to the wearer." - item = /obj/item/clothing/gloves/krav_maga/combatglovesplus - cost = 5 - include_modes = list(/datum/game_mode/nuclear, /datum/game_mode/nuclear/clown_ops) - surplus = 0 - -/datum/uplink_item/stealthy_weapons/cqc - name = "CQC Manual" - desc = "A manual that teaches a single user tactical Close-Quarters Combat before self-destructing." - item = /obj/item/book/granter/martial/cqc - include_modes = list(/datum/game_mode/nuclear, /datum/game_mode/nuclear/clown_ops) - cost = 13 - surplus = 0 - -/datum/uplink_item/stealthy_weapons/dart_pistol - name = "Dart Pistol" - desc = "A miniaturized version of a normal syringe gun. It is very quiet when fired and can fit into any \ - space a small item can." - item = /obj/item/gun/syringe/syndicate - cost = 4 - surplus = 50 - -/datum/uplink_item/stealthy_weapons/dehy_carp - name = "Dehydrated Space Carp" - desc = "Looks like a plush toy carp, but just add water and it becomes a real-life space carp! Activate in \ - your hand before use so it knows not to kill you." - item = /obj/item/toy/plush/carpplushie/dehy_carp - cost = 1 - -/datum/uplink_item/stealthy_weapons/edagger - name = "Energy Dagger" - desc = "A dagger made of energy that looks and functions as a pen when off." - item = /obj/item/pen/edagger - cost = 2 - -/datum/uplink_item/stealthy_weapons/martialarts - name = "Sleeping Carp Scroll" - desc = "This scroll contains the secrets of an ancient martial arts technique. You will master unarmed combat, \ - deflecting all ranged weapon fire, but you also refuse to use dishonorable ranged weaponry." - item = /obj/item/book/granter/martial/carp - cost = 17 - surplus = 0 - exclude_modes = list(/datum/game_mode/nuclear, /datum/game_mode/nuclear/clown_ops) - -/datum/uplink_item/stealthy_weapons/martialartstwo - name = "Rising Bass Scroll" - desc = "This scroll contains the secrets of an ancient martial arts technique. You will become proficient in fleeing situations, \ - and dodging all ranged weapon fire, but you will refuse to use dishonorable ranged weaponry." - item = /obj/item/book/granter/martial/bass - cost = 18 - surplus = 0 - exclude_modes = list(/datum/game_mode/nuclear, /datum/game_mode/nuclear/clown_ops) - -/datum/uplink_item/stealthy_weapons/crossbow - name = "Miniature Energy Crossbow" - desc = "A short bow mounted across a tiller in miniature. Small enough to \ - fit into a pocket or slip into a bag unnoticed. It will synthesize \ - and fire bolts tipped with a paralyzing toxin that will briefly stun \ - targets and cause them to slur as if inebriated. It can produce an \ - infinite number of bolts, but takes time to automatically recharge \ - after each shot." - item = /obj/item/gun/energy/kinetic_accelerator/crossbow - cost = 12 - surplus = 50 - exclude_modes = list(/datum/game_mode/nuclear) - -/datum/uplink_item/stealthy_weapons/traitor_chem_bottle - name = "Poison Kit" - desc = "An assortment of deadly chemicals packed into a compact box. Comes with a syringe for more precise application." - item = /obj/item/storage/box/syndie_kit/chemical - cost = 6 - surplus = 50 - -/datum/uplink_item/stealthy_weapons/romerol_kit - name = "Romerol" - desc = "A highly experimental bioterror agent which creates dormant nodules to be etched into the grey matter of the brain. \ - On death, these nodules take control of the dead body, causing limited revivification, \ - along with slurred speech, aggression, and the ability to infect others with this agent." - item = /obj/item/storage/box/syndie_kit/romerol - cost = 25 - cant_discount = TRUE - exclude_modes = list(/datum/game_mode/nuclear) - -/datum/uplink_item/stealthy_weapons/sleepy_pen - name = "Sleepy Pen" - desc = "A syringe disguised as a functional pen, filled with a potent mix of drugs, including a \ - strong anesthetic and a chemical that prevents the target from speaking. \ - The pen holds one dose of the mixture, and can be refilled with any chemicals. Note that before the target \ - falls asleep, they will be able to move and act." - item = /obj/item/pen/sleepy - cost = 4 - exclude_modes = list(/datum/game_mode/nuclear) - -datum/uplink_item/stealthy_weapons/taeclowndo_shoes - name = "Tae-clown-do Shoes" - desc = "A pair of shoes for the most elite agents of the honkmotherland. They grant the mastery of taeclowndo with some honk-fu moves as long as they're worn." - cost = 12 - item = /obj/item/clothing/shoes/clown_shoes/taeclowndo - include_modes = list(/datum/game_mode/nuclear/clown_ops) - -/datum/uplink_item/stealthy_weapons/suppressor - name = "Suppressor" - desc = "This suppressor will silence the shots of the weapon it is attached to for increased stealth and superior ambushing capability. \ - It is compatible with many small ballistic guns including the Stechkin and C-20r, but not revolvers or energy guns." - item = /obj/item/suppressor - cost = 1 - surplus = 10 - exclude_modes = list(/datum/game_mode/nuclear/clown_ops) - -/datum/uplink_item/stealthy_weapons/soap - name = "Syndicate Soap" - desc = "A sinister-looking surfactant used to clean blood stains to hide murders and prevent DNA analysis. \ - You can also drop it underfoot to slip people." - item = /obj/item/soap/syndie - cost = 1 - surplus = 50 - -/datum/uplink_item/stealthy_weapons/soap_clusterbang - name = "Slipocalypse Clusterbang" - desc = "A traditional clusterbang grenade with a payload consisting entirely of Syndicate soap. Useful in any scenario!" - item = /obj/item/grenade/clusterbuster/soap - cost = 6 - -// Ammunition - -/datum/uplink_item/ammo/pistol - name = "10mm Handgun Magazine" - desc = "An additional 8-round 10mm magazine; compatible with the Stechkin Pistol. These rounds \ - are dirt cheap but are half as effective as .357 rounds." - item = /obj/item/ammo_box/magazine/m10mm - cost = 1 - exclude_modes = list(/datum/game_mode/nuclear/clown_ops) - -/datum/uplink_item/ammo/pistolap - name = "10mm Armour Piercing Magazine" - desc = "An additional 8-round 10mm magazine; compatible with the Stechkin Pistol. \ - These rounds are less effective at injuring the target but penetrate protective gear." - item = /obj/item/ammo_box/magazine/m10mm/ap - cost = 2 - exclude_modes = list(/datum/game_mode/nuclear/clown_ops) - -/datum/uplink_item/ammo/pistolhp - name = "10mm Hollow Point Magazine" - desc = "An additional 8-round 10mm magazine; compatible with the Stechkin Pistol. \ - These rounds are more damaging but ineffective against armour." - item = /obj/item/ammo_box/magazine/m10mm/hp - cost = 3 - exclude_modes = list(/datum/game_mode/nuclear/clown_ops) - -/datum/uplink_item/ammo/pistolfire - name = "10mm Incendiary Magazine" - desc = "An additional 8-round 10mm magazine; compatible with the Stechkin Pistol. \ - Loaded with incendiary rounds which inflict little damage, but ignite the target." - item = /obj/item/ammo_box/magazine/m10mm/fire - cost = 2 - exclude_modes = list(/datum/game_mode/nuclear/clown_ops) - -/datum/uplink_item/ammo/pistolzzz - name = "10mm Soporific Magazine" - desc = "An additional 8-round 10mm magazine; compatible with the Stechkin Pistol. Loaded with soporific rounds that put the target to sleep. \ - NOTE: Soporific is not instant acting due to the constraints of the round's scale. Will usually require three shots to take effect." - item = /obj/item/ammo_box/magazine/m10mm/soporific - cost = 2 - -/datum/uplink_item/ammo/shotgun - cost = 2 - include_modes = list(/datum/game_mode/nuclear) - -/datum/uplink_item/ammo/shotgun/bag - name = "12g Ammo Duffel Bag" - desc = "A duffel bag filled with enough 12g ammo to supply an entire team, at a discounted price." - item = /obj/item/storage/backpack/duffelbag/syndie/ammo/shotgun - cost = 12 - -/datum/uplink_item/ammo/shotgun/buck - name = "12g Buckshot Drum" - desc = "An additional 8-round buckshot magazine for use with the Bulldog shotgun. Front towards enemy." - item = /obj/item/ammo_box/magazine/m12g - -/datum/uplink_item/ammo/shotgun/dragon - name = "12g Dragon's Breath Drum" - desc = "An alternative 8-round dragon's breath magazine for use in the Bulldog shotgun. \ - 'I'm a fire starter, twisted fire starter!'" - item = /obj/item/ammo_box/magazine/m12g/dragon - include_modes = list(/datum/game_mode/nuclear) - -/datum/uplink_item/ammo/shotgun/meteor - name = "12g Meteorslug Shells" - desc = "An alternative 8-round meteorslug magazine for use in the Bulldog shotgun. \ - Great for blasting airlocks off their frames and knocking down enemies." - item = /obj/item/ammo_box/magazine/m12g/meteor - include_modes = list(/datum/game_mode/nuclear) - -/datum/uplink_item/ammo/shotgun/scatter - name = "12g Scatter Laser shot Slugs" - desc = "An alternative 8-round Scatter Laser Shot magazine for use in the Bulldog shotgun." - item = /obj/item/ammo_box/magazine/m12g/scatter - cost = 4 // most armor has less laser protection then bullet - -/datum/uplink_item/ammo/shotgun/slug - name = "12g Slug Drum" - desc = "An additional 8-round slug magazine for use with the Bulldog shotgun. \ - Now 8 times less likely to shoot your pals." - cost = 3 - item = /obj/item/ammo_box/magazine/m12g/slug - -/datum/uplink_item/ammo/shotgun/stun - name = "12g Stun Slug Drum" - desc = "An alternative 8-round stun slug magazine for use with the Bulldog shotgun. \ - Saying that they're completely non-lethal would be lying." - item = /obj/item/ammo_box/magazine/m12g/stun - include_modes = list(/datum/game_mode/nuclear) - -/datum/uplink_item/ammo/revolver - name = ".357 Speed Loader" - desc = "A speed loader that contains seven additional .357 Magnum rounds, and can be further reloaded with individual bullets; usable with the Syndicate revolver. \ - For when you really need a lot of things dead." - item = /obj/item/ammo_box/a357 - cost = 3 - exclude_modes = list(/datum/game_mode/nuclear/clown_ops) - -/datum/uplink_item/ammo/revolver/ap - name = ".357 Armor Piercing Speed Loader" - desc = "A speed loader that contains seven additional .357 AP Magnum rounds; usable with the Syndicate revolver. \ - Cuts through like a hot knife through butter." - item = /obj/item/ammo_box/a357/ap - -/datum/uplink_item/ammo/a40mm - name = "40mm Grenade" - desc = "A 40mm HE grenade for use with the M-90gl's under-barrel grenade launcher. \ - Your teammates will ask you to not shoot these down small hallways." - item = /obj/item/ammo_casing/a40mm - cost = 2 - include_modes = list(/datum/game_mode/nuclear) - -/datum/uplink_item/ammo/smg/bag - name = ".45 Ammo Duffel Bag" - desc = "A duffel bag filled with enough .45 ammo to supply an entire team, at a discounted price." - item = /obj/item/storage/backpack/duffelbag/syndie/ammo/smg - cost = 20 //instead of 27 TC - include_modes = list(/datum/game_mode/nuclear) - -/datum/uplink_item/ammo/smg - name = ".45 SMG Magazine" - desc = "An additional 24-round .45 magazine suitable for use with the C-20r submachine gun." - item = /obj/item/ammo_box/magazine/smgm45 - cost = 3 - include_modes = list(/datum/game_mode/nuclear) - -/datum/uplink_item/ammo/sniper - cost = 4 - include_modes = list(/datum/game_mode/nuclear) - -/datum/uplink_item/ammo/sniper/basic - name = ".50 Magazine" - desc = "An additional standard 6-round magazine for use with .50 sniper rifles." - item = /obj/item/ammo_box/magazine/sniper_rounds - -/datum/uplink_item/ammo/sniper/penetrator - name = ".50 Penetrator Magazine" - desc = "A 5-round magazine of penetrator ammo designed for use with .50 sniper rifles. \ - Can pierce walls and multiple enemies." - item = /obj/item/ammo_box/magazine/sniper_rounds/penetrator - cost = 5 - -/datum/uplink_item/ammo/sniper/soporific - name = ".50 Soporific Magazine" - desc = "A 3-round magazine of soporific ammo designed for use with .50 sniper rifles. Put your enemies to sleep today!" - item = /obj/item/ammo_box/magazine/sniper_rounds/soporific - cost = 6 - -/datum/uplink_item/ammo/carbine - name = "5.56mm Toploader Magazine" - desc = "An additional 30-round 5.56mm magazine; suitable for use with the M-90gl carbine. \ - These bullets pack less punch than 7.12x82mm rounds, but they still offer more power than .45 ammo." - item = /obj/item/ammo_box/magazine/m556 - cost = 4 - include_modes = list(/datum/game_mode/nuclear) - -/datum/uplink_item/ammo/machinegun - cost = 6 - surplus = 0 - include_modes = list(/datum/game_mode/nuclear) - -/datum/uplink_item/ammo/machinegun/basic - name = "1.95x129mm Box Magazine" - desc = "A 50-round magazine of 1.95x129mm ammunition for use with the L6 SAW. \ - By the time you need to use this, you'll already be standing on a pile of corpses" - item = /obj/item/ammo_box/magazine/mm195x129 - -/datum/uplink_item/ammo/machinegun/ap - name = "1.95x129mm (Armor Penetrating) Box Magazine" - desc = "A 50-round magazine of 1.95x129mm ammunition for use in the L6 SAW; equipped with special properties \ - to puncture even the most durable armor." - item = /obj/item/ammo_box/magazine/mm195x129/ap - cost = 9 - -/datum/uplink_item/ammo/machinegun/hollow - name = "1.95x129mm (Hollow-Point) Box Magazine" - desc = "A 50-round magazine of 1.95x129mm ammunition for use in the L6 SAW; equipped with hollow-point tips to help \ - with the unarmored masses of crew." - item = /obj/item/ammo_box/magazine/mm195x129/hollow - -/datum/uplink_item/ammo/machinegun/incen - name = "1.95x129mm (Incendiary) Box Magazine" - desc = "A 50-round magazine of 1.95x129mm ammunition for use in the L6 SAW; tipped with a special flammable \ - mixture that'll ignite anyone struck by the bullet. Some men just want to watch the world burn." - item = /obj/item/ammo_box/magazine/mm195x129/incen - -/datum/uplink_item/ammo/rocket - include_modes = list(/datum/game_mode/nuclear) - -/datum/uplink_item/ammo/rocket/basic - name = "84mm HE Rocket" - desc = "A low-yield anti-personnel HE rocket. Gonna take you out in style!" - item = /obj/item/ammo_casing/caseless/rocket - cost = 4 - -/datum/uplink_item/ammo/rocket/hedp - name = "84mm HEDP Rocket" - desc = "A high-yield HEDP rocket; extremely effective against armored targets, as well as surrounding personnel. \ - Strike fear into the hearts of your enemies." - item = /obj/item/ammo_casing/caseless/rocket/hedp - cost = 6 - -/datum/uplink_item/ammo/pistolaps - name = "9mm Handgun Magazine" - desc = "An additional 15-round 9mm magazine, compatible with the Stechkin APS pistol, found in the Spetsnaz Pyro bundle." - item = /obj/item/ammo_box/magazine/pistolm9mm - cost = 2 - include_modes = list(/datum/game_mode/nuclear) - -/datum/uplink_item/ammo/flechetteap - name = "Armor Piercing Flechette Magazine" - desc = "An additional 40-round flechette magazine; compatible with the Flechette Launcer. \ - Loaded with armor piercing flechettes that very nearly ignore armor, but are not very effective agaisnt flesh." - item = /obj/item/ammo_box/magazine/flechette - cost = 2 - include_modes = list(/datum/game_mode/nuclear) - -/datum/uplink_item/ammo/flechettes - name = "Serrated Flechette Magazine" - desc = "An additional 40-round flechette magazine; compatible with the Flechette Launcer. \ - Loaded with serrated flechettes that shreds flesh, but is stopped dead in its tracks by armor. \ - These flechettes are highly likely to sever arteries, and even limbs." - item = /obj/item/ammo_box/magazine/flechette/s - cost = 2 - include_modes = list(/datum/game_mode/nuclear) - -/datum/uplink_item/ammo/toydarts - name = "Box of Riot Darts" - desc = "A box of 40 Donksoft riot darts, for reloading any compatible foam dart magazine. Don't forget to share!" - item = /obj/item/ammo_box/foambox/riot - cost = 2 - surplus = 0 - illegal_tech = FALSE - -/datum/uplink_item/ammo/bioterror - name = "Box of Bioterror Syringes" - desc = "A box full of preloaded syringes, containing various chemicals that seize up the victim's motor \ - and broca systems, making it impossible for them to move or speak for some time." - item = /obj/item/storage/box/syndie_kit/bioterror - cost = 6 - include_modes = list(/datum/game_mode/nuclear, /datum/game_mode/nuclear/clown_ops) - -/datum/uplink_item/ammo/bolt_action - name = "Surplus Rifle Clip" - desc = "A stripper clip used to quickly load bolt action rifles. Contains 5 rounds." - item = /obj/item/ammo_box/a762 - cost = 1 - include_modes = list(/datum/game_mode/nuclear) - -//Grenades and Explosives - -/datum/uplink_item/explosives/bioterrorfoam - name = "Bioterror Foam Grenade" - desc = "A powerful chemical foam grenade which creates a deadly torrent of foam that will mute, blind, confuse, \ - mutate, and irritate carbon lifeforms. Specially brewed by Tiger Cooperative chemical weapons specialists \ - using additional spore toxin. Ensure suit is sealed before use." - item = /obj/item/grenade/chem_grenade/bioterrorfoam - cost = 5 - surplus = 35 - include_modes = list(/datum/game_mode/nuclear, /datum/game_mode/nuclear/clown_ops) - -/datum/uplink_item/explosives/bombanana - name = "Bombanana" - desc = "A banana with an explosive taste! discard the peel quickly, as it will explode with the force of a syndicate minibomb \ - a few seconds after the banana is eaten." - item = /obj/item/reagent_containers/food/snacks/grown/banana/bombanana - cost = 4 //it is a bit cheaper than a minibomb because you have to take off your helmet to eat it, which is how you arm it - surplus = 0 - include_modes = list(/datum/game_mode/nuclear/clown_ops) - -/datum/uplink_item/explosives/buzzkill - name = "Buzzkill Grenade Box" - desc = "A box with three grenades that release a swarm of angry bees upon activation. These bees indiscriminately attack friend or foe \ - with random toxins. Courtesy of the BLF and Tiger Cooperative." - item = /obj/item/storage/box/syndie_kit/bee_grenades - cost = 15 - surplus = 35 - include_modes = list(/datum/game_mode/nuclear, /datum/game_mode/nuclear/clown_ops) - -/datum/uplink_item/explosives/c4 - name = "Composition C-4" - desc = "C-4 is plastic explosive of the common variety Composition C. You can use it to breach walls, sabotage equipment, or connect \ - an assembly to it in order to alter the way it detonates. It can be attached to almost all objects and has a modifiable timer with a \ - minimum setting of 10 seconds." - item = /obj/item/grenade/plastic/c4 - cost = 1 - -/datum/uplink_item/explosives/c4bag - name = "Bag of C-4 explosives" - desc = "Because sometimes quantity is quality. Contains 10 C-4 plastic explosives." - item = /obj/item/storage/backpack/duffelbag/syndie/c4 - cost = 9 //10% discount! - cant_discount = TRUE - -/datum/uplink_item/explosives/x4bag - name = "Bag of X-4 explosives" - desc = "Contains 3 X-4 shaped plastic explosives. Similar to C4, but with a stronger blast that is directional instead of circular. \ - X-4 can be placed on a solid surface, such as a wall or window, and it will blast through the wall, injuring anything on the opposite side, while being safer to the user. \ - For when you want a controlled explosion that leaves a wider, deeper, hole." - item = /obj/item/storage/backpack/duffelbag/syndie/x4 - cost = 4 // - cant_discount = TRUE - -/datum/uplink_item/explosives/clown_bomb_clownops - name = "Clown Bomb" - desc = "The Clown bomb is a hilarious device capable of massive pranks. It has an adjustable timer, \ - with a minimum of 60 seconds, and can be bolted to the floor with a wrench to prevent \ - movement. The bomb is bulky and cannot be moved; upon ordering this item, a smaller beacon will be \ - transported to you that will teleport the actual bomb to it upon activation. Note that this bomb can \ - be defused, and some crew may attempt to do so." - item = /obj/item/sbeacondrop/clownbomb - cost = 15 - surplus = 0 - include_modes = list(/datum/game_mode/nuclear/clown_ops) - -/datum/uplink_item/explosives/detomatix - name = "Detomatix PDA Cartridge" - desc = "When inserted into a personal digital assistant, this cartridge gives you four opportunities to \ - detonate PDAs of crewmembers who have their message feature enabled. \ - The concussive effect from the explosion will knock the recipient out for a short period, and deafen them for longer." - item = /obj/item/cartridge/virus/syndicate - cost = 5 - restricted = TRUE - -/datum/uplink_item/explosives/emp - name = "EMP Grenades and Implanter Kit" - desc = "A box that contains five EMP grenades and an EMP implant with three uses. Useful to disrupt communications, \ - security's energy weapons and silicon lifeforms when you're in a tight spot." - item = /obj/item/storage/box/syndie_kit/emp - cost = 2 - -/datum/uplink_item/explosives/virus_grenade - name = "Fungal Tuberculosis Grenade" - desc = "A primed bio-grenade packed into a compact box. Comes with five Bio Virus Antidote Kit (BVAK) \ - autoinjectors for rapid application on up to two targets each, a syringe, and a bottle containing \ - the BVAK solution." - item = /obj/item/storage/box/syndie_kit/tuberculosisgrenade - cost = 8 - surplus = 35 - include_modes = list(/datum/game_mode/nuclear, /datum/game_mode/nuclear/clown_ops) - restricted = TRUE - -/datum/uplink_item/explosives/grenadier - name = "Grenadier's belt" - desc = "A belt containing 26 lethally dangerous and destructive grenades. Comes with an extra multitool and screwdriver." - item = /obj/item/storage/belt/grenade/full - include_modes = list(/datum/game_mode/nuclear) - cost = 22 - surplus = 0 - -/datum/uplink_item/explosives/pizza_bomb - name = "Pizza Bomb" - desc = "A pizza box with a bomb cunningly attached to the lid. The timer needs to be set by opening the box; afterwards, \ - opening the box again will trigger the detonation after the timer has elapsed. Comes with free pizza, for you or your target!" - item = /obj/item/pizzabox/bomb - cost = 6 - surplus = 8 - -/datum/uplink_item/explosives/syndicate_bomb - name = "Syndicate Bomb" - desc = "The Syndicate bomb is a fearsome device capable of massive destruction. It has an adjustable timer, \ - with a minimum of 60 seconds, and can be bolted to the floor with a wrench to prevent \ - movement. The bomb is bulky and cannot be moved; upon ordering this item, a smaller beacon will be \ - transported to you that will teleport the actual bomb to it upon activation. Note that this bomb can \ - be defused, and some crew may attempt to do so." - item = /obj/item/sbeacondrop/bomb - cost = 11 - -/datum/uplink_item/explosives/syndicate_detonator - name = "Syndicate Detonator" - desc = "The Syndicate detonator is a companion device to the Syndicate bomb. Simply press the included button \ - and an encrypted radio frequency will instruct all live Syndicate bombs to detonate. \ - Useful for when speed matters or you wish to synchronize multiple bomb blasts. Be sure to stand clear of \ - the blast radius before using the detonator." - item = /obj/item/syndicatedetonator - cost = 3 - include_modes = list(/datum/game_mode/nuclear, /datum/game_mode/nuclear/clown_ops) - -/datum/uplink_item/explosives/syndicate_minibomb - name = "Syndicate Minibomb" - desc = "The minibomb is a grenade with a five-second fuse. Upon detonation, it will create a small hull breach \ - in addition to dealing high amounts of damage to nearby personnel." - item = /obj/item/grenade/syndieminibomb - cost = 6 - exclude_modes = list(/datum/game_mode/nuclear/clown_ops) - -/datum/uplink_item/explosives/tearstache - name = "Teachstache Grenade" - desc = "A teargas grenade that launches sticky moustaches onto the face of anyone not wearing a clown or mime mask. The moustaches will \ - remain attached to the face of all targets for one minute, preventing the use of breath masks and other such devices." - item = /obj/item/grenade/chem_grenade/teargas/moustache - cost = 3 - surplus = 0 - include_modes = list(/datum/game_mode/nuclear/clown_ops) - -/datum/uplink_item/explosives/viscerators - name = "Viscerator Delivery Grenade" - desc = "A unique grenade that deploys a swarm of viscerators upon activation, which will chase down and shred \ - any non-operatives in the area." - item = /obj/item/grenade/spawnergrenade/manhacks - cost = 5 - surplus = 35 - include_modes = list(/datum/game_mode/nuclear, /datum/game_mode/nuclear/clown_ops) - - -//Support and Mechs - -/datum/uplink_item/support/clown_reinforcement - name = "Clown Reinforcements" - desc = "Call in an additional clown to share the fun, equipped with full starting gear, but no telecrystals." - item = /obj/item/antag_spawner/nuke_ops/clown - cost = 20 - include_modes = list(/datum/game_mode/nuclear/clown_ops) - restricted = TRUE - -/datum/uplink_item/support/reinforcement - name = "Reinforcements" - desc = "Call in an additional team member. They won't come with any gear, so you'll have to save some telecrystals \ - to arm them as well." - item = /obj/item/antag_spawner/nuke_ops - cost = 25 - refundable = TRUE - include_modes = list(/datum/game_mode/nuclear) - restricted = TRUE - -/datum/uplink_item/support/reinforcement/assault_borg - name = "Syndicate Assault Cyborg" - desc = "A cyborg designed and programmed for systematic extermination of non-Syndicate personnel. \ - Comes equipped with a self-resupplying LMG, a grenade launcher, energy sword, emag, pinpointer, flash and crowbar." - item = /obj/item/antag_spawner/nuke_ops/borg_tele/assault - refundable = TRUE - cost = 65 - restricted = TRUE - -/datum/uplink_item/support/reinforcement/medical_borg - name = "Syndicate Medical Cyborg" - desc = "A combat medical cyborg. Has limited offensive potential, but makes more than up for it with its support capabilities. \ - It comes equipped with a nanite hypospray, a medical beamgun, combat defibrillator, full surgical kit including an energy saw, an emag, pinpointer and flash. \ - Thanks to its organ storage bag, it can perform surgery as well as any humanoid." - item = /obj/item/antag_spawner/nuke_ops/borg_tele/medical - refundable = TRUE - cost = 35 - restricted = TRUE - -/datum/uplink_item/support/reinforcement/saboteur_borg - name = "Syndicate Saboteur Cyborg" - desc = "A streamlined engineering cyborg, equipped with covert modules. Also incapable of leaving the welder in the shuttle. \ - Aside from regular Engineering equipment, it comes with a special destination tagger that lets it traverse disposals networks. \ - Its chameleon projector lets it disguise itself as a Nanotrasen cyborg, on top it has thermal vision and a pinpointer." - item = /obj/item/antag_spawner/nuke_ops/borg_tele/saboteur - refundable = TRUE - cost = 35 - restricted = TRUE - -/datum/uplink_item/support/gygax - name = "Dark Gygax Exosuit" - desc = "A lightweight exosuit, painted in a dark scheme. Its speed and equipment selection make it excellent \ - for hit-and-run style attacks. Features an incendiary carbine, flash bang launcher, teleporter, ion thrusters and a Tesla energy array." - item = /obj/mecha/combat/gygax/dark/loaded - cost = 80 - -/datum/uplink_item/support/honker - name = "Dark H.O.N.K." - desc = "A clown combat mech equipped with bombanana peel and tearstache grenade launchers, as well as the ubiquitous HoNkER BlAsT 5000." - item = /obj/mecha/combat/honker/dark/loaded - cost = 80 - include_modes = list(/datum/game_mode/nuclear/clown_ops) - -/datum/uplink_item/support/mauler - name = "Mauler Exosuit" - desc = "A massive and incredibly deadly military-grade exosuit. Features long-range targeting, thrust vectoring \ - and deployable smoke. Comes equipped with an LMG, scattershot carbine, missile rack, an antiprojectile armor booster and a Tesla energy array." - item = /obj/mecha/combat/marauder/mauler/loaded - cost = 140 - -// Stealth Items - -/datum/uplink_item/stealthy_tools/agent_card - name = "Agent Identification Card" - desc = "Agent cards prevent artificial intelligences from tracking the wearer, and can copy access \ - from other identification cards. The access is cumulative, so scanning one card does not erase the \ - access gained from another. In addition, they can be forged to display a new assignment and name. \ - This can be done an unlimited amount of times. Some Syndicate areas and devices can only be accessed \ - with these cards." - item = /obj/item/card/id/syndicate - cost = 2 - -/datum/uplink_item/stealthy_tools/ai_detector - name = "Artificial Intelligence Detector" - desc = "A functional multitool that turns red when it detects an artificial intelligence watching it, and can be \ - activated to display their exact viewing location and nearby security camera blind spots. Knowing when \ - an artificial intelligence is watching you is useful for knowing when to maintain cover, and finding nearby \ - blind spots can help you identify escape routes." - item = /obj/item/multitool/ai_detect - cost = 1 - -/datum/uplink_item/stealthy_tools/chameleon - name = "Chameleon Kit" - desc = "A set of items that contain chameleon technology allowing you to disguise as pretty much anything on the station, and more! \ - Due to budget cuts, the shoes don't provide protection against slipping." - item = /obj/item/storage/box/syndie_kit/chameleon - cost = 2 - exclude_modes = list(/datum/game_mode/nuclear) - -/datum/uplink_item/stealthy_tools/chameleon_proj - name = "Chameleon Projector" - desc = "Projects an image across a user, disguising them as an object scanned with it, as long as they don't \ - move the projector from their hand. Disguised users move slowly, and projectiles pass over them." - item = /obj/item/chameleon - cost = 7 - -/datum/uplink_item/stealthy_tools/codespeak_manual - name = "Codespeak Manual" - desc = "Syndicate agents can be trained to use a series of codewords to convey complex information, which sounds like random concepts and drinks to anyone listening. \ - This manual teaches you this Codespeak. You can also hit someone else with the manual in order to teach them. This is the deluxe edition, which has unlimited uses." - item = /obj/item/codespeak_manual/unlimited - cost = 3 - -/datum/uplink_item/stealthy_tools/combatbananashoes - name = "Combat Banana Shoes" - desc = "While making the wearer immune to most slipping attacks like regular combat clown shoes, these shoes \ - can generate a large number of synthetic banana peels as the wearer walks, slipping up would-be pursuers. They also \ - squeak significantly louder." - item = /obj/item/clothing/shoes/clown_shoes/banana_shoes/combat - cost = 6 - surplus = 0 - include_modes = list(/datum/game_mode/nuclear/clown_ops) - -/datum/uplink_item/stealthy_tools/emplight - name = "EMP Flashlight" - desc = "A small, self-recharging, short-ranged EMP device disguised as a working flashlight. \ - Useful for disrupting headsets, cameras, doors, lockers and borgs during stealth operations. \ - Attacking a target with this flashlight will direct an EM pulse at it and consumes a charge." - item = /obj/item/flashlight/emp - cost = 2 - surplus = 30 - -/datum/uplink_item/stealthy_tools/failsafe - name = "Failsafe Uplink Code" - desc = "When entered the uplink will self-destruct immidiately." - item = /obj/effect/gibspawner/generic - cost = 1 - surplus = 0 - restricted = TRUE - exclude_modes = list(/datum/game_mode/nuclear, /datum/game_mode/nuclear/clown_ops) - -/datum/uplink_item/stealthy_tools/failsafe/spawn_item(spawn_path, mob/user, datum/component/uplink/U) - if(!U) - return - U.failsafe_code = U.generate_code() - to_chat(user, "The new failsafe code for this uplink is now : [U.failsafe_code].") - if(user.mind) - user.mind.store_memory("Failsafe code for [U.parent] : [U.failsafe_code]") - return U.parent //For log icon - -/datum/uplink_item/stealthy_tools/mulligan - name = "Mulligan" - desc = "Screwed up and have security on your tail? This handy syringe will give you a completely new identity \ - and appearance." - item = /obj/item/reagent_containers/syringe/mulligan - cost = 3 - surplus = 30 - exclude_modes = list(/datum/game_mode/nuclear, /datum/game_mode/nuclear/clown_ops) - -/datum/uplink_item/stealthy_tools/syndigaloshes - name = "No-Slip Chameleon Shoes" - desc = "These shoes will allow the wearer to run on wet floors and slippery objects without falling down. \ - They do not work on heavily lubricated surfaces." - item = /obj/item/clothing/shoes/chameleon/noslip - cost = 2 - exclude_modes = list(/datum/game_mode/nuclear, /datum/game_mode/nuclear/clown_ops) - player_minimum = 20 - -/datum/uplink_item/stealthy_tools/syndigaloshes/nuke - item = /obj/item/clothing/shoes/chameleon/noslip - cost = 4 - exclude_modes = list() - include_modes = list(/datum/game_mode/nuclear) - -/datum/uplink_item/stealthy_tools/jammer - name = "Radio Jammer" - desc = "This device will disrupt any nearby outgoing radio communication when activated. Does not affect binary chat." - item = /obj/item/jammer - cost = 5 - -/datum/uplink_item/stealthy_tools/smugglersatchel - name = "Smuggler's Satchel" - desc = "This satchel is thin enough to be hidden in the gap between plating and tiling; great for stashing \ - your stolen goods. Comes with a crowbar and a floor tile inside. Properly hidden satchels have been \ - known to survive intact even beyond the current shift. " - item = /obj/item/storage/backpack/satchel/flat - cost = 2 - surplus = 30 - -//Space Suits and Hardsuits - -/datum/uplink_item/suits/turtlenck - name = "Tactical Turtleneck" - desc = "A slightly armored suit that has no sensor on them, if someone sees you in this hope they think its a fake." - item = /obj/item/clothing/under/syndicate - cost = 1 - exclude_modes = list(/datum/game_mode/nuclear, /datum/game_mode/nuclear/clown_ops) //They already get these - -/datum/uplink_item/suits/turtlenck_skirt - name = "Tactical Skirtleneck" - desc = "A slightly armored suit that has no sensor on them, if someone sees you in this hope they think its a fake." - item = /obj/item/clothing/under/syndicate/skirt - cost = 1 - exclude_modes = list(/datum/game_mode/nuclear, /datum/game_mode/nuclear/clown_ops) //They already get these - -/datum/uplink_item/suits/padding - name = "Soft Padding" - desc = "Padding to add to a jumpsuit to help against melee and bullets." - item = /obj/item/clothing/accessory/padding - cost = 2 - exclude_modes = list(/datum/game_mode/nuclear, /datum/game_mode/nuclear/clown_ops) - -/datum/uplink_item/suits/kevlar - name = "Kevlar sheets" - desc = "Kevlar sheets to add to jumpsuit to help against bullets and melee." - item = /obj/item/clothing/accessory/kevlar - cost = 2 - exclude_modes = list(/datum/game_mode/nuclear, /datum/game_mode/nuclear/clown_ops) - -/datum/uplink_item/suits/plastic - name = "Plastic sheet" - desc = "Plastic body sheet to add to a jumpsuit to help against laser and energy harm." - item = /obj/item/clothing/accessory/plastics - cost = 2 - exclude_modes = list(/datum/game_mode/nuclear, /datum/game_mode/nuclear/clown_ops) - -/datum/uplink_item/suits/space_suit - name = "Syndicate Space Suit" - desc = "This red and black Syndicate space suit is less encumbering than Nanotrasen variants, \ - fits inside bags, and has a weapon slot. Nanotrasen crew members are trained to report red space suit \ - sightings, however." - item = /obj/item/storage/box/syndie_kit/space - cost = 4 - -/datum/uplink_item/suits/hardsuit - name = "Syndicate Hardsuit" - desc = "The feared suit of a Syndicate nuclear agent. Features slightly better armoring and a built in jetpack \ - that runs off standard atmospheric tanks. Toggling the suit in and out of \ - combat mode will allow you all the mobility of a loose fitting uniform without sacrificing armoring. \ - Additionally the suit is collapsible, making it small enough to fit within a backpack. \ - Nanotrasen crew who spot these suits are known to panic." - item = /obj/item/clothing/suit/space/hardsuit/syndi - cost = 8 - exclude_modes = list(/datum/game_mode/nuclear) //you can't buy it in nuke, because the elite hardsuit costs the same while being better - -/datum/uplink_item/suits/hardsuit/elite - name = "Elite Syndicate Hardsuit" - desc = "An upgraded, elite version of the Syndicate hardsuit. It features fireproofing, and also \ - provides the user with superior armor and mobility compared to the standard Syndicate hardsuit." - item = /obj/item/clothing/suit/space/hardsuit/syndi/elite - cost = 8 - include_modes = list(/datum/game_mode/nuclear, /datum/game_mode/nuclear/clown_ops) - exclude_modes = list() - -/datum/uplink_item/suits/hardsuit/shielded - name = "Shielded Syndicate Hardsuit" - desc = "An upgraded version of the standard Syndicate hardsuit. It features a built-in energy shielding system. \ - The shields can handle up to three impacts within a short duration and will rapidly recharge while not under fire." - item = /obj/item/clothing/suit/space/hardsuit/shielded/syndi - cost = 30 - include_modes = list(/datum/game_mode/nuclear, /datum/game_mode/nuclear/clown_ops) - exclude_modes = list() - -// Devices and Tools - -/datum/uplink_item/device_tools/emag - name = "Cryptographic Sequencer" - desc = "The cryptographic sequencer, electromagnetic card, or emag, is a small card that unlocks hidden functions \ - in electronic devices, subverts intended functions, and easily breaks security mechanisms." - item = /obj/item/card/emag - cost = 6 - -/datum/uplink_item/device_tools/emagrecharge - name = "Electromagnet Charging Device" - desc = "A small device intended for recharging Cryptographic Sequencers. Using it will add five extra charges to the Cryptographic Sequencer." - item = /obj/item/emagrecharge - cost = 2 - -/datum/uplink_item/device_tools/phantomthief - name = "Syndicate Mask" - desc = "A cheap plastic mask fitted with an adrenaline autoinjector, which can be used by simply tensing your muscles" - item = /obj/item/clothing/glasses/phantomthief/syndicate - cost = 2 - -/datum/uplink_item/device_tools/cutouts - name = "Adaptive Cardboard Cutouts" - desc = "These cardboard cutouts are coated with a thin material that prevents discoloration and makes the images on them appear more lifelike. \ - This pack contains three as well as a crayon for changing their appearances." - item = /obj/item/storage/box/syndie_kit/cutouts - cost = 1 - surplus = 20 - -/datum/uplink_item/device_tools/assault_pod - name = "Assault Pod Targeting Device" - desc = "Use this to select the landing zone of your assault pod." - item = /obj/item/assault_pod - cost = 30 - surplus = 0 - include_modes = list(/datum/game_mode/nuclear, /datum/game_mode/nuclear/clown_ops) - restricted = TRUE - -/datum/uplink_item/device_tools/binary - name = "Binary Translator Key" - desc = "A key that, when inserted into a radio headset, allows you to listen to and talk with silicon-based lifeforms, \ - such as AI units and cyborgs, over their private binary channel. Caution should \ - be taken while doing this, as unless they are allied with you, they are programmed to report such intrusions." - item = /obj/item/encryptionkey/binary - cost = 2 - surplus = 75 - restricted = TRUE - -/datum/uplink_item/device_tools/magboots - name = "Blood-Red Magboots" - desc = "A pair of magnetic boots with a Syndicate paintjob that assist with freer movement in space or on-station \ - during gravitational generator failures. These reverse-engineered knockoffs of Nanotrasen's \ - 'Advanced Magboots' slow you down in simulated-gravity environments much like the standard issue variety." - item = /obj/item/clothing/shoes/magboots/syndie - cost = 2 - include_modes = list(/datum/game_mode/nuclear, /datum/game_mode/nuclear/clown_ops) - -/datum/uplink_item/device_tools/compressionkit - name = "Bluespace Compression Kit" - desc = "A modified version of a BSRPED that can be used to reduce the size of most items while retaining their original functions! \ - Does not work on storage items. \ - Recharge using bluespace crystals. \ - Comes with 5 charges." - item = /obj/item/compressionkit - cost = 5 - -/datum/uplink_item/device_tools/briefcase_launchpad - name = "Briefcase Launchpad" - desc = "A briefcase containing a launchpad, a device able to teleport items and people to and from targets up to twenty tiles away from the briefcase. \ - Also includes a remote control, disguised as an ordinary folder. Touch the briefcase with the remote to link it." - surplus = 0 - item = /obj/item/storage/briefcase/launchpad - cost = 6 - -/datum/uplink_item/device_tools/camera_bug - name = "Camera Bug" - desc = "Enables you to view all cameras on the main network, set up motion alerts and track a target. \ - Bugging cameras allows you to disable them remotely." - item = /obj/item/camera_bug - cost = 1 - surplus = 90 - -/datum/uplink_item/device_tools/military_belt - name = "Chest Rig" - desc = "A robust seven-slot set of webbing that is capable of holding all manner of tactical equipment." - item = /obj/item/storage/belt/military - cost = 1 - exclude_modes = list(/datum/game_mode/nuclear) - -/datum/uplink_item/device_tools/fakenucleardisk - name = "Decoy Nuclear Authentication Disk" - desc = "It's just a normal disk. Visually it's identical to the real deal, but it won't hold up under closer scrutiny by the Captain. \ - Don't try to give this to us to complete your objective, we know better!" - item = /obj/item/disk/nuclear/fake - cost = 1 - surplus = 1 - -/datum/uplink_item/device_tools/frame - name = "F.R.A.M.E. PDA Cartridge" - desc = "When inserted into a personal digital assistant, this cartridge gives you five PDA viruses which \ - when used cause the targeted PDA to become a new uplink with zero TCs, and immediately become unlocked. \ - You will receive the unlock code upon activating the virus, and the new uplink may be charged with \ - telecrystals normally." - item = /obj/item/cartridge/virus/frame - cost = 2 - restricted = TRUE - -/datum/uplink_item/device_tools/toolbox - name = "Full Syndicate Toolbox" - desc = "The Syndicate toolbox is a suspicious black and red. It comes loaded with a full tool set including a \ - multitool and combat gloves that are resistant to shocks and heat." - item = /obj/item/storage/toolbox/syndicate - cost = 1 - -/datum/uplink_item/device_tools/syndie_glue - name = "Glue" - desc = "A cheap bottle of one use syndicate brand super glue. \ - Use on any item to make it undroppable. \ - Be careful not to glue an item you're already holding!" - exclude_modes = list(/datum/game_mode/nuclear, /datum/game_mode/nuclear/clown_ops) - item = /obj/item/syndie_glue - cost = 2 - -/datum/uplink_item/device_tools/hacked_module - name = "Hacked AI Law Upload Module" - desc = "When used with an upload console, this module allows you to upload priority laws to an artificial intelligence. \ - Be careful with wording, as artificial intelligences may look for loopholes to exploit." - item = /obj/item/aiModule/syndicate - cost = 9 - -/datum/uplink_item/device_tools/medgun - name = "Medbeam Gun" - desc = "A wonder of Syndicate engineering, the Medbeam gun, or Medi-Gun enables a medic to keep his fellow \ - operatives in the fight, even while under fire. Don't cross the streams!" - item = /obj/item/gun/medbeam - cost = 15 - include_modes = list(/datum/game_mode/nuclear, /datum/game_mode/nuclear/clown_ops) - -/datum/uplink_item/device_tools/nutcracker - name = "Nutcracker" - desc = "An oversized version of what you'd initially expect here. Big enough to crush skulls." - item = /obj/item/nutcracker - cost = 1 - -/datum/uplink_item/device_tools/singularity_beacon - name = "Power Beacon" - desc = "When screwed to wiring attached to an electric grid and activated, this large device pulls any \ - active gravitational singularities or tesla balls towards it (provided they are not safely \ - contained), as well as increasing the odds of incoming meteor waves. \ - Because of its size, it cannot be carried. Ordering this sends you a small beacon \ - that will teleport the larger beacon to your location upon activation." - item = /obj/item/sbeacondrop - cost = 14 - -/datum/uplink_item/device_tools/powersink - name = "Power Sink" - desc = "When screwed to wiring attached to a power grid and activated, this large device lights up and places excessive \ - load on the grid, causing a station-wide blackout. The sink is large and cannot be stored in most \ - traditional bags and boxes. Caution: Will explode if the powernet contains sufficient amounts of energy." - item = /obj/item/powersink - cost = 6 - -/datum/uplink_item/device_tools/rad_laser - name = "Radioactive Microlaser" - desc = "A radioactive microlaser disguised as a standard Nanotrasen health analyzer. When used, it emits a \ - powerful burst of radiation, which, after a short delay, can incapacitate all but the most protected \ - of humanoids. It has two settings: intensity, which controls the power of the radiation, \ - and wavelength, which controls the delay before the effect kicks in." - item = /obj/item/healthanalyzer/rad_laser - cost = 3 - -/datum/uplink_item/device_tools/stimpack - name = "Stimpack" - desc = "Stimpacks, the tool of many great heroes, make you nearly immune to stuns and knockdowns for about \ - 5 minutes after injection." - item = /obj/item/reagent_containers/syringe/stimulants - cost = 5 - surplus = 90 - -/datum/uplink_item/device_tools/medkit - name = "Syndicate Combat Medic Kit" - desc = "This first aid kit is a suspicious brown and red. Included is a combat stimulant injector \ - for rapid healing, a medical night vision HUD for quick identification of injured personnel, \ - and other supplies helpful for a field medic." - item = /obj/item/storage/firstaid/tactical/nukeop - cost = 4 - include_modes = list(/datum/game_mode/nuclear, /datum/game_mode/nuclear/clown_ops) - -/datum/uplink_item/device_tools/surgerybag - name = "Syndicate Surgery Duffel Bag" - desc = "The Syndicate surgery duffel bag is a toolkit containing all surgery tools, surgical drapes, \ - a Syndicate brand MMI, a straitjacket, and a muzzle." - item = /obj/item/storage/backpack/duffelbag/syndie/surgery - cost = 3 - -/datum/uplink_item/device_tools/surgerybag_adv - name = "Advanced Syndicate Surgery Duffel Bag" - desc = "The Syndicate surgery duffel bag is a toolkit containing all advanced surgery tools, surgical drapes, \ - a Syndicate brand MMI, a straitjacket, a muzzle, and an outdated, yet still useful Combat Medic Kit." - item = /obj/item/storage/backpack/duffelbag/syndie/surgery_adv - cost = 10 - -/datum/uplink_item/device_tools/brainwash_disk - name = "Brainwashing Surgery Program" - desc = "A disk containing the procedure to perform a brainwashing surgery, allowing you to implant an objective onto a target. \ - Insert into an Operating Console to enable the procedure." - item = /obj/item/disk/surgery/brainwashing - cost = 3 - -/datum/uplink_item/device_tools/encryptionkey - name = "Syndicate Encryption Key" - desc = "A key that, when inserted into a radio headset, allows you to listen to all station department channels \ - as well as talk on an encrypted Syndicate channel with other agents that have the same key." - item = /obj/item/encryptionkey/syndicate - cost = 2 - surplus = 75 - restricted = TRUE - -/datum/uplink_item/device_tools/syndietome - name = "Syndicate Tome" - desc = "Using rare artifacts acquired at great cost, the Syndicate has reverse engineered \ - the seemingly magical books of a certain cult. Though lacking the esoteric abilities \ - of the originals, these inferior copies are still quite useful, being able to provide \ - both weal and woe on the battlefield, even if they do occasionally bite off a finger." - item = /obj/item/storage/book/bible/syndicate - cost = 9 - -/datum/uplink_item/device_tools/thermal - name = "Thermal Imaging Glasses" - desc = "These goggles can be turned to resemble common eyewear found throughout the station. \ - They allow you to see organisms through walls by capturing the upper portion of the infrared light spectrum, \ - emitted as heat and light by objects. Hotter objects, such as warm bodies, cybernetic organisms \ - and artificial intelligence cores emit more of this light than cooler objects like walls and airlocks." - item = /obj/item/clothing/glasses/thermal/syndi - cost = 4 - -/datum/uplink_item/device_tools/potion - name = "Syndicate Sentience Potion" - item = /obj/item/slimepotion/slime/sentience/nuclear - desc = "A potion recovered at great risk by undercover Syndicate operatives and then subsequently modified with Syndicate technology. \ - Using it will make any animal sentient, and bound to serve you, as well as implanting an internal radio for communication and an internal ID card for opening doors." - cost = 2 - include_modes = list(/datum/game_mode/nuclear, /datum/game_mode/nuclear/clown_ops) - restricted = TRUE - - -// Implants - -/datum/uplink_item/implants/adrenal - name = "Adrenal Implant" - desc = "An implant injected into the body, and later activated at the user's will. It will inject a chemical \ - cocktail which removes all incapacitating effects, lets the user run faster and has a mild healing effect." - item = /obj/item/storage/box/syndie_kit/imp_adrenal - cost = 8 - player_minimum = 25 - -/datum/uplink_item/implants/antistun - name = "CNS Rebooter Implant" - desc = "This implant will help you get back up on your feet faster after being stunned. Comes with an autosurgeon." - item = /obj/item/autosurgeon/anti_stun - cost = 12 - include_modes = list(/datum/game_mode/nuclear) - -/datum/uplink_item/implants/freedom - name = "Freedom Implant" - desc = "An implant injected into the body and later activated at the user's will. It will attempt to free the \ - user from common restraints such as handcuffs." - item = /obj/item/storage/box/syndie_kit/imp_freedom - cost = 5 - -/datum/uplink_item/implants/microbomb - name = "Microbomb Implant" - desc = "An implant injected into the body, and later activated either manually or automatically upon death. \ - The more implants inside of you, the higher the explosive power. \ - This will permanently destroy your body, however." - item = /obj/item/storage/box/syndie_kit/imp_microbomb - cost = 2 - include_modes = list(/datum/game_mode/nuclear) - -/datum/uplink_item/implants/macrobomb - name = "Macrobomb Implant" - desc = "An implant injected into the body, and later activated either manually or automatically upon death. \ - Upon death, releases a massive explosion that will wipe out everything nearby." - item = /obj/item/storage/box/syndie_kit/imp_macrobomb - cost = 20 - include_modes = list(/datum/game_mode/nuclear) - restricted = TRUE - -/datum/uplink_item/implants/radio - name = "Internal Syndicate Radio Implant" - desc = "An implant injected into the body, allowing the use of an internal Syndicate radio. \ - Used just like a regular headset, but can be disabled to use external headsets normally and to avoid detection." - item = /obj/item/storage/box/syndie_kit/imp_radio - cost = 4 - restricted = TRUE - -/datum/uplink_item/implants/reviver - name = "Reviver Implant" - desc = "This implant will attempt to revive and heal you if you lose consciousness. Comes with an autosurgeon." - item = /obj/item/autosurgeon/reviver - cost = 8 - include_modes = list(/datum/game_mode/nuclear) - -/datum/uplink_item/implants/stealthimplant - name = "Stealth Implant" - desc = "This one-of-a-kind implant will make you almost invisible as long as you don't don't excessively move around. \ - On activation, it will conceal you inside a chameleon cardboard box that is only revealed once someone bumps into it." - item = /obj/item/implanter/stealth - cost = 8 - -/datum/uplink_item/implants/storage - name = "Storage Implant" - desc = "An implant injected into the body, and later activated at the user's will. It will open a small bluespace \ - pocket capable of storing two regular-sized items." - item = /obj/item/storage/box/syndie_kit/imp_storage - cost = 8 - -/datum/uplink_item/implants/thermals - name = "Thermal Eyes" - desc = "These cybernetic eyes will give you thermal vision. Comes with a free autosurgeon." - item = /obj/item/autosurgeon/thermal_eyes - cost = 8 - include_modes = list(/datum/game_mode/nuclear) - -/datum/uplink_item/implants/uplink - name = "Uplink Implant" - desc = "An implant injected into the body, and later activated at the user's will. Has no telecrystals and must be charged by the use of physical telecrystals. \ - Undetectable (except via surgery), and excellent for escaping confinement." - item = /obj/item/storage/box/syndie_kit/imp_uplink - cost = 4 - // An empty uplink is kinda useless. - surplus = 0 - restricted = TRUE - -/datum/uplink_item/implants/xray - name = "X-ray Vision Implant" - desc = "These cybernetic eyes will give you X-ray vision. Comes with an autosurgeon." - item = /obj/item/autosurgeon/xray_eyes - cost = 10 - surplus = 0 - include_modes = list(/datum/game_mode/nuclear) - -// Role-specific items - -/datum/uplink_item/role_restricted/ancient_jumpsuit - name = "Ancient Jumpsuit" - desc = "A tattered old jumpsuit that will provide absolutely no benefit to you. It fills the wearer with a strange compulsion to blurt out 'glorf'." - item = /obj/item/clothing/under/color/grey/glorf - cost = 20 - restricted_roles = list("Assistant") - -/datum/uplink_item/role_restricted/pie_cannon - name = "Banana Cream Pie Cannon" - desc = "A special pie cannon for a special clown, this gadget can hold up to 20 pies and automatically fabricates one every two seconds!" - cost = 10 - item = /obj/item/pneumatic_cannon/pie/selfcharge - restricted_roles = list("Clown") - -/datum/uplink_item/role_restricted/blastcannon - name = "Blast Cannon" - desc = "A highly specialized weapon, the Blast Cannon is actually relatively simple. It contains an attachment for a tank transfer valve mounted to an angled pipe specially constructed \ - withstand extreme pressure and temperatures, and has a mechanical trigger for triggering the transfer valve. Essentially, it turns the explosive force of a bomb into a narrow-angle \ - blast wave \"projectile\". Aspiring scientists may find this highly useful, as forcing the pressure shockwave into a narrow angle seems to be able to bypass whatever quirk of physics \ - disallows explosive ranges above a certain distance, allowing for the device to use the theoretical yield of a transfer valve bomb, instead of the factual yield." - item = /obj/item/gun/blastcannon - cost = 14 //High cost because of the potential for extreme damage in the hands of a skilled gas masked scientist. - restricted_roles = list("Research Director", "Scientist") - -/datum/uplink_item/role_restricted/alientech - name = "Alien Research Disk" - desc = "A technology disk holding a terabyte of highly confidential abductor technology. \ - Simply insert into research console of choice and import the files from the disk. Because of its foreign nature, it may require multiple uploads to work properly." - item = /obj/item/disk/tech_disk/abductor - cost = 12 - restricted_roles = list("Research Director", "Scientist", "Roboticist") - -/datum/uplink_item/role_restricted/clown_bomb - name = "Clown Bomb" - desc = "The Clown bomb is a hilarious device capable of massive pranks. It has an adjustable timer, \ - with a minimum of 60 seconds, and can be bolted to the floor with a wrench to prevent \ - movement. The bomb is bulky and cannot be moved; upon ordering this item, a smaller beacon will be \ - transported to you that will teleport the actual bomb to it upon activation. Note that this bomb can \ - be defused, and some crew may attempt to do so. \ - The bomb core can be pried out and manually detonated with other explosives." - item = /obj/item/sbeacondrop/clownbomb - cost = 15 - restricted_roles = list("Clown") - -/* -/datum/uplink_item/role_restricted/clowncar - name = "Clown Car" - desc = "The Clown Car is the ultimate transportation method for any worthy clown! \ - Simply insert your bikehorn and get in, and get ready to have the funniest ride of your life! \ - You can ram any spacemen you come across and stuff them into your car, kidnapping them and locking them inside until \ - someone saves them or they manage to crawl out. Be sure not to ram into any walls or vending machines, as the springloaded seats \ - are very sensetive. Now with our included lube defense mechanism which will protect you against any angry shitcurity!" - item = /obj/vehicle/sealed/car/clowncar - cost = 15 - restricted_roles = list("Clown") -*/ - -/datum/uplink_item/role_restricted/clumsyDNA - name = "Clumsy Clown DNA" - desc = "A DNA injector that has been loaded with the clown gene that makes people clumsy.. \ - Making someone clumsy will allow them to use clown firing pins as well as Reverse Revolvers. For a laugh try using this on the HOS to see how many times they shoot themselves in the foot!" - cost = 1 - item = /obj/item/dnainjector/clumsymut - restricted_roles = list("Clown") - -/datum/uplink_item/role_restricted/haunted_magic_eightball - name = "Haunted Magic Eightball" - desc = "Most magic eightballs are toys with dice inside. Although identical in appearance to the harmless toys, this occult device reaches into the spirit world to find its answers. \ - Be warned, that spirits are often capricious or just little assholes. To use, simply speak your question aloud, then begin shaking." - item = /obj/item/toy/eightball/haunted - cost = 2 - restricted_roles = list("Curator") - limited_stock = 1 //please don't spam deadchat - -/datum/uplink_item/role_restricted/his_grace - name = "His Grace" - desc = "An incredibly dangerous weapon recovered from a station overcome by the grey tide. Once activated, He will thirst for blood and must be used to kill to sate that thirst. \ - His Grace grants gradual regeneration and complete stun immunity to His wielder, but be wary: if He gets too hungry, He will become impossible to drop and eventually kill you if not fed. \ - However, if left alone for long enough, He will fall back to slumber. \ - To activate His Grace, simply unlatch Him." - item = /obj/item/his_grace - cost = 20 - restricted_roles = list("Chaplain") - surplus = 5 //Very low chance to get it in a surplus crate even without being the chaplain - -/datum/uplink_item/role_restricted/explosive_hot_potato - name = "Exploding Hot Potato" - desc = "A potato rigged with explosives. On activation, a special mechanism is activated that prevents it from being dropped. \ - The only way to get rid of it if you are holding it is to attack someone else with it, causing it to latch to that person instead." - item = /obj/item/hot_potato/syndicate - cost = 4 - restricted_roles = list("Cook", "Botanist", "Clown", "Mime") - -/datum/uplink_item/role_restricted/strange_seeds - name = "Pack of strange seeds" - desc = "Mysterious seeds as strange as their name implies. Spooky." - item = /obj/item/seeds/random - cost = 2 - restricted_roles = list("Botanist") - illegal_tech = FALSE - -/datum/uplink_item/role_restricted/strange_seeds_10pack - name = "Pack of strange seeds x10" - desc = "Mysterious seeds as strange as their name implies. Spooky. These come in bulk" - item = /obj/item/storage/box/strange_seeds_10pack - cost = 20 - restricted_roles = list("Botanist") - -/datum/uplink_item/role_restricted/ez_clean_bundle - name = "EZ Clean Grenade Bundle" - desc = "A box with three cleaner grenades using the trademark Waffle Co. formula. Serves as a cleaner and causes acid damage to anyone standing nearby. \ - The acid only affects carbon-based creatures." - item = /obj/item/storage/box/syndie_kit/ez_clean - cost = 6 - surplus = 20 - restricted_roles = list("Janitor") - -/datum/uplink_item/role_restricted/goldenbox - name = "Gold Toolbox" - desc = "A gold planted plastitanium toolbox loaded with tools. Comes with a set of AI detection multi-tool and a pare of combat gloves." - item = /obj/item/storage/toolbox/gold_real - cost = 3 // Has syndie tools + gloves + a robust weapon - restricted_roles = list("Assistant", "Curator") //Curator due to this being made of gold - It fits the theme - -/datum/uplink_item/role_restricted/mimery - name = "Guide to Advanced Mimery Series" - desc = "The classical two part series on how to further hone your mime skills. Upon studying the series, the user should be able to make 3x1 invisible walls, and shoot bullets out of their fingers. \ - Obviously only works for Mimes." - cost = 12 - item = /obj/item/storage/box/syndie_kit/mimery - restricted_roles = list("Mime") - -/datum/uplink_item/role_restricted/ultrahonkpins - name = "Hilarious firing pin" - desc = "A single firing pin made for Clown agents, this firing pin makes any gun honk when fired if not a true clown! \ - This firing pin also helps you fire the gun correctly. May the HonkMother HONK you agent." - item = /obj/item/firing_pin/clown/ultra - cost = 2 - restricted_roles = list("Clown") - -/datum/uplink_item/role_restricted/pressure_mod - name = "Kinetic Accelerator Pressure Mod" - desc = "A modification kit which allows Kinetic Accelerators to do greatly increased damage while indoors. \ - Occupies 35% mod capacity." - item = /obj/item/borg/upgrade/modkit/indoors - cost = 5 //you need two for full damage, so total of 10 for maximum damage - limited_stock = 2 //you can't use more than two! - restricted_roles = list("Shaft Miner") - -/datum/uplink_item/role_restricted/kitchen_gun - name = "Kitchen Gun (TM)" - desc = "A revolutionary .45 caliber cleaning solution! Say goodbye to daily stains and dirty surfaces with Kitchen Gun (TM)! \ - Just five shots from Kitchen Gun (TM), and it'll sparkle like new! Includes two extra ammunition clips!" - cost = 10 - surplus = 40 - restricted_roles = list("Cook", "Janitor") - item = /obj/item/storage/box/syndie_kit/kitchen_gun - -/datum/uplink_item/role_restricted/kitchen_gun_ammo - name = "Kitchen Gun (TM) .45 Magazine" - desc = "An extra eight bullets for an extra eight uses of Kitchen Gun (TM)!" - cost = 1 - restricted_roles = list("Cook", "Janitor") - item = /obj/item/ammo_box/magazine/m45/kitchengun - -/datum/uplink_item/role_restricted/magillitis_serum - name = "Magillitis Serum Autoinjector" - desc = "A single-use autoinjector which contains an experimental serum that causes rapid muscular growth in Hominidae. \ - Side-affects may include hypertrichosis, violent outbursts, and an unending affinity for bananas." - item = /obj/item/reagent_containers/hypospray/magillitis - cost = 8 - restricted_roles = list("Geneticist", "Chief Medical Officer") - -/datum/uplink_item/role_restricted/modified_syringe_gun - name = "Modified Syringe Gun" - desc = "A syringe gun that fires DNA injectors instead of normal syringes." - item = /obj/item/gun/syringe/dna - cost = 14 - restricted_roles = list("Geneticist", "Chief Medical Officer") - -/datum/uplink_item/role_restricted/chemical_gun - name = "Reagent Dartgun" - desc = "A heavily modified syringe gun which is capable of synthesizing its own chemical darts using input reagents. Can hold 100u of reagents." - item = /obj/item/gun/chem - cost = 12 - restricted_roles = list("Chemist", "Chief Medical Officer") - -/datum/uplink_item/role_restricted/reverse_bear_trap - name = "Reverse Bear Trap" - desc = "An ingenious execution device worn on (or forced onto) the head. Arming it starts a 1-minute kitchen timer mounted on the bear trap. When it goes off, the trap's jaws will \ - violently open, instantly killing anyone wearing it by tearing their jaws in half. To arm, attack someone with it while they're not wearing headgear, and you will force it onto their \ - head after three seconds uninterrupted." - cost = 5 - item = /obj/item/reverse_bear_trap - restricted_roles = list("Clown") - -/datum/uplink_item/role_restricted/reverse_revolver - name = "Reverse Revolver" - desc = "A revolver that always fires at its user. \"Accidentally\" drop your weapon, then watch as the greedy corporate pigs blow their own brains all over the wall. \ - The revolver itself is actually real. Only clumsy people, and clowns, can fire it normally. Comes in a box of hugs. Honk." - cost = 14 - item = /obj/item/storage/box/hug/reverse_revolver - restricted_roles = list("Clown") - -/datum/uplink_item/role_restricted/taeclowndo_shoes - name = "Tae-clown-do Shoes" - desc = "A pair of shoes for the most elite agents of the honkmotherland. They grant the mastery of taeclowndo with some honk-fu moves as long as they're worn." - cost = 14 - item = /obj/item/clothing/shoes/clown_shoes/taeclowndo - restricted_roles = list("Clown") - -/datum/uplink_item/role_restricted/emitter_cannon - name = "Emitter Cannon" - desc = "A small emitter fitted into a gun case, do to size constraints and safety it can only shoot about ten times when fully charged." - cost = 5 //Low ammo, and deals same as 10mm but emp-able - item = /obj/item/gun/energy/emitter - restricted_roles = list("Chief Engineer", "Station Engineer", "Atmospheric Technician") - -// Pointless (Badassery) - -/datum/uplink_item/badass/costumes/obvious_chameleon - name = "Broken Chameleon Kit" - desc = "A set of items that contain chameleon technology allowing you to disguise as pretty much anything on the station, and more! \ - Please note that this kit did NOT pass quality control." - item = /obj/item/storage/box/syndie_kit/chameleon/broken - -/datum/uplink_item/badass/costumes - include_modes = list(/datum/game_mode/nuclear, /datum/game_mode/nuclear/clown_ops) - cost = 4 - cant_discount = TRUE - -/datum/uplink_item/badass/costumes/centcom_official - name = "CentCom Official Costume" - desc = "Ask the crew to \"inspect\" their nuclear disk and weapons system, and then when they decline, pull out a fully automatic rifle and gun down the Captain. \ - Radio headset does not include encryption key. No gun included." - item = /obj/item/storage/box/syndie_kit/centcom_costume - -/datum/uplink_item/badass/claymore - name = "Claymore" - cost = 8 - player_minimum = 25 - desc = "A claymore. We don't know why you'd do this." - item = /obj/item/claymore - -/datum/uplink_item/badass/costumes/clown - name = "Clown Costume" - desc = "Nothing is more terrifying than clowns with fully automatic weaponry." - item = /obj/item/storage/backpack/duffelbag/clown/syndie - -/datum/uplink_item/badass/plastitanium_toolbox - name = "Plastitanium Toolbox" - desc = "A very high impact toolbox. Excels at destroying stationary structures." - item = /obj/item/storage/toolbox/plastitanium - cost = 2 //18 damage on mobs, 50 on objects, 4.5 stam/hit - -/datum/uplink_item/badass/balloon - name = "Syndicate Balloon" - desc = "For showing that you are THE BOSS: A useless red balloon with the Syndicate logo on it. \ - Can blow the deepest of covers." - item = /obj/item/toy/syndicateballoon - cost = 20 - cant_discount = TRUE - illegal_tech = FALSE - -/datum/uplink_item/badass/syndiecash - name = "Syndicate Briefcase Full of Cash" - desc = "A secure briefcase containing 5000 space credits. Useful for bribing personnel, or purchasing goods \ - and services at lucrative prices. The briefcase also feels a little heavier to hold; it has been \ - manufactured to pack a little bit more of a punch if your client needs some convincing." - item = /obj/item/storage/secure/briefcase/syndie - cost = 1 - -/datum/uplink_item/badass/syndiecards - name = "Syndicate Playing Cards" - desc = "A special deck of space-grade playing cards with a mono-molecular edge and metal reinforcement, \ - making them slightly more robust than a normal deck of cards. \ - You can also play card games with them or leave them on your victims." - item = /obj/item/toy/cards/deck/syndicate - cost = 1 - surplus = 40 - illegal_tech = FALSE - -/datum/uplink_item/badass/syndiecigs - name = "Syndicate Smokes" - desc = "Strong flavor, dense smoke, infused with omnizine." - item = /obj/item/storage/fancy/cigarettes/cigpack_syndicate - cost = 2 - illegal_tech = FALSE diff --git a/code/modules/uplink/uplink_items/uplink_ammo.dm b/code/modules/uplink/uplink_items/uplink_ammo.dm new file mode 100644 index 0000000000..0db1bc96f0 --- /dev/null +++ b/code/modules/uplink/uplink_items/uplink_ammo.dm @@ -0,0 +1,255 @@ + +/* + Uplink Items: + Unlike categories, uplink item entries are automatically sorted alphabetically on server init in a global list, + When adding new entries to the file, please keep them sorted by category. +*/ + +// Ammunition + +/datum/uplink_item/ammo/pistol + name = "10mm Handgun Magazine" + desc = "An additional 8-round 10mm magazine; compatible with the Stechkin Pistol. These rounds \ + are dirt cheap but are half as effective as .357 rounds." + item = /obj/item/ammo_box/magazine/m10mm + cost = 1 + exclude_modes = list(/datum/game_mode/nuclear/clown_ops) + +/datum/uplink_item/ammo/pistolap + name = "10mm Armour Piercing Magazine" + desc = "An additional 8-round 10mm magazine; compatible with the Stechkin Pistol. \ + These rounds are less effective at injuring the target but penetrate protective gear." + item = /obj/item/ammo_box/magazine/m10mm/ap + cost = 2 + exclude_modes = list(/datum/game_mode/nuclear/clown_ops) + +/datum/uplink_item/ammo/pistolhp + name = "10mm Hollow Point Magazine" + desc = "An additional 8-round 10mm magazine; compatible with the Stechkin Pistol. \ + These rounds are more damaging but ineffective against armour." + item = /obj/item/ammo_box/magazine/m10mm/hp + cost = 3 + exclude_modes = list(/datum/game_mode/nuclear/clown_ops) + +/datum/uplink_item/ammo/pistolfire + name = "10mm Incendiary Magazine" + desc = "An additional 8-round 10mm magazine; compatible with the Stechkin Pistol. \ + Loaded with incendiary rounds which inflict little damage, but ignite the target." + item = /obj/item/ammo_box/magazine/m10mm/fire + cost = 2 + exclude_modes = list(/datum/game_mode/nuclear/clown_ops) + +/datum/uplink_item/ammo/pistolzzz + name = "10mm Soporific Magazine" + desc = "An additional 8-round 10mm magazine; compatible with the Stechkin Pistol. Loaded with soporific rounds that put the target to sleep. \ + NOTE: Soporific is not instant acting due to the constraints of the round's scale. Will usually require three shots to take effect." + item = /obj/item/ammo_box/magazine/m10mm/soporific + cost = 2 + +/datum/uplink_item/ammo/shotgun + cost = 2 + include_modes = list(/datum/game_mode/nuclear) + +/datum/uplink_item/ammo/shotgun/bag + name = "12g Ammo Duffel Bag" + desc = "A duffel bag filled with enough 12g ammo to supply an entire team, at a discounted price." + item = /obj/item/storage/backpack/duffelbag/syndie/ammo/shotgun + cost = 12 + +/datum/uplink_item/ammo/shotgun/buck + name = "12g Buckshot Drum" + desc = "An additional 8-round buckshot magazine for use with the Bulldog shotgun. Front towards enemy." + item = /obj/item/ammo_box/magazine/m12g + +/datum/uplink_item/ammo/shotgun/dragon + name = "12g Dragon's Breath Drum" + desc = "An alternative 8-round dragon's breath magazine for use in the Bulldog shotgun. \ + 'I'm a fire starter, twisted fire starter!'" + item = /obj/item/ammo_box/magazine/m12g/dragon + include_modes = list(/datum/game_mode/nuclear) + +/datum/uplink_item/ammo/shotgun/meteor + name = "12g Meteorslug Shells" + desc = "An alternative 8-round meteorslug magazine for use in the Bulldog shotgun. \ + Great for blasting airlocks off their frames and knocking down enemies." + item = /obj/item/ammo_box/magazine/m12g/meteor + include_modes = list(/datum/game_mode/nuclear) + +/datum/uplink_item/ammo/shotgun/scatter + name = "12g Scatter Laser shot Slugs" + desc = "An alternative 8-round Scatter Laser Shot magazine for use in the Bulldog shotgun." + item = /obj/item/ammo_box/magazine/m12g/scatter + cost = 4 // most armor has less laser protection then bullet + +/datum/uplink_item/ammo/shotgun/slug + name = "12g Slug Drum" + desc = "An additional 8-round slug magazine for use with the Bulldog shotgun. \ + Now 8 times less likely to shoot your pals." + cost = 3 + item = /obj/item/ammo_box/magazine/m12g/slug + +/datum/uplink_item/ammo/shotgun/stun + name = "12g Stun Slug Drum" + desc = "An alternative 8-round stun slug magazine for use with the Bulldog shotgun. \ + Saying that they're completely non-lethal would be lying." + item = /obj/item/ammo_box/magazine/m12g/stun + include_modes = list(/datum/game_mode/nuclear) + +/datum/uplink_item/ammo/revolver + name = ".357 Speed Loader" + desc = "A speed loader that contains seven additional .357 Magnum rounds, and can be further reloaded with individual bullets; usable with the Syndicate revolver. \ + For when you really need a lot of things dead." + item = /obj/item/ammo_box/a357 + cost = 3 + exclude_modes = list(/datum/game_mode/nuclear/clown_ops) + +/datum/uplink_item/ammo/revolver/ap + name = ".357 Armor Piercing Speed Loader" + desc = "A speed loader that contains seven additional .357 AP Magnum rounds; usable with the Syndicate revolver. \ + Cuts through like a hot knife through butter." + item = /obj/item/ammo_box/a357/ap + +/datum/uplink_item/ammo/a40mm + name = "40mm Grenade" + desc = "A 40mm HE grenade for use with the M-90gl's under-barrel grenade launcher. \ + Your teammates will ask you to not shoot these down small hallways." + item = /obj/item/ammo_casing/a40mm + cost = 2 + include_modes = list(/datum/game_mode/nuclear) + +/datum/uplink_item/ammo/smg/bag + name = ".45 Ammo Duffel Bag" + desc = "A duffel bag filled with enough .45 ammo to supply an entire team, at a discounted price." + item = /obj/item/storage/backpack/duffelbag/syndie/ammo/smg + cost = 20 //instead of 27 TC + include_modes = list(/datum/game_mode/nuclear) + +/datum/uplink_item/ammo/smg + name = ".45 SMG Magazine" + desc = "An additional 24-round .45 magazine suitable for use with the C-20r submachine gun." + item = /obj/item/ammo_box/magazine/smgm45 + cost = 3 + include_modes = list(/datum/game_mode/nuclear) + +/datum/uplink_item/ammo/sniper + cost = 4 + include_modes = list(/datum/game_mode/nuclear) + +/datum/uplink_item/ammo/sniper/basic + name = ".50 Magazine" + desc = "An additional standard 6-round magazine for use with .50 sniper rifles." + item = /obj/item/ammo_box/magazine/sniper_rounds + +/datum/uplink_item/ammo/sniper/penetrator + name = ".50 Penetrator Magazine" + desc = "A 5-round magazine of penetrator ammo designed for use with .50 sniper rifles. \ + Can pierce walls and multiple enemies." + item = /obj/item/ammo_box/magazine/sniper_rounds/penetrator + cost = 5 + +/datum/uplink_item/ammo/sniper/soporific + name = ".50 Soporific Magazine" + desc = "A 3-round magazine of soporific ammo designed for use with .50 sniper rifles. Put your enemies to sleep today!" + item = /obj/item/ammo_box/magazine/sniper_rounds/soporific + cost = 6 + +/datum/uplink_item/ammo/carbine + name = "5.56mm Toploader Magazine" + desc = "An additional 30-round 5.56mm magazine; suitable for use with the M-90gl carbine. \ + These bullets pack less punch than 7.12x82mm rounds, but they still offer more power than .45 ammo." + item = /obj/item/ammo_box/magazine/m556 + cost = 4 + include_modes = list(/datum/game_mode/nuclear) + +/datum/uplink_item/ammo/machinegun + cost = 6 + surplus = 0 + include_modes = list(/datum/game_mode/nuclear) + +/datum/uplink_item/ammo/machinegun/basic + name = "1.95x129mm Box Magazine" + desc = "A 50-round magazine of 1.95x129mm ammunition for use with the L6 SAW. \ + By the time you need to use this, you'll already be standing on a pile of corpses" + item = /obj/item/ammo_box/magazine/mm195x129 + +/datum/uplink_item/ammo/machinegun/ap + name = "1.95x129mm (Armor Penetrating) Box Magazine" + desc = "A 50-round magazine of 1.95x129mm ammunition for use in the L6 SAW; equipped with special properties \ + to puncture even the most durable armor." + item = /obj/item/ammo_box/magazine/mm195x129/ap + cost = 9 + +/datum/uplink_item/ammo/machinegun/hollow + name = "1.95x129mm (Hollow-Point) Box Magazine" + desc = "A 50-round magazine of 1.95x129mm ammunition for use in the L6 SAW; equipped with hollow-point tips to help \ + with the unarmored masses of crew." + item = /obj/item/ammo_box/magazine/mm195x129/hollow + +/datum/uplink_item/ammo/machinegun/incen + name = "1.95x129mm (Incendiary) Box Magazine" + desc = "A 50-round magazine of 1.95x129mm ammunition for use in the L6 SAW; tipped with a special flammable \ + mixture that'll ignite anyone struck by the bullet. Some men just want to watch the world burn." + item = /obj/item/ammo_box/magazine/mm195x129/incen + +/datum/uplink_item/ammo/rocket + include_modes = list(/datum/game_mode/nuclear) + +/datum/uplink_item/ammo/rocket/basic + name = "84mm HE Rocket" + desc = "A low-yield anti-personnel HE rocket. Gonna take you out in style!" + item = /obj/item/ammo_casing/caseless/rocket + cost = 4 + +/datum/uplink_item/ammo/rocket/hedp + name = "84mm HEDP Rocket" + desc = "A high-yield HEDP rocket; extremely effective against armored targets, as well as surrounding personnel. \ + Strike fear into the hearts of your enemies." + item = /obj/item/ammo_casing/caseless/rocket/hedp + cost = 6 + +/datum/uplink_item/ammo/pistolaps + name = "9mm Handgun Magazine" + desc = "An additional 15-round 9mm magazine, compatible with the Stechkin APS pistol, found in the Spetsnaz Pyro bundle." + item = /obj/item/ammo_box/magazine/pistolm9mm + cost = 2 + include_modes = list(/datum/game_mode/nuclear) + +/datum/uplink_item/ammo/flechetteap + name = "Armor Piercing Flechette Magazine" + desc = "An additional 40-round flechette magazine; compatible with the Flechette Launcer. \ + Loaded with armor piercing flechettes that very nearly ignore armor, but are not very effective agaisnt flesh." + item = /obj/item/ammo_box/magazine/flechette + cost = 2 + include_modes = list(/datum/game_mode/nuclear) + +/datum/uplink_item/ammo/flechettes + name = "Serrated Flechette Magazine" + desc = "An additional 40-round flechette magazine; compatible with the Flechette Launcer. \ + Loaded with serrated flechettes that shreds flesh, but is stopped dead in its tracks by armor. \ + These flechettes are highly likely to sever arteries, and even limbs." + item = /obj/item/ammo_box/magazine/flechette/s + cost = 2 + include_modes = list(/datum/game_mode/nuclear) + +/datum/uplink_item/ammo/toydarts + name = "Box of Riot Darts" + desc = "A box of 40 Donksoft riot darts, for reloading any compatible foam dart magazine. Don't forget to share!" + item = /obj/item/ammo_box/foambox/riot + cost = 2 + surplus = 0 + illegal_tech = FALSE + +/datum/uplink_item/ammo/bioterror + name = "Box of Bioterror Syringes" + desc = "A box full of preloaded syringes, containing various chemicals that seize up the victim's motor \ + and broca systems, making it impossible for them to move or speak for some time." + item = /obj/item/storage/box/syndie_kit/bioterror + cost = 6 + include_modes = list(/datum/game_mode/nuclear, /datum/game_mode/nuclear/clown_ops) + +/datum/uplink_item/ammo/bolt_action + name = "Surplus Rifle Clip" + desc = "A stripper clip used to quickly load bolt action rifles. Contains 5 rounds." + item = /obj/item/ammo_box/a762 + cost = 1 + include_modes = list(/datum/game_mode/nuclear) diff --git a/code/modules/uplink/uplink_items/uplink_badass.dm b/code/modules/uplink/uplink_items/uplink_badass.dm new file mode 100644 index 0000000000..8dc5afbadd --- /dev/null +++ b/code/modules/uplink/uplink_items/uplink_badass.dm @@ -0,0 +1,77 @@ + +/* + Uplink Items: + Unlike categories, uplink item entries are automatically sorted alphabetically on server init in a global list, + When adding new entries to the file, please keep them sorted by category. +*/ + +// Pointless (Badassery) + +/datum/uplink_item/badass/costumes/obvious_chameleon + name = "Broken Chameleon Kit" + desc = "A set of items that contain chameleon technology allowing you to disguise as pretty much anything on the station, and more! \ + Please note that this kit did NOT pass quality control." + item = /obj/item/storage/box/syndie_kit/chameleon/broken + +/datum/uplink_item/badass/costumes + include_modes = list(/datum/game_mode/nuclear, /datum/game_mode/nuclear/clown_ops) + cost = 4 + cant_discount = TRUE + +/datum/uplink_item/badass/costumes/centcom_official + name = "CentCom Official Costume" + desc = "Ask the crew to \"inspect\" their nuclear disk and weapons system, and then when they decline, pull out a fully automatic rifle and gun down the Captain. \ + Radio headset does not include encryption key. No gun included." + item = /obj/item/storage/box/syndie_kit/centcom_costume + +/datum/uplink_item/badass/claymore + name = "Claymore" + cost = 8 + player_minimum = 25 + desc = "A claymore. We don't know why you'd do this." + item = /obj/item/claymore + +/datum/uplink_item/badass/costumes/clown + name = "Clown Costume" + desc = "Nothing is more terrifying than clowns with fully automatic weaponry." + item = /obj/item/storage/backpack/duffelbag/clown/syndie + +/datum/uplink_item/badass/plastitanium_toolbox + name = "Plastitanium Toolbox" + desc = "A very high impact toolbox. Excels at destroying stationary structures." + item = /obj/item/storage/toolbox/plastitanium + cost = 2 //18 damage on mobs, 50 on objects, 4.5 stam/hit + +/datum/uplink_item/badass/balloon + name = "Syndicate Balloon" + desc = "For showing that you are THE BOSS: A useless red balloon with the Syndicate logo on it. \ + Can blow the deepest of covers." + item = /obj/item/toy/syndicateballoon + cost = 20 + cant_discount = TRUE + illegal_tech = FALSE + +/datum/uplink_item/badass/syndiecash + name = "Syndicate Briefcase Full of Cash" + desc = "A secure briefcase containing 5000 space credits. Useful for bribing personnel, or purchasing goods \ + and services at lucrative prices. The briefcase also feels a little heavier to hold; it has been \ + manufactured to pack a little bit more of a punch if your client needs some convincing." + item = /obj/item/storage/secure/briefcase/syndie + cost = 1 + +/datum/uplink_item/badass/syndiecards + name = "Syndicate Playing Cards" + desc = "A special deck of space-grade playing cards with a mono-molecular edge and metal reinforcement, \ + making them slightly more robust than a normal deck of cards. \ + You can also play card games with them or leave them on your victims." + item = /obj/item/toy/cards/deck/syndicate + cost = 1 + surplus = 40 + illegal_tech = FALSE + +/datum/uplink_item/badass/syndiecigs + name = "Syndicate Smokes" + desc = "Strong flavor, dense smoke, infused with omnizine." + item = /obj/item/storage/fancy/cigarettes/cigpack_syndicate + cost = 2 + illegal_tech = FALSE diff --git a/code/modules/uplink/uplink_items/uplink_bundles.dm b/code/modules/uplink/uplink_items/uplink_bundles.dm new file mode 100644 index 0000000000..23fb23f198 --- /dev/null +++ b/code/modules/uplink/uplink_items/uplink_bundles.dm @@ -0,0 +1,179 @@ + +//All bundles and telecrystals + +/* + Uplink Items: + Unlike categories, uplink item entries are automatically sorted alphabetically on server init in a global list, + When adding new entries to the file, please keep them sorted by category. +*/ + +/datum/uplink_item/bundles_TC/chemical + name = "Bioterror bundle" + desc = "For the madman: Contains a handheld Bioterror chem sprayer, a Bioterror foam grenade, a box of lethal chemicals, a dart pistol, \ + box of syringes, Donksoft assault rifle, and some riot darts. Remember: Seal suit and equip internals before use." + item = /obj/item/storage/backpack/duffelbag/syndie/med/bioterrorbundle + cost = 30 // normally 42 + include_modes = list(/datum/game_mode/nuclear) + +/datum/uplink_item/bundles_TC/bulldog + name = "Bulldog bundle" + desc = "Lean and mean: Optimized for people that want to get up close and personal. Contains the popular \ + Bulldog shotgun, a 12g buckshot drum, a 12g taser slug drum and a pair of Thermal imaging goggles." + item = /obj/item/storage/backpack/duffelbag/syndie/bulldogbundle + cost = 13 // normally 16 + include_modes = list(/datum/game_mode/nuclear) + +/datum/uplink_item/bundles_TC/c20r + name = "C-20r bundle" + desc = "Old Faithful: The classic C-20r, bundled with two magazines, and a (surplus) suppressor at discount price." + item = /obj/item/storage/backpack/duffelbag/syndie/c20rbundle + cost = 14 // normally 16 + include_modes = list(/datum/game_mode/nuclear) + +/datum/uplink_item/bundles_TC/cybernetics_bundle + name = "Cybernetic Implants Bundle" + desc = "A random selection of cybernetic implants. Guaranteed 5 high quality implants. Comes with an autosurgeon." + item = /obj/item/storage/box/cyber_implants + cost = 40 + include_modes = list(/datum/game_mode/nuclear) + +/datum/uplink_item/bundles_TC/medical + name = "Medical bundle" + desc = "The support specialist: Aid your fellow operatives with this medical bundle. Contains a tactical medkit, \ + a Donksoft LMG, a box of riot darts and a pair of magboots to rescue your friends in no-gravity environments." + item = /obj/item/storage/backpack/duffelbag/syndie/med/medicalbundle + cost = 15 // normally 20 + include_modes = list(/datum/game_mode/nuclear) + +/datum/uplink_item/bundles_TC/modular + name = "Modular Pistol Kit" + desc = "A heavy briefcase containing one modular pistol (chambered in 10mm), one supressor, and spare ammunition, including a box of soporific ammo. \ + Includes a suit jacket that is padded with a robust liner." + item = /obj/item/storage/briefcase/modularbundle + cost = 12 + +/datum/uplink_item/bundles_TC/shredder + name = "Shredder bundle" + desc = "A truly horrific weapon designed simply to maim its victim, the CX Shredder is banned by several intergalactic treaties. \ + You'll get two of them with this. And spare ammo to boot. And we'll throw in an extra elite hardsuit and chest rig to hold them all!" + item = /obj/item/storage/backpack/duffelbag/syndie/shredderbundle + cost = 30 // normally 41 + include_modes = list(/datum/game_mode/nuclear) + +/datum/uplink_item/bundles_TC/sniper + name = "Sniper bundle" + desc = "Elegant and refined: Contains a collapsed sniper rifle in an expensive carrying case, \ + two soporific knockout magazines, a free surplus supressor, and a sharp-looking tactical turtleneck suit. \ + We'll throw in a free red tie if you order NOW." + item = /obj/item/storage/briefcase/sniperbundle + cost = 20 // normally 26 + include_modes = list(/datum/game_mode/nuclear) + +/datum/uplink_item/bundles_TC/firestarter + name = "Spetsnaz Pyro bundle" + desc = "For systematic suppression of carbon lifeforms in close quarters: Contains a lethal New Russian backpack spray, Elite hardsuit, \ + Stechkin APS pistol, two magazines, a minibomb and a stimulant syringe. \ + Order NOW and comrade Boris will throw in an extra tracksuit." + item = /obj/item/storage/backpack/duffelbag/syndie/firestarter + cost = 30 + include_modes = list(/datum/game_mode/nuclear) + +/datum/uplink_item/bundles_TC/bundle + name = "Syndicate Bundle" + desc = "Syndicate Bundles are specialized groups of items that arrive in a plain box. \ + These items are collectively worth more than 20 telecrystals, but you do not know which specialization \ + you will receive. May contain discontinued and/or exotic items." + item = /obj/item/storage/box/syndicate + cost = 20 + exclude_modes = list(/datum/game_mode/nuclear) + cant_discount = TRUE + +/datum/uplink_item/bundles_TC/surplus + name = "Syndicate Surplus Crate" + desc = "A dusty crate from the back of the Syndicate warehouse. Rumored to contain a valuable assortment of items, \ + but you never know. Contents are sorted to always be worth 50 TC." + item = /obj/structure/closet/crate + cost = 20 + player_minimum = 25 + exclude_modes = list(/datum/game_mode/nuclear, /datum/game_mode/nuclear/clown_ops) + cant_discount = TRUE + var/starting_crate_value = 50 + +/datum/uplink_item/bundles_TC/surplus/super + name = "Super Surplus Crate" + desc = "A dusty SUPER-SIZED from the back of the Syndicate warehouse. Rumored to contain a valuable assortment of items, \ + but you never know. Contents are sorted to always be worth 125 TC." + cost = 40 + player_minimum = 40 + starting_crate_value = 125 + +/datum/uplink_item/bundles_TC/surplus/purchase(mob/user, datum/component/uplink/U) + var/list/uplink_items = get_uplink_items(SSticker && SSticker.mode? SSticker.mode : null, FALSE) + + var/crate_value = starting_crate_value + var/obj/structure/closet/crate/C = spawn_item(/obj/structure/closet/crate, user, U) + if(U.purchase_log) + U.purchase_log.LogPurchase(C, src, cost) + while(crate_value) + var/category = pick(uplink_items) + var/item = pick(uplink_items[category]) + var/datum/uplink_item/I = uplink_items[category][item] + + if(!I.surplus || prob(100 - I.surplus)) + continue + if(crate_value < I.cost) + continue + crate_value -= I.cost + var/obj/goods = new I.item(C) + if(U.purchase_log) + U.purchase_log.LogPurchase(goods, I, 0) + return C + +/datum/uplink_item/bundles_TC/random + name = "Random Item" + desc = "Picking this will purchase a random item. Useful if you have some TC to spare or if you haven't decided on a strategy yet." + item = /obj/effect/gibspawner/generic // non-tangible item because techwebs use this path to determine illegal tech + cost = 0 + cant_discount = TRUE + +/datum/uplink_item/bundles_TC/random/purchase(mob/user, datum/component/uplink/U) + var/list/uplink_items = U.uplink_items + var/list/possible_items = list() + for(var/category in uplink_items) + for(var/item in uplink_items[category]) + var/datum/uplink_item/I = uplink_items[category][item] + if(src == I || !I.item) + continue + if(U.telecrystals < I.cost) + continue + if(I.limited_stock == 0) + continue + possible_items += I + + if(possible_items.len) + var/datum/uplink_item/I = pick(possible_items) + SSblackbox.record_feedback("tally", "traitor_random_uplink_items_gotten", 1, initial(I.name)) + U.MakePurchase(user, I) + +/datum/uplink_item/bundles_TC/telecrystal + name = "1 Raw Telecrystal" + desc = "A telecrystal in its rawest and purest form; can be utilized on active uplinks to increase their telecrystal count." + item = /obj/item/stack/telecrystal + cost = 1 + surplus = 0 + cant_discount = TRUE + // Don't add telecrystals to the purchase_log since + // it's just used to buy more items (including itself!) + purchase_log_vis = FALSE + +/datum/uplink_item/bundles_TC/telecrystal/five + name = "5 Raw Telecrystals" + desc = "Five telecrystals in their rawest and purest form; can be utilized on active uplinks to increase their telecrystal count." + item = /obj/item/stack/telecrystal/five + cost = 5 + +/datum/uplink_item/bundles_TC/telecrystal/twenty + name = "20 Raw Telecrystals" + desc = "Twenty telecrystals in their rawest and purest form; can be utilized on active uplinks to increase their telecrystal count." + item = /obj/item/stack/telecrystal/twenty + cost = 20 \ No newline at end of file diff --git a/code/modules/uplink/uplink_items/uplink_clothing.dm b/code/modules/uplink/uplink_items/uplink_clothing.dm new file mode 100644 index 0000000000..2881aa8dfd --- /dev/null +++ b/code/modules/uplink/uplink_items/uplink_clothing.dm @@ -0,0 +1,80 @@ + +/* + Uplink Items: + Unlike categories, uplink item entries are automatically sorted alphabetically on server init in a global list, + When adding new entries to the file, please keep them sorted by category. +*/ + +//Space Suits and Hardsuits + +/datum/uplink_item/suits/turtlenck + name = "Tactical Turtleneck" + desc = "A slightly armored suit that has no sensor on them, if someone sees you in this hope they think its a fake." + item = /obj/item/clothing/under/syndicate + cost = 1 + exclude_modes = list(/datum/game_mode/nuclear, /datum/game_mode/nuclear/clown_ops) //They already get these + +/datum/uplink_item/suits/turtlenck_skirt + name = "Tactical Skirtleneck" + desc = "A slightly armored suit that has no sensor on them, if someone sees you in this hope they think its a fake." + item = /obj/item/clothing/under/syndicate/skirt + cost = 1 + exclude_modes = list(/datum/game_mode/nuclear, /datum/game_mode/nuclear/clown_ops) //They already get these + +/datum/uplink_item/suits/padding + name = "Soft Padding" + desc = "Padding to add to a jumpsuit to help against melee and bullets." + item = /obj/item/clothing/accessory/padding + cost = 2 + exclude_modes = list(/datum/game_mode/nuclear, /datum/game_mode/nuclear/clown_ops) + +/datum/uplink_item/suits/kevlar + name = "Kevlar sheets" + desc = "Kevlar sheets to add to jumpsuit to help against bullets and melee." + item = /obj/item/clothing/accessory/kevlar + cost = 2 + exclude_modes = list(/datum/game_mode/nuclear, /datum/game_mode/nuclear/clown_ops) + +/datum/uplink_item/suits/plastic + name = "Plastic sheet" + desc = "Plastic body sheet to add to a jumpsuit to help against laser and energy harm." + item = /obj/item/clothing/accessory/plastics + cost = 2 + exclude_modes = list(/datum/game_mode/nuclear, /datum/game_mode/nuclear/clown_ops) + +/datum/uplink_item/suits/space_suit + name = "Syndicate Space Suit" + desc = "This red and black Syndicate space suit is less encumbering than Nanotrasen variants, \ + fits inside bags, and has a weapon slot. Nanotrasen crew members are trained to report red space suit \ + sightings, however." + item = /obj/item/storage/box/syndie_kit/space + cost = 4 + +/datum/uplink_item/suits/hardsuit + name = "Syndicate Hardsuit" + desc = "The feared suit of a Syndicate nuclear agent. Features slightly better armoring and a built in jetpack \ + that runs off standard atmospheric tanks. Toggling the suit in and out of \ + combat mode will allow you all the mobility of a loose fitting uniform without sacrificing armoring. \ + Additionally the suit is collapsible, making it small enough to fit within a backpack. \ + Nanotrasen crew who spot these suits are known to panic." + item = /obj/item/clothing/suit/space/hardsuit/syndi + cost = 8 + exclude_modes = list(/datum/game_mode/nuclear) //you can't buy it in nuke, because the elite hardsuit costs the same while being better + +/datum/uplink_item/suits/hardsuit/elite + name = "Elite Syndicate Hardsuit" + desc = "An upgraded, elite version of the Syndicate hardsuit. It features fireproofing, and also \ + provides the user with superior armor and mobility compared to the standard Syndicate hardsuit." + item = /obj/item/clothing/suit/space/hardsuit/syndi/elite + cost = 8 + include_modes = list(/datum/game_mode/nuclear, /datum/game_mode/nuclear/clown_ops) + exclude_modes = list() + +/datum/uplink_item/suits/hardsuit/shielded + name = "Shielded Syndicate Hardsuit" + desc = "An upgraded version of the standard Syndicate hardsuit. It features a built-in energy shielding system. \ + The shields can handle up to three impacts within a short duration and will rapidly recharge while not under fire." + item = /obj/item/clothing/suit/space/hardsuit/shielded/syndi + cost = 30 + include_modes = list(/datum/game_mode/nuclear, /datum/game_mode/nuclear/clown_ops) + exclude_modes = list() diff --git a/code/modules/uplink/uplink_items/uplink_dangerous.dm b/code/modules/uplink/uplink_items/uplink_dangerous.dm new file mode 100644 index 0000000000..a7f644ccbe --- /dev/null +++ b/code/modules/uplink/uplink_items/uplink_dangerous.dm @@ -0,0 +1,260 @@ + +// Dangerous Items + +/* + Uplink Items: + Unlike categories, uplink item entries are automatically sorted alphabetically on server init in a global list, + When adding new entries to the file, please keep them sorted by category. +*/ + +/datum/uplink_item/dangerous/pistol + name = "Stechkin Pistol" + desc = "A small, easily concealable handgun that uses 10mm auto rounds in 8-round magazines and is compatible \ + with suppressors." + item = /obj/item/gun/ballistic/automatic/pistol + cost = 7 + exclude_modes = list(/datum/game_mode/nuclear/clown_ops) + +/datum/uplink_item/dangerous/revolver + name = "Syndicate Revolver Kit" + desc = "A sleek box containing a brutally simple Syndicate revolver that fires .357 Magnum rounds and has 7 chambers, and an extra speedloader." + item = /obj/item/storage/box/syndie_kit/revolver + cost = 13 + surplus = 50 + exclude_modes = list(/datum/game_mode/nuclear/clown_ops) + +/datum/uplink_item/dangerous/rawketlawnchair + name = "84mm Rocket Propelled Grenade Launcher" + desc = "A reusable rocket propelled grenade launcher preloaded with a low-yield 84mm HE round. \ + Guaranteed to send your target out with a bang or your money back!" + item = /obj/item/gun/ballistic/rocketlauncher + cost = 8 + surplus = 30 + include_modes = list(/datum/game_mode/nuclear) + +/datum/uplink_item/dangerous/antitank + name = "Anti Tank Pistol" + desc = "Essentially amounting to a sniper rifle with no stock and barrel (or indeed, any rifling at all), \ + this extremely dubious pistol is guaranteed to dislocate your wrists and hit the broad side of a barn! \ + Uses sniper ammo. \ + Bullets tend to veer off-course. We are not responsible for any unintentional damage or injury resulting from inaacuracy." + item = /obj/item/gun/ballistic/automatic/pistol/antitank/syndicate + cost = 14 + surplus = 25 + include_modes = list(/datum/game_mode/nuclear) + +/datum/uplink_item/dangerous/pie_cannon + name = "Banana Cream Pie Cannon" + desc = "A special pie cannon for a special clown, this gadget can hold up to 20 pies and automatically fabricates one every two seconds!" + cost = 10 + item = /obj/item/pneumatic_cannon/pie/selfcharge + surplus = 0 + include_modes = list(/datum/game_mode/nuclear/clown_ops) + +/datum/uplink_item/dangerous/bananashield + name = "Bananium Energy Shield" + desc = "A clown's most powerful defensive weapon, this personal shield provides near immunity to ranged energy attacks \ + by bouncing them back at the ones who fired them. It can also be thrown to bounce off of people, slipping them, \ + and returning to you even if you miss. WARNING: DO NOT ATTEMPT TO STAND ON SHIELD WHILE DEPLOYED, EVEN IF WEARING ANTI-SLIP SHOES." + item = /obj/item/shield/energy/bananium + cost = 16 + surplus = 0 + include_modes = list(/datum/game_mode/nuclear/clown_ops) + +/datum/uplink_item/dangerous/clownsword + name = "Bananium Energy Sword" + desc = "An energy sword that deals no damage, but will slip anyone it contacts, be it by melee attack, thrown \ + impact, or just stepping on it. Beware friendly fire, as even anti-slip shoes will not protect against it." + item = /obj/item/melee/transforming/energy/sword/bananium + cost = 3 + surplus = 0 + include_modes = list(/datum/game_mode/nuclear/clown_ops) + +/datum/uplink_item/dangerous/bioterror + name = "Biohazardous Chemical Sprayer" + desc = "A handheld chemical sprayer that allows a wide dispersal of selected chemicals. Especially tailored by the Tiger \ + Cooperative, the deadly blend it comes stocked with will disorient, damage, and disable your foes... \ + Use with extreme caution, to prevent exposure to yourself and your fellow operatives." + item = /obj/item/reagent_containers/spray/chemsprayer/bioterror + cost = 20 + surplus = 0 + include_modes = list(/datum/game_mode/nuclear, /datum/game_mode/nuclear/clown_ops) + +/datum/uplink_item/dangerous/throwingweapons + name = "Box of Throwing Weapons" + desc = "A box of shurikens and reinforced bolas from ancient Earth martial arts. They are highly effective \ + throwing weapons. The bolas can knock a target down and the shurikens will embed into limbs." + item = /obj/item/storage/box/syndie_kit/throwing_weapons + cost = 3 + +/datum/uplink_item/dangerous/shotgun + name = "Bulldog Shotgun" + desc = "A fully-loaded semi-automatic drum-fed shotgun. Compatible with all 12g rounds. Designed for close \ + quarter anti-personnel engagements." + item = /obj/item/gun/ballistic/automatic/shotgun/bulldog + cost = 8 + surplus = 40 + include_modes = list(/datum/game_mode/nuclear) + +/datum/uplink_item/dangerous/smg + name = "C-20r Submachine Gun" + desc = "A fully-loaded Scarborough Arms bullpup submachine gun. The C-20r fires .45 rounds with a \ + 24-round magazine and is compatible with suppressors." + item = /obj/item/gun/ballistic/automatic/c20r + cost = 10 + surplus = 40 + include_modes = list(/datum/game_mode/nuclear) + +/datum/uplink_item/dangerous/doublesword + name = "Double-Bladed Energy Sword" + desc = "The double-bladed energy sword does slightly more damage than a standard energy sword and will deflect \ + all energy projectiles, but requires two hands to wield." + item = /obj/item/twohanded/dualsaber + player_minimum = 25 + cost = 16 + exclude_modes = list(/datum/game_mode/nuclear/clown_ops) + +/datum/uplink_item/dangerous/doublesword/get_discount() + return pick(4;0.8,2;0.65,1;0.5) + +/datum/uplink_item/dangerous/cxneb + name = "Dragon's Tooth Non-Eutactic Blade" + desc = "An illegal modification of a weapon that is functionally identical to the energy sword, \ + the Non-Eutactic Blade (NEB) forges a hardlight blade on-demand, \ + generating an extremely sharp, unbreakable edge that is guaranteed to satisfy your every need. \ + This particular model has a polychromic hardlight generator, allowing you to murder in style! \ + The illegal modifications bring this weapon up to par with the classic energy sword, and also gives it the energy sword's distinctive sounds." + item = /obj/item/melee/transforming/energy/sword/cx/traitor + cost = 8 + +/datum/uplink_item/dangerous/sword + name = "Energy Sword" + desc = "The energy sword is an edged weapon with a blade of pure energy. The sword is small enough to be \ + pocketed when inactive. Activating it produces a loud, distinctive noise." + item = /obj/item/melee/transforming/energy/sword/saber + cost = 8 + exclude_modes = list(/datum/game_mode/nuclear/clown_ops) + +/datum/uplink_item/dangerous/shield + name = "Energy Shield" + desc = "An incredibly useful personal shield projector, capable of reflecting energy projectiles and defending \ + against other attacks. Pair with an Energy Sword for a killer combination." + item = /obj/item/shield/energy + cost = 16 + surplus = 20 + include_modes = list(/datum/game_mode/nuclear) + +/datum/uplink_item/dangerous/rapier + name = "Rapier" + desc = "A fancy rapier with a diamond tip piercing anything that it comes into contack with. \ + The rapier comes with its own sheath, this is rather noticeable as only the captain is known to carry a sheath. \ + The sheath itself can be used to block melee attacks only. Its also jet black colours." + item = /obj/item/storage/belt/sabre/rapier + cost = 8 + exclude_modes = list(/datum/game_mode/nuclear/clown_ops) + +/datum/uplink_item/dangerous/flamethrower + name = "Flamethrower" + desc = "A flamethrower, fueled by a portion of highly flammable biotoxins stolen previously from Nanotrasen \ + stations. Make a statement by roasting the filth in their own greed. Use with caution." + item = /obj/item/flamethrower/full/tank + cost = 4 + surplus = 40 + include_modes = list(/datum/game_mode/nuclear) + +/datum/uplink_item/dangerous/flechettegun + name = "Flechette Launcher" + desc = "A compact bullpup that fires micro-flechettes.\ + Flechettes have very poor performance idividually, but can be very deadly in numbers. \ + Pre-loaded with armor piercing flechettes that are capable of puncturing most kinds of armor." + item = /obj/item/gun/ballistic/automatic/flechette + cost = 12 + surplus = 30 + include_modes = list(/datum/game_mode/nuclear) + +/datum/uplink_item/dangerous/rapid + name = "Gloves of the North Star" + desc = "These gloves let the user punch people very fast. Does not improve weapon attack speed or the meaty fists of a hulk." + item = /obj/item/clothing/gloves/rapid + cost = 8 + +/datum/uplink_item/dangerous/guardian + name = "Holoparasites" + desc = "Though capable of near sorcerous feats via use of hardlight holograms and nanomachines, they require an \ + organic host as a home base and source of fuel. Holoparasites come in various types and share damage with their host." + item = /obj/item/storage/box/syndie_kit/guardian + cost = 15 + refundable = TRUE + cant_discount = TRUE + surplus = 0 + exclude_modes = list(/datum/game_mode/nuclear, /datum/game_mode/nuclear/clown_ops) + player_minimum = 25 + restricted = TRUE + refund_path = /obj/item/guardiancreator/tech/choose/traitor + +/datum/uplink_item/dangerous/machinegun + name = "L6 Squad Automatic Weapon" + desc = "A fully-loaded Aussec Armoury belt-fed machine gun. \ + This deadly weapon has a massive 50-round magazine of devastating 1.95x129mm ammunition." + item = /obj/item/gun/ballistic/automatic/l6_saw + cost = 18 + surplus = 0 + include_modes = list(/datum/game_mode/nuclear) + +/datum/uplink_item/dangerous/carbine + name = "M-90gl Carbine" + desc = "A fully-loaded, specialized three-round burst carbine that fires 5.56mm ammunition from a 30 round magazine \ + with a toggleable 40mm underbarrel grenade launcher." + item = /obj/item/gun/ballistic/automatic/m90 + cost = 18 + surplus = 50 + include_modes = list(/datum/game_mode/nuclear) + +/datum/uplink_item/dangerous/powerfist + name = "Power Fist" + desc = "The power-fist is a metal gauntlet with a built-in piston-ram powered by an external gas supply.\ + Upon hitting a target, the piston-ram will extend forward to make contact for some serious damage. \ + Using a wrench on the piston valve will allow you to tweak the amount of gas used per punch to \ + deal extra damage and hit targets further. Use a screwdriver to take out any attached tanks." + item = /obj/item/melee/powerfist + cost = 8 + +/datum/uplink_item/dangerous/sniper + name = "Sniper Rifle" + desc = "Ranged fury, Syndicate style. Guaranteed to cause shock and awe or your TC back!" + item = /obj/item/gun/ballistic/automatic/sniper_rifle/syndicate + cost = 16 + surplus = 25 + include_modes = list(/datum/game_mode/nuclear) + +/datum/uplink_item/dangerous/bolt_action + name = "Surplus Rifle" + desc = "A horribly outdated bolt action weapon. You've got to be desperate to use this." + item = /obj/item/gun/ballistic/shotgun/boltaction + cost = 2 + include_modes = list(/datum/game_mode/nuclear) + +/datum/uplink_item/dangerous/foamsmg + name = "Toy Submachine Gun" + desc = "A fully-loaded Donksoft bullpup submachine gun that fires riot grade darts with a 20-round magazine." + item = /obj/item/gun/ballistic/automatic/c20r/toy + cost = 5 + surplus = 0 + include_modes = list(/datum/game_mode/nuclear, /datum/game_mode/nuclear/clown_ops) + +/datum/uplink_item/dangerous/foammachinegun + name = "Toy Machine Gun" + desc = "A fully-loaded Donksoft belt-fed machine gun. This weapon has a massive 50-round magazine of devastating \ + riot grade darts, that can briefly incapacitate someone in just one volley." + item = /obj/item/gun/ballistic/automatic/l6_saw/toy + cost = 10 + surplus = 0 + include_modes = list(/datum/game_mode/nuclear, /datum/game_mode/nuclear/clown_ops) + +/datum/uplink_item/dangerous/foampistol + name = "Toy Pistol with Riot Darts" + desc = "An innocent-looking toy pistol designed to fire foam darts. Comes loaded with riot-grade \ + darts effective at incapacitating a target." + item = /obj/item/gun/ballistic/automatic/toy/pistol/riot + cost = 3 + surplus = 10 \ No newline at end of file diff --git a/code/modules/uplink/uplink_items/uplink_devices.dm b/code/modules/uplink/uplink_items/uplink_devices.dm new file mode 100644 index 0000000000..70c70a61b9 --- /dev/null +++ b/code/modules/uplink/uplink_items/uplink_devices.dm @@ -0,0 +1,251 @@ + +/* + Uplink Items: + Unlike categories, uplink item entries are automatically sorted alphabetically on server init in a global list, + When adding new entries to the file, please keep them sorted by category. +*/ + +// Devices and Tools + +/datum/uplink_item/device_tools/emag + name = "Cryptographic Sequencer" + desc = "The cryptographic sequencer, electromagnetic card, or emag, is a small card that unlocks hidden functions \ + in electronic devices, subverts intended functions, and easily breaks security mechanisms." + item = /obj/item/card/emag + cost = 6 + +/datum/uplink_item/device_tools/emagrecharge + name = "Electromagnet Charging Device" + desc = "A small device intended for recharging Cryptographic Sequencers. Using it will add five extra charges to the Cryptographic Sequencer." + item = /obj/item/emagrecharge + cost = 2 + +/datum/uplink_item/device_tools/phantomthief + name = "Syndicate Mask" + desc = "A cheap plastic mask fitted with an adrenaline autoinjector, which can be used by simply tensing your muscles" + item = /obj/item/clothing/glasses/phantomthief/syndicate + cost = 2 + +/datum/uplink_item/device_tools/cutouts + name = "Adaptive Cardboard Cutouts" + desc = "These cardboard cutouts are coated with a thin material that prevents discoloration and makes the images on them appear more lifelike. \ + This pack contains three as well as a crayon for changing their appearances." + item = /obj/item/storage/box/syndie_kit/cutouts + cost = 1 + surplus = 20 + +/datum/uplink_item/device_tools/assault_pod + name = "Assault Pod Targeting Device" + desc = "Use this to select the landing zone of your assault pod." + item = /obj/item/assault_pod + cost = 30 + surplus = 0 + include_modes = list(/datum/game_mode/nuclear, /datum/game_mode/nuclear/clown_ops) + restricted = TRUE + +/datum/uplink_item/device_tools/binary + name = "Binary Translator Key" + desc = "A key that, when inserted into a radio headset, allows you to listen to and talk with silicon-based lifeforms, \ + such as AI units and cyborgs, over their private binary channel. Caution should \ + be taken while doing this, as unless they are allied with you, they are programmed to report such intrusions." + item = /obj/item/encryptionkey/binary + cost = 2 + surplus = 75 + restricted = TRUE + +/datum/uplink_item/device_tools/magboots + name = "Blood-Red Magboots" + desc = "A pair of magnetic boots with a Syndicate paintjob that assist with freer movement in space or on-station \ + during gravitational generator failures. These reverse-engineered knockoffs of Nanotrasen's \ + 'Advanced Magboots' slow you down in simulated-gravity environments much like the standard issue variety." + item = /obj/item/clothing/shoes/magboots/syndie + cost = 2 + include_modes = list(/datum/game_mode/nuclear, /datum/game_mode/nuclear/clown_ops) + +/datum/uplink_item/device_tools/compressionkit + name = "Bluespace Compression Kit" + desc = "A modified version of a BSRPED that can be used to reduce the size of most items while retaining their original functions! \ + Does not work on storage items. \ + Recharge using bluespace crystals. \ + Comes with 5 charges." + item = /obj/item/compressionkit + cost = 5 + +/datum/uplink_item/device_tools/briefcase_launchpad + name = "Briefcase Launchpad" + desc = "A briefcase containing a launchpad, a device able to teleport items and people to and from targets up to twenty tiles away from the briefcase. \ + Also includes a remote control, disguised as an ordinary folder. Touch the briefcase with the remote to link it." + surplus = 0 + item = /obj/item/storage/briefcase/launchpad + cost = 6 + +/datum/uplink_item/device_tools/camera_bug + name = "Camera Bug" + desc = "Enables you to view all cameras on the main network, set up motion alerts and track a target. \ + Bugging cameras allows you to disable them remotely." + item = /obj/item/camera_bug + cost = 1 + surplus = 90 + +/datum/uplink_item/device_tools/military_belt + name = "Chest Rig" + desc = "A robust seven-slot set of webbing that is capable of holding all manner of tactical equipment." + item = /obj/item/storage/belt/military + cost = 1 + exclude_modes = list(/datum/game_mode/nuclear) + +/datum/uplink_item/device_tools/fakenucleardisk + name = "Decoy Nuclear Authentication Disk" + desc = "It's just a normal disk. Visually it's identical to the real deal, but it won't hold up under closer scrutiny by the Captain. \ + Don't try to give this to us to complete your objective, we know better!" + item = /obj/item/disk/nuclear/fake + cost = 1 + surplus = 1 + +/datum/uplink_item/device_tools/frame + name = "F.R.A.M.E. PDA Cartridge" + desc = "When inserted into a personal digital assistant, this cartridge gives you five PDA viruses which \ + when used cause the targeted PDA to become a new uplink with zero TCs, and immediately become unlocked. \ + You will receive the unlock code upon activating the virus, and the new uplink may be charged with \ + telecrystals normally." + item = /obj/item/cartridge/virus/frame + cost = 2 + restricted = TRUE + +/datum/uplink_item/device_tools/toolbox + name = "Full Syndicate Toolbox" + desc = "The Syndicate toolbox is a suspicious black and red. It comes loaded with a full tool set including a \ + multitool and combat gloves that are resistant to shocks and heat." + item = /obj/item/storage/toolbox/syndicate + cost = 1 + +/datum/uplink_item/device_tools/syndie_glue + name = "Glue" + desc = "A cheap bottle of one use syndicate brand super glue. \ + Use on any item to make it undroppable. \ + Be careful not to glue an item you're already holding!" + exclude_modes = list(/datum/game_mode/nuclear, /datum/game_mode/nuclear/clown_ops) + item = /obj/item/syndie_glue + cost = 2 + +/datum/uplink_item/device_tools/hacked_module + name = "Hacked AI Law Upload Module" + desc = "When used with an upload console, this module allows you to upload priority laws to an artificial intelligence. \ + Be careful with wording, as artificial intelligences may look for loopholes to exploit." + item = /obj/item/aiModule/syndicate + cost = 9 + +/datum/uplink_item/device_tools/medgun + name = "Medbeam Gun" + desc = "A wonder of Syndicate engineering, the Medbeam gun, or Medi-Gun enables a medic to keep his fellow \ + operatives in the fight, even while under fire. Don't cross the streams!" + item = /obj/item/gun/medbeam + cost = 15 + include_modes = list(/datum/game_mode/nuclear, /datum/game_mode/nuclear/clown_ops) + +/datum/uplink_item/device_tools/nutcracker + name = "Nutcracker" + desc = "An oversized version of what you'd initially expect here. Big enough to crush skulls." + item = /obj/item/nutcracker + cost = 1 + +/datum/uplink_item/device_tools/singularity_beacon + name = "Power Beacon" + desc = "When screwed to wiring attached to an electric grid and activated, this large device pulls any \ + active gravitational singularities or tesla balls towards it (provided they are not safely \ + contained), as well as increasing the odds of incoming meteor waves. \ + Because of its size, it cannot be carried. Ordering this sends you a small beacon \ + that will teleport the larger beacon to your location upon activation." + item = /obj/item/sbeacondrop + cost = 14 + +/datum/uplink_item/device_tools/powersink + name = "Power Sink" + desc = "When screwed to wiring attached to a power grid and activated, this large device lights up and places excessive \ + load on the grid, causing a station-wide blackout. The sink is large and cannot be stored in most \ + traditional bags and boxes. Caution: Will explode if the powernet contains sufficient amounts of energy." + item = /obj/item/powersink + cost = 6 + +/datum/uplink_item/device_tools/rad_laser + name = "Radioactive Microlaser" + desc = "A radioactive microlaser disguised as a standard Nanotrasen health analyzer. When used, it emits a \ + powerful burst of radiation, which, after a short delay, can incapacitate all but the most protected \ + of humanoids. It has two settings: intensity, which controls the power of the radiation, \ + and wavelength, which controls the delay before the effect kicks in." + item = /obj/item/healthanalyzer/rad_laser + cost = 3 + +/datum/uplink_item/device_tools/stimpack + name = "Stimpack" + desc = "Stimpacks, the tool of many great heroes, make you nearly immune to stuns and knockdowns for about \ + 5 minutes after injection." + item = /obj/item/reagent_containers/syringe/stimulants + cost = 5 + surplus = 90 + +/datum/uplink_item/device_tools/medkit + name = "Syndicate Combat Medic Kit" + desc = "This first aid kit is a suspicious brown and red. Included is a combat stimulant injector \ + for rapid healing, a medical night vision HUD for quick identification of injured personnel, \ + and other supplies helpful for a field medic." + item = /obj/item/storage/firstaid/tactical/nukeop + cost = 4 + include_modes = list(/datum/game_mode/nuclear, /datum/game_mode/nuclear/clown_ops) + +/datum/uplink_item/device_tools/surgerybag + name = "Syndicate Surgery Duffel Bag" + desc = "The Syndicate surgery duffel bag is a toolkit containing all surgery tools, surgical drapes, \ + a Syndicate brand MMI, a straitjacket, and a muzzle." + item = /obj/item/storage/backpack/duffelbag/syndie/surgery + cost = 3 + +/datum/uplink_item/device_tools/surgerybag_adv + name = "Advanced Syndicate Surgery Duffel Bag" + desc = "The Syndicate surgery duffel bag is a toolkit containing all advanced surgery tools, surgical drapes, \ + a Syndicate brand MMI, a straitjacket, a muzzle, and an outdated, yet still useful Combat Medic Kit." + item = /obj/item/storage/backpack/duffelbag/syndie/surgery_adv + cost = 10 + +/datum/uplink_item/device_tools/brainwash_disk + name = "Brainwashing Surgery Program" + desc = "A disk containing the procedure to perform a brainwashing surgery, allowing you to implant an objective onto a target. \ + Insert into an Operating Console to enable the procedure." + item = /obj/item/disk/surgery/brainwashing + cost = 3 + +/datum/uplink_item/device_tools/encryptionkey + name = "Syndicate Encryption Key" + desc = "A key that, when inserted into a radio headset, allows you to listen to all station department channels \ + as well as talk on an encrypted Syndicate channel with other agents that have the same key." + item = /obj/item/encryptionkey/syndicate + cost = 2 + surplus = 75 + restricted = TRUE + +/datum/uplink_item/device_tools/syndietome + name = "Syndicate Tome" + desc = "Using rare artifacts acquired at great cost, the Syndicate has reverse engineered \ + the seemingly magical books of a certain cult. Though lacking the esoteric abilities \ + of the originals, these inferior copies are still quite useful, being able to provide \ + both weal and woe on the battlefield, even if they do occasionally bite off a finger." + item = /obj/item/storage/book/bible/syndicate + cost = 9 + +/datum/uplink_item/device_tools/thermal + name = "Thermal Imaging Glasses" + desc = "These goggles can be turned to resemble common eyewear found throughout the station. \ + They allow you to see organisms through walls by capturing the upper portion of the infrared light spectrum, \ + emitted as heat and light by objects. Hotter objects, such as warm bodies, cybernetic organisms \ + and artificial intelligence cores emit more of this light than cooler objects like walls and airlocks." + item = /obj/item/clothing/glasses/thermal/syndi + cost = 4 + +/datum/uplink_item/device_tools/potion + name = "Syndicate Sentience Potion" + item = /obj/item/slimepotion/slime/sentience/nuclear + desc = "A potion recovered at great risk by undercover Syndicate operatives and then subsequently modified with Syndicate technology. \ + Using it will make any animal sentient, and bound to serve you, as well as implanting an internal radio for communication and an internal ID card for opening doors." + cost = 2 + include_modes = list(/datum/game_mode/nuclear, /datum/game_mode/nuclear/clown_ops) + restricted = TRUE diff --git a/code/modules/uplink/uplink_items/uplink_explosives.dm b/code/modules/uplink/uplink_items/uplink_explosives.dm new file mode 100644 index 0000000000..4db8643a66 --- /dev/null +++ b/code/modules/uplink/uplink_items/uplink_explosives.dm @@ -0,0 +1,161 @@ + +/* + Uplink Items: + Unlike categories, uplink item entries are automatically sorted alphabetically on server init in a global list, + When adding new entries to the file, please keep them sorted by category. +*/ + +//Grenades and Explosives + +/datum/uplink_item/explosives/bioterrorfoam + name = "Bioterror Foam Grenade" + desc = "A powerful chemical foam grenade which creates a deadly torrent of foam that will mute, blind, confuse, \ + mutate, and irritate carbon lifeforms. Specially brewed by Tiger Cooperative chemical weapons specialists \ + using additional spore toxin. Ensure suit is sealed before use." + item = /obj/item/grenade/chem_grenade/bioterrorfoam + cost = 5 + surplus = 35 + include_modes = list(/datum/game_mode/nuclear, /datum/game_mode/nuclear/clown_ops) + +/datum/uplink_item/explosives/bombanana + name = "Bombanana" + desc = "A banana with an explosive taste! discard the peel quickly, as it will explode with the force of a syndicate minibomb \ + a few seconds after the banana is eaten." + item = /obj/item/reagent_containers/food/snacks/grown/banana/bombanana + cost = 4 //it is a bit cheaper than a minibomb because you have to take off your helmet to eat it, which is how you arm it + surplus = 0 + include_modes = list(/datum/game_mode/nuclear/clown_ops) + +/datum/uplink_item/explosives/buzzkill + name = "Buzzkill Grenade Box" + desc = "A box with three grenades that release a swarm of angry bees upon activation. These bees indiscriminately attack friend or foe \ + with random toxins. Courtesy of the BLF and Tiger Cooperative." + item = /obj/item/storage/box/syndie_kit/bee_grenades + cost = 15 + surplus = 35 + include_modes = list(/datum/game_mode/nuclear, /datum/game_mode/nuclear/clown_ops) + +/datum/uplink_item/explosives/c4 + name = "Composition C-4" + desc = "C-4 is plastic explosive of the common variety Composition C. You can use it to breach walls, sabotage equipment, or connect \ + an assembly to it in order to alter the way it detonates. It can be attached to almost all objects and has a modifiable timer with a \ + minimum setting of 10 seconds." + item = /obj/item/grenade/plastic/c4 + cost = 1 + +/datum/uplink_item/explosives/c4bag + name = "Bag of C-4 explosives" + desc = "Because sometimes quantity is quality. Contains 10 C-4 plastic explosives." + item = /obj/item/storage/backpack/duffelbag/syndie/c4 + cost = 9 //10% discount! + cant_discount = TRUE + +/datum/uplink_item/explosives/x4bag + name = "Bag of X-4 explosives" + desc = "Contains 3 X-4 shaped plastic explosives. Similar to C4, but with a stronger blast that is directional instead of circular. \ + X-4 can be placed on a solid surface, such as a wall or window, and it will blast through the wall, injuring anything on the opposite side, while being safer to the user. \ + For when you want a controlled explosion that leaves a wider, deeper, hole." + item = /obj/item/storage/backpack/duffelbag/syndie/x4 + cost = 4 // + cant_discount = TRUE + +/datum/uplink_item/explosives/clown_bomb_clownops + name = "Clown Bomb" + desc = "The Clown bomb is a hilarious device capable of massive pranks. It has an adjustable timer, \ + with a minimum of 60 seconds, and can be bolted to the floor with a wrench to prevent \ + movement. The bomb is bulky and cannot be moved; upon ordering this item, a smaller beacon will be \ + transported to you that will teleport the actual bomb to it upon activation. Note that this bomb can \ + be defused, and some crew may attempt to do so." + item = /obj/item/sbeacondrop/clownbomb + cost = 15 + surplus = 0 + include_modes = list(/datum/game_mode/nuclear/clown_ops) + +/datum/uplink_item/explosives/detomatix + name = "Detomatix PDA Cartridge" + desc = "When inserted into a personal digital assistant, this cartridge gives you four opportunities to \ + detonate PDAs of crewmembers who have their message feature enabled. \ + The concussive effect from the explosion will knock the recipient out for a short period, and deafen them for longer." + item = /obj/item/cartridge/virus/syndicate + cost = 5 + restricted = TRUE + +/datum/uplink_item/explosives/emp + name = "EMP Grenades and Implanter Kit" + desc = "A box that contains five EMP grenades and an EMP implant with three uses. Useful to disrupt communications, \ + security's energy weapons and silicon lifeforms when you're in a tight spot." + item = /obj/item/storage/box/syndie_kit/emp + cost = 2 + +/datum/uplink_item/explosives/virus_grenade + name = "Fungal Tuberculosis Grenade" + desc = "A primed bio-grenade packed into a compact box. Comes with five Bio Virus Antidote Kit (BVAK) \ + autoinjectors for rapid application on up to two targets each, a syringe, and a bottle containing \ + the BVAK solution." + item = /obj/item/storage/box/syndie_kit/tuberculosisgrenade + cost = 8 + surplus = 35 + include_modes = list(/datum/game_mode/nuclear, /datum/game_mode/nuclear/clown_ops) + restricted = TRUE + +/datum/uplink_item/explosives/grenadier + name = "Grenadier's belt" + desc = "A belt containing 26 lethally dangerous and destructive grenades. Comes with an extra multitool and screwdriver." + item = /obj/item/storage/belt/grenade/full + include_modes = list(/datum/game_mode/nuclear) + cost = 22 + surplus = 0 + +/datum/uplink_item/explosives/pizza_bomb + name = "Pizza Bomb" + desc = "A pizza box with a bomb cunningly attached to the lid. The timer needs to be set by opening the box; afterwards, \ + opening the box again will trigger the detonation after the timer has elapsed. Comes with free pizza, for you or your target!" + item = /obj/item/pizzabox/bomb + cost = 6 + surplus = 8 + +/datum/uplink_item/explosives/syndicate_bomb + name = "Syndicate Bomb" + desc = "The Syndicate bomb is a fearsome device capable of massive destruction. It has an adjustable timer, \ + with a minimum of 60 seconds, and can be bolted to the floor with a wrench to prevent \ + movement. The bomb is bulky and cannot be moved; upon ordering this item, a smaller beacon will be \ + transported to you that will teleport the actual bomb to it upon activation. Note that this bomb can \ + be defused, and some crew may attempt to do so." + item = /obj/item/sbeacondrop/bomb + cost = 11 + +/datum/uplink_item/explosives/syndicate_detonator + name = "Syndicate Detonator" + desc = "The Syndicate detonator is a companion device to the Syndicate bomb. Simply press the included button \ + and an encrypted radio frequency will instruct all live Syndicate bombs to detonate. \ + Useful for when speed matters or you wish to synchronize multiple bomb blasts. Be sure to stand clear of \ + the blast radius before using the detonator." + item = /obj/item/syndicatedetonator + cost = 3 + include_modes = list(/datum/game_mode/nuclear, /datum/game_mode/nuclear/clown_ops) + +/datum/uplink_item/explosives/syndicate_minibomb + name = "Syndicate Minibomb" + desc = "The minibomb is a grenade with a five-second fuse. Upon detonation, it will create a small hull breach \ + in addition to dealing high amounts of damage to nearby personnel." + item = /obj/item/grenade/syndieminibomb + cost = 6 + exclude_modes = list(/datum/game_mode/nuclear/clown_ops) + +/datum/uplink_item/explosives/tearstache + name = "Teachstache Grenade" + desc = "A teargas grenade that launches sticky moustaches onto the face of anyone not wearing a clown or mime mask. The moustaches will \ + remain attached to the face of all targets for one minute, preventing the use of breath masks and other such devices." + item = /obj/item/grenade/chem_grenade/teargas/moustache + cost = 3 + surplus = 0 + include_modes = list(/datum/game_mode/nuclear/clown_ops) + +/datum/uplink_item/explosives/viscerators + name = "Viscerator Delivery Grenade" + desc = "A unique grenade that deploys a swarm of viscerators upon activation, which will chase down and shred \ + any non-operatives in the area." + item = /obj/item/grenade/spawnergrenade/manhacks + cost = 5 + surplus = 35 + include_modes = list(/datum/game_mode/nuclear, /datum/game_mode/nuclear/clown_ops) diff --git a/code/modules/uplink/uplink_items/uplink_implants.dm b/code/modules/uplink/uplink_items/uplink_implants.dm new file mode 100644 index 0000000000..3262809cb5 --- /dev/null +++ b/code/modules/uplink/uplink_items/uplink_implants.dm @@ -0,0 +1,102 @@ + +/* + Uplink Items: + Unlike categories, uplink item entries are automatically sorted alphabetically on server init in a global list, + When adding new entries to the file, please keep them sorted by category. +*/ + +// Implants + +/datum/uplink_item/implants/adrenal + name = "Adrenal Implant" + desc = "An implant injected into the body, and later activated at the user's will. It will inject a chemical \ + cocktail which removes all incapacitating effects, lets the user run faster and has a mild healing effect." + item = /obj/item/storage/box/syndie_kit/imp_adrenal + cost = 8 + player_minimum = 25 + +/datum/uplink_item/implants/antistun + name = "CNS Rebooter Implant" + desc = "This implant will help you get back up on your feet faster after being stunned. Comes with an autosurgeon." + item = /obj/item/autosurgeon/anti_stun + cost = 12 + include_modes = list(/datum/game_mode/nuclear) + +/datum/uplink_item/implants/freedom + name = "Freedom Implant" + desc = "An implant injected into the body and later activated at the user's will. It will attempt to free the \ + user from common restraints such as handcuffs." + item = /obj/item/storage/box/syndie_kit/imp_freedom + cost = 5 + +/datum/uplink_item/implants/microbomb + name = "Microbomb Implant" + desc = "An implant injected into the body, and later activated either manually or automatically upon death. \ + The more implants inside of you, the higher the explosive power. \ + This will permanently destroy your body, however." + item = /obj/item/storage/box/syndie_kit/imp_microbomb + cost = 2 + include_modes = list(/datum/game_mode/nuclear) + +/datum/uplink_item/implants/macrobomb + name = "Macrobomb Implant" + desc = "An implant injected into the body, and later activated either manually or automatically upon death. \ + Upon death, releases a massive explosion that will wipe out everything nearby." + item = /obj/item/storage/box/syndie_kit/imp_macrobomb + cost = 20 + include_modes = list(/datum/game_mode/nuclear) + restricted = TRUE + +/datum/uplink_item/implants/radio + name = "Internal Syndicate Radio Implant" + desc = "An implant injected into the body, allowing the use of an internal Syndicate radio. \ + Used just like a regular headset, but can be disabled to use external headsets normally and to avoid detection." + item = /obj/item/storage/box/syndie_kit/imp_radio + cost = 4 + restricted = TRUE + +/datum/uplink_item/implants/reviver + name = "Reviver Implant" + desc = "This implant will attempt to revive and heal you if you lose consciousness. Comes with an autosurgeon." + item = /obj/item/autosurgeon/reviver + cost = 8 + include_modes = list(/datum/game_mode/nuclear) + +/datum/uplink_item/implants/stealthimplant + name = "Stealth Implant" + desc = "This one-of-a-kind implant will make you almost invisible as long as you don't don't excessively move around. \ + On activation, it will conceal you inside a chameleon cardboard box that is only revealed once someone bumps into it." + item = /obj/item/implanter/stealth + cost = 8 + +/datum/uplink_item/implants/storage + name = "Storage Implant" + desc = "An implant injected into the body, and later activated at the user's will. It will open a small bluespace \ + pocket capable of storing two regular-sized items." + item = /obj/item/storage/box/syndie_kit/imp_storage + cost = 8 + +/datum/uplink_item/implants/thermals + name = "Thermal Eyes" + desc = "These cybernetic eyes will give you thermal vision. Comes with a free autosurgeon." + item = /obj/item/autosurgeon/thermal_eyes + cost = 8 + include_modes = list(/datum/game_mode/nuclear) + +/datum/uplink_item/implants/uplink + name = "Uplink Implant" + desc = "An implant injected into the body, and later activated at the user's will. Has no telecrystals and must be charged by the use of physical telecrystals. \ + Undetectable (except via surgery), and excellent for escaping confinement." + item = /obj/item/storage/box/syndie_kit/imp_uplink + cost = 4 + // An empty uplink is kinda useless. + surplus = 0 + restricted = TRUE + +/datum/uplink_item/implants/xray + name = "X-ray Vision Implant" + desc = "These cybernetic eyes will give you X-ray vision. Comes with an autosurgeon." + item = /obj/item/autosurgeon/xray_eyes + cost = 10 + surplus = 0 + include_modes = list(/datum/game_mode/nuclear) diff --git a/code/modules/uplink/uplink_items/uplink_roles.dm b/code/modules/uplink/uplink_items/uplink_roles.dm new file mode 100644 index 0000000000..89d3c25700 --- /dev/null +++ b/code/modules/uplink/uplink_items/uplink_roles.dm @@ -0,0 +1,226 @@ + +/* + Uplink Items: + Unlike categories, uplink item entries are automatically sorted alphabetically on server init in a global list, + When adding new entries to the file, please keep them sorted by category. +*/ + +// Role-specific items + +/datum/uplink_item/role_restricted/ancient_jumpsuit + name = "Ancient Jumpsuit" + desc = "A tattered old jumpsuit that will provide absolutely no benefit to you. It fills the wearer with a strange compulsion to blurt out 'glorf'." + item = /obj/item/clothing/under/color/grey/glorf + cost = 20 + restricted_roles = list("Assistant") + +/datum/uplink_item/role_restricted/pie_cannon + name = "Banana Cream Pie Cannon" + desc = "A special pie cannon for a special clown, this gadget can hold up to 20 pies and automatically fabricates one every two seconds!" + cost = 10 + item = /obj/item/pneumatic_cannon/pie/selfcharge + restricted_roles = list("Clown") + +/datum/uplink_item/role_restricted/blastcannon + name = "Blast Cannon" + desc = "A highly specialized weapon, the Blast Cannon is actually relatively simple. It contains an attachment for a tank transfer valve mounted to an angled pipe specially constructed \ + withstand extreme pressure and temperatures, and has a mechanical trigger for triggering the transfer valve. Essentially, it turns the explosive force of a bomb into a narrow-angle \ + blast wave \"projectile\". Aspiring scientists may find this highly useful, as forcing the pressure shockwave into a narrow angle seems to be able to bypass whatever quirk of physics \ + disallows explosive ranges above a certain distance, allowing for the device to use the theoretical yield of a transfer valve bomb, instead of the factual yield." + item = /obj/item/gun/blastcannon + cost = 14 //High cost because of the potential for extreme damage in the hands of a skilled gas masked scientist. + restricted_roles = list("Research Director", "Scientist") + +/datum/uplink_item/role_restricted/alientech + name = "Alien Research Disk" + desc = "A technology disk holding a terabyte of highly confidential abductor technology. \ + Simply insert into research console of choice and import the files from the disk. Because of its foreign nature, it may require multiple uploads to work properly." + item = /obj/item/disk/tech_disk/abductor + cost = 12 + restricted_roles = list("Research Director", "Scientist", "Roboticist") + +/datum/uplink_item/role_restricted/clown_bomb + name = "Clown Bomb" + desc = "The Clown bomb is a hilarious device capable of massive pranks. It has an adjustable timer, \ + with a minimum of 60 seconds, and can be bolted to the floor with a wrench to prevent \ + movement. The bomb is bulky and cannot be moved; upon ordering this item, a smaller beacon will be \ + transported to you that will teleport the actual bomb to it upon activation. Note that this bomb can \ + be defused, and some crew may attempt to do so. \ + The bomb core can be pried out and manually detonated with other explosives." + item = /obj/item/sbeacondrop/clownbomb + cost = 15 + restricted_roles = list("Clown") + +/* +/datum/uplink_item/role_restricted/clowncar + name = "Clown Car" + desc = "The Clown Car is the ultimate transportation method for any worthy clown! \ + Simply insert your bikehorn and get in, and get ready to have the funniest ride of your life! \ + You can ram any spacemen you come across and stuff them into your car, kidnapping them and locking them inside until \ + someone saves them or they manage to crawl out. Be sure not to ram into any walls or vending machines, as the springloaded seats \ + are very sensetive. Now with our included lube defense mechanism which will protect you against any angry shitcurity!" + item = /obj/vehicle/sealed/car/clowncar + cost = 15 + restricted_roles = list("Clown") +*/ + +/datum/uplink_item/role_restricted/clumsyDNA + name = "Clumsy Clown DNA" + desc = "A DNA injector that has been loaded with the clown gene that makes people clumsy.. \ + Making someone clumsy will allow them to use clown firing pins as well as Reverse Revolvers. For a laugh try using this on the HOS to see how many times they shoot themselves in the foot!" + cost = 1 + item = /obj/item/dnainjector/clumsymut + restricted_roles = list("Clown") + +/datum/uplink_item/role_restricted/haunted_magic_eightball + name = "Haunted Magic Eightball" + desc = "Most magic eightballs are toys with dice inside. Although identical in appearance to the harmless toys, this occult device reaches into the spirit world to find its answers. \ + Be warned, that spirits are often capricious or just little assholes. To use, simply speak your question aloud, then begin shaking." + item = /obj/item/toy/eightball/haunted + cost = 2 + restricted_roles = list("Curator") + limited_stock = 1 //please don't spam deadchat + +/datum/uplink_item/role_restricted/his_grace + name = "His Grace" + desc = "An incredibly dangerous weapon recovered from a station overcome by the grey tide. Once activated, He will thirst for blood and must be used to kill to sate that thirst. \ + His Grace grants gradual regeneration and complete stun immunity to His wielder, but be wary: if He gets too hungry, He will become impossible to drop and eventually kill you if not fed. \ + However, if left alone for long enough, He will fall back to slumber. \ + To activate His Grace, simply unlatch Him." + item = /obj/item/his_grace + cost = 20 + restricted_roles = list("Chaplain") + surplus = 5 //Very low chance to get it in a surplus crate even without being the chaplain + +/datum/uplink_item/role_restricted/explosive_hot_potato + name = "Exploding Hot Potato" + desc = "A potato rigged with explosives. On activation, a special mechanism is activated that prevents it from being dropped. \ + The only way to get rid of it if you are holding it is to attack someone else with it, causing it to latch to that person instead." + item = /obj/item/hot_potato/syndicate + cost = 4 + restricted_roles = list("Cook", "Botanist", "Clown", "Mime") + +/datum/uplink_item/role_restricted/strange_seeds + name = "Pack of strange seeds" + desc = "Mysterious seeds as strange as their name implies. Spooky." + item = /obj/item/seeds/random + cost = 2 + restricted_roles = list("Botanist") + illegal_tech = FALSE + +/datum/uplink_item/role_restricted/strange_seeds_10pack + name = "Pack of strange seeds x10" + desc = "Mysterious seeds as strange as their name implies. Spooky. These come in bulk" + item = /obj/item/storage/box/strange_seeds_10pack + cost = 20 + restricted_roles = list("Botanist") + +/datum/uplink_item/role_restricted/ez_clean_bundle + name = "EZ Clean Grenade Bundle" + desc = "A box with three cleaner grenades using the trademark Waffle Co. formula. Serves as a cleaner and causes acid damage to anyone standing nearby. \ + The acid only affects carbon-based creatures." + item = /obj/item/storage/box/syndie_kit/ez_clean + cost = 6 + surplus = 20 + restricted_roles = list("Janitor") + +/datum/uplink_item/role_restricted/goldenbox + name = "Gold Toolbox" + desc = "A gold planted plastitanium toolbox loaded with tools. Comes with a set of AI detection multi-tool and a pare of combat gloves." + item = /obj/item/storage/toolbox/gold_real + cost = 3 // Has syndie tools + gloves + a robust weapon + restricted_roles = list("Assistant", "Curator") //Curator due to this being made of gold - It fits the theme + +/datum/uplink_item/role_restricted/mimery + name = "Guide to Advanced Mimery Series" + desc = "The classical two part series on how to further hone your mime skills. Upon studying the series, the user should be able to make 3x1 invisible walls, and shoot bullets out of their fingers. \ + Obviously only works for Mimes." + cost = 12 + item = /obj/item/storage/box/syndie_kit/mimery + restricted_roles = list("Mime") + +/datum/uplink_item/role_restricted/ultrahonkpins + name = "Hilarious firing pin" + desc = "A single firing pin made for Clown agents, this firing pin makes any gun honk when fired if not a true clown! \ + This firing pin also helps you fire the gun correctly. May the HonkMother HONK you agent." + item = /obj/item/firing_pin/clown/ultra + cost = 2 + restricted_roles = list("Clown") + +/datum/uplink_item/role_restricted/pressure_mod + name = "Kinetic Accelerator Pressure Mod" + desc = "A modification kit which allows Kinetic Accelerators to do greatly increased damage while indoors. \ + Occupies 35% mod capacity." + item = /obj/item/borg/upgrade/modkit/indoors + cost = 5 //you need two for full damage, so total of 10 for maximum damage + limited_stock = 2 //you can't use more than two! + restricted_roles = list("Shaft Miner") + +/datum/uplink_item/role_restricted/kitchen_gun + name = "Kitchen Gun (TM)" + desc = "A revolutionary .45 caliber cleaning solution! Say goodbye to daily stains and dirty surfaces with Kitchen Gun (TM)! \ + Just five shots from Kitchen Gun (TM), and it'll sparkle like new! Includes two extra ammunition clips!" + cost = 10 + surplus = 40 + restricted_roles = list("Cook", "Janitor") + item = /obj/item/storage/box/syndie_kit/kitchen_gun + +/datum/uplink_item/role_restricted/kitchen_gun_ammo + name = "Kitchen Gun (TM) .45 Magazine" + desc = "An extra eight bullets for an extra eight uses of Kitchen Gun (TM)!" + cost = 1 + restricted_roles = list("Cook", "Janitor") + item = /obj/item/ammo_box/magazine/m45/kitchengun + +/datum/uplink_item/role_restricted/magillitis_serum + name = "Magillitis Serum Autoinjector" + desc = "A single-use autoinjector which contains an experimental serum that causes rapid muscular growth in Hominidae. \ + Side-affects may include hypertrichosis, violent outbursts, and an unending affinity for bananas." + item = /obj/item/reagent_containers/hypospray/magillitis + cost = 8 + restricted_roles = list("Geneticist", "Chief Medical Officer") + +/datum/uplink_item/role_restricted/modified_syringe_gun + name = "Modified Syringe Gun" + desc = "A syringe gun that fires DNA injectors instead of normal syringes." + item = /obj/item/gun/syringe/dna + cost = 14 + restricted_roles = list("Geneticist", "Chief Medical Officer") + +/datum/uplink_item/role_restricted/chemical_gun + name = "Reagent Dartgun" + desc = "A heavily modified syringe gun which is capable of synthesizing its own chemical darts using input reagents. Can hold 100u of reagents." + item = /obj/item/gun/chem + cost = 12 + restricted_roles = list("Chemist", "Chief Medical Officer") + +/datum/uplink_item/role_restricted/reverse_bear_trap + name = "Reverse Bear Trap" + desc = "An ingenious execution device worn on (or forced onto) the head. Arming it starts a 1-minute kitchen timer mounted on the bear trap. When it goes off, the trap's jaws will \ + violently open, instantly killing anyone wearing it by tearing their jaws in half. To arm, attack someone with it while they're not wearing headgear, and you will force it onto their \ + head after three seconds uninterrupted." + cost = 5 + item = /obj/item/reverse_bear_trap + restricted_roles = list("Clown") + +/datum/uplink_item/role_restricted/reverse_revolver + name = "Reverse Revolver" + desc = "A revolver that always fires at its user. \"Accidentally\" drop your weapon, then watch as the greedy corporate pigs blow their own brains all over the wall. \ + The revolver itself is actually real. Only clumsy people, and clowns, can fire it normally. Comes in a box of hugs. Honk." + cost = 14 + item = /obj/item/storage/box/hug/reverse_revolver + restricted_roles = list("Clown") + +/datum/uplink_item/role_restricted/taeclowndo_shoes + name = "Tae-clown-do Shoes" + desc = "A pair of shoes for the most elite agents of the honkmotherland. They grant the mastery of taeclowndo with some honk-fu moves as long as they're worn." + cost = 14 + item = /obj/item/clothing/shoes/clown_shoes/taeclowndo + restricted_roles = list("Clown") + +/datum/uplink_item/role_restricted/emitter_cannon + name = "Emitter Cannon" + desc = "A small emitter fitted into a gun case, do to size constraints and safety it can only shoot about ten times when fully charged." + cost = 5 //Low ammo, and deals same as 10mm but emp-able + item = /obj/item/gun/energy/emitter + restricted_roles = list("Chief Engineer", "Station Engineer", "Atmospheric Technician") diff --git a/code/modules/uplink/uplink_items/uplink_stealth.dm b/code/modules/uplink/uplink_items/uplink_stealth.dm new file mode 100644 index 0000000000..65a8ad4080 --- /dev/null +++ b/code/modules/uplink/uplink_items/uplink_stealth.dm @@ -0,0 +1,134 @@ + +// Stealthy Weapons + +/* + Uplink Items: + Unlike categories, uplink item entries are automatically sorted alphabetically on server init in a global list, + When adding new entries to the file, please keep them sorted by category. +*/ + +/datum/uplink_item/stealthy_weapons/combatglovesplus + name = "Combat Gloves Plus" + desc = "A pair of gloves that are fireproof and shock resistant, however unlike the regular Combat Gloves this one uses nanotechnology \ + to learn the abilities of krav maga to the wearer." + item = /obj/item/clothing/gloves/krav_maga/combatglovesplus + cost = 5 + include_modes = list(/datum/game_mode/nuclear, /datum/game_mode/nuclear/clown_ops) + surplus = 0 + +/datum/uplink_item/stealthy_weapons/cqc + name = "CQC Manual" + desc = "A manual that teaches a single user tactical Close-Quarters Combat before self-destructing." + item = /obj/item/book/granter/martial/cqc + include_modes = list(/datum/game_mode/nuclear, /datum/game_mode/nuclear/clown_ops) + cost = 13 + surplus = 0 + +/datum/uplink_item/stealthy_weapons/dart_pistol + name = "Dart Pistol" + desc = "A miniaturized version of a normal syringe gun. It is very quiet when fired and can fit into any \ + space a small item can." + item = /obj/item/gun/syringe/syndicate + cost = 4 + surplus = 50 + +/datum/uplink_item/stealthy_weapons/dehy_carp + name = "Dehydrated Space Carp" + desc = "Looks like a plush toy carp, but just add water and it becomes a real-life space carp! Activate in \ + your hand before use so it knows not to kill you." + item = /obj/item/toy/plush/carpplushie/dehy_carp + cost = 1 + +/datum/uplink_item/stealthy_weapons/edagger + name = "Energy Dagger" + desc = "A dagger made of energy that looks and functions as a pen when off." + item = /obj/item/pen/edagger + cost = 2 + +/datum/uplink_item/stealthy_weapons/martialarts + name = "Sleeping Carp Scroll" + desc = "This scroll contains the secrets of an ancient martial arts technique. You will master unarmed combat, \ + deflecting all ranged weapon fire, but you also refuse to use dishonorable ranged weaponry." + item = /obj/item/book/granter/martial/carp + cost = 17 + surplus = 0 + exclude_modes = list(/datum/game_mode/nuclear, /datum/game_mode/nuclear/clown_ops) + +/datum/uplink_item/stealthy_weapons/martialartstwo + name = "Rising Bass Scroll" + desc = "This scroll contains the secrets of an ancient martial arts technique. You will become proficient in fleeing situations, \ + and dodging all ranged weapon fire, but you will refuse to use dishonorable ranged weaponry." + item = /obj/item/book/granter/martial/bass + cost = 18 + surplus = 0 + exclude_modes = list(/datum/game_mode/nuclear, /datum/game_mode/nuclear/clown_ops) + +/datum/uplink_item/stealthy_weapons/crossbow + name = "Miniature Energy Crossbow" + desc = "A short bow mounted across a tiller in miniature. Small enough to \ + fit into a pocket or slip into a bag unnoticed. It will synthesize \ + and fire bolts tipped with a paralyzing toxin that will briefly stun \ + targets and cause them to slur as if inebriated. It can produce an \ + infinite number of bolts, but takes time to automatically recharge \ + after each shot." + item = /obj/item/gun/energy/kinetic_accelerator/crossbow + cost = 12 + surplus = 50 + exclude_modes = list(/datum/game_mode/nuclear) + +/datum/uplink_item/stealthy_weapons/traitor_chem_bottle + name = "Poison Kit" + desc = "An assortment of deadly chemicals packed into a compact box. Comes with a syringe for more precise application." + item = /obj/item/storage/box/syndie_kit/chemical + cost = 6 + surplus = 50 + +/datum/uplink_item/stealthy_weapons/romerol_kit + name = "Romerol" + desc = "A highly experimental bioterror agent which creates dormant nodules to be etched into the grey matter of the brain. \ + On death, these nodules take control of the dead body, causing limited revivification, \ + along with slurred speech, aggression, and the ability to infect others with this agent." + item = /obj/item/storage/box/syndie_kit/romerol + cost = 25 + cant_discount = TRUE + exclude_modes = list(/datum/game_mode/nuclear) + +/datum/uplink_item/stealthy_weapons/sleepy_pen + name = "Sleepy Pen" + desc = "A syringe disguised as a functional pen, filled with a potent mix of drugs, including a \ + strong anesthetic and a chemical that prevents the target from speaking. \ + The pen holds one dose of the mixture, and can be refilled with any chemicals. Note that before the target \ + falls asleep, they will be able to move and act." + item = /obj/item/pen/sleepy + cost = 4 + exclude_modes = list(/datum/game_mode/nuclear) + +datum/uplink_item/stealthy_weapons/taeclowndo_shoes + name = "Tae-clown-do Shoes" + desc = "A pair of shoes for the most elite agents of the honkmotherland. They grant the mastery of taeclowndo with some honk-fu moves as long as they're worn." + cost = 12 + item = /obj/item/clothing/shoes/clown_shoes/taeclowndo + include_modes = list(/datum/game_mode/nuclear/clown_ops) + +/datum/uplink_item/stealthy_weapons/suppressor + name = "Suppressor" + desc = "This suppressor will silence the shots of the weapon it is attached to for increased stealth and superior ambushing capability. \ + It is compatible with many small ballistic guns including the Stechkin and C-20r, but not revolvers or energy guns." + item = /obj/item/suppressor + cost = 1 + surplus = 10 + exclude_modes = list(/datum/game_mode/nuclear/clown_ops) + +/datum/uplink_item/stealthy_weapons/soap + name = "Syndicate Soap" + desc = "A sinister-looking surfactant used to clean blood stains to hide murders and prevent DNA analysis. \ + You can also drop it underfoot to slip people." + item = /obj/item/soap/syndie + cost = 1 + surplus = 50 + +/datum/uplink_item/stealthy_weapons/soap_clusterbang + name = "Slipocalypse Clusterbang" + desc = "A traditional clusterbang grenade with a payload consisting entirely of Syndicate soap. Useful in any scenario!" + item = /obj/item/grenade/clusterbuster/soap + cost = 6 diff --git a/code/modules/uplink/uplink_items/uplink_stealthdevices.dm b/code/modules/uplink/uplink_items/uplink_stealthdevices.dm new file mode 100644 index 0000000000..d98548612e --- /dev/null +++ b/code/modules/uplink/uplink_items/uplink_stealthdevices.dm @@ -0,0 +1,125 @@ + +/* + Uplink Items: + Unlike categories, uplink item entries are automatically sorted alphabetically on server init in a global list, + When adding new entries to the file, please keep them sorted by category. +*/ + +// Stealth Items + +/datum/uplink_item/stealthy_tools/agent_card + name = "Agent Identification Card" + desc = "Agent cards prevent artificial intelligences from tracking the wearer, and can copy access \ + from other identification cards. The access is cumulative, so scanning one card does not erase the \ + access gained from another. In addition, they can be forged to display a new assignment and name. \ + This can be done an unlimited amount of times. Some Syndicate areas and devices can only be accessed \ + with these cards." + item = /obj/item/card/id/syndicate + cost = 2 + +/datum/uplink_item/stealthy_tools/ai_detector + name = "Artificial Intelligence Detector" + desc = "A functional multitool that turns red when it detects an artificial intelligence watching it, and can be \ + activated to display their exact viewing location and nearby security camera blind spots. Knowing when \ + an artificial intelligence is watching you is useful for knowing when to maintain cover, and finding nearby \ + blind spots can help you identify escape routes." + item = /obj/item/multitool/ai_detect + cost = 1 + +/datum/uplink_item/stealthy_tools/chameleon + name = "Chameleon Kit" + desc = "A set of items that contain chameleon technology allowing you to disguise as pretty much anything on the station, and more! \ + Due to budget cuts, the shoes don't provide protection against slipping." + item = /obj/item/storage/box/syndie_kit/chameleon + cost = 2 + exclude_modes = list(/datum/game_mode/nuclear) + +/datum/uplink_item/stealthy_tools/chameleon_proj + name = "Chameleon Projector" + desc = "Projects an image across a user, disguising them as an object scanned with it, as long as they don't \ + move the projector from their hand. Disguised users move slowly, and projectiles pass over them." + item = /obj/item/chameleon + cost = 7 + +/datum/uplink_item/stealthy_tools/codespeak_manual + name = "Codespeak Manual" + desc = "Syndicate agents can be trained to use a series of codewords to convey complex information, which sounds like random concepts and drinks to anyone listening. \ + This manual teaches you this Codespeak. You can also hit someone else with the manual in order to teach them. This is the deluxe edition, which has unlimited uses." + item = /obj/item/codespeak_manual/unlimited + cost = 3 + +/datum/uplink_item/stealthy_tools/combatbananashoes + name = "Combat Banana Shoes" + desc = "While making the wearer immune to most slipping attacks like regular combat clown shoes, these shoes \ + can generate a large number of synthetic banana peels as the wearer walks, slipping up would-be pursuers. They also \ + squeak significantly louder." + item = /obj/item/clothing/shoes/clown_shoes/banana_shoes/combat + cost = 6 + surplus = 0 + include_modes = list(/datum/game_mode/nuclear/clown_ops) + +/datum/uplink_item/stealthy_tools/emplight + name = "EMP Flashlight" + desc = "A small, self-recharging, short-ranged EMP device disguised as a working flashlight. \ + Useful for disrupting headsets, cameras, doors, lockers and borgs during stealth operations. \ + Attacking a target with this flashlight will direct an EM pulse at it and consumes a charge." + item = /obj/item/flashlight/emp + cost = 2 + surplus = 30 + +/datum/uplink_item/stealthy_tools/failsafe + name = "Failsafe Uplink Code" + desc = "When entered the uplink will self-destruct immidiately." + item = /obj/effect/gibspawner/generic + cost = 1 + surplus = 0 + restricted = TRUE + exclude_modes = list(/datum/game_mode/nuclear, /datum/game_mode/nuclear/clown_ops) + +/datum/uplink_item/stealthy_tools/failsafe/spawn_item(spawn_path, mob/user, datum/component/uplink/U) + if(!U) + return + U.failsafe_code = U.generate_code() + to_chat(user, "The new failsafe code for this uplink is now : [U.failsafe_code].") + if(user.mind) + user.mind.store_memory("Failsafe code for [U.parent] : [U.failsafe_code]") + return U.parent //For log icon + +/datum/uplink_item/stealthy_tools/mulligan + name = "Mulligan" + desc = "Screwed up and have security on your tail? This handy syringe will give you a completely new identity \ + and appearance." + item = /obj/item/reagent_containers/syringe/mulligan + cost = 3 + surplus = 30 + exclude_modes = list(/datum/game_mode/nuclear, /datum/game_mode/nuclear/clown_ops) + +/datum/uplink_item/stealthy_tools/syndigaloshes + name = "No-Slip Chameleon Shoes" + desc = "These shoes will allow the wearer to run on wet floors and slippery objects without falling down. \ + They do not work on heavily lubricated surfaces." + item = /obj/item/clothing/shoes/chameleon/noslip + cost = 2 + exclude_modes = list(/datum/game_mode/nuclear, /datum/game_mode/nuclear/clown_ops) + player_minimum = 20 + +/datum/uplink_item/stealthy_tools/syndigaloshes/nuke + item = /obj/item/clothing/shoes/chameleon/noslip + cost = 4 + exclude_modes = list() + include_modes = list(/datum/game_mode/nuclear) + +/datum/uplink_item/stealthy_tools/jammer + name = "Radio Jammer" + desc = "This device will disrupt any nearby outgoing radio communication when activated. Does not affect binary chat." + item = /obj/item/jammer + cost = 5 + +/datum/uplink_item/stealthy_tools/smugglersatchel + name = "Smuggler's Satchel" + desc = "This satchel is thin enough to be hidden in the gap between plating and tiling; great for stashing \ + your stolen goods. Comes with a crowbar and a floor tile inside. Properly hidden satchels have been \ + known to survive intact even beyond the current shift. " + item = /obj/item/storage/backpack/satchel/flat + cost = 2 + surplus = 30 diff --git a/code/modules/uplink/uplink_items/uplink_support.dm b/code/modules/uplink/uplink_items/uplink_support.dm new file mode 100644 index 0000000000..fe1415adc8 --- /dev/null +++ b/code/modules/uplink/uplink_items/uplink_support.dm @@ -0,0 +1,76 @@ + +/* + Uplink Items: + Unlike categories, uplink item entries are automatically sorted alphabetically on server init in a global list, + When adding new entries to the file, please keep them sorted by category. +*/ + +//Support and Mechs + +/datum/uplink_item/support/clown_reinforcement + name = "Clown Reinforcements" + desc = "Call in an additional clown to share the fun, equipped with full starting gear, but no telecrystals." + item = /obj/item/antag_spawner/nuke_ops/clown + cost = 20 + include_modes = list(/datum/game_mode/nuclear/clown_ops) + restricted = TRUE + +/datum/uplink_item/support/reinforcement + name = "Reinforcements" + desc = "Call in an additional team member. They won't come with any gear, so you'll have to save some telecrystals \ + to arm them as well." + item = /obj/item/antag_spawner/nuke_ops + cost = 25 + refundable = TRUE + include_modes = list(/datum/game_mode/nuclear) + restricted = TRUE + +/datum/uplink_item/support/reinforcement/assault_borg + name = "Syndicate Assault Cyborg" + desc = "A cyborg designed and programmed for systematic extermination of non-Syndicate personnel. \ + Comes equipped with a self-resupplying LMG, a grenade launcher, energy sword, emag, pinpointer, flash and crowbar." + item = /obj/item/antag_spawner/nuke_ops/borg_tele/assault + refundable = TRUE + cost = 65 + restricted = TRUE + +/datum/uplink_item/support/reinforcement/medical_borg + name = "Syndicate Medical Cyborg" + desc = "A combat medical cyborg. Has limited offensive potential, but makes more than up for it with its support capabilities. \ + It comes equipped with a nanite hypospray, a medical beamgun, combat defibrillator, full surgical kit including an energy saw, an emag, pinpointer and flash. \ + Thanks to its organ storage bag, it can perform surgery as well as any humanoid." + item = /obj/item/antag_spawner/nuke_ops/borg_tele/medical + refundable = TRUE + cost = 35 + restricted = TRUE + +/datum/uplink_item/support/reinforcement/saboteur_borg + name = "Syndicate Saboteur Cyborg" + desc = "A streamlined engineering cyborg, equipped with covert modules. Also incapable of leaving the welder in the shuttle. \ + Aside from regular Engineering equipment, it comes with a special destination tagger that lets it traverse disposals networks. \ + Its chameleon projector lets it disguise itself as a Nanotrasen cyborg, on top it has thermal vision and a pinpointer." + item = /obj/item/antag_spawner/nuke_ops/borg_tele/saboteur + refundable = TRUE + cost = 35 + restricted = TRUE + +/datum/uplink_item/support/gygax + name = "Dark Gygax Exosuit" + desc = "A lightweight exosuit, painted in a dark scheme. Its speed and equipment selection make it excellent \ + for hit-and-run style attacks. Features an incendiary carbine, flash bang launcher, teleporter, ion thrusters and a Tesla energy array." + item = /obj/mecha/combat/gygax/dark/loaded + cost = 80 + +/datum/uplink_item/support/honker + name = "Dark H.O.N.K." + desc = "A clown combat mech equipped with bombanana peel and tearstache grenade launchers, as well as the ubiquitous HoNkER BlAsT 5000." + item = /obj/mecha/combat/honker/dark/loaded + cost = 80 + include_modes = list(/datum/game_mode/nuclear/clown_ops) + +/datum/uplink_item/support/mauler + name = "Mauler Exosuit" + desc = "A massive and incredibly deadly military-grade exosuit. Features long-range targeting, thrust vectoring \ + and deployable smoke. Comes equipped with an LMG, scattershot carbine, missile rack, an antiprojectile armor booster and a Tesla energy array." + item = /obj/mecha/combat/marauder/mauler/loaded + cost = 140 diff --git a/code/modules/vehicles/cars/clowncar.dm b/code/modules/vehicles/cars/clowncar.dm index 1415604aff..73ba785ec2 100644 --- a/code/modules/vehicles/cars/clowncar.dm +++ b/code/modules/vehicles/cars/clowncar.dm @@ -107,7 +107,7 @@ visible_message("[user] has pressed one of the colorful buttons on [src] and the clown car spews out a cloud of laughing gas.") var/datum/reagents/R = new/datum/reagents(300) R.my_atom = src - R.add_reagent("superlaughter", 50) + R.add_reagent(/datum/reagent/consumable/superlaughter, 50) var/datum/effect_system/smoke_spread/chem/smoke = new() smoke.set_up(R, 4) smoke.attach(src) diff --git a/code/modules/vending/clothesmate.dm b/code/modules/vending/clothesmate.dm index 6144f4c57a..6116936880 100644 --- a/code/modules/vending/clothesmate.dm +++ b/code/modules/vending/clothesmate.dm @@ -134,7 +134,13 @@ /obj/item/clothing/head/christmashatg = 3, /obj/item/clothing/shoes/winterboots/christmasbootsr = 3, /obj/item/clothing/shoes/winterboots/christmasbootsg = 3, - /obj/item/clothing/shoes/winterboots/santaboots = 3) + /obj/item/clothing/shoes/winterboots/santaboots = 3, + /obj/item/clothing/head/cowboyhat = 3, + /obj/item/clothing/head/cowboyhat/black = 3, + /obj/item/clothing/head/cowboyhat/white = 3, + /obj/item/clothing/head/cowboyhat/pink = 3, + /obj/item/clothing/shoes/cowboyboots = 3, + /obj/item/clothing/shoes/cowboyboots/black = 3) contraband = list(/obj/item/clothing/under/syndicate/tacticool = 3, /obj/item/clothing/under/syndicate/tacticool/skirt = 3, /obj/item/clothing/mask/balaclava = 3, diff --git a/code/modules/vending/kinkmate.dm b/code/modules/vending/kinkmate.dm new file mode 100644 index 0000000000..f840f391fa --- /dev/null +++ b/code/modules/vending/kinkmate.dm @@ -0,0 +1,48 @@ +/obj/machinery/vending/kink + name = "KinkMate" + desc = "A vending machine for all your unmentionable desires." + icon = 'icons/obj/citvending.dmi' + icon_state = "kink" + circuit = /obj/item/circuitboard/machine/kinkmate + product_slogans = "Kinky!;Sexy!;Check me out, big boy!" + vend_reply = "Have fun, you shameless pervert!" + products = list( + /obj/item/clothing/under/maid = 5, + /obj/item/clothing/under/janimaid = 5, + /obj/item/clothing/neck/petcollar = 5, + /obj/item/clothing/neck/petcollar/choker = 5, + /obj/item/clothing/neck/petcollar/leather = 5, + /obj/item/restraints/handcuffs/fake/kinky = 5, + /obj/item/clothing/glasses/sunglasses/blindfold = 4, + /obj/item/clothing/mask/muzzle = 4, + /obj/item/clothing/under/stripper_pink = 3, + /obj/item/clothing/under/stripper_green = 3, + /obj/item/clothing/under/corset = 3, + /obj/item/clothing/under/gear_harness = 10, + /obj/item/dildo/custom = 5, + /obj/item/electropack/shockcollar = 3, + /obj/item/assembly/signaler = 3 + ) + contraband = list( + /obj/item/clothing/neck/petcollar/locked = 2, + /obj/item/key/collar = 2, + /obj/item/clothing/head/kitty = 3, + /obj/item/clothing/head/rabbitears = 3, + /obj/item/clothing/under/keyholesweater = 2, + /obj/item/clothing/under/mankini = 2, + /obj/item/clothing/under/jabroni = 2, + /obj/item/dildo/flared/huge = 3, + /obj/item/reagent_containers/glass/bottle/crocin = 5, + /obj/item/reagent_containers/glass/bottle/camphor = 5 + ) + premium = list( + /obj/item/clothing/accessory/skullcodpiece/fake = 3, + /obj/item/reagent_containers/glass/bottle/hexacrocin = 10, + /obj/item/clothing/under/pants/chaps = 5 + ) + refill_canister = /obj/item/vending_refill/kink + +/obj/item/vending_refill/kink + machine_name = "KinkMate" + icon = 'modular_citadel/icons/vending_restock.dmi' + icon_state = "refill_kink" diff --git a/code/modules/vending/medical.dm b/code/modules/vending/medical.dm index ac850efc66..d32af7de03 100644 --- a/code/modules/vending/medical.dm +++ b/code/modules/vending/medical.dm @@ -24,6 +24,12 @@ /obj/item/reagent_containers/glass/bottle/morphine = 4, /obj/item/reagent_containers/glass/bottle/toxin = 3, /obj/item/reagent_containers/syringe/antiviral = 6, + /obj/item/storage/hypospraykit/fire = 2, + /obj/item/storage/hypospraykit/toxin = 2, + /obj/item/storage/hypospraykit/o2 = 2, + /obj/item/storage/hypospraykit/brute = 2, + /obj/item/storage/hypospraykit/enlarge = 2, + /obj/item/reagent_containers/glass/bottle/vial/small = 5, /obj/item/storage/briefcase/medical = 2) contraband = list(/obj/item/reagent_containers/pill/tox = 3, /obj/item/reagent_containers/pill/morphine = 4, diff --git a/code/modules/vending/sovietvend.dm b/code/modules/vending/sovietvend.dm new file mode 100644 index 0000000000..086b37e4ee --- /dev/null +++ b/code/modules/vending/sovietvend.dm @@ -0,0 +1,31 @@ +/obj/machinery/vending/sovietvend + name = "KomradeVendtink" + desc = "Rodina-mat' zovyot!" + icon = 'icons/obj/citvending.dmi' + icon_state = "soviet" + vend_reply = "The fascist and capitalist svin'ya shall fall, komrade!" + product_slogans = "Quality worth waiting in line for!; Get Hammer and Sickled!; Sosvietsky soyuz above all!; With capitalist pigsky, you would have paid a fortunetink! ; Craftink in Motherland herself!" + products = list( + /obj/item/clothing/under/soviet = 20, + /obj/item/clothing/head/ushanka = 20, + /obj/item/clothing/shoes/jackboots = 20, + /obj/item/clothing/head/squatter_hat = 20, + /obj/item/clothing/under/squatter_outfit = 20, + /obj/item/clothing/under/russobluecamooutfit = 20, + /obj/item/clothing/head/russobluecamohat = 20 + ) + contraband = list( + /obj/item/clothing/under/syndicate/tacticool = 4, + /obj/item/clothing/mask/balaclava = 4, + /obj/item/clothing/suit/russofurcoat = 4, + /obj/item/clothing/head/russofurhat = 4, + /obj/item/clothing/suit/space/hardsuit/soviet = 3, + /obj/item/gun/energy/laser/LaserAK = 4 + ) + premium = list() + + refill_canister = /obj/item/vending_refill/soviet + +/obj/item/vending_refill/soviet + machine_name = "sovietvend" + icon_state = "refill_soviet" diff --git a/code/modules/vending/wardrobes.dm b/code/modules/vending/wardrobes.dm index 894aecc600..cd643e4220 100644 --- a/code/modules/vending/wardrobes.dm +++ b/code/modules/vending/wardrobes.dm @@ -335,6 +335,8 @@ /obj/item/clothing/head/nemes = 1, /obj/item/clothing/head/pharaoh = 1, /obj/item/storage/fancy/candle_box = 3) + premium = list(/obj/item/toy/plush/plushvar = 1, + /obj/item/toy/plush/narplush = 1) refill_canister = /obj/item/vending_refill/wardrobe/chap_wardrobe /obj/item/vending_refill/wardrobe/chap_wardrobe diff --git a/code/modules/vore/eating/voreitems.dm b/code/modules/vore/eating/voreitems.dm index 741782545a..05ab1e5f8b 100644 --- a/code/modules/vore/eating/voreitems.dm +++ b/code/modules/vore/eating/voreitems.dm @@ -35,7 +35,6 @@ /* /datum/reagent/medicine/ickypak name = "Ickypak" - id = "ickypak" description = "A foul-smelling green liquid, for inducing muscle contractions to expel accidentally ingested things." reagent_state = LIQUID color = "#0E900E" @@ -57,6 +56,6 @@ /datum/chemical_reaction/ickypak name = "Ickypak" - id = "ickypak" - results = list("ickypak" = 2) - required_reagents = list("chlorine" = 2 , "oil" = 1) */ \ No newline at end of file + id = /datum/reagent/medicine/ickypak + results = list(/datum/reagent/medicine/ickypak = 2) + required_reagents = list(/datum/reagent/chlorine = 2 , /datum/reagent/oil = 1) */ \ No newline at end of file diff --git a/code/modules/vore/resizing/sizechemicals.dm b/code/modules/vore/resizing/sizechemicals.dm index f83ba2ce76..612e8c9fde 100644 --- a/code/modules/vore/resizing/sizechemicals.dm +++ b/code/modules/vore/resizing/sizechemicals.dm @@ -5,7 +5,6 @@ /datum/reagent/medicine/macrocillin name = "Macrocillin" - id = "macrocillin" description = "Glowing yellow liquid." reagent_state = LIQUID color = "#FFFF00" // rgb: 255, 255, 0 @@ -17,13 +16,12 @@ M.sizescale(size) M << "You grow!" break - if(M.reagents.has_reagent("macrocillin")) - M.reagents.remove_reagent("macrocillin", 20) + if(M.reagents.has_reagent(/datum/reagent/medicine/macrocillin)) + M.reagents.remove_reagent(/datum/reagent/medicine/macrocillin, 20) ..() /datum/reagent/medicine/microcillin name = "Microcillin" - id = "microcillin" description = "Murky purple liquid." reagent_state = LIQUID color = "#800080" @@ -35,14 +33,13 @@ M.sizescale(size) M << "You shrink!" break; - if(M.reagents.has_reagent("microcillin")) - M.reagents.remove_reagent("microcillin", 20) + if(M.reagents.has_reagent(/datum/reagent/medicine/microcillin)) + M.reagents.remove_reagent(/datum/reagent/medicine/microcillin, 20) ..() /datum/reagent/medicine/normalcillin name = "Normalcillin" - id = "normalcillin" description = "Translucent cyan liquid." reagent_state = LIQUID color = "#00FFFF" @@ -62,14 +59,13 @@ M.sizescale(SIZESCALE_SMALL) M << "You grow!" - if(M.reagents.has_reagent("normalcillin")) - M.reagents.remove_reagent("normalcillin", 20) + if(M.reagents.has_reagent(/datum/reagent/medicine/normalcillin)) + M.reagents.remove_reagent(/datum/reagent/medicine/normalcillin, 20) ..() /datum/reagent/medicine/sizeoxadone name = "Sizeoxadone" - id = "sizeoxadone" description = "A volatile liquid used as a precursor to size-altering chemicals. Causes dizziness if taken unprocessed." reagent_state = LIQUID color = "#1E90FF" @@ -93,7 +89,6 @@ /datum/reagent/medicine/ickypak name = "Ickypak" - id = "ickypak" description = "A foul-smelling green liquid, for inducing muscle contractions to expel accidentally ingested things." reagent_state = LIQUID color = "#0E900E" diff --git a/html/changelogs/AutoChangeLog-pr-10112.yml b/html/changelogs/AutoChangeLog-pr-10112.yml new file mode 100644 index 0000000000..f09d8fa9ef --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-10112.yml @@ -0,0 +1,5 @@ +author: "Ghommie" +delete-after: True +changes: + - refactor: "Refactored that mess of a code for alternate worn clothing sprites for digitigrade and taurs." + - bugfix: "Fixed some issues with the aforementioned feature you may or may not have experienced because it was pretty lame." diff --git a/html/changelogs/AutoChangeLog-pr-10247.yml b/html/changelogs/AutoChangeLog-pr-10247.yml new file mode 100644 index 0000000000..b78e5c415d --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-10247.yml @@ -0,0 +1,5 @@ +author: "Seris02" +delete-after: True +changes: + - rscadd: "added atmos holofirelocks and temperature blocking" + - tweak: "tweaked how atmos holofan looks" diff --git a/html/changelogs/AutoChangeLog-pr-10329.yml b/html/changelogs/AutoChangeLog-pr-10329.yml new file mode 100644 index 0000000000..e5d78ddf96 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-10329.yml @@ -0,0 +1,5 @@ +author: "Naksu" +delete-after: True +changes: + - code_imp: "reagent IDs have been removed in favor using reagent typepaths where applicable" + - bugfix: "mechas, borg hyposprays etc no longer display internal reagent ids to the player" diff --git a/html/changelogs/AutoChangeLog-pr-10416.yml b/html/changelogs/AutoChangeLog-pr-10416.yml new file mode 100644 index 0000000000..13432b283c --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-10416.yml @@ -0,0 +1,10 @@ +author: "r4d6" +delete-after: True +changes: + - rscadd: "Animations for the RCD" + - bugfix: "Said animations being pulled by the Singulo" + - balance: "Prevent Reinforced Doors from being RCD'ed" + - bugfix: "Deconstructing Floors now cost MUs like everything else" + - tweak: "changed the RCD's upgrades into flags" + - rscadd: "Allow RCDs to print APC, Firelocks and Fire Alarms with the right upgrade" + - balance: "Allow Engineers to print RCDs and RPDs from their protolathe without needing to hack one." diff --git a/html/changelogs/AutoChangeLog-pr-10465.yml b/html/changelogs/AutoChangeLog-pr-10465.yml new file mode 100644 index 0000000000..26dff901b2 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-10465.yml @@ -0,0 +1,8 @@ +author: "Putnam3145" +delete-after: True +changes: + - rscadd: "Ghost dojo now has an autoylathe." + - rscdel: "Ghost dojo no longer has VR or modular computer access." + - tweak: "Ghost dojo mobs are pacifists." + - tweak: "Ghost dojo booze-o-mat is now all access." + - bugfix: "Ghost dojo crematorium now has a button." diff --git a/html/changelogs/AutoChangeLog-pr-10480.yml b/html/changelogs/AutoChangeLog-pr-10480.yml new file mode 100644 index 0000000000..7ecfd7057e --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-10480.yml @@ -0,0 +1,4 @@ +author: "Putnam3145" +delete-after: True +changes: + - rscadd: "Second, temporary flavor text!" diff --git a/html/changelogs/AutoChangeLog-pr-10482.yml b/html/changelogs/AutoChangeLog-pr-10482.yml new file mode 100644 index 0000000000..e97c8870d4 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-10482.yml @@ -0,0 +1,4 @@ +author: "kappa-sama" +delete-after: True +changes: + - code_imp: "modular_citadel file movement" diff --git a/html/changelogs/AutoChangeLog-pr-10485.yml b/html/changelogs/AutoChangeLog-pr-10485.yml new file mode 100644 index 0000000000..6bf082f8ba --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-10485.yml @@ -0,0 +1,4 @@ +author: "Detective-Google" +delete-after: True +changes: + - tweak: "replaced the sprites with new ones requested." diff --git a/html/changelogs/AutoChangeLog-pr-10486.yml b/html/changelogs/AutoChangeLog-pr-10486.yml new file mode 100644 index 0000000000..448bbc162c --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-10486.yml @@ -0,0 +1,4 @@ +author: "Seris02" +delete-after: True +changes: + - tweak: "changed where the observe verb is." diff --git a/html/changelogs/AutoChangeLog-pr-10489.yml b/html/changelogs/AutoChangeLog-pr-10489.yml new file mode 100644 index 0000000000..4e393bd4b1 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-10489.yml @@ -0,0 +1,5 @@ +author: "Seris02" +delete-after: True +changes: + - tweak: "the way chameleon clothes update on change" + - bugfix: "chameleon cloak icon" diff --git a/html/changelogs/AutoChangeLog-pr-10492.yml b/html/changelogs/AutoChangeLog-pr-10492.yml new file mode 100644 index 0000000000..de6ab309ab --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-10492.yml @@ -0,0 +1,4 @@ +author: "Trilbyspaceclone" +delete-after: True +changes: + - rscadd: "Glitter is now makeable with ground plastic and some crayons" diff --git a/html/changelogs/AutoChangeLog-pr-10495.yml b/html/changelogs/AutoChangeLog-pr-10495.yml new file mode 100644 index 0000000000..02ffedf5fc --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-10495.yml @@ -0,0 +1,4 @@ +author: "kevinz000" +delete-after: True +changes: + - rscadd: "guests can now looc" diff --git a/html/changelogs/AutoChangeLog-pr-10497.yml b/html/changelogs/AutoChangeLog-pr-10497.yml new file mode 100644 index 0000000000..5acb6f8c47 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-10497.yml @@ -0,0 +1,4 @@ +author: "Trilbyspaceclone" +delete-after: True +changes: + - code_imp: "Makes more folders and files for uplink." diff --git a/html/changelogs/AutoChangeLog-pr-10498.yml b/html/changelogs/AutoChangeLog-pr-10498.yml new file mode 100644 index 0000000000..986abc77c2 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-10498.yml @@ -0,0 +1,4 @@ +author: "kevinz000" +delete-after: True +changes: + - tweak: "tableslamming has 0.4 second cooldown instead of 0.8" diff --git a/html/changelogs/AutoChangeLog-pr-10503.yml b/html/changelogs/AutoChangeLog-pr-10503.yml new file mode 100644 index 0000000000..b067aa6c55 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-10503.yml @@ -0,0 +1,4 @@ +author: "r4d6" +delete-after: True +changes: + - bugfix: "fixed SM's piping" diff --git a/html/changelogs/AutoChangeLog-pr-10504.yml b/html/changelogs/AutoChangeLog-pr-10504.yml new file mode 100644 index 0000000000..7e35ac6e72 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-10504.yml @@ -0,0 +1,5 @@ +author: "Xantholne" +delete-after: True +changes: + - rscadd: "Botany bee pet, Bumbles" + - rscadd: "New bee models that aren't 1 tile big of 0 opacity pixels" diff --git a/html/changelogs/AutoChangeLog-pr-10505.yml b/html/changelogs/AutoChangeLog-pr-10505.yml new file mode 100644 index 0000000000..dd0932c50e --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-10505.yml @@ -0,0 +1,5 @@ +author: "LetterN" +delete-after: True +changes: + - tweak: "Shockcolar and electropack uses the new signaler ui" + - tweak: "Renaming shockcolar requires a pen" diff --git a/html/changelogs/AutoChangeLog-pr-10509.yml b/html/changelogs/AutoChangeLog-pr-10509.yml new file mode 100644 index 0000000000..4e1ede0631 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-10509.yml @@ -0,0 +1,4 @@ +author: "Ghommie" +delete-after: True +changes: + - bugfix: "Made reagent containers examine text less annoying." diff --git a/html/changelogs/AutoChangeLog-pr-10511.yml b/html/changelogs/AutoChangeLog-pr-10511.yml new file mode 100644 index 0000000000..5f3bf739cb --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-10511.yml @@ -0,0 +1,4 @@ +author: "kevinz000" +delete-after: True +changes: + - bugfix: "health analyzers now work" diff --git a/html/changelogs/AutoChangeLog-pr-10513.yml b/html/changelogs/AutoChangeLog-pr-10513.yml new file mode 100644 index 0000000000..6428c4e281 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-10513.yml @@ -0,0 +1,4 @@ +author: "r4d6" +delete-after: True +changes: + - rscadd: "Added a message when pulsing the open wire." diff --git a/html/changelogs/AutoChangeLog-pr-10516.yml b/html/changelogs/AutoChangeLog-pr-10516.yml new file mode 100644 index 0000000000..39dd05a4db --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-10516.yml @@ -0,0 +1,4 @@ +author: "BonniePandora" +delete-after: True +changes: + - admin: "Added another SDQL option. Using \"UPDATE selectors SET #null=value\" will now resolve value and discard the return. This is useful if you only care about the side effect of a proc." diff --git a/html/changelogs/AutoChangeLog-pr-10518.yml b/html/changelogs/AutoChangeLog-pr-10518.yml new file mode 100644 index 0000000000..29de186e50 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-10518.yml @@ -0,0 +1,6 @@ +author: "Seris02" +delete-after: True +changes: + - balance: "Explosions now cause knockdown instead of KOs, with the amount of time scaling off bomb armor. Heavy explosions still cause a ~2 second KO for follow up attacks." + - balance: "Devastating explosions now no longer gib players with more than 50 bomb armor. This used to be more or less random depending on the amount of bomb armor." + - code_imp: "Removed reagent explosion code that would trigger for <1 amount reactions." diff --git a/html/changelogs/AutoChangeLog-pr-10522.yml b/html/changelogs/AutoChangeLog-pr-10522.yml new file mode 100644 index 0000000000..b03b990762 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-10522.yml @@ -0,0 +1,4 @@ +author: "Hatterhat" +delete-after: True +changes: + - rscadd: "Syndicate sleepers (read: the ones that're red and have controls in them) can now be recreated with a sufficient basis in nonstandard (read: illegal) technologies!" diff --git a/html/changelogs/AutoChangeLog-pr-10523.yml b/html/changelogs/AutoChangeLog-pr-10523.yml new file mode 100644 index 0000000000..999fc1dd92 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-10523.yml @@ -0,0 +1,4 @@ +author: "Hatterhat" +delete-after: True +changes: + - bugfix: "Explorer hoods on standard explorer suits can be reinforced with goliath hide plates again." diff --git a/html/changelogs/AutoChangeLog-pr-10532.yml b/html/changelogs/AutoChangeLog-pr-10532.yml new file mode 100644 index 0000000000..cf742b47f7 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-10532.yml @@ -0,0 +1,6 @@ +author: "Ghommie" +delete-after: True +changes: + - bugfix: "Virus food dispensers dispense virus food again." + - bugfix: "Borg hypos inputs do not display typepaths anymore." + - bugfix: "Restored chem dispensers alphabetical order." diff --git a/icons/effects/effects_rcd.dmi b/icons/effects/effects_rcd.dmi new file mode 100644 index 0000000000..efb13bfb11 Binary files /dev/null and b/icons/effects/effects_rcd.dmi differ diff --git a/icons/mob/animal.dmi b/icons/mob/animal.dmi index a46ad83640..d3ffdb62e4 100644 Binary files a/icons/mob/animal.dmi and b/icons/mob/animal.dmi differ diff --git a/icons/mob/bees.dmi b/icons/mob/bees.dmi index 5d9bfea48b..0a8e25c763 100644 Binary files a/icons/mob/bees.dmi and b/icons/mob/bees.dmi differ diff --git a/icons/mob/custom_w.dmi b/icons/mob/custom_w.dmi index a73da3aa0c..7452d63134 100644 Binary files a/icons/mob/custom_w.dmi and b/icons/mob/custom_w.dmi differ diff --git a/icons/mob/feet.dmi b/icons/mob/feet.dmi index e768271757..bebfb7c2e0 100644 Binary files a/icons/mob/feet.dmi and b/icons/mob/feet.dmi differ diff --git a/icons/mob/head.dmi b/icons/mob/head.dmi index 3adedcffba..6bba2fc7fb 100644 Binary files a/icons/mob/head.dmi and b/icons/mob/head.dmi differ diff --git a/icons/mob/pets.dmi b/icons/mob/pets.dmi index 10f29f51e4..9751e9d964 100644 Binary files a/icons/mob/pets.dmi and b/icons/mob/pets.dmi differ diff --git a/icons/mob/taur_canine.dmi b/icons/mob/taur_canine.dmi index 15d6214446..d266d1f135 100644 Binary files a/icons/mob/taur_canine.dmi and b/icons/mob/taur_canine.dmi differ diff --git a/icons/mob/taur_hooved.dmi b/icons/mob/taur_hooved.dmi index 63e604b430..71aec5444a 100644 Binary files a/icons/mob/taur_hooved.dmi and b/icons/mob/taur_hooved.dmi differ diff --git a/icons/mob/underwear.dmi b/icons/mob/underwear.dmi index e0789a1eeb..f0c2cde93d 100644 Binary files a/icons/mob/underwear.dmi and b/icons/mob/underwear.dmi differ diff --git a/icons/obj/clothing/hats.dmi b/icons/obj/clothing/hats.dmi index 4587d6e7b6..f94106dd55 100644 Binary files a/icons/obj/clothing/hats.dmi and b/icons/obj/clothing/hats.dmi differ diff --git a/icons/obj/clothing/shoes.dmi b/icons/obj/clothing/shoes.dmi index b52c314296..3c8a1332a9 100644 Binary files a/icons/obj/clothing/shoes.dmi and b/icons/obj/clothing/shoes.dmi differ diff --git a/icons/obj/food/containers.dmi b/icons/obj/food/containers.dmi index d3bdc1b1ea..93acc07453 100644 Binary files a/icons/obj/food/containers.dmi and b/icons/obj/food/containers.dmi differ diff --git a/modular_citadel/code/datums/components/material_container.dm b/modular_citadel/code/datums/components/material_container.dm deleted file mode 100644 index a7c50e37c5..0000000000 --- a/modular_citadel/code/datums/components/material_container.dm +++ /dev/null @@ -1,4 +0,0 @@ -/datum/material/plastic - name = "Plastic" - id = MAT_PLASTIC - sheet_type = /obj/item/stack/sheet/plastic \ No newline at end of file diff --git a/modular_citadel/code/datums/status_effects/chems.dm b/modular_citadel/code/datums/status_effects/chems.dm index 8adc7c0745..4449ca801a 100644 --- a/modular_citadel/code/datums/status_effects/chems.dm +++ b/modular_citadel/code/datums/status_effects/chems.dm @@ -179,7 +179,7 @@ /datum/status_effect/chem/astral_insurance/tick(mob/living/carbon/M) . = ..() - if(owner.reagents.has_reagent("astral")) + if(owner.reagents.has_reagent(/datum/reagent/fermi/astral)) return if(owner.mind == originalmind) //If they're home, let the chem deal with deletion. return @@ -284,15 +284,15 @@ var/mob/living/carbon/M = owner //chem calculations - if(!owner.reagents.has_reagent("enthrall") && !owner.reagents.has_reagent("enthrallTest")) + if(!owner.reagents.has_reagent(/datum/chemical_reaction/fermi/enthrall) && !owner.reagents.has_reagent(/datum/reagent/fermi/enthrall/test)) if (phase < 3 && phase != 0) deltaResist += 3//If you've no chem, then you break out quickly if(prob(5)) to_chat(owner, "Your mind starts to restore some of it's clarity as you feel the effects of the drug wain.") if (mental_capacity <= 500 || phase == 4) - if (owner.reagents.has_reagent("mannitol")) + if (owner.reagents.has_reagent(/datum/reagent/medicine/mannitol)) mental_capacity += 5 - if (owner.reagents.has_reagent("neurine")) + if (owner.reagents.has_reagent(/datum/reagent/medicine/neurine)) mental_capacity += 10 //mindshield check @@ -369,7 +369,7 @@ if(lewd && prob(1) && !customEcho) to_chat(owner, "[pick("I belong to [enthrallGender].", "[enthrallGender] knows whats best for me.", "Obedence is pleasure.", "I exist to serve [enthrallGender].", "[enthrallGender] is so dominant, it feels right to obey them.")].") if (4) //mindbroken - if (mental_capacity >= 499 && (owner.getOrganLoss(ORGAN_SLOT_BRAIN) <=0 || HAS_TRAIT(M, TRAIT_MINDSHIELD)) && !owner.reagents.has_reagent("MKUltra")) + if (mental_capacity >= 499 && (owner.getOrganLoss(ORGAN_SLOT_BRAIN) <=0 || HAS_TRAIT(M, TRAIT_MINDSHIELD)) && !owner.reagents.has_reagent(/datum/reagent/fermi/enthrall)) phase = 2 mental_capacity = 500 customTriggers = list() @@ -739,18 +739,18 @@ deltaResist*= 0.5-(((2/200)*M.arousalloss)/1)//more aroused you are, the weaker resistance you can give, the less you are, the more you gain. (+/- 0.5) //chemical resistance, brain and annaphros are the key to undoing, but the subject has to to be willing to resist. - if (owner.reagents.has_reagent("mannitol")) + if (owner.reagents.has_reagent(/datum/reagent/medicine/mannitol)) deltaResist *= 1.25 - if (owner.reagents.has_reagent("neurine")) + if (owner.reagents.has_reagent(/datum/reagent/medicine/neurine)) deltaResist *= 1.5 if (!(owner.client?.prefs.cit_toggles & NO_APHRO) && M.canbearoused && lewd) - if (owner.reagents.has_reagent("anaphro")) + if (owner.reagents.has_reagent(/datum/reagent/drug/anaphrodisiac)) deltaResist *= 1.5 - if (owner.reagents.has_reagent("anaphro+")) + if (owner.reagents.has_reagent(/datum/reagent/drug/anaphrodisiacplus)) deltaResist *= 2 - if (owner.reagents.has_reagent("aphro")) + if (owner.reagents.has_reagent(/datum/reagent/drug/aphrodisiac)) deltaResist *= 0.75 - if (owner.reagents.has_reagent("aphro+")) + if (owner.reagents.has_reagent(/datum/reagent/drug/aphrodisiacplus)) deltaResist *= 0.5 //Antag resistance //cultists are already brainwashed by their god diff --git a/modular_citadel/code/game/machinery/vending.dm b/modular_citadel/code/game/machinery/vending.dm deleted file mode 100755 index e75ba17801..0000000000 --- a/modular_citadel/code/game/machinery/vending.dm +++ /dev/null @@ -1,121 +0,0 @@ -/obj/machinery/vending/medical - products = list(/obj/item/reagent_containers/syringe = 12, - /obj/item/reagent_containers/dropper = 3, - /obj/item/healthanalyzer = 4, - /obj/item/sensor_device = 2, - /obj/item/pinpointer/crew = 2, - /obj/item/reagent_containers/medspray/sterilizine = 1, - /obj/item/stack/medical/gauze = 8, - /obj/item/reagent_containers/pill/patch/styptic = 5, - /obj/item/reagent_containers/medspray/styptic = 2, - /obj/item/reagent_containers/pill/patch/silver_sulf = 5, - /obj/item/reagent_containers/medspray/silver_sulf = 2, - /obj/item/reagent_containers/pill/insulin = 10, - /obj/item/reagent_containers/pill/salbutamol = 2, - /obj/item/reagent_containers/glass/bottle/charcoal = 4, - /obj/item/reagent_containers/glass/bottle/epinephrine = 4, - /obj/item/reagent_containers/glass/bottle/salglu_solution = 3, - /obj/item/reagent_containers/glass/bottle/morphine = 4, - /obj/item/reagent_containers/glass/bottle/toxin = 3, - /obj/item/reagent_containers/syringe/antiviral = 6, - /obj/item/storage/hypospraykit/fire = 2, - /obj/item/storage/hypospraykit/toxin = 2, - /obj/item/storage/hypospraykit/o2 = 2, - /obj/item/storage/hypospraykit/brute = 2, - /obj/item/storage/hypospraykit/enlarge = 2, - /obj/item/reagent_containers/glass/bottle/vial/small = 5) - -/obj/machinery/vending/wardrobe/chap_wardrobe - premium = list(/obj/item/toy/plush/plushvar = 1, - /obj/item/toy/plush/narplush = 1) - -#define STANDARD_CHARGE 1 -#define CONTRABAND_CHARGE 2 -#define COIN_CHARGE 3 - -/obj/machinery/vending/kink - name = "KinkMate" - desc = "A vending machine for all your unmentionable desires." - icon = 'icons/obj/citvending.dmi' - icon_state = "kink" - circuit = /obj/item/circuitboard/machine/kinkmate - product_slogans = "Kinky!;Sexy!;Check me out, big boy!" - vend_reply = "Have fun, you shameless pervert!" - products = list( - /obj/item/clothing/under/maid = 5, - /obj/item/clothing/under/janimaid = 5, - /obj/item/clothing/neck/petcollar = 5, - /obj/item/clothing/neck/petcollar/choker = 5, - /obj/item/clothing/neck/petcollar/leather = 5, - /obj/item/restraints/handcuffs/fake/kinky = 5, - /obj/item/clothing/glasses/sunglasses/blindfold = 4, - /obj/item/clothing/mask/muzzle = 4, - /obj/item/clothing/under/stripper_pink = 3, - /obj/item/clothing/under/stripper_green = 3, - /obj/item/clothing/under/corset = 3, - /obj/item/clothing/under/gear_harness = 10, - /obj/item/dildo/custom = 5, - /obj/item/electropack/shockcollar = 3, - /obj/item/assembly/signaler = 3 - ) - contraband = list( - /obj/item/clothing/neck/petcollar/locked = 2, - /obj/item/key/collar = 2, - /obj/item/clothing/head/kitty = 3, - /obj/item/clothing/head/rabbitears = 3, - /obj/item/clothing/under/keyholesweater = 2, - /obj/item/clothing/under/mankini = 2, - /obj/item/clothing/under/jabroni = 2, - /obj/item/dildo/flared/huge = 3, - /obj/item/reagent_containers/glass/bottle/crocin = 5, - /obj/item/reagent_containers/glass/bottle/camphor = 5 - ) - premium = list( - /obj/item/clothing/accessory/skullcodpiece/fake = 3, - /obj/item/reagent_containers/glass/bottle/hexacrocin = 10, - /obj/item/clothing/under/pants/chaps = 5 - ) - refill_canister = /obj/item/vending_refill/kink - -/obj/machinery/vending/sovietvend - name = "KomradeVendtink" - desc = "Rodina-mat' zovyot!" - icon = 'icons/obj/citvending.dmi' - icon_state = "soviet" - vend_reply = "The fascist and capitalist svin'ya shall fall, komrade!" - product_slogans = "Quality worth waiting in line for!; Get Hammer and Sickled!; Sosvietsky soyuz above all!; With capitalist pigsky, you would have paid a fortunetink! ; Craftink in Motherland herself!" - products = list( - /obj/item/clothing/under/soviet = 20, - /obj/item/clothing/head/ushanka = 20, - /obj/item/clothing/shoes/jackboots = 20, - /obj/item/clothing/head/squatter_hat = 20, - /obj/item/clothing/under/squatter_outfit = 20, - /obj/item/clothing/under/russobluecamooutfit = 20, - /obj/item/clothing/head/russobluecamohat = 20 - ) - contraband = list( - /obj/item/clothing/under/syndicate/tacticool = 4, - /obj/item/clothing/mask/balaclava = 4, - /obj/item/clothing/suit/russofurcoat = 4, - /obj/item/clothing/head/russofurhat = 4, - /obj/item/clothing/suit/space/hardsuit/soviet = 3, - /obj/item/gun/energy/laser/LaserAK = 4 - ) - premium = list() - - refill_canister = /obj/item/vending_refill/soviet - - -#undef STANDARD_CHARGE -#undef CONTRABAND_CHARGE -#undef COIN_CHARGE - - -/obj/item/vending_refill/kink - machine_name = "KinkMate" - icon = 'modular_citadel/icons/vending_restock.dmi' - icon_state = "refill_kink" - -/obj/item/vending_refill/soviet - machine_name = "sovietvend" - icon_state = "refill_soviet" diff --git a/modular_citadel/code/game/objects/items/circuitboards/machine_circuitboards.dm b/modular_citadel/code/game/objects/items/circuitboards/machine_circuitboards.dm deleted file mode 100644 index e70028f5eb..0000000000 --- a/modular_citadel/code/game/objects/items/circuitboards/machine_circuitboards.dm +++ /dev/null @@ -1,12 +0,0 @@ -/obj/item/circuitboard/machine/kinkmate - name = "Kinkmate Vendor (Machine Board)" - build_path = /obj/machinery/vending/kink - req_components = list(/obj/item/vending_refill/kink = 3) - -/obj/item/circuitboard/machine/autoylathe - name = "Autoylathe (Machine Board)" - build_path = /obj/machinery/autoylathe - req_components = list( - /obj/item/stock_parts/matter_bin = 3, - /obj/item/stock_parts/manipulator = 1, - /obj/item/stack/sheet/glass = 1) diff --git a/modular_citadel/code/game/objects/items/devices/radio/shockcollar.dm b/modular_citadel/code/game/objects/items/devices/radio/shockcollar.dm index 9d0757e26e..94bf1ba30a 100644 --- a/modular_citadel/code/game/objects/items/devices/radio/shockcollar.dm +++ b/modular_citadel/code/game/objects/items/devices/radio/shockcollar.dm @@ -11,6 +11,7 @@ strip_delay = 60 equip_delay_other = 60 materials = list(MAT_METAL=5000, MAT_GLASS=2000) + var/tagname = null /datum/design/electropack/shockcollar @@ -25,18 +26,17 @@ if(loc == user && user.get_item_by_slot(SLOT_NECK)) to_chat(user, "The collar is fastened tight! You'll need help taking this off!") return - ..() + return ..() /obj/item/electropack/shockcollar/receive_signal(datum/signal/signal) if(!signal || signal.data["code"] != code) return if(isliving(loc) && on) - if(shock_cooldown != 0) + if(shock_cooldown == TRUE) return - shock_cooldown = 1 - spawn(100) - shock_cooldown = 0 + shock_cooldown = TRUE + addtimer(VARSET_CALLBACK(src, shock_cooldown, FALSE), 100) var/mob/living/L = loc step(L, pick(GLOB.cardinals)) @@ -51,33 +51,27 @@ master.receive_signal() return -/obj/item/electropack/shockcollar/attack_self(mob/user) //Turns out can't fully source this from the parent item, spritepath gets confused if power toggled. Will come back to this when I know how to code better and readd powertoggle.. - var/option = "Change Name" - option = input(user, "What do you want to do?", "[src]", option) as null|anything in list("Change Name", "Change Frequency") - switch(option) - if("Change Name") - var/t = input(user, "Would you like to change the name on the tag?", "Name your new pet", tagname ? tagname : "Spot") as null|text - if(t) - tagname = copytext(sanitize(t), 1, MAX_NAME_LEN) - name = "[initial(name)] - [tagname]" - if("Change Frequency") - if(!ishuman(user)) - return - user.set_machine(src) - var/dat = {"
- Frequency/Code for shock collar:
- Frequency: - - - - [format_frequency(frequency)] - + - +
- Code: - - - - [code] - + - +
-
"} +/obj/item/electropack/shockcollar/attackby(obj/item/W, mob/user, params) //moves it here because on_click is being bad + if(istype(W, /obj/item/pen)) + var/t = input(user, "Would you like to change the name on the tag?", "Name your new pet", tagname ? tagname : "Spot") as null|text + if(t) + tagname = copytext(sanitize(t), 1, MAX_NAME_LEN) + name = "[initial(name)] - [tagname]" + else + return ..() - user << browse(dat, "window=radio") - onclose(user, "radio") - return +/obj/item/electropack/shockcollar/ui_interact(mob/user) //on_click calls this + var/dat = {" + +Frequency/Code for shock collar:
+Frequency: +[format_frequency(src.frequency)] +Set
+ +Code: +[src.code] +Set
+
"} + user << browse(dat, "window=radio") + onclose(user, "radio") + return diff --git a/modular_citadel/code/modules/arousal/genitals.dm b/modular_citadel/code/modules/arousal/genitals.dm index 8d70464a2d..d5daf24f8a 100644 --- a/modular_citadel/code/modules/arousal/genitals.dm +++ b/modular_citadel/code/modules/arousal/genitals.dm @@ -8,7 +8,7 @@ var/orgasm_verb = "cumming" //present continous var/fluid_transfer_factor = 0 //How much would a partner get in them if they climax using this? var/size = 2 //can vary between num or text, just used in icon_state strings - var/fluid_id = null + var/datum/reagent/fluid_id = null var/fluid_max_volume = 50 var/fluid_efficiency = 1 var/fluid_rate = CUM_RATE diff --git a/modular_citadel/code/modules/arousal/organs/breasts.dm b/modular_citadel/code/modules/arousal/organs/breasts.dm index 105f5e157d..73d03eff3b 100644 --- a/modular_citadel/code/modules/arousal/organs/breasts.dm +++ b/modular_citadel/code/modules/arousal/organs/breasts.dm @@ -6,7 +6,7 @@ zone = BODY_ZONE_CHEST slot = ORGAN_SLOT_BREASTS size = "c" //refer to the breast_values static list below for the cups associated number values - fluid_id = "milk" + fluid_id = /datum/reagent/consumable/milk fluid_rate = MILK_RATE shape = "pair" genital_flags = CAN_MASTURBATE_WITH|CAN_CLIMAX_WITH|GENITAL_FUID_PRODUCTION @@ -44,7 +44,7 @@ desc += " You estimate that they're [uppertext(size)]-cups." if(CHECK_BITFIELD(genital_flags, GENITAL_FUID_PRODUCTION) && aroused_state) - desc += " They're leaking [fluid_id]." + desc += " They're leaking [initial(fluid_id.name)]." var/string if(owner) if(owner.dna.species.use_skintones && owner.dna.features["genitals_use_skintone"]) diff --git a/modular_citadel/code/modules/arousal/organs/testicles.dm b/modular_citadel/code/modules/arousal/organs/testicles.dm index 547674a5f1..a911eefe01 100644 --- a/modular_citadel/code/modules/arousal/organs/testicles.dm +++ b/modular_citadel/code/modules/arousal/organs/testicles.dm @@ -11,7 +11,7 @@ var/size_name = "average" shape = "Single" var/sack_size = BALLS_SACK_SIZE_DEF - fluid_id = "semen" + fluid_id = /datum/reagent/consumable/semen masturbation_verb = "massage" layer_index = TESTICLES_LAYER_INDEX diff --git a/modular_citadel/code/modules/arousal/organs/womb.dm b/modular_citadel/code/modules/arousal/organs/womb.dm index 9dfe811571..7f91310e3e 100644 --- a/modular_citadel/code/modules/arousal/organs/womb.dm +++ b/modular_citadel/code/modules/arousal/organs/womb.dm @@ -6,5 +6,5 @@ zone = BODY_ZONE_PRECISE_GROIN slot = ORGAN_SLOT_WOMB genital_flags = GENITAL_INTERNAL|GENITAL_FUID_PRODUCTION - fluid_id = "femcum" + fluid_id = /datum/reagent/consumable/femcum linked_organ_slot = ORGAN_SLOT_VAGINA diff --git a/modular_citadel/code/modules/client/loadout/head.dm b/modular_citadel/code/modules/client/loadout/head.dm index 3e7eb39823..427a4ac61d 100644 --- a/modular_citadel/code/modules/client/loadout/head.dm +++ b/modular_citadel/code/modules/client/loadout/head.dm @@ -101,4 +101,34 @@ /datum/gear/santahatg name = "Green Santa Hat" category = SLOT_HEAD - path = /obj/item/clothing/head/christmashatg \ No newline at end of file + path = /obj/item/clothing/head/christmashatg + +/datum/gear/cowboyhat + name = "Cowboy Hat, Brown" + category = SLOT_HEAD + path = /obj/item/clothing/head/cowboyhat + +/datum/gear/cowboyhat/black + name = "Cowboy Hat, Black" + category = SLOT_HEAD + path = /obj/item/clothing/head/cowboyhat/black + +/datum/gear/cowboyhat/white + name = "Cowboy Hat, White" + category = SLOT_HEAD + path = /obj/item/clothing/head/cowboyhat/white + +/datum/gear/cowboyhat/pink + name = "Cowboy Hat, Pink" + category = SLOT_HEAD + path = /obj/item/clothing/head/cowboyhat/pink + +/datum/gear/cowboyhat/sec + name = "Cowboy Hat, Security" + category = SLOT_HEAD + path = /obj/item/clothing/head/cowboyhat/sec + restricted_desc = "Security" + restricted_roles = list("Warden","Detective","Security Officer","Head of Security") + + + diff --git a/modular_citadel/code/modules/client/loadout/shoes.dm b/modular_citadel/code/modules/client/loadout/shoes.dm index 7b3bee6638..3531e69cfd 100644 --- a/modular_citadel/code/modules/client/loadout/shoes.dm +++ b/modular_citadel/code/modules/client/loadout/shoes.dm @@ -71,4 +71,14 @@ /datum/gear/santaboots name = "Santa Boots" category = SLOT_SHOES - path= /obj/item/clothing/shoes/winterboots/santaboots \ No newline at end of file + path= /obj/item/clothing/shoes/winterboots/santaboots + +/datum/gear/cowboyboots + name = "Cowboy Boots, Brown" + category = SLOT_SHOES + path = /obj/item/clothing/shoes/cowboyboots + +/datum/gear/cowboyboots/black + name = "Cowboy Boots, Black" + category = SLOT_SHOES + path = /obj/item/clothing/shoes/cowboyboots/black \ No newline at end of file diff --git a/modular_citadel/code/modules/clothing/suits/polychromic_cloaks.dm b/modular_citadel/code/modules/clothing/suits/polychromic_cloaks.dm index c6b153fd36..ade6cee3ba 100644 --- a/modular_citadel/code/modules/clothing/suits/polychromic_cloaks.dm +++ b/modular_citadel/code/modules/clothing/suits/polychromic_cloaks.dm @@ -13,7 +13,7 @@ secondary_color = "#FFFFFF" tertiary_color = "#808080" -/obj/item/clothing/neck/cloak/polychromic/worn_overlays(isinhands, icon_file) //this is where the main magic happens. Also mandates that ALL polychromic stuff MUST USE alternate_worn_icon +/obj/item/clothing/neck/cloak/polychromic/worn_overlays(isinhands, icon_file, style_flags = NONE) //this is where the main magic happens. Also mandates that ALL polychromic stuff MUST USE alternate_worn_icon . = ..() if(hasprimary | hassecondary | hastertiary) if(!isinhands) //prevents the worn sprites from showing up if you're just holding them diff --git a/modular_citadel/code/modules/clothing/suits/suits.dm b/modular_citadel/code/modules/clothing/suits/suits.dm index c7fd84bd80..4b9dd131ca 100644 --- a/modular_citadel/code/modules/clothing/suits/suits.dm +++ b/modular_citadel/code/modules/clothing/suits/suits.dm @@ -11,7 +11,7 @@ alternate_worn_icon = 'modular_citadel/icons/mob/citadel/suit.dmi' icon_state = "hostrench" item_state = "hostrench" - mutantrace_variation = NO_MUTANTRACE_VARIATION + mutantrace_variation = NONE body_parts_covered = CHEST|ARMS|LEGS /obj/item/clothing/suit/hooded/cloak/david @@ -20,11 +20,11 @@ desc = "Ever wanted to look like a badass without ANY effort? Try this nanotrasen brand red cloak, perfect for kids" hoodtype = /obj/item/clothing/head/hooded/cloakhood/david body_parts_covered = CHEST|GROIN|ARMS - mutantrace_variation = NO_MUTANTRACE_VARIATION + mutantrace_variation = NONE /obj/item/clothing/head/hooded/cloakhood/david name = "red cloak hood" icon_state = "golhood" desc = "conceal your face in shame with this nanotrasen brand hood" flags_inv = HIDEEARS|HIDEEYES|HIDEHAIR|HIDEFACIALHAIR - mutantrace_variation = NO_MUTANTRACE_VARIATION + mutantrace_variation = NONE diff --git a/modular_citadel/code/modules/clothing/under/trek_under.dm b/modular_citadel/code/modules/clothing/under/trek_under.dm index 5cd0620a9d..683167f325 100644 --- a/modular_citadel/code/modules/clothing/under/trek_under.dm +++ b/modular_citadel/code/modules/clothing/under/trek_under.dm @@ -14,7 +14,7 @@ desc = "Oooh... right." icon = 'modular_citadel/icons/obj/clothing/trek_item_icon.dmi' alternate_worn_icon = 'modular_citadel/icons/mob/clothing/trek_mob_icon.dmi' - force_alternate_icon = TRUE + mutantrace_variation = NONE item_state = "" can_adjust = FALSE //to prevent you from "wearing it casually" @@ -95,10 +95,9 @@ icon = 'modular_citadel/icons/obj/clothing/trek_item_icon.dmi' icon_state = "trek_ds9_coat" alternate_worn_icon = 'modular_citadel/icons/mob/clothing/trek_mob_icon.dmi' - force_alternate_icon = TRUE item_state = "trek_ds9_coat" body_parts_covered = CHEST|GROIN|ARMS - mutantrace_variation = NO_MUTANTRACE_VARIATION + mutantrace_variation = NONE permeability_coefficient = 0.50 allowed = list( /obj/item/flashlight, /obj/item/analyzer, @@ -140,11 +139,9 @@ desc = "A uniform jacket from the United Federation. Set phasers to awesome." icon = 'modular_citadel/icons/obj/clothing/trek_item_icon.dmi' alternate_worn_icon = 'modular_citadel/icons/mob/clothing/trek_mob_icon.dmi' - force_alternate_icon = TRUE icon_state = "fedcoat" item_state = "fedcoat" - mutantrace_variation = NO_MUTANTRACE_VARIATION - + mutantrace_variation = NONE blood_overlay_type = "coat" body_parts_covered = CHEST|GROIN|ARMS allowed = list( @@ -207,7 +204,6 @@ desc = "A modern uniform jacket from the United Federation." icon = 'modular_citadel/icons/obj/clothing/trek_item_icon.dmi' alternate_worn_icon = 'modular_citadel/icons/mob/clothing/trek_mob_icon.dmi' - force_alternate_icon = TRUE icon_state = "fedmodern" item_state = "fedmodern" body_parts_covered = CHEST|GROIN|ARMS @@ -240,7 +236,6 @@ icon = 'modular_citadel/icons/obj/clothing/trek_item_icon.dmi' icon_state = "fedcapofficer" alternate_worn_icon = 'modular_citadel/icons/mob/clothing/trek_mob_icon.dmi' - force_alternate_icon = TRUE item_state = "fedcapofficer" //Variants diff --git a/modular_citadel/code/modules/clothing/under/turtlenecks.dm b/modular_citadel/code/modules/clothing/under/turtlenecks.dm index fd13da11e9..84cfa97a59 100644 --- a/modular_citadel/code/modules/clothing/under/turtlenecks.dm +++ b/modular_citadel/code/modules/clothing/under/turtlenecks.dm @@ -16,7 +16,7 @@ armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 10, rad = 0, fire = 0, acid = 0) can_adjust = TRUE alt_covers_chest = TRUE - mutantrace_variation = NO_MUTANTRACE_VARIATION + mutantrace_variation = NONE /obj/structure/closet/secure_closet/CMO/PopulateContents() //This is placed here because it's a very specific addition for a very specific niche ..() @@ -29,7 +29,7 @@ item_state = "bl_suit" item_color = "tactifool" has_sensor = TRUE - mutantrace_variation = NO_MUTANTRACE_VARIATION + mutantrace_variation = NONE armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0, fire = 0, acid = 0) /obj/item/clothing/under/syndicate/tacticool @@ -47,7 +47,7 @@ can_adjust = TRUE icon = 'modular_citadel/icons/obj/clothing/turtlenecks.dmi' alternate_worn_icon = 'modular_citadel/icons/mob/citadel/uniforms.dmi' - mutantrace_variation = NO_MUTANTRACE_VARIATION + mutantrace_variation = NONE /obj/item/clothing/under/bb_sweater/black name = "black sweater" diff --git a/modular_citadel/code/modules/clothing/under/under.dm b/modular_citadel/code/modules/clothing/under/under.dm index dcc6323f62..40db06ba56 100644 --- a/modular_citadel/code/modules/clothing/under/under.dm +++ b/modular_citadel/code/modules/clothing/under/under.dm @@ -13,7 +13,7 @@ alternate_worn_icon = 'modular_citadel/icons/mob/citadel/uniforms.dmi' item_state = "r_suit" can_adjust = FALSE - mutantrace_variation = NO_MUTANTRACE_VARIATION + mutantrace_variation = NONE /obj/item/clothing/under/rank/captain/femformal name ="captain's female formal outfit" @@ -26,4 +26,4 @@ can_adjust = FALSE sensor_mode = SENSOR_COORDS //it's still a captain's suit nerd random_sensor = FALSE - mutantrace_variation = NO_MUTANTRACE_VARIATION + mutantrace_variation = NONE diff --git a/modular_citadel/code/modules/custom_loadout/custom_items.dm b/modular_citadel/code/modules/custom_loadout/custom_items.dm index 3d88dae26c..eaf128626d 100644 --- a/modular_citadel/code/modules/custom_loadout/custom_items.dm +++ b/modular_citadel/code/modules/custom_loadout/custom_items.dm @@ -1,7 +1,7 @@ //For custom items. -// Unless there's a digitigrade version make sure you add mutantrace_variation = NO_MUTANTRACE_VARIATION to all clothing/under and shoes - Pooj +// Unless there's a digitigrade version make sure you add mutantrace_variation = NONE to all clothing/under and shoes - Pooj // Digitigrade stuff is uniform_digi.dmi and digishoes.dmi in icons/mob /obj/item/custom/ceb_soap @@ -85,7 +85,7 @@ item_state = "darkcarapace" blood_overlay_type = "armor" dog_fashion = /datum/dog_fashion/back - mutantrace_variation = NO_MUTANTRACE_VARIATION + mutantrace_variation = NONE armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 0, "acid" = 0) @@ -118,7 +118,7 @@ icon_state = "labred" alternate_worn_icon = 'icons/mob/custom_w.dmi' item_state = "labred" - mutantrace_variation = NO_MUTANTRACE_VARIATION + mutantrace_variation = NONE /obj/item/clothing/suit/toggle/labcoat/labredblack name = "Black and Red Coat" @@ -127,7 +127,7 @@ icon_state = "labredblack" alternate_worn_icon = 'icons/mob/custom_w.dmi' item_state = "labredblack" - mutantrace_variation = NO_MUTANTRACE_VARIATION + mutantrace_variation = NONE /obj/item/toy/plush/carrot name = "carrot plushie" @@ -233,7 +233,7 @@ alternate_worn_icon = 'icons/mob/custom_w.dmi' item_state = "hos-g" body_parts_covered = CHEST|GROIN|ARMS|LEGS - mutantrace_variation = NO_MUTANTRACE_VARIATION + mutantrace_variation = NONE /obj/item/reagent_containers/food/drinks/flask/russian name = "russian flask" @@ -277,14 +277,14 @@ fitted = NO_FEMALE_UNIFORM alternate_worn_layer = ABOVE_SHOES_LAYER can_adjust = 0 - mutantrace_variation = NO_MUTANTRACE_VARIATION + mutantrace_variation = NONE /obj/item/clothing/shoes/sneakers/pink icon = 'icons/obj/custom.dmi' icon_state = "pink" alternate_worn_icon = 'icons/mob/custom_w.dmi' item_state = "pink" - mutantrace_variation = NO_MUTANTRACE_VARIATION + mutantrace_variation = NONE /obj/item/clothing/neck/tie/bloodred name = "Blood Red Tie" @@ -301,7 +301,7 @@ icon_state = "puffydress" item_state = "puffydress" body_parts_covered = CHEST|GROIN|LEGS - mutantrace_variation = NO_MUTANTRACE_VARIATION + mutantrace_variation = NONE /obj/item/clothing/suit/vermillion name = "vermillion clothing" @@ -311,11 +311,11 @@ body_parts_covered = CHEST|GROIN|LEGS|ARMS|HANDS icon = 'icons/obj/custom.dmi' alternate_worn_icon = 'icons/mob/custom_w.dmi' - mutantrace_variation = NO_MUTANTRACE_VARIATION + mutantrace_variation = NONE /obj/item/clothing/under/bb_sweater/black/naomi name = "worn black sweater" - mutantrace_variation = NO_MUTANTRACE_VARIATION + mutantrace_variation = NONE desc = "A well-loved sweater, showing signs of several cleanings and re-stitchings. And a few stains. Is that cat fur?" /obj/item/clothing/neck/petcollar/naomi @@ -345,7 +345,7 @@ icon_state = "rdcoat" alternate_worn_icon = 'icons/mob/custom_w.dmi' item_state = "rdcoat" - mutantrace_variation = NO_MUTANTRACE_VARIATION + mutantrace_variation = NONE /obj/item/custom/leechjar name = "Jar of Leeches" @@ -379,7 +379,7 @@ desc = "Comfy Lucky Jackboots with the word Luck on them." item_state = "luckyjack" icon_state = "luckyjack" - mutantrace_variation = NO_MUTANTRACE_VARIATION + mutantrace_variation = NONE /obj/item/clothing/under/lunasune name = "Divine Robes" @@ -388,7 +388,7 @@ desc = "Heavenly robes of the kitsune Luna Pumpkin,you can feel radiance coming from them." item_state = "Divine_robes" icon_state = "Divine_robes" - mutantrace_variation = NO_MUTANTRACE_VARIATION + mutantrace_variation = NONE /obj/item/clothing/under/leoskimpy name = "Leon's Skimpy Outfit" @@ -397,7 +397,7 @@ desc = "A rather skimpy outfit." item_state = "shark_cloth" icon_state = "shark_cloth" - mutantrace_variation = NO_MUTANTRACE_VARIATION + mutantrace_variation = NONE /obj/item/clothing/under/mimeoveralls name = "Mime's Overalls" @@ -406,7 +406,7 @@ desc = "A less-than-traditional mime's attire, completed by a set of dorky-looking overalls." item_state = "moveralls" icon_state = "moveralls" - mutantrace_variation = NO_MUTANTRACE_VARIATION + mutantrace_variation = NONE /obj/item/clothing/suit/hooded/cloak/zuliecloak name = "Project: Zul-E" @@ -418,7 +418,7 @@ hoodtype = /obj/item/clothing/head/hooded/cloakhood/zuliecloak body_parts_covered = CHEST|GROIN|ARMS slot_flags = SLOT_WEAR_SUIT | ITEM_SLOT_NECK //it's a cloak. it's cosmetic. so why the hell not? what could possibly go wrong? - mutantrace_variation = NO_MUTANTRACE_VARIATION + mutantrace_variation = NONE /obj/item/clothing/head/hooded/cloakhood/zuliecloak name = "NT Special Issue" @@ -428,7 +428,7 @@ icon = 'icons/obj/custom.dmi' alternate_worn_icon = 'icons/mob/custom_w.dmi' flags_inv = HIDEEARS|HIDEHAIR - mutantrace_variation = NO_MUTANTRACE_VARIATION + mutantrace_variation = NONE /obj/item/clothing/suit/blackredgold name = "Multicolor Coat" @@ -438,7 +438,7 @@ icon_state = "redgoldjacket" item_state = "redgoldjacket" body_parts_covered = CHEST|GROIN|LEGS|ARMS - mutantrace_variation = NO_MUTANTRACE_VARIATION + mutantrace_variation = NONE /obj/item/clothing/suit/kimono name = "Blue Kimono" @@ -448,7 +448,7 @@ icon = 'icons/obj/custom.dmi' alternate_worn_icon = 'icons/mob/custom_w.dmi' body_parts_covered = CHEST|GROIN|LEGS|ARMS - mutantrace_variation = NO_MUTANTRACE_VARIATION + mutantrace_variation = NONE /obj/item/clothing/suit/commjacket name = "Dusty Commisar's Cloak" @@ -458,7 +458,7 @@ icon = 'icons/obj/custom.dmi' alternate_worn_icon = 'icons/mob/custom_w.dmi' body_parts_covered = CHEST|GROIN|LEGS|ARMS - mutantrace_variation = NO_MUTANTRACE_VARIATION + mutantrace_variation = NONE /obj/item/clothing/under/mw2_russian_para name = "Russian Paratrooper Jumper" @@ -467,7 +467,7 @@ item_state = "mw2_russian_para" icon = 'icons/obj/custom.dmi' alternate_worn_icon = 'icons/mob/custom_w.dmi' - mutantrace_variation = NO_MUTANTRACE_VARIATION + mutantrace_variation = NONE /obj/item/clothing/gloves/longblackgloves name = "Luna's Gauntlets" @@ -484,7 +484,7 @@ item_state = "trendy_fit" icon = 'icons/obj/custom.dmi' alternate_worn_icon = 'icons/mob/custom_w.dmi' - mutantrace_variation = NO_MUTANTRACE_VARIATION + mutantrace_variation = NONE /obj/item/clothing/head/blueberet name = "Atmos Beret" @@ -518,7 +518,7 @@ item_state = "mikubikini" icon = 'icons/obj/custom.dmi' alternate_worn_icon = 'icons/mob/custom_w.dmi' - mutantrace_variation = NO_MUTANTRACE_VARIATION + mutantrace_variation = NONE /obj/item/clothing/suit/mikujacket name = "starlight singer jacket" @@ -527,7 +527,7 @@ item_state = "mikujacket" icon = 'icons/obj/custom.dmi' alternate_worn_icon = 'icons/mob/custom_w.dmi' - mutantrace_variation = NO_MUTANTRACE_VARIATION + mutantrace_variation = NONE /obj/item/clothing/head/mikuhair name = "starlight singer hair" @@ -536,7 +536,7 @@ item_state = "mikuhair" icon = 'icons/obj/custom.dmi' alternate_worn_icon = 'icons/mob/custom_w.dmi' - mutantrace_variation = NO_MUTANTRACE_VARIATION + mutantrace_variation = NONE flags_inv = HIDEHAIR /obj/item/clothing/gloves/mikugloves @@ -546,7 +546,7 @@ item_state = "mikugloves" icon = 'icons/obj/custom.dmi' alternate_worn_icon = 'icons/mob/custom_w.dmi' - mutantrace_variation = NO_MUTANTRACE_VARIATION + mutantrace_variation = NONE /obj/item/clothing/shoes/sneakers/mikuleggings name = "starlight singer leggings" @@ -555,4 +555,4 @@ item_state = "mikuleggings" icon = 'icons/obj/custom.dmi' alternate_worn_icon = 'icons/mob/custom_w.dmi' - mutantrace_variation = NO_MUTANTRACE_VARIATION + mutantrace_variation = NONE diff --git a/modular_citadel/code/modules/projectiles/boxes_magazines/external/pistol.dm b/modular_citadel/code/modules/projectiles/boxes_magazines/external/pistol.dm index 8cb56803b1..4ae3e5c488 100644 --- a/modular_citadel/code/modules/projectiles/boxes_magazines/external/pistol.dm +++ b/modular_citadel/code/modules/projectiles/boxes_magazines/external/pistol.dm @@ -4,7 +4,7 @@ id = "10mminc" build_type = PROTOLATHE materials = list(MAT_PLASMA = 50000, MAT_METAL = 18000) - reagents_list = list("plasma" = 120, "napalm" = 240) + reagents_list = list(/datum/reagent/toxin/plasma = 120, /datum/reagent/napalm = 240) build_path = /obj/item/ammo_box/magazine/m10mm/fire category = list("Weapons") departmental_flags = DEPARTMENTAL_FLAG_SECURITY @@ -25,7 +25,7 @@ id = "10mmhp" build_type = PROTOLATHE materials = list(MAT_METAL = 40000, MAT_GLASS = 50000) - reagents_list = list("sonic_powder" = 280) + reagents_list = list(/datum/reagent/sonic_powder = 280) build_path = /obj/item/ammo_box/magazine/m10mm/hp category = list("Ammo") departmental_flags = DEPARTMENTAL_FLAG_SECURITY diff --git a/modular_citadel/code/modules/projectiles/guns/energy/energy_gun.dm b/modular_citadel/code/modules/projectiles/guns/energy/energy_gun.dm index 89e086687a..2c527ac713 100644 --- a/modular_citadel/code/modules/projectiles/guns/energy/energy_gun.dm +++ b/modular_citadel/code/modules/projectiles/guns/energy/energy_gun.dm @@ -43,7 +43,7 @@ obj/item/gun/energy/e_gun/cx/AltClick(mob/living/user) body_color = sanitize_hexcolor(body_color_input, desired_format=6, include_crunch=1) update_icon() -obj/item/gun/energy/e_gun/cx/worn_overlays(isinhands, icon_file) +obj/item/gun/energy/e_gun/cx/worn_overlays(isinhands, icon_file, style_flags = NONE) . = ..() if(isinhands) var/mutable_appearance/body_inhand = mutable_appearance(icon_file, "cxe_body") diff --git a/modular_citadel/code/modules/projectiles/guns/pumpenergy.dm b/modular_citadel/code/modules/projectiles/guns/pumpenergy.dm index 735c0890af..47de736c3b 100644 --- a/modular_citadel/code/modules/projectiles/guns/pumpenergy.dm +++ b/modular_citadel/code/modules/projectiles/guns/pumpenergy.dm @@ -99,7 +99,7 @@ . = ..() . += "Alt-click to change firing modes." -/obj/item/gun/energy/pumpaction/worn_overlays(isinhands, icon_file) //ammo counter for inhands +/obj/item/gun/energy/pumpaction/worn_overlays(isinhands, icon_file, style_flags = NONE) //ammo counter for inhands . = ..() var/ratio = CEILING((cell.charge / cell.maxcharge) * charge_sections, 1) var/obj/item/ammo_casing/energy/shot = ammo_type[select] diff --git a/modular_citadel/code/modules/reagents/chemistry/reagents/MKUltra.dm b/modular_citadel/code/modules/reagents/chemistry/reagents/MKUltra.dm index 65c652434b..0985b758c6 100644 --- a/modular_citadel/code/modules/reagents/chemistry/reagents/MKUltra.dm +++ b/modular_citadel/code/modules/reagents/chemistry/reagents/MKUltra.dm @@ -131,7 +131,6 @@ Creating a chem with a low purity will make you permanently fall in love with so /datum/reagent/fermi/enthrall name = "MKUltra" - id = "enthrall" description = "A forbidden deep red mixture that increases a person's succeptability to another's words. When taken by the creator, it will enhance the draw of their voice to those affected by it." color = "#660015" // rgb: , 0, 255 taste_description = "synthetic chocolate, a base tone of alcohol, and high notes of roses" @@ -149,7 +148,6 @@ Creating a chem with a low purity will make you permanently fall in love with so /datum/reagent/fermi/enthrall/test name = "MKUltraTest" - id = "enthrallTest" description = "A forbidden deep red mixture that makes you like Fermis a little too much. Unobtainable and due to be removed from the wiki." data = list("creatorID" = "honkatonkbramblesnatch", "creatorGender" = "Mistress", "creatorName" = "Fermis Yakumo") creatorID = "honkatonkbramblesnatch"//ckey @@ -158,7 +156,6 @@ Creating a chem with a low purity will make you permanently fall in love with so purity = 1 /datum/reagent/fermi/enthrall/test/on_new() - id = "enthrall" ..() creator = get_mob_by_key(creatorID) @@ -171,7 +168,7 @@ Creating a chem with a low purity will make you permanently fall in love with so /datum/reagent/fermi/enthrall/on_mob_add(mob/living/carbon/M) . = ..() if(M.client?.prefs.cit_toggles & NEVER_HYPNO) // Just in case people are opting out of this - holder.remove_reagent(id, 10000000) + holder.del_reagent(type) return if(!ishuman(M))//Just to make sure screwy stuff doesn't happen. return @@ -221,7 +218,7 @@ Creating a chem with a low purity will make you permanently fall in love with so if(LAZYLEN(seen)) return - M.reagents.remove_reagent(id, volume) + M.reagents.del_reagent(type) FallInLove(M, pick(seen)) return @@ -230,7 +227,7 @@ Creating a chem with a low purity will make you permanently fall in love with so if(M.has_status_effect(STATUS_EFFECT_INLOVE)) return if((C in viewers(7, get_turf(M))) && (C.client)) - M.reagents.remove_reagent(id, volume) + M.reagents.del_reagent(type) FallInLove(C, M) return if (M.ckey == creatorID && creatorName == M.real_name)//If you yourself drink it, it supresses the vocal effects, for stealth. NEVERMIND ADD THIS LATER I CAN'T GET IT TO WORK @@ -282,7 +279,6 @@ Creating a chem with a low purity will make you permanently fall in love with so //Creates a gas cloud when the reaction blows up, causing everyone in it to fall in love with someone/something while it's in their system. /datum/reagent/fermi/enthrallExplo//Created in a gas cloud when it explodes name = "Gaseous MKUltra" - id = "enthrallExplo" description = "A forbidden deep red gas that overwhelms a foreign body, causing the person they next lay their eyes on to become more interesting. Studies have shown that people are 66% more likely to make friends with this in the air. Produced when MKUltra explodes." color = "#2C051A" // rgb: , 0, 255 metabolization_rate = 0.1 diff --git a/modular_citadel/code/modules/reagents/chemistry/reagents/SDGF.dm b/modular_citadel/code/modules/reagents/chemistry/reagents/SDGF.dm index c72b702a97..87615ccb68 100644 --- a/modular_citadel/code/modules/reagents/chemistry/reagents/SDGF.dm +++ b/modular_citadel/code/modules/reagents/chemistry/reagents/SDGF.dm @@ -39,7 +39,6 @@ IMPORTANT FACTORS TO CONSIDER WHILE BALANCING //Clone serum #chemClone /datum/reagent/fermi/SDGF //vars, mostly only care about keeping track if there's a player in the clone or not. name = "synthetic-derived growth factor" - id = "SDGF" description = "A rapidly diving mass of Embryonic stem cells. These cells are missing a nucleus and quickly replicate a host’s DNA before growing to form an almost perfect clone of the host. In some cases neural replication takes longer, though the underlying reason underneath has yet to be determined." color = "#a502e0" // rgb: 96, 0, 255 var/playerClone = FALSE @@ -49,9 +48,9 @@ IMPORTANT FACTORS TO CONSIDER WHILE BALANCING var/list/candies = list() var/pollStarted = FALSE var/startHunger - impure_chem = "SDGFtox" + impure_chem = /datum/reagent/impure/SDGFtox inverse_chem_val = 0.5 - inverse_chem = "SDZF" + inverse_chem = /datum/reagent/impure/SDZF can_synth = TRUE @@ -122,8 +121,8 @@ IMPORTANT FACTORS TO CONSIDER WHILE BALANCING SM.nutrition = startHunger/2 //Transfer remaining reagent to clone. I think around 30u will make a healthy clone, otherwise they'll have clone damage, blood loss, brain damage and hunger. - SM.reagents.add_reagent("SDGFheal", volume) - M.reagents.remove_reagent(id, volume) + SM.reagents.add_reagent(/datum/reagent/fermi/SDGFheal, volume) + M.reagents.remove_reagent(type, volume) log_game("FERMICHEM: [volume]u of SDGFheal has been transferred to the clone") SSblackbox.record_feedback("tally", "fermi_chem", 1, "Sentient clones made") return ..() @@ -141,7 +140,7 @@ IMPORTANT FACTORS TO CONSIDER WHILE BALANCING M.adjustBruteLoss(-1, 0) M.adjustFireLoss(-1, 0) M.heal_bodypart_damage(1,1) - M.reagents.remove_reagent(id, 1)//faster rate of loss. + M.reagents.remove_reagent(type, 1)//faster rate of loss. else //If there's no ghosts, but they've made a large amount, then proceed to make flavourful clone, where you become fat and useless until you split. switch(current_cycle) if(21) @@ -185,7 +184,7 @@ IMPORTANT FACTORS TO CONSIDER WHILE BALANCING log_game("FERMICHEM: [M] ckey: [M.key] has created a mindless clone of themselves") SSblackbox.record_feedback("tally", "fermi_chem", 1, "Braindead clones made") if(87 to INFINITY) - M.reagents.remove_reagent(id, volume)//removes SGDF on completion. Has to do it this way because of how i've coded it. If some madlab gets over 1k of SDGF, they can have the clone healing. + M.reagents.remove_reagent(type, volume)//removes SGDF on completion. Has to do it this way because of how i've coded it. If some madlab gets over 1k of SDGF, they can have the clone healing. ..() @@ -265,18 +264,17 @@ IMPORTANT FACTORS TO CONSIDER WHILE BALANCING SM.set_species(mutation) //Transfer remaining reagent to clone. I think around 30u will make a healthy clone, otherwise they'll have clone damage, blood loss, brain damage and hunger. - SM.reagents.add_reagent("SDGFheal", volume) - M.reagents.remove_reagent(id, volume) - + SM.reagents.add_reagent(/datum/reagent/fermi/SDGFheal, volume) + log_combat(M, M, "SDGF clone-vived", src) + M.reagents.del_reagent(type) SM.updatehealth() SM.emote("gasp") - log_combat(M, M, "SDGF clone-vived", src) + return ..() //Unobtainable, used in clone spawn. /datum/reagent/fermi/SDGFheal name = "synthetic-derived healing factor" - id = "SDGFheal" description = "Leftover SDGF is transferred into the resulting clone, which quickly heals up the stresses from suddenly splitting. Restores blood, nutrition, and repaires brain and clone damage quickly. Only obtainable from using excess SDGF, and only enters the cloned body." metabolization_rate = 0.8 can_synth = FALSE @@ -292,7 +290,6 @@ IMPORTANT FACTORS TO CONSIDER WHILE BALANCING //Unobtainable, used if SDGF is impure but not too impure /datum/reagent/impure/SDGFtox name = "Synthetic-derived apoptosis factor" - id = "SDGFtox" description = "Impure synthetic-derived growth factor causes certain cells to undergo cell death, causing clone damage, and damaging blood cells."//i.e. tell me please, figure it's a good way to get pinged for bugfixes. metabolization_rate = 1 can_synth = FALSE @@ -305,7 +302,6 @@ IMPORTANT FACTORS TO CONSIDER WHILE BALANCING //Fail state of SDGF /datum/reagent/impure/SDZF name = "synthetic-derived zombie factor" - id = "SDZF" description = "A horribly peverse mass of Embryonic stem cells made real by the hands of a failed chemist. Emulates normal synthetic-derived growth factor, but produces a hostile zombie at the end of it." color = "#a502e0" // rgb: 96, 0, 255 metabolization_rate = 0.2 * REAGENTS_METABOLISM @@ -338,7 +334,7 @@ IMPORTANT FACTORS TO CONSIDER WHILE BALANCING M.adjustToxLoss(1, 0)// the warning! if(86)//mean clone time! - if (!M.reagents.has_reagent("pen_acid"))//Counterplay is pent.) + if (!M.reagents.has_reagent(/datum/reagent/medicine/pen_acid))//Counterplay is pent.) message_admins("(non-infectious) SDZF: Zombie spawned at [M] [COORD(M)]!") M.nutrition = startHunger - 500//YOU BEST BE RUNNING AWAY AFTER THIS YOU BADDIE M.next_move_modifier = 1 @@ -352,7 +348,7 @@ IMPORTANT FACTORS TO CONSIDER WHILE BALANCING ZI.name = M.real_name ZI.desc = "[M]'s clone, gone horribly wrong." log_game("FERMICHEM: [M] ckey: [M.key]'s clone has become a horrifying zombie instead") - M.reagents.remove_reagent(id, 20) + M.reagents.remove_reagent(type, 20) else//easier to deal with to_chat(M, "The pentetic acid seems to have stopped the decay for now, clumping up the cells into a horrifying tumour!") @@ -362,12 +358,12 @@ IMPORTANT FACTORS TO CONSIDER WHILE BALANCING S.name = "Living teratoma" S.real_name = "Living teratoma"//horrifying!! S.rabid = 1//Make them an angery boi - M.reagents.remove_reagent(id, volume) + M.reagents.remove_reagent(type, volume) to_chat(M, "A large glob of the tumour suddenly splits itself from your body. You feel grossed out and slimey...") log_game("FERMICHEM: [M] ckey: [M.key]'s clone has become a horrifying teratoma instead") SSblackbox.record_feedback("tally", "fermi_chem", 1, "Zombie clones made!") if(87 to INFINITY) M.adjustToxLoss(2, 0) - M.reagents.remove_reagent(id, 1) + M.reagents.remove_reagent(type, 1) ..() diff --git a/modular_citadel/code/modules/reagents/chemistry/reagents/astrogen.dm b/modular_citadel/code/modules/reagents/chemistry/reagents/astrogen.dm index 7e094eddda..a8ac66ef20 100644 --- a/modular_citadel/code/modules/reagents/chemistry/reagents/astrogen.dm +++ b/modular_citadel/code/modules/reagents/chemistry/reagents/astrogen.dm @@ -15,7 +15,6 @@ I'd like to point out from my calculations it'll take about 60-80 minutes to die /datum/reagent/fermi/astral // Gives you the ability to astral project for a moment! name = "Astrogen" - id = "astral" description = "An opalescent murky liquid that is said to distort your soul from your being." color = "#A080H4" // rgb: , 0, 255 taste_description = "your mind" @@ -41,7 +40,7 @@ I'd like to point out from my calculations it'll take about 60-80 minutes to die if(origin.mind && origin.mind != originalmind) to_chat(originalmind.current, "There's a foreign presence in your body blocking your return!") return ..() - if(origin.reagents.has_reagent("astral") ) + if(origin.reagents.has_reagent(/datum/reagent/fermi/astral) ) var/datum/reagent/fermi/astral/As = locate(/datum/reagent/fermi/astral) in origin.reagents.reagent_list if(As.current_cycle < 10) to_chat(originalmind.current, "The intensity of the astrogen in your body is too much allow you to return to yourself yet!") @@ -90,7 +89,7 @@ I'd like to point out from my calculations it'll take about 60-80 minutes to die if(prob(50)) to_chat(G, "The high conentration of Astrogen in your blood causes you to lapse your concentration for a moment, bringing your projection back to yourself!") do_teleport(G, M.loc) - M.reagents.remove_reagent(id, current_cycle/10, FALSE)//exponent + metabolization_rate = current_cycle/10 //exponential sleepytime+=5 if(G)//This is a mess because of how slow qdel is, so this is all to stop runtimes. if(G.mind) diff --git a/modular_citadel/code/modules/reagents/chemistry/reagents/eigentstasium.dm b/modular_citadel/code/modules/reagents/chemistry/reagents/eigentstasium.dm index 5f3fc61fa7..6262dc1a28 100644 --- a/modular_citadel/code/modules/reagents/chemistry/reagents/eigentstasium.dm +++ b/modular_citadel/code/modules/reagents/chemistry/reagents/eigentstasium.dm @@ -11,7 +11,6 @@ /datum/reagent/fermi/eigenstate name = "Eigenstasium" - id = "eigenstate" description = "A strange mixture formed from a controlled reaction of bluespace with plasma, that causes localised eigenstate fluxuations within the patient" taste_description = "wiggly cosmic dust." color = "#5020F4" // rgb: 50, 20, 255 @@ -69,7 +68,7 @@ /datum/reagent/fermi/eigenstate/on_mob_delete(mob/living/M) //returns back to original location do_sparks(5,FALSE,M) to_chat(M, "You feel your wavefunction collapse!") - if(!M.reagents.has_reagent("stabilizing_agent")) + if(!M.reagents.has_reagent(/datum/reagent/stabilizing_agent)) do_teleport(M, location_return, 0, asoundin = 'sound/effects/phasein.ogg') //Teleports home do_sparks(5,FALSE,M) qdel(Eigenstate) @@ -169,7 +168,7 @@ if(prob(20)) do_sparks(5,FALSE,M) - SEND_SIGNAL(M, COMSIG_CLEAR_MOOD_EVENT, "[id]_overdose")//holdover until above fix works + SEND_SIGNAL(M, COMSIG_CLEAR_MOOD_EVENT, "[type]_overdose")//holdover until above fix works ..() /datum/reagent/fermi/eigenstate/reaction_turf(turf/T, reac_volume) diff --git a/modular_citadel/code/modules/reagents/chemistry/reagents/enlargement.dm b/modular_citadel/code/modules/reagents/chemistry/reagents/enlargement.dm index 6732fb06a5..b6b9c0bf34 100644 --- a/modular_citadel/code/modules/reagents/chemistry/reagents/enlargement.dm +++ b/modular_citadel/code/modules/reagents/chemistry/reagents/enlargement.dm @@ -20,15 +20,14 @@ /datum/reagent/fermi/breast_enlarger name = "Succubus milk" - id = "breast_enlarger" description = "A volatile collodial mixture derived from milk that encourages mammary production via a potent estrogen mix." color = "#E60584" // rgb: 96, 0, 255 taste_description = "a milky ice cream like flavour." overdose_threshold = 17 metabolization_rate = 0.25 - impure_chem = "BEsmaller" //If you make an inpure chem, it stalls growth + impure_chem = /datum/reagent/fermi/BEsmaller //If you make an inpure chem, it stalls growth inverse_chem_val = 0.35 - inverse_chem = "BEsmaller" //At really impure vols, it just becomes 100% inverse + inverse_chem = /datum/reagent/fermi/BEsmaller //At really impure vols, it just becomes 100% inverse can_synth = FALSE var/message_spam = FALSE @@ -44,7 +43,7 @@ M.Knockdown(50) M.Stun(50) B.throw_at(T2, 8, 1) - M.reagents.remove_reagent(id, volume) + M.reagents.del_reagent(type) return var/mob/living/carbon/human/H = M if(!H.getorganslot(ORGAN_SLOT_BREASTS) && H.emergent_genital_call()) @@ -78,7 +77,7 @@ B.cached_size = 0 B.prev_size = 0 to_chat(H, "Your chest feels warm, tingling with newfound sensitivity.") - H.reagents.remove_reagent(id, 5) + H.reagents.remove_reagent(type, 5) B.Insert(H) //If they have them, increase size. If size is comically big, limit movement and rip clothes. @@ -122,7 +121,6 @@ /datum/reagent/fermi/BEsmaller name = "Modesty milk" - id = "BEsmaller" description = "A volatile collodial mixture derived from milk that encourages mammary reduction via a potent estrogen mix. Produced by reacting impure Succubus milk." color = "#E60584" // rgb: 96, 0, 255 taste_description = "a milky ice cream like flavour." @@ -140,7 +138,6 @@ /datum/reagent/fermi/BEsmaller_hypo name = "Rectify milk" //Rectify - id = "BEsmaller_hypo" color = "#E60584" taste_description = "a milky ice cream like flavour." metabolization_rate = 0.25 @@ -179,15 +176,14 @@ //Since someone else made this in the time it took me to PR it, I merged them. /datum/reagent/fermi/penis_enlarger // Due to popular demand...! name = "Incubus draft" - id = "penis_enlarger" description = "A volatile collodial mixture derived from various masculine solutions that encourages a larger gentleman's package via a potent testosterone mix, formula derived from a collaboration from Fermichem and Doctor Ronald Hyatt, who is well known for his phallus palace." //The toxic masculinity thing is a joke because I thought it would be funny to include it in the reagents, but I don't think many would find it funny? dumb color = "#888888" // This is greyish..? taste_description = "chinese dragon powder" overdose_threshold = 17 //ODing makes you male and removes female genitals metabolization_rate = 0.5 - impure_chem = "PEsmaller" //If you make an inpure chem, it stalls growth + impure_chem = /datum/reagent/fermi/PEsmaller //If you make an inpure chem, it stalls growth inverse_chem_val = 0.35 - inverse_chem = "PEsmaller" //At really impure vols, it just becomes 100% inverse and shrinks instead. + inverse_chem = /datum/reagent/fermi/PEsmaller //At really impure vols, it just becomes 100% inverse and shrinks instead. can_synth = FALSE var/message_spam = FALSE @@ -203,7 +199,7 @@ M.Knockdown(50) M.Stun(50) P.throw_at(T2, 8, 1) - M.reagents.remove_reagent(id, volume) + M.reagents.del_reagent(type) return var/mob/living/carbon/human/H = M if(!H.getorganslot(ORGAN_SLOT_PENIS) && H.emergent_genital_call()) @@ -228,7 +224,7 @@ P.length = 1 to_chat(H, "Your groin feels warm, as you feel a newly forming bulge down below.") P.prev_length = 1 - H.reagents.remove_reagent(id, 5) + H.reagents.remove_reagent(type, 5) P.Insert(H) P.modify_size(0.1) @@ -271,7 +267,6 @@ /datum/reagent/fermi/PEsmaller // Due to cozmo's request...! name = "Chastity draft" - id = "PEsmaller" description = "A volatile collodial mixture derived from various masculine solutions that encourages a smaller gentleman's package via a potent testosterone mix. Produced by reacting impure Incubus draft." color = "#888888" // This is greyish..? taste_description = "chinese dragon powder" @@ -293,7 +288,6 @@ /datum/reagent/fermi/PEsmaller_hypo name = "Rectify draft" - id = "PEsmaller_hypo" color = "#888888" // This is greyish..? taste_description = "chinese dragon powder" description = "A medicine used to treat organomegaly in a patient's penis." diff --git a/modular_citadel/code/modules/reagents/chemistry/reagents/fermi_reagents.dm b/modular_citadel/code/modules/reagents/chemistry/reagents/fermi_reagents.dm index b3ee8f5b7f..e9c5733584 100644 --- a/modular_citadel/code/modules/reagents/chemistry/reagents/fermi_reagents.dm +++ b/modular_citadel/code/modules/reagents/chemistry/reagents/fermi_reagents.dm @@ -3,13 +3,12 @@ /datum/reagent/fermi name = "Fermi" //This should never exist, but it does so that it can exist in the case of errors.. - id = "fermi" taste_description = "affection and love!" can_synth = FALSE value = 20 - impure_chem = "fermiTox"// What chemical is metabolised with an inpure reaction + impure_chem = /datum/reagent/impure/fermiTox // What chemical is metabolised with an inpure reaction inverse_chem_val = 0.25 // If the impurity is below 0.5, replace ALL of the chem with inverse_chemupon metabolising - inverse_chem = "fermiTox" + inverse_chem = /datum/reagent/impure/fermiTox //This should process fermichems to find out how pure they are and what effect to do. @@ -32,7 +31,6 @@ /datum/reagent/fermi/hatmium //for hatterhat name = "Hat growth serium" - id = "hatmium" description = "A strange substance that draws in a hat from the hat dimention." color = "#7c311a" // rgb: , 0, 255 taste_description = "like jerky, whiskey and an off aftertaste of a crypt." @@ -80,7 +78,6 @@ /datum/reagent/fermi/furranium name = "Furranium" - id = "furranium" description = "OwO whats this?" color = "#f9b9bc" // rgb: , 0, 255 taste_description = "dewicious degenyewacy" @@ -170,13 +167,12 @@ /datum/reagent/fermi/nanite_b_gone name = "Nanite bane" - id = "nanite_b_gone" description = "A stablised EMP that is highly volatile, shocking small nano machines that will kill them off at a rapid rate in a patient's system." color = "#708f8f" overdose_threshold = 15 - impure_chem = "nanite_b_goneTox" //If you make an inpure chem, it stalls growth + impure_chem = /datum/reagent/fermi/nanite_b_goneTox //If you make an inpure chem, it stalls growth inverse_chem_val = 0.25 - inverse_chem = "nanite_b_goneTox" //At really impure vols, it just becomes 100% inverse + inverse_chem = /datum/reagent/fermi/nanite_b_goneTox //At really impure vols, it just becomes 100% inverse taste_description = "what can only be described as licking a battery." pH = 9 value = 90 @@ -214,7 +210,6 @@ datum/reagent/fermi/nanite_b_gone/reaction_obj(obj/O, reac_volume) /datum/reagent/fermi/nanite_b_goneTox name = "Electromagnetic crystals" - id = "nanite_b_goneTox" description = "Causes items upon the patient to sometimes short out, as well as causing a shock in the patient, if the residual charge between the crystals builds up to sufficient quantities" metabolization_rate = 0.5 chemical_flags = REAGENT_INVISIBLE @@ -237,7 +232,6 @@ datum/reagent/fermi/nanite_b_gone/reaction_obj(obj/O, reac_volume) /datum/reagent/fermi/fermiAcid name = "Acid vapour" - id = "fermiAcid" description = "Someone didn't do like an otter, and add acid to water." taste_description = "acid burns, ow" color = "#FFFFFF" @@ -280,7 +274,6 @@ datum/reagent/fermi/nanite_b_gone/reaction_obj(obj/O, reac_volume) /datum/reagent/fermi/fermiTest name = "Fermis Test Reagent" - id = "fermiTest" description = "You should be really careful with this...! Also, how did you get this?" chemical_flags = REAGENT_FORCEONNEW can_synth = FALSE @@ -290,7 +283,7 @@ datum/reagent/fermi/nanite_b_gone/reaction_obj(obj/O, reac_volume) if(LAZYLEN(holder.reagent_list) == 1) return else - holder.remove_reagent("fermiTest", volume)//Avoiding recurrsion + holder.del_reagent(type)//Avoiding recurrsion var/location = get_turf(holder.my_atom) if(cached_purity < 0.34 || cached_purity == 1) var/datum/effect_system/foam_spread/s = new() @@ -303,10 +296,10 @@ datum/reagent/fermi/nanite_b_gone/reaction_obj(obj/O, reac_volume) if(cached_purity >= 0.67) for (var/datum/reagent/reagent in holder.reagent_list) if (istype(reagent, /datum/reagent/fermi)) - var/datum/chemical_reaction/fermi/Ferm = GLOB.chemical_reagents_list[reagent.id] + var/datum/chemical_reaction/fermi/Ferm = GLOB.chemical_reagents_list[reagent.type] Ferm.FermiExplode(src, holder.my_atom, holder, holder.total_volume, holder.chem_temp, holder.pH) else - var/datum/chemical_reaction/Ferm = GLOB.chemical_reagents_list[reagent.id] + var/datum/chemical_reaction/Ferm = GLOB.chemical_reagents_list[reagent.type] Ferm.on_reaction(holder, reagent.volume) for(var/mob/M in viewers(8, location)) to_chat(M, "The solution reacts dramatically, with a meow!") @@ -315,7 +308,6 @@ datum/reagent/fermi/nanite_b_gone/reaction_obj(obj/O, reac_volume) /datum/reagent/fermi/acidic_buffer name = "Acidic buffer" - id = "acidic_buffer" description = "This reagent will consume itself and move the pH of a beaker towards acidity when added to another." color = "#fbc314" pH = 0 @@ -323,7 +315,7 @@ datum/reagent/fermi/nanite_b_gone/reaction_obj(obj/O, reac_volume) //Consumes self on addition and shifts pH /datum/reagent/fermi/acidic_buffer/on_new(datapH) - if(holder.has_reagent("stabilizing_agent")) + if(holder.has_reagent(/datum/reagent/stabilizing_agent)) return ..() data = datapH if(LAZYLEN(holder.reagent_list) == 1) @@ -333,19 +325,18 @@ datum/reagent/fermi/nanite_b_gone/reaction_obj(obj/O, reac_volume) for(var/mob/M in seen) to_chat(M, "The beaker fizzes as the pH changes!") playsound(get_turf(holder.my_atom), 'sound/FermiChem/bufferadd.ogg', 50, 1) - holder.remove_reagent(id, volume, ignore_pH = TRUE) + holder.remove_reagent(type, volume, ignore_pH = TRUE) ..() /datum/reagent/fermi/basic_buffer name = "Basic buffer" - id = "basic_buffer" description = "This reagent will consume itself and move the pH of a beaker towards alkalinity when added to another." color = "#3853a4" pH = 14 can_synth = TRUE /datum/reagent/fermi/basic_buffer/on_new(datapH) - if(holder.has_reagent("stabilizing_agent")) + if(holder.has_reagent(/datum/reagent/stabilizing_agent)) return ..() data = datapH if(LAZYLEN(holder.reagent_list) == 1) @@ -355,14 +346,13 @@ datum/reagent/fermi/nanite_b_gone/reaction_obj(obj/O, reac_volume) for(var/mob/M in seen) to_chat(M, "The beaker froths as the pH changes!") playsound(get_turf(holder.my_atom), 'sound/FermiChem/bufferadd.ogg', 50, 1) - holder.remove_reagent(id, volume, ignore_pH = TRUE) + holder.remove_reagent(type, volume, ignore_pH = TRUE) ..() //Turns you into a cute catto while it's in your system. //If you manage to gamble perfectly, makes you have cat ears after you transform back. But really, you shouldn't end up with that with how random it is. /datum/reagent/fermi/secretcatchem //Should I hide this from code divers? A secret cit chem? name = "secretcatchem" //an attempt at hiding it - id = "secretcatchem" description = "An illegal and hidden chem that turns people into cats. It's said that it's so rare and unstable that having it means you've been blessed. If used on someone in crit, it will turn them into a cat permanently, until the cat is killed." taste_description = "hairballs and cream" color = "#ffc224" diff --git a/modular_citadel/code/modules/reagents/chemistry/reagents/healing.dm b/modular_citadel/code/modules/reagents/chemistry/reagents/healing.dm index fa4f48172b..8668ef76f0 100644 --- a/modular_citadel/code/modules/reagents/chemistry/reagents/healing.dm +++ b/modular_citadel/code/modules/reagents/chemistry/reagents/healing.dm @@ -1,14 +1,13 @@ /datum/reagent/fermi/yamerol name = "Yamerol" - id = "yamerol" description = "For when you've trouble speaking or breathing, just yell YAMEROL! A chem that helps soothe any congestion problems and at high concentrations restores damaged lungs and tongues!" taste_description = "a weird, syrupy flavour, yamero" color = "#68e83a" pH = 8.6 overdose_threshold = 35 - impure_chem = "yamerol_tox" + impure_chem = /datum/reagent/impure/yamerol_tox inverse_chem_val = 0.4 - inverse_chem = "yamerol_tox" + inverse_chem = /datum/reagent/impure/yamerol_tox can_synth = TRUE /datum/reagent/fermi/yamerol/on_mob_life(mob/living/carbon/C) @@ -34,7 +33,7 @@ qdel(T) nT.Insert(C) to_chat(C, "You feel your tongue.... unfluffify...?") - holder.remove_reagent(src.id, "10") + holder.remove_reagent(type, 10) ..() /datum/reagent/fermi/yamerol/overdose_process(mob/living/carbon/C) @@ -50,7 +49,7 @@ T = new() T.Insert(C) to_chat(C, "You feel your tongue reform in your mouth.") - holder.remove_reagent(src.id, "10") + holder.remove_reagent(type, 10) else if((oT.name == "fluffy tongue") && (purity == 1)) var/obj/item/organ/tongue/T @@ -62,19 +61,18 @@ qdel(oT) T.Insert(C) to_chat(C, "You feel your tongue.... unfluffify...?") - holder.remove_reagent(src.id, "10") + holder.remove_reagent(type, 10) if(!C.getorganslot(ORGAN_SLOT_LUNGS)) var/obj/item/organ/lungs/yamerol/L = new() L.Insert(C) to_chat(C, "You feel the yamerol merge in your chest.") - holder.remove_reagent(src.id, "10") + holder.remove_reagent(type, 10) C.adjustOxyLoss(-3) ..() /datum/reagent/impure/yamerol_tox name = "Yamer oh no" - id = "yamerol_tox" description = "A dangerous, cloying toxin that stucks to a patient’s respiratory system, damaging their tongue, lungs and causing suffocation." taste_description = "a weird, syrupy flavour, yamero" color = "#68e83a" @@ -96,7 +94,6 @@ /datum/reagent/synthtissue name = "Synthtissue" - id = "synthtissue" description = "Synthetic tissue used for grafting onto damaged organs during surgery, or for treating limb damage. Has a very tight growth window between 305-320, any higher and the temperature will cause the cells to die. Additionally, growth time is considerably long, so chemists are encouraged to leave beakers with said reaction ongoing, while they tend to their other duties." pH = 7.6 metabolization_rate = 0.05 //Give them time to graft @@ -143,7 +140,7 @@ if(data["grown_volume"] > 175) //I don't think this is even possible, but damn to I want to see if someone can (bare in mind it takes 2s to grow 0.05u) if(volume >= 14) if(C.regenerate_organs(only_one = TRUE)) - C.reagents.remove_reagent(id, 15) + C.reagents.remove_reagent(type, 15) to_chat(C, "You feel something reform inside of you!") data["injected_vol"] -= metabolization_rate diff --git a/modular_citadel/code/modules/reagents/chemistry/reagents/other_reagents.dm b/modular_citadel/code/modules/reagents/chemistry/reagents/other_reagents.dm index c8ebde11d9..87f9d71ce2 100644 --- a/modular_citadel/code/modules/reagents/chemistry/reagents/other_reagents.dm +++ b/modular_citadel/code/modules/reagents/chemistry/reagents/other_reagents.dm @@ -1,6 +1,5 @@ /datum/reagent/syndicateadrenals name = "Syndicate Adrenaline" - id = "syndicateadrenals" description = "Regenerates your stamina and increases your reaction time." color = "#E62111" overdose_threshold = 6 diff --git a/modular_citadel/code/modules/reagents/chemistry/recipes/fermi.dm b/modular_citadel/code/modules/reagents/chemistry/recipes/fermi.dm index 5ea1fc77be..31e319edd3 100644 --- a/modular_citadel/code/modules/reagents/chemistry/recipes/fermi.dm +++ b/modular_citadel/code/modules/reagents/chemistry/recipes/fermi.dm @@ -9,19 +9,19 @@ /datum/chemical_reaction/proc/FermiFinish(datum/reagents/holder, var/atom/my_atom, reactVol) if(clear_conversion == REACTION_CLEAR_IMPURE | REACTION_CLEAR_INVERSE) for(var/id in results) - var/datum/reagent/R = my_atom.reagents.has_reagent("[id]") + var/datum/reagent/R = my_atom.reagents.has_reagent(id) if(R.purity == 1) continue var/cached_volume = R.volume if(clear_conversion == REACTION_CLEAR_INVERSE && R.inverse_chem) if(R.inverse_chem_val > R.purity) - my_atom.reagents.remove_reagent(R.id, cached_volume, FALSE) + my_atom.reagents.remove_reagent(R.type, cached_volume, FALSE) my_atom.reagents.add_reagent(R.inverse_chem, cached_volume, FALSE, other_purity = 1) else if (clear_conversion == REACTION_CLEAR_IMPURE && R.impure_chem) var/impureVol = cached_volume * (1 - R.purity) - my_atom.reagents.remove_reagent(R.id, (impureVol), FALSE) + my_atom.reagents.remove_reagent(R.type, (impureVol), FALSE) my_atom.reagents.add_reagent(R.impure_chem, impureVol, FALSE, other_purity = 1) R.cached_purity = R.purity R.purity = 1 @@ -76,14 +76,15 @@ var/datum/effect_system/smoke_spread/chem/s = new() R.my_atom = my_atom //Give the gas a fingerprint - for (var/datum/reagent/reagent in R0.reagent_list) //make gas for reagents, has to be done this way, otherwise it never stops Exploding - R.add_reagent(reagent.id, reagent.volume/3) //Seems fine? I think I fixed the infinite explosion bug. + for (var/A in R0.reagent_list) //make gas for reagents, has to be done this way, otherwise it never stops Exploding + var/datum/reagent/R2 = A + R.add_reagent(R2.type, R2.volume/3) //Seems fine? I think I fixed the infinite explosion bug. - if (reagent.purity < 0.6) - ImpureTot = (ImpureTot + (1-reagent.purity)) / 2 + if (R2.purity < 0.6) + ImpureTot = (ImpureTot + (1-R2.purity)) / 2 if(pH < 4) //if acidic, make acid spray - R.add_reagent("fermiAcid", (volume/3)) + R.add_reagent(/datum/reagent/impure/fermiTox, (volume/3)) if(R.reagent_list) s.set_up(R, (volume/5), my_atom) s.start() @@ -103,9 +104,9 @@ /datum/chemical_reaction/fermi/eigenstate name = "Eigenstasium" - id = "eigenstate" - results = list("eigenstate" = 1) - required_reagents = list("bluespace" = 1, "stable_plasma" = 1, "caramel" = 1) + id = /datum/reagent/fermi/eigenstate + results = list(/datum/reagent/fermi/eigenstate = 1) + required_reagents = list(/datum/reagent/bluespace = 1, /datum/reagent/stable_plasma = 1, /datum/reagent/consumable/caramel = 1) mix_message = "the reaction zaps suddenly!" //FermiChem vars: OptimalTempMin = 350 // Lower area of bell curve for determining heat based rate reactions @@ -137,9 +138,9 @@ //serum /datum/chemical_reaction/fermi/SDGF name = "Synthetic-derived growth factor" - id = "SDGF" - results = list("SDGF" = 3) - required_reagents = list("stable_plasma" = 1.5, "clonexadone" = 1.5, "uranium" = 1.5, "synthflesh" = 1.5) + id = /datum/reagent/fermi/SDGF + results = list(/datum/reagent/fermi/SDGF = 3) + required_reagents = list(/datum/reagent/stable_plasma = 1.5, /datum/reagent/medicine/clonexadone = 1.5, /datum/reagent/uranium = 1.5, /datum/reagent/medicine/synthflesh = 1.5) mix_message = "the reaction gives off a blorble!" required_temp = 1 //FermiChem vars: @@ -178,9 +179,9 @@ /datum/chemical_reaction/fermi/breast_enlarger name = "Sucubus milk" - id = "breast_enlarger" - results = list("breast_enlarger" = 8) - required_reagents = list("salglu_solution" = 1, "milk" = 1, "synthflesh" = 2, "silicon" = 3, "aphro" = 3) + id = /datum/reagent/fermi/breast_enlarger + results = list(/datum/reagent/fermi/breast_enlarger = 8) + required_reagents = list(/datum/reagent/medicine/salglu_solution = 1, /datum/reagent/consumable/milk = 1, /datum/reagent/medicine/synthflesh = 2, /datum/reagent/silicon = 3, /datum/reagent/drug/aphrodisiac = 3) mix_message = "the reaction gives off a mist of milk." //FermiChem vars: OptimalTempMin = 200 @@ -203,8 +204,8 @@ var/datum/reagent/fermi/breast_enlarger/BE = locate(/datum/reagent/fermi/breast_enlarger) in my_atom.reagents.reagent_list var/cached_volume = BE.volume if(BE.purity < 0.35) - holder.remove_reagent(src.id, cached_volume) - holder.add_reagent("BEsmaller", cached_volume) + holder.remove_reagent(type, cached_volume) + holder.add_reagent(/datum/reagent/fermi/BEsmaller, cached_volume) /datum/chemical_reaction/fermi/breast_enlarger/FermiExplode(datum/reagents, var/atom/my_atom, volume, temp, pH) @@ -218,9 +219,9 @@ /datum/chemical_reaction/fermi/penis_enlarger name = "Incubus draft" - id = "penis_enlarger" - results = list("penis_enlarger" = 8) - required_reagents = list("blood" = 5, "synthflesh" = 2, "carbon" = 2, "aphro" = 2, "salglu_solution" = 1) + id = /datum/reagent/fermi/penis_enlarger + results = list(/datum/reagent/fermi/penis_enlarger = 8) + required_reagents = list(/datum/reagent/blood = 5, /datum/reagent/medicine/synthflesh = 2, /datum/reagent/carbon = 2, /datum/reagent/drug/aphrodisiac = 2, /datum/reagent/medicine/salglu_solution = 1) mix_message = "the reaction gives off a spicy mist." //FermiChem vars: OptimalTempMin = 200 @@ -252,14 +253,14 @@ var/datum/reagent/fermi/penis_enlarger/PE = locate(/datum/reagent/fermi/penis_enlarger) in my_atom.reagents.reagent_list var/cached_volume = PE.volume if(PE.purity < 0.35) - holder.remove_reagent(src.id, cached_volume) - holder.add_reagent("PEsmaller", cached_volume) + holder.remove_reagent(type, cached_volume) + holder.add_reagent(/datum/reagent/fermi/PEsmaller, cached_volume) /datum/chemical_reaction/fermi/astral name = "Astrogen" - id = "astral" - results = list("astral" = 5) - required_reagents = list("eigenstate" = 1, "plasma" = 3, "synaptizine" = 1, "aluminium" = 5) + id = /datum/reagent/fermi/astral + results = list(/datum/reagent/fermi/astral = 5) + required_reagents = list(/datum/reagent/fermi/eigenstate = 1, /datum/reagent/toxin/plasma = 3, /datum/reagent/medicine/synaptizine = 1, /datum/reagent/aluminium = 5) //FermiChem vars: OptimalTempMin = 700 OptimalTempMax = 800 @@ -278,12 +279,12 @@ PurityMin = 0.25 -/datum/chemical_reaction/fermi/enthrall/ //check this +/datum/chemical_reaction/fermi/enthrall //check this name = "MKUltra" - id = "enthrall" - results = list("enthrall" = 5) - required_reagents = list("cocoa" = 1, "bluespace" = 1, "mindbreaker" = 1, "psicodine" = 1, "happiness" = 1) - required_catalysts = list("blood" = 1) + id = /datum/reagent/fermi/enthrall + results = list(/datum/reagent/fermi/enthrall = 5) + required_reagents = list(/datum/reagent/consumable/coco = 1, /datum/reagent/bluespace = 1, /datum/reagent/toxin/mindbreaker = 1, /datum/reagent/medicine/psicodine = 1, /datum/reagent/drug/happiness = 1) + required_catalysts = list(/datum/reagent/blood = 1) mix_message = "the reaction gives off a burgundy plume of smoke!" //FermiChem vars: OptimalTempMin = 780 @@ -325,7 +326,8 @@ //So slimes can play too. /datum/chemical_reaction/fermi/enthrall/slime - required_catalysts = list("jellyblood" = 1) + id = "enthrall2" + required_catalysts = list(/datum/reagent/blood/jellyblood = 1) /datum/chemical_reaction/fermi/enthrall/slime/FermiFinish(datum/reagents/holder, var/atom/my_atom) var/datum/reagent/blood/jellyblood/B = locate(/datum/reagent/blood/jellyblood) in my_atom.reagents.reagent_list//The one line change. @@ -350,16 +352,16 @@ var/turf/T = get_turf(my_atom) var/datum/reagents/R = new/datum/reagents(1000) var/datum/effect_system/smoke_spread/chem/s = new() - R.add_reagent("enthrallExplo", volume) + R.add_reagent(/datum/reagent/fermi/enthrallExplo, volume) s.set_up(R, volume/2, T) s.start() my_atom.reagents.clear_reagents() /datum/chemical_reaction/fermi/hatmium // done name = "Hat growth serum" - id = "hatmium" - results = list("hatmium" = 5) - required_reagents = list("ethanol" = 1, "nutriment" = 3, "cooking_oil" = 2, "iron" = 1, "gold" = 3) + id = /datum/reagent/fermi/hatmium + results = list(/datum/reagent/fermi/hatmium = 5) + required_reagents = list(/datum/reagent/consumable/ethanol = 1, /datum/reagent/consumable/nutriment = 3, /datum/reagent/consumable/cooking_oil = 2, /datum/reagent/iron = 1, /datum/reagent/gold = 3) //mix_message = "" //FermiChem vars: OptimalTempMin = 500 @@ -392,9 +394,9 @@ /datum/chemical_reaction/fermi/furranium name = "Furranium" - id = "furranium" - results = list("furranium" = 5) - required_reagents = list("aphro" = 1, "moonsugar" = 1, "silver" = 2, "salglu_solution" = 1) + id = /datum/reagent/fermi/furranium + results = list(/datum/reagent/fermi/furranium = 5) + required_reagents = list(/datum/reagent/drug/aphrodisiac = 1, /datum/reagent/moonsugar = 1, /datum/reagent/silver = 2, /datum/reagent/medicine/salglu_solution = 1) mix_message = "You think you can hear a howl come from the beaker." //FermiChem vars: OptimalTempMin = 350 @@ -413,7 +415,8 @@ PurityMin = 0.3 /datum/chemical_reaction/fermi/furranium/organic - required_reagents = list("aphro" = 1, "catnip" = 1, "silver" = 2, "salglu_solution" = 1) + id = "furranium_organic" + required_reagents = list(/datum/reagent/drug/aphrodisiac = 1, /datum/reagent/pax/catnip = 1, /datum/reagent/silver = 2, /datum/reagent/medicine/salglu_solution = 1) //FOR INSTANT REACTIONS - DO NOT MULTIPLY LIMIT BY 10. //There's a weird rounding error or something ugh. @@ -421,9 +424,9 @@ //Nano-b-gone /datum/chemical_reaction/fermi/nanite_b_gone//done test name = "Naninte bain" - id = "nanite_b_gone" - results = list("nanite_b_gone" = 4) - required_reagents = list("synthflesh" = 1, "uranium" = 1, "iron" = 1, "salglu_solution" = 1) + id = /datum/reagent/fermi/nanite_b_gone + results = list(/datum/reagent/fermi/nanite_b_gone = 4) + required_reagents = list(/datum/reagent/medicine/synthflesh = 1, /datum/reagent/uranium = 1, /datum/reagent/iron = 1, /datum/reagent/medicine/salglu_solution = 1) mix_message = "the reaction gurgles, encapsulating the reagents in flesh before the emp can be set off." required_temp = 450//To force fermireactions before EMP. //FermiChem vars: @@ -443,9 +446,9 @@ /datum/chemical_reaction/fermi/acidic_buffer//done test name = "Acetic acid buffer" - id = "acidic_buffer" - results = list("acidic_buffer" = 10) //acetic acid - required_reagents = list("salglu_solution" = 1, "ethanol" = 3, "oxygen" = 3, "water" = 3) + id = /datum/reagent/fermi/acidic_buffer + results = list(/datum/reagent/fermi/acidic_buffer = 10) //acetic acid + required_reagents = list(/datum/reagent/medicine/salglu_solution = 1, /datum/reagent/consumable/ethanol = 3, /datum/reagent/oxygen = 3, /datum/reagent/water = 3) //FermiChem vars: OptimalTempMin = 250 OptimalTempMax = 500 @@ -470,10 +473,10 @@ /datum/chemical_reaction/fermi/basic_buffer//done test name = "Ethyl Ethanoate buffer" - id = "basic_buffer" - results = list("basic_buffer" = 5) - required_reagents = list("lye" = 1, "ethanol" = 2, "water" = 2) - required_catalysts = list("sacid" = 1) //vagely acetic + id = /datum/reagent/fermi/basic_buffer + results = list(/datum/reagent/fermi/basic_buffer = 5) + required_reagents = list(/datum/reagent/lye = 1, /datum/reagent/consumable/ethanol = 2, /datum/reagent/water = 2) + required_catalysts = list(/datum/reagent/toxin/acid = 1) //vagely acetic //FermiChem vars: OptimalTempMin = 250 OptimalTempMax = 500 @@ -502,10 +505,10 @@ //ChemReactionVars: /datum/chemical_reaction/fermi/secretcatchem //DONE name = "secretcatchem" - id = "secretcatchem" - results = list("secretcatchem" = 5) - required_reagents = list("stable_plasma" = 1, "caramel" = 1, "cream" = 1, "clonexadone" = 1)//Yes this will make a kitty if you don't lucky guess. It'll eat all your reagents too. - required_catalysts = list("SDGF" = 1) + id = /datum/reagent/fermi/secretcatchem + results = list(/datum/reagent/fermi/secretcatchem = 5) + required_reagents = list(/datum/reagent/stable_plasma = 1, /datum/reagent/consumable/caramel = 1, /datum/reagent/consumable/cream = 1, /datum/reagent/medicine/clonexadone = 1)//Yes this will make a kitty if you don't lucky guess. It'll eat all your reagents too. + required_catalysts = list(/datum/reagent/fermi/SDGF = 1) required_temp = 500 mix_message = "the reaction gives off a meow!" mix_sound = "modular_citadel/sound/voice/merowr.ogg" @@ -536,8 +539,8 @@ HIonRelease += (rand(-25, 25)/100) RateUpLim += (rand(1, 1000)/100) PurityMin += (rand(-1, 1)/10) - var/additions = list("aluminium", "silver", "gold", "plasma", "silicon", "uranium", "milk") - required_reagents[pick(additions)] = rand(1, 5)//weird + var/picked = pick(/datum/reagent/aluminium, /datum/reagent/silver, /datum/reagent/gold, /datum/reagent/toxin/plasma, /datum/reagent/silicon, /datum/reagent/uranium, /datum/reagent/consumable/milk) + required_reagents[picked] = rand(1, 5)//weird /datum/chemical_reaction/fermi/secretcatchem/FermiFinish(datum/reagents/holder, var/atom/my_atom) SSblackbox.record_feedback("tally", "catgirlium")//log @@ -555,9 +558,9 @@ /datum/chemical_reaction/fermi/yamerol//done test name = "Yamerol" - id = "yamerol" - results = list("yamerol" = 3) - required_reagents = list("perfluorodecalin" = 1, "salbutamol" = 1, "water" = 1) + id = /datum/reagent/fermi/yamerol + results = list(/datum/reagent/fermi/yamerol = 3) + required_reagents = list(/datum/reagent/medicine/perfluorodecalin = 1, /datum/reagent/medicine/salbutamol = 1, /datum/reagent/water = 1) //FermiChem vars: OptimalTempMin = 300 OptimalTempMax = 500 diff --git a/modular_citadel/code/modules/reagents/reagents/cit_reagents.dm b/modular_citadel/code/modules/reagents/reagents/cit_reagents.dm index f6b70eb7b6..b907c27329 100644 --- a/modular_citadel/code/modules/reagents/reagents/cit_reagents.dm +++ b/modular_citadel/code/modules/reagents/reagents/cit_reagents.dm @@ -1,7 +1,6 @@ //body bluids /datum/reagent/consumable/semen name = "Semen" - id = "semen" description = "Sperm from some animal. I bet you'll drink this out of a bucket someday." taste_description = "something salty" taste_mult = 2 //Not very overpowering flavor @@ -45,7 +44,6 @@ /datum/reagent/consumable/femcum name = "Female Ejaculate" - id = "femcum" description = "Vaginal lubricant found in most mammals and other animals of similar nature. Where you found this is your own business." taste_description = "something with a tang" // wew coders who haven't eaten out a girl. taste_mult = 2 @@ -93,7 +91,6 @@ /datum/reagent/drug/aphrodisiac name = "Crocin" - id = "aphro" description = "Naturally found in the crocus and gardenia flowers, this drug acts as a natural and safe aphrodisiac." taste_description = "strawberry roofies" taste_mult = 2 //Hide the roofies in stronger flavors @@ -112,7 +109,6 @@ /datum/reagent/drug/aphrodisiacplus name = "Hexacrocin" - id = "aphro+" description = "Chemically condensed form of basic crocin. This aphrodisiac is extremely powerful and addictive in most animals.\ Addiction withdrawals can cause brain damage and shortness of breath. Overdosage can lead to brain damage and a \ permanent increase in libido (commonly referred to as 'bimbofication')." @@ -167,7 +163,6 @@ /datum/reagent/drug/anaphrodisiac name = "Camphor" - id = "anaphro" description = "Naturally found in some species of evergreen trees, camphor is a waxy substance. When injested by most animals, it acts as an anaphrodisiac\ , reducing libido and calming them. Non-habit forming and not addictive." taste_description = "dull bitterness" @@ -182,7 +177,6 @@ /datum/reagent/drug/anaphrodisiacplus name = "Hexacamphor" - id = "anaphro+" description = "Chemically condensed camphor. Causes an extreme reduction in libido and a permanent one if overdosed. Non-addictive." taste_description = "tranquil celibacy" color = "#D9D9D9"//rgb(217, 217, 217) @@ -206,32 +200,32 @@ //recipes /datum/chemical_reaction/aphro name = "crocin" - id = "aphro" - results = list("aphro" = 6) - required_reagents = list("carbon" = 2, "hydrogen" = 2, "oxygen" = 2, "water" = 1) + id = /datum/reagent/drug/aphrodisiac + results = list(/datum/reagent/drug/aphrodisiac = 6) + required_reagents = list(/datum/reagent/carbon = 2, /datum/reagent/hydrogen = 2, /datum/reagent/oxygen = 2, /datum/reagent/water = 1) required_temp = 400 mix_message = "The mixture boils off a pink vapor..."//The water boils off, leaving the crocin /datum/chemical_reaction/aphroplus name = "hexacrocin" - id = "aphro+" - results = list("aphro+" = 1) - required_reagents = list("aphro" = 6, "phenol" = 1) + id = /datum/reagent/drug/aphrodisiacplus + results = list(/datum/reagent/drug/aphrodisiacplus = 1) + required_reagents = list(/datum/reagent/drug/aphrodisiac = 6, /datum/reagent/phenol = 1) required_temp = 400 mix_message = "The mixture rapidly condenses and darkens in color..." /datum/chemical_reaction/anaphro name = "camphor" - id = "anaphro" - results = list("anaphro" = 6) - required_reagents = list("carbon" = 2, "hydrogen" = 2, "oxygen" = 2, "sulfur" = 1) + id = /datum/reagent/drug/anaphrodisiac + results = list(/datum/reagent/drug/anaphrodisiac = 6) + required_reagents = list(/datum/reagent/carbon = 2, /datum/reagent/hydrogen = 2, /datum/reagent/oxygen = 2, /datum/reagent/sulfur = 1) required_temp = 400 mix_message = "The mixture boils off a yellow, smelly vapor..."//Sulfur burns off, leaving the camphor /datum/chemical_reaction/anaphroplus name = "pentacamphor" - id = "anaphro+" - results = list("anaphro+" = 1) - required_reagents = list("anaphro" = 5, "acetone" = 1) + id = /datum/reagent/drug/anaphrodisiacplus + results = list(/datum/reagent/drug/anaphrodisiacplus = 1) + required_reagents = list(/datum/reagent/drug/aphrodisiac = 5, /datum/reagent/acetone = 1) required_temp = 300 mix_message = "The mixture thickens and heats up slighty..." diff --git a/modular_citadel/icons/mob/widerobot.dmi b/modular_citadel/icons/mob/widerobot.dmi index 43a6863ece..a77a109eb9 100644 Binary files a/modular_citadel/icons/mob/widerobot.dmi and b/modular_citadel/icons/mob/widerobot.dmi differ diff --git a/tgstation.dme b/tgstation.dme index 26b10e5af0..70cac058f0 100755 --- a/tgstation.dme +++ b/tgstation.dme @@ -529,6 +529,7 @@ #include "code\datums\wires\airlock.dm" #include "code\datums\wires\apc.dm" #include "code\datums\wires\autolathe.dm" +#include "code\datums\wires\autoylathe.dm" #include "code\datums\wires\emitter.dm" #include "code\datums\wires\explosive.dm" #include "code\datums\wires\microwave.dm" @@ -664,6 +665,7 @@ #include "code\game\machinery\syndicatebeacon.dm" #include "code\game\machinery\syndicatebomb.dm" #include "code\game\machinery\teleporter.dm" +#include "code\game\machinery\toylathe.dm" #include "code\game\machinery\transformer.dm" #include "code\game\machinery\turnstile.dm" #include "code\game\machinery\washing_machine.dm" @@ -2730,6 +2732,7 @@ #include "code\modules\research\stock_parts.dm" #include "code\modules\research\designs\AI_module_designs.dm" #include "code\modules\research\designs\autobotter_designs.dm" +#include "code\modules\research\designs\autoylathe_designs.dm" #include "code\modules\research\designs\biogenerator_designs.dm" #include "code\modules\research\designs\bluespace_designs.dm" #include "code\modules\research\designs\computer_part_designs.dm" @@ -2995,6 +2998,18 @@ #include "code\modules\uplink\uplink_devices.dm" #include "code\modules\uplink\uplink_items.dm" #include "code\modules\uplink\uplink_purchase_log.dm" +#include "code\modules\uplink\uplink_items\uplink_ammo.dm" +#include "code\modules\uplink\uplink_items\uplink_badass.dm" +#include "code\modules\uplink\uplink_items\uplink_bundles.dm" +#include "code\modules\uplink\uplink_items\uplink_clothing.dm" +#include "code\modules\uplink\uplink_items\uplink_dangerous.dm" +#include "code\modules\uplink\uplink_items\uplink_devices.dm" +#include "code\modules\uplink\uplink_items\uplink_explosives.dm" +#include "code\modules\uplink\uplink_items\uplink_implants.dm" +#include "code\modules\uplink\uplink_items\uplink_roles.dm" +#include "code\modules\uplink\uplink_items\uplink_stealth.dm" +#include "code\modules\uplink\uplink_items\uplink_stealthdevices.dm" +#include "code\modules\uplink\uplink_items\uplink_support.dm" #include "code\modules\vehicles\_vehicle.dm" #include "code\modules\vehicles\atv.dm" #include "code\modules\vehicles\bicycle.dm" @@ -3023,6 +3038,7 @@ #include "code\modules\vending\engineering.dm" #include "code\modules\vending\engivend.dm" #include "code\modules\vending\games.dm" +#include "code\modules\vending\kinkmate.dm" #include "code\modules\vending\liberation.dm" #include "code\modules\vending\liberation_toy.dm" #include "code\modules\vending\magivend.dm" @@ -3035,6 +3051,7 @@ #include "code\modules\vending\security.dm" #include "code\modules\vending\snack.dm" #include "code\modules\vending\sovietsoda.dm" +#include "code\modules\vending\sovietvend.dm" #include "code\modules\vending\sustenance.dm" #include "code\modules\vending\toys.dm" #include "code\modules\vending\wardrobes.dm" @@ -3067,13 +3084,9 @@ #include "modular_citadel\code\_onclick\hud\screen_objects.dm" #include "modular_citadel\code\_onclick\hud\sprint.dm" #include "modular_citadel\code\_onclick\hud\stamina.dm" -#include "modular_citadel\code\datums\components\material_container.dm" #include "modular_citadel\code\datums\components\souldeath.dm" #include "modular_citadel\code\datums\status_effects\chems.dm" #include "modular_citadel\code\datums\status_effects\debuffs.dm" -#include "modular_citadel\code\datums\wires\autoylathe.dm" -#include "modular_citadel\code\game\machinery\toylathe.dm" -#include "modular_citadel\code\game\machinery\vending.dm" #include "modular_citadel\code\game\machinery\wishgranter.dm" #include "modular_citadel\code\game\objects\cit_screenshake.dm" #include "modular_citadel\code\game\objects\items.dm" @@ -3082,7 +3095,6 @@ #include "modular_citadel\code\game\objects\items\balls.dm" #include "modular_citadel\code\game\objects\items\boombox.dm" #include "modular_citadel\code\game\objects\items\stunsword.dm" -#include "modular_citadel\code\game\objects\items\circuitboards\machine_circuitboards.dm" #include "modular_citadel\code\game\objects\items\devices\radio\encryptionkey.dm" #include "modular_citadel\code\game\objects\items\devices\radio\headset.dm" #include "modular_citadel\code\game\objects\items\devices\radio\shockcollar.dm" @@ -3182,6 +3194,5 @@ #include "modular_citadel\code\modules\reagents\objects\clothes.dm" #include "modular_citadel\code\modules\reagents\objects\items.dm" #include "modular_citadel\code\modules\reagents\reagents\cit_reagents.dm" -#include "modular_citadel\code\modules\research\designs\autoylathe_designs.dm" #include "modular_citadel\interface\skin.dmf" // END_INCLUDE