Exemple #1
0
 def ab(self):
     full_ab = list(super().ab)
     ex_set = set()
     max_coabs = CharaBase.MAX_COAB
     coabs = list(self.coabs.items())
     self.coabs = {}
     self.coab_list = []
     for key, coab in coabs:
         # alt check
         if key not in CharaBase.NON_UNIQUE_COABS:
             key_base_id = get_icon(key).split('_')
             self_base_id = self.icon.split('_')
             if key_base_id[0] == self_base_id[0] and key_base_id[1] != self_base_id[1]:
                 continue
         self.coabs[key] = coab
         if key != self.coab_qual:
             self.coab_list.append(key)
             max_coabs -= 1
         chain, ex = coab
         if ex:
             ex_set.add(('ex', ex))
         if chain:
             full_ab.append(tuple(chain))
         if max_coabs == 0:
             break
     full_ab.extend(ex_set)
     if self.wt == 'axe':
         full_ab.append(('cc', 0.04))
     else:
         full_ab.append(('cc', 0.02))
     return full_ab
Exemple #2
0
def slots_csv(adv, web):
    padded_coab = adv.slots.c.coab_list.copy()
    if len(padded_coab) < 3:
        padded_coab.extend([''] * (3 - len(padded_coab)))
    padded_share = adv.skillshare_list.copy()
    if len(padded_share) < 2:
        padded_share.extend([''] * (2 - len(padded_share)))
    if not web:
        return (str(adv.slots), *padded_coab, *padded_share)
    icon_lst = []
    for name in chain(padded_coab, padded_share):
        if not name:
            icon_lst.extend(('', ''))
        else:
            icon_lst.extend((get_fullname(name), get_icon(name)))
    return (adv.slots.full_slot_icons(), *icon_lst)
Exemple #3
0
 def ab(self):
     full_ab = list(super().ab)
     ex_ab = {}
     max_coabs = CharaBase.MAX_COAB
     coabs = list(self.coabs.items())
     self.coabs = {}
     self.coab_list = []
     seen_base_id = {self.icon.split("_")[0]}
     for key, coab in coabs:
         # alt check
         if key != self.coab_qual:
             icon = get_icon(key)
             if icon:
                 key_base_id = icon.split("_")[0]
                 if key_base_id in seen_base_id:
                     continue
                 seen_base_id.add(key_base_id)
         self.coabs[key] = coab
         if key != self.coab_qual:
             self.coab_list.append(key)
             max_coabs -= 1
         if coab["ex"] and (
                 coab["category"] not in ex_ab
                 or coab["ex"][0][1] > ex_ab[coab["category"]][0][1]):
             ex_ab[coab["category"]] = coab["ex"]
         for chain in coab["chain"]:
             full_ab.append(tuple(chain))
             if key != self.coab_qual:
                 if chain[0] == "ctime":
                     self._chain_ctime += chain[1]
                     self._ctime_coabs.append((chain[1], key, coab))
                 if chain[0] in ("hp", "rcv"):
                     self._healing_coabs.append((key, coab))
                 if chain[0].endswith("regen") or chain[0].endswith("heal"):
                     self._regen_coabs.append((key, coab))
                 if chain[0] == "bt":
                     self._bufftime_coabs.append((key, coab))
         if max_coabs == 0:
             break
     for ex_list in ex_ab.values():
         full_ab.extend(map(tuple, ex_list))
     if self.wt == "axe":
         full_ab.append(("cc", 0.04))
     else:
         full_ab.append(("cc", 0.02))
     self.coab_list = sorted(self.coab_list)
     return full_ab