class quadrant:
def __init__(self):
- self.stars = None
+ self.stars = 0
self.planet = None
- self.starbase = None
- self.klingons = None
- self.romulans = None
- self.supernova = None
- self.charted = None
- self.status = None # Could be "secure", "distressed", "enslaved"
+ self.starbase = False
+ self.klingons = 0
+ self.romulans = 0
+ self.supernova = False
+ self.charted = False
+ self.status = "secure" # Could be "secure", "distressed", "enslaved"
class page:
def __init__(self):
game.enemies.remove(self)
return motion
def __repr__(self):
- return "<%s=%f>" % (self.kloc, self.kpower) # For debugging
+ return "<%s,%s.%f>" % (self.type, self.kloc, self.kpower) # For debugging
class gamestate:
def __init__(self):
skip(1)
crmshp()
if iquad == IHWEB:
- proutn(_(" encounters Tholian web at %s;") % w)
+ prout(_(" encounters Tholian web at %s;") % w)
else:
- proutn(_(" blocked by object at %s;") % w)
+ prout(_(" blocked by object at %s;") % w)
proutn(_("Emergency stop required "))
prout(_("%2d units of energy.") % int(stopegy))
game.energy -= stopegy
- final.x = x-deltax+0.5
- final.y = y-deltay+0.5
+ final.x = int(round(deltax))
+ final.y = int(round(deltay))
game.sector = final
if game.energy <= 0:
finish(FNRG)
if damaged(DWARPEN) and damaged(DIMPULS):
prout(_("Both warp and impulse engines damaged."))
return
- if not game.plnet.is_valid() or abs(game.sector.x-game.plnet.x) > 1 or abs(game.sector.y-game.plnet.y) > 1:
+ if not game.plnet.is_valid():
+ prout("There is no planet in this sector.")
+ return
+ if abs(game.sector.x-game.plnet.x)>1 or abs(game.sector.y-game.plnet.y)>1:
crmshp()
prout(_(" not adjacent to planet."))
skip(1)
game.landed = False
game.alive = True
game.docfac = 0.25
- for i in range(GALSIZE):
- for j in range(GALSIZE):
- quad = game.state.galaxy[i][j]
- quad.charted = 0
- quad.planet = None
- quad.romulans = 0
- quad.klingons = 0
- quad.starbase = False
- quad.supernova = False
- quad.status = "secure"
# Starchart is functional but we've never seen it
game.lastchart = FOREVER
# Put stars in the galaxy
if not contflag:
break
game.state.baseq.append(w)
- game.state.galaxy[w.x][w.y].starbase = True
- game.state.chart[w.x][w.y].starbase = True
+ game.state.galaxy[w.x][w.y].starbase = game.state.chart[w.x][w.y].starbase = True
# Position ordinary Klingon Battle Cruisers
krem = game.inkling
klumper = 0.25*game.skill*(9.0-game.length)+1.0
for i in range(game.incom):
while True:
w = randplace(GALSIZE)
- if (game.state.galaxy[w.x][w.y].klingons or withprob(0.25)) and \
- not game.state.galaxy[w.x][w.y].supernova and \
- game.state.galaxy[w.x][w.y].klingons <= MAXKLQUAD-1 and \
- not w in game.state.kcmdr[:i]:
+ if not welcoming(w) or w in game.state.kcmdr:
+ continue
+ if (game.state.galaxy[w.x][w.y].klingons or withprob(0.25)):
break
game.state.galaxy[w.x][w.y].klingons += 1
game.state.kcmdr.append(w)
for i in range(game.state.nromrem):
w = randplace(GALSIZE)
game.state.galaxy[w.x][w.y].romulans += 1
- # Locate the Super Commander
+ # Place the Super-Commander if needed
if game.state.nscrem > 0:
while True:
w = randplace(GALSIZE)
- if not welcoming(w):
+ if welcoming(w):
break
game.state.kscmdr = w
game.state.galaxy[w.x][w.y].klingons += 1
e.kpower = randreal(1175.0, 1575.0) + 125.0*game.skill
game.iscate = (game.state.remkl > 1)
# Put in Romulans if needed
- for i in range(game.klhere, len(game.enemies)):
+ for i in range(q.romulans):
enemy(IHR, loc=dropin(), power=randreal(400.0,850.0)+50.0*game.skill)
# If quadrant needs a starbase, put it in
if q.starbase:
break
else:
game.passwd = ""
- for i in range(3):
+ for i in range(8):
game.passwd += chr(ord('a')+randrange(26))
# Code from sst.c begins here
"CALL": 0, # Synonym for MAYDAY
"QUIT": 0,
"HELP": 0,
- "SEED": 0,
- "VISUAL": 0,
}
def ACCEPT(cmd): return (not commands[cmd] or (commands[cmd] & game.options))
skip(1)
prout(_("Beg your pardon, Captain?"))
-
def debugme():
# access to the internals for debugging
proutn("Reset levels? ")
# else:
game.options |= OPTION_TTY
seed = int(time.time())
- (options, arguments) = getopt.getopt(sys.argv[1:], "r:tx")
+ (options, arguments) = getopt.getopt(sys.argv[1:], "r:s:tx")
for (switch, val) in options:
if switch == '-r':
try:
raise SystemExit(1)
game.options |= OPTION_TTY
game.options &=~ OPTION_CURSES
+ elif switch == '-s':
+ seed = int(val)
elif switch == '-t':
game.options |= OPTION_TTY
game.options &=~ OPTION_CURSES