changeset 336:ff816ffffbd8

fixed timing issue
author "Rex Tsai <chihchun@kalug.linux.org.tw>"
date Thu, 12 Feb 2009 03:25:20 +0800
parents c4ef89a74128 (diff) 65f45552060e (current diff)
children 025a36717f2c
files enemy.pl
diffstat 3 files changed, 14 insertions(+), 28 deletions(-) [+]
line wrap: on
line diff
--- a/enemy.pl	Thu Feb 12 02:48:45 2009 +0800
+++ b/enemy.pl	Thu Feb 12 03:25:20 2009 +0800
@@ -13,12 +13,8 @@
 
 sub travelTime {
     my ($x1, $y1, $x2, $y2, $speed) = @_;
-    $speed = 60 unless(defined($speed));
-    if($x1 == $x2 && $y1 == $y2) {
-        return 600/$speed;
-    } else {
-        return int( (sqrt((abs($x1 - $x2) * abs($x1 - $x2)) + (abs($y1 - $y2) * abs($y1 - $y2)))) * (1200/$speed));
-    }
+    $speed = 20 unless(defined($speed));
+    return int( (sqrt((abs($x1 - $x2) * abs($x1 - $x2)) + (abs($y1 - $y2) * abs($y1 - $y2)))+1) * (400/$speed));
 }
 
 sub travelMatrix {
@@ -72,7 +68,7 @@
         my @cities = ();
         foreach (glob("city-*-dump.yaml")) {
             my $city = LoadFile($_);
-            $city->{distance} = travelTime($island->x, $island->y, $city->{island}->{x}, $city->{island}->{y}, 60);
+            $city->{distance} = travelTime($island->x, $island->y, $city->{island}->{x}, $city->{island}->{y}, 20);
             push (@cities, $city);
         }
         @cities = sort { $a->{distance} <=> $b->{distance}; } (@cities);
@@ -81,10 +77,10 @@
         for my $x (0..$n) {
             printf("%s (%d)\t- ", $cities[$x]->{name}, $cities[$x]->{id});
             printf("Land %3d Ship %3d Catapult %3d Ram %3d\n", 
-                    travelTime($cities[$x]->{island}->{x}, $cities[$x]->{island}->{y}, $island->x, $island->y, 60),
-                    travelTime($cities[$x]->{island}->{x}, $cities[$x]->{island}->{y}, $island->x, $island->y, 33),
-#                   travelTime($cities[$x]->{island}->{x}, $cities[$x]->{island}->{y}, $island->x, $island->y, 6),
-# travelTime($cities[$x]->{island}->{x}, $cities[$x]->{island}->{y}, $island->x, $island->y, 10),
+                    travelTime($cities[$x]->{island}->{x}, $cities[$x]->{island}->{y}, $island->x, $island->y),
+                    travelTime($cities[$x]->{island}->{x}, $cities[$x]->{island}->{y}, $island->x, $island->y, 8),
+                    travelTime($cities[$x]->{island}->{x}, $cities[$x]->{island}->{y}, $island->x, $island->y, 6),
+                    travelTime($cities[$x]->{island}->{x}, $cities[$x]->{island}->{y}, $island->x, $island->y, 10),
                   );
         }
     }
--- a/planner.pl	Thu Feb 12 02:48:45 2009 +0800
+++ b/planner.pl	Thu Feb 12 03:25:20 2009 +0800
@@ -37,15 +37,10 @@
 # return minutes.
 sub travelTime {
     my ($x1, $y1, $x2, $y2, $speed) = @_;
-    $speed = 60 unless(defined($speed));
-    if($x1 == $x2 && $y1 == $y2) {
-        return 600/$speed;
-    } else {
-        return int( (sqrt((abs($x1 - $x2) * abs($x1 - $x2)) + (abs($y1 - $y2) * abs($y1 - $y2)))) * (1200/$speed));
-    }
+    $speed = 20 unless(defined($speed));
+    return int( (sqrt((abs($x1 - $x2) * abs($x1 - $x2)) + (abs($y1 - $y2) * abs($y1 - $y2)))+1) * (400/$speed));
 }
 
-#
 package main;
 getopts('w');
 if($#ARGV < 2) {
@@ -67,7 +62,7 @@
 
 # ARMY
 my $city = LoadFile(sprintf("city-%s-dump.yaml", $armyCity));
-$city->{distance} = travelTime($targetCity->island->x, $targetCity->island->y, $city->{island}->{x}, $city->{island}->{y}, 60) + 5;
+$city->{distance} = travelTime($targetCity->island->x, $targetCity->island->y, $city->{island}->{x}, $city->{island}->{y}, 50) + 5;
 $city->{type} = "army";
 push (@cities, $city);
 
@@ -77,9 +72,9 @@
     my $city = LoadFile(sprintf("city-%s-dump.yaml", $cityId));
     $city->{type} = "wingman" . ($i+1);
     if(defined($opt_w)) {
-        $city->{distance} = travelTime($targetCity->island->x, $targetCity->island->y, $city->{island}->{x}, $city->{island}->{y}, 60) - ($i * 20 + 20);
+        $city->{distance} = travelTime($targetCity->island->x, $targetCity->island->y, $city->{island}->{x}, $city->{island}->{y}, 50) - ($i * 20 + 20);
     } else {
-        $city->{distance} = travelTime($targetCity->island->x, $targetCity->island->y, $city->{island}->{x}, $city->{island}->{y}, 60);
+        $city->{distance} = travelTime($targetCity->island->x, $targetCity->island->y, $city->{island}->{x}, $city->{island}->{y}, 50);
     }
     push (@cities, $city);
 }
--- a/warfare.pl	Thu Feb 12 02:48:45 2009 +0800
+++ b/warfare.pl	Thu Feb 12 03:25:20 2009 +0800
@@ -117,12 +117,7 @@
             # we don't attack same city twice at same time.
             next CITY if($_->{to} == $city->cityId);
         }
-        # we attack one city maximum 4 times a day.
-        if ($city->status eq 'i') {
-            next CITY if($c >= 6);
-        } else {
-            next CITY if($c >= 4);
-        }
+        next CITY if($c >= 1);
 
         my $capture = $city->citylevel * ($city->citylevel - 1) * $sheep->trader_score_secondary / 10000;
         next if($capture < 1500);
@@ -148,8 +143,8 @@
         $self->{ikariam}->changeCity($cityId);
         $self->{ikariam}->plunderCity($victim,
                 {
-                    # cargo_army_302 => '2', # 劍士
                     cargo_army_303 => '2', # 方陣
+                    transporter   => 5, # transporter
                 }
                 );
     }