hedgewars/uAIMisc.pas
changeset 6772 13d13aefa4de
parent 6771 87a947097d00
child 6773 46cd5dad1a28
equal deleted inserted replaced
6771:87a947097d00 6772:13d13aefa4de
   317                 dX:= 0.005 * dmg + 0.01;
   317                 dX:= 0.005 * dmg + 0.01;
   318                 dY:= dX;
   318                 dY:= dX;
   319                 end;
   319                 end;
   320             if (Flags and 1 <> 0) and TraceDrown(x, y, Point.x, Point.y, dX, dY, erasure) then
   320             if (Flags and 1 <> 0) and TraceDrown(x, y, Point.x, Point.y, dX, dY, erasure) then
   321                 if Score > 0 then
   321                 if Score > 0 then
   322                     inc(rate, KillScore)
   322                     inc(rate, KillScore + Score)   // Add a bit of a bonus for bigger hog drownings
   323                 else
   323                 else
   324                     dec(rate, KillScore * friendlyfactor div 100)
   324                     dec(rate, KillScore * friendlyfactor div 100 - Score) // and more of a punishment for drowning bigger friendly hogs
   325             else if dmg >= abs(Score) then
   325             else if dmg >= abs(Score) then
   326                 if Score > 0 then
   326                 if Score > 0 then
   327                     inc(rate, KillScore)
   327                     inc(rate, KillScore)
   328                 else
   328                 else
   329                     dec(rate, KillScore * friendlyfactor div 100)
   329                     dec(rate, KillScore * friendlyfactor div 100)
   359                 dX:= gdX * 0.005 * kick;
   359                 dX:= gdX * 0.005 * kick;
   360                 dY:= gdY * 0.005 * kick;
   360                 dY:= gdY * 0.005 * kick;
   361                 end;
   361                 end;
   362             if (Flags and 1 <> 0) and TraceShoveDrown(Me, Point.x, Point.y, dX, dY) then
   362             if (Flags and 1 <> 0) and TraceShoveDrown(Me, Point.x, Point.y, dX, dY) then
   363                 if Score > 0 then
   363                 if Score > 0 then
   364                     inc(rate, KillScore)
   364                     inc(rate, KillScore + Score)   // Add a bit of a bonus for bigger hog drownings
   365                 else
   365                 else
   366                     dec(rate, KillScore * friendlyfactor div 100)
   366                     dec(rate, KillScore * friendlyfactor div 100 - Score) // and more of a punishment for drowning bigger friendly hogs
   367             else if power >= abs(Score) then
   367             else if power >= abs(Score) then
   368                 if Score > 0 then
   368                 if Score > 0 then
   369                     inc(rate, KillScore)
   369                     inc(rate, KillScore)
   370                 else
   370                 else
   371                     dec(rate, KillScore * friendlyfactor div 100)
   371                     dec(rate, KillScore * friendlyfactor div 100)
   410             dY:= gdY * dmg * 0.01;
   410             dY:= gdY * dmg * 0.01;
   411             if dX < 0 then dX:= dX - 0.01
   411             if dX < 0 then dX:= dX - 0.01
   412             else dX:= dX + 0.01;
   412             else dX:= dX + 0.01;
   413             if TraceDrown(x, y, Point.x, Point.y, dX, dY, erasure) then
   413             if TraceDrown(x, y, Point.x, Point.y, dX, dY, erasure) then
   414                 if Score > 0 then
   414                 if Score > 0 then
   415                     inc(rate, KillScore)
   415                     inc(rate, KillScore + Score)   // Add a bit of a bonus for bigger hog drownings
   416                 else
   416                 else
   417                     dec(rate, KillScore * friendlyfactor div 100)
   417                     dec(rate, KillScore * friendlyfactor div 100 - Score) // and more of a punishment for drowning bigger friendly hogs
   418             else if dmg >= abs(Score) then
   418             else if dmg >= abs(Score) then
   419                 dmg := KillScore;
   419                 dmg := KillScore;
   420             if Score > 0 then
   420             if Score > 0 then
   421                 inc(rate, dmg)
   421                 inc(rate, dmg)
   422             else
   422             else