,waves*COUNT(DISTINCT rt.id) AS waves,COUNT(rc.uid) AS claims
,COUNT(nullif(rc.launched,false)) AS launched
,COUNT(NULLIF(uid > 0 OR rc.wave > r.waves,true)) AS blocked
,waves*COUNT(DISTINCT rt.id) AS waves,COUNT(rc.uid) AS claims
,COUNT(nullif(rc.launched,false)) AS launched
,COUNT(NULLIF(uid > 0 OR rc.wave > r.waves,true)) AS blocked
my $planet;
if ($c->user->planet){
my $query = $dbh->prepare(q{SELECT value, score,x,y FROM current_planet_stats WHERE pid = ?});
my $planet;
if ($c->user->planet){
my $query = $dbh->prepare(q{SELECT value, score,x,y FROM current_planet_stats WHERE pid = ?});
$c->stash(message => parseMarkup($raid->{message}));
$c->stash(landingtick => $raid->{tick});
my $targetquery = $dbh->prepare(q{SELECT r.id, pid AS planet, size, score, value
$c->stash(message => parseMarkup($raid->{message}));
$c->stash(landingtick => $raid->{tick});
my $targetquery = $dbh->prepare(q{SELECT r.id, pid AS planet, size, score, value
, p.value - p.size*200 -
COALESCE(ps.metal+ps.crystal+ps.eonium,0)/150 -
COALESCE(ds.total ,(SELECT
, p.value - p.size*200 -
COALESCE(ps.metal+ps.crystal+ps.eonium,0)/150 -
COALESCE(ds.total ,(SELECT
LEFT OUTER JOIN current_development_scans ds USING (pid)
WHERE r.raid = $1
AND NOT COALESCE(p.x = $2 AND p.y = $3,False)
LEFT OUTER JOIN current_development_scans ds USING (pid)
WHERE r.raid = $1
AND NOT COALESCE(p.x = $2 AND p.y = $3,False)
$targetquery->execute($raid->{id},$planet->{x},$planet->{y});
my @targets;
while (my $target = $targetquery->fetchrow_hashref){
if ($planet && $planet->{x}){
$targetquery->execute($raid->{id},$planet->{x},$planet->{y});
my @targets;
while (my $target = $targetquery->fetchrow_hashref){
if ($planet && $planet->{x}){
$target->{cap} = min(0.25,0.25 * pow($target->{value}/$planet->{value} , 0.5));
$target->{scorebash} = 'bash' if ($target->{score}/$planet->{score} < 0.6);
$target->{valuebash} = 'bash' if ($target->{value}/$planet->{value} < 0.4);
$target->{cap} = min(0.25,0.25 * pow($target->{value}/$planet->{value} , 0.5));
$target->{scorebash} = 'bash' if ($target->{score}/$planet->{score} < 0.6);
$target->{valuebash} = 'bash' if ($target->{value}/$planet->{value} < 0.4);
$target->{claims} = \@claims;
my $num = pow(10,length($target->{score})-2);
$target->{claims} = \@claims;
my $num = pow(10,length($target->{score})-2);
$num = pow(10,length($target->{size})-2);
$target->{size} = floor($target->{size}/$num)*$num;
$num = pow(10,length($target->{fleetvalue})-2);
$num = pow(10,length($target->{size})-2);
$target->{size} = floor($target->{size}/$num)*$num;
$num = pow(10,length($target->{fleetvalue})-2);
my ($self, $c, $raid, $order) = @_;
my $dbh = $c->model;
my ($self, $c, $raid, $order) = @_;
my $dbh = $c->model;
- my $query = $dbh->prepare(q{SELECT id,tick,waves,message,released_coords,open,ftid
+ my $query = $dbh->prepare(q{SELECT id,tick,waves,message,released_coords,open,ftid,open_tick
- $dbh->do(q{UPDATE raids SET message = ?, tick = ?, waves = ? WHERE id = ?}
+ my $tick = $c->req->param('tick');
+ my $waves = $c->req->param('waves');
+ my $open_tick = $c->req->param('open_tick') || undef;
+ $dbh->do(q{UPDATE raids SET message = ?, tick = ?, waves = ?, open_tick = ? WHERE id = ?}
- ,$c->req->param('tick'),$c->req->param('waves')
- ,$raid);
+ ,$tick,$waves,$open_tick,$raid);
$dbh->begin_work;
my $query = $dbh->prepare(q{INSERT INTO raids (tick,waves,message) VALUES(?,?,?) RETURNING (id)});
$dbh->begin_work;
my $query = $dbh->prepare(q{INSERT INTO raids (tick,waves,message) VALUES(?,?,?) RETURNING (id)});
- $query->execute($c->req->param('tick'),$c->req->param('waves')
- ,html_escape $c->req->param('message'));
+ my $tick = $c->req->param('tick');
+ my $waves = $c->req->param('waves');
+ my $message = html_escape $c->req->param('message');
+ $query->execute($tick,$waves,$message);
- $addtarget->execute($raid,\@targets,\@gals,$c->req->param('sizelimit'));
+ my $sizelimit = $c->req->param('sizelimit');
+ $addtarget->execute($raid,\@targets,\@gals,$sizelimit);
$c->forward('log',[$raid,"BC added planets (@targets) and the gals for (@gals)"]);
}
$dbh->do(q{INSERT INTO raid_access (raid,gid) VALUES(?,'M')}
$c->forward('log',[$raid,"BC added planets (@targets) and the gals for (@gals)"]);
}
$dbh->do(q{INSERT INTO raid_access (raid,gid) VALUES(?,'M')}
-SELECT pid,metal_roids, crystal_roids, eonium_roids, ds.total
+SELECT pid, x, y, z, released_coords, metal_roids, crystal_roids, eonium_roids, ds.total
LEFT OUTER JOIN current_planet_scans ps USING (pid)
LEFT OUTER JOIN current_development_scans ds USING (pid)
LEFT OUTER JOIN current_planet_scans ps USING (pid)
LEFT OUTER JOIN current_development_scans ds USING (pid)
-WHERE rt.id = ? AND r.open AND not r.removed
- AND r.id IN (SELECT raid FROM raid_access NATURAL JOIN groupmembers WHERE uid = ?)
+WHERE rt.id = $1 AND r.open AND not r.removed
+ AND r.id IN (SELECT raid FROM raid_access NATURAL JOIN groupmembers WHERE uid = $2)
},undef,$target,$c->user->id));
my $fleets = $dbh->prepare(q{
},undef,$target,$c->user->id));
my $fleets = $dbh->prepare(q{
-SELECT pid,metal_roids, crystal_roids, eonium_roids, ds.total
+SELECT pid, x, y, z, released_coords, metal_roids, crystal_roids, eonium_roids, ds.total
LEFT OUTER JOIN current_planet_scans ps USING (pid)
LEFT OUTER JOIN current_development_scans ds USING (pid)
WHERE uid = $1 AND fid = $2
LEFT OUTER JOIN current_planet_scans ps USING (pid)
LEFT OUTER JOIN current_development_scans ds USING (pid)
WHERE uid = $1 AND fid = $2
+ if ($c->stash->{target}->{released_coords}) {
+ push @query
+ ,"def_coords_x_1=".$c->stash->{target}->{x}
+ ,"def_coords_y_1=".$c->stash->{target}->{y}
+ ,"def_coords_z_1=".$c->stash->{target}->{z};
+ }
+
my $query = $dbh->prepare(q{INSERT INTO raids (tick,waves,message) VALUES(?,?,?) RETURNING (id)});
my $query = $dbh->prepare(q{INSERT INTO raids (tick,waves,message) VALUES(?,?,?) RETURNING (id)});
- $query->execute($c->req->param('tick'),$c->req->param('waves')
- ,html_escape $c->req->param('message'));
+ $query->execute($tick, $waves, $message);
my $raid = $query->fetchrow_array;
$c->forward('log',[$raid,"Created retal raid landing at tick: ".$c->req->param('tick')]);
my $raid = $query->fetchrow_array;
$c->forward('log',[$raid,"Created retal raid landing at tick: ".$c->req->param('tick')]);
SELECT $1,pid,array_to_string(array_agg(
fleet || ': eta=' || eta || ', amount=' || amount || ', type=' || shiptype
|| ' landing=' || landing_tick || 'back=' || landing_tick + eta
SELECT $1,pid,array_to_string(array_agg(
fleet || ': eta=' || eta || ', amount=' || amount || ', type=' || shiptype
|| ' landing=' || landing_tick || 'back=' || landing_tick + eta