fleethub-core 1.12.4 → 1.12.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,153 +1,59 @@
1
1
  /* tslint:disable */
2
2
  /* eslint-disable */
3
- /**
4
- */
5
- export function set_panic_hook(): void;
6
- /**
7
- * @param {ShipConditions} value
8
- * @returns {ShipConditions}
9
- */
10
3
  export function parse_ship_conditions(value: ShipConditions): ShipConditions;
11
- export interface MasterShip {
12
- ship_id: number;
13
- name: string;
14
- yomi: string;
15
- stype: number;
16
- ctype: number;
17
- nationality?: number;
18
- sort_id?: number;
19
- max_hp: StatInterval;
20
- firepower: StatInterval;
21
- armor: StatInterval;
22
- torpedo: StatInterval;
23
- evasion: StatInterval;
24
- anti_air: StatInterval;
25
- asw: StatInterval;
26
- los: StatInterval;
27
- luck: StatInterval;
28
- torpedo_accuracy?: number;
29
- basic_evasion_term?: number;
30
- speed: number;
31
- range?: number;
32
- fuel?: number;
33
- ammo?: number;
34
- next_id?: number;
35
- next_level?: number;
36
- slotnum: number;
37
- slots: SlotSizeVec;
38
- stock: GearState[];
39
- speed_group?: SpeedGroup;
40
- useful?: boolean;
41
- }
42
-
43
- export type StatInterval = [number | null, number | null];
44
-
45
- export interface AttackPower {
46
- precap: number;
47
- is_capped: boolean;
48
- capped: number;
49
- normal: number;
50
- critical: number;
51
- armor_penetration: number;
52
- remaining_ammo_mod: number;
53
- }
4
+ export function set_panic_hook(): void;
54
5
 
55
- export interface AttackPowerParams {
56
- is_cutin: boolean;
57
- basic: number;
58
- cap: number;
59
- precap_mod: AttackPowerModifier;
60
- postcap_mod: AttackPowerModifier;
61
- ap_shell_mod: number | null;
62
- aerial_power: number | null;
63
- proficiency_critical_mod: number;
64
- armor_penetration: number;
65
- remaining_ammo_mod: number;
66
- balloon_mod: number;
67
- special_enemy_mods: SpecialEnemyModifiers;
68
- historical_mod: AttackPowerModifier;
69
- custom_mods: CustomPowerModifiers;
70
- }
6
+ export type CompiledEvaler = string;
71
7
 
72
- export interface AttackReport<T> {
73
- style: T;
74
- proc_rate: number | null;
75
- attack_power: AttackPower | null;
76
- attack_power_params: AttackPowerParams | null;
77
- hits: number;
78
- hit_rate: HitRate | null;
79
- hit_rate_params: HitRateParams | null;
80
- damage: DamageReport | null;
81
- }
8
+ export type AirSquadronMode = "Sortie" | "AirDefense";
82
9
 
