X-Git-Url: https://jxself.org/git/?p=super-star-trek.git;a=blobdiff_plain;f=sst.py;h=49408172c85c2a4626727cf771adbdd0f9e704f8;hp=4e65748dd6f7b35f195c3129e9cb1a36891b5bde;hb=2b60ee942cfa8c86db7bb57a701d0371c640b434;hpb=a9fb126d166bb25141c7a0d072d0bd4508084549 diff --git a/sst.py b/sst.py index 4e65748..4940817 100755 --- a/sst.py +++ b/sst.py @@ -13,7 +13,7 @@ on how to modify (and how not to modify!) this code. """ import os, sys, math, curses, time, readline, cPickle, random, copy, gettext, getpass -version="2.0" +version="2.1" docpath = (".", "../doc", "/usr/share/doc/sst") @@ -416,7 +416,7 @@ def randreal(*args): def welcoming(iq): "Would this quadrant welcome another Klingon?" - return iq.valid_Quadrant() and \ + return iq.valid_quadrant() and \ not game.state.galaxy[iq.i][iq.j].supernova and \ game.state.galaxy[iq.i][iq.j].klingons < MAXKLQUAD @@ -663,7 +663,7 @@ def moveklings(): for enemy in game.enemies: if enemy.type in ('K', 'R'): movebaddy(enemy) - game.enemies.sort(lambda x, y: cmp(x.kdist, y.kdist)) + sortenemies() def movescom(iq, avoid): "Commander movement helper." @@ -689,7 +689,7 @@ def movescom(iq, avoid): game.klhere -= 1 if game.condition != "docked": newcnd() - game.enemies.sort(lambda x, y: cmp(x.kdist, y.kdist)) + sortenemies() # check for a helpful planet for i in range(game.inplan): if game.state.planets[i].quadrant == game.state.kscmdr and \ @@ -1107,7 +1107,7 @@ def torpedo(origin, bearing, dispersion, number, nburst): prout(_(" displaced by blast to Sector %s ") % bumpto) for enemy in game.enemies: enemy.kdist = enemy.kavgd = (game.sector-enemy.location).distance() - game.enemies.sort(lambda x, y: cmp(x.kdist, y.kdist)) + sortenemies() return None elif iquad in ('C', 'S', 'R', 'K'): # Hit a regular enemy # find the enemy @@ -1150,7 +1150,7 @@ def torpedo(origin, bearing, dispersion, number, nburst): game.quad[bumpto.i][bumpto.j]=iquad for enemy in game.enemies: enemy.kdist = enemy.kavgd = (game.sector-enemy.location).distance() - game.enemies.sort(lambda x, y: cmp(x.kdist, y.kdist)) + sortenemies() return None elif iquad == 'B': # Hit a base skip(1) @@ -1423,7 +1423,7 @@ def attack(torps_ok): # After attack, reset average distance to enemies for enemy in game.enemies: enemy.kavgd = enemy.kdist - game.enemies.sort(lambda x, y: cmp(x.kdist, y.kdist)) + sortenemies() return def deadkl(w, type, mv): @@ -3545,7 +3545,7 @@ def imove(icourse=None, noattack=False): finald = (w-enemy.location).distance() enemy.kavgd = 0.5 * (finald + enemy.kdist) enemy.kdist = finald - game.enemies.sort(lambda x, y: cmp(x.kdist, y.kdist)) + sortenemies() if not game.state.galaxy[game.quadrant.i][game.quadrant.j].supernova: attack(torps_ok=False) for enemy in game.enemies: @@ -5634,6 +5634,10 @@ def newkling(): "Drop new Klingon into current quadrant." return Enemy('K', loc=dropin(), power=randreal(300,450)+25.0*game.skill) +def sortenemies(): + "Sort enemies by distance so 'nearest' is meaningful." + game.enemies.sort(lambda x, y: cmp(x.kdist, y.kdist)) + def newqad(): "Set up a new state of quadrant, for when we enter or re-enter it." game.justin = True @@ -5727,8 +5731,7 @@ def newqad(): game.quad[QUADSIZE-1][0] = 'X' if game.quad[QUADSIZE-1][QUADSIZE-1]=='.': game.quad[QUADSIZE-1][QUADSIZE-1] = 'X' - # Sort enemies by distance so 'nearest' is meaningful - game.enemies.sort(lambda x, y: cmp(x.kdist, y.kdist)) + sortenemies() # And finally the stars for i in range(q.stars): dropin('*') @@ -6352,3 +6355,5 @@ if __name__ == '__main__': if logfp: logfp.close() print "" + +# End.