コード例 #1
0
def in_my_range(client, item):
    if not client.my_info.get('coordinates') or not item.get('coordinates'):
        return False

    distance = euclidean_distance(item['coordinates'],
                                  client.my_info['coordinates'])
    return distance - item['size'] / 2 <= client.my_info['firing_range']
コード例 #2
0
ファイル: commander.py プロジェクト: insolor/EoC-battle
    def ask_nearest_enemy(self):
        min_length = 1000
        nearest_enemy = None

        fighter = self.my_info

        for item in self.env_map_filter([MF.enemy]):
            length = euclidean_distance(item['coordinates'], fighter['coordinates'])

            if length < min_length:
                min_length = length
                nearest_enemy = item
        return self.ask_item_info(nearest_enemy['id']) if nearest_enemy else {}
コード例 #3
0
ファイル: commander.py プロジェクト: Leonix/EoC-battle
    def ask_nearest_enemy(self):
        min_length = 1000
        nearest_enemy = None

        fighter = self.my_info

        for item in self.env_map_filter([MF.enemy]):
            length = euclidean_distance(item['coordinates'],
                                        fighter['coordinates'])

            if length < min_length:
                min_length = length
                nearest_enemy = item
        return self.ask_item_info(nearest_enemy['id']) if nearest_enemy else {}
コード例 #4
0
ファイル: commander.py プロジェクト: zeratulayuris/EoC-battle
    def ask_nearest_enemy(self, roles=None):
        min_length = 1000
        nearest_enemy = None
        fighter = self.my_info
        filters = [MF.enemy]

        if roles:
            filters.append(MF.roles(roles))
        for item in self.env_map_filter(filters):
            length = euclidean_distance(item['coordinates'], fighter['coordinates'])

            if length < min_length:
                min_length = length
                nearest_enemy = item
        return self.ask_item_info(nearest_enemy['id']) if nearest_enemy else {}
コード例 #5
0
def in_my_range(client, item):
    distance = euclidean_distance(item['coordinates'],
                                  client.my_info['coordinates'])
    return distance - item['size'] / 2 <= client.my_info['firing_range']
コード例 #6
0
ファイル: map_filters.py プロジェクト: Vachenzo/EoC-battle
def in_my_range(client, item):
    distance = euclidean_distance(item['coordinates'], client.my_info['coordinates'])
    return distance - item['size'] / 2 <= client.my_info['firing_range']