[MIRROR] Microwave upgrades: Microwave PDA charging, power cells [MDB IGNORE] (#24283)

* Microwave upgrades: Microwave PDA charging, power cells

* skyrat edit

---------

Co-authored-by: lessthanthree <83487515+lessthnthree@users.noreply.github.com>
This commit is contained in:
SkyratBot
2023-10-11 17:31:12 -07:00
committed by GitHub
co-authored by lessthanthree
parent 2a9593bea8
commit 981503afc6
24 changed files with 923 additions and 559 deletions
+1 -1
View File
@@ -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)
+36 -32
View File
@@ -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
+52 -52
View File
@@ -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
+163 -163
View File
@@ -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
+83 -87
View File
@@ -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
+1 -1
View File
@@ -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,
+10 -18
View File
@@ -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" = (
+87 -85
View File
@@ -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
+1
View File
@@ -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"
+13 -7
View File
@@ -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
@@ -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"
@@ -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,
@@ -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
+1
View File
@@ -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"),
),
),
+7 -1
View File
@@ -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"
+8
View File
@@ -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
+1
View File
@@ -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
@@ -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: <b>[vampire_charging_enabled ? "Charge" : "Cook"]</b>.")]\n"+\
"[span_notice("- Capacity: <b>[max_n_of_items]</b> items.")]\n"+\
span_notice("- Cook time reduced by <b>[(efficiency - 1) * 25]%</b>.")
span_notice("- Power: <b>[efficiency * TIER_1_CELL_CHARGE_RATE]W</b>.")
if(cell_powered)
. += span_notice("- Charge: <b>[isnull(cell) ? "INSERT CELL" : "[round(cell.percent())]%"]</b>.")
#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
@@ -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."
@@ -476,6 +476,7 @@
"gibber",
"griddle",
"microwave",
"microwave_engineering",
"monkey_recycler",
"oven",
"processor",
Binary file not shown.

Before

Width:  |  Height:  |  Size: 32 KiB

After

Width:  |  Height:  |  Size: 31 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.0 KiB

After

Width:  |  Height:  |  Size: 9.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.1 KiB

After

Width:  |  Height:  |  Size: 11 KiB

+2 -1
View File
@@ -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.
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.