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
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)
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