annotate agent.pl @ 199:b33c8dbe9b04

fixed is_any_corruption
author "Rex Tsai <chihchun@kalug.linux.org.tw>"
date Mon, 03 Nov 2008 12:00:54 +0800
parents 2dfeb4371db7
children eec013e81fb0
rev   line source
52
d2ac1e198ce4 implement a new agent based on Decision Tree (Decision::ParseTree)
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
diff changeset
1 #!/usr/bin/perl
d2ac1e198ce4 implement a new agent based on Decision Tree (Decision::ParseTree)
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
diff changeset
2
d2ac1e198ce4 implement a new agent based on Decision Tree (Decision::ParseTree)
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
diff changeset
3 use strict;
d2ac1e198ce4 implement a new agent based on Decision Tree (Decision::ParseTree)
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
diff changeset
4 use Ikariam;
d2ac1e198ce4 implement a new agent based on Decision Tree (Decision::ParseTree)
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
diff changeset
5 use Data::Dumper;
d2ac1e198ce4 implement a new agent based on Decision Tree (Decision::ParseTree)
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
diff changeset
6 use Decision::ParseTree q{ParseTree};
84
2c6c219dc3ff fixed the checkCity function, implemneted a human resources palnning function.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents: 82
diff changeset
7 use YAML qw/LoadFile Dump DumpFile/;
52
d2ac1e198ce4 implement a new agent based on Decision Tree (Decision::ParseTree)
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
diff changeset
8
d2ac1e198ce4 implement a new agent based on Decision Tree (Decision::ParseTree)
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
diff changeset
9 package Ikariam::Cities::Rules;
d2ac1e198ce4 implement a new agent based on Decision Tree (Decision::ParseTree)
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
diff changeset
10 use strict;
d2ac1e198ce4 implement a new agent based on Decision Tree (Decision::ParseTree)
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
diff changeset
11 use Data::Dumper;
d2ac1e198ce4 implement a new agent based on Decision Tree (Decision::ParseTree)
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
diff changeset
12
d2ac1e198ce4 implement a new agent based on Decision Tree (Decision::ParseTree)
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
diff changeset
13 sub new {
81
d57920014cb4 split buliding.yaml to city.yaml and overall.yaml
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents: 80
diff changeset
14 my ( $class, $i ) = @_;
d57920014cb4 split buliding.yaml to city.yaml and overall.yaml
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents: 80
diff changeset
15 my $self = {
d57920014cb4 split buliding.yaml to city.yaml and overall.yaml
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents: 80
diff changeset
16 ikariam => $i,
d57920014cb4 split buliding.yaml to city.yaml and overall.yaml
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents: 80
diff changeset
17 };
52
d2ac1e198ce4 implement a new agent based on Decision Tree (Decision::ParseTree)
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
diff changeset
18 return bless $self, $class;
d2ac1e198ce4 implement a new agent based on Decision Tree (Decision::ParseTree)
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
diff changeset
19 }
d2ac1e198ce4 implement a new agent based on Decision Tree (Decision::ParseTree)
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
diff changeset
20
67
6eccb3a95df5 refiended the research of tech tree, and added many todos
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents: 59
diff changeset
21 sub is_attacked {
52
d2ac1e198ce4 implement a new agent based on Decision Tree (Decision::ParseTree)
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
diff changeset
22 my ($self, $city) = @_;
144
9fb18f3d6e26 added warning dialog for attacks
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents: 139
diff changeset
23
81
d57920014cb4 split buliding.yaml to city.yaml and overall.yaml
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents: 80
diff changeset
24 return ($self->{'ikariam'}->{'military'}->{attacks} > 0 ) ? 1 : 0;
52
d2ac1e198ce4 implement a new agent based on Decision Tree (Decision::ParseTree)
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
diff changeset
25 }
d2ac1e198ce4 implement a new agent based on Decision Tree (Decision::ParseTree)
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
diff changeset
26
d2ac1e198ce4 implement a new agent based on Decision Tree (Decision::ParseTree)
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
diff changeset
27 sub is_constructing {
d2ac1e198ce4 implement a new agent based on Decision Tree (Decision::ParseTree)
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
diff changeset
28 my ($self, $city) = @_;
d2ac1e198ce4 implement a new agent based on Decision Tree (Decision::ParseTree)
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
diff changeset
29 return ($city->{construction} > 0 ) ? 1 : 0;
d2ac1e198ce4 implement a new agent based on Decision Tree (Decision::ParseTree)
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
diff changeset
30 }
d2ac1e198ce4 implement a new agent based on Decision Tree (Decision::ParseTree)
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
diff changeset
31
d2ac1e198ce4 implement a new agent based on Decision Tree (Decision::ParseTree)
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
diff changeset
32 sub is_wall_enough {
d2ac1e198ce4 implement a new agent based on Decision Tree (Decision::ParseTree)
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
diff changeset
33 my ($self, $city) = @_;
74
27b16506231f improved the tech trees
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents: 72
diff changeset
34 # http://ikariam.wikia.com/wiki/Wall_Defense
81
d57920014cb4 split buliding.yaml to city.yaml and overall.yaml
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents: 80
diff changeset
35 # Basic rule - the wall level must equale or large then townHall level.
52
d2ac1e198ce4 implement a new agent based on Decision Tree (Decision::ParseTree)
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
diff changeset
36 return ($city->{buildings}->{wall} >= $city->{buildings}->{townHall} ? 1 : 0);
d2ac1e198ce4 implement a new agent based on Decision Tree (Decision::ParseTree)
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
diff changeset
37 }
d2ac1e198ce4 implement a new agent based on Decision Tree (Decision::ParseTree)
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
diff changeset
38
d2ac1e198ce4 implement a new agent based on Decision Tree (Decision::ParseTree)
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
diff changeset
39 sub is_space_enough {
d2ac1e198ce4 implement a new agent based on Decision Tree (Decision::ParseTree)
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
diff changeset
40 my ($self, $city) = @_;
137
362184763c04 added comments and added new research (greek fire)
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents: 93
diff changeset
41 # The maximum town hall is level 20, then we build new town
89
86402d28544f stop upgrade townHall after the level is 20.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents: 87
diff changeset
42 return 1 if($city->{buildings}->{townHall} >= 20);
137
362184763c04 added comments and added new research (greek fire)
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents: 93
diff changeset
43 # TODO 應該以 成長率 * 升級所需時間計算
362184763c04 added comments and added new research (greek fire)
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents: 93
diff changeset
44 # 6 hours earlier, we upgrade the twonHall.
362184763c04 added comments and added new research (greek fire)
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents: 93
diff changeset
45 return ($city->{space}->{total} <= ($city->{space}->{occupied} + ($city->{growth}*6)) ? 0 : 1)
52
d2ac1e198ce4 implement a new agent based on Decision Tree (Decision::ParseTree)
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
diff changeset
46 }
d2ac1e198ce4 implement a new agent based on Decision Tree (Decision::ParseTree)
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
diff changeset
47
192
d6dc50b64f06 rules to fix corruption
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents: 183
diff changeset
48 sub is_warehouse_enougn_for_governorsresidence {
d6dc50b64f06 rules to fix corruption
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents: 183
diff changeset
49 my ($self, $city) = @_;
197
dbdd7dcc91c6 fixed for friendly troop and corruption
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents: 193
diff changeset
50 my @warehouse = (qw/undef undef 0 4 9 16 18 19 20 21 22 23 24 25/);
193
a6a4a48d5fda we don't bulid anything, untill we fix corruption
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents: 192
diff changeset
51 my @cities = keys(%{$self->{ikariam}->{cities}});
192
d6dc50b64f06 rules to fix corruption
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents: 183
diff changeset
52
197
dbdd7dcc91c6 fixed for friendly troop and corruption
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents: 193
diff changeset
53 Carp::carp(sprintf("Required warehouse level %s, current is %s only\n", $warehouse[$#cities], $city->{buildings}->{warehouse}));
199
b33c8dbe9b04 fixed is_any_corruption
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents: 198
diff changeset
54 return 0 if(!defined($city->{buildings}->{warehouse}));
197
dbdd7dcc91c6 fixed for friendly troop and corruption
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents: 193
diff changeset
55 return ($city->{buildings}->{warehouse} > $warehouse[$#cities]) ? 0 : 1;
192
d6dc50b64f06 rules to fix corruption
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents: 183
diff changeset
56 }
d6dc50b64f06 rules to fix corruption
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents: 183
diff changeset
57
52
d2ac1e198ce4 implement a new agent based on Decision Tree (Decision::ParseTree)
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
diff changeset
58 sub is_corruption {
d2ac1e198ce4 implement a new agent based on Decision Tree (Decision::ParseTree)
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
diff changeset
59 my ($self, $city) = @_;
198
2dfeb4371db7 fixed train_navy counting and corruption counting
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents: 197
diff changeset
60 return ($city->{corruption} > 0) ? 1 : 0;
52
d2ac1e198ce4 implement a new agent based on Decision Tree (Decision::ParseTree)
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
diff changeset
61 }
d2ac1e198ce4 implement a new agent based on Decision Tree (Decision::ParseTree)
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
diff changeset
62
193
a6a4a48d5fda we don't bulid anything, untill we fix corruption
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents: 192
diff changeset
63 sub is_any_corruption {
a6a4a48d5fda we don't bulid anything, untill we fix corruption
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents: 192
diff changeset
64 my ($self, $city) = @_;
a6a4a48d5fda we don't bulid anything, untill we fix corruption
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents: 192
diff changeset
65
a6a4a48d5fda we don't bulid anything, untill we fix corruption
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents: 192
diff changeset
66 foreach (keys(%{$self->{ikariam}->{cities}})) {
199
b33c8dbe9b04 fixed is_any_corruption
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents: 198
diff changeset
67 return 1 if ($self->{ikariam}->{cities}->{$_}->{corruption} > 0);
193
a6a4a48d5fda we don't bulid anything, untill we fix corruption
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents: 192
diff changeset
68 }
a6a4a48d5fda we don't bulid anything, untill we fix corruption
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents: 192
diff changeset
69 return 0;
a6a4a48d5fda we don't bulid anything, untill we fix corruption
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents: 192
diff changeset
70 }
a6a4a48d5fda we don't bulid anything, untill we fix corruption
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents: 192
diff changeset
71
59
b40f87f16263 fixed a typo.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents: 58
diff changeset
72 sub is_happiness {
52
d2ac1e198ce4 implement a new agent based on Decision Tree (Decision::ParseTree)
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
diff changeset
73 my ($self, $city) = @_;
137
362184763c04 added comments and added new research (greek fire)
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents: 93
diff changeset
74
139
3bbb1e559e21 we are happy when the city level is more then 20
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents: 137
diff changeset
75 return ($city->{growth} >= 5 ? 1 : 0)
3bbb1e559e21 we are happy when the city level is more then 20
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents: 137
diff changeset
76 if($city->{buildings}->{townHall} <= 10);
137
362184763c04 added comments and added new research (greek fire)
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents: 93
diff changeset
77
139
3bbb1e559e21 we are happy when the city level is more then 20
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents: 137
diff changeset
78 return 1 if($city->{buildings}->{townHall} >= 20);
137
362184763c04 added comments and added new research (greek fire)
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents: 93
diff changeset
79
139
3bbb1e559e21 we are happy when the city level is more then 20
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents: 137
diff changeset
80 return ($city->{happiness} >= 2 ? 1 : 0);
52
d2ac1e198ce4 implement a new agent based on Decision Tree (Decision::ParseTree)
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
diff changeset
81 }
d2ac1e198ce4 implement a new agent based on Decision Tree (Decision::ParseTree)
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
diff changeset
82
173
e8a244ce5a1d update the tavern setting
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents: 152
diff changeset
83 sub is_tavern_available {
e8a244ce5a1d update the tavern setting
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents: 152
diff changeset
84 my ($self, $city) = @_;
e8a244ce5a1d update the tavern setting
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents: 152
diff changeset
85 return (defined($city->{buildings}->{tavern}) ? 1 : 0);
e8a244ce5a1d update the tavern setting
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents: 152
diff changeset
86 }
e8a244ce5a1d update the tavern setting
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents: 152
diff changeset
87
e8a244ce5a1d update the tavern setting
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents: 152
diff changeset
88 sub is_bacchanal {
e8a244ce5a1d update the tavern setting
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents: 152
diff changeset
89 my ($self, $city) = @_;
e8a244ce5a1d update the tavern setting
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents: 152
diff changeset
90 return ($city->{tavern}->{maxValue} == $city->{tavern}->{iniValue} ? 1 : 0);
e8a244ce5a1d update the tavern setting
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents: 152
diff changeset
91 }
e8a244ce5a1d update the tavern setting
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents: 152
diff changeset
92
72
2af91e80353e fixed a typo in is_space_enough, and fixed the rules format.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents: 67
diff changeset
93 sub is_warehouse_enough {
52
d2ac1e198ce4 implement a new agent based on Decision Tree (Decision::ParseTree)
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
diff changeset
94 my ($self, $city) = @_;
d2ac1e198ce4 implement a new agent based on Decision Tree (Decision::ParseTree)
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
diff changeset
95 # TODO 以速率計算容納率
d2ac1e198ce4 implement a new agent based on Decision Tree (Decision::ParseTree)
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
diff changeset
96 return 1;
d2ac1e198ce4 implement a new agent based on Decision Tree (Decision::ParseTree)
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
diff changeset
97 }
d2ac1e198ce4 implement a new agent based on Decision Tree (Decision::ParseTree)
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
diff changeset
98
54
2d3c394b7940 rules for build new building and buy transporters
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents: 52
diff changeset
99 sub is_gold_enoughforcargo {
2d3c394b7940 rules for build new building and buy transporters
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents: 52
diff changeset
100 my ($self, $city) = @_;
2d3c394b7940 rules for build new building and buy transporters
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents: 52
diff changeset
101 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/;
2d3c394b7940 rules for build new building and buy transporters
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents: 52
diff changeset
102
2d3c394b7940 rules for build new building and buy transporters
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents: 52
diff changeset
103 if($city->{resources}->{gold} >= ($cargoCost[$city->{transporters}->{sum}]*5)) {
2d3c394b7940 rules for build new building and buy transporters
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents: 52
diff changeset
104 return 1;
2d3c394b7940 rules for build new building and buy transporters
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents: 52
diff changeset
105 } else {
2d3c394b7940 rules for build new building and buy transporters
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents: 52
diff changeset
106 return 0;
2d3c394b7940 rules for build new building and buy transporters
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents: 52
diff changeset
107 }
2d3c394b7940 rules for build new building and buy transporters
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents: 52
diff changeset
108 }
2d3c394b7940 rules for build new building and buy transporters
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents: 52
diff changeset
109
55
ff00d108e955 check resources for build_townHall
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents: 54
diff changeset
110 sub is_resource_enoghforHall {
ff00d108e955 check resources for build_townHall
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents: 54
diff changeset
111 my ($self, $city) = @_;
ff00d108e955 check resources for build_townHall
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents: 54
diff changeset
112 my @wood = qw/udnef 0 70 98 65 129 236 402 594 849 1176 1586 2101 3208 4937 7171 10139 14537 18420 22896 28047 33934 40623 48017 56511 226044 452088 904176 1808352 3616704 7233408 14466816 28933632/;
ff00d108e955 check resources for build_townHall
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents: 54
diff changeset
113 my @marble = qw/undef 0 0 17 28 66 95 156 243 406 579 799 1348 2124 2951 4409 6461 8187 10176 12466 15082 18055 21381 25116 100464 200928 401856 803712 1607424 3214848 6429696 12859392/;
ff00d108e955 check resources for build_townHall
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents: 54
diff changeset
114
ff00d108e955 check resources for build_townHall
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents: 54
diff changeset
115 my $level = $city->{buildings}->{townHall};
56
6e0d5e781949 fixed a typo in agent.pl
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents: 55
diff changeset
116 if($city->{resources}->{wood} >= $wood[$level] && $city->{resources}->{marble} >= $marble[$level] ) {
55
ff00d108e955 check resources for build_townHall
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents: 54
diff changeset
117 return 1;
ff00d108e955 check resources for build_townHall
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents: 54
diff changeset
118 }
56
6e0d5e781949 fixed a typo in agent.pl
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents: 55
diff changeset
119 warn(sprintf("Resource is short for build city hall. wood [%d] marble [%d] ", $wood[$level], $marble[$level]));
55
ff00d108e955 check resources for build_townHall
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents: 54
diff changeset
120 return 0;
ff00d108e955 check resources for build_townHall
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents: 54
diff changeset
121 }
ff00d108e955 check resources for build_townHall
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents: 54
diff changeset
122
57
9307c559f9bf rule for research expansion
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents: 56
diff changeset
123 sub is_expansion_researched {
9307c559f9bf rule for research expansion
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents: 56
diff changeset
124 my ($self, $city) = @_;
81
d57920014cb4 split buliding.yaml to city.yaml and overall.yaml
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents: 80
diff changeset
125 # $self->{'ikariam'}->
d57920014cb4 split buliding.yaml to city.yaml and overall.yaml
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents: 80
diff changeset
126 return (defined($self->{'ikariam'}->{research}->{1030}) ? 1 : 0);
57
9307c559f9bf rule for research expansion
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents: 56
diff changeset
127 }
9307c559f9bf rule for research expansion
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents: 56
diff changeset
128
74
27b16506231f improved the tech trees
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents: 72
diff changeset
129 sub is_culturalexchange_researched {
81
d57920014cb4 split buliding.yaml to city.yaml and overall.yaml
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents: 80
diff changeset
130 my ($self) = @_;
d57920014cb4 split buliding.yaml to city.yaml and overall.yaml
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents: 80
diff changeset
131 return (defined($self->{'ikariam'}->{research}->{1040}) ? 1 : 0);
74
27b16506231f improved the tech trees
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents: 72
diff changeset
132 }
27b16506231f improved the tech trees
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents: 72
diff changeset
133
151
7071116f6ae7 fixed research id of greekfire.
chihchun@debian.org.tw
parents: 150
diff changeset
134 sub is_greekfire_researched {
7071116f6ae7 fixed research id of greekfire.
chihchun@debian.org.tw
parents: 150
diff changeset
135 my ($self) = @_;
7071116f6ae7 fixed research id of greekfire.
chihchun@debian.org.tw
parents: 150
diff changeset
136 return (defined($self->{'ikariam'}->{research}->{1060}) ? 1 : 0);
7071116f6ae7 fixed research id of greekfire.
chihchun@debian.org.tw
parents: 150
diff changeset
137 }
7071116f6ae7 fixed research id of greekfire.
chihchun@debian.org.tw
parents: 150
diff changeset
138
58
46e60bb040ad list down the basic research.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents: 57
diff changeset
139 sub is_wealth_researched {
81
d57920014cb4 split buliding.yaml to city.yaml and overall.yaml
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents: 80
diff changeset
140 my ($self) = @_;
d57920014cb4 split buliding.yaml to city.yaml and overall.yaml
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents: 80
diff changeset
141 return (defined($self->{'ikariam'}->{research}->{2030}) ? 1 : 0);
58
46e60bb040ad list down the basic research.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents: 57
diff changeset
142 }
46e60bb040ad list down the basic research.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents: 57
diff changeset
143
74
27b16506231f improved the tech trees
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents: 72
diff changeset
144 sub is_winepress_researched {
81
d57920014cb4 split buliding.yaml to city.yaml and overall.yaml
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents: 80
diff changeset
145 my ($self) = @_;
d57920014cb4 split buliding.yaml to city.yaml and overall.yaml
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents: 80
diff changeset
146 return (defined($self->{'ikariam'}->{research}->{2040}) ? 1 : 0);
58
46e60bb040ad list down the basic research.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents: 57
diff changeset
147 }
46e60bb040ad list down the basic research.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents: 57
diff changeset
148
59
b40f87f16263 fixed a typo.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents: 58
diff changeset
149 sub is_paper_researched {
81
d57920014cb4 split buliding.yaml to city.yaml and overall.yaml
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents: 80
diff changeset
150 my ($self) = @_;
d57920014cb4 split buliding.yaml to city.yaml and overall.yaml
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents: 80
diff changeset
151 return (defined($self->{'ikariam'}->{research}->{3020}) ? 1 : 0);
58
46e60bb040ad list down the basic research.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents: 57
diff changeset
152 }
46e60bb040ad list down the basic research.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents: 57
diff changeset
153
74
27b16506231f improved the tech trees
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents: 72
diff changeset
154 sub is_espionage_researched {
81
d57920014cb4 split buliding.yaml to city.yaml and overall.yaml
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents: 80
diff changeset
155 my ($self) = @_;
d57920014cb4 split buliding.yaml to city.yaml and overall.yaml
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents: 80
diff changeset
156 return (defined($self->{'ikariam'}->{research}->{3030}) ? 1 : 0);
74
27b16506231f improved the tech trees
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents: 72
diff changeset
157 }
27b16506231f improved the tech trees
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents: 72
diff changeset
158
27b16506231f improved the tech trees
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents: 72
diff changeset
159 sub is_invention_researched {
81
d57920014cb4 split buliding.yaml to city.yaml and overall.yaml
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents: 80
diff changeset
160 my ($self) = @_;
d57920014cb4 split buliding.yaml to city.yaml and overall.yaml
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents: 80
diff changeset
161 return (defined($self->{'ikariam'}->{research}->{3040}) ? 1 : 0);
74
27b16506231f improved the tech trees
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents: 72
diff changeset
162 }
27b16506231f improved the tech trees
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents: 72
diff changeset
163
152
60a09758a885 added research for Museum
chihchun@debian.org.tw
parents: 151
diff changeset
164 sub is_culturalexchange_researched {
60a09758a885 added research for Museum
chihchun@debian.org.tw
parents: 151
diff changeset
165 my ($self) = @_;
60a09758a885 added research for Museum
chihchun@debian.org.tw
parents: 151
diff changeset
166 return (defined($self->{'ikariam'}->{research}->{3060}) ? 1 : 0);
60a09758a885 added research for Museum
chihchun@debian.org.tw
parents: 151
diff changeset
167 }
60a09758a885 added research for Museum
chihchun@debian.org.tw
parents: 151
diff changeset
168
74
27b16506231f improved the tech trees
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents: 72
diff changeset
169 sub is_professionalarmy_researched {
81
d57920014cb4 split buliding.yaml to city.yaml and overall.yaml
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents: 80
diff changeset
170 my ($self) = @_;
d57920014cb4 split buliding.yaml to city.yaml and overall.yaml
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents: 80
diff changeset
171 return (defined($self->{'ikariam'}->{research}->{4030}) ? 1 : 0);
74
27b16506231f improved the tech trees
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents: 72
diff changeset
172 }
27b16506231f improved the tech trees
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents: 72
diff changeset
173
52
d2ac1e198ce4 implement a new agent based on Decision Tree (Decision::ParseTree)
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
diff changeset
174 sub is_drydock_researched {
81
d57920014cb4 split buliding.yaml to city.yaml and overall.yaml
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents: 80
diff changeset
175 my ($self) = @_;
d57920014cb4 split buliding.yaml to city.yaml and overall.yaml
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents: 80
diff changeset
176 return (defined($self->{'ikariam'}->{research}->{4010}) ? 1 : 0);
52
d2ac1e198ce4 implement a new agent based on Decision Tree (Decision::ParseTree)
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
diff changeset
177 }
d2ac1e198ce4 implement a new agent based on Decision Tree (Decision::ParseTree)
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
diff changeset
178
67
6eccb3a95df5 refiended the research of tech tree, and added many todos
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents: 59
diff changeset
179 sub is_barracks_level_enough {
6eccb3a95df5 refiended the research of tech tree, and added many todos
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents: 59
diff changeset
180 my ($self, $city) = @_;
74
27b16506231f improved the tech trees
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents: 72
diff changeset
181 return 0 if(!defined($city->{buildings}->{barracks}));
183
2362c8c8909e implemented military builder.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents: 173
diff changeset
182 if($city->{buildings}->{townHall} >= 10) {
2362c8c8909e implemented military builder.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents: 173
diff changeset
183 # optimum is 5
2362c8c8909e implemented military builder.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents: 173
diff changeset
184 return ($city->{buildings}->{barracks} >= 5 ? 1 : 0);
2362c8c8909e implemented military builder.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents: 173
diff changeset
185 } else {
2362c8c8909e implemented military builder.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents: 173
diff changeset
186 # 方陣兵需要 level 4
2362c8c8909e implemented military builder.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents: 173
diff changeset
187 return ($city->{buildings}->{barracks} >= 4 ? 1 : 0);
2362c8c8909e implemented military builder.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents: 173
diff changeset
188 }
67
6eccb3a95df5 refiended the research of tech tree, and added many todos
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents: 59
diff changeset
189 }
6eccb3a95df5 refiended the research of tech tree, and added many todos
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents: 59
diff changeset
190
6eccb3a95df5 refiended the research of tech tree, and added many todos
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents: 59
diff changeset
191 sub is_shipyard_level_enough {
6eccb3a95df5 refiended the research of tech tree, and added many todos
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents: 59
diff changeset
192 my ($self, $city) = @_;
74
27b16506231f improved the tech trees
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents: 72
diff changeset
193 return 0 if(!defined($city->{buildings}->{shipyard}));
183
2362c8c8909e implemented military builder.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents: 173
diff changeset
194 if ($self->is_greekfire_researched() eq 1) {
2362c8c8909e implemented military builder.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents: 173
diff changeset
195 return ($city->{buildings}->{shipyard} >= 5 ? 1 : 0);
2362c8c8909e implemented military builder.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents: 173
diff changeset
196 } else {
2362c8c8909e implemented military builder.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents: 173
diff changeset
197 return ($city->{buildings}->{shipyard} >= 3 ? 1 : 0);
2362c8c8909e implemented military builder.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents: 173
diff changeset
198 }
67
6eccb3a95df5 refiended the research of tech tree, and added many todos
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents: 59
diff changeset
199 }
6eccb3a95df5 refiended the research of tech tree, and added many todos
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents: 59
diff changeset
200
52
d2ac1e198ce4 implement a new agent based on Decision Tree (Decision::ParseTree)
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
diff changeset
201 sub rule_engagement
d2ac1e198ce4 implement a new agent based on Decision Tree (Decision::ParseTree)
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
diff changeset
202 {
d2ac1e198ce4 implement a new agent based on Decision Tree (Decision::ParseTree)
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
diff changeset
203 my ($self, $city) = @_;
81
d57920014cb4 split buliding.yaml to city.yaml and overall.yaml
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents: 80
diff changeset
204 # TODO
52
d2ac1e198ce4 implement a new agent based on Decision Tree (Decision::ParseTree)
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
diff changeset
205 # 計算距離, 可搶劫比例, 是否有聯盟, 軍事分數 (win rate)
d2ac1e198ce4 implement a new agent based on Decision Tree (Decision::ParseTree)
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
diff changeset
206 }
d2ac1e198ce4 implement a new agent based on Decision Tree (Decision::ParseTree)
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
diff changeset
207
d2ac1e198ce4 implement a new agent based on Decision Tree (Decision::ParseTree)
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
diff changeset
208 sub rule_resource
d2ac1e198ce4 implement a new agent based on Decision Tree (Decision::ParseTree)
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
diff changeset
209 {
81
d57920014cb4 split buliding.yaml to city.yaml and overall.yaml
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents: 80
diff changeset
210 # TODO
52
d2ac1e198ce4 implement a new agent based on Decision Tree (Decision::ParseTree)
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
diff changeset
211 }
86
a8acf50bf7bb implemented a simple MilityExpenditure counting
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents: 84
diff changeset
212
183
2362c8c8909e implemented military builder.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents: 173
diff changeset
213 sub is_shipyard_upgrading {
2362c8c8909e implemented military builder.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents: 173
diff changeset
214 my ($self, $city) = @_;
193
a6a4a48d5fda we don't bulid anything, untill we fix corruption
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents: 192
diff changeset
215 return $self->{'ikariam'}->is_shipyard_upgrading($city->{id});
183
2362c8c8909e implemented military builder.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents: 173
diff changeset
216 }
2362c8c8909e implemented military builder.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents: 173
diff changeset
217
2362c8c8909e implemented military builder.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents: 173
diff changeset
218 sub is_navy_trainning {
2362c8c8909e implemented military builder.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents: 173
diff changeset
219 my ($self, $city) = @_;
193
a6a4a48d5fda we don't bulid anything, untill we fix corruption
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents: 192
diff changeset
220 return $self->{'ikariam'}->is_navy_trainning($city->{id});
183
2362c8c8909e implemented military builder.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents: 173
diff changeset
221 }
2362c8c8909e implemented military builder.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents: 173
diff changeset
222
2362c8c8909e implemented military builder.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents: 173
diff changeset
223 sub train_navy {
2362c8c8909e implemented military builder.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents: 173
diff changeset
224 my ($self, $city) = @_;
2362c8c8909e implemented military builder.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents: 173
diff changeset
225 my $cityId = $city->{id};
2362c8c8909e implemented military builder.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents: 173
diff changeset
226 # TODO, 依照升級比例算 CP 值最高
2362c8c8909e implemented military builder.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents: 173
diff changeset
227 if($self->is_greekfire_researched() eq 1 && $city->{buildings}->{shipyard} >= 5) {
2362c8c8909e implemented military builder.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents: 173
diff changeset
228 # ok, we can build Flamethrower.
198
2dfeb4371db7 fixed train_navy counting and corruption counting
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents: 197
diff changeset
229 if(defined($city->{'fleet'}->{Flamethrower}) && ($city->{'fleet'}->{Flamethrower} > 0)
2dfeb4371db7 fixed train_navy counting and corruption counting
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents: 197
diff changeset
230 && ($city->{'fleet'}->{BallistaShip} / $city->{'fleet'}->{Flamethrower}) <= (1.5/1)) {
183
2362c8c8909e implemented military builder.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents: 173
diff changeset
231 return 213; # 強弩船
2362c8c8909e implemented military builder.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents: 173
diff changeset
232 } else {
2362c8c8909e implemented military builder.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents: 173
diff changeset
233 return 211; # 噴火船
2362c8c8909e implemented military builder.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents: 173
diff changeset
234 }
2362c8c8909e implemented military builder.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents: 173
diff changeset
235 } else {
2362c8c8909e implemented military builder.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents: 173
diff changeset
236 return 213; # 強弩船
2362c8c8909e implemented military builder.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents: 173
diff changeset
237 }
2362c8c8909e implemented military builder.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents: 173
diff changeset
238 }
2362c8c8909e implemented military builder.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents: 173
diff changeset
239
2362c8c8909e implemented military builder.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents: 173
diff changeset
240 sub is_barracks_upgrading {
2362c8c8909e implemented military builder.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents: 173
diff changeset
241 my ($self, $city) = @_;
197
dbdd7dcc91c6 fixed for friendly troop and corruption
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents: 193
diff changeset
242 return $self->{ikariam}->is_barracks_upgrading($city->{id});
183
2362c8c8909e implemented military builder.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents: 173
diff changeset
243 }
2362c8c8909e implemented military builder.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents: 173
diff changeset
244
2362c8c8909e implemented military builder.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents: 173
diff changeset
245 sub is_army_trainning {
2362c8c8909e implemented military builder.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents: 173
diff changeset
246 my ($self, $city) = @_;
193
a6a4a48d5fda we don't bulid anything, untill we fix corruption
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents: 192
diff changeset
247 return $self->{ikariam}->is_army_trainning($city->{id});
183
2362c8c8909e implemented military builder.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents: 173
diff changeset
248 }
2362c8c8909e implemented military builder.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents: 173
diff changeset
249
2362c8c8909e implemented military builder.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents: 173
diff changeset
250 sub train_army {
2362c8c8909e implemented military builder.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents: 173
diff changeset
251 my ($self, $city) = @_;
2362c8c8909e implemented military builder.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents: 173
diff changeset
252 my $cityId = $city->{id};
2362c8c8909e implemented military builder.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents: 173
diff changeset
253
2362c8c8909e implemented military builder.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents: 173
diff changeset
254 # TODO, 依照升級比例算 CP 值最高
2362c8c8909e implemented military builder.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents: 173
diff changeset
255 my $assault = 'Swordsman';
2362c8c8909e implemented military builder.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents: 173
diff changeset
256 my $resistance = 'Phalanx';
2362c8c8909e implemented military builder.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents: 173
diff changeset
257
2362c8c8909e implemented military builder.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents: 173
diff changeset
258 # ok, we can build Flamethrower.
2362c8c8909e implemented military builder.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents: 173
diff changeset
259 if(($city->{'army'}->{$assault} / $city->{'army'}->{$resistance}) <= (2/1)) {
2362c8c8909e implemented military builder.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents: 173
diff changeset
260 return 302; # Swordsman
2362c8c8909e implemented military builder.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents: 173
diff changeset
261 } else {
2362c8c8909e implemented military builder.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents: 173
diff changeset
262 return 303; # Phalanx
2362c8c8909e implemented military builder.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents: 173
diff changeset
263 }
2362c8c8909e implemented military builder.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents: 173
diff changeset
264 }
2362c8c8909e implemented military builder.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents: 173
diff changeset
265
87
4c82cf844aa8 counting navy expenditure
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents: 86
diff changeset
266 # navy
183
2362c8c8909e implemented military builder.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents: 173
diff changeset
267 sub is_navyExpenditure_available
87
4c82cf844aa8 counting navy expenditure
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents: 86
diff changeset
268 {
197
dbdd7dcc91c6 fixed for friendly troop and corruption
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents: 193
diff changeset
269 my ($self, $city) = @_;
dbdd7dcc91c6 fixed for friendly troop and corruption
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents: 193
diff changeset
270 my $cityId = $city->{id};
183
2362c8c8909e implemented military builder.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents: 173
diff changeset
271
87
4c82cf844aa8 counting navy expenditure
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents: 86
diff changeset
272 # move this to somewhere else.
4c82cf844aa8 counting navy expenditure
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents: 86
diff changeset
273 my $workersRatio = {
4c82cf844aa8 counting navy expenditure
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents: 86
diff changeset
274 'citizens' => 0.4,
4c82cf844aa8 counting navy expenditure
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents: 86
diff changeset
275 'specialworkers' => 0.3,
4c82cf844aa8 counting navy expenditure
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents: 86
diff changeset
276 'woodworkers' => 0.7,
4c82cf844aa8 counting navy expenditure
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents: 86
diff changeset
277 };
4c82cf844aa8 counting navy expenditure
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents: 86
diff changeset
278
4c82cf844aa8 counting navy expenditure
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents: 86
diff changeset
279 my $currentCost = $self->{'ikariam'}->getNavyExpenditure($cityId);
4c82cf844aa8 counting navy expenditure
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents: 86
diff changeset
280 my $netincome = $self->{'ikariam'}->getNetIncome($cityId);
4c82cf844aa8 counting navy expenditure
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents: 86
diff changeset
281
4c82cf844aa8 counting navy expenditure
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents: 86
diff changeset
282 # 軍費為 兩成 淨收入
183
2362c8c8909e implemented military builder.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents: 173
diff changeset
283 # 陸軍佔用 0.3
2362c8c8909e implemented military builder.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents: 173
diff changeset
284 # 海軍佔用 0.7
2362c8c8909e implemented military builder.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents: 173
diff changeset
285 my $militaryExpenditure = int($netincome * 0.2 * 0.7);
87
4c82cf844aa8 counting navy expenditure
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents: 86
diff changeset
286
4c82cf844aa8 counting navy expenditure
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents: 86
diff changeset
287 if($currentCost < $militaryExpenditure) {
4c82cf844aa8 counting navy expenditure
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents: 86
diff changeset
288 printf("Current navy expenditure total=%s, affordable %s\n", $currentCost, $militaryExpenditure);
183
2362c8c8909e implemented military builder.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents: 173
diff changeset
289 return 1;
87
4c82cf844aa8 counting navy expenditure
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents: 86
diff changeset
290 }
183
2362c8c8909e implemented military builder.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents: 173
diff changeset
291 return 0;
87
4c82cf844aa8 counting navy expenditure
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents: 86
diff changeset
292 }
4c82cf844aa8 counting navy expenditure
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents: 86
diff changeset
293
4c82cf844aa8 counting navy expenditure
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents: 86
diff changeset
294 # army
183
2362c8c8909e implemented military builder.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents: 173
diff changeset
295 sub is_milityExpenditure_available
86
a8acf50bf7bb implemented a simple MilityExpenditure counting
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents: 84
diff changeset
296 {
197
dbdd7dcc91c6 fixed for friendly troop and corruption
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents: 193
diff changeset
297 my ($self, $city) = @_;
dbdd7dcc91c6 fixed for friendly troop and corruption
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents: 193
diff changeset
298 my $cityId = $city->{id};
dbdd7dcc91c6 fixed for friendly troop and corruption
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents: 193
diff changeset
299
87
4c82cf844aa8 counting navy expenditure
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents: 86
diff changeset
300 # move this to somewhere else.
86
a8acf50bf7bb implemented a simple MilityExpenditure counting
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents: 84
diff changeset
301 my $workersRatio = {
a8acf50bf7bb implemented a simple MilityExpenditure counting
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents: 84
diff changeset
302 'citizens' => 0.4,
a8acf50bf7bb implemented a simple MilityExpenditure counting
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents: 84
diff changeset
303 'specialworkers' => 0.3,
a8acf50bf7bb implemented a simple MilityExpenditure counting
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents: 84
diff changeset
304 'woodworkers' => 0.7,
a8acf50bf7bb implemented a simple MilityExpenditure counting
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents: 84
diff changeset
305 };
a8acf50bf7bb implemented a simple MilityExpenditure counting
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents: 84
diff changeset
306
a8acf50bf7bb implemented a simple MilityExpenditure counting
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents: 84
diff changeset
307 my $currentCost = $self->{'ikariam'}->getMilityExpenditure($cityId);
a8acf50bf7bb implemented a simple MilityExpenditure counting
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents: 84
diff changeset
308 my $netincome = $self->{'ikariam'}->getNetIncome($cityId);
a8acf50bf7bb implemented a simple MilityExpenditure counting
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents: 84
diff changeset
309
a8acf50bf7bb implemented a simple MilityExpenditure counting
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents: 84
diff changeset
310 # 軍費為 兩成 淨收入
183
2362c8c8909e implemented military builder.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents: 173
diff changeset
311 # 陸軍佔用 0.3
2362c8c8909e implemented military builder.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents: 173
diff changeset
312 # 海軍佔用 0.7
2362c8c8909e implemented military builder.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents: 173
diff changeset
313
2362c8c8909e implemented military builder.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents: 173
diff changeset
314 my $militaryExpenditure = int($netincome * 0.2 * 0.3);
86
a8acf50bf7bb implemented a simple MilityExpenditure counting
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents: 84
diff changeset
315
a8acf50bf7bb implemented a simple MilityExpenditure counting
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents: 84
diff changeset
316 if($currentCost < $militaryExpenditure) {
183
2362c8c8909e implemented military builder.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents: 173
diff changeset
317 Carp::carp("Current army expenditure total=%s, affordable %s\n", $currentCost, $militaryExpenditure);
2362c8c8909e implemented military builder.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents: 173
diff changeset
318 return 1;
86
a8acf50bf7bb implemented a simple MilityExpenditure counting
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents: 84
diff changeset
319 }
183
2362c8c8909e implemented military builder.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents: 173
diff changeset
320 return 0;
86
a8acf50bf7bb implemented a simple MilityExpenditure counting
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents: 84
diff changeset
321 }
52
d2ac1e198ce4 implement a new agent based on Decision Tree (Decision::ParseTree)
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
diff changeset
322 1;
d2ac1e198ce4 implement a new agent based on Decision Tree (Decision::ParseTree)
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
diff changeset
323
d2ac1e198ce4 implement a new agent based on Decision Tree (Decision::ParseTree)
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
diff changeset
324
d2ac1e198ce4 implement a new agent based on Decision Tree (Decision::ParseTree)
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
diff changeset
325 package main;
84
2c6c219dc3ff fixed the checkCity function, implemneted a human resources palnning function.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents: 82
diff changeset
326 my $verbose = 1;
81
d57920014cb4 split buliding.yaml to city.yaml and overall.yaml
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents: 80
diff changeset
327
52
d2ac1e198ce4 implement a new agent based on Decision Tree (Decision::ParseTree)
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
diff changeset
328 our $i = new Ikariam($::server, $::user, $::pass);
d2ac1e198ce4 implement a new agent based on Decision Tree (Decision::ParseTree)
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
diff changeset
329 $i->login;
d2ac1e198ce4 implement a new agent based on Decision Tree (Decision::ParseTree)
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
diff changeset
330 my $cities = $i->check;
81
d57920014cb4 split buliding.yaml to city.yaml and overall.yaml
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents: 80
diff changeset
331
d57920014cb4 split buliding.yaml to city.yaml and overall.yaml
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents: 80
diff changeset
332 # Genereic rules for both overall and city level arranagement.
d57920014cb4 split buliding.yaml to city.yaml and overall.yaml
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents: 80
diff changeset
333 my $rules = Ikariam::Cities::Rules->new($i);
d57920014cb4 split buliding.yaml to city.yaml and overall.yaml
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents: 80
diff changeset
334 # blanace resources, arrange defance
d57920014cb4 split buliding.yaml to city.yaml and overall.yaml
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents: 80
diff changeset
335 my $tree = LoadFile('overall.yaml');
183
2362c8c8909e implemented military builder.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents: 173
diff changeset
336 my $decision; $decision->{parse_path} = []; $decision->{parse_answer} = undef;
81
d57920014cb4 split buliding.yaml to city.yaml and overall.yaml
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents: 80
diff changeset
337 my $action = ParseTree($tree, $rules, $decision);
d57920014cb4 split buliding.yaml to city.yaml and overall.yaml
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents: 80
diff changeset
338 triggerAction($action, (keys(%$cities))[0]) if(defined($action));
137
362184763c04 added comments and added new research (greek fire)
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents: 93
diff changeset
339 # print STDERR Dump($decision) if(defined($verbose));
81
d57920014cb4 split buliding.yaml to city.yaml and overall.yaml
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents: 80
diff changeset
340
52
d2ac1e198ce4 implement a new agent based on Decision Tree (Decision::ParseTree)
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
diff changeset
341 # show cities.
d2ac1e198ce4 implement a new agent based on Decision Tree (Decision::ParseTree)
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
diff changeset
342 foreach my $cityId (keys(%$cities)) {
d2ac1e198ce4 implement a new agent based on Decision Tree (Decision::ParseTree)
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
diff changeset
343 printf("%s http://%s/index.php?view=city&id=%d\n",
d2ac1e198ce4 implement a new agent based on Decision Tree (Decision::ParseTree)
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
diff changeset
344 $cities->{$cityId}->{name}, $::server, $cityId);
d2ac1e198ce4 implement a new agent based on Decision Tree (Decision::ParseTree)
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
diff changeset
345 printf("construction: %s\n", $cities->{$cityId}->{construction});
183
2362c8c8909e implemented military builder.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents: 173
diff changeset
346
79
9d92e8c12f58 rewrited the code in XPath.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents: 74
diff changeset
347 foreach my $thing (qw/resources space buildings citizens army fleet/) {
52
d2ac1e198ce4 implement a new agent based on Decision Tree (Decision::ParseTree)
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
diff changeset
348 printf("<%s>\n", uc($thing));
d2ac1e198ce4 implement a new agent based on Decision Tree (Decision::ParseTree)
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
diff changeset
349 foreach my $i (keys(%{$cities->{$cityId}->{$thing}})) {
d2ac1e198ce4 implement a new agent based on Decision Tree (Decision::ParseTree)
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
diff changeset
350 printf("%s %s, ", $i, $cities->{$cityId}->{$thing}->{$i});
d2ac1e198ce4 implement a new agent based on Decision Tree (Decision::ParseTree)
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
diff changeset
351 }
d2ac1e198ce4 implement a new agent based on Decision Tree (Decision::ParseTree)
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
diff changeset
352 print("\n");
d2ac1e198ce4 implement a new agent based on Decision Tree (Decision::ParseTree)
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
diff changeset
353 }
d2ac1e198ce4 implement a new agent based on Decision Tree (Decision::ParseTree)
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
diff changeset
354 print("\n");
86
a8acf50bf7bb implemented a simple MilityExpenditure counting
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents: 84
diff changeset
355
a8acf50bf7bb implemented a simple MilityExpenditure counting
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents: 84
diff changeset
356 # maybe this should be moved to Rules.
84
2c6c219dc3ff fixed the checkCity function, implemneted a human resources palnning function.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents: 82
diff changeset
357 $i->blanceHurmanResource($cityId);
183
2362c8c8909e implemented military builder.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents: 173
diff changeset
358
2362c8c8909e implemented military builder.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents: 173
diff changeset
359 $tree = LoadFile('military.yaml');
2362c8c8909e implemented military builder.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents: 173
diff changeset
360 $cities->{$cityId}->{parse_path} = [];
2362c8c8909e implemented military builder.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents: 173
diff changeset
361 $cities->{$cityId}->{parse_answer} = undef;
2362c8c8909e implemented military builder.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents: 173
diff changeset
362 if (my $action = ParseTree($tree, $rules, $cities->{$cityId})) {
2362c8c8909e implemented military builder.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents: 173
diff changeset
363 triggerAction($action, $cityId);
2362c8c8909e implemented military builder.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents: 173
diff changeset
364 }
2362c8c8909e implemented military builder.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents: 173
diff changeset
365 DumpFile("army-dump.yaml", $cities);
2362c8c8909e implemented military builder.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents: 173
diff changeset
366
81
d57920014cb4 split buliding.yaml to city.yaml and overall.yaml
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents: 80
diff changeset
367 # build and upgrade for cities
d57920014cb4 split buliding.yaml to city.yaml and overall.yaml
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents: 80
diff changeset
368 $tree = LoadFile('city.yaml');
52
d2ac1e198ce4 implement a new agent based on Decision Tree (Decision::ParseTree)
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
diff changeset
369 $cities->{$cityId}->{parse_path} = [];
d2ac1e198ce4 implement a new agent based on Decision Tree (Decision::ParseTree)
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
diff changeset
370 $cities->{$cityId}->{parse_answer} = undef;
183
2362c8c8909e implemented military builder.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents: 173
diff changeset
371 if (my $action = ParseTree($tree, $rules, $cities->{$cityId})) {
52
d2ac1e198ce4 implement a new agent based on Decision Tree (Decision::ParseTree)
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
diff changeset
372 triggerAction($action, $cityId);
d2ac1e198ce4 implement a new agent based on Decision Tree (Decision::ParseTree)
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
diff changeset
373 }
183
2362c8c8909e implemented military builder.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents: 173
diff changeset
374 DumpFile("cities-dump.yaml", $cities);
52
d2ac1e198ce4 implement a new agent based on Decision Tree (Decision::ParseTree)
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
diff changeset
375 }
150
fab1593cadf1 fixed the combat reading issue.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents: 144
diff changeset
376 DumpFile("research-dump.yaml", $i->{'research'});
fab1593cadf1 fixed the combat reading issue.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents: 144
diff changeset
377 DumpFile("military-dump.yaml", $i->{'military'});
52
d2ac1e198ce4 implement a new agent based on Decision Tree (Decision::ParseTree)
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
diff changeset
378
d2ac1e198ce4 implement a new agent based on Decision Tree (Decision::ParseTree)
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
diff changeset
379 $i->logout;
d2ac1e198ce4 implement a new agent based on Decision Tree (Decision::ParseTree)
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
diff changeset
380
d2ac1e198ce4 implement a new agent based on Decision Tree (Decision::ParseTree)
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
diff changeset
381 sub triggerAction {
d2ac1e198ce4 implement a new agent based on Decision Tree (Decision::ParseTree)
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
diff changeset
382 my ($action, $cityId) = @_;
d2ac1e198ce4 implement a new agent based on Decision Tree (Decision::ParseTree)
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
diff changeset
383
d2ac1e198ce4 implement a new agent based on Decision Tree (Decision::ParseTree)
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
diff changeset
384 my ($func, $param) = split(/_/,$action);
81
d57920014cb4 split buliding.yaml to city.yaml and overall.yaml
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents: 80
diff changeset
385 printf('$i->%s("%s", %s);'. "\n", $func, $param, $cityId);
93
73f0a1cafc23 upgrade townHall first, then the wall.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents: 89
diff changeset
386 eval(sprintf('$i->%s("%s", %s);', $func, $param, $cityId));
73f0a1cafc23 upgrade townHall first, then the wall.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents: 89
diff changeset
387 warn $@ if $@;
52
d2ac1e198ce4 implement a new agent based on Decision Tree (Decision::ParseTree)
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
diff changeset
388 }