fleethub-core 1.1.6 → 1.2.0

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,1116 +1,2085 @@
1
1
  /* tslint:disable */
2
2
  /* eslint-disable */
3
3
  /**
4
- * @param {Gear} gear
5
- * @returns {boolean}
6
- */
4
+ * @param {Gear} gear
5
+ * @returns {boolean}
6
+ */
7
7
  export function air_squadron_can_equip(gear: Gear): boolean;
8
8
  /**
9
- */
10
- export function set_panic_hook(): void;
9
+ * @param {OrgType} org_type
10
+ * @returns {boolean}
11
+ */
12
+ export function org_type_is_single(org_type: OrgType): boolean;
11
13
  /**
12
- * @param {bindings.OrgType} org_type
13
- * @returns {boolean}
14
- */
15
- export function org_type_is_single(org_type: bindings.OrgType): boolean;
14
+ * @param {OrgType} org_type
15
+ * @returns {Formation}
16
+ */
17
+ export function org_type_default_formation(org_type: OrgType): Formation;
16
18
  /**
17
- * @param {bindings.OrgType} org_type
18
- * @returns {bindings.Formation}
19
- */
20
- export function org_type_default_formation(org_type: bindings.OrgType): bindings.Formation;
19
+ * @param {OrgType} org_type
20
+ * @returns {boolean}
21
+ */
22
+ export function org_type_is_player(org_type: OrgType): boolean;
21
23
  /**
22
- * @param {bindings.OrgType} org_type
23
- * @returns {boolean}
24
- */
25
- export function org_type_is_player(org_type: bindings.OrgType): boolean;
24
+ * @param {OrgType} org_type
25
+ * @returns {Side}
26
+ */
27
+ export function org_type_side(org_type: OrgType): Side;
26
28
  /**
27
- * @param {bindings.OrgType} org_type
28
- * @returns {bindings.Side}
29
- */
30
- export function org_type_side(org_type: bindings.OrgType): bindings.Side;
29
+ */
30
+ export function set_panic_hook(): void;
31
+ export type EBonusFnGearInput = {
32
+ gear_id: number;
33
+ types: GearTypes;
34
+ firepower: number;
35
+ torpedo: number;
36
+ anti_air: number;
37
+ armor: number;
38
+ evasion: number;
39
+ asw: number;
40
+ los: number;
41
+ bombing: number;
42
+ accuracy: number;
43
+ range: number;
44
+ radius: number;
45
+ stars: number;
46
+ ace: number;
47
+ };
48
+
49
+ export type EBonusFnShipInput = {
50
+ ship_id: number;
51
+ ctype: number;
52
+ stype: number;
53
+ yomi: string;
54
+ };
55
+
56
+ export type EBonuses = {
57
+ firepower: number;
58
+ torpedo: number;
59
+ anti_air: number;
60
+ armor: number;
61
+ evasion: number;
62
+ asw: number;
63
+ los: number;
64
+ bombing: number;
65
+ accuracy: number;
66
+ range: number;
67
+ };
68
+
69
+ export type AirStateRank = "Rank0" | "Rank1" | "Rank2" | "Rank3";
70
+
71
+ export type AirState =
72
+ | "AirSupremacy"
73
+ | "AirSuperiority"
74
+ | "AirParity"
75
+ | "AirDenial"
76
+ | "AirIncapability";
77
+
78
+ export type ShellingSupportSimulatorParams = {
79
+ attacker_formation: Formation;
80
+ target_formation: Formation;
81
+ engagement: Engagement;
82
+ custom_mods: CustomModifiers;
83
+ };
84
+
85
+ export type NightSituation = {
86
+ night_contact_rank: ContactRank | null;
87
+ starshell: boolean;
88
+ searchlight: boolean;
89
+ };
90
+
91
+ export type DamageInfo = {
92
+ miss_damage_min: number;
93
+ miss_damage_max: number;
94
+ normal_damage_min: number;
95
+ normal_damage_max: number;
96
+ critical_damage_min: number;
97
+ critical_damage_max: number;
98
+ normal_scratch_rate: number;
99
+ critical_scratch_rate: number;
100
+ damage_map: NumMap<number, number>;
101
+ damage_state_map: NumMap<DamageState, number>;
102
+ };
103
+
104
+ export type FleetCutin =
105
+ | "NelsonTouch"
106
+ | "NagatoCutin"
107
+ | "ColoradoCutin"
108
+ | "KongouCutin";
109
+
110
+ export type BattleConfig = {
111
+ formation: NestedFormationDef[];
112
+ anti_air_cutin: AntiAirCutinDef[];
113
+ day_cutin: DayCutinDef[];
114
+ night_cutin: NightCutinDef[];
115
+ };
116
+
117
+ export type NightCutinDef = {
118
+ tag: NightCutin;
119
+ hits: number;
120
+ chance_denom: number | null;
121
+ power_mod: number | null;
122
+ accuracy_mod: number | null;
123
+ };
124
+
125
+ export type DayCutinDef = {
126
+ tag: DayCutin;
127
+ hits: number;
128
+ chance_denom: number | null;
129
+ power_mod: number | null;
130
+ accuracy_mod: number | null;
131
+ };
132
+
133
+ export type AntiAirCutinDef = {
134
+ id: number;
135
+ chance_numer: number | null;
136
+ multiplier: number | null;
137
+ minimum_bonus: number | null;
138
+ sequential: boolean | null;
139
+ };
140
+
141
+ export type NestedFormationDef =
142
+ | FormationDef
143
+ | { top_half: FormationDef; bottom_half: FormationDef };
144
+
145
+ export type FormationDef = {
146
+ tag: Formation;
147
+ protection_rate: number | null;
148
+ fleet_anti_air_mod: number;
149
+ shelling: FormationWarfareDef;
150
+ torpedo: FormationWarfareDef;
151
+ asw: FormationWarfareDef;
152
+ night: FormationWarfareDef;
153
+ shelling_support: FormationWarfareDef;
154
+ };
155
+
156
+ export type FormationWarfareDef = {
157
+ power_mod: number | null;
158
+ accuracy_mod: number | null;
159
+ evasion_mod: number | null;
160
+ };
161
+
162
+ export type AirWaveType = "Jet" | "LandBase" | "Carrier";
163
+
164
+ export type SimulatorResult = {
165
+ items: SimulatorResultItem[];
166
+ sunk_vec: [number, number, number][];
167
+ };
168
+
169
+ export type SimulatorResultItem = {
170
+ id: string;
171
+ role: Role;
172
+ index: number;
173
+ damage_state_map: Record<DamageState, number>;
174
+ };
175
+
176
+ export type FleetNightCutinRateInfo = {
177
+ night_contact_chance: NightContactChance;
178
+ ships: ShipNightCutinRateInfo[];
179
+ };
180
+
181
+ export type ShipNightCutinRateInfo = {
182
+ ship_id: number;
183
+ normal: NightCutinRateInfo;
184
+ chuuha: NightCutinRateInfo;
185
+ };
186
+
187
+ export type NightCutinRateInfo = {
188
+ cutin_term: number | null;
189
+ rates: [NightCutin | null, number | null][];
190
+ };
191
+
192
+ export type NightContactChance = {
193
+ rank1: number;
194
+ rank2: number;
195
+ rank3: number;
196
+ total: number;
197
+ };
198
+
199
+ export type GearTypes = [number, number, number, number, number];
200
+
201
+ export type MasterGear = {
202
+ gear_id: number;
203
+ name: string;
204
+ types: GearTypes;
205
+ special_type?: number;
206
+ max_hp?: number;
207
+ firepower?: number;
208
+ armor?: number;
209
+ torpedo?: number;
210
+ anti_air?: number;
211
+ speed?: number;
212
+ bombing?: number;
213
+ asw?: number;
214
+ los?: number;
215
+ luck?: number;
216
+ accuracy?: number;
217
+ evasion?: number;
218
+ range?: number;
219
+ radius?: number;
220
+ cost?: number;
221
+ improvable?: boolean;
222
+ adjusted_anti_air_resistance?: number;
223
+ fleet_anti_air_resistance?: number;
224
+ };
225
+
226
+ export type MasterVariantDef = { tag: string; id: number; name: string };
227
+
228
+ export type MasterAttrRule = { tag: string; name: string; expr: string };
229
+
230
+ export type MasterIBonusRule = { expr: string; formula: string };
231
+
232
+ export type MasterIBonuses = {
233
+ shelling_power: MasterIBonusRule[];
234
+ carrier_shelling_power: MasterIBonusRule[];
235
+ shelling_accuracy: MasterIBonusRule[];
236
+ torpedo_power: MasterIBonusRule[];
237
+ torpedo_accuracy: MasterIBonusRule[];
238
+ torpedo_evasion: MasterIBonusRule[];
239
+ asw_power: MasterIBonusRule[];
240
+ asw_accuracy: MasterIBonusRule[];
241
+ night_power: MasterIBonusRule[];
242
+ night_accuracy: MasterIBonusRule[];
243
+ defense_power: MasterIBonusRule[];
244
+ contact_selection: MasterIBonusRule[];
245
+ fighter_power: MasterIBonusRule[];
246
+ adjusted_anti_air: MasterIBonusRule[];
247
+ fleet_anti_air: MasterIBonusRule[];
248
+ elos: MasterIBonusRule[];
249
+ };
250
+
251
+ export type StatInterval = [number | null, number | null];
252
+
253
+ export type MasterShip = {
254
+ ship_id: number;
255
+ name: string;
256
+ yomi: string;
257
+ stype: number;
258
+ ctype: number;
259
+ sort_id?: number;
260
+ max_hp: StatInterval;
261
+ firepower: StatInterval;
262
+ armor: StatInterval;
263
+ torpedo: StatInterval;
264
+ evasion: StatInterval;
265
+ anti_air: StatInterval;
266
+ asw: StatInterval;
267
+ los: StatInterval;
268
+ luck: StatInterval;
269
+ speed: number;
270
+ range?: number;
271
+ fuel?: number;
272
+ ammo?: number;
273
+ next_id?: number;
274
+ next_level?: number;
275
+ slotnum: number;
276
+ slots: Array<number | null>;
277
+ stock: Array<GearState>;
278
+ speed_group?: SpeedGroup;
279
+ useful?: boolean;
280
+ };
281
+
282
+ export type EquipStype = { id: number; equip_type: number[] };
283
+
284
+ export type MstEquipShip = { api_ship_id: number; api_equip_type: number[] };
285
+
286
+ export type MstEquipExslotShip = {
287
+ api_slotitem_id: number;
288
+ api_ship_ids: number[];
289
+ };
290
+
291
+ export type MasterEquippable = {
292
+ equip_stype: EquipStype[];
293
+ equip_exslot: number[];
294
+ equip_ship: MstEquipShip[];
295
+ equip_exslot_ship: MstEquipExslotShip[];
296
+ };
297
+
298
+ export type MasterData = {
299
+ gears: MasterGear[];
300
+ gear_attrs: MasterAttrRule[];
301
+ ships: MasterShip[];
302
+ ship_attrs: MasterAttrRule[];
303
+ equippable: MasterEquippable;
304
+ ibonuses: MasterIBonuses;
305
+ config: BattleConfig;
306
+ };
307
+
308
+ export type ContactRank = "Rank1" | "Rank2" | "Rank3";
309
+
310
+ export type CompMeta = { fleets: Record<FleetType, FleetMeta> };
311
+
312
+ export type FleetMeta = {
313
+ id: string;
314
+ len: number;
315
+ ships: [string, ShipMeta | null][];
316
+ };
317
+
318
+ export type ShipMeta = { id: string; ship_id: number };
319
+
320
+ export type WarfareContext = {
321
+ attacker_env: WarfareShipEnvironment;
322
+ target_env: WarfareShipEnvironment;
323
+ engagement: Engagement;
324
+ air_state: AirState;
325
+ custom_mods: CustomModifiers;
326
+ };
327
+
328
+ export type WarfareShipEnvironment = {
329
+ org_type: OrgType;
330
+ role: Role;
331
+ ship_index: number;
332
+ fleet_len: number;
333
+ formation: Formation;
334
+ fleet_los_mod: number | null;
335
+ };
336
+
337
+ export type AswAttackType = "DepthCharge" | "Aircraft";
338
+
339
+ export type ShellingSpecialAttack =
340
+ | { DayCutin: DayCutin }
341
+ | { FleetCutin: FleetCutin };
342
+
343
+ export type DayCutin =
344
+ | "MainMain"
345
+ | "MainAp"
346
+ | "MainRadar"
347
+ | "MainSec"
348
+ | "DoubleAttack"
349
+ | "FBA"
350
+ | "BBA"
351
+ | "BA"
352
+ | "Zuiun"
353
+ | "AirSea";
354
+
355
+ export type Engagement = "GreenT" | "Parallel" | "HeadOn" | "RedT";
356
+
357
+ export type AttackPower = {
358
+ precap: number;
359
+ is_capped: boolean;
360
+ capped: number;
361
+ normal: number;
362
+ critical: number;
363
+ armor_penetration: number;
364
+ remaining_ammo_mod: number;
365
+ };
366
+
367
+ export type AttackPowerParams = {
368
+ basic: number;
369
+ cap: number;
370
+ precap_mod: AttackPowerModifier;
371
+ postcap_mod: AttackPowerModifier;
372
+ ap_shell_mod: number | null;
373
+ carrier_power: number | null;
374
+ proficiency_critical_mod: number | null;
375
+ armor_penetration: number;
376
+ remaining_ammo_mod: number;
377
+ special_enemy_mods: SpecialEnemyModifiers;
378
+ custom_mods: CustomModifiers;
379
+ };
380
+
381
+ export type CustomModifiers = {
382
+ precap_mod: AttackPowerModifier;
383
+ postcap_mod: AttackPowerModifier;
384
+ };
385
+
386
+ export type SpecialEnemyModifiers = {
387
+ precap_general_mod: AttackPowerModifier;
388
+ stype_mod: AttackPowerModifier;
389
+ landing_craft_synergy_mod: AttackPowerModifier;
390
+ toku_daihatsu_tank_mod: AttackPowerModifier;
391
+ m4a1dd_mod: AttackPowerModifier;
392
+ honi_mod: AttackPowerModifier;
393
+ postcap_general_mod: AttackPowerModifier;
394
+ pt_mod: AttackPowerModifier;
395
+ };
396
+
397
+ export type AttackPowerModifier = { a: number; b: number };
398
+
399
+ export type GearState = {
400
+ id?: string;
401
+ gear_id: number;
402
+ exp?: number;
403
+ stars?: number;
404
+ };
405
+
406
+ export type ShipState = {
407
+ id?: string;
408
+ ship_id: number;
409
+ level?: number;
410
+ current_hp?: number;
411
+ morale?: number;
412
+ ammo?: number;
413
+ fuel?: number;
414
+ max_hp_mod?: number;
415
+ firepower_mod?: number;
416
+ torpedo_mod?: number;
417
+ armor_mod?: number;
418
+ anti_air_mod?: number;
419
+ evasion_mod?: number;
420
+ asw_mod?: number;
421
+ los_mod?: number;
422
+ luck_mod?: number;
423
+ g1?: GearState;
424
+ g2?: GearState;
425
+ g3?: GearState;
426
+ g4?: GearState;
427
+ g5?: GearState;
428
+ gx?: GearState;
429
+ ss1?: number;
430
+ ss2?: number;
431
+ ss3?: number;
432
+ ss4?: number;
433
+ ss5?: number;
434
+ };
435
+
436
+ export type FleetState = {
437
+ id?: string;
438
+ len?: number;
439
+ s1?: ShipState;
440
+ s2?: ShipState;
441
+ s3?: ShipState;
442
+ s4?: ShipState;
443
+ s5?: ShipState;
444
+ s6?: ShipState;
445
+ s7?: ShipState;
446
+ };
447
+
448
+ export type AirSquadronMode = "Sortie" | "AirDefense";
449
+
450
+ export type AirSquadronState = {
451
+ id?: string;
452
+ mode?: AirSquadronMode;
453
+ g1?: GearState;
454
+ g2?: GearState;
455
+ g3?: GearState;
456
+ g4?: GearState;
457
+ g5?: GearState;
458
+ gx?: GearState;
459
+ ss1?: number;
460
+ ss2?: number;
461
+ ss3?: number;
462
+ ss4?: number;
463
+ ss5?: number;
464
+ };
465
+
466
+ export type Side = "Player" | "Enemy";
467
+
468
+ export type OrgType =
469
+ | "Single"
470
+ | "CarrierTaskForce"
471
+ | "SurfaceTaskForce"
472
+ | "TransportEscort"
473
+ | "EnemySingle"
474
+ | "EnemyCombined";
475
+
476
+ export type Role = "Main" | "Escort";
477
+
478
+ export type OrgState = {
479
+ id?: string;
480
+ f1?: FleetState;
481
+ f2?: FleetState;
482
+ f3?: FleetState;
483
+ f4?: FleetState;
484
+ a1?: AirSquadronState;
485
+ a2?: AirSquadronState;
486
+ a3?: AirSquadronState;
487
+ hq_level?: number;
488
+ org_type?: OrgType;
489
+ sortie?: string;
490
+ route_sup?: string;
491
+ boss_sup?: string;
492
+ };
493
+
494
+ export type ShipKey = "s1" | "s2" | "s3" | "s4" | "s5" | "s6" | "s7";
495
+
496
+ export type ShipStateMap = Record<ShipKey, ShipState>;
497
+
498
+ export type CompDayCutinRateInfo = {
499
+ main: FleetDayCutinRateInfo;
500
+ escort: FleetDayCutinRateInfo | null;
501
+ };
502
+
503
+ export type FleetDayCutinRateInfo = {
504
+ fleet_los_mod: number | null;
505
+ ships: ShipDayCutinRateInfo[];
506
+ };
507
+
508
+ export type ShipDayCutinRateInfo = {
509
+ ship_id: number;
510
+ air_supremacy: DayCutinRateInfo;
511
+ air_superiority: DayCutinRateInfo;
512
+ };
513
+
514
+ export type DayCutinRateInfo = {
515
+ observation_term: number | null;
516
+ rates: [DayCutin | null, number | null][];
517
+ total_cutin_rate: number | null;
518
+ };
519
+
520
+ export type GearAttr =
521
+ | "Abyssal"
522
+ | "HighAngleMount"
523
+ | "NightFighter"
524
+ | "NightAttacker"
525
+ | "HeavyBomber"
526
+ | "MainGun"
527
+ | "Radar"
528
+ | "SurfaceRadar"
529
+ | "AirRadar"
530
+ | "DepthChargeProjector"
531
+ | "AdditionalDepthCharge"
532
+ | "AntiSubMortar"
533
+ | "AntiSubWeapon"
534
+ | "AntiSubAircraft"
535
+ | "LateModelBowTorpedo"
536
+ | "Seaplane"
537
+ | "CbAircraft"
538
+ | "LbAircraft"
539
+ | "JetAircraft"
540
+ | "Fighter"
541
+ | "Recon"
542
+ | "ObservationSeaplane"
543
+ | "CbFighterBomber"
544
+ | "AntiInstDiveBomber"
545
+ | "NightRecon"
546
+ | "CbSwordfish"
547
+ | "SemiNightPlane"
548
+ | "HighAltitudeInterceptor";
549
+
550
+ export type GearCategory =
551
+ | "Fighter"
552
+ | "Bomber"
553
+ | "Recon"
554
+ | "MainGun"
555
+ | "Secondary"
556
+ | "Torpedo"
557
+ | "AntiSub"
558
+ | "Radar"
559
+ | "Landing"
560
+ | "Ration"
561
+ | "LandBased"
562
+ | "Misc";
563
+
564
+ export type GearType =
565
+ | "Unknown"
566
+ | "SmallMainGun"
567
+ | "MediumMainGun"
568
+ | "LargeMainGun"
569
+ | "SecondaryGun"
570
+ | "Torpedo"
571
+ | "CbFighter"
572
+ | "CbDiveBomber"
573
+ | "CbTorpedoBomber"
574
+ | "CbRecon"
575
+ | "ReconSeaplane"
576
+ | "SeaplaneBomber"
577
+ | "SmallRadar"
578
+ | "LargeRadar"
579
+ | "Sonar"
580
+ | "DepthCharge"
581
+ | "ExtraArmor"
582
+ | "Engine"
583
+ | "AntiAirShell"
584
+ | "ApShell"
585
+ | "VtFuze"
586
+ | "AntiAirGun"
587
+ | "MidgetSubmarine"
588
+ | "EmergencyRepair"
589
+ | "LandingCraft"
590
+ | "Rotorcraft"
591
+ | "AntiSubPatrolAircraft"
592
+ | "MediumArmor"
593
+ | "LargeArmor"
594
+ | "Searchlight"
595
+ | "SupplyContainer"
596
+ | "ShipRepairFacility"
597
+ | "SubmarineTorpedo"
598
+ | "Starshell"
599
+ | "CommandFacility"
600
+ | "AviationPersonnel"
601
+ | "AntiAirFireDirector"
602
+ | "AntiGroundEquipment"
603
+ | "LargeMainGun2"
604
+ | "ShipPersonnel"
605
+ | "LargeSonar"
606
+ | "LargeFlyingBoat"
607
+ | "LargeSearchlight"
608
+ | "CombatRation"
609
+ | "Supplies"
610
+ | "SeaplaneFighter"
611
+ | "AmphibiousTank"
612
+ | "LbAttacker"
613
+ | "LbFighter"
614
+ | "LbRecon"
615
+ | "TransportationMaterial"
616
+ | "SubmarineEquipment"
617
+ | "LargeLbAircraft"
618
+ | "JetFighter"
619
+ | "JetFighterBomber"
620
+ | "JetTorpedoBomber"
621
+ | "JetRecon"
622
+ | "LargeRadar2"
623
+ | "CbRecon2";
624
+
625
+ export type FleetType = "Main" | "Escort" | "RouteSup" | "BossSup";
626
+
627
+ export type ShellingAttackType = "Normal" | "Carrier";
628
+
629
+ export type FleetCutinAnalysis = {
630
+ shelling: FleetCutinInfo[];
631
+ night: FleetCutinInfo[];
632
+ };
633
+
634
+ export type FleetCutinInfo = {
635
+ cutin: FleetCutin;
636
+ formation: Formation;
637
+ items: FleetCutinInfoItem[];
638
+ };
639
+
640
+ export type FleetCutinInfoItem = {
641
+ ship_id: number;
642
+ cutin: FleetCutin;
643
+ fleet_cutin_mod: number;
644
+ stats: AttackStats;
645
+ };
646
+
647
+ export type CompAntiAirInfo = {
648
+ fleet_anti_air: number;
649
+ ships: ShipAntiAirInfo[];
650
+ anti_air_cutin_chance: [number, number][];
651
+ };
652
+
653
+ export type ShipAntiAirInfo = {
654
+ ship_id: number;
655
+ adjusted_anti_air: number | null;
656
+ proportional_shotdown_rate: number | null;
657
+ fixed_shotdown_number: number | null;
658
+ minimum_bonus: number | null;
659
+ anti_air_cutin_chance: [number, number][];
660
+ anti_air_propellant_barrage_chance: number | null;
661
+ };
662
+
663
+ export type CompContactChanceInfo = {
664
+ single: AirstrikeContactChance[] | null;
665
+ combined: AirstrikeContactChance[] | null;
666
+ };
667
+
668
+ export type AirstrikeContactChance = {
669
+ air_state: AirState;
670
+ trigger_rate: number;
671
+ rank3: number;
672
+ rank2: number;
673
+ rank1: number;
674
+ total: number;
675
+ };
676
+
677
+ export type Formation = SingleFormation | CombinedFormation;
678
+
679
+ export type CombinedFormation =
680
+ | "Cruising1"
681
+ | "Cruising2"
682
+ | "Cruising3"
683
+ | "Cruising4";
684
+
685
+ export type SingleFormation =
686
+ | "LineAhead"
687
+ | "DoubleLine"
688
+ | "Diamond"
689
+ | "Echelon"
690
+ | "LineAbreast"
691
+ | "Vanguard";
692
+
693
+ export type NightBattleAttackType =
694
+ | { t: "NightAttack"; c: NightAttackType }
695
+ | { t: "Asw"; c: AswAttackType };
696
+
697
+ export type DayBattleAttackType =
698
+ | { t: "Shelling"; c: ShellingAttackType }
699
+ | { t: "Asw"; c: AswAttackType };
700
+
701
+ export type AttackInfo<AttackType, Cutin> = {
702
+ attack_type: AttackType;
703
+ items: AttackInfoItem<Cutin>[];
704
+ damage_state_map: NumMap<DamageState, number> | null;
705
+ };
706
+
707
+ export type AttackInfoItem<Cutin> = {
708
+ cutin: Cutin;
709
+ rate: number | null;
710
+ stats: AttackStats;
711
+ };
712
+
713
+ export type AttackStats = {
714
+ attack_power: AttackPower | null;
715
+ attack_power_params: AttackPowerParams | null;
716
+ hits: number;
717
+ hit_rate: HitRate | null;
718
+ hit_rate_params: HitRateParams | null;
719
+ damage: DamageInfo | null;
720
+ };
721
+
722
+ export type SpecialEnemyType =
723
+ | "None"
724
+ | "SoftSkinned"
725
+ | "Pillbox"
726
+ | "IsolatedIsland"
727
+ | "SupplyDepot"
728
+ | "HarbourSummerPrincess"
729
+ | "PtImp"
730
+ | "BattleshipSummerPrincess"
731
+ | "HeavyCruiserSummerPrincess";
732
+
733
+ export type MoraleState = "Sparkle" | "Normal" | "Orange" | "Red";
734
+
735
+ export type DamageState = "Normal" | "Shouha" | "Chuuha" | "Taiha" | "Sunk";
736
+
737
+ export type SpeedGroup = "A" | "B1" | "B2" | "C";
738
+
739
+ export type ShipAttr =
740
+ | "Abyssal"
741
+ | "NightCarrier"
742
+ | "Installation"
743
+ | "RoyalNavy"
744
+ | "Kai2"
745
+ | "TurbineSpeedBonus"
746
+ | "Pillbox"
747
+ | "IsolatedIsland"
748
+ | "HarbourSummerPrincess"
749
+ | "SupplyDepot"
750
+ | "PtImp"
751
+ | "BattleshipSummerPrincess"
752
+ | "HeavyCruiserSummerPrincess";
753
+
754
+ export type ShipClass =
755
+ | "Unknown"
756
+ | "AyanamiClass"
757
+ | "IseClass"
758
+ | "KagaClass"
759
+ | "KumaClass"
760
+ | "AkatsukiClass"
761
+ | "KongouClass"
762
+ | "FurutakaClass"
763
+ | "TakaoClass"
764
+ | "MogamiClass"
765
+ | "HatsuharuClass"
766
+ | "ShouhouClass"
767
+ | "FubukiClass"
768
+ | "AobaClass"
769
+ | "AkagiClass"
770
+ | "ChitoseClass"
771
+ | "SendaiClass"
772
+ | "SouryuuClass"
773
+ | "AsashioClass"
774
+ | "NagatoClass"
775
+ | "NagaraClass"
776
+ | "TenryuuClass"
777
+ | "ShimakazeClass"
778
+ | "ShiratsuyuClass"
779
+ | "HiyouClass"
780
+ | "HiryuuClass"
781
+ | "FusouClass"
782
+ | "HoushouClass"
783
+ | "MutsukiClass"
784
+ | "MyoukouClass"
785
+ | "KagerouClass"
786
+ | "ToneClass"
787
+ | "RyuujouClass"
788
+ | "ShoukakuClass"
789
+ | "YuubariClass"
790
+ | "KaidaiVIClass"
791
+ | "JunsenTypeBKai2"
792
+ | "YamatoClass"
793
+ | "YuugumoClass"
794
+ | "JunsenTypeB"
795
+ | "Junsen3Class"
796
+ | "AganoClass"
797
+ | "FleetOfFog"
798
+ | "TaihouClass"
799
+ | "I400Class"
800
+ | "HeiClassAmphibiousAssaultShip"
801
+ | "Type3SubmergenceTransportVehicle"
802
+ | "BismarckClass"
803
+ | "Z1Class"
804
+ | "RepairShip"
805
+ | "TaigeiClass"
806
+ | "RyuuhouClass"
807
+ | "OoyodoClass"
808
+ | "UnryuuClass"
809
+ | "AkizukiClass"
810
+ | "AdmiralHipperClass"
811
+ | "KatoriClass"
812
+ | "TypeIXCClass"
813
+ | "VittorioVenetoClass"
814
+ | "AkitsushimaClass"
815
+ | "RevisedKazahayaClass"
816
+ | "MaestraleClass"
817
+ | "MizuhoClass"
818
+ | "GrafZeppelinClass"
819
+ | "ZaraClass"
820
+ | "IowaClass"
821
+ | "KamikazeClass"
822
+ | "QueenElizabethClass"
823
+ | "AquilaClass"
824
+ | "LexingtonClass"
825
+ | "CommandantTesteClass"
826
+ | "JunsenTypeAKai2"
827
+ | "KamoiClass"
828
+ | "GangutClass"
829
+ | "ShimushuClass"
830
+ | "KasugaMaruClass"
831
+ | "TaiyouClass"
832
+ | "EtorofuClass"
833
+ | "ArkRoyalClass"
834
+ | "RichelieuClass"
835
+ | "MarconiClass"
836
+ | "TashkentClass"
837
+ | "JClass"
838
+ | "CasablancaClass"
839
+ | "EssexClass"
840
+ | "HiburiClass"
841
+ | "RoSeries"
842
+ | "JohnCButlerClass"
843
+ | "NelsonClass"
844
+ | "GotlandClass"
845
+ | "NisshinClass"
846
+ | "FletcherClass"
847
+ | "DucaDegliAbruzziClass"
848
+ | "ColoradoClass"
849
+ | "MikuraClass"
850
+ | "NorthamptonClass"
851
+ | "PerthClass"
852
+ | "R1"
853
+ | "DeRuyterClass"
854
+ | "AtlantaClass"
855
+ | "JingeiClass"
856
+ | "MatsuClass"
857
+ | "SouthDakotaClass"
858
+ | "JunsenTypeC"
859
+ | "TypeDCoastalDefenseShip"
860
+ | "YorktownClass"
861
+ | "StLouisClass"
862
+ | "NorthCarolinaClass"
863
+ | "TownClass"
864
+ | "SentakaType"
865
+ | "BrooklynClass"
866
+ | "AuxiliaryTransportShip"
867
+ | "IllustriousClass"
868
+ | "ConteDiCavourClass";
869
+
870
+ export type ShipType =
871
+ | "Unknown"
872
+ | "DE"
873
+ | "DD"
874
+ | "CL"
875
+ | "CLT"
876
+ | "CA"
877
+ | "CAV"
878
+ | "CVL"
879
+ | "FBB"
880
+ | "BB"
881
+ | "BBV"
882
+ | "CV"
883
+ | "XBB"
884
+ | "SS"
885
+ | "SSV"
886
+ | "AP"
887
+ | "AV"
888
+ | "LHA"
889
+ | "CVB"
890
+ | "AR"
891
+ | "AS"
892
+ | "CT"
893
+ | "AO";
894
+
895
+ export type ShipCategory =
896
+ | "Battleship"
897
+ | "AircraftCarrier"
898
+ | "HeavyCruiser"
899
+ | "LightCruiser"
900
+ | "Destroyer"
901
+ | "CoastalDefenseShip"
902
+ | "Submarine"
903
+ | "AuxiliaryShip";
31
904
 
