import { Image } from "./canvas"; import { Lang } from "./lang"; export type Theme = "dark" | "dark-ex" | "light" | "light-ex" | "white" | "74lc" | "74mc" | "74sb" | "official" | "flat"; export type Range = 0 | 1 | 2 | 3 | 4; export type Speed = 0 | 5 | 10 | 15 | 20; export type AirState = "AS+" | "AS" | "AP"; export type AirPower = { min: number; max: number; }; export type LoS = { [key: string]: number; 1: number; 2: number; 3: number; 4: number; 5: number; }; export declare enum ShipImageKind { ALBUM_STATUS = "album_status", BANNER = "banner", CARD = "card", REMODEL = "remodel" } /** * 艦 */ export declare class Ship { /** 艦ID */ id: number; /** 艦名 */ name: string; /** 読み */ yomi: string; /** 艦種ID */ stype: number; /** 艦型ID */ ctype: number; /** 耐久 */ hp: number; /** 火力 */ firepower: number; /** 雷装 */ torpedo: number; /** 対空 */ aa: number; /** 装甲 */ armor: number; /** 対潜 */ asw: number; /** 回避 */ evasion: number; /** 索敵 */ los: number; /** 運 */ luck: number; /** 射程 */ rn: Range; /** 速力 */ sp: Speed; /** スロット数 */ slotNum: number; /** 搭載機数 */ slots: number[]; /** 装備 */ items: Item[]; /** Lv */ lv: number; /** URL */ url: string; get airPower(): { min: number; max: number; }; /** * パラメータを設定する * ※この値が表示されるので、装備パラメータも一緒に含めること * @param id 艦ID * @param name 艦名 * @param yomi 読み * @param stype 艦種ID * @param ctype 艦型ID * @param lv 艦Lv * @param hp HP * @param firepower 火力 * @param torpedo 雷装 * @param aa 対空 * @param armor 装甲 * @param asw 対潜 * @param evasion 回避 * @param los 索敵 * @param luck 運 * @param slotNum 装備スロット数 * @param range 射程 * @param speed 艦速 * @param slots 装備スロット * @param items 装備 * @param url URL */ constructor(id: number, name: string, yomi: string, stype: number, ctype: number, lv: number, hp: number, firepower: number, torpedo: number, aa: number, armor: number, asw: number, evasion: number, los: number, luck: number, slotNum: number, range: Range, speed: Speed, slots: number[], items: Item[], url?: string); static get UNKNOWN(): Ship; get tp(): number; get range(): Range; get speed(): Speed; fetchImage(kind: ShipImageKind): Promise; private getExpditionPlaneBonus; get expeditionFirepowerBonus(): number; get expeditionAABonus(): number; get expeditionASWBonus(): number; get expeditionLoSBonus(): number; } /** * 装備 */ export declare class Item { /** 装備ID */ id: number; /** 装備名 */ name: string; /** 装備タイプ */ type: number[]; /** 火力 */ firepower: number; /** 雷装 */ torpedo: number; /** 爆装 */ bomb: number; /** 装甲 */ armor: number; /** 対空 */ aa: number; /** 回避/迎撃 */ evasion: number; /** 命中/対爆 */ accuracy: number; /** 対潜 */ asw: number; /** 索敵 */ los: number; /** 射程 */ range: Range; /** 航続距離 */ distance: number; /** 配置コスト */ cost: number; /** 改修 */ lv: number; /** 熟練度 */ alv: number; /** * @param master マスターデータ * @param lv 改修 * @param alv 熟練度 */ constructor(master: MasterItem, lv?: number, alv?: number); static get UNKNOWN(): Item; get expeditionFirepowerBonus(): number; get expeditionAABonus(): number; get expeditionASWBonus(): number; get expeditionLoSBonus(): number; } export declare class Airbase { mode: number; items: Item[]; constructor(items: Item[]); } export declare class Fleet { name: string; ships: Ship[]; constructor(ships: Ship[], name?: string); } export interface Apidata { readonly api_mst_ship: MasterShip[]; readonly api_mst_slotitem: MasterItem[]; } interface MasterShip { readonly api_id: number; readonly api_sortno: number; readonly api_sort_id: number; readonly api_name: string; readonly api_yomi: string; readonly api_stype: number; readonly api_ctype: number; readonly api_afterlv: number; readonly api_aftershipid: string; readonly api_taik: number[]; readonly api_souk: number[]; readonly api_houg: number[]; readonly api_raig: number[]; readonly api_tyku: number[]; readonly api_luck: number[]; readonly api_soku: Speed; readonly api_leng: Range; readonly api_slot_num: number; readonly api_maxeq: number[]; readonly api_buildtime: number; readonly api_broken: number[]; readonly api_powup: number[]; readonly api_backs: number; readonly api_getmes: string; readonly api_afterfuel: number; readonly api_afterbull: number; readonly api_fuel_max: number; readonly api_bull_max: number; readonly api_voicef: number; } interface MasterItem { readonly api_id: number; readonly api_sortno: number; readonly api_name: string; readonly api_type: number[]; readonly api_taik: number; readonly api_souk: number; readonly api_houg: number; readonly api_raig: number; readonly api_soku: number; readonly api_baku: number; readonly api_tyku: number; readonly api_tais: number; readonly api_atap: number; readonly api_houm: number; readonly api_raim: number; readonly api_houk: number; readonly api_raik: number; readonly api_bakk: number; readonly api_saku: number; readonly api_sakb: number; readonly api_luck: number; readonly api_leng: Range; readonly api_rare: number; readonly api_broken: number[]; readonly api_usebull: string; readonly api_version?: number; readonly api_distance?: number; readonly api_cost?: number; } interface FormatData { readonly lang: Lang; readonly theme: Theme; readonly hqlv: number; readonly fleets: Fleet[]; readonly airbases: Airbase[]; readonly airState: AirState; readonly comment: string; } export interface DeckBuilderOptions { hideShipImage?: boolean; } /** * デッキビルダー型のフォーマット * 数値のパラメータが直接出力されるので、表示値をそのまま入れること */ export interface DeckBuilder { /** 言語 */ readonly lang: Lang; /** * テーマ * dark=オリジナル * 74lc=74式(大型) * 74mc=74式(中型) * 74sb=74式(小型) */ readonly theme: Theme; /** * 司令部Lv */ readonly hqlv: number; /** * 第一艦隊 */ readonly f1?: DeckBuilderFleet; /** * 第二艦隊 */ readonly f2?: DeckBuilderFleet; /** * 第三艦隊 */ readonly f3?: DeckBuilderFleet; /** * 第四艦隊 */ readonly f4?: DeckBuilderFleet; /** * 第一基地航空隊 */ readonly a1?: DeckBuilderAirbase; /** * 第二基地航空隊 */ readonly a2?: DeckBuilderAirbase; /** * 第三基地航空隊 */ readonly a3?: DeckBuilderAirbase; /** * 制空状態(dark ver.&複数艦隊&基地航空隊使用時のみ使用) * 触接率グラフ表示に使用 * * AS+:制空権確保 * AS:航空優勢 * AP:航空劣勢 */ readonly as?: AirState; /** * コメント(dark ver.&複数艦隊&基地航空隊使用時のみ使用) * コメント表示に使用 */ readonly cmt?: string; readonly options?: DeckBuilderOptions; } /** * フォーマット(艦隊) */ export interface DeckBuilderFleet { /** 艦隊名(七四式ver.使用時のみ使用) */ readonly name?: string; /** 旗艦 */ readonly s1?: DeckBuilderShip; /** 二番艦 */ readonly s2?: DeckBuilderShip; /** 三番艦 */ readonly s3?: DeckBuilderShip; /** 四番艦 */ readonly s4?: DeckBuilderShip; /** 五番艦 */ readonly s5?: DeckBuilderShip; /** 六番艦 */ readonly s6?: DeckBuilderShip; /** 七番艦(これを設定する場合、出力は一艦隊のみにすること) */ readonly s7?: DeckBuilderShip; } /** * フォーマット(艦) */ export interface DeckBuilderShip { /** 艦ID */ readonly id: number; /** レベル */ readonly lv: number; /** 装備 */ readonly items: { readonly i1?: DeckBuilderItem; readonly i2?: DeckBuilderItem; readonly i3?: DeckBuilderItem; readonly i4?: DeckBuilderItem; readonly i5?: DeckBuilderItem; readonly ix?: DeckBuilderItem; }; /** 耐久 */ readonly hp: number; /** 火力 */ readonly fp: number; /** 雷装 */ readonly tp: number; /** 対空 */ readonly aa: number; /** 装甲 */ readonly ar: number; /** 対潜 */ readonly asw: number; /** 回避 */ readonly ev: number; /** 索敵 */ readonly los: number; /** 運 */ readonly luck: number; } /** * フォーマット(装備) * 熟練度の値はそのまま制空に反映されるので注意 */ export interface DeckBuilderItem { /** 装備ID */ readonly id: number; /** 改修 */ readonly rf?: number; /** 熟練度 */ readonly mas?: number; } /** * フォーマット(基地) */ export interface DeckBuilderAirbase { /** 基地状態 */ readonly mode?: number; /** 装備 */ readonly items: { readonly i1?: DeckBuilderItem; readonly i2?: DeckBuilderItem; readonly i3?: DeckBuilderItem; readonly i4?: DeckBuilderItem; }; } export interface GenerateOptions { readonly masterUrl?: string; readonly start2URL?: string; readonly shipURL?: string; } export declare function parse(deckbuilder: DeckBuilder, apidata: Apidata, url: string): FormatData; export {};