X-Git-Url: https://jxself.org/git/?a=blobdiff_plain;f=sst.py;h=ddbe1baf1b2685592c7e01cb04528f02c87d728a;hb=64a4f3d855e037331f0ebc40c2df90583be57e95;hp=c90472c36e82650716cbc82c52d86ef0da8adcba;hpb=f606175c8feb56e1858ebdfd7873a261e0a2163a;p=super-star-trek.git diff --git a/sst.py b/sst.py index c90472c..ddbe1ba 100755 --- a/sst.py +++ b/sst.py @@ -15,6 +15,9 @@ from __future__ import print_function, division # Runs under Python 2 an Python 3. Preserve this property! # SPDX-License-Identifier: BSD-2-clause +# pylint: disable=line-too-long,superfluous-parens,too-many-lines,invalid-name,missing-function-docstring,missing-class-docstring,multiple-statements,too-many-branches,too-many-statements,too-many-locals,too-many-nested-blocks,too-many-return-statements,too-many-instance-attributes,global-statement,no-else-break,no-else-return,no-else-continue,too-few-public-methods,too-many-boolean-expressions,consider-using-f-string,consider-using-enumerate,consider-using-with,unspecified-encoding + +# pylint: disable=multiple-imports import os, sys, math, curses, time, pickle, copy, gettext, getpass import getopt, socket, locale import codecs @@ -22,6 +25,7 @@ import codecs # This import only works on Unixes. The intention is to enable # Ctrl-P, Ctrl-N, and friends in Cmd. try: + # pylint: disable=unused-import import readline except ImportError: pass @@ -32,7 +36,7 @@ try: except NameError: my_input = input -version = "2.6" +version = "2.7" docpath = (".", "doc/", "/usr/share/doc/sst/") @@ -673,10 +677,8 @@ def movebaddy(enemy): nsteps = abs(int(motion)) if motion > 0 and nsteps > mdist: nsteps = mdist # don't overshoot - if nsteps > QUADSIZE: - nsteps = QUADSIZE # This shouldn't be necessary - if nsteps < 1: - nsteps = 1 # This shouldn't be necessary + nsteps = min(nsteps, QUADSIZE) # This shouldn't be necessary + nsteps = max(nsteps, 1) # This shouldn't be necessary if game.idebug: proutn("NSTEPS = %d:" % nsteps) # Compute preferred values of delta X and Y @@ -722,7 +724,7 @@ def movebaddy(enemy): elif (game.options & OPTION_RAMMING) and game.quad[look.i][look.j] != '.': # See if enemy should ram ship if game.quad[look.i][look.j] == game.ship and \ - (enemy.type == 'C' or enemy.type == 'S'): + enemy.type in ('C', 'S'): collision(rammed=True, enemy=enemy) return [] if krawli != m.i and m.j != 0: @@ -1246,7 +1248,6 @@ def collision(rammed, enemy): damagereport() else: finish(FWON) - return def torpedo(origin, bearing, dispersion, number, nburst): "Let a photon torpedo fly" @@ -1331,7 +1332,7 @@ def torpedo(origin, bearing, dispersion, number, nburst): bumpto = displacement.sector() if not bumpto.valid_sector(): prout(_(" damaged but not destroyed.")) - return + return None if game.quad[bumpto.i][bumpto.j] == ' ': prout(_(" buffeted into black hole.")) deadkl(w, iquad, bumpto) @@ -1586,8 +1587,7 @@ def attack(torps_ok): propor = pfac * game.shield if game.condition == "docked": propor *= 2.1 - if propor < 0.1: - propor = 0.1 + propor = max(propor, 0.1) hitsh = propor*chgfac*hit+1.0 absorb = 0.8*hitsh if absorb > game.shield: @@ -1902,6 +1902,7 @@ def hittem(hits): return continue else: # decide whether or not to emasculate klingon + # pylint: disable=chained-comparison if kpow > 0 and rnd.withprob(0.9) and kpow <= rnd.real(0.4, 0.8)*kpini: prout(_("***Mr. Spock- \"Captain, the vessel at Sector %s")%w) prout(_(" has just lost its firepower.\"")) @@ -2873,7 +2874,7 @@ def supernova(w): proutn("=== Super nova here?") if ja(): nq = game.quadrant - if not nq == game.quadrant or game.justin: + if nq != game.quadrant or game.justin: # it isn't here, or we just entered (treat as enroute) if communicating(): skip(1) @@ -2936,7 +2937,7 @@ def supernova(w): if game.quadrant == nq or communicating(): game.state.galaxy[nq.i][nq.j].supernova = True # If supernova destroys last Klingons give special message - if game.unwon()==0 and not nq == game.quadrant: + if game.unwon()==0 and nq != game.quadrant: skip(2) if w is None: prout(_("Lucky you!")) @@ -3699,7 +3700,7 @@ def tracktorpedo(w, step, i, n, iquad): else: skip(1) proutn(_("Torpedo track- ")) - elif step==4 or step==9: + elif step in {4, 9}: skip(1) proutn("%s " % w) else: @@ -3707,7 +3708,7 @@ def tracktorpedo(w, step, i, n, iquad): if i != 0 and step == 1: drawmaps(2) time.sleep(0.4) - if (iquad=='.') or (iquad==' '): + if iquad in {'.', ' '}: put_srscan_sym(w, '+') #sound(step*10) #time.sleep(0.1) @@ -3901,7 +3902,6 @@ def imove(icourse=None, noattack=False): newcnd() drawmaps(0) setwnd(message_window) - return def dock(verbose): "Dock our ship at a starbase." @@ -5161,6 +5161,7 @@ def attackreport(curt): def report(): # report on general game status scanner.chew() + # pylint: disable=consider-using-ternary s1 = (game.thawed and _("thawed ")) or "" s2 = {1:"short", 2:"medium", 4:"long"}[game.length] s3 = (None, _("novice"), _("fair"), @@ -5513,8 +5514,7 @@ def eta(): prout(_("We'll never make it, sir.")) scanner.chew() return - if twarp < 1.0: - twarp = 1.0 + twarp = max(twarp, 1.0) break scanner.chew() proutn(_("Warp factor? ")) @@ -5793,13 +5793,11 @@ def setup(): # Position ordinary Klingon Battle Cruisers krem = game.inkling klumper = 0.25*game.skill*(9.0-game.length)+1.0 - if klumper > MAXKLQUAD: - klumper = MAXKLQUAD + klumper = min(klumper, MAXKLQUAD) while True: r = rnd.real() klump = int((1.0 - r*r)*klumper) - if klump > krem: - klump = krem + klump = min(klump, krem) krem -= klump while True: w = randplace(GALSIZE) @@ -6665,7 +6663,7 @@ def debugme(): proutn(legends[i]) if is_scheduled(i): proutn("%.2f" % (scheduled(i)-game.state.date)) - if i == FENSLV or i == FREPRO: + if i in {FENSLV, FREPRO}: ev = findevent(i) proutn(" in %s" % ev.quadrant) else: @@ -6678,7 +6676,7 @@ def debugme(): scanner.chew() elif key == "IHREAL": ev = schedule(i, scanner.real) - if i == FENSLV or i == FREPRO: + if i in {FENSLV, FREPRO}: scanner.chew() proutn("In quadrant- ") key = scanner.nexttok() @@ -6720,14 +6718,17 @@ if __name__ == '__main__': replay = False for (switch, val) in options: if switch == '-r': + # pylint: disable=raise-missing-from try: replayfp = open(val, "r") except IOError: sys.stderr.write("sst: can't open replay file %s\n" % val) raise SystemExit(1) + # pylint: disable=raise-missing-from try: line = replayfp.readline().strip() (leader, __, seed) = line.split() + # pylint: disable=eval-used seed = eval(seed) line = replayfp.readline().strip() arguments += line.split()[2:]