}
sub listTargets {
- my $query = $ND::DBH->prepare(qq{SELECT t.id, r.id AS raid, r.tick+c.wave-1 AS landingtick, released_coords, coords(x,y,z),c.launched
+ my $query = $ND::DBH->prepare(qq{SELECT t.id, r.id AS raid, r.tick+c.wave-1 AS landingtick, released_coords, coords(x,y,z),c.launched,c.wave
FROM raid_claims c
JOIN raid_targets t ON c.target = t.id
JOIN raids r ON t.raid = r.id
my $coords = "Target $target->{id}";
$coords = $target->{coords} if $target->{released_coords};
push @targets,{Coords => $coords, Launched => $target->{launched}, Raid => $target->{raid}
- , Target => $target->{id}, Tick => $target->{landingtick}};
+ , Target => $target->{id}, Tick => $target->{landingtick}, Wave => $target->{wave}};
}
my $template = HTML::Template->new(filename => "templates/targetlist.tmpl");
$template->param(Targets => \@targets);
while (my $target = $targetquery->fetchrow_hashref){
my %target;
$target{Id} = $target->{id};
+ $target{Ajax} = $ajax;
my $num = pow(10,length($target->{score})-2);
$target{Score} = ceil($target->{score}/$num)*$num;
$num = pow(10,length($target->{value})-2);
$num = pow(10,length($target->{resvalue})-2);
$target{ResValue} = floor($target->{resvalue}/$num)*$num;
$target{comment} = parseMarkup($target->{comment}) if ($target->{comment});
+
+ my $scans = $DBH->prepare(q{SELECT DISTINCT ON (type) type, tick, scan FROM scans
+ WHERE planet = ? AND type ~ 'Unit|Planet|Military|.* Analysis' AND tick + 24 > tick()
+ GROUP BY type, tick, scan ORDER BY type ,tick DESC});
+ $scans->execute($target->{planet});
+ my %scans;
+ while (my $scan = $scans->fetchrow_hashref){
+ $scans{$scan->{type}} = $scan;
+ }
+
+ my @scans;
+ for my $type ('Planet','Unit','Military','Surface Analysis','Technology Analysis'){
+ next unless exists $scans{$type};
+ my $scan = $scans{$type};
+ if ($ND::TICK - $scan->{tick} > 5){
+ $scan->{scan} =~ s{<table( cellpadding="\d+")?>}{<table$1 class="old">};
+ }
+ if ($type eq 'Planet'){
+ $target{PlanetScan} = $scan->{scan};
+ next;
+ }
+ push @scans,{Scan => $scan->{scan}};
+ }
+ $target{Scans} = \@scans;
+
my @roids;
my @claims;
my $size = $target{Size};
$xp = max(0,floor($roids * 10 * (min(2,$target{Score}/$planet->{score}) + min(2,$target{Value}/$planet->{value})-1)));
}
push @roids,{Wave => $i, Roids => $roids, XP => $xp};
- push @claims,{Wave => $i, Target => $target{Id}, Command => 'Claim'
- , Owner => 1, Raid => $raid->{id}, Joinable => 1};
+ if ($ajax){
+ push @claims,{Wave => $i, Target => $target{Id}}
+ }else{
+ push @claims,{Wave => $i, Target => $target{Id}, Command => 'Claim'
+ , Owner => 1, Raid => $raid->{id}, Joinable => 0};
+ }
}
$target{Roids} = \@roids;
$target{Claims} = \@claims;
<p><TMPL_VAR NAME=Message></p>
</fieldset>
+<TMPL_IF Ajax>
<form action="index.pl" method="post">
<p>
<input type="button" value="Update claims"
onclick = "listTargets('index.pl?page=raids&xml=1&raid=<TMPL_VAR NAME=Raid>')"/>
</p>
</form>
+</TMPL_IF>
<TMPL_LOOP Targets>
<fieldset> <legend>Target: #<TMPL_VAR NAME=Id></legend>
<a name="target<TMPL_VAR NAME=Id>"/>
<form action="index.pl" method="post">
<p class="claimlinks">
<span id="claim<TMPL_VAR NAME=Id>">
+ <TMPL_IF Ajax>
+ <TMPL_LOOP Claims>
+ <input type="button" value="Claim wave <TMPL_VAR NAME=Wave>"
+ onclick = "claim('index.pl?page=raids&xml=1&raid=<TMPL_VAR NAME=Raid>',<TMPL_VAR NAME=Target>,<TMPL_VAR NAME=Wave>,'Claim')"/>
+ </TMPL_LOOP>
+ <TMPL_ELSE>
<TMPL_LOOP Claims>
<a class="<TMPL_VAR NAME=Command>" href="/index.pl?page=raids&raid=<TMPL_VAR NAME=Raid>&cmd=<TMPL_VAR NAME=Command>&target=<TMPL_VAR NAME=Target>&wave=<TMPL_VAR NAME=Wave>#<TMPL_VAR NAME=Target>"><TMPL_VAR NAME=Command> wave <TMPL_VAR NAME=Wave><TMPL_IF Claimers> (<TMPL_VAR NAME=Claimers>)</TMPL_IF></a>
<TMPL_IF Owner><a href="/index.pl?page=raids&raid=<TMPL_VAR NAME=Raid>&target=<TMPL_VAR NAME=Target>&cmd=set&joinable=<TMPL_IF Joinable>FALSE<TMPL_ELSE>TRUE</TMPL_IF>&wave=<TMPL_VAR NAME=Wave>#<TMPL_VAR NAME=Target>"><TMPL_IF Joinable>N<TMPL_ELSE>J</TMPL_IF></a></TMPL_IF>
</TMPL_LOOP>
+ </TMPL_IF>
</span>
</p>
</form>