]> ruin.nu Git - ndwebbie.git/blobdiff - lib/NDWeb/Controller/Raids.pm
Updates for round 100
[ndwebbie.git] / lib / NDWeb / Controller / Raids.pm
index f6b644a7b17465f80005d0bc5ed0765e889fd053..e948d66d19a492eb54e2f63a861c5896465b2c8b 100644 (file)
@@ -599,19 +599,22 @@ sub targetcalc : Local {
        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
                });
@@ -633,17 +636,20 @@ sub fleetcalc : Local {
        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
                });
@@ -652,8 +658,10 @@ 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);
@@ -673,12 +681,18 @@ sub calcredir : Private {
                "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;
@@ -689,7 +703,7 @@ WHERE fid = $1
                        ++$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}";
                        }