From 31e8a5ebaea4f83ad22107ec1945beb4b9147076 Mon Sep 17 00:00:00 2001 From: "giacomand@gmail.com" Date: Thu, 3 Jan 2013 15:23:43 +0000 Subject: [PATCH] Portable generators will not remake powernets everytime a wrench is used on it. Got rid of the reliability factors for generating power or critically failing. Increased the time factor for each sheet for all generators. Added some feedback stuff such as saying which fuel the generator takes and how much power is in the current powernet, that it is connected to. Powernet making will not wire up "power" machines that are not anchored. git-svn-id: http://tgstation13.googlecode.com/svn/trunk@5458 316c924e-a436-60f5-8080-3fe189b3f50e --- code/modules/power/port_gen.dm | 54 +++++++++++++++++++--------------- code/modules/power/power.dm | 2 +- 2 files changed, 32 insertions(+), 24 deletions(-) diff --git a/code/modules/power/port_gen.dm b/code/modules/power/port_gen.dm index 423fd04bf5c..daad2e57444 100644 --- a/code/modules/power/port_gen.dm +++ b/code/modules/power/port_gen.dm @@ -48,7 +48,7 @@ display round(lastgen) and plasmatank amount icon_state = "portgen0" density = 1 anchored = 0 - directwired = 1 + directwired = 0 use_power = 0 var/active = 0 @@ -67,12 +67,8 @@ display round(lastgen) and plasmatank amount return /obj/machinery/power/port_gen/process() - if(active && HasFuel() && !crit_fail && anchored) - if(prob(reliability)) - add_avail(power_gen * power_output) - else if(!recent_fault) - recent_fault = 1 - else crit_fail = 1 + if(active && HasFuel() && !crit_fail && anchored && powernet) + add_avail(power_gen * power_output) UseFuel() src.updateDialog() @@ -98,12 +94,18 @@ display round(lastgen) and plasmatank amount name = "P.A.C.M.A.N.-type Portable Generator" var/sheets = 0 var/max_sheets = 100 + var/sheet_name = "" var/sheet_path = /obj/item/stack/sheet/mineral/plasma var/board_path = "/obj/item/weapon/circuitboard/pacman" var/sheet_left = 0 // How much is left of the sheet - var/time_per_sheet = 10 + var/time_per_sheet = 40 var/heat = 0 +/obj/machinery/power/port_gen/pacman/initialize() + ..() + if(anchored) + connect_to_network() + /obj/machinery/power/port_gen/pacman/New() ..() component_parts = list() @@ -113,6 +115,8 @@ display round(lastgen) and plasmatank amount component_parts += new /obj/item/weapon/cable_coil(src) component_parts += new /obj/item/weapon/stock_parts/capacitor(src) component_parts += new board_path(src) + var/obj/sheet = new sheet_path(null) + sheet_name = sheet.name RefreshParts() /obj/machinery/power/port_gen/pacman/RefreshParts() @@ -130,7 +134,7 @@ display round(lastgen) and plasmatank amount /obj/machinery/power/port_gen/pacman/examine() ..() - usr << "\blue The generator has [sheets] units of fuel left, producing [power_gen] per cycle." + usr << "\blue The generator has [sheets] units of [sheet_name] fuel left, producing [power_gen] per cycle." if(crit_fail) usr << "\red The generator seems to have broken down." /obj/machinery/power/port_gen/pacman/HasFuel() @@ -170,13 +174,10 @@ display round(lastgen) and plasmatank amount return /obj/machinery/power/port_gen/pacman/handleInactive() - heat -= 2 - if (heat < 0) - heat = 0 - else - for(var/mob/M in viewers(1, src)) - if (M.client && M.machine == src) - src.updateUsrDialog() + + if (heat > 0) + heat = max(heat - 2, 0) + src.updateDialog() /obj/machinery/power/port_gen/pacman/proc/overheat() explosion(src.loc, 2, 5, 2, -1) @@ -196,14 +197,19 @@ display round(lastgen) and plasmatank amount emagged = 1 emp_act(1) else if(!active) + if(istype(O, /obj/item/weapon/wrench)) - anchored = !anchored - playsound(src.loc, 'sound/items/Deconstruct.ogg', 50, 1) - if(anchored) + + if(!anchored) + connect_to_network() user << "\blue You secure the generator to the floor." else + disconnect_from_network() user << "\blue You unsecure the generator from the floor." - makepowernets() + + playsound(src.loc, 'sound/items/Deconstruct.ogg', 50, 1) + anchored = !anchored + else if(istype(O, /obj/item/weapon/screwdriver)) open = !open playsound(src.loc, 'sound/items/Screwdriver.ogg', 50, 1) @@ -248,13 +254,15 @@ display round(lastgen) and plasmatank amount dat += text("Generator: On
") else dat += text("Generator: Off
") - dat += text("sheets: [sheets]
") + dat += text("[capitalize(sheet_name)]: [sheets]
") var/stack_percent = round(sheet_left * 100, 1) dat += text("Current stack: [stack_percent]%
") dat += text("Power output: - [power_gen * power_output] +
") + dat += text("Power current: [(powernet == null ? "Unconnected" : "[avail()]")]
") dat += text("Heat: [heat]
") dat += "
Close" user << browse("[dat]", "window=port_gen") + onclose(user, "port_gen") /obj/machinery/power/port_gen/pacman/Topic(href, href_list) if(..()) @@ -289,7 +297,7 @@ display round(lastgen) and plasmatank amount icon_state = "portgen1" sheet_path = /obj/item/stack/sheet/mineral/uranium power_gen = 15000 - time_per_sheet = 25 + time_per_sheet = 65 board_path = "/obj/item/weapon/circuitboard/pacman/super" overheat() explosion(src.loc, 3, 3, 3, -1) @@ -299,7 +307,7 @@ display round(lastgen) and plasmatank amount icon_state = "portgen2" sheet_path = /obj/item/stack/sheet/mineral/diamond power_gen = 40000 - time_per_sheet = 30 + time_per_sheet = 80 board_path = "/obj/item/weapon/circuitboard/pacman/mrs" overheat() explosion(src.loc, 4, 4, 4, -1) diff --git a/code/modules/power/power.dm b/code/modules/power/power.dm index a21e0357648..3f3fae0190a 100644 --- a/code/modules/power/power.dm +++ b/code/modules/power/power.dm @@ -176,7 +176,7 @@ C.powernet = PN P = C.get_connections() - else if( istype(O,/obj/machinery/power) ) + else if(O.anchored && istype(O,/obj/machinery/power)) var/obj/machinery/power/M = O M.powernet = PN P = M.get_connections()