hedgewars/uAIAmmoTests.pas
changeset 15637 fd1a580a35d6
parent 15636 34c32a11203e
child 15639 afeffdb4a712
equal deleted inserted replaced
15636:34c32a11203e 15637:fd1a580a35d6
    25     amtest_Rare            = $00000001; // check only several positions
    25     amtest_Rare            = $00000001; // check only several positions
    26     amtest_NoTarget        = $00000002; // each pos, but no targetting
    26     amtest_NoTarget        = $00000002; // each pos, but no targetting
    27     amtest_MultipleAttacks = $00000004; // test could result in multiple attacks, set AttacksNum
    27     amtest_MultipleAttacks = $00000004; // test could result in multiple attacks, set AttacksNum
    28     amtest_NoTrackFall     = $00000008; // skip fall tracing.  
    28     amtest_NoTrackFall     = $00000008; // skip fall tracing.  
    29     amtest_LaserSight      = $00000010; // supports laser sighting
    29     amtest_LaserSight      = $00000010; // supports laser sighting
       
    30     amtest_NoVampiric      = $00000020; // don't use vampirism with this ammo
       
    31     amtest_NoInvulnerable  = $00000040; // don't use invulnerable with this with ammo
    30 
    32 
    31 var windSpeed: real;
    33 var windSpeed: real;
    32     aiLaserSighting: boolean;
    34     aiLaserSighting: boolean;
    33 
    35 
    34 type TAttackParams = record
    36 type TAttackParams = record
    89             (proc: nil;              flags: 0), // amRope
    91             (proc: nil;              flags: 0), // amRope
    90             (proc: @TestMine;        flags: amtest_NoTarget), // amMine
    92             (proc: @TestMine;        flags: amtest_NoTarget), // amMine
    91             (proc: @TestDesertEagle; flags: amtest_MultipleAttacks or amtest_LaserSight), // amDEagle
    93             (proc: @TestDesertEagle; flags: amtest_MultipleAttacks or amtest_LaserSight), // amDEagle
    92             (proc: @TestDynamite;    flags: amtest_NoTarget), // amDynamite
    94             (proc: @TestDynamite;    flags: amtest_NoTarget), // amDynamite
    93             (proc: @TestFirePunch;   flags: amtest_NoTarget), // amFirePunch
    95             (proc: @TestFirePunch;   flags: amtest_NoTarget), // amFirePunch
    94             (proc: @TestWhip;        flags: amtest_NoTarget), // amWhip
    96             (proc: @TestWhip;        flags: amtest_NoTarget or amtest_NoInvulnerable), // amWhip
    95             (proc: @TestBaseballBat; flags: amtest_NoTarget), // amBaseballBat
    97             (proc: @TestBaseballBat; flags: amtest_NoTarget or amtest_NoInvulnerable), // amBaseballBat
    96             (proc: nil;              flags: 0), // amParachute
    98             (proc: nil;              flags: 0), // amParachute
    97             (proc: @TestAirAttack;   flags: amtest_Rare), // amAirAttack
    99             (proc: @TestAirAttack;   flags: amtest_Rare), // amAirAttack
    98             (proc: @TestMineStrike;  flags: amtest_Rare), // amMineStrike
   100             (proc: @TestMineStrike;  flags: amtest_Rare), // amMineStrike
    99             (proc: nil;              flags: 0), // amBlowTorch
   101             (proc: nil;              flags: 0), // amBlowTorch
   100             (proc: nil;              flags: 0), // amGirder
   102             (proc: nil;              flags: 0), // amGirder
   101             (proc: nil;              flags: 0), // amTeleport
   103             (proc: nil;              flags: 0), // amTeleport
   102             //(proc: @TestTeleport;    flags: amtest_OnTurn), // amTeleport
   104             //(proc: @TestTeleport;    flags: amtest_OnTurn), // amTeleport
   103             (proc: nil;              flags: 0), // amSwitch
   105             (proc: nil;              flags: 0), // amSwitch
   104             (proc: @TestMortar;      flags: 0), // amMortar
   106             (proc: @TestMortar;      flags: 0), // amMortar
   105             (proc: @TestKamikaze;    flags: amtest_LaserSight), // amKamikaze
   107             (proc: @TestKamikaze;    flags: amtest_LaserSight or amtest_NoInvulnerable or amtest_NoVampiric), // amKamikaze
   106             (proc: @TestCake;        flags: amtest_Rare or amtest_NoTarget), // amCake
   108             (proc: @TestCake;        flags: amtest_Rare or amtest_NoTarget), // amCake
   107             (proc: @TestSeduction;   flags: amtest_NoTarget), // amSeduction
   109             (proc: @TestSeduction;   flags: amtest_NoTarget), // amSeduction
   108             (proc: @TestWatermelon;  flags: 0), // amWatermelon
   110             (proc: @TestWatermelon;  flags: 0), // amWatermelon
   109             (proc: nil;              flags: 0), // amHellishBomb
   111             (proc: nil;              flags: 0), // amHellishBomb
   110             (proc: nil;              flags: 0), // amNapalm
   112             (proc: nil;              flags: 0), // amNapalm
   120             (proc: @TestSniperRifle; flags: 0), // amSniperRifle
   122             (proc: @TestSniperRifle; flags: 0), // amSniperRifle
   121             (proc: nil;              flags: 0), // amJetpack
   123             (proc: nil;              flags: 0), // amJetpack
   122             (proc: @TestMolotov;     flags: 0), // amMolotov
   124             (proc: @TestMolotov;     flags: 0), // amMolotov
   123             (proc: nil;              flags: 0), // amBirdy
   125             (proc: nil;              flags: 0), // amBirdy
   124             (proc: nil;              flags: 0), // amPortalGun
   126             (proc: nil;              flags: 0), // amPortalGun
   125             (proc: @TestPiano;       flags: amtest_Rare), // amPiano
   127             (proc: @TestPiano;       flags: amtest_Rare or amtest_NoInvulnerable or amtest_NoVampiric), // amPiano
   126             (proc: @TestGrenade;     flags: amtest_NoTrackFall), // amGasBomb
   128             (proc: @TestGrenade;     flags: amtest_NoTrackFall), // amGasBomb
   127             (proc: @TestShotgun;     flags: 0), // amSineGun
   129             (proc: @TestShotgun;     flags: 0), // amSineGun
   128             (proc: nil;              flags: 0), // amFlamethrower
   130             (proc: nil;              flags: 0), // amFlamethrower
   129             (proc: @TestSMine;       flags: 0), // amSMine
   131             (proc: @TestSMine;       flags: 0), // amSMine
   130             (proc: @TestHammer;      flags: amtest_NoTarget), // amHammer
   132             (proc: @TestHammer;      flags: amtest_NoTarget or amtest_NoInvulnerable), // amHammer
   131             (proc: nil;              flags: 0), // amResurrector
   133             (proc: nil;              flags: 0), // amResurrector
   132             (proc: @TestDrillStrike; flags: amtest_Rare), // amDrillStrike
   134             (proc: @TestDrillStrike; flags: amtest_Rare), // amDrillStrike
   133             (proc: nil;              flags: 0), // amSnowball
   135             (proc: nil;              flags: 0), // amSnowball
   134             (proc: nil;              flags: 0), // amTardis
   136             (proc: nil;              flags: 0), // amTardis
   135             (proc: nil;              flags: 0), // amLandGun
   137             (proc: nil;              flags: 0), // amLandGun