]> ruin.nu Git - NDIRC.git/blobdiff - PA.pm
production cost is 15% lower for feudalism
[NDIRC.git] / PA.pm
diff --git a/PA.pm b/PA.pm
index 1b8f239c5aacc5dfd9eb873a0bf730ef5778c857..2f708ec5b738b5ba2641bf11f50b0aa307096484 100644 (file)
--- a/PA.pm
+++ b/PA.pm
@@ -83,7 +83,7 @@ sub checkGal {
 sub shipEff {
        my ($msg,$command) = @_;
        my ($amount,$ship,$value);
-       if($msg =~ /^(-?\d+(?:\.\d+)?[hkMG]?) (\w+)$/){
+       if($msg =~ /^(-?\d+(?:\.\d+)?[hkMG]?) (\w+)/){
                if ($command eq 'veff'){
                        $value = parseValue($1);
                        $value *= -1.5 if $value < 0;
@@ -109,7 +109,7 @@ FROM ship_stats WHERE name ILIKE ?
 
                if (defined $value){
                        $amount = int(($value*100/$ship[4]));
-                       $feud = '(FEUD: '.prettyValue(int($amount/0.80)).') ';
+                       $feud = '(FEUD: '.prettyValue(int($amount/0.85)).') ';
                }
                $value = prettyValue(($amount*$ship[4]/100));
                my $text = prettyValue($amount)." $feud $ship[0] ($ship[5]:$value) will $type:";
@@ -140,7 +140,7 @@ FROM ship_stats WHERE name ILIKE ?
 sub shipStop {
        my ($msg,$command) = @_;
        my ($amount,$ship,$value);
-       if($msg =~ /^(-?\d+(?:\.\d+)?[hkMG]?) (\w+)$/){
+       if($msg =~ /^(-?\d+(?:\.\d+)?[hkMG]?) (\w+)/){
                if ($command eq 'vstop'){
                        $value = parseValue($1);
                        $value *= -1.5 if $value < 0;
@@ -166,7 +166,7 @@ FROM ship_stats WHERE name ILIKE ?
 
                if (defined $value){
                        $amount = int(($value*100/$ship[4]));
-                       $feud = '(FEUD: '.prettyValue(int($amount/0.80)).') ';
+                       $feud = '(FEUD: '.prettyValue(int($amount/0.85)).') ';
                }
                $value = prettyValue(($amount*$ship[4]/100));
                my $text = "To stop $amount $feud $ship[0] ($ship[5]:$value) you need:";
@@ -195,7 +195,19 @@ FROM ship_stats WHERE name ILIKE ?
 }
 
 sub calcXp {
-       my ($x,$y,$z,$roids,$cap) = @_;
+       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