Example #1
0
 def berserker_initiate_battle(self, clearing: Clearing) -> None:
     potential_targets = clearing.get_all_other_players_in_location(self)
     # Sort in reverse order from our tie-breaking priority: Setup order -> most pieces
     potential_targets = sort_players_by_setup_order(potential_targets)
     potential_targets = sort_players_by_pieces_in_clearing(potential_targets, clearing)
     if potential_targets:
         self.battle(clearing, potential_targets[0])
Example #2
0
 def get_max_enemy_rule_value_in_clearing(self, clearing: Clearing) -> int:
     max_enemy_rule_value = 0
     for other_player in clearing.get_all_other_players_in_location(self):
         rule_value = other_player.get_rule_value(clearing)
         if rule_value > max_enemy_rule_value:
             max_enemy_rule_value = rule_value
     return max_enemy_rule_value
Example #3
0
def get_defenseless_enemy_buildings_in_clearing(clearing: Clearing,
                                                acting_player: Player) -> int:
    defenseless_buildings = 0
    for player in clearing.get_all_other_players_in_location(acting_player):
        if player.is_defenseless(clearing):
            defenseless_buildings += clearing.get_building_count_for_player(
                player)
    return defenseless_buildings
Example #4
0
 def does_rule_clearing(self, clearing: Clearing) -> bool:
     all_players_in_clearing = clearing.get_all_other_players_in_location(
         self)
     own_rule_value_in_clearing = self.get_rule_value(clearing)
     if own_rule_value_in_clearing == 0:
         return False
     for player in all_players_in_clearing:
         # LORDS OF THE FOREST: Eyrie Dynasties rule tied clearings
         if player.get_rule_value(clearing) > own_rule_value_in_clearing:
             return False
     return True