Esempio n. 1
0
 def lbas_group_3_nodes(self, value):
     if (LBASGroupEnum.G03.value in self.lbas_groups
             and len(value) not in (0, 2)):
         raise ValueError("0 or 2 nodes not specified for LBAS 3")
     for node in value:
         if not NamedNodeEnum.contains_value(node):
             raise ValueError("Invalid node specified for LBAS 3")
     self._lbas_group_3_nodes = [NodeEnum(node) for node in value]
Esempio n. 2
0
 def node_selects(self, value):
     node_selects = {}
     for select in value:
         split = select.split('>')
         if len(split) != 2:
             raise ValueError("Node select in wrong format.")
         if (not NamedNodeEnum.contains_value(split[0])
                 or not NamedNodeEnum.contains_value(split[1])):
             raise ValueError("Bad node specified in node select.")
         node_selects[split[0]] = NodeEnum(split[1])
     self._node_selects = node_selects
Esempio n. 3
0
    def _resolve_continue_sortie_prompt(self):
        Log.log_debug("Resolve continue sortie prompt.")
        continue_sortie = True
        retreat_limit = cfg.config.combat.retreat_limit
        if self.current_node in cfg.config.combat.push_nodes:
            Log.log_msg(f"{self.current_node} is specified as a push node.")
            return True
        for fleet in flt.fleets.combat_fleets:
            if fleet.weakest_state >= retreat_limit:
                Log.log_warn(
                    f"Fleet {fleet.fleet_id} has ships with "
                    f"{retreat_limit.display_name} damage or above.")
                continue_sortie = False
            elif fleet.visual_health['heavy'] > 0:
                Log.log_warn(
                    f"Fleet {fleet.fleet_id} has a critically damaged ship "
                    "not calculated from the API.")
                continue_sortie = False
        if (
                NodeEnum(self.current_node.name)
                in cfg.config.combat.retreat_points):
            Log.log_debug("Retreat specified in config.")
            continue_sortie = False
        if (
                NodeEnum(len(self.combat_nodes_run))
                in cfg.config.combat.retreat_points):
            Log.log_debug("Retreat specified combat # in config.")
            continue_sortie = False

        if continue_sortie:
            Log.log_msg("Continuing sortie.")
            kca_u.kca.click_existing(
                'kc', 'combat|combat_continue.png', cached=True)
        else:
            Log.log_msg("Retreating from sortie.")
            kca_u.kca.click_existing(
                'kc', 'combat|combat_retreat.png', cached=True)
        kca_u.kca.r['lbas'].hover()

        return continue_sortie
Esempio n. 4
0
 def push_nodes(self, value):
     for node in value:
         if not NamedNodeEnum.contains_value(node):
             raise ValueError("Invalid node specified for push nodes.")
     self._push_nodes = [NodeEnum(node) for node in value]
Esempio n. 5
0
 def retreat_points(self, value):
     for node in value:
         if not NodeEnum.contains_value(node):
             raise ValueError("Invalid node specified")
     self._retreat_points = [NodeEnum(node) for node in value]