Exemplo n.º 1
0
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()
Exemplo n.º 2
0
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()
Exemplo n.º 3
0
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
Exemplo n.º 4
0
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
Exemplo n.º 5
0
 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
Exemplo n.º 6
0
 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
Exemplo n.º 7
0
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()
Exemplo n.º 8
0
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()
Exemplo n.º 9
0
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()
Exemplo n.º 10
0
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()