View Javadoc

1   package cz.cuni.amis.pogamut.ut2004.communication.messages.gbinfomessages;
2    		
3    		// --- IMPORTS FROM /messages/settings/javasettings/javaimport BEGIN
4   			import java.util.*;import javax.vecmath.*;import cz.cuni.amis.pogamut.base.communication.messages.*;import cz.cuni.amis.pogamut.base.communication.worldview.*;import cz.cuni.amis.pogamut.base.communication.worldview.event.*;import cz.cuni.amis.pogamut.base.communication.worldview.object.*;import cz.cuni.amis.pogamut.multi.communication.worldview.object.*;import cz.cuni.amis.pogamut.base.communication.translator.event.*;import cz.cuni.amis.pogamut.multi.communication.translator.event.*;import cz.cuni.amis.pogamut.base3d.worldview.object.*;import cz.cuni.amis.pogamut.base3d.worldview.object.event.*;import cz.cuni.amis.pogamut.ut2004.communication.messages.*;import cz.cuni.amis.pogamut.ut2004.communication.worldview.objects.*;import cz.cuni.amis.pogamut.ut2004multi.communication.worldview.objects.*;import cz.cuni.amis.pogamut.ut2004.communication.translator.itemdescriptor.*;import cz.cuni.amis.pogamut.ut2004.communication.messages.ItemType.Category;import cz.cuni.amis.pogamut.unreal.communication.messages.UnrealId;import cz.cuni.amis.utils.exception.*;import cz.cuni.amis.pogamut.base.communication.translator.event.IWorldObjectUpdateResult.Result;import cz.cuni.amis.utils.SafeEquals;import cz.cuni.amis.pogamut.base.agent.*;import cz.cuni.amis.pogamut.multi.agent.*;import cz.cuni.amis.pogamut.multi.communication.worldview.property.*;import cz.cuni.amis.pogamut.ut2004multi.communication.worldview.property.*;import cz.cuni.amis.utils.token.*;import cz.cuni.amis.utils.*;
5   		// --- IMPORTS FROM /messages/settings/javasettings/javaimport END
6   		
7   		
8   		// --- IMPORTS FROM extra/code/java/javapart/classcategory[@name='all'] BEGIN
9   				
10  		// --- IMPORTS FROM extra/code/java/javapart/classcategory[@name='all'] END
11  		
12  		// --- IMPORTS FROM extra/code/java/javapart/classcategory[@name=event]+classtype[@name=impl] BEGIN
13  		
14  		// --- IMPORTS FROM extra/code/java/javapart/classcategory[@name=event]+classtype[@name=impl] END
15      
16   		/**
17           *  
18           			Definition of the event ITC.
19           		
20           *
21           *  <p></p><p></p>
22           *  Complete message documentation:               
23           *  
24  		Synchronous/asynchronous message. Holds all attributes of item category.
25  		There are many item categories in UT2004. This class holds attributes for all of them.
26  		When some item category is exported just appropriate attributes are exported with it.
27  	
28           */
29   	public class ItemCategory 
30    				extends InfoMessage
31      			implements IWorldEvent, IWorldChangeEvent
32      			
33  	    	,ItemTyped
34  	    {
35   	
36      	/** Example how the message looks like - used during parser tests. */
37      	public static final String PROTOTYPE =
38      		"ITC {InventoryType text}  {PickupType xWeapons.FlakCannonPickup}  {ItemCategory null}  {Melee False}  {Sniping False}  {UsesAltAmmo False}  {PriFireModeType text}  {PriSplashDamage False}  {PriSplashJump False}  {PriRecomSplashDamage False}  {PriTossed False}  {PriLeadTarget False}  {PriInstantHit False}  {PriFireOnRelease False}  {PriWaitForRelease False}  {PriModeExclusive False}  {PriFireRate 0}  {PriBotRefireRate 0}  {PriAmmoPerFire 0}  {PriAmmoClipSize 0}  {PriAimError 0}  {PriSpread 0}  {PriSpreadStyle 0}  {PriFireCount 0}  {PriDamageAtten 0}  {PriAmmoType text}  {PriInitialAmount 0}  {PriMaxAmount 0}  {PriMaxRange 0}  {PriDamageType text}  {PriArmorStops False}  {PriAlwaysGibs False}  {PriSpecial False}  {PriDetonatesGoop False}  {PriSuperWeapon False}  {PriExtraMomZ False}  {PriProjType text}  {PriDamage 0}  {PriDamageMax 0}  {PriDamageMin 0}  {PriSpeed 0}  {PriMaxSpeed 0}  {PriLifeSpan 0}  {PriDamageRadius 0}  {PriTossZ 0}  {PriMaxEffectDistance 0}  {SecFireModeType text}  {SecSplashDamage False}  {SecSplashJump False}  {SecRecomSplashDamage False}  {SecTossed False}  {SecLeadTarget False}  {SecInstantHit False}  {SecFireOnRelease False}  {SecWaitForRelease False}  {SecModeExclusive False}  {SecFireRate 0}  {SecBotRefireRate 0}  {SecAmmoPerFire 0}  {SecAmmoClipSize 0}  {SecAimError 0}  {SecSpread 0}  {SecSpreadStyle 0}  {SecFireCount 0}  {SecDamageAtten 0}  {SecAmmoType text}  {SecInitialAmount 0}  {SecMaxAmount 0}  {SecMaxRange 0}  {SecDamageType text}  {SecArmorStops False}  {SecAlwaysGibs False}  {SecSpecial False}  {SecDetonatesGoop False}  {SecSuperWeapon False}  {SecExtraMomZ False}  {SecProjType text}  {SecDamage 0}  {SecDamageMax 0}  {SecDamageMin 0}  {SecSpeed 0}  {SecMaxSpeed 0}  {SecLifeSpan 0}  {SecDamageRadius 0}  {SecTossZ 0}  {SecMaxEffectDistance 0}  {Amount 0}  {SuperHeal False} ";
39      
40      	
41      	
42      	/**
43      	 * Parameter-less contructor for the message.
44      	 */
45  		public ItemCategory()
46  		{
47  		}
48  	
49      	
50      	
51      	
52      	/**
53  		 * Creates new instance of the message ItemCategory.
54  		 * 
55  		Synchronous/asynchronous message. Holds all attributes of item category.
56  		There are many item categories in UT2004. This class holds attributes for all of them.
57  		When some item category is exported just appropriate attributes are exported with it.
58  	
59  		 * Corresponding GameBots message
60  		 *   
61  		 *   is
62  		 *   ITC.
63  		 * 
64   	  	 * 
65  		 *   
66  		 *     @param InventoryType 
67  			By this class the item is represented in inventory. This is inventory type class.
68  		
69  		 *   
70  		 * 
71  		 *   
72  		 *     @param PickupType 
73  			By this class the item is represented in the map. This is pickup type class.
74  		
75  		 *   
76  		 * 
77  		 *   
78  		 *     @param ItemCategory 
79  			Category of the item. Can be "Weapon", "Adrenaline", "Ammo", "Armor", "Shield", "Health" or "Other".
80  		
81  		 *   
82  		 * 
83  		 *   
84  		 *     @param Melee 
85  		For Weapon. True if the weapon is melee weapon (close range).
86  		
87  		 *   
88  		 * 
89  		 *   
90  		 *     @param Sniping 
91  		For Weapon. True if the weapon is sniping weapon (long range).
92  		
93  		 *   
94  		 * 
95  		 *   
96  		 *     @param UsesAltAmmo 
97  		For Weapon. True if the weapon uses two separate ammos for primary and secondary firing mode.
98  		
99  		 *   
100 		 * 
101 		 *   
102 		 *     @param PriFireModeType 
103 			For Weapon, primary firing mode. Type of the firing mode. If none, the weapon does not have this fireing mode.
104 		
105 		 *   
106 		 * 
107 		 *   
108 		 *     @param PriSplashDamage 
109 			For Weapon, primary firing mode. If this mode does splash damage.
110 		
111 		 *   
112 		 * 
113 		 *   
114 		 *     @param PriSplashJump 
115 			For Weapon, primary firing mode. If the splash damage of this firing mode can be used for increasing jump height.
116 		
117 		 *   
118 		 * 
119 		 *   
120 		 *     @param PriRecomSplashDamage 
121 			For Weapon, primary firing mode. If the engine recommends to use this splash damage. TODO
122 		
123 		 *   
124 		 * 
125 		 *   
126 		 *     @param PriTossed 
127 			For Weapon, primary firing mode. If the this mode is tossing something (projectile) out.
128 		
129 		 *   
130 		 * 
131 		 *   
132 		 *     @param PriLeadTarget 
133 			For Weapon, primary firing mode. If this mode can lead the target. TODO
134 		
135 		 *   
136 		 * 
137 		 *   
138 		 *     @param PriInstantHit 
139 			For Weapon, primary firing mode. If this mode does instant hits - weapon hits instantly - no flying time for bullets.
140 		
141 		 *   
142 		 * 
143 		 *   
144 		 *     @param PriFireOnRelease 
145 			For Weapon, primary firing mode. If to fire this mode you need to press shooting button (start shooting) and then release it (stop shooting). Usually for charging weapons.
146 		
147 		 *   
148 		 * 
149 		 *   
150 		 *     @param PriWaitForRelease 
151 			For Weapon, primary firing mode. If to fire this mode you need to stop pressing shooting button between two shots to shoot. You will fire once when pressing the button, then you need to press it again to fire again.
152 		
153 		 *   
154 		 * 
155 		 *   
156 		 *     @param PriModeExclusive 
157 			For Weapon, primary firing mode. If this firing mode cannot be used at the same time with other firing mode of the weapon.
158 		
159 		 *   
160 		 * 
161 		 *   
162 		 *     @param PriFireRate 
163 			For Weapon, primary firing mode. Fire rate in seconds. How fast the weapon fires if we are firing continuosly.
164 		
165 		 *   
166 		 * 
167 		 *   
168 		 *     @param PriBotRefireRate 
169 			For Weapon, primary firing mode. Refire rate for bots in seconds. When we stop firing how long does it take to resume firing again.
170 		
171 		 *   
172 		 * 
173 		 *   
174 		 *     @param PriAmmoPerFire 
175 			For Weapon, primary firing mode. Needed amount of ammo to fire this weapon mode once.
176 		
177 		 *   
178 		 * 
179 		 *   
180 		 *     @param PriAmmoClipSize 
181 			For Weapon, primary firing mode. If the weapon mode has clips, their size. TODO
182 		
183 		 *   
184 		 * 
185 		 *   
186 		 *     @param PriAimError 
187 			For Weapon, primary firing mode. Aiming error of the weapon. 0 none, 1000 quite a bit.
188 		
189 		 *   
190 		 * 
191 		 *   
192 		 *     @param PriSpread 
193 			For Weapon, primary firing mode. Double, rotator units. No relation to aim error.
194 		
195 		 *   
196 		 * 
197 		 *   
198 		 *     @param PriSpreadStyle 
199 			For Weapon, primary firing mode. Type of spreading. TODO
200 		
201 		 *   
202 		 * 
203 		 *   
204 		 *     @param PriFireCount 
205 			For Weapon, primary firing mode. TODO
206 		
207 		 *   
208 		 * 
209 		 *   
210 		 *     @param PriDamageAtten 
211 			For Weapon, primary firing mode. Attenuate instant-hit/projectile damage by this multiplier.
212 		
213 		 *   
214 		 * 
215 		 *   
216 		 *     @param PriAmmoType 
217 			For Ammo or for Weapon, primary firing mode. Class of the ammo.
218 		
219 		 *   
220 		 * 
221 		 *   
222 		 *     @param PriInitialAmount 
223 			For Ammo or for Weapon, primary firing mode. Amount of ammo we get if we pick up the item (weapon or ammo) for the first time.
224 		
225 		 *   
226 		 * 
227 		 *   
228 		 *     @param PriMaxAmount 
229 			For Ammo or for Weapon, primary firing mode. Max amount of ammo of this type we can have in our inventory.
230 		
231 		 *   
232 		 * 
233 		 *   
234 		 *     @param PriMaxRange 
235 			For Ammo or for Weapon, primary firing mode. TODO
236 		
237 		 *   
238 		 * 
239 		 *   
240 		 *     @param PriDamageType 
241 			For Ammo or for Weapon, primary firing mode. Type of the damage. Maybe the same string for all damage.
242 		
243 		 *   
244 		 * 
245 		 *   
246 		 *     @param PriArmorStops 
247 			For Ammo or for Weapon, primary firing mode. If the armor is effective against this damage type.
248 		
249 		 *   
250 		 * 
251 		 *   
252 		 *     @param PriAlwaysGibs 
253 			For Ammo or for Weapon, primary firing mode. If this damage kills instantly.
254 		
255 		 *   
256 		 * 
257 		 *   
258 		 *     @param PriSpecial 
259 			For Ammo or for Weapon, primary firing mode. If this damage is special. TODO
260 		
261 		 *   
262 		 * 
263 		 *   
264 		 *     @param PriDetonatesGoop 
265 			For Ammo or for Weapon, primary firing mode. If this damage detonates goops. TODO
266 		
267 		 *   
268 		 * 
269 		 *   
270 		 *     @param PriSuperWeapon 
271 			For Ammo or for Weapon, primary firing mode. If this damage is super weapon damage. Kills everyone even teammates.
272 		
273 		 *   
274 		 * 
275 		 *   
276 		 *     @param PriExtraMomZ 
277 			For Ammo or for Weapon, primary firing mode. If this damage adds something to Panws momentum. TODO
278 		
279 		 *   
280 		 * 
281 		 *   
282 		 *     @param PriProjType 
283 			For Ammo or for Weapon, primary firing mode. Class of the projectile this ammo, weapon spawns. 
284 		
285 		 *   
286 		 * 
287 		 *   
288 		 *     @param PriDamage 
289 			For Ammo or for Weapon, primary firing mode. How much damage this projectile does.
290 		
291 		 *   
292 		 * 
293 		 *   
294 		 *     @param PriDamageMax 
295 			For Ammo or for Weapon, primary firing mode. How much maximum damage this projectile does.
296 		
297 		 *   
298 		 * 
299 		 *   
300 		 *     @param PriDamageMin 
301 			For Ammo or for Weapon, primary firing mode. How much minimum damage this projectile does.
302 		
303 		 *   
304 		 * 
305 		 *   
306 		 *     @param PriSpeed 
307 			For Ammo or for Weapon, primary firing mode. Default projectile speed.
308 		
309 		 *   
310 		 * 
311 		 *   
312 		 *     @param PriMaxSpeed 
313 			For Ammo or for Weapon, primary firing mode. Maximum projectile speed.
314 		
315 		 *   
316 		 * 
317 		 *   
318 		 *     @param PriLifeSpan 
319 			For Ammo or for Weapon, primary firing mode. Maximum amount of time in seconds this projectile can survive in the environment.
320 		
321 		 *   
322 		 * 
323 		 *   
324 		 *     @param PriDamageRadius 
325 			For Ammo or for Weapon, primary firing mode. If the projectile does splash damage, here is radius in ut units of the splash.
326 		
327 		 *   
328 		 * 
329 		 *   
330 		 *     @param PriTossZ 
331 			For Ammo or for Weapon, primary firing mode. If the projectile is tossed, here is velocity in Z direction of the toss. TODO
332 		
333 		 *   
334 		 * 
335 		 *   
336 		 *     @param PriMaxEffectDistance 
337 			For Ammo or for Weapon, primary firing mode. Maximum effective distance. TODO
338 		
339 		 *   
340 		 * 
341 		 *   
342 		 *     @param SecFireModeType 
343 			For Weapon, secondary firing mode. Type of the firing mode. If none, the weapon does not have this fireing mode.
344 		
345 		 *   
346 		 * 
347 		 *   
348 		 *     @param SecSplashDamage 
349 			For Weapon, secondary firing mode. If this mode does splash damage.
350 		
351 		 *   
352 		 * 
353 		 *   
354 		 *     @param SecSplashJump 
355 			For Weapon, secondary firing mode. If the splash damage of this firing mode can be used for increasing jump height.
356 		
357 		 *   
358 		 * 
359 		 *   
360 		 *     @param SecRecomSplashDamage 
361 			For Weapon, secondary firing mode. If the engine recommends to use this splash damage. TODO
362 		
363 		 *   
364 		 * 
365 		 *   
366 		 *     @param SecTossed 
367 			For Weapon, secondary firing mode. If the this mode is tossing something (projectile) out.
368 		
369 		 *   
370 		 * 
371 		 *   
372 		 *     @param SecLeadTarget 
373 			For Weapon, secondary firing mode. If this mode can lead the target. TODO
374 		
375 		 *   
376 		 * 
377 		 *   
378 		 *     @param SecInstantHit 
379 			For Weapon, secondary firing mode. If this mode does instant hits - weapon hits instantly - no flying time for bullets.
380 		
381 		 *   
382 		 * 
383 		 *   
384 		 *     @param SecFireOnRelease 
385 			For Weapon, secondary firing mode. If to fire this mode you need to press shooting button (start shooting) and then release it (stop shooting). Usually for charging weapons.
386 		
387 		 *   
388 		 * 
389 		 *   
390 		 *     @param SecWaitForRelease 
391 			For Weapon, secondary firing mode. If to fire this mode you need to stop pressing shooting button between two shots to shoot. You will fire once when pressing the button, then you need to press it again to fire again.
392 		
393 		 *   
394 		 * 
395 		 *   
396 		 *     @param SecModeExclusive 
397 			For Weapon, secondary firing mode. If this firing mode cannot be used at the same time with other firing mode of the weapon.
398 		
399 		 *   
400 		 * 
401 		 *   
402 		 *     @param SecFireRate 
403 			For Weapon, secondary firing mode. Fire rate in seconds.
404 		
405 		 *   
406 		 * 
407 		 *   
408 		 *     @param SecBotRefireRate 
409 			For Weapon, secondary firing mode. Refire rate for bots in seconds. TODO
410 		
411 		 *   
412 		 * 
413 		 *   
414 		 *     @param SecAmmoPerFire 
415 			For Weapon, secondary firing mode. Needed amount of ammo to fire this weapon mode once.
416 		
417 		 *   
418 		 * 
419 		 *   
420 		 *     @param SecAmmoClipSize 
421 			For Weapon, secondary firing mode. If the weapon mode has clips, their size. TODO
422 		
423 		 *   
424 		 * 
425 		 *   
426 		 *     @param SecAimError 
427 			For Weapon, secondary firing mode. Aiming error of the weapon. 0 none, 1000 quite a bit.
428 		
429 		 *   
430 		 * 
431 		 *   
432 		 *     @param SecSpread 
433 			For Weapon, secondary firing mode. Double, rotator units. No relation to aim error.
434 		
435 		 *   
436 		 * 
437 		 *   
438 		 *     @param SecSpreadStyle 
439 			For Weapon, secondary firing mode. Type of spreading. TODO
440 		
441 		 *   
442 		 * 
443 		 *   
444 		 *     @param SecFireCount 
445 			For Weapon, secondary firing mode. TODO
446 		
447 		 *   
448 		 * 
449 		 *   
450 		 *     @param SecDamageAtten 
451 			For Weapon, secondary firing mode. Attenuate instant-hit/projectile damage by this multiplier.
452 		
453 		 *   
454 		 * 
455 		 *   
456 		 *     @param SecAmmoType 
457 			For Ammo or for Weapon, secondary firing mode. Class of the ammo.
458 		
459 		 *   
460 		 * 
461 		 *   
462 		 *     @param SecInitialAmount 
463 			For Ammo or for Weapon, secondary firing mode. Amount of ammo we get if we pick up the item (weapon or ammo) for the first time.
464 		
465 		 *   
466 		 * 
467 		 *   
468 		 *     @param SecMaxAmount 
469 			For Ammo or for Weapon, secondary firing mode. Max amount of ammo of this type we can have in our inventory.
470 		
471 		 *   
472 		 * 
473 		 *   
474 		 *     @param SecMaxRange 
475 			For Ammo or for Weapon, secondary firing mode. TODO
476 		
477 		 *   
478 		 * 
479 		 *   
480 		 *     @param SecDamageType 
481 			For Ammo or for Weapon, secondary firing mode. Type of the damage. Maybe the same string for all damage.
482 		
483 		 *   
484 		 * 
485 		 *   
486 		 *     @param SecArmorStops 
487 			For Ammo or for Weapon, secondary firing mode. If the armor is effective against this damage type.
488 		
489 		 *   
490 		 * 
491 		 *   
492 		 *     @param SecAlwaysGibs 
493 			For Ammo or for Weapon, secondary firing mode. If this damage kills instantly.
494 		
495 		 *   
496 		 * 
497 		 *   
498 		 *     @param SecSpecial 
499 			For Ammo or for Weapon, secondary firing mode. If this damage is special. TODO
500 		
501 		 *   
502 		 * 
503 		 *   
504 		 *     @param SecDetonatesGoop 
505 			For Ammo or for Weapon, secondary firing mode. If this damage detonates goops. TODO
506 		
507 		 *   
508 		 * 
509 		 *   
510 		 *     @param SecSuperWeapon 
511 			For Ammo or for Weapon, secondary firing mode. If this damage is super weapon damage. Kills everyone even teammates.
512 		
513 		 *   
514 		 * 
515 		 *   
516 		 *     @param SecExtraMomZ 
517 			For Ammo or for Weapon, secondary firing mode. If this damage adds something to Pawns momentum. TODO
518 		
519 		 *   
520 		 * 
521 		 *   
522 		 *     @param SecProjType 
523 			For Ammo or for Weapon, secondary firing mode. Class of the projectile this ammo, weapon spawns. 
524 		
525 		 *   
526 		 * 
527 		 *   
528 		 *     @param SecDamage 
529 			For Ammo or for Weapon, secondary firing mode. How much damage this projectile does.
530 		
531 		 *   
532 		 * 
533 		 *   
534 		 *     @param SecDamageMax 
535 			For Ammo or for Weapon, secondary firing mode. How much maximum damage this projectile does.
536 		
537 		 *   
538 		 * 
539 		 *   
540 		 *     @param SecDamageMin 
541 			For Ammo or for Weapon, secondary firing mode. How much minimum damage this projectile does.
542 		
543 		 *   
544 		 * 
545 		 *   
546 		 *     @param SecSpeed 
547 			For Ammo or for Weapon, secondary firing mode. Default projectile speed.
548 		
549 		 *   
550 		 * 
551 		 *   
552 		 *     @param SecMaxSpeed 
553 			For Ammo or for Weapon, secondary firing mode. Maximum projectile speed.
554 		
555 		 *   
556 		 * 
557 		 *   
558 		 *     @param SecLifeSpan 
559 			For Ammo or for Weapon, secondary firing mode. Maximum amount of time in seconds this projectile can survive in the environment.
560 		
561 		 *   
562 		 * 
563 		 *   
564 		 *     @param SecDamageRadius 
565 			For Ammo or for Weapon, secondary firing mode. If the projectile does splash damage, here is radius in ut units of the splash.
566 		
567 		 *   
568 		 * 
569 		 *   
570 		 *     @param SecTossZ 
571 			For Ammo or for Weapon, secondary firing mode. If the projectile is tossed, here is velocity in Z direction of the toss. TODO
572 		
573 		 *   
574 		 * 
575 		 *   
576 		 *     @param SecMaxEffectDistance 
577 			For Ammo or for Weapon, secondary firing mode. Maximum effective distance. TODO
578 		
579 		 *   
580 		 * 
581 		 *   
582 		 *     @param Amount 
583 			If this item is some ammo or health pack, here we can find
584 			out how much of the attribute this item will add.
585 		
586 		 *   
587 		 * 
588 		 *   
589 		 *     @param SuperHeal 
590 			If this item is health. True if super health.
591 		
592 		 *   
593 		 * 
594 		 */
595 		public ItemCategory(
596 			String InventoryType,  ItemType PickupType,  Category ItemCategory,  boolean Melee,  boolean Sniping,  boolean UsesAltAmmo,  String PriFireModeType,  boolean PriSplashDamage,  boolean PriSplashJump,  boolean PriRecomSplashDamage,  boolean PriTossed,  boolean PriLeadTarget,  boolean PriInstantHit,  boolean PriFireOnRelease,  boolean PriWaitForRelease,  boolean PriModeExclusive,  double PriFireRate,  double PriBotRefireRate,  int PriAmmoPerFire,  int PriAmmoClipSize,  double PriAimError,  double PriSpread,  int PriSpreadStyle,  int PriFireCount,  double PriDamageAtten,  String PriAmmoType,  int PriInitialAmount,  int PriMaxAmount,  double PriMaxRange,  String PriDamageType,  boolean PriArmorStops,  boolean PriAlwaysGibs,  boolean PriSpecial,  boolean PriDetonatesGoop,  boolean PriSuperWeapon,  boolean PriExtraMomZ,  String PriProjType,  double PriDamage,  double PriDamageMax,  double PriDamageMin,  double PriSpeed,  double PriMaxSpeed,  double PriLifeSpan,  double PriDamageRadius,  double PriTossZ,  double PriMaxEffectDistance,  String SecFireModeType,  boolean SecSplashDamage,  boolean SecSplashJump,  boolean SecRecomSplashDamage,  boolean SecTossed,  boolean SecLeadTarget,  boolean SecInstantHit,  boolean SecFireOnRelease,  boolean SecWaitForRelease,  boolean SecModeExclusive,  double SecFireRate,  double SecBotRefireRate,  int SecAmmoPerFire,  int SecAmmoClipSize,  double SecAimError,  double SecSpread,  int SecSpreadStyle,  int SecFireCount,  double SecDamageAtten,  String SecAmmoType,  int SecInitialAmount,  int SecMaxAmount,  double SecMaxRange,  String SecDamageType,  boolean SecArmorStops,  boolean SecAlwaysGibs,  boolean SecSpecial,  boolean SecDetonatesGoop,  boolean SecSuperWeapon,  boolean SecExtraMomZ,  String SecProjType,  double SecDamage,  double SecDamageMax,  double SecDamageMin,  double SecSpeed,  double SecMaxSpeed,  double SecLifeSpan,  double SecDamageRadius,  double SecTossZ,  double SecMaxEffectDistance,  int Amount,  boolean SuperHeal
597 		) {
598 			
599 					this.InventoryType = InventoryType;
600 				
601 					this.PickupType = PickupType;
602 				
603 					this.ItemCategory = ItemCategory;
604 				
605 					this.Melee = Melee;
606 				
607 					this.Sniping = Sniping;
608 				
609 					this.UsesAltAmmo = UsesAltAmmo;
610 				
611 					this.PriFireModeType = PriFireModeType;
612 				
613 					this.PriSplashDamage = PriSplashDamage;
614 				
615 					this.PriSplashJump = PriSplashJump;
616 				
617 					this.PriRecomSplashDamage = PriRecomSplashDamage;
618 				
619 					this.PriTossed = PriTossed;
620 				
621 					this.PriLeadTarget = PriLeadTarget;
622 				
623 					this.PriInstantHit = PriInstantHit;
624 				
625 					this.PriFireOnRelease = PriFireOnRelease;
626 				
627 					this.PriWaitForRelease = PriWaitForRelease;
628 				
629 					this.PriModeExclusive = PriModeExclusive;
630 				
631 					this.PriFireRate = PriFireRate;
632 				
633 					this.PriBotRefireRate = PriBotRefireRate;
634 				
635 					this.PriAmmoPerFire = PriAmmoPerFire;
636 				
637 					this.PriAmmoClipSize = PriAmmoClipSize;
638 				
639 					this.PriAimError = PriAimError;
640 				
641 					this.PriSpread = PriSpread;
642 				
643 					this.PriSpreadStyle = PriSpreadStyle;
644 				
645 					this.PriFireCount = PriFireCount;
646 				
647 					this.PriDamageAtten = PriDamageAtten;
648 				
649 					this.PriAmmoType = PriAmmoType;
650 				
651 					this.PriInitialAmount = PriInitialAmount;
652 				
653 					this.PriMaxAmount = PriMaxAmount;
654 				
655 					this.PriMaxRange = PriMaxRange;
656 				
657 					this.PriDamageType = PriDamageType;
658 				
659 					this.PriArmorStops = PriArmorStops;
660 				
661 					this.PriAlwaysGibs = PriAlwaysGibs;
662 				
663 					this.PriSpecial = PriSpecial;
664 				
665 					this.PriDetonatesGoop = PriDetonatesGoop;
666 				
667 					this.PriSuperWeapon = PriSuperWeapon;
668 				
669 					this.PriExtraMomZ = PriExtraMomZ;
670 				
671 					this.PriProjType = PriProjType;
672 				
673 					this.PriDamage = PriDamage;
674 				
675 					this.PriDamageMax = PriDamageMax;
676 				
677 					this.PriDamageMin = PriDamageMin;
678 				
679 					this.PriSpeed = PriSpeed;
680 				
681 					this.PriMaxSpeed = PriMaxSpeed;
682 				
683 					this.PriLifeSpan = PriLifeSpan;
684 				
685 					this.PriDamageRadius = PriDamageRadius;
686 				
687 					this.PriTossZ = PriTossZ;
688 				
689 					this.PriMaxEffectDistance = PriMaxEffectDistance;
690 				
691 					this.SecFireModeType = SecFireModeType;
692 				
693 					this.SecSplashDamage = SecSplashDamage;
694 				
695 					this.SecSplashJump = SecSplashJump;
696 				
697 					this.SecRecomSplashDamage = SecRecomSplashDamage;
698 				
699 					this.SecTossed = SecTossed;
700 				
701 					this.SecLeadTarget = SecLeadTarget;
702 				
703 					this.SecInstantHit = SecInstantHit;
704 				
705 					this.SecFireOnRelease = SecFireOnRelease;
706 				
707 					this.SecWaitForRelease = SecWaitForRelease;
708 				
709 					this.SecModeExclusive = SecModeExclusive;
710 				
711 					this.SecFireRate = SecFireRate;
712 				
713 					this.SecBotRefireRate = SecBotRefireRate;
714 				
715 					this.SecAmmoPerFire = SecAmmoPerFire;
716 				
717 					this.SecAmmoClipSize = SecAmmoClipSize;
718 				
719 					this.SecAimError = SecAimError;
720 				
721 					this.SecSpread = SecSpread;
722 				
723 					this.SecSpreadStyle = SecSpreadStyle;
724 				
725 					this.SecFireCount = SecFireCount;
726 				
727 					this.SecDamageAtten = SecDamageAtten;
728 				
729 					this.SecAmmoType = SecAmmoType;
730 				
731 					this.SecInitialAmount = SecInitialAmount;
732 				
733 					this.SecMaxAmount = SecMaxAmount;
734 				
735 					this.SecMaxRange = SecMaxRange;
736 				
737 					this.SecDamageType = SecDamageType;
738 				
739 					this.SecArmorStops = SecArmorStops;
740 				
741 					this.SecAlwaysGibs = SecAlwaysGibs;
742 				
743 					this.SecSpecial = SecSpecial;
744 				
745 					this.SecDetonatesGoop = SecDetonatesGoop;
746 				
747 					this.SecSuperWeapon = SecSuperWeapon;
748 				
749 					this.SecExtraMomZ = SecExtraMomZ;
750 				
751 					this.SecProjType = SecProjType;
752 				
753 					this.SecDamage = SecDamage;
754 				
755 					this.SecDamageMax = SecDamageMax;
756 				
757 					this.SecDamageMin = SecDamageMin;
758 				
759 					this.SecSpeed = SecSpeed;
760 				
761 					this.SecMaxSpeed = SecMaxSpeed;
762 				
763 					this.SecLifeSpan = SecLifeSpan;
764 				
765 					this.SecDamageRadius = SecDamageRadius;
766 				
767 					this.SecTossZ = SecTossZ;
768 				
769 					this.SecMaxEffectDistance = SecMaxEffectDistance;
770 				
771 					this.Amount = Amount;
772 				
773 					this.SuperHeal = SuperHeal;
774 				
775 		}
776     
777     	/**
778 		 * Cloning constructor from the full message.
779 		 *
780 		 * @param original
781 		 */
782 		public ItemCategory(ItemCategory original) {		
783 			
784 					this.InventoryType = original.getInventoryType()
785  	;
786 				
787 					this.PickupType = original.getPickupType()
788  	;
789 				
790 					this.ItemCategory = original.getItemCategory()
791  	;
792 				
793 					this.Melee = original.isMelee()
794  	;
795 				
796 					this.Sniping = original.isSniping()
797  	;
798 				
799 					this.UsesAltAmmo = original.isUsesAltAmmo()
800  	;
801 				
802 					this.PriFireModeType = original.getPriFireModeType()
803  	;
804 				
805 					this.PriSplashDamage = original.isPriSplashDamage()
806  	;
807 				
808 					this.PriSplashJump = original.isPriSplashJump()
809  	;
810 				
811 					this.PriRecomSplashDamage = original.isPriRecomSplashDamage()
812  	;
813 				
814 					this.PriTossed = original.isPriTossed()
815  	;
816 				
817 					this.PriLeadTarget = original.isPriLeadTarget()
818  	;
819 				
820 					this.PriInstantHit = original.isPriInstantHit()
821  	;
822 				
823 					this.PriFireOnRelease = original.isPriFireOnRelease()
824  	;
825 				
826 					this.PriWaitForRelease = original.isPriWaitForRelease()
827  	;
828 				
829 					this.PriModeExclusive = original.isPriModeExclusive()
830  	;
831 				
832 					this.PriFireRate = original.getPriFireRate()
833  	;
834 				
835 					this.PriBotRefireRate = original.getPriBotRefireRate()
836  	;
837 				
838 					this.PriAmmoPerFire = original.getPriAmmoPerFire()
839  	;
840 				
841 					this.PriAmmoClipSize = original.getPriAmmoClipSize()
842  	;
843 				
844 					this.PriAimError = original.getPriAimError()
845  	;
846 				
847 					this.PriSpread = original.getPriSpread()
848  	;
849 				
850 					this.PriSpreadStyle = original.getPriSpreadStyle()
851  	;
852 				
853 					this.PriFireCount = original.getPriFireCount()
854  	;
855 				
856 					this.PriDamageAtten = original.getPriDamageAtten()
857  	;
858 				
859 					this.PriAmmoType = original.getPriAmmoType()
860  	;
861 				
862 					this.PriInitialAmount = original.getPriInitialAmount()
863  	;
864 				
865 					this.PriMaxAmount = original.getPriMaxAmount()
866  	;
867 				
868 					this.PriMaxRange = original.getPriMaxRange()
869  	;
870 				
871 					this.PriDamageType = original.getPriDamageType()
872  	;
873 				
874 					this.PriArmorStops = original.isPriArmorStops()
875  	;
876 				
877 					this.PriAlwaysGibs = original.isPriAlwaysGibs()
878  	;
879 				
880 					this.PriSpecial = original.isPriSpecial()
881  	;
882 				
883 					this.PriDetonatesGoop = original.isPriDetonatesGoop()
884  	;
885 				
886 					this.PriSuperWeapon = original.isPriSuperWeapon()
887  	;
888 				
889 					this.PriExtraMomZ = original.isPriExtraMomZ()
890  	;
891 				
892 					this.PriProjType = original.getPriProjType()
893  	;
894 				
895 					this.PriDamage = original.getPriDamage()
896  	;
897 				
898 					this.PriDamageMax = original.getPriDamageMax()
899  	;
900 				
901 					this.PriDamageMin = original.getPriDamageMin()
902  	;
903 				
904 					this.PriSpeed = original.getPriSpeed()
905  	;
906 				
907 					this.PriMaxSpeed = original.getPriMaxSpeed()
908  	;
909 				
910 					this.PriLifeSpan = original.getPriLifeSpan()
911  	;
912 				
913 					this.PriDamageRadius = original.getPriDamageRadius()
914  	;
915 				
916 					this.PriTossZ = original.getPriTossZ()
917  	;
918 				
919 					this.PriMaxEffectDistance = original.getPriMaxEffectDistance()
920  	;
921 				
922 					this.SecFireModeType = original.getSecFireModeType()
923  	;
924 				
925 					this.SecSplashDamage = original.isSecSplashDamage()
926  	;
927 				
928 					this.SecSplashJump = original.isSecSplashJump()
929  	;
930 				
931 					this.SecRecomSplashDamage = original.isSecRecomSplashDamage()
932  	;
933 				
934 					this.SecTossed = original.isSecTossed()
935  	;
936 				
937 					this.SecLeadTarget = original.isSecLeadTarget()
938  	;
939 				
940 					this.SecInstantHit = original.isSecInstantHit()
941  	;
942 				
943 					this.SecFireOnRelease = original.isSecFireOnRelease()
944  	;
945 				
946 					this.SecWaitForRelease = original.isSecWaitForRelease()
947  	;
948 				
949 					this.SecModeExclusive = original.isSecModeExclusive()
950  	;
951 				
952 					this.SecFireRate = original.getSecFireRate()
953  	;
954 				
955 					this.SecBotRefireRate = original.getSecBotRefireRate()
956  	;
957 				
958 					this.SecAmmoPerFire = original.getSecAmmoPerFire()
959  	;
960 				
961 					this.SecAmmoClipSize = original.getSecAmmoClipSize()
962  	;
963 				
964 					this.SecAimError = original.getSecAimError()
965  	;
966 				
967 					this.SecSpread = original.getSecSpread()
968  	;
969 				
970 					this.SecSpreadStyle = original.getSecSpreadStyle()
971  	;
972 				
973 					this.SecFireCount = original.getSecFireCount()
974  	;
975 				
976 					this.SecDamageAtten = original.getSecDamageAtten()
977  	;
978 				
979 					this.SecAmmoType = original.getSecAmmoType()
980  	;
981 				
982 					this.SecInitialAmount = original.getSecInitialAmount()
983  	;
984 				
985 					this.SecMaxAmount = original.getSecMaxAmount()
986  	;
987 				
988 					this.SecMaxRange = original.getSecMaxRange()
989  	;
990 				
991 					this.SecDamageType = original.getSecDamageType()
992  	;
993 				
994 					this.SecArmorStops = original.isSecArmorStops()
995  	;
996 				
997 					this.SecAlwaysGibs = original.isSecAlwaysGibs()
998  	;
999 				
1000 					this.SecSpecial = original.isSecSpecial()
1001  	;
1002 				
1003 					this.SecDetonatesGoop = original.isSecDetonatesGoop()
1004  	;
1005 				
1006 					this.SecSuperWeapon = original.isSecSuperWeapon()
1007  	;
1008 				
1009 					this.SecExtraMomZ = original.isSecExtraMomZ()
1010  	;
1011 				
1012 					this.SecProjType = original.getSecProjType()
1013  	;
1014 				
1015 					this.SecDamage = original.getSecDamage()
1016  	;
1017 				
1018 					this.SecDamageMax = original.getSecDamageMax()
1019  	;
1020 				
1021 					this.SecDamageMin = original.getSecDamageMin()
1022  	;
1023 				
1024 					this.SecSpeed = original.getSecSpeed()
1025  	;
1026 				
1027 					this.SecMaxSpeed = original.getSecMaxSpeed()
1028  	;
1029 				
1030 					this.SecLifeSpan = original.getSecLifeSpan()
1031  	;
1032 				
1033 					this.SecDamageRadius = original.getSecDamageRadius()
1034  	;
1035 				
1036 					this.SecTossZ = original.getSecTossZ()
1037  	;
1038 				
1039 					this.SecMaxEffectDistance = original.getSecMaxEffectDistance()
1040  	;
1041 				
1042 					this.Amount = original.getAmount()
1043  	;
1044 				
1045 					this.SuperHeal = original.isSuperHeal()
1046  	;
1047 				
1048 			this.SimTime = original.getSimTime();			
1049 		}
1050 		
1051 	   		
1052 			protected long SimTime;
1053 				
1054 			/**
1055 			 * Simulation time in MILLI SECONDS !!!
1056 			 */	
1057 			@Override
1058 			public long getSimTime() {
1059 				return SimTime;
1060 			}
1061 						
1062 			/**
1063 			 * Used by Yylex to slip correct time of the object or programmatically.
1064 			 */
1065 			protected void setSimTime(long SimTime) {
1066 				this.SimTime = SimTime;
1067 			}
1068 	   	
1069     	
1070 	    /**
1071          * 
1072 			By this class the item is represented in inventory. This is inventory type class.
1073 		 
1074          */
1075         protected
1076          String InventoryType =
1077        	null;
1078 	
1079  		/**
1080          * 
1081 			By this class the item is represented in inventory. This is inventory type class.
1082 		 
1083          */
1084         public  String getInventoryType()
1085  	 {
1086     					return InventoryType;
1087     				}
1088     			
1089     	
1090 	    /**
1091          * 
1092 			By this class the item is represented in the map. This is pickup type class.
1093 		 
1094          */
1095         protected
1096          ItemType PickupType =
1097        	null;
1098 	
1099  		/**
1100          * 
1101 			By this class the item is represented in the map. This is pickup type class.
1102 		 
1103          */
1104         public  ItemType getPickupType()
1105  	 {
1106     					return PickupType;
1107     				}
1108     			
1109     	
1110 	    /**
1111          * 
1112 			Category of the item. Can be "Weapon", "Adrenaline", "Ammo", "Armor", "Shield", "Health" or "Other".
1113 		 
1114          */
1115         protected
1116          Category ItemCategory =
1117        	null;
1118 	
1119  		/**
1120          * 
1121 			Category of the item. Can be "Weapon", "Adrenaline", "Ammo", "Armor", "Shield", "Health" or "Other".
1122 		 
1123          */
1124         public  Category getItemCategory()
1125  	 {
1126     					return ItemCategory;
1127     				}
1128     			
1129     	
1130 	    /**
1131          * 
1132 		For Weapon. True if the weapon is melee weapon (close range).
1133 		 
1134          */
1135         protected
1136          boolean Melee =
1137        	false;
1138 	
1139  		/**
1140          * 
1141 		For Weapon. True if the weapon is melee weapon (close range).
1142 		 
1143          */
1144         public  boolean isMelee()
1145  	 {
1146     					return Melee;
1147     				}
1148     			
1149     	
1150 	    /**
1151          * 
1152 		For Weapon. True if the weapon is sniping weapon (long range).
1153 		 
1154          */
1155         protected
1156          boolean Sniping =
1157        	false;
1158 	
1159  		/**
1160          * 
1161 		For Weapon. True if the weapon is sniping weapon (long range).
1162 		 
1163          */
1164         public  boolean isSniping()
1165  	 {
1166     					return Sniping;
1167     				}
1168     			
1169     	
1170 	    /**
1171          * 
1172 		For Weapon. True if the weapon uses two separate ammos for primary and secondary firing mode.
1173 		 
1174          */
1175         protected
1176          boolean UsesAltAmmo =
1177        	false;
1178 	
1179  		/**
1180          * 
1181 		For Weapon. True if the weapon uses two separate ammos for primary and secondary firing mode.
1182 		 
1183          */
1184         public  boolean isUsesAltAmmo()
1185  	 {
1186     					return UsesAltAmmo;
1187     				}
1188     			
1189     	
1190 	    /**
1191          * 
1192 			For Weapon, primary firing mode. Type of the firing mode. If none, the weapon does not have this fireing mode.
1193 		 
1194          */
1195         protected
1196          String PriFireModeType =
1197        	null;
1198 	
1199  		/**
1200          * 
1201 			For Weapon, primary firing mode. Type of the firing mode. If none, the weapon does not have this fireing mode.
1202 		 
1203          */
1204         public  String getPriFireModeType()
1205  	 {
1206     					return PriFireModeType;
1207     				}
1208     			
1209     	
1210 	    /**
1211          * 
1212 			For Weapon, primary firing mode. If this mode does splash damage.
1213 		 
1214          */
1215         protected
1216          boolean PriSplashDamage =
1217        	false;
1218 	
1219  		/**
1220          * 
1221 			For Weapon, primary firing mode. If this mode does splash damage.
1222 		 
1223          */
1224         public  boolean isPriSplashDamage()
1225  	 {
1226     					return PriSplashDamage;
1227     				}
1228     			
1229     	
1230 	    /**
1231          * 
1232 			For Weapon, primary firing mode. If the splash damage of this firing mode can be used for increasing jump height.
1233 		 
1234          */
1235         protected
1236          boolean PriSplashJump =
1237        	false;
1238 	
1239  		/**
1240          * 
1241 			For Weapon, primary firing mode. If the splash damage of this firing mode can be used for increasing jump height.
1242 		 
1243          */
1244         public  boolean isPriSplashJump()
1245  	 {
1246     					return PriSplashJump;
1247     				}
1248     			
1249     	
1250 	    /**
1251          * 
1252 			For Weapon, primary firing mode. If the engine recommends to use this splash damage. TODO
1253 		 
1254          */
1255         protected
1256          boolean PriRecomSplashDamage =
1257        	false;
1258 	
1259  		/**
1260          * 
1261 			For Weapon, primary firing mode. If the engine recommends to use this splash damage. TODO
1262 		 
1263          */
1264         public  boolean isPriRecomSplashDamage()
1265  	 {
1266     					return PriRecomSplashDamage;
1267     				}
1268     			
1269     	
1270 	    /**
1271          * 
1272 			For Weapon, primary firing mode. If the this mode is tossing something (projectile) out.
1273 		 
1274          */
1275         protected
1276          boolean PriTossed =
1277        	false;
1278 	
1279  		/**
1280          * 
1281 			For Weapon, primary firing mode. If the this mode is tossing something (projectile) out.
1282 		 
1283          */
1284         public  boolean isPriTossed()
1285  	 {
1286     					return PriTossed;
1287     				}
1288     			
1289     	
1290 	    /**
1291          * 
1292 			For Weapon, primary firing mode. If this mode can lead the target. TODO
1293 		 
1294          */
1295         protected
1296          boolean PriLeadTarget =
1297        	false;
1298 	
1299  		/**
1300          * 
1301 			For Weapon, primary firing mode. If this mode can lead the target. TODO
1302 		 
1303          */
1304         public  boolean isPriLeadTarget()
1305  	 {
1306     					return PriLeadTarget;
1307     				}
1308     			
1309     	
1310 	    /**
1311          * 
1312 			For Weapon, primary firing mode. If this mode does instant hits - weapon hits instantly - no flying time for bullets.
1313 		 
1314          */
1315         protected
1316          boolean PriInstantHit =
1317        	false;
1318 	
1319  		/**
1320          * 
1321 			For Weapon, primary firing mode. If this mode does instant hits - weapon hits instantly - no flying time for bullets.
1322 		 
1323          */
1324         public  boolean isPriInstantHit()
1325  	 {
1326     					return PriInstantHit;
1327     				}
1328     			
1329     	
1330 	    /**
1331          * 
1332 			For Weapon, primary firing mode. If to fire this mode you need to press shooting button (start shooting) and then release it (stop shooting). Usually for charging weapons.
1333 		 
1334          */
1335         protected
1336          boolean PriFireOnRelease =
1337        	false;
1338 	
1339  		/**
1340          * 
1341 			For Weapon, primary firing mode. If to fire this mode you need to press shooting button (start shooting) and then release it (stop shooting). Usually for charging weapons.
1342 		 
1343          */
1344         public  boolean isPriFireOnRelease()
1345  	 {
1346     					return PriFireOnRelease;
1347     				}
1348     			
1349     	
1350 	    /**
1351          * 
1352 			For Weapon, primary firing mode. If to fire this mode you need to stop pressing shooting button between two shots to shoot. You will fire once when pressing the button, then you need to press it again to fire again.
1353 		 
1354          */
1355         protected
1356          boolean PriWaitForRelease =
1357        	false;
1358 	
1359  		/**
1360          * 
1361 			For Weapon, primary firing mode. If to fire this mode you need to stop pressing shooting button between two shots to shoot. You will fire once when pressing the button, then you need to press it again to fire again.
1362 		 
1363          */
1364         public  boolean isPriWaitForRelease()
1365  	 {
1366     					return PriWaitForRelease;
1367     				}
1368     			
1369     	
1370 	    /**
1371          * 
1372 			For Weapon, primary firing mode. If this firing mode cannot be used at the same time with other firing mode of the weapon.
1373 		 
1374          */
1375         protected
1376          boolean PriModeExclusive =
1377        	false;
1378 	
1379  		/**
1380          * 
1381 			For Weapon, primary firing mode. If this firing mode cannot be used at the same time with other firing mode of the weapon.
1382 		 
1383          */
1384         public  boolean isPriModeExclusive()
1385  	 {
1386     					return PriModeExclusive;
1387     				}
1388     			
1389     	
1390 	    /**
1391          * 
1392 			For Weapon, primary firing mode. Fire rate in seconds. How fast the weapon fires if we are firing continuosly.
1393 		 
1394          */
1395         protected
1396          double PriFireRate =
1397        	0;
1398 	
1399  		/**
1400          * 
1401 			For Weapon, primary firing mode. Fire rate in seconds. How fast the weapon fires if we are firing continuosly.
1402 		 
1403          */
1404         public  double getPriFireRate()
1405  	 {
1406     					return PriFireRate;
1407     				}
1408     			
1409     	
1410 	    /**
1411          * 
1412 			For Weapon, primary firing mode. Refire rate for bots in seconds. When we stop firing how long does it take to resume firing again.
1413 		 
1414          */
1415         protected
1416          double PriBotRefireRate =
1417        	0;
1418 	
1419  		/**
1420          * 
1421 			For Weapon, primary firing mode. Refire rate for bots in seconds. When we stop firing how long does it take to resume firing again.
1422 		 
1423          */
1424         public  double getPriBotRefireRate()
1425  	 {
1426     					return PriBotRefireRate;
1427     				}
1428     			
1429     	
1430 	    /**
1431          * 
1432 			For Weapon, primary firing mode. Needed amount of ammo to fire this weapon mode once.
1433 		 
1434          */
1435         protected
1436          int PriAmmoPerFire =
1437        	0;
1438 	
1439  		/**
1440          * 
1441 			For Weapon, primary firing mode. Needed amount of ammo to fire this weapon mode once.
1442 		 
1443          */
1444         public  int getPriAmmoPerFire()
1445  	 {
1446     					return PriAmmoPerFire;
1447     				}
1448     			
1449     	
1450 	    /**
1451          * 
1452 			For Weapon, primary firing mode. If the weapon mode has clips, their size. TODO
1453 		 
1454          */
1455         protected
1456          int PriAmmoClipSize =
1457        	0;
1458 	
1459  		/**
1460          * 
1461 			For Weapon, primary firing mode. If the weapon mode has clips, their size. TODO
1462 		 
1463          */
1464         public  int getPriAmmoClipSize()
1465  	 {
1466     					return PriAmmoClipSize;
1467     				}
1468     			
1469     	
1470 	    /**
1471          * 
1472 			For Weapon, primary firing mode. Aiming error of the weapon. 0 none, 1000 quite a bit.
1473 		 
1474          */
1475         protected
1476          double PriAimError =
1477        	0;
1478 	
1479  		/**
1480          * 
1481 			For Weapon, primary firing mode. Aiming error of the weapon. 0 none, 1000 quite a bit.
1482 		 
1483          */
1484         public  double getPriAimError()
1485  	 {
1486     					return PriAimError;
1487     				}
1488     			
1489     	
1490 	    /**
1491          * 
1492 			For Weapon, primary firing mode. Double, rotator units. No relation to aim error.
1493 		 
1494          */
1495         protected
1496          double PriSpread =
1497        	0;
1498 	
1499  		/**
1500          * 
1501 			For Weapon, primary firing mode. Double, rotator units. No relation to aim error.
1502 		 
1503          */
1504         public  double getPriSpread()
1505  	 {
1506     					return PriSpread;
1507     				}
1508     			
1509     	
1510 	    /**
1511          * 
1512 			For Weapon, primary firing mode. Type of spreading. TODO
1513 		 
1514          */
1515         protected
1516          int PriSpreadStyle =
1517        	0;
1518 	
1519  		/**
1520          * 
1521 			For Weapon, primary firing mode. Type of spreading. TODO
1522 		 
1523          */
1524         public  int getPriSpreadStyle()
1525  	 {
1526     					return PriSpreadStyle;
1527     				}
1528     			
1529     	
1530 	    /**
1531          * 
1532 			For Weapon, primary firing mode. TODO
1533 		 
1534          */
1535         protected
1536          int PriFireCount =
1537        	0;
1538 	
1539  		/**
1540          * 
1541 			For Weapon, primary firing mode. TODO
1542 		 
1543          */
1544         public  int getPriFireCount()
1545  	 {
1546     					return PriFireCount;
1547     				}
1548     			
1549     	
1550 	    /**
1551          * 
1552 			For Weapon, primary firing mode. Attenuate instant-hit/projectile damage by this multiplier.
1553 		 
1554          */
1555         protected
1556          double PriDamageAtten =
1557        	0;
1558 	
1559  		/**
1560          * 
1561 			For Weapon, primary firing mode. Attenuate instant-hit/projectile damage by this multiplier.
1562 		 
1563          */
1564         public  double getPriDamageAtten()
1565  	 {
1566     					return PriDamageAtten;
1567     				}
1568     			
1569     	
1570 	    /**
1571          * 
1572 			For Ammo or for Weapon, primary firing mode. Class of the ammo.
1573 		 
1574          */
1575         protected
1576          String PriAmmoType =
1577        	null;
1578 	
1579  		/**
1580          * 
1581 			For Ammo or for Weapon, primary firing mode. Class of the ammo.
1582 		 
1583          */
1584         public  String getPriAmmoType()
1585  	 {
1586     					return PriAmmoType;
1587     				}
1588     			
1589     	
1590 	    /**
1591          * 
1592 			For Ammo or for Weapon, primary firing mode. Amount of ammo we get if we pick up the item (weapon or ammo) for the first time.
1593 		 
1594          */
1595         protected
1596          int PriInitialAmount =
1597        	0;
1598 	
1599  		/**
1600          * 
1601 			For Ammo or for Weapon, primary firing mode. Amount of ammo we get if we pick up the item (weapon or ammo) for the first time.
1602 		 
1603          */
1604         public  int getPriInitialAmount()
1605  	 {
1606     					return PriInitialAmount;
1607     				}
1608     			
1609     	
1610 	    /**
1611          * 
1612 			For Ammo or for Weapon, primary firing mode. Max amount of ammo of this type we can have in our inventory.
1613 		 
1614          */
1615         protected
1616          int PriMaxAmount =
1617        	0;
1618 	
1619  		/**
1620          * 
1621 			For Ammo or for Weapon, primary firing mode. Max amount of ammo of this type we can have in our inventory.
1622 		 
1623          */
1624         public  int getPriMaxAmount()
1625  	 {
1626     					return PriMaxAmount;
1627     				}
1628     			
1629     	
1630 	    /**
1631          * 
1632 			For Ammo or for Weapon, primary firing mode. TODO
1633 		 
1634          */
1635         protected
1636          double PriMaxRange =
1637        	0;
1638 	
1639  		/**
1640          * 
1641 			For Ammo or for Weapon, primary firing mode. TODO
1642 		 
1643          */
1644         public  double getPriMaxRange()
1645  	 {
1646     					return PriMaxRange;
1647     				}
1648     			
1649     	
1650 	    /**
1651          * 
1652 			For Ammo or for Weapon, primary firing mode. Type of the damage. Maybe the same string for all damage.
1653 		 
1654          */
1655         protected
1656          String PriDamageType =
1657        	null;
1658 	
1659  		/**
1660          * 
1661 			For Ammo or for Weapon, primary firing mode. Type of the damage. Maybe the same string for all damage.
1662 		 
1663          */
1664         public  String getPriDamageType()
1665  	 {
1666     					return PriDamageType;
1667     				}
1668     			
1669     	
1670 	    /**
1671          * 
1672 			For Ammo or for Weapon, primary firing mode. If the armor is effective against this damage type.
1673 		 
1674          */
1675         protected
1676          boolean PriArmorStops =
1677        	false;
1678 	
1679  		/**
1680          * 
1681 			For Ammo or for Weapon, primary firing mode. If the armor is effective against this damage type.
1682 		 
1683          */
1684         public  boolean isPriArmorStops()
1685  	 {
1686     					return PriArmorStops;
1687     				}
1688     			
1689     	
1690 	    /**
1691          * 
1692 			For Ammo or for Weapon, primary firing mode. If this damage kills instantly.
1693 		 
1694          */
1695         protected
1696          boolean PriAlwaysGibs =
1697        	false;
1698 	
1699  		/**
1700          * 
1701 			For Ammo or for Weapon, primary firing mode. If this damage kills instantly.
1702 		 
1703          */
1704         public  boolean isPriAlwaysGibs()
1705  	 {
1706     					return PriAlwaysGibs;
1707     				}
1708     			
1709     	
1710 	    /**
1711          * 
1712 			For Ammo or for Weapon, primary firing mode. If this damage is special. TODO
1713 		 
1714          */
1715         protected
1716          boolean PriSpecial =
1717        	false;
1718 	
1719  		/**
1720          * 
1721 			For Ammo or for Weapon, primary firing mode. If this damage is special. TODO
1722 		 
1723          */
1724         public  boolean isPriSpecial()
1725  	 {
1726     					return PriSpecial;
1727     				}
1728     			
1729     	
1730 	    /**
1731          * 
1732 			For Ammo or for Weapon, primary firing mode. If this damage detonates goops. TODO
1733 		 
1734          */
1735         protected
1736          boolean PriDetonatesGoop =
1737        	false;
1738 	
1739  		/**
1740          * 
1741 			For Ammo or for Weapon, primary firing mode. If this damage detonates goops. TODO
1742 		 
1743          */
1744         public  boolean isPriDetonatesGoop()
1745  	 {
1746     					return PriDetonatesGoop;
1747     				}
1748     			
1749     	
1750 	    /**
1751          * 
1752 			For Ammo or for Weapon, primary firing mode. If this damage is super weapon damage. Kills everyone even teammates.
1753 		 
1754          */
1755         protected
1756          boolean PriSuperWeapon =
1757        	false;
1758 	
1759  		/**
1760          * 
1761 			For Ammo or for Weapon, primary firing mode. If this damage is super weapon damage. Kills everyone even teammates.
1762 		 
1763          */
1764         public  boolean isPriSuperWeapon()
1765  	 {
1766     					return PriSuperWeapon;
1767     				}
1768     			
1769     	
1770 	    /**
1771          * 
1772 			For Ammo or for Weapon, primary firing mode. If this damage adds something to Panws momentum. TODO
1773 		 
1774          */
1775         protected
1776          boolean PriExtraMomZ =
1777        	false;
1778 	
1779  		/**
1780          * 
1781 			For Ammo or for Weapon, primary firing mode. If this damage adds something to Panws momentum. TODO
1782 		 
1783          */
1784         public  boolean isPriExtraMomZ()
1785  	 {
1786     					return PriExtraMomZ;
1787     				}
1788     			
1789     	
1790 	    /**
1791          * 
1792 			For Ammo or for Weapon, primary firing mode. Class of the projectile this ammo, weapon spawns. 
1793 		 
1794          */
1795         protected
1796          String PriProjType =
1797        	null;
1798 	
1799  		/**
1800          * 
1801 			For Ammo or for Weapon, primary firing mode. Class of the projectile this ammo, weapon spawns. 
1802 		 
1803          */
1804         public  String getPriProjType()
1805  	 {
1806     					return PriProjType;
1807     				}
1808     			
1809     	
1810 	    /**
1811          * 
1812 			For Ammo or for Weapon, primary firing mode. How much damage this projectile does.
1813 		 
1814          */
1815         protected
1816          double PriDamage =
1817        	0;
1818 	
1819  		/**
1820          * 
1821 			For Ammo or for Weapon, primary firing mode. How much damage this projectile does.
1822 		 
1823          */
1824         public  double getPriDamage()
1825  	 {
1826     					return PriDamage;
1827     				}
1828     			
1829     	
1830 	    /**
1831          * 
1832 			For Ammo or for Weapon, primary firing mode. How much maximum damage this projectile does.
1833 		 
1834          */
1835         protected
1836          double PriDamageMax =
1837        	0;
1838 	
1839  		/**
1840          * 
1841 			For Ammo or for Weapon, primary firing mode. How much maximum damage this projectile does.
1842 		 
1843          */
1844         public  double getPriDamageMax()
1845  	 {
1846     					return PriDamageMax;
1847     				}
1848     			
1849     	
1850 	    /**
1851          * 
1852 			For Ammo or for Weapon, primary firing mode. How much minimum damage this projectile does.
1853 		 
1854          */
1855         protected
1856          double PriDamageMin =
1857        	0;
1858 	
1859  		/**
1860          * 
1861 			For Ammo or for Weapon, primary firing mode. How much minimum damage this projectile does.
1862 		 
1863          */
1864         public  double getPriDamageMin()
1865  	 {
1866     					return PriDamageMin;
1867     				}
1868     			
1869     	
1870 	    /**
1871          * 
1872 			For Ammo or for Weapon, primary firing mode. Default projectile speed.
1873 		 
1874          */
1875         protected
1876          double PriSpeed =
1877        	0;
1878 	
1879  		/**
1880          * 
1881 			For Ammo or for Weapon, primary firing mode. Default projectile speed.
1882 		 
1883          */
1884         public  double getPriSpeed()
1885  	 {
1886     					return PriSpeed;
1887     				}
1888     			
1889     	
1890 	    /**
1891          * 
1892 			For Ammo or for Weapon, primary firing mode. Maximum projectile speed.
1893 		 
1894          */
1895         protected
1896          double PriMaxSpeed =
1897        	0;
1898 	
1899  		/**
1900          * 
1901 			For Ammo or for Weapon, primary firing mode. Maximum projectile speed.
1902 		 
1903          */
1904         public  double getPriMaxSpeed()
1905  	 {
1906     					return PriMaxSpeed;
1907     				}
1908     			
1909     	
1910 	    /**
1911          * 
1912 			For Ammo or for Weapon, primary firing mode. Maximum amount of time in seconds this projectile can survive in the environment.
1913 		 
1914          */
1915         protected
1916          double PriLifeSpan =
1917        	0;
1918 	
1919  		/**
1920          * 
1921 			For Ammo or for Weapon, primary firing mode. Maximum amount of time in seconds this projectile can survive in the environment.
1922 		 
1923          */
1924         public  double getPriLifeSpan()
1925  	 {
1926     					return PriLifeSpan;
1927     				}
1928     			
1929     	
1930 	    /**
1931          * 
1932 			For Ammo or for Weapon, primary firing mode. If the projectile does splash damage, here is radius in ut units of the splash.
1933 		 
1934          */
1935         protected
1936          double PriDamageRadius =
1937        	0;
1938 	
1939  		/**
1940          * 
1941 			For Ammo or for Weapon, primary firing mode. If the projectile does splash damage, here is radius in ut units of the splash.
1942 		 
1943          */
1944         public  double getPriDamageRadius()
1945  	 {
1946     					return PriDamageRadius;
1947     				}
1948     			
1949     	
1950 	    /**
1951          * 
1952 			For Ammo or for Weapon, primary firing mode. If the projectile is tossed, here is velocity in Z direction of the toss. TODO
1953 		 
1954          */
1955         protected
1956          double PriTossZ =
1957        	0;
1958 	
1959  		/**
1960          * 
1961 			For Ammo or for Weapon, primary firing mode. If the projectile is tossed, here is velocity in Z direction of the toss. TODO
1962 		 
1963          */
1964         public  double getPriTossZ()
1965  	 {
1966     					return PriTossZ;
1967     				}
1968     			
1969     	
1970 	    /**
1971          * 
1972 			For Ammo or for Weapon, primary firing mode. Maximum effective distance. TODO
1973 		 
1974          */
1975         protected
1976          double PriMaxEffectDistance =
1977        	0;
1978 	
1979  		/**
1980          * 
1981 			For Ammo or for Weapon, primary firing mode. Maximum effective distance. TODO
1982 		 
1983          */
1984         public  double getPriMaxEffectDistance()
1985  	 {
1986     					return PriMaxEffectDistance;
1987     				}
1988     			
1989     	
1990 	    /**
1991          * 
1992 			For Weapon, secondary firing mode. Type of the firing mode. If none, the weapon does not have this fireing mode.
1993 		 
1994          */
1995         protected
1996          String SecFireModeType =
1997        	null;
1998 	
1999  		/**
2000          * 
2001 			For Weapon, secondary firing mode. Type of the firing mode. If none, the weapon does not have this fireing mode.
2002 		 
2003          */
2004         public  String getSecFireModeType()
2005  	 {
2006     					return SecFireModeType;
2007     				}
2008     			
2009     	
2010 	    /**
2011          * 
2012 			For Weapon, secondary firing mode. If this mode does splash damage.
2013 		 
2014          */
2015         protected
2016          boolean SecSplashDamage =
2017        	false;
2018 	
2019  		/**
2020          * 
2021 			For Weapon, secondary firing mode. If this mode does splash damage.
2022 		 
2023          */
2024         public  boolean isSecSplashDamage()
2025  	 {
2026     					return SecSplashDamage;
2027     				}
2028     			
2029     	
2030 	    /**
2031          * 
2032 			For Weapon, secondary firing mode. If the splash damage of this firing mode can be used for increasing jump height.
2033 		 
2034          */
2035         protected
2036          boolean SecSplashJump =
2037        	false;
2038 	
2039  		/**
2040          * 
2041 			For Weapon, secondary firing mode. If the splash damage of this firing mode can be used for increasing jump height.
2042 		 
2043          */
2044         public  boolean isSecSplashJump()
2045  	 {
2046     					return SecSplashJump;
2047     				}
2048     			
2049     	
2050 	    /**
2051          * 
2052 			For Weapon, secondary firing mode. If the engine recommends to use this splash damage. TODO
2053 		 
2054          */
2055         protected
2056          boolean SecRecomSplashDamage =
2057        	false;
2058 	
2059  		/**
2060          * 
2061 			For Weapon, secondary firing mode. If the engine recommends to use this splash damage. TODO
2062 		 
2063          */
2064         public  boolean isSecRecomSplashDamage()
2065  	 {
2066     					return SecRecomSplashDamage;
2067     				}
2068     			
2069     	
2070 	    /**
2071          * 
2072 			For Weapon, secondary firing mode. If the this mode is tossing something (projectile) out.
2073 		 
2074          */
2075         protected
2076          boolean SecTossed =
2077        	false;
2078 	
2079  		/**
2080          * 
2081 			For Weapon, secondary firing mode. If the this mode is tossing something (projectile) out.
2082 		 
2083          */
2084         public  boolean isSecTossed()
2085  	 {
2086     					return SecTossed;
2087     				}
2088     			
2089     	
2090 	    /**
2091          * 
2092 			For Weapon, secondary firing mode. If this mode can lead the target. TODO
2093 		 
2094          */
2095         protected
2096          boolean SecLeadTarget =
2097        	false;
2098 	
2099  		/**
2100          * 
2101 			For Weapon, secondary firing mode. If this mode can lead the target. TODO
2102 		 
2103          */
2104         public  boolean isSecLeadTarget()
2105  	 {
2106     					return SecLeadTarget;
2107     				}
2108     			
2109     	
2110 	    /**
2111          * 
2112 			For Weapon, secondary firing mode. If this mode does instant hits - weapon hits instantly - no flying time for bullets.
2113 		 
2114          */
2115         protected
2116          boolean SecInstantHit =
2117        	false;
2118 	
2119  		/**
2120          * 
2121 			For Weapon, secondary firing mode. If this mode does instant hits - weapon hits instantly - no flying time for bullets.
2122 		 
2123          */
2124         public  boolean isSecInstantHit()
2125  	 {
2126     					return SecInstantHit;
2127     				}
2128     			
2129     	
2130 	    /**
2131          * 
2132 			For Weapon, secondary firing mode. If to fire this mode you need to press shooting button (start shooting) and then release it (stop shooting). Usually for charging weapons.
2133 		 
2134          */
2135         protected
2136          boolean SecFireOnRelease =
2137        	false;
2138 	
2139  		/**
2140          * 
2141 			For Weapon, secondary firing mode. If to fire this mode you need to press shooting button (start shooting) and then release it (stop shooting). Usually for charging weapons.
2142 		 
2143          */
2144         public  boolean isSecFireOnRelease()
2145  	 {
2146     					return SecFireOnRelease;
2147     				}
2148     			
2149     	
2150 	    /**
2151          * 
2152 			For Weapon, secondary firing mode. If to fire this mode you need to stop pressing shooting button between two shots to shoot. You will fire once when pressing the button, then you need to press it again to fire again.
2153 		 
2154          */
2155         protected
2156          boolean SecWaitForRelease =
2157        	false;
2158 	
2159  		/**
2160          * 
2161 			For Weapon, secondary firing mode. If to fire this mode you need to stop pressing shooting button between two shots to shoot. You will fire once when pressing the button, then you need to press it again to fire again.
2162 		 
2163          */
2164         public  boolean isSecWaitForRelease()
2165  	 {
2166     					return SecWaitForRelease;
2167     				}
2168     			
2169     	
2170 	    /**
2171          * 
2172 			For Weapon, secondary firing mode. If this firing mode cannot be used at the same time with other firing mode of the weapon.
2173 		 
2174          */
2175         protected
2176          boolean SecModeExclusive =
2177        	false;
2178 	
2179  		/**
2180          * 
2181 			For Weapon, secondary firing mode. If this firing mode cannot be used at the same time with other firing mode of the weapon.
2182 		 
2183          */
2184         public  boolean isSecModeExclusive()
2185  	 {
2186     					return SecModeExclusive;
2187     				}
2188     			
2189     	
2190 	    /**
2191          * 
2192 			For Weapon, secondary firing mode. Fire rate in seconds.
2193 		 
2194          */
2195         protected
2196          double SecFireRate =
2197        	0;
2198 	
2199  		/**
2200          * 
2201 			For Weapon, secondary firing mode. Fire rate in seconds.
2202 		 
2203          */
2204         public  double getSecFireRate()
2205  	 {
2206     					return SecFireRate;
2207     				}
2208     			
2209     	
2210 	    /**
2211          * 
2212 			For Weapon, secondary firing mode. Refire rate for bots in seconds. TODO
2213 		 
2214          */
2215         protected
2216          double SecBotRefireRate =
2217        	0;
2218 	
2219  		/**
2220          * 
2221 			For Weapon, secondary firing mode. Refire rate for bots in seconds. TODO
2222 		 
2223          */
2224         public  double getSecBotRefireRate()
2225  	 {
2226     					return SecBotRefireRate;
2227     				}
2228     			
2229     	
2230 	    /**
2231          * 
2232 			For Weapon, secondary firing mode. Needed amount of ammo to fire this weapon mode once.
2233 		 
2234          */
2235         protected
2236          int SecAmmoPerFire =
2237        	0;
2238 	
2239  		/**
2240          * 
2241 			For Weapon, secondary firing mode. Needed amount of ammo to fire this weapon mode once.
2242 		 
2243          */
2244         public  int getSecAmmoPerFire()
2245  	 {
2246     					return SecAmmoPerFire;
2247     				}
2248     			
2249     	
2250 	    /**
2251          * 
2252 			For Weapon, secondary firing mode. If the weapon mode has clips, their size. TODO
2253 		 
2254          */
2255         protected
2256          int SecAmmoClipSize =
2257        	0;
2258 	
2259  		/**
2260          * 
2261 			For Weapon, secondary firing mode. If the weapon mode has clips, their size. TODO
2262 		 
2263          */
2264         public  int getSecAmmoClipSize()
2265  	 {
2266     					return SecAmmoClipSize;
2267     				}
2268     			
2269     	
2270 	    /**
2271          * 
2272 			For Weapon, secondary firing mode. Aiming error of the weapon. 0 none, 1000 quite a bit.
2273 		 
2274          */
2275         protected
2276          double SecAimError =
2277        	0;
2278 	
2279  		/**
2280          * 
2281 			For Weapon, secondary firing mode. Aiming error of the weapon. 0 none, 1000 quite a bit.
2282 		 
2283          */
2284         public  double getSecAimError()
2285  	 {
2286     					return SecAimError;
2287     				}
2288     			
2289     	
2290 	    /**
2291          * 
2292 			For Weapon, secondary firing mode. Double, rotator units. No relation to aim error.
2293 		 
2294          */
2295         protected
2296          double SecSpread =
2297        	0;
2298 	
2299  		/**
2300          * 
2301 			For Weapon, secondary firing mode. Double, rotator units. No relation to aim error.
2302 		 
2303          */
2304         public  double getSecSpread()
2305  	 {
2306     					return SecSpread;
2307     				}
2308     			
2309     	
2310 	    /**
2311          * 
2312 			For Weapon, secondary firing mode. Type of spreading. TODO
2313 		 
2314          */
2315         protected
2316          int SecSpreadStyle =
2317        	0;
2318 	
2319  		/**
2320          * 
2321 			For Weapon, secondary firing mode. Type of spreading. TODO
2322 		 
2323          */
2324         public  int getSecSpreadStyle()
2325  	 {
2326     					return SecSpreadStyle;
2327     				}
2328     			
2329     	
2330 	    /**
2331          * 
2332 			For Weapon, secondary firing mode. TODO
2333 		 
2334          */
2335         protected
2336          int SecFireCount =
2337        	0;
2338 	
2339  		/**
2340          * 
2341 			For Weapon, secondary firing mode. TODO
2342 		 
2343          */
2344         public  int getSecFireCount()
2345  	 {
2346     					return SecFireCount;
2347     				}
2348     			
2349     	
2350 	    /**
2351          * 
2352 			For Weapon, secondary firing mode. Attenuate instant-hit/projectile damage by this multiplier.
2353 		 
2354          */
2355         protected
2356          double SecDamageAtten =
2357        	0;
2358 	
2359  		/**
2360          * 
2361 			For Weapon, secondary firing mode. Attenuate instant-hit/projectile damage by this multiplier.
2362 		 
2363          */
2364         public  double getSecDamageAtten()
2365  	 {
2366     					return SecDamageAtten;
2367     				}
2368     			
2369     	
2370 	    /**
2371          * 
2372 			For Ammo or for Weapon, secondary firing mode. Class of the ammo.
2373 		 
2374          */
2375         protected
2376          String SecAmmoType =
2377        	null;
2378 	
2379  		/**
2380          * 
2381 			For Ammo or for Weapon, secondary firing mode. Class of the ammo.
2382 		 
2383          */
2384         public  String getSecAmmoType()
2385  	 {
2386     					return SecAmmoType;
2387     				}
2388     			
2389     	
2390 	    /**
2391          * 
2392 			For Ammo or for Weapon, secondary firing mode. Amount of ammo we get if we pick up the item (weapon or ammo) for the first time.
2393 		 
2394          */
2395         protected
2396          int SecInitialAmount =
2397        	0;
2398 	
2399  		/**
2400          * 
2401 			For Ammo or for Weapon, secondary firing mode. Amount of ammo we get if we pick up the item (weapon or ammo) for the first time.
2402 		 
2403          */
2404         public  int getSecInitialAmount()
2405  	 {
2406     					return SecInitialAmount;
2407     				}
2408     			
2409     	
2410 	    /**
2411          * 
2412 			For Ammo or for Weapon, secondary firing mode. Max amount of ammo of this type we can have in our inventory.
2413 		 
2414          */
2415         protected
2416          int SecMaxAmount =
2417        	0;
2418 	
2419  		/**
2420          * 
2421 			For Ammo or for Weapon, secondary firing mode. Max amount of ammo of this type we can have in our inventory.
2422 		 
2423          */
2424         public  int getSecMaxAmount()
2425  	 {
2426     					return SecMaxAmount;
2427     				}
2428     			
2429     	
2430 	    /**
2431          * 
2432 			For Ammo or for Weapon, secondary firing mode. TODO
2433 		 
2434          */
2435         protected
2436          double SecMaxRange =
2437        	0;
2438 	
2439  		/**
2440          * 
2441 			For Ammo or for Weapon, secondary firing mode. TODO
2442 		 
2443          */
2444         public  double getSecMaxRange()
2445  	 {
2446     					return SecMaxRange;
2447     				}
2448     			
2449     	
2450 	    /**
2451          * 
2452 			For Ammo or for Weapon, secondary firing mode. Type of the damage. Maybe the same string for all damage.
2453 		 
2454          */
2455         protected
2456          String SecDamageType =
2457        	null;
2458 	
2459  		/**
2460          * 
2461 			For Ammo or for Weapon, secondary firing mode. Type of the damage. Maybe the same string for all damage.
2462 		 
2463          */
2464         public  String getSecDamageType()
2465  	 {
2466     					return SecDamageType;
2467     				}
2468     			
2469     	
2470 	    /**
2471          * 
2472 			For Ammo or for Weapon, secondary firing mode. If the armor is effective against this damage type.
2473 		 
2474          */
2475         protected
2476          boolean SecArmorStops =
2477        	false;
2478 	
2479  		/**
2480          * 
2481 			For Ammo or for Weapon, secondary firing mode. If the armor is effective against this damage type.
2482 		 
2483          */
2484         public  boolean isSecArmorStops()
2485  	 {
2486     					return SecArmorStops;
2487     				}
2488     			
2489     	
2490 	    /**
2491          * 
2492 			For Ammo or for Weapon, secondary firing mode. If this damage kills instantly.
2493 		 
2494          */
2495         protected
2496          boolean SecAlwaysGibs =
2497        	false;
2498 	
2499  		/**
2500          * 
2501 			For Ammo or for Weapon, secondary firing mode. If this damage kills instantly.
2502 		 
2503          */
2504         public  boolean isSecAlwaysGibs()
2505  	 {
2506     					return SecAlwaysGibs;
2507     				}
2508     			
2509     	
2510 	    /**
2511          * 
2512 			For Ammo or for Weapon, secondary firing mode. If this damage is special. TODO
2513 		 
2514          */
2515         protected
2516          boolean SecSpecial =
2517        	false;
2518 	
2519  		/**
2520          * 
2521 			For Ammo or for Weapon, secondary firing mode. If this damage is special. TODO
2522 		 
2523          */
2524         public  boolean isSecSpecial()
2525  	 {
2526     					return SecSpecial;
2527     				}
2528     			
2529     	
2530 	    /**
2531          * 
2532 			For Ammo or for Weapon, secondary firing mode. If this damage detonates goops. TODO
2533 		 
2534          */
2535         protected
2536          boolean SecDetonatesGoop =
2537        	false;
2538 	
2539  		/**
2540          * 
2541 			For Ammo or for Weapon, secondary firing mode. If this damage detonates goops. TODO
2542 		 
2543          */
2544         public  boolean isSecDetonatesGoop()
2545  	 {
2546     					return SecDetonatesGoop;
2547     				}
2548     			
2549     	
2550 	    /**
2551          * 
2552 			For Ammo or for Weapon, secondary firing mode. If this damage is super weapon damage. Kills everyone even teammates.
2553 		 
2554          */
2555         protected
2556          boolean SecSuperWeapon =
2557        	false;
2558 	
2559  		/**
2560          * 
2561 			For Ammo or for Weapon, secondary firing mode. If this damage is super weapon damage. Kills everyone even teammates.
2562 		 
2563          */
2564         public  boolean isSecSuperWeapon()
2565  	 {
2566     					return SecSuperWeapon;
2567     				}
2568     			
2569     	
2570 	    /**
2571          * 
2572 			For Ammo or for Weapon, secondary firing mode. If this damage adds something to Pawns momentum. TODO
2573 		 
2574          */
2575         protected
2576          boolean SecExtraMomZ =
2577        	false;
2578 	
2579  		/**
2580          * 
2581 			For Ammo or for Weapon, secondary firing mode. If this damage adds something to Pawns momentum. TODO
2582 		 
2583          */
2584         public  boolean isSecExtraMomZ()
2585  	 {
2586     					return SecExtraMomZ;
2587     				}
2588     			
2589     	
2590 	    /**
2591          * 
2592 			For Ammo or for Weapon, secondary firing mode. Class of the projectile this ammo, weapon spawns. 
2593 		 
2594          */
2595         protected
2596          String SecProjType =
2597        	null;
2598 	
2599  		/**
2600          * 
2601 			For Ammo or for Weapon, secondary firing mode. Class of the projectile this ammo, weapon spawns. 
2602 		 
2603          */
2604         public  String getSecProjType()
2605  	 {
2606     					return SecProjType;
2607     				}
2608     			
2609     	
2610 	    /**
2611          * 
2612 			For Ammo or for Weapon, secondary firing mode. How much damage this projectile does.
2613 		 
2614          */
2615         protected
2616          double SecDamage =
2617        	0;
2618 	
2619  		/**
2620          * 
2621 			For Ammo or for Weapon, secondary firing mode. How much damage this projectile does.
2622 		 
2623          */
2624         public  double getSecDamage()
2625  	 {
2626     					return SecDamage;
2627     				}
2628     			
2629     	
2630 	    /**
2631          * 
2632 			For Ammo or for Weapon, secondary firing mode. How much maximum damage this projectile does.
2633 		 
2634          */
2635         protected
2636          double SecDamageMax =
2637        	0;
2638 	
2639  		/**
2640          * 
2641 			For Ammo or for Weapon, secondary firing mode. How much maximum damage this projectile does.
2642 		 
2643          */
2644         public  double getSecDamageMax()
2645  	 {
2646     					return SecDamageMax;
2647     				}
2648     			
2649     	
2650 	    /**
2651          * 
2652 			For Ammo or for Weapon, secondary firing mode. How much minimum damage this projectile does.
2653 		 
2654          */
2655         protected
2656          double SecDamageMin =
2657        	0;
2658 	
2659  		/**
2660          * 
2661 			For Ammo or for Weapon, secondary firing mode. How much minimum damage this projectile does.
2662 		 
2663          */
2664         public  double getSecDamageMin()
2665  	 {
2666     					return SecDamageMin;
2667     				}
2668     			
2669     	
2670 	    /**
2671          * 
2672 			For Ammo or for Weapon, secondary firing mode. Default projectile speed.
2673 		 
2674          */
2675         protected
2676          double SecSpeed =
2677        	0;
2678 	
2679  		/**
2680          * 
2681 			For Ammo or for Weapon, secondary firing mode. Default projectile speed.
2682 		 
2683          */
2684         public  double getSecSpeed()
2685  	 {
2686     					return SecSpeed;
2687     				}
2688     			
2689     	
2690 	    /**
2691          * 
2692 			For Ammo or for Weapon, secondary firing mode. Maximum projectile speed.
2693 		 
2694          */
2695         protected
2696          double SecMaxSpeed =
2697        	0;
2698 	
2699  		/**
2700          * 
2701 			For Ammo or for Weapon, secondary firing mode. Maximum projectile speed.
2702 		 
2703          */
2704         public  double getSecMaxSpeed()
2705  	 {
2706     					return SecMaxSpeed;
2707     				}
2708     			
2709     	
2710 	    /**
2711          * 
2712 			For Ammo or for Weapon, secondary firing mode. Maximum amount of time in seconds this projectile can survive in the environment.
2713 		 
2714          */
2715         protected
2716          double SecLifeSpan =
2717        	0;
2718 	
2719  		/**
2720          * 
2721 			For Ammo or for Weapon, secondary firing mode. Maximum amount of time in seconds this projectile can survive in the environment.
2722 		 
2723          */
2724         public  double getSecLifeSpan()
2725  	 {
2726     					return SecLifeSpan;
2727     				}
2728     			
2729     	
2730 	    /**
2731          * 
2732 			For Ammo or for Weapon, secondary firing mode. If the projectile does splash damage, here is radius in ut units of the splash.
2733 		 
2734          */
2735         protected
2736          double SecDamageRadius =
2737        	0;
2738 	
2739  		/**
2740          * 
2741 			For Ammo or for Weapon, secondary firing mode. If the projectile does splash damage, here is radius in ut units of the splash.
2742 		 
2743          */
2744         public  double getSecDamageRadius()
2745  	 {
2746     					return SecDamageRadius;
2747     				}
2748     			
2749     	
2750 	    /**
2751          * 
2752 			For Ammo or for Weapon, secondary firing mode. If the projectile is tossed, here is velocity in Z direction of the toss. TODO
2753 		 
2754          */
2755         protected
2756          double SecTossZ =
2757        	0;
2758 	
2759  		/**
2760          * 
2761 			For Ammo or for Weapon, secondary firing mode. If the projectile is tossed, here is velocity in Z direction of the toss. TODO
2762 		 
2763          */
2764         public  double getSecTossZ()
2765  	 {
2766     					return SecTossZ;
2767     				}
2768     			
2769     	
2770 	    /**
2771          * 
2772 			For Ammo or for Weapon, secondary firing mode. Maximum effective distance. TODO
2773 		 
2774          */
2775         protected
2776          double SecMaxEffectDistance =
2777        	0;
2778 	
2779  		/**
2780          * 
2781 			For Ammo or for Weapon, secondary firing mode. Maximum effective distance. TODO
2782 		 
2783          */
2784         public  double getSecMaxEffectDistance()
2785  	 {
2786     					return SecMaxEffectDistance;
2787     				}
2788     			
2789     	
2790 	    /**
2791          * 
2792 			If this item is some ammo or health pack, here we can find
2793 			out how much of the attribute this item will add.
2794 		 
2795          */
2796         protected
2797          int Amount =
2798        	0;
2799 	
2800  		/**
2801          * 
2802 			If this item is some ammo or health pack, here we can find
2803 			out how much of the attribute this item will add.
2804 		 
2805          */
2806         public  int getAmount()
2807  	 {
2808     					return Amount;
2809     				}
2810     			
2811     	
2812 	    /**
2813          * 
2814 			If this item is health. True if super health.
2815 		 
2816          */
2817         protected
2818          boolean SuperHeal =
2819        	false;
2820 	
2821  		/**
2822          * 
2823 			If this item is health. True if super health.
2824 		 
2825          */
2826         public  boolean isSuperHeal()
2827  	 {
2828     					return SuperHeal;
2829     				}
2830     			
2831  		
2832  	    public String toString() {
2833             return
2834             	super.toString() + "[" +
2835             	
2836 		              			"InventoryType = " + String.valueOf(getInventoryType()
2837  	) + " | " + 
2838 		              		
2839 		              			"PickupType = " + String.valueOf(getPickupType()
2840  	) + " | " + 
2841 		              		
2842 		              			"ItemCategory = " + String.valueOf(getItemCategory()
2843  	) + " | " + 
2844 		              		
2845 		              			"Melee = " + String.valueOf(isMelee()
2846  	) + " | " + 
2847 		              		
2848 		              			"Sniping = " + String.valueOf(isSniping()
2849  	) + " | " + 
2850 		              		
2851 		              			"UsesAltAmmo = " + String.valueOf(isUsesAltAmmo()
2852  	) + " | " + 
2853 		              		
2854 		              			"PriFireModeType = " + String.valueOf(getPriFireModeType()
2855  	) + " | " + 
2856 		              		
2857 		              			"PriSplashDamage = " + String.valueOf(isPriSplashDamage()
2858  	) + " | " + 
2859 		              		
2860 		              			"PriSplashJump = " + String.valueOf(isPriSplashJump()
2861  	) + " | " + 
2862 		              		
2863 		              			"PriRecomSplashDamage = " + String.valueOf(isPriRecomSplashDamage()
2864  	) + " | " + 
2865 		              		
2866 		              			"PriTossed = " + String.valueOf(isPriTossed()
2867  	) + " | " + 
2868 		              		
2869 		              			"PriLeadTarget = " + String.valueOf(isPriLeadTarget()
2870  	) + " | " + 
2871 		              		
2872 		              			"PriInstantHit = " + String.valueOf(isPriInstantHit()
2873  	) + " | " + 
2874 		              		
2875 		              			"PriFireOnRelease = " + String.valueOf(isPriFireOnRelease()
2876  	) + " | " + 
2877 		              		
2878 		              			"PriWaitForRelease = " + String.valueOf(isPriWaitForRelease()
2879  	) + " | " + 
2880 		              		
2881 		              			"PriModeExclusive = " + String.valueOf(isPriModeExclusive()
2882  	) + " | " + 
2883 		              		
2884 		              			"PriFireRate = " + String.valueOf(getPriFireRate()
2885  	) + " | " + 
2886 		              		
2887 		              			"PriBotRefireRate = " + String.valueOf(getPriBotRefireRate()
2888  	) + " | " + 
2889 		              		
2890 		              			"PriAmmoPerFire = " + String.valueOf(getPriAmmoPerFire()
2891  	) + " | " + 
2892 		              		
2893 		              			"PriAmmoClipSize = " + String.valueOf(getPriAmmoClipSize()
2894  	) + " | " + 
2895 		              		
2896 		              			"PriAimError = " + String.valueOf(getPriAimError()
2897  	) + " | " + 
2898 		              		
2899 		              			"PriSpread = " + String.valueOf(getPriSpread()
2900  	) + " | " + 
2901 		              		
2902 		              			"PriSpreadStyle = " + String.valueOf(getPriSpreadStyle()
2903  	) + " | " + 
2904 		              		
2905 		              			"PriFireCount = " + String.valueOf(getPriFireCount()
2906  	) + " | " + 
2907 		              		
2908 		              			"PriDamageAtten = " + String.valueOf(getPriDamageAtten()
2909  	) + " | " + 
2910 		              		
2911 		              			"PriAmmoType = " + String.valueOf(getPriAmmoType()
2912  	) + " | " + 
2913 		              		
2914 		              			"PriInitialAmount = " + String.valueOf(getPriInitialAmount()
2915  	) + " | " + 
2916 		              		
2917 		              			"PriMaxAmount = " + String.valueOf(getPriMaxAmount()
2918  	) + " | " + 
2919 		              		
2920 		              			"PriMaxRange = " + String.valueOf(getPriMaxRange()
2921  	) + " | " + 
2922 		              		
2923 		              			"PriDamageType = " + String.valueOf(getPriDamageType()
2924  	) + " | " + 
2925 		              		
2926 		              			"PriArmorStops = " + String.valueOf(isPriArmorStops()
2927  	) + " | " + 
2928 		              		
2929 		              			"PriAlwaysGibs = " + String.valueOf(isPriAlwaysGibs()
2930  	) + " | " + 
2931 		              		
2932 		              			"PriSpecial = " + String.valueOf(isPriSpecial()
2933  	) + " | " + 
2934 		              		
2935 		              			"PriDetonatesGoop = " + String.valueOf(isPriDetonatesGoop()
2936  	) + " | " + 
2937 		              		
2938 		              			"PriSuperWeapon = " + String.valueOf(isPriSuperWeapon()
2939  	) + " | " + 
2940 		              		
2941 		              			"PriExtraMomZ = " + String.valueOf(isPriExtraMomZ()
2942  	) + " | " + 
2943 		              		
2944 		              			"PriProjType = " + String.valueOf(getPriProjType()
2945  	) + " | " + 
2946 		              		
2947 		              			"PriDamage = " + String.valueOf(getPriDamage()
2948  	) + " | " + 
2949 		              		
2950 		              			"PriDamageMax = " + String.valueOf(getPriDamageMax()
2951  	) + " | " + 
2952 		              		
2953 		              			"PriDamageMin = " + String.valueOf(getPriDamageMin()
2954  	) + " | " + 
2955 		              		
2956 		              			"PriSpeed = " + String.valueOf(getPriSpeed()
2957  	) + " | " + 
2958 		              		
2959 		              			"PriMaxSpeed = " + String.valueOf(getPriMaxSpeed()
2960  	) + " | " + 
2961 		              		
2962 		              			"PriLifeSpan = " + String.valueOf(getPriLifeSpan()
2963  	) + " | " + 
2964 		              		
2965 		              			"PriDamageRadius = " + String.valueOf(getPriDamageRadius()
2966  	) + " | " + 
2967 		              		
2968 		              			"PriTossZ = " + String.valueOf(getPriTossZ()
2969  	) + " | " + 
2970 		              		
2971 		              			"PriMaxEffectDistance = " + String.valueOf(getPriMaxEffectDistance()
2972  	) + " | " + 
2973 		              		
2974 		              			"SecFireModeType = " + String.valueOf(getSecFireModeType()
2975  	) + " | " + 
2976 		              		
2977 		              			"SecSplashDamage = " + String.valueOf(isSecSplashDamage()
2978  	) + " | " + 
2979 		              		
2980 		              			"SecSplashJump = " + String.valueOf(isSecSplashJump()
2981  	) + " | " + 
2982 		              		
2983 		              			"SecRecomSplashDamage = " + String.valueOf(isSecRecomSplashDamage()
2984  	) + " | " + 
2985 		              		
2986 		              			"SecTossed = " + String.valueOf(isSecTossed()
2987  	) + " | " + 
2988 		              		
2989 		              			"SecLeadTarget = " + String.valueOf(isSecLeadTarget()
2990  	) + " | " + 
2991 		              		
2992 		              			"SecInstantHit = " + String.valueOf(isSecInstantHit()
2993  	) + " | " + 
2994 		              		
2995 		              			"SecFireOnRelease = " + String.valueOf(isSecFireOnRelease()
2996  	) + " | " + 
2997 		              		
2998 		              			"SecWaitForRelease = " + String.valueOf(isSecWaitForRelease()
2999  	) + " | " + 
3000 		              		
3001 		              			"SecModeExclusive = " + String.valueOf(isSecModeExclusive()
3002  	) + " | " + 
3003 		              		
3004 		              			"SecFireRate = " + String.valueOf(getSecFireRate()
3005  	) + " | " + 
3006 		              		
3007 		              			"SecBotRefireRate = " + String.valueOf(getSecBotRefireRate()
3008  	) + " | " + 
3009 		              		
3010 		              			"SecAmmoPerFire = " + String.valueOf(getSecAmmoPerFire()
3011  	) + " | " + 
3012 		              		
3013 		              			"SecAmmoClipSize = " + String.valueOf(getSecAmmoClipSize()
3014  	) + " | " + 
3015 		              		
3016 		              			"SecAimError = " + String.valueOf(getSecAimError()
3017  	) + " | " + 
3018 		              		
3019 		              			"SecSpread = " + String.valueOf(getSecSpread()
3020  	) + " | " + 
3021 		              		
3022 		              			"SecSpreadStyle = " + String.valueOf(getSecSpreadStyle()
3023  	) + " | " + 
3024 		              		
3025 		              			"SecFireCount = " + String.valueOf(getSecFireCount()
3026  	) + " | " + 
3027 		              		
3028 		              			"SecDamageAtten = " + String.valueOf(getSecDamageAtten()
3029  	) + " | " + 
3030 		              		
3031 		              			"SecAmmoType = " + String.valueOf(getSecAmmoType()
3032  	) + " | " + 
3033 		              		
3034 		              			"SecInitialAmount = " + String.valueOf(getSecInitialAmount()
3035  	) + " | " + 
3036 		              		
3037 		              			"SecMaxAmount = " + String.valueOf(getSecMaxAmount()
3038  	) + " | " + 
3039 		              		
3040 		              			"SecMaxRange = " + String.valueOf(getSecMaxRange()
3041  	) + " | " + 
3042 		              		
3043 		              			"SecDamageType = " + String.valueOf(getSecDamageType()
3044  	) + " | " + 
3045 		              		
3046 		              			"SecArmorStops = " + String.valueOf(isSecArmorStops()
3047  	) + " | " + 
3048 		              		
3049 		              			"SecAlwaysGibs = " + String.valueOf(isSecAlwaysGibs()
3050  	) + " | " + 
3051 		              		
3052 		              			"SecSpecial = " + String.valueOf(isSecSpecial()
3053  	) + " | " + 
3054 		              		
3055 		              			"SecDetonatesGoop = " + String.valueOf(isSecDetonatesGoop()
3056  	) + " | " + 
3057 		              		
3058 		              			"SecSuperWeapon = " + String.valueOf(isSecSuperWeapon()
3059  	) + " | " + 
3060 		              		
3061 		              			"SecExtraMomZ = " + String.valueOf(isSecExtraMomZ()
3062  	) + " | " + 
3063 		              		
3064 		              			"SecProjType = " + String.valueOf(getSecProjType()
3065  	) + " | " + 
3066 		              		
3067 		              			"SecDamage = " + String.valueOf(getSecDamage()
3068  	) + " | " + 
3069 		              		
3070 		              			"SecDamageMax = " + String.valueOf(getSecDamageMax()
3071  	) + " | " + 
3072 		              		
3073 		              			"SecDamageMin = " + String.valueOf(getSecDamageMin()
3074  	) + " | " + 
3075 		              		
3076 		              			"SecSpeed = " + String.valueOf(getSecSpeed()
3077  	) + " | " + 
3078 		              		
3079 		              			"SecMaxSpeed = " + String.valueOf(getSecMaxSpeed()
3080  	) + " | " + 
3081 		              		
3082 		              			"SecLifeSpan = " + String.valueOf(getSecLifeSpan()
3083  	) + " | " + 
3084 		              		
3085 		              			"SecDamageRadius = " + String.valueOf(getSecDamageRadius()
3086  	) + " | " + 
3087 		              		
3088 		              			"SecTossZ = " + String.valueOf(getSecTossZ()
3089  	) + " | " + 
3090 		              		
3091 		              			"SecMaxEffectDistance = " + String.valueOf(getSecMaxEffectDistance()
3092  	) + " | " + 
3093 		              		
3094 		              			"Amount = " + String.valueOf(getAmount()
3095  	) + " | " + 
3096 		              		
3097 		              			"SuperHeal = " + String.valueOf(isSuperHeal()
3098  	) + " | " + 
3099 		              		
3100 				"]";           		
3101         }
3102  	
3103  		
3104  		public String toHtmlString() {
3105  			return super.toString() + "[<br/>" +
3106             	
3107 		              			"<b>InventoryType</b> = " + String.valueOf(getInventoryType()
3108  	) + " <br/> " + 
3109 		              		
3110 		              			"<b>PickupType</b> = " + String.valueOf(getPickupType()
3111  	) + " <br/> " + 
3112 		              		
3113 		              			"<b>ItemCategory</b> = " + String.valueOf(getItemCategory()
3114  	) + " <br/> " + 
3115 		              		
3116 		              			"<b>Melee</b> = " + String.valueOf(isMelee()
3117  	) + " <br/> " + 
3118 		              		
3119 		              			"<b>Sniping</b> = " + String.valueOf(isSniping()
3120  	) + " <br/> " + 
3121 		              		
3122 		              			"<b>UsesAltAmmo</b> = " + String.valueOf(isUsesAltAmmo()
3123  	) + " <br/> " + 
3124 		              		
3125 		              			"<b>PriFireModeType</b> = " + String.valueOf(getPriFireModeType()
3126  	) + " <br/> " + 
3127 		              		
3128 		              			"<b>PriSplashDamage</b> = " + String.valueOf(isPriSplashDamage()
3129  	) + " <br/> " + 
3130 		              		
3131 		              			"<b>PriSplashJump</b> = " + String.valueOf(isPriSplashJump()
3132  	) + " <br/> " + 
3133 		              		
3134 		              			"<b>PriRecomSplashDamage</b> = " + String.valueOf(isPriRecomSplashDamage()
3135  	) + " <br/> " + 
3136 		              		
3137 		              			"<b>PriTossed</b> = " + String.valueOf(isPriTossed()
3138  	) + " <br/> " + 
3139 		              		
3140 		              			"<b>PriLeadTarget</b> = " + String.valueOf(isPriLeadTarget()
3141  	) + " <br/> " + 
3142 		              		
3143 		              			"<b>PriInstantHit</b> = " + String.valueOf(isPriInstantHit()
3144  	) + " <br/> " + 
3145 		              		
3146 		              			"<b>PriFireOnRelease</b> = " + String.valueOf(isPriFireOnRelease()
3147  	) + " <br/> " + 
3148 		              		
3149 		              			"<b>PriWaitForRelease</b> = " + String.valueOf(isPriWaitForRelease()
3150  	) + " <br/> " + 
3151 		              		
3152 		              			"<b>PriModeExclusive</b> = " + String.valueOf(isPriModeExclusive()
3153  	) + " <br/> " + 
3154 		              		
3155 		              			"<b>PriFireRate</b> = " + String.valueOf(getPriFireRate()
3156  	) + " <br/> " + 
3157 		              		
3158 		              			"<b>PriBotRefireRate</b> = " + String.valueOf(getPriBotRefireRate()
3159  	) + " <br/> " + 
3160 		              		
3161 		              			"<b>PriAmmoPerFire</b> = " + String.valueOf(getPriAmmoPerFire()
3162  	) + " <br/> " + 
3163 		              		
3164 		              			"<b>PriAmmoClipSize</b> = " + String.valueOf(getPriAmmoClipSize()
3165  	) + " <br/> " + 
3166 		              		
3167 		              			"<b>PriAimError</b> = " + String.valueOf(getPriAimError()
3168  	) + " <br/> " + 
3169 		              		
3170 		              			"<b>PriSpread</b> = " + String.valueOf(getPriSpread()
3171  	) + " <br/> " + 
3172 		              		
3173 		              			"<b>PriSpreadStyle</b> = " + String.valueOf(getPriSpreadStyle()
3174  	) + " <br/> " + 
3175 		              		
3176 		              			"<b>PriFireCount</b> = " + String.valueOf(getPriFireCount()
3177  	) + " <br/> " + 
3178 		              		
3179 		              			"<b>PriDamageAtten</b> = " + String.valueOf(getPriDamageAtten()
3180  	) + " <br/> " + 
3181 		              		
3182 		              			"<b>PriAmmoType</b> = " + String.valueOf(getPriAmmoType()
3183  	) + " <br/> " + 
3184 		              		
3185 		              			"<b>PriInitialAmount</b> = " + String.valueOf(getPriInitialAmount()
3186  	) + " <br/> " + 
3187 		              		
3188 		              			"<b>PriMaxAmount</b> = " + String.valueOf(getPriMaxAmount()
3189  	) + " <br/> " + 
3190 		              		
3191 		              			"<b>PriMaxRange</b> = " + String.valueOf(getPriMaxRange()
3192  	) + " <br/> " + 
3193 		              		
3194 		              			"<b>PriDamageType</b> = " + String.valueOf(getPriDamageType()
3195  	) + " <br/> " + 
3196 		              		
3197 		              			"<b>PriArmorStops</b> = " + String.valueOf(isPriArmorStops()
3198  	) + " <br/> " + 
3199 		              		
3200 		              			"<b>PriAlwaysGibs</b> = " + String.valueOf(isPriAlwaysGibs()
3201  	) + " <br/> " + 
3202 		              		
3203 		              			"<b>PriSpecial</b> = " + String.valueOf(isPriSpecial()
3204  	) + " <br/> " + 
3205 		              		
3206 		              			"<b>PriDetonatesGoop</b> = " + String.valueOf(isPriDetonatesGoop()
3207  	) + " <br/> " + 
3208 		              		
3209 		              			"<b>PriSuperWeapon</b> = " + String.valueOf(isPriSuperWeapon()
3210  	) + " <br/> " + 
3211 		              		
3212 		              			"<b>PriExtraMomZ</b> = " + String.valueOf(isPriExtraMomZ()
3213  	) + " <br/> " + 
3214 		              		
3215 		              			"<b>PriProjType</b> = " + String.valueOf(getPriProjType()
3216  	) + " <br/> " + 
3217 		              		
3218 		              			"<b>PriDamage</b> = " + String.valueOf(getPriDamage()
3219  	) + " <br/> " + 
3220 		              		
3221 		              			"<b>PriDamageMax</b> = " + String.valueOf(getPriDamageMax()
3222  	) + " <br/> " + 
3223 		              		
3224 		              			"<b>PriDamageMin</b> = " + String.valueOf(getPriDamageMin()
3225  	) + " <br/> " + 
3226 		              		
3227 		              			"<b>PriSpeed</b> = " + String.valueOf(getPriSpeed()
3228  	) + " <br/> " + 
3229 		              		
3230 		              			"<b>PriMaxSpeed</b> = " + String.valueOf(getPriMaxSpeed()
3231  	) + " <br/> " + 
3232 		              		
3233 		              			"<b>PriLifeSpan</b> = " + String.valueOf(getPriLifeSpan()
3234  	) + " <br/> " + 
3235 		              		
3236 		              			"<b>PriDamageRadius</b> = " + String.valueOf(getPriDamageRadius()
3237  	) + " <br/> " + 
3238 		              		
3239 		              			"<b>PriTossZ</b> = " + String.valueOf(getPriTossZ()
3240  	) + " <br/> " + 
3241 		              		
3242 		              			"<b>PriMaxEffectDistance</b> = " + String.valueOf(getPriMaxEffectDistance()
3243  	) + " <br/> " + 
3244 		              		
3245 		              			"<b>SecFireModeType</b> = " + String.valueOf(getSecFireModeType()
3246  	) + " <br/> " + 
3247 		              		
3248 		              			"<b>SecSplashDamage</b> = " + String.valueOf(isSecSplashDamage()
3249  	) + " <br/> " + 
3250 		              		
3251 		              			"<b>SecSplashJump</b> = " + String.valueOf(isSecSplashJump()
3252  	) + " <br/> " + 
3253 		              		
3254 		              			"<b>SecRecomSplashDamage</b> = " + String.valueOf(isSecRecomSplashDamage()
3255  	) + " <br/> " + 
3256 		              		
3257 		              			"<b>SecTossed</b> = " + String.valueOf(isSecTossed()
3258  	) + " <br/> " + 
3259 		              		
3260 		              			"<b>SecLeadTarget</b> = " + String.valueOf(isSecLeadTarget()
3261  	) + " <br/> " + 
3262 		              		
3263 		              			"<b>SecInstantHit</b> = " + String.valueOf(isSecInstantHit()
3264  	) + " <br/> " + 
3265 		              		
3266 		              			"<b>SecFireOnRelease</b> = " + String.valueOf(isSecFireOnRelease()
3267  	) + " <br/> " + 
3268 		              		
3269 		              			"<b>SecWaitForRelease</b> = " + String.valueOf(isSecWaitForRelease()
3270  	) + " <br/> " + 
3271 		              		
3272 		              			"<b>SecModeExclusive</b> = " + String.valueOf(isSecModeExclusive()
3273  	) + " <br/> " + 
3274 		              		
3275 		              			"<b>SecFireRate</b> = " + String.valueOf(getSecFireRate()
3276  	) + " <br/> " + 
3277 		              		
3278 		              			"<b>SecBotRefireRate</b> = " + String.valueOf(getSecBotRefireRate()
3279  	) + " <br/> " + 
3280 		              		
3281 		              			"<b>SecAmmoPerFire</b> = " + String.valueOf(getSecAmmoPerFire()
3282  	) + " <br/> " + 
3283 		              		
3284 		              			"<b>SecAmmoClipSize</b> = " + String.valueOf(getSecAmmoClipSize()
3285  	) + " <br/> " + 
3286 		              		
3287 		              			"<b>SecAimError</b> = " + String.valueOf(getSecAimError()
3288  	) + " <br/> " + 
3289 		              		
3290 		              			"<b>SecSpread</b> = " + String.valueOf(getSecSpread()
3291  	) + " <br/> " + 
3292 		              		
3293 		              			"<b>SecSpreadStyle</b> = " + String.valueOf(getSecSpreadStyle()
3294  	) + " <br/> " + 
3295 		              		
3296 		              			"<b>SecFireCount</b> = " + String.valueOf(getSecFireCount()
3297  	) + " <br/> " + 
3298 		              		
3299 		              			"<b>SecDamageAtten</b> = " + String.valueOf(getSecDamageAtten()
3300  	) + " <br/> " + 
3301 		              		
3302 		              			"<b>SecAmmoType</b> = " + String.valueOf(getSecAmmoType()
3303  	) + " <br/> " + 
3304 		              		
3305 		              			"<b>SecInitialAmount</b> = " + String.valueOf(getSecInitialAmount()
3306  	) + " <br/> " + 
3307 		              		
3308 		              			"<b>SecMaxAmount</b> = " + String.valueOf(getSecMaxAmount()
3309  	) + " <br/> " + 
3310 		              		
3311 		              			"<b>SecMaxRange</b> = " + String.valueOf(getSecMaxRange()
3312  	) + " <br/> " + 
3313 		              		
3314 		              			"<b>SecDamageType</b> = " + String.valueOf(getSecDamageType()
3315  	) + " <br/> " + 
3316 		              		
3317 		              			"<b>SecArmorStops</b> = " + String.valueOf(isSecArmorStops()
3318  	) + " <br/> " + 
3319 		              		
3320 		              			"<b>SecAlwaysGibs</b> = " + String.valueOf(isSecAlwaysGibs()
3321  	) + " <br/> " + 
3322 		              		
3323 		              			"<b>SecSpecial</b> = " + String.valueOf(isSecSpecial()
3324  	) + " <br/> " + 
3325 		              		
3326 		              			"<b>SecDetonatesGoop</b> = " + String.valueOf(isSecDetonatesGoop()
3327  	) + " <br/> " + 
3328 		              		
3329 		              			"<b>SecSuperWeapon</b> = " + String.valueOf(isSecSuperWeapon()
3330  	) + " <br/> " + 
3331 		              		
3332 		              			"<b>SecExtraMomZ</b> = " + String.valueOf(isSecExtraMomZ()
3333  	) + " <br/> " + 
3334 		              		
3335 		              			"<b>SecProjType</b> = " + String.valueOf(getSecProjType()
3336  	) + " <br/> " + 
3337 		              		
3338 		              			"<b>SecDamage</b> = " + String.valueOf(getSecDamage()
3339  	) + " <br/> " + 
3340 		              		
3341 		              			"<b>SecDamageMax</b> = " + String.valueOf(getSecDamageMax()
3342  	) + " <br/> " + 
3343 		              		
3344 		              			"<b>SecDamageMin</b> = " + String.valueOf(getSecDamageMin()
3345  	) + " <br/> " + 
3346 		              		
3347 		              			"<b>SecSpeed</b> = " + String.valueOf(getSecSpeed()
3348  	) + " <br/> " + 
3349 		              		
3350 		              			"<b>SecMaxSpeed</b> = " + String.valueOf(getSecMaxSpeed()
3351  	) + " <br/> " + 
3352 		              		
3353 		              			"<b>SecLifeSpan</b> = " + String.valueOf(getSecLifeSpan()
3354  	) + " <br/> " + 
3355 		              		
3356 		              			"<b>SecDamageRadius</b> = " + String.valueOf(getSecDamageRadius()
3357  	) + " <br/> " + 
3358 		              		
3359 		              			"<b>SecTossZ</b> = " + String.valueOf(getSecTossZ()
3360  	) + " <br/> " + 
3361 		              		
3362 		              			"<b>SecMaxEffectDistance</b> = " + String.valueOf(getSecMaxEffectDistance()
3363  	) + " <br/> " + 
3364 		              		
3365 		              			"<b>Amount</b> = " + String.valueOf(getAmount()
3366  	) + " <br/> " + 
3367 		              		
3368 		              			"<b>SuperHeal</b> = " + String.valueOf(isSuperHeal()
3369  	) + " <br/> " + 
3370 		              		
3371 				"<br/>]";     
3372 		}
3373  	 
3374  	    public String toJsonLiteral() {
3375             return "ItemCategory(null, "
3376             		
3377                    + ")";
3378         }
3379  	
3380  		
3381  		// --- Extra Java from XML BEGIN (extra/code/java/javapart/classcategory[@name=all]) ---
3382         	
3383          	  
3384          		    
3385          	  
3386         	@Override
3387 			public ItemType getType() {
3388 				return getPickupType();
3389 			}
3390 		
3391 		// --- Extra Java from XML END (extra/code/java/javapart/classcategory[@name=all]) ---
3392 		
3393 	    // --- Extra Java from XML BEGIN (extra/code/java/javapart/classcategory[@name=event+classtype[@name=impl]) ---
3394 	        
3395 	    // --- Extra Java from XML END (extra/code/java/javapart/classcategory[@name=event+classtype[@name=impl]) ---        	            	
3396  	
3397 		}
3398