diff --git a/aurorastation.dme b/aurorastation.dme index 9db2e20f0aa..8b58111d6ee 100644 --- a/aurorastation.dme +++ b/aurorastation.dme @@ -1045,7 +1045,7 @@ #include "code\game\objects\items\weapons\circuitboards\machinery\mining_drill.dm" #include "code\game\objects\items\weapons\circuitboards\machinery\mining_machines.dm" #include "code\game\objects\items\weapons\circuitboards\machinery\miscboards.dm" -#include "code\game\objects\items\weapons\circuitboards\machinery\pacman.dm" +#include "code\game\objects\items\weapons\circuitboards\machinery\portgen.dm" #include "code\game\objects\items\weapons\circuitboards\machinery\power.dm" #include "code\game\objects\items\weapons\circuitboards\machinery\recharge_station.dm" #include "code\game\objects\items\weapons\circuitboards\machinery\research.dm" @@ -2611,7 +2611,7 @@ #include "code\modules\power\generator.dm" #include "code\modules\power\generator_type2.dm" #include "code\modules\power\gravitygenerator.dm" -#include "code\modules\power\port_gen.dm" +#include "code\modules\power\portgen.dm" #include "code\modules\power\power.dm" #include "code\modules\power\powernet.dm" #include "code\modules\power\radial_floodlight.dm" diff --git a/code/__defines/materials.dm b/code/__defines/materials.dm index 2df61e56003..3ac43cf97f9 100644 --- a/code/__defines/materials.dm +++ b/code/__defines/materials.dm @@ -1,38 +1,39 @@ -#define MATERIAL_PLASTIC "plastic" -#define MATERIAL_PLASTIC_HOLO "holoplastic" -#define MATERIAL_PLASTEEL "plasteel" -#define MATERIAL_STEEL "steel" -#define MATERIAL_GLASS "glass" -#define MATERIAL_GLASS_REINFORCED "rglass" -#define MATERIAL_GLASS_WIRED "wired glass" -#define MATERIAL_GLASS_PHORON "borosilicate glass" -#define MATERIAL_GLASS_REINFORCED_PHORON "reinforced borosilicate glass" -#define MATERIAL_GOLD "gold" -#define MATERIAL_SILVER "silver" -#define MATERIAL_DIAMOND "diamond" -#define MATERIAL_PHORON "phoron" -#define MATERIAL_URANIUM "uranium" -#define MATERIAL_SANDSTONE "sandstone" -#define MATERIAL_CONCRETE "concrete" -#define MATERIAL_IRON "iron" -#define MATERIAL_PLATINUM "platinum" -#define MATERIAL_BRONZE "bronze" -#define MATERIAL_OSMIUM "osmium" -#define MATERIAL_MARBLE "marble" -#define MATERIAL_CULT "cult" -#define MATERIAL_CULT_REINFORCED "cult_reinforced" -#define MATERIAL_TITANIUM "titanium" -#define MATERIAL_SAND "sand" -#define MATERIAL_DIONA "biomass" -#define MATERIAL_VAURCA "alien biomass" -#define MATERIAL_TRITIUM "tritium" -#define MATERIAL_HYDROGEN_METALLIC "mhydrogen" -#define MATERIAL_ELEVATOR "elevatorium" -#define MATERIAL_SHUTTLE "shuttle" -#define MATERIAL_SHUTTLE_SKRELL "skrell" -#define MATERIAL_RUST "rust" -#define MATERIAL_CARDBOARD "cardboard" - +// Metals, glasses, rocks, and crystals. +#define MATERIAL_PLASTIC "plastic" +#define MATERIAL_PLASTIC_HOLO "holoplastic" +#define MATERIAL_PLASTEEL "plasteel" +#define MATERIAL_STEEL "steel" +#define MATERIAL_GLASS "glass" +#define MATERIAL_GLASS_REINFORCED "rglass" +#define MATERIAL_GLASS_WIRED "wired glass" +#define MATERIAL_GLASS_PHORON "borosilicate glass" +#define MATERIAL_GLASS_REINFORCED_PHORON "reinforced borosilicate glass" +#define MATERIAL_GOLD "gold" +#define MATERIAL_SILVER "silver" +#define MATERIAL_DIAMOND "diamond" +#define MATERIAL_PHORON "phoron" +#define MATERIAL_URANIUM "uranium" +#define MATERIAL_SANDSTONE "sandstone" +#define MATERIAL_CONCRETE "concrete" +#define MATERIAL_IRON "iron" +#define MATERIAL_PLATINUM "platinum" +#define MATERIAL_BRONZE "bronze" +#define MATERIAL_OSMIUM "osmium" +#define MATERIAL_MARBLE "marble" +#define MATERIAL_CULT "cult" +#define MATERIAL_CULT_REINFORCED "cult_reinforced" +#define MATERIAL_TITANIUM "titanium" +#define MATERIAL_SAND "sand" +#define MATERIAL_DIONA "biomass" +#define MATERIAL_VAURCA "alien biomass" +#define MATERIAL_TRITIUM "tritium" +#define MATERIAL_HYDROGEN_METALLIC "mhydrogen" +#define MATERIAL_ELEVATOR "elevatorium" +#define MATERIAL_SHUTTLE "shuttle" +#define MATERIAL_SHUTTLE_SKRELL "skrell" +#define MATERIAL_RUST "rust" +#define MATERIAL_CARDBOARD "cardboard" +#define MATERIAL_GRAPHITE "graphite" // Leathers and related. #define MATERIAL_RESIN "resin" @@ -63,4 +64,4 @@ #define MATERIAL_ALTERATION_NAME 1 #define MATERIAL_ALTERATION_DESC 2 #define MATERIAL_ALTERATION_COLOR 4 -#define MATERIAL_ALTERATION_ALL (~MATERIAL_ALTERATION_NONE) +#define MATERIAL_ALTERATION_ALL (~MATERIAL_ALTERATION_NONE) \ No newline at end of file diff --git a/code/game/objects/items/weapons/circuitboards/machinery/pacman.dm b/code/game/objects/items/weapons/circuitboards/machinery/pacman.dm deleted file mode 100644 index 19493d5301c..00000000000 --- a/code/game/objects/items/weapons/circuitboards/machinery/pacman.dm +++ /dev/null @@ -1,24 +0,0 @@ -#ifndef T_BOARD -#error T_BOARD macro is not defined but we need it! -#endif - -/obj/item/circuitboard/pacman - name = T_BOARD("PACMAN-type generator") - build_path = /obj/machinery/power/port_gen/pacman - board_type = "machine" - origin_tech = list(TECH_DATA = 3, TECH_POWER = 3, TECH_PHORON = 3, TECH_ENGINEERING = 3) - 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/circuitboard/pacman/super - name = T_BOARD("SUPERPACMAN-type generator") - build_path = /obj/machinery/power/port_gen/pacman/super - origin_tech = list(TECH_DATA = 3, TECH_POWER = 4, TECH_ENGINEERING = 4) - -/obj/item/circuitboard/pacman/mrs - name = T_BOARD("MRSPACMAN-type generator") - build_path = /obj/machinery/power/port_gen/pacman/mrs - origin_tech = list(TECH_DATA = 3, TECH_POWER = 5, TECH_ENGINEERING = 5) diff --git a/code/game/objects/items/weapons/circuitboards/machinery/portgen.dm b/code/game/objects/items/weapons/circuitboards/machinery/portgen.dm new file mode 100644 index 00000000000..c86471dfda3 --- /dev/null +++ b/code/game/objects/items/weapons/circuitboards/machinery/portgen.dm @@ -0,0 +1,25 @@ +#ifndef T_BOARD +#error T_BOARD macro is not defined but we need it! +#endif + +/obj/item/circuitboard/portgen + name = T_BOARD("portable generator") + build_path = /obj/machinery/power/portgen/basic + board_type = "machine" + origin_tech = list(TECH_DATA = 3, TECH_POWER = 3, TECH_PHORON = 3, TECH_ENGINEERING = 3) + 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/circuitboard/portgen/advanced + name = T_BOARD("advanced portable generator") + build_path = /obj/machinery/power/portgen/basic/advanced + origin_tech = list(TECH_DATA = 3, TECH_POWER = 4, TECH_ENGINEERING = 4) + +/obj/item/circuitboard/portgen/super + name = T_BOARD("super portable generator") + build_path = /obj/machinery/power/portgen/basic/super + origin_tech = list(TECH_DATA = 3, TECH_POWER = 5, TECH_ENGINEERING = 5) \ No newline at end of file diff --git a/code/modules/cargo/bounties/engineer.dm b/code/modules/cargo/bounties/engineer.dm index 5e300fcbbea..7e5d3b791e1 100644 --- a/code/modules/cargo/bounties/engineer.dm +++ b/code/modules/cargo/bounties/engineer.dm @@ -146,12 +146,12 @@ /datum/bounty/item/engineer/generator name = "Portable Generators" - description = "Another station reported some engine troubles, and needs a few portable generators to maintain critical operations. Ship any type of P.A.C.M.A.N. generators to receive a bonus." + description = "Another station reported some engine troubles, and needs a few portable generators to maintain critical operations. Ship any type of portable generators to receive a bonus." reward_low = 5000 reward_high = 6200 required_count = 2 random_count = 1 - wanted_types = list(/obj/machinery/power/port_gen/pacman) + wanted_types = list(/obj/machinery/power/portgen/basic) /datum/bounty/item/engineer/crossbow name = "Powered Crossbow" diff --git a/code/modules/cargo/random_stock/large.dm b/code/modules/cargo/random_stock/large.dm index a52fc266166..12d491582e2 100644 --- a/code/modules/cargo/random_stock/large.dm +++ b/code/modules/cargo/random_stock/large.dm @@ -63,9 +63,9 @@ STOCK_ITEM_LARGE(airscrubber, 1) STOCK_ITEM_LARGE(generator, 5) var/list/generators = list( - /obj/machinery/power/port_gen/pacman = 1, - /obj/machinery/power/port_gen/pacman/super = 0.7, - /obj/machinery/power/port_gen/pacman/mrs = 0.5 + /obj/machinery/power/portgen/basic = 1, + /obj/machinery/power/portgen/basic/advanced = 0.7, + /obj/machinery/power/portgen/basic/super = 0.5 ) var/type = pickweight(generators) new type(L) diff --git a/code/modules/materials/material_sheets.dm b/code/modules/materials/material_sheets.dm index c8cd3f89c43..d710d6264bf 100644 --- a/code/modules/materials/material_sheets.dm +++ b/code/modules/materials/material_sheets.dm @@ -229,7 +229,7 @@ amount = max_amount update_icon() -//Fuel for MRSPACMAN generator. +//Fuel for the super portable generator. /obj/item/stack/material/tritium name = "tritium" icon_state = "sheet-silver" @@ -451,3 +451,14 @@ . = ..() amount = max_amount update_icon() + +/obj/item/stack/material/graphite + name = "graphite" + icon_state = "sheet-graphite" + default_type = MATERIAL_GRAPHITE + icon_has_variants = TRUE + +/obj/item/stack/material/graphite/full/Initialize() + . = ..() + amount = max_amount + update_icon() \ No newline at end of file diff --git a/code/modules/materials/materials.dm b/code/modules/materials/materials.dm index 56f77fa69e3..d5e89d0c9f2 100644 --- a/code/modules/materials/materials.dm +++ b/code/modules/materials/materials.dm @@ -1001,3 +1001,18 @@ display_name = "superadvanced alloy" icon_colour = null icon_base = "skrell" + +/material/graphite + name = MATERIAL_GRAPHITE + stack_type = /obj/item/stack/material/graphite + icon_base = "graphite" + icon_colour = "#666666" + shard_type = SHARD_STONE_PIECE + weight = 20 + hardness = 20 + protectiveness = 5 // 20% + conductivity = 5 + sheet_singular_name = "bar" + sheet_plural_name = "bars" + drop_sound = 'sound/items/drop/boots.ogg' + pickup_sound = 'sound/items/pickup/boots.ogg' \ No newline at end of file diff --git a/code/modules/mining/ore_datum.dm b/code/modules/mining/ore_datum.dm index 5db1872a7c3..870f9834b7c 100644 --- a/code/modules/mining/ore_datum.dm +++ b/code/modules/mining/ore_datum.dm @@ -54,6 +54,7 @@ var/global/list/ore_data = list() name = ORE_COAL display_name = "raw carbon" smelts_to = MATERIAL_PLASTIC + compresses_to = MATERIAL_GRAPHITE alloy = 1 result_amount = 5 spread_chance = 35 diff --git a/code/modules/power/port_gen.dm b/code/modules/power/portgen.dm similarity index 68% rename from code/modules/power/port_gen.dm rename to code/modules/power/portgen.dm index 6ebf30b0263..0f65cd8a9c3 100644 --- a/code/modules/power/port_gen.dm +++ b/code/modules/power/portgen.dm @@ -1,7 +1,7 @@ //Baseline portable generator. Has all the default handling. Not intended to be used on it's own (since it generates unlimited power). -/obj/machinery/power/port_gen - name = "Placeholder Generator" //seriously, don't use this. It can't be anchored without VV magic. - desc = "A portable generator for emergency backup power" +/obj/machinery/power/portgen + name = "placeholder generator" // Don't use this. It can't be anchored without VV magic. + desc = "You aren't supposed to see this." icon = 'icons/obj/power.dmi' icon_state = "portgen0_0" var/base_icon = "portgen0" @@ -12,33 +12,36 @@ var/power_gen = 5000 var/open = FALSE var/power_output = 1 + var/portgen_lightcolour = "#000000" has_special_power_checks = TRUE -/obj/machinery/power/port_gen/Initialize() +/obj/machinery/power/portgen/Initialize() . = ..() -/obj/machinery/power/port_gen/proc/IsBroken() +/obj/machinery/power/portgen/proc/IsBroken() return (stat & (BROKEN|EMPED)) -/obj/machinery/power/port_gen/proc/HasFuel() //Placeholder for fuel check. +/obj/machinery/power/portgen/proc/HasFuel() //Placeholder for fuel check. return TRUE -/obj/machinery/power/port_gen/proc/UseFuel() //Placeholder for fuel use. +/obj/machinery/power/portgen/proc/UseFuel() //Placeholder for fuel use. return -/obj/machinery/power/port_gen/proc/DropFuel() +/obj/machinery/power/portgen/proc/DropFuel() return -/obj/machinery/power/port_gen/proc/handleInactive() +/obj/machinery/power/portgen/proc/handleInactive() return -/obj/machinery/power/port_gen/machinery_process() +/obj/machinery/power/portgen/machinery_process() if(active && HasFuel() && !IsBroken() && anchored) + set_light(2, 1, l_color = portgen_lightcolour) if(powernet) add_avail(power_gen * power_output) UseFuel() SSvueui.check_uis_for_change(src) else + set_light(0) active = FALSE icon_state = initial(icon_state) handleInactive() @@ -46,7 +49,7 @@ /obj/machinery/power/powered() return TRUE //doesn't require an external power source -/obj/machinery/power/port_gen/attack_hand(mob/user) +/obj/machinery/power/portgen/attack_hand(mob/user) if(..()) update_icon() return @@ -54,19 +57,19 @@ update_icon() return -/obj/machinery/power/port_gen/update_icon() +/obj/machinery/power/portgen/update_icon() icon_state = "[base_icon]_[active]" return ..() -/obj/machinery/power/port_gen/examine(mob/user) +/obj/machinery/power/portgen/examine(mob/user) if(!..(user, 1)) return if(active) - to_chat(usr, SPAN_NOTICE("The generator is on.")) + to_chat(user, SPAN_NOTICE("The generator is on.")) else - to_chat(usr, SPAN_NOTICE("The generator is off.")) + to_chat(user, SPAN_NOTICE("The generator is off.")) -/obj/machinery/power/port_gen/emp_act(severity) +/obj/machinery/power/portgen/emp_act(severity) var/duration = 6000 //ten minutes switch(severity) if(1) @@ -84,35 +87,39 @@ spawn(duration) stat &= ~EMPED -/obj/machinery/power/port_gen/proc/explode() +/obj/machinery/power/portgen/proc/explode() explosion(loc, -1, 3, 5, -1) qdel(src) #define TEMPERATURE_DIVISOR 40 #define TEMPERATURE_CHANGE_MAX 20 -//A power generator that runs on solid plasma sheets. -/obj/machinery/power/port_gen/pacman - name = "\improper P.A.C.M.A.N.-type Portable Generator" - desc = "A power generator that runs on solid phoron sheets. Rated for 80 kW max safe output." +// +// Portable Generator - Basic +// Runs on graphite. +// +/obj/machinery/power/portgen/basic + name = "portable generator" + desc = "A portable generator that runs on graphite. " + SPAN_WARNING("Rated for 100 kW max safe output.") + portgen_lightcolour = "#BC6E3E" - var/sheet_name = "Phoron Sheets" - var/sheet_path = /obj/item/stack/material/phoron - var/board_path = "/obj/item/circuitboard/pacman" + var/sheet_name = "graphite bars" + var/sheet_path = /obj/item/stack/material/graphite + var/board_path = "/obj/item/circuitboard/portgen" /* - These values were chosen so that the generator can run safely up to 80 kW - A full 50 phoron sheet stack should last 20 minutes at power_output = 4 + These values were chosen so that the generator can run safely up to 100 kW + A full 50 graphite bar stack should last 2 hours at power_output = 4 temperature_gain and max_temperature are set so that the max safe power level is 4. Setting to 5 or higher can only be done temporarily before the generator overheats. */ - power_gen = 20000 //Watts output per power_output level - var/max_power_output = 5 //The maximum power setting without emagging. - var/max_safe_output = 4 // For UI use, maximal output that won't cause overheat. - var/time_per_sheet = 96 //fuel efficiency - how long 1 sheet lasts at power level 1 - var/max_sheets = 100 //max capacity of the hopper - var/max_temperature = 300 //max temperature before overheating increases - var/temperature_gain = 50 //how much the temperature increases per power output level, in degrees per level + power_gen = 25000 //Watts output per power_output level + var/max_power_output = 5 //The maximum power setting without emagging. + var/max_safe_output = 4 // For UI use, maximal output that won't cause overheat. + var/time_per_sheet = 576 //fuel efficiency - how long 1 sheet lasts at power level 1 + var/max_sheets = 50 //max capacity of the hopper + var/max_temperature = 300 //max temperature before overheating increases + var/temperature_gain = 50 //how much the temperature increases per power output level, in degrees per level var/sheets = 0 //How many sheets of material are loaded in the generator var/sheet_left = 0 //How much is left of the current sheet @@ -126,18 +133,18 @@ /obj/item/stock_parts/capacitor ) -/obj/machinery/power/port_gen/pacman/Initialize() +/obj/machinery/power/portgen/basic/Initialize() component_types += board_path . = ..() if(anchored) connect_to_network() -/obj/machinery/power/port_gen/pacman/Destroy() +/obj/machinery/power/portgen/basic/Destroy() DropFuel() return ..() -/obj/machinery/power/port_gen/pacman/RefreshParts() +/obj/machinery/power/portgen/basic/RefreshParts() var/temp_rating = 0 for(var/obj/item/stock_parts/SP in component_parts) @@ -149,27 +156,27 @@ power_gen = round(initial(power_gen) * (max(2, temp_rating) / 2)) SSvueui.check_uis_for_change(src) -/obj/machinery/power/port_gen/pacman/examine(mob/user) +/obj/machinery/power/portgen/basic/examine(mob/user) ..(user) to_chat(user, "\The [src] appears to be producing [power_gen*power_output] W.") to_chat(user, "There [sheets == 1 ? "is" : "are"] [sheets] sheet\s left in the hopper.") if(IsBroken()) to_chat(user, SPAN_WARNING("\The [src] seems to have broken down.")) if(overheating) to_chat(user, SPAN_DANGER("\The [src] is overheating!")) -/obj/machinery/power/port_gen/pacman/HasFuel() +/obj/machinery/power/portgen/basic/HasFuel() var/needed_sheets = power_output / time_per_sheet if(sheets >= needed_sheets - sheet_left) return TRUE //Removes one stack's worth of material from the generator. -/obj/machinery/power/port_gen/pacman/DropFuel() +/obj/machinery/power/portgen/basic/DropFuel() if(sheets) var/obj/item/stack/material/S = new sheet_path(loc) var/amount = min(sheets, S.max_amount) S.amount = amount sheets -= amount -/obj/machinery/power/port_gen/pacman/UseFuel() +/obj/machinery/power/portgen/basic/UseFuel() //how much material are we using this iteration? var/needed_sheets = power_output / time_per_sheet @@ -222,7 +229,7 @@ SSvueui.check_uis_for_change(src) -/obj/machinery/power/port_gen/pacman/handleInactive() +/obj/machinery/power/portgen/basic/handleInactive() var/cooling_temperature = 20 var/turf/T = get_turf(src) @@ -242,25 +249,12 @@ if(overheating) overheating-- -/obj/machinery/power/port_gen/pacman/proc/overheat() +/obj/machinery/power/portgen/basic/proc/overheat() overheating++ if (overheating > 60) explode() -/obj/machinery/power/port_gen/pacman/explode() - //Vapourize all the phoron - //When ground up in a grinder, 1 sheet produces 20 u of phoron -- Chemistry-Machinery.dm - //1 mol = 10 u? I dunno. 1 mol of carbon is definitely bigger than a pill - var/phoron = (sheets+sheet_left)*20 - var/datum/gas_mixture/environment = loc.return_air() - if (environment) - environment.adjust_gas_temp(GAS_PHORON, phoron/10, temperature + T0C) - - sheets = 0 - sheet_left = 0 - ..() - -/obj/machinery/power/port_gen/pacman/emag_act(var/remaining_charges, var/mob/user) +/obj/machinery/power/portgen/basic/emag_act(var/remaining_charges, var/mob/user) if (active && prob(25)) explode() //if they're foolish enough to emag while it's running @@ -268,7 +262,7 @@ emagged = TRUE return TRUE -/obj/machinery/power/port_gen/pacman/attackby(var/obj/item/O, var/mob/user) +/obj/machinery/power/portgen/basic/attackby(var/obj/item/O, var/mob/user) if(istype(O, sheet_path)) var/obj/item/stack/addstack = O var/amount = min((max_sheets - sheets), addstack.amount) @@ -313,18 +307,18 @@ qdel(src) SSvueui.check_uis_for_change(src) -/obj/machinery/power/port_gen/pacman/attack_hand(mob/user) +/obj/machinery/power/portgen/basic/attack_hand(mob/user) ..() if (!anchored) return ui_interact(user) -/obj/machinery/power/port_gen/pacman/attack_ai(mob/user) +/obj/machinery/power/portgen/basic/attack_ai(mob/user) if(!ai_can_interact(user)) return ui_interact(user) -/obj/machinery/power/port_gen/pacman/vueui_data_change(var/list/data, var/mob/user, var/datum/vueui/ui) +/obj/machinery/power/portgen/basic/vueui_data_change(var/list/data, var/mob/user, var/datum/vueui/ui) if(!data) . = data = list() @@ -355,13 +349,13 @@ return data -/obj/machinery/power/port_gen/pacman/ui_interact(mob/user) +/obj/machinery/power/portgen/basic/ui_interact(mob/user) var/datum/vueui/ui = SSvueui.get_open_ui(user, src) if (!ui) - ui = new(user, src, "machinery-power-pacman", 500, 560, capitalize(name)) + ui = new(user, src, "machinery-power-portgen", 500, 560, capitalize(name)) ui.open() -/obj/machinery/power/port_gen/pacman/Topic(href, href_list) +/obj/machinery/power/portgen/basic/Topic(href, href_list) if(..()) return @@ -386,24 +380,32 @@ power_output++ SSvueui.check_uis_for_change(src) -/obj/machinery/power/port_gen/pacman/super - name = "S.U.P.E.R.P.A.C.M.A.N.-type Portable Generator" - desc = "A power generator that utilizes uranium sheets as fuel. Can run for much longer than the standard PACMAN type generators. Rated for 80 kW max safe output." +// +// Portable Generator - Advanced +// Runs on uranium. +// +/obj/machinery/power/portgen/basic/advanced + name = "advanced portable generator" + desc = "An advanced portable generator that runs on uranium. Runs much more efficiently than the basic graphite model due to the higher energy density of uranium. " + SPAN_WARNING("Rated for 200 kW max safe output.") icon_state = "portgen1_0" base_icon = "portgen1" - sheet_path = /obj/item/stack/material/uranium - sheet_name = "Uranium Sheets" - time_per_sheet = 576 //same power output, but a 50 sheet stack will last 2 hours at max safe power - board_path = "/obj/item/circuitboard/pacman/super" + portgen_lightcolour = "#458943" -/obj/machinery/power/port_gen/pacman/super/UseFuel() + sheet_name = "uranium sheets" + sheet_path = /obj/item/stack/material/uranium + board_path = "/obj/item/circuitboard/portgen/advanced" + + power_gen = 50000 // 200 kW = safe max, 250 kW = unsafe max. + temperature_gain = 60 + +/obj/machinery/power/portgen/basic/advanced/UseFuel() //produces a tiny amount of radiation when in use if (prob(2 * power_output)) for (var/mob/living/L in range(src, 5)) L.apply_damage(1, IRRADIATE, damage_flags = DAM_DISPERSED) //should amount to ~5 rads per minute at max safe power ..() -/obj/machinery/power/port_gen/pacman/super/explode() +/obj/machinery/power/portgen/basic/advanced/explode() //a nice burst of radiation var/rads = 50 + (sheets + sheet_left)*1.5 for (var/mob/living/L in range(src, 10)) @@ -414,25 +416,28 @@ explosion(loc, 3, 3, 5, 3) qdel(src) -/obj/machinery/power/port_gen/pacman/mrs - name = "M.R.S.P.A.C.M.A.N.-type Portable Generator" - desc = "An advanced power generator that runs on tritium. Rated for 200 kW maximum safe output!" +// +// Portable Generator - Super +// Runs on tritium. +// +/obj/machinery/power/portgen/basic/super + name = "super portable generator" + desc = "An advanced portable generator that runs on tritium. Runs even more efficiently than the uranium-driven model due to the higher energy density of tritium. " + SPAN_WARNING("Rated for 500 kW max safe output.") icon_state = "portgen2_0" base_icon = "portgen2" - sheet_path = /obj/item/stack/material/tritium - sheet_name = "Tritium Fuel Sheets" + portgen_lightcolour = "#476ACC" - //I don't think tritium has any other use, so we might as well make this rewarding for players - //max safe power output (power level = 8) is 200 kW and lasts for 1 hour - 3 or 4 of these could power the station - power_gen = 25000 //watts + sheet_name = "tritium sheets" + sheet_path = /obj/item/stack/material/tritium + board_path = "/obj/item/circuitboard/portgen/super" + + power_gen = 125000 // 500 kW = safe max, 750 kW = unsafe max max_power_output = 10 max_safe_output = 8 time_per_sheet = 576 - max_temperature = 800 - temperature_gain = 90 - board_path = "/obj/item/circuitboard/pacman/mrs" + max_temperature = 720 + temperature_gain = 80 -/obj/machinery/power/port_gen/pacman/mrs/explode() - //no special effects, but the explosion is pretty big (same as a supermatter shard). - explosion(loc, 3, 6, 12, 16, 1) - qdel(src) +/obj/machinery/power/portgen/basic/super/explode() + explosion(loc, 3, 6, 12, 16, 1) // No special effects, but the explosion is pretty big (same as a supermatter shard). + qdel(src) \ No newline at end of file diff --git a/code/modules/random_map/drop/drop_types.dm b/code/modules/random_map/drop/drop_types.dm index 142456a2db6..1bd8a5bc0df 100644 --- a/code/modules/random_map/drop/drop_types.dm +++ b/code/modules/random_map/drop/drop_types.dm @@ -184,9 +184,9 @@ var/global/list/datum/supply_drop_loot/supply_drop /datum/supply_drop_loot/power/New() ..() contents = list( - /obj/machinery/power/port_gen/pacman, - /obj/machinery/power/port_gen/pacman/super, - /obj/machinery/power/port_gen/pacman/mrs) + /obj/machinery/power/portgen/basic, + /obj/machinery/power/portgen/basic/advanced, + /obj/machinery/power/portgen/basic/super) /datum/supply_drop_loot/power/contents() return list(pick(contents)) diff --git a/code/modules/research/designs/circuit/machine_circuits.dm b/code/modules/research/designs/circuit/machine_circuits.dm index 5ba81621a7c..12c96158b59 100644 --- a/code/modules/research/designs/circuit/machine_circuits.dm +++ b/code/modules/research/designs/circuit/machine_circuits.dm @@ -156,20 +156,20 @@ req_tech = list(TECH_MAGNET = 2, TECH_ENGINEERING = 2) build_path = /obj/item/circuitboard/candymachine -/datum/design/circuit/machine/pacman - name = "PACMAN-type Generator" +/datum/design/circuit/machine/portgen + name = "portable generator" req_tech = list(TECH_DATA = 3, TECH_PHORON = 3, TECH_POWER = 3, TECH_ENGINEERING = 3) - build_path = /obj/item/circuitboard/pacman + build_path = /obj/item/circuitboard/portgen -/datum/design/circuit/machine/superpacman - name = "SUPERPACMAN-type generator" +/datum/design/circuit/machine/advancedportgen + name = "advanced portable generator" req_tech = list(TECH_DATA = 3, TECH_POWER = 4, TECH_ENGINEERING = 4) - build_path = /obj/item/circuitboard/pacman/super + build_path = /obj/item/circuitboard/portgen/advanced -/datum/design/circuit/machine/mrspacman - name = "MRSPACMAN-type generator" +/datum/design/circuit/machine/superportgen + name = "super portable generator" req_tech = list(TECH_DATA = 3, TECH_POWER = 5, TECH_ENGINEERING = 5) - build_path = /obj/item/circuitboard/pacman/mrs + build_path = /obj/item/circuitboard/portgen/super /datum/design/circuit/machine/batteryrack name = "Cell Rack PSU" diff --git a/html/changelogs/portable_generator_refluff.yml b/html/changelogs/portable_generator_refluff.yml new file mode 100644 index 00000000000..56693975e52 --- /dev/null +++ b/html/changelogs/portable_generator_refluff.yml @@ -0,0 +1,10 @@ +author: SleepyGemmy + +delete-after: True + +changes: + - tweak: "Changes the name and description of portable generators to describe their function better." + - tweak: "Buffs portable generators a bit so that they are actually usable for powering things, like shuttles." + - tweak: "Replaces the phoron-driven portable generator variant with a graphite-powered one, since phoron is supposed to be scarce." + - rscadd: "Adds light to portable generators when they are active, per their fuel's \"colour\"." + - rscadd: "Adds graphite. It is made from compressing coal at a mining refinery. For now, it is only used in portable generators." \ No newline at end of file diff --git a/icons/mob/items/stacks/lefthand_materials.dmi b/icons/mob/items/stacks/lefthand_materials.dmi index 70ac3748c95..34a8652ee3a 100644 Binary files a/icons/mob/items/stacks/lefthand_materials.dmi and b/icons/mob/items/stacks/lefthand_materials.dmi differ diff --git a/icons/mob/items/stacks/righthand_materials.dmi b/icons/mob/items/stacks/righthand_materials.dmi index f59557d87b9..1f6a1091b6e 100644 Binary files a/icons/mob/items/stacks/righthand_materials.dmi and b/icons/mob/items/stacks/righthand_materials.dmi differ diff --git a/icons/obj/power.dmi b/icons/obj/power.dmi index 3d290f99eef..8ce051d61a7 100644 Binary files a/icons/obj/power.dmi and b/icons/obj/power.dmi differ diff --git a/icons/obj/stacks/materials.dmi b/icons/obj/stacks/materials.dmi index dbd41bb42df..88e3eb2f5db 100644 Binary files a/icons/obj/stacks/materials.dmi and b/icons/obj/stacks/materials.dmi differ diff --git a/maps/aurora/aurora-3_sublevel.dmm b/maps/aurora/aurora-3_sublevel.dmm index e200983e5d9..2a7bff9c0cf 100644 --- a/maps/aurora/aurora-3_sublevel.dmm +++ b/maps/aurora/aurora-3_sublevel.dmm @@ -10415,7 +10415,7 @@ /turf/simulated/floor/tiled, /area/outpost/research/anomaly_storage) "asW" = ( -/obj/machinery/power/port_gen/pacman, +/obj/machinery/power/portgen/basic, /obj/effect/decal/cleanable/dirt, /turf/simulated/floor, /area/bridge/aibunker) @@ -27752,7 +27752,7 @@ /area/rnd/test_range) "eIl" = ( /obj/effect/floor_decal/industrial/outline/yellow, -/obj/machinery/power/port_gen/pacman, +/obj/machinery/power/portgen/basic, /turf/simulated/floor/tiled, /area/engineering/backup_SMES) "eIS" = ( diff --git a/maps/aurora/aurora-4_mainlevel.dmm b/maps/aurora/aurora-4_mainlevel.dmm index 7df7f58fb8e..8bdab268d45 100644 --- a/maps/aurora/aurora-4_mainlevel.dmm +++ b/maps/aurora/aurora-4_mainlevel.dmm @@ -60469,7 +60469,7 @@ /turf/simulated/floor/marble, /area/maintenance/cargo) "ffY" = ( -/obj/machinery/power/port_gen/pacman, +/obj/machinery/power/portgen/basic, /turf/simulated/floor/plating, /area/maintenance/engineering) "fgj" = ( @@ -65651,7 +65651,7 @@ /turf/simulated/floor/wood, /area/maintenance/bar) "pam" = ( -/obj/machinery/power/port_gen/pacman, +/obj/machinery/power/portgen/basic, /turf/simulated/floor/plating, /area/engineering/storage_hard) "pch" = ( diff --git a/maps/aurora/aurora-6_surface.dmm b/maps/aurora/aurora-6_surface.dmm index f49a77313cb..1e8774af2f8 100644 --- a/maps/aurora/aurora-6_surface.dmm +++ b/maps/aurora/aurora-6_surface.dmm @@ -26965,7 +26965,7 @@ /turf/simulated/floor/wood, /area/sconference_room) "wXr" = ( -/obj/machinery/power/port_gen/pacman, +/obj/machinery/power/portgen/basic, /obj/effect/floor_decal/industrial/outline/yellow, /turf/simulated/floor/tiled, /area/tcommsat/computer) diff --git a/maps/away/romanovich/first_aurora.dmm b/maps/away/romanovich/first_aurora.dmm index c14aadb3c16..1ab3425aca2 100644 --- a/maps/away/romanovich/first_aurora.dmm +++ b/maps/away/romanovich/first_aurora.dmm @@ -7006,7 +7006,7 @@ /turf/simulated/floor/tiled/white, /area/derelict/hallway/southeast) "vA" = ( -/obj/machinery/power/port_gen/pacman, +/obj/machinery/power/portgen/basic, /turf/simulated/floor/airless, /area/derelict/hallway/southwest) "vB" = ( diff --git a/maps/dungeon_spawns/vault_unique.dmm b/maps/dungeon_spawns/vault_unique.dmm index 75b81ccf629..e18563b2b79 100644 --- a/maps/dungeon_spawns/vault_unique.dmm +++ b/maps/dungeon_spawns/vault_unique.dmm @@ -9,7 +9,7 @@ /turf/simulated/wall/r_wall, /area/turret_protected/corp_vault) "d" = ( -/obj/machinery/power/port_gen/pacman, +/obj/machinery/power/portgen/basic, /obj/structure/cable/yellow{ d2 = 4; icon_state = "0-4" diff --git a/maps/sccv_horizon/sccv_horizon-2_deck_2.dmm b/maps/sccv_horizon/sccv_horizon-2_deck_2.dmm index 7084abdf63f..dcd8fb0899c 100644 --- a/maps/sccv_horizon/sccv_horizon-2_deck_2.dmm +++ b/maps/sccv_horizon/sccv_horizon-2_deck_2.dmm @@ -34587,7 +34587,7 @@ /turf/simulated/floor/tiled/white, /area/medical/reception) "uHY" = ( -/obj/machinery/power/port_gen/pacman, +/obj/machinery/power/portgen/basic, /obj/machinery/camera/network/engineering{ c_tag = "Engineering - Secure Technical Storage"; dir = 4 diff --git a/maps/templates/sol.dmm b/maps/templates/sol.dmm index f9e799dcfb4..b74bce871ee 100644 --- a/maps/templates/sol.dmm +++ b/maps/templates/sol.dmm @@ -327,7 +327,7 @@ /turf/simulated/floor/greengrid, /area/derelict/ship) "bb" = ( -/obj/machinery/power/port_gen/pacman/super, +/obj/machinery/power/portgen/basic/advanced, /turf/simulated/floor/tiled/dark, /area/derelict/ship) "bc" = ( diff --git a/vueui/src/components/view/machinery/power/pacman.vue b/vueui/src/components/view/machinery/power/portgen.vue similarity index 100% rename from vueui/src/components/view/machinery/power/pacman.vue rename to vueui/src/components/view/machinery/power/portgen.vue