Make enemy move randomly in the losing screen
This commit is contained in:
parent
d35ce4f229
commit
b25b3c3e6b
|
@ -171,6 +171,7 @@ class Enemy:
|
||||||
|
|
||||||
def fire(self):
|
def fire(self):
|
||||||
"""Return True if the enemy has just fired, False otherwise."""
|
"""Return True if the enemy has just fired, False otherwise."""
|
||||||
|
if self.maze.hero.dead: return False
|
||||||
x, y = self.get_pos()
|
x, y = self.get_pos()
|
||||||
if (self.maze.get_distance(x, y) > FIRANGE*self.maze.distance
|
if (self.maze.get_distance(x, y) > FIRANGE*self.maze.distance
|
||||||
or self.next_strike > pygame.time.get_ticks()
|
or self.next_strike > pygame.time.get_ticks()
|
||||||
|
@ -196,7 +197,8 @@ class Enemy:
|
||||||
self.move_speed = self.maze.fps / speed
|
self.move_speed = self.maze.fps / speed
|
||||||
directions = [(sign(MIDDLE - self.x), 0), (0, sign(MIDDLE - self.y))]
|
directions = [(sign(MIDDLE - self.x), 0), (0, sign(MIDDLE - self.y))]
|
||||||
shuffle(directions)
|
shuffle(directions)
|
||||||
directions.append(choice((choice(ADJACENT_GRIDS), (0, 0))))
|
directions.append(choice(ADJACENT_GRIDS))
|
||||||
|
if self.maze.hero.dead: directions = choice(ADJACENT_GRIDS),
|
||||||
for x, y in directions:
|
for x, y in directions:
|
||||||
if (x or y) and self.maze.map[self.x + x][self.y + y] == EMPTY:
|
if (x or y) and self.maze.map[self.x + x][self.y + y] == EMPTY:
|
||||||
self.offsetx = round(x * (1 - self.move_speed))
|
self.offsetx = round(x * (1 - self.move_speed))
|
||||||
|
@ -232,6 +234,7 @@ class Enemy:
|
||||||
self.spin_queue *= self.spin_speed / tmp
|
self.spin_queue *= self.spin_speed / tmp
|
||||||
if not self.spin_queue and not self.fire() and not self.move():
|
if not self.spin_queue and not self.fire() and not self.move():
|
||||||
self.spin_queue = randsign() * self.spin_speed
|
self.spin_queue = randsign() * self.spin_speed
|
||||||
|
if not self.maze.hero.dead:
|
||||||
play(self.sfx_slash, self.get_slash())
|
play(self.sfx_slash, self.get_slash())
|
||||||
if abs(self.spin_queue) > 0.5:
|
if abs(self.spin_queue) > 0.5:
|
||||||
self.angle += sign(self.spin_queue) * pi / 2 / self.spin_speed
|
self.angle += sign(self.spin_queue) * pi / 2 / self.spin_speed
|
||||||
|
|
Loading…
Reference in New Issue