From da0d7e7055db7bee7c6ac41427d0d342e5212ea5 Mon Sep 17 00:00:00 2001 From: Yohann D'ANELLO Date: Wed, 2 Dec 2020 16:04:43 +0100 Subject: [PATCH] Fix lag when monsters try to move in a random direction --- squirrelbattle/entities/monsters.py | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/squirrelbattle/entities/monsters.py b/squirrelbattle/entities/monsters.py index 624f8a3..9c151ad 100644 --- a/squirrelbattle/entities/monsters.py +++ b/squirrelbattle/entities/monsters.py @@ -1,7 +1,7 @@ # Copyright (C) 2020 by ÿnérant, eichhornchen, nicomarg, charlse # SPDX-License-Identifier: GPL-3.0-or-later -from random import choice +from random import shuffle from .player import Player from ..interfaces import FightingEntity, Map @@ -49,9 +49,13 @@ class Monster(FightingEntity): if not moved and self.distance_squared(target) <= 1: self.map.logs.add_message(self.hit(target)) else: - for _ in range(100): - if choice([self.move_up, self.move_down, - self.move_left, self.move_right])(): + # Move in a random direction + # If the direction is not available, try another one + moves = [self.move_up, self.move_down, + self.move_left, self.move_right] + shuffle(moves) + for move in moves: + if move(): break