1
0

initial event picker

This commit is contained in:
2025-08-04 21:10:12 +02:00
parent 804a3961c9
commit af7f0019ec
2 changed files with 58 additions and 4 deletions

View File

@@ -7,8 +7,21 @@ EVENTS = [
'success_percentage' : 80, 'success_percentage' : 80,
'fail_percentage' : 19, 'fail_percentage' : 19,
'extreme_fail_percentage' : 1, 'extreme_fail_percentage' : 1,
'required_items' : [], 'requirements' : {},
'weight' : 1, 'weight' : 1,
'number_of_players' : 1,
},
{
'id' : 'BOMB_EXPLOSION'
'text' : '{Player1} ha attacato {player2}',
'resolve_text' : '{Player1} ha causato {effetto_collaterale}',
'fail_text' : '{Player1} ha fallito, {player2} è indenne',
'success_percentage' : 80,
'fail_percentage' : 19,
'extreme_fail_percentage' : 1,
'requirements' : {
'weapons' : ['BOMB']
},
'number_of_players' : 2, 'number_of_players' : 2,
}, },
] ]

View File

@@ -7,7 +7,48 @@ class ArenaEventPicker():
self.event_list = EVENTS self.event_list = EVENTS
self.already_picked_players = [] self.already_picked_players = []
def pick_event(): def pick_a_player():
pass the_player = _random.choice(self.players)
the_player_id = the_player.get('id')
self.players = list(filter(lambda x : x.get('id') != the_player_id)
def pick_event(the_player):
player_inventory = the_player.get('inventory') or []
status = the_player['health']
reputation = the_player['reputation']
elegible_events = []
for event in EVENTS:
requirements = event['requirements']
keys_to_check = ['item', 'weapon', 'status', 'reputation', 'number_of_players']
for check in keys_to_check:
if requirements.get(check) and check == 'item':
needed_items = requirements.get('check')
if needed_items in player_inventory:
elegible_events.append(event)
if requirements.get(check) and check == 'weapon':
needed_weapons = requirements.get('check')
if needed_items in player_inventory:
elegible_events.append(event)
if requirements.get(check) and check == 'status':
needed_health = requirements.get('check')
if '>' in requirements.get(check) and requirements.get(check) > in needed_health:
elegible_events.append(event)
if '<' in requirements.get(check) and requirements.get(check) < in needed_health:
elegible_events.append(event)
if requirements.get(check) and check == 'reputation':
needed_reputation = requirements.get('reputation')
if '>' in requirements.get(check) and requirements.get(check) > in needed_reputation:
elegible_events.append(event)
if '<' in requirements.get(check) and requirements.get(check) < in needed_reputation:
elegible_events.append(event)
the_event = _random.choice(elegible_events)
return the_event