Example #1
0
def slotset():
    id = request.values.get("api_id")
    equip_id = request.values.get("api_item_id")
    slot = request.values.get("api_slot_idx")

    Kanmusu.get(id).equip(admiral_equip_id=equip_id, slot=slot)
    db.session.commit()
    return svdata({})
Example #2
0
def slotset():
    id = request.values.get("api_id")
    equip_id = request.values.get("api_item_id")
    slot = request.values.get("api_slot_idx")

    Kanmusu.get(id).equip(admiral_equip_id=equip_id, slot=slot)
    db.session.commit()
    return svdata({})
Example #3
0
def powerup():
    id = request.values.get("api_id")
    id_items = request.values.get("api_id_items").split(
        ',')  # How mean girls aren't items
    result = Kanmusu.get(id).modernize(id_items)
    db.session.commit()
    return svdata(MemberHelper.powerup(id, result))
Example #4
0
def ship3(kanmusu_id):
    fleet_data = [fleet(f) for f in g.admiral.fleets]
    return {
        "api_ship_data": [kanmusu(Kanmusu.get(kanmusu_id))],
        "api_deck_data": fleet_data,
        "api_slot_data": unsetslot()
    }
Example #5
0
def ship3(kanmusu_id):
    fleet_data = [fleet(f) for f in g.admiral.fleets]
    return {
        "api_ship_data": [kanmusu(Kanmusu.get(kanmusu_id))],
        "api_deck_data": fleet_data,
        "api_slot_data": unsetslot()
    }
Example #6
0
def powerup(kanmusu_id, result):
    fleet_data = [MemberHelper.fleet(fleet) for fleet in g.admiral.fleets]
    api_ship = MemberHelper.kanmusu(Kanmusu.get(kanmusu_id))
    return {
        "api_powerup_flag": int(result),
        "api_ship": api_ship,
        "api_deck": fleet_data
    }
Example #7
0
def powerup(kanmusu_id, result):
    fleet_data = [fleet(fleet_) for fleet_ in g.admiral.fleets]
    api_ship = kanmusu(Kanmusu.get(kanmusu_id))
    return {
        "api_powerup_flag": int(result),
        "api_ship": api_ship,
        "api_deck": fleet_data
    }
Example #8
0
def craft_ship(fuel: int, ammo: int, steel: int, baux: int, dockid: int):
    admiral = g.admiral
    ship = get_ship_from_recipe(fuel, ammo, steel, baux)
    if ship:
        nship = Kanmusu(ship)
        nship.active = False
        nship.number = len(g.admiral.kanmusu)
    else:
        print("Something bad happened. Where are your recipes?")
        abort(404)
        return

    # Change dock data.
    try:
        dock = admiral.docks_craft[dockid]
    except IndexError:
        abort(404)
        return

    if dock.kanmusu is not None:
        # wat
        abort(400)
        return

    dock = dock.update(nship, fuel, ammo, steel, baux, True)

    admiral.resources.sub(fuel, ammo, steel, baux)

    db.session.add(dock)
    admiral.add_kanmusu(nship)
    db.session.add(admiral)
    api_data = {
        "api_ship_id": nship.ship.api_id,
        "api_kdock": MemberHelper.dock_data([dock], False),
        "api_id": nship.number,
        "api_slotitem": [],
        "api_ship": MemberHelper.kanmusu(kanmusu=dock.kanmusu)
    }
    db.session.commit()
    return api_data
Example #9
0
def kanmusu(kanmusu: Kanmusu):
    ship = kanmusu.ship

    # AdmiralShip *must have* entries in AdmiralShipItem table, or we catbomb.
    equips = [equip.admiral_equipment.id if equip.admiral_equipment_id else -1 for equip in kanmusu.equipments]
    modern_stats = kanmusu.modernized_stats
    kanmusu_data = {
        # This must match api_data2 or we get different Ships in the game and DB.
        'api_id': kanmusu.number, 'api_ship_id': ship.api_id,
        'api_onslot': [0, 0, 0, 0, 0],  # ?
        'api_locked_equip': 0,
        'api_bull': kanmusu.current_ammo,
        'api_soukou': [kanmusu.stats.armour, ship.max_stats.armour],
        'api_locked': kanmusu.locked, 'api_nowhp': kanmusu.current_hp,
        'api_raisou': [kanmusu.stats.torpedo, ship.max_stats.torpedo],
        'api_lv': kanmusu.level,
        'api_slotnum': ship.maxslots,
        'api_srate': 1,  # TODO: Implement stars
        'api_cond': kanmusu.fatigue,
        'api_kaihi': [kanmusu.stats.evasion, ship.max_stats.evasion],
        'api_sortno': ship.number,
        'api_fuel': kanmusu.current_fuel,
        'api_taiku': [kanmusu.stats.antiair, ship.max_stats.antiair],
        'api_leng': ship.max_stats.range_,
        'api_taisen': [kanmusu.stats.antisub, ship.max_stats.antisub],  # Guesswork on exp part.
        'api_exp': [kanmusu.experience, kanmusu.get_exp_to_level(), 0],
        'api_slot': equips,
        'api_backs': ship.rarity,
        'api_sally_area': 0,  # dunno
        'api_ndock_item': [0, 0],  # TODO
        'api_karyoku': [kanmusu.stats.firepower, ship.max_stats.firepower],
        'api_maxhp': ship.base_stats.hp,  # Ship "maxhp" is level 100HP, otherwise base is used.
        'api_lucky': [kanmusu.stats.luck, ship.max_stats.luck],
        'api_ndock_time': 0,
        'api_kyouka': [modern_stats.firepower, modern_stats.torpedo, modern_stats.antiair, modern_stats.armour,
                       modern_stats.luck] if modern_stats else [0, 0, 0, 0, 0],
        'api_sakuteki': [ship.base_stats.los, ship.max_stats.los]
    }
    return kanmusu_data
