projects
/
super-star-trek.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Fix another basic error.
[super-star-trek.git]
/
src
/
sst.py
diff --git
a/src/sst.py
b/src/sst.py
index ce058ef970db6e2fdc9221b7ffc20812e3aedf74..51ad07b53cdf03fa18d9e7a55bad2bddfbb6c357 100644
(file)
--- a/
src/sst.py
+++ b/
src/sst.py
@@
-240,9
+240,9
@@
class coord:
def is_valid(self):
return self.x != None and self.y != None
def __eq__(self, other):
def is_valid(self):
return self.x != None and self.y != None
def __eq__(self, other):
- return other != None and self.x == other.
y and self.x
== other.y
+ return other != None and self.x == other.
x and self.y
== other.y
def __add__(self, other):
def __add__(self, other):
- return coord(self.x+
self.x, self.y+self
.y)
+ return coord(self.x+
other.x, self.y+other
.y)
def __sub__(self, other):
return coord(self.x-other.x, self.y-other.y)
def __mul__(self, other):
def __sub__(self, other):
return coord(self.x-other.x, self.y-other.y)
def __mul__(self, other):
@@
-615,10
+615,9
@@
def randreal(*args):
def welcoming(iq):
"Would this quadrant welcome another Klingon?"
return VALID_QUADRANT(iq.x,iq.y) and \
def welcoming(iq):
"Would this quadrant welcome another Klingon?"
return VALID_QUADRANT(iq.x,iq.y) and \
- not game.state.galaxy[iq.x][iq.y].supernova
or
\
+ not game.state.galaxy[iq.x][iq.y].supernova
and
\
game.state.galaxy[iq.x][iq.y].klingons < MAXKLQUAD
game.state.galaxy[iq.x][iq.y].klingons < MAXKLQUAD
-
def tryexit(enemy, look, irun):
"A bad guy attempts to bug out."
iq = coord()
def tryexit(enemy, look, irun):
"A bad guy attempts to bug out."
iq = coord()
@@
-1288,30
+1287,26
@@
def collision(rammed, enemy):
finish(FWON)
return
finish(FWON)
return
-def torpedo(
course, dispersion, origi
n, number, nburst):
+def torpedo(
origin, course, dispersio
n, number, nburst):
"Let a photon torpedo fly"
"Let a photon torpedo fly"
- iquad = 0
shoved = False
ac = course + 0.25*dispersion
angle = (15.0-ac)*0.5235988
bullseye = (15.0 - course)*0.5235988
shoved = False
ac = course + 0.25*dispersion
angle = (15.0-ac)*0.5235988
bullseye = (15.0 - course)*0.5235988
- deltax = -math.sin(angle);
- deltay = math.cos(angle);
+ delta = coord(-math.sin(angle), math.cos(angle))
+ bigger = max(abs(delta.x), abs(delta.y))
+ delta /= bigger
x = origin.x; y = origin.y
w = coord(0, 0); jw = coord(0, 0)
x = origin.x; y = origin.y
w = coord(0, 0); jw = coord(0, 0)
- bigger = max(math.fabs(deltax), math.fabs(deltay))
- deltax /= bigger
- deltay /= bigger
if not damaged(DSRSENS) or game.condition=="docked":
setwnd(srscan_window)
else:
setwnd(message_window)
# Loop to move a single torpedo
for step in range(1, 15+1):
if not damaged(DSRSENS) or game.condition=="docked":
setwnd(srscan_window)
else:
setwnd(message_window)
# Loop to move a single torpedo
for step in range(1, 15+1):
- x += deltax
- w.x = int(x + 0.5)
- y += deltay
- w.y = int(y + 0.5)
+ x += delta.x
+ y += delta.y
+ w = coord(x, y).snaptogrid()
if not VALID_SECTOR(w.x, w.y):
break
iquad=game.quad[w.x][w.y]
if not VALID_SECTOR(w.x, w.y):
break
iquad=game.quad[w.x][w.y]
@@
-1358,9
+1353,9
@@
def torpedo(course, dispersion, origin, number, nburst):
elif iquad in (IHR, IHK): # Hit a regular enemy
# find the enemy
for enemy in game.enemies:
elif iquad in (IHR, IHK): # Hit a regular enemy
# find the enemy
for enemy in game.enemies:
- if w ==
game.enemies[ll]
.kloc:
+ if w ==
enemy
.kloc:
break
break
- kp = math.fabs(e.kpower)
+ kp = math.fabs(e
nemy
.kpower)
h1 = 700.0 + randrange(100) - \
1000.0 * (w-origin).distance() * math.fabs(math.sin(bullseye-angle))
h1 = math.fabs(h1)
h1 = 700.0 + randrange(100) - \
1000.0 * (w-origin).distance() * math.fabs(math.sin(bullseye-angle))
h1 = math.fabs(h1)
@@
-1540,7
+1535,7
@@
def fry(hit):
def attack(torps_ok):
# bad guy attacks us
# torps_ok == False forces use of phasers in an attack
def attack(torps_ok):
# bad guy attacks us
# torps_ok == False forces use of phasers in an attack
- # game could be over at this point, check
+ # game could be over at this point, check
if game.alldone:
return
attempt = False; ihurt = False;
if game.alldone:
return
attempt = False; ihurt = False;
@@
-1606,7
+1601,7
@@
def attack(torps_ok):
prout(" ")
dispersion = (randreal()+randreal())*0.5 - 0.5
dispersion += 0.002*enemy.kpower*dispersion
prout(" ")
dispersion = (randreal()+randreal())*0.5 - 0.5
dispersion += 0.002*enemy.kpower*dispersion
- hit = torpedo(
course, dispersion, origin=enemy.kloc
, number=1, nburst=1)
+ hit = torpedo(
enemy.kloc, course, dispersion
, number=1, nburst=1)
if (game.state.remkl + len(game.state.kcmdr) + game.state.nscrem)==0:
finish(FWON); # Klingons did themselves in!
if game.state.galaxy[game.quadrant.x][game.quadrant.y].supernova or game.alldone:
if (game.state.remkl + len(game.state.kcmdr) + game.state.nscrem)==0:
finish(FWON); # Klingons did themselves in!
if game.state.galaxy[game.quadrant.x][game.quadrant.y].supernova or game.alldone:
@@
-1737,19
+1732,22
@@
def targetcheck(w):
if not VALID_SECTOR(w.x, w.y):
huh()
return None
if not VALID_SECTOR(w.x, w.y):
huh()
return None
- delta = 0.1*(w - game.sector)
- if delta.x==0 and delta.y== 0:
+ delta = coord()
+ # FIXME: C code this was translated from is wacky -- why the sign reversal?
+ delta.y = (w.y - game.sector.y);
+ delta.x = (game.sector.x - w.x);
+ if delta == coord(0, 0):
skip(1)
prout(_("Spock- \"Bridge to sickbay. Dr. McCoy,"))
prout(_(" I recommend an immediate review of"))
prout(_(" the Captain's psychological profile.\""))
scanner.chew()
return None
skip(1)
prout(_("Spock- \"Bridge to sickbay. Dr. McCoy,"))
prout(_(" I recommend an immediate review of"))
prout(_(" the Captain's psychological profile.\""))
scanner.chew()
return None
- return
delta.bearing(
)
+ return
1.90985932*math.atan2(delta.y, delta.x
)
def photon():
"Launch photon torpedo."
def photon():
"Launch photon torpedo."
- course = [
0.0] * MAXBURST
+ course = [
]
game.ididit = False
if damaged(DPHOTON):
prout(_("Photon tubes damaged."))
game.ididit = False
if damaged(DPHOTON):
prout(_("Photon tubes damaged."))
@@
-1837,7
+1835,7
@@
def photon():
break
if game.shldup or game.condition == "docked":
dispersion *= 1.0 + 0.0001*game.shield
break
if game.shldup or game.condition == "docked":
dispersion *= 1.0 + 0.0001*game.shield
- torpedo(
course[i], dispersion, origin=game.sector
, number=i, nburst=n)
+ torpedo(
game.sector, course[i], dispersion
, number=i, nburst=n)
if game.alldone or game.state.galaxy[game.quadrant.x][game.quadrant.y].supernova:
return
if (game.state.remkl + len(game.state.kcmdr) + game.state.nscrem)==0:
if game.alldone or game.state.galaxy[game.quadrant.x][game.quadrant.y].supernova:
return
if (game.state.remkl + len(game.state.kcmdr) + game.state.nscrem)==0:
@@
-3988,12
+3986,12
@@
def getcourse(isprobe, akey):
if key != IHREAL:
huh()
return False
if key != IHREAL:
huh()
return False
- delta.
x
= scanner.real
+ delta.
y
= scanner.real
key = scanner.next()
if key != IHREAL:
huh()
return False
key = scanner.next()
if key != IHREAL:
huh()
return False
- delta.
y
= scanner.real
+ delta.
x
= scanner.real
# Check for zero movement
if delta.x == 0 and delta.y == 0:
scanner.chew()
# Check for zero movement
if delta.x == 0 and delta.y == 0:
scanner.chew()