hedgewars/GSHandlers.inc
changeset 4792 68f9b331014a
parent 4791 458d9854c679
child 4795 d2f9f71b4491
equal deleted inserted replaced
4791:458d9854c679 4792:68f9b331014a
   231 procedure doStepDrowningGear(Gear: PGear);
   231 procedure doStepDrowningGear(Gear: PGear);
   232 begin
   232 begin
   233     AllInactive := false;
   233     AllInactive := false;
   234     Gear^.Y := Gear^.Y + cDrownSpeed;
   234     Gear^.Y := Gear^.Y + cDrownSpeed;
   235     Gear^.X := Gear^.X + Gear^.dX * cDrownSpeed;
   235     Gear^.X := Gear^.X + Gear^.dX * cDrownSpeed;
   236     if (cWaterOpacity > $FE) or (hwRound(Gear^.Y) > Gear^.Radius + cWaterLine + cVisibleWater) then
   236     if (not SuddenDeathDmg and (cWaterOpacity > $FE)) or (SuddenDeathDmg and (cSDWaterOpacity > $FE)) or (hwRound(Gear^.Y) > Gear^.Radius + cWaterLine + cVisibleWater) then
   237         DeleteGear(Gear);
   237         DeleteGear(Gear);
   238     // Create some bubbles (0.5% might be better but causes too few bubbles sometimes)
   238     // Create some bubbles (0.5% might be better but causes too few bubbles sometimes)
   239     if (cWaterOpacity < $FF) and ((GameTicks and $1F) = 0) then
   239     if ((not SuddenDeathDmg and (cWaterOpacity < $FF)) or (SuddenDeathDmg and (cSDWaterOpacity < $FF))) and ((GameTicks and $1F) = 0) then
   240         if (Gear^.Kind = gtHedgehog) and (Random(4) = 0) then
   240         if (Gear^.Kind = gtHedgehog) and (Random(4) = 0) then
   241             AddVisualGear(hwRound(Gear^.X) - Gear^.Radius, hwRound(Gear^.Y) - Gear^.Radius,
   241             AddVisualGear(hwRound(Gear^.X) - Gear^.Radius, hwRound(Gear^.Y) - Gear^.Radius,
   242             vgtBubble)
   242             vgtBubble)
   243     else if Random(12) = 0 then
   243     else if Random(12) = 0 then
   244              AddVisualGear(hwRound(Gear^.X) - Gear^.Radius, hwRound(Gear^.Y) - Gear^.Radius,
   244              AddVisualGear(hwRound(Gear^.X) - Gear^.Radius, hwRound(Gear^.Y) - Gear^.Radius,
   890     begin
   890     begin
   891         DrawTunnel(oX, oY, Gear^.dX, Gear^.dY, 82 - i, 1);
   891         DrawTunnel(oX, oY, Gear^.dX, Gear^.dY, 82 - i, 1);
   892         dec(Gear^.Health, Gear^.Damage);
   892         dec(Gear^.Health, Gear^.Damage);
   893         Gear^.Damage := 0
   893         Gear^.Damage := 0
   894     end;
   894     end;
   895     if ((Gear^.State and gstDrowning) <> 0) and (Gear^.Damage < Gear^.Health) and (cWaterOpacity < $FF) then
   895     if ((Gear^.State and gstDrowning) <> 0) and (Gear^.Damage < Gear^.Health) and ((not SuddenDeathDmg and (cWaterOpacity < $FF)) or (SuddenDeathDmg and (cSDWaterOpacity < $FF))) then
   896     begin
   896     begin
   897         for i:=(Gear^.Health - Gear^.Damage) * 4 downto 0 do
   897         for i:=(Gear^.Health - Gear^.Damage) * 4 downto 0 do
   898         begin
   898         begin
   899             if Random(6) = 0 then
   899             if Random(6) = 0 then
   900                 AddVisualGear(hwRound(Gear^.X), hwRound(Gear^.Y), vgtBubble);
   900                 AddVisualGear(hwRound(Gear^.X), hwRound(Gear^.Y), vgtBubble);