Compute final member in course object.
[super-star-trek.git] / src / sst.py
index c3bba0f3b2f37e0104dd2649f01249f0cd79f5de..6d2d8f56d9b4f9a70c3d76f90a082603d92c0476 100644 (file)
@@ -2130,7 +2130,7 @@ def phasers():
     if ifast:
        skip(1)
        if no == 0:
-           if withprob(0.99):
+           if withprob(0.01):
                prout(_("Sulu-  \"Sir, the high-speed shield control has malfunctioned . . ."))
                prouts(_("         CLICK   CLICK   POP  . . ."))
                prout(_(" No response, sir!"))
@@ -3641,12 +3641,8 @@ def imove(course=None, novapush=False):
                     attack(torps_ok=False)
                 if game.alldone:
                     return
-            # compute final position -- new quadrant and sector 
-            x = (QUADSIZE*game.quadrant.i)+game.sector.i
-            y = (QUADSIZE*game.quadrant.j)+game.sector.j
-            w.i = int(round(x+QUADSIZE*course.distance*bigger*deltax))
-            w.j = int(round(y+QUADSIZE*course.distance*bigger*deltay))
             # check for edge of galaxy 
+            w = course.final
             kinks = 0
             while True:
                 kink = False
@@ -3693,7 +3689,7 @@ def imove(course=None, novapush=False):
         iquad = game.quad[w.i][w.j]
         if iquad != IHDOT:
             # object encountered in flight path 
-            stopegy = 50.0*course.dist/game.optime
+            stopegy = 50.0*course.distance/game.optime
             course.distance = (game.sector - w).distance() / (QUADSIZE * 1.0)
             if iquad in (IHT, IHK, IHC, IHS, IHR, IHQUEST):
                 game.sector = w
@@ -3940,6 +3936,7 @@ class course:
         bigger = max(abs(self.increment.i), abs(self.increment.j))
         self.increment /= bigger
         self.moves = int(round(10*self.distance*bigger))
+        self.final = (self.location + self.moves*self.increment).roundtogrid()
     def next(self, grain=1):
         "Next step on course."
         self.moves -=1