hedgewars/uAIAmmoTests.pas
changeset 14212 ca179b615c0b
parent 14196 ab5e710d353d
child 14220 d5d941737a65
equal deleted inserted replaced
14211:0f7b92397b9e 14212:ca179b615c0b
   156     else targXWrap:= Targ.Point.X - (RightX-LeftX);
   156     else targXWrap:= Targ.Point.X - (RightX-LeftX);
   157 valueResult:= BadTurn;
   157 valueResult:= BadTurn;
   158 repeat
   158 repeat
   159     rTime:= rTime + 300 + Level * 50 + random(300);
   159     rTime:= rTime + 300 + Level * 50 + random(300);
   160     if (WorldEdge = weWrap) and (random(2)=0) then
   160     if (WorldEdge = weWrap) and (random(2)=0) then
   161          Vx:= - windSpeed * rTime * 0.5 + (targXWrap + AIrndSign(2) - mX) / rTime
   161          Vx:= - windSpeed * rTime * 0.5 + (targXWrap + AIrndSign(2) + AIrndOffset(Targ, Level) - mX) / rTime
   162     else Vx:= - windSpeed * rTime * 0.5 + (Targ.Point.X + AIrndSign(2) - mX) / rTime;
   162     else Vx:= - windSpeed * rTime * 0.5 + (Targ.Point.X + AIrndSign(2) + AIrndOffset(Targ, Level) - mX) / rTime;
   163     Vy:= cGravityf * rTime * 0.5 - (Targ.Point.Y + 1 - mY) / rTime;
   163     Vy:= cGravityf * rTime * 0.5 - (Targ.Point.Y + 1 - mY) / rTime;
   164     r:= sqr(Vx) + sqr(Vy);
   164     r:= sqr(Vx) + sqr(Vy);
   165     if not (r > 1) then
   165     if not (r > 1) then
   166         begin
   166         begin
   167         x:= mX;
   167         x:= mX;
   542          targXWrap:= Targ.Point.X + (RightX-LeftX)
   542          targXWrap:= Targ.Point.X + (RightX-LeftX)
   543     else targXWrap:= Targ.Point.X - (RightX-LeftX);
   543     else targXWrap:= Targ.Point.X - (RightX-LeftX);
   544 repeat
   544 repeat
   545     inc(TestTime, 1000);
   545     inc(TestTime, 1000);
   546     if (WorldEdge = weWrap) and (random(2)=0) then
   546     if (WorldEdge = weWrap) and (random(2)=0) then
   547          Vx:= (targXWrap - meX) / (TestTime + tDelta)
   547          Vx:= (targXWrap + AIrndOffset(Targ, Level) - meX) / (TestTime + tDelta)
   548     else Vx:= (Targ.Point.X - meX) / (TestTime + tDelta);
   548     else Vx:= (Targ.Point.X + AIrndOffset(Targ, Level) - meX) / (TestTime + tDelta);
   549     Vy:= cGravityf * ((TestTime + tDelta) div 2) - (Targ.Point.Y - meY) / (TestTime + tDelta);
   549     Vy:= cGravityf * ((TestTime + tDelta) div 2) - (Targ.Point.Y - meY) / (TestTime + tDelta);
   550     r:= sqr(Vx) + sqr(Vy);
   550     r:= sqr(Vx) + sqr(Vy);
   551     if not (r > 1) then
   551     if not (r > 1) then
   552         begin
   552         begin
   553         x:= meX;
   553         x:= meX;