fix event_picker errors that cause bot crash

This commit is contained in:
andrea
2025-09-04 21:10:32 +02:00
parent b001c9312a
commit a56d931304

View File

@@ -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)
@@ -76,6 +82,5 @@ class ArenaEventPicker():
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)