Spot a use of normal distribution that wasn't encapsulated.
[super-star-trek.git] / src / sst.py
index 09e9ef65924f288ef560dcfb8759e90635ef9a35..fcbc0597a2610b2eb0b6c2d11fce61b8efcb5b5c 100644 (file)
@@ -958,34 +958,12 @@ def doshield(shraise):
 
 def randdevice():
     "Choose a device to damage, at random."
-    # Quoth Eric Allman in the code of BSD-Trek:
-    # "Under certain conditions you can get a critical hit.  This
-    # sort of hit damages devices.  The probability that a given
-    # device is damaged depends on the device.  Well protected
-    # devices (such as the computer, which is in the core of the
-    # ship and has considerable redundancy) almost never get
-    # damaged, whereas devices which are exposed (such as the
-    # warp engines) or which are particularly delicate (such as
-    # the transporter) have a much higher probability of being
-    # damaged."
-    # 
-    # This is one place where OPTION_PLAIN does not restore the
-    # original behavior, which was equiprobable damage across
-    # all devices.  If we wanted that, we'd return randrange(NDEVICES)
-    # and have done with it.  Also, in the original game, DNAVYS
-    # and DCOMPTR were the same device. 
-    # 
-    # Instead, we use a table of weights similar to the one from BSD Trek.
-    # BSD doesn't have the shuttle, shield controller, death ray, or probes. 
-    # We don't have a cloaking device.  The shuttle got the allocation
-    # for the cloaking device, then we shaved a half-percent off
-    # everything to have some weight to give DSHCTRL/DDRAY/DDSP.
     weights = (
        105,    # DSRSENS: short range scanners 10.5% 
        105,    # DLRSENS: long range scanners          10.5% 
        120,    # DPHASER: phasers                      12.0% 
        120,    # DPHOTON: photon torpedoes             12.0% 
-       25,     # DLIFSUP: life support          2.5% 
+       25,     # DLIFSUP: life support                  2.5% 
        65,     # DWARPEN: warp drive                    6.5% 
        70,     # DIMPULS: impulse engines               6.5% 
        145,    # DSHIELD: deflector shields            14.5% 
@@ -4017,7 +3995,7 @@ def timwrp():
        prout(_("Spock has reconstructed a correct star chart from memory"))
     else:
        # Go forward in time 
-       game.optime = -0.5*game.intime*math.log(randreal())
+       game.optime = expran(0.5*game.intime)
        prout(_("You are traveling forward in time %d stardates.") % int(game.optime))
        # cheat to make sure no tractor beams occur during time warp 
        postpone(FTBEAM, game.optime)
@@ -5434,12 +5412,10 @@ def setup():
 
 def choose():
     "Choose your game type."
-    global thing
     while True:
-       game.tourn = 0
+       game.tourn = game.length = 0
        game.thawed = False
        game.skill = SKILL_NONE
-       game.length = 0
        if not scanner.inqueue: # Can start with command line options 
            proutn(_("Would you like a regular, tournament, or saved game? "))
         scanner.next()
@@ -5807,8 +5783,7 @@ def makemoves():
        drawmaps(1)
         while True:    # get a command 
            hitme = False
-           game.justin = False
-           game.optime = 0.0
+           game.optime = game.justin = False
            scanner.chew()
            setwnd(prompt_window)
            clrscr()