File Coverage

lib/BalanceOfPower/Constants.pm
Criterion Covered Total %
statement 417 417 100.0
branch n/a
condition n/a
subroutine 139 139 100.0
pod n/a
total 556 556 100.0


line stmt bran cond sub pod time code
1             package BalanceOfPower::Constants;
2             $BalanceOfPower::Constants::VERSION = '0.400105';
3 13     13   46 use strict;
  13         16  
  13         321  
4 13     13   42 use warnings;
  13         11  
  13         303  
5              
6 13     13   41 use base 'Exporter';
  13         16  
  13         1207  
7              
8             #Random init parameters
9 13     13   51 use constant MIN_EXPORT_QUOTE => 30;
  13         13  
  13         685  
10 13     13   45 use constant MAX_EXPORT_QUOTE => 60;
  13         12  
  13         474  
11 13     13   41 use constant MIN_STARTING_TRADEROUTES => 1;
  13         9  
  13         452  
12 13     13   52 use constant MAX_STARTING_TRADEROUTES => 3;
  13         14  
  13         508  
13 13     13   42 use constant MIN_STARTING_PRODUCTION => 20;
  13         12  
  13         472  
14 13     13   64 use constant MAX_STARTING_PRODUCTION => 40;
  13         12  
  13         445  
15 13     13   38 use constant MIN_GOVERNMENT_STRENGTH => 50;
  13         11  
  13         450  
16 13     13   58 use constant MAX_GOVERNMENT_STRENGTH => 100;
  13         14  
  13         466  
17 13     13   43 use constant STARTING_ALLIANCES => 7;
  13         11  
  13         481  
18              
19             #Random parameters
20             #use constant MIN_DELTA_PRODUCTION => -10;
21 13     13   43 use constant MIN_DELTA_PRODUCTION => -3;
  13         9  
  13         440  
22             #use constant MAX_DELTA_PRODUCTION => 10;
23 13     13   41 use constant MAX_DELTA_PRODUCTION => 3;
  13         9  
  13         419  
24 13     13   38 use constant MAX_PRODUCTION => 50;
  13         11  
  13         493  
25 13     13   46 use constant MIN_ADDED_DISORDER => -2;
  13         10  
  13         443  
26 13     13   38 use constant MAX_ADDED_DISORDER => 2;
  13         12  
  13         419  
27 13     13   40 use constant CRISIS_GENERATION_TRIES => 5;
  13         11  
  13         533  
28 13     13   60 use constant CRISIS_GENERATOR_NOACTION_TOKENS => 6;
  13         16  
  13         540  
29              
30             #export costs
31 13     13   42 use constant ADDING_TRADEROUTE_COST => 30;
  13         11  
  13         470  
32 13     13   46 use constant TRADEROUTE_COST => 10;
  13         17  
  13         421  
33 13     13   39 use constant TRADING_QUOTE => 15;
  13         8  
  13         435  
34 13     13   37 use constant AID_INSURGENTS_COST => 25;
  13         12  
  13         430  
35 13     13   39 use constant ECONOMIC_AID_COST => 30;
  13         37  
  13         455  
36 13     13   167 use constant MILITARY_AID_COST => 20;
  13         14  
  13         434  
37              
38             #domestic costs
39 13     13   38 use constant RESOURCES_FOR_DISORDER => 20;
  13         9  
  13         430  
40 13     13   49 use constant ARMY_COST => 20;
  13         22  
  13         440  
41 13     13   37 use constant PROGRESS_COST => 30;
  13         7  
  13         431  
42              
43             #prestige
44 13     13   46 use constant INFLUENCE_PRESTIGE_BONUS => 3;
  13         15  
  13         469  
45 13     13   38 use constant DIPLOMATIC_PRESSURE_PRESTIGE_COST => 6;
  13         9  
  13         446  
46 13     13   36 use constant TREATY_PRESTIGE_COST => 7;
  13         12  
  13         439  
47 13     13   38 use constant WAR_PRESTIGE_BONUS => 10;
  13         10  
  13         437  
48 13     13   38 use constant BEST_WEALTH_FOR_PRESTIGE_BONUS => 5;
  13         12  
  13         469  
49 13     13   793 use constant BEST_PROGRESS_FOR_PRESTIGE_BONUS => 3;
  13         11  
  13         522  