Example #10
0
def remodeling():
    id = request.values.get("api_id")
    Kanmusu.get(id).remodel()  # If it only were that easy...
    return svdata({})
Example #11
0
def powerup():
    id = request.values.get("api_id")
    id_items = request.values.get("api_id_items").split(',')  # How mean girls aren't items
    result = Kanmusu.get(id).modernize(id_items)
    db.session.commit()
    return svdata(ActionsHelper.powerup(id, result))
Example #12
0
def remodeling():
    id = request.values.get("api_id")
    Kanmusu.get(id).remodel()  # If it only were that easy...
    return svdata({})
Example #13
0
def kanmusu(kanmusu: Kanmusu):
    ship = kanmusu.ship

    # AdmiralShip *must have* entries in AdmiralShipItem table, or we catbomb.
    equips = [
        equip.admiral_equipment.id if equip.admiral_equipment_id else -1
        for equip in kanmusu.equipments
    ]
    modern_stats = kanmusu.modernized_stats
    kanmusu_data = {
        # This must match api_data2 or we get different Ships in the game and DB.
        'api_id':
        kanmusu.number,
        'api_ship_id':
        ship.api_id,
        'api_onslot': [0, 0, 0, 0, 0],  # ?
        'api_locked_equip':
        0,
        'api_bull':
        kanmusu.current_ammo,
        'api_soukou': [kanmusu.stats.armour, ship.max_stats.armour],
        'api_locked':
        kanmusu.locked,
        'api_nowhp':
        kanmusu.current_hp,
        'api_raisou': [kanmusu.stats.torpedo, ship.max_stats.torpedo],
        'api_lv':
        kanmusu.level,
        'api_slotnum':
        ship.maxslots,
        'api_srate':
        1,  # TODO: Implement stars
        'api_cond':
        kanmusu.fatigue,
        'api_kaihi': [kanmusu.stats.evasion, ship.max_stats.evasion],
        'api_sortno':
        ship.number,
        'api_fuel':
        kanmusu.current_fuel,
        'api_taiku': [kanmusu.stats.antiair, ship.max_stats.antiair],
        'api_leng':
        ship.max_stats.range_,
        'api_taisen': [kanmusu.stats.antisub,
                       ship.max_stats.antisub],  # Guesswork on exp part.
        'api_exp': [kanmusu.experience,
                    kanmusu.get_exp_to_level(), 0],
        'api_slot':
        equips,
        'api_backs':
        ship.rarity,
        'api_sally_area':
        0,  # dunno
        'api_ndock_item': [0, 0],  # TODO
        'api_karyoku': [kanmusu.stats.firepower, ship.max_stats.firepower],
        'api_maxhp':
        ship.base_stats.
        hp,  # Ship "maxhp" is level 100HP, otherwise base is used.
        'api_lucky': [kanmusu.stats.luck, ship.max_stats.luck],
        'api_ndock_time':
        0,
        'api_kyouka': [
            modern_stats.firepower, modern_stats.torpedo, modern_stats.antiair,
            modern_stats.armour, modern_stats.luck
        ] if modern_stats else [0, 0, 0, 0, 0],
        'api_sakuteki': [ship.base_stats.los, ship.max_stats.los]
    }
    return kanmusu_data
Example #14
0
def firstship():
    shipid = request.values.get("api_ship_id")
    # TODO: Validation
    k = Kanmusu(ship_api_id=shipid)
    g.admiral.add_kanmusu(k, fleet_number=1, position=0)
    return svdata({'api_result_msg': 'shitty api is shitty', 'api_result': 1})