83
- export interface AttackAnalysis {
84
- attacker_is_player: boolean;
85
- attacker_ship_id: number;
86
- target_ship_id: number;
87
- historical_params: HistoricalParams;
88
- day: ActionReport<DayPhaseAttackStyle>;
89
- night: ActionReport<NightPhaseAttackStyle>;
90
- closing_torpedo: ActionReport<TorpedoAttackStyle>;
91
- opening_asw: ActionReport<AswAttackStyle>;
92
- support_shelling: ActionReport<SupportShellingStyle>;
10
+ export interface AirSquadronState extends GearVecState, SlotSizeVecState {
11
+ id?: string;
12
+ mode?: AirSquadronMode;
93
13
  }
94
14
 
95
- export type AirWaveType = "Jet" | "LandBase" | "Carrier";
96
-
97
- export type DamageState = "Normal" | "Shouha" | "Chuuha" | "Taiha" | "Sunk";
15
+ export type SingleFormation =
16
+ | "LineAhead"
17
+ | "DoubleLine"
18
+ | "Diamond"
19
+ | "Echelon"
20
+ | "LineAbreast"
21
+ | "Vanguard";
98
22
 
99
- export type FleetType = "Main" | "Escort" | "RouteSup" | "BossSup";
23
+ export type CombinedFormation =
24
+ | "Cruising1"
25
+ | "Cruising2"
26
+ | "Cruising3"
27
+ | "Cruising4";
100
28
 
101
- export type OrgType =
102
- | "Single"
103
- | "CarrierTaskForce"
104
- | "SurfaceTaskForce"
105
- | "TransportEscort"
106
- | "EnemySingle"
107
- | "EnemyCombined";
29
+ export type Formation = SingleFormation | CombinedFormation;
108
30
 
109
- export interface ShipPosition {
110
- org_type?: OrgType;
111
- fleet_type?: FleetType;
112
- fleet_len?: number;
113
- index?: number;
31
+ export interface MasterGear {
32
+ gear_id: number;
33
+ name: string;
34
+ types: GearTypeIdArray;
35
+ special_type?: number;
36
+ max_hp?: number;
37
+ firepower?: number;
38
+ armor?: number;
39
+ torpedo?: number;
40
+ anti_air?: number;
41
+ speed?: number;
42
+ bombing?: number;
43
+ asw?: number;
44
+ los?: number;
45
+ luck?: number;
46
+ accuracy?: number;
47
+ evasion?: number;
48
+ range?: number;
49
+ radius?: number;
50
+ cost?: number;
51
+ improvable?: boolean;
52
+ ship_anti_air_resist?: number;
53
+ fleet_anti_air_resist?: number;
54
+ historical_aircraft_group?: number;
114
55
  }
115
56
 
116
- export type ShipCategory =
117
- | "Battleship"
118
- | "AircraftCarrier"
119
- | "HeavyCruiser"
120
- | "LightCruiser"
121
- | "Destroyer"
122
- | "CoastalDefenseShip"
123
- | "Submarine"
124
- | "AuxiliaryShip";
125
-
126
- export type ShipType =
127
- | "Unknown"
128
- | "DE"
129
- | "DD"
130
- | "CL"
131
- | "CLT"
132
- | "CA"
133
- | "CAV"
134
- | "CVL"
135
- | "FBB"
136
- | "BB"
137
- | "BBV"
138
- | "CV"
139
- | "XBB"
140
- | "SS"
141
- | "SSV"
142
- | "AP"
143
- | "AV"
144
- | "LHA"
145
- | "CVB"
146
- | "AR"
147
- | "AS"
148
- | "CT"
149
- | "AO";
150
-
151
57
  export interface FleetCutinReport<T> {
152
58
  cutin: FleetCutin;
153
59
  rate: number | null;
@@ -161,19 +67,6 @@ export interface FleetCutinAttackReport<T> extends AttackReport<T> {
161
67
  power_mod: number;
162
68
  }
163
69
 
164
- export interface DamageReport {
165
- miss_damage_min: number;
166
- miss_damage_max: number;
167
- normal_damage_min: number;
168
- normal_damage_max: number;
169
- critical_damage_min: number;
170
- critical_damage_max: number;
171
- normal_scratch_rate: number;
172
- critical_scratch_rate: number;
173
- damage_density: Histogram<number, number>;
174
- damage_state_density: Histogram<DamageState, number>;
175
- }
176
-
177
70
  export type AswAttackType = "DepthCharge" | "Aerial";
178
71
 
179
72
  export type ShellingType = "Normal" | "Aerial";
@@ -199,6 +92,51 @@ export type NightPhaseAttackType =
199
92
 
200
93
  export type TorpedoAttackType = null;
201
94
 
95
+ export type DayCutin =
96
+ | "Zuiun"
97
+ | "AirSea"
98
+ | "MainMain"
99
+ | "MainAp"
100
+ | "MainRadar"
101
+ | "MainSec"
102
+ | "DoubleAttack"
103
+ | "FBA"
104
+ | "BBA"
105
+ | "BA";
106
+
107
+ export type NightCutin =
108
+ | "MainTorpRadar"
109
+ | "TorpLookoutRadar"
110
+ | "TorpTsloTorp"
111
+ | "TorpTsloDrum"
112
+ | "NightZuiun2Radar"
113
+ | "NightZuiun2"
114
+ | "NightZuiunRadar"
115
+ | "NightZuiun"
116
+ | "DoubleAttack"
117
+ | "TorpTorpMain"
118
+ | "TorpTorpTorp"
119
+ | "MainMainSec"
120
+ | "MainMainMain"
121
+ | "SubTorpTorp"
122
+ | "SubRadarTorp"
123
+ | "Cvci1_25"
124
+ | "Cvci1_20"
125
+ | "Cvci1_18"
126
+ | "Photobomber";
127
+
128
+ export type FleetCutin =
129
+ | "NelsonTouch"
130
+ | "NagatoClassCutin"
131
+ | "ColoradoClassCutin"
132
+ | "KongouClassCutin"
133
+ | "Yamato2ShipCutin"
134
+ | "Yamato3ShipCutin";
135
+
136
+ export type DayCutinLike = DayCutin | FleetCutin;
137
+
138
+ export type NightCutinLike = NightCutin | FleetCutin;
139
+
202
140
  export type GearType =
203
141
  | "Unknown"
204
142
  | "SmallMainGun"
@@ -277,93 +215,106 @@ export type GearCategory =
277
215
  | "LandBased"
278
216
  | "Misc";
279
217
 
280
- export type ContactRank = "Rank1" | "Rank2" | "Rank3";
281
-
282
- export type DayCutin =
283
- | "Zuiun"
284
- | "AirSea"
285
- | "MainMain"
286
- | "MainAp"
287
- | "MainRadar"
288
- | "MainSec"
289
- | "DoubleAttack"
290
- | "FBA"
291
- | "BBA"
292
- | "BA";
218
+ export interface HitRate {
219
+ normal: number;
220
+ critical: number;
221
+ total: number;
222
+ }
293
223
 
294
- export type NightCutin =
295
- | "MainTorpRadar"
296
- | "TorpLookoutRadar"
297
- | "TorpTsloTorp"
298
- | "TorpTsloDrum"
299
- | "NightZuiun2Radar"
300
- | "NightZuiun2"
301
- | "NightZuiunRadar"
302
- | "NightZuiun"
303
- | "DoubleAttack"
304
- | "TorpTorpMain"
305
- | "TorpTorpTorp"
306
- | "MainMainSec"
307
- | "MainMainMain"
308
- | "SubTorpTorp"
309
- | "SubRadarTorp"
310
- | "Cvci1_25"
311
- | "Cvci1_20"
312
- | "Cvci1_18"
313
- | "Photobomber";
224
+ export interface HitRateParams {
225
+ accuracy_term: number;
226
+ evasion_term: number;
227
+ target_morale_mod: number;
228
+ critical_rate_constant: number;
229
+ critical_percentage_bonus: number;
230
+ hit_percentage_bonus: number;
231
+ }
314
232
 
315
- export type FleetCutin =
316
- | "NelsonTouch"
317
- | "NagatoClassCutin"
318
- | "ColoradoClassCutin"
319
- | "KongouClassCutin"
320
- | "Yamato2ShipCutin"
321
- | "Yamato3ShipCutin";
233
+ export interface AttackPower {
234
+ precap: number;
235
+ is_capped: boolean;
236
+ capped: number;
237
+ normal: number;
238
+ critical: number;
239
+ armor_penetration: number;
240
+ remaining_ammo_mod: number;
241
+ }
322
242
 
323
- export type DayCutinLike = DayCutin | FleetCutin;
243
+ export interface AttackPowerParams {
244
+ is_cutin: boolean;
245
+ basic: number;
246
+ cap: number;
247
+ precap_mod: AttackPowerModifier;
248
+ postcap_mod: AttackPowerModifier;
249
+ ap_shell_mod: number | null;
250
+ aerial_power: number | null;
251
+ proficiency_critical_mod: number;
252
+ armor_penetration: number;
253
+ remaining_ammo_mod: number;
254
+ balloon_mod: number;
255
+ special_enemy_mods: SpecialEnemyModifiers;
256
+ historical_mod: AttackPowerModifier;
257
+ custom_mods: CustomPowerModifiers;
258
+ }
324
259
 
325
- export type NightCutinLike = NightCutin | FleetCutin;
260
+ export interface ActionReport<T> {
261
+ data: Record<string, AttackReport<T>>;
262
+ damage_state_density: Histogram<DamageState, number> | null;
263
+ is_active: boolean;
264
+ }
326
265
 
327
- export type MoraleState = "Sparkle" | "Normal" | "Orange" | "Red";
266
+ export type DamageState = "Normal" | "Shouha" | "Chuuha" | "Taiha" | "Sunk";
328
267
 
329
- export type NodeId = string;
268
+ export type FleetType = "Main" | "Escort" | "RouteSup" | "BossSup";
330
269
 
331
- export interface NodeState {
332
- map?: number;
333
- node?: NodeId;
334
- phase?: number;
335
- debuff?: boolean;
336
- disable_historical_mod?: boolean;
337
- landing_battle?: boolean;
270
+ export type SlotSizeVec = (number | null)[];
271
+
272
+ export interface AttackReport<T> {
273
+ style: T;
274
+ proc_rate: number | null;
275
+ attack_power: AttackPower | null;
276
+ attack_power_params: AttackPowerParams | null;
277
+ hits: number;
278
+ hit_rate: HitRate | null;
279
+ hit_rate_params: HitRateParams | null;
280
+ damage: DamageReport | null;
338
281
  }
339
282
 
340
- export type Role = "Main" | "Escort";
283
+ export type AirWaveType = "Jet" | "LandBase" | "Carrier";
341
284
 
342
- export type SpecialEnemyType =
343
- | "None"
344
- | "SoftSkinned"
345
- | "Pillbox"
346
- | "IsolatedIsland"
347
- | "SupplyDepot"
348
- | "NewSupplyDepot"
349
- | "HarbourSummerPrincess"
350
- | "PtImp"
351
- | "BattleshipSummerPrincess"
352
- | "HeavyCruiserSummerPrincess"
353
- | "FrenchBattleshipPrincess"
354
- | "AnchorageWaterDemonVacationMode"
355
- | "DockPrincess"
356
- | "SummerAircraftCarrierDemon";
285
+ export type AirState =
286
+ | "AirSupremacy"
287
+ | "AirSuperiority"
288
+ | "AirParity"
289
+ | "AirDenial"
290
+ | "AirIncapability";
357
291
 
358
- export type GearTypeIdArray = [number, number, number, number, number];
292
+ export type AirStateRank = "Rank0" | "Rank1" | "Rank2" | "Rank3";
359
293
 
360
- export interface SupportShellingSimulatorParams {
361
- attacker_formation?: Formation;
362
- target_formation?: Formation;
363
- engagement: Engagement;
364
- node_state: NodeState;
294
+ export interface BattleConditions {
295
+ org_type: OrgType;
296
+ role: Role;
297
+ ship_index: number;
298
+ fleet_len: number;
299
+ formation: Formation;
300
+ fleet_los_mod: number | null;
301
+ night_conditions: NightFleetConditions;
365
302
  }
366
303
 
304
+ export interface NightConditions {
305
+ player?: NightFleetConditions;
306
+ enemy?: NightFleetConditions;
307
+ }
308
+
309
+ export interface NightFleetConditions {
310
+ night_contact_rank?: ContactRank | null;
311
+ starshell_index?: number | null;
312
+ searchlight_index?: number | null;
313
+ activates_large_searchlight?: boolean;
314
+ }
315
+
316
+ export type Engagement = "GreenT" | "Parallel" | "HeadOn" | "RedT";
317
+
367
318
  export interface FleetState {
368
319
  id?: string;
369
320
  len?: number;
@@ -376,96 +327,172 @@ export interface FleetState {
376
327
  s7?: ShipState;
377
328
  }
378
329
 
379
- export interface SimulatorResult {
380
- items: SimulatorResultItem[];
381
- sunk_vec: [number, number, number][];
330
+ export interface GearState {
331
+ id?: string;
332
+ gear_id: number;
333
+ exp?: number;
334
+ stars?: number;
382
335
  }
383
336
 
384
- export interface SimulatorResultItem {
385
- id: string;
386
- fleet_type: FleetType;
387
- index: number;
388
- damage_state_map: Record<DamageState, number>;
337
+ export interface GearVecState {
338
+ g1?: GearState;
339
+ g2?: GearState;
340
+ g3?: GearState;
341
+ g4?: GearState;
342
+ g5?: GearState;
343
+ gx?: GearState;
389
344
  }
390
345
 
391
- export interface HitRate {
392
- normal: number;
393
- critical: number;
394
- total: number;
395
- }
346
+ export type NodeId = string;
396
347
 
397
- export interface HitRateParams {
398
- accuracy_term: number;
399
- evasion_term: number;
400
- target_morale_mod: number;
401
- critical_rate_constant: number;
402
- critical_percentage_bonus: number;
403
- hit_percentage_bonus: number;
348
+ export interface NodeState {
349
+ map?: number;
350
+ node?: NodeId;
351
+ phase?: number;
352
+ debuff?: boolean;
353
+ disable_historical_mod?: boolean;
354
+ landing_battle?: boolean;
404
355
  }
405
356
 
406
- export interface NightContactChance {
407
- rank1: number;
408
- rank2: number;
409
- rank3: number;
357
+ export type OrgType =
358
+ | "Single"
359
+ | "CarrierTaskForce"
360
+ | "SurfaceTaskForce"
361
+ | "TransportEscort"
362
+ | "EnemySingle"
363
+ | "EnemyCombined";
364
+
365
+ export interface ShipPosition {
366
+ org_type?: OrgType;
367
+ fleet_type?: FleetType;
368
+ fleet_len?: number;
369
+ index?: number;
410
370
  }
411
371
 
412
- export interface CompNightCutinAnalysis {
413
- night_contact_chance: NightContactChance;
414
- ships: ShipNightCutinAnalysis[];
372
+ export interface SlotSizeVecState {
373
+ ss1?: number;
374
+ ss2?: number;
375
+ ss3?: number;
376
+ ss4?: number;
377
+ ss5?: number;
415
378
  }
416
379
 
417
- export interface ShipNightCutinAnalysis {
380
+ export interface ShipState extends GearVecState, SlotSizeVecState {
381
+ id?: string;
418
382
  ship_id: number;
419
- index: number;
420
- normal: NightCutinActionReport;
421
- chuuha: NightCutinActionReport;
383
+ level?: number;
384
+ current_hp?: number;
385
+ morale?: number;
386
+ ammo?: number;
387
+ fuel?: number;
388
+ max_hp_mod?: number;
389
+ firepower_mod?: number;
390
+ torpedo_mod?: number;
391
+ armor_mod?: number;
392
+ anti_air_mod?: number;
393
+ evasion_mod?: number;
394
+ asw_mod?: number;
395
+ los_mod?: number;
396
+ luck_mod?: number;
397
+ day_gunfit_accuracy?: number;
398
+ night_gunfit_accuracy?: number;
399
+ custom_power_mods?: CustomPowerModifiers;
422
400
  }
423
401
 
424
- export interface NightCutinActionReport
425
- extends ActionReport<NightPhaseAttackStyle> {
426
- cutin_term: number | null;
427
- }
402
+ export type ShipKey = "s1" | "s2" | "s3" | "s4" | "s5" | "s6" | "s7";
428
403
 
429
- export interface CompDayCutinAnalysis {
430
- rank3_air_state: AirState;
431
- rank2_air_state: AirState;
432
- main_fleet_los_mod: number | null;
433
- escort_fleet_los_mod: number | null;
434
- ships: ShipDayCutinAnalysis[];
404
+ export interface MasterData extends MasterBattleDefinitions {
405
+ created_at: number;
406
+ gears: MasterGear[];
407
+ gear_attrs: MasterAttrRule<GearAttr>[];
408
+ ships: MasterShip[];
409
+ ship_attrs: MasterAttrRule<ShipAttr>[];
410
+ ibonuses: MasterIBonuses;
411
+ equippability: MasterEquippability;
435
412
  }
436
413
 
437
- export interface ShipDayCutinAnalysis {
438
- ship_id: number;
439
- role: Role;
440
- index: number;
441
- rank3: DayCutinReport;
442
- rank2: DayCutinReport;
414
+ export interface NationalityDef {
415
+ id: number;
416
+ ctypes: number[];
443
417
  }
444
418
 
445
- export interface DayCutinReport extends ActionReport<DayPhaseAttackStyle> {
446
- observation_term: number | null;
419
+ export interface MasterAttrRule<T> {
420
+ tag: T;
421
+ name: string;
422
+ expr: CompiledEvaler;
447
423
  }
448
424
 
449
- export interface ActionReport<T> {
450
- data: Record<string, AttackReport<T>>;
451
- damage_state_density: Histogram<DamageState, number> | null;
452
- is_active: boolean;
425
+ export interface MasterShip {
426
+ ship_id: number;
427
+ name: string;
428
+ yomi: string;
429
+ stype: number;
430
+ ctype: number;
431
+ nationality?: number;
432
+ sort_id?: number;
433
+ max_hp: StatInterval;
434
+ firepower: StatInterval;
435
+ armor: StatInterval;
436
+ torpedo: StatInterval;
437
+ evasion: StatInterval;
438
+ anti_air: StatInterval;
439
+ asw: StatInterval;
440
+ los: StatInterval;
441
+ luck: StatInterval;
442
+ torpedo_accuracy?: number;
443
+ basic_evasion_term?: number;
444
+ speed: number;
445
+ range?: number;
446
+ fuel?: number;
447
+ ammo?: number;
448
+ next_id?: number;
449
+ next_level?: number;
450
+ slotnum: number;
451
+ slots: SlotSizeVec;
452
+ stock: GearState[];
453
+ speed_group?: SpeedGroup;
454
+ useful?: boolean;
453
455
  }
454
456
 
455
- export interface ShipMeta {
456
- id: string;
457
- ship_id: number;
458
- }
457
+ export type StatInterval = [number | null, number | null];
459
458
 
460
- export interface FleetMeta {
461
- id: string;
462
- len: number;
463
- ships: [string, ShipMeta | null][];
459
+ export interface AttackAnalyzerShipConfig
460
+ extends ShipConditions,
461
+ NightFleetConditions {
462
+ balloons?: number;
463
+ fleet_los_mod?: number | null;
464
464
  }
465
465
 
466
- export interface CompMeta {
467
- fleets: Record<FleetType, FleetMeta>;
468
- }
466
+ export type GearAttr =
467
+ | "Unknown"
468
+ | "HighAngleMount"
469
+ | "NightFighter"
470
+ | "NightAttacker"
471
+ | "HeavyBomber"
472
+ | "NightRecon"
473
+ | "MainGun"
474
+ | "Radar"
475
+ | "SurfaceRadar"
476
+ | "AirRadar"
477
+ | "DepthChargeProjector"
478
+ | "SynergisticDepthCharge"
479
+ | "AntiSubMortar"
480
+ | "AntiSubWeapon"
481
+ | "ApDepthCharge"
482
+ | "AntiSubAircraft"
483
+ | "LateModelBowTorpedo"
484
+ | "Seaplane"
485
+ | "CbAircraft"
486
+ | "LbAircraft"
487
+ | "JetAircraft"
488
+ | "Fighter"
489
+ | "Recon"
490
+ | "ObservationSeaplane"
491
+ | "CbFighterBomber"
492
+ | "AntiInstDiveBomber"
493
+ | "CbSwordfish"
494
+ | "SemiNightPlane"
495
+ | "HighAltitudeInterceptor";
469
496
 
470
497
  export interface MoveShipPayload {
471
498
  current: [string, string, ShipKey];
@@ -512,57 +539,6 @@ export interface EBonuses {
512
539
  range: number;
513
540
  }
514
541
 
515
- export interface MasterIBonuses {
516
- shelling_power: MasterIBonusRule[];
517
- shelling_accuracy: MasterIBonusRule[];
518
- shelling_aerial_power: MasterIBonusRule[];
519
- torpedo_power: MasterIBonusRule[];
520
- torpedo_accuracy: MasterIBonusRule[];
521
- torpedo_evasion: MasterIBonusRule[];
522
- asw_power: MasterIBonusRule[];
523
- asw_accuracy: MasterIBonusRule[];
524
- night_power: MasterIBonusRule[];
525
- night_aerial_power: MasterIBonusRule[];
526
- night_accuracy: MasterIBonusRule[];
527
- defense_power: MasterIBonusRule[];
528
- contact_selection: MasterIBonusRule[];
529
- fighter_power: MasterIBonusRule[];
530
- ship_anti_air: MasterIBonusRule[];
531
- fleet_anti_air: MasterIBonusRule[];
532
- elos: MasterIBonusRule[];
533
- }
534
-
535
- export interface MasterIBonusRule {
536
- expr: CompiledEvaler;
537
- formula: CompiledEvaler;
538
- }
539
-
540
- export interface MasterGear {
541
- gear_id: number;
542
- name: string;
543
- types: GearTypeIdArray;
544
- special_type?: number;
545
- max_hp?: number;
546
- firepower?: number;
547
- armor?: number;
548
- torpedo?: number;
549
- anti_air?: number;
550
- speed?: number;
551
- bombing?: number;
552
- asw?: number;
553
- los?: number;
554
- luck?: number;
555
- accuracy?: number;
556
- evasion?: number;
557
- range?: number;
558
- radius?: number;
559
- cost?: number;
560
- improvable?: boolean;
561
- ship_anti_air_resist?: number;
562
- fleet_anti_air_resist?: number;
563
- historical_aircraft_group?: number;
564
- }
565
-
566
542
  export interface NodeAttackAnalyzerShipConfig extends NightFleetConditions {
567
543
  formation?: Formation;
568
544
  }
@@ -582,168 +558,64 @@ export interface NodeAttackAnalysis {
582
558
  night_fleet_cutin: FleetCutinReport<NightAttackStyle>[];
583
559
  }
584
560
 
585
- export interface CompAnalyzerConfig {
586
- engagement: Engagement;
587
- formation: Formation;
588
- anti_air_cutin: number | null;
589
- ship_anti_air_resist: number;
590
- fleet_anti_air_resist: number;
591
- left_night_fleet_conditions: NightFleetConditions;
592
- right_night_fleet_conditions: NightFleetConditions;
593
- }
594
-
595
- export interface CompNightAnalysis {
596
- night_cutin: CompNightCutinAnalysis;
597
- fleet_cutin: FleetCutinReport<NightAttackStyle>[];
561
+ export interface NightContactChance {
562
+ rank1: number;
563
+ rank2: number;
564
+ rank3: number;
598
565
  }
599
566
 
600
- export interface CompDayAnalysis {
601
- day_cutin: CompDayCutinAnalysis;
602
- fleet_cutin: FleetCutinReport<ShellingStyle>[];
567
+ export interface CompNightCutinAnalysis {
568
+ night_contact_chance: NightContactChance;
569
+ ships: ShipNightCutinAnalysis[];
603
570
  }
604
571
 
605
- export interface CompAnalysis {
606
- day: CompDayAnalysis;
607
- night: CompNightAnalysis;
608
- contact: ContactAnalysis;
609
- anti_air: CompAntiAirAnalysis;
572
+ export interface ShipNightCutinAnalysis {
573
+ ship_id: number;
574
+ index: number;
575
+ normal: NightCutinActionReport;
576
+ chuuha: NightCutinActionReport;
610
577
  }
611
578
 
612
- export interface AttackAnalyzerShipConfig
613
- extends ShipConditions,
614
- NightFleetConditions {
615
- balloons?: number;
616
- fleet_los_mod?: number | null;
579
+ export interface NightCutinActionReport
580
+ extends ActionReport<NightPhaseAttackStyle> {
581
+ cutin_term: number | null;
617
582
  }
618
583
 
619
- export interface AttackPowerModifier {
620
- a?: number;
621
- b?: number;
584
+ export interface AttackAnalysis {
585
+ attacker_is_player: boolean;
586
+ attacker_ship_id: number;
587
+ target_ship_id: number;
588
+ historical_params: HistoricalParams;
589
+ day: ActionReport<DayPhaseAttackStyle>;
590
+ night: ActionReport<NightPhaseAttackStyle>;
591
+ closing_torpedo: ActionReport<TorpedoAttackStyle>;
592
+ opening_asw: ActionReport<AswAttackStyle>;
593
+ support_shelling: ActionReport<SupportShellingStyle>;
622
594
  }
623
595
 
624
- export interface SpecialEnemyModifiers {
625
- precap_general_mod: AttackPowerModifier;
626
- stype_mod: AttackPowerModifier;
627
- landing_craft_synergy_mod: AttackPowerModifier;
628
- toku_daihatsu_tank_mod: AttackPowerModifier;
629
- m4a1dd_mod: AttackPowerModifier;
630
- honi_mod: AttackPowerModifier;
631
- toku_daihatsu_chiha_mod: AttackPowerModifier;
632
- toku_daihatsu_chiha_kai_mod: AttackPowerModifier;
633
- t4_tank_group_mod: AttackPowerModifier;
634
- t4_tank_kai_mod: AttackPowerModifier;
635
- postcap_general_mod: AttackPowerModifier;
636
- pt_mod: AttackPowerModifier | null;
637
- }
596
+ export type ContactRank = "Rank1" | "Rank2" | "Rank3";
638
597
 
639
- export interface CustomPowerModifiers {
640
- precap_mod?: AttackPowerModifier;
641
- postcap_mod?: AttackPowerModifier;
642
- basic_power_mod?: AttackPowerModifier;
643
- historical_mod?: AttackPowerModifier;
644
- }
598
+ export type MoraleState = "Sparkle" | "Normal" | "Orange" | "Red";
645
599
 
646
- export interface GearState {
600
+ export interface OrgState {
647
601
  id?: string;
648
- gear_id: number;
649
- exp?: number;
650
- stars?: number;
651
- }
652
-
653
- export interface GearVecState {
654
- g1?: GearState;
655
- g2?: GearState;
656
- g3?: GearState;
657
- g4?: GearState;
658
- g5?: GearState;
659
- gx?: GearState;
660
- }
661
-
662
- export interface ShipConditions extends ShipPosition {
663
- formation?: Formation;
664
- amagiri_index?: number | null;
665
- }
666
-
667
- export interface MasterData extends MasterBattleDefinitions {
668
- created_at: number;
669
- gears: MasterGear[];
670
- gear_attrs: MasterAttrRule<GearAttr>[];
671
- ships: MasterShip[];
672
- ship_attrs: MasterAttrRule<ShipAttr>[];
673
- ibonuses: MasterIBonuses;
674
- equippability: MasterEquippability;
675
- }
676
-
677
- export interface NationalityDef {
678
- id: number;
679
- ctypes: number[];
680
- }
681
-
682
- export interface MasterAttrRule<T> {
683
- tag: T;
684
- name: string;
685
- expr: CompiledEvaler;
686
- }
687
-
688
- export interface ShipAnalyzerConfig {
689
- air_state?: AirState;
690
- engagement?: Engagement;
691
- left?: AttackAnalyzerShipConfig;
692
- right?: AttackAnalyzerShipConfig;
693
- }
694
-
695
- export interface BattleConditions {
696
- org_type: OrgType;
697
- role: Role;
698
- ship_index: number;
699
- fleet_len: number;
700
- formation: Formation;
701
- fleet_los_mod: number | null;
702
- night_conditions: NightFleetConditions;
703
- }
704
-
705
- export interface NightConditions {
706
- player?: NightFleetConditions;
707
- enemy?: NightFleetConditions;
602
+ f1?: FleetState;
603
+ f2?: FleetState;
604
+ f3?: FleetState;
605
+ f4?: FleetState;
606
+ a1?: AirSquadronState;
607
+ a2?: AirSquadronState;
608
+ a3?: AirSquadronState;
609
+ hq_level?: number;
610
+ org_type?: OrgType;
611
+ sortie?: FleetKey;
612
+ route_sup?: FleetKey;
613
+ boss_sup?: FleetKey;
708
614
  }
709
615
 
710
- export interface NightFleetConditions {
711
- night_contact_rank?: ContactRank | null;
712
- starshell_index?: number | null;
713
- searchlight_index?: number | null;
714
- activates_large_searchlight?: boolean;
715
- }
616
+ export type FleetKey = "f1" | "f2" | "f3" | "f4";
716
617
 
717
- export type GearAttr =
718
- | "Unknown"
719
- | "HighAngleMount"
720
- | "NightFighter"
721
- | "NightAttacker"
722
- | "HeavyBomber"
723
- | "NightRecon"
724
- | "MainGun"
725
- | "Radar"
726
- | "SurfaceRadar"
727
- | "AirRadar"
728
- | "DepthChargeProjector"
729
- | "SynergisticDepthCharge"
730
- | "AntiSubMortar"
731
- | "AntiSubWeapon"
732
- | "ApDepthCharge"
733
- | "AntiSubAircraft"
734
- | "LateModelBowTorpedo"
735
- | "Seaplane"
736
- | "CbAircraft"
737
- | "LbAircraft"
738
- | "JetAircraft"
739
- | "Fighter"
740
- | "Recon"
741
- | "ObservationSeaplane"
742
- | "CbFighterBomber"
743
- | "AntiInstDiveBomber"
744
- | "CbSwordfish"
745
- | "SemiNightPlane"
746
- | "HighAltitudeInterceptor";
618
+ export type Role = "Main" | "Escort";
747
619
 
748
620
  export type ShipAttr =
749
621
  | "Unknown"
@@ -766,7 +638,100 @@ export type ShipAttr =
766
638
  | "DockPrincess"
767
639
  | "SummerAircraftCarrierDemon";
768
640
 
769
- export type FhResult<T> = { Ok: T } | { Err: string };
641
+ export interface ShipConditions extends ShipPosition {
642
+ formation?: Formation;
643
+ amagiri_index?: number | null;
644
+ }
645
+
646
+ export type ShipCategory =
647
+ | "Battleship"
648
+ | "AircraftCarrier"
649
+ | "HeavyCruiser"
650
+ | "LightCruiser"
651
+ | "Destroyer"
652
+ | "CoastalDefenseShip"
653
+ | "Submarine"
654
+ | "AuxiliaryShip";
655
+
656
+ export type ShipType =
657
+ | "Unknown"
658
+ | "DE"
659
+ | "DD"
660
+ | "CL"
661
+ | "CLT"
662
+ | "CA"
663
+ | "CAV"
664
+ | "CVL"
665
+ | "FBB"
666
+ | "BB"
667
+ | "BBV"
668
+ | "CV"
669
+ | "XBB"
670
+ | "SS"
671
+ | "SSV"
672
+ | "AP"
673
+ | "AV"
674
+ | "LHA"
675
+ | "CVB"
676
+ | "AR"
677
+ | "AS"
678
+ | "CT"
679
+ | "AO";
680
+
681
+ export type Side = "Player" | "Enemy";
682
+
683
+ export type Align = "Left" | "Right";
684
+
685
+ export type SpecialEnemyType =
686
+ | "None"
687
+ | "SoftSkinned"
688
+ | "Pillbox"
689
+ | "IsolatedIsland"
690
+ | "SupplyDepot"
691
+ | "NewSupplyDepot"
692
+ | "HarbourSummerPrincess"
693
+ | "PtImp"
694
+ | "BattleshipSummerPrincess"
695
+ | "HeavyCruiserSummerPrincess"
696
+ | "FrenchBattleshipPrincess"
697
+ | "AnchorageWaterDemonVacationMode"
698
+ | "DockPrincess"
699
+ | "SummerAircraftCarrierDemon";
700
+
701
+ export type Histogram<K extends keyof any, V> = Partial<Record<K, V>>;
702
+
703
+ export interface SimulatorResult {
704
+ items: SimulatorResultItem[];
705
+ sunk_vec: [number, number, number][];
706
+ }
707
+
708
+ export interface SimulatorResultItem {
709
+ id: string;
710
+ fleet_type: FleetType;
711
+ index: number;
712
+ damage_state_map: Record<DamageState, number>;
713
+ }
714
+
715
+ export interface MasterBattleDefinitions {
716
+ formation: NestedFormationDef[];
717
+ anti_air_cutin: AntiAirCutinDef[];
718
+ day_cutin: DayCutinDef[];
719
+ night_cutin: NightCutinDef[];
720
+ historical_bonuses?: HistoricalBonusDef[];
721
+ }
722
+
723
+ export interface DamageReport {
724
+ miss_damage_min: number;
725
+ miss_damage_max: number;
726
+ normal_damage_min: number;
727
+ normal_damage_max: number;
728
+ critical_damage_min: number;
729
+ critical_damage_max: number;
730
+ normal_scratch_rate: number;
731
+ critical_scratch_rate: number;
732
+ damage_density: Histogram<number, number>;
733
+ damage_state_density: Histogram<DamageState, number>;
734
+ }
770
735
 
771
736
  export interface ContactAnalysis {
772
737
  single: DayContactChance[] | null;
@@ -782,95 +747,72 @@ export interface DayContactChance {
782
747
  total: number;
783
748
  }
784
749
 
785
- export type AirSquadronMode = "Sortie" | "AirDefense";
786
-
787
- export interface AirSquadronState extends GearVecState, SlotSizeVecState {
788
- id?: string;
789
- mode?: AirSquadronMode;
790
- }
791
-
792
- export interface ShellingStyle {
793
- tag: "ShellingStyle";
794
- attack_type: ShellingType;
795
- cutin: DayCutinLike | null;
796
- power_mod: number;
797
- accuracy_mod: number;
798
- hits: number;
799
- }
800
-
801
- export interface NightAttackStyle {
802
- tag: "NightAttackStyle";
803
- attack_type: NightAttackType;
804
- cutin: NightCutinLike | null;
805
- power_mod: number;
806
- accuracy_mod: number;
807
- hits: number;
750
+ export interface AttackPowerModifier {
751
+ a?: number;
752
+ b?: number;
808
753
  }
809
754
 
810
- export interface AswAttackStyle {
811
- tag: "AswAttackStyle";
812
- attack_type: AswAttackType;
755
+ export interface SpecialEnemyModifiers {
756
+ precap_general_mod: AttackPowerModifier;
757
+ stype_mod: AttackPowerModifier;
758
+ landing_craft_synergy_mod: AttackPowerModifier;
759
+ toku_daihatsu_tank_mod: AttackPowerModifier;
760
+ m4a1dd_mod: AttackPowerModifier;
761
+ honi_mod: AttackPowerModifier;
762
+ toku_daihatsu_chiha_mod: AttackPowerModifier;
763
+ toku_daihatsu_chiha_kai_mod: AttackPowerModifier;
764
+ t4_tank_group_mod: AttackPowerModifier;
765
+ t4_tank_kai_mod: AttackPowerModifier;
766
+ postcap_general_mod: AttackPowerModifier;
767
+ pt_mod: AttackPowerModifier | null;
813
768
  }
814
769
 
815
- export interface TorpedoAttackStyle {
816
- tag: "TorpedoAttackStyle";
817
- attack_type: TorpedoAttackType;
770
+ export interface CustomPowerModifiers {
771
+ precap_mod?: AttackPowerModifier;
772
+ postcap_mod?: AttackPowerModifier;
773
+ basic_power_mod?: AttackPowerModifier;
774
+ historical_mod?: AttackPowerModifier;
818
775
  }
819
776
 
820
- export type DayPhaseAttackStyle = ShellingStyle | AswAttackStyle;
821
-
822
- export type NightPhaseAttackStyle = NightAttackStyle | AswAttackStyle;
823
-
824
- export interface SupportShellingStyle {
825
- tag: "SupportShellingStyle";
826
- attack_type: SupportShellingType;
777
+ export interface ShipMeta {
778
+ id: string;
779
+ ship_id: number;
827
780
  }
828
781
 
829
- export interface SlotSizeVecState {
830
- ss1?: number;
831
- ss2?: number;
832
- ss3?: number;
833
- ss4?: number;
834
- ss5?: number;
782
+ export interface FleetMeta {
783
+ id: string;
784
+ len: number;
785
+ ships: [string, ShipMeta | null][];
835
786
  }
836
787
 
837
- export interface ShipState extends GearVecState, SlotSizeVecState {
838
- id?: string;
839
- ship_id: number;
840
- level?: number;
841
- current_hp?: number;
842
- morale?: number;
843
- ammo?: number;
844
- fuel?: number;
845
- max_hp_mod?: number;
846
- firepower_mod?: number;
847
- torpedo_mod?: number;
848
- armor_mod?: number;
849
- anti_air_mod?: number;
850
- evasion_mod?: number;
851
- asw_mod?: number;
852
- los_mod?: number;
853
- luck_mod?: number;
854
- day_gunfit_accuracy?: number;
855
- night_gunfit_accuracy?: number;
856
- custom_power_mods?: CustomPowerModifiers;
788
+ export interface CompMeta {
789
+ fleets: Record<FleetType, FleetMeta>;
857
790
  }
858
791
 
859
- export type ShipKey = "s1" | "s2" | "s3" | "s4" | "s5" | "s6" | "s7";
860
-
861
- export type SlotSizeVec = (number | null)[];
862
-
863
- export type Histogram<K extends keyof any, V> = Partial<Record<K, V>>;
864
-
865
- export interface MasterBattleDefinitions {
866
- formation: NestedFormationDef[];
867
- anti_air_cutin: AntiAirCutinDef[];
868
- day_cutin: DayCutinDef[];
869
- night_cutin: NightCutinDef[];
870
- historical_bonuses?: HistoricalBonusDef[];
792
+ export interface MasterIBonuses {
793
+ shelling_power: MasterIBonusRule[];
794
+ shelling_accuracy: MasterIBonusRule[];
795
+ shelling_aerial_power: MasterIBonusRule[];
796
+ torpedo_power: MasterIBonusRule[];
797
+ torpedo_accuracy: MasterIBonusRule[];
798
+ torpedo_evasion: MasterIBonusRule[];
799
+ asw_power: MasterIBonusRule[];
800
+ asw_accuracy: MasterIBonusRule[];
801
+ night_power: MasterIBonusRule[];
802
+ night_aerial_power: MasterIBonusRule[];
803
+ night_accuracy: MasterIBonusRule[];
804
+ defense_power: MasterIBonusRule[];
805
+ contact_selection: MasterIBonusRule[];
806
+ fighter_power: MasterIBonusRule[];
807
+ ship_anti_air: MasterIBonusRule[];
808
+ fleet_anti_air: MasterIBonusRule[];
809
+ elos: MasterIBonusRule[];
871
810
  }
872
811
 
873
- export type CompiledEvaler = string;
812
+ export interface MasterIBonusRule {
813
+ expr: CompiledEvaler;
814
+ formula: CompiledEvaler;
815
+ }
874
816
 
875
817
  export interface EquippabilityRule {
876
818
  ship: CompiledEvaler;
@@ -903,6 +845,53 @@ export interface EquipStype {
903
845
  equip_type: number[];
904
846
  }
905
847
 
848
+ export interface CompDayCutinAnalysis {
849
+ rank3_air_state: AirState;
850
+ rank2_air_state: AirState;
851
+ main_fleet_los_mod: number | null;
852
+ escort_fleet_los_mod: number | null;
853
+ ships: ShipDayCutinAnalysis[];
854
+ }
855
+
856
+ export interface ShipDayCutinAnalysis {
857
+ ship_id: number;
858
+ role: Role;
859
+ index: number;
860
+ rank3: DayCutinReport;
861
+ rank2: DayCutinReport;
862
+ }
863
+
864
+ export interface DayCutinReport extends ActionReport<DayPhaseAttackStyle> {
865
+ observation_term: number | null;
866
+ }
867
+
868
+ export interface CompAnalyzerConfig {
869
+ engagement: Engagement;
870
+ formation: Formation;
871
+ anti_air_cutin: number | null;
872
+ ship_anti_air_resist: number;
873
+ fleet_anti_air_resist: number;
874
+ left_night_fleet_conditions: NightFleetConditions;
875
+ right_night_fleet_conditions: NightFleetConditions;
876
+ }
877
+
878
+ export interface CompNightAnalysis {
879
+ night_cutin: CompNightCutinAnalysis;
880
+ fleet_cutin: FleetCutinReport<NightAttackStyle>[];
881
+ }
882
+
883
+ export interface CompDayAnalysis {
884
+ day_cutin: CompDayCutinAnalysis;
885
+ fleet_cutin: FleetCutinReport<ShellingStyle>[];
886
+ }
887
+
888
+ export interface CompAnalysis {
889
+ day: CompDayAnalysis;
890
+ night: CompNightAnalysis;
891
+ contact: ContactAnalysis;
892
+ anti_air: CompAntiAirAnalysis;
893
+ }
894
+
906
895
  export interface CompAntiAirAnalysis {
907
896
  fleet_adjusted_anti_air: number;
908
897
  ships: AntiAirReport[];
@@ -921,14 +910,42 @@ export interface AntiAirReport {
921
910
  anti_air_propellant_barrage_chance: number | null;
922
911
  }
923
912
 
924
- export type AirState =
925
- | "AirSupremacy"
926
- | "AirSuperiority"
927
- | "AirParity"
928
- | "AirDenial"
929
- | "AirIncapability";
913
+ export interface ShellingStyle {
914
+ tag: "ShellingStyle";
915
+ attack_type: ShellingType;
916
+ cutin: DayCutinLike | null;
917
+ power_mod: number;
918
+ accuracy_mod: number;
919
+ hits: number;
920
+ }
930
921
 
931
- export type AirStateRank = "Rank0" | "Rank1" | "Rank2" | "Rank3";
922
+ export interface NightAttackStyle {
923
+ tag: "NightAttackStyle";
924
+ attack_type: NightAttackType;
925
+ cutin: NightCutinLike | null;
926
+ power_mod: number;
927
+ accuracy_mod: number;
928
+ hits: number;
929
+ }
930
+
931
+ export interface AswAttackStyle {
932
+ tag: "AswAttackStyle";
933
+ attack_type: AswAttackType;
934
+ }
935
+
936
+ export interface TorpedoAttackStyle {
937
+ tag: "TorpedoAttackStyle";
938
+ attack_type: TorpedoAttackType;
939
+ }
940
+
941
+ export type DayPhaseAttackStyle = ShellingStyle | AswAttackStyle;
942
+
943
+ export type NightPhaseAttackStyle = NightAttackStyle | AswAttackStyle;
944
+
945
+ export interface SupportShellingStyle {
946
+ tag: "SupportShellingStyle";
947
+ attack_type: SupportShellingType;
948
+ }
932
949
 
933
950
  export interface FormationCombatModifiersDef {
934
951
  power_mod?: number;
@@ -1003,115 +1020,51 @@ export interface BattleDefinitions {
1003
1020
  historical_bonuses: HistoricalBonusDef[];
1004
1021
  }
1005
1022
 
1006
- export type Engagement = "GreenT" | "Parallel" | "HeadOn" | "RedT";
1007
-
1008
- export type SingleFormation =
1009
- | "LineAhead"
1010
- | "DoubleLine"
1011
- | "Diamond"
1012
- | "Echelon"
1013
- | "LineAbreast"
1014
- | "Vanguard";
1015
-
1016
- export type CombinedFormation =
1017
- | "Cruising1"
1018
- | "Cruising2"
1019
- | "Cruising3"
1020
- | "Cruising4";
1023
+ export type SpeedGroup = "A" | "B1" | "B2" | "C";
1021
1024
 
1022
- export type Formation = SingleFormation | CombinedFormation;
1025
+ export type GearTypeIdArray = [number, number, number, number, number];
1023
1026
 
1024
- export interface OrgState {
1025
- id?: string;
1026
- f1?: FleetState;
1027
- f2?: FleetState;
1028
- f3?: FleetState;
1029
- f4?: FleetState;
1030
- a1?: AirSquadronState;
1031
- a2?: AirSquadronState;
1032
- a3?: AirSquadronState;
1033
- hq_level?: number;
1034
- org_type?: OrgType;
1035
- sortie?: FleetKey;
1036
- route_sup?: FleetKey;
1037
- boss_sup?: FleetKey;
1027
+ export interface SupportShellingSimulatorParams {
1028
+ attacker_formation?: Formation;
1029
+ target_formation?: Formation;
1030
+ engagement: Engagement;
1031
+ node_state: NodeState;
1038
1032
  }
1039
1033
 
1040
- export type FleetKey = "f1" | "f2" | "f3" | "f4";
1041
-
1042
- export type Side = "Player" | "Enemy";
1043
-
1044
- export type Align = "Left" | "Right";
1034
+ export type FhResult<T> = { Ok: T } | { Err: string };
1045
1035
 
1046
- export type SpeedGroup = "A" | "B1" | "B2" | "C";
1036
+ export interface ShipAnalyzerConfig {
1037
+ air_state?: AirState;
1038
+ engagement?: Engagement;
1039
+ left?: AttackAnalyzerShipConfig;
1040
+ right?: AttackAnalyzerShipConfig;
1041
+ }
1047
1042
 
1048
- /**
1049
- */
1050
1043
  export class AirSquadron {
1044
+ private constructor();
1051
1045
  free(): void;
1052
- /**
1053
- * @param {string} key
1054
- * @returns {Gear | undefined}
1055
- */
1056
1046
  get_gear(key: string): Gear | undefined;
1057
- /**
1058
- * @param {number} index
1059
- * @returns {number}
1060
- */
1061
1047
  get_slot_size(index: number): number;
1062
- /**
1063
- * @param {number} index
1064
- * @returns {number}
1065
- */
1066
1048
  get_max_slot_size(index: number): number;
1067
- /**
1068
- * @returns {number}
1069
- */
1070
1049
  fighter_power(): number;
1071
- /**
1072
- * @returns {number}
1073
- */
1074
1050
  interception_power(): number;
1075
1051
  /**
1076
1052
  * 行動半径
1077
- * @returns {number}
1078
1053
  */
1079
1054
  radius(): number;
1080
- /**
1081
- */
1082
- hash: bigint;
1083
- /**
1084
- */
1085
1055
  id: string;
1086
- /**
1087
- */
1056
+ hash: bigint;
1088
1057
  mode: AirSquadronMode;
1089
1058
  }
1090
- /**
1091
- */
1092
1059
  export class Analyzer {
1060
+ private constructor();
1093
1061
  free(): void;
1094
- /**
1095
- * @param {ShipAnalyzerConfig} config
1096
- * @param {Ship} left
1097
- * @param {Ship} right
1098
- * @param {boolean} attacker_is_left
1099
- * @returns {AttackAnalysis}
1100
- */
1101
1062
  analyze_ship_attack(
1102
1063
  config: ShipAnalyzerConfig,
1103
1064
  left: Ship,
1104
1065
  right: Ship,
1105
1066
  attacker_is_left: boolean,
1106
1067
  ): AttackAnalysis;
1107
- /**
1108
- * @param {NodeAttackAnalyzerConfig} config
1109
- * @param {Comp} left_comp
1110
- * @param {Ship} left_ship
1111
- * @param {Comp} right_comp
1112
- * @param {Ship} right_ship
1113
- * @returns {NodeAttackAnalysis}
1114
- */
1115
1068
  analyze_node_attack(
1116
1069
  config: NodeAttackAnalyzerConfig,
1117
1070
  left_comp: Comp,
@@ -1119,19 +1072,7 @@ export class Analyzer {
1119
1072
  right_comp: Comp,
1120
1073
  right_ship: Ship,
1121
1074
  ): NodeAttackAnalysis;
1122
- /**
1123
- * @param {Comp} comp
1124
- * @param {CompAnalyzerConfig} config
1125
- * @returns {CompAnalysis}
1126
- */
1127
1075
  analyze_comp(comp: Comp, config: CompAnalyzerConfig): CompAnalysis;
1128
- /**
1129
- * @param {Comp} player_comp
1130
- * @param {Comp} enemy_comp
1131
- * @param {NodeAttackAnalyzerConfig} config
1132
- * @param {number} times
1133
- * @returns {SimulatorResult}
1134
- */
1135
1076
  simulate_support_shelling(
1136
1077
  player_comp: Comp,
1137
1078
  enemy_comp: Comp,
@@ -1139,80 +1080,28 @@ export class Analyzer {
1139
1080
  times: number,
1140
1081
  ): SimulatorResult;
1141
1082
  }
1142
- /**
1143
- */
1144
1083
  export class Comp {
1084
+ private constructor();
1145
1085
  free(): void;
1146
- /**
1147
- * @returns {Side}
1148
- */
1149
1086
  side(): Side;
1150
- /**
1151
- * @returns {boolean}
1152
- */
1153
1087
  is_combined(): boolean;
1154
- /**
1155
- * @returns {boolean}
1156
- */
1157
1088
  is_player(): boolean;
1158
- /**
1159
- * @returns {boolean}
1160
- */
1161
1089
  is_enemy(): boolean;
1162
- /**
1163
- * @param {string} id
1164
- * @returns {boolean}
1165
- */
1166
1090
  has_ship_eid(id: string): boolean;
1167
- /**
1168
- * @returns {string | undefined}
1169
- */
1170
1091
  first_ship_id(): string | undefined;
1171
- /**
1172
- * @returns {boolean}
1173
- */
1174
1092
  has_route_sup(): boolean;
1175
- /**
1176
- * @returns {CompMeta}
1177
- */
1178
1093
  meta(): CompMeta;
1179
- /**
1180
- * @param {FleetType} ft
1181
- * @returns {string | undefined}
1182
- */
1183
1094
  get_fleet_id(ft: FleetType): string | undefined;
1184
- /**
1185
- * @param {FleetType} ft
1186
- * @param {ShipKey} key
1187
- * @returns {Ship | undefined}
1188
- */
1189
1095
  get_ship_with_clone(ft: FleetType, key: ShipKey): Ship | undefined;
1190
- /**
1191
- * @param {FleetType} ft
1192
- * @param {ShipKey} key
1193
- * @returns {string | undefined}
1194
- */
1195
1096
  get_ship_entity_id(ft: FleetType, key: ShipKey): string | undefined;
1196
- /**
1197
- * @param {string} id
1198
- * @returns {Ship | undefined}
1199
- */
1200
1097
  get_ship_by_eid_with_clone(id: string): Ship | undefined;
1201
- /**
1202
- * @returns {Formation}
1203
- */
1204
1098
  default_formation(): Formation;
1205
1099
  /**
1206
1100
  * 艦隊防空値
1207
- * @param {number} formation_mod
1208
- * @returns {number}
1209
1101
  */
1210
1102
  adjusted_anti_air(formation_mod: number): number;
1211
1103
  /**
1212
1104
  * 制空値
1213
- * @param {boolean} escort_participates
1214
- * @param {AirWaveType} air_type
1215
- * @returns {number | undefined}
1216
1105
  */
1217
1106
  fighter_power(
1218
1107
  escort_participates: boolean,
@@ -1220,937 +1109,301 @@ export class Comp {
1220
1109
  ): number | undefined;
1221
1110
  /**
1222
1111
  * マップ索敵
1223
- * @param {number} node_divaricated_factor
1224
- * @returns {number | undefined}
1225
1112
  */
1226
1113
  elos(node_divaricated_factor: number): number | undefined;
1227
1114
  /**
1228
1115
  * 輸送物資量(TP)
1229
- * @returns {number}
1230
1116
  */
1231
1117
  transport_point(): number;
1232
- /**
1233
- * @param {Ship} ship
1234
- * @param {Formation | undefined} [formation]
1235
- * @returns {ShipConditions}
1236
- */
1237
- get_ship_conditions(ship: Ship, formation?: Formation): ShipConditions;
1238
- /**
1239
- * @param {FleetType} fleet_type
1240
- * @returns {number | undefined}
1241
- */
1118
+ get_ship_conditions(ship: Ship, formation?: Formation | null): ShipConditions;
1242
1119
  fleet_los_mod(fleet_type: FleetType): number | undefined;
1243
- /**
1244
- * @returns {number}
1245
- */
1246
1120
  balloons(): number;
1247
- /**
1248
- */
1249
- boss_sup?: Fleet;
1250
- /**
1251
- */
1252
- escort?: Fleet;
1253
- /**
1254
- */
1121
+ readonly org_type: OrgType;
1255
1122
  readonly hq_level: number;
1256
- /**
1257
- */
1258
1123
  main: Fleet;
1259
- /**
1260
- */
1261
- readonly org_type: OrgType;
1262
- /**
1263
- */
1264
- route_sup?: Fleet;
1124
+ get escort(): Fleet | undefined;
1125
+ set escort(value: Fleet | null | undefined);
1126
+ get route_sup(): Fleet | undefined;
1127
+ set route_sup(value: Fleet | null | undefined);
1128
+ get boss_sup(): Fleet | undefined;
1129
+ set boss_sup(value: Fleet | null | undefined);
1265
1130
  }
1266
- /**
1267
- */
1268
1131
  export class FhCore {
1269
1132
  free(): void;
1270
- /**
1271
- * @param {MasterData} js_master
1272
- */
1273
1133
  constructor(js_master: MasterData);
1274
- /**
1275
- * @param {GearState | undefined} [input]
1276
- * @returns {Gear | undefined}
1277
- */
1278
- create_gear(input?: GearState): Gear | undefined;
1279
- /**
1280
- * @param {ShipState | undefined} [input]
1281
- * @returns {Ship | undefined}
1282
- */
1283
- create_ship(input?: ShipState): Ship | undefined;
1284
- /**
1285
- * @param {AirSquadronState | undefined} [input]
1286
- * @returns {AirSquadron}
1287
- */
1288
- create_air_squadron(input?: AirSquadronState): AirSquadron;
1289
- /**
1290
- * @param {FleetState | undefined} [input]
1291
- * @returns {Fleet}
1292
- */
1293
- create_fleet(input?: FleetState): Fleet;
1294
- /**
1295
- * @param {OrgState | undefined} [input]
1296
- * @returns {Org | undefined}
1297
- */
1298
- create_org(input?: OrgState): Org | undefined;
1299
- /**
1300
- * @param {number} ship_id
1301
- * @returns {ShipState | undefined}
1302
- */
1134
+ create_gear(input?: GearState | null): Gear | undefined;
1135
+ create_ship(input?: ShipState | null): Ship | undefined;
1136
+ create_air_squadron(input?: AirSquadronState | null): AirSquadron;
1137
+ create_fleet(input?: FleetState | null): Fleet;
1138
+ create_org(input?: OrgState | null): Org | undefined;
1303
1139
  create_ship_state_by_id(ship_id: number): ShipState | undefined;
1304
- /**
1305
- * @param {number} ship_id
1306
- * @returns {Ship | undefined}
1307
- */
1308
1140
  create_ship_by_id(ship_id: number): Ship | undefined;
1309
- /**
1310
- * @returns {Ship[]}
1311
- */
1312
1141
  create_all_ships(): Ship[];
1313
- /**
1314
- * @param {Uint16Array} main
1315
- * @param {Uint16Array | undefined} [escort]
1316
- * @returns {Comp}
1317
- */
1318
- create_comp_by_map_enemy(main: Uint16Array, escort?: Uint16Array): Comp;
1319
- /**
1320
- * @returns {Ship}
1321
- */
1142
+ create_comp_by_map_enemy(
1143
+ main: Uint16Array,
1144
+ escort?: Uint16Array | null,
1145
+ ): Comp;
1322
1146
  create_default_ship(): Ship;
1323
- /**
1324
- * @returns {Analyzer}
1325
- */
1326
1147
  create_analyzer(): Analyzer;
1327
1148
  }
1328
- /**
1329
- */
1330
1149
  export class Fleet {
1150
+ private constructor();
1331
1151
  free(): void;
1332
- /**
1333
- * @returns {FleetMeta}
1334
- */
1335
1152
  meta(): FleetMeta;
1336
- /**
1337
- * @returns {(string)[]}
1338
- */
1339
1153
  ship_keys(): string[];
1340
- /**
1341
- * @returns {(string)[]}
1342
- */
1343
1154
  ship_ids(): string[];
1344
- /**
1345
- * @returns {(string)[]}
1346
- */
1347
1155
  get_gear_ids_by_improvable(): string[];
1348
- /**
1349
- * @returns {(string)[]}
1350
- */
1351
1156
  get_gear_ids_by_proficiency(): string[];
1352
- /**
1353
- * @param {string} id
1354
- * @param {DamageState} state
1355
- * @returns {number | undefined}
1356
- */
1357
1157
  get_damage_bound(id: string, state: DamageState): number | undefined;
1358
- /**
1359
- * @param {string} id
1360
- * @param {number} rate
1361
- * @param {boolean} ceil
1362
- * @returns {number | undefined}
1363
- */
1364
1158
  get_remaining_fuel(
1365
1159
  id: string,
1366
1160
  rate: number,
1367
1161
  ceil: boolean,
1368
1162
  ): number | undefined;
1369
- /**
1370
- * @param {string} id
1371
- * @param {number} rate
1372
- * @param {boolean} ceil
1373
- * @returns {number | undefined}
1374
- */
1375
1163
  get_remaining_ammo(
1376
1164
  id: string,
1377
1165
  rate: number,
1378
1166
  ceil: boolean,
1379
1167
  ): number | undefined;
1380
- /**
1381
- * @returns {number}
1382
- */
1383
1168
  count_ships(): number;
1384
- /**
1385
- * @param {ShipKey} key
1386
- * @returns {Ship | undefined}
1387
- */
1388
1169
  get_ship(key: ShipKey): Ship | undefined;
1389
- /**
1390
- * @param {AirWaveType} air_type
1391
- * @returns {number | undefined}
1392
- */
1393
1170
  fighter_power(air_type: AirWaveType): number | undefined;
1394
1171
  /**
1395
1172
  * マップ索敵
1396
- * @param {number} hq_level
1397
- * @param {number} node_divaricated_factor
1398
- * @returns {number | undefined}
1399
1173
  */
1400
1174
  elos(hq_level: number, node_divaricated_factor: number): number | undefined;
1401
1175
  /**
1402
1176
  * 航空索敵スコア
1403
- * @returns {number | undefined}
1404
1177
  */
1405
1178
  aviation_detection_score(): number | undefined;
1406
1179
  /**
1407
1180
  * 遠征ボーナス
1408
- * @returns {number}
1409
1181
  */
1410
1182
  expedition_bonus(): number;
1411
- /**
1412
- * @param {string} key
1413
- * @returns {number | undefined}
1414
- */
1415
1183
  sum_ship_stat_by(key: string): number | undefined;
1416
- /**
1417
- */
1418
1184
  reset_battle_state(): void;
1419
- /**
1420
- */
1421
- readonly fleet_los_mod: number | undefined;
1422
- /**
1423
- */
1424
- readonly hash: bigint;
1425
- /**
1426
- */
1427
1185
  id: string;
1428
- /**
1429
- */
1186
+ readonly hash: bigint;
1430
1187
  readonly len: number;
1188
+ readonly fleet_los_mod: number | undefined;
1431
1189
  }
1432
- /**
1433
- */
1434
1190
  export class Gear {
1191
+ private constructor();
1435
1192
  free(): void;
1436
- /**
1437
- * @returns {Gear}
1438
- */
1439
1193
  static default(): Gear;
1440
- /**
1441
- * @param {GearAttr} attr
1442
- * @returns {boolean}
1443
- */
1444
1194
  has_attr(attr: GearAttr): boolean;
1445
- /**
1446
- * @returns {GearCategory}
1447
- */
1448
1195
  category(): GearCategory;
1449
- /**
1450
- * @returns {boolean}
1451
- */
1452
1196
  is_high_angle_mount(): boolean;
1453
- /**
1454
- * @returns {boolean}
1455
- */
1456
1197
  is_carrier_shelling_plane(): boolean;
1457
- /**
1458
- * @returns {boolean}
1459
- */
1460
1198
  is_hayabusa_20th_squadron(): boolean;
1461
- /**
1462
- * @returns {boolean}
1463
- */
1464
1199
  has_proficiency(): boolean;
1465
- /**
1466
- * @returns {boolean}
1467
- */
1468
1200
  max_exp_eq_120(): boolean;
1469
- /**
1470
- * @param {number} slot_size
1471
- * @returns {number}
1472
- */
1473
1201
  calc_fighter_power(slot_size: number): number;
1474
- /**
1475
- * @param {number} slot_size
1476
- * @returns {number}
1477
- */
1478
1202
  calc_interception_power(slot_size: number): number;
1479
- /**
1480
- * @returns {number}
1481
- */
1482
1203
  fleet_anti_air_mod(): number;
1483
- /**
1484
- * @returns {number}
1485
- */
1486
1204
  ship_anti_air_mod(): number;
1487
- /**
1488
- * @param {number} slot_size
1489
- * @returns {number}
1490
- */
1491
1205
  calc_contact_trigger_factor(slot_size: number): number;
1492
- /**
1493
- * @param {AirStateRank} rank
1494
- * @returns {number}
1495
- */
1496
1206
  contact_selection_rate(rank: AirStateRank): number;
1497
- /**
1498
- * @param {number} level
1499
- * @returns {number}
1500
- */
1501
1207
  night_contact_rate(level: number): number;
1502
- /**
1503
- * @returns {boolean}
1504
- */
1505
1208
  is_night_attacker(): boolean;
1506
- /**
1507
- * @returns {boolean}
1508
- */
1509
1209
  is_night_fighter(): boolean;
1510
- /**
1511
- * @returns {boolean}
1512
- */
1513
1210
  is_night_plane(): boolean;
1514
- /**
1515
- * @param {number} slot_size
1516
- * @param {boolean} anti_inst
1517
- * @returns {number}
1518
- */
1519
1211
  night_plane_power(slot_size: number, anti_inst: boolean): number;
1520
- /**
1521
- * @returns {number}
1522
- */
1523
1212
  elos(): number;
1524
- /**
1525
- * @returns {boolean}
1526
- */
1527
1213
  is_abyssal(): boolean;
1528
- /**
1529
- * @returns {boolean}
1530
- */
1531
1214
  is_abyssal_cuttlefish_torpedo(): boolean;
1532
- /**
1533
- * @returns {boolean}
1534
- */
1535
1215
  is_abyssal_patrolling_attack_hawk(): boolean;
1536
- /**
1537
- * @returns {number}
1538
- */
1539
1216
  expedition_bonus(): number;
1540
- /**
1541
- * @returns {boolean}
1542
- */
1543
1217
  can_be_deployed_to_land_base(): boolean;
1544
- /**
1545
- * @returns {boolean}
1546
- */
1547
1218
  is_balloon(): boolean;
1548
- /**
1549
- */
1550
- readonly accuracy: number;
1551
- /**
1552
- */
1553
- readonly ace: number;
1554
- /**
1555
- */
1556
- readonly anti_air: number;
1557
- /**
1558
- */
1559
- readonly anti_bomber: number;
1560
- /**
1561
- */
1562
- readonly armor: number;
1563
- /**
1564
- */
1565
- readonly asw: number;
1566
- /**
1567
- */
1568
- readonly bombing: number;
1569
- /**
1570
- */
1571
- readonly cost: number;
1572
- /**
1573
- */
1574
- readonly default_exp: number;
1575
- /**
1576
- */
1577
- readonly evasion: number;
1578
- /**
1579
- */
1580
- readonly exp: number;
1581
- /**
1582
- */
1583
- readonly firepower: number;
1584
- /**
1585
- */
1586
- readonly fleet_anti_air_resist: number;
1587
- /**
1588
- */
1219
+ id: string;
1220
+ readonly hash: bigint;
1589
1221
  readonly gear_id: number;
1590
- /**
1591
- */
1222
+ readonly stars: number;
1223
+ readonly exp: number;
1224
+ readonly default_exp: number;
1225
+ name: string;
1226
+ types: Uint8Array;
1592
1227
  readonly gear_type: GearType;
1593
- /**
1594
- */
1595
- readonly gear_type_id: number;
1596
- /**
1597
- */
1598
- readonly hash: bigint;
1599
- /**
1600
- */
1601
- readonly icon_id: number;
1602
- /**
1603
- */
1604
- id: string;
1605
- /**
1606
- */
1607
- readonly improvable: boolean;
1608
- /**
1609
- */
1610
- readonly interception: number;
1611
- /**
1612
- */
1228
+ readonly max_hp: number;
1229
+ readonly firepower: number;
1230
+ readonly armor: number;
1231
+ readonly torpedo: number;
1232
+ readonly anti_air: number;
1233
+ readonly speed: number;
1234
+ readonly bombing: number;
1235
+ readonly asw: number;
1613
1236
  readonly los: number;
1614
- /**
1615
- */
1616
1237
  readonly luck: number;
1617
- /**
1618
- */
1619
- readonly max_hp: number;
1620
- /**
1621
- */
1622
- name: string;
1623
- /**
1624
- */
1625
- readonly radius: number;
1626
- /**
1627
- */
1238
+ readonly accuracy: number;
1239
+ readonly evasion: number;
1628
1240
  readonly range: number;
1629
- /**
1630
- */
1241
+ readonly radius: number;
1242
+ readonly cost: number;
1243
+ readonly improvable: boolean;
1631
1244
  readonly ship_anti_air_resist: number;
1632
- /**
1633
- */
1245
+ readonly fleet_anti_air_resist: number;
1246
+ readonly gear_type_id: number;
1634
1247
  readonly special_type: number;
1635
- /**
1636
- */
1637
- readonly speed: number;
1638
- /**
1639
- */
1640
- readonly stars: number;
1641
- /**
1642
- */
1643
- readonly torpedo: number;
1644
- /**
1645
- */
1646
- types: Uint8Array;
1248
+ readonly icon_id: number;
1249
+ readonly ace: number;
1250
+ readonly anti_bomber: number;
1251
+ readonly interception: number;
1647
1252
  }
1648
- /**
1649
- */
1650
1253
  export class Org {
1254
+ private constructor();
1651
1255
  free(): void;
1652
- /**
1653
- * @returns {string | undefined}
1654
- */
1655
1256
  first_ship_id(): string | undefined;
1656
- /**
1657
- * @param {FleetKey} fleet_key
1658
- * @param {ShipKey} ship_key
1659
- * @returns {number | undefined}
1660
- */
1661
1257
  get_ship_mid(fleet_key: FleetKey, ship_key: ShipKey): number | undefined;
1662
- /**
1663
- * @param {FleetKey} fleet_key
1664
- * @param {ShipKey} ship_key
1665
- * @returns {string | undefined}
1666
- */
1667
1258
  get_ship_eid(fleet_key: FleetKey, ship_key: ShipKey): string | undefined;
1668
- /**
1669
- * @param {FleetKey} key
1670
- * @returns {string}
1671
- */
1672
1259
  get_fleet_id(key: FleetKey): string;
1673
- /**
1674
- * @returns {(string)[]}
1675
- */
1676
1260
  air_squadron_ids(): string[];
1677
- /**
1678
- * @returns {Uint16Array}
1679
- */
1680
1261
  main_ship_ids(): Uint16Array;
1681
- /**
1682
- * @returns {Uint16Array}
1683
- */
1684
1262
  escort_ship_ids(): Uint16Array;
1685
- /**
1686
- * @param {FleetKey} key
1687
- * @returns {Fleet}
1688
- */
1689
1263
  clone_fleet(key: FleetKey): Fleet;
1690
- /**
1691
- * @param {FleetKey} fleet_key
1692
- * @param {ShipKey} ship_key
1693
- * @returns {Ship | undefined}
1694
- */
1695
1264
  clone_ship(fleet_key: FleetKey, ship_key: ShipKey): Ship | undefined;
1696
- /**
1697
- * @param {string} id
1698
- * @returns {Ship | undefined}
1699
- */
1700
1265
  get_ship_by_id(id: string): Ship | undefined;
1701
- /**
1702
- * @param {FleetKey} key
1703
- * @returns {(string)[]}
1704
- */
1705
1266
  ship_keys(key: FleetKey): string[];
1706
- /**
1707
- * @returns {Comp}
1708
- */
1709
1267
  create_comp(): Comp;
1710
- /**
1711
- * @param {FleetKey} key
1712
- * @returns {Comp}
1713
- */
1714
1268
  create_comp_by_key(key: FleetKey): Comp;
1715
- /**
1716
- * @param {string} key
1717
- * @returns {AirSquadron}
1718
- */
1719
1269
  get_air_squadron(key: string): AirSquadron;
1720
- /**
1721
- * @returns {(string)[]}
1722
- */
1723
1270
  get_air_squadron_gear_ids_by_improvable(): string[];
1724
- /**
1725
- * @returns {(string)[]}
1726
- */
1727
1271
  get_air_squadron_gear_ids_by_proficiency(): string[];
1728
- /**
1729
- * @returns {Side}
1730
- */
1731
1272
  side(): Side;
1732
- /**
1733
- * @returns {boolean}
1734
- */
1735
1273
  is_player(): boolean;
1736
- /**
1737
- * @returns {boolean}
1738
- */
1739
1274
  is_enemy(): boolean;
1740
- /**
1741
- * @returns {boolean}
1742
- */
1743
1275
  is_single(): boolean;
1744
- /**
1745
- * @returns {boolean}
1746
- */
1747
1276
  is_combined(): boolean;
1748
1277
  /**
1749
1278
  * 防空時の基地制空値
1750
- * @returns {number}
1751
1279
  */
1752
1280
  interception_power(): number;
1753
1281
  /**
1754
1282
  * 高高度迎撃時の基地制空値
1755
- * @returns {number}
1756
1283
  */
1757
1284
  high_altitude_interception_power(): number;
1758
- /**
1759
- * @param {string} id
1760
- * @param {number} x
1761
- * @param {number} y
1762
- * @returns {MoveShipPayload | undefined}
1763
- */
1764
1285
  create_move_ship_payload(
1765
1286
  id: string,
1766
1287
  x: number,
1767
1288
  y: number,
1768
1289
  ): MoveShipPayload | undefined;
1769
- /**
1770
- * @param {FleetKey} key
1771
- * @returns {FleetType | undefined}
1772
- */
1773
1290
  get_fleet_type(key: FleetKey): FleetType | undefined;
1774
- /**
1775
- */
1776
- readonly boss_sup: FleetKey | undefined;
1777
- /**
1778
- */
1779
- readonly hash: bigint;
1780
- /**
1781
- */
1782
- readonly hq_level: number;
1783
- /**
1784
- */
1785
1291
  id: string;
1786
- /**
1787
- */
1292
+ readonly hash: bigint;
1293
+ readonly hq_level: number;
1788
1294
  readonly org_type: OrgType;
1789
- /**
1790
- */
1791
- readonly route_sup: FleetKey | undefined;
1792
- /**
1793
- */
1794
1295
  readonly sortie: FleetKey;
1296
+ readonly route_sup: FleetKey | undefined;
1297
+ readonly boss_sup: FleetKey | undefined;
1795
1298
  }
1796
- /**
1797
- */
1798
1299
  export class Ship {
1300
+ private constructor();
1799
1301
  free(): void;
1302
+ state_day_gunfit_accuracy(): number | undefined;
1303
+ state_night_gunfit_accuracy(): number | undefined;
1800
1304
  /**
1801
- * @returns {Ship}
1305
+ * フィット砲補正
1802
1306
  */
1307
+ gunfit_accuracy(is_night: boolean): number;
1803
1308
  static default(): Ship;
1804
- /**
1805
- * @param {string} id
1806
- * @returns {boolean}
1807
- */
1808
1309
  eq_id(id: string): boolean;
1809
- /**
1810
- * @returns {ShipState}
1811
- */
1812
1310
  state(): ShipState;
1813
- /**
1814
- * @returns {CustomPowerModifiers}
1815
- */
1816
1311
  custom_power_mods(): CustomPowerModifiers;
1817
- /**
1818
- * @returns {ShipMeta}
1819
- */
1820
1312
  meta(): ShipMeta;
1821
- /**
1822
- * @returns {DamageState}
1823
- */
1824
1313
  damage_state(): DamageState;
1825
- /**
1826
- * @returns {MoraleState}
1827
- */
1828
1314
  morale_state(): MoraleState;
1829
- /**
1830
- * @returns {ShipCategory}
1831
- */
1832
1315
  category(): ShipCategory;
1833
- /**
1834
- * @param {ShipAttr} attr
1835
- * @returns {boolean}
1836
- */
1837
1316
  has_attr(attr: ShipAttr): boolean;
1838
- /**
1839
- * @returns {(string)[]}
1840
- */
1841
1317
  gear_keys(): string[];
1842
- /**
1843
- * @param {string} key
1844
- * @returns {Gear | undefined}
1845
- */
1846
1318
  get_gear(key: string): Gear | undefined;
1847
- /**
1848
- * @param {DamageState} state
1849
- * @returns {number | undefined}
1850
- */
1851
1319
  get_damage_bound(state: DamageState): number | undefined;
1852
- /**
1853
- * @param {number} rate
1854
- * @param {boolean} ceil
1855
- * @returns {number}
1856
- */
1857
1320
  get_remaining_fuel(rate: number, ceil: boolean): number;
1858
- /**
1859
- * @param {number} rate
1860
- * @param {boolean} ceil
1861
- * @returns {number}
1862
- */
1863
1321
  get_remaining_ammo(rate: number, ceil: boolean): number;
1864
- /**
1865
- * @param {string} key
1866
- * @returns {boolean}
1867
- */
1868
1322
  has_unknown_stat(key: string): boolean;
1869
- /**
1870
- * @param {string} key
1871
- * @returns {number | undefined}
1872
- */
1873
1323
  get_naked_stat(key: string): number | undefined;
1874
- /**
1875
- * @param {string} key
1876
- * @returns {number | undefined}
1877
- */
1878
1324
  get_stat_interval_left(key: string): number | undefined;
1879
- /**
1880
- * @param {string} key
1881
- * @returns {number | undefined}
1882
- */
1883
1325
  get_stat_interval_right(key: string): number | undefined;
1884
- /**
1885
- * @param {string} key
1886
- * @returns {number}
1887
- */
1888
1326
  get_gear_stat(key: string): number;
1889
- /**
1890
- * @param {string} key
1891
- * @returns {number}
1892
- */
1893
1327
  get_ebonus(key: string): number;
1894
- /**
1895
- * @param {string} key
1896
- * @returns {number | undefined}
1897
- */
1898
1328
  get_stat_mod(key: string): number | undefined;
1899
- /**
1900
- * @returns {boolean}
1901
- */
1902
1329
  is_abyssal(): boolean;
1903
- /**
1904
- * @returns {boolean}
1905
- */
1906
1330
  is_submarine(): boolean;
1907
- /**
1908
- * @returns {boolean}
1909
- */
1910
1331
  is_amagiri(): boolean;
1911
- /**
1912
- * @param {Gear} gear
1913
- * @param {string} key
1914
- * @returns {boolean}
1915
- */
1916
1332
  can_equip(gear: Gear, key: string): boolean;
1917
- /**
1918
- * @returns {boolean}
1919
- */
1920
1333
  is_installation(): boolean;
1921
- /**
1922
- * @returns {boolean}
1923
- */
1924
1334
  is_pt_imp(): boolean;
1925
- /**
1926
- * @returns {SpecialEnemyType}
1927
- */
1928
1335
  special_enemy_type(): SpecialEnemyType;
1929
- /**
1930
- * @returns {boolean}
1931
- */
1932
1336
  is_attackable_by_torpedo(): boolean;
1933
- /**
1934
- * @param {number} index
1935
- * @returns {number | undefined}
1936
- */
1937
1337
  get_slot_size(index: number): number | undefined;
1938
- /**
1939
- * @param {number} index
1940
- * @returns {number | undefined}
1941
- */
1942
1338
  get_max_slot_size(index: number): number | undefined;
1943
- /**
1944
- * @returns {number}
1945
- */
1946
1339
  remaining_ammo_mod(): number;
1947
- /**
1948
- * @returns {number}
1949
- */
1950
1340
  remaining_fuel_mod(): number;
1951
- /**
1952
- * @param {AirWaveType} air_type
1953
- * @returns {number | undefined}
1954
- */
1955
1341
  fighter_power(air_type: AirWaveType): number | undefined;
1956
- /**
1957
- * @returns {number | undefined}
1958
- */
1959
1342
  fleet_los_factor(): number | undefined;
1960
1343
  /**
1961
1344
  * 加重対空
1962
- * @param {Side} side
1963
- * @returns {number | undefined}
1964
1345
  */
1965
1346
  ship_adjusted_anti_air(side: Side): number | undefined;
1966
1347
  /**
1967
1348
  * 艦隊対空補正
1968
- * @returns {number}
1969
1349
  */
1970
1350
  fleet_anti_air_mod(): number;
1971
- /**
1972
- * @returns {number}
1973
- */
1974
1351
  cruiser_fit_bonus(): number;
1975
- /**
1976
- * @returns {number | undefined}
1977
- */
1978
1352
  basic_accuracy_term(): number | undefined;
1979
- /**
1980
- * @returns {number | undefined}
1981
- */
1982
1353
  basic_evasion_term(): number | undefined;
1983
- /**
1984
- * @param {number} formation_mod
1985
- * @param {number} postcap_additive
1986
- * @param {number} postcap_multiplicative
1987
- * @returns {number | undefined}
1988
- */
1989
1354
  evasion_term(
1990
1355
  formation_mod: number,
1991
1356
  postcap_additive: number,
1992
1357
  postcap_multiplicative: number,
1993
1358
  ): number | undefined;
1994
- /**
1995
- * @param {number} armor_penetration
1996
- * @returns {number | undefined}
1997
- */
1998
1359
  basic_defense_power(armor_penetration: number): number | undefined;
1999
- /**
2000
- * @returns {number}
2001
- */
2002
1360
  transport_point(): number;
2003
- /**
2004
- * @param {number} node_divaricated_factor
2005
- * @returns {number | undefined}
2006
- */
2007
1361
  elos(node_divaricated_factor: number): number | undefined;
2008
1362
  /**
2009
1363
  * 確殺攻撃力
2010
- * @returns {number | undefined}
2011
1364
  */
2012
1365
  ohko_power(): number | undefined;
2013
- /**
2014
- * @returns {number | undefined}
2015
- */
2016
- state_day_gunfit_accuracy(): number | undefined;
2017
- /**
2018
- * @returns {number | undefined}
2019
- */
2020
- state_night_gunfit_accuracy(): number | undefined;
2021
- /**
2022
- * フィット砲補正
2023
- * @param {boolean} is_night
2024
- * @returns {number}
2025
- */
2026
- gunfit_accuracy(is_night: boolean): number;
2027
- /**
2028
- */
2029
- readonly accuracy: number;
2030
- /**
2031
- */
2032
- readonly ammo: number;
2033
- /**
2034
- */
2035
- readonly anti_air: number | undefined;
2036
- /**
2037
- */
2038
- readonly armor: number | undefined;
2039
- /**
2040
- */
2041
- readonly asw: number | undefined;
2042
- /**
2043
- */
2044
- readonly ctype: number;
2045
- /**
2046
- */
2047
- readonly current_hp: number;
2048
- /**
2049
- */
2050
- readonly evasion: number | undefined;
2051
- /**
2052
- */
2053
- readonly firepower: number | undefined;
2054
- /**
2055
- */
2056
- readonly fuel: number;
2057
- /**
2058
- */
2059
- readonly hash: bigint;
2060
- /**
2061
- */
2062
1366
  id: string;
2063
- /**
2064
- */
2065
- readonly innate_torpedo_accuracy: number;
2066
- /**
2067
- */
1367
+ readonly hash: bigint;
1368
+ readonly ship_id: number;
2068
1369
  readonly level: number;
2069
- /**
2070
- */
2071
- readonly los: number | undefined;
2072
- /**
2073
- */
2074
- readonly luck: number | undefined;
2075
- /**
2076
- */
2077
- readonly max_ammo: number;
2078
- /**
2079
- */
2080
- readonly max_fuel: number;
2081
- /**
2082
- */
2083
- readonly max_hp: number | undefined;
2084
- /**
2085
- */
1370
+ readonly current_hp: number;
2086
1371
  readonly morale: number;
2087
- /**
2088
- */
2089
- readonly naked_anti_air: number | undefined;
2090
- /**
2091
- */
1372
+ readonly ammo: number;
1373
+ readonly fuel: number;
1374
+ readonly ship_type: ShipType;
1375
+ readonly ctype: number;
1376
+ slots: SlotSizeVec;
1377
+ readonly naked_firepower: number | undefined;
1378
+ readonly naked_torpedo: number | undefined;
2092
1379
  readonly naked_armor: number | undefined;
2093
- /**
2094
- */
2095
- readonly naked_asw: number | undefined;
2096
- /**
2097
- */
1380
+ readonly naked_anti_air: number | undefined;
2098
1381
  readonly naked_evasion: number | undefined;
2099
- /**
2100
- */
2101
- readonly naked_firepower: number | undefined;
2102
- /**
2103
- */
1382
+ readonly naked_asw: number | undefined;
2104
1383
  readonly naked_los: number | undefined;
2105
- /**
2106
- */
2107
- readonly naked_range: number | undefined;
2108
- /**
2109
- */
2110
- readonly naked_speed: number;
2111
- /**
2112
- */
2113
- readonly naked_torpedo: number | undefined;
2114
- /**
2115
- */
1384
+ readonly firepower: number | undefined;
1385
+ readonly torpedo: number | undefined;
1386
+ readonly armor: number | undefined;
1387
+ readonly anti_air: number | undefined;
1388
+ readonly evasion: number | undefined;
1389
+ readonly asw: number | undefined;
1390
+ readonly los: number | undefined;
2116
1391
  readonly name: string;
2117
- /**
2118
- */
2119
- readonly next_id: number;
2120
- /**
2121
- */
2122
- readonly range: number | undefined;
2123
- /**
2124
- */
1392
+ readonly yomi: string;
1393
+ readonly stype: number;
1394
+ readonly sort_id: number;
2125
1395
  readonly remodel_rank: number;
2126
- /**
2127
- */
2128
- readonly ship_id: number;
2129
- /**
2130
- */
2131
- readonly ship_type: ShipType;
2132
- /**
2133
- */
2134
1396
  readonly slotnum: number;
2135
- /**
2136
- */
2137
- slots: SlotSizeVec;
2138
- /**
2139
- */
2140
- readonly sort_id: number;
2141
- /**
2142
- */
2143
- readonly speed: number;
2144
- /**
2145
- */
2146
- readonly stype: number;
2147
- /**
2148
- */
2149
- readonly torpedo: number | undefined;
2150
- /**
2151
- */
1397
+ readonly next_id: number;
2152
1398
  readonly useful: boolean;
2153
- /**
2154
- */
2155
- readonly yomi: string;
1399
+ readonly max_hp: number | undefined;
1400
+ readonly max_ammo: number;
1401
+ readonly max_fuel: number;
1402
+ readonly naked_range: number | undefined;
1403
+ readonly naked_speed: number;
1404
+ readonly luck: number | undefined;
1405
+ readonly range: number | undefined;
1406
+ readonly speed: number;
1407
+ readonly accuracy: number;
1408
+ readonly innate_torpedo_accuracy: number;
2156
1409
  }