32
905
  import * as bindings from "../bindings";
33
906
  export * from "../bindings";
34
907
 
908
+ export type HitRate = { total: number; normal: number; critical: number };
909
+
910
+ export type HitRateParams = {
911
+ accuracy_term: number;
912
+ evasion_term: number;
913
+ target_morale_mod: number;
914
+ critical_rate_constant: number;
915
+ critical_percentage_bonus: number;
916
+ hit_percentage_bonus: number;
917
+ };
918
+
919
+ export type WarfareInfo = {
920
+ day: AttackInfo<DayBattleAttackType, DayCutin | null> | null;
921
+ closing_torpedo: AttackInfo<null, null> | null;
922
+ night: AttackInfo<NightBattleAttackType, NightCutin | null> | null;
923
+ shelling_support: AttackInfo<null, null> | null;
924
+ opening_asw: AttackInfo<null, null> | null;
925
+ };
926
+
927
+ export type WarfareAnalyzerContext = {
928
+ attacker_env: WarfareAnalyzerShipEnvironment;
929
+ target_env: WarfareAnalyzerShipEnvironment;
930
+ engagement: Engagement;
931
+ air_state: AirState;
932
+ };
933
+
934
+ export type WarfareAnalyzerShipEnvironment = {
935
+ org_type: OrgType;
936
+ role: Role;
937
+ ship_index: number;
938
+ fleet_len: number;
939
+ formation: Formation;
940
+ fleet_los_mod: number | null;
941
+ night_situation: NightSituation;
942
+ custom_mods: CustomModifiers;
943
+ };
944
+
945
+ export type NightAttackType = "Normal" | "ArkRoyal" | "Carrier";
946
+
947
+ export type NightSpecialAttack =
948
+ | { NightCutin: NightCutin }
949
+ | { FleetCutin: FleetCutin };
950
+
951
+ export type NightCutin =
952
+ | "MainTorpRadar"
953
+ | "TorpLookoutRadar"
954
+ | "TorpTsloTorp"
955
+ | "TorpTsloDrum"
956
+ | "DoubleAttack"
957
+ | "TorpTorpMain"
958
+ | "TorpTorpTorp"
959
+ | "MainMainSec"
960
+ | "MainMainMain"
961
+ | "SubTorpTorp"
962
+ | "SubRadarTorp"
963
+ | "Cvci1_25"
964
+ | "Cvci1_20"
965
+ | "Cvci1_18"
966
+ | "Photobomber";
35
967
 