50              
51             #IA Thresholds
52 13     13   52 use constant WORRYING_LIMIT => 30;
  13         22  
  13         498  
53 13     13   43 use constant DOMESTIC_BUDGET => 50;
  13         8  
  13         471  
54 13     13   44 use constant MINIMUM_ARMY_LIMIT => 5;
  13         13  
  13         430  
55 13     13   41 use constant MEDIUM_ARMY_LIMIT => 10;
  13         8  
  13         428  
56 13     13   41 use constant MEDIUM_ARMY_BUDGET => 40;
  13         13  
  13         443  
57 13     13   37 use constant MAX_ARMY_BUDGET => 60;
  13         18  
  13         436  
58 13     13   38 use constant MIN_ARMY_FOR_WAR => 5;
  13         11  
  13         434  
59 13     13   40 use constant MIN_INFERIOR_ARMY_RATIO_FOR_WAR => 1.2;
  13         9  
  13         433  
60 13     13   46 use constant MIN_ARMY_TO_EXPORT => 12;
  13         19  
  13         496  
61 13     13   40 use constant ARMY_TO_ACCEPT_MILITARY_SUPPORT => 10;
  13         11  
  13         452  
62 13     13   39 use constant ARMY_TO_GIVE_MILITARY_SUPPORT => 7;
  13         11  
  13         413  
63 13     13   37 use constant ARMY_TO_RECALL_SUPPORT => 2;
  13         13  
  13         464  
64 13     13   42 use constant ALLY_CONFLICT_LEVEL_FOR_INVOLVEMENT => 2;
  13         21  
  13         461  
65 13     13   37 use constant MINIMUM_ARMY_FOR_AID => 4;
  13         10  
  13         612  
66              
67             #Civil war
68 13     13   38 use constant STARTING_REBEL_PROVINCES => [1, 1, 2];
  13         13  
  13         441  
69 13     13   43 use constant CIVIL_WAR_WIN => 3;
  13         11  
  13         475  
70 13     13   51 use constant AFTER_CIVIL_WAR_INTERNAL_DISORDER => 35;
  13         17  
  13         519  
71 13     13   42 use constant ARMY_UNIT_FOR_CIVIL_WAR => 2;
  13         11  
  13         515  
72 13     13   49 use constant ARMY_HELP_FOR_CIVIL_WAR => 10;
  13         8  
  13         454  
73 13     13   40 use constant DICTATORSHIP_BONUS_FOR_CIVIL_WAR => 10;
  13         9  
  13         437  
74 13     13   42 use constant REBEL_ARMY_FOR_SUPPORT => 4;
  13         12  
  13         423  
75 13     13   38 use constant SUPPORT_HELP_FOR_CIVIL_WAR => 7;
  13         11  
  13         423  
76 13     13   36 use constant REBEL_SUPPORT_HELP_FOR_CIVIL_WAR => 7;
  13         11  
  13         401  
77 13     13   38 use constant REBEL_SUPPORTER_WINNER_FRIENDSHIP => 90;
  13         14  
  13         497  
78 13     13   53 use constant CIVIL_WAR_WEALTH_MALUS => 20;
  13         14  
  13         466  
79              
80             #War & domination
81 13     13   39 use constant ARMY_FOR_BATTLE => 3;
  13         48  
  13         416  
82 13     13   39 use constant WAR_WEALTH_MALUS => 20;
  13         9  
  13         400  
83 13     13   37 use constant ATTACK_FAILED_PRODUCTION_MALUS => 10;
  13         9  
  13         399  
84 13     13   35 use constant AFTER_CONQUERED_INTERNAL_DISORDER => 30;
  13         12  
  13         461  
85 13     13   39 use constant OCCUPATION_LOOT_BY_TYPE => 20;
  13         9  
  13         422  
86 13     13   37 use constant DOMINATION_LOOT_BY_TYPE => 20;
  13         12  
  13         456  
87 13     13   41 use constant CONTROL_LOOT_BY_TYPE => 0;
  13         12  
  13         455  
88 13     13   55 use constant DOMINATION_CLOCK_LIMIT => 5;
  13         15  
  13         701  
89 13     13   48 use constant OCCUPATION_CLOCK_LIMIT => 1;
  13         10  
  13         442  
