Code doesn't work under Python 3 yet.
[super-star-trek.git] / sst.py
diff --git a/sst.py b/sst.py
index bd0582e9f370c18d768e22b93aecbda38c7a1472..b6ac039828e5d872e3309f71aceaf78d239d6cbe 100755 (executable)
--- a/sst.py
+++ b/sst.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python2
 """
 sst.py -- Super Star Trek 2K
 
@@ -27,7 +27,7 @@ try:
 except NameError:
     my_input = input
 
-version = "2.2"
+version = "2.3"
 
 docpath        = (".", "doc/", "/usr/share/doc/sst/")
 
@@ -430,7 +430,7 @@ class Gamestate:
         self.state.remtime = self.state.remres/(self.remkl() + 4*len(self.state.kcmdr))
     def unwon(self):
         "Are there Klingons remaining?"
-        return self.remkl() + len(self.state.kcmdr) + self.state.nscrem
+        return self.remkl()
 
 FWON = 0
 FDEPLETE = 1
@@ -996,16 +996,16 @@ def cloak():
         if game.condition == "docked":
             prout(_("You cannot cloak while docked."))
 
-       if game.state.date >= ALGERON and not game.isviolreported:
+        if game.state.date >= ALGERON and not game.isviolreported:
             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? "))
             if not ja():
                 return
-       prout(_("Engineer Scott- \"Cloaking device has engaging, Sir...\""))
+        prout(_("Engineer Scott- \"Cloaking device has engaging, Sir...\""))
         attack(True)
-       prout(_("Engineer Scott- \"Cloaking device has engaged, Sir.\""))
-       game.iscloaked = True
+        prout(_("Engineer Scott- \"Cloaking device has engaged, Sir.\""))
+        game.iscloaked = True
 
         if game.irhere and game.state.date >= ALGERON and not game.isviolreported:
             prout(_("The Romulan ship discovers you are breaking the Treaty of Algeron!"))
@@ -2591,7 +2591,7 @@ def events():
             q.klingons += 1
             if game.quadrant == w:
                 game.klhere += 1
-                game.enemies.append(newkling())
+                newkling() # also adds it to game.enemies
             # recompute time left
             game.recompute()
             if communicating():
@@ -2937,9 +2937,9 @@ def kaboom():
     skip(1)
     if len(game.enemies) != 0:
         whammo = 25.0 * game.energy
-        for l in range(len(game.enemies)):
-            if game.enemies[l].power*game.enemies[l].kdist <= whammo:
-                deadkl(game.enemies[l].location, game.quad[game.enemies[l].location.i][game.enemies[l].location.j], game.enemies[l].location)
+        for e in game.enemies[::-1]:
+            if e.power*e.kdist <= whammo:
+                deadkl(e.location, game.quad[e.location.i][e.location.j], e.location)
     finish(FDILITHIUM)
 
 def killrate():
@@ -3189,7 +3189,8 @@ def score():
         klship = 1
     else:
         klship = 2
-    game.score = 10*(game.inkling - game.remkl()) \
+    dead_ordinaries= game.inkling - game.remkl() + len(game.state.kcmdr) + game.state.nscrem
+    game.score = 10*(dead_ordinaries)\
              + 50*(game.incom - len(game.state.kcmdr)) \
              + ithperd + iwon \
              + 20*(game.inrom - game.state.nromrem) \
@@ -3207,9 +3208,9 @@ def score():
     if game.state.nromrem and game.gamewon:
         prout(_("%6d Romulans captured                  %5d") %
               (game.state.nromrem, game.state.nromrem))
-    if game.inkling - game.remkl():
+    if dead_ordinaries:
         prout(_("%6d ordinary Klingons destroyed        %5d") %
-              (game.inkling - game.remkl(), 10*(game.inkling - game.remkl())))
+              (dead_ordinaries, 10*dead_ordinaries))
     if game.incom - len(game.state.kcmdr):
         prout(_("%6d Klingon commanders destroyed       %5d") %
               (game.incom - len(game.state.kcmdr), 50*(game.incom - len(game.state.kcmdr))))
@@ -5018,7 +5019,7 @@ def deathray():
         prouts(_("Sulu- \"Captain!  It's working!\""))
         skip(2)
         while len(game.enemies) > 0:
-            deadkl(game.enemies[1].location, game.quad[game.enemies[1].location.i][game.enemies[1].location.j],game.enemies[1].location)
+            deadkl(game.enemies[-1].location, game.quad[game.enemies[-1].location.i][game.enemies[-1].location.j],game.enemies[-1].location)
         prout(_("Ensign Chekov-  \"Congratulations, Captain!\""))
         if game.unwon() == 0:
             finish(FWON)