From 3dacc661f3927cb5bfb2e34d9293834abaf99047 Mon Sep 17 00:00:00 2001 From: "morikou@gmail.com" Date: Thu, 24 Feb 2011 16:51:50 +0000 Subject: [PATCH] Duckberg Update: - Uranium coins can now be produced from the mint. You can also produce more then 10 coins at a time. - Two new more advanced versions of the PACMAN type portable generator: SUPERPACMAN (runs off of uranium coins, produces ~10,000 power base; requires Materials 5 and power tech 4) and MRSPACMAN (runs off of diamond coins, produces ~20,000 power base; requires materials 6 and power tech 5). Construction nearly identical to the basic PACMAN generator. - Fixed some R&D bugs. Always forgetting something. Copy/paste is the devil. - Tweaked nuclear gun slightly. I need to make a better R&D readme one of these days... - Tier 3 stock parts added. These often require rare mateirals (such as from mining) and aren't 100% reliable. However, they do allow some machines to become quite powerful... Note: Since I forgot it in the last update: To use the generators, you have to wrench them into place over a wire connected to the powergrid you want to pump power into. git-svn-id: http://tgstation13.googlecode.com/svn/trunk@1116 316c924e-a436-60f5-8080-3fe189b3f50e --- code/WorkInProgress/mining.dm | 41 ++++---- code/defines/obj/weapon.dm | 50 ++++++++- code/game/machinery/constructable_frame.dm | 12 ++- code/game/objects/items/weapons/guns_ammo.dm | 7 +- code/game/research/designs.dm | 103 +++++++++++++++++-- code/game/research/rd-readme.dm | 20 ++-- code/game/research/rdconsole.dm | 13 ++- code/modules/power/port_gen.dm | 34 ++++-- 8 files changed, 223 insertions(+), 57 deletions(-) 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"