diff --git a/_maps/map_files/Deltastation/DeltaStation2.dmm b/_maps/map_files/Deltastation/DeltaStation2.dmm index 1673fb8eb2b..bb1bc049a64 100644 --- a/_maps/map_files/Deltastation/DeltaStation2.dmm +++ b/_maps/map_files/Deltastation/DeltaStation2.dmm @@ -144,6 +144,15 @@ /obj/effect/decal/cleanable/generic, /turf/open/floor/iron/grimy, /area/maintenance/port/fore) +"abb" = ( +/obj/effect/turf_decal/tile/neutral/half/contrasted{ + dir = 1 + }, +/obj/machinery/power/port_gen/pacman/pre_loaded, +/turf/open/floor/iron{ + heat_capacity = 1e+006 + }, +/area/maintenance/port/aft) "abf" = ( /turf/closed/wall, /area/hallway/secondary/entry) @@ -9415,6 +9424,7 @@ /obj/effect/turf_decal/tile/neutral{ dir = 1 }, +/obj/machinery/power/port_gen/pacman/pre_loaded, /turf/open/floor/iron, /area/maintenance/starboard) "clw" = ( @@ -9697,6 +9707,7 @@ "coK" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/turf_decal/tile/neutral/half/contrasted, +/obj/machinery/power/port_gen/pacman/pre_loaded, /turf/open/floor/iron, /area/maintenance/starboard) "coN" = ( @@ -10932,6 +10943,13 @@ icon_state = "chapel" }, /area/service/chapel) +"cDB" = ( +/obj/effect/turf_decal/tile/neutral/half/contrasted{ + dir = 4 + }, +/obj/machinery/power/port_gen/pacman/pre_loaded, +/turf/open/floor/iron, +/area/maintenance/port/greater) "cDN" = ( /obj/machinery/disposal/bin, /obj/machinery/light/directional/south, @@ -29233,6 +29251,12 @@ }, /turf/open/floor/iron, /area/maintenance/port/greater) +"gpE" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable, +/obj/machinery/power/port_gen/pacman/pre_loaded, +/turf/open/floor/plating, +/area/maintenance/aft) "gpI" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -35139,6 +35163,10 @@ }, /turf/open/floor/iron/white, /area/command/heads_quarters/cmo) +"hYg" = ( +/obj/machinery/power/port_gen/pacman/pre_loaded, +/turf/open/floor/plating, +/area/maintenance/port/aft) "hYu" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable, @@ -38642,6 +38670,11 @@ }, /turf/open/floor/iron, /area/security/checkpoint/customs/aft) +"iZp" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/power/port_gen/pacman/pre_loaded, +/turf/open/floor/plating, +/area/maintenance/port/aft) "iZx" = ( /obj/machinery/door/airlock/maintenance_hatch{ name = "Circuits Lab Maintenance"; @@ -40226,6 +40259,14 @@ }, /turf/open/floor/iron, /area/engineering/atmos/project) +"jxz" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/tile/neutral/half/contrasted{ + dir = 1 + }, +/obj/machinery/power/port_gen/pacman/pre_loaded, +/turf/open/floor/iron, +/area/maintenance/starboard/aft) "jxD" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -45086,6 +45127,7 @@ dir = 1 }, /obj/structure/sign/poster/random/directional/south, +/obj/machinery/power/port_gen/pacman/pre_loaded, /turf/open/floor/plating, /area/maintenance/port/fore) "kXB" = ( @@ -52920,6 +52962,11 @@ }, /turf/open/floor/iron, /area/hallway/secondary/entry) +"nmF" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/power/port_gen/pacman/pre_loaded, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) "nmL" = ( /obj/effect/turf_decal/stripes/line, /turf/open/floor/iron/dark, @@ -53914,6 +53961,11 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/science/mixing/launch) +"nCT" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/power/port_gen/pacman/pre_loaded, +/turf/open/floor/plating, +/area/maintenance/port/greater) "nCU" = ( /obj/effect/turf_decal/tile/neutral{ dir = 1 @@ -59379,6 +59431,14 @@ /obj/structure/cable, /turf/open/floor/plating, /area/security/medical) +"phH" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/tile/neutral/half/contrasted{ + dir = 1 + }, +/obj/machinery/power/port_gen/pacman/pre_loaded, +/turf/open/floor/iron, +/area/maintenance/port/greater) "phL" = ( /obj/effect/turf_decal/tile/neutral/fourcorners, /obj/effect/turf_decal/siding/brown/corner, @@ -62331,6 +62391,10 @@ /obj/item/radio/intercom/directional/north, /turf/open/floor/wood, /area/hallway/secondary/service) +"pYS" = ( +/obj/machinery/power/port_gen/pacman/pre_loaded, +/turf/open/floor/plating, +/area/maintenance/port/greater) "pYW" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/table/reinforced, @@ -70227,6 +70291,11 @@ }, /turf/open/floor/iron/dark/smooth_half, /area/engineering/gravity_generator) +"sqf" = ( +/obj/structure/cable, +/obj/machinery/power/port_gen/pacman/pre_loaded, +/turf/open/floor/plating, +/area/maintenance/fore) "sqs" = ( /obj/structure/cable, /obj/effect/landmark/start/hangover, @@ -70240,6 +70309,14 @@ }, /turf/open/floor/iron, /area/commons/vacant_room) +"squ" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/tile/neutral/half/contrasted{ + dir = 8 + }, +/obj/machinery/power/port_gen/pacman/pre_loaded, +/turf/open/floor/iron, +/area/maintenance/starboard/aft) "sqw" = ( /obj/machinery/door/airlock/public/glass{ name = "Holodeck Access" @@ -81280,6 +81357,7 @@ pixel_x = 32 }, /obj/structure/window/reinforced/plasma/spawner, +/obj/machinery/power/port_gen/pacman/pre_loaded, /turf/open/floor/iron, /area/maintenance/port/lesser) "vEY" = ( @@ -86625,6 +86703,10 @@ /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron/dark, /area/security/detectives_office) +"xox" = ( +/obj/machinery/power/port_gen/pacman/pre_loaded, +/turf/open/floor/plating, +/area/maintenance/department/crew_quarters/bar) "xoA" = ( /obj/effect/turf_decal/stripes/line{ dir = 1 @@ -116841,7 +116923,7 @@ mJi lax fOD laF -dTM +nCT bzr rMT rHo @@ -117094,7 +117176,7 @@ aOr spo rMk bzr -nQr +phH lax gCK gCK @@ -119631,8 +119713,8 @@ uxO fOD eKZ edy -syw -edy +pYS +cDB nua syw biP @@ -121743,7 +121825,7 @@ nAL oEs yfh oBJ -dLW +iZp vsc nKI dOR @@ -122271,7 +122353,7 @@ dUY dQE dWJ dLW -dYu +hYg dZg dYu dYu @@ -125605,7 +125687,7 @@ qml mIL dOM rWh -dYu +hYg dOM vQA paX @@ -127653,7 +127735,7 @@ dGc dHz dIQ dLY -dKO +abb wnM dOM iZo @@ -128335,7 +128417,7 @@ ufL qiX uQn ewz -xIc +xox wQj iMI ePt @@ -129612,7 +129694,7 @@ sGR hDa rVb mYZ -xIc +xox ewz gAd aTu @@ -132279,7 +132361,7 @@ mBu lWg dEc dNS -wXc +gpE hjT dNS aaa @@ -132923,7 +133005,7 @@ aeF aeF aeF vLs -wlV +sqf pEs sfM vcx @@ -138440,7 +138522,7 @@ kaO sdT cHU dBt -cHW +nmF dEh cIW dyv @@ -142286,7 +142368,7 @@ lnB cHW cIX rBJ -dbD +squ cNH lnB due @@ -142532,7 +142614,7 @@ lAD lvv eIy cHU -dLp +jxz nzv ueh nsS diff --git a/_maps/map_files/MetaStation/MetaStation.dmm b/_maps/map_files/MetaStation/MetaStation.dmm index 92c7a275528..33a3bc686f7 100644 --- a/_maps/map_files/MetaStation/MetaStation.dmm +++ b/_maps/map_files/MetaStation/MetaStation.dmm @@ -3186,6 +3186,7 @@ /area/security/courtroom) "aLZ" = ( /obj/effect/landmark/blobstart, +/obj/machinery/power/port_gen/pacman/pre_loaded, /turf/open/floor/plating{ icon_state = "platingdmg1" }, @@ -7278,6 +7279,10 @@ /obj/effect/turf_decal/tile/purple/half/contrasted, /turf/open/floor/iron/white, /area/science/lobby) +"bPf" = ( +/obj/machinery/power/port_gen/pacman/pre_loaded, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) "bPh" = ( /obj/effect/turf_decal/stripes/line{ dir = 6 @@ -16583,6 +16588,10 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/white, /area/security/prison) +"eKf" = ( +/obj/machinery/power/port_gen/pacman/pre_loaded, +/turf/open/floor/plating, +/area/maintenance/aft/greater) "eKh" = ( /obj/structure/reagent_dispensers/plumbed, /turf/open/floor/plating, @@ -17398,6 +17407,10 @@ /obj/machinery/airalarm/directional/east, /turf/open/floor/wood, /area/service/lawoffice) +"eZr" = ( +/obj/machinery/power/port_gen/pacman/pre_loaded, +/turf/open/floor/plating, +/area/maintenance/aft/lesser) "eZU" = ( /turf/closed/wall/r_wall, /area/security/courtroom) @@ -19143,6 +19156,7 @@ /area/medical/chemistry) "fJH" = ( /obj/machinery/light/small/broken/directional/north, +/obj/machinery/power/port_gen/pacman/pre_loaded, /turf/open/floor/plating, /area/maintenance/aft/lesser) "fJL" = ( @@ -25173,6 +25187,10 @@ /obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/iron/white, /area/medical/abandoned) +"hYI" = ( +/obj/machinery/power/port_gen/pacman/pre_loaded, +/turf/open/floor/plating, +/area/maintenance/port/aft) "hYT" = ( /obj/effect/turf_decal/stripes/line, /obj/machinery/atmospherics/components/binary/pump{ @@ -31777,6 +31795,10 @@ /obj/machinery/syndicatebomb/training, /turf/open/floor/iron, /area/security/office) +"kzo" = ( +/obj/machinery/power/port_gen/pacman/pre_loaded, +/turf/open/floor/plating, +/area/maintenance/port) "kzp" = ( /obj/effect/landmark/event_spawn, /obj/effect/turf_decal/tile/neutral, @@ -33884,6 +33906,12 @@ /obj/structure/table/reinforced, /turf/open/floor/iron/dark, /area/medical/storage) +"lnf" = ( +/obj/machinery/power/port_gen/pacman/pre_loaded, +/turf/open/floor/plating{ + icon_state = "platingdmg1" + }, +/area/maintenance/fore) "lnt" = ( /obj/effect/landmark/event_spawn, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -39803,6 +39831,7 @@ /area/engineering/main) "njd" = ( /obj/machinery/light/small/directional/west, +/obj/machinery/power/port_gen/pacman/pre_loaded, /turf/open/floor/plating, /area/maintenance/starboard/lesser) "njk" = ( @@ -42565,6 +42594,12 @@ /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron/dark, /area/ai_monitored/turret_protected/aisat/foyer) +"omP" = ( +/obj/machinery/power/port_gen/pacman/pre_loaded, +/turf/open/floor/plating{ + icon_state = "platingdmg2" + }, +/area/maintenance/fore) "omY" = ( /obj/machinery/light_switch/directional/south, /obj/structure/table/wood, @@ -43455,7 +43490,7 @@ /turf/open/floor/iron, /area/service/bar) "oEb" = ( -/obj/machinery/portable_atmospherics/canister/air, +/obj/machinery/power/port_gen/pacman/pre_loaded, /turf/open/floor/plating, /area/maintenance/starboard/greater) "oEh" = ( @@ -52513,6 +52548,10 @@ }, /turf/open/floor/iron, /area/security/checkpoint/customs) +"saV" = ( +/obj/machinery/power/port_gen/pacman/pre_loaded, +/turf/open/floor/plating, +/area/maintenance/port/fore) "sbk" = ( /obj/machinery/light/small/directional/north, /turf/open/floor/iron/dark/telecomms, @@ -58260,6 +58299,10 @@ }, /turf/open/floor/iron, /area/hallway/primary/port) +"upU" = ( +/obj/machinery/power/port_gen/pacman/pre_loaded, +/turf/open/floor/plating, +/area/maintenance/starboard/fore) "upY" = ( /obj/structure/cable, /obj/machinery/power/apc/auto_name/directional/east, @@ -60845,6 +60888,12 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/dark, /area/security/lockers) +"vrY" = ( +/obj/machinery/power/port_gen/pacman/pre_loaded, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/maintenance/starboard/fore) "vrZ" = ( /obj/effect/turf_decal/tile/neutral{ dir = 1 @@ -67928,6 +67977,10 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/wood, /area/security/office) +"xYX" = ( +/obj/machinery/power/port_gen/pacman/pre_loaded, +/turf/open/floor/plating, +/area/maintenance/starboard/lesser) "xZf" = ( /obj/structure/table/reinforced, /obj/effect/turf_decal/tile/blue/half/contrasted{ @@ -84533,7 +84586,7 @@ bqR dSM cGq alK -aob +kzo rDS iuy paD @@ -84552,7 +84605,7 @@ qUR mmb gLu lvY -bXE +hYI oAe cCk dux @@ -87138,7 +87191,7 @@ sYH sSE txp qiL -far +eKf gZp msm gZp @@ -87308,7 +87361,7 @@ xZo oaE qtK xZo -aRG +saV rQt bOJ xZo @@ -88153,7 +88206,7 @@ pdp dXY rRs dux -bXE +hYI nXg uOc dPt @@ -88341,7 +88394,7 @@ dne vlm aRG drQ -aRG +saV dnu dne ivz @@ -88434,7 +88487,7 @@ moM gZp aSk fqu -far +eKf tKv gZp lMJ @@ -91258,7 +91311,7 @@ hdw phT cqi gZp -far +eKf dTm uKu gZp @@ -101793,7 +101846,7 @@ iht iht wmY uJy -kkO +eZr wrP mff kkO @@ -102981,7 +103034,7 @@ seR xRw aje ale -ahS +lnf agq oix agq @@ -103244,7 +103297,7 @@ jkw agq arA aje -auc +omP aje bJl agq @@ -105112,7 +105165,7 @@ juD hCo hCo pPF -rah +xYX sLo lpg xPI @@ -105381,7 +105434,7 @@ mpa nOc nxf jIn -ciL +bPf dvY stN bsN @@ -108385,7 +108438,7 @@ dnh tLb atd dnS -atd +vrY dnh lZd ayR @@ -109925,7 +109978,7 @@ bcO dnS dnS fFV -dnS +upU dnh vLo dqT diff --git a/code/game/objects/items/circuitboards/machine_circuitboards.dm b/code/game/objects/items/circuitboards/machine_circuitboards.dm index 453c55112f1..59c1d6d54c1 100644 --- a/code/game/objects/items/circuitboards/machine_circuitboards.dm +++ b/code/game/objects/items/circuitboards/machine_circuitboards.dm @@ -187,16 +187,22 @@ greyscale_colors = CIRCUIT_COLOR_ENGINEERING build_path = /obj/machinery/power/port_gen/pacman req_components = list( - /obj/item/stock_parts/matter_bin = 1, - /obj/item/stock_parts/micro_laser = 1, - /obj/item/stack/cable_coil = 2, - /obj/item/stock_parts/capacitor = 1) + /obj/item/stack/cable_coil = 5, + /obj/item/stack/sheet/iron = 5 + ) needs_anchored = FALSE + var/high_production_profile = FALSE -/obj/item/circuitboard/machine/pacman/super - name = "SUPERPACMAN-type Generator (Machine Board)" - greyscale_colors = CIRCUIT_COLOR_ENGINEERING - build_path = /obj/machinery/power/port_gen/pacman/super +/obj/item/circuitboard/machine/pacman/examine(mob/user) + . = ..() + var/message = high_production_profile ? "high production - high consumption" : "low production - low consumption" + . += span_notice("It's set to [message].") + . += span_notice("You can switch the mode by using a screwdriver on [src].") + +/obj/item/circuitboard/machine/pacman/screwdriver_act(mob/living/user, obj/item/tool) + high_production_profile = !high_production_profile + var/message = high_production_profile ? "high production - high consumption" : "low production - low consumption" + to_chat(user, span_notice("You set the board for [message]")) /obj/item/circuitboard/machine/turbine_compressor name = "Turbine - Inlet Compressor (Machine Board)" diff --git a/code/modules/power/port_gen.dm b/code/modules/power/port_gen.dm index 2f0315e679d..38eae8433de 100644 --- a/code/modules/power/port_gen.dm +++ b/code/modules/power/port_gen.dm @@ -81,12 +81,13 @@ /obj/machinery/power/port_gen/pacman name = "\improper P.A.C.M.A.N.-type portable generator" circuit = /obj/item/circuitboard/machine/pacman + power_gen = 2500 var/sheets = 0 - var/max_sheets = 100 + var/max_sheets = 10 var/sheet_name = "" var/sheet_path = /obj/item/stack/sheet/mineral/plasma var/sheet_left = 0 // How much is left of the sheet - var/time_per_sheet = 260 + var/time_per_sheet = 50 var/current_heat = 0 /obj/machinery/power/port_gen/pacman/Initialize(mapload) @@ -101,27 +102,21 @@ DropFuel() return ..() -/obj/machinery/power/port_gen/pacman/RefreshParts() - . = ..() - var/temp_rating = 0 - var/consumption_coeff = 0 - for(var/obj/item/stock_parts/SP in component_parts) - if(istype(SP, /obj/item/stock_parts/matter_bin)) - max_sheets = SP.rating * SP.rating * 50 - else if(istype(SP, /obj/item/stock_parts/capacitor)) - temp_rating += SP.rating - else - consumption_coeff += SP.rating - power_gen = round(initial(power_gen) * temp_rating * 2) - consumption = consumption_coeff +/obj/machinery/power/port_gen/pacman/on_construction() + var/obj/item/circuitboard/machine/pacman/our_board = circuit + if(our_board.high_production_profile) + icon_state = "portgen1_0" + base_icon = "portgen1" + max_sheets = 5 + time_per_sheet = 20 + power_gen = 15000 + sheet_path = /obj/item/stack/sheet/mineral/uranium /obj/machinery/power/port_gen/pacman/examine(mob/user) . = ..() . += span_notice("The generator has [sheets] units of [sheet_name] fuel left, producing [display_power(power_gen)] per cycle.") if(anchored) . += span_notice("It is anchored to the ground.") - if(in_range(user, src) || isobserver(user)) - . += span_notice("The status display reads: Fuel efficiency increased by [(consumption*100)-100]%.") /obj/machinery/power/port_gen/pacman/HasFuel() if(sheets >= 1 / (time_per_sheet / power_output) - sheet_left) @@ -134,7 +129,7 @@ sheets = 0 /obj/machinery/power/port_gen/pacman/UseFuel() - var/needed_sheets = 1 / (time_per_sheet * consumption / power_output) + var/needed_sheets = 1 / (time_per_sheet / power_output) var/temp = min(needed_sheets, sheet_left) needed_sheets -= temp sheet_left -= temp @@ -149,9 +144,9 @@ var/bias = 0 if (power_output > 4) upper_limit = 400 - bias = power_output - consumption * (4 - consumption) + bias = power_output - 3 if (current_heat < lower_limit) - current_heat += 4 - consumption + current_heat += 3 else current_heat += rand(-7 + bias, 7 + bias) if (current_heat < lower_limit) @@ -275,13 +270,12 @@ . = TRUE /obj/machinery/power/port_gen/pacman/super - name = "\improper S.U.P.E.R.P.A.C.M.A.N.-type portable generator" icon_state = "portgen1_0" base_icon = "portgen1" - circuit = /obj/item/circuitboard/machine/pacman/super - sheet_path = /obj/item/stack/sheet/mineral/uranium + max_sheets = 5 + time_per_sheet = 20 power_gen = 15000 - time_per_sheet = 85 + sheet_path = /obj/item/stack/sheet/mineral/uranium -/obj/machinery/power/port_gen/pacman/super/overheat() - explosion(src, devastation_range = 3, heavy_impact_range = 3, light_impact_range = 3, flash_range = -1) +/obj/machinery/power/port_gen/pacman/pre_loaded + sheets = 10 diff --git a/code/modules/research/designs/power_designs.dm b/code/modules/research/designs/power_designs.dm index 8fb730f544a..eda72699d4c 100644 --- a/code/modules/research/designs/power_designs.dm +++ b/code/modules/research/designs/power_designs.dm @@ -74,13 +74,6 @@ category = list("Engineering Machinery") departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING -/datum/design/board/pacman/super - name = "Machine Design (SUPERPACMAN-type Generator Board)" - desc = "The circuit board that for a SUPERPACMAN-type portable generator." - id = "superpacman" - build_path = /obj/item/circuitboard/machine/pacman/super - departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING - /datum/design/turbine_part_compressor name = "Turbine Part - Compressor" desc = "The basic tier of a compressor blade." diff --git a/code/modules/research/techweb/all_nodes.dm b/code/modules/research/techweb/all_nodes.dm index c0adfd39fc3..5f20382cf4e 100644 --- a/code/modules/research/techweb/all_nodes.dm +++ b/code/modules/research/techweb/all_nodes.dm @@ -586,7 +586,6 @@ "smes", "super_capacitor", "super_cell", - "superpacman", "turbine_compressor", "turbine_rotor", "turbine_stator",