Fix lag when monsters try to move in a random direction

This commit is contained in:
Yohann D'ANELLO 2020-12-02 16:04:43 +01:00
parent e5886bbe44
commit da0d7e7055
1 changed files with 8 additions and 4 deletions

View File

@ -1,7 +1,7 @@
# Copyright (C) 2020 by ÿnérant, eichhornchen, nicomarg, charlse # Copyright (C) 2020 by ÿnérant, eichhornchen, nicomarg, charlse
# SPDX-License-Identifier: GPL-3.0-or-later # SPDX-License-Identifier: GPL-3.0-or-later
from random import choice from random import shuffle
from .player import Player from .player import Player
from ..interfaces import FightingEntity, Map from ..interfaces import FightingEntity, Map
@ -49,9 +49,13 @@ class Monster(FightingEntity):
if not moved and self.distance_squared(target) <= 1: if not moved and self.distance_squared(target) <= 1:
self.map.logs.add_message(self.hit(target)) self.map.logs.add_message(self.hit(target))
else: else:
for _ in range(100): # Move in a random direction
if choice([self.move_up, self.move_down, # If the direction is not available, try another one
self.move_left, self.move_right])(): moves = [self.move_up, self.move_down,
self.move_left, self.move_right]
shuffle(moves)
for move in moves:
if move():
break break