diff --git a/_maps/RandomZLevels/snowdin.dmm b/_maps/RandomZLevels/snowdin.dmm
index a643bde9e4c..af28c01f413 100644
--- a/_maps/RandomZLevels/snowdin.dmm
+++ b/_maps/RandomZLevels/snowdin.dmm
@@ -9729,7 +9729,7 @@
/area/awaymission/snowdin/post/mining_main)
"IV" = (
/obj/structure/table,
-/obj/structure/showcase/machinery/microwave,
+/obj/machinery/microwave/engineering/cell_included,
/obj/effect/turf_decal/tile/neutral/half/contrasted,
/turf/open/floor/iron,
/area/awaymission/snowdin/post/mining_main)
diff --git a/_maps/map_files/Birdshot/birdshot.dmm b/_maps/map_files/Birdshot/birdshot.dmm
index 4004e924842..0895d18df5c 100644
--- a/_maps/map_files/Birdshot/birdshot.dmm
+++ b/_maps/map_files/Birdshot/birdshot.dmm
@@ -893,6 +893,13 @@
/obj/effect/spawner/structure/window/reinforced,
/turf/open/floor/plating,
/area/station/engineering/atmos/project)
+"arV" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/turf_decal/tile/yellow/opposingcorners,
+/obj/structure/table,
+/obj/machinery/microwave/engineering/cell_included,
+/turf/open/floor/iron,
+/area/station/maintenance/department/engine/atmos)
"asb" = (
/obj/effect/turf_decal/siding/white,
/turf/open/floor/iron/dark/small,
@@ -3177,24 +3184,6 @@
/obj/machinery/newscaster/directional/west,
/turf/open/floor/iron,
/area/station/commons)
-"bnl" = (
-/obj/structure/disposalpipe/segment{
- dir = 4
- },
-/obj/effect/turf_decal/tile/yellow/full,
-/obj/structure/table/reinforced,
-/obj/machinery/door/firedoor,
-/obj/machinery/door/window/right/directional/east{
- name = "Pharmacy Desk";
- req_access = list("pharmacy")
- },
-/obj/machinery/door/poddoor/shutters/preopen{
- dir = 4;
- id = "pharmacy_shutters";
- name = "Pharmacy Shutters"
- },
-/turf/open/floor/iron/dark/textured_large,
-/area/station/medical/pharmacy)
"bno" = (
/obj/structure/cable,
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
@@ -4728,6 +4717,24 @@
/obj/effect/spawner/random/maintenance,
/turf/open/floor/noslip/tram_platform,
/area/station/security/tram)
+"bQF" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/yellow/full,
+/obj/structure/table/reinforced,
+/obj/machinery/door/firedoor,
+/obj/machinery/door/window/right/directional/east{
+ name = "Pharmacy Desk";
+ req_access = list("pharmacy")
+ },
+/obj/machinery/door/poddoor/shutters/preopen{
+ dir = 4;
+ id = "pharmacy_shutters";
+ name = "Pharmacy Shutters"
+ },
+/turf/open/floor/iron/dark/textured_large,
+/area/station/medical/pharmacy)
"bQU" = (
/obj/structure/cable,
/obj/structure/disposalpipe/segment{
@@ -7290,12 +7297,6 @@
/obj/effect/turf_decal/tile/brown/full,
/turf/open/floor/iron/smooth_large,
/area/station/service/bar)
-"cOL" = (
-/obj/effect/turf_decal/tile/yellow/opposingcorners,
-/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
-/obj/machinery/light/small/directional/north,
-/turf/open/floor/iron,
-/area/station/maintenance/department/engine/atmos)
"cOQ" = (
/obj/structure/cable,
/obj/structure/disposalpipe/sorting/mail/flip{
@@ -26565,6 +26566,14 @@
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/iron/dark,
/area/station/security/interrogation)
+"jCL" = (
+/obj/effect/turf_decal/tile/yellow/opposingcorners,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
+/obj/machinery/light/small/directional/north,
+/obj/structure/table,
+/obj/effect/spawner/random/food_or_drink/donkpockets,
+/turf/open/floor/iron,
+/area/station/maintenance/department/engine/atmos)
"jCP" = (
/obj/structure/cable,
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
@@ -42311,11 +42320,6 @@
},
/turf/open/floor/iron,
/area/station/science/cytology)
-"pdW" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/turf_decal/tile/yellow/opposingcorners,
-/turf/open/floor/iron,
-/area/station/maintenance/department/engine/atmos)
"pdY" = (
/obj/machinery/portable_atmospherics/canister/bz,
/turf/open/floor/iron/diagonal,
@@ -84212,7 +84216,7 @@ yjE
fPv
dja
bNq
-pdW
+arV
dIm
dQY
ecq
@@ -84469,7 +84473,7 @@ yjE
uYG
djC
bNq
-cOL
+jCL
dIe
dRE
ecF
@@ -104612,7 +104616,7 @@ wfr
nPd
wfr
nPd
-bnl
+bQF
uxJ
wfr
wfr
diff --git a/_maps/map_files/Deltastation/DeltaStation2.dmm b/_maps/map_files/Deltastation/DeltaStation2.dmm
index 91043d27344..dc37382b416 100644
--- a/_maps/map_files/Deltastation/DeltaStation2.dmm
+++ b/_maps/map_files/Deltastation/DeltaStation2.dmm
@@ -17333,12 +17333,6 @@
/obj/effect/turf_decal/tile/neutral/fourcorners,
/turf/open/floor/iron/dark,
/area/station/ai_monitored/turret_protected/ai_upload)
-"enj" = (
-/obj/structure/table/reinforced,
-/obj/machinery/microwave,
-/obj/structure/sign/poster/random/directional/west,
-/turf/open/floor/wood,
-/area/station/engineering/break_room)
"enq" = (
/obj/item/folder/yellow,
/obj/item/multitool,
@@ -22604,6 +22598,16 @@
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/plating,
/area/station/maintenance/department/science/xenobiology)
+"fCm" = (
+/obj/machinery/door/poddoor/shutters/preopen{
+ dir = 4;
+ id = "chemisttop";
+ name = "Pharmacy Shutters"
+ },
+/obj/machinery/smartfridge/chemistry/preloaded,
+/obj/machinery/door/firedoor,
+/turf/open/floor/iron/white,
+/area/station/medical/pharmacy)
"fCn" = (
/obj/machinery/door/airlock/medical{
name = "Medical Break Room"
@@ -24965,16 +24969,6 @@
},
/turf/open/floor/iron,
/area/station/science/xenobiology)
-"gfK" = (
-/obj/machinery/door/poddoor/shutters/preopen{
- dir = 4;
- id = "chemisttop";
- name = "Pharmacy Shutters"
- },
-/obj/machinery/smartfridge/chemistry/preloaded,
-/obj/machinery/door/firedoor,
-/turf/open/floor/iron/white,
-/area/station/medical/pharmacy)
"gfR" = (
/obj/effect/turf_decal/tile/neutral/fourcorners,
/turf/open/floor/iron/dark,
@@ -25160,6 +25154,39 @@
},
/turf/open/floor/iron,
/area/station/hallway/primary/central/fore)
+"giO" = (
+/obj/structure/table/reinforced,
+/obj/machinery/door/firedoor,
+/obj/structure/desk_bell{
+ pixel_x = 7;
+ pixel_y = 6
+ },
+/obj/item/folder/yellow{
+ pixel_x = -3;
+ pixel_y = -6
+ },
+/obj/item/pen{
+ pixel_x = -3;
+ pixel_y = -2
+ },
+/obj/machinery/door/poddoor/shutters/preopen{
+ dir = 4;
+ id = "chemisttop";
+ name = "Pharmacy Shutters"
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 8
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 4
+ },
+/obj/machinery/door/window/left/directional/west{
+ name = "Pharmacy Desk";
+ req_access = list("pharmacy");
+ dir = 4
+ },
+/turf/open/floor/iron/dark,
+/area/station/medical/pharmacy)
"giY" = (
/obj/effect/decal/cleanable/dirt,
/obj/structure/sign/poster/contraband/random/directional/north,
@@ -51844,39 +51871,6 @@
/obj/effect/turf_decal/tile/neutral/full,
/turf/open/floor/iron/dark/smooth_large,
/area/station/security/interrogation)
-"mUh" = (
-/obj/structure/table/reinforced,
-/obj/machinery/door/firedoor,
-/obj/structure/desk_bell{
- pixel_x = 7;
- pixel_y = 6
- },
-/obj/item/folder/yellow{
- pixel_x = -3;
- pixel_y = -6
- },
-/obj/item/pen{
- pixel_x = -3;
- pixel_y = -2
- },
-/obj/machinery/door/poddoor/shutters/preopen{
- dir = 4;
- id = "chemisttop";
- name = "Pharmacy Shutters"
- },
-/obj/effect/turf_decal/stripes/line{
- dir = 8
- },
-/obj/effect/turf_decal/stripes/line{
- dir = 4
- },
-/obj/machinery/door/window/left/directional/west{
- name = "Pharmacy Desk";
- req_access = list("pharmacy");
- dir = 4
- },
-/turf/open/floor/iron/dark,
-/area/station/medical/pharmacy)
"mUt" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
@@ -72845,6 +72839,12 @@
},
/turf/open/floor/iron,
/area/station/maintenance/port)
+"sjJ" = (
+/obj/structure/table/reinforced,
+/obj/machinery/microwave/engineering/cell_included,
+/obj/structure/sign/poster/random/directional/west,
+/turf/open/floor/wood,
+/area/station/engineering/break_room)
"ske" = (
/obj/effect/spawner/random/entertainment/arcade,
/obj/effect/turf_decal/tile/neutral/fourcorners,
@@ -119146,7 +119146,7 @@ uiP
vkg
wlS
vQj
-enj
+sjJ
cJX
fhr
kTd
@@ -136923,8 +136923,8 @@ uNY
squ
pEU
cwh
-gfK
-mUh
+fCm
+giO
cwh
cwh
udd
diff --git a/_maps/map_files/IceBoxStation/IceBoxStation.dmm b/_maps/map_files/IceBoxStation/IceBoxStation.dmm
index 0944d4d9c04..bdde1b185ee 100644
--- a/_maps/map_files/IceBoxStation/IceBoxStation.dmm
+++ b/_maps/map_files/IceBoxStation/IceBoxStation.dmm
@@ -1,4 +1,12 @@
//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
+"aaf" = (
+/obj/structure/table/glass,
+/obj/machinery/microwave/engineering/cell_included,
+/obj/effect/turf_decal/tile/brown/anticorner/contrasted{
+ dir = 4
+ },
+/turf/open/floor/iron/white,
+/area/station/medical/break_room)
"aak" = (
/obj/structure/stairs/south,
/obj/structure/railing{
@@ -1045,6 +1053,12 @@
/obj/structure/cable,
/turf/open/floor/iron,
/area/station/hallway/secondary/entry)
+"arO" = (
+/obj/effect/turf_decal/tile/blue,
+/obj/machinery/light/directional/south,
+/obj/structure/extinguisher_cabinet/directional/south,
+/turf/open/floor/iron,
+/area/station/hallway/primary/starboard)
"arT" = (
/obj/machinery/computer/security/labor{
dir = 4
@@ -3211,28 +3225,6 @@
/obj/machinery/firealarm/directional/south,
/turf/open/floor/iron/dark,
/area/station/service/chapel)
-"aZO" = (
-/obj/machinery/camera{
- c_tag = "Medbay Pharmacy";
- dir = 9;
- network = list("ss13","medbay")
- },
-/obj/effect/turf_decal/tile/yellow/half/contrasted{
- dir = 1
- },
-/obj/machinery/shower/directional/south,
-/obj/structure/railing{
- dir = 4
- },
-/obj/structure/fluff{
- desc = "What, you think the water just magically soaks into the metallic flooring?";
- icon = 'icons/obj/mining_zones/survival_pod.dmi';
- icon_state = "fan_tiny";
- name = "shower drain"
- },
-/obj/effect/turf_decal/stripes/white/end,
-/turf/open/floor/iron/white,
-/area/station/medical/pharmacy)
"aZV" = (
/obj/effect/landmark/start/atmospheric_technician,
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
@@ -10722,6 +10714,30 @@
},
/turf/open/floor/glass/reinforced,
/area/station/science/xenobiology)
+"dff" = (
+/obj/structure/table/reinforced,
+/obj/machinery/door/firedoor,
+/obj/machinery/door/window/right/directional/east{
+ name = "Pharmacy Desk";
+ req_access = list("pharmacy")
+ },
+/obj/item/folder/white{
+ pixel_x = -5
+ },
+/obj/item/pen{
+ pixel_x = -5
+ },
+/obj/structure/desk_bell{
+ pixel_x = 7
+ },
+/obj/effect/turf_decal/tile/yellow/fourcorners,
+/obj/machinery/door/poddoor/shutters/preopen{
+ id = "pharmacy_shutters";
+ name = "Pharmacy Shutters";
+ dir = 4
+ },
+/turf/open/floor/iron,
+/area/station/medical/pharmacy)
"dfq" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/cyan/visible,
/turf/closed/wall/r_wall,
@@ -11978,24 +11994,6 @@
/obj/structure/cable,
/turf/open/floor/iron,
/area/station/hallway/primary/central)
-"dyR" = (
-/obj/structure/table/glass,
-/obj/item/stack/cable_coil,
-/obj/item/stack/cable_coil,
-/obj/item/screwdriver{
- pixel_x = 2;
- pixel_y = 11
- },
-/obj/item/grenade/chem_grenade,
-/obj/item/grenade/chem_grenade,
-/obj/item/grenade/chem_grenade,
-/obj/item/grenade/chem_grenade,
-/obj/effect/turf_decal/tile/yellow/half/contrasted{
- dir = 1
- },
-/obj/structure/extinguisher_cabinet/directional/north,
-/turf/open/floor/iron/white,
-/area/station/medical/pharmacy)
"dyW" = (
/obj/structure/sign/poster/official/random/directional/south,
/obj/structure/table/optable{
@@ -16959,6 +16957,24 @@
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/plating,
/area/station/maintenance/department/chapel)
+"fdO" = (
+/obj/structure/table/glass,
+/obj/item/stack/cable_coil,
+/obj/item/stack/cable_coil,
+/obj/item/screwdriver{
+ pixel_x = 2;
+ pixel_y = 11
+ },
+/obj/item/grenade/chem_grenade,
+/obj/item/grenade/chem_grenade,
+/obj/item/grenade/chem_grenade,
+/obj/item/grenade/chem_grenade,
+/obj/effect/turf_decal/tile/yellow/half/contrasted{
+ dir = 1
+ },
+/obj/structure/extinguisher_cabinet/directional/north,
+/turf/open/floor/iron/white,
+/area/station/medical/pharmacy)
"fdP" = (
/obj/structure/bonfire,
/obj/item/melee/roastingstick,
@@ -17157,6 +17173,16 @@
},
/turf/open/floor/iron,
/area/station/engineering/lobby)
+"fib" = (
+/obj/machinery/smartfridge/chemistry/preloaded,
+/obj/machinery/door/firedoor,
+/obj/machinery/door/poddoor/shutters/preopen{
+ id = "pharmacy_shutters2";
+ name = "Pharmacy Shutters";
+ dir = 4
+ },
+/turf/open/floor/iron/white,
+/area/station/medical/pharmacy)
"fij" = (
/obj/structure/cable,
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
@@ -17735,30 +17761,6 @@
},
/turf/open/floor/plating,
/area/station/maintenance/fore/lesser)
-"frp" = (
-/obj/structure/table/reinforced,
-/obj/machinery/door/firedoor,
-/obj/machinery/door/window/right/directional/east{
- name = "Pharmacy Desk";
- req_access = list("pharmacy")
- },
-/obj/item/folder/white{
- pixel_x = -5
- },
-/obj/item/pen{
- pixel_x = -5
- },
-/obj/structure/desk_bell{
- pixel_x = 7
- },
-/obj/effect/turf_decal/tile/yellow/fourcorners,
-/obj/machinery/door/poddoor/shutters/preopen{
- id = "pharmacy_shutters";
- name = "Pharmacy Shutters";
- dir = 4
- },
-/turf/open/floor/iron,
-/area/station/medical/pharmacy)
"frq" = (
/obj/machinery/door/firedoor,
/obj/machinery/door/airlock/hatch{
@@ -17895,6 +17897,28 @@
/obj/item/storage/box/prisoner,
/turf/open/floor/iron/showroomfloor,
/area/station/security/processing)
+"ftB" = (
+/obj/machinery/camera{
+ c_tag = "Medbay Pharmacy";
+ dir = 9;
+ network = list("ss13","medbay")
+ },
+/obj/effect/turf_decal/tile/yellow/half/contrasted{
+ dir = 1
+ },
+/obj/machinery/shower/directional/south,
+/obj/structure/railing{
+ dir = 4
+ },
+/obj/structure/fluff{
+ desc = "What, you think the water just magically soaks into the metallic flooring?";
+ icon = 'icons/obj/mining_zones/survival_pod.dmi';
+ icon_state = "fan_tiny";
+ name = "shower drain"
+ },
+/obj/effect/turf_decal/stripes/white/end,
+/turf/open/floor/iron/white,
+/area/station/medical/pharmacy)
"ftJ" = (
/obj/structure/table/reinforced,
/obj/machinery/door/poddoor/shutters/preopen{
@@ -22230,6 +22254,25 @@
/obj/item/reagent_containers/dropper,
/turf/open/floor/iron/cafeteria,
/area/station/science/lab)
+"gNA" = (
+/obj/structure/table/reinforced,
+/obj/item/folder/white,
+/obj/item/pen,
+/obj/machinery/door/firedoor,
+/obj/machinery/door/window/right/directional/east{
+ base_state = "left";
+ icon_state = "left";
+ name = "Pharmacy Desk";
+ req_access = list("pharmacy")
+ },
+/obj/effect/turf_decal/tile/yellow/fourcorners,
+/obj/machinery/door/poddoor/shutters/preopen{
+ id = "pharmacy_shutters2";
+ name = "Pharmacy Shutters";
+ dir = 4
+ },
+/turf/open/floor/iron,
+/area/station/medical/pharmacy)
"gNH" = (
/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{
dir = 8
@@ -33557,6 +33600,15 @@
/obj/structure/cable,
/turf/open/floor/plating,
/area/station/ai_monitored/turret_protected/aisat/maint)
+"kpb" = (
+/obj/machinery/disposal/bin,
+/obj/structure/disposalpipe/trunk,
+/obj/effect/turf_decal/tile/yellow/half/contrasted{
+ dir = 1
+ },
+/obj/machinery/firealarm/directional/north,
+/turf/open/floor/iron/white,
+/area/station/medical/pharmacy)
"kpf" = (
/obj/effect/turf_decal/tile/neutral/diagonal_edge,
/obj/machinery/oven/range,
@@ -35227,6 +35279,16 @@
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
/turf/open/floor/iron/dark,
/area/station/medical/cryo)
+"kNg" = (
+/obj/machinery/smartfridge/chemistry/preloaded,
+/obj/machinery/door/firedoor,
+/obj/machinery/door/poddoor/shutters/preopen{
+ id = "pharmacy_shutters";
+ name = "Pharmacy Shutters";
+ dir = 4
+ },
+/turf/open/floor/iron/white,
+/area/station/medical/pharmacy)
"kNi" = (
/obj/structure/cable,
/obj/structure/disposalpipe/segment{
@@ -42524,16 +42586,6 @@
/obj/effect/landmark/event_spawn,
/turf/open/floor/iron/dark/textured_large,
/area/station/security/evidence)
-"ncY" = (
-/obj/machinery/smartfridge/chemistry/preloaded,
-/obj/machinery/door/firedoor,
-/obj/machinery/door/poddoor/shutters/preopen{
- id = "pharmacy_shutters";
- name = "Pharmacy Shutters";
- dir = 4
- },
-/turf/open/floor/iron/white,
-/area/station/medical/pharmacy)
"ndb" = (
/obj/structure/window/reinforced/spawner/directional/south,
/obj/machinery/computer/atmos_control/ordnancemix{
@@ -42997,6 +43049,14 @@
/obj/effect/spawner/random/trash/mess,
/turf/open/floor/plating,
/area/station/maintenance/department/medical/morgue)
+"njP" = (
+/obj/machinery/chem_mass_spec,
+/obj/effect/turf_decal/tile/yellow/anticorner/contrasted{
+ dir = 8
+ },
+/obj/structure/sign/warning/no_smoking/directional/west,
+/turf/open/floor/iron/white,
+/area/station/medical/pharmacy)
"njT" = (
/obj/effect/turf_decal/stripes/line{
dir = 6
@@ -44945,15 +45005,6 @@
/obj/effect/landmark/start/hangover,
/turf/open/floor/iron,
/area/station/cargo/lobby)
-"nKs" = (
-/obj/effect/spawner/structure/window/reinforced,
-/obj/machinery/door/poddoor/shutters/preopen{
- id = "pharmacy_shutters";
- name = "Pharmacy Shutters";
- dir = 4
- },
-/turf/open/floor/plating,
-/area/station/medical/pharmacy)
"nKG" = (
/obj/machinery/door/firedoor,
/obj/machinery/door/airlock/public/glass{
@@ -45957,15 +46008,6 @@
},
/turf/open/floor/iron/white,
/area/station/science/xenobiology)
-"ocF" = (
-/obj/machinery/disposal/bin,
-/obj/structure/disposalpipe/trunk,
-/obj/effect/turf_decal/tile/yellow/half/contrasted{
- dir = 1
- },
-/obj/machinery/firealarm/directional/north,
-/turf/open/floor/iron/white,
-/area/station/medical/pharmacy)
"ocY" = (
/obj/effect/turf_decal/stripes/line,
/obj/effect/spawner/random/engineering/tracking_beacon,
@@ -52565,16 +52607,6 @@
/obj/effect/turf_decal/stripes/box,
/turf/open/floor/plating,
/area/station/commons/storage/mining)
-"qan" = (
-/obj/machinery/smartfridge/chemistry/preloaded,
-/obj/machinery/door/firedoor,
-/obj/machinery/door/poddoor/shutters/preopen{
- id = "pharmacy_shutters2";
- name = "Pharmacy Shutters";
- dir = 4
- },
-/turf/open/floor/iron/white,
-/area/station/medical/pharmacy)
"qau" = (
/obj/structure/fence{
dir = 4
@@ -55795,6 +55827,14 @@
/obj/effect/turf_decal/tile/bar/opposingcorners,
/turf/open/floor/iron,
/area/station/service/bar)
+"qYp" = (
+/obj/machinery/chem_dispenser,
+/obj/structure/window/reinforced/spawner/directional/west,
+/obj/machinery/light/directional/north,
+/obj/effect/turf_decal/tile/yellow/full,
+/obj/item/radio/intercom/directional/north,
+/turf/open/floor/iron/white/smooth_large,
+/area/station/medical/pharmacy)
"qYw" = (
/obj/effect/turf_decal/stripes/line{
dir = 8
@@ -58890,25 +58930,6 @@
/obj/structure/cable,
/turf/open/floor/carpet,
/area/station/command/heads_quarters/captain)
-"rXq" = (
-/obj/structure/table/reinforced,
-/obj/item/folder/white,
-/obj/item/pen,
-/obj/machinery/door/firedoor,
-/obj/machinery/door/window/right/directional/east{
- base_state = "left";
- icon_state = "left";
- name = "Pharmacy Desk";
- req_access = list("pharmacy")
- },
-/obj/effect/turf_decal/tile/yellow/fourcorners,
-/obj/machinery/door/poddoor/shutters/preopen{
- id = "pharmacy_shutters2";
- name = "Pharmacy Shutters";
- dir = 4
- },
-/turf/open/floor/iron,
-/area/station/medical/pharmacy)
"rXr" = (
/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{
dir = 4
@@ -62124,14 +62145,6 @@
/obj/machinery/light_switch/directional/north,
/turf/open/floor/iron/freezer,
/area/station/commons/toilet/locker)
-"sVt" = (
-/obj/machinery/chem_dispenser,
-/obj/structure/window/reinforced/spawner/directional/west,
-/obj/machinery/light/directional/north,
-/obj/effect/turf_decal/tile/yellow/full,
-/obj/item/radio/intercom/directional/north,
-/turf/open/floor/iron/white/smooth_large,
-/area/station/medical/pharmacy)
"sVL" = (
/obj/machinery/holopad,
/obj/effect/turf_decal/bot,
@@ -68236,12 +68249,6 @@
},
/turf/open/floor/iron,
/area/station/hallway/primary/starboard)
-"uXn" = (
-/obj/effect/turf_decal/tile/blue,
-/obj/machinery/light/directional/south,
-/obj/structure/extinguisher_cabinet/directional/south,
-/turf/open/floor/iron,
-/area/station/hallway/primary/starboard)
"uXu" = (
/obj/machinery/power/terminal{
dir = 4
@@ -74095,14 +74102,6 @@
"wNO" = (
/turf/open/genturf,
/area/icemoon/surface/outdoors/unexplored/rivers/no_monsters)
-"wNP" = (
-/obj/structure/table/glass,
-/obj/machinery/microwave,
-/obj/effect/turf_decal/tile/brown/anticorner/contrasted{
- dir = 4
- },
-/turf/open/floor/iron/white,
-/area/station/medical/break_room)
"wNQ" = (
/obj/effect/turf_decal/siding/wood{
dir = 1
@@ -74761,6 +74760,15 @@
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/turf/open/floor/plating,
/area/station/maintenance/port/aft)
+"wWn" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/machinery/door/poddoor/shutters/preopen{
+ id = "pharmacy_shutters";
+ name = "Pharmacy Shutters";
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/station/medical/pharmacy)
"wWJ" = (
/turf/open/floor/iron/dark,
/area/station/medical/morgue)
@@ -77197,14 +77205,6 @@
},
/turf/open/floor/iron/white,
/area/station/medical/medbay/lobby)
-"xGo" = (
-/obj/machinery/chem_mass_spec,
-/obj/effect/turf_decal/tile/yellow/anticorner/contrasted{
- dir = 8
- },
-/obj/structure/sign/warning/no_smoking/directional/west,
-/turf/open/floor/iron/white,
-/area/station/medical/pharmacy)
"xGp" = (
/obj/structure/table/reinforced,
/obj/machinery/door/window/left/directional/north{
@@ -243858,7 +243858,7 @@ bai
azw
jqE
kZb
-xGo
+njP
azw
fMg
fqW
@@ -244627,7 +244627,7 @@ lso
dEV
bai
azw
-dyR
+fdO
fTC
xSu
azw
@@ -244882,9 +244882,9 @@ exw
exw
cwh
dEV
-uXn
+arO
azw
-aZO
+ftB
eyc
qPt
uTc
@@ -245402,8 +245402,8 @@ cJw
dip
bHO
azw
-rXq
-qan
+gNA
+fib
azw
eiY
tZm
@@ -245655,7 +245655,7 @@ vwO
hHg
bai
azw
-ocF
+kpb
uTk
sJA
sHc
@@ -245912,7 +245912,7 @@ lso
aAa
bai
azw
-sVt
+qYp
vYH
nah
azw
@@ -246426,9 +246426,9 @@ mqq
kjK
bai
azw
-nKs
-frp
-ncY
+wWn
+dff
+kNg
azw
gIY
iBj
@@ -251337,7 +251337,7 @@ xMM
nqd
ttO
mFE
-wNP
+aaf
pWY
rQI
phj
diff --git a/_maps/map_files/MetaStation/MetaStation.dmm b/_maps/map_files/MetaStation/MetaStation.dmm
index e1e8584540d..18fb519e73d 100644
--- a/_maps/map_files/MetaStation/MetaStation.dmm
+++ b/_maps/map_files/MetaStation/MetaStation.dmm
@@ -261,6 +261,16 @@
name = "Holodeck Projector Floor"
},
/area/station/holodeck/rec_center)
+"afF" = (
+/obj/structure/table/reinforced,
+/obj/machinery/microwave/engineering/cell_included,
+/obj/effect/turf_decal/stripes/corner,
+/obj/effect/turf_decal/tile/yellow{
+ dir = 8
+ },
+/obj/machinery/light/small/directional/west,
+/turf/open/floor/iron/checker,
+/area/station/engineering/storage_shared)
"afZ" = (
/obj/machinery/vending/coffee,
/obj/structure/disposalpipe/segment,
@@ -6253,6 +6263,30 @@
/obj/effect/decal/cleanable/blood/old,
/turf/open/floor/wood,
/area/station/maintenance/port/aft)
+"cph" = (
+/obj/structure/table/reinforced,
+/obj/item/folder/white{
+ pixel_x = 4;
+ pixel_y = -3
+ },
+/obj/machinery/door/firedoor,
+/obj/item/folder/white{
+ pixel_x = 4;
+ pixel_y = -3
+ },
+/obj/item/pen,
+/obj/machinery/door/poddoor/shutters/preopen{
+ dir = 4;
+ id = "pharmacy_shutters_2";
+ name = "Pharmacy Shutters"
+ },
+/obj/machinery/door/window/right/directional/east{
+ name = "Pharmacy Desk";
+ req_access = list("pharmacy")
+ },
+/obj/effect/turf_decal/tile/yellow/fourcorners,
+/turf/open/floor/iron/white,
+/area/station/medical/pharmacy)
"cpi" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
/turf/open/floor/circuit/green{
@@ -15542,6 +15576,15 @@
/obj/effect/mapping_helpers/airlock/access/all/medical/general,
/turf/open/floor/plating,
/area/station/maintenance/port/aft)
+"fLn" = (
+/obj/effect/spawner/random/decoration/microwave{
+ dir = 1;
+ pixel_y = 2
+ },
+/obj/structure/table/wood,
+/obj/machinery/light/small/directional/south,
+/turf/open/floor/carpet,
+/area/station/command/corporate_showroom)
"fLp" = (
/obj/structure/disposalpipe/junction{
dir = 8
@@ -18538,32 +18581,6 @@
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/turf/open/floor/iron/dark,
/area/station/engineering/atmospherics_engine)
-"gSG" = (
-/obj/structure/table/reinforced,
-/obj/item/folder/white{
- pixel_x = 4;
- pixel_y = -3
- },
-/obj/machinery/door/firedoor,
-/obj/item/folder/white{
- pixel_x = 4;
- pixel_y = -3
- },
-/obj/machinery/door/poddoor/shutters/preopen{
- dir = 1;
- id = "pharmacy_shutters";
- name = "Pharmacy Shutters"
- },
-/obj/structure/desk_bell{
- pixel_x = -8
- },
-/obj/machinery/door/window/left/directional/north{
- name = "Pharmacy Desk";
- req_access = list("pharmacy")
- },
-/obj/effect/turf_decal/tile/yellow/fourcorners,
-/turf/open/floor/iron/white,
-/area/station/medical/pharmacy)
"gSH" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/general/hidden,
/obj/machinery/rnd/server/master,
@@ -26983,15 +27000,6 @@
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
/turf/open/floor/iron,
/area/station/security/execution/transfer)
-"jJu" = (
-/obj/structure/showcase/machinery/microwave{
- dir = 1;
- pixel_y = 2
- },
-/obj/structure/table/wood,
-/obj/machinery/light/small/directional/south,
-/turf/open/floor/carpet,
-/area/station/command/corporate_showroom)
"jJC" = (
/obj/structure/disposalpipe/segment,
/obj/structure/lattice/catwalk,
@@ -29646,17 +29654,6 @@
},
/turf/open/floor/iron/dark,
/area/station/command/bridge)
-"kGg" = (
-/obj/structure/table/reinforced,
-/obj/machinery/microwave{
- pixel_y = 6
- },
-/obj/effect/turf_decal/tile/neutral/opposingcorners{
- dir = 1
- },
-/obj/machinery/digital_clock/directional/south,
-/turf/open/floor/iron/dark,
-/area/station/medical/break_room)
"kGq" = (
/obj/machinery/light/directional/south,
/obj/structure/disposalpipe/segment{
@@ -40420,30 +40417,6 @@
},
/turf/open/floor/iron,
/area/station/hallway/secondary/entry)
-"oxH" = (
-/obj/structure/table/reinforced,
-/obj/item/folder/white{
- pixel_x = 4;
- pixel_y = -3
- },
-/obj/machinery/door/firedoor,
-/obj/item/folder/white{
- pixel_x = 4;
- pixel_y = -3
- },
-/obj/item/pen,
-/obj/machinery/door/poddoor/shutters/preopen{
- dir = 4;
- id = "pharmacy_shutters_2";
- name = "Pharmacy Shutters"
- },
-/obj/machinery/door/window/right/directional/east{
- name = "Pharmacy Desk";
- req_access = list("pharmacy")
- },
-/obj/effect/turf_decal/tile/yellow/fourcorners,
-/turf/open/floor/iron/white,
-/area/station/medical/pharmacy)
"oxR" = (
/obj/structure/table,
/obj/item/pipe_dispenser{
@@ -41529,6 +41502,32 @@
},
/turf/open/floor/iron,
/area/station/engineering/atmos)
+"oTp" = (
+/obj/structure/table/reinforced,
+/obj/item/folder/white{
+ pixel_x = 4;
+ pixel_y = -3
+ },
+/obj/machinery/door/firedoor,
+/obj/item/folder/white{
+ pixel_x = 4;
+ pixel_y = -3
+ },
+/obj/machinery/door/poddoor/shutters/preopen{
+ dir = 1;
+ id = "pharmacy_shutters";
+ name = "Pharmacy Shutters"
+ },
+/obj/structure/desk_bell{
+ pixel_x = -8
+ },
+/obj/machinery/door/window/left/directional/north{
+ name = "Pharmacy Desk";
+ req_access = list("pharmacy")
+ },
+/obj/effect/turf_decal/tile/yellow/fourcorners,
+/turf/open/floor/iron/white,
+/area/station/medical/pharmacy)
"oTD" = (
/obj/structure/frame/computer,
/turf/open/floor/plating/airless,
@@ -62570,18 +62569,6 @@
/obj/effect/landmark/start/hangover/closet,
/turf/open/floor/iron,
/area/station/hallway/secondary/entry)
-"wiK" = (
-/obj/structure/table/reinforced,
-/obj/machinery/microwave{
- pixel_y = 6
- },
-/obj/effect/turf_decal/stripes/corner,
-/obj/effect/turf_decal/tile/yellow{
- dir = 8
- },
-/obj/machinery/light/small/directional/west,
-/turf/open/floor/iron/checker,
-/area/station/engineering/storage_shared)
"wiS" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/obj/structure/cable,
@@ -66861,6 +66848,15 @@
},
/turf/open/floor/iron,
/area/station/construction/mining/aux_base)
+"xMk" = (
+/obj/structure/table/reinforced,
+/obj/machinery/microwave/engineering/cell_included,
+/obj/effect/turf_decal/tile/neutral/opposingcorners{
+ dir = 1
+ },
+/obj/machinery/digital_clock/directional/south,
+/turf/open/floor/iron/dark,
+/area/station/medical/break_room)
"xMl" = (
/obj/machinery/navbeacon{
codes_txt = "patrol;next_patrol=15-Court";
@@ -89300,7 +89296,7 @@ nGr
aST
tBs
vRN
-kGg
+xMk
rOF
ryf
vnV
@@ -94671,7 +94667,7 @@ bKB
eAL
xQY
kcF
-gSG
+oTp
oar
keK
lXA
@@ -94935,7 +94931,7 @@ hYA
jsh
rvE
tZJ
-oxH
+cph
tZJ
eIO
wKC
@@ -95174,7 +95170,7 @@ jzN
sUy
dkL
uOd
-jJu
+fLn
jzN
qyI
qaP
@@ -110056,7 +110052,7 @@ qjl
wlx
qPT
jRb
-wiK
+afF
qsv
sKD
lUz
diff --git a/_maps/map_files/NorthStar/north_star.dmm b/_maps/map_files/NorthStar/north_star.dmm
index 996c2c57eef..b43c9c7acfc 100644
--- a/_maps/map_files/NorthStar/north_star.dmm
+++ b/_maps/map_files/NorthStar/north_star.dmm
@@ -27647,7 +27647,7 @@
/turf/open/floor/iron/white,
/area/station/science/ordnance/testlab)
"hnH" = (
-/obj/machinery/microwave,
+/obj/machinery/microwave/engineering/cell_included,
/obj/structure/table/reinforced/rglass,
/obj/effect/turf_decal/tile/blue/fourcorners,
/turf/open/floor/iron/white/textured,
diff --git a/_maps/map_files/VoidRaptor/VoidRaptor.dmm b/_maps/map_files/VoidRaptor/VoidRaptor.dmm
index a7e3c6d39a6..eedc9a22ce0 100644
--- a/_maps/map_files/VoidRaptor/VoidRaptor.dmm
+++ b/_maps/map_files/VoidRaptor/VoidRaptor.dmm
@@ -21299,17 +21299,10 @@
/area/station/command/heads_quarters/rd)
"gjk" = (
/obj/structure/table/reinforced,
-/obj/item/storage/medkit/fire{
- pixel_x = -2;
- pixel_y = 4
- },
-/obj/item/radio/off{
- pixel_x = 6;
- pixel_y = 6
- },
/obj/effect/turf_decal/trimline/yellow/filled/warning{
dir = 10
},
+/obj/machinery/microwave/engineering/cell_included,
/turf/open/floor/iron/smooth,
/area/station/engineering/lobby)
"gjl" = (
@@ -22007,11 +22000,7 @@
},
/obj/structure/table,
/obj/machinery/status_display/evac/directional/west,
-/obj/machinery/microwave{
- desc = "Cooks and boils stuff, somehow.";
- pixel_x = -2;
- pixel_y = 5
- },
+/obj/machinery/microwave/engineering/cell_included,
/turf/open/floor/iron/dark,
/area/station/medical/break_room)
"gtq" = (
@@ -76670,11 +76659,6 @@
dir = 6
},
/obj/structure/table/reinforced,
-/obj/machinery/microwave{
- desc = "Cooks and boils stuff, somehow.";
- pixel_x = -2;
- pixel_y = 5
- },
/obj/machinery/requests_console/directional/south{
department = "Engineering";
dir = 4;
@@ -76684,6 +76668,14 @@
},
/obj/effect/mapping_helpers/requests_console/supplies,
/obj/effect/mapping_helpers/requests_console/assistance,
+/obj/item/storage/medkit/fire{
+ pixel_x = -2;
+ pixel_y = 4
+ },
+/obj/item/radio/off{
+ pixel_x = 6;
+ pixel_y = 6
+ },
/turf/open/floor/iron/smooth,
/area/station/engineering/lobby)
"vlS" = (
diff --git a/_maps/map_files/tramstation/tramstation.dmm b/_maps/map_files/tramstation/tramstation.dmm
index 37536770b20..9bfe7ed759e 100644
--- a/_maps/map_files/tramstation/tramstation.dmm
+++ b/_maps/map_files/tramstation/tramstation.dmm
@@ -3664,16 +3664,6 @@
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/turf/open/floor/iron/dark,
/area/station/security/interrogation)
-"avM" = (
-/obj/structure/table/reinforced,
-/obj/machinery/microwave{
- pixel_y = 6
- },
-/obj/effect/turf_decal/tile/neutral/opposingcorners{
- dir = 1
- },
-/turf/open/floor/iron/dark,
-/area/station/medical/break_room)
"avP" = (
/obj/effect/turf_decal/trimline/red/filled/line{
dir = 9
@@ -10454,15 +10444,6 @@
},
/turf/open/floor/plating,
/area/station/science/xenobiology)
-"cze" = (
-/obj/effect/spawner/structure/window/reinforced,
-/obj/machinery/door/poddoor/shutters/preopen{
- id = "pharmacy_shutters_2";
- name = "Pharmacy Shutters";
- dir = 4
- },
-/turf/open/floor/plating,
-/area/station/medical/pharmacy)
"czg" = (
/obj/effect/turf_decal/siding/wood{
dir = 1
@@ -13785,24 +13766,6 @@
},
/turf/open/openspace,
/area/station/hallway/primary/tram/left)
-"dII" = (
-/obj/structure/table/reinforced,
-/obj/structure/desk_bell{
- pixel_x = -7
- },
-/obj/machinery/door/poddoor/shutters/preopen{
- id = "pharmacy_shutters_2";
- name = "Pharmacy Shutters";
- dir = 4
- },
-/obj/machinery/door/firedoor,
-/obj/machinery/door/window/left/directional/south{
- dir = 4;
- name = "Chemistry Desk";
- req_access = list("pharmacy")
- },
-/turf/open/floor/iron/white,
-/area/station/medical/pharmacy)
"dIK" = (
/turf/closed/wall/r_wall,
/area/station/science/ordnance/freezerchamber)
@@ -26814,6 +26777,15 @@
/obj/effect/landmark/start/hangover,
/turf/open/floor/iron,
/area/station/commons/fitness/recreation)
+"iHQ" = (
+/obj/machinery/smartfridge/chemistry/preloaded,
+/obj/machinery/door/poddoor/shutters/preopen{
+ id = "pharmacy_shutters_2";
+ name = "Pharmacy Shutters"
+ },
+/obj/machinery/door/firedoor,
+/turf/open/floor/iron/white,
+/area/station/medical/pharmacy)
"iHT" = (
/obj/effect/turf_decal/trimline/neutral/filled/corner,
/obj/structure/disposalpipe/segment,
@@ -35162,15 +35134,6 @@
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
/turf/open/floor/iron/white,
/area/station/medical/treatment_center)
-"lxJ" = (
-/obj/machinery/smartfridge/chemistry/preloaded,
-/obj/machinery/door/poddoor/shutters/preopen{
- id = "pharmacy_shutters_2";
- name = "Pharmacy Shutters"
- },
-/obj/machinery/door/firedoor,
-/turf/open/floor/iron/white,
-/area/station/medical/pharmacy)
"lxW" = (
/obj/effect/turf_decal/trimline/purple/filled/line,
/obj/machinery/firealarm/directional/south,
@@ -42300,17 +42263,6 @@
/obj/structure/cable,
/turf/open/floor/iron,
/area/station/hallway/secondary/command)
-"nYJ" = (
-/obj/effect/turf_decal/trimline/yellow/filled/line{
- dir = 9
- },
-/obj/machinery/power/apc/auto_name/directional/north,
-/obj/structure/table/glass,
-/obj/machinery/microwave,
-/obj/structure/cable,
-/obj/machinery/light/warm/directional/west,
-/turf/open/floor/iron,
-/area/station/engineering/break_room)
"nYL" = (
/obj/machinery/atmospherics/pipe/heat_exchanging/simple/layer2{
dir = 8
@@ -42349,6 +42301,21 @@
},
/turf/open/floor/iron,
/area/station/cargo/miningdock)
+"nZy" = (
+/obj/effect/turf_decal/trimline/yellow/filled/line{
+ dir = 8
+ },
+/obj/machinery/firealarm/directional/west,
+/obj/structure/table/glass,
+/obj/structure/disposalpipe/segment{
+ dir = 6
+ },
+/obj/item/storage/box/donkpockets/donkpocketberry{
+ pixel_y = 10;
+ pixel_x = -6
+ },
+/turf/open/floor/iron,
+/area/station/engineering/break_room)
"nZL" = (
/obj/effect/turf_decal/siding/thinplating/dark{
dir = 1
@@ -43375,17 +43342,6 @@
},
/turf/open/floor/iron/white,
/area/station/science/lower)
-"otF" = (
-/obj/effect/turf_decal/trimline/yellow/filled/line{
- dir = 8
- },
-/obj/machinery/firealarm/directional/west,
-/obj/structure/table/glass,
-/obj/structure/disposalpipe/segment{
- dir = 6
- },
-/turf/open/floor/iron,
-/area/station/engineering/break_room)
"otP" = (
/obj/structure/railing/corner{
dir = 8
@@ -45402,6 +45358,16 @@
/obj/structure/disposalpipe/segment,
/turf/open/floor/iron,
/area/station/hallway/primary/tram/left)
+"plq" = (
+/obj/machinery/smartfridge/chemistry/preloaded,
+/obj/machinery/door/poddoor/shutters/preopen{
+ id = "pharmacy_shutters_2";
+ name = "Pharmacy Shutters";
+ dir = 4
+ },
+/obj/machinery/door/firedoor,
+/turf/open/floor/plating,
+/area/station/medical/pharmacy)
"plr" = (
/obj/machinery/door/airlock{
id_tag = "miningdorm3";
@@ -45531,6 +45497,24 @@
/obj/machinery/light/warm/directional/east,
/turf/open/floor/iron,
/area/station/engineering/break_room)
+"pmZ" = (
+/obj/structure/table/reinforced,
+/obj/structure/desk_bell{
+ pixel_x = -7
+ },
+/obj/machinery/door/poddoor/shutters/preopen{
+ id = "pharmacy_shutters_2";
+ name = "Pharmacy Shutters";
+ dir = 4
+ },
+/obj/machinery/door/firedoor,
+/obj/machinery/door/window/left/directional/south{
+ dir = 4;
+ name = "Chemistry Desk";
+ req_access = list("pharmacy")
+ },
+/turf/open/floor/iron/white,
+/area/station/medical/pharmacy)
"pne" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
/obj/structure/disposalpipe/segment{
@@ -48834,6 +48818,17 @@
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
/turf/open/floor/iron/freezer,
/area/station/commons/toilet)
+"qul" = (
+/obj/effect/turf_decal/trimline/yellow/filled/line{
+ dir = 9
+ },
+/obj/machinery/power/apc/auto_name/directional/north,
+/obj/structure/table/glass,
+/obj/machinery/microwave/engineering/cell_included,
+/obj/structure/cable,
+/obj/machinery/light/warm/directional/west,
+/turf/open/floor/iron,
+/area/station/engineering/break_room)
"qup" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
@@ -59248,6 +59243,15 @@
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
/turf/open/floor/iron/dark,
/area/station/security/interrogation)
+"udE" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/machinery/door/poddoor/shutters/preopen{
+ id = "pharmacy_shutters_2";
+ name = "Pharmacy Shutters";
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/station/medical/pharmacy)
"udO" = (
/obj/structure/chair/stool/bar/directional/south,
/obj/effect/turf_decal/trimline/red/filled/line{
@@ -60444,16 +60448,6 @@
/obj/machinery/light/directional/west,
/turf/open/floor/iron,
/area/station/cargo/drone_bay)
-"uwS" = (
-/obj/machinery/smartfridge/chemistry/preloaded,
-/obj/machinery/door/poddoor/shutters/preopen{
- id = "pharmacy_shutters_2";
- name = "Pharmacy Shutters";
- dir = 4
- },
-/obj/machinery/door/firedoor,
-/turf/open/floor/plating,
-/area/station/medical/pharmacy)
"uxj" = (
/obj/effect/turf_decal/trimline/yellow/filled/line{
dir = 1
@@ -67189,6 +67183,14 @@
"wQm" = (
/turf/open/floor/iron,
/area/station/engineering/atmos)
+"wQq" = (
+/obj/structure/table/reinforced,
+/obj/machinery/microwave/engineering/cell_included,
+/obj/effect/turf_decal/tile/neutral/opposingcorners{
+ dir = 1
+ },
+/turf/open/floor/iron/dark,
+/area/station/medical/break_room)
"wQr" = (
/obj/effect/turf_decal/weather/snow,
/obj/machinery/vending/wardrobe/chef_wardrobe,
@@ -102074,8 +102076,8 @@ akI
cJM
ulV
bbj
-nYJ
-otF
+qul
+nZy
ryJ
gzZ
cFP
@@ -165294,7 +165296,7 @@ dVj
wrT
xqO
suG
-lxJ
+iHQ
ryy
aKM
jaQ
@@ -166315,9 +166317,9 @@ cYi
uQT
sBr
jyH
-uwS
-dII
-cze
+plq
+pmZ
+udE
jyH
jyH
jyH
@@ -170198,7 +170200,7 @@ gVO
vXT
cyL
nen
-avM
+wQq
adM
oGJ
qaO
diff --git a/code/__DEFINES/wires.dm b/code/__DEFINES/wires.dm
index 6f618ac8240..2b4c528abc2 100644
--- a/code/__DEFINES/wires.dm
+++ b/code/__DEFINES/wires.dm
@@ -37,6 +37,7 @@
#define WIRE_LIMIT "Limiter"
#define WIRE_LOADCHECK "Load Check"
#define WIRE_LOCKDOWN "Lockdown"
+#define WIRE_MODE_SELECT "Mode Select"
#define WIRE_MOTOR1 "Motor 1"
#define WIRE_MOTOR2 "Motor 2"
#define WIRE_OPEN "Open"
diff --git a/code/datums/wires/microwave.dm b/code/datums/wires/microwave.dm
index abce90e8de5..e3efabac08c 100644
--- a/code/datums/wires/microwave.dm
+++ b/code/datums/wires/microwave.dm
@@ -4,7 +4,8 @@
/datum/wires/microwave/New(atom/holder)
wires = list(
- WIRE_ACTIVATE
+ WIRE_ACTIVATE,
+ WIRE_MODE_SELECT
)
..()
@@ -12,18 +13,23 @@
if(!..())
return FALSE
. = FALSE
- var/obj/machinery/microwave/M = holder
- if(M.panel_open)
+ var/obj/machinery/microwave/mw = holder
+ if(mw.panel_open)
. = TRUE
/datum/wires/microwave/on_pulse(wire)
- var/obj/machinery/microwave/M = holder
+ var/obj/machinery/microwave/mw = holder
switch(wire)
if(WIRE_ACTIVATE)
- M.cook()
+ mw.cook()
+ if(WIRE_MODE_SELECT)
+ if(mw.vampire_charging_capable)
+ mw.vampire_charging_enabled = !mw.vampire_charging_enabled
/datum/wires/microwave/on_cut(wire, mend, source)
- var/obj/machinery/microwave/M = holder
+ var/obj/machinery/microwave/mw = holder
switch(wire)
if(WIRE_ACTIVATE)
- M.wire_disabled = !mend
+ mw.wire_disabled = !mend
+ if(WIRE_MODE_SELECT)
+ mw.wire_mode_swap = !mend
diff --git a/code/game/objects/effects/spawners/random/decoration.dm b/code/game/objects/effects/spawners/random/decoration.dm
index 1beafc37df5..6116d228733 100644
--- a/code/game/objects/effects/spawners/random/decoration.dm
+++ b/code/game/objects/effects/spawners/random/decoration.dm
@@ -93,6 +93,14 @@
loot_type_path = /obj/structure/showcase
loot = list()
+/obj/effect/spawner/random/decoration/microwave
+ name = "microwave showcase spawner"
+ icon_state = "showcase"
+ loot = list(
+ /obj/structure/showcase/machinery/microwave,
+ /obj/structure/showcase/machinery/microwave_engineering,
+ )
+
/obj/effect/spawner/random/decoration/glowstick
name = "random colored glowstick"
icon_state = "glowstick"
diff --git a/code/game/objects/effects/spawners/random/techstorage.dm b/code/game/objects/effects/spawners/random/techstorage.dm
index c1f93040396..4bfdeec27d1 100644
--- a/code/game/objects/effects/spawners/random/techstorage.dm
+++ b/code/game/objects/effects/spawners/random/techstorage.dm
@@ -34,6 +34,7 @@
/obj/item/circuitboard/machine/ore_redemption,
/obj/item/circuitboard/computer/order_console/mining,
/obj/item/circuitboard/machine/microwave,
+ /obj/item/circuitboard/machine/microwave/engineering,
/obj/item/circuitboard/machine/deep_fryer,
/obj/item/circuitboard/machine/griddle,
/obj/item/circuitboard/machine/reagentgrinder,
diff --git a/code/game/objects/items/circuitboards/machines/machine_circuitboards.dm b/code/game/objects/items/circuitboards/machines/machine_circuitboards.dm
index 917589d8dfb..f41cb62c9de 100644
--- a/code/game/objects/items/circuitboards/machines/machine_circuitboards.dm
+++ b/code/game/objects/items/circuitboards/machines/machine_circuitboards.dm
@@ -1251,10 +1251,22 @@
req_components = list(
/datum/stock_part/micro_laser = 1,
/datum/stock_part/matter_bin = 1,
+ /datum/stock_part/capacitor = 1,
/obj/item/stack/cable_coil = 2,
/obj/item/stack/sheet/glass = 2)
needs_anchored = FALSE
+/obj/item/circuitboard/machine/microwave/engineering
+ name = "Wireless Microwave Oven"
+ greyscale_colors = CIRCUIT_COLOR_SERVICE
+ build_path = /obj/machinery/microwave/engineering
+ req_components = list(
+ /datum/stock_part/micro_laser = 1,
+ /datum/stock_part/matter_bin = 1,
+ /datum/stock_part/capacitor/tier2 = 1,
+ /obj/item/stack/cable_coil = 4,
+ /obj/item/stack/sheet/glass = 2)
+
/obj/item/circuitboard/machine/processor
name = "Food Processor"
greyscale_colors = CIRCUIT_COLOR_SERVICE
diff --git a/code/game/objects/items/rcd/RCD.dm b/code/game/objects/items/rcd/RCD.dm
index 27c04aa7479..33994c91774 100644
--- a/code/game/objects/items/rcd/RCD.dm
+++ b/code/game/objects/items/rcd/RCD.dm
@@ -76,6 +76,7 @@
list(FURNISH_TYPE = /obj/structure/table/glass, ICON = "glass_table", TITLE = "Glass Table"),
list(FURNISH_TYPE = /obj/structure/rack, ICON = "rack", TITLE = "Rack"),
list(FURNISH_TYPE = /obj/structure/bed, ICON = "bed", TITLE = "Bed"),
+ list(FURNISH_TYPE = /obj/machinery/microwave/engineering, ICON = "engi_mw_complete", TITLE = "Wireless Microwave"),
),
),
diff --git a/code/game/objects/structures/showcase.dm b/code/game/objects/structures/showcase.dm
index 91ccdaef80a..2349d9b0f49 100644
--- a/code/game/objects/structures/showcase.dm
+++ b/code/game/objects/structures/showcase.dm
@@ -84,7 +84,13 @@
name = "\improper Nanotrasen-brand microwave"
desc = "The famous Nanotrasen-brand microwave, the multi-purpose cooking appliance every station needs! This one appears to be drawn onto a cardboard box."
icon = 'icons/obj/machines/microwave.dmi'
- icon_state = "map_icon"
+ icon_state = "mw_complete"
+
+/obj/structure/showcase/machinery/microwave_engineering
+ name = "\improper Nanotrasen Wave(tm) microwave"
+ desc = "Just when everyone thought Nanotrasen couldn't improve on their famous microwave, this 2563 model features Wave™! A Nanotrasen exclusive, Wave™ allows your PDA to be charged wirelessly through microwave frequencies. Because nothing says 'future' like charging your PDA while overcooking your leftovers. Nanotrasen Wave™ - Multitasking, redefined."
+ icon = 'icons/obj/machines/microwave.dmi'
+ icon_state = "engi_mw_complete"
/obj/structure/showcase/machinery/cloning_pod
name = "cloning pod exhibit"
diff --git a/code/game/turfs/open/floor.dm b/code/game/turfs/open/floor.dm
index a0d1a191bc6..8c80b35bb3d 100644
--- a/code/game/turfs/open/floor.dm
+++ b/code/game/turfs/open/floor.dm
@@ -264,6 +264,9 @@
else if(the_rcd.furnish_type == /obj/structure/bed)
cost = 8
delay = 1.5 SECONDS
+ else if(the_rcd.furnish_type == /obj/machinery/microwave/engineering)
+ cost = 48
+ delay = 4 SECONDS
if(cost == 0)
return FALSE
return list("mode" = RCD_FURNISHING, "delay" = cost, "cost" = delay)
@@ -380,6 +383,11 @@
return FALSE
var/atom/new_furnish = new the_rcd.furnish_type(src)
new_furnish.setDir(user.dir)
+ if(istype(new_furnish, /obj/machinery/microwave/engineering))
+ var/obj/machinery/microwave/engineering/new_mw = new_furnish
+ var/obj/item/stock_parts/cell/new_cell = new()
+ new_mw.cell = new_cell
+ new_mw.update_appearance()
return TRUE
return FALSE
diff --git a/code/modules/asset_cache/assets/rcd.dm b/code/modules/asset_cache/assets/rcd.dm
index e4c54929dae..c57d7881d13 100644
--- a/code/modules/asset_cache/assets/rcd.dm
+++ b/code/modules/asset_cache/assets/rcd.dm
@@ -14,6 +14,7 @@
'icons/obj/smooth_structures/catwalk.dmi' = list("catwalk-0"),
'icons/hud/radial.dmi' = list("cnorth", "csouth", "ceast", "cwest", "chair", "secure_windoor", "stool", "wallfloor", "windowsize", "windowtype", "windoor"),
'icons/obj/structures.dmi' = list("glass_table", "rack", "rwindow0", "reflector_base", "table", "window0", "girder"),
+ 'icons/obj/machines/microwave.dmi' = list("engi_mw_complete"),
)
var/icon/icon
diff --git a/code/modules/food_and_drinks/machinery/microwave.dm b/code/modules/food_and_drinks/machinery/microwave.dm
index 36d98c907a5..d52e2213a5b 100644
--- a/code/modules/food_and_drinks/machinery/microwave.dm
+++ b/code/modules/food_and_drinks/machinery/microwave.dm
@@ -14,11 +14,15 @@
/// The max amount of dirtiness a microwave can be
#define MAX_MICROWAVE_DIRTINESS 100
-/obj/machinery/microwave//SKYRAT EDIT - ICON OVERRIDEN BY AESTHETICS - SEE MODULE
+/// For the wireless version, and display fluff
+#define TIER_1_CELL_CHARGE_RATE 250
+
+/obj/machinery/microwave
name = "microwave oven"
desc = "Cooks and boils stuff."
icon = 'icons/obj/machines/microwave.dmi'
- icon_state = "map_icon"
+ base_icon_state = ""
+ icon_state = "mw_complete"
appearance_flags = KEEP_TOGETHER | LONG_GLIDE | PIXEL_SCALE
layer = BELOW_OBJ_LAYER
density = TRUE
@@ -27,30 +31,63 @@
light_color = LIGHT_COLOR_DIM_YELLOW
light_power = 3
anchored_tabletop_offset = 6
- var/wire_disabled = FALSE // is its internal wire cut?
+ /// Is its function wire cut?
+ var/wire_disabled = FALSE
+ /// Wire cut to run mode backwards
+ var/wire_mode_swap = FALSE
var/operating = FALSE
/// How dirty is it?
var/dirty = 0
var/dirty_anim_playing = FALSE
/// How broken is it? NOT_BROKEN, KINDA_BROKEN, REALLY_BROKEN
var/broken = NOT_BROKEN
+ /// Microwave door position
var/open = FALSE
+ /// Microwave max capacity
var/max_n_of_items = 10
+ /// Microwave efficiency (power) based on the stock components
var/efficiency = 0
+ /// If we use a cell instead of powernet
+ var/cell_powered = FALSE
+ /// The cell we charge with
+ var/obj/item/stock_parts/cell/cell
+ /// The cell we're charging
+ var/obj/item/stock_parts/cell/vampire_cell
+ /// Capable of vampire charging PDAs
+ var/vampire_charging_capable = FALSE
+ /// Charge contents of microwave instead of cook
+ var/vampire_charging_enabled = FALSE
var/datum/looping_sound/microwave/soundloop
- var/list/ingredients = list() // may only contain /atom/movables
-
+ /// May only contain /atom/movables
+ var/list/ingredients = list()
+ /// When this is the nth ingredient, whats its pixel_x?
+ var/list/ingredient_shifts_x = list(
+ -2,
+ 1,
+ -5,
+ 2,
+ -6,
+ 0,
+ -4,
+ )
+ /// When this is the nth ingredient, whats its pixel_y?
+ var/list/ingredient_shifts_y = list(
+ -4,
+ -2,
+ -3,
+ )
var/static/radial_examine = image(icon = 'icons/hud/radial.dmi', icon_state = "radial_examine")
var/static/radial_eject = image(icon = 'icons/hud/radial.dmi', icon_state = "radial_eject")
- var/static/radial_use = image(icon = 'icons/hud/radial.dmi', icon_state = "radial_use")
+ var/static/radial_cook = image(icon = 'icons/hud/radial.dmi', icon_state = "radial_cook")
+ var/static/radial_charge = image(icon = 'icons/hud/radial.dmi', icon_state = "radial_charge")
// we show the button even if the proc will not work
- var/static/list/radial_options = list("eject" = radial_eject, "use" = radial_use)
- var/static/list/ai_radial_options = list("eject" = radial_eject, "use" = radial_use, "examine" = radial_examine)
+ var/static/list/radial_options = list("eject" = radial_eject, "cook" = radial_cook, "charge" = radial_charge)
+ var/static/list/ai_radial_options = list("eject" = radial_eject, "cook" = radial_cook, "charge" = radial_charge, "examine" = radial_examine)
/obj/machinery/microwave/Initialize(mapload)
. = ..()
-
+ register_context()
set_wires(new /datum/wires/microwave(src))
create_reagents(100)
soundloop = new(src, FALSE)
@@ -66,7 +103,6 @@
itemized_ingredient.pixel_y = itemized_ingredient.base_pixel_y + rand(-5, 6)
return ..()
-
/obj/machinery/microwave/on_deconstruction()
eject()
return ..()
@@ -75,21 +111,70 @@
QDEL_LIST(ingredients)
QDEL_NULL(wires)
QDEL_NULL(soundloop)
+ if(!isnull(cell))
+ QDEL_NULL(cell)
return ..()
+/obj/machinery/microwave/add_context(atom/source, list/context, obj/item/held_item, mob/user)
+ . = ..()
+ if(cell_powered)
+ if(!isnull(cell))
+ context[SCREENTIP_CONTEXT_CTRL_LMB] = "Remove cell"
+ else if(held_item && istype(held_item, /obj/item/stock_parts/cell))
+ context[SCREENTIP_CONTEXT_CTRL_LMB] = "Insert cell"
+
+ if(!anchored && held_item?.tool_behaviour == TOOL_WRENCH)
+ context[SCREENTIP_CONTEXT_LMB] = "Install/Secure"
+ return CONTEXTUAL_SCREENTIP_SET
+
+ if(broken > NOT_BROKEN)
+ if(broken == REALLY_BROKEN && held_item?.tool_behaviour == TOOL_WIRECUTTER)
+ context[SCREENTIP_CONTEXT_LMB] = "Repair"
+ return CONTEXTUAL_SCREENTIP_SET
+
+ else if(broken == KINDA_BROKEN && held_item?.tool_behaviour == TOOL_WELDER)
+ context[SCREENTIP_CONTEXT_LMB] = "Repair"
+ return CONTEXTUAL_SCREENTIP_SET
+
+ context[SCREENTIP_CONTEXT_LMB] = "Show menu"
+
+ if(vampire_charging_capable)
+ context[SCREENTIP_CONTEXT_ALT_LMB] = "Change to [vampire_charging_enabled ? "cook" : "charge"]"
+
+ if(length(ingredients) != 0)
+ context[SCREENTIP_CONTEXT_RMB] = "Start [vampire_charging_enabled ? "charging" : "cooking"]"
+
+ return CONTEXTUAL_SCREENTIP_SET
+
/obj/machinery/microwave/RefreshParts()
. = ..()
efficiency = 0
+ vampire_charging_capable = FALSE
for(var/datum/stock_part/micro_laser/micro_laser in component_parts)
efficiency += micro_laser.tier
for(var/datum/stock_part/matter_bin/matter_bin in component_parts)
max_n_of_items = 10 * matter_bin.tier
break
+ for(var/datum/stock_part/capacitor/capacitor in component_parts)
+ if(capacitor.tier >= 2)
+ vampire_charging_capable = TRUE
+ visible_message(span_notice("The [EXAMINE_HINT("Charge Ready")] light on \the [src] flickers to life."))
+ break
/obj/machinery/microwave/examine(mob/user)
. = ..()
+ if(vampire_charging_capable)
+ . += span_info("This model features Wave™: a Nanotrasen exclusive. Our latest and greatest, Wave™ allows your PDA to be charged wirelessly through microwave frequencies! You can Wave-charge your device by placing it inside and selecting the charge mode.")
+ . += span_info("Because nothing says 'future' like charging your PDA while overcooking your leftovers. Nanotrasen Wave™ - Multitasking, redefined.")
+
+ if(cell_powered)
+ . += span_notice("This model is wireless, powered by portable cells. [isnull(cell) ? "The cell slot is empty." : "[EXAMINE_HINT("Ctrl-click")] to remove the power cell."]")
+
if(!operating)
- . += span_notice("Right-click [src] to turn it on.")
+ if(!operating && vampire_charging_capable)
+ . += span_notice("[EXAMINE_HINT("Alt-click")] to change default mode.")
+
+ . += span_notice("[EXAMINE_HINT("Right-click")] to start [vampire_charging_enabled ? "charging" : "cooking"] cycle.")
if(!in_range(user, src) && !issilicon(user) && !isobserver(user))
. += span_warning("You're too far away to examine [src]'s contents and display!")
@@ -106,46 +191,37 @@
var/list/items_counts = new
for(var/i in ingredients)
if(isstack(i))
- var/obj/item/stack/S = i
- items_counts[S.name] += S.amount
+ var/obj/item/stack/item_stack = i
+ items_counts[item_stack.name] += item_stack.amount
else
- var/atom/movable/AM = i
- items_counts[AM.name]++
- for(var/O in items_counts)
- . += span_notice("- [items_counts[O]]x [O].")
+ var/atom/movable/single_item = i
+ items_counts[single_item.name]++
+ for(var/item in items_counts)
+ . += span_notice("- [items_counts[item]]x [item].")
else
. += span_notice("\The [src] is empty.")
if(!(machine_stat & (NOPOWER|BROKEN)))
. += "[span_notice("The status display reads:")]\n"+\
+ "[span_notice("- Mode: [vampire_charging_enabled ? "Charge" : "Cook"].")]\n"+\
"[span_notice("- Capacity: [max_n_of_items] items.")]\n"+\
- span_notice("- Cook time reduced by [(efficiency - 1) * 25]%.")
+ span_notice("- Power: [efficiency * TIER_1_CELL_CHARGE_RATE]W.")
+
+ if(cell_powered)
+ . += span_notice("- Charge: [isnull(cell) ? "INSERT CELL" : "[round(cell.percent())]%"].")
#define MICROWAVE_INGREDIENT_OVERLAY_SIZE 24
/obj/machinery/microwave/update_overlays()
- // When this is the nth ingredient, whats its pixel_x?
- var/static/list/ingredient_shifts = list(
- // SKYRAT EDIT CHANGE START - All values offset by -3 from original
- -3,
- 0,
- -6,
- 1,
- -7,
- -1,
- -5,
- // SKYRAT EDIT CHANGE END
- )
-
. = ..()
// All of these will use a full icon state instead
- if (panel_open || dirty == MAX_MICROWAVE_DIRTINESS || broken || dirty_anim_playing)
+ if(panel_open || dirty == MAX_MICROWAVE_DIRTINESS || broken || dirty_anim_playing)
return .
var/ingredient_count = 0
- for (var/atom/movable/ingredient as anything in ingredients)
+ for(var/atom/movable/ingredient as anything in ingredients)
var/image/ingredient_overlay = image(ingredient, src)
var/list/icon_dimensions = get_icon_dimensions(ingredient.icon)
@@ -154,11 +230,11 @@
MICROWAVE_INGREDIENT_OVERLAY_SIZE / icon_dimensions["height"],
)
- ingredient_overlay.pixel_y = -4
+ ingredient_overlay.pixel_x = ingredient_shifts_x[(ingredient_count % ingredient_shifts_x.len) + 1]
+ ingredient_overlay.pixel_y = ingredient_shifts_y[(ingredient_count % ingredient_shifts_y.len) + 1]
ingredient_overlay.layer = FLOAT_LAYER
ingredient_overlay.plane = FLOAT_PLANE
ingredient_overlay.blend_mode = BLEND_INSET_OVERLAY
- ingredient_overlay.pixel_x = ingredient_shifts[(ingredient_count % ingredient_shifts.len) + 1]
ingredient_count += 1
@@ -167,46 +243,67 @@
var/border_icon_state
var/door_icon_state
- if (open)
- door_icon_state = "door_open"
- border_icon_state = "mwo"
- else if (operating)
- door_icon_state = "door_on"
- border_icon_state = "mw1"
+ if(open)
+ door_icon_state = "[base_icon_state]door_open"
+ border_icon_state = "[base_icon_state]mwo"
+ else if(operating)
+ if(vampire_charging_enabled)
+ door_icon_state = "[base_icon_state]door_charge"
+ else
+ door_icon_state = "[base_icon_state]door_on"
+ border_icon_state = "[base_icon_state]mw1"
else
- door_icon_state = "door_off"
- border_icon_state = "mw"
+ door_icon_state = "[base_icon_state]door_off"
+ border_icon_state = "[base_icon_state]mw"
+
. += mutable_appearance(
icon,
door_icon_state,
- alpha = ingredients.len > 0 ? 128 : 255,
)
. += border_icon_state
- if (!open)
- . += "door_handle"
+ if(!open)
+ . += "[base_icon_state]door_handle"
+
+ if(!(machine_stat & NOPOWER) || cell_powered)
+ . += emissive_appearance(icon, "emissive_[border_icon_state]", src, alpha = src.alpha)
+
+ if(cell_powered && !isnull(cell))
+ switch(cell.percent())
+ if(75 to 100)
+ . += mutable_appearance(icon, "[base_icon_state]cell_100")
+ . += emissive_appearance(icon, "[base_icon_state]cell_100", src, alpha = src.alpha)
+ if(50 to 75)
+ . += mutable_appearance(icon, "[base_icon_state]cell_75")
+ . += emissive_appearance(icon, "[base_icon_state]cell_75", src, alpha = src.alpha)
+ if(25 to 50)
+ . += mutable_appearance(icon, "[base_icon_state]cell_25")
+ . += emissive_appearance(icon, "[base_icon_state]cell_25", src, alpha = src.alpha)
+ else
+ . += mutable_appearance(icon, "[base_icon_state]cell_0")
+ . += emissive_appearance(icon, "[base_icon_state]cell_0", src, alpha = src.alpha)
return .
#undef MICROWAVE_INGREDIENT_OVERLAY_SIZE
/obj/machinery/microwave/update_icon_state()
- if (broken)
- icon_state = "mwb"
- else if (dirty_anim_playing)
- icon_state = "mwbloody1"
- else if (dirty == MAX_MICROWAVE_DIRTINESS)
- icon_state = open ? "mwbloodyo" : "mwbloody"
+ if(broken)
+ icon_state = "[base_icon_state]mwb"
+ else if(dirty_anim_playing)
+ icon_state = "[base_icon_state]mwbloody1"
+ else if(dirty == MAX_MICROWAVE_DIRTINESS)
+ icon_state = open ? "[base_icon_state]mwbloodyo" : "[base_icon_state]mwbloody"
else if(operating)
- icon_state = "back_on"
+ icon_state = "[base_icon_state]back_on"
else if(open)
- icon_state = "back_open"
+ icon_state = "[base_icon_state]back_open"
else if(panel_open)
- icon_state = "mw-o"
+ icon_state = "[base_icon_state]mw-o"
else
- icon_state = "back_off"
+ icon_state = "[base_icon_state]back_off"
return ..()
@@ -234,23 +331,23 @@
update_appearance()
return TOOL_ACT_TOOLTYPE_SUCCESS
-/obj/machinery/microwave/attackby(obj/item/O, mob/living/user, params)
+/obj/machinery/microwave/attackby(obj/item/item, mob/living/user, params)
if(operating)
return
- if(panel_open && is_wire_tool(O))
+ if(panel_open && is_wire_tool(item))
wires.interact(user)
return TRUE
if(broken > NOT_BROKEN)
- if(broken == REALLY_BROKEN && O.tool_behaviour == TOOL_WIRECUTTER) // If it's broken and they're using a TOOL_WIRECUTTER
+ if(broken == REALLY_BROKEN && item.tool_behaviour == TOOL_WIRECUTTER) // If it's broken and they're using a TOOL_WIRECUTTER
user.visible_message(span_notice("[user] starts to fix part of \the [src]."), span_notice("You start to fix part of \the [src]..."))
- if(O.use_tool(src, user, 20))
+ if(item.use_tool(src, user, 20))
user.visible_message(span_notice("[user] fixes part of \the [src]."), span_notice("You fix part of \the [src]."))
broken = KINDA_BROKEN // Fix it a bit
- else if(broken == KINDA_BROKEN && O.tool_behaviour == TOOL_WELDER) // If it's broken and they're doing the wrench
+ else if(broken == KINDA_BROKEN && item.tool_behaviour == TOOL_WELDER) // If it's broken and they're doing the wrench
user.visible_message(span_notice("[user] starts to fix part of \the [src]."), span_notice("You start to fix part of \the [src]..."))
- if(O.use_tool(src, user, 20))
+ if(item.use_tool(src, user, 20))
user.visible_message(span_notice("[user] fixes \the [src]."), span_notice("You fix \the [src]."))
broken = NOT_BROKEN
update_appearance()
@@ -260,8 +357,9 @@
return TRUE
return
- if(istype(O, /obj/item/reagent_containers/spray))
- var/obj/item/reagent_containers/spray/clean_spray = O
+ if(istype(item, /obj/item/reagent_containers/spray))
+ var/obj/item/reagent_containers/spray/clean_spray = item
+ open(autoclose = 2 SECONDS)
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, TRUE, -6)
@@ -272,56 +370,83 @@
to_chat(user, span_warning("You need more space cleaner!"))
return TRUE
- if(istype(O, /obj/item/soap) || istype(O, /obj/item/reagent_containers/cup/rag))
+ if(istype(item, /obj/item/soap) || istype(item, /obj/item/reagent_containers/cup/rag))
var/cleanspeed = 50
- if(istype(O, /obj/item/soap))
- var/obj/item/soap/used_soap = O
+ if(istype(item, /obj/item/soap))
+ var/obj/item/soap/used_soap = item
cleanspeed = used_soap.cleanspeed
user.visible_message(span_notice("[user] starts to clean \the [src]."), span_notice("You start to clean \the [src]..."))
+ open(autoclose = cleanspeed + 1 SECONDS)
if(do_after(user, cleanspeed, target = src))
user.visible_message(span_notice("[user] cleans \the [src]."), span_notice("You clean \the [src]."))
dirty = 0
update_appearance()
return TRUE
+ if(istype(item, /obj/item/stock_parts/cell) && cell_powered)
+ var/swapped = FALSE
+ if(!isnull(cell))
+ cell.forceMove(drop_location())
+ if(!issilicon(user) && Adjacent(user))
+ user.put_in_hands(cell)
+ cell = null
+ swapped = TRUE
+ if(!user.transferItemToLoc(item, src))
+ update_appearance()
+ return TRUE
+ cell = item
+ balloon_alert(user, "[swapped ? "swapped" : "inserted"] cell")
+ update_appearance()
+ return TRUE
+
+ if(!anchored)
+ balloon_alert(user, "not secured!")
+ return ..()
+
if(dirty >= MAX_MICROWAVE_DIRTINESS) // The microwave is all dirty so can't be used!
balloon_alert(user, "it's too dirty!")
return TRUE
- if(istype(O, /obj/item/storage))
- var/obj/item/storage/T = O
+ if(vampire_charging_capable && istype(item, /obj/item/modular_computer/pda) && ingredients.len > 0)
+ balloon_alert(user, "max 1 pda!")
+ return FALSE
+
+ if(istype(item, /obj/item/storage))
+ var/obj/item/storage/tray = item
var/loaded = 0
- if(!istype(O, /obj/item/storage/bag/tray))
+ if(!istype(item, /obj/item/storage/bag/tray))
// Non-tray dumping requires a do_after
- to_chat(user, span_notice("You start dumping out the contents of [O] into [src]..."))
- if(!do_after(user, 2 SECONDS, target = T))
+ to_chat(user, span_notice("You start dumping out the contents of [item] into [src]..."))
+ if(!do_after(user, 2 SECONDS, target = tray))
return
- for(var/obj/S in T.contents)
- if(!IS_EDIBLE(S))
+ for(var/obj/tray_item in tray.contents)
+ if(!IS_EDIBLE(tray_item))
continue
if(ingredients.len >= max_n_of_items)
balloon_alert(user, "it's full!")
return TRUE
- if(T.atom_storage.attempt_remove(S, src))
+ if(tray.atom_storage.attempt_remove(tray_item, src))
loaded++
- ingredients += S
+ ingredients += tray_item
if(loaded)
+ open(autoclose = 0.6 SECONDS)
to_chat(user, span_notice("You insert [loaded] items into \the [src]."))
update_appearance()
return
- if(O.w_class <= WEIGHT_CLASS_NORMAL && !istype(O, /obj/item/storage) && !user.combat_mode)
+ if(item.w_class <= WEIGHT_CLASS_NORMAL && !istype(item, /obj/item/storage) && !user.combat_mode)
if(ingredients.len >= max_n_of_items)
balloon_alert(user, "it's full!")
return TRUE
- if(!user.transferItemToLoc(O, src))
+ if(!user.transferItemToLoc(item, src))
balloon_alert(user, "it's stuck to your hand!")
return FALSE
- ingredients += O
- user.visible_message(span_notice("[user] adds \a [O] to \the [src]."), span_notice("You add [O] to \the [src]."))
+ ingredients += item
+ open(autoclose = 0.6 SECONDS)
+ user.visible_message(span_notice("[user] adds \a [item] to \the [src]."), span_notice("You add [item] to \the [src]."))
update_appearance()
return
@@ -332,13 +457,34 @@
if(!length(ingredients))
balloon_alert(user, "it's empty!")
return SECONDARY_ATTACK_CANCEL_ATTACK_CHAIN
- cook(user)
+
+ start_cycle(user)
+
return SECONDARY_ATTACK_CANCEL_ATTACK_CHAIN
+/obj/machinery/microwave/AltClick(mob/user, list/modifiers)
+ if(user.can_perform_action(src, ALLOW_SILICON_REACH))
+ if(!vampire_charging_capable)
+ return
+
+ vampire_charging_enabled = !vampire_charging_enabled
+ balloon_alert(user, "set to [vampire_charging_enabled ? "charge" : "cook"]")
+
+/obj/machinery/microwave/CtrlClick(mob/user)
+ . = ..()
+ if(cell_powered && !isnull(cell) && anchored)
+ user.put_in_hands(cell)
+ balloon_alert(user, "removed cell")
+ cell = null
+ update_appearance()
+
/obj/machinery/microwave/ui_interact(mob/user)
. = ..()
- if(operating || panel_open || !anchored || !user.can_perform_action(src, ALLOW_SILICON_REACH))
+ if(!anchored)
+ balloon_alert(user, "not secured!")
+ return
+ if(operating || panel_open || !user.can_perform_action(src, ALLOW_SILICON_REACH))
return
if(isAI(user) && (machine_stat & NOPOWER))
return
@@ -353,17 +499,21 @@
var/choice = show_radial_menu(user, src, isAI(user) ? ai_radial_options : radial_options, require_near = !issilicon(user))
// post choice verification
- if(operating || panel_open || !anchored || !user.can_perform_action(src, ALLOW_SILICON_REACH))
+ if(operating || panel_open || (!vampire_charging_capable && !anchored) || !user.can_perform_action(src, ALLOW_SILICON_REACH))
return
if(isAI(user) && (machine_stat & NOPOWER))
return
- usr.set_machine(src)
+ user.set_machine(src)
switch(choice)
if("eject")
eject()
- if("use")
- cook(user)
+ if("cook")
+ vampire_charging_enabled = FALSE
+ start_cycle(user)
+ if("charge")
+ vampire_charging_enabled = TRUE
+ start_cycle(user)
if("examine")
examine(user)
@@ -371,8 +521,20 @@
var/atom/drop_loc = drop_location()
for(var/atom/movable/movable_ingredient as anything in ingredients)
movable_ingredient.forceMove(drop_loc)
- open()
- playsound(loc, 'sound/machines/click.ogg', 15, TRUE, -3)
+ open(autoclose = 1.4 SECONDS)
+
+/obj/machinery/microwave/proc/start_cycle(mob/user)
+ if(wire_mode_swap)
+ spark()
+ if(vampire_charging_enabled)
+ cook(user)
+ else
+ charge(user)
+
+ else if(vampire_charging_enabled)
+ charge(user)
+ else
+ cook(user)
/**
* Begins the process of cooking the included ingredients.
@@ -382,6 +544,7 @@
/obj/machinery/microwave/proc/cook(mob/cooker)
if(machine_stat & (NOPOWER|BROKEN))
return
+
if(operating || broken > 0 || panel_open || !anchored || dirty >= MAX_MICROWAVE_DIRTINESS)
return
@@ -390,9 +553,15 @@
playsound(src, 'sound/machines/buzz-sigh.ogg', 50, FALSE)
return
+ if(cell_powered && cell?.charge < TIER_1_CELL_CHARGE_RATE * efficiency)
+ playsound(src, 'sound/machines/buzz-sigh.ogg', 50, FALSE)
+ balloon_alert(cooker, "replace cell!")
+ return
+
if(cooker && HAS_TRAIT(cooker, TRAIT_CURSED) && prob(7))
muck()
return
+
if(prob(max((5 / efficiency) - 5, dirty * 5))) //a clean unupgraded microwave has no risk of failure
muck()
return
@@ -413,16 +582,18 @@
/obj/machinery/microwave/proc/wzhzhzh()
visible_message(span_notice("\The [src] turns on."), null, span_hear("You hear a microwave humming."))
operating = TRUE
+ if(cell_powered && !isnull(cell))
+ cell.use(TIER_1_CELL_CHARGE_RATE * efficiency)
- set_light(1.5)
+ set_light(l_range = 1.5, l_power = 1.2, l_on = TRUE)
soundloop.start()
update_appearance()
/obj/machinery/microwave/proc/spark()
visible_message(span_warning("Sparks fly around [src]!"))
- var/datum/effect_system/spark_spread/s = new
- s.set_up(2, 1, src)
- s.start()
+ var/datum/effect_system/spark_spread/sparks = new
+ sparks.set_up(2, 1, src)
+ sparks.start()
/**
* The start of the cook loop
@@ -431,7 +602,7 @@
*/
/obj/machinery/microwave/proc/start(mob/cooker)
wzhzhzh()
- loop(MICROWAVE_NORMAL, 10, cooker = cooker)
+ cook_loop(type = MICROWAVE_NORMAL, cycles = 10, cooker = cooker)
/**
* The start of the cook loop, but can fail (result in a splat / dirty microwave)
@@ -440,29 +611,29 @@
*/
/obj/machinery/microwave/proc/start_can_fail(mob/cooker)
wzhzhzh()
- loop(MICROWAVE_PRE, 4, cooker = cooker)
+ cook_loop(type = MICROWAVE_PRE, cycles = 4, cooker = cooker)
/obj/machinery/microwave/proc/muck()
wzhzhzh()
playsound(loc, 'sound/effects/splat.ogg', 50, TRUE)
dirty_anim_playing = TRUE
update_appearance()
- loop(MICROWAVE_MUCK, 4)
+ cook_loop(type = MICROWAVE_MUCK, cycles = 4)
/**
* The actual cook loop started via [proc/start] or [proc/start_can_fail]
*
- * * type - the type of cooking, determined via how this iteration of loop is called, and determines the result
+ * * type - the type of cooking, determined via how this iteration of cook_loop is called, and determines the result
* * time - how many loops are left, base case for recursion
* * wait - deciseconds between loops
* * cooker - The mob that initiated the cook cycle, can be null if no apparent mob triggered it (such as via emp)
*/
-/obj/machinery/microwave/proc/loop(type, time, wait = max(12 - 2 * efficiency, 2), mob/cooker) // standard wait is 10
+/obj/machinery/microwave/proc/cook_loop(type, cycles, wait = max(12 - 2 * efficiency, 2), mob/cooker) // standard wait is 10
if((machine_stat & BROKEN) && type == MICROWAVE_PRE)
pre_fail()
return
- if(time <= 0 || !length(ingredients))
+ if(cycles <= 0 || !length(ingredients))
switch(type)
if(MICROWAVE_NORMAL)
loop_finish(cooker)
@@ -471,18 +642,21 @@
if(MICROWAVE_PRE)
pre_success(cooker)
return
- time--
+ cycles--
use_power(active_power_usage)
- addtimer(CALLBACK(src, PROC_REF(loop), type, time, wait, cooker), wait)
+ addtimer(CALLBACK(src, PROC_REF(cook_loop), type, cycles, wait, cooker), wait)
/obj/machinery/microwave/power_change()
. = ..()
+ if(cell_powered)
+ return
+
if((machine_stat & NOPOWER) && operating)
pre_fail()
eject()
/**
- * Called when the loop is done successfully, no dirty mess or whatever
+ * Called when the cook_loop is done successfully, no dirty mess or whatever
*
* * cooker - The mob that initiated the cook cycle, can be null if no apparent mob triggered it (such as via emp)
*/
@@ -492,6 +666,11 @@
var/cursed_chef = cooker && HAS_TRAIT(cooker, TRAIT_CURSED)
var/metal_amount = 0
for(var/obj/item/cooked_item in ingredients)
+ if(istype(cooked_item, /obj/item/modular_computer/pda) && prob(75))
+ spark()
+ broken = REALLY_BROKEN
+ explosion(src, heavy_impact_range = 1, light_impact_range = 2, flame_range = 1)
+
var/sigreturn = cooked_item.microwave_act(src, cooker, randomize_pixel_offset = ingredients.len)
if(sigreturn & COMPONENT_MICROWAVE_SUCCESS)
if(isstack(cooked_item))
@@ -502,7 +681,7 @@
metal_amount += (cooked_item.custom_materials?[GET_MATERIAL_REF(/datum/material/iron)] || 0)
- if(cursed_chef && prob(5))
+ if(cursed_chef && (metal_amount || prob(5))) // If we're unlucky and have metal, we're guaranteed to explode
spark()
broken = REALLY_BROKEN
explosion(src, light_impact_range = 2, flame_range = 1)
@@ -510,10 +689,8 @@
if(metal_amount)
spark()
broken = REALLY_BROKEN
- if(cursed_chef || prob(max(metal_amount / 2, 33))) // If we're unlucky and have metal, we're guaranteed to explode
+ if(prob(max(metal_amount / 2, 33)))
explosion(src, heavy_impact_range = 1, light_impact_range = 2)
- else
- dump_inventory_contents()
after_finish_loop()
@@ -524,7 +701,7 @@
after_finish_loop()
/obj/machinery/microwave/proc/pre_success(mob/cooker)
- loop(MICROWAVE_NORMAL, 10, cooker = cooker)
+ cook_loop(type = MICROWAVE_NORMAL, cycles = 10, cooker = cooker)
/obj/machinery/microwave/proc/muck_finish()
visible_message(span_warning("\The [src] gets covered in muck!"))
@@ -536,19 +713,121 @@
after_finish_loop()
/obj/machinery/microwave/proc/after_finish_loop()
- set_light(0)
+ set_light(l_on = FALSE)
soundloop.stop()
- open()
+ eject()
+ open(autoclose = 2 SECONDS)
-/obj/machinery/microwave/proc/open()
+/obj/machinery/microwave/proc/open(autoclose = 2 SECONDS)
open = TRUE
+ playsound(loc, 'sound/machines/click.ogg', 15, TRUE, -3)
update_appearance()
- addtimer(CALLBACK(src, PROC_REF(close)), 0.8 SECONDS)
+ addtimer(CALLBACK(src, PROC_REF(close)), autoclose)
/obj/machinery/microwave/proc/close()
open = FALSE
update_appearance()
+/**
+ * The start of the charge loop
+ *
+ * * cooker - The mob that initiated the cook cycle, can be null if no apparent mob triggered it (such as via emp)
+ */
+/obj/machinery/microwave/proc/vampire(mob/cooker)
+ wzhzhzh()
+ var/obj/item/modular_computer/pda/vampire_pda = LAZYACCESS(ingredients, 1)
+ if(isnull(vampire_pda))
+ playsound(src, 'sound/machines/buzz-sigh.ogg', 50, FALSE)
+ after_finish_loop()
+ return
+
+ vampire_cell = vampire_pda.internal_cell
+ if(isnull(vampire_pda))
+ playsound(src, 'sound/machines/buzz-sigh.ogg', 50, FALSE)
+ after_finish_loop()
+ return
+
+ var/vampire_charge_amount = vampire_cell.maxcharge - vampire_cell.charge
+ charge_loop(vampire_charge_amount, cooker = cooker)
+
+/obj/machinery/microwave/proc/charge(mob/cooker)
+ if(!vampire_charging_capable)
+ balloon_alert(cooker, "needs upgrade!")
+ playsound(src, 'sound/machines/buzz-sigh.ogg', 50, FALSE)
+ return
+
+ if(operating || broken > 0 || panel_open || dirty >= MAX_MICROWAVE_DIRTINESS)
+ return
+
+ if(wire_disabled)
+ audible_message("[src] buzzes.")
+ playsound(src, 'sound/machines/buzz-sigh.ogg', 50, FALSE)
+ return
+
+ // We should only be charging PDAs
+ for(var/atom/movable/potential_item as anything in ingredients)
+ if(!istype(potential_item, /obj/item/modular_computer/pda))
+ balloon_alert(cooker, "pda only!")
+ playsound(src, 'sound/machines/buzz-sigh.ogg', 50, FALSE)
+ eject()
+ return
+
+ vampire(cooker)
+
+/**
+ * The actual cook loop started via [proc/start] or [proc/start_can_fail]
+ *
+ * * type - the type of charging, determined via how this iteration of cook_loop is called, and determines the result
+ * * time - how many loops are left, base case for recursion
+ * * wait - deciseconds between loops
+ * * cooker - The mob that initiated the cook cycle, can be null if no apparent mob triggered it (such as via emp)
+ */
+/obj/machinery/microwave/proc/charge_loop(vampire_charge_amount, wait = max(12 - 2 * efficiency, 2), mob/cooker) // standard wait is 10
+ if(machine_stat & BROKEN)
+ pre_fail()
+ return
+
+ if(!vampire_charge_amount || !length(ingredients) || (!isnull(cell) && !cell.charge) || vampire_charge_amount < 25)
+ vampire_cell = null
+ charge_loop_finish(cooker)
+ return
+
+ var/charge_rate = vampire_cell.chargerate * (1 + ((efficiency - 1) * 0.25))
+ if(charge_rate > vampire_charge_amount)
+ charge_rate = vampire_charge_amount
+
+ if(cell_powered && !cell.use(charge_rate))
+ charge_loop_finish(cooker)
+
+ vampire_cell.give(charge_rate * (0.85 + (efficiency * 0.5))) // we lose a tiny bit of power in the transfer as heat
+ use_power(charge_rate)
+
+ vampire_charge_amount = vampire_cell.maxcharge - vampire_cell.charge
+
+ addtimer(CALLBACK(src, PROC_REF(charge_loop), vampire_charge_amount, wait, cooker), wait)
+
+/obj/machinery/microwave/power_change()
+ . = ..()
+ if((machine_stat & NOPOWER) && operating)
+ pre_fail()
+ eject()
+
+/**
+ * Called when the charge_loop is done successfully, no dirty mess or whatever
+ *
+ * * cooker - The mob that initiated the cook cycle, can be null if no apparent mob triggered it (such as via emp)
+ */
+/obj/machinery/microwave/proc/charge_loop_finish(mob/cooker)
+ operating = FALSE
+ var/cursed_chef = cooker && HAS_TRAIT(cooker, TRAIT_CURSED)
+ if(cursed_chef && prob(5))
+ spark()
+ broken = REALLY_BROKEN
+ explosion(src, light_impact_range = 2, flame_range = 1)
+
+ // playsound(src, 'sound/machines/chime.ogg', 50, FALSE)
+ after_finish_loop()
+
/// Type of microwave that automatically turns it self on erratically. Probably don't use this outside of the holodeck program "Microwave Paradise".
/// You could also live your life with a microwave that will continously run in the background of everything while also not having any power draw. I think the former makes more sense.
/obj/machinery/microwave/hell
@@ -564,13 +843,48 @@
//The microwave should turn off asynchronously from any other microwaves that initialize at the same time. Keep in mind this will not turn off, since there is nothing to call the proc that ends this microwave's looping
addtimer(CALLBACK(src, PROC_REF(wzhzhzh)), rand(0.5 SECONDS, 3 SECONDS))
+/obj/machinery/microwave/engineering
+ name = "wireless microwave oven"
+ desc = "For the hard-working tradesperson who's in the middle of nowhere and just wants to warm up their pastry-based savoury item from an overpriced vending machine."
+ base_icon_state = "engi_"
+ icon_state = "engi_mw_complete"
+ circuit = /obj/item/circuitboard/machine/microwave/engineering
+ light_color = LIGHT_COLOR_BABY_BLUE
+ // We don't use area power, we always use the cell
+ use_power = NO_POWER_USE
+ cell_powered = TRUE
+ vampire_charging_capable = TRUE
+ ingredient_shifts_x = list(
+ 0,
+ 5,
+ -5,
+ 3,
+ -3,
+ )
+ ingredient_shifts_y = list(
+ 0,
+ 2,
+ -2,
+ )
+
+/obj/machinery/microwave/engineering/Initialize(mapload)
+ . = ..()
+ if(mapload)
+ cell = new /obj/item/stock_parts/cell/upgraded/plus
+ update_appearance()
+
+/obj/machinery/microwave/engineering/cell_included/Initialize(mapload)
+ . = ..()
+ cell = new /obj/item/stock_parts/cell/upgraded/plus
+ update_appearance()
+
#undef MICROWAVE_NORMAL
#undef MICROWAVE_MUCK
#undef MICROWAVE_PRE
-
#undef NOT_BROKEN
#undef KINDA_BROKEN
#undef REALLY_BROKEN
#undef MAX_MICROWAVE_DIRTINESS
+#undef TIER_1_CELL_CHARGE_RATE
diff --git a/code/modules/research/designs/machine_designs.dm b/code/modules/research/designs/machine_designs.dm
index 0a2c96dddd5..3b0bf62c267 100644
--- a/code/modules/research/designs/machine_designs.dm
+++ b/code/modules/research/designs/machine_designs.dm
@@ -532,6 +532,16 @@
)
departmental_flags = DEPARTMENT_BITFLAG_SERVICE
+/datum/design/board/microwave_engineering
+ name = "Wireless Microwave Board"
+ desc = "The circuit board for a cell-powered microwave."
+ id = "microwave_engineering"
+ build_path = /obj/item/circuitboard/machine/microwave/engineering
+ category = list(
+ RND_CATEGORY_MACHINE + RND_SUBCATEGORY_MACHINE_KITCHEN
+ )
+ departmental_flags = DEPARTMENT_BITFLAG_SERVICE | DEPARTMENT_BITFLAG_ENGINEERING
+
/datum/design/board/gibber
name = "Gibber Board"
desc = "The circuit board for a gibber."
diff --git a/code/modules/research/techweb/all_nodes.dm b/code/modules/research/techweb/all_nodes.dm
index 7852bdb367e..441e6f0038b 100644
--- a/code/modules/research/techweb/all_nodes.dm
+++ b/code/modules/research/techweb/all_nodes.dm
@@ -476,6 +476,7 @@
"gibber",
"griddle",
"microwave",
+ "microwave_engineering",
"monkey_recycler",
"oven",
"processor",
diff --git a/icons/hud/radial.dmi b/icons/hud/radial.dmi
index 447003a3584..42d5c451018 100644
Binary files a/icons/hud/radial.dmi and b/icons/hud/radial.dmi differ
diff --git a/icons/obj/machines/microwave.dmi b/icons/obj/machines/microwave.dmi
index 427a5d9daae..7a72ba5d3dc 100644
Binary files a/icons/obj/machines/microwave.dmi and b/icons/obj/machines/microwave.dmi differ
diff --git a/modular_skyrat/modules/aesthetics/kitchen/microwave.dmi b/modular_skyrat/modules/aesthetics/kitchen/microwave.dmi
index d5560e1bc07..e1c2860da6e 100644
Binary files a/modular_skyrat/modules/aesthetics/kitchen/microwave.dmi and b/modular_skyrat/modules/aesthetics/kitchen/microwave.dmi differ
diff --git a/strings/tips.txt b/strings/tips.txt
index 12248bb4124..75d0e4d1851 100644
--- a/strings/tips.txt
+++ b/strings/tips.txt
@@ -266,5 +266,6 @@ You can screwdriver any non-chemical grenade to shorten fuses from 5 seconds, to
You can spray a fire extinguisher, throw items or fire a gun while floating through space to change your direction. Simply fire opposite to where you want to go.
You can swap floor tiles by holding a crowbar in one hand and a stack of tiles in the other.
You can use a machine in the vault to deposit cash or rob Cargo's department funds.
+You can use an upgraded microwave to charge your PDA!
You'll quickly lose your interest in the game if you play to win and kill. If you find yourself doing this, take a step back and talk to people - it's a much better experience!
-Some areas of the station use simple nautical directions to indicate their respective locations, like Fore (Front of the ship), Aft (Back), Port (Left side), Starboard (Right), Quarter and Bow (Either sides of Aft and Fore, respectively). You can review these terms on the Notepad App of your PDA.
\ No newline at end of file
+Some areas of the station use simple nautical directions to indicate their respective locations, like Fore (Front of the ship), Aft (Back), Port (Left side), Starboard (Right), Quarter and Bow (Either sides of Aft and Fore, respectively). You can review these terms on the Notepad App of your PDA.