def reinforce_phase(player, game_master): # state init vector datastore = Datastore() picasso = get_picasso() #reserve_count_asset = ReserveCountAsset(player) #picasso.add_asset(LAYER, reserve_count_asset) # core state machine disable_enemy_territories(player) while player.reserves > 0: hint_asset = build_hint_asset(REINFORCE_HINTS['initial'] % \ player.reserves) picasso.add_asset(LAYER, hint_asset) event = wait_for_mouse_click() for name, clickable in graphics.pressed_clickables(event.pos, 'territories'): if isinstance(clickable, TerritoryAsset): territory = clickable.territory # makegonow for now, fix later try: reinforce_add_army(player, game_master, territory) except GameMasterError: reinforce_add_army_fail(player, game_master, territory) picasso.remove_asset(LAYER, hint_asset) # exit state enable_all_clickables()
def reinforce_phase(player, game_master): # state init vector datastore = Datastore() picasso = get_picasso() # reserve_count_asset = ReserveCountAsset(player) # picasso.add_asset(LAYER, reserve_count_asset) # core state machine disable_enemy_territories(player) while player.reserves > 0: hint_asset = build_hint_asset(REINFORCE_HINTS['initial'] % player.reserves) picasso.add_asset(LAYER, hint_asset) event = wait_for_mouse_click() for name, clickable in graphics.pressed_clickables(event.pos, 'territories'): try: if isinstance(clickable, TerritoryAsset): territory = clickable.territory # makegonow for now, fix later try: reinforce_add_army(player, game_master, territory) except GameMasterError: reinforce_add_army_fail( player, game_master, territory) except Exception as e: print('Reinforcing failed!!!', e) traceback.print_tb(e.__traceback__) picasso.remove_asset(LAYER, hint_asset) # exit state enable_all_clickables()
def wait_for_territory_click(allow_fail=False): _NO_TERRITORY_CLICKED = True while _NO_TERRITORY_CLICKED: event = wait_for_mouse_click() for name, clickable in get_clicked_territories(event.pos): if isinstance(clickable, TerritoryAsset): return clickable # short circuit condition if allow_fail: return None
def get_result(self, poll_sleep): done = False while not done: event = wait_for_mouse_click() if self.slider.mouse_hovering(event.pos): self.drag_slider(poll_sleep) elif self.being_dragged(event.pos): self.drag_dialog() elif self.finished_button.mouse_hovering(event.pos): done = self.finished_button.confirmed_click() # print(done return self.current
def get_result(self, poll_sleep): done = False while not done: event = wait_for_mouse_click() if self.slider.mouse_hovering(event.pos): self.drag_slider(poll_sleep) elif self.being_dragged(event.pos): self.drag_dialog() elif self.finished_button.mouse_hovering(event.pos): done = self.finished_button.confirmed_click() #print done return self.current
def fortify_phase(player, game_master): picasso = get_picasso() hint_asset = build_hint_asset(FORTIFY_HINTS['initial']) done = False # TODO merge with attack phase block while not done: disable_enemy_territories(player) picasso.add_asset(LAYER, hint_asset) event = wait_for_mouse_click() for name, clickable in get_clicked_territories(event.pos): if isinstance(clickable, TerritoryAsset): if clickable.territory.owner == player: picasso.remove_asset(LAYER, hint_asset) fortify_choose_target(player, game_master, clickable) for name, clickable in get_clicked_buttons(event.pos): if name == 'next': done = True picasso.remove_asset(LAYER, hint_asset) enable_all_clickables()
def attack_phase(player, game_master): picasso = get_picasso() done = False hint_asset = build_hint_asset(ATTACK_HINTS['initial']) while not done: picasso.add_asset(LAYER, hint_asset) disable_enemy_territories(player) event = wait_for_mouse_click() for name, clickable in get_clicked_territories(event.pos): if isinstance(clickable, TerritoryAsset): if clickable.territory.owner == player: picasso.remove_asset(LAYER, hint_asset) attack_choose_target(player, game_master, clickable) for name, clickable in get_clicked_buttons(event.pos): if name == 'next': done = True picasso.remove_asset(LAYER, hint_asset) enable_all_clickables()