if ($c->check_user_roles(qw/raids_info/)){
my $query = $dbh->prepare(q{
- SELECT r.id,open ,tick
+ SELECT r.id,open ,tick, open_tick, released_coords AS releasedcoords
,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
$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.x,p.y,p.z, race
+ , p.pid, p.x,p.y,p.z, race
, 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)
- ORDER BY size});
+ ORDER BY size DESC, value DESC, score DESC});
$targetquery->execute($raid->{id},$planet->{x},$planet->{y});
my @targets;
while (my $target = $targetquery->fetchrow_hashref){
if ($planet && $planet->{x}){
- if ($planet->{x} == $target->{x}){
- $target->{style} = 'incluster';
- }
+ #if ($planet->{x} == $target->{x}){
+ # $target->{style} = 'incluster';
+ #}
$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);
push @targets,$target;
}
- @targets = sort {$b->{roids}[0]{xp} <=> $a->{roids}[0]{xp} or $b->{size} <=> $a->{size}} @targets;
+ #@targets = sort {$b->{roids}[0]{xp} <=> $a->{roids}[0]{xp} or $b->{size} <=> $a->{size}} @targets;
$c->stash(targets => \@targets);
}
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
FROM raids WHERE id = ?
});
$raid = $dbh->selectrow_hashref($query,undef,$raid);
$dbh->begin_work;
my $tick = $c->req->param('tick');
my $waves = $c->req->param('waves');
- $dbh->do(q{UPDATE raids SET message = ?, tick = ?, waves = ? WHERE id = ?}
+ my $open_tick = $c->req->param('open_tick') || undef;
+ $dbh->do(q{UPDATE raids SET message = ?, tick = ?, waves = ?, open_tick = ? WHERE id = ?}
,undef,html_escape $c->req->param('message')
- ,$tick,$waves,$raid);
+ ,$tick,$waves,$open_tick,$raid);
$c->forward('log',[$raid, 'BC updated raid']);
my $dbh = $c->model;
$c->stash(target => $dbh->selectrow_hashref(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
FROM raids r
JOIN raid_targets rt ON r.id = rt.raid
+ JOIN current_planet_stats p 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{
-SELECT DISTINCT ON (name) name, tick, fid, race
+SELECT DISTINCT ON (name) name, tick, fid, race, race_id
,COALESCE($2,score) AS score, COALESCE($2, value) AS value
-FROM fleets LEFT OUTER JOIN current_planet_stats p USING (pid)
+FROM fleets
+ LEFT OUTER JOIN current_planet_stats p USING (pid)
+ LEFT OUTER JOIN races r USING (race)
WHERE pid = $1 AND mission = 'Full fleet'
ORDER BY name ASC, tick DESC
});
my $dbh = $c->model;
$c->stash(target => $dbh->selectrow_hashref(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
FROM launch_confirmations lc
+ JOIN current_planet_stats p USING (pid)
LEFT OUTER JOIN current_planet_scans ps USING (pid)
LEFT OUTER JOIN current_development_scans ds USING (pid)
WHERE uid = $1 AND fid = $2
},undef,$c->user->id,$fid));
my $fleets = $dbh->prepare(q{
-SELECT DISTINCT ON (name) name, tick, fid, race
+SELECT DISTINCT ON (name) name, tick, fid, race, race_id
,score AS score, value AS value
-FROM fleets LEFT OUTER JOIN current_planet_stats p USING (pid)
+FROM fleets
+ LEFT OUTER JOIN current_planet_stats p USING (pid)
+ LEFT OUTER JOIN races r USING (race)
WHERE pid = $1 AND mission = 'Full fleet'
ORDER BY name ASC, tick DESC
});
$c->stash(def => $fleets->fetchall_arrayref({}));
$fleets = $dbh->prepare(q{
-SELECT tick, fid, race ,score , value
-FROM fleets f LEFT OUTER JOIN current_planet_stats p USING (pid)
+SELECT tick, fid, race, race_id, score, value
+FROM fleets f
+ LEFT OUTER JOIN current_planet_stats p USING (pid)
+ LEFT OUTER JOIN races r USING (race)
WHERE fid = $1 AND pid = $2
});
$fleets->execute($fid, $c->user->planet);
"def_eonium_asteroids=".($c->stash->{target}->{eonium_roids} // 0),
);
+ 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 $ships = $dbh->prepare(q{
SELECT id, amount FROM fleet_ships fs JOIN ship_stats s USING (ship)
WHERE fid = $1
});
- my %races = (Ter => 1, Cat => 2, Xan => 3, Zik => 4, Etd => 5);
for ('def','att'){
my $nrfleets = 0;
my $tick = 0;
++$nrfleets;
push @query, "${_}_planet_value_${nrfleets}=$fleet->{value}";
push @query, "${_}_planet_score_${nrfleets}=$fleet->{score}";
- push @query, "${_}_${nrfleets}_race=$races{$fleet->{race}}";
+ push @query, "${_}_${nrfleets}_race=$fleet->{race_id}";
while (my $ship = $ships->fetchrow_hashref){
push @query, "${_}_${nrfleets}_$ship->{id}=$ship->{amount}";
}