]> ruin.nu Git - NDIRC.git/blobdiff - PA.pm
Converted the .fco command
[NDIRC.git] / PA.pm
diff --git a/PA.pm b/PA.pm
index 43e8e45c74ff5bf9cc0653d366485cfd6a03ded6..094c5671df25dcda4e952684b5db31d940a6cf8f 100644 (file)
--- a/PA.pm
+++ b/PA.pm
@@ -28,59 +28,7 @@ require Exporter;
 
 our @ISA = qw/Exporter/;
 
-our @EXPORT = qw/checkPlanet checkGal shipEff shipStop parseValue prettyValue calcXp findCovOpper/;
-
-sub checkPlanet {
-       my ($msg) = @_;
-
-       my ($x,$y,$z,$nick);
-       if ($msg =~ /(\d+)\D+(\d+)\D+(\d+)/){
-               $x = $1;
-               $y = $2;
-               $z = $3;
-       }elsif ((officer() || ia()) && defined $msg){
-               $nick = $msg;
-       }else{
-               $ND::server->command("notice $ND::nick usage .p X:Y:Z".(officer() || ia() ? ' or .p nick' : ''));
-               return;
-       }
-       my $f = $ND::DBH->prepare(q{SELECT coords(x,y,z),ruler,planet,race,score,size,value,scorerank,sizerank,
-               valuerank, xp, xprank, alliance, relationship, nick, planet_status, hit_us, channel
-               FROM current_planet_stats WHERE (x = $1 AND y = $2 and z = $3) OR nick ILIKE $4 LIMIT 1
-       });
-       $f->execute($x,$y,$z,$nick);
-       if (my $planet = $f->fetchrow_hashref()){
-               for (keys %{$planet}){
-                       $planet->{$_} = valuecolor(1,$planet->{$_});
-               }
-               my $ally = "";
-               if (officer() || ia() || dc()){
-                       $ally = "Alliance=$planet->{alliance} ($planet->{relationship}), Nick=$planet->{nick} ($planet->{planet_status}), Channel: $planet->{channel}, Hostile Count: $planet->{hit_us},";
-               }
-               $ND::server->command("notice $ND::nick $planet->{coords} $planet->{ruler} OF $planet->{planet},$ally Race=$planet->{race}, Score=$planet->{score} ($planet->{scorerank}), Size=$planet->{size} ($planet->{sizerank}), Value=$planet->{value} ($planet->{valuerank}), XP=$planet->{xp} ($planet->{xprank})");
-       }else{
-               $ND::server->command("notice $ND::nick Couldn't find planet: $msg");
-       }
-}
-sub checkGal {
-       my ($msg) = @_;
-
-       my ($x,$y,);
-       if ($msg =~ /(\d+)\D+(\d+)/){
-               $x = $1;
-               $y = $2;
-       }else{
-               $ND::server->command("notice $ND::nick syntax: .g X:Y");
-       }
-       my $f = $ND::DBH->prepare(q{SELECT score,scorerank,size,sizerank,value,valuerank,planets
-               FROM galaxies WHERE x = ? AND y = ? AND tick = (SELECT max(tick) from galaxies)
-       });
-       $f->execute($x,$y);
-       while (my @row = $f->fetchrow()){
-               @row = map (valuecolor(1),@row);
-               $ND::server->command("notice $ND::nick $x:$y  Score=$row[0] ($row[1]), Size=$row[2] ($row[3]), Value=$row[4] ($row[5]), Planets=$row[6]");
-       }
-}
+our @EXPORT = qw/shipEff shipStop parseValue prettyValue findCovOpper/;
 
 sub shipEff {
        my ($msg,$command) = @_;
@@ -113,7 +61,7 @@ sub shipEff {
        if ($s){
                if (defined $value){
                        $amount = int(($value*100/$s->{cost}));
-                       $feud = '(FEUD: '.prettyValue(int($amount/0.85)).') ';
+                       $feud = '(FEUD: '.prettyValue(int($amount/0.86)).') ';
                }
                $value = prettyValue(($amount*$s->{cost}/100));
                my $name = shipColor($s->{name},$s->{type});
@@ -197,92 +145,4 @@ sub shipColor {
        return "$ND::C$c$string$ND::O";
 }
 
-sub calcXp {
-       my ($msg) = @_;
-
-       my ($x,$y,$z,$roids,$cap);
-       if(defined $msg && $msg =~ /^(\d+)\D+(\d+)\D+(\d+)(?:[^\.\d]+(\d+))?(?:[^\.\d]+(\d*\.\d+))?$/){
-               $x = $1;
-               $y = $2;
-               $z = $3;
-               $roids = $4;
-               $cap = $5;
-       }else{
-               $ND::server->command("notice $ND::nick syntax: .xp X:Y:Z [roids] [cap] | if roids < 10 then it's taken as the wave, cap is a floating point number, defaults to 0.25");
-               return;
-       }
-
-       my ($avalue,$ascore) = $ND::DBH->selectrow_array(q{
-               SELECT value,score FROM current_planet_stats WHERE 
-                       id = (SELECT planet FROM users WHERE hostmask ILIKE ?);
-               }, undef, $ND::address);
-       my ($tvalue,$tscore,$tsize) = $ND::DBH->selectrow_array(q{
-               SELECT value,score,size FROM current_planet_stats WHERE 
-               x = ? AND y = ? and z = ?;
-               }, undef, $x,$y,$z);
-       $cap = 0.25 unless $cap;
-       unless($roids){
-               $roids = int($tsize*$cap);
-       }elsif ($roids < 10){
-               $tsize = ceil($tsize*.75**($roids-1));
-               $roids = int($cap*$tsize);
-       }
-       $tsize -= $roids;
-       unless (defined $avalue && defined $ascore){
-               $ND::server->command("notice $ND::nick You don't have a planet specified");
-               return;
-       }
-       unless (defined $tvalue && defined $tscore){
-               $ND::server->command("notice $ND::nick Doesn't seem to be a planet at $x:$y:$z");
-               return;
-       }
-       my $xp = pa_xp($roids,$ascore,$avalue,$tscore,$tvalue);
-       my $score = 60 * $xp;
-       my $value = $roids*200;
-       my $totscore = prettyValue($score + $value);
-       $ND::server->command("notice $ND::nick You will gain $ND::B$xp$ND::B XP, $ND::B$score$ND::B score, if you steal $roids roids ($ND::B$value$ND::B value), from $ND::B$x:$y:$z$ND::B, who will have $ND::B$tsize$ND::B roids left, total score gain will be: $ND::B$totscore$ND::B in total,");
-}
-
-sub findCovOpper {
-       my ($stolen, $command) = @_;
-
-       my $tick = $ND::tick;
-       my $agents;
-
-       if (defined $stolen && $stolen =~ /(\d+) (\d+) (\d+)/){
-               $tick = $1;
-               $agents = $2;
-               $stolen = $3;
-       }elsif (defined $stolen && $stolen =~ /(\d+) (\d+)/){
-               $agents = $1;
-               $stolen = $2;
-       }else{
-               $ND::server->command("notice $ND::nick syntax: .$command [tick] agents stolen | tick can be omitted if you're doing this the same tick you got cov opped, if you have different amount of your resources stolen, specify the highest amount. Only works if less than 10% of your resources and < 10,000*agents were stolen");
-               return;
-       }
-
-       my ($value,$score) = $ND::DBH->selectrow_array(q{
-               SELECT value,score FROM planet_stats WHERE 
-                       id = (SELECT planet FROM users WHERE hostmask ILIKE ?) AND tick = ?;
-               }, undef, $ND::address,$tick);
-       unless ($value){
-               $ND::server->command("notice $ND::nick No value found for tick $tick, can't find your cov opper.");
-               return;
-       }
-       my $attackers = $ND::DBH->prepare(q{
-               SELECT coords(p.x,p.y,p.z), ruler, planet FROM current_planet_stats p JOIN planet_stats ps using (id) WHERE 
-               ps.tick = $1 AND (2000.0*$2*$3/ps.value)::int = $4 ;
-               });
-       $attackers->execute($tick,$agents,$value,$stolen);
-       if ($attackers->rows == 0){
-               $ND::server->command("notice $ND::nick No cov opper found, did you specify the right tick, and was the stolen amount not capped?");
-               return;
-       }
-       my $coords = '';
-       while (my $attacker = $attackers->fetchrow_hashref){
-               $coords .= " ($attacker->{coords} : $attacker->{ruler} OF $attacker->{planet})";
-       }
-       $ND::server->command("notice $ND::nick The planet that cov opped you is one of: $coords");
-}
-
 1;