90 13     13   39 use constant PROGRESS_BATTLE_FACTOR => 10;
  13         10  
  13         466  
91              
92             #Diplomacy
93 13     13   44 use constant HATE_LIMIT => 30;
  13         11  
  13         443  
94 13     13   40 use constant LOVE_LIMIT => 70;
  13         16  
  13         454  
95 13     13   37 use constant TRADEROUTE_DIPLOMACY_FACTOR => 6;
  13         17  
  13         417  
96 13     13   36 use constant ALLIANCE_FRIENDSHIP_FACTOR => 200;
  13         11  
  13         418  
97 13     13   36 use constant PERMANENT_CRISIS_HATE_LIMIT => 10;
  13         11  
  13         433  
98 13     13   47 use constant DIPLOMATIC_PRESSURE_FACTOR => -6;
  13         21  
  13         427  
99 13     13   36 use constant DIPLOMACY_MALUS_FOR_CROSSED_CIVIL_WAR_SUPPORT => 3;
  13         11  
  13         453  
100 13     13   42 use constant DIPLOMACY_MALUS_FOR_REBEL_CIVIL_WAR_SUPPORT => 4;
  13         21  
  13         447  
101 13     13   33 use constant DIPLOMACY_MALUS_FOR_SUPPORT => 2;
  13         17  
  13         429  
102 13     13   34 use constant DIPLOMACY_FACTOR_BREAKING_SUPPORT => 12;
  13         19  
  13         447  
103 13     13   39 use constant DIPLOMACY_FACTOR_STARTING_SUPPORT => 10;
  13         12  
  13         429  
104 13     13   39 use constant DIPLOMACY_FACTOR_INCREASING_SUPPORT => 2;
  13         10  
  13         461  
105 13     13   35 use constant DIPLOMACY_FACTOR_STARTING_REBEL_SUPPORT => -10;
  13         9  
  13         479  
106 13     13   44 use constant DIPLOMACY_FACTOR_INCREASING_REBEL_SUPPORT => -2;
  13         21  
  13         506  
107 13     13   38 use constant DIPLOMACY_AFTER_OCCUPATION => 90;
  13         11  
  13         480  
108 13     13   46 use constant DOMINION_DIPLOMACY => 110;
  13         15  
  13         424  
109 13     13   38 use constant ECONOMIC_AID_DIPLOMACY_FACTOR => 9;
  13         12  
  13         418  
110 13     13   37 use constant MILITARY_AID_DIPLOMACY_FACTOR => 7;
  13         13  
  13         420  
111              
112             #Stock exchange
113 13     13   37 use constant STOCK_INFLUENCE_FACTOR => .5;
  13         11  
  13         431  
114 13     13   37 use constant START_STOCKS => [ 8, 10, 12 ];
  13         11  
  13         484  
115 13     13   42 use constant START_PLAYER_MONEY => 1000;
  13         14  
  13         434  
116 13     13   45 use constant WAR_BOND_COST => 50;
  13         16  
  13         417  
117 13     13   37 use constant WAR_BOND_GAIN => 90;
  13         11  
  13         394  
118 13     13   37 use constant INFLUENCE_COST => 1;
  13         7  
  13         433  
119 13     13   38 use constant MAX_BUY_STOCK => 4;
  13         11  
  13         408  
120              
121             #Travel
122 13     13   33 use constant GROUND_TRAVEL_COST => 2;
  13         10  
  13         401  
123 13     13   39 use constant AIR_TRAVEL_COST_FOR_DISTANCE => 1;
  13         13  
  13         447  
124 13     13   44 use constant AIR_TRAVEL_CAP_COST => 4;
  13         18  
  13         434  
125 13     13   38 use constant PLAYER_MOVEMENTS => 8;
  13         15  
  13         453  
126              
127             #Shop
128 13     13   50 use constant SHOP_PRICE_FACTOR => 10;
  13         17  
  13         666  
129 13         500 use constant PRICE_RANGES => { 'goods' => [1, 3],
130             'luxury' => [5, 9],
131             'arms' => [10, 15],
132             'tech' => [3, 5],
133 13     13   41 'culture' => [4, 7] };
  13         14  
134 13     13   40 use constant CARGO_TOTAL_SPACE => 500;
  13         11  
  13         453  
