changeset 29:dbec53e754e3

added rule_building
author "Rex Tsai <chihchun@kalug.linux.org.tw>"
date Fri, 10 Oct 2008 05:15:40 +0800
parents 99723b8f348b
children de5de6d472f9
files Ikariam.pm inference.pl
diffstat 2 files changed, 33 insertions(+), 7 deletions(-) [+]
line wrap: on
line diff
--- a/Ikariam.pm	Fri Oct 10 04:42:05 2008 +0800
+++ b/Ikariam.pm	Fri Oct 10 05:15:40 2008 +0800
@@ -272,6 +272,24 @@
             $self->{'cities'}->{$cityId}->{$good} =~ s/,//g;
         }
 
+        # search locations
+        foreach my $i (0..14) {
+            my ($elem) = $html->getElementsByAttribute("id", "position" . $i);
+            my $building = $elem->getAttribute('class');
+            if ($building ne "buildingGround land") {
+                $self->{'cities'}->{$cityId}->{locations}[$i] = $building;
+                my $span = getElementsByAttribute($elem, "class", "textLabel");
+                my (undef, undef, $level) = split(/ /, $span->innerText());
+                $self->{'cities'}->{$cityId}->{buildings}->{$building} = $level;
+            }
+        }
+
+        # $res = $self->{mech}->get(sprintf('http://%s/index.php?view=townHall&id=%d', $self->{server}, $cityId));
+        # gunzip \$res->content => \$content 
+        # or die "gunzip failed: $GunzipError\n";
+
+
+
         # check townHall
         $res = $self->{mech}->get(sprintf('http://%s/index.php?view=townHall&id=%d', $self->{server}, $cityId));
         gunzip \$res->content => \$content 
@@ -314,12 +332,6 @@
         # <li class="incomegold incomegold_positive">
         # <span class="value">-178</span>
 
-        # <li class="corruption">
-        # <span class="textLabel">腐敗: </span>
-        # <span class="value positive">
-        # <span title="目前腐敗程度">33%</span> 
-        # </span>
-        # </li>
         my ($elem) = $html->getElementsByAttribute("title", "目前腐敗程度");
         if(defined($elem)) {
             $self->{'cities'}->{$cityId}->{corruption} = $elem->innerText();
--- a/inference.pl	Fri Oct 10 04:42:05 2008 +0800
+++ b/inference.pl	Fri Oct 10 05:15:40 2008 +0800
@@ -41,6 +41,20 @@
     }
 }
 
+sub rule_building
+{
+    my $cityId = shift;
+
+    # 城鎮跟圍牆
+    if($cities->{$cityId}->{buildings}->{wall} < $cities->{$cityId}->{buildings}->{townHall}) {
+        Warn($cityId, sprintf("Wall level (%d) is lower then twon hall (%d)!",
+                $cities->{$cityId}->{buildings}->{wall},
+                $cities->{$cityId}->{buildings}->{townHall}
+            ));
+    }
+
+}
+
 # 貪腐
 sub rule_corruption
 {
@@ -53,7 +67,7 @@
 
 # space
 # Checking rules
-foreach my $procedure (qw/rule_happiness rule_corruption rule_resource/) {
+foreach my $procedure (qw/rule_happiness rule_corruption rule_building rule_resource/) {
     foreach my $id (keys(%$cities)) {
         eval(sprintf("%s(%s);", $procedure, $id));
     }