hedgewars/uAIMisc.pas
changeset 82 2f4f3236cccc
parent 80 3c3dc6a148ca
child 95 1ef5e2c41115
equal deleted inserted replaced
81:d74e0e914b50 82:2f4f3236cccc
   267                  or   TestCollisionYwithGear(Gear, -1)) then
   267                  or   TestCollisionYwithGear(Gear, -1)) then
   268                  begin
   268                  begin
   269                  Gear.dY:= -0.15;
   269                  Gear.dY:= -0.15;
   270                  Gear.dX:= Sign(Gear.dX) * 0.15;
   270                  Gear.dX:= Sign(Gear.dX) * 0.15;
   271                  Gear.State:= Gear.State or gstFalling or gstHHJumping
   271                  Gear.State:= Gear.State or gstFalling or gstHHJumping
   272                  end
   272                  end else exit
   273               end
   273               end
   274     end;
   274     end;
   275     
   275     
   276 repeat
   276 repeat
   277 if Gear.Y + cHHRadius >= cWaterLine then exit;
   277 if Gear.Y + cHHRadius >= cWaterLine then exit;
   332    inc(GoInfo.Ticks);
   332    inc(GoInfo.Ticks);
   333    Gear.dY:= Gear.dY + cGravity;
   333    Gear.dY:= Gear.dY + cGravity;
   334    if Gear.dY > 0.40 then
   334    if Gear.dY > 0.40 then
   335       begin
   335       begin
   336       Goinfo.FallPix:= 0;
   336       Goinfo.FallPix:= 0;
   337       HHJump(AltGear, jmpLJump, GoInfo);
   337       HHJump(AltGear, jmpLJump, GoInfo); // try ljump enstead of fall with damage
   338       exit
   338       exit
   339       end;
   339       end;
   340    Gear.Y:= Gear.Y + Gear.dY;
   340    Gear.Y:= Gear.Y + Gear.dY;
   341    if round(Gear.Y) > pY then inc(GoInfo.FallPix);
   341    if round(Gear.Y) > pY then inc(GoInfo.FallPix);
   342    if TestCollisionYwithGear(Gear, 1) then
   342    if TestCollisionYwithGear(Gear, 1) then
   343       begin
   343       begin
   344       inc(GoInfo.Ticks, 300);
   344       inc(GoInfo.Ticks, 300);
   345       Gear.State:= Gear.State and not (gstFalling or gstHHJumping);
   345       Gear.State:= Gear.State and not (gstFalling or gstHHJumping);
   346       Gear.dY:= 0;
   346       Gear.dY:= 0;
   347       Result:= true;
   347       Result:= true;
   348       HHJump(AltGear, jmpLJump, GoInfo);
   348       HHJump(AltGear, jmpLJump, GoInfo); // try ljump instead of fall
   349       exit
   349       exit
   350       end;
   350       end;
   351    continue
   351    continue
   352    end;
   352    end;
   353    if (Gear.Message and gm_Left  )<>0 then Gear.dX:= -1.0 else
   353    if (Gear.Message and gm_Left  )<>0 then Gear.dX:= -1.0 else