Ejemplo n.º 1
0
def get_adv_wp_list():
    if not (request.method == "GET" or request.method == "POST"):
        return "Wrong request method."
    result = {}
    result["adv"] = {}
    for name, variants in ADV_MODULES.items():
        result["adv"][name] = {
            "fullname":
            get_fullname(name),
            "variants": [
                vkey for vkey in variants.keys()
                if vkey is not None and vkey != "mass"
            ],
        }
    wplists = {"formA": {}, "formB": {}, "formC": {}}
    for wp, data in wyrmprints.items():
        ab_str = f'-{data["union"]}'
        if data["a"]:
            ab_str = "[" + "‖".join(
                ["|".join(map(str, ab)) for ab in data["a"]]) + "]" + ab_str
        else:
            ab_str = "[]" + ab_str
        display_name = data["name"] + " " + ab_str
        wplists[RARITY_MAP[data["rarity"]]][wp] = display_name
    result["wyrmprints"] = wplists
    result["skillshare"] = {
        k: {
            "fullname": get_fullname(k),
            **v
        }
        for k, v in skillshare.items()
    }
    return jsonify(result)
Ejemplo n.º 2
0
def get_adv_wp_list():
    if not (request.method == 'GET' or request.method == 'POST'):
        return 'Wrong request method.'
    result = {}
    result['adv'] = {}
    for name, variants in ADV_MODULES.items():
        result['adv'][name] = {
            'fullname':
            get_fullname(name),
            'variants': [
                vkey for vkey in variants.keys()
                if vkey is not None and vkey != 'mass'
            ]
        }
    wplists = {'gold': {}, 'silver': {}}
    for wp, data in wyrmprints.items():
        ab_str = f'-{data["union"]}'
        if data['a']:
            ab_str = '[' + '|'.join(map(str, data['a'][0])) + ']' + ab_str
        else:
            ab_str = '[]' + ab_str
        if data['rarity'] == 5:
            wplists['gold'][wp] = data['name'] + ' ' + ab_str
        else:
            wplists['silver'][wp] = data['name'] + ' ' + ab_str
    result['wyrmprints'] = wplists
    result['skillshare'] = {
        k: {
            'fullname': get_fullname(k),
            **v
        }
        for k, v in skillshare.items()
    }
    return jsonify(result)
Ejemplo n.º 3
0
def get_adv_wp_list():
    if not (request.method == 'GET' or request.method == 'POST'):
        return 'Wrong request method.'
    result = {}
    result['adv'] = {}
    for name in ADV_MODULES.keys():
        try:
            result['adv'][name] = load_adv_json(name)['c']['name']
        except FileNotFoundError:
            result['adv'][name] = SPECIAL_ADV[name]['fullname']
    wplists = {'gold': {}, 'silver': {}}
    for wp, data in wyrmprints.items():
        ab_str = f'-{data["union"]}'
        if data['a']:
            ab_str = '[' + '|'.join(map(str, data['a'][0])) + ']' + ab_str
        else:
            ab_str = '[]' + ab_str
        if data['rarity'] == 5:
            wplists['gold'][wp] = data['name'] + ' ' + ab_str
        else:
            wplists['silver'][wp] = data['name'] + ' ' + ab_str
    result['wyrmprints'] = wplists
    result['skillshare'] = {
        k: {
            'fullname': get_fullname(k),
            **v
        }
        for k, v in skillshare.items()
    }
    return jsonify(result)
Ejemplo n.º 4
0
def get_adv_wp_list():
    if not (request.method == 'GET' or request.method == 'POST'):
        return 'Wrong request method.'
    result = {}
    result['amulets'] = list_members(slot.a, is_amulet)
    result['adv'] = list(ADV_MODULES.keys())
    result['skillshare'] = dict(sorted(skillshare.items()))
    return jsonify(result)
Ejemplo n.º 5
0
def rank_ss():
    ranked = []
    for adv, ss in skillshare.items():
        if ss.get('type') != 1:
            continue
        adv_data = load_adv_json(adv)
        try:
            skill = adv_data[f's{ss["s"]}']
        except:
            skill = adv_data[f's{ss["s"]}_phase1']
        try:
            mod_t = 0
            for attr in skill['attr']:
                dmg = attr.get('dmg', 0)
                killer = attr.get('killer')
                if killer:
                    dmg *= killer[0]
                mod_t += dmg
        except:
            continue
        ss_sp = ss['sp']
        normalized_t = skill['startup'] + skill['recovery'] + ss_sp / SPPS
        ranked.append((mod_t / normalized_t, adv_data['c']['name']))
    pprint(sorted(ranked, reverse=True))