135 13     13   38 use constant BLACK_MARKET_PERCENT_SELLING_BONUS => 10;
  13         9  
  13         451  
136 13     13   38 use constant LOWERED_PRICE_PERCENT_SELLING_MALUS => 15;
  13         12  
  13         463  
137 13     13   36 use constant BLACK_MARKET_FRIENDSHIP_MALUS => -5;
  13         12  
  13         418  
138 13     13   43 use constant LOWERED_PRICE_FRIENDSHIP_BONUS => 3;
  13         15  
  13         496  
139 13     13   40 use constant NOT_LOWERED_PRICE_FRIENDSHIP_MALUS => -2;
  13         10  
  13         448  
140 13     13   38 use constant FRIENDSHIP_LIMIT_TO_SHOP => 30;
  13         12  
  13         420  
141 13     13   39 use constant LOWER_MY_PRICE_FACTOR => 0.4;
  13         14  
  13         459  
142              
143             #Others
144 13     13   40 use constant TRADEROUTE_SIZE_BONUS => .5;
  13         8  
  13         517  
145 13     13   40 use constant PRODUCTION_UNITS => [ 2, 3, 4 ];
  13         14  
  13         463  
146 13     13   41 use constant INTERNAL_PRODUCTION_GAIN => 1;
  13         11  
  13         414  
147 13     13   36 use constant INTERNAL_DISORDER_TERRORISM_LIMIT => 10;
  13         14  
  13         442  
148 13     13   71 use constant INTERNAL_DISORDER_INSURGENCE_LIMIT => 40;
  13         22  
  13         477  
149 13     13   41 use constant INTERNAL_DISORDER_CIVIL_WAR_LIMIT => 80;
  13         11  
  13         434  
150 13     13   39 use constant DISORDER_REDUCTION => 10;
  13         17  
  13         535  
151 13     13   42 use constant DEBT_ALLOWED => 0;
  13         11  
  13         537  
152 13     13   40 use constant DEBT_TO_RAISE_LIMIT => 50;
  13         12  
  13         465  
153 13     13   41 use constant PRODUCTION_THROUGH_DEBT => 40;
  13         12  
  13         451  
154 13     13   38 use constant MAX_DEBT => 3;
  13         11  
  13         495  
155 13     13   37 use constant TURNS_FOR_YEAR => 4;
  13         12  
  13         456  
156 13     13   52 use constant MAX_ARMY_FOR_SIZE => [ 9, 12, 15];
  13         18  
  13         476  
157 13     13   39 use constant ARMY_UNIT => 1;
  13         12  
  13         432  
158 13     13   40 use constant CRISIS_MAX_FACTOR => 3;
  13         8  
  13         409  
159 13     13   37 use constant EMERGENCY_PRODUCTION_LIMIT => 55;
  13         16  
  13         422  
160 13     13   39 use constant BOOST_PRODUCTION_QUOTE => 5;
  13         10  
  13         413  
161 13     13   41 use constant ARMY_FOR_SUPPORT => 4;
  13         11  
  13         403  
162 13     13   36 use constant DICTATORSHIP_PRODUCTION_MALUS => 15;
  13         11  
  13         503  
163 13     13   40 use constant DICTATORSHIP_BONUS_FOR_ARMY_CONSTRUCTION => 5;
  13         9  
  13         446  
164 13     13   46 use constant INSURGENTS_AID => 15;
  13         15  
  13         423  
165 13     13   37 use constant BEST_WEALTH_FOR_PRESTIGE => 5;
  13         12  
  13         455  
166 13     13   34 use constant BEST_PROGRESS_FOR_PRESTIGE => 5;
  13         12  
  13         422  
167 13     13   40 use constant TREATY_TRADE_FACTOR => .5;
  13         11  
  13         426  
168 13     13   37 use constant ECONOMIC_AID_QUOTE => 7;
  13         13  
  13         432  
169 13     13   43 use constant PROGRESS_INCREMENT => .1;
  13         10  
  13         434  
170 13     13   36 use constant TREATY_LIMIT_PROGRESS_STEP => 0.4;
  13         11  
  13         420  
171 13     13   40 use constant TREATIES_FOR_PROGRESS_STEP => 5;
  13         11  
  13         447  
172 13     13   49 use constant MAX_AFFORDABLE_PROGRESS => 0.8;
  13         18  
  13         551  
173 13     13   39 use constant TIME_FOR_TARGET => 16;
  13         13  
  13         457  
174 13     13   42 use constant EVENT_TURNS_TO_DUMP => 40;
  13         10  
  13         2712  
175              
176             our @EXPORT_OK = ('MIN_EXPORT_QUOTE',
177             'MAX_EXPORT_QUOTE',
178             'MIN_STARTING_TRADEROUTES',
179             'MAX_STARTING_TRADEROUTES',
180             'ADDING_TRADEROUTE_COST',
181             'MIN_DELTA_PRODUCTION',
182             'MAX_DELTA_PRODUCTION',
183             'MAX_PRODUCTION',
184             'MIN_STARTING_PRODUCTION',
185             'MAX_STARTING_PRODUCTION',
186             'PRODUCTION_UNITS',
187             'INTERNAL_PRODUCTION_GAIN',
188             'TRADING_QUOTE',
189             'TRADEROUTE_COST',
190             'INTERNAL_DISORDER_TERRORISM_LIMIT',
191             'INTERNAL_DISORDER_INSURGENCE_LIMIT',
192             'INTERNAL_DISORDER_CIVIL_WAR_LIMIT',
193             'MIN_ADDED_DISORDER',
194             'MAX_ADDED_DISORDER',
195             'WORRYING_LIMIT',
196             'DOMESTIC_BUDGET',
197             'RESOURCES_FOR_DISORDER',
198             'DISORDER_REDUCTION',
199             'MIN_GOVERNMENT_STRENGTH',
200             'MAX_GOVERNMENT_STRENGTH',
201             'DEBT_TO_RAISE_LIMIT',
202             'PRODUCTION_THROUGH_DEBT',
203             'MAX_DEBT',
204             'DEBT_ALLOWED',
205             'CIVIL_WAR_WIN',
206             'STARTING_REBEL_PROVINCES',
207             'AFTER_CIVIL_WAR_INTERNAL_DISORDER',
208             'TURNS_FOR_YEAR',
209             'HATE_LIMIT',
210             'LOVE_LIMIT',
211             'MINIMUM_ARMY_LIMIT',
212             'MEDIUM_ARMY_LIMIT',
213             'MAX_ARMY_FOR_SIZE',
214             'MEDIUM_ARMY_BUDGET',
215             'MAX_ARMY_BUDGET',
216             'ARMY_COST',
217             'ARMY_UNIT',
218             'ARMY_FOR_BATTLE',
219             'TRADEROUTE_DIPLOMACY_FACTOR',
220             'ARMY_UNIT_FOR_CIVIL_WAR',
221             'ARMY_HELP_FOR_CIVIL_WAR',
222             'CRISIS_GENERATOR_NOACTION_TOKENS',
223             'CRISIS_GENERATION_TRIES',
224             'CRISIS_MAX_FACTOR',
225             'MIN_ARMY_FOR_WAR',
226             'MIN_INFERIOR_ARMY_RATIO_FOR_WAR',
227             'WAR_WEALTH_MALUS',
228             'ATTACK_FAILED_PRODUCTION_MALUS',
229             'AFTER_CONQUERED_INTERNAL_DISORDER',
230             'OCCUPATION_LOOT_BY_TYPE',
231             'DOMINATION_LOOT_BY_TYPE',
232             'CONTROL_LOOT_BY_TYPE',
233             'OCCUPATION_CLOCK_LIMIT',
234             'DOMINATION_CLOCK_LIMIT',
235             'ALLIANCE_FRIENDSHIP_FACTOR',
236             'ALLY_CONFLICT_LEVEL_FOR_INVOLVEMENT',
237             'STARTING_ALLIANCES',
238             'EMERGENCY_PRODUCTION_LIMIT',
239             'BOOST_PRODUCTION_QUOTE',
240             'MIN_ARMY_TO_EXPORT',
241             'ARMY_TO_ACCEPT_MILITARY_SUPPORT',
242             'ARMY_FOR_SUPPORT',
243             'DIPLOMACY_FACTOR_BREAKING_SUPPORT',
244             'DIPLOMACY_FACTOR_STARTING_SUPPORT',
245             'DIPLOMACY_MALUS_FOR_SUPPORT',
246             'ARMY_TO_RECALL_SUPPORT',
247             'TRADEROUTE_SIZE_BONUS',
248             'DICTATORSHIP_PRODUCTION_MALUS',
249             'DICTATORSHIP_BONUS_FOR_CIVIL_WAR',
250             'DICTATORSHIP_BONUS_FOR_ARMY_CONSTRUCTION',
251             'AID_INSURGENTS_COST',
252             'INSURGENTS_AID',
253             'INFLUENCE_PRESTIGE_BONUS',
254             'BEST_WEALTH_FOR_PRESTIGE',
255             'BEST_WEALTH_FOR_PRESTIGE_BONUS',
256             'WAR_PRESTIGE_BONUS',
257             'TREATY_PRESTIGE_COST',
258             'TREATY_TRADE_FACTOR',
259             'ECONOMIC_AID_COST',
260             'ECONOMIC_AID_QUOTE',
261             'ECONOMIC_AID_DIPLOMACY_FACTOR',
262             'REBEL_ARMY_FOR_SUPPORT',
263             'DIPLOMACY_FACTOR_STARTING_REBEL_SUPPORT',
264             'SUPPORT_HELP_FOR_CIVIL_WAR',
265             'REBEL_SUPPORT_HELP_FOR_CIVIL_WAR',
266             'DIPLOMACY_MALUS_FOR_CROSSED_CIVIL_WAR_SUPPORT',
267             'DIPLOMACY_MALUS_FOR_REBEL_CIVIL_WAR_SUPPORT',
268             'REBEL_SUPPORTER_WINNER_FRIENDSHIP',
269             'PERMANENT_CRISIS_HATE_LIMIT',
270             'DIPLOMATIC_PRESSURE_FACTOR',
271             'DIPLOMATIC_PRESSURE_PRESTIGE_COST',
272             'DIPLOMACY_AFTER_OCCUPATION',
273             'DOMINION_DIPLOMACY',
274             'DIPLOMACY_FACTOR_INCREASING_SUPPORT',
275             'DIPLOMACY_FACTOR_INCREASING_REBEL_SUPPORT',
276             'MINIMUM_ARMY_FOR_AID',
277             'MILITARY_AID_COST',
278             'MILITARY_AID_DIPLOMACY_FACTOR',
279             'ARMY_TO_GIVE_MILITARY_SUPPORT',
280             'PROGRESS_INCREMENT',
281             'PROGRESS_COST',
282             'BEST_PROGRESS_FOR_PRESTIGE',
283             'BEST_PROGRESS_FOR_PRESTIGE_BONUS',
284             'PROGRESS_BATTLE_FACTOR',
285             'TREATY_LIMIT_PROGRESS_STEP',
286             'TREATIES_FOR_PROGRESS_STEP',
287             'MAX_AFFORDABLE_PROGRESS',
288             'STOCK_INFLUENCE_FACTOR',
289             'START_STOCKS',
290             'START_PLAYER_MONEY',
291             'WAR_BOND_COST',
292             'WAR_BOND_GAIN',
293             'CIVIL_WAR_WEALTH_MALUS',
294             'INFLUENCE_COST',
295             'MAX_BUY_STOCK',
296             'TIME_FOR_TARGET',
297             'GROUND_TRAVEL_COST',
298             'AIR_TRAVEL_COST_FOR_DISTANCE',
299             'AIR_TRAVEL_CAP_COST',
300             'PLAYER_MOVEMENTS',
301             'SHOP_PRICE_FACTOR',
302             'CARGO_TOTAL_SPACE',
303             'PRICE_RANGES',
304             'BLACK_MARKET_PERCENT_SELLING_BONUS',
305             'BLACK_MARKET_FRIENDSHIP_MALUS',
306             'FRIENDSHIP_LIMIT_TO_SHOP',
307             'LOWER_MY_PRICE_FACTOR',
308             'LOWERED_PRICE_PERCENT_SELLING_MALUS',
309             'LOWERED_PRICE_FRIENDSHIP_BONUS',
310             'NOT_LOWERED_PRICE_FRIENDSHIP_MALUS',
311             'EVENT_TURNS_TO_DUMP',
312             );
313             our %EXPORT_TAGS = ( all => \@EXPORT_OK );