UNPKG

@azurapi/azurapi

Version:

Open Source Azur Lane Local Database

148 lines (147 loc) 3.62 kB
/** * Ship types * @packageDocumentation */ import { Identifiable } from './identifiable'; export interface shipAdvancedOptions { nameOnly?: boolean; idOnly?: boolean; language?: string; } declare type Url = string; declare type Stat = 'health' | 'armor' | 'reload' | 'luck' | 'firepower' | 'torpedo' | 'evasion' | 'speed' | 'antiwar' | 'aviation' | 'oilConsumption' | 'accuracy' | 'antisubmarineWarfare' | 'oxygen' | 'ammunition' | 'huntingRange'; declare type Rarity = 'Normal' | 'Rare' | 'Epic' | 'Super Rare' | 'Ultra Rare' | 'Priority' | 'Decisive'; declare type LimitBreaks = string[]; export interface Ship extends Identifiable { wikiUrl: Url; names: { code: string; en: string; cn: string; jp: string; kr: string; }; thumbnail: Url; hexagon: [number, number, number, number, number, number]; class: string; nationality: string; hullType: string; rarity: Rarity; stars: { stars: string; value: number; }; stats: { baseStats: Stats; level100: Stats; level120: Stats; level100Retrofit?: Stats; level120Retrofit?: Stats; }; slots: [Slot, Slot, Slot]; enhanceValue: Map<Stat, number>; scrapValue: { coin: number; oil: number; medal: number; }; skills: Skill[]; skins: Skin[]; gallery: GalleryItem[]; limitBreaks: LimitBreaks[]; fleetTech: { statsBonus: { collection?: Bonus; maxLevel?: Bonus; }; techPoints: { collection: number; maxLimitBreak: number; maxLevel: number; total: number; }; }; retrofit: boolean; retrofitId: string; retrofitHullType: string; retrofitProjects: Map<ProjectID, RetrofitProject>; construction: { constructionTime: string; availableIn: { light: boolean; heavy: boolean; aviation: boolean; limited: boolean; exchange: boolean; }; }; obtainedFrom: { obtainedFrom: string; fromMaps: string[]; }; misc: { artist?: Artist; web?: Artist; pixiv?: Artist; twitter?: Artist; voice?: Artist; }; } interface Bonus { applicable: string[]; stat: Stat; bonus: string; } declare type Stats = Map<Stat, string | ('' | '*' | '0' | '1' | '2' | '3' | '4' | '5' | '6')[][]>; interface Slot { type: string; minEfficiency: number; maxEfficiency: number; } interface Skill { icon: Url; names: { en: string; cn: string; jp: string; }; description: string; color: string; } interface Skin { name: string; chibi: Url; image: Url; cn?: Url; bg?: Url; background: Url; info: { enClient?: string; cnClient?: string; jpClient?: string; cost?: string; obtainedFrom: string; live2dModel: boolean; }; } interface GalleryItem { description: string; url: Url; } interface Artist { name: string; url: Url; } declare type ProjectID = string; interface RetrofitProject { name: ProjectID; attributes: string[]; materials: string[]; coins: number; level: number; levelBreakLevel: number; levelBreakStars: string; recurrence: number; require: ProjectID[]; } export {};