36
968
  /**
37
- */
969
+ */
38
970
  export class AirSquadron {
39
971
  free(): void;
40
- /**
41
- * @param {string} key
42
- * @returns {Gear | undefined}
43
- */
972
+ /**
973
+ * @param {string} key
974
+ * @returns {Gear | undefined}
975
+ */
44
976
  get_gear(key: string): Gear | undefined;
45
- /**
46
- * @param {Gear} gear
47
- * @returns {boolean}
48
- */
977
+ /**
978
+ * @param {Gear} gear
979
+ * @returns {boolean}
980
+ */
49
981
  can_equip(gear: Gear): boolean;
50
- /**
51
- * @param {number} index
52
- * @returns {number}
53
- */
982
+ /**
983
+ * @param {number} index
984
+ * @returns {number}
985
+ */
54
986
  get_slot_size(index: number): number;
55
- /**
56
- * @param {number} index
57
- * @returns {number}
58
- */
987
+ /**
988
+ * @param {number} index
989
+ * @returns {number}
990
+ */
59
991
  get_max_slot_size(index: number): number;
60
- /**
61
- * @returns {number}
62
- */
992
+ /**
993
+ * @returns {number}
994
+ */
63
995
  fighter_power(): number;
64
- /**
65
- * @returns {number}
66
- */
996
+ /**
997
+ * @returns {number}
998
+ */
67
999
  interception_power(): number;
68
- /**
69
- * 行動半径
70
- * @returns {number}
71
- */
1000
+ /**
1001
+ * 行動半径
1002
+ * @returns {number}
1003
+ */
72
1004
  radius(): number;
73
- /**
74
- */
1005
+ /**
1006
+ */
75
1007
  id: string;
76
- /**
77
- */
78
- mode: bindings.AirSquadronMode;
79
- /**
80
- */
1008
+ /**
1009
+ */
1010
+ mode: AirSquadronMode;
1011
+ /**
1012
+ */
81
1013
  xxh3: BigInt;
82
1014
  }
