diff --git a/code/WorkInProgress/mining.dm b/code/WorkInProgress/mining.dm
index 7ce68870fb3..4d1de47c356 100644
--- a/code/WorkInProgress/mining.dm
+++ b/code/WorkInProgress/mining.dm
@@ -1989,7 +1989,7 @@ var/list/datum/material_recipe/MATERIAL_RECIPES = list(
var/amt_diamond = 0
var/amt_iron = 0
var/amt_plasma = 0
- //var/amt_uranium = 0
+ var/amt_uranium = 0
var/amt_clown = 0
var/newCoins = 0 //how many coins the machine made in it's last load
var/processing = 0
@@ -2028,9 +2028,9 @@ var/list/datum/material_recipe/MATERIAL_RECIPES = list(
if (istype(O,/obj/item/stack/sheet/plasma))
amt_plasma += 100 * O.amount
del(O)
- /*if (istype(O,/obj/item/weapon/ore/uranium))
- amt_uranium += 100
- del(O)*/
+ if (istype(O,/obj/item/stack/sheet/uranium))
+ amt_uranium += 100 * O.amount
+ del(O)
if (istype(O,/obj/item/stack/sheet/metal))
amt_iron += 100 * O.amount
del(O)
@@ -2075,11 +2075,11 @@ var/list/datum/material_recipe/MATERIAL_RECIPES = list(
dat += text("chosen")
else
dat += text("Choose")
- /*dat += text("
uranium inserterd: [amt_uranium] ")
+ dat += text("
uranium inserterd: [amt_uranium] ")
if (chosen == "uranium")
dat += text("chosen")
else
- dat += text("Choose")*/
+ dat += text("Choose")
if(amt_clown > 0)
dat += text("
Bananium inserterd: [amt_clown] ")
if (chosen == "clown")
@@ -2088,13 +2088,13 @@ var/list/datum/material_recipe/MATERIAL_RECIPES = list(
dat += text("Choose")
dat += text("
Will produce [coinsToProduce] [chosen] coins if enough materials are available.
")
- dat += text("The dial which controls the number of conins to produce seems to be stuck. A technician has already been dispatched to fix this.")
- /*dat += text("-10 ")
- dat += text("-5 ")
- dat += text("-1 ")
- dat += text("+1 ")
- dat += text("+5 ")
- dat += text("+10 ")*/
+ //dat += text("The dial which controls the number of conins to produce seems to be stuck. A technician has already been dispatched to fix this.")
+ dat += text("-10 ")
+ dat += text("-5 ")
+ dat += text("-1 ")
+ dat += text("+1 ")
+ dat += text("+5 ")
+ dat += text("+10 ")
dat += text("
In total this machine produced [newCoins] coins.")
dat += text("
Make coins")
@@ -2103,16 +2103,17 @@ var/list/datum/material_recipe/MATERIAL_RECIPES = list(
/obj/machinery/mineral/mint/Topic(href, href_list)
if(..())
return
+ usr.machine = src
+ src.add_fingerprint(usr)
if(processing==1)
usr << "\blue The machine is processing."
return
- usr.machine = src
- src.add_fingerprint(usr)
if(href_list["choose"])
chosen = href_list["choose"]
- if(href_list["chooseamt"])
- coinsToProduce += href_list["chooseamt"]
+ if(href_list["chooseAmt"])
+ coinsToProduce = between(0, coinsToProduce + text2num(href_list["chooseAmt"]), 1000)
if(href_list["makeCoins"])
+ var/temp_coins = coinsToProduce
if (src.output)
processing = 1;
var/obj/item/weapon/moneybag/M
@@ -2177,7 +2178,7 @@ var/list/datum/material_recipe/MATERIAL_RECIPES = list(
newCoins++
src.updateUsrDialog()
sleep(5);
- /*if("uranium")
+ if("uranium")
while(amt_uranium > 0 && coinsToProduce > 0)
if (locate(/obj/item/weapon/moneybag,output.loc))
M = locate(/obj/item/weapon/moneybag,output.loc)
@@ -2188,7 +2189,7 @@ var/list/datum/material_recipe/MATERIAL_RECIPES = list(
coinsToProduce--
newCoins++
src.updateUsrDialog()
- sleep(5)*/
+ sleep(5)
if("clown")
while(amt_clown > 0 && coinsToProduce > 0)
if (locate(/obj/item/weapon/moneybag,output.loc))
@@ -2202,7 +2203,7 @@ var/list/datum/material_recipe/MATERIAL_RECIPES = list(
src.updateUsrDialog()
sleep(5);
processing = 0;
- coinsToProduce = 10;
+ coinsToProduce = temp_coins
src.updateUsrDialog()
return
diff --git a/code/defines/obj/weapon.dm b/code/defines/obj/weapon.dm
index fb0e1ff27f2..30c2e8cd370 100644
--- a/code/defines/obj/weapon.dm
+++ b/code/defines/obj/weapon.dm
@@ -1743,6 +1743,8 @@ Total SMES charging rate should not exceed total power generation rate, or an ov
src.pixel_x = rand(-5.0, 5)
src.pixel_y = rand(-5.0, 5)
+//Rank 1
+
/obj/item/weapon/stock_parts/console_screen
name = "Console Screen"
desc = "Used in the construction of computers and other devices with a interactive console."
@@ -1766,7 +1768,7 @@ Total SMES charging rate should not exceed total power generation rate, or an ov
m_amt = 50
g_amt = 20
-/obj/item/weapon/stock_parts/micro_manipulator
+/obj/item/weapon/stock_parts/manipulator
name = "Micro-Manipulator"
desc = "A tiny little manipulator used in the construction of certain devices."
icon_state = "micro_mani"
@@ -1788,6 +1790,8 @@ Total SMES charging rate should not exceed total power generation rate, or an ov
origin_tech = "materials=1"
m_amt = 80
+//Rank 2
+
/obj/item/weapon/stock_parts/capacitor/adv
name = "Advanced Capacitor"
desc = "An advanced capacitor used in the construction of a variety of devices."
@@ -1828,4 +1832,48 @@ Total SMES charging rate should not exceed total power generation rate, or an ov
icon_state = "matter_bin"
origin_tech = "materials=3"
rating = 2
+ m_amt = 80
+
+//Rating 3
+
+/obj/item/weapon/stock_parts/capacitor/super
+ name = "Super Capacitor"
+ desc = "A super-high capacity capacitor used in the construction of a variety of devices."
+ origin_tech = "powerstorage=5;materials=4"
+ rating = 3
+ m_amt = 50
+ g_amt = 50
+
+/obj/item/weapon/stock_parts/scanning_module/phasic
+ name = "Phasic Scanning Module"
+ desc = "A compact, high resolution phasic scanning module used in the construction of certain devices."
+ icon_state = "scan_module"
+ origin_tech = "magnets=5"
+ rating = 3
+ m_amt = 50
+ g_amt = 20
+
+/obj/item/weapon/stock_parts/manipulator/pico
+ name = "Pico-Manipulator"
+ desc = "A tiny little manipulator used in the construction of certain devices."
+ icon_state = "pico_mani"
+ origin_tech = "materials=5,programming=2"
+ rating = 3
+ m_amt = 30
+
+/obj/item/weapon/stock_parts/micro_laser/ultra
+ name = "Ultra-High-Power Micro-laser"
+ desc = "A tiny laser used in certain devices."
+ icon_state = "micro_laser"
+ origin_tech = "magnets=5"
+ rating = 3
+ m_amt = 10
+ g_amt = 20
+
+/obj/item/weapon/stock_parts/matter_bin/super
+ name = "Super Matter Bin"
+ desc = "A container for hold compressed matter awaiting re-construction."
+ icon_state = "matter_bin"
+ origin_tech = "materials=5"
+ rating = 3
m_amt = 80
\ No newline at end of file
diff --git a/code/game/machinery/constructable_frame.dm b/code/game/machinery/constructable_frame.dm
index 5aa292b65d2..76bb1d4d22d 100644
--- a/code/game/machinery/constructable_frame.dm
+++ b/code/game/machinery/constructable_frame.dm
@@ -168,9 +168,17 @@ to destroy them and players will be able to make replacements.
name = "Circuit Board (PACMAN-type Generator)"
build_path = "/obj/machinery/power/port_gen/pacman"
board_type = "machine"
- origin_tech = "powerstorage=3;plasmatech=2"
+ origin_tech = "powerstorage=3;plasmatech=3"
req_components = list(
"/obj/item/weapon/stock_parts/matter_bin" = 1,
"/obj/item/weapon/stock_parts/micro_laser" = 1,
"/obj/item/weapon/cable_coil" = 2,
- "/obj/item/weapon/stock_parts/capacitor" = 1)
\ No newline at end of file
+ "/obj/item/weapon/stock_parts/capacitor" = 1)
+
+/obj/item/weapon/circuitboard/pacman/super
+ name = "Circuit Board (SUPERPACMAN-type Generator)"
+ origin_tech = "powerstorage=4;plasmatech=5"
+
+/obj/item/weapon/circuitboard/pacman/mrs
+ name = "Circuit Board (MRSPACMAN-type Generator)"
+ origin_tech = "powerstorage=5;plasmatech=6"
\ No newline at end of file
diff --git a/code/game/objects/items/weapons/guns_ammo.dm b/code/game/objects/items/weapons/guns_ammo.dm
index 4ebb45a94db..21eb066ef55 100644
--- a/code/game/objects/items/weapons/guns_ammo.dm
+++ b/code/game/objects/items/weapons/guns_ammo.dm
@@ -956,13 +956,14 @@ obj/item/weapon/gun/revolver/attackby(obj/item/weapon/ammo/a357/A as obj, mob/us
charges = 10
maximum_charges = 10
m_amt = 2000
+ g_amt = 1000
var/mode = 2
nuclear
name = "Advanced Energy Gun"
desc = "An energy gun with an experimental miniaturized reactor."
- var/critfail = 0
+ origin_tech = "combat=3;materials=5;powerstorage=3"
New()
charge()
@@ -972,7 +973,7 @@ obj/item/weapon/gun/revolver/attackby(obj/item/weapon/ammo/a357/A as obj, mob/us
if(failcheck())
charges++ //If the gun isn't fully charged, and it doesn't suffer a failure, add a charge.
update_icon()
- if(!critfail)
+ if(!crit_fail)
spawn(50) charge()
proc/failcheck()
@@ -990,7 +991,7 @@ obj/item/weapon/gun/revolver/attackby(obj/item/weapon/ammo/a357/A as obj, mob/us
M << "\red Your gun's reactor overloads!"
M << "\red You feel a wave of heat wash over you."
M.radiation += 100
- critfail = 1 //break the gun so it stops recharging
+ crit_fail = 1 //break the gun so it stops recharging
update_icon()
var/ratio = src.charges / maximum_charges
diff --git a/code/game/research/designs.dm b/code/game/research/designs.dm
index 3b20235920b..5b38a1534a6 100644
--- a/code/game/research/designs.dm
+++ b/code/game/research/designs.dm
@@ -8,11 +8,27 @@ you use one of the material IDs below. These are NOT ids in the usual sense (the
they are simply references used as part of a "has materials?" type proc. They all start with a $ to denote that they aren't reagents.
The currently supporting non-reagent materials:
- $metal (/obj/item/stack/metal). One sheet = 3750 units.
-- $glass (/obj/item/stack/metal). One sheet = 3750 units.
+- $glass (/obj/item/stack/glass). One sheet = 3750 units.
+- $plasma (/obj/item/stack/plasma). One sheet = 3750 units.
+- $silver (/obj/item/stack/silver). One sheet = 3750 units.
+- $gold (/obj/item/stack/gold). One sheet = 3750 units.
+- $uranium (/obj/item/stack/uranium). One sheet = 3750 units.
+- $diamond (/obj/item/stack/diamond). One sheet = 3750 units.
+- $clown (/obj/item/stack/clown). One sheet = 3750 units. ("Bananium")
(Insert new ones here)
Don't add new keyword/IDs if they are made from an existing one (such as rods which are made from metal). Only add raw materials.
+Design Guidlines
+- The reliability formula for all R&D built items is reliability_base (a fixed number) + total tech levels required to make it +
+reliability_mod (starts at 0, gets improved through experimentation). Example: PACMAN generator. 79 base reliablity + 6 tech
+(3 plasmatech, 3 powerstorage) + 0 (since it's completely new) = 85% reliability. Reliability is the chance it works CORRECTLY.
+- When adding new designs, check rdreadme.dm to see what kind of things have already been made and where new stuff is needed.
+- A single sheet of anything is 3750 units of material. Materials besides metal/glass require help from other jobs (mining for
+other types of metals and chemistry for reagents).
+- Add the AUTOLATHE tag to
+
+
*/
#define IMPRINTER 1 //For circuits. Uses glass/chemicals.
#define PROTOLATHE 2 //New stuff. Uses glass/metal/chemicals
@@ -531,12 +547,62 @@ datum
adv_matter_bin
name = "Advanced Matter Bin"
desc = "A stock part used in the construction of various devices."
- id = "basic_matter_bin"
+ id = "adv_matter_bin"
req_tech = list("materials" = 3)
build_type = PROTOLATHE
materials = list("$metal" = 80)
build_path = "/obj/item/weapon/stock_parts/matter_bin/adv"
+ super_capacitor
+ name = "Super Capacitor"
+ desc = "A stock part used in the construction of various devices."
+ id = "super_capacitor"
+ req_tech = list("powerstorage" = 5, "materials" = 4)
+ build_type = PROTOLATHE
+ reliability_base = 71
+ materials = list("$metal" = 50, "$glass" = 50, "$gold" = 20)
+ build_path = "/obj/item/weapon/stock_parts/capacitor/super"
+
+ phasic_sensor
+ name = "Phasic Sensor Module"
+ desc = "A stock part used in the construction of various devices."
+ id = "phasic_sensor"
+ req_tech = list("magnets" = 5, "materials" = 3)
+ build_type = PROTOLATHE
+ materials = list("$metal" = 50, "$glass" = 20, "$silver" = 10)
+ reliability_base = 72
+ build_path = "/obj/item/weapon/stock_parts/scanning_module/phasic"
+
+ pico_mani
+ name = "Pico Manipulator"
+ desc = "A stock part used in the construction of various devices."
+ id = "pico_mani"
+ req_tech = list("materials" = 5, "programming" = 2)
+ build_type = PROTOLATHE
+ materials = list("$metal" = 30)
+ reliability_base = 73
+ build_path = "/obj/item/weapon/stock_parts/manipulator/pico"
+
+ ultra_micro_laser
+ name = "Ultra-High-Power Micro-Laser"
+ desc = "A stock part used in the construction of various devices."
+ id = "ultra_micro_laser"
+ req_tech = list("magnets" = 5, "materials" = 5)
+ build_type = PROTOLATHE
+ materials = list("$metal" = 10, "$glass" = 20, "$uranium" = 10)
+ reliability_base = 70
+ build_path = "/obj/item/weapon/stock_parts/micro_laser/ultra"
+
+ super_matter_bin
+ name = "Super Matter Bin"
+ desc = "A stock part used in the construction of various devices."
+ id = "super_matter_bin"
+ req_tech = list("materials" = 5)
+ build_type = PROTOLATHE
+ materials = list("$metal" = 80)
+ reliability_base = 75
+ build_path = "/obj/item/weapon/stock_parts/matter_bin/super"
+
////////////////////////////////////////
//////////////////Power/////////////////
////////////////////////////////////////
@@ -570,7 +636,7 @@ datum
build_path = "/obj/item/weapon/cell/super"
////////////////////////////////////////
-/////////Machine Frame Boards///////////
+//////////////MISC Boards///////////////
////////////////////////////////////////
destructive_analyzer
@@ -609,16 +675,41 @@ datum
materials = list("$glass" = 2000, "acid" = 20)
build_path = "/obj/machinery/autolathe"
+/////////////////////////////////////////
+////////////Power Stuff//////////////////
+/////////////////////////////////////////
+
pacman
name = "PACMAN-type Generator Board"
desc = "The circuit board that for a PACMAN-type portable generator."
id = "pacman"
- req_tech = list("plasmatech" = 2, "powerstorage" = 3)
+ req_tech = list("plasmatech" = 3, "powerstorage" = 3)
build_type = IMPRINTER
- reliability_base = 80
+ reliability_base = 79
materials = list("$glass" = 2000, "acid" = 20)
build_path = "/obj/item/weapon/circuitboard/pacman"
+ superpacman
+ name = "SUPERPACMAN-type Generator Board"
+ desc = "The circuit board that for a SUPERPACMAN-type portable generator."
+ id = "superpacman"
+ req_tech = list("materials" = 5, "powerstorage" = 4)
+ build_type = IMPRINTER
+ reliability_base = 76
+ materials = list("$glass" = 2000, "acid" = 20)
+ build_path = "/obj/item/weapon/circuitboard/pacman/super"
+
+ mrspacman
+ name = "MRSPACMAN-type Generator Board"
+ desc = "The circuit board that for a MRSPACMAN-type portable generator."
+ id = "mrspacman"
+ req_tech = list("materials" = 6, "powerstorage" = 5)
+ build_type = IMPRINTER
+ reliability_base = 74
+ materials = list("$glass" = 2000, "acid" = 20)
+ build_path = "/obj/item/weapon/circuitboard/pacman/mrs"
+
+
/////////////////////////////////////////
////////////Medical Tools////////////////
/////////////////////////////////////////
@@ -651,7 +742,7 @@ datum
name = "Advanced Energy Gun"
desc = "An energy gun with an experimental miniaturized reactor."
id = "nuclear_gun"
- req_tech = list("combat" = 2, "materials" = 5, "powerstorage" = 3)
+ req_tech = list("combat" = 3, "materials" = 5, "powerstorage" = 3)
build_type = PROTOLATHE
materials = list("$metal" = 5000, "$glass" = 1000, "$uranium" = 500)
reliability_base = 76
diff --git a/code/game/research/rd-readme.dm b/code/game/research/rd-readme.dm
index d4339086537..1038939472c 100644
--- a/code/game/research/rd-readme.dm
+++ b/code/game/research/rd-readme.dm
@@ -36,9 +36,9 @@ When thinking about new stuff, check here to see if there are any slots unfilled
1 | Metal
2 | Solid Plasma
3 | Silver
-4 | Gold
-5 | Uranium
-6 | Diamond
+4 | Gold, Super Capacitor
+5 | Uranium, Nuclear Gun, SUPERPACMAN
+6 | Diamond, MRSPACMAN
7 |
8 |
9 |
@@ -57,7 +57,7 @@ When thinking about new stuff, check here to see if there are any slots unfilled
//PLASMA TECH
1 |
2 | Solid Plasma
-3 |
+3 | Pacman Generator
4 |
5 |
6 |
@@ -79,9 +79,9 @@ When thinking about new stuff, check here to see if there are any slots unfilled
//POWER TECH
1 | Basic Capacitor, Basic Cell
2 | High-Capacity Cell (10,000)
-3 | Super-Capacity Cell (20,000), Powersink
-4 |
-5 |
+3 | Super-Capacity Cell (20,000), Powersink, PACMAN
+4 | SUPERPACMAN
+5 | MRSPACMAN, Super Capacitor
6 |
7 |
8 |
@@ -147,7 +147,7 @@ When thinking about new stuff, check here to see if there are any slots unfilled
2 | Comm Console Board
3 | Adv Sensor
4 | Adv Mass Spectrometer, Chameleon Projector
-5 |
+5 | Phasic Sensor
6 |
7 |
8 |
@@ -169,7 +169,7 @@ When thinking about new stuff, check here to see if there are any slots unfilled
2 | Sec Camera
3 | Cloning Machine Console Board
4 | AI Core, Intellicard
-5 |
+5 | Pico-Manipulator, Ultra-Micro-Laser
6 |
7 |
8 |
@@ -211,7 +211,7 @@ When thinking about new stuff, check here to see if there are any slots unfilled
//COMBAT
1 | Flashbang, Mousetrap, Nettle
2 | Stun Baton
-3 | Power Axe, Death Nettle
+3 | Power Axe, Death Nettle, Nuclear Gun
4 |
5 |
6 |
diff --git a/code/game/research/rdconsole.dm b/code/game/research/rdconsole.dm
index 7db8cd836e8..f2cd223ba5b 100644
--- a/code/game/research/rdconsole.dm
+++ b/code/game/research/rdconsole.dm
@@ -77,6 +77,8 @@ won't update every console in existence) but it's more of a hassle to do. Also,
return_name = "Silver"
if("plasma")
return_name = "Solid Plasma"
+ if("uranium")
+ return_name = "Uranium"
if("diamond")
return_name = "Diamond"
if("clown")
@@ -114,8 +116,9 @@ won't update every console in existence) but it's more of a hassle to do. Also,
New()
..()
files = new /datum/research(src) //Setup the research data holder.
- spawn(10)
- SyncRDevices()
+
+ initialize()
+ SyncRDevices()
attackby(var/obj/item/weapon/D as obj, var/mob/user as mob)
//The construction/deconstruction of the console code.
@@ -250,8 +253,8 @@ won't update every console in existence) but it's more of a hassle to do. Also,
if(linked_destroy.loaded_item.reliability < 100 && linked_destroy.loaded_item.crit_fail)
files.UpdateDesign(linked_destroy.loaded_item.type)
if(linked_lathe) //Also sends salvaged materials to a linked autolathe, if any.
- linked_lathe.m_amount = min((linked_lathe.max_material_storage - linked_lathe.TotalMaterials()), (linked_destroy.loaded_item.m_amt*linked_destroy.decon_mod))
- linked_lathe.g_amount = min((linked_lathe.max_material_storage - linked_lathe.TotalMaterials()), (linked_destroy.loaded_item.g_amt*linked_destroy.decon_mod))
+ linked_lathe.m_amount += min((linked_lathe.max_material_storage - linked_lathe.TotalMaterials()), (linked_destroy.loaded_item.m_amt*linked_destroy.decon_mod))
+ linked_lathe.g_amount += min((linked_lathe.max_material_storage - linked_lathe.TotalMaterials()), (linked_destroy.loaded_item.g_amt*linked_destroy.decon_mod))
linked_destroy.loaded_item = null
for(var/obj/I in linked_destroy.contents)
for(var/mob/M in I.contents)
@@ -404,7 +407,7 @@ won't update every console in existence) but it's more of a hassle to do. Also,
screen = 0.0
spawn(20)
SyncRDevices()
- screen = 1.6
+ screen = 1.7
updateUsrDialog()
else if(href_list["disconnect"]) //The R&D console disconnects with a specific device.
diff --git a/code/modules/power/port_gen.dm b/code/modules/power/port_gen.dm
index 61575e6fc30..40bb9330196 100644
--- a/code/modules/power/port_gen.dm
+++ b/code/modules/power/port_gen.dm
@@ -87,8 +87,10 @@ display round(lastgen) and plasmatank amount
/obj/machinery/power/port_gen/pacman
name = "P.A.C.M.A.N.-type Portable Generator"
var
- plasma_coins = 0
+ coins = 0
max_coins = 120
+ coin_path = "/obj/item/weapon/coin/plasma"
+ board_path = "/obj/item/weapon/circuitboard/pacman"
New()
..()
@@ -98,7 +100,7 @@ display round(lastgen) and plasmatank amount
component_parts += new /obj/item/weapon/cable_coil(src)
component_parts += new /obj/item/weapon/cable_coil(src)
component_parts += new /obj/item/weapon/stock_parts/capacitor(src)
- component_parts += new /obj/item/weapon/circuitboard/pacman(src)
+ component_parts += new board_path(src)
RefreshParts()
RefreshParts()
@@ -112,29 +114,29 @@ display round(lastgen) and plasmatank amount
for(var/obj/item/weapon/CP in component_parts)
temp_reliability += CP.reliability
reliability = min(round(temp_reliability / 4), 100)
- power_gen = round(5000 * (max(2, temp_rating) / 2))
+ power_gen = round(initial(power_gen) * (max(2, temp_rating) / 2))
examine()
..()
- usr << "\blue The generator has [plasma_coins] units of fuel left, producing [power_gen] per cycle."
+ usr << "\blue The generator has [coins] units of fuel left, producing [power_gen] per cycle."
if(crit_fail) usr << "\red The generator seems to have broken down."
HasFuel()
- if(plasma_coins)
+ if(coins)
return 1
return 0
UseFuel()
- if(plasma_coins)
- plasma_coins--
+ if(coins)
+ coins--
return
attackby(var/obj/item/O as obj, var/mob/user as mob)
- if(istype(O, /obj/item/weapon/coin/plasma))
- if(plasma_coins >= max_coins)
+ if(istype(O, text2path(coin_path)))
+ if(coins >= max_coins)
user << "\red The generator already has it's maximum amount of fuel!"
return
- plasma_coins++
+ coins++
user.drop_item()
del(O)
user << "\blue You add a coin to the generator."
@@ -169,3 +171,15 @@ display round(lastgen) and plasmatank amount
active = 0
icon_state = "portgen0"
user << "\blue The generator is off."
+
+/obj/machinery/power/port_gen/pacman/super
+ name = "S.U.P.E.R.P.A.C.M.A.N.-type Portable Generator"
+ coin_path = "/obj/item/weapon/coin/uranium"
+ power_gen = 10000
+ board_path = "/obj/item/weapon/circuitboard/pacman/super"
+
+/obj/machinery/power/port_gen/pacman/mrs
+ name = "M.R.S.P.A.C.M.A.N.-type Portable Generator"
+ coin_path = "/obj/item/weapon/coin/diamond"
+ power_gen = 20000
+ board_path = "/obj/item/weapon/circuitboard/pacman/mrs"