initial event picker
This commit is contained in:
@@ -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,
|
||||||
},
|
},
|
||||||
]
|
]
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
Reference in New Issue
Block a user