83
1015
  /**
84
- */
1016
+ */
85
1017
  export class Analyzer {
86
1018
  free(): void;
87
- /**
88
- * @param {Comp} comp
89
- * @param {bindings.Formation} formation
90
- * @param {number} adjusted_anti_air_resist
91
- * @param {number} fleet_anti_air_resist
92
- * @param {number | undefined} aaci
93
- * @returns {bindings.CompAntiAirInfo}
94
- */
95
- analyze_anti_air(comp: Comp, formation: bindings.Formation, adjusted_anti_air_resist: number, fleet_anti_air_resist: number, aaci?: number): bindings.CompAntiAirInfo;
96
- /**
97
- * @param {Comp} comp
98
- * @returns {bindings.CompDayCutinRateInfo}
99
- */
100
- analyze_day_cutin(comp: Comp): bindings.CompDayCutinRateInfo;
101
- /**
102
- * @param {Comp} comp
103
- * @param {bindings.NightSituation} attacker_situation
104
- * @param {bindings.NightSituation} target_situation
105
- * @returns {bindings.FleetNightCutinRateInfo}
106
- */
107
- analyze_night_cutin(comp: Comp, attacker_situation: bindings.NightSituation, target_situation: bindings.NightSituation): bindings.FleetNightCutinRateInfo;
108
- /**
109
- * @param {Comp} comp
110
- * @returns {bindings.CompContactChanceInfo}
111
- */
112
- analyze_contact_chance(comp: Comp): bindings.CompContactChanceInfo;
113
- /**
114
- * @param {bindings.WarfareAnalyzerContext} params
115
- * @param {Ship} attacker
116
- * @param {Ship} target
117
- * @returns {bindings.WarfareInfo}
118
- */
119
- analyze_warfare(params: bindings.WarfareAnalyzerContext, attacker: Ship, target: Ship): bindings.WarfareInfo;
120
- /**
121
- * @param {Comp} comp
122
- * @param {bindings.Engagement} engagement
123
- * @returns {bindings.FleetCutinAnalysis}
124
- */
125
- analyze_fleet_cutin(comp: Comp, engagement: bindings.Engagement): bindings.FleetCutinAnalysis;
1019
+ /**
1020
+ * @param {Comp} comp
1021
+ * @param {Formation} formation
1022
+ * @param {number} adjusted_anti_air_resist
1023
+ * @param {number} fleet_anti_air_resist
1024
+ * @param {number | undefined} aaci
1025
+ * @returns {CompAntiAirInfo}
1026
+ */
1027
+ analyze_anti_air(
1028
+ comp: Comp,
1029
+ formation: Formation,
1030
+ adjusted_anti_air_resist: number,
1031
+ fleet_anti_air_resist: number,
1032
+ aaci?: number
1033
+ ): CompAntiAirInfo;
1034
+ /**
1035
+ * @param {Comp} comp
1036
+ * @returns {CompDayCutinRateInfo}
1037
+ */
1038
+ analyze_day_cutin(comp: Comp): CompDayCutinRateInfo;
1039
+ /**
1040
+ * @param {Comp} comp
1041
+ * @param {NightSituation} attacker_situation
1042
+ * @param {NightSituation} target_situation
1043
+ * @returns {FleetNightCutinRateInfo}
1044
+ */
1045
+ analyze_night_cutin(
1046
+ comp: Comp,
1047
+ attacker_situation: NightSituation,
1048
+ target_situation: NightSituation
1049
+ ): FleetNightCutinRateInfo;
1050
+ /**
1051
+ * @param {Comp} comp
1052
+ * @returns {CompContactChanceInfo}
1053
+ */
1054
+ analyze_contact_chance(comp: Comp): CompContactChanceInfo;
1055
+ /**
1056
+ * @param {WarfareAnalyzerContext} params
1057
+ * @param {Ship} attacker
1058
+ * @param {Ship} target
1059
+ * @returns {WarfareInfo}
1060
+ */
1061
+ analyze_warfare(
1062
+ params: WarfareAnalyzerContext,
1063
+ attacker: Ship,
1064
+ target: Ship
1065
+ ): WarfareInfo;
1066
+ /**
1067
+ * @param {Comp} comp
1068
+ * @param {Engagement} engagement
1069
+ * @returns {FleetCutinAnalysis}
1070
+ */
1071
+ analyze_fleet_cutin(comp: Comp, engagement: Engagement): FleetCutinAnalysis;
126
1072
  }
127
1073
  /**
128
- */
1074
+ */
129
1075
  export class Comp {
130
1076
  free(): void;
131
- /**
132
- * @returns {bindings.Side}
133
- */
134
- side(): bindings.Side;
135
- /**
136
- * @returns {boolean}
137
- */
1077
+ /**
1078
+ * @returns {Side}
1079
+ */
1080
+ side(): Side;
1081
+ /**
1082
+ * @returns {boolean}
1083
+ */
138
1084
  is_combined(): boolean;
139
- /**
140
- * @returns {boolean}
141
- */
1085
+ /**
1086
+ * @returns {boolean}
1087
+ */
142
1088
  is_enemy(): boolean;
143
- /**
144
- * @returns {bindings.CompMeta}
145
- */
146
- meta(): bindings.CompMeta;
147
- /**
148
- * @param {bindings.FleetType} ft
149
- * @returns {string | undefined}
150
- */
151
- get_fleet_id(ft: bindings.FleetType): string | undefined;
152
- /**
153
- * @param {bindings.FleetType} ft
154
- * @param {string} key
155
- * @returns {Ship | undefined}
156
- */
157
- get_ship_with_clone(ft: bindings.FleetType, key: string): Ship | undefined;
158
- /**
159
- * @param {bindings.FleetType} ft
160
- * @param {string} key
161
- * @returns {string | undefined}
162
- */
163
- get_ship_entity_id(ft: bindings.FleetType, key: string): string | undefined;
164
- /**
165
- * @param {string} id
166
- * @returns {Ship | undefined}
167
- */
1089
+ /**
1090
+ * @returns {CompMeta}
1091
+ */
1092
+ meta(): CompMeta;
1093
+ /**
1094
+ * @param {FleetType} ft
1095
+ * @returns {string | undefined}
1096
+ */
1097
+ get_fleet_id(ft: FleetType): string | undefined;
1098
+ /**
1099
+ * @param {FleetType} ft
1100
+ * @param {string} key
1101
+ * @returns {Ship | undefined}
1102
+ */
1103
+ get_ship_with_clone(ft: FleetType, key: string): Ship | undefined;
1104
+ /**
1105
+ * @param {FleetType} ft
1106
+ * @param {string} key
1107
+ * @returns {string | undefined}
1108
+ */
1109
+ get_ship_entity_id(ft: FleetType, key: string): string | undefined;
1110
+ /**
1111
+ * @param {string} id
1112
+ * @returns {Ship | undefined}
1113
+ */
168
1114
  get_ship_by_eid_with_clone(id: string): Ship | undefined;
169
- /**
170
- * @returns {bindings.Formation}
171
- */
172
- default_formation(): bindings.Formation;
173
- /**
174
- * 艦隊対空値
175
- * @param {number} formation_mod
176
- * @returns {number}
177
- */
1115
+ /**
1116
+ * @returns {Formation}
1117
+ */
1118
+ default_formation(): Formation;
1119
+ /**
1120
+ * 艦隊対空値
1121
+ * @param {number} formation_mod
1122
+ * @returns {number}
1123
+ */
178
1124
  fleet_anti_air(formation_mod: number): number;
179
- /**
180
- * 制空値
181
- * @param {boolean} escort_participates
182
- * @param {bindings.AirWaveType} air_type
183
- * @returns {number | undefined}
184
- */
185
- fighter_power(escort_participates: boolean, air_type: bindings.AirWaveType): number | undefined;
186
- /**
187
- * マップ索敵
188
- * @param {number} node_divaricated_factor
189
- * @returns {number | undefined}
190
- */
1125
+ /**
1126
+ * 制空値
1127
+ * @param {boolean} escort_participates
1128
+ * @param {AirWaveType} air_type
1129
+ * @returns {number | undefined}
1130
+ */
1131
+ fighter_power(
1132
+ escort_participates: boolean,
1133
+ air_type: AirWaveType
1134
+ ): number | undefined;
1135
+ /**
1136
+ * マップ索敵
1137
+ * @param {number} node_divaricated_factor
1138
+ * @returns {number | undefined}
1139
+ */
191
1140
  elos(node_divaricated_factor: number): number | undefined;
192
- /**
193
- * 輸送物資量(TP)
194
- * @returns {number}
195
- */
1141
+ /**
1142
+ * 輸送物資量(TP)
1143
+ * @returns {number}
1144
+ */
196
1145
  transport_point(): number;
197
- /**
198
- */
1146
+ /**
1147
+ */
199
1148
  boss_sup?: Fleet;
200
- /**
201
- */
1149
+ /**
1150
+ */
202
1151
  escort?: Fleet;
203
- /**
204
- */
1152
+ /**
1153
+ */
205
1154
  hq_level: number;
206
- /**
207
- */
1155
+ /**
1156
+ */
208
1157
  main: Fleet;
209
- /**
210
- */
211
- org_type: bindings.OrgType;
212
- /**
213
- */
1158
+ /**
1159
+ */
1160
+ org_type: OrgType;
1161
+ /**
1162
+ */
214
1163
  route_sup?: Fleet;
215
1164
  }
