コード例 #1
0
 async def query_available_abilities(
         self,
         units: Union[List[Unit], "Units"],
         ignore_resource_requirements: bool = False
 ) -> List[List[AbilityId]]:
     """ Query abilities of multiple units """
     if not isinstance(units, list):
         """ Deprecated, accepting a single unit may be removed in the future, query a list of units instead """
         assert isinstance(units, Unit)
         units = [units]
         input_was_a_list = False
     else:
         input_was_a_list = True
     assert len(units) > 0
     result = await self._execute(query=query_pb.RequestQuery(
         abilities=[
             query_pb.RequestQueryAvailableAbilities(unit_tag=unit.tag)
             for unit in units
         ],
         ignore_resource_requirements=ignore_resource_requirements))
     """ Fix for bots that only query a single unit """
     if not input_was_a_list:
         return [[AbilityId(a.ability_id) for a in b.abilities]
                 for b in result.query.abilities][0]
     return [[AbilityId(a.ability_id) for a in b.abilities]
             for b in result.query.abilities]
コード例 #2
0
ファイル: client.py プロジェクト: NMVRodrigues/zergrush
 async def query_available_abilities(self, unit):
     assert isinstance(unit, Unit)
     result = await self._execute(query=query_pb.RequestQuery(
         abilities=[query_pb.RequestQueryAvailableAbilities(
             unit_tag=unit.tag
         )]
     ))
     return [AbilityId(a.ability_id) for a in result.query.abilities[0].abilities]
コード例 #3
0
 async def query_available_abilities(self,
                                     units,
                                     ignore_resource_requirements=False):
     if not isinstance(units, list):
         assert isinstance(units, Unit)
         units = [units]
     assert len(units) > 0
     result = await self._execute(query=query_pb.RequestQuery(
         abilities=[
             query_pb.RequestQueryAvailableAbilities(unit_tag=unit.tag)
             for unit in units
         ],
         ignore_resource_requirements=ignore_resource_requirements))
     return [[AbilityId(a.ability_id) for a in b.abilities]
             for b in result.query.abilities]
コード例 #4
0
    async def query_available_abilities_with_tag(
            self,
            units: Union[List[Unit], Units],
            ignore_resource_requirements: bool = False
    ) -> Dict[Set[AbilityId]]:
        """ Query abilities of multiple units """

        result = await self._execute(query=query_pb.RequestQuery(
            abilities=(query_pb.RequestQueryAvailableAbilities(
                unit_tag=unit.tag) for unit in units),
            ignore_resource_requirements=ignore_resource_requirements,
        ))
        return {
            b.unit_tag: {AbilityId(a.ability_id)
                         for a in b.abilities}
            for b in result.query.abilities
        }