Mercurial > eagle-eye
annotate Ikariam.pm @ 291:73c9bf517155
fixed for check checking
author | "Rex Tsai <chihchun@kalug.linux.org.tw>" |
---|---|
date | Fri, 05 Dec 2008 22:49:36 +0800 |
parents | 24de33db8284 |
children | 1d0a55318262 |
rev | line source |
---|---|
265
aaffc50e3318
try to handle db_error
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
263
diff
changeset
|
1 |
41
5849b6fdc76c
removed my password from scripts.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
37
diff
changeset
|
2 BEGIN { |
48
96ee35378696
modified for searching configuration files
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
41
diff
changeset
|
3 foreach (((getpwuid($<))[7], $ENV{HOME}, $ENV{LOGDIR}, ".")) { |
96ee35378696
modified for searching configuration files
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
41
diff
changeset
|
4 require "$_/.eagleeye.pm" if (-f "$_/.eagleeye.pm"); |
96ee35378696
modified for searching configuration files
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
41
diff
changeset
|
5 } |
41
5849b6fdc76c
removed my password from scripts.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
37
diff
changeset
|
6 } |
2
0fb73a7a0b94
ok, we done basic island scanning functions.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
1
diff
changeset
|
7 |
265
aaffc50e3318
try to handle db_error
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
263
diff
changeset
|
8 package Ikariam::Base; |
aaffc50e3318
try to handle db_error
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
263
diff
changeset
|
9 use strict; |
aaffc50e3318
try to handle db_error
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
263
diff
changeset
|
10 require Class::DBI::SQLite; |
aaffc50e3318
try to handle db_error
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
263
diff
changeset
|
11 use base qw(Class::DBI::SQLite); |
aaffc50e3318
try to handle db_error
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
263
diff
changeset
|
12 |
aaffc50e3318
try to handle db_error
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
263
diff
changeset
|
13 sub _db_error { |
aaffc50e3318
try to handle db_error
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
263
diff
changeset
|
14 my ($self, %info) = @_; |
aaffc50e3318
try to handle db_error
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
263
diff
changeset
|
15 my $msg = delete $info{msg}; |
aaffc50e3318
try to handle db_error
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
263
diff
changeset
|
16 die($msg); |
aaffc50e3318
try to handle db_error
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
263
diff
changeset
|
17 # return $self->_carp($msg, %info); |
aaffc50e3318
try to handle db_error
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
263
diff
changeset
|
18 } |
aaffc50e3318
try to handle db_error
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
263
diff
changeset
|
19 |
aaffc50e3318
try to handle db_error
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
263
diff
changeset
|
20 1; |
aaffc50e3318
try to handle db_error
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
263
diff
changeset
|
21 |
2
0fb73a7a0b94
ok, we done basic island scanning functions.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
1
diff
changeset
|
22 use Class::DBI::AutoLoader ( |
0fb73a7a0b94
ok, we done basic island scanning functions.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
1
diff
changeset
|
23 dsn => 'dbi:SQLite:dbname=ikariam.sqlite', |
0fb73a7a0b94
ok, we done basic island scanning functions.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
1
diff
changeset
|
24 options => { RaiseError => 1 }, |
101
592d3b3b7898
implemented the WAR robot
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
100
diff
changeset
|
25 tables => ['cities', 'island', 'user', 'ally', 'report'], |
265
aaffc50e3318
try to handle db_error
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
263
diff
changeset
|
26 use_base => 'Ikariam::Base', |
2
0fb73a7a0b94
ok, we done basic island scanning functions.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
1
diff
changeset
|
27 namespace => 'Ikariam', |
0fb73a7a0b94
ok, we done basic island scanning functions.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
1
diff
changeset
|
28 ); |
0fb73a7a0b94
ok, we done basic island scanning functions.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
1
diff
changeset
|
29 |
79
9d92e8c12f58
rewrited the code in XPath.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
75
diff
changeset
|
30 package Ikariam::Extractor; |
9d92e8c12f58
rewrited the code in XPath.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
75
diff
changeset
|
31 use strict; |
9d92e8c12f58
rewrited the code in XPath.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
75
diff
changeset
|
32 use Data::Dumper; |
9d92e8c12f58
rewrited the code in XPath.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
75
diff
changeset
|
33 use XML::LibXML; |
9d92e8c12f58
rewrited the code in XPath.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
75
diff
changeset
|
34 use IO::Uncompress::Gunzip qw(gunzip $GunzipError) ; |
9d92e8c12f58
rewrited the code in XPath.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
75
diff
changeset
|
35 use Carp; |
9d92e8c12f58
rewrited the code in XPath.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
75
diff
changeset
|
36 use utf8; |
9d92e8c12f58
rewrited the code in XPath.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
75
diff
changeset
|
37 |
9d92e8c12f58
rewrited the code in XPath.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
75
diff
changeset
|
38 sub new { |
9d92e8c12f58
rewrited the code in XPath.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
75
diff
changeset
|
39 Carp::croak("Options should be key/value pairs, not hash reference") if ref($_[1]) eq 'HASH'; |
9d92e8c12f58
rewrited the code in XPath.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
75
diff
changeset
|
40 |
9d92e8c12f58
rewrited the code in XPath.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
75
diff
changeset
|
41 my($class, %conf) = @_; |
9d92e8c12f58
rewrited the code in XPath.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
75
diff
changeset
|
42 |
9d92e8c12f58
rewrited the code in XPath.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
75
diff
changeset
|
43 my $self = bless { |
9d92e8c12f58
rewrited the code in XPath.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
75
diff
changeset
|
44 doc => undef, |
9d92e8c12f58
rewrited the code in XPath.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
75
diff
changeset
|
45 gzip => 1, |
9d92e8c12f58
rewrited the code in XPath.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
75
diff
changeset
|
46 }, $class; |
9d92e8c12f58
rewrited the code in XPath.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
75
diff
changeset
|
47 |
9d92e8c12f58
rewrited the code in XPath.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
75
diff
changeset
|
48 $self->{gzip} = $conf{'gzip'} if(defined($conf{'gzip'})); |
9d92e8c12f58
rewrited the code in XPath.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
75
diff
changeset
|
49 $self->parse($conf{'content'}) if(defined($conf{'content'})); |
9d92e8c12f58
rewrited the code in XPath.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
75
diff
changeset
|
50 |
9d92e8c12f58
rewrited the code in XPath.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
75
diff
changeset
|
51 return $self; |
9d92e8c12f58
rewrited the code in XPath.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
75
diff
changeset
|
52 } |
9d92e8c12f58
rewrited the code in XPath.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
75
diff
changeset
|
53 |
9d92e8c12f58
rewrited the code in XPath.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
75
diff
changeset
|
54 sub parse { |
9d92e8c12f58
rewrited the code in XPath.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
75
diff
changeset
|
55 my ($self, $content) = @_; |
9d92e8c12f58
rewrited the code in XPath.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
75
diff
changeset
|
56 my $string; |
110
279a000eb3b0
fixed encoding issue of LibXML
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
106
diff
changeset
|
57 my $parser = XML::LibXML->new('1.0','UTF-8'); |
79
9d92e8c12f58
rewrited the code in XPath.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
75
diff
changeset
|
58 |
9d92e8c12f58
rewrited the code in XPath.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
75
diff
changeset
|
59 if($self->{gzip} == 1) { |
9d92e8c12f58
rewrited the code in XPath.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
75
diff
changeset
|
60 gunzip \$content => \$string |
9d92e8c12f58
rewrited the code in XPath.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
75
diff
changeset
|
61 or die "gunzip failed: $GunzipError\n"; |
9d92e8c12f58
rewrited the code in XPath.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
75
diff
changeset
|
62 } else { |
9d92e8c12f58
rewrited the code in XPath.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
75
diff
changeset
|
63 $string = $content; |
9d92e8c12f58
rewrited the code in XPath.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
75
diff
changeset
|
64 } |
9d92e8c12f58
rewrited the code in XPath.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
75
diff
changeset
|
65 |
117
5a66fea952fe
implemented a dirty hack to fixed the stupid highscore search function.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
110
diff
changeset
|
66 # dirty hack for stupid highScore search function. |
5a66fea952fe
implemented a dirty hack to fixed the stupid highscore search function.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
110
diff
changeset
|
67 $string =~ s/name="searchUser" value=".*?"/name="searchUser" value=""/; |
5a66fea952fe
implemented a dirty hack to fixed the stupid highscore search function.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
110
diff
changeset
|
68 |
5a66fea952fe
implemented a dirty hack to fixed the stupid highscore search function.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
110
diff
changeset
|
69 $self->{doc} = $parser->parse_html_string ($string, { suppress_errors => 1, encoding => 'UTF-8' }); |
79
9d92e8c12f58
rewrited the code in XPath.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
75
diff
changeset
|
70 return; |
9d92e8c12f58
rewrited the code in XPath.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
75
diff
changeset
|
71 } |
9d92e8c12f58
rewrited the code in XPath.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
75
diff
changeset
|
72 |
9d92e8c12f58
rewrited the code in XPath.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
75
diff
changeset
|
73 # find($XPathQuery); |
9d92e8c12f58
rewrited the code in XPath.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
75
diff
changeset
|
74 sub find { |
9d92e8c12f58
rewrited the code in XPath.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
75
diff
changeset
|
75 my $self = shift; |
9d92e8c12f58
rewrited the code in XPath.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
75
diff
changeset
|
76 my $query = shift; |
9d92e8c12f58
rewrited the code in XPath.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
75
diff
changeset
|
77 my $out = []; |
9d92e8c12f58
rewrited the code in XPath.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
75
diff
changeset
|
78 |
9d92e8c12f58
rewrited the code in XPath.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
75
diff
changeset
|
79 my $result = $self->{doc}->find($query); |
9d92e8c12f58
rewrited the code in XPath.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
75
diff
changeset
|
80 |
9d92e8c12f58
rewrited the code in XPath.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
75
diff
changeset
|
81 return undef unless defined($result); |
9d92e8c12f58
rewrited the code in XPath.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
75
diff
changeset
|
82 |
9d92e8c12f58
rewrited the code in XPath.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
75
diff
changeset
|
83 if ( $result->isa( 'XML::LibXML::NodeList' ) ) { |
150
fab1593cadf1
fixed the combat reading issue.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
148
diff
changeset
|
84 if($result->size() == 0) { |
fab1593cadf1
fixed the combat reading issue.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
148
diff
changeset
|
85 return undef unless wantarray; |
fab1593cadf1
fixed the combat reading issue.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
148
diff
changeset
|
86 return (); |
fab1593cadf1
fixed the combat reading issue.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
148
diff
changeset
|
87 } |
79
9d92e8c12f58
rewrited the code in XPath.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
75
diff
changeset
|
88 foreach ( @$result ) { |
9d92e8c12f58
rewrited the code in XPath.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
75
diff
changeset
|
89 # $_ is XML::LibXML::Element, XML::LibXML::Node |
92
bcd2e32cfabb
fixed the user name encoding issue.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
91
diff
changeset
|
90 my $literal = $_->to_literal(); |
79
9d92e8c12f58
rewrited the code in XPath.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
75
diff
changeset
|
91 utf8::encode($literal); |
9d92e8c12f58
rewrited the code in XPath.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
75
diff
changeset
|
92 # warn $_->toString(1) , "\n"; |
9d92e8c12f58
rewrited the code in XPath.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
75
diff
changeset
|
93 return $literal unless wantarray; |
9d92e8c12f58
rewrited the code in XPath.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
75
diff
changeset
|
94 push( @$out, $literal); |
9d92e8c12f58
rewrited the code in XPath.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
75
diff
changeset
|
95 } |
9d92e8c12f58
rewrited the code in XPath.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
75
diff
changeset
|
96 } else { |
9d92e8c12f58
rewrited the code in XPath.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
75
diff
changeset
|
97 Carp::croak("Unsupported data type"); |
9d92e8c12f58
rewrited the code in XPath.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
75
diff
changeset
|
98 } |
9d92e8c12f58
rewrited the code in XPath.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
75
diff
changeset
|
99 # TODO |
9d92e8c12f58
rewrited the code in XPath.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
75
diff
changeset
|
100 # XML::LibXML::Literal |
9d92e8c12f58
rewrited the code in XPath.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
75
diff
changeset
|
101 # XML::LibXML::Boolean |
9d92e8c12f58
rewrited the code in XPath.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
75
diff
changeset
|
102 |
9d92e8c12f58
rewrited the code in XPath.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
75
diff
changeset
|
103 return @$out; |
9d92e8c12f58
rewrited the code in XPath.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
75
diff
changeset
|
104 } |
9d92e8c12f58
rewrited the code in XPath.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
75
diff
changeset
|
105 |
9d92e8c12f58
rewrited the code in XPath.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
75
diff
changeset
|
106 1; |
9d92e8c12f58
rewrited the code in XPath.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
75
diff
changeset
|
107 |
0
abaee7064429
new scanning prototype.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
diff
changeset
|
108 package Ikariam; |
27
dd85b55eec2a
implemented basic inference engine.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
26
diff
changeset
|
109 use strict; |
0
abaee7064429
new scanning prototype.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
diff
changeset
|
110 use Data::Dumper; |
abaee7064429
new scanning prototype.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
diff
changeset
|
111 use LWP; |
154
637314cc57ed
checking for friends.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
150
diff
changeset
|
112 |
0
abaee7064429
new scanning prototype.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
diff
changeset
|
113 use HTTP::Cookies; |
abaee7064429
new scanning prototype.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
diff
changeset
|
114 use WWW::Mechanize; |
79
9d92e8c12f58
rewrited the code in XPath.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
75
diff
changeset
|
115 use XML::LibXML qw(:encoding); |
0
abaee7064429
new scanning prototype.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
diff
changeset
|
116 use IO::Uncompress::Gunzip qw(gunzip $GunzipError) ; |
101
592d3b3b7898
implemented the WAR robot
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
100
diff
changeset
|
117 use POSIX; |
79
9d92e8c12f58
rewrited the code in XPath.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
75
diff
changeset
|
118 use utf8; |
0
abaee7064429
new scanning prototype.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
diff
changeset
|
119 |
abaee7064429
new scanning prototype.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
diff
changeset
|
120 sub new |
abaee7064429
new scanning prototype.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
diff
changeset
|
121 { |
abaee7064429
new scanning prototype.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
diff
changeset
|
122 my ($class, $server, $user, $pass) = @_; |
abaee7064429
new scanning prototype.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
diff
changeset
|
123 |
abaee7064429
new scanning prototype.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
diff
changeset
|
124 my $self = |
abaee7064429
new scanning prototype.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
diff
changeset
|
125 { |
16
59f2c435760c
implemented cached by timing.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
10
diff
changeset
|
126 mech => WWW::Mechanize->new( |
59f2c435760c
implemented cached by timing.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
10
diff
changeset
|
127 agent => "Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.3) Gecko/2008092816 Iceweasel/3.0.1 (Debian-3.0.1-1)", |
59f2c435760c
implemented cached by timing.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
10
diff
changeset
|
128 timeout => 10, |
59f2c435760c
implemented cached by timing.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
10
diff
changeset
|
129 ), |
0
abaee7064429
new scanning prototype.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
diff
changeset
|
130 server => $server, |
abaee7064429
new scanning prototype.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
diff
changeset
|
131 user => $user, |
abaee7064429
new scanning prototype.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
diff
changeset
|
132 pass => $pass, |
117
5a66fea952fe
implemented a dirty hack to fixed the stupid highscore search function.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
110
diff
changeset
|
133 debug => undef, |
0
abaee7064429
new scanning prototype.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
diff
changeset
|
134 }; |
abaee7064429
new scanning prototype.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
diff
changeset
|
135 |
117
5a66fea952fe
implemented a dirty hack to fixed the stupid highscore search function.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
110
diff
changeset
|
136 # if debug |
179
8afd380c20ac
do not fight with friends.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
174
diff
changeset
|
137 LWP::Debug::level('+trace'); |
117
5a66fea952fe
implemented a dirty hack to fixed the stupid highscore search function.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
110
diff
changeset
|
138 |
250
a654d43731f0
implement multi-thread Ikariam::Scanner
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
242
diff
changeset
|
139 $self->{mech}->cookie_jar(HTTP::Cookies->new(file => "/tmp/ikariam-$server-cookies.txt", autosave => 1, ignore_discard => 1)); |
0
abaee7064429
new scanning prototype.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
diff
changeset
|
140 $self->{mech}->default_headers->push_header('Accept-Encoding', 'deflate'); |
abaee7064429
new scanning prototype.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
diff
changeset
|
141 |
abaee7064429
new scanning prototype.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
diff
changeset
|
142 return bless $self, $class; |
abaee7064429
new scanning prototype.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
diff
changeset
|
143 } |
abaee7064429
new scanning prototype.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
diff
changeset
|
144 |
250
a654d43731f0
implement multi-thread Ikariam::Scanner
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
242
diff
changeset
|
145 sub clone |
a654d43731f0
implement multi-thread Ikariam::Scanner
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
242
diff
changeset
|
146 { |
a654d43731f0
implement multi-thread Ikariam::Scanner
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
242
diff
changeset
|
147 my $self = shift; |
a654d43731f0
implement multi-thread Ikariam::Scanner
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
242
diff
changeset
|
148 my $copy = bless { %$self }, ref $self; # copy most fields |
a654d43731f0
implement multi-thread Ikariam::Scanner
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
242
diff
changeset
|
149 |
a654d43731f0
implement multi-thread Ikariam::Scanner
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
242
diff
changeset
|
150 $copy; |
a654d43731f0
implement multi-thread Ikariam::Scanner
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
242
diff
changeset
|
151 } |
a654d43731f0
implement multi-thread Ikariam::Scanner
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
242
diff
changeset
|
152 |
98
34749e907405
we now scan for ally
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
96
diff
changeset
|
153 sub viewAlly |
34749e907405
we now scan for ally
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
96
diff
changeset
|
154 { |
34749e907405
we now scan for ally
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
96
diff
changeset
|
155 my $self = shift; |
34749e907405
we now scan for ally
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
96
diff
changeset
|
156 my $allyId = shift; |
34749e907405
we now scan for ally
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
96
diff
changeset
|
157 |
34749e907405
we now scan for ally
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
96
diff
changeset
|
158 my $res = $self->{mech}->get(sprintf("http://%s/index.php?view=allyPage&allyId=%d", $self->{server}, $allyId)); |
34749e907405
we now scan for ally
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
96
diff
changeset
|
159 my $extractor = new Ikariam::Extractor(content => $res->content); |
34749e907405
we now scan for ally
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
96
diff
changeset
|
160 |
34749e907405
we now scan for ally
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
96
diff
changeset
|
161 my %ally; |
34749e907405
we now scan for ally
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
96
diff
changeset
|
162 $ally{'id'} = $allyId; |
34749e907405
we now scan for ally
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
96
diff
changeset
|
163 $ally{'name'} = $extractor->find("//table[\@id='allyinfo']/tr[1]/td[2]/text()"); |
34749e907405
we now scan for ally
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
96
diff
changeset
|
164 $ally{'members'} = $extractor->find("//table[\@id='allyinfo']/tr[2]/td[2]/text()"); |
240
937fc672df56
count by Ally's score
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
232
diff
changeset
|
165 $ally{'score'} = $extractor->find("//table[\@id='allyinfo']/tr[4]/td[2]/text()"); |
937fc672df56
count by Ally's score
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
232
diff
changeset
|
166 $ally{'score'} =~ s/\d+ \(([\d,]+)\)/$1/; |
937fc672df56
count by Ally's score
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
232
diff
changeset
|
167 $ally{'score'} =~ s/,//g; |
937fc672df56
count by Ally's score
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
232
diff
changeset
|
168 |
98
34749e907405
we now scan for ally
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
96
diff
changeset
|
169 $ally{'url'} = $extractor->find("//table[\@id='allyinfo']/tr[5]/td[2]/text()"); |
34749e907405
we now scan for ally
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
96
diff
changeset
|
170 delete($ally{'url'}) if($ally{'url'} eq '-'); |
34749e907405
we now scan for ally
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
96
diff
changeset
|
171 |
34749e907405
we now scan for ally
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
96
diff
changeset
|
172 return \%ally; |
34749e907405
we now scan for ally
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
96
diff
changeset
|
173 } |
34749e907405
we now scan for ally
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
96
diff
changeset
|
174 |
5
dbb97c4265ba
implemented the scores search tool
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
3
diff
changeset
|
175 sub viewScore |
dbb97c4265ba
implemented the scores search tool
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
3
diff
changeset
|
176 { |
dbb97c4265ba
implemented the scores search tool
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
3
diff
changeset
|
177 my $self = shift; |
dbb97c4265ba
implemented the scores search tool
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
3
diff
changeset
|
178 my $type = shift || 'score'; |
dbb97c4265ba
implemented the scores search tool
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
3
diff
changeset
|
179 my $user = shift || ''; |
dbb97c4265ba
implemented the scores search tool
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
3
diff
changeset
|
180 my $offset = shift || 0; |
91
53c87400183f
rewrite viewScore with Extractor.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
88
diff
changeset
|
181 my %users; |
5
dbb97c4265ba
implemented the scores search tool
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
3
diff
changeset
|
182 |
117
5a66fea952fe
implemented a dirty hack to fixed the stupid highscore search function.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
110
diff
changeset
|
183 $self->{mech}->get(sprintf("http://%s/index.php?view=highscore&showMe=1", $self->{server})); |
5a66fea952fe
implemented a dirty hack to fixed the stupid highscore search function.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
110
diff
changeset
|
184 my $res = $self->{mech}->submit_form( |
5a66fea952fe
implemented a dirty hack to fixed the stupid highscore search function.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
110
diff
changeset
|
185 form_number => 1, |
5a66fea952fe
implemented a dirty hack to fixed the stupid highscore search function.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
110
diff
changeset
|
186 fields => { |
5a66fea952fe
implemented a dirty hack to fixed the stupid highscore search function.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
110
diff
changeset
|
187 highscoreType => $type, |
5a66fea952fe
implemented a dirty hack to fixed the stupid highscore search function.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
110
diff
changeset
|
188 offset => $offset, |
5a66fea952fe
implemented a dirty hack to fixed the stupid highscore search function.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
110
diff
changeset
|
189 searchUser => $user, |
5a66fea952fe
implemented a dirty hack to fixed the stupid highscore search function.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
110
diff
changeset
|
190 } |
5a66fea952fe
implemented a dirty hack to fixed the stupid highscore search function.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
110
diff
changeset
|
191 ); |
5a66fea952fe
implemented a dirty hack to fixed the stupid highscore search function.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
110
diff
changeset
|
192 |
91
53c87400183f
rewrite viewScore with Extractor.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
88
diff
changeset
|
193 my $extractor = new Ikariam::Extractor(content => $res->content); |
53c87400183f
rewrite viewScore with Extractor.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
88
diff
changeset
|
194 my $result = $extractor->{doc}->find('//table[@class="table01"][2]//tr'); |
101
592d3b3b7898
implemented the WAR robot
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
100
diff
changeset
|
195 |
91
53c87400183f
rewrite viewScore with Extractor.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
88
diff
changeset
|
196 foreach my $tr ( @$result ) { |
5
dbb97c4265ba
implemented the scores search tool
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
3
diff
changeset
|
197 my %user; |
117
5a66fea952fe
implemented a dirty hack to fixed the stupid highscore search function.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
110
diff
changeset
|
198 my $extractor = new Ikariam::Extractor(content => $tr->toString(0)); |
5
dbb97c4265ba
implemented the scores search tool
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
3
diff
changeset
|
199 |
92
bcd2e32cfabb
fixed the user name encoding issue.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
91
diff
changeset
|
200 my $href = $extractor->find('//td[@class="action"]/a/@href'); |
91
53c87400183f
rewrite viewScore with Extractor.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
88
diff
changeset
|
201 if($href =~ /index\.php\?view=sendMessage&with=(\d+)&oldView=highscore/) { |
5
dbb97c4265ba
implemented the scores search tool
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
3
diff
changeset
|
202 $user{'id'} = $1; |
117
5a66fea952fe
implemented a dirty hack to fixed the stupid highscore search function.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
110
diff
changeset
|
203 # $user{'name'} = $user; |
110
279a000eb3b0
fixed encoding issue of LibXML
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
106
diff
changeset
|
204 # encoding issue. |
279a000eb3b0
fixed encoding issue of LibXML
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
106
diff
changeset
|
205 $user{'name'} = $extractor->find('//td[@class="name"]/text()'); |
117
5a66fea952fe
implemented a dirty hack to fixed the stupid highscore search function.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
110
diff
changeset
|
206 next if($user{'name'} eq ''); |
92
bcd2e32cfabb
fixed the user name encoding issue.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
91
diff
changeset
|
207 |
bcd2e32cfabb
fixed the user name encoding issue.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
91
diff
changeset
|
208 $user{'ally'} = $extractor->find('//td[@class="allytag"]/a/text()'); |
bcd2e32cfabb
fixed the user name encoding issue.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
91
diff
changeset
|
209 my $allyHref = $extractor->find('//td[@class="allytag"]/a/@href'); |
98
34749e907405
we now scan for ally
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
96
diff
changeset
|
210 if($allyHref =~ /\?view=allyPage&oldView=highscore&allyId=(\d+)/) { |
5
dbb97c4265ba
implemented the scores search tool
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
3
diff
changeset
|
211 $user{'allyId'} = $1; |
dbb97c4265ba
implemented the scores search tool
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
3
diff
changeset
|
212 } |
92
bcd2e32cfabb
fixed the user name encoding issue.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
91
diff
changeset
|
213 $user{$type} = $extractor->find('//td[@class="score"]/text()'); |
19 | 214 $user{$type} =~ s/,//g; |
5
dbb97c4265ba
implemented the scores search tool
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
3
diff
changeset
|
215 $users{$user{'id'}} = \%user; |
dbb97c4265ba
implemented the scores search tool
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
3
diff
changeset
|
216 } |
dbb97c4265ba
implemented the scores search tool
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
3
diff
changeset
|
217 } |
101
592d3b3b7898
implemented the WAR robot
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
100
diff
changeset
|
218 # print(Dumper(\%users)); |
5
dbb97c4265ba
implemented the scores search tool
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
3
diff
changeset
|
219 return \%users; |
dbb97c4265ba
implemented the scores search tool
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
3
diff
changeset
|
220 } |
dbb97c4265ba
implemented the scores search tool
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
3
diff
changeset
|
221 |
0
abaee7064429
new scanning prototype.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
diff
changeset
|
222 sub viewWorldMap |
abaee7064429
new scanning prototype.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
diff
changeset
|
223 { |
abaee7064429
new scanning prototype.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
diff
changeset
|
224 my $self = shift; |
abaee7064429
new scanning prototype.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
diff
changeset
|
225 my $x = shift; |
abaee7064429
new scanning prototype.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
diff
changeset
|
226 my $y = shift; |
abaee7064429
new scanning prototype.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
diff
changeset
|
227 |
88
0fa9cd836e1e
rewrited the viewIsland function.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
87
diff
changeset
|
228 if(!defined($x) && !defined($y)) { |
1 | 229 die('location required'); |
230 } | |
231 | |
232 my $res = $self->{mech}->post(sprintf("http://%s/index.php?view=worldmap_iso", $self->{server}), [ | |
0
abaee7064429
new scanning prototype.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
diff
changeset
|
233 xajax => 'getMapData', |
abaee7064429
new scanning prototype.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
diff
changeset
|
234 'xajaxargs[]' => $x, |
abaee7064429
new scanning prototype.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
diff
changeset
|
235 'xajaxargs[]' => $y, |
abaee7064429
new scanning prototype.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
diff
changeset
|
236 xajaxr => time, |
abaee7064429
new scanning prototype.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
diff
changeset
|
237 ]); |
1 | 238 |
239 my $c; | |
240 my $status = gunzip \$res->content => \$c | |
241 or die "gunzip failed: $GunzipError\n"; | |
242 | |
243 my @islands; | |
244 # parsing xjxobj | |
245 while($c =~ /<cmd n="jc" t="addToMap"><xjxobj><e><k>0<\/k><v><!\[CDATA\[(\d+)\]\]><\/v><\/e><e><k>1<\/k><v><!\[CDATA\[(\d+)\]\]><\/v><\/e><e><k>2<\/k><v><!\[CDATA\[(\d+)\]\]><\/v><\/e><e><k>3<\/k><v><!\[CDATA\[(\d+)\]\]><\/v><\/e><e><k>4<\/k><v><!\[CDATA\[(\d+)\]\]><\/v><\/e><e><k>5<\/k><v><!\[CDATA\[(\w+)\]\]><\/v><\/e><e><k>6<\/k><v><!\[CDATA\[(\d+)\]\]><\/v><\/e><e><k>7<\/k><v><!\[CDATA\[(\d+)\]\]><\/v><\/e><\/xjxobj><\/cmd>/g) | |
246 { | |
247 my %island; | |
248 $island{id} = $3; | |
249 $island{x} = $1; | |
250 $island{y} = $2; | |
251 $island{name} = $6; | |
252 $island{tradegood} = $4; | |
253 $island{wonder} = $5; | |
254 # $7 ? | |
255 $island{people} = $8; | |
256 push @islands, \%island; | |
0
abaee7064429
new scanning prototype.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
diff
changeset
|
257 } |
1 | 258 return @islands; |
259 } | |
260 | |
3 | 261 sub viewHomeMap |
1 | 262 { |
263 my $self = shift; | |
264 | |
265 my $res = $self->{mech}->get(sprintf("http://%s/index.php?view=worldmap_iso", $self->{server})); | |
0
abaee7064429
new scanning prototype.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
diff
changeset
|
266 |
abaee7064429
new scanning prototype.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
diff
changeset
|
267 my $c; |
abaee7064429
new scanning prototype.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
diff
changeset
|
268 my $status = gunzip \$res->content => \$c |
abaee7064429
new scanning prototype.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
diff
changeset
|
269 or die "gunzip failed: $GunzipError\n"; |
abaee7064429
new scanning prototype.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
diff
changeset
|
270 |
abaee7064429
new scanning prototype.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
diff
changeset
|
271 # m[50][36]=new Array(564,1,5,'Risietia', '5', 13); |
abaee7064429
new scanning prototype.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
diff
changeset
|
272 # x = 43-57 = 6 |
abaee7064429
new scanning prototype.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
diff
changeset
|
273 # y = 27-41 = 6 |
abaee7064429
new scanning prototype.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
diff
changeset
|
274 my @islands; |
abaee7064429
new scanning prototype.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
diff
changeset
|
275 while($c =~ /m\[(\d+)\]\[(\d+)\]=new Array\((\d+),(\d+),(\d+),'(\w+)', '(\d+)', (\d+)\);/g) |
abaee7064429
new scanning prototype.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
diff
changeset
|
276 { |
abaee7064429
new scanning prototype.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
diff
changeset
|
277 my %island; |
abaee7064429
new scanning prototype.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
diff
changeset
|
278 $island{id} = $3; |
abaee7064429
new scanning prototype.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
diff
changeset
|
279 $island{x} = $1; |
abaee7064429
new scanning prototype.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
diff
changeset
|
280 $island{y} = $2; |
abaee7064429
new scanning prototype.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
diff
changeset
|
281 $island{name} = $6; |
abaee7064429
new scanning prototype.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
diff
changeset
|
282 $island{tradegood} = $4; |
abaee7064429
new scanning prototype.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
diff
changeset
|
283 $island{wonder} = $5; |
abaee7064429
new scanning prototype.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
diff
changeset
|
284 # $7 ? |
abaee7064429
new scanning prototype.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
diff
changeset
|
285 $island{people} = $8; |
abaee7064429
new scanning prototype.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
diff
changeset
|
286 |
abaee7064429
new scanning prototype.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
diff
changeset
|
287 #foreach my $i (sort(keys(%island))) |
abaee7064429
new scanning prototype.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
diff
changeset
|
288 #{ |
abaee7064429
new scanning prototype.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
diff
changeset
|
289 # printf ("%s %s\n", $i, $island{$i}); |
abaee7064429
new scanning prototype.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
diff
changeset
|
290 #} |
abaee7064429
new scanning prototype.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
diff
changeset
|
291 #print("\n"); |
abaee7064429
new scanning prototype.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
diff
changeset
|
292 push @islands, \%island; |
abaee7064429
new scanning prototype.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
diff
changeset
|
293 } |
abaee7064429
new scanning prototype.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
diff
changeset
|
294 return @islands; |
abaee7064429
new scanning prototype.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
diff
changeset
|
295 } |
abaee7064429
new scanning prototype.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
diff
changeset
|
296 |
abaee7064429
new scanning prototype.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
diff
changeset
|
297 sub viewIsland |
abaee7064429
new scanning prototype.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
diff
changeset
|
298 { |
abaee7064429
new scanning prototype.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
diff
changeset
|
299 my $self = shift; |
abaee7064429
new scanning prototype.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
diff
changeset
|
300 my $island = shift; |
abaee7064429
new scanning prototype.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
diff
changeset
|
301 |
abaee7064429
new scanning prototype.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
diff
changeset
|
302 my $res = $self->{mech}->get(sprintf("http://%s/index.php?view=island&id=%s", $self->{server}, $island)); |
88
0fa9cd836e1e
rewrited the viewIsland function.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
87
diff
changeset
|
303 my $extractor = new Ikariam::Extractor(content => $res->content); |
0
abaee7064429
new scanning prototype.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
diff
changeset
|
304 |
88
0fa9cd836e1e
rewrited the viewIsland function.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
87
diff
changeset
|
305 my @cities; |
0fa9cd836e1e
rewrited the viewIsland function.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
87
diff
changeset
|
306 foreach my $i (0..16) { |
0fa9cd836e1e
rewrited the viewIsland function.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
87
diff
changeset
|
307 my $cityLocations = $extractor->find(sprintf('//li[@id="cityLocation%s"]/@class', $i)); |
0fa9cd836e1e
rewrited the viewIsland function.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
87
diff
changeset
|
308 if($cityLocations =~ /city level(\d+)/) { |
0fa9cd836e1e
rewrited the viewIsland function.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
87
diff
changeset
|
309 my %info; |
0fa9cd836e1e
rewrited the viewIsland function.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
87
diff
changeset
|
310 $info{'citylevel'} = $1; |
0fa9cd836e1e
rewrited the viewIsland function.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
87
diff
changeset
|
311 $info{'cityname'} = $extractor->find(sprintf('//li[@id="cityLocation%s"]//li[@class="name"]/text()', $i)); |
0fa9cd836e1e
rewrited the viewIsland function.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
87
diff
changeset
|
312 $info{'owner'} = $extractor->find(sprintf('//li[@id="cityLocation%s"]//li[@class="owner"]/text()', $i)); |
0fa9cd836e1e
rewrited the viewIsland function.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
87
diff
changeset
|
313 $info{'owner'} =~ s/\s+//g; |
0fa9cd836e1e
rewrited the viewIsland function.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
87
diff
changeset
|
314 $info{'ally'} = $extractor->find(sprintf('//li[@id="cityLocation%s"]//li[@class="ally"]/a/text()', $i)); |
117
5a66fea952fe
implemented a dirty hack to fixed the stupid highscore search function.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
110
diff
changeset
|
315 if($info{'ally'} eq '-') { |
5a66fea952fe
implemented a dirty hack to fixed the stupid highscore search function.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
110
diff
changeset
|
316 delete($info{'ally'}) |
5a66fea952fe
implemented a dirty hack to fixed the stupid highscore search function.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
110
diff
changeset
|
317 } else { |
5a66fea952fe
implemented a dirty hack to fixed the stupid highscore search function.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
110
diff
changeset
|
318 my $href = $extractor->find(sprintf('//li[@id="cityLocation%s"]//li[@class="ally"]/a/@href', $i)); |
5a66fea952fe
implemented a dirty hack to fixed the stupid highscore search function.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
110
diff
changeset
|
319 if($href =~ /&allyId=(\d+)&/) { |
5a66fea952fe
implemented a dirty hack to fixed the stupid highscore search function.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
110
diff
changeset
|
320 $info{'allyId'} = $1; |
5a66fea952fe
implemented a dirty hack to fixed the stupid highscore search function.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
110
diff
changeset
|
321 } |
5a66fea952fe
implemented a dirty hack to fixed the stupid highscore search function.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
110
diff
changeset
|
322 } |
5a66fea952fe
implemented a dirty hack to fixed the stupid highscore search function.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
110
diff
changeset
|
323 |
5a66fea952fe
implemented a dirty hack to fixed the stupid highscore search function.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
110
diff
changeset
|
324 # Ally Id |
88
0fa9cd836e1e
rewrited the viewIsland function.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
87
diff
changeset
|
325 my $href = $extractor->find(sprintf('//li[@id="cityLocation%s"]//a[@class="messageSend"]/@href', $i)); |
0fa9cd836e1e
rewrited the viewIsland function.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
87
diff
changeset
|
326 if ($href =~ /with=(\d+)&destinationCityId=(\d+)/) { |
0fa9cd836e1e
rewrited the viewIsland function.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
87
diff
changeset
|
327 $info{'user'} = $1; |
0fa9cd836e1e
rewrited the viewIsland function.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
87
diff
changeset
|
328 $info{'cityId'} = $2; |
0fa9cd836e1e
rewrited the viewIsland function.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
87
diff
changeset
|
329 } else { |
183
2362c8c8909e
implemented military builder.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
174
diff
changeset
|
330 # 聯盟 this is me. |
88
0fa9cd836e1e
rewrited the viewIsland function.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
87
diff
changeset
|
331 my $id = $extractor->find(sprintf('//li[@id="cityLocation%s"]/a/@id', $i)); |
0fa9cd836e1e
rewrited the viewIsland function.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
87
diff
changeset
|
332 if($id =~ /city_(\d+)/) { |
0fa9cd836e1e
rewrited the viewIsland function.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
87
diff
changeset
|
333 $info{'user'} = undef; # FIXME |
0fa9cd836e1e
rewrited the viewIsland function.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
87
diff
changeset
|
334 $info{'cityId'} = $1; |
0fa9cd836e1e
rewrited the viewIsland function.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
87
diff
changeset
|
335 } |
10
f590b5ea5e55
fixed bug of sheep.pl
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
9
diff
changeset
|
336 } |
f590b5ea5e55
fixed bug of sheep.pl
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
9
diff
changeset
|
337 |
88
0fa9cd836e1e
rewrited the viewIsland function.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
87
diff
changeset
|
338 if(defined(($extractor->find(sprintf('//li[@id="cityLocation%s"]//span[@class="vacation"]', $i)))[0])) { |
0fa9cd836e1e
rewrited the viewIsland function.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
87
diff
changeset
|
339 $info{'status'} = 'v'; |
0fa9cd836e1e
rewrited the viewIsland function.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
87
diff
changeset
|
340 } |
96
65c102183458
saved the status of inactivity player
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
92
diff
changeset
|
341 if(defined(($extractor->find(sprintf('//li[@id="cityLocation%s"]//span[@class="inactivity"]', $i)))[0])) { |
65c102183458
saved the status of inactivity player
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
92
diff
changeset
|
342 $info{'status'} = 'i'; |
65c102183458
saved the status of inactivity player
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
92
diff
changeset
|
343 } |
88
0fa9cd836e1e
rewrited the viewIsland function.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
87
diff
changeset
|
344 push @cities, \%info; |
0fa9cd836e1e
rewrited the viewIsland function.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
87
diff
changeset
|
345 } else { |
0fa9cd836e1e
rewrited the viewIsland function.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
87
diff
changeset
|
346 # TODO: delete the old city. |
0
abaee7064429
new scanning prototype.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
diff
changeset
|
347 } |
10
f590b5ea5e55
fixed bug of sheep.pl
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
9
diff
changeset
|
348 |
0
abaee7064429
new scanning prototype.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
diff
changeset
|
349 } |
abaee7064429
new scanning prototype.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
diff
changeset
|
350 |
abaee7064429
new scanning prototype.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
diff
changeset
|
351 return @cities; |
abaee7064429
new scanning prototype.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
diff
changeset
|
352 } |
abaee7064429
new scanning prototype.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
diff
changeset
|
353 |
54
2d3c394b7940
rules for build new building and buy transporters
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
52
diff
changeset
|
354 sub increaseTransporter { |
2d3c394b7940
rules for build new building and buy transporters
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
52
diff
changeset
|
355 my $self = shift; |
2d3c394b7940
rules for build new building and buy transporters
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
52
diff
changeset
|
356 my $param = shift; |
2d3c394b7940
rules for build new building and buy transporters
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
52
diff
changeset
|
357 my $cityId = shift; |
2d3c394b7940
rules for build new building and buy transporters
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
52
diff
changeset
|
358 |
80
7ab5fc8c847c
added some memo of TODO
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
79
diff
changeset
|
359 # TODO: 應該扣除買船之黃金, 以免誤計 |
7ab5fc8c847c
added some memo of TODO
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
79
diff
changeset
|
360 # TODO: 加上所有之船隻 |
7ab5fc8c847c
added some memo of TODO
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
79
diff
changeset
|
361 # my @cargoCost = qw/160 244 396 812 1240 1272 1832 1888 3848 3972 5204 5384 6868 7120 8864 9200 11268 11712 14108 14680 23320 24288 28664 29880 34956 36468 42348 44212 51024 53308 61236 64024 73096 76468 87020 91088 103224 116524 122072 137432 180060 202132 211964 237444 249108 278276 292076 306623 321963 338138 355198 373191 392171 412195 433320 455612 479135 503962 530166 557828 587031 617863 650420 684802 721113 759466 799981 842783 888005 935790 986286 1039654 1096062 1155689 1218724 1285369 1355837 1430353 1509159 1592508 1680670 1773932 1872597 1976989 2087448 2204338 2328045 2458976 2597567 2744276 2899594 3064040 3238163 3422550 3617820 3824635 4043693 4275738 4521561 4782000 5057946 5350345 5660202 5988585 6336630 6705540 7096598 7511164 7950683 8416694 8910828 9434823 9990523 10579889 11205006 11868090 12571498 13317734 14109462 14949514/; |
7ab5fc8c847c
added some memo of TODO
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
79
diff
changeset
|
362 # $city->{transporters}->{sum} |
7ab5fc8c847c
added some memo of TODO
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
79
diff
changeset
|
363 |
7ab5fc8c847c
added some memo of TODO
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
79
diff
changeset
|
364 # TODO: 找買船最便宜之城市 |
54
2d3c394b7940
rules for build new building and buy transporters
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
52
diff
changeset
|
365 my @locations = @{$self->{'cities'}->{$cityId}->{locations}}; |
2d3c394b7940
rules for build new building and buy transporters
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
52
diff
changeset
|
366 foreach (1..2) { |
2d3c394b7940
rules for build new building and buy transporters
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
52
diff
changeset
|
367 if($locations[$_] eq 'port') { |
2d3c394b7940
rules for build new building and buy transporters
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
52
diff
changeset
|
368 my $res = $self->{mech}->get(sprintf('http://%s/index.php?action=CityScreen&function=increaseTransporter&id=%s&position=%s', |
2d3c394b7940
rules for build new building and buy transporters
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
52
diff
changeset
|
369 $self->{server}, $cityId, $_)); |
2d3c394b7940
rules for build new building and buy transporters
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
52
diff
changeset
|
370 } |
2d3c394b7940
rules for build new building and buy transporters
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
52
diff
changeset
|
371 } |
2d3c394b7940
rules for build new building and buy transporters
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
52
diff
changeset
|
372 } |
2d3c394b7940
rules for build new building and buy transporters
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
52
diff
changeset
|
373 |
183
2362c8c8909e
implemented military builder.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
174
diff
changeset
|
374 |
173
e8a244ce5a1d
update the tavern setting
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
172
diff
changeset
|
375 # for tavern only |
e8a244ce5a1d
update the tavern setting
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
172
diff
changeset
|
376 sub set { |
e8a244ce5a1d
update the tavern setting
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
172
diff
changeset
|
377 my $self = shift; |
e8a244ce5a1d
update the tavern setting
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
172
diff
changeset
|
378 my $type = shift; |
e8a244ce5a1d
update the tavern setting
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
172
diff
changeset
|
379 my $cityId = shift; |
e8a244ce5a1d
update the tavern setting
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
172
diff
changeset
|
380 |
e8a244ce5a1d
update the tavern setting
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
172
diff
changeset
|
381 die ("we don't know about this city") unless(defined($self->{'cities'}->{$cityId})); |
e8a244ce5a1d
update the tavern setting
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
172
diff
changeset
|
382 |
e8a244ce5a1d
update the tavern setting
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
172
diff
changeset
|
383 my $position = -1; |
e8a244ce5a1d
update the tavern setting
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
172
diff
changeset
|
384 my @locations = @{$self->{'cities'}->{$cityId}->{locations}}; |
e8a244ce5a1d
update the tavern setting
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
172
diff
changeset
|
385 foreach (0..$#locations) { |
e8a244ce5a1d
update the tavern setting
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
172
diff
changeset
|
386 $position = $_ if($locations[$_] eq $type); |
e8a244ce5a1d
update the tavern setting
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
172
diff
changeset
|
387 } |
e8a244ce5a1d
update the tavern setting
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
172
diff
changeset
|
388 |
232
978a949602e5
Auto-update Scientists numbers for Academy.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
210
diff
changeset
|
389 # Academy - inputScientists |
978a949602e5
Auto-update Scientists numbers for Academy.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
210
diff
changeset
|
390 if($position != -1 && $type eq 'academy') { |
978a949602e5
Auto-update Scientists numbers for Academy.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
210
diff
changeset
|
391 $self->{mech}->get (sprintf("http://%s/index.php?view=%s&id=%s&position=%d", $self->{server}, $type, $cityId, $position)); |
978a949602e5
Auto-update Scientists numbers for Academy.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
210
diff
changeset
|
392 $self->{mech}->submit_form( |
978a949602e5
Auto-update Scientists numbers for Academy.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
210
diff
changeset
|
393 form_number => 1, |
978a949602e5
Auto-update Scientists numbers for Academy.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
210
diff
changeset
|
394 fields => { |
978a949602e5
Auto-update Scientists numbers for Academy.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
210
diff
changeset
|
395 s => $self->{'cities'}->{$cityId}->{$type}->{maxValue}, |
978a949602e5
Auto-update Scientists numbers for Academy.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
210
diff
changeset
|
396 } |
978a949602e5
Auto-update Scientists numbers for Academy.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
210
diff
changeset
|
397 ); |
978a949602e5
Auto-update Scientists numbers for Academy.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
210
diff
changeset
|
398 |
978a949602e5
Auto-update Scientists numbers for Academy.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
210
diff
changeset
|
399 } |
978a949602e5
Auto-update Scientists numbers for Academy.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
210
diff
changeset
|
400 |
978a949602e5
Auto-update Scientists numbers for Academy.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
210
diff
changeset
|
401 # Tavern |
978a949602e5
Auto-update Scientists numbers for Academy.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
210
diff
changeset
|
402 if($position != -1 && $type eq 'tavern') { |
978a949602e5
Auto-update Scientists numbers for Academy.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
210
diff
changeset
|
403 $self->{mech}->get (sprintf("http://%s/index.php?view=%s&id=%s&position=%d", $self->{server}, $type, $cityId, $position)); |
978a949602e5
Auto-update Scientists numbers for Academy.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
210
diff
changeset
|
404 $self->{mech}->submit_form( |
978a949602e5
Auto-update Scientists numbers for Academy.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
210
diff
changeset
|
405 form_number => 1, |
978a949602e5
Auto-update Scientists numbers for Academy.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
210
diff
changeset
|
406 fields => { |
978a949602e5
Auto-update Scientists numbers for Academy.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
210
diff
changeset
|
407 amount => $self->{'cities'}->{$cityId}->{$type}->{maxValue}, |
978a949602e5
Auto-update Scientists numbers for Academy.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
210
diff
changeset
|
408 } |
978a949602e5
Auto-update Scientists numbers for Academy.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
210
diff
changeset
|
409 ); |
978a949602e5
Auto-update Scientists numbers for Academy.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
210
diff
changeset
|
410 |
173
e8a244ce5a1d
update the tavern setting
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
172
diff
changeset
|
411 } |
e8a244ce5a1d
update the tavern setting
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
172
diff
changeset
|
412 } |
e8a244ce5a1d
update the tavern setting
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
172
diff
changeset
|
413 |
183
2362c8c8909e
implemented military builder.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
174
diff
changeset
|
414 sub is_shipyard_upgrading { |
2362c8c8909e
implemented military builder.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
174
diff
changeset
|
415 my $self = shift; |
2362c8c8909e
implemented military builder.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
174
diff
changeset
|
416 my $cityId = shift; |
2362c8c8909e
implemented military builder.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
174
diff
changeset
|
417 my $type = "shipyard"; |
2362c8c8909e
implemented military builder.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
174
diff
changeset
|
418 |
2362c8c8909e
implemented military builder.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
174
diff
changeset
|
419 my $position = -1; |
2362c8c8909e
implemented military builder.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
174
diff
changeset
|
420 my @locations = @{$self->{'cities'}->{$cityId}->{locations}}; |
2362c8c8909e
implemented military builder.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
174
diff
changeset
|
421 foreach (1..2) { |
2362c8c8909e
implemented military builder.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
174
diff
changeset
|
422 $position = $_ if($locations[$_] eq $type); |
2362c8c8909e
implemented military builder.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
174
diff
changeset
|
423 } |
2362c8c8909e
implemented military builder.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
174
diff
changeset
|
424 |
2362c8c8909e
implemented military builder.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
174
diff
changeset
|
425 if($position != -1) { |
2362c8c8909e
implemented military builder.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
174
diff
changeset
|
426 my $res = $self->{mech}->get (sprintf("http://%s/index.php?view=%s&id=%s&position=%d", $self->{server}, $type, $cityId, $position)); |
2362c8c8909e
implemented military builder.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
174
diff
changeset
|
427 if(defined(Ikariam::Extractor->new(content => $res->content)->find('//div[@class="isUpgrading"]'))) { |
2362c8c8909e
implemented military builder.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
174
diff
changeset
|
428 return 1; |
2362c8c8909e
implemented military builder.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
174
diff
changeset
|
429 } else { |
2362c8c8909e
implemented military builder.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
174
diff
changeset
|
430 return 0; |
2362c8c8909e
implemented military builder.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
174
diff
changeset
|
431 } |
2362c8c8909e
implemented military builder.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
174
diff
changeset
|
432 } |
2362c8c8909e
implemented military builder.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
174
diff
changeset
|
433 return 0; |
2362c8c8909e
implemented military builder.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
174
diff
changeset
|
434 } |
2362c8c8909e
implemented military builder.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
174
diff
changeset
|
435 |
2362c8c8909e
implemented military builder.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
174
diff
changeset
|
436 sub is_navy_trainning { |
2362c8c8909e
implemented military builder.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
174
diff
changeset
|
437 my $self = shift; |
2362c8c8909e
implemented military builder.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
174
diff
changeset
|
438 my $cityId = shift; |
2362c8c8909e
implemented military builder.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
174
diff
changeset
|
439 my $type = "shipyard"; |
2362c8c8909e
implemented military builder.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
174
diff
changeset
|
440 |
2362c8c8909e
implemented military builder.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
174
diff
changeset
|
441 my $position = -1; |
2362c8c8909e
implemented military builder.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
174
diff
changeset
|
442 my @locations = @{$self->{'cities'}->{$cityId}->{locations}}; |
2362c8c8909e
implemented military builder.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
174
diff
changeset
|
443 foreach (1..2) { |
2362c8c8909e
implemented military builder.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
174
diff
changeset
|
444 $position = $_ if($locations[$_] eq $type); |
2362c8c8909e
implemented military builder.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
174
diff
changeset
|
445 } |
2362c8c8909e
implemented military builder.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
174
diff
changeset
|
446 |
2362c8c8909e
implemented military builder.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
174
diff
changeset
|
447 if($position != -1) { |
2362c8c8909e
implemented military builder.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
174
diff
changeset
|
448 my $res = $self->{mech}->get (sprintf("http://%s/index.php?view=%s&id=%s&position=%d", $self->{server}, $type, $cityId, $position)); |
2362c8c8909e
implemented military builder.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
174
diff
changeset
|
449 if(defined(Ikariam::Extractor->new(content => $res->content)->find('//div[@id="unitConstructionList"]//h4'))) { |
2362c8c8909e
implemented military builder.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
174
diff
changeset
|
450 return 1; |
2362c8c8909e
implemented military builder.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
174
diff
changeset
|
451 } else { |
2362c8c8909e
implemented military builder.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
174
diff
changeset
|
452 return 0; |
2362c8c8909e
implemented military builder.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
174
diff
changeset
|
453 } |
2362c8c8909e
implemented military builder.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
174
diff
changeset
|
454 } |
2362c8c8909e
implemented military builder.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
174
diff
changeset
|
455 # FIXME we can not found the shipyard |
2362c8c8909e
implemented military builder.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
174
diff
changeset
|
456 return 0; |
2362c8c8909e
implemented military builder.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
174
diff
changeset
|
457 } |
2362c8c8909e
implemented military builder.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
174
diff
changeset
|
458 |
2362c8c8909e
implemented military builder.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
174
diff
changeset
|
459 sub buildShips { |
2362c8c8909e
implemented military builder.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
174
diff
changeset
|
460 my $self = shift; |
2362c8c8909e
implemented military builder.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
174
diff
changeset
|
461 my $shipType = shift; |
2362c8c8909e
implemented military builder.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
174
diff
changeset
|
462 my $cityId = shift; |
2362c8c8909e
implemented military builder.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
174
diff
changeset
|
463 my $type = 'shipyard'; |
2362c8c8909e
implemented military builder.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
174
diff
changeset
|
464 |
2362c8c8909e
implemented military builder.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
174
diff
changeset
|
465 warn("buildShips $shipType"); |
2362c8c8909e
implemented military builder.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
174
diff
changeset
|
466 my $position = -1; |
2362c8c8909e
implemented military builder.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
174
diff
changeset
|
467 my @locations = @{$self->{'cities'}->{$cityId}->{locations}}; |
2362c8c8909e
implemented military builder.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
174
diff
changeset
|
468 foreach (1..2) { |
2362c8c8909e
implemented military builder.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
174
diff
changeset
|
469 $position = $_ if($locations[$_] eq $type); |
2362c8c8909e
implemented military builder.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
174
diff
changeset
|
470 } |
2362c8c8909e
implemented military builder.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
174
diff
changeset
|
471 |
2362c8c8909e
implemented military builder.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
174
diff
changeset
|
472 if($position != -1) { |
2362c8c8909e
implemented military builder.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
174
diff
changeset
|
473 my $res = $self->{mech}->get (sprintf("http://%s/index.php?view=%s&id=%s&position=%d", $self->{server}, $type, $cityId, $position)); |
2362c8c8909e
implemented military builder.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
174
diff
changeset
|
474 $self->{mech}->submit_form( |
2362c8c8909e
implemented military builder.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
174
diff
changeset
|
475 form_number => 1, |
2362c8c8909e
implemented military builder.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
174
diff
changeset
|
476 fields => { |
2362c8c8909e
implemented military builder.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
174
diff
changeset
|
477 $shipType => 1, |
2362c8c8909e
implemented military builder.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
174
diff
changeset
|
478 } |
2362c8c8909e
implemented military builder.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
174
diff
changeset
|
479 ); |
2362c8c8909e
implemented military builder.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
174
diff
changeset
|
480 } |
2362c8c8909e
implemented military builder.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
174
diff
changeset
|
481 } |
2362c8c8909e
implemented military builder.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
174
diff
changeset
|
482 |
2362c8c8909e
implemented military builder.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
174
diff
changeset
|
483 sub is_army_trainning { |
2362c8c8909e
implemented military builder.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
174
diff
changeset
|
484 my $self = shift; |
2362c8c8909e
implemented military builder.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
174
diff
changeset
|
485 my $cityId = shift; |
2362c8c8909e
implemented military builder.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
174
diff
changeset
|
486 my $type = "barracks"; |
2362c8c8909e
implemented military builder.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
174
diff
changeset
|
487 |
2362c8c8909e
implemented military builder.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
174
diff
changeset
|
488 my $position = -1; |
2362c8c8909e
implemented military builder.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
174
diff
changeset
|
489 my @locations = @{$self->{'cities'}->{$cityId}->{locations}}; |
2362c8c8909e
implemented military builder.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
174
diff
changeset
|
490 foreach (2..$#locations) { |
2362c8c8909e
implemented military builder.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
174
diff
changeset
|
491 $position = $_ if($locations[$_] eq $type); |
2362c8c8909e
implemented military builder.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
174
diff
changeset
|
492 } |
2362c8c8909e
implemented military builder.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
174
diff
changeset
|
493 |
2362c8c8909e
implemented military builder.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
174
diff
changeset
|
494 if($position != -1) { |
2362c8c8909e
implemented military builder.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
174
diff
changeset
|
495 my $res = $self->{mech}->get (sprintf("http://%s/index.php?view=%s&id=%s&position=%d", $self->{server}, $type, $cityId, $position)); |
2362c8c8909e
implemented military builder.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
174
diff
changeset
|
496 if(defined(Ikariam::Extractor->new(content => $res->content)->find('//div[@id="unitConstructionList"]//h4'))) { |
2362c8c8909e
implemented military builder.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
174
diff
changeset
|
497 return 1; |
2362c8c8909e
implemented military builder.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
174
diff
changeset
|
498 } else { |
2362c8c8909e
implemented military builder.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
174
diff
changeset
|
499 return 0; |
2362c8c8909e
implemented military builder.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
174
diff
changeset
|
500 } |
2362c8c8909e
implemented military builder.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
174
diff
changeset
|
501 } |
2362c8c8909e
implemented military builder.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
174
diff
changeset
|
502 # FIXME we can not found the shipyard |
2362c8c8909e
implemented military builder.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
174
diff
changeset
|
503 return 0; |
2362c8c8909e
implemented military builder.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
174
diff
changeset
|
504 } |
2362c8c8909e
implemented military builder.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
174
diff
changeset
|
505 |
2362c8c8909e
implemented military builder.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
174
diff
changeset
|
506 sub is_barracks_upgrading { |
2362c8c8909e
implemented military builder.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
174
diff
changeset
|
507 my $self = shift; |
2362c8c8909e
implemented military builder.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
174
diff
changeset
|
508 my $cityId = shift; |
2362c8c8909e
implemented military builder.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
174
diff
changeset
|
509 my $type = 'barracks'; |
2362c8c8909e
implemented military builder.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
174
diff
changeset
|
510 |
2362c8c8909e
implemented military builder.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
174
diff
changeset
|
511 my $position = -1; |
2362c8c8909e
implemented military builder.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
174
diff
changeset
|
512 my @locations = @{$self->{'cities'}->{$cityId}->{locations}}; |
2362c8c8909e
implemented military builder.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
174
diff
changeset
|
513 foreach (2..$#locations) { |
2362c8c8909e
implemented military builder.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
174
diff
changeset
|
514 $position = $_ if($locations[$_] eq $type); |
2362c8c8909e
implemented military builder.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
174
diff
changeset
|
515 } |
2362c8c8909e
implemented military builder.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
174
diff
changeset
|
516 |
2362c8c8909e
implemented military builder.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
174
diff
changeset
|
517 if($position != -1) { |
2362c8c8909e
implemented military builder.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
174
diff
changeset
|
518 my $res = $self->{mech}->get (sprintf("http://%s/index.php?view=%s&id=%s&position=%d", $self->{server}, $type, $cityId, $position)); |
2362c8c8909e
implemented military builder.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
174
diff
changeset
|
519 if(defined(Ikariam::Extractor->new(content => $res->content)->find('//div[@class="isUpgrading"]'))) { |
2362c8c8909e
implemented military builder.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
174
diff
changeset
|
520 return 1; |
2362c8c8909e
implemented military builder.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
174
diff
changeset
|
521 } else { |
2362c8c8909e
implemented military builder.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
174
diff
changeset
|
522 return 0; |
2362c8c8909e
implemented military builder.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
174
diff
changeset
|
523 } |
2362c8c8909e
implemented military builder.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
174
diff
changeset
|
524 } |
2362c8c8909e
implemented military builder.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
174
diff
changeset
|
525 return 0; |
2362c8c8909e
implemented military builder.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
174
diff
changeset
|
526 } |
2362c8c8909e
implemented military builder.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
174
diff
changeset
|
527 |
2362c8c8909e
implemented military builder.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
174
diff
changeset
|
528 sub buildUnits { |
2362c8c8909e
implemented military builder.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
174
diff
changeset
|
529 my $self = shift; |
2362c8c8909e
implemented military builder.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
174
diff
changeset
|
530 my $unitType = shift; |
2362c8c8909e
implemented military builder.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
174
diff
changeset
|
531 my $cityId = shift; |
2362c8c8909e
implemented military builder.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
174
diff
changeset
|
532 my $type = 'barracks'; |
2362c8c8909e
implemented military builder.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
174
diff
changeset
|
533 |
2362c8c8909e
implemented military builder.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
174
diff
changeset
|
534 warn("buildShips $unitType"); |
2362c8c8909e
implemented military builder.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
174
diff
changeset
|
535 my $position = -1; |
2362c8c8909e
implemented military builder.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
174
diff
changeset
|
536 my @locations = @{$self->{'cities'}->{$cityId}->{locations}}; |
2362c8c8909e
implemented military builder.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
174
diff
changeset
|
537 foreach (2..$#locations) { |
2362c8c8909e
implemented military builder.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
174
diff
changeset
|
538 $position = $_ if($locations[$_] eq $type); |
2362c8c8909e
implemented military builder.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
174
diff
changeset
|
539 } |
2362c8c8909e
implemented military builder.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
174
diff
changeset
|
540 |
2362c8c8909e
implemented military builder.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
174
diff
changeset
|
541 if($position != -1) { |
2362c8c8909e
implemented military builder.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
174
diff
changeset
|
542 my $res = $self->{mech}->get (sprintf("http://%s/index.php?view=%s&id=%s&position=%d", $self->{server}, $type, $cityId, $position)); |
2362c8c8909e
implemented military builder.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
174
diff
changeset
|
543 $self->{mech}->submit_form( |
2362c8c8909e
implemented military builder.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
174
diff
changeset
|
544 form_number => 1, |
2362c8c8909e
implemented military builder.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
174
diff
changeset
|
545 fields => { |
2362c8c8909e
implemented military builder.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
174
diff
changeset
|
546 $unitType => 1, |
2362c8c8909e
implemented military builder.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
174
diff
changeset
|
547 } |
2362c8c8909e
implemented military builder.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
174
diff
changeset
|
548 ); |
2362c8c8909e
implemented military builder.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
174
diff
changeset
|
549 } |
2362c8c8909e
implemented military builder.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
174
diff
changeset
|
550 } |
2362c8c8909e
implemented military builder.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
174
diff
changeset
|
551 |
207
48ea8222782a
automatic build spys
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
205
diff
changeset
|
552 sub buildSpy { |
48ea8222782a
automatic build spys
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
205
diff
changeset
|
553 my $self = shift; |
48ea8222782a
automatic build spys
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
205
diff
changeset
|
554 my $unitType = shift; |
48ea8222782a
automatic build spys
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
205
diff
changeset
|
555 my $cityId = shift; |
48ea8222782a
automatic build spys
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
205
diff
changeset
|
556 my $type = 'safehouse'; |
48ea8222782a
automatic build spys
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
205
diff
changeset
|
557 |
48ea8222782a
automatic build spys
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
205
diff
changeset
|
558 my $position = -1; |
48ea8222782a
automatic build spys
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
205
diff
changeset
|
559 my @locations = @{$self->{'cities'}->{$cityId}->{locations}}; |
48ea8222782a
automatic build spys
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
205
diff
changeset
|
560 foreach (2..$#locations) { |
48ea8222782a
automatic build spys
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
205
diff
changeset
|
561 $position = $_ if($locations[$_] eq $type); |
48ea8222782a
automatic build spys
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
205
diff
changeset
|
562 } |
48ea8222782a
automatic build spys
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
205
diff
changeset
|
563 |
48ea8222782a
automatic build spys
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
205
diff
changeset
|
564 if($position != -1) { |
48ea8222782a
automatic build spys
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
205
diff
changeset
|
565 my $res = $self->{mech}->get (sprintf("http://%s/index.php?view=%s&id=%s&position=%d", $self->{server}, $type, $cityId, $position)); |
48ea8222782a
automatic build spys
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
205
diff
changeset
|
566 my $url = |
48ea8222782a
automatic build spys
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
205
diff
changeset
|
567 Ikariam::Extractor->new(content => $res->content)->find(sprintf('//div[@class="forminput"]/a/@href')); |
48ea8222782a
automatic build spys
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
205
diff
changeset
|
568 $self->{mech}->get($url) if(defined($url)); |
48ea8222782a
automatic build spys
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
205
diff
changeset
|
569 } |
48ea8222782a
automatic build spys
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
205
diff
changeset
|
570 } |
48ea8222782a
automatic build spys
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
205
diff
changeset
|
571 |
52
d2ac1e198ce4
implement a new agent based on Decision Tree (Decision::ParseTree)
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
48
diff
changeset
|
572 sub build { |
d2ac1e198ce4
implement a new agent based on Decision Tree (Decision::ParseTree)
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
48
diff
changeset
|
573 my $self = shift; |
d2ac1e198ce4
implement a new agent based on Decision Tree (Decision::ParseTree)
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
48
diff
changeset
|
574 my $type = shift; |
d2ac1e198ce4
implement a new agent based on Decision Tree (Decision::ParseTree)
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
48
diff
changeset
|
575 my $cityId = shift; |
d2ac1e198ce4
implement a new agent based on Decision Tree (Decision::ParseTree)
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
48
diff
changeset
|
576 |
d2ac1e198ce4
implement a new agent based on Decision Tree (Decision::ParseTree)
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
48
diff
changeset
|
577 die ("we don't know about this city") unless(defined($self->{'cities'}->{$cityId})); |
d2ac1e198ce4
implement a new agent based on Decision Tree (Decision::ParseTree)
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
48
diff
changeset
|
578 |
d2ac1e198ce4
implement a new agent based on Decision Tree (Decision::ParseTree)
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
48
diff
changeset
|
579 my $position = -1; |
d2ac1e198ce4
implement a new agent based on Decision Tree (Decision::ParseTree)
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
48
diff
changeset
|
580 my @locations = @{$self->{'cities'}->{$cityId}->{locations}}; |
d2ac1e198ce4
implement a new agent based on Decision Tree (Decision::ParseTree)
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
48
diff
changeset
|
581 foreach (0..$#locations) { |
54
2d3c394b7940
rules for build new building and buy transporters
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
52
diff
changeset
|
582 $position = $_ if($locations[$_] eq $type); |
52
d2ac1e198ce4
implement a new agent based on Decision Tree (Decision::ParseTree)
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
48
diff
changeset
|
583 } |
d2ac1e198ce4
implement a new agent based on Decision Tree (Decision::ParseTree)
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
48
diff
changeset
|
584 |
82
82acbba33b97
fixed the build function.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
81
diff
changeset
|
585 if($position == -1) { |
200
e9f111057392
fixed the build new building function.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
197
diff
changeset
|
586 my $targetPosition = undef; |
e9f111057392
fixed the build new building function.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
197
diff
changeset
|
587 if($type eq "wall") { |
e9f111057392
fixed the build new building function.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
197
diff
changeset
|
588 # 14 is wall. |
e9f111057392
fixed the build new building function.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
197
diff
changeset
|
589 $targetPosition = 14; |
e9f111057392
fixed the build new building function.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
197
diff
changeset
|
590 } else { |
e9f111057392
fixed the build new building function.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
197
diff
changeset
|
591 foreach (0..13) { |
e9f111057392
fixed the build new building function.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
197
diff
changeset
|
592 next if($_ <= 2 && ($type ne "workshop-fleet" && |
e9f111057392
fixed the build new building function.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
197
diff
changeset
|
593 $type ne "shipyard")); |
e9f111057392
fixed the build new building function.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
197
diff
changeset
|
594 |
e9f111057392
fixed the build new building function.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
197
diff
changeset
|
595 if($locations[$_] eq undef) { |
e9f111057392
fixed the build new building function.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
197
diff
changeset
|
596 $targetPosition = $_; |
e9f111057392
fixed the build new building function.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
197
diff
changeset
|
597 last; |
e9f111057392
fixed the build new building function.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
197
diff
changeset
|
598 } |
54
2d3c394b7940
rules for build new building and buy transporters
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
52
diff
changeset
|
599 } |
2d3c394b7940
rules for build new building and buy transporters
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
52
diff
changeset
|
600 } |
200
e9f111057392
fixed the build new building function.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
197
diff
changeset
|
601 |
e9f111057392
fixed the build new building function.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
197
diff
changeset
|
602 my $res = $self->{mech}->get(sprintf('http://%s/index.php?view=buildingGround&id=%s&position=%s', |
e9f111057392
fixed the build new building function.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
197
diff
changeset
|
603 $self->{server}, $cityId, $targetPosition)); |
e9f111057392
fixed the build new building function.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
197
diff
changeset
|
604 my $url = |
e9f111057392
fixed the build new building function.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
197
diff
changeset
|
605 Ikariam::Extractor->new(content => $res->content)->find(sprintf('//li[@class="building %s"]//a/@href', $type)); |
e9f111057392
fixed the build new building function.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
197
diff
changeset
|
606 $self->{mech}->get($url) if(defined($url)); |
52
d2ac1e198ce4
implement a new agent based on Decision Tree (Decision::ParseTree)
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
48
diff
changeset
|
607 } else { |
82
82acbba33b97
fixed the build function.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
81
diff
changeset
|
608 my $res = $self->{mech}->get (sprintf("http://%s/index.php?view=%s&id=%s&position=%d", $self->{server}, $type, $cityId, $position)); |
83 | 609 my $url = Ikariam::Extractor->new(content => $res->content)->find('//a[@title="升級建築物"]/@href'); |
610 $self->{mech}->get($url) if(defined($url)); | |
52
d2ac1e198ce4
implement a new agent based on Decision Tree (Decision::ParseTree)
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
48
diff
changeset
|
611 } |
d2ac1e198ce4
implement a new agent based on Decision Tree (Decision::ParseTree)
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
48
diff
changeset
|
612 } |
d2ac1e198ce4
implement a new agent based on Decision Tree (Decision::ParseTree)
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
48
diff
changeset
|
613 |
d2ac1e198ce4
implement a new agent based on Decision Tree (Decision::ParseTree)
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
48
diff
changeset
|
614 sub run { |
d2ac1e198ce4
implement a new agent based on Decision Tree (Decision::ParseTree)
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
48
diff
changeset
|
615 my $self = shift; |
84
2c6c219dc3ff
fixed the checkCity function, implemneted a human resources palnning function.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
83
diff
changeset
|
616 my $param = shift; |
52
d2ac1e198ce4
implement a new agent based on Decision Tree (Decision::ParseTree)
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
48
diff
changeset
|
617 # defense. |
183
2362c8c8909e
implemented military builder.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
174
diff
changeset
|
618 warn ("run $param not implemented yet."); |
52
d2ac1e198ce4
implement a new agent based on Decision Tree (Decision::ParseTree)
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
48
diff
changeset
|
619 } |
d2ac1e198ce4
implement a new agent based on Decision Tree (Decision::ParseTree)
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
48
diff
changeset
|
620 |
d2ac1e198ce4
implement a new agent based on Decision Tree (Decision::ParseTree)
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
48
diff
changeset
|
621 sub research |
d2ac1e198ce4
implement a new agent based on Decision Tree (Decision::ParseTree)
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
48
diff
changeset
|
622 { |
d2ac1e198ce4
implement a new agent based on Decision Tree (Decision::ParseTree)
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
48
diff
changeset
|
623 my $self = shift; |
d2ac1e198ce4
implement a new agent based on Decision Tree (Decision::ParseTree)
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
48
diff
changeset
|
624 my $type = shift; |
d2ac1e198ce4
implement a new agent based on Decision Tree (Decision::ParseTree)
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
48
diff
changeset
|
625 my $cityId = shift; |
d2ac1e198ce4
implement a new agent based on Decision Tree (Decision::ParseTree)
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
48
diff
changeset
|
626 |
d2ac1e198ce4
implement a new agent based on Decision Tree (Decision::ParseTree)
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
48
diff
changeset
|
627 # check if we are researching the same stuff |
d2ac1e198ce4
implement a new agent based on Decision Tree (Decision::ParseTree)
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
48
diff
changeset
|
628 my $res = $self->{mech}->get(sprintf('http://%s/index.php?action=CityScreen&function=changeResearch&id=%s&researchType=%s', $self->{server}, $cityId, $type)); |
d2ac1e198ce4
implement a new agent based on Decision Tree (Decision::ParseTree)
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
48
diff
changeset
|
629 } |
d2ac1e198ce4
implement a new agent based on Decision Tree (Decision::ParseTree)
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
48
diff
changeset
|
630 |
d2ac1e198ce4
implement a new agent based on Decision Tree (Decision::ParseTree)
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
48
diff
changeset
|
631 sub checkResearch { |
d2ac1e198ce4
implement a new agent based on Decision Tree (Decision::ParseTree)
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
48
diff
changeset
|
632 my $self = shift; |
d2ac1e198ce4
implement a new agent based on Decision Tree (Decision::ParseTree)
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
48
diff
changeset
|
633 my $cityId = shift; |
d2ac1e198ce4
implement a new agent based on Decision Tree (Decision::ParseTree)
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
48
diff
changeset
|
634 |
d2ac1e198ce4
implement a new agent based on Decision Tree (Decision::ParseTree)
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
48
diff
changeset
|
635 my $res = $self->{mech}->get(sprintf('http://%s/index.php?view=researchOverview&id=%s', $self->{server}, $cityId)); |
79
9d92e8c12f58
rewrited the code in XPath.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
75
diff
changeset
|
636 |
9d92e8c12f58
rewrited the code in XPath.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
75
diff
changeset
|
637 my @urls = Ikariam::Extractor->new(content => $res->content)->find('//ul[@class="explored"]//a/@href'); |
9d92e8c12f58
rewrited the code in XPath.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
75
diff
changeset
|
638 my $out = {}; |
9d92e8c12f58
rewrited the code in XPath.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
75
diff
changeset
|
639 foreach(@urls) { |
9d92e8c12f58
rewrited the code in XPath.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
75
diff
changeset
|
640 if(/view=researchDetail&id=\d+&position=\d+&researchId=(\d+)$/) { |
9d92e8c12f58
rewrited the code in XPath.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
75
diff
changeset
|
641 # we ignore the chinese name of technology researched. |
9d92e8c12f58
rewrited the code in XPath.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
75
diff
changeset
|
642 @$out{$1} = 1; |
9d92e8c12f58
rewrited the code in XPath.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
75
diff
changeset
|
643 } |
9d92e8c12f58
rewrited the code in XPath.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
75
diff
changeset
|
644 } |
9d92e8c12f58
rewrited the code in XPath.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
75
diff
changeset
|
645 return $out; |
9d92e8c12f58
rewrited the code in XPath.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
75
diff
changeset
|
646 } |
52
d2ac1e198ce4
implement a new agent based on Decision Tree (Decision::ParseTree)
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
48
diff
changeset
|
647 |
101
592d3b3b7898
implemented the WAR robot
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
100
diff
changeset
|
648 sub plunderCity { |
592d3b3b7898
implemented the WAR robot
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
100
diff
changeset
|
649 my $self = shift; |
592d3b3b7898
implemented the WAR robot
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
100
diff
changeset
|
650 my $cityId = shift; |
270
6bce423892f4
updated plunderCity and blockadeCity
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
268
diff
changeset
|
651 my $fields = shift; |
171
2efa901871e5
check peace treaty
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
154
diff
changeset
|
652 my $res = $self->{mech}->get(sprintf("http://%s/index.php?view=plunder&destinationCityId=%d", $self->{server}, $cityId)); |
2efa901871e5
check peace treaty
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
154
diff
changeset
|
653 |
242
5f6f845bbb1d
check if the city still exist.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
240
diff
changeset
|
654 my $extractor = Ikariam::Extractor->new(content => $res->content); |
171
2efa901871e5
check peace treaty
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
154
diff
changeset
|
655 # check peace treaty |
242
5f6f845bbb1d
check if the city still exist.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
240
diff
changeset
|
656 my $treaty = $extractor->find('//div[@class="warning"]'); |
171
2efa901871e5
check peace treaty
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
154
diff
changeset
|
657 if(!defined($treaty)) { |
242
5f6f845bbb1d
check if the city still exist.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
240
diff
changeset
|
658 my @forms = $self->{mech}->forms(); |
5f6f845bbb1d
check if the city still exist.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
240
diff
changeset
|
659 if($#forms < 1) { |
5f6f845bbb1d
check if the city still exist.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
240
diff
changeset
|
660 my $city = Ikariam::Cities->retrieve($cityId); |
5f6f845bbb1d
check if the city still exist.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
240
diff
changeset
|
661 $city->delete; |
5f6f845bbb1d
check if the city still exist.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
240
diff
changeset
|
662 } else { |
5f6f845bbb1d
check if the city still exist.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
240
diff
changeset
|
663 $self->{mech}->submit_form( |
5f6f845bbb1d
check if the city still exist.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
240
diff
changeset
|
664 form_number => 1, |
270
6bce423892f4
updated plunderCity and blockadeCity
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
268
diff
changeset
|
665 fields => $fields); |
6bce423892f4
updated plunderCity and blockadeCity
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
268
diff
changeset
|
666 } |
6bce423892f4
updated plunderCity and blockadeCity
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
268
diff
changeset
|
667 } else { |
6bce423892f4
updated plunderCity and blockadeCity
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
268
diff
changeset
|
668 # put the id in the friends.txt file. |
6bce423892f4
updated plunderCity and blockadeCity
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
268
diff
changeset
|
669 Ikariam::Cities->has_a(user => 'Ikariam::User'); |
6bce423892f4
updated plunderCity and blockadeCity
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
268
diff
changeset
|
670 my $city = Ikariam::Cities->retrieve($cityId); |
6bce423892f4
updated plunderCity and blockadeCity
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
268
diff
changeset
|
671 my $sheep = $city->user; |
6bce423892f4
updated plunderCity and blockadeCity
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
268
diff
changeset
|
672 |
6bce423892f4
updated plunderCity and blockadeCity
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
268
diff
changeset
|
673 open(OUT, ">>friends.txt") or Carp::carp("can not open friends.txt"); |
6bce423892f4
updated plunderCity and blockadeCity
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
268
diff
changeset
|
674 print OUT $sheep->name . "\n"; |
6bce423892f4
updated plunderCity and blockadeCity
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
268
diff
changeset
|
675 close(OUT); |
6bce423892f4
updated plunderCity and blockadeCity
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
268
diff
changeset
|
676 Carp::carp($treaty); |
6bce423892f4
updated plunderCity and blockadeCity
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
268
diff
changeset
|
677 } |
6bce423892f4
updated plunderCity and blockadeCity
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
268
diff
changeset
|
678 } |
6bce423892f4
updated plunderCity and blockadeCity
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
268
diff
changeset
|
679 |
6bce423892f4
updated plunderCity and blockadeCity
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
268
diff
changeset
|
680 |
6bce423892f4
updated plunderCity and blockadeCity
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
268
diff
changeset
|
681 sub blockadeCity { |
6bce423892f4
updated plunderCity and blockadeCity
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
268
diff
changeset
|
682 my $self = shift; |
6bce423892f4
updated plunderCity and blockadeCity
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
268
diff
changeset
|
683 my $cityId = shift; |
6bce423892f4
updated plunderCity and blockadeCity
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
268
diff
changeset
|
684 my $fields = shift; |
6bce423892f4
updated plunderCity and blockadeCity
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
268
diff
changeset
|
685 my $res = $self->{mech}->get(sprintf("http://%s/index.php?view=blockade&destinationCityId=%d", $self->{server}, $cityId)); |
6bce423892f4
updated plunderCity and blockadeCity
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
268
diff
changeset
|
686 |
6bce423892f4
updated plunderCity and blockadeCity
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
268
diff
changeset
|
687 my $extractor = Ikariam::Extractor->new(content => $res->content); |
6bce423892f4
updated plunderCity and blockadeCity
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
268
diff
changeset
|
688 # check peace treaty |
6bce423892f4
updated plunderCity and blockadeCity
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
268
diff
changeset
|
689 my $treaty = $extractor->find('//div[@class="warning"]'); |
6bce423892f4
updated plunderCity and blockadeCity
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
268
diff
changeset
|
690 if(!defined($treaty)) { |
6bce423892f4
updated plunderCity and blockadeCity
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
268
diff
changeset
|
691 my @forms = $self->{mech}->forms(); |
6bce423892f4
updated plunderCity and blockadeCity
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
268
diff
changeset
|
692 if($#forms < 1) { |
6bce423892f4
updated plunderCity and blockadeCity
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
268
diff
changeset
|
693 my $city = Ikariam::Cities->retrieve($cityId); |
6bce423892f4
updated plunderCity and blockadeCity
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
268
diff
changeset
|
694 $city->delete; |
6bce423892f4
updated plunderCity and blockadeCity
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
268
diff
changeset
|
695 } else { |
6bce423892f4
updated plunderCity and blockadeCity
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
268
diff
changeset
|
696 $self->{mech}->submit_form( |
6bce423892f4
updated plunderCity and blockadeCity
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
268
diff
changeset
|
697 form_number => 1, |
6bce423892f4
updated plunderCity and blockadeCity
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
268
diff
changeset
|
698 fields => $fields); |
242
5f6f845bbb1d
check if the city still exist.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
240
diff
changeset
|
699 } |
171
2efa901871e5
check peace treaty
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
154
diff
changeset
|
700 } else { |
179
8afd380c20ac
do not fight with friends.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
174
diff
changeset
|
701 # put the id in the friends.txt file. |
8afd380c20ac
do not fight with friends.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
174
diff
changeset
|
702 Ikariam::Cities->has_a(user => 'Ikariam::User'); |
8afd380c20ac
do not fight with friends.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
174
diff
changeset
|
703 my $city = Ikariam::Cities->retrieve($cityId); |
8afd380c20ac
do not fight with friends.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
174
diff
changeset
|
704 my $sheep = $city->user; |
8afd380c20ac
do not fight with friends.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
174
diff
changeset
|
705 |
8afd380c20ac
do not fight with friends.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
174
diff
changeset
|
706 open(OUT, ">>friends.txt") or Carp::carp("can not open friends.txt"); |
8afd380c20ac
do not fight with friends.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
174
diff
changeset
|
707 print OUT $sheep->name . "\n"; |
8afd380c20ac
do not fight with friends.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
174
diff
changeset
|
708 close(OUT); |
8afd380c20ac
do not fight with friends.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
174
diff
changeset
|
709 Carp::carp($treaty); |
171
2efa901871e5
check peace treaty
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
154
diff
changeset
|
710 } |
101
592d3b3b7898
implemented the WAR robot
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
100
diff
changeset
|
711 } |
592d3b3b7898
implemented the WAR robot
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
100
diff
changeset
|
712 |
592d3b3b7898
implemented the WAR robot
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
100
diff
changeset
|
713 sub changeCity { |
79
9d92e8c12f58
rewrited the code in XPath.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
75
diff
changeset
|
714 my $self = shift; |
9d92e8c12f58
rewrited the code in XPath.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
75
diff
changeset
|
715 my $cityId = shift; |
9d92e8c12f58
rewrited the code in XPath.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
75
diff
changeset
|
716 |
84
2c6c219dc3ff
fixed the checkCity function, implemneted a human resources palnning function.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
83
diff
changeset
|
717 $self->{mech}->get(sprintf("http://%s/index.php", $self->{server})); |
2c6c219dc3ff
fixed the checkCity function, implemneted a human resources palnning function.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
83
diff
changeset
|
718 $self->{mech}->submit_form( |
2c6c219dc3ff
fixed the checkCity function, implemneted a human resources palnning function.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
83
diff
changeset
|
719 form_number => 2, |
2c6c219dc3ff
fixed the checkCity function, implemneted a human resources palnning function.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
83
diff
changeset
|
720 fields => { |
2c6c219dc3ff
fixed the checkCity function, implemneted a human resources palnning function.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
83
diff
changeset
|
721 cityId => $cityId, |
2c6c219dc3ff
fixed the checkCity function, implemneted a human resources palnning function.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
83
diff
changeset
|
722 } |
2c6c219dc3ff
fixed the checkCity function, implemneted a human resources palnning function.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
83
diff
changeset
|
723 ); |
101
592d3b3b7898
implemented the WAR robot
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
100
diff
changeset
|
724 } |
592d3b3b7898
implemented the WAR robot
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
100
diff
changeset
|
725 |
286
2ddd2bd21ef2
list spydata when check enemies
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
284
diff
changeset
|
726 sub readCity { |
101
592d3b3b7898
implemented the WAR robot
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
100
diff
changeset
|
727 my $self = shift; |
592d3b3b7898
implemented the WAR robot
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
100
diff
changeset
|
728 my $cityId = shift; |
286
2ddd2bd21ef2
list spydata when check enemies
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
284
diff
changeset
|
729 my $data; |
101
592d3b3b7898
implemented the WAR robot
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
100
diff
changeset
|
730 |
79
9d92e8c12f58
rewrited the code in XPath.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
75
diff
changeset
|
731 my $res = $self->{mech}->get(sprintf("http://%s/index.php?view=city&id=%d", $self->{server}, $cityId)); |
9d92e8c12f58
rewrited the code in XPath.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
75
diff
changeset
|
732 my $extractor = new Ikariam::Extractor(content => $res->content); |
9d92e8c12f58
rewrited the code in XPath.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
75
diff
changeset
|
733 |
9d92e8c12f58
rewrited the code in XPath.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
75
diff
changeset
|
734 foreach my $i (0..14) { |
84
2c6c219dc3ff
fixed the checkCity function, implemneted a human resources palnning function.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
83
diff
changeset
|
735 my @buildings = $extractor->find(sprintf('//li[@id="position%s"]/@class', $i)); |
79
9d92e8c12f58
rewrited the code in XPath.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
75
diff
changeset
|
736 foreach my $building (@buildings) { |
9d92e8c12f58
rewrited the code in XPath.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
75
diff
changeset
|
737 if (!($building =~ /buildingGround/) && !($building =~ /townhall/)) { |
286
2ddd2bd21ef2
list spydata when check enemies
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
284
diff
changeset
|
738 $data->{locations}[$i] = $building; |
79
9d92e8c12f58
rewrited the code in XPath.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
75
diff
changeset
|
739 |
9d92e8c12f58
rewrited the code in XPath.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
75
diff
changeset
|
740 my $span; |
84
2c6c219dc3ff
fixed the checkCity function, implemneted a human resources palnning function.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
83
diff
changeset
|
741 my @spans = $extractor->find(sprintf('//li[@id="position%s"]//span[@class="textLabel"]/text()', $i)); |
2c6c219dc3ff
fixed the checkCity function, implemneted a human resources palnning function.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
83
diff
changeset
|
742 if($#spans >= 1) { |
81
d57920014cb4
split buliding.yaml to city.yaml and overall.yaml
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
80
diff
changeset
|
743 $span = $spans[1]; |
79
9d92e8c12f58
rewrited the code in XPath.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
75
diff
changeset
|
744 } else { |
81
d57920014cb4
split buliding.yaml to city.yaml and overall.yaml
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
80
diff
changeset
|
745 $span = $spans[0]; |
79
9d92e8c12f58
rewrited the code in XPath.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
75
diff
changeset
|
746 } |
9d92e8c12f58
rewrited the code in XPath.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
75
diff
changeset
|
747 my (undef, undef, $level) = split(/ /, $span); |
286
2ddd2bd21ef2
list spydata when check enemies
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
284
diff
changeset
|
748 $data->{buildings}->{$building} = $level; |
52
d2ac1e198ce4
implement a new agent based on Decision Tree (Decision::ParseTree)
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
48
diff
changeset
|
749 } |
d2ac1e198ce4
implement a new agent based on Decision Tree (Decision::ParseTree)
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
48
diff
changeset
|
750 } |
d2ac1e198ce4
implement a new agent based on Decision Tree (Decision::ParseTree)
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
48
diff
changeset
|
751 } |
79
9d92e8c12f58
rewrited the code in XPath.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
75
diff
changeset
|
752 |
288
24de33db8284
fixed the missed metadata
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
286
diff
changeset
|
753 $data->{id} = $cityId; |
286
2ddd2bd21ef2
list spydata when check enemies
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
284
diff
changeset
|
754 $data->{name} = $extractor->find('//span[@class="city"]/text()'); |
284
10f14db31151
added new dump spy info function
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
270
diff
changeset
|
755 |
10f14db31151
added new dump spy info function
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
270
diff
changeset
|
756 my $island = $extractor->find('//div[@id="breadcrumbs"]/a[@class="island"]'); |
10f14db31151
added new dump spy info function
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
270
diff
changeset
|
757 if($island =~ /(\w+)\[(\d+):(\d+)\]/) { |
286
2ddd2bd21ef2
list spydata when check enemies
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
284
diff
changeset
|
758 $data->{island}->{name} = $1; |
2ddd2bd21ef2
list spydata when check enemies
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
284
diff
changeset
|
759 $data->{island}->{x} = $2; |
2ddd2bd21ef2
list spydata when check enemies
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
284
diff
changeset
|
760 $data->{island}->{y} = $3; |
2ddd2bd21ef2
list spydata when check enemies
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
284
diff
changeset
|
761 $data->{island}->{id} = my $island = $extractor->find('//div[@id="breadcrumbs"]/a[@class="island"]/@href'); |
2ddd2bd21ef2
list spydata when check enemies
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
284
diff
changeset
|
762 $data->{island}->{id} =~ s/\?view=island&id=(\d+)/$1/; |
284
10f14db31151
added new dump spy info function
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
270
diff
changeset
|
763 } |
10f14db31151
added new dump spy info function
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
270
diff
changeset
|
764 |
286
2ddd2bd21ef2
list spydata when check enemies
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
284
diff
changeset
|
765 return $data; |
2ddd2bd21ef2
list spydata when check enemies
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
284
diff
changeset
|
766 } |
2ddd2bd21ef2
list spydata when check enemies
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
284
diff
changeset
|
767 |
2ddd2bd21ef2
list spydata when check enemies
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
284
diff
changeset
|
768 sub checkCity { |
2ddd2bd21ef2
list spydata when check enemies
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
284
diff
changeset
|
769 my $self = shift; |
2ddd2bd21ef2
list spydata when check enemies
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
284
diff
changeset
|
770 my $cityId = shift; |
2ddd2bd21ef2
list spydata when check enemies
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
284
diff
changeset
|
771 |
2ddd2bd21ef2
list spydata when check enemies
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
284
diff
changeset
|
772 $self->{'cities'}->{$cityId} = $self->readCity($cityId); |
2ddd2bd21ef2
list spydata when check enemies
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
284
diff
changeset
|
773 |
2ddd2bd21ef2
list spydata when check enemies
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
284
diff
changeset
|
774 my $res = $self->{mech}->get(sprintf("http://%s/index.php?view=city&id=%d", $self->{server}, $cityId)); |
2ddd2bd21ef2
list spydata when check enemies
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
284
diff
changeset
|
775 my $extractor = new Ikariam::Extractor(content => $res->content); |
284
10f14db31151
added new dump spy info function
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
270
diff
changeset
|
776 |
10f14db31151
added new dump spy info function
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
270
diff
changeset
|
777 $self->{'cities'}->{$cityId}->{resources}->{gold} = $extractor->find('//span[@id="value_gold"]/text()'); |
10f14db31151
added new dump spy info function
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
270
diff
changeset
|
778 $self->{'cities'}->{$cityId}->{resources}->{gold} =~ s/,//g; |
10f14db31151
added new dump spy info function
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
270
diff
changeset
|
779 |
10f14db31151
added new dump spy info function
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
270
diff
changeset
|
780 $self->{'cities'}->{$cityId}->{construction} = defined($extractor->find('//*[@class="constructionSite"]')) ? 1 : 0; |
10f14db31151
added new dump spy info function
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
270
diff
changeset
|
781 |
10f14db31151
added new dump spy info function
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
270
diff
changeset
|
782 # maxCapacity |
10f14db31151
added new dump spy info function
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
270
diff
changeset
|
783 my $page = $extractor->{doc}->toString(1); |
10f14db31151
added new dump spy info function
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
270
diff
changeset
|
784 if($page =~ /maxCapacity : {\s+wood: (\d+),\s+wine: (\d+),\s+marble: (\d+),\s+crystal: (\d+),\s+sulfur: (\d+)\s+}/s) { |
10f14db31151
added new dump spy info function
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
270
diff
changeset
|
785 $self->{'cities'}->{$cityId}->{maxCapacity}->{wood} = $1; |
10f14db31151
added new dump spy info function
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
270
diff
changeset
|
786 $self->{'cities'}->{$cityId}->{maxCapacity}->{wine} = $2; |
10f14db31151
added new dump spy info function
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
270
diff
changeset
|
787 $self->{'cities'}->{$cityId}->{maxCapacity}->{marble} = $3; |
10f14db31151
added new dump spy info function
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
270
diff
changeset
|
788 $self->{'cities'}->{$cityId}->{maxCapacity}->{crystal} = $4; |
10f14db31151
added new dump spy info function
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
270
diff
changeset
|
789 $self->{'cities'}->{$cityId}->{maxCapacity}->{sulfur} = $5; |
10f14db31151
added new dump spy info function
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
270
diff
changeset
|
790 } |
10f14db31151
added new dump spy info function
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
270
diff
changeset
|
791 |
10f14db31151
added new dump spy info function
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
270
diff
changeset
|
792 foreach my $good (qw/wood wine marble crystal sulfur/) { |
10f14db31151
added new dump spy info function
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
270
diff
changeset
|
793 $self->{'cities'}->{$cityId}->{resources}->{$good} = $extractor->find(sprintf('//span[@id="value_%s"]', $good)); |
10f14db31151
added new dump spy info function
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
270
diff
changeset
|
794 $self->{'cities'}->{$cityId}->{resources}->{$good} =~ s/,//g; |
10f14db31151
added new dump spy info function
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
270
diff
changeset
|
795 } |
10f14db31151
added new dump spy info function
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
270
diff
changeset
|
796 |
79
9d92e8c12f58
rewrited the code in XPath.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
75
diff
changeset
|
797 $self->{'cities'}->{$cityId}->{transporters}->{avail} = $extractor->find('//span[@id="value_transAvail"]/text()'); |
9d92e8c12f58
rewrited the code in XPath.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
75
diff
changeset
|
798 $self->{'cities'}->{$cityId}->{transporters}->{sum} = $extractor->find('//span[@id="value_transSum"]/text()'); |
9d92e8c12f58
rewrited the code in XPath.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
75
diff
changeset
|
799 $self->{'cities'}->{$cityId}->{transporters}->{sum} =~ s/[\(|\)]//g; |
9d92e8c12f58
rewrited the code in XPath.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
75
diff
changeset
|
800 $self->{'cities'}->{$cityId}->{maxActionPoints} = $extractor->find('//span[@id="value_maxActionPoints"]');; |
9d92e8c12f58
rewrited the code in XPath.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
75
diff
changeset
|
801 } |
9d92e8c12f58
rewrited the code in XPath.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
75
diff
changeset
|
802 |
232
978a949602e5
Auto-update Scientists numbers for Academy.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
210
diff
changeset
|
803 sub checkAcademy { |
978a949602e5
Auto-update Scientists numbers for Academy.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
210
diff
changeset
|
804 my $self = shift; |
978a949602e5
Auto-update Scientists numbers for Academy.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
210
diff
changeset
|
805 my $cityId = shift; |
978a949602e5
Auto-update Scientists numbers for Academy.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
210
diff
changeset
|
806 my $building = "academy"; |
978a949602e5
Auto-update Scientists numbers for Academy.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
210
diff
changeset
|
807 |
978a949602e5
Auto-update Scientists numbers for Academy.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
210
diff
changeset
|
808 my @locations = @{$self->{'cities'}->{$cityId}->{locations}}; |
978a949602e5
Auto-update Scientists numbers for Academy.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
210
diff
changeset
|
809 # init |
978a949602e5
Auto-update Scientists numbers for Academy.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
210
diff
changeset
|
810 $self->{'cities'}->{$cityId}->{$building}->{'maxValue'} = 0; |
978a949602e5
Auto-update Scientists numbers for Academy.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
210
diff
changeset
|
811 $self->{'cities'}->{$cityId}->{$building}->{'iniValue'} = 0; |
978a949602e5
Auto-update Scientists numbers for Academy.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
210
diff
changeset
|
812 foreach (0..$#locations) { |
978a949602e5
Auto-update Scientists numbers for Academy.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
210
diff
changeset
|
813 if($locations[$_] eq $building) { |
978a949602e5
Auto-update Scientists numbers for Academy.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
210
diff
changeset
|
814 my $res = $self->{mech}->get(sprintf('http://%s/index.php?view=%s&id=%d&position=%d', $self->{server}, $building, $cityId, $_ )); |
978a949602e5
Auto-update Scientists numbers for Academy.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
210
diff
changeset
|
815 my $extractor = Ikariam::Extractor->new(content => $res->content); |
978a949602e5
Auto-update Scientists numbers for Academy.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
210
diff
changeset
|
816 if($extractor->{doc}->toString(0) =~ /maxValue : (\d+),\s+overcharge : \d+,\s+iniValue : (\d+),/) { |
978a949602e5
Auto-update Scientists numbers for Academy.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
210
diff
changeset
|
817 $self->{'cities'}->{$cityId}->{$building}->{'maxValue'} = $1; |
978a949602e5
Auto-update Scientists numbers for Academy.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
210
diff
changeset
|
818 $self->{'cities'}->{$cityId}->{$building}->{'iniValue'} = $2; |
978a949602e5
Auto-update Scientists numbers for Academy.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
210
diff
changeset
|
819 } |
978a949602e5
Auto-update Scientists numbers for Academy.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
210
diff
changeset
|
820 last; |
978a949602e5
Auto-update Scientists numbers for Academy.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
210
diff
changeset
|
821 } |
978a949602e5
Auto-update Scientists numbers for Academy.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
210
diff
changeset
|
822 } |
978a949602e5
Auto-update Scientists numbers for Academy.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
210
diff
changeset
|
823 } |
978a949602e5
Auto-update Scientists numbers for Academy.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
210
diff
changeset
|
824 |
172
ba03aa8abdb2
reading Tavern's infomration
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
154
diff
changeset
|
825 sub checkTavern { |
ba03aa8abdb2
reading Tavern's infomration
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
154
diff
changeset
|
826 my $self = shift; |
ba03aa8abdb2
reading Tavern's infomration
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
154
diff
changeset
|
827 my $cityId = shift; |
ba03aa8abdb2
reading Tavern's infomration
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
154
diff
changeset
|
828 |
ba03aa8abdb2
reading Tavern's infomration
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
154
diff
changeset
|
829 my @locations = @{$self->{'cities'}->{$cityId}->{locations}}; |
ba03aa8abdb2
reading Tavern's infomration
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
154
diff
changeset
|
830 # init |
ba03aa8abdb2
reading Tavern's infomration
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
154
diff
changeset
|
831 $self->{'cities'}->{$cityId}->{'tavern'}->{'maxValue'} = 0; |
ba03aa8abdb2
reading Tavern's infomration
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
154
diff
changeset
|
832 $self->{'cities'}->{$cityId}->{'tavern'}->{'iniValue'} = 0; |
ba03aa8abdb2
reading Tavern's infomration
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
154
diff
changeset
|
833 foreach (0..$#locations) { |
ba03aa8abdb2
reading Tavern's infomration
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
154
diff
changeset
|
834 if($locations[$_] eq 'tavern') { |
ba03aa8abdb2
reading Tavern's infomration
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
154
diff
changeset
|
835 my $res = $self->{mech}->get(sprintf('http://%s/index.php?view=tavern&id=%d&position=%d', $self->{server}, $cityId, $_ )); |
ba03aa8abdb2
reading Tavern's infomration
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
154
diff
changeset
|
836 my $extractor = Ikariam::Extractor->new(content => $res->content); |
ba03aa8abdb2
reading Tavern's infomration
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
154
diff
changeset
|
837 if($extractor->{doc}->toString(0) =~ /maxValue : (\d+),\s+overcharge : \d+,\s+iniValue : (\d+),/) { |
ba03aa8abdb2
reading Tavern's infomration
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
154
diff
changeset
|
838 $self->{'cities'}->{$cityId}->{'tavern'}->{'maxValue'} = $1; |
ba03aa8abdb2
reading Tavern's infomration
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
154
diff
changeset
|
839 $self->{'cities'}->{$cityId}->{'tavern'}->{'iniValue'} = $2; |
ba03aa8abdb2
reading Tavern's infomration
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
154
diff
changeset
|
840 } |
ba03aa8abdb2
reading Tavern's infomration
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
154
diff
changeset
|
841 last; |
ba03aa8abdb2
reading Tavern's infomration
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
154
diff
changeset
|
842 } |
ba03aa8abdb2
reading Tavern's infomration
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
154
diff
changeset
|
843 } |
ba03aa8abdb2
reading Tavern's infomration
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
154
diff
changeset
|
844 } |
79
9d92e8c12f58
rewrited the code in XPath.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
75
diff
changeset
|
845 |
284
10f14db31151
added new dump spy info function
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
270
diff
changeset
|
846 sub checkSafeHouse { |
10f14db31151
added new dump spy info function
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
270
diff
changeset
|
847 my $self = shift; |
10f14db31151
added new dump spy info function
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
270
diff
changeset
|
848 my $cityId = shift; |
10f14db31151
added new dump spy info function
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
270
diff
changeset
|
849 my $data; |
10f14db31151
added new dump spy info function
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
270
diff
changeset
|
850 |
10f14db31151
added new dump spy info function
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
270
diff
changeset
|
851 my @locations = @{$self->{'cities'}->{$cityId}->{locations}}; |
10f14db31151
added new dump spy info function
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
270
diff
changeset
|
852 foreach (0..$#locations) { |
10f14db31151
added new dump spy info function
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
270
diff
changeset
|
853 if($locations[$_] eq 'safehouse') { |
10f14db31151
added new dump spy info function
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
270
diff
changeset
|
854 my $res = $self->{mech}->get(sprintf('http://%s/index.php?view=safehouse&id=%d&position=%d', $self->{server}, $cityId, $_ )); |
10f14db31151
added new dump spy info function
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
270
diff
changeset
|
855 my $extractor = Ikariam::Extractor->new(content => $res->content); |
10f14db31151
added new dump spy info function
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
270
diff
changeset
|
856 foreach (1..25) { |
10f14db31151
added new dump spy info function
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
270
diff
changeset
|
857 my @links = $extractor->find(sprintf('//div[@class="spyinfo" and position() = %d]//a/@href', $_)); |
10f14db31151
added new dump spy info function
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
270
diff
changeset
|
858 if ($links[0] =~ /id=(\d+)/) { |
286
2ddd2bd21ef2
list spydata when check enemies
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
284
diff
changeset
|
859 $data->{$1}->{city} = $self->readCity($1); |
284
10f14db31151
added new dump spy info function
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
270
diff
changeset
|
860 @{$data->{$1}->{risks}} = Ikariam::Extractor->new(content => $self->{mech}->get($links[1])->content)->find('//div[@class="missionRisk"]'); |
10f14db31151
added new dump spy info function
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
270
diff
changeset
|
861 } |
10f14db31151
added new dump spy info function
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
270
diff
changeset
|
862 } |
10f14db31151
added new dump spy info function
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
270
diff
changeset
|
863 last; |
10f14db31151
added new dump spy info function
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
270
diff
changeset
|
864 } |
10f14db31151
added new dump spy info function
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
270
diff
changeset
|
865 } |
10f14db31151
added new dump spy info function
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
270
diff
changeset
|
866 return $data; |
10f14db31151
added new dump spy info function
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
270
diff
changeset
|
867 } |
10f14db31151
added new dump spy info function
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
270
diff
changeset
|
868 |
10f14db31151
added new dump spy info function
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
270
diff
changeset
|
869 |
79
9d92e8c12f58
rewrited the code in XPath.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
75
diff
changeset
|
870 sub checkMilitaryAdvisorMilitaryMovements { |
9d92e8c12f58
rewrited the code in XPath.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
75
diff
changeset
|
871 my $self = shift; |
9d92e8c12f58
rewrited the code in XPath.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
75
diff
changeset
|
872 my $res = $self->{mech}->get(sprintf('http://%s/index.php?view=militaryAdvisorMilitaryMovements', $self->{server})); |
81
d57920014cb4
split buliding.yaml to city.yaml and overall.yaml
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
80
diff
changeset
|
873 my $extractor = new Ikariam::Extractor(content => $res->content); |
d57920014cb4
split buliding.yaml to city.yaml and overall.yaml
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
80
diff
changeset
|
874 |
101
592d3b3b7898
implemented the WAR robot
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
100
diff
changeset
|
875 $self->{'military'}->{wars} = 0; |
592d3b3b7898
implemented the WAR robot
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
100
diff
changeset
|
876 $self->{'military'}->{attack} = 0; |
592d3b3b7898
implemented the WAR robot
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
100
diff
changeset
|
877 |
592d3b3b7898
implemented the WAR robot
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
100
diff
changeset
|
878 foreach (qw/homeland elsewhere/) { |
592d3b3b7898
implemented the WAR robot
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
100
diff
changeset
|
879 $self->{'military'}->{$_} = (); |
592d3b3b7898
implemented the WAR robot
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
100
diff
changeset
|
880 my $result = $extractor->{doc}->find(sprintf('//div[@id="%s"]//ul[@id="battleReports"]/li[@class="enroute"]', $_)); |
592d3b3b7898
implemented the WAR robot
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
100
diff
changeset
|
881 foreach my $div ( @$result ) { |
592d3b3b7898
implemented the WAR robot
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
100
diff
changeset
|
882 my $extractor = new Ikariam::Extractor(content => $div->toString(1)); |
106 | 883 my $f = $extractor->find('//div[@class="report"]/a[1]/@href'); |
884 my $t = $extractor->find('//div[@class="report"]/a[2]/@href'); | |
101
592d3b3b7898
implemented the WAR robot
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
100
diff
changeset
|
885 $f = $1 if($f =~ /\?view=island&cityId=(\d+)/); |
592d3b3b7898
implemented the WAR robot
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
100
diff
changeset
|
886 $t = $1 if($t =~ /\?view=island&cityId=(\d+)/); |
592d3b3b7898
implemented the WAR robot
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
100
diff
changeset
|
887 |
592d3b3b7898
implemented the WAR robot
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
100
diff
changeset
|
888 push @{$self->{'military'}->{$_}}, { from => $f, to => $t}; |
592d3b3b7898
implemented the WAR robot
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
100
diff
changeset
|
889 if($_ eq 'homeland') { |
592d3b3b7898
implemented the WAR robot
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
100
diff
changeset
|
890 $self->{'military'}->{wars}++; |
592d3b3b7898
implemented the WAR robot
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
100
diff
changeset
|
891 } else { |
592d3b3b7898
implemented the WAR robot
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
100
diff
changeset
|
892 $self->{'military'}->{attack}++; |
592d3b3b7898
implemented the WAR robot
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
100
diff
changeset
|
893 } |
592d3b3b7898
implemented the WAR robot
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
100
diff
changeset
|
894 } |
592d3b3b7898
implemented the WAR robot
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
100
diff
changeset
|
895 } |
592d3b3b7898
implemented the WAR robot
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
100
diff
changeset
|
896 } |
592d3b3b7898
implemented the WAR robot
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
100
diff
changeset
|
897 |
592d3b3b7898
implemented the WAR robot
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
100
diff
changeset
|
898 sub checkMilitaryAdvisorReportView { |
592d3b3b7898
implemented the WAR robot
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
100
diff
changeset
|
899 my $self = shift; |
592d3b3b7898
implemented the WAR robot
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
100
diff
changeset
|
900 my $combatId = shift; |
592d3b3b7898
implemented the WAR robot
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
100
diff
changeset
|
901 my $res = $self->{mech}->get(sprintf('http://%s/index.php?view=militaryAdvisorReportView&detailedCombatId=%s', $self->{server}, $combatId)); |
592d3b3b7898
implemented the WAR robot
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
100
diff
changeset
|
902 my $extractor = new Ikariam::Extractor(content => $res->content); |
592d3b3b7898
implemented the WAR robot
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
100
diff
changeset
|
903 |
592d3b3b7898
implemented the WAR robot
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
100
diff
changeset
|
904 my %report; |
81
d57920014cb4
split buliding.yaml to city.yaml and overall.yaml
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
80
diff
changeset
|
905 |
101
592d3b3b7898
implemented the WAR robot
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
100
diff
changeset
|
906 $report{id} = $combatId; |
205
d9f17bcbf1f1
we keep 10 transporters for prize
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
204
diff
changeset
|
907 my $c = $extractor->{doc}->toString(0); |
101
592d3b3b7898
implemented the WAR robot
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
100
diff
changeset
|
908 |
592d3b3b7898
implemented the WAR robot
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
100
diff
changeset
|
909 # FIXME 城鎮 6 級)的城牆( 2 級)為防禦部隊增加了 7% 的防禦力。 |
592d3b3b7898
implemented the WAR robot
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
100
diff
changeset
|
910 while($c =~ /城鎮\s+(\d+)/gs) { |
592d3b3b7898
implemented the WAR robot
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
100
diff
changeset
|
911 $report{cityLevel} = $1; |
592d3b3b7898
implemented the WAR robot
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
100
diff
changeset
|
912 $report{wallLevel} = $2; |
592d3b3b7898
implemented the WAR robot
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
100
diff
changeset
|
913 } |
592d3b3b7898
implemented the WAR robot
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
100
diff
changeset
|
914 |
592d3b3b7898
implemented the WAR robot
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
100
diff
changeset
|
915 $report{attacker} = $extractor->find('//div[@id="troopsReport"]//table[@id="result"]//th[@class="attackers"]'); |
592d3b3b7898
implemented the WAR robot
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
100
diff
changeset
|
916 $report{defender} = $extractor->find('//div[@id="troopsReport"]//table[@id="result"]//th[@class="defenders"]'); |
592d3b3b7898
implemented the WAR robot
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
100
diff
changeset
|
917 $report{winner} = $extractor->find('//div[@id="troopsReport"]//table[@id="result"]//td[@class="winner"]'); |
81
d57920014cb4
split buliding.yaml to city.yaml and overall.yaml
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
80
diff
changeset
|
918 |
150
fab1593cadf1
fixed the combat reading issue.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
148
diff
changeset
|
919 # the combat we win! |
147
7f9109a50679
trying to fixed report
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
146
diff
changeset
|
920 $report{targetCity} = $extractor->find('//div[@id="troopsReport"]/div/h3/a/text()'); |
7f9109a50679
trying to fixed report
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
146
diff
changeset
|
921 my $href = $extractor->find('//div[@id="troopsReport"]/div/h3/a/@href'); |
150
fab1593cadf1
fixed the combat reading issue.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
148
diff
changeset
|
922 if(!defined($href)) { |
fab1593cadf1
fixed the combat reading issue.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
148
diff
changeset
|
923 # the combat we lost! |
fab1593cadf1
fixed the combat reading issue.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
148
diff
changeset
|
924 $report{targetCity} = $extractor->find('//td[@class="battle"]/a/text()'); |
fab1593cadf1
fixed the combat reading issue.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
148
diff
changeset
|
925 $href = $extractor->find('//td[@class="battle"]/a/@href'); |
fab1593cadf1
fixed the combat reading issue.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
148
diff
changeset
|
926 } |
145
aad08889ddb3
hacked for s4.ikariam.tw
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
143
diff
changeset
|
927 |
101
592d3b3b7898
implemented the WAR robot
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
100
diff
changeset
|
928 if($href =~ /index\.php\?view=island&id=(\d+)&selectCity=(\d+)/) { |
592d3b3b7898
implemented the WAR robot
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
100
diff
changeset
|
929 $report{island} = $1; |
592d3b3b7898
implemented the WAR robot
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
100
diff
changeset
|
930 $report{city} = $2; |
129
3756298f8e4b
fixed the island and city id in the military reports.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
125
diff
changeset
|
931 } else { |
150
fab1593cadf1
fixed the combat reading issue.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
148
diff
changeset
|
932 warn($href); |
143
bfa78302cf09
ignore some combat reports, which is not finished.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
129
diff
changeset
|
933 warn ("can not read combat reprot $combatId"); |
bfa78302cf09
ignore some combat reports, which is not finished.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
129
diff
changeset
|
934 return undef; |
101
592d3b3b7898
implemented the WAR robot
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
100
diff
changeset
|
935 } |
592d3b3b7898
implemented the WAR robot
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
100
diff
changeset
|
936 $report{gold} = $extractor->find('//div[@id="troopsReport"]//ul[@class="resources"]/li[@class="gold"]'); |
592d3b3b7898
implemented the WAR robot
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
100
diff
changeset
|
937 $report{wood} = $extractor->find('//div[@id="troopsReport"]//ul[@class="resources"]/li[@class="wood"]'); |
592d3b3b7898
implemented the WAR robot
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
100
diff
changeset
|
938 $report{crystal} = $extractor->find('//div[@id="troopsReport"]//ul[@class="resources"]/li[@class="glass"]'); |
592d3b3b7898
implemented the WAR robot
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
100
diff
changeset
|
939 $report{wine} = $extractor->find('//div[@id="troopsReport"]//ul[@class="resources"]/li[@class="wine"]'); |
592d3b3b7898
implemented the WAR robot
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
100
diff
changeset
|
940 $report{sulfur} = $extractor->find('//div[@id="troopsReport"]//ul[@class="resources"]/li[@class="sulfur"]'); |
81
d57920014cb4
split buliding.yaml to city.yaml and overall.yaml
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
80
diff
changeset
|
941 |
101
592d3b3b7898
implemented the WAR robot
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
100
diff
changeset
|
942 foreach(qw/gold wood crystal wine sulfur attacker defender winner/) { |
592d3b3b7898
implemented the WAR robot
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
100
diff
changeset
|
943 $report{$_} =~ s/^.*?:\s+//; |
592d3b3b7898
implemented the WAR robot
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
100
diff
changeset
|
944 $report{$_} =~ s/\s+$//; |
592d3b3b7898
implemented the WAR robot
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
100
diff
changeset
|
945 $report{$_} =~ s/,//g; |
592d3b3b7898
implemented the WAR robot
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
100
diff
changeset
|
946 } |
592d3b3b7898
implemented the WAR robot
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
100
diff
changeset
|
947 return \%report; |
79
9d92e8c12f58
rewrited the code in XPath.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
75
diff
changeset
|
948 } |
9d92e8c12f58
rewrited the code in XPath.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
75
diff
changeset
|
949 |
9d92e8c12f58
rewrited the code in XPath.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
75
diff
changeset
|
950 sub checkMilitaryAdvisorCombatReports { |
9d92e8c12f58
rewrited the code in XPath.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
75
diff
changeset
|
951 my $self = shift; |
101
592d3b3b7898
implemented the WAR robot
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
100
diff
changeset
|
952 my $page = shift || 0; |
592d3b3b7898
implemented the WAR robot
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
100
diff
changeset
|
953 |
592d3b3b7898
implemented the WAR robot
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
100
diff
changeset
|
954 my $res = $self->{mech}->get(sprintf('http://%s/index.php?view=militaryAdvisorCombatReports&start=%s', $self->{server}, $page)); |
592d3b3b7898
implemented the WAR robot
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
100
diff
changeset
|
955 my $extractor = new Ikariam::Extractor(content => $res->content); |
592d3b3b7898
implemented the WAR robot
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
100
diff
changeset
|
956 |
592d3b3b7898
implemented the WAR robot
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
100
diff
changeset
|
957 my $result = $extractor->{doc}->find('//div[@id="troopsOverview"]//table/tr[position()<=10]'); |
592d3b3b7898
implemented the WAR robot
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
100
diff
changeset
|
958 foreach my $tr ( @$result ) { |
592d3b3b7898
implemented the WAR robot
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
100
diff
changeset
|
959 my $trExtractor = new Ikariam::Extractor(content => $tr->toString(1)); |
592d3b3b7898
implemented the WAR robot
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
100
diff
changeset
|
960 my $date = $trExtractor->find('//td[@class="date"]'); |
592d3b3b7898
implemented the WAR robot
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
100
diff
changeset
|
961 $date =~ s/^\s+//g; $date =~ s/\s+$//g; |
592d3b3b7898
implemented the WAR robot
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
100
diff
changeset
|
962 |
592d3b3b7898
implemented the WAR robot
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
100
diff
changeset
|
963 |
592d3b3b7898
implemented the WAR robot
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
100
diff
changeset
|
964 my $href = $trExtractor->find('//td/a/@href'); |
592d3b3b7898
implemented the WAR robot
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
100
diff
changeset
|
965 if($href =~ /index.php\?view=militaryAdvisorReportView&combatId=(\d+)/) { |
592d3b3b7898
implemented the WAR robot
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
100
diff
changeset
|
966 my $report = Ikariam::Report->retrieve($1); |
592d3b3b7898
implemented the WAR robot
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
100
diff
changeset
|
967 if(!$report) { |
592d3b3b7898
implemented the WAR robot
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
100
diff
changeset
|
968 my $report_hash = $self->checkMilitaryAdvisorReportView($1); |
129
3756298f8e4b
fixed the island and city id in the military reports.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
125
diff
changeset
|
969 if(defined($report_hash)) { |
3756298f8e4b
fixed the island and city id in the military reports.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
125
diff
changeset
|
970 $report = Ikariam::Report->insert($report_hash); |
79
9d92e8c12f58
rewrited the code in XPath.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
75
diff
changeset
|
971 |
129
3756298f8e4b
fixed the island and city id in the military reports.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
125
diff
changeset
|
972 if($date =~ /(\d+)\.(\d+)\. (\d+):(\d+)/) { |
3756298f8e4b
fixed the island and city id in the military reports.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
125
diff
changeset
|
973 my $unixtime = mktime (0, $4, $3, $1, ($2-1), '108'); |
3756298f8e4b
fixed the island and city id in the military reports.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
125
diff
changeset
|
974 $report->set('date', $unixtime); |
3756298f8e4b
fixed the island and city id in the military reports.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
125
diff
changeset
|
975 } |
3756298f8e4b
fixed the island and city id in the military reports.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
125
diff
changeset
|
976 $report->set('time', time); |
3756298f8e4b
fixed the island and city id in the military reports.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
125
diff
changeset
|
977 |
3756298f8e4b
fixed the island and city id in the military reports.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
125
diff
changeset
|
978 $report->update(); |
143
bfa78302cf09
ignore some combat reports, which is not finished.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
129
diff
changeset
|
979 } else { |
bfa78302cf09
ignore some combat reports, which is not finished.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
129
diff
changeset
|
980 # for some reason, we can not read the report. |
bfa78302cf09
ignore some combat reports, which is not finished.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
129
diff
changeset
|
981 next; |
101
592d3b3b7898
implemented the WAR robot
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
100
diff
changeset
|
982 } |
592d3b3b7898
implemented the WAR robot
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
100
diff
changeset
|
983 } else { |
129
3756298f8e4b
fixed the island and city id in the military reports.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
125
diff
changeset
|
984 # we have found the report we like to know, exit the function. |
101
592d3b3b7898
implemented the WAR robot
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
100
diff
changeset
|
985 return; |
592d3b3b7898
implemented the WAR robot
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
100
diff
changeset
|
986 } |
592d3b3b7898
implemented the WAR robot
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
100
diff
changeset
|
987 } else { |
129
3756298f8e4b
fixed the island and city id in the military reports.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
125
diff
changeset
|
988 # there is not report yet. |
101
592d3b3b7898
implemented the WAR robot
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
100
diff
changeset
|
989 return; |
592d3b3b7898
implemented the WAR robot
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
100
diff
changeset
|
990 } |
592d3b3b7898
implemented the WAR robot
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
100
diff
changeset
|
991 } |
592d3b3b7898
implemented the WAR robot
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
100
diff
changeset
|
992 |
592d3b3b7898
implemented the WAR robot
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
100
diff
changeset
|
993 my @moreCombats = $extractor->find('//div[@id="troopsOverview"]//table/tr[position()>10]//a/@href'); |
592d3b3b7898
implemented the WAR robot
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
100
diff
changeset
|
994 foreach (@moreCombats){ |
592d3b3b7898
implemented the WAR robot
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
100
diff
changeset
|
995 last if(/^javascript/); |
592d3b3b7898
implemented the WAR robot
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
100
diff
changeset
|
996 if(/\?view=militaryAdvisorCombatReports&start=(\d+)/) { |
592d3b3b7898
implemented the WAR robot
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
100
diff
changeset
|
997 next if($1 le $page); |
592d3b3b7898
implemented the WAR robot
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
100
diff
changeset
|
998 $self->checkMilitaryAdvisorCombatReports($1); |
592d3b3b7898
implemented the WAR robot
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
100
diff
changeset
|
999 last; |
592d3b3b7898
implemented the WAR robot
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
100
diff
changeset
|
1000 } |
592d3b3b7898
implemented the WAR robot
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
100
diff
changeset
|
1001 } |
79
9d92e8c12f58
rewrited the code in XPath.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
75
diff
changeset
|
1002 } |
9d92e8c12f58
rewrited the code in XPath.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
75
diff
changeset
|
1003 |
9d92e8c12f58
rewrited the code in XPath.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
75
diff
changeset
|
1004 sub checkTownHall { |
9d92e8c12f58
rewrited the code in XPath.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
75
diff
changeset
|
1005 my $self = shift; |
9d92e8c12f58
rewrited the code in XPath.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
75
diff
changeset
|
1006 my $cityId = shift; |
9d92e8c12f58
rewrited the code in XPath.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
75
diff
changeset
|
1007 |
9d92e8c12f58
rewrited the code in XPath.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
75
diff
changeset
|
1008 my $res = $self->{mech}->get(sprintf('http://%s/index.php?view=townHall&id=%d', $self->{server}, $cityId)); |
9d92e8c12f58
rewrited the code in XPath.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
75
diff
changeset
|
1009 my $extractor = new Ikariam::Extractor(content => $res->content); |
9d92e8c12f58
rewrited the code in XPath.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
75
diff
changeset
|
1010 |
9d92e8c12f58
rewrited the code in XPath.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
75
diff
changeset
|
1011 # //div[@id='SatisfactionOverview']//div[@class='value'] |
9d92e8c12f58
rewrited the code in XPath.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
75
diff
changeset
|
1012 # //div[@id='SatisfactionOverview']//div[@class='text'] |
9d92e8c12f58
rewrited the code in XPath.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
75
diff
changeset
|
1013 $self->{"cities"}->{$cityId}->{happiness} = $extractor->find('//div[@id="SatisfactionOverview"]//div[@class="value"]'); |
9d92e8c12f58
rewrited the code in XPath.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
75
diff
changeset
|
1014 |
9d92e8c12f58
rewrited the code in XPath.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
75
diff
changeset
|
1015 # 取 SatisfactionOverview 中的其他值 |
9d92e8c12f58
rewrited the code in XPath.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
75
diff
changeset
|
1016 # 一個城鎮的市民滿意度結合了多方面的因素 |
9d92e8c12f58
rewrited the code in XPath.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
75
diff
changeset
|
1017 # check happiness |
9d92e8c12f58
rewrited the code in XPath.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
75
diff
changeset
|
1018 # Happiness = Basic bonuses (196 + Capital Bonus + Holiday Bonus(25)) + |
9d92e8c12f58
rewrited the code in XPath.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
75
diff
changeset
|
1019 # Wine (Tavern Base(12*level) + |
9d92e8c12f58
rewrited the code in XPath.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
75
diff
changeset
|
1020 # Tavern Bonus(80*step)) + |
9d92e8c12f58
rewrited the code in XPath.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
75
diff
changeset
|
1021 # Culture (Museum Base(20*level) + |
9d92e8c12f58
rewrited the code in XPath.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
75
diff
changeset
|
1022 # Cultural Goods Bonus(50*Cultural Goods)) - |
9d92e8c12f58
rewrited the code in XPath.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
75
diff
changeset
|
1023 # Population (population) - |
9d92e8c12f58
rewrited the code in XPath.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
75
diff
changeset
|
1024 # Corruption (Corruption rate * population) |
9d92e8c12f58
rewrited the code in XPath.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
75
diff
changeset
|
1025 # |
9d92e8c12f58
rewrited the code in XPath.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
75
diff
changeset
|
1026 # Growth Rate = Happiness * 0.02 |
9d92e8c12f58
rewrited the code in XPath.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
75
diff
changeset
|
1027 |
9d92e8c12f58
rewrited the code in XPath.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
75
diff
changeset
|
1028 # Space, 房屋數 |
9d92e8c12f58
rewrited the code in XPath.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
75
diff
changeset
|
1029 $self->{'cities'}->{$cityId}->{"space"} = {}; |
9d92e8c12f58
rewrited the code in XPath.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
75
diff
changeset
|
1030 $self->{'cities'}->{$cityId}->{"space"}->{'total'} = $extractor->find('//span[@class="value total"]/text()'); |
9d92e8c12f58
rewrited the code in XPath.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
75
diff
changeset
|
1031 $self->{'cities'}->{$cityId}->{"space"}->{'occupied'} = $extractor->find('//span[@class="value occupied"]/text()'); |
9d92e8c12f58
rewrited the code in XPath.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
75
diff
changeset
|
1032 |
9d92e8c12f58
rewrited the code in XPath.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
75
diff
changeset
|
1033 my @values = $extractor->find('//div[@id="CityOverview"]//span[@class="value"]'); |
9d92e8c12f58
rewrited the code in XPath.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
75
diff
changeset
|
1034 $self->{'cities'}->{$cityId}->{"growth"} = $values[0]; |
9d92e8c12f58
rewrited the code in XPath.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
75
diff
changeset
|
1035 $self->{'cities'}->{$cityId}->{"incomegold"} = $values[1]; |
9d92e8c12f58
rewrited the code in XPath.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
75
diff
changeset
|
1036 |
100 | 1037 my $actionPoints = $extractor->find('//div[@id="CityOverview"]//li[@class="actions"]/text()'); |
1038 if($actionPoints =~ /(\d+)\/(\d+)/) { | |
1039 $self->{'cities'}->{$cityId}->{actionPoints} = $1; | |
1040 $self->{'cities'}->{$cityId}->{maxActionPoints} = $2; | |
1041 } | |
1042 | |
79
9d92e8c12f58
rewrited the code in XPath.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
75
diff
changeset
|
1043 $self->{'cities'}->{$cityId}->{corruption} = $extractor->find('//li[@class="corruption"]//span[@title="目前腐敗程度"]'); |
9d92e8c12f58
rewrited the code in XPath.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
75
diff
changeset
|
1044 $self->{'cities'}->{$cityId}->{corruption} =~ s/%//g; |
9d92e8c12f58
rewrited the code in XPath.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
75
diff
changeset
|
1045 |
9d92e8c12f58
rewrited the code in XPath.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
75
diff
changeset
|
1046 my @citizens_type = qw/citizens woodworkers specialworkers scientists/; |
9d92e8c12f58
rewrited the code in XPath.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
75
diff
changeset
|
1047 @values = $extractor->find('//div[@id="PopulationGraph"]//span[@class="count"]'); |
9d92e8c12f58
rewrited the code in XPath.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
75
diff
changeset
|
1048 foreach my $i (0..$#citizens_type) |
9d92e8c12f58
rewrited the code in XPath.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
75
diff
changeset
|
1049 { |
9d92e8c12f58
rewrited the code in XPath.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
75
diff
changeset
|
1050 $self->{'cities'}->{$cityId}->{'citizens'}->{$citizens_type[$i]} = $values[$i]; |
9d92e8c12f58
rewrited the code in XPath.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
75
diff
changeset
|
1051 $self->{'cities'}->{$cityId}->{'citizens'}->{total} += $values[$i]; |
9d92e8c12f58
rewrited the code in XPath.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
75
diff
changeset
|
1052 } |
9d92e8c12f58
rewrited the code in XPath.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
75
diff
changeset
|
1053 } |
9d92e8c12f58
rewrited the code in XPath.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
75
diff
changeset
|
1054 |
9d92e8c12f58
rewrited the code in XPath.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
75
diff
changeset
|
1055 sub checkArmies |
9d92e8c12f58
rewrited the code in XPath.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
75
diff
changeset
|
1056 { |
9d92e8c12f58
rewrited the code in XPath.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
75
diff
changeset
|
1057 my $self = shift; |
9d92e8c12f58
rewrited the code in XPath.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
75
diff
changeset
|
1058 my $cityId = shift; |
9d92e8c12f58
rewrited the code in XPath.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
75
diff
changeset
|
1059 my %force_types; |
9d92e8c12f58
rewrited the code in XPath.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
75
diff
changeset
|
1060 |
9d92e8c12f58
rewrited the code in XPath.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
75
diff
changeset
|
1061 $force_types{'army'} = [ qw/undef undef Slinger Swordsman Phalanx Ram Archer Catapult Gunsman Mortar SteamGiant Gyrocopter Bombardier Doctor Cook/ ]; |
9d92e8c12f58
rewrited the code in XPath.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
75
diff
changeset
|
1062 $force_types{'fleet'} = [ qw/undef undef Ram-Ship BallistaShip Flamethrower CatapultShip MortarShip PaddleWheelRam DivingBoat/ ]; |
9d92e8c12f58
rewrited the code in XPath.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
75
diff
changeset
|
1063 |
9d92e8c12f58
rewrited the code in XPath.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
75
diff
changeset
|
1064 foreach my $x (qw/army fleet/) { |
9d92e8c12f58
rewrited the code in XPath.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
75
diff
changeset
|
1065 $self->{'cities'}->{$cityId}->{$x} = {}; |
9d92e8c12f58
rewrited the code in XPath.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
75
diff
changeset
|
1066 my $res = $self->{mech}->get(sprintf('http://%s/index.php?view=cityMilitary-%s&id=%d', $self->{server}, $x, $cityId)); |
9d92e8c12f58
rewrited the code in XPath.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
75
diff
changeset
|
1067 my @numbers = Ikariam::Extractor->new(content => $res->content)->find('//table//tr/td'); |
9d92e8c12f58
rewrited the code in XPath.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
75
diff
changeset
|
1068 foreach my $j (0..$#{$force_types{$x}}) { |
87
4c82cf844aa8
counting navy expenditure
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
86
diff
changeset
|
1069 next if(!defined($force_types{$x}[$j])); |
79
9d92e8c12f58
rewrited the code in XPath.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
75
diff
changeset
|
1070 if ($numbers[$j] == '-') { |
9d92e8c12f58
rewrited the code in XPath.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
75
diff
changeset
|
1071 $self->{'cities'}->{$cityId}->{$x}->{$force_types{$x}[$j]} = 0; |
9d92e8c12f58
rewrited the code in XPath.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
75
diff
changeset
|
1072 } else { |
9d92e8c12f58
rewrited the code in XPath.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
75
diff
changeset
|
1073 $self->{'cities'}->{$cityId}->{$x}->{$force_types{$x}[$j]} = $numbers[$j]; |
9d92e8c12f58
rewrited the code in XPath.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
75
diff
changeset
|
1074 } |
9d92e8c12f58
rewrited the code in XPath.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
75
diff
changeset
|
1075 } |
9d92e8c12f58
rewrited the code in XPath.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
75
diff
changeset
|
1076 } |
52
d2ac1e198ce4
implement a new agent based on Decision Tree (Decision::ParseTree)
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
48
diff
changeset
|
1077 } |
d2ac1e198ce4
implement a new agent based on Decision Tree (Decision::ParseTree)
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
48
diff
changeset
|
1078 |
154
637314cc57ed
checking for friends.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
150
diff
changeset
|
1079 sub checkFriends |
637314cc57ed
checking for friends.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
150
diff
changeset
|
1080 { |
637314cc57ed
checking for friends.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
150
diff
changeset
|
1081 # must check cities first, so we know if we have a museum available. |
637314cc57ed
checking for friends.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
150
diff
changeset
|
1082 my $self = shift; |
637314cc57ed
checking for friends.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
150
diff
changeset
|
1083 |
637314cc57ed
checking for friends.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
150
diff
changeset
|
1084 foreach my $cityId (keys(%{$self->{'cities'}})) { |
637314cc57ed
checking for friends.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
150
diff
changeset
|
1085 my @locations = @{$self->{'cities'}->{$cityId}->{locations}}; |
637314cc57ed
checking for friends.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
150
diff
changeset
|
1086 foreach (0..$#locations) { |
637314cc57ed
checking for friends.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
150
diff
changeset
|
1087 if($locations[$_] eq 'museum') { |
637314cc57ed
checking for friends.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
150
diff
changeset
|
1088 my $res = $self->{mech}->get(sprintf('http://%s/index.php?view=museum&id=%d&position=%d', $self->{server}, $cityId, $_ )); |
637314cc57ed
checking for friends.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
150
diff
changeset
|
1089 my @hrefs = Ikariam::Extractor->new(content => $res->content)->find('//div[@class="content"]/table/tbody/tr/td/a[1]/@href'); |
637314cc57ed
checking for friends.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
150
diff
changeset
|
1090 foreach my $href (@hrefs) { |
637314cc57ed
checking for friends.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
150
diff
changeset
|
1091 if ($href =~ /&id=(\d+)&/) { |
637314cc57ed
checking for friends.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
150
diff
changeset
|
1092 $self->{'friends'}->{$1} = undef; |
637314cc57ed
checking for friends.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
150
diff
changeset
|
1093 } |
637314cc57ed
checking for friends.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
150
diff
changeset
|
1094 } |
637314cc57ed
checking for friends.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
150
diff
changeset
|
1095 last; |
637314cc57ed
checking for friends.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
150
diff
changeset
|
1096 } |
637314cc57ed
checking for friends.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
150
diff
changeset
|
1097 } |
637314cc57ed
checking for friends.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
150
diff
changeset
|
1098 } |
637314cc57ed
checking for friends.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
150
diff
changeset
|
1099 |
637314cc57ed
checking for friends.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
150
diff
changeset
|
1100 if(-f "friends.txt") { |
637314cc57ed
checking for friends.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
150
diff
changeset
|
1101 # load friends |
637314cc57ed
checking for friends.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
150
diff
changeset
|
1102 open(IN, "friends.txt") or die "Unable to open friends.txt\n"; |
637314cc57ed
checking for friends.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
150
diff
changeset
|
1103 while(<IN>) { |
637314cc57ed
checking for friends.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
150
diff
changeset
|
1104 chomp; |
637314cc57ed
checking for friends.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
150
diff
changeset
|
1105 my $friend = Ikariam::User->retrieve(name => $_); |
637314cc57ed
checking for friends.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
150
diff
changeset
|
1106 $self->{friends}->{$friend->id} = undef if(defined($friend)); |
637314cc57ed
checking for friends.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
150
diff
changeset
|
1107 } |
637314cc57ed
checking for friends.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
150
diff
changeset
|
1108 close(IN); |
637314cc57ed
checking for friends.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
150
diff
changeset
|
1109 } |
637314cc57ed
checking for friends.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
150
diff
changeset
|
1110 } |
637314cc57ed
checking for friends.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
150
diff
changeset
|
1111 |
23
54ab0becd730
implemented a prototype for collecting account status.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
19
diff
changeset
|
1112 sub check |
54ab0becd730
implemented a prototype for collecting account status.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
19
diff
changeset
|
1113 { |
54ab0becd730
implemented a prototype for collecting account status.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
19
diff
changeset
|
1114 my $self = shift; |
54ab0becd730
implemented a prototype for collecting account status.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
19
diff
changeset
|
1115 |
79
9d92e8c12f58
rewrited the code in XPath.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
75
diff
changeset
|
1116 # MilitaryAdvisor |
9d92e8c12f58
rewrited the code in XPath.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
75
diff
changeset
|
1117 $self->checkMilitaryAdvisorMilitaryMovements(); |
9d92e8c12f58
rewrited the code in XPath.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
75
diff
changeset
|
1118 $self->checkMilitaryAdvisorCombatReports(); |
81
d57920014cb4
split buliding.yaml to city.yaml and overall.yaml
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
80
diff
changeset
|
1119 $self->{'research'} = $self->checkResearch((keys(%{$self->{'cities'}}))[0]); |
d57920014cb4
split buliding.yaml to city.yaml and overall.yaml
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
80
diff
changeset
|
1120 |
d57920014cb4
split buliding.yaml to city.yaml and overall.yaml
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
80
diff
changeset
|
1121 # alerts |
d57920014cb4
split buliding.yaml to city.yaml and overall.yaml
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
80
diff
changeset
|
1122 # //li[@id="advCities"]/a[@class="normalalert"] |
d57920014cb4
split buliding.yaml to city.yaml and overall.yaml
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
80
diff
changeset
|
1123 # //li[@id="advMilitary"]/a[@class="normalalert"] |
d57920014cb4
split buliding.yaml to city.yaml and overall.yaml
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
80
diff
changeset
|
1124 # //li[@id="advResearch"]/a[@class="normalalert"] |
d57920014cb4
split buliding.yaml to city.yaml and overall.yaml
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
80
diff
changeset
|
1125 # //li[@id="advDiplomacy"]/a[@class="normalalert"] |
79
9d92e8c12f58
rewrited the code in XPath.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
75
diff
changeset
|
1126 |
26
d8117792c6f5
collecting more data from townHall
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
23
diff
changeset
|
1127 # looking for cities |
125
4374173bab47
collect hometown island information.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
117
diff
changeset
|
1128 foreach my $cityId (keys(%{$self->{'cities'}})) { |
284
10f14db31151
added new dump spy info function
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
270
diff
changeset
|
1129 $self->changeCity($cityId); |
79
9d92e8c12f58
rewrited the code in XPath.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
75
diff
changeset
|
1130 $self->checkCity($cityId); |
9d92e8c12f58
rewrited the code in XPath.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
75
diff
changeset
|
1131 $self->checkTownHall($cityId); |
9d92e8c12f58
rewrited the code in XPath.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
75
diff
changeset
|
1132 $self->checkArmies($cityId); |
172
ba03aa8abdb2
reading Tavern's infomration
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
154
diff
changeset
|
1133 $self->checkTavern($cityId); |
232
978a949602e5
Auto-update Scientists numbers for Academy.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
210
diff
changeset
|
1134 $self->checkAcademy($cityId); |
23
54ab0becd730
implemented a prototype for collecting account status.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
19
diff
changeset
|
1135 } |
197
dbdd7dcc91c6
fixed for friendly troop and corruption
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
195
diff
changeset
|
1136 # $self->checkFriends(); |
26
d8117792c6f5
collecting more data from townHall
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
23
diff
changeset
|
1137 return $self->{'cities'}; |
23
54ab0becd730
implemented a prototype for collecting account status.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
19
diff
changeset
|
1138 } |
54ab0becd730
implemented a prototype for collecting account status.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
19
diff
changeset
|
1139 |
84
2c6c219dc3ff
fixed the checkCity function, implemneted a human resources palnning function.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
83
diff
changeset
|
1140 sub getNetIncome { |
2c6c219dc3ff
fixed the checkCity function, implemneted a human resources palnning function.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
83
diff
changeset
|
1141 my $self = shift; |
2c6c219dc3ff
fixed the checkCity function, implemneted a human resources palnning function.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
83
diff
changeset
|
1142 my $cityId = shift; |
2c6c219dc3ff
fixed the checkCity function, implemneted a human resources palnning function.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
83
diff
changeset
|
1143 |
2c6c219dc3ff
fixed the checkCity function, implemneted a human resources palnning function.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
83
diff
changeset
|
1144 Carp::croak("must assign cityId") if !defined($cityId); |
2c6c219dc3ff
fixed the checkCity function, implemneted a human resources palnning function.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
83
diff
changeset
|
1145 |
2c6c219dc3ff
fixed the checkCity function, implemneted a human resources palnning function.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
83
diff
changeset
|
1146 # 扣除研發每人花費 8 GOLD |
2c6c219dc3ff
fixed the checkCity function, implemneted a human resources palnning function.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
83
diff
changeset
|
1147 return ($self->{cities}->{$cityId}->{citizens}->{total}*4 - $self->{cities}->{$cityId}->{citizens}->{scientists}*8 ); |
2c6c219dc3ff
fixed the checkCity function, implemneted a human resources palnning function.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
83
diff
changeset
|
1148 } |
2c6c219dc3ff
fixed the checkCity function, implemneted a human resources palnning function.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
83
diff
changeset
|
1149 |
87
4c82cf844aa8
counting navy expenditure
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
86
diff
changeset
|
1150 sub getNavyExpenditure { |
4c82cf844aa8
counting navy expenditure
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
86
diff
changeset
|
1151 my $self = shift; |
4c82cf844aa8
counting navy expenditure
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
86
diff
changeset
|
1152 my $cityId = shift; |
4c82cf844aa8
counting navy expenditure
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
86
diff
changeset
|
1153 my $cities = $self->{cities}; |
4c82cf844aa8
counting navy expenditure
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
86
diff
changeset
|
1154 |
4c82cf844aa8
counting navy expenditure
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
86
diff
changeset
|
1155 my $ships = { |
4c82cf844aa8
counting navy expenditure
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
86
diff
changeset
|
1156 CargoShip => {n => "CargoShip",a => 0,d => 0,s => 4,c => "Steamship",v => 20,A => 0,D => 0}, |
4c82cf844aa8
counting navy expenditure
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
86
diff
changeset
|
1157 'Ram-Ship' => {n => "Ram-Ship",p => 6,w => 56,S => 21,b => "34m",u => 20,m => 1,o => 3,a => 16,d => 16,A => 4,D => 4,s => 10,c => "Sailer",v => 10}, |
4c82cf844aa8
counting navy expenditure
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
86
diff
changeset
|
1158 BallistaShip => {n => "BallistaShip",p => 5,w => 72,S => 29,b => "47m",u => 24,m => 3,o => 5,a => 20,d => 28,A => 5,D => 7,s => 11,c => "Sailer",v => 8,x => "Resistance"}, |
4c82cf844aa8
counting navy expenditure
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
86
diff
changeset
|
1159 Flamethrower => {n => "Flamethrower",p => 5,w => 105,S => 77,b => "1h 55m",u => 45,m => 5,o => 7,a => 40,d => 40,A => 10,D => 10,s => 12,c => "Steamship",v => 8,x => "Assault"}, |
4c82cf844aa8
counting navy expenditure
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
86
diff
changeset
|
1160 CatapultShip => {n => "CatapultShip",p => 10,w => 173,S => 76,b => "3h 11m",u => 57,m => 7,o => 10,a => 60,d => 60,A => 12,D => 12,s => 16,c => "Sailer",v => 6}, |
4c82cf844aa8
counting navy expenditure
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
86
diff
changeset
|
1161 MortarShip => {n => "MortarShip",p => 22,w => 456,S => 282,b => "3h 38m",u => 130,m => 12,o => 15,a => 160,d => 160,A => 35,D => 35,s => 14,c => "Steamship",v => 4}, |
4c82cf844aa8
counting navy expenditure
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
86
diff
changeset
|
1162 PaddleWheelRam => {n => "PaddleWheelRam",i => "steamboat",p => 12,w => 513,S => 167,b => "4h 8m",u => 114,m => 10,o => 13,a => 100,d => 90,A => 20,D => 18,s => 13,c => "Steamship",v => 8,x => "Assault"}, |
4c82cf844aa8
counting navy expenditure
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
86
diff
changeset
|
1163 DivingBoat => {n => "DivingBoat",i => "submarine",p => 16,w => 493,C => 378,b => "5h 5m",u => 126,m => 15,o => 16,a => 110,d => 155,A => 20,D => 30,s => 10,c => "Steamship",v => 2,x => "Resistance"} |
4c82cf844aa8
counting navy expenditure
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
86
diff
changeset
|
1164 }; |
4c82cf844aa8
counting navy expenditure
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
86
diff
changeset
|
1165 my $cost = 0; |
4c82cf844aa8
counting navy expenditure
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
86
diff
changeset
|
1166 foreach(keys(%{$cities->{$cityId}->{fleet}})) { |
4c82cf844aa8
counting navy expenditure
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
86
diff
changeset
|
1167 $cost += $cities->{$cityId}->{fleet}->{$_} * $ships->{$_}->{u}; |
4c82cf844aa8
counting navy expenditure
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
86
diff
changeset
|
1168 } |
4c82cf844aa8
counting navy expenditure
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
86
diff
changeset
|
1169 return $cost; |
4c82cf844aa8
counting navy expenditure
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
86
diff
changeset
|
1170 } |
4c82cf844aa8
counting navy expenditure
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
86
diff
changeset
|
1171 |
86
a8acf50bf7bb
implemented a simple MilityExpenditure counting
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
84
diff
changeset
|
1172 sub getMilityExpenditure { |
a8acf50bf7bb
implemented a simple MilityExpenditure counting
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
84
diff
changeset
|
1173 my $self = shift; |
a8acf50bf7bb
implemented a simple MilityExpenditure counting
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
84
diff
changeset
|
1174 my $cityId = shift; |
a8acf50bf7bb
implemented a simple MilityExpenditure counting
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
84
diff
changeset
|
1175 my $cities = $self->{cities}; |
a8acf50bf7bb
implemented a simple MilityExpenditure counting
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
84
diff
changeset
|
1176 my $troops = { |
a8acf50bf7bb
implemented a simple MilityExpenditure counting
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
84
diff
changeset
|
1177 # p 需要人口 |
a8acf50bf7bb
implemented a simple MilityExpenditure counting
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
84
diff
changeset
|
1178 # w 木頭 |
a8acf50bf7bb
implemented a simple MilityExpenditure counting
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
84
diff
changeset
|
1179 # S 硫磺 |
a8acf50bf7bb
implemented a simple MilityExpenditure counting
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
84
diff
changeset
|
1180 # b 製造時間 |
a8acf50bf7bb
implemented a simple MilityExpenditure counting
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
84
diff
changeset
|
1181 # u 維持費用 |
a8acf50bf7bb
implemented a simple MilityExpenditure counting
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
84
diff
changeset
|
1182 # m 最低軍營等級 |
a8acf50bf7bb
implemented a simple MilityExpenditure counting
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
84
diff
changeset
|
1183 # o 最佳軍營等級 |
a8acf50bf7bb
implemented a simple MilityExpenditure counting
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
84
diff
changeset
|
1184 # a 攻擊力 |
a8acf50bf7bb
implemented a simple MilityExpenditure counting
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
84
diff
changeset
|
1185 # d 防守力 |
210
a5862d3f1c84
fixed build_barracks and build_shipyard
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
207
diff
changeset
|
1186 # A 攻擊力加成 |
a5862d3f1c84
fixed build_barracks and build_shipyard
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
207
diff
changeset
|
1187 # D 防守力加成 |
86
a8acf50bf7bb
implemented a simple MilityExpenditure counting
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
84
diff
changeset
|
1188 # s 耐力 |
a8acf50bf7bb
implemented a simple MilityExpenditure counting
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
84
diff
changeset
|
1189 # c 種類 |
210
a5862d3f1c84
fixed build_barracks and build_shipyard
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
207
diff
changeset
|
1190 # v Speed |
a5862d3f1c84
fixed build_barracks and build_shipyard
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
207
diff
changeset
|
1191 # x 攻防加成 Assault, Resistance |
a5862d3f1c84
fixed build_barracks and build_shipyard
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
207
diff
changeset
|
1192 Slinger => {n => "Slinger", p => 1, w => 40, b => "12m", u => 8, m => 1, o => 4, a => 7, d => 6, A => 2, D => 2, s => 10, c => "Human", v => 20}, |
a5862d3f1c84
fixed build_barracks and build_shipyard
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
207
diff
changeset
|
1193 Swordsman => {n => "Swordsman", p => 2, w => 47, S => 16, b => "17m", u => 16, m => 3, o => 5, a => 18, d => 14, A => 4, D => 3, s => 12, c => "Human", v => 20, x => "Assault"}, |
a5862d3f1c84
fixed build_barracks and build_shipyard
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
207
diff
changeset
|
1194 Phalanx => {n => "Phalanx", p => 4, w => 104, S => 64, b => "40m", u => 24, m => 4, o => 7, a => 24, d => 40, A => 6, D => 10, s => 14, c => "Human", v => 20, x => "Resistance"}, |
a5862d3f1c84
fixed build_barracks and build_shipyard
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
207
diff
changeset
|
1195 Ram => {n => "Ram", p => 8, w => 198, S => 128, b => "42m", u => 52, m => 5, o => 8, a => 14, d => 18, A => 3, D => 4, s => 16, c => "Machina", v => 20, x => "Ram"}, |
a5862d3f1c84
fixed build_barracks and build_shipyard
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
207
diff
changeset
|
1196 Archer => {n => "Archer", p => 4, w => 172, S => 86, b => "49m", u => 32, m => 7, o => 10, a => 40, d => 40, A => 10, D => 10, s => 12, c => "Human", v => 20}, |
a5862d3f1c84
fixed build_barracks and build_shipyard
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
207
diff
changeset
|
1197 Catapult => {n => "Catapult", p => 10, w => 342, S => 232, b => "49m", u => 72, m => 10, o => 14, a => 36, d => 28, A => 9, D => 7, s => 16, c => "Machina", v => 20, x => "Ram"}, |
a5862d3f1c84
fixed build_barracks and build_shipyard
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
207
diff
changeset
|
1198 Gunsman => {n => "Gunsman", i => "marksman", p => 7, w => 355, S => 154, b => "1h 23m", u => 58, m => 14, o => 18, a => 80, d => 64, A => 18, D => 14, s => 10, c => "Human", v => 20}, |
a5862d3f1c84
fixed build_barracks and build_shipyard
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
207
diff
changeset
|
1199 Mortar => {n => "Mortar", p => 12, w => 1325, S => 938, b => "1h 53m", u => 128, m => 19, o => 21, a => 64, d => 64, A => 15, D => 15, s => 16, c => "Machina", v => 20, x => "Ram"}, |
a5862d3f1c84
fixed build_barracks and build_shipyard
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
207
diff
changeset
|
1200 SteamGiant => {n => "SteamGiant", i => "steamgiant", p => 6, w => 1150, S => 716, b => "1h 45m", u => 68, m => 16, o => 20, a => 100, d => 140, A => 20, D => 30, s => 14, c => "Machina", v => 20, x => "Resistance"}, |
a5862d3f1c84
fixed build_barracks and build_shipyard
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
207
diff
changeset
|
1201 Gyrocopter => {n => "Gyrocopter", p => 8, w => 1250, S => 670, b => "1h 2m", u => 97, m => 12, o => 16, a => 112, d => 112, A => 25, D => 25, s => 12, c => "Machina", v => 20}, |
a5862d3f1c84
fixed build_barracks and build_shipyard
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
207
diff
changeset
|
1202 Bombardier => {n => "Bombardier", p => 24, w => 2270, S => 878, b => "2h 10m", u => 228, m => 22, o => 24, a => 200, d => 165, A => 45, D => 35, s => 14, c => "Machina", v => 20, x => "Assault"}, |
a5862d3f1c84
fixed build_barracks and build_shipyard
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
207
diff
changeset
|
1203 Doctor => {n => "Doctor", i => "medic", p => 6, w => 640, C => 361, b => "1h 2m", u => 244, m => 11, o => 12, a => 4, d => 28, A => 0, D => 0, s => 14, c => "Human", v => 20, x => "Healer"}, |
a5862d3f1c84
fixed build_barracks and build_shipyard
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
207
diff
changeset
|
1204 Cook => {n => "Cook", p => 4, w => 520, W => 103, b => "38m", u => 138, m => 8, o => 8, a => 6, d => 26, A => 0, D => 0, s => 16, c => "Human", v => 20, x => "Regeneration"} |
86
a8acf50bf7bb
implemented a simple MilityExpenditure counting
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
84
diff
changeset
|
1205 }; |
a8acf50bf7bb
implemented a simple MilityExpenditure counting
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
84
diff
changeset
|
1206 |
a8acf50bf7bb
implemented a simple MilityExpenditure counting
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
84
diff
changeset
|
1207 my $cost = 0; |
a8acf50bf7bb
implemented a simple MilityExpenditure counting
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
84
diff
changeset
|
1208 foreach(keys(%{$cities->{$cityId}->{army}})) { |
a8acf50bf7bb
implemented a simple MilityExpenditure counting
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
84
diff
changeset
|
1209 $cost += $cities->{$cityId}->{army}->{$_} * $troops->{$_}->{u}; |
a8acf50bf7bb
implemented a simple MilityExpenditure counting
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
84
diff
changeset
|
1210 } |
a8acf50bf7bb
implemented a simple MilityExpenditure counting
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
84
diff
changeset
|
1211 return $cost; |
a8acf50bf7bb
implemented a simple MilityExpenditure counting
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
84
diff
changeset
|
1212 } |
a8acf50bf7bb
implemented a simple MilityExpenditure counting
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
84
diff
changeset
|
1213 |
84
2c6c219dc3ff
fixed the checkCity function, implemneted a human resources palnning function.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
83
diff
changeset
|
1214 sub blanceHurmanResource { |
2c6c219dc3ff
fixed the checkCity function, implemneted a human resources palnning function.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
83
diff
changeset
|
1215 my $self = shift; |
2c6c219dc3ff
fixed the checkCity function, implemneted a human resources palnning function.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
83
diff
changeset
|
1216 my $cityId = shift; |
2c6c219dc3ff
fixed the checkCity function, implemneted a human resources palnning function.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
83
diff
changeset
|
1217 my $workersRatio = { |
2c6c219dc3ff
fixed the checkCity function, implemneted a human resources palnning function.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
83
diff
changeset
|
1218 'citizens' => 0.4, |
2c6c219dc3ff
fixed the checkCity function, implemneted a human resources palnning function.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
83
diff
changeset
|
1219 'specialworkers' => 0.3, |
2c6c219dc3ff
fixed the checkCity function, implemneted a human resources palnning function.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
83
diff
changeset
|
1220 'woodworkers' => 0.7, |
2c6c219dc3ff
fixed the checkCity function, implemneted a human resources palnning function.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
83
diff
changeset
|
1221 }; |
2c6c219dc3ff
fixed the checkCity function, implemneted a human resources palnning function.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
83
diff
changeset
|
1222 |
2c6c219dc3ff
fixed the checkCity function, implemneted a human resources palnning function.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
83
diff
changeset
|
1223 my $netincome = $self->getNetIncome($cityId); |
2c6c219dc3ff
fixed the checkCity function, implemneted a human resources palnning function.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
83
diff
changeset
|
1224 |
2c6c219dc3ff
fixed the checkCity function, implemneted a human resources palnning function.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
83
diff
changeset
|
1225 # --- HR --- |
2c6c219dc3ff
fixed the checkCity function, implemneted a human resources palnning function.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
83
diff
changeset
|
1226 # 扣除研發,四成種田生產,剩下 3:7 挖資源 |
2c6c219dc3ff
fixed the checkCity function, implemneted a human resources palnning function.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
83
diff
changeset
|
1227 # 四成收入中可用兩成做軍事用途 |
2c6c219dc3ff
fixed the checkCity function, implemneted a human resources palnning function.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
83
diff
changeset
|
1228 # 生產共四成 |
2c6c219dc3ff
fixed the checkCity function, implemneted a human resources palnning function.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
83
diff
changeset
|
1229 my $produceworkers = int(($netincome * $workersRatio->{citizens}) / 4); |
2c6c219dc3ff
fixed the checkCity function, implemneted a human resources palnning function.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
83
diff
changeset
|
1230 |
2c6c219dc3ff
fixed the checkCity function, implemneted a human resources palnning function.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
83
diff
changeset
|
1231 # 換成生產人力 |
2c6c219dc3ff
fixed the checkCity function, implemneted a human resources palnning function.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
83
diff
changeset
|
1232 my $freePeople = $self->{cities}->{$cityId}->{citizens}->{total} - ($produceworkers + $self->{cities}->{$cityId}->{scientists}); |
2c6c219dc3ff
fixed the checkCity function, implemneted a human resources palnning function.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
83
diff
changeset
|
1233 |
2c6c219dc3ff
fixed the checkCity function, implemneted a human resources palnning function.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
83
diff
changeset
|
1234 # XXX |
86
a8acf50bf7bb
implemented a simple MilityExpenditure counting
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
84
diff
changeset
|
1235 # 需計算資源開挖上限, 依照島等級區分 |
a8acf50bf7bb
implemented a simple MilityExpenditure counting
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
84
diff
changeset
|
1236 # 木頭 |
a8acf50bf7bb
implemented a simple MilityExpenditure counting
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
84
diff
changeset
|
1237 # create_slider({ |
a8acf50bf7bb
implemented a simple MilityExpenditure counting
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
84
diff
changeset
|
1238 # dir : 'ltr', |
a8acf50bf7bb
implemented a simple MilityExpenditure counting
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
84
diff
changeset
|
1239 # id : "default", |
a8acf50bf7bb
implemented a simple MilityExpenditure counting
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
84
diff
changeset
|
1240 # maxValue : 367, |
a8acf50bf7bb
implemented a simple MilityExpenditure counting
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
84
diff
changeset
|
1241 # overcharge : 0, |
a8acf50bf7bb
implemented a simple MilityExpenditure counting
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
84
diff
changeset
|
1242 # iniValue : 367, |
a8acf50bf7bb
implemented a simple MilityExpenditure counting
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
84
diff
changeset
|
1243 # bg : "sliderbg", |
a8acf50bf7bb
implemented a simple MilityExpenditure counting
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
84
diff
changeset
|
1244 # thumb : "sliderthumb", |
a8acf50bf7bb
implemented a simple MilityExpenditure counting
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
84
diff
changeset
|
1245 # topConstraint: -10, |
a8acf50bf7bb
implemented a simple MilityExpenditure counting
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
84
diff
changeset
|
1246 # bottomConstraint: 344, |
a8acf50bf7bb
implemented a simple MilityExpenditure counting
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
84
diff
changeset
|
1247 # bg_value : "actualValue", |
a8acf50bf7bb
implemented a simple MilityExpenditure counting
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
84
diff
changeset
|
1248 # bg_overcharge : "overcharge", |
a8acf50bf7bb
implemented a simple MilityExpenditure counting
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
84
diff
changeset
|
1249 # textfield:"inputWorkers" |
a8acf50bf7bb
implemented a simple MilityExpenditure counting
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
84
diff
changeset
|
1250 # }); |
a8acf50bf7bb
implemented a simple MilityExpenditure counting
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
84
diff
changeset
|
1251 |
a8acf50bf7bb
implemented a simple MilityExpenditure counting
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
84
diff
changeset
|
1252 # create_slider({ |
a8acf50bf7bb
implemented a simple MilityExpenditure counting
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
84
diff
changeset
|
1253 # dir : 'ltr', |
a8acf50bf7bb
implemented a simple MilityExpenditure counting
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
84
diff
changeset
|
1254 # id : "default", |
a8acf50bf7bb
implemented a simple MilityExpenditure counting
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
84
diff
changeset
|
1255 # maxValue : 367, |
a8acf50bf7bb
implemented a simple MilityExpenditure counting
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
84
diff
changeset
|
1256 # overcharge : 0, |
a8acf50bf7bb
implemented a simple MilityExpenditure counting
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
84
diff
changeset
|
1257 # iniValue : 367, |
a8acf50bf7bb
implemented a simple MilityExpenditure counting
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
84
diff
changeset
|
1258 # bg : "sliderbg", |
a8acf50bf7bb
implemented a simple MilityExpenditure counting
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
84
diff
changeset
|
1259 # thumb : "sliderthumb", |
a8acf50bf7bb
implemented a simple MilityExpenditure counting
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
84
diff
changeset
|
1260 # topConstraint: -10, |
a8acf50bf7bb
implemented a simple MilityExpenditure counting
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
84
diff
changeset
|
1261 # bottomConstraint: 344, |
a8acf50bf7bb
implemented a simple MilityExpenditure counting
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
84
diff
changeset
|
1262 # bg_value : "actualValue", |
a8acf50bf7bb
implemented a simple MilityExpenditure counting
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
84
diff
changeset
|
1263 # bg_overcharge : "overcharge", |
a8acf50bf7bb
implemented a simple MilityExpenditure counting
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
84
diff
changeset
|
1264 # textfield:"inputWorkers" |
a8acf50bf7bb
implemented a simple MilityExpenditure counting
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
84
diff
changeset
|
1265 # }); |
a8acf50bf7bb
implemented a simple MilityExpenditure counting
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
84
diff
changeset
|
1266 |
a8acf50bf7bb
implemented a simple MilityExpenditure counting
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
84
diff
changeset
|
1267 Carp::carp(sprintf("Suggested HR palnning - produce: %s wood %s special %s\n", $produceworkers, int($freePeople*0.3), int($freePeople*0.7))); |
84
2c6c219dc3ff
fixed the checkCity function, implemneted a human resources palnning function.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
83
diff
changeset
|
1268 } |
2c6c219dc3ff
fixed the checkCity function, implemneted a human resources palnning function.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
83
diff
changeset
|
1269 |
9
ae412d1f7761
added logout function.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
8
diff
changeset
|
1270 sub logout |
ae412d1f7761
added logout function.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
8
diff
changeset
|
1271 { |
ae412d1f7761
added logout function.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
8
diff
changeset
|
1272 my $self = shift; |
ae412d1f7761
added logout function.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
8
diff
changeset
|
1273 $self->{mech}->get(sprintf('http://%s/index.php?action=loginAvatar&function=logout', $self->{server})); |
ae412d1f7761
added logout function.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
8
diff
changeset
|
1274 } |
ae412d1f7761
added logout function.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
8
diff
changeset
|
1275 |
0
abaee7064429
new scanning prototype.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
diff
changeset
|
1276 sub login |
abaee7064429
new scanning prototype.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
diff
changeset
|
1277 { |
abaee7064429
new scanning prototype.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
diff
changeset
|
1278 my $self = shift; |
abaee7064429
new scanning prototype.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
diff
changeset
|
1279 |
abaee7064429
new scanning prototype.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
diff
changeset
|
1280 my $res = $self->{mech}->post(sprintf("http://%s/index.php?action=loginAvatar&function=login", $self->{server}), [ |
abaee7064429
new scanning prototype.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
diff
changeset
|
1281 name => $self->{user}, |
abaee7064429
new scanning prototype.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
diff
changeset
|
1282 password => $self->{pass}, |
abaee7064429
new scanning prototype.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
diff
changeset
|
1283 ]); |
79
9d92e8c12f58
rewrited the code in XPath.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
75
diff
changeset
|
1284 |
82
82acbba33b97
fixed the build function.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
81
diff
changeset
|
1285 my @cities = Ikariam::Extractor->new(content => $res->content)->find('//option[@class="avatarCities coords"]/@value'); |
0
abaee7064429
new scanning prototype.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
diff
changeset
|
1286 |
82
82acbba33b97
fixed the build function.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
81
diff
changeset
|
1287 if($#cities<0) { |
82acbba33b97
fixed the build function.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
81
diff
changeset
|
1288 die ("login failed\n"); |
82acbba33b97
fixed the build function.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
81
diff
changeset
|
1289 } |
82acbba33b97
fixed the build function.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
81
diff
changeset
|
1290 foreach(@cities) { |
82acbba33b97
fixed the build function.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
81
diff
changeset
|
1291 $self->{'cities'}->{$_} = {}; |
183
2362c8c8909e
implemented military builder.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
174
diff
changeset
|
1292 $self->{'cities'}->{$_}->{id} = $_; |
0
abaee7064429
new scanning prototype.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
diff
changeset
|
1293 } |
abaee7064429
new scanning prototype.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
diff
changeset
|
1294 } |
abaee7064429
new scanning prototype.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
diff
changeset
|
1295 |
abaee7064429
new scanning prototype.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
diff
changeset
|
1296 |
abaee7064429
new scanning prototype.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
diff
changeset
|
1297 1; |