Bug fixes.
[super-star-trek.git] / sst.py
diff --git a/sst.py b/sst.py
index a4ed80e97f5d5b29f23421e7846f9b4fa0816ee2..58857746e4b63c47474ffea7e956da28c6ba246c 100755 (executable)
--- a/sst.py
+++ b/sst.py
@@ -943,12 +943,12 @@ def cloak():
             return
     else:
         if not game.iscloaked:
-            proutn(_("Switch cloaking device on?"))
+            proutn(_("Switch cloaking device on? "))
             if not ja():
                 return
             action = "CLON"
         else:
-            proutn(_("Switch cloaking device off?"))
+            proutn(_("Switch cloaking device off? "))
             if not ja():
                 return
             action = "CLOFF"
@@ -961,7 +961,7 @@ def cloak():
             if not ja():
                 return;
         prout("Engineer Scott- \"Aye, Sir.\"");
-        game.iscloaked = FALSE;
+        game.iscloaked = False;
         if game.irhere and game.state.date >= ALGERON and not game.isviolreported:
             prout(_("The Romulan ship discovers you are breaking the Treaty of Algeron!"))
             game.ncviol += 1
@@ -971,7 +971,7 @@ def cloak():
             return;
 
     if action == "CLON":
-        if damage(DCLOAK):
+        if damaged(DCLOAK):
             prout(_("Engineer Scott- \"The cloaking device is damaged, Sir.\""))
             return;
 
@@ -979,9 +979,9 @@ def cloak():
             prout(_("You cannot cloak while docked."))
 
        if game.state.date >= ALGERON and not game.isviolreported:
-            prout(_("Spock- \"Captain, using the cloaking device is be a violation"))
+            prout(_("Spock- \"Captain, using the cloaking device is a violation"))
             prout(_("  of the Treaty of Algeron. Considering the alternatives,"))
-            proutn("  are you sure this is wise?");
+            proutn(_("  are you sure this is wise? "))
             if not ja():
                 return
        prout(_("Engineer Scott- \"Cloaking device has engaging, Sir...\""))
@@ -2111,7 +2111,7 @@ def capture():
     #  Nah, just select the weakest one since it is most likely to
     #  surrender (Tom Almy mod)
     klingons = [e for e in game.enemies if e.type == 'K']
-    weakest = sorted(klingons, key=lambda e: e.power)
+    weakest = sorted(klingons, key=lambda e: e.power)[0]
     game.optime = 0.05         # This action will take some time
     game.ididit = True #  So any others can strike back
 
@@ -2362,7 +2362,7 @@ def events():
             if game.state.galaxy[game.quadrant.i][game.quadrant.j].supernova:
                 return
         elif evcode == FSPY: # Check with spy to see if SC should tractor beam
-            if game.state.nscrem == 0 or game.state.iscloaked or \
+            if game.state.nscrem == 0 or game.iscloaked or \
                 ictbeam or istract or \
                 game.condition == "docked" or game.isatb == 1 or game.iscate:
                 return
@@ -3156,6 +3156,7 @@ def finish(ifin):
         prout(_("to think about pigeons."))
         game.gamewon = True
     score()
+    scanner.chew()     # Clean up leftovers
 
 def score():
     "Compute player's score."
@@ -5273,6 +5274,8 @@ def sectscan(goodScan, i, j):
     "Light up an individual dot in a sector."
     if goodScan or (abs(i-game.sector.i)<= 1 and abs(j-game.sector.j) <= 1):
         if game.quad[i][j] in ('E', 'F'):
+            if game.iscloaked:
+                highvideo()
             textcolor({"green":GREEN,
                        "yellow":YELLOW,
                        "red":RED,
@@ -5286,8 +5289,6 @@ def sectscan(goodScan, i, j):
                        'R':LIGHTRED,
                        'T':LIGHTRED,
                        }.get(game.quad[i][j], DEFAULT))
-        if game.iscloaked:
-            highvideo()
         proutn("%c " % game.quad[i][j])
         textcolor(DEFAULT)
     else:
@@ -5856,9 +5857,9 @@ def choose():
         game.tourn = game.length = 0
         game.thawed = False
         game.skill = SKILL_NONE
-        scanner.chew()
-#        if not scanner.inqueue: # Can start with command line options
-        proutn(_("Would you like a regular, tournament, or saved game? "))
+        # Do not chew here, we want to use command-line tokens
+        if not scanner.inqueue: # Can start with command line options
+            proutn(_("Would you like a regular, tournament, or saved game? "))
         scanner.nexttok()
         if scanner.sees("tournament"):
             while scanner.nexttok() == "IHEOL":
@@ -6359,6 +6360,8 @@ def makemoves():
                 hitme = True
         elif cmd == "CAPTURE":
             capture()
+        elif cmd == "CLOAK":
+            cloak()
         elif cmd == "DEBUGCMD":                # What do we want for debug???
             debugme()
         elif cmd == "MAYDAY":                # Call for help