From 740a99f01c0ee354ec1681e8d1d5ba5bf166b724 Mon Sep 17 00:00:00 2001 From: Michael Andreen Date: Sun, 24 Aug 2008 11:58:20 +0200 Subject: [PATCH] Use new covert-op alert formula --- database/covopalert.sql | 15 +++++++++++++++ lib/NDWeb/Controller/CovOp.pm | 8 ++++---- 2 files changed, 19 insertions(+), 4 deletions(-) create mode 100644 database/covopalert.sql diff --git a/database/covopalert.sql b/database/covopalert.sql new file mode 100644 index 0000000..18ccc68 --- /dev/null +++ b/database/covopalert.sql @@ -0,0 +1,15 @@ + +CREATE OR REPLACE FUNCTION covop_alert(secs integer, strucs integer, roids integer + , guards integer, gov governments, population integer) RETURNS integer + AS $_$ + SELECT ((50 + COALESCE($4*5.0/($3+1.0),$6)) + * (1.0+LEAST(COALESCE($1::float/$2,$6),0.30)*2 + + (CASE $5 + WHEN 'Dic' THEN 0.20 + WHEN 'Feu' THEN -0.20 + WHEN 'Uni' THEN -0.10 + ELSE 0 + END) + $6/100.0 + ))::integer; +$_$ + LANGUAGE sql IMMUTABLE; diff --git a/lib/NDWeb/Controller/CovOp.pm b/lib/NDWeb/Controller/CovOp.pm index 21a47eb..faf4296 100644 --- a/lib/NDWeb/Controller/CovOp.pm +++ b/lib/NDWeb/Controller/CovOp.pm @@ -50,12 +50,12 @@ sub list : Private { my $dbh = $c->model; my $query = $dbh->prepare(q{SELECT id, coords, metal, crystal, eonium - , covop_alert(seccents,structures,gov,0) AS minalert - , covop_alert(seccents,structures,gov,50) AS maxalert + , covop_alert(seccents,structures,size,guards,gov,0) AS minalert + , covop_alert(seccents,structures,size,guards,gov,50) AS maxalert , distorters,gov , MaxResHack,co.tick AS lastcovop - FROM (SELECT p.id,coords(x,y,z), metal,crystal,eonium, - seccents,NULLIF(ss.total::integer,0) AS structures,distorters + FROM (SELECT p.id,coords(x,y,z),size, metal,crystal,eonium,guards + ,seccents,NULLIF(ss.total::integer,0) AS structures,distorters ,max_bank_hack(metal,crystal,eonium,p.value ,(SELECT value FROM current_planet_stats WHERE id = ?)) AS MaxResHack , planet_status, relationship,gov -- 2.39.2