X-Git-Url: https://ruin.nu/git/?a=blobdiff_plain;f=lib%2FNDWeb%2FController%2FAlliances.pm;h=833143aaab2364738f79fc9564d47e0339cbc930;hb=f5639def9af1ddcef6c9d17d6c6ab534aeb6adda;hp=aa1c33d27408f78c525bffb41db3a24edcff708a;hpb=e4aab4e872225a7b325949f5632650430595cef6;p=ndwebbie.git diff --git a/lib/NDWeb/Controller/Alliances.pm b/lib/NDWeb/Controller/Alliances.pm index aa1c33d..833143a 100644 --- a/lib/NDWeb/Controller/Alliances.pm +++ b/lib/NDWeb/Controller/Alliances.pm @@ -84,7 +84,7 @@ sub edit : Local { $order .= ' DESC' if $order eq 'hit_us'; my $members = $dbh->prepare(q{ - SELECT coords(x,y,z), nick, ruler, planet, race, size, score, value, xp + SELECT id, coords(x,y,z), nick, ruler, planet, race, size, score, value, xp ,planet_status,hit_us, sizerank, scorerank, valuerank, xprank FROM current_planet_stats p WHERE p.alliance_id = ? @@ -96,7 +96,7 @@ sub edit : Local { my $ticks = $c->req->param('ticks') || 48; $c->stash(showticks => $ticks); - my $query = $dbh->prepare(intelquery q{ + $query = $dbh->prepare(intelquery q{ o.alliance AS oalliance ,coords(o.x,o.y,o.z) AS ocoords, i.sender ,t.alliance AS talliance,coords(t.x,t.y,t.z) AS tcoords, i.target },q{NOT ingal AND (o.alliance_id = $1 OR t.alliance_id = $1) @@ -216,17 +216,33 @@ sub resources : Local { ,r.resources,r.hidden,r.planets ,(resources/planets)::bigint AS resplanet ,(hidden/planets)::bigint AS hidplanet - ,((resources / 300) + (hidden / 100))::bigint AS scoregain ,(score + (resources / 300) + (hidden / 100))::bigint AS nscore - ,((resources/planets*scoremem)/300 + (hidden/planets*scoremem)/100)::bigint AS scoregain2 - ,(score + (resources/planets*scoremem)/300 - + (hidden/planets*scoremem)/100)::bigint AS nscore2 - ,((s.size::int8*(1400-tick())*250)/100 + score + (resources/planets*scoremem)/300 - + (hidden/planets*scoremem)/100)::bigint AS nscore3 - ,(s.size::int8*(1400-tick())*250)/100 AS scoregain3 - FROM (SELECT alliance_id AS id,sum(metal+crystal+eonium) AS resources, sum(hidden) AS hidden, count(*) AS planets - FROM planets p join planet_scans c ON p.id = c.planet GROUP by alliance_id) r - NATURAL JOIN alliances a + ,(SELECT sum(score)::bigint FROM ( +SELECT score + (metal+crystal+eonium)/300 + hidden/100 AS score +FROM current_planet_stats p + JOIN current_planet_scans ps ON p.id = ps.planet +WHERE alliance_id = r.id +ORDER BY score DESC +LIMIT 60) a + ) AS nscore2 + ,(SELECT sum(score)::bigint FROM ( +SELECT score + (metal+crystal+eonium)/300 + hidden/100 + (endtick()-tick())*( + 250*size + COALESCE(metal_ref + crystal_ref + eonium_ref,7)* 1000 + + CASE extraction WHEN 0 THEN 3000 WHEN 1 THEN 11500 ELSE COALESCE(extraction,3)*3000*3 END + )*(1.35+0.005*COALESCE(fincents,20))/100 AS score +FROM current_planet_stats p + JOIN current_planet_scans ps ON p.id = ps.planet + LEFT OUTER JOIN current_development_scans ds ON p.id = ds.planet +WHERE alliance_id = r.id +ORDER BY score DESC +LIMIT 60) a + ) AS nscore3 + FROM (SELECT alliance_id AS id,sum(metal+crystal+eonium) AS resources + , sum(hidden) AS hidden, count(*) AS planets + FROM planets p join current_planet_scans c ON p.id = c.planet + GROUP by alliance_id + ) r + NATURAL JOIN alliances a LEFT OUTER JOIN (SELECT *,LEAST(members,60) AS scoremem FROM alliance_stats WHERE tick = (SELECT max(tick) FROM alliance_stats)) s ON a.id = s.id ORDER BY $order @@ -237,17 +253,17 @@ sub resources : Local { push @alliances,$alliance; } $c->stash(alliances => \@alliances); + $c->stash( comma => \&comma_value) } =head1 AUTHOR -A clever guy +Michael Andreen (harv@ruin.nu) =head1 LICENSE -This library is free software, you can redistribute it and/or modify -it under the same terms as Perl itself. +GPL 2.0, or later. =cut