]> ruin.nu Git - ndwebbie.git/blobdiff - ND/IRC/PA.pm
feudalism
[ndwebbie.git] / ND / IRC / PA.pm
index 48751e490a64a1fdcc33cb5bcdf40845f60666f2..e5f20bf7b42fa743282232816e77c686efa48329 100644 (file)
@@ -59,6 +59,7 @@ sub shipEff {
        $amount = parseValue($amount);
        $value = parseValue($value);
        $value *= -1.5 if defined $value and $value < 0;
+       my $feud = '';
 
        my @ship = $ND::DBH->selectrow_array(q{
 SELECT name,target,"type",damage,metal+crystal+eonium,init,"class",guns,race
@@ -70,8 +71,9 @@ FROM ship_stats WHERE name ILIKE ?
                $type = "steal" if ($ship[2] eq 'Steal') or ($ship[2] eq 'Pod');
 
                $amount = int(($value*100/$ship[4])) if $amount eq 'value';
+               $feud = '(FEUD: '.int($amount/0.75).') ' if defined $value;
                $value = prettyValue(($amount*$ship[4]/100));
-               my $text = "$amount $ship[0] ($ship[5]:$value) will $type:";
+               my $text = "$amount $feud $ship[0] ($ship[5]:$value) will $type:";
                my $st = $ND::DBH->prepare(q{
                        SELECT name,"class","type",armor,metal+crystal+eonium,init,target,eres,race
                        FROM ship_stats WHERE "class" = ?
@@ -102,6 +104,7 @@ sub shipStop {
        $amount = parseValue($amount);
        $value = parseValue($value);
        $value *= -1.5 if defined $value and $value < 0;
+       my $feud = '';
 
        my @ship = $ND::DBH->selectrow_array(q{
 SELECT name,target,"type",armor,metal+crystal+eonium,init,"class",eres,race
@@ -113,8 +116,9 @@ FROM ship_stats WHERE name ILIKE ?
                $ship[0] = "${ND::C}13$ship[0]$ND::C" if $ship[2] eq 'Steal';
 
                $amount = int(($value*100/$ship[4])) if $amount eq 'value';
+               $feud = '(FEUD: '.int($amount/0.75).') ' if defined $value;
                $value = prettyValue(($amount*$ship[4]/100));
-               my $text = "To stop $amount $ship[0] ($ship[5]:$value) you need:";
+               my $text = "To stop $amount $feud $ship[0] ($ship[5]:$value) you need:";
                my $st = $ND::DBH->prepare(q{
                        SELECT name,"class","type",damage,metal+crystal+eonium,init,target,guns,race
                        FROM ship_stats WHERE "target" = ?
@@ -142,8 +146,6 @@ FROM ship_stats WHERE name ILIKE ?
 sub calcXp {
        my ($x,$y,$z,$roids,$cap) = @_;
 
-       print "$roids:$cap:";
-
        my ($avalue,$ascore) = $ND::DBH->selectrow_array(q{
                SELECT value,score FROM current_planet_stats WHERE 
                        id = (SELECT planet FROM users WHERE hostmask ILIKE ?);
@@ -156,7 +158,7 @@ sub calcXp {
        unless($roids){
                $roids = int($tsize*$cap);
        }elsif ($roids < 10){
-               $tsize *= .75**($roids-1);
+               $tsize = ceil($tsize*.75**($roids-1));
                $roids = int($cap*$tsize);
        }
        $tsize -= $roids;
@@ -168,7 +170,7 @@ sub calcXp {
                $ND::server->command("notice $ND::target Doesn't seem to be a planet at $x:$y:$z");
                return;
        }
-       my $xp = int(max($roids * 10 * (min(2,$tscore/$ascore) + min(2,$tvalue/$avalue) - 1),0));
+       my $xp = pa_xp($roids,$ascore,$avalue,$tscore,$tvalue);
        my $score = 60 * $xp;
        my $value = $roids*200;
        my $totscore = prettyValue($score + $value);