projects
/
super-star-trek.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
NEWS update.
[super-star-trek.git]
/
sst.py
diff --git
a/sst.py
b/sst.py
index ddbe1baf1b2685592c7e01cb04528f02c87d728a..16d39e9707ccf0f242c496806889b52a9e349117 100755
(executable)
--- a/
sst.py
+++ b/
sst.py
@@
-142,9
+142,9
@@
class Coord:
self.i = x # Row
self.j = y # Column
def valid_quadrant(self):
self.i = x # Row
self.j = y # Column
def valid_quadrant(self):
- return
self.i >= 0 and self.i < GALSIZE and self.j >= 0 and self.j < GALSIZE
+ return
(self.i is not None) and (self.j is not None) and (self.i >= 0) and (self.i < GALSIZE) and (self.j >= 0) and (self.j < GALSIZE)
def valid_sector(self):
def valid_sector(self):
- return
self.i >= 0 and self.i < QUADSIZE and self.j >= 0 and self.j < QUADSIZE
+ return
(self.i is not None) and (self.j is not None) and (self.i >= 0) and (self.i < QUADSIZE) and (self.j >= 0) and (self.j < QUADSIZE)
def invalidate(self):
self.i = self.j = None
def __eq__(self, other):
def invalidate(self):
self.i = self.j = None
def __eq__(self, other):
@@
-544,9
+544,9
@@
def tryexit(enemy, look, irun):
iq.i = game.quadrant.i+(look.i+(QUADSIZE-1))//QUADSIZE - 1
iq.j = game.quadrant.j+(look.j+(QUADSIZE-1))//QUADSIZE - 1
if not welcoming(iq):
iq.i = game.quadrant.i+(look.i+(QUADSIZE-1))//QUADSIZE - 1
iq.j = game.quadrant.j+(look.j+(QUADSIZE-1))//QUADSIZE - 1
if not welcoming(iq):
- return
False
+ return
[]
if enemy.type == 'R':
if enemy.type == 'R':
- return
False
# Romulans cannot escape!
+ return
[]
# Romulans cannot escape!
if not irun:
# avoid intruding on another commander's territory
if enemy.type == 'C':
if not irun:
# avoid intruding on another commander's territory
if enemy.type == 'C':
@@
-1327,7
+1327,7
@@
def torpedo(origin, bearing, dispersion, number, nburst):
deadkl(w, iquad, w)
return None
proutn(crmena(True, iquad, "sector", w))
deadkl(w, iquad, w)
return None
proutn(crmena(True, iquad, "sector", w))
- displacement = course(track.bearing+rnd.real(-2.4, 2.4), distance=2**0.5)
+ displacement = course(track.bearing+rnd.real(-2.4, 2.4), distance=2**0.5
, origin=w
)
displacement.nexttok()
bumpto = displacement.sector()
if not bumpto.valid_sector():
displacement.nexttok()
bumpto = displacement.sector()
if not bumpto.valid_sector():
@@
-2518,7
+2518,7
@@
def events():
elif evcode == FCDBAS: # Commander succeeds in destroying base
if evcode == FCDBAS:
unschedule(FCDBAS)
elif evcode == FCDBAS: # Commander succeeds in destroying base
if evcode == FCDBAS:
unschedule(FCDBAS)
- if not game.state.baseq
()
\
+ if not game.state.baseq \
or not game.state.galaxy[game.battle.i][game.battle.j].starbase:
game.battle.invalidate()
continue
or not game.state.galaxy[game.battle.i][game.battle.j].starbase:
game.battle.invalidate()
continue
@@
-2564,7
+2564,7
@@
def events():
pdest.charted = True
game.probe.moves -= 1 # One less to travel
if game.probe.arrived() and game.isarmed and pdest.stars:
pdest.charted = True
game.probe.moves -= 1 # One less to travel
if game.probe.arrived() and game.isarmed and pdest.stars:
- supernova(game.probe) # fire in the hole!
+ supernova(game.probe
.quadrant()
) # fire in the hole!
unschedule(FDSPROB)
if game.state.galaxy[pquad.i][pquad.j].supernova:
return
unschedule(FDSPROB)
if game.state.galaxy[pquad.i][pquad.j].supernova:
return
@@
-3868,7
+3868,7
@@
def imove(icourse=None, noattack=False):
if game.iscloaked:
# We can't be tractor beamed if cloaked,
# so move the event into the future
if game.iscloaked:
# We can't be tractor beamed if cloaked,
# so move the event into the future
- postpone(FTBEAM, game.optime + expran(1.5*game.intime/len(game.kcmdr)))
+ postpone(FTBEAM, game.optime + expran(1.5*game.intime/len(game.
state.
kcmdr)))
else:
trbeam = True
game.condition = "red"
else:
trbeam = True
game.condition = "red"
@@
-3912,7
+3912,10
@@
def dock(verbose):
if game.inorbit:
prout(_("You must first leave standard orbit."))
return
if game.inorbit:
prout(_("You must first leave standard orbit."))
return
- if game.base is None or abs(game.sector.i-game.base.i) > 1 or abs(game.sector.j-game.base.j) > 1:
+ if game.base is None or not game.base.valid_sector():
+ prout(_("No starbase available for docking in this quadrant."))
+ return
+ if (abs(game.sector.i-game.base.i) > 1) or (abs(game.sector.j-game.base.j) > 1):
prout(crmshp() + _(" not adjacent to base."))
return
if game.iscloaked:
prout(crmshp() + _(" not adjacent to base."))
return
if game.iscloaked:
@@
-4566,7
+4569,8
@@
def mayday():
break
prout(_("fails."))
textcolor(DEFAULT)
break
prout(_("fails."))
textcolor(DEFAULT)
- curses.delay_output(500)
+ if game.options & OPTION_CURSES:
+ curses.delay_output(500)
if m > 3:
game.quad[game.sector.i][game.sector.j]='?'
game.alive = False
if m > 3:
game.quad[game.sector.i][game.sector.j]='?'
game.alive = False
@@
-6768,7
+6772,7
@@
if __name__ == '__main__':
logfp.write("# options %s\n" % " ".join(arguments))
logfp.write("# SST2K version %s\n" % version)
logfp.write("# recorded by %s@%s on %s\n" % \
logfp.write("# options %s\n" % " ".join(arguments))
logfp.write("# SST2K version %s\n" % version)
logfp.write("# recorded by %s@%s on %s\n" % \
- (getpass.getuser(),socket.get
hostname
(),time.ctime()))
+ (getpass.getuser(),socket.get
fqdn
(),time.ctime()))
rnd.seed(seed)
scanner = sstscanner()
for arg in arguments:
rnd.seed(seed)
scanner = sstscanner()
for arg in arguments: