Add sanity check.
[super-star-trek.git] / src / sst.py
index 187bc18a016ae69300af240c5bdd92f6dbb29c32..0a8a7863ac6029c83ba98e407bf6b98553ff8b8a 100644 (file)
@@ -649,7 +649,7 @@ def movescom(iq, avoid):
     game.state.kscmdr = iq
     game.state.galaxy[game.state.kscmdr.i][game.state.kscmdr.j].klingons += 1
     if game.state.kscmdr==game.quadrant:
-       # SC has scooted, Remove him from current quadrant 
+       # SC has scooted, remove him from current quadrant 
        game.iscate=False
        game.isatb=0
        game.ientesc = False
@@ -970,11 +970,12 @@ def randdevice():
        15,     # DCOMPTR: computer                      1.5% 
        20,     # NAVCOMP: navigation system             2.0% 
        75,     # DTRANSP: transporter                   7.5% 
-       20,     # DSHCTRL: high-speed shield controller 2.0% 
+       20,     # DSHCTRL: high-speed shield controller  2.0% 
        10,     # DDRAY: death ray                       1.0% 
        30,     # DDSP: deep-space probes                3.0% 
     )
-    idx = randrange(1000)      # weights must sum to 1000 
+    assert(sum(weights) == 1000)
+    idx = randrange(1000)
     sum = 0
     for (i, w) in enumerate(weights):
        sum += w
@@ -2326,7 +2327,7 @@ def events():
                else:
                    prout(_("Uhura- Starfleet reports increased Klingon activity"))
                    if q.planet != None:
-                       proutn(_("near %s") % q.planet)
+                       proutn(_("near %s ") % q.planet)
                    prout(_("in Quadrant %s.") % w)
                                
 def wait():
@@ -2904,8 +2905,6 @@ def score():
        klship = 1
     else:
        klship = 2
-    if not game.gamewon:
-       game.state.nromrem = 0 # None captured if no win
     iscore = 10*(game.inkling - game.state.remkl) \
              + 50*(game.incom - len(game.state.kcmdr)) \
              + ithperd + iwon \
@@ -2920,7 +2919,7 @@ def score():
     if game.inrom - game.state.nromrem:
        prout(_("%6d Romulans destroyed                 %5d") %
              (game.inrom - game.state.nromrem, 20*(game.inrom - game.state.nromrem)))
-    if game.state.nromrem:
+    if game.state.nromrem and game.gamewon:
        prout(_("%6d Romulans captured                  %5d") %
              (game.state.nromrem, game.state.nromrem))
     if game.inkling - game.state.remkl:
@@ -2943,7 +2942,7 @@ def score():
              (game.state.nplankl, -10*game.state.nplankl))
     if (game.options & OPTION_WORLDS) and game.state.nworldkl:
        prout(_("%6d inhabited planets destroyed by your action   %5d") %
-             (game.state.nplankl, -300*game.state.nworldkl))
+             (game.state.nworldkl, -300*game.state.nworldkl))
     if game.state.basekl:
        prout(_("%6d bases destroyed by your action     %5d") %
              (game.state.basekl, -100*game.state.basekl))
@@ -4460,7 +4459,7 @@ def usecrystals():
     skip(1)
     prouts(_("Scotty-  \"Keep your fingers crossed, Sir!\""))
     skip(1)
-    if with(game.cryprob):
+    if random.random() > game.cryprob:
        prouts(_("  \"Activating now! - - No good!  It's***"))
        skip(2)
        prouts(_("***RED ALERT!  RED A*L********************************"))
@@ -5473,7 +5472,7 @@ def choose():
     # Choose game options -- added by ESR for SST2K
     if scanner.next() != "IHALPHA":
        scanner.chew()
-       proutn(_("Choose your game style (or just press enter): "))
+       proutn(_("Choose your game style (plain, almy, fancy or just press enter): "))
        scanner.next()
     if scanner.sees("plain"):
        # Approximates the UT FORTRAN version.
@@ -6199,8 +6198,12 @@ if __name__ == '__main__':
                 sys.stderr.write("usage: sst [-t] [-x] [startcommand...].\n")
                 raise SystemExit, 1
         # where to save the input in case of bugs
+        if "TMPDIR" in os.environ:
+            tmpdir = os.environ['TMPDIR']
+        else:
+            tmpdir = "/tmp"
         try:
-            logfp = open("/tmp/sst-input.log", "w")
+            logfp = open(os.path.join(tmpdir, "sst-input.log"), "w")
         except IOError:
             sys.stderr.write("sst: warning, can't open logfile\n")
             sys.exit(1)