216
1165
  /**
217
- */
1166
+ */
218
1167
  export class FhCore {
219
1168
  free(): void;
220
- /**
221
- * @param {any} js_master
222
- * @param {Function} js_fn
223
- */
1169
+ /**
1170
+ * @param {any} js_master
1171
+ * @param {Function} js_fn
1172
+ */
224
1173
  constructor(js_master: any, js_fn: Function);
225
- /**
226
- * @param {bindings.GearState | undefined} input
227
- * @returns {Gear | undefined}
228
- */
229
- create_gear(input?: bindings.GearState): Gear | undefined;
230
- /**
231
- * @param {bindings.ShipState | undefined} input
232
- * @returns {Ship | undefined}
233
- */
234
- create_ship(input?: bindings.ShipState): Ship | undefined;
235
- /**
236
- * @param {bindings.AirSquadronState | undefined} input
237
- * @returns {AirSquadron}
238
- */
239
- create_air_squadron(input?: bindings.AirSquadronState): AirSquadron;
240
- /**
241
- * @param {bindings.FleetState | undefined} input
242
- * @returns {Fleet}
243
- */
244
- create_fleet(input?: bindings.FleetState): Fleet;
245
- /**
246
- * @param {bindings.OrgState | undefined} input
247
- * @returns {Org | undefined}
248
- */
249
- create_org(input?: bindings.OrgState): Org | undefined;
250
- /**
251
- * @param {number} ship_id
252
- * @returns {Ship | undefined}
253
- */
1174
+ /**
1175
+ * @param {GearState | undefined} input
1176
+ * @returns {Gear | undefined}
1177
+ */
1178
+ create_gear(input?: GearState): Gear | undefined;
1179
+ /**
1180
+ * @param {ShipState | undefined} input
1181
+ * @returns {Ship | undefined}
1182
+ */
1183
+ create_ship(input?: ShipState): Ship | undefined;
1184
+ /**
1185
+ * @param {AirSquadronState | undefined} input
1186
+ * @returns {AirSquadron}
1187
+ */
1188
+ create_air_squadron(input?: AirSquadronState): AirSquadron;
1189
+ /**
1190
+ * @param {FleetState | undefined} input
1191
+ * @returns {Fleet}
1192
+ */
1193
+ create_fleet(input?: FleetState): Fleet;
1194
+ /**
1195
+ * @param {OrgState | undefined} input
1196
+ * @returns {Org | undefined}
1197
+ */
1198
+ create_org(input?: OrgState): Org | undefined;
1199
+ /**
1200
+ * @param {number} ship_id
1201
+ * @returns {Ship | undefined}
1202
+ */
254
1203
  create_ship_by_id(ship_id: number): Ship | undefined;
255
- /**
256
- * @param {Uint16Array} main
257
- * @param {Uint16Array | undefined} escort
258
- * @returns {Comp}
259
- */
1204
+ /**
1205
+ * @param {Uint16Array} main
1206
+ * @param {Uint16Array | undefined} escort
1207
+ * @returns {Comp}
1208
+ */
260
1209
  create_comp_by_map_enemy(main: Uint16Array, escort?: Uint16Array): Comp;
261
- /**
262
- * @returns {Ship}
263
- */
1210
+ /**
1211
+ * @returns {Ship}
1212
+ */
264
1213
  create_default_ship(): Ship;
265
- /**
266
- * @returns {Analyzer}
267
- */
1214
+ /**
1215
+ * @returns {Analyzer}
1216
+ */
268
1217
  create_analyzer(): Analyzer;
269
- /**
270
- * @param {Comp} player
271
- * @param {Comp} enemy
272
- * @param {bindings.ShellingSupportSimulatorParams} params
273
- * @param {number} times
274
- * @returns {bindings.SimulatorResult}
275
- */
276
- simulate_shelling_support(player: Comp, enemy: Comp, params: bindings.ShellingSupportSimulatorParams, times: number): bindings.SimulatorResult;
1218
+ /**
1219
+ * @param {Comp} player
1220
+ * @param {Comp} enemy
1221
+ * @param {ShellingSupportSimulatorParams} params
1222
+ * @param {number} times
1223
+ * @returns {SimulatorResult}
1224
+ */
1225
+ simulate_shelling_support(
1226
+ player: Comp,
1227
+ enemy: Comp,
1228
+ params: ShellingSupportSimulatorParams,
1229
+ times: number
1230
+ ): SimulatorResult;
277
1231
  }
278
1232
  /**
279
- */
1233
+ */
280
1234
  export class Fleet {
281
1235
  free(): void;
282
- /**
283
- * @returns {bindings.FleetMeta}
284
- */
285
- meta(): bindings.FleetMeta;
286
- /**
287
- * @returns {(string)[]}
288
- */
289
- ship_keys(): (string)[];
290
- /**
291
- * @returns {(string)[]}
292
- */
293
- ship_ids(): (string)[];
294
- /**
295
- * @returns {(string)[]}
296
- */
297
- get_gear_ids_by_improvable(): (string)[];
298
- /**
299
- * @returns {(string)[]}
300
- */
301
- get_gear_ids_by_proficiency(): (string)[];
302
- /**
303
- * @param {string} id
304
- * @param {bindings.DamageState} state
305
- * @returns {number | undefined}
306
- */
307
- get_damage_bound(id: string, state: bindings.DamageState): number | undefined;
308
- /**
309
- * @param {string} id
310
- * @param {number} rate
311
- * @param {boolean} ceil
312
- * @returns {number | undefined}
313
- */
314
- get_remaining_fuel(id: string, rate: number, ceil: boolean): number | undefined;
315
- /**
316
- * @param {string} id
317
- * @param {number} rate
318
- * @param {boolean} ceil
319
- * @returns {number | undefined}
320
- */
321
- get_remaining_ammo(id: string, rate: number, ceil: boolean): number | undefined;
322
- /**
323
- * @returns {number}
324
- */
1236
+ /**
1237
+ * @returns {FleetMeta}
1238
+ */
1239
+ meta(): FleetMeta;
1240
+ /**
1241
+ * @returns {(string)[]}
1242
+ */
1243
+ ship_keys(): string[];
1244
+ /**
1245
+ * @returns {(string)[]}
1246
+ */
1247
+ ship_ids(): string[];
1248
+ /**
1249
+ * @returns {(string)[]}
1250
+ */
1251
+ get_gear_ids_by_improvable(): string[];
1252
+ /**
1253
+ * @returns {(string)[]}
1254
+ */
1255
+ get_gear_ids_by_proficiency(): string[];
1256
+ /**
1257
+ * @param {string} id
1258
+ * @param {DamageState} state
1259
+ * @returns {number | undefined}
1260
+ */
1261
+ get_damage_bound(id: string, state: DamageState): number | undefined;
1262
+ /**
1263
+ * @param {string} id
1264
+ * @param {number} rate
1265
+ * @param {boolean} ceil
1266
+ * @returns {number | undefined}
1267
+ */
1268
+ get_remaining_fuel(
1269
+ id: string,
1270
+ rate: number,
1271
+ ceil: boolean
1272
+ ): number | undefined;
1273
+ /**
1274
+ * @param {string} id
1275
+ * @param {number} rate
1276
+ * @param {boolean} ceil
1277
+ * @returns {number | undefined}
1278
+ */
1279
+ get_remaining_ammo(
1280
+ id: string,
1281
+ rate: number,
1282
+ ceil: boolean
1283
+ ): number | undefined;
1284
+ /**
1285
+ * @returns {number}
1286
+ */
325
1287
  count_ships(): number;
326
- /**
327
- * @param {string} key
328
- * @returns {Ship | undefined}
329
- */
1288
+ /**
1289
+ * @param {string} key
1290
+ * @returns {Ship | undefined}
1291
+ */
330
1292
  get_ship(key: string): Ship | undefined;
331
- /**
332
- * @param {bindings.AirWaveType} air_type
333
- * @returns {number | undefined}
334
- */
335
- fighter_power(air_type: bindings.AirWaveType): number | undefined;
336
- /**
337
- * マップ索敵
338
- * @param {number} hq_level
339
- * @param {number} node_divaricated_factor
340
- * @returns {number | undefined}
341
- */
1293
+ /**
1294
+ * @param {AirWaveType} air_type
1295
+ * @returns {number | undefined}
1296
+ */
1297
+ fighter_power(air_type: AirWaveType): number | undefined;
1298
+ /**
1299
+ * マップ索敵
1300
+ * @param {number} hq_level
1301
+ * @param {number} node_divaricated_factor
1302
+ * @returns {number | undefined}
1303
+ */
342
1304
  elos(hq_level: number, node_divaricated_factor: number): number | undefined;
343
- /**
344
- * 航空索敵スコア
345
- * @returns {number | undefined}
346
- */
1305
+ /**
1306
+ * 航空索敵スコア
1307
+ * @returns {number | undefined}
1308
+ */
347
1309
  aviation_detection_score(): number | undefined;
348
- /**
349
- * 遠征ボーナス
350
- * @returns {number}
351
- */
1310
+ /**
1311
+ * 遠征ボーナス
1312
+ * @returns {number}
1313
+ */
352
1314
  expedition_bonus(): number;
353
- /**
354
- * @param {string} key
355
- * @returns {number | undefined}
356
- */
1315
+ /**
1316
+ * @param {string} key
1317
+ * @returns {number | undefined}
1318
+ */
357
1319
  sum_ship_stat_by(key: string): number | undefined;
358
- /**
359
- */
1320
+ /**
1321
+ */
360
1322
  reset_battle_state(): void;
361
- /**
362
- * @returns {number | undefined}
363
- */
1323
+ /**
1324
+ * @returns {number | undefined}
1325
+ */
364
1326
  readonly fleet_los_mod: number | undefined;
365
- /**
366
- */
1327
+ /**
1328
+ */
367
1329
  id: string;
368
- /**
369
- */
1330
+ /**
1331
+ */
370
1332
  len: number;
371
- /**
372
- */
1333
+ /**
1334
+ */
373
1335
  xxh3: BigInt;
374
1336
  }
