summaryrefslogtreecommitdiff
path: root/bubbob/bubbles.py
diff options
context:
space:
mode:
Diffstat (limited to 'bubbob/bubbles.py')
-rw-r--r--bubbob/bubbles.py40
1 files changed, 22 insertions, 18 deletions
diff --git a/bubbob/bubbles.py b/bubbob/bubbles.py
index 523c64c..590b57e 100644
--- a/bubbob/bubbles.py
+++ b/bubbob/bubbles.py
@@ -1,5 +1,6 @@
-import random, math
+
+import random, math, sys
import gamesrv
import images
import boards
@@ -10,11 +11,11 @@ from mnstrmap import Lightning, Water, Fire, SpinningBalls, PlayerBubbles
bubble_wind = {
- '<': (-1, 0),
- '>': (+1, 0),
- '^': ( 0,-1),
- 'v': ( 0,+1),
- 'x': ( 0, 0),
+ b'<': (-1, 0),
+ b'>': (+1, 0),
+ b'^': ( 0,-1),
+ b'v': ( 0,+1),
+ b'x': ( 0, 0),
}
@@ -177,7 +178,10 @@ class Bubble(ActiveSprite):
self.vertical_warp()
## dx = -dx
w = wget(self.x, self.y)
- if w != ' ':
+ print(f"normal_movement: >{w}< {type(w)}", file=sys.stderr)
+ if w != b' ':
+ print(f"normal_movement: w!=b' ' {w}", file=sys.stderr)
+ print(f" bubble_wind= {bubble_wind}", file=sys.stderr)
dx, dy = bubble_wind[w]
elif self.default_windless:
dx, dy = self.default_windless
@@ -257,14 +261,14 @@ class Bubble(ActiveSprite):
y1 = (self.y + 27) // CELL
if dir < 0:
x1 = (self.x + 5) // CELL
- if bget(x1, y1) == ' ' == bget(x1, y1-1):
+ if bget(x1, y1) == b' ' == bget(x1, y1-1):
stepx = -hspeed
else:
ico = icons[0]
dir = 1
else:
x1 = (self.x + 26) // CELL
- if bget(x1, y1) == ' ' == bget(x1, y1-1):
+ if bget(x1, y1) == b' ' == bget(x1, y1-1):
stepx = hspeed
else:
ico = icons[0]
@@ -457,7 +461,7 @@ class DragonBubble(Bubble):
hspeed *= 0.965
xc = int(nx-3.8)//CELL+1
yc = (self.y+HALFCELL)//CELL
- if bget(xc,yc) == '#' == bget(xc, yc+1):
+ if bget(xc,yc) == b'#' == bget(xc, yc+1):
stop += 1
if stop <= 1:
self.move(int(nx+0.5), int(ny+0.5))
@@ -748,7 +752,7 @@ class FireFlame(ActiveSprite):
x0 = self.x//CELL
y0 = self.y//CELL
for dir in dirs:
- if bget(x0+dir, y0+1) == '#' and bget(x0+dir, y0) == ' ':
+ if bget(x0+dir, y0+1) == b'#' and bget(x0+dir, y0) == b' ':
FireFlame(x0+dir, y0, self.poplist, [dir], countdown-1)
for i in range(self.timeout):
yield None
@@ -766,7 +770,7 @@ class FireDrop(ActiveSprite):
self.gen.append(self.dropping())
def dropping(self):
x0 = self.x//CELL
- while bget(x0, self.y//CELL) == '#' or bget(x0, self.y//CELL+1) != '#':
+ while bget(x0, self.y//CELL) == b'#' or bget(x0, self.y//CELL+1) != b'#':
if self.y >= boards.bheight:
self.kill()
return
@@ -786,14 +790,14 @@ class FireBubble(BonusBubble):
if dragon:
x0 = self.x // CELL + 1
y0 = self.y // CELL + 1
- if bget(x0, y0) == '#':
+ if bget(x0, y0) == b'#':
x1 = (self.x + HALFCELL) // CELL
if x1 == x0:
tries = [x1+1, x1-1]
else:
tries = [x1, x1+2]
for x1 in tries:
- if bget(x1, y0) == ' ':
+ if bget(x1, y0) == b' ':
x0 = x1
break
FireDrop(x0*CELL, self.y)
@@ -985,15 +989,15 @@ class WaterCell(ActiveSprite):
s.repeat = 0
x0 = x // CELL
y0 = y // CELL
- if bget(x0, y0+1) == ' ':
+ if bget(x0, y0+1) == b' ':
if y >= boards.bheight:
s.kill()
continue
s.ping = 0
y += CELL
- elif bget(x0+dir, y0) == ' ':
+ elif bget(x0+dir, y0) == b' ':
x += dir*CELL
- elif bget(x0-dir, y0) == ' ':
+ elif bget(x0-dir, y0) == b' ':
s.ping += 1
if s.ping == 3:
s.kill()
@@ -1061,7 +1065,7 @@ class WaterBubble(BonusBubble):
x0 = self.x // CELL + 1
y0 = self.y // CELL + 1
for x1 in [x0, x0+1, x0-1]:
- if bget(x1,y0) == ' ' or bget(x1,y0+1) == ' ':
+ if bget(x1,y0) == b' ' or bget(x1,y0+1) == b' ':
x0 = x1
break
watercell(x0*CELL, y0*CELL, [None], repeat=19)