Implements better powernet warning system (as suggested by mwerezak)

This commit is contained in:
Atlantiscze
2014-11-12 12:33:23 +01:00
parent ddaac3e175
commit f29cd211e6
4 changed files with 11 additions and 8 deletions

View File

@@ -957,7 +957,7 @@ ________________________________________________________________________________
var/datum/effect/effect/system/spark_spread/spark_system = new /datum/effect/effect/system/spark_spread()
spark_system.set_up(5, 0, A.loc)
while(G.candrain&&A.cell.charge>0&&!maxcapacity)
A.terminal.powernet.newproblem = 1
A.terminal.powernet.trigger_warning()
drain = rand(G.mindrain,G.maxdrain)
if(A.cell.charge<drain)
drain = A.cell.charge
@@ -1083,7 +1083,7 @@ ________________________________________________________________________________
var/obj/structure/cable/A = target
var/datum/powernet/PN = A.get_powernet()
while(G.candrain&&!maxcapacity&&!isnull(A))
PN.newproblem = 1
PN.trigger_warning()
drain = (round((rand(G.mindrain,G.maxdrain))/2))
var/drained = 0
if(PN&&do_after(U,10))

View File

@@ -95,7 +95,7 @@
var/datum/powernet/PN = attached.get_powernet()
if(PN)
SetLuminosity(12)
PN.newproblem = 1
PN.trigger_warning()
// found a powernet, so drain up to max power from it
var/drained = PN.draw_power(drain_rate)

View File

@@ -13,8 +13,6 @@
var/netexcess = 0 // excess power on the powernet (typically avail-load)
var/problem = 0 // If either of these is set to 1 there is some sort of issue at the powernet.
var/newproblem = 0 // At time of implementation this may be: Powersink, Spess Ninja recharging
/datum/powernet/New()
powernets += src
@@ -76,13 +74,18 @@
M.powernet = src
nodes[M] = M
// Triggers warning for certain amount of ticks
/datum/powernet/proc/trigger_warning(var/duration_ticks = 20)
problem = max(duration_ticks, problem)
//handles the power changes in the powernet
//called every ticks by the powernet controller
/datum/powernet/proc/reset()
var/numapc = 0
problem = newproblem
newproblem = 0
if(problem > 0)
problem = max(problem - 1, 0)
if(nodes && nodes.len) // Added to fix a bad list bug -- TLE
for(var/obj/machinery/power/terminal/term in nodes)

View File

@@ -78,7 +78,7 @@
else
textavail += " W"
if(powernet.problem || powernet.newproblem)
if(powernet.problem)
out += "<br><b>WARNING: Abnormal grid activity detected!</b>"
out += "<br><b>TOTAL GRID LOAD: [total_load]</b>"
out += "<br><b>TOTAL AVAILABLE: [textavail]</b>"