375
1337
  /**
376
- */
1338
+ */
377
1339
  export class Gear {
378
1340
  free(): void;
379
- /**
380
- * @returns {Gear}
381
- */
1341
+ /**
1342
+ * @returns {Gear}
1343
+ */
382
1344
  static default(): Gear;
383
- /**
384
- * @param {bindings.GearAttr} attr
385
- * @returns {boolean}
386
- */
387
- has_attr(attr: bindings.GearAttr): boolean;
388
- /**
389
- * @returns {bindings.GearCategory}
390
- */
391
- category(): bindings.GearCategory;
392
- /**
393
- * @returns {boolean}
394
- */
1345
+ /**
1346
+ * @param {GearAttr} attr
1347
+ * @returns {boolean}
1348
+ */
1349
+ has_attr(attr: GearAttr): boolean;
1350
+ /**
1351
+ * @returns {GearCategory}
1352
+ */
1353
+ category(): GearCategory;
1354
+ /**
1355
+ * @returns {boolean}
1356
+ */
395
1357
  is_carrier_shelling_plane(): boolean;
396
- /**
397
- * @returns {boolean}
398
- */
1358
+ /**
1359
+ * @returns {boolean}
1360
+ */
399
1361
  has_proficiency(): boolean;
400
- /**
401
- * @returns {boolean}
402
- */
1362
+ /**
1363
+ * @returns {boolean}
1364
+ */
403
1365
  max_exp_eq_120(): boolean;
404
- /**
405
- * @returns {number}
406
- */
1366
+ /**
1367
+ * @returns {number}
1368
+ */
407
1369
  proficiency_critical_power_mod(): number;
408
- /**
409
- * @param {number} slot_size
410
- * @returns {number}
411
- */
1370
+ /**
1371
+ * @param {number} slot_size
1372
+ * @returns {number}
1373
+ */
412
1374
  calc_fighter_power(slot_size: number): number;
413
- /**
414
- * @param {number} slot_size
415
- * @returns {number}
416
- */
1375
+ /**
1376
+ * @param {number} slot_size
1377
+ * @returns {number}
1378
+ */
417
1379
  calc_interception_power(slot_size: number): number;
418
- /**
419
- * @returns {number}
420
- */
1380
+ /**
1381
+ * @returns {number}
1382
+ */
421
1383
  fleet_anti_air(): number;
422
- /**
423
- * @returns {number}
424
- */
1384
+ /**
1385
+ * @returns {number}
1386
+ */
425
1387
  adjusted_anti_air(): number;
426
- /**
427
- * @param {number} slot_size
428
- * @returns {number}
429
- */
1388
+ /**
1389
+ * @param {number} slot_size
1390
+ * @returns {number}
1391
+ */
430
1392
  calc_contact_trigger_factor(slot_size: number): number;
431
- /**
432
- * @param {bindings.AirStateRank} rank
433
- * @returns {number}
434
- */
435
- contact_selection_rate(rank: bindings.AirStateRank): number;
436
- /**
437
- * @param {number} level
438
- * @returns {number}
439
- */
1393
+ /**
1394
+ * @param {AirStateRank} rank
1395
+ * @returns {number}
1396
+ */
1397
+ contact_selection_rate(rank: AirStateRank): number;
1398
+ /**
1399
+ * @param {number} level
1400
+ * @returns {number}
1401
+ */
440
1402
  night_contact_rate(level: number): number;
441
- /**
442
- * @returns {boolean}
443
- */
1403
+ /**
1404
+ * @returns {boolean}
1405
+ */
444
1406
  is_night_plane(): boolean;
445
- /**
446
- * @param {number} slot_size
447
- * @param {boolean} anti_inst
448
- * @returns {number}
449
- */
1407
+ /**
1408
+ * @param {number} slot_size
1409
+ * @param {boolean} anti_inst
1410
+ * @returns {number}
1411
+ */
450
1412
  night_plane_power(slot_size: number, anti_inst: boolean): number;
451
- /**
452
- * @returns {number}
453
- */
1413
+ /**
1414
+ * @returns {number}
1415
+ */
454
1416
  elos(): number;
455
- /**
456
- * @returns {boolean}
457
- */
1417
+ /**
1418
+ * @returns {boolean}
1419
+ */
458
1420
  is_abyssal(): boolean;
459
- /**
460
- * @returns {boolean}
461
- */
1421
+ /**
1422
+ * @returns {boolean}
1423
+ */
462
1424
  is_abyssal_cuttlefish_torpedo(): boolean;
463
- /**
464
- * @returns {boolean}
465
- */
1425
+ /**
1426
+ * @returns {boolean}
1427
+ */
466
1428
  is_abyssal_patrolling_attack_hawk(): boolean;
467
- /**
468
- * @returns {number}
469
- */
1429
+ /**
1430
+ * @returns {number}
1431
+ */
470
1432
  expedition_bonus(): number;
471
- /**
472
- */
1433
+ /**
1434
+ */
473
1435
  accuracy: number;
474
- /**
475
- * @returns {number}
476
- */
1436
+ /**
1437
+ * @returns {number}
1438
+ */
477
1439
  readonly ace: number;
478
- /**
479
- */
1440
+ /**
1441
+ */
480
1442
  adjusted_anti_air_resistance: number;
481
- /**
482
- */
1443
+ /**
1444
+ */
483
1445
  anti_air: number;
484
- /**
485
- * @returns {number}
486
- */
1446
+ /**
1447
+ * @returns {number}
1448
+ */
487
1449
  readonly anti_bomber: number;
488
- /**
489
- */
1450
+ /**
1451
+ */
490
1452
  armor: number;
491
- /**
492
- */
1453
+ /**
1454
+ */
493
1455
  asw: number;
494
- /**
495
- */
1456
+ /**
1457
+ */
496
1458
  bombing: number;
497
- /**
498
- */
1459
+ /**
1460
+ */
499
1461
  cost: number;
500
- /**
501
- */
1462
+ /**
1463
+ */
502
1464
  default_exp: number;
503
- /**
504
- */
1465
+ /**
1466
+ */
505
1467
  evasion: number;
506
- /**
507
- */
1468
+ /**
1469
+ */
508
1470
  exp: number;
509
- /**
510
- */
1471
+ /**
1472
+ */
511
1473
  firepower: number;
512
- /**
513
- */
1474
+ /**
1475
+ */
514
1476
  fleet_anti_air_resistance: number;
515
- /**
516
- */
1477
+ /**
1478
+ */
517
1479
  gear_id: number;
518
- /**
519
- */
520
- gear_type: bindings.GearType;
521
- /**
522
- * @returns {number}
523
- */
1480
+ /**
1481
+ */
1482
+ gear_type: GearType;
1483
+ /**
1484
+ * @returns {number}
1485
+ */
524
1486
  readonly gear_type_id: number;
525
- /**
526
- * @returns {number}
527
- */
1487
+ /**
1488
+ * @returns {number}
1489
+ */
528
1490
  readonly icon_id: number;
529
- /**
530
- */
1491
+ /**
1492
+ */
531
1493
  id: string;
532
- /**
533
- */
1494
+ /**
1495
+ */
534
1496
  improvable: boolean;
535
- /**
536
- * @returns {number}
537
- */
1497
+ /**
1498
+ * @returns {number}
1499
+ */
538
1500
  readonly interception: number;
539
- /**
540
- */
1501
+ /**
1502
+ */
541
1503
  los: number;
542
- /**
543
- */
1504
+ /**
1505
+ */
544
1506
  luck: number;
545
- /**
546
- */
1507
+ /**
1508
+ */
547
1509
  max_hp: number;
548
- /**
549
- */
1510
+ /**
1511
+ */
550
1512
  name: string;
551
- /**
552
- */
1513
+ /**
1514
+ */
553
1515
  radius: number;
554
- /**
555
- */
1516
+ /**
1517
+ */
556
1518
  range: number;
557
- /**
558
- * @returns {number}
559
- */
1519
+ /**
1520
+ * @returns {number}
1521
+ */
560
1522
  readonly special_type_id: number;
561
- /**
562
- */
1523
+ /**
1524
+ */
563
1525
  speed: number;
564
- /**
565
- */
1526
+ /**
1527
+ */
566
1528
  stars: number;
567
- /**
568
- */
1529
+ /**
1530
+ */
569
1531
  torpedo: number;
570
- /**
571
- * @returns {any}
572
- */
1532
+ /**
1533
+ * @returns {any}
1534
+ */
573
1535
  readonly types: any;
574
- /**
575
- */
1536
+ /**
1537
+ */
576
1538
  xxh3: BigInt;
577
1539
  }
578
1540
  /**
579
- */
1541
+ */
580
1542
  export class IBonuses {
581
1543
  free(): void;
582
- /**
583
- */
1544
+ /**
1545
+ */
584
1546
  adjusted_anti_air: number;
585
- /**
586
- */
1547
+ /**
1548
+ */
587
1549
  asw_accuracy: number;
588
- /**
589
- */
1550
+ /**
1551
+ */
590
1552
  asw_power: number;
591
- /**
592
- */
1553
+ /**
1554
+ */
593
1555
  carrier_shelling_power: number;
594
- /**
595
- */
1556
+ /**
1557
+ */
596
1558
  contact_selection: number;
597
- /**
598
- */
1559
+ /**
1560
+ */
599
1561
  defense_power: number;
600
- /**
601
- */
1562
+ /**
1563
+ */
602
1564
  elos: number;
603
- /**
604
- */
1565
+ /**
1566
+ */
605
1567
  fighter_power: number;
606
- /**
607
- */
1568
+ /**
1569
+ */
608
1570
  fleet_anti_air: number;
609
- /**
610
- */
1571
+ /**
1572
+ */
611
1573
  night_accuracy: number;
612
- /**
613
- */
1574
+ /**
1575
+ */
614
1576
  night_power: number;
615
- /**
616
- */
1577
+ /**
1578
+ */
617
1579
  shelling_accuracy: number;
618
- /**
619
- */
1580
+ /**
1581
+ */
620
1582
  shelling_power: number;
621
- /**
622
- */
1583
+ /**
1584
+ */
623
1585
  torpedo_accuracy: number;
624
- /**
625
- */
1586
+ /**
1587
+ */
626
1588
  torpedo_evasion: number;
627
- /**
628
- */
1589
+ /**
1590
+ */
629
1591
  torpedo_power: number;
630
1592
  }
631
1593
  /**
632
- */
1594
+ */
633
1595
  export class Org {
634
1596
  free(): void;
635
- /**
636
- * @param {bindings.Role} role
637
- * @returns {number}
638
- */
639
- fleet_len(role: bindings.Role): number;
640
- /**
641
- * @param {bindings.Role} role
642
- * @param {string} key
643
- * @returns {string | undefined}
644
- */
645
- get_ship_entity_id(role: bindings.Role, key: string): string | undefined;
646
- /**
647
- * @returns {(string)[]}
648
- */
649
- air_squadron_ids(): (string)[];
650
- /**
651
- * @param {bindings.Role} role
652
- * @returns {number | undefined}
653
- */
654
- fleet_los_mod(role: bindings.Role): number | undefined;
655
- /**
656
- * @returns {Uint16Array}
657
- */
1597
+ /**
1598
+ * @param {Role} role
1599
+ * @returns {number}
1600
+ */
1601
+ fleet_len(role: Role): number;
1602
+ /**
1603
+ * @param {Role} role
1604
+ * @param {string} key
1605
+ * @returns {string | undefined}
1606
+ */
1607
+ get_ship_entity_id(role: Role, key: string): string | undefined;
1608
+ /**
1609
+ * @returns {(string)[]}
1610
+ */
1611
+ air_squadron_ids(): string[];
1612
+ /**
1613
+ * @param {Role} role
1614
+ * @returns {number | undefined}
1615
+ */
1616
+ fleet_los_mod(role: Role): number | undefined;
1617
+ /**
1618
+ * @returns {Uint16Array}
1619
+ */
658
1620
  main_ship_ids(): Uint16Array;
659
- /**
660
- * @returns {Uint16Array}
661
- */
1621
+ /**
1622
+ * @returns {Uint16Array}
1623
+ */
662
1624
  escort_ship_ids(): Uint16Array;
663
- /**
664
- * @param {string} key
665
- * @returns {Fleet}
666
- */
1625
+ /**
1626
+ * @param {string} key
1627
+ * @returns {Fleet}
1628
+ */
667
1629
  clone_fleet(key: string): Fleet;
668
- /**
669
- * @param {bindings.Role} role
670
- * @param {string} key
671
- * @returns {Ship | undefined}
672
- */
673
- get_ship(role: bindings.Role, key: string): Ship | undefined;
674
- /**
675
- * @param {string} id
676
- * @returns {Ship | undefined}
677
- */
1630
+ /**
1631
+ * @param {Role} role
1632
+ * @param {string} key
1633
+ * @returns {Ship | undefined}
1634
+ */
1635
+ get_ship(role: Role, key: string): Ship | undefined;
1636
+ /**
1637
+ * @param {string} id
1638
+ * @returns {Ship | undefined}
1639
+ */
678
1640
  get_ship_by_id(id: string): Ship | undefined;
679
- /**
680
- * @param {bindings.Role} role
681
- * @returns {string}
682
- */
683
- get_fleet_id_by_role(role: bindings.Role): string;
684
- /**
685
- * @returns {Comp}
686
- */
1641
+ /**
1642
+ * @param {Role} role
1643
+ * @returns {string}
1644
+ */
1645
+ get_fleet_id_by_role(role: Role): string;
1646
+ /**
1647
+ * @returns {Comp}
1648
+ */
687
1649
  create_comp(): Comp;
688
- /**
689
- * @param {string} key
690
- * @returns {Comp}
691
- */
1650
+ /**
1651
+ * @param {string} key
1652
+ * @returns {Comp}
1653
+ */
692
1654
  create_comp_by_key(key: string): Comp;
693
- /**
694
- * @param {string} key
695
- * @returns {AirSquadron}
696
- */
1655
+ /**
1656
+ * @param {string} key
1657
+ * @returns {AirSquadron}
1658
+ */
697
1659
  get_air_squadron(key: string): AirSquadron;
698
- /**
699
- * @returns {(string)[]}
700
- */
701
- get_air_squadron_gear_ids_by_improvable(): (string)[];
702
- /**
703
- * @returns {(string)[]}
704
- */
705
- get_air_squadron_gear_ids_by_proficiency(): (string)[];
706
- /**
707
- * @returns {boolean}
708
- */
1660
+ /**
1661
+ * @returns {(string)[]}
1662
+ */
1663
+ get_air_squadron_gear_ids_by_improvable(): string[];
1664
+ /**
1665
+ * @returns {(string)[]}
1666
+ */
1667
+ get_air_squadron_gear_ids_by_proficiency(): string[];
1668
+ /**
1669
+ * @returns {boolean}
1670
+ */
709
1671
  is_player(): boolean;
710
- /**
711
- * @returns {boolean}
712
- */
1672
+ /**
1673
+ * @returns {boolean}
1674
+ */
713
1675
  is_enemy(): boolean;
714
- /**
715
- * @returns {boolean}
716
- */
1676
+ /**
1677
+ * @returns {boolean}
1678
+ */
717
1679
  is_single(): boolean;
718
- /**
719
- * @returns {boolean}
720
- */
1680
+ /**
1681
+ * @returns {boolean}
1682
+ */
721
1683
  is_combined(): boolean;
722
- /**
723
- * 防空時の基地制空値
724
- * @returns {number}
725
- */
1684
+ /**
1685
+ * 防空時の基地制空値
1686
+ * @returns {number}
1687
+ */
726
1688
  interception_power(): number;
727
- /**
728
- * 高高度迎撃時の基地制空値
729
- * @returns {number}
730
- */
1689
+ /**
1690
+ * 高高度迎撃時の基地制空値
1691
+ * @returns {number}
1692
+ */
731
1693
  high_altitude_interception_power(): number;
732
- /**
733
- * @param {Ship} ship
734
- * @param {bindings.Formation} formation
735
- * @returns {bindings.WarfareShipEnvironment}
736
- */
737
- create_warfare_ship_environment(ship: Ship, formation: bindings.Formation): bindings.WarfareShipEnvironment;
738
- /**
739
- * @returns {Org}
740
- */
1694
+ /**
1695
+ * @param {Ship} ship
1696
+ * @param {Formation} formation
1697
+ * @returns {WarfareShipEnvironment}
1698
+ */
1699
+ create_warfare_ship_environment(
1700
+ ship: Ship,
1701
+ formation: Formation
1702
+ ): WarfareShipEnvironment;
1703
+ /**
1704
+ * @returns {Org}
1705
+ */
741
1706
  static default(): Org;
742
- /**
743
- */
1707
+ /**
1708
+ */
744
1709
  boss_sup?: string;
745
- /**
746
- */
1710
+ /**
1711
+ */
747
1712
  hq_level: number;
748
- /**
749
- */
1713
+ /**
1714
+ */
750
1715
  id: string;
751
- /**
752
- */
753
- org_type: bindings.OrgType;
754
- /**
755
- */
1716
+ /**
1717
+ */
1718
+ org_type: OrgType;
1719
+ /**
1720
+ */
756
1721
  route_sup?: string;
757
- /**
758
- */
1722
+ /**
1723
+ */
759
1724
  sortie: string;
760
- /**
761
- */
1725
+ /**
1726
+ */
762
1727
  xxh3: BigInt;
763
1728
  }
764
1729
  /**
765
- */
1730
+ */
766
1731
  export class Ship {
767
1732
  free(): void;
768
- /**
769
- * @returns {Ship}
770
- */
1733
+ /**
1734
+ * @returns {Ship}
1735
+ */
771
1736
  static default(): Ship;
772
- /**
773
- * @param {string} id
774
- * @returns {boolean}
775
- */
1737
+ /**
1738
+ * @param {string} id
1739
+ * @returns {boolean}
1740
+ */
776
1741
  eq_id(id: string): boolean;
777
- /**
778
- * @returns {bindings.ShipState}
779
- */
780
- state(): bindings.ShipState;
781
- /**
782
- * @returns {bindings.ShipMeta}
783
- */
784
- meta(): bindings.ShipMeta;
785
- /**
786
- * @returns {number}
787
- */
1742
+ /**
1743
+ * @returns {ShipState}
1744
+ */
1745
+ state(): ShipState;
1746
+ /**
1747
+ * @returns {ShipMeta}
1748
+ */
1749
+ meta(): ShipMeta;
1750
+ /**
1751
+ * @returns {number}
1752
+ */
788
1753
  remodel_rank(): number;
789
- /**
790
- * @returns {bindings.DamageState}
791
- */
792
- damage_state(): bindings.DamageState;
793
- /**
794
- * @returns {bindings.MoraleState}
795
- */
796
- morale_state(): bindings.MoraleState;
797
- /**
798
- * @returns {bindings.ShipCategory}
799
- */
800
- category(): bindings.ShipCategory;
801
- /**
802
- * @param {bindings.ShipAttr} attr
803
- * @returns {boolean}
804
- */
805
- has_attr(attr: bindings.ShipAttr): boolean;
806
- /**
807
- * @returns {any}
808
- */
1754
+ /**
1755
+ * @returns {DamageState}
1756
+ */
1757
+ damage_state(): DamageState;
1758
+ /**
1759
+ * @returns {MoraleState}
1760
+ */
1761
+ morale_state(): MoraleState;
1762
+ /**
1763
+ * @returns {ShipCategory}
1764
+ */
1765
+ category(): ShipCategory;
1766
+ /**
1767
+ * @param {ShipAttr} attr
1768
+ * @returns {boolean}
1769
+ */
1770
+ has_attr(attr: ShipAttr): boolean;
1771
+ /**
1772
+ * @returns {any}
1773
+ */
809
1774
  gear_keys(): any;
810
- /**
811
- * @param {string} key
812
- * @returns {Gear | undefined}
813
- */
1775
+ /**
1776
+ * @param {string} key
1777
+ * @returns {Gear | undefined}
1778
+ */
814
1779
  get_gear(key: string): Gear | undefined;
815
- /**
816
- * @param {bindings.DamageState} state
817
- * @returns {number | undefined}
818
- */
819
- get_damage_bound(state: bindings.DamageState): number | undefined;
820
- /**
821
- * @param {number} rate
822
- * @param {boolean} ceil
823
- * @returns {number}
824
- */
1780
+ /**
1781
+ * @param {DamageState} state
1782
+ * @returns {number | undefined}
1783
+ */
1784
+ get_damage_bound(state: DamageState): number | undefined;
1785
+ /**
1786
+ * @param {number} rate
1787
+ * @param {boolean} ceil
1788
+ * @returns {number}
1789
+ */
825
1790
  get_remaining_fuel(rate: number, ceil: boolean): number;
826
- /**
827
- * @param {number} rate
828
- * @param {boolean} ceil
829
- * @returns {number}
830
- */
1791
+ /**
1792
+ * @param {number} rate
1793
+ * @param {boolean} ceil
1794
+ * @returns {number}
1795
+ */
831
1796
  get_remaining_ammo(rate: number, ceil: boolean): number;
832
- /**
833
- * @param {string} key
834
- * @returns {boolean}
835
- */
1797
+ /**
1798
+ * @param {string} key
1799
+ * @returns {boolean}
1800
+ */
836
1801
  has_unknown_stat(key: string): boolean;
837
- /**
838
- * @param {string} key
839
- * @returns {number | undefined}
840
- */
1802
+ /**
1803
+ * @param {string} key
1804
+ * @returns {number | undefined}
1805
+ */
841
1806
  get_naked_stat(key: string): number | undefined;
842
- /**
843
- * @param {string} key
844
- * @returns {number | undefined}
845
- */
1807
+ /**
1808
+ * @param {string} key
1809
+ * @returns {number | undefined}
1810
+ */
846
1811
  get_stat_interval_left(key: string): number | undefined;
847
- /**
848
- * @param {string} key
849
- * @returns {number | undefined}
850
- */
1812
+ /**
1813
+ * @param {string} key
1814
+ * @returns {number | undefined}
1815
+ */
851
1816
  get_stat_interval_right(key: string): number | undefined;
852
- /**
853
- * @param {string} key
854
- * @returns {number}
855
- */
1817
+ /**
1818
+ * @param {string} key
1819
+ * @returns {number}
1820
+ */
856
1821
  get_gear_stat(key: string): number;
857
- /**
858
- * @param {string} key
859
- * @returns {number}
860
- */
1822
+ /**
1823
+ * @param {string} key
1824
+ * @returns {number}
1825
+ */
861
1826
  get_ebonus(key: string): number;
862
- /**
863
- * @param {string} key
864
- * @returns {number | undefined}
865
- */
1827
+ /**
1828
+ * @param {string} key
1829
+ * @returns {number | undefined}
1830
+ */
866
1831
  get_stat_mod(key: string): number | undefined;
867
- /**
868
- * @returns {boolean}
869
- */
1832
+ /**
1833
+ * @returns {boolean}
1834
+ */
870
1835
  is_abyssal(): boolean;
871
- /**
872
- * @returns {boolean}
873
- */
1836
+ /**
1837
+ * @returns {boolean}
1838
+ */
874
1839
  is_submarine(): boolean;
875
- /**
876
- * @param {Gear} gear
877
- * @param {string} key
878
- * @returns {boolean}
879
- */
1840
+ /**
1841
+ * @param {Gear} gear
1842
+ * @param {string} key
1843
+ * @returns {boolean}
1844
+ */
880
1845
  can_equip(gear: Gear, key: string): boolean;
881
- /**
882
- * @returns {boolean}
883
- */
1846
+ /**
1847
+ * @returns {boolean}
1848
+ */
884
1849
  is_installation(): boolean;
885
- /**
886
- * @param {number} index
887
- * @returns {number | undefined}
888
- */
1850
+ /**
1851
+ * @param {number} index
1852
+ * @returns {number | undefined}
1853
+ */
889
1854
  get_slot_size(index: number): number | undefined;
890
- /**
891
- * @param {number} index
892
- * @returns {number | undefined}
893
- */
1855
+ /**
1856
+ * @param {number} index
1857
+ * @returns {number | undefined}
1858
+ */
894
1859
  get_max_slot_size(index: number): number | undefined;
895
- /**
896
- * @returns {number}
897
- */
1860
+ /**
1861
+ * @returns {number}
1862
+ */
898
1863
  remaining_ammo_mod(): number;
899
- /**
900
- * @returns {number}
901
- */
1864
+ /**
1865
+ * @returns {number}
1866
+ */
902
1867
  remaining_fuel_mod(): number;
903
- /**
904
- * @param {bindings.AirWaveType} air_type
905
- * @returns {number | undefined}
906
- */
907
- fighter_power(air_type: bindings.AirWaveType): number | undefined;
908
- /**
909
- * @returns {number | undefined}
910
- */
1868
+ /**
1869
+ * @param {AirWaveType} air_type
1870
+ * @returns {number | undefined}
1871
+ */
1872
+ fighter_power(air_type: AirWaveType): number | undefined;
1873
+ /**
1874
+ * @returns {number | undefined}
1875
+ */
911
1876
  fleet_los_factor(): number | undefined;
912
- /**
913
- * @returns {number}
914
- */
1877
+ /**
1878
+ * @returns {number}
1879
+ */
915
1880
  fleet_anti_air(): number;
916
- /**
917
- * @returns {number}
918
- */
1881
+ /**
1882
+ * @returns {number}
1883
+ */
919
1884
  cruiser_fit_bonus(): number;
920
- /**
921
- * @param {boolean} is_night
922
- * @returns {number}
923
- */
1885
+ /**
1886
+ * @param {boolean} is_night
1887
+ * @returns {number}
1888
+ */
924
1889
  fit_gun_bonus(is_night: boolean): number;
925
- /**
926
- * @returns {number | undefined}
927
- */
1890
+ /**
1891
+ * @returns {number | undefined}
1892
+ */
928
1893
  basic_accuracy_term(): number | undefined;
929
- /**
930
- * @returns {number | undefined}
931
- */
1894
+ /**
1895
+ * @returns {number | undefined}
1896
+ */
932
1897
  basic_evasion_term(): number | undefined;
933
- /**
934
- * @param {number} formation_mod
935
- * @param {number} postcap_additive
936
- * @param {number} postcap_multiplicative
937
- * @returns {number | undefined}
938
- */
939
- evasion_term(formation_mod: number, postcap_additive: number, postcap_multiplicative: number): number | undefined;
940
- /**
941
- * @param {number} armor_penetration
942
- * @returns {number | undefined}
943
- */
1898
+ /**
1899
+ * @param {number} formation_mod
1900
+ * @param {number} postcap_additive
1901
+ * @param {number} postcap_multiplicative
1902
+ * @returns {number | undefined}
1903
+ */
1904
+ evasion_term(
1905
+ formation_mod: number,
1906
+ postcap_additive: number,
1907
+ postcap_multiplicative: number
1908
+ ): number | undefined;
1909
+ /**
1910
+ * @param {number} armor_penetration
1911
+ * @returns {number | undefined}
1912
+ */
944
1913
  basic_defense_power(armor_penetration: number): number | undefined;
945
- /**
946
- * @returns {Uint8Array}
947
- */
1914
+ /**
1915
+ * @returns {Uint8Array}
1916
+ */
948
1917
  get_possible_anti_air_cutin_ids(): Uint8Array;
949
- /**
950
- * @returns {number}
951
- */
1918
+ /**
1919
+ * @returns {number}
1920
+ */
952
1921
  transport_point(): number;
953
- /**
954
- * @param {number} node_divaricated_factor
955
- * @returns {number | undefined}
956
- */
1922
+ /**
1923
+ * @param {number} node_divaricated_factor
1924
+ * @returns {number | undefined}
1925
+ */
957
1926
  elos(node_divaricated_factor: number): number | undefined;
958
- /**
959
- * @param {number} value
960
- */
1927
+ /**
1928
+ * @param {number} value
1929
+ */
961
1930
  take_damage(value: number): void;
962
- /**
963
- * @returns {number}
964
- */
1931
+ /**
1932
+ * @returns {number}
1933
+ */
965
1934
  readonly accuracy: number;
966
- /**
967
- */
1935
+ /**
1936
+ */
968
1937
  ammo: number;
969
- /**
970
- * @returns {number | undefined}
971
- */
1938
+ /**
1939
+ * @returns {number | undefined}
1940
+ */
972
1941
  readonly anti_air: number | undefined;
973
- /**
974
- * @returns {number | undefined}
975
- */
1942
+ /**
1943
+ * @returns {number | undefined}
1944
+ */
976
1945
  readonly armor: number | undefined;
977
- /**
978
- * @returns {number | undefined}
979
- */
1946
+ /**
1947
+ * @returns {number | undefined}
1948
+ */
980
1949
  readonly asw: number | undefined;
981
- /**
982
- * @returns {number}
983
- */
1950
+ /**
1951
+ * @returns {number}
1952
+ */
984
1953
  readonly ctype: number;
985
- /**
986
- */
1954
+ /**
1955
+ */
987
1956
  current_hp: number;
988
- /**
989
- * @returns {number | undefined}
990
- */
1957
+ /**
1958
+ * @returns {number | undefined}
1959
+ */
991
1960
  readonly evasion: number | undefined;
992
- /**
993
- * @returns {number | undefined}
994
- */
1961
+ /**
1962
+ * @returns {number | undefined}
1963
+ */
995
1964
  readonly firepower: number | undefined;
996
- /**
997
- */
1965
+ /**
1966
+ */
998
1967
  fuel: number;
999
- /**
1000
- */
1968
+ /**
1969
+ */
1001
1970
  id: string;
1002
- /**
1003
- */
1971
+ /**
1972
+ */
1004
1973
  level: number;
1005
- /**
1006
- * @returns {number | undefined}
1007
- */
1974
+ /**
1975
+ * @returns {number | undefined}
1976
+ */
1008
1977
  readonly los: number | undefined;
1009
- /**
1010
- * @returns {number | undefined}
1011
- */
1978
+ /**
1979
+ * @returns {number | undefined}
1980
+ */
1012
1981
  readonly luck: number | undefined;
1013
- /**
1014
- * @returns {number}
1015
- */
1982
+ /**
1983
+ * @returns {number}
1984
+ */
1016
1985
  readonly max_ammo: number;
1017
- /**
1018
- * @returns {number}
1019
- */
1986
+ /**
1987
+ * @returns {number}
1988
+ */
1020
1989
  readonly max_fuel: number;
1021
- /**
1022
- * @returns {number | undefined}
1023
- */
1990
+ /**
1991
+ * @returns {number | undefined}
1992
+ */
1024
1993
  readonly max_hp: number | undefined;
1025
- /**
1026
- */
1994
+ /**
1995
+ */
1027
1996
  morale: number;
1028
- /**
1029
- * @returns {number | undefined}
1030
- */
1997
+ /**
1998
+ * @returns {number | undefined}
1999
+ */
1031
2000
  readonly naked_anti_air: number | undefined;
1032
- /**
1033
- * @returns {number | undefined}
1034
- */
2001
+ /**
2002
+ * @returns {number | undefined}
2003
+ */
1035
2004
  readonly naked_armor: number | undefined;
1036
- /**
1037
- * @returns {number | undefined}
1038
- */
2005
+ /**
2006
+ * @returns {number | undefined}
2007
+ */
1039
2008
  readonly naked_asw: number | undefined;
1040
- /**
1041
- * @returns {number | undefined}
1042
- */
2009
+ /**
2010
+ * @returns {number | undefined}
2011
+ */
1043
2012
  readonly naked_evasion: number | undefined;
1044
- /**
1045
- * @returns {number | undefined}
1046
- */
2013
+ /**
2014
+ * @returns {number | undefined}
2015
+ */
1047
2016
  readonly naked_firepower: number | undefined;
1048
- /**
1049
- * @returns {number | undefined}
1050
- */
2017
+ /**
2018
+ * @returns {number | undefined}
2019
+ */
1051
2020
  readonly naked_los: number | undefined;
1052
- /**
1053
- * @returns {number | undefined}
1054
- */
2021
+ /**
2022
+ * @returns {number | undefined}
2023
+ */
1055
2024
  readonly naked_range: number | undefined;
1056
- /**
1057
- * @returns {number}
1058
- */
2025
+ /**
2026
+ * @returns {number}
2027
+ */
1059
2028
  readonly naked_speed: number;
1060
- /**
1061
- * @returns {number | undefined}
1062
- */
2029
+ /**
2030
+ * @returns {number | undefined}
2031
+ */
1063
2032
  readonly naked_torpedo: number | undefined;
1064
- /**
1065
- * @returns {string}
1066
- */
2033
+ /**
2034
+ * @returns {string}
2035
+ */
1067
2036
  readonly name: string;
1068
- /**
1069
- * @returns {number}
1070
- */
2037
+ /**
2038
+ * @returns {number}
2039
+ */
1071
2040
  readonly next_id: number;
1072
- /**
1073
- * @returns {number | undefined}
1074
- */
2041
+ /**
2042
+ * @returns {number | undefined}
2043
+ */
1075
2044
  readonly range: number | undefined;
1076
- /**
1077
- */
1078
- ship_class: bindings.ShipClass;
1079
- /**
1080
- */
2045
+ /**
2046
+ */
2047
+ ship_class: ShipClass;
2048
+ /**
2049
+ */
1081
2050
  ship_id: number;
1082
- /**
1083
- */
1084
- ship_type: bindings.ShipType;
1085
- /**
1086
- * @returns {number}
1087
- */
2051
+ /**
2052
+ */
2053
+ ship_type: ShipType;
2054
+ /**
2055
+ * @returns {number}
2056
+ */
1088
2057
  readonly slotnum: number;
1089
- /**
1090
- * @returns {number}
1091
- */
2058
+ /**
2059
+ * @returns {number}
2060
+ */
1092
2061
  readonly sort_id: number;
1093
- /**
1094
- * @returns {number}
1095
- */
2062
+ /**
2063
+ * @returns {number}
2064
+ */
1096
2065
  readonly speed: number;
1097
- /**
1098
- * @returns {number}
1099
- */
2066
+ /**
2067
+ * @returns {number}
2068
+ */
1100
2069
  readonly stype: number;
1101
- /**
1102
- * @returns {number | undefined}
1103
- */
2070
+ /**
2071
+ * @returns {number | undefined}
2072
+ */
1104
2073
  readonly torpedo: number | undefined;
1105
- /**
1106
- * @returns {boolean}
1107
- */
2074
+ /**
2075
+ * @returns {boolean}
2076
+ */
1108
2077
  readonly useful: boolean;
1109
- /**
1110
- */
2078
+ /**
2079
+ */
1111
2080
  xxh3: BigInt;
1112
- /**
1113
- * @returns {string}
1114
- */
2081
+ /**
2082
+ * @returns {string}
2083
+ */
1115
2084
  readonly yomi: string;
1116
2085
  }