]>
Commit | Line | Data |
---|---|---|
685e346e A |
1 | import feed |
2 | from decimal import Decimal, ROUND_DOWN, ROUND_UP | |
3 | ||
4 | __ranks = [ | |
5 | {'name': 'Rookie', 'id': 1, 'modifier': 1, 'points': 0}, | |
6 | {'name': 'Private', 'id': 2, 'modifier': 1.1, 'points': 250}, | |
7 | {'name': 'Private First Class', 'id': 3, 'modifier': 1.2, 'points': 1000}, | |
8 | {'name': 'Corporal', 'id': 4, 'modifier': 1.3, 'points': 3000}, | |
9 | {'name': 'Sergeant', 'id': 5, 'modifier': 1.4, 'points': 5000}, | |
10 | {'name': 'Staff Sergeant', 'id': 6, 'modifier': 1.5, 'points': 10000}, | |
11 | {'name': 'Sergeant First Class', 'id': 7, 'modifier': 1.6, 'points': 30000}, | |
12 | {'name': 'Master Sergeant', 'id': 8, 'modifier': 1.65, 'points': 60000}, | |
13 | {'name': 'First Sergeant', 'id': 9, 'modifier': 1.7, 'points': 100000}, | |
14 | {'name': 'Sergeant Major', 'id': 10, 'modifier': 1.75, 'points': 250000}, | |
15 | {'name': 'Command Sergeant Major', 'id': 11, 'modifier': 1.8, 'points': 500000}, | |
16 | {'name': 'Sergeant Major of the Army', 'id': 12, 'modifier': 1.85, 'points': 750000}, | |
17 | {'name': 'Second Lieutenant', 'id': 13, 'modifier': 1.9, 'points': 1000000}, | |
18 | {'name': 'First Lieutenant', 'id': 14, 'modifier': 1.93, 'points': 1500000}, | |
19 | {'name': 'Captain', 'id': 15, 'modifier': 1.96, 'points': 2500000}, | |
20 | {'name': 'Major', 'id': 16, 'modifier': 2, 'points': 5000000}, | |
21 | {'name': 'Lieutenant Colonel', 'id': 17, 'modifier': 2.03, 'points': 10000000}, | |
22 | {'name': 'Colonel', 'id': 18, 'modifier': 2.06, 'points': 17000000}, | |
23 | {'name': 'Brigadier General', 'id': 19, 'modifier': 2.1, 'points': 25000000}, | |
24 | {'name': 'Major General', 'id': 20, 'modifier': 2.12, 'points': 35000000}, | |
25 | {'name': 'Lieutenant General', 'id': 21, 'modifier': 2.14, 'points': 45000000}, | |
26 | {'name': 'General', 'id': 22, 'modifier': 2.16, 'points': 60000000}, | |
27 | {'name': 'General of the Army', 'id': 23, 'modifier': 2.18, 'points': 80000000}, | |
28 | {'name': 'Marshall', 'id': 24, 'modifier': 2.2, 'points': 100000000}, | |
29 | {'name': 'Field Marshall', 'id': 25, 'modifier': 2.22, 'points': 125000000}, | |
30 | {'name': 'Supreme Marshall', 'id': 26, 'modifier': 2.24, 'points': 175000000}, | |
31 | {'name': 'Generalissimus', 'id': 27, 'modifier': 2.26, 'points': 250000000}, | |
32 | {'name': 'Supreme Generalissimuss', 'id': 28, 'modifier': 2.28, 'points': 400000000}, | |
33 | {'name': 'Imperial Generalissimus', 'id': 29, 'modifier': 2.4, 'points': 600000000}, | |
34 | {'name': 'Legendary Generalissimuss', 'id': 30, 'modifier': 2.42, 'points': 800000000}, | |
35 | {'name': 'Imperator', 'id': 31, 'modifier': 2.44, 'points': 1000000000}, | |
36 | {'name': 'Imperator Caesar', 'id': 32, 'modifier': 2.46, 'points': 1500000000}, | |
37 | {'name': 'Deus Dimidiam', 'id': 33, 'modifier': 2.48, 'points': 2500000000}, | |
38 | {'name': 'Deus', 'id': 34, 'modifier': 2.5, 'points': 5000000000}, | |
39 | {'name': 'Summi Deus', 'id': 35, 'modifier': 2.52, 'points': 7500000000}, | |
40 | {'name': 'Deus Imperialis', 'id': 36, 'modifier': 2.54, 'points': 10000000000}, | |
41 | {'name': 'Deus Fabuloso', 'id': 37, 'modifier': 2.56, 'points': 15000000000}, | |
42 | {'name': 'Deus Ultimum', 'id': 38, 'modifier': 2.58, 'points': 20000000000}, | |
43 | ] | |
44 | ||
45 | __regions = [ | |
46 | {'id': 1, 'name': 'Mazovia'}, | |
47 | {'id': 2, 'name': 'Silesia'}, | |
48 | {'id': 3, 'name': 'Great Poland'}, | |
49 | {'id': 4, 'name': 'Mazuria'}, | |
50 | {'id': 5, 'name': 'Little Poland'}, | |
51 | {'id': 6, 'name': 'Pomerania'}, | |
52 | {'id': 7, 'name': 'Moscow'}, | |
53 | {'id': 8, 'name': 'Western Russia'}, | |
54 | {'id': 9, 'name': 'Siberia'}, | |
55 | {'id': 10, 'name': 'North Caucasus'}, | |
56 | {'id': 11, 'name': 'Kamchatka'}, | |
57 | {'id': 12, 'name': 'Northwestern Russia'}, | |
58 | {'id': 13, 'name': 'Brandenburgia'}, | |
59 | {'id': 14, 'name': 'Mecklenburg and Western Pomerania'}, | |
60 | {'id': 15, 'name': 'Saxony'}, | |
61 | {'id': 16, 'name': 'Bavaria'}, | |
62 | {'id': 17, 'name': 'Rhineland'}, | |
63 | {'id': 18, 'name': 'Baden-Wurttemberg'}, | |
64 | {'id': 19, 'name': 'Central France'}, | |
65 | {'id': 20, 'name': 'Northern France'}, | |
66 | {'id': 21, 'name': 'Jerusalem'}, | |
67 | {'id': 22, 'name': 'Rhone Alpes'}, | |
68 | {'id': 23, 'name': 'Great West'}, | |
69 | {'id': 24, 'name': 'Southwestern France'}, | |
70 | {'id': 25, 'name': 'Alsace Lorraine'}, | |
71 | {'id': 26, 'name': 'Andalusia'}, | |
72 | {'id': 27, 'name': 'Aragon Catalonia'}, | |
73 | {'id': 28, 'name': 'Madrid'}, | |
74 | {'id': 29, 'name': 'Galicia'}, | |
75 | {'id': 30, 'name': 'Castile Leon'}, | |
76 | {'id': 31, 'name': 'Castile-La Mancha'}, | |
77 | {'id': 32, 'name': 'London'}, | |
78 | {'id': 33, 'name': 'Northeastern England'}, | |
79 | {'id': 34, 'name': 'Wales'}, | |
80 | {'id': 35, 'name': 'Southwestern England'}, | |
81 | {'id': 36, 'name': 'Scotland'}, | |
82 | {'id': 37, 'name': 'Northern Ireland'}, | |
83 | {'id': 38, 'name': 'Sicily'}, | |
84 | {'id': 39, 'name': 'Naples'}, | |
85 | {'id': 40, 'name': 'Central Italy'}, | |
86 | {'id': 41, 'name': 'Tuscany'}, | |
87 | {'id': 42, 'name': 'Veneto'}, | |
88 | {'id': 43, 'name': 'Lombardia Piemonte'}, | |
89 | {'id': 44, 'name': 'Western Transdanubia'}, | |
90 | {'id': 45, 'name': 'Eastern Transdanubia'}, | |
91 | {'id': 46, 'name': 'Central Hungary'}, | |
92 | {'id': 47, 'name': 'Southern Great Plain'}, | |
93 | {'id': 48, 'name': 'Northern Great Plain'}, | |
94 | {'id': 49, 'name': 'Northern Great Hungary'}, | |
95 | {'id': 50, 'name': 'Crisana Banat'}, | |
96 | {'id': 51, 'name': 'Wallachia'}, | |
97 | {'id': 52, 'name': 'Dobrogea'}, | |
98 | {'id': 53, 'name': 'Transylvania'}, | |
99 | {'id': 54, 'name': 'Moldova'}, | |
100 | {'id': 55, 'name': 'Maramur Bucovina'}, | |
101 | {'id': 56, 'name': 'Sofia'}, | |
102 | {'id': 57, 'name': 'Plovdiv'}, | |
103 | {'id': 58, 'name': 'Burgas'}, | |
104 | {'id': 59, 'name': 'Varna'}, | |
105 | {'id': 60, 'name': 'Ruse'}, | |
106 | {'id': 61, 'name': 'Vidin'}, | |
107 | {'id': 62, 'name': 'Western Serbia'}, | |
108 | {'id': 63, 'name': 'Southern Serbia'}, | |
109 | {'id': 64, 'name': 'Sumadija'}, | |
110 | {'id': 65, 'name': 'Eastern Serbia'}, | |
111 | {'id': 66, 'name': 'Vojvodina'}, | |
112 | {'id': 67, 'name': 'Belgrade'}, | |
113 | {'id': 68, 'name': 'Slavonia'}, | |
114 | {'id': 69, 'name': 'Central Croatia'}, | |
115 | {'id': 70, 'name': 'Dalmatia'}, | |
116 | {'id': 71, 'name': 'Kvarner'}, | |
117 | {'id': 72, 'name': 'Istria'}, | |
118 | {'id': 73, 'name': 'Zagreb'}, | |
119 | {'id': 74, 'name': 'Herzegovina'}, | |
120 | {'id': 75, 'name': 'Sarajevo'}, | |
121 | {'id': 76, 'name': 'Northern Bosnia'}, | |
122 | {'id': 77, 'name': 'Posavina'}, | |
123 | {'id': 78, 'name': 'Central Bosnia'}, | |
124 | {'id': 79, 'name': 'Bosanska Krajina'}, | |
125 | {'id': 80, 'name': 'Crete'}, | |
126 | {'id': 81, 'name': 'Peloponnese'}, | |
127 | {'id': 82, 'name': 'Central Greece'}, | |
128 | {'id': 83, 'name': 'Epirus Thessaly'}, | |
129 | {'id': 84, 'name': 'Makedonia'}, | |
130 | {'id': 85, 'name': 'Thrace'}, | |
131 | {'id': 86, 'name': 'Western Republic of Macedonia'}, | |
132 | {'id': 87, 'name': 'Pelagonia'}, | |
133 | {'id': 88, 'name': 'Vardar'}, | |
134 | {'id': 89, 'name': 'Skopje'}, | |
135 | {'id': 90, 'name': 'Southeastern Republic of Macedonia'}, | |
136 | {'id': 91, 'name': 'Northeastern Republic of Macedonia'}, | |
137 | {'id': 92, 'name': 'Kiev'}, | |
138 | {'id': 93, 'name': 'Western Ukraine'}, | |
139 | {'id': 94, 'name': 'Central Ukraine'}, | |
140 | {'id': 95, 'name': 'Eastern Ukraine'}, | |
141 | {'id': 96, 'name': 'Black Sea Coast'}, | |
142 | {'id': 97, 'name': 'Crimea'}, | |
143 | {'id': 98, 'name': 'Smaland Scania'}, | |
144 | {'id': 99, 'name': 'Gotaland'}, | |
145 | {'id': 100, 'name': 'Svealand'}, | |
146 | {'id': 101, 'name': 'Bohus'}, | |
147 | {'id': 102, 'name': 'Jamtland'}, | |
148 | {'id': 103, 'name': 'Norrland Sameland'}, | |
149 | {'id': 104, 'name': 'Northern Portugal'}, | |
150 | {'id': 105, 'name': 'Beira'}, | |
151 | {'id': 106, 'name': 'Estremaduria Ribatejo'}, | |
152 | {'id': 107, 'name': 'Alentejo'}, | |
153 | {'id': 108, 'name': 'Algarve'}, | |
154 | {'id': 109, 'name': 'Azores'}, | |
155 | {'id': 110, 'name': 'Lithuania Eastern highland'}, | |
156 | {'id': 111, 'name': 'Sudovia'}, | |
157 | {'id': 112, 'name': 'Lithuania Western highland'}, | |
158 | {'id': 113, 'name': 'Samogitia'}, | |
159 | {'id': 114, 'name': 'Lithuania minor'}, | |
160 | {'id': 115, 'name': 'Dainava'}, | |
161 | {'id': 116, 'name': 'Eastern Vidzeme'}, | |
162 | {'id': 117, 'name': 'Latgalia'}, | |
163 | {'id': 118, 'name': 'Selija'}, | |
164 | {'id': 119, 'name': 'Western Vidzeme'}, | |
165 | {'id': 120, 'name': 'Zemgale'}, | |
166 | {'id': 121, 'name': 'Kurzeme'}, | |
167 | {'id': 122, 'name': 'Prekmurje'}, | |
168 | {'id': 123, 'name': 'Styria Carinthia'}, | |
169 | {'id': 124, 'name': 'Upper Carniola'}, | |
170 | {'id': 125, 'name': 'Slovenian Littoral'}, | |
171 | {'id': 126, 'name': 'Lower Carniola'}, | |
172 | {'id': 127, 'name': 'Inner Carniola'}, | |
173 | {'id': 128, 'name': 'Marmara'}, | |
174 | {'id': 129, 'name': 'Turkey Aegean Coast'}, | |
175 | {'id': 130, 'name': 'Turkey Mediterranean Coast'}, | |
176 | {'id': 131, 'name': 'Turkey Black Sea Coast'}, | |
177 | {'id': 132, 'name': 'Eastern Anatolia'}, | |
178 | {'id': 133, 'name': 'Central Anatolia'}, | |
179 | {'id': 134, 'name': 'North of Brazil'}, | |
180 | {'id': 135, 'name': 'Northeast of Brazil'}, | |
181 | {'id': 136, 'name': 'Southeast of Brazil'}, | |
182 | {'id': 137, 'name': 'Central Brazil'}, | |
183 | {'id': 138, 'name': 'Parana and Santa Catarina'}, | |
184 | {'id': 139, 'name': 'Rio Grande do Sul'}, | |
185 | {'id': 140, 'name': 'Patagonia'}, | |
186 | {'id': 141, 'name': 'Pampas'}, | |
187 | {'id': 142, 'name': 'Cuyo'}, | |
188 | {'id': 143, 'name': 'Tucuman'}, | |
189 | {'id': 144, 'name': 'Chaco'}, | |
190 | {'id': 145, 'name': 'Mesopotamia'}, | |
191 | {'id': 146, 'name': 'Northern Mexico'}, | |
192 | {'id': 147, 'name': 'Mexico Pacific Coast'}, | |
193 | {'id': 148, 'name': 'Yucatan Peninsula'}, | |
194 | {'id': 149, 'name': 'Central Mexico'}, | |
195 | {'id': 150, 'name': 'The Bajio'}, | |
196 | {'id': 151, 'name': 'Baja California'}, | |
197 | {'id': 152, 'name': 'Alaska'}, | |
198 | {'id': 153, 'name': 'USA Pacific Coast'}, | |
199 | {'id': 154, 'name': 'Western USA'}, | |
200 | {'id': 155, 'name': 'Central USA'}, | |
201 | {'id': 156, 'name': 'USA East Coast'}, | |
202 | {'id': 157, 'name': 'USA Gulf of Mexico'}, | |
203 | {'id': 158, 'name': 'Northern Canada'}, | |
204 | {'id': 159, 'name': 'Canada East Coast'}, | |
205 | {'id': 160, 'name': 'Quebec'}, | |
206 | {'id': 161, 'name': 'Manitoba'}, | |
207 | {'id': 162, 'name': 'Alberta'}, | |
208 | {'id': 163, 'name': 'Canada Pacific Coast'}, | |
209 | {'id': 164, 'name': 'Manchuria'}, | |
210 | {'id': 165, 'name': 'Northwest China'}, | |
211 | {'id': 166, 'name': 'Tibet'}, | |
212 | {'id': 167, 'name': 'North China'}, | |
213 | {'id': 168, 'name': 'South China'}, | |
214 | {'id': 169, 'name': 'East China'}, | |
215 | {'id': 170, 'name': 'Sumatra'}, | |
216 | {'id': 171, 'name': 'Java'}, | |
217 | {'id': 172, 'name': 'Kalimantan'}, | |
218 | {'id': 173, 'name': 'Sulawesi'}, | |
219 | {'id': 174, 'name': 'Papua'}, | |
220 | {'id': 175, 'name': 'Maluku Islands'}, | |
221 | {'id': 176, 'name': 'Western Iran'}, | |
222 | {'id': 177, 'name': 'Northern Iran'}, | |
223 | {'id': 178, 'name': 'Khorasan'}, | |
224 | {'id': 179, 'name': 'Southeastern Iran'}, | |
225 | {'id': 180, 'name': 'Fars'}, | |
226 | {'id': 181, 'name': 'Central Iran'}, | |
227 | {'id': 182, 'name': 'Jeolla'}, | |
228 | {'id': 183, 'name': 'Gyeongsang'}, | |
229 | {'id': 184, 'name': 'Chuncheon'}, | |
230 | {'id': 185, 'name': 'Gyeonggi'}, | |
231 | {'id': 186, 'name': 'North Chungcheong'}, | |
232 | {'id': 187, 'name': 'South Chungcheong'}, | |
233 | {'id': 188, 'name': 'Penghu'}, | |
234 | {'id': 189, 'name': 'Taipei'}, | |
235 | {'id': 190, 'name': 'Northeastern Taiwan'}, | |
236 | {'id': 191, 'name': 'Southeastern Taiwan'}, | |
237 | {'id': 192, 'name': 'Kaohsiung'}, | |
238 | {'id': 193, 'name': 'Western Taiwan'}, | |
239 | {'id': 194, 'name': 'Nazareth'}, | |
240 | {'id': 195, 'name': 'Judea and Samaria'}, | |
241 | {'id': 196, 'name': 'Beersheba'}, | |
242 | {'id': 197, 'name': 'Haifa'}, | |
243 | {'id': 198, 'name': 'Coastal Plain'}, | |
244 | {'id': 199, 'name': 'Southern India'}, | |
245 | {'id': 200, 'name': 'Western India'}, | |
246 | {'id': 201, 'name': 'Bengal Coast'}, | |
247 | {'id': 202, 'name': 'Central India'}, | |
248 | {'id': 203, 'name': 'Northern India'}, | |
249 | {'id': 204, 'name': 'Eastern India'}, | |
250 | {'id': 205, 'name': 'North Holland-Utrecht'}, | |
251 | {'id': 206, 'name': 'South Holland-Zeeland'}, | |
252 | {'id': 207, 'name': 'Western Australia'}, | |
253 | {'id': 208, 'name': 'Northern Territory'}, | |
254 | {'id': 209, 'name': 'South Australia'}, | |
255 | {'id': 210, 'name': 'Queensland'}, | |
256 | {'id': 211, 'name': 'New South Wales'}, | |
257 | {'id': 212, 'name': 'Victoria'}, | |
258 | {'id': 213, 'name': 'Groningen-Drenthe'}, | |
259 | {'id': 214, 'name': 'Friesland-Flevoland'}, | |
260 | {'id': 215, 'name': 'Gelderland-Overijssel'}, | |
261 | {'id': 216, 'name': 'Brabant-Limburg'}, | |
262 | {'id': 217, 'name': 'Western Finland'}, | |
263 | {'id': 218, 'name': 'Aland'}, | |
264 | {'id': 219, 'name': 'Eastern Finland'}, | |
265 | {'id': 220, 'name': 'Lapland'}, | |
266 | {'id': 221, 'name': 'Southern Finland'}, | |
267 | {'id': 222, 'name': 'Oulu'}, | |
268 | {'id': 223, 'name': 'Cork/Kerry'}, | |
269 | {'id': 224, 'name': 'Shannon'}, | |
270 | {'id': 225, 'name': 'South-east Ireland'}, | |
271 | {'id': 226, 'name': 'North-west Ireland'}, | |
272 | {'id': 227, 'name': 'Western Ireland'}, | |
273 | {'id': 228, 'name': 'Midlands-Ireland'}, | |
274 | {'id': 229, 'name': 'Zurich'}, | |
275 | {'id': 230, 'name': 'Ticino-Grisons'}, | |
276 | {'id': 231, 'name': 'Northeastern Switzerland'}, | |
277 | {'id': 232, 'name': 'Central Switzerland'}, | |
278 | {'id': 233, 'name': 'Bern-Valais'}, | |
279 | {'id': 234, 'name': 'Western Switzerland'}, | |
280 | {'id': 235, 'name': 'Antwerpen - Limburg'}, | |
281 | {'id': 236, 'name': 'Brussels'}, | |
282 | {'id': 237, 'name': 'Vlaanderen'}, | |
283 | {'id': 238, 'name': 'Hainaut - Namur'}, | |
284 | {'id': 239, 'name': 'Liege'}, | |
285 | {'id': 240, 'name': 'Luxembourg'}, | |
286 | {'id': 241, 'name': 'Sindh'}, | |
287 | {'id': 242, 'name': 'Balochistan'}, | |
288 | {'id': 243, 'name': 'Punjab'}, | |
289 | {'id': 244, 'name': 'Northern areas'}, | |
290 | {'id': 245, 'name': 'North West Frontier Province'}, | |
291 | {'id': 246, 'name': 'Tribal areas'}, | |
292 | {'id': 247, 'name': 'Sarawak'}, | |
293 | {'id': 248, 'name': 'Sabah'}, | |
294 | {'id': 249, 'name': 'Kuala Lumpur'}, | |
295 | {'id': 250, 'name': 'Pahang'}, | |
296 | {'id': 251, 'name': 'Northern Peninsular-Malaysia'}, | |
297 | {'id': 252, 'name': 'Southern Peninsular-Malaysia'}, | |
298 | {'id': 253, 'name': 'Svalbard'}, | |
299 | {'id': 254, 'name': 'Nord-Norge'}, | |
300 | {'id': 255, 'name': 'Trondelag'}, | |
301 | {'id': 256, 'name': 'Sorlandet'}, | |
302 | {'id': 257, 'name': 'Vestlandet'}, | |
303 | {'id': 258, 'name': 'Ostlandet'}, | |
304 | {'id': 259, 'name': 'Loreto'}, | |
305 | {'id': 260, 'name': 'Lima'}, | |
306 | {'id': 261, 'name': 'Southern coast of Peru'}, | |
307 | {'id': 262, 'name': 'Northwestern Peru'}, | |
308 | {'id': 263, 'name': 'Peru Andes'}, | |
309 | {'id': 264, 'name': 'Central Peru'}, | |
310 | {'id': 265, 'name': 'Punta Arenas'}, | |
311 | {'id': 266, 'name': 'Puerto Montt'}, | |
312 | {'id': 267, 'name': 'Santiago'}, | |
313 | {'id': 268, 'name': 'Atacama'}, | |
314 | {'id': 269, 'name': 'Antofagasta'}, | |
315 | {'id': 270, 'name': 'Tarapaca'}, | |
316 | {'id': 271, 'name': 'Amazonica'}, | |
317 | {'id': 272, 'name': 'Orinoquia'}, | |
318 | {'id': 273, 'name': 'Pacifica'}, | |
319 | {'id': 274, 'name': 'Caribe'}, | |
320 | {'id': 275, 'name': 'Bogota'}, | |
321 | {'id': 276, 'name': 'Andino'} | |
322 | ] | |
323 | ||
324 | class InvalidValueError(Exception): | |
325 | def __init__(self, message): | |
326 | self.msg = message | |
327 | ||
328 | def __str__(self): | |
329 | return str(self.msg) | |
330 | ||
331 | def fight_calc(firepower, rank, strength, region_bonus, ds_bonus, | |
332 | mu_bonus, surrounded_debuff): | |
333 | firepowers = {0: 0.5, # No weapon | |
334 | 1: 1.2, # Weapon quality 1 | |
335 | 2: 1.4, # Weapon quality 2 | |
336 | 3: 1.6, # Weapon quality 3 | |
337 | 4: 1.8, # Weapon quality 4 | |
338 | 5: 2.0 # Weapon quality 5 | |
339 | } | |
340 | q_mult = Decimal(firepowers[firepower]) | |
341 | r_mult = Decimal(rank['modifier']) | |
342 | s_mult = Decimal(strength) | |
343 | ds_mult = Decimal(1.0 + (float(ds_bonus) * 0.05)) | |
344 | mu_mult = Decimal(1.0 + (float(mu_bonus) / 100.0)) | |
345 | ||
346 | dmg = q_mult * r_mult * s_mult * ds_mult * mu_mult | |
347 | if region_bonus: | |
348 | dmg *= Decimal('1.2') | |
349 | if surrounded_debuff: | |
350 | dmg *= Decimal('0.8') | |
351 | return dmg.to_integral_value(ROUND_DOWN) | |
352 | ||
353 | def get_rank(rank_name): | |
354 | rank_name = rank_name.lower() | |
355 | ||
356 | for rank in __ranks: | |
357 | if rank_name == rank['name'].lower() or rank_name == str(rank['id']): | |
358 | return rank | |
359 | ||
360 | raise InvalidValueError('%s is not a valid military rank' % rank_name) | |
361 | ||
362 | def get_region_by_name(name): | |
363 | name = name.lower() | |
364 | for region in __regions: | |
365 | if name == region['name'].lower(): | |
366 | return region | |
367 | raise feed.FeedError('Region @b%s@b does not exist.' % name) | |
368 | ||
369 | def get_region_by_id(id): | |
370 | for region in __regions: | |
371 | if id == region['id']: | |
372 | return region | |
373 | raise feed.FeedError('Region ID @b%s@b does not exist.' % str(id)) | |
374 | ||
375 | ||
376 | if __name__ == '__main__': | |
377 | import json | |
378 | import urllib2 | |
379 | api = urllib2.urlopen('http://primera.e-sim.org/apiRanks.html') | |
380 | data = json.load(api) | |
381 | api.close() | |
382 | ||
383 | print '__ranks = [' | |
384 | s = " {'name': %%-%ds 'id': %%-3s 'modifier': %%-5s 'points': %%s}," | |
385 | longest = 0 | |
386 | for i in data: | |
387 | if len(i['name']) > longest: | |
388 | longest = len(i['name']) | |
389 | ||
390 | longest += 3 | |
391 | for i in range(len(data)): | |
392 | print s % longest % ("'%s'," % data[i]['name'], | |
393 | "%s," % (i+1), | |
394 | "%s," % data[i]['damageModifier'], | |
395 | data[i]['damageRequired'],) | |
396 | print ']' |