hedgewars/uGearsList.pas
changeset 12192 de9144250c37
parent 12169 869cf5f34700
child 12193 71c47122fbc0
equal deleted inserted replaced
12191:5c6e7fd5af29 12192:de9144250c37
   103 (*         gtTardis *) , amTardis
   103 (*         gtTardis *) , amTardis
   104 (*         gtIceGun *) , amIceGun
   104 (*         gtIceGun *) , amIceGun
   105 (*        gtAddAmmo *) , amNothing
   105 (*        gtAddAmmo *) , amNothing
   106 (*  gtGenericFaller *) , amNothing
   106 (*  gtGenericFaller *) , amNothing
   107 (*          gtKnife *) , amKnife
   107 (*          gtKnife *) , amKnife
       
   108 (*           gtDuck *) , amNothing // TODO: Add ammo type
   108     );
   109     );
   109 
   110 
   110 
   111 
   111 var GCounter: LongWord = 0; // this does not get re-initialized, but should be harmless
   112 var GCounter: LongWord = 0; // this does not get re-initialized, but should be harmless
   112 
   113 
   261          gtHammer: if cDamageModifier > _1 then // scale it based on cDamageModifier?
   262          gtHammer: if cDamageModifier > _1 then // scale it based on cDamageModifier?
   262                          Gear^.Boom := 2
   263                          Gear^.Boom := 2
   263                     else Gear^.Boom := 3;
   264                     else Gear^.Boom := 3;
   264     gtPoisonCloud: Gear^.Boom := 20;
   265     gtPoisonCloud: Gear^.Boom := 20;
   265           gtKnife: Gear^.Boom := 40000; // arbitrary scaling factor since impact-based
   266           gtKnife: Gear^.Boom := 40000; // arbitrary scaling factor since impact-based
       
   267            gtDuck: Gear^.Boom := 40;
   266     end;
   268     end;
   267 
   269 
   268 case Kind of
   270 case Kind of
   269      gtGrenade,
   271      gtGrenade,
   270      gtClusterBomb,
   272      gtClusterBomb,
   714                 end;
   716                 end;
   715 }
   717 }
   716       gtIceGun: begin
   718       gtIceGun: begin
   717                 gear^.Health:= 1000;
   719                 gear^.Health:= 1000;
   718                 gear^.Radius:= 8;
   720                 gear^.Radius:= 8;
       
   721                 end;
       
   722         gtDuck: begin
       
   723                 gear^.Pos:= 0;               // 0: falling/in air, 1-4: on water
       
   724                 gear^.Tag:= 1;               // 1: facing right, -1: facing left
       
   725                 if gear^.Timer = 0 then      
       
   726                     gear^.Timer:= 9000;      // Explosion timer to avoid duck existing forever
       
   727                 gear^.WDTimer:= gear^.Timer; // For restoring the timer, timer is reset when hitting water
       
   728                 gear^.Radius:= 9;            // Collision radius (with landscape)
       
   729                 gear^.Karma:= 24;            // Distance from water when swimming
       
   730                 gear^.Elasticity:= _0_6;
       
   731                 gear^.Friction:= _0_03;
       
   732                 gear^.Density:= _0_5;
       
   733                 gear^.AdvBounce:= 1;
   719                 end;
   734                 end;
   720 gtGenericFaller:begin
   735 gtGenericFaller:begin
   721                 gear^.AdvBounce:= 1;
   736                 gear^.AdvBounce:= 1;
   722                 gear^.Radius:= 1;
   737                 gear^.Radius:= 1;
   723                 gear^.Elasticity:= _0_9;
   738                 gear^.Elasticity:= _0_9;