else:
self.location = Coord()
self.kdist = self.kavgd = None
- game.enemies.remove(self)
+ # Guard prevents failure on Tholian or thingy
+ if self in game.enemies:
+ game.enemies.remove(self)
return motion
def __repr__(self):
return "<%s,%s.%f>" % (self.type, self.location, self.power) # For debugging
game.damage[dev] += game.optime + extradm
game.shldup = False
prout(_("***Shields are down."))
- if game.state.remkl + len(game.state.kcmdr) + game.state.nscrem:
+ if game.unwon():
announce()
damagereport()
else:
if key != "IHEOL":
break
proutn(_("How long? "))
- scanner.chew()
+ scanner.chew()
if key != "IHREAL":
huh()
return
deadkl(neighbor, iquad, neighbor)
continue # neighbor loop
# Else enemy gets flung by the blast wave
- newc = neighbor + neighbor - hits[-1]
+ newc = neighbor + neighbor - start
proutn(crmena(True, iquad, "sector", neighbor) + _(" damaged"))
if not newc.valid_sector():
# can't leave quadrant
pause_game()
clrscr()
# Uncomment this to debug curses problems
- if logfp:
- logfp.write("#curses: at %s proutn(%s)\n" % ((y, x), repr(proutntline)))
+ #if logfp:
+ # logfp.write("#curses: at %s proutn(%s)\n" % ((y, x), repr(proutntline)))
curwnd.addstr(proutntline)
curwnd.refresh()
else:
legend = "prompt"
else:
legend = "unknown"
- logfp.write("#curses: setwnd(%s)\n" % legend)
+ #logfp.write("#curses: setwnd(%s)\n" % legend)
curwnd = wnd
# Some curses implementations get confused when you try this.
try:
# check for edge of galaxy
kinks = 0
while True:
-
-
kink = False
if icourse.final.i < 0:
icourse.final.i = -icourse.final.i
if not silent and game.state.galaxy[x][y].supernova:
proutn(" ***")
elif not silent:
- proutn(" %3d" % (game.state.chart[x][y].klingons*100 + game.state.chart[x][y].starbase * 10 + game.state.chart[x][y].stars))
+ cn = " %3d" % (game.state.chart[x][y].klingons*100 + game.state.chart[x][y].starbase * 10 + game.state.chart[x][y].stars)
+ proutn(((3 - len(cn)) * '.') + cn)
if not silent:
prout(" ")
klumper = MAXKLQUAD
while True:
r = randreal()
- klump = (1.0 - r*r)*klumper
+ klump = int((1.0 - r*r)*klumper)
if klump > krem:
klump = krem
krem -= klump
if not game.state.galaxy[w.i][w.j].supernova and \
game.state.galaxy[w.i][w.j].klingons + klump <= MAXKLQUAD:
break
- game.state.galaxy[w.i][w.j].klingons += int(klump)
+ game.state.galaxy[w.i][w.j].klingons += klump
if krem <= 0:
break
# Position Klingon Commander Ships
game.state.nscrem = game.inscom = (game.skill > SKILL_FAIR)
game.state.remtime = 7.0 * game.length
game.intime = game.state.remtime
- game.state.remkl = game.inkling = 2.0*game.intime*((game.skill+1 - 2*randreal())*game.skill*0.1+.15)
+ game.state.remkl = game.inkling = int(2.0*game.intime*((game.skill+1 - 2*randreal())*game.skill*0.1+.15))
game.incom = min(MINCMDR, int(game.skill + 0.0625*game.inkling*randreal()))
game.state.remres = (game.inkling+4*game.incom)*game.intime
game.inresor = game.state.remres
game.quad[QUADSIZE-1][0] = '.'
if game.quad[QUADSIZE-1][QUADSIZE-1]=='X':
game.quad[QUADSIZE-1][QUADSIZE-1] = '.'
+ # This should guarantee that replay games don't lose info about the chart
+ if (game.options & OPTION_AUTOSCAN) or replayfp:
+ lrscan(silent=True)
def setpassword():
"Set the self-destruct password."
("QUIT", 0),
("HELP", 0),
("SCORE", 0),
+ ("CURSES", 0),
("", 0),
]
helpme() # get help
elif cmd == "SCORE":
score() # see current score
+ elif cmd == "CURSES":
+ game.options |= (OPTION_CURSES | OPTION_COLOR)
+ iostart()
while True:
if game.alldone:
break # Game has ended