hedgewars/uGearsHandlersMess.pas
changeset 13357 030b085b182f
parent 13341 0c3f612edc19
child 13381 caed04706564
equal deleted inserted replaced
13356:ced5dc3079a3 13357:030b085b182f
  1395             oY:= Gear^.Y;
  1395             oY:= Gear^.Y;
  1396             end;
  1396             end;
  1397 
  1397 
  1398         CheckGearDrowning(Gear);
  1398         CheckGearDrowning(Gear);
  1399         case Gear^.Kind of
  1399         case Gear^.Kind of
  1400             gtMinigunBullet: isDead:= isDigging;
  1400             gtMinigunBullet: isDead:= isDigging or ((Gear^.State and gstDrowning) <> 0);
  1401             gtDEagleShot, gtSniperRifleShot: isDead:= Gear^.Damage >= Gear^.Health;
  1401             gtDEagleShot, gtSniperRifleShot: isDead:= (Gear^.Damage >= Gear^.Health) or ((Gear^.State and gstDrowning) <> 0)
  1402         end;
  1402         end;
  1403         dec(i)
  1403         dec(i)
  1404     until (i = 0) or (isDead) or ((Gear^.State and gstDrowning) <> 0);
  1404     until (i = 0) or (isDead);
  1405 
  1405 
  1406     LineShoveHelp(Gear, oX, oY, Gear^.X, Gear^.Y,
  1406     LineShoveHelp(Gear, oX, oY, Gear^.X, Gear^.Y,
  1407                   Gear^.dX, Gear^.dY, iInit + 2 - i);
  1407                   Gear^.dX, Gear^.dY, iInit + 2 - i);
  1408 
  1408 
  1409     if ((Gear^.State and gstDrowning) <> 0) and (Gear^.Health > 0) then
  1409     if ((Gear^.State and gstDrowning) <> 0) and (Gear^.Health > 0) then
  1410         begin
  1410         begin
  1411         // draw bubbles
  1411         // draw bubbles
  1412         if (not SuddenDeathDmg and (WaterOpacity < $FF)) or (SuddenDeathDmg and (SDWaterOpacity < $FF)) then
  1412         if (not SuddenDeathDmg and (WaterOpacity < $FF)) or (SuddenDeathDmg and (SDWaterOpacity < $FF)) then
  1413             begin
  1413             begin
  1414             for i:=(Gear^.Health * 4) downto 0 do
  1414 			case Gear^.Kind of
       
  1415 				gtMinigunBullet: iInit:= Gear^.Health * 100;
       
  1416 				gtDEagleShot, gtSniperRifleShot: iInit:= Gear^.Health * 4
       
  1417 				end;
       
  1418             for i:=iInit downto 0 do
  1415                 begin
  1419                 begin
  1416                 if Random(6) = 0 then
  1420                 if Random(6) = 0 then
  1417                     AddVisualGear(hwRound(Gear^.X), hwRound(Gear^.Y), vgtBubble);
  1421                     AddVisualGear(hwRound(Gear^.X), hwRound(Gear^.Y), vgtBubble);
  1418                 Gear^.X := Gear^.X + Gear^.dX;
  1422                 Gear^.X := Gear^.X + Gear^.dX;
  1419                 Gear^.Y := Gear^.Y + Gear^.dY;
  1423                 Gear^.Y := Gear^.Y + Gear^.dY;