equal
deleted
inserted
replaced
1781 if targ <> nil then |
1781 if targ <> nil then |
1782 begin |
1782 begin |
1783 tX:=Gear^.X-targ^.X; |
1783 tX:=Gear^.X-targ^.X; |
1784 tY:=Gear^.Y-targ^.Y; |
1784 tY:=Gear^.Y-targ^.Y; |
1785 // allow escaping - should maybe flag this too |
1785 // allow escaping - should maybe flag this too |
1786 if ((tX.Round+tY.Round > Gear^.Angle*4) and |
1786 if (GameTicks > Gear^.FlightTime+10000) or |
1787 (hwRound(hwSqr(tX) + hwSqr(tY)) > sqr(Gear^.Angle*4))) then |
1787 ((tX.Round+tY.Round > Gear^.Angle*6) and |
|
1788 (hwRound(hwSqr(tX) + hwSqr(tY)) > sqr(Gear^.Angle*6))) then |
1788 targ:= nil |
1789 targ:= nil |
1789 end; |
1790 end; |
1790 |
1791 |
1791 // todo, allow not finding new target, set timeout on target retention |
1792 // todo, allow not finding new target, set timeout on target retention |
1792 if (Gear^.State and (gsttmpFlag or gstAttacking) = gsttmpFlag) and |
1793 if (ReadyTimeLeft = 0) and (TurnTimeLeft > 0) and ((TurnTimeLeft > cHedgehogTurnTime) or (cHedgehogTurnTime-TurnTimeLeft > 5000)) and |
|
1794 (Gear^.State and (gsttmpFlag or gstAttacking) = gsttmpFlag) and |
1793 (Gear^.Angle > 0) and ((GameTicks and $FF) = 17) and |
1795 (Gear^.Angle > 0) and ((GameTicks and $FF) = 17) and |
1794 (GameTicks > Gear^.FlightTime) then // recheck hunted hog |
1796 (GameTicks > Gear^.FlightTime) then // recheck hunted hog |
1795 begin |
1797 begin |
1796 if targ <> nil then |
1798 if targ <> nil then |
1797 targDist:= Distance(Gear^.X-targ^.X,Gear^.Y-targ^.Y).Round |
1799 targDist:= Distance(Gear^.X-targ^.X,Gear^.Y-targ^.Y).Round |
1816 Gear^.Hedgehog:= @Hedgehogs[i]; |
1818 Gear^.Hedgehog:= @Hedgehogs[i]; |
1817 targ:= tmpG; |
1819 targ:= tmpG; |
1818 end |
1820 end |
1819 end |
1821 end |
1820 end; |
1822 end; |
1821 if targ <> nil then Gear^.FlightTime:= GameTicks + 10000 |
1823 if targ <> nil then Gear^.FlightTime:= GameTicks + 5000 |
1822 end; |
1824 end; |
1823 if targ <> nil then |
1825 if targ <> nil then |
1824 begin |
1826 begin |
1825 trackSpeed:= _0; |
1827 trackSpeed:= _0; |
1826 trackSpeed.QWordValue:= Gear^.Power; |
1828 trackSpeed.QWordValue:= Gear^.Power; |
1829 else if (Gear^.X > targ^.X) and (Gear^.dX > -_0_1) then |
1831 else if (Gear^.X > targ^.X) and (Gear^.dX > -_0_1) then |
1830 Gear^.dX:= Gear^.dX-trackSpeed; |
1832 Gear^.dX:= Gear^.dX-trackSpeed; |
1831 if (Gear^.Y < targ^.Y) and (Gear^.dY < _0_1) then |
1833 if (Gear^.Y < targ^.Y) and (Gear^.dY < _0_1) then |
1832 Gear^.dY:= Gear^.dY+trackSpeed |
1834 Gear^.dY:= Gear^.dY+trackSpeed |
1833 else if (Gear^.Y > targ^.Y) and (Gear^.dY > -_0_1) then |
1835 else if (Gear^.Y > targ^.Y) and (Gear^.dY > -_0_1) then |
1834 Gear^.dY:= Gear^.dY-trackSpeed; |
1836 Gear^.dY:= Gear^.dY-trackSpeed |
1835 end |
1837 end |
1836 else Gear^.Hedgehog:= nil; |
1838 else Gear^.Hedgehog:= nil; |
1837 |
1839 |
1838 if ((Gear^.State and gsttmpFlag) <> 0) and (Gear^.Health <> 0) then |
1840 if ((Gear^.State and gsttmpFlag) <> 0) and (Gear^.Health <> 0) then |
1839 begin |
1841 begin |