hedgewars/uGearsList.pas
branchios-develop
changeset 13418 ba39a1d396c0
parent 13404 3d6aae2ae698
child 13468 f1d349a52bc7
--- a/hedgewars/uGearsList.pas	Sun Jun 10 18:56:51 2018 +0200
+++ b/hedgewars/uGearsList.pas	Sun Jun 10 19:12:26 2018 +0200
@@ -106,6 +106,8 @@
 (*  gtGenericFaller *) , amNothing
 (*          gtKnife *) , amKnife
 (*           gtDuck *) , amDuck
+(*        gtMinigun *) , amMinigun
+(*  gtMinigunBullet *) , amMinigun
     );
 
 
@@ -222,7 +224,7 @@
        gtHedgehog: Gear^.Boom := 30;
            gtMine: Gear^.Boom := 50;
            gtCase: Gear^.Boom := 25;
-        gtAirMine: Gear^.Boom := 25;
+        gtAirMine: Gear^.Boom := 30;
      gtExplosives: Gear^.Boom := 75;
         gtGrenade: Gear^.Boom := 50;
           gtShell: Gear^.Boom := 50;
@@ -265,6 +267,7 @@
     gtPoisonCloud: Gear^.Boom := 20;
           gtKnife: Gear^.Boom := 40000; // arbitrary scaling factor since impact-based
            gtDuck: Gear^.Boom := 40;
+    gtMinigunBullet: Gear^.Boom := 2;
     end;
 
 case Kind of
@@ -312,6 +315,8 @@
                 if (GameFlags and gfAISurvival) <> 0 then
                     if gear^.Hedgehog^.BotLevel > 0 then
                         gear^.Hedgehog^.Effects[heResurrectable] := 1;
+                if (GameFlags and gfArtillery) <> 0 then
+                    gear^.Hedgehog^.Effects[heArtillery] := 1;
                 // this would presumably be set in the frontend
                 // if we weren't going to do that yet, would need to reinit GetRandom
                 // oh, and, randomising slightly R and B might be nice too.
@@ -429,6 +434,7 @@
                     end
                 end;
      gtAirMine: begin
+                gear^.AdvBounce:= 1;
                 gear^.ImpactSound:= sndAirMineImpact;
                 gear^.nImpactSounds:= 1;
                 gear^.Health:= 30;
@@ -440,7 +446,6 @@
                 gear^.Angle:= 175; // Radius at which air bombs will start "seeking". $FFFFFFFF = unlimited. check is skipped.
                 gear^.Power:= cMaxWindSpeed.QWordValue div 2; // hwFloat converted. 1/2 g default. defines the "seek" speed when a gear is in range.
                 gear^.Pos:= cMaxWindSpeed.QWordValue * 3 div 2; // air friction. slows it down when not hitting stuff
-                gear^.Karma:= 30; // damage
                 if gear^.Timer = 0 then
                     begin
                     if cMinesTime < 0 then
@@ -741,6 +746,17 @@
                 gear^.Density:= _0_5;
                 gear^.AdvBounce:= 1;
                 end;
+     gtMinigun: begin
+                // Timer. First, it's the timer before shooting. Then it will become the shooting timer and is set to Karma
+                if gear^.Timer = 0 then
+                    gear^.Timer:= 601;
+                // minigun shooting time. 1 bullet is fired every 50ms
+                gear^.Karma:= 3451;
+                end;
+ gtMinigunBullet: begin
+                gear^.Radius:= 1;
+                gear^.Health:= 2;
+                end;
 gtGenericFaller:begin
                 gear^.AdvBounce:= 1;
                 gear^.Radius:= 1;