From b001c9312ad1f9bf44d85ae37db7b5872f661d329656cee0319389ec5b3f88f5 Mon Sep 17 00:00:00 2001 From: andrea Date: Thu, 4 Sep 2025 21:09:15 +0200 Subject: [PATCH 1/4] fix event_pickers errors that make the bot crash --- assets/events.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/assets/events.py b/assets/events.py index b623c5a..faa71e9 100644 --- a/assets/events.py +++ b/assets/events.py @@ -9,7 +9,7 @@ EVENTS = [ 'extreme_fail_percentage' : 1, 'requirements' : {}, 'weight' : 1, - 'affected_players' : 1, + 'affected_players' : 1, #NOTE, what is it? to why it could be integer or list? }, { 'id' : 'BOMB_EXPLOSION', -- 2.49.1 From a56d931304ad1498e019af6ddbb44b72b0d8675a464490a61e569a0a44756381 Mon Sep 17 00:00:00 2001 From: andrea Date: Thu, 4 Sep 2025 21:10:32 +0200 Subject: [PATCH 2/4] fix event_picker errors that cause bot crash --- entities/event_picker.py | 35 ++++++++++++++++++++--------------- 1 file changed, 20 insertions(+), 15 deletions(-) diff --git a/entities/event_picker.py b/entities/event_picker.py index 5f3eea2..251ef33 100644 --- a/entities/event_picker.py +++ b/entities/event_picker.py @@ -7,21 +7,21 @@ class ArenaEventPicker(): self.event_list = EVENTS self.already_picked_players = [] - def pick_a_player(): + def pick_a_player(self): the_player = _random.choice(self.players) - the_player_id = the_player.get('id') + the_player_id = the_player.get_id() - self.players = list(filter(lambda x : x.get('id') != the_player_id)) + self.players = list(filter(lambda x : x.get_id() != the_player_id, self.players)) self.already_picked_players.append(the_player) return the_player - def pick_event(the_player): + def pick_event(self, the_player): - player_inventory = the_player.get('inventory') or [] - status = the_player['health'] - reputation = the_player['reputation'] + player_inventory = the_player.get_inventory() + status = the_player.get_health() + reputation = the_player.get_reputation() elegible_events = [] for event in EVENTS: @@ -56,17 +56,23 @@ class ArenaEventPicker(): if check == 'affected_players': needed_players = event.get('affected_players') - if needed_players < len(self.players): - elegible_events.append(event) + #NOTE: this is only to compensate a double type of needed_players + # check NOTE on assets/events.py + if isinstance(needed_players, list): + if len(needed_players) < len(self.players): + elegible_events.append(event) + else: + if needed_players < len(self.players): + elegible_events.append(event) the_event = _random.choice(elegible_events) return the_event - def pick_targets(number_of_targets): - random.shuffle(self.players) + def pick_targets(self, number_of_targets): + _random.shuffle(self.players) return list(self.players[0:number_of_targets]) - def resolve_event(): + def resolve_event(self): playing_player = self.pick_a_player() assigned_event = self.pick_event(playing_player) @@ -75,7 +81,6 @@ class ArenaEventPicker(): affected_players = _random.choice(affected_players) targeted_players = self.pick_targets(affected_players) - - event_instance = _event.Event(assigned_event, playing_player) - + # FIXME this is not implemented + #event_instance = _event.Event(assigned_event, playing_player) -- 2.49.1 From b4c8d94c8cb30ad9241935d7aca287849adb2b798533972787ddd376b85dab38 Mon Sep 17 00:00:00 2001 From: andrea Date: Thu, 4 Sep 2025 21:11:24 +0200 Subject: [PATCH 3/4] initialize random_event action on Arena --- entities/arena.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/entities/arena.py b/entities/arena.py index e685ab9..6db7137 100644 --- a/entities/arena.py +++ b/entities/arena.py @@ -103,7 +103,8 @@ class BrSimArena(): def do_random_event(self): #XXX random player does random action according to his inventory health, wounds, available weapons on the world, etc... - pass + self.eventClass.resolve_event() + self.next_day() def supporter_donation(self): #XXX supporter donate a random item or weapon to a random player -- 2.49.1 From 4c2864634b4772126c5696314343ccdce87d0edab1be9b59be6bdb8b15c00598 Mon Sep 17 00:00:00 2001 From: andrea Date: Thu, 4 Sep 2025 21:12:12 +0200 Subject: [PATCH 4/4] additional debug functions --- debug.py | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/debug.py b/debug.py index fca9d7a..45fbf48 100644 --- a/debug.py +++ b/debug.py @@ -91,7 +91,7 @@ def init_debug_simulation(): _logs.log_debug('#################') _time.sleep(0.3) -def init_debug_loop(): +def init_debug_attack_loop(): Arena= _debug_data() while (len(Arena.get_alive_players()) > 1): alive_players= Arena.get_alive_players() @@ -104,6 +104,18 @@ def init_debug_loop(): Arena.next_day() _time.sleep(0.3) #End of day + Map= Arena.get_map() + _logs.log_debug(Map.get_renderized_map()) + + last_player= Arena.get_alive_players()[0] + _logs.log_debug(f'{last_player.get_name()} sopravvive e vince dopo {Arena.day} lunghi Giorni, conquistando l\'amore eterno di Guarino') + +def init_debug_event_loop(): + Arena= _debug_data() + while (len(Arena.get_alive_players()) > 1): + Arena.do_random_event() + _time.sleep(0.3) + #End of day last_player= Arena.get_alive_players()[0] _logs.log_debug(f'{last_player.get_name()} sopravvive e vince dopo {Arena.day} lunghi Giorni, conquistando l\'amore eterno di Guarino') @@ -116,4 +128,6 @@ def debug_random_map(): _logs.log_debug(res) if __name__ == '__main__': - init_debug() + init_debug_simulation() + #init_debug_attack_loop() + #init_debug_event_loop() -- 2.49.1