OPTION_SHOWME = 0x00000040 # bracket Enterprise in chart (ESR, 2005)
OPTION_RAMMING = 0x00000080 # enemies may ram Enterprise (Almy, 1979)
OPTION_MVBADDY = 0x00000100 # more enemies can move (Almy, 1979?)
-OPTION_BLKHOLE = 0x00000200 # black hole may timewarp you (Stas, 2005)
-OPTION_BASE = 0x00000400 # bases have good shields (Stas, 2005)
-OPTION_WORLDS = 0x00000800 # logic for inhabited worlds (ESR, 2006)
-OPTION_AUTOSCAN = 0x00001000 # automatic LRSCAN before CHART (ESR, 2006)
-OPTION_CAPTURE = 0x00002000 # Enable BSD-Trek capture (Almy, 2013).
-OPTION_CLOAK = 0x80004000 # Enable BSD-Trek capture (Almy, 2013).
-OPTION_PLAIN = 0x01000000 # user chose plain game
+OPTION_AUTOPASS = 0x00000200 # Autogenerate password (Almy, 1997?)
+OPTION_BLKHOLE = 0x00000400 # black hole may timewarp you (Stas, 2005)
+OPTION_BASE = 0x00000800 # bases have good shields (Stas, 2005)
+OPTION_WORLDS = 0x00001000 # logic for inhabited worlds (ESR, 2006)
+OPTION_AUTOSCAN = 0x00002000 # automatic LRSCAN before CHART (ESR, 2006)
+OPTION_CAPTURE = 0x00004000 # Enable BSD-Trek capture (Almy, 2013).
+OPTION_CLOAK = 0x80008000 # Enable BSD-Trek capture (Almy, 2013).
+OPTION_ALMY = 0x01000000 # Almy's death ray upgrade (1997?)
OPTION_COLOR = 0x04000000 # enable color display (ESR, 2010)
OPTION_DOTFILL = 0x08000000 # fix dotfill glitch in chart (ESR, 2019)
OPTION_ALPHAMERIC = 0x10000000 # Alpha Y coordinates (ESR, 2023)
"SHOWME": OPTION_SHOWME,
"RAMMING": OPTION_RAMMING,
"MVBADDY": OPTION_MVBADDY,
+ "AUTOPASS": OPTION_AUTOPASS,
"BLKHOLE": OPTION_BLKHOLE,
"BASE": OPTION_BASE,
"WORLDS": OPTION_WORLDS,
"AUTOSCAN": OPTION_AUTOSCAN,
"CAPTURE": OPTION_CAPTURE,
"CLOAK": OPTION_CLOAK,
- "PLAIN": OPTION_PLAIN,
+ "ALMY": OPTION_ALMY,
"COLOR": OPTION_COLOR,
"DOTFILL": OPTION_DOTFILL,
+ "ALPHAMERIC": OPTION_ALPHAMERIC,
}
# Define devices
if not ja():
scanner.chew()
return
- if not (game.options & OPTION_PLAIN):
+ if (game.options & OPTION_ALMY):
nrgneed = 50 * game.skill + game.height / 100.0
if nrgneed > game.energy:
prout(_("Engineering to bridge--"))
prouts(_("WHIRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRR"))
skip(1)
dprob = 0.30
- if game.options & OPTION_PLAIN:
+ # Ugh. This test (For Tom Almy's death-ray upgrade) was inverted for a long time.
+ # Furthermore, somebody (ESR or Stas?) changed Tom Almy's 0.7 upgraded chance of
+ # working to 0.5.
+ if game.options & OPTION_ALMY:
dprob = 0.5
r = rnd.real()
if r > dprob:
prout(_("Ensign Chekov- \"Congratulations, Captain!\""))
if game.unwon() == 0:
finish(FWON)
- if (game.options & OPTION_PLAIN) == 0:
+ if (game.options & OPTION_ALMY):
prout(_("Spock- \"Captain, I believe the `Experimental Death Ray'"))
if rnd.withprob(0.05):
prout(_(" is still operational.\""))
return True
if scanner.sees("regular"):
break
- proutn(_("What is \"%s\"? ") % scanner.token)
+ proutn(_("What game type is \"%s\"? ") % scanner.token)
scanner.chew()
while game.length==0 or game.skill==SKILL_NONE:
if scanner.nexttok() == "IHALPHA":
elif scanner.sees("emeritus"):
game.skill = SKILL_EMERITUS
else:
- proutn(_("What is \""))
+ proutn(_("What skill level is is \""))
proutn(scanner.token)
prout("\"?")
else:
scanner.nexttok()
if scanner.sees("plain"):
# Approximates the UT FORTRAN version.
- game.options &=~ (OPTION_THOLIAN | OPTION_PLANETS | OPTION_PROBE | OPTION_RAMMING | OPTION_MVBADDY | OPTION_BLKHOLE | OPTION_BASE | OPTION_WORLDS | OPTION_COLOR | OPTION_CAPTURE | OPTION_CLOAK | OPTION_DOTFILL | OPTION_ALPHAMERIC)
- game.options |= OPTION_PLAIN
+ game.options &=~ (OPTION_THOLIAN | OPTION_PLANETS | OPTION_PROBE | OPTION_RAMMING | OPTION_MVBADDY | OPTION_BLKHOLE | OPTION_BASE | OPTION_WORLDS | OPTION_COLOR | OPTION_CAPTURE | OPTION_CLOAK | OPTION_ALMY | OPTION_AUTOPASS | OPTION_DOTFILL | OPTION_ALPHAMERIC)
elif scanner.sees("almy"):
# Approximates Tom Almy's version.
game.options &=~ (OPTION_BLKHOLE | OPTION_BASE | OPTION_WORLDS | OPTION_COLOR | OPTION_DOTFILL | OPTION_ALPHAMERIC)
elif scanner.sees("fancy") or scanner.sees("\n"):
pass
elif len(scanner.token):
- proutn(_("What is \"%s\"?") % scanner.token)
+ proutn(_("What game style is \"%s\"?") % scanner.token)
setpassword()
if game.passwd == "debug": # pragma: no cover
game.idebug = True
def setpassword():
"Set the self-destruct password."
- if game.options & OPTION_PLAIN:
+ if game.options & OPTION_AUTOPASS:
+ game.passwd = ""
+ game.passwd += chr(ord('a')+rnd.integer(26))
+ game.passwd += chr(ord('a')+rnd.integer(26))
+ game.passwd += chr(ord('a')+rnd.integer(26))
+ else:
while True:
scanner.chew()
proutn(_("Please type in a secret password- "))
#game.passwd = getpass.getpass("Please type in a secret password- ")
if game.passwd is not None:
break
- else:
- game.passwd = ""
- game.passwd += chr(ord('a')+rnd.integer(26))
- game.passwd += chr(ord('a')+rnd.integer(26))
- game.passwd += chr(ord('a')+rnd.integer(26))
# Code from sst.c begins here
game = Gamestate()
rnd = randomizer()
logfp = None
- game.options = OPTION_ALL &~ (OPTION_IOMODES | OPTION_PLAIN)
+ game.options = OPTION_ALL &~ OPTION_IOMODES
if os.getenv("TERM"):
game.options |= OPTION_CURSES # pragma: no cover
else: