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; |