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.
@@ -0,0 +1,1409 @@
1
+ /* tslint:disable */
2
+ /* eslint-disable */
3
+ export function parse_ship_conditions(value: ShipConditions): ShipConditions;
4
+ export function set_panic_hook(): void;
5
+
6
+ export type CompiledEvaler = string;
7
+
8
+ export type AirSquadronMode = "Sortie" | "AirDefense";
9
+
10
+ export interface AirSquadronState extends GearVecState, SlotSizeVecState {
11
+ id?: string;
12
+ mode?: AirSquadronMode;
13
+ }
14
+
15
+ export type SingleFormation =
16
+ | "LineAhead"
17
+ | "DoubleLine"
18
+ | "Diamond"
19
+ | "Echelon"
20
+ | "LineAbreast"
21
+ | "Vanguard";
22
+
23
+ export type CombinedFormation =
24
+ | "Cruising1"
25
+ | "Cruising2"
26
+ | "Cruising3"
27
+ | "Cruising4";
28
+
29
+ export type Formation = SingleFormation | CombinedFormation;
30
+
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;
55
+ }
56
+
57
+ export interface FleetCutinReport<T> {
58
+ cutin: FleetCutin;
59
+ rate: number | null;
60
+ formation: Formation;
61
+ attacks: FleetCutinAttackReport<T>[];
62
+ }
63
+
64
+ export interface FleetCutinAttackReport<T> extends AttackReport<T> {
65
+ index: number;
66
+ ship_id: number;
67
+ power_mod: number;
68
+ }
69
+
70
+ export type AswAttackType = "DepthCharge" | "Aerial";
71
+
72
+ export type ShellingType = "Normal" | "Aerial";
73
+
74
+ export type NightAttackType = "Normal" | "Swordfish" | "Aerial";
75
+
76
+ export type SupportShellingType = ShellingType;
77
+
78
+ export type AttackType =
79
+ | { t: "Asw"; c: AswAttackType }
80
+ | { t: "Shelling"; c: ShellingType }
81
+ | { t: "Night"; c: NightAttackType }
82
+ | { t: "Torpedo" }
83
+ | { t: "SupportShelling"; c: SupportShellingType };
84
+
85
+ export type DayPhaseAttackType =
86
+ | { t: "Shelling"; c: ShellingType }
87
+ | { t: "Asw"; c: AswAttackType };
88
+
89
+ export type NightPhaseAttackType =
90
+ | { t: "Night"; c: NightAttackType }
91
+ | { t: "Asw"; c: AswAttackType };
92
+
93
+ export type TorpedoAttackType = null;
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
+
140
+ export type GearType =
141
+ | "Unknown"
142
+ | "SmallMainGun"
143
+ | "MediumMainGun"
144
+ | "LargeMainGun"
145
+ | "SecondaryGun"
146
+ | "Torpedo"
147
+ | "CbFighter"
148
+ | "CbDiveBomber"
149
+ | "CbTorpedoBomber"
150
+ | "CbRecon"
151
+ | "ReconSeaplane"
152
+ | "SeaplaneBomber"
153
+ | "SmallRadar"
154
+ | "LargeRadar"
155
+ | "Sonar"
156
+ | "DepthCharge"
157
+ | "ExtraArmor"
158
+ | "Engine"
159
+ | "AntiAirShell"
160
+ | "ApShell"
161
+ | "VtFuze"
162
+ | "AntiAirGun"
163
+ | "MidgetSubmarine"
164
+ | "EmergencyRepair"
165
+ | "LandingCraft"
166
+ | "Rotorcraft"
167
+ | "AntiSubPatrolAircraft"
168
+ | "MediumArmor"
169
+ | "LargeArmor"
170
+ | "Searchlight"
171
+ | "SupplyContainer"
172
+ | "ShipRepairFacility"
173
+ | "SubmarineTorpedo"
174
+ | "Starshell"
175
+ | "CommandFacility"
176
+ | "AviationPersonnel"
177
+ | "AntiAirFireDirector"
178
+ | "AntiGroundEquipment"
179
+ | "LargeMainGun2"
180
+ | "ShipPersonnel"
181
+ | "LargeSonar"
182
+ | "LargeFlyingBoat"
183
+ | "LargeSearchlight"
184
+ | "CombatRation"
185
+ | "Supplies"
186
+ | "SeaplaneFighter"
187
+ | "AmphibiousTank"
188
+ | "LbAttacker"
189
+ | "LbFighter"
190
+ | "LbRecon"
191
+ | "TransportationMaterial"
192
+ | "SubmarineEquipment"
193
+ | "LandingForce"
194
+ | "LargeLbAircraft"
195
+ | "SurfaceEquipment"
196
+ | "JetFighter"
197
+ | "JetFighterBomber"
198
+ | "JetTorpedoBomber"
199
+ | "JetRecon"
200
+ | "LargeRadar2"
201
+ | "CbRecon2"
202
+ | "SecondaryGun2";
203
+
204
+ export type GearCategory =
205
+ | "Fighter"
206
+ | "Bomber"
207
+ | "Recon"
208
+ | "MainGun"
209
+ | "Secondary"
210
+ | "Torpedo"
211
+ | "AntiSub"
212
+ | "Radar"
213
+ | "Landing"
214
+ | "Ration"
215
+ | "LandBased"
216
+ | "Misc";
217
+
218
+ export interface HitRate {
219
+ normal: number;
220
+ critical: number;
221
+ total: number;
222
+ }
223
+
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
+ }
232
+
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
+ }
242
+
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
+ }
259
+
260
+ export interface ActionReport<T> {
261
+ data: Record<string, AttackReport<T>>;
262
+ damage_state_density: Histogram<DamageState, number> | null;
263
+ is_active: boolean;
264
+ }
265
+
266
+ export type DamageState = "Normal" | "Shouha" | "Chuuha" | "Taiha" | "Sunk";
267
+
268
+ export type FleetType = "Main" | "Escort" | "RouteSup" | "BossSup";
269
+
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;
281
+ }
282
+
283
+ export type AirWaveType = "Jet" | "LandBase" | "Carrier";
284
+
285
+ export type AirState =
286
+ | "AirSupremacy"
287
+ | "AirSuperiority"
288
+ | "AirParity"
289
+ | "AirDenial"
290
+ | "AirIncapability";
291
+
292
+ export type AirStateRank = "Rank0" | "Rank1" | "Rank2" | "Rank3";
293
+
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;
302
+ }
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
+
318
+ export interface FleetState {
319
+ id?: string;
320
+ len?: number;
321
+ s1?: ShipState;
322
+ s2?: ShipState;
323
+ s3?: ShipState;
324
+ s4?: ShipState;
325
+ s5?: ShipState;
326
+ s6?: ShipState;
327
+ s7?: ShipState;
328
+ }
329
+
330
+ export interface GearState {
331
+ id?: string;
332
+ gear_id: number;
333
+ exp?: number;
334
+ stars?: number;
335
+ }
336
+
337
+ export interface GearVecState {
338
+ g1?: GearState;
339
+ g2?: GearState;
340
+ g3?: GearState;
341
+ g4?: GearState;
342
+ g5?: GearState;
343
+ gx?: GearState;
344
+ }
345
+
346
+ export type NodeId = string;
347
+
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;
355
+ }
356
+
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;
370
+ }
371
+
372
+ export interface SlotSizeVecState {
373
+ ss1?: number;
374
+ ss2?: number;
375
+ ss3?: number;
376
+ ss4?: number;
377
+ ss5?: number;
378
+ }
379
+
380
+ export interface ShipState extends GearVecState, SlotSizeVecState {
381
+ id?: string;
382
+ ship_id: number;
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;
400
+ }
401
+
402
+ export type ShipKey = "s1" | "s2" | "s3" | "s4" | "s5" | "s6" | "s7";
403
+
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;
412
+ }
413
+
414
+ export interface NationalityDef {
415
+ id: number;
416
+ ctypes: number[];
417
+ }
418
+
419
+ export interface MasterAttrRule<T> {
420
+ tag: T;
421
+ name: string;
422
+ expr: CompiledEvaler;
423
+ }
424
+
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;
455
+ }
456
+
457
+ export type StatInterval = [number | null, number | null];
458
+
459
+ export interface AttackAnalyzerShipConfig
460
+ extends ShipConditions,
461
+ NightFleetConditions {
462
+ balloons?: number;
463
+ fleet_los_mod?: number | null;
464
+ }
465
+
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";
496
+
497
+ export interface MoveShipPayload {
498
+ current: [string, string, ShipKey];
499
+ target: [string | null, string, ShipKey];
500
+ }
501
+
502
+ export type GearVecInput = GearInput[];
503
+
504
+ export interface GearInput {
505
+ gear_id: number;
506
+ types: GearTypeIdArray;
507
+ firepower: number;
508
+ torpedo: number;
509
+ anti_air: number;
510
+ armor: number;
511
+ evasion: number;
512
+ asw: number;
513
+ los: number;
514
+ bombing: number;
515
+ accuracy: number;
516
+ range: number;
517
+ radius: number;
518
+ stars: number;
519
+ ace: number;
520
+ }
521
+
522
+ export interface ShipInput {
523
+ ship_id: number;
524
+ ctype: number;
525
+ stype: number;
526
+ yomi: string;
527
+ }
528
+
529
+ export interface EBonuses {
530
+ firepower: number;
531
+ torpedo: number;
532
+ anti_air: number;
533
+ armor: number;
534
+ evasion: number;
535
+ asw: number;
536
+ los: number;
537
+ bombing: number;
538
+ accuracy: number;
539
+ range: number;
540
+ }
541
+
542
+ export interface NodeAttackAnalyzerShipConfig extends NightFleetConditions {
543
+ formation?: Formation;
544
+ }
545
+
546
+ export interface NodeAttackAnalyzerConfig {
547
+ air_state?: AirState;
548
+ engagement?: Engagement;
549
+ node_state?: NodeState;
550
+ left?: NodeAttackAnalyzerShipConfig;
551
+ right?: NodeAttackAnalyzerShipConfig;
552
+ }
553
+
554
+ export interface NodeAttackAnalysis {
555
+ left: AttackAnalysis;
556
+ right: AttackAnalysis;
557
+ shelling_fleet_cutin: FleetCutinReport<ShellingStyle>[];
558
+ night_fleet_cutin: FleetCutinReport<NightAttackStyle>[];
559
+ }
560
+
561
+ export interface NightContactChance {
562
+ rank1: number;
563
+ rank2: number;
564
+ rank3: number;
565
+ }
566
+
567
+ export interface CompNightCutinAnalysis {
568
+ night_contact_chance: NightContactChance;
569
+ ships: ShipNightCutinAnalysis[];
570
+ }
571
+
572
+ export interface ShipNightCutinAnalysis {
573
+ ship_id: number;
574
+ index: number;
575
+ normal: NightCutinActionReport;
576
+ chuuha: NightCutinActionReport;
577
+ }
578
+
579
+ export interface NightCutinActionReport
580
+ extends ActionReport<NightPhaseAttackStyle> {
581
+ cutin_term: number | null;
582
+ }
583
+
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>;
594
+ }
595
+
596
+ export type ContactRank = "Rank1" | "Rank2" | "Rank3";
597
+
598
+ export type MoraleState = "Sparkle" | "Normal" | "Orange" | "Red";
599
+
600
+ export interface OrgState {
601
+ id?: string;
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;
614
+ }
615
+
616
+ export type FleetKey = "f1" | "f2" | "f3" | "f4";
617
+
618
+ export type Role = "Main" | "Escort";
619
+
620
+ export type ShipAttr =
621
+ | "Unknown"
622
+ | "NightCarrier"
623
+ | "Installation"
624
+ | "RoyalNavy"
625
+ | "Kai2"
626
+ | "TurbineSpeedBonus"
627
+ | "NewModelBoilerSpeedBonus"
628
+ | "Pillbox"
629
+ | "IsolatedIsland"
630
+ | "HarbourSummerPrincess"
631
+ | "SupplyDepot"
632
+ | "NewSupplyDepot"
633
+ | "PtImp"
634
+ | "BattleshipSummerPrincess"
635
+ | "HeavyCruiserSummerPrincess"
636
+ | "AnchorageWaterDemonVacationMode"
637
+ | "FrenchBattleshipPrincess"
638
+ | "DockPrincess"
639
+ | "SummerAircraftCarrierDemon";
640
+
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
+ }
735
+
736
+ export interface ContactAnalysis {
737
+ single: DayContactChance[] | null;
738
+ combined: DayContactChance[] | null;
739
+ }
740
+
741
+ export interface DayContactChance {
742
+ air_state: AirState;
743
+ trigger_rate: number;
744
+ rank3: number;
745
+ rank2: number;
746
+ rank1: number;
747
+ total: number;
748
+ }
749
+
750
+ export interface AttackPowerModifier {
751
+ a?: number;
752
+ b?: number;
753
+ }
754
+
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;
768
+ }
769
+
770
+ export interface CustomPowerModifiers {
771
+ precap_mod?: AttackPowerModifier;
772
+ postcap_mod?: AttackPowerModifier;
773
+ basic_power_mod?: AttackPowerModifier;
774
+ historical_mod?: AttackPowerModifier;
775
+ }
776
+
777
+ export interface ShipMeta {
778
+ id: string;
779
+ ship_id: number;
780
+ }
781
+
782
+ export interface FleetMeta {
783
+ id: string;
784
+ len: number;
785
+ ships: [string, ShipMeta | null][];
786
+ }
787
+
788
+ export interface CompMeta {
789
+ fleets: Record<FleetType, FleetMeta>;
790
+ }
791
+
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[];
810
+ }
811
+
812
+ export interface MasterIBonusRule {
813
+ expr: CompiledEvaler;
814
+ formula: CompiledEvaler;
815
+ }
816
+
817
+ export interface EquippabilityRule {
818
+ ship: CompiledEvaler;
819
+ keys?: string[];
820
+ include?: string;
821
+ exclude?: string;
822
+ }
823
+
824
+ export interface MasterEquippability {
825
+ equip_stype: EquipStype[];
826
+ equip_exslot: number[];
827
+ equip_ship: MstEquipShip[];
828
+ equip_exslot_ship: Record<number, MstEquipExslotShip>;
829
+ rules: EquippabilityRule[];
830
+ }
831
+
832
+ export interface MstEquipExslotShip {
833
+ api_ctypes: Record<number, number> | null;
834
+ api_ship_ids: Record<number, number> | null;
835
+ api_stypes: Record<number, number> | null;
836
+ }
837
+
838
+ export interface MstEquipShip {
839
+ api_ship_id: number;
840
+ api_equip_type: number[];
841
+ }
842
+
843
+ export interface EquipStype {
844
+ id: number;
845
+ equip_type: number[];
846
+ }
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
+
895
+ export interface CompAntiAirAnalysis {
896
+ fleet_adjusted_anti_air: number;
897
+ ships: AntiAirReport[];
898
+ anti_air_cutin_chance: [number, number][];
899
+ }
900
+
901
+ export interface AntiAirReport {
902
+ ship_id: number;
903
+ role: Role;
904
+ index: number;
905
+ adjusted_anti_air: number | null;
906
+ proportional_shotdown_rate: number | null;
907
+ fixed_shotdown_number: number | null;
908
+ guaranteed: number | null;
909
+ anti_air_cutin_chance: [number, number][];
910
+ anti_air_propellant_barrage_chance: number | null;
911
+ }
912
+
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
+ }
921
+
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
+ }
949
+
950
+ export interface FormationCombatModifiersDef {
951
+ power_mod?: number;
952
+ accuracy_mod?: number;
953
+ evasion_mod?: number;
954
+ }
955
+
956
+ export interface FormationDef {
957
+ tag: Formation;
958
+ protection_rate: number | null;
959
+ fleet_anti_air_mod: number;
960
+ shelling: FormationCombatModifiersDef;
961
+ torpedo: FormationCombatModifiersDef;
962
+ asw: FormationCombatModifiersDef;
963
+ night: FormationCombatModifiersDef;
964
+ support_shelling: FormationCombatModifiersDef;
965
+ }
966
+
967
+ export type NestedFormationDef =
968
+ | FormationDef
969
+ | { top_half: FormationDef; bottom_half: FormationDef };
970
+
971
+ export interface AntiAirCutinDef {
972
+ id: number;
973
+ type_factor: number | null;
974
+ multiplier: number | null;
975
+ guaranteed: number | null;
976
+ sequential: boolean | null;
977
+ }
978
+
979
+ export interface DayCutinDef {
980
+ tag: DayCutin;
981
+ hits: number;
982
+ type_factor: number | null;
983
+ power_mod: number | null;
984
+ accuracy_mod: number | null;
985
+ }
986
+
987
+ export interface HistoricalBonusDef {
988
+ map?: number;
989
+ node?: CompiledEvaler;
990
+ phase?: number;
991
+ debuff?: boolean;
992
+ ship?: CompiledEvaler;
993
+ enemy?: CompiledEvaler;
994
+ power_mod?: AttackPowerModifier;
995
+ armor_penetration?: number;
996
+ accuracy_mod?: number;
997
+ evasion_mod?: number;
998
+ }
999
+
1000
+ export interface HistoricalParams {
1001
+ power_mod: AttackPowerModifier;
1002
+ armor_penetration: number;
1003
+ accuracy_mod: number;
1004
+ target_evasion_mod: number;
1005
+ }
1006
+
1007
+ export interface NightCutinDef {
1008
+ tag: NightCutin;
1009
+ hits: number;
1010
+ type_factor: number | null;
1011
+ power_mod: number | null;
1012
+ accuracy_mod: number | null;
1013
+ }
1014
+
1015
+ export interface BattleDefinitions {
1016
+ formation: Record<Formation, NestedFormationDef>;
1017
+ anti_air_cutin: Record<number, AntiAirCutinDef>;
1018
+ day_cutin: Record<DayCutin, DayCutinDef>;
1019
+ night_cutin: Record<NightCutin, NightCutinDef>;
1020
+ historical_bonuses: HistoricalBonusDef[];
1021
+ }
1022
+
1023
+ export type SpeedGroup = "A" | "B1" | "B2" | "C";
1024
+
1025
+ export type GearTypeIdArray = [number, number, number, number, number];
1026
+
1027
+ export interface SupportShellingSimulatorParams {
1028
+ attacker_formation?: Formation;
1029
+ target_formation?: Formation;
1030
+ engagement: Engagement;
1031
+ node_state: NodeState;
1032
+ }
1033
+
1034
+ export type FhResult<T> = { Ok: T } | { Err: string };
1035
+
1036
+ export interface ShipAnalyzerConfig {
1037
+ air_state?: AirState;
1038
+ engagement?: Engagement;
1039
+ left?: AttackAnalyzerShipConfig;
1040
+ right?: AttackAnalyzerShipConfig;
1041
+ }
1042
+
1043
+ export class AirSquadron {
1044
+ private constructor();
1045
+ free(): void;
1046
+ get_gear(key: string): Gear | undefined;
1047
+ get_slot_size(index: number): number;
1048
+ get_max_slot_size(index: number): number;
1049
+ fighter_power(): number;
1050
+ interception_power(): number;
1051
+ /**
1052
+ * 行動半径
1053
+ */
1054
+ radius(): number;
1055
+ id: string;
1056
+ hash: bigint;
1057
+ mode: AirSquadronMode;
1058
+ }
1059
+ export class Analyzer {
1060
+ private constructor();
1061
+ free(): void;
1062
+ analyze_ship_attack(
1063
+ config: ShipAnalyzerConfig,
1064
+ left: Ship,
1065
+ right: Ship,
1066
+ attacker_is_left: boolean,
1067
+ ): AttackAnalysis;
1068
+ analyze_node_attack(
1069
+ config: NodeAttackAnalyzerConfig,
1070
+ left_comp: Comp,
1071
+ left_ship: Ship,
1072
+ right_comp: Comp,
1073
+ right_ship: Ship,
1074
+ ): NodeAttackAnalysis;
1075
+ analyze_comp(comp: Comp, config: CompAnalyzerConfig): CompAnalysis;
1076
+ simulate_support_shelling(
1077
+ player_comp: Comp,
1078
+ enemy_comp: Comp,
1079
+ config: NodeAttackAnalyzerConfig,
1080
+ times: number,
1081
+ ): SimulatorResult;
1082
+ }
1083
+ export class Comp {
1084
+ private constructor();
1085
+ free(): void;
1086
+ side(): Side;
1087
+ is_combined(): boolean;
1088
+ is_player(): boolean;
1089
+ is_enemy(): boolean;
1090
+ has_ship_eid(id: string): boolean;
1091
+ first_ship_id(): string | undefined;
1092
+ has_route_sup(): boolean;
1093
+ meta(): CompMeta;
1094
+ get_fleet_id(ft: FleetType): string | undefined;
1095
+ get_ship_with_clone(ft: FleetType, key: ShipKey): Ship | undefined;
1096
+ get_ship_entity_id(ft: FleetType, key: ShipKey): string | undefined;
1097
+ get_ship_by_eid_with_clone(id: string): Ship | undefined;
1098
+ default_formation(): Formation;
1099
+ /**
1100
+ * 艦隊防空値
1101
+ */
1102
+ adjusted_anti_air(formation_mod: number): number;
1103
+ /**
1104
+ * 制空値
1105
+ */
1106
+ fighter_power(
1107
+ escort_participates: boolean,
1108
+ air_type: AirWaveType,
1109
+ ): number | undefined;
1110
+ /**
1111
+ * マップ索敵
1112
+ */
1113
+ elos(node_divaricated_factor: number): number | undefined;
1114
+ /**
1115
+ * 輸送物資量(TP)
1116
+ */
1117
+ transport_point(): number;
1118
+ get_ship_conditions(ship: Ship, formation?: Formation | null): ShipConditions;
1119
+ fleet_los_mod(fleet_type: FleetType): number | undefined;
1120
+ balloons(): number;
1121
+ readonly org_type: OrgType;
1122
+ readonly hq_level: number;
1123
+ main: 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);
1130
+ }
1131
+ export class FhCore {
1132
+ free(): void;
1133
+ constructor(js_master: MasterData);
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;
1139
+ create_ship_state_by_id(ship_id: number): ShipState | undefined;
1140
+ create_ship_by_id(ship_id: number): Ship | undefined;
1141
+ create_all_ships(): Ship[];
1142
+ create_comp_by_map_enemy(
1143
+ main: Uint16Array,
1144
+ escort?: Uint16Array | null,
1145
+ ): Comp;
1146
+ create_default_ship(): Ship;
1147
+ create_analyzer(): Analyzer;
1148
+ }
1149
+ export class Fleet {
1150
+ private constructor();
1151
+ free(): void;
1152
+ meta(): FleetMeta;
1153
+ ship_keys(): string[];
1154
+ ship_ids(): string[];
1155
+ get_gear_ids_by_improvable(): string[];
1156
+ get_gear_ids_by_proficiency(): string[];
1157
+ get_damage_bound(id: string, state: DamageState): number | undefined;
1158
+ get_remaining_fuel(
1159
+ id: string,
1160
+ rate: number,
1161
+ ceil: boolean,
1162
+ ): number | undefined;
1163
+ get_remaining_ammo(
1164
+ id: string,
1165
+ rate: number,
1166
+ ceil: boolean,
1167
+ ): number | undefined;
1168
+ count_ships(): number;
1169
+ get_ship(key: ShipKey): Ship | undefined;
1170
+ fighter_power(air_type: AirWaveType): number | undefined;
1171
+ /**
1172
+ * マップ索敵
1173
+ */
1174
+ elos(hq_level: number, node_divaricated_factor: number): number | undefined;
1175
+ /**
1176
+ * 航空索敵スコア
1177
+ */
1178
+ aviation_detection_score(): number | undefined;
1179
+ /**
1180
+ * 遠征ボーナス
1181
+ */
1182
+ expedition_bonus(): number;
1183
+ sum_ship_stat_by(key: string): number | undefined;
1184
+ reset_battle_state(): void;
1185
+ id: string;
1186
+ readonly hash: bigint;
1187
+ readonly len: number;
1188
+ readonly fleet_los_mod: number | undefined;
1189
+ }
1190
+ export class Gear {
1191
+ private constructor();
1192
+ free(): void;
1193
+ static default(): Gear;
1194
+ has_attr(attr: GearAttr): boolean;
1195
+ category(): GearCategory;
1196
+ is_high_angle_mount(): boolean;
1197
+ is_carrier_shelling_plane(): boolean;
1198
+ is_hayabusa_20th_squadron(): boolean;
1199
+ has_proficiency(): boolean;
1200
+ max_exp_eq_120(): boolean;
1201
+ calc_fighter_power(slot_size: number): number;
1202
+ calc_interception_power(slot_size: number): number;
1203
+ fleet_anti_air_mod(): number;
1204
+ ship_anti_air_mod(): number;
1205
+ calc_contact_trigger_factor(slot_size: number): number;
1206
+ contact_selection_rate(rank: AirStateRank): number;
1207
+ night_contact_rate(level: number): number;
1208
+ is_night_attacker(): boolean;
1209
+ is_night_fighter(): boolean;
1210
+ is_night_plane(): boolean;
1211
+ night_plane_power(slot_size: number, anti_inst: boolean): number;
1212
+ elos(): number;
1213
+ is_abyssal(): boolean;
1214
+ is_abyssal_cuttlefish_torpedo(): boolean;
1215
+ is_abyssal_patrolling_attack_hawk(): boolean;
1216
+ expedition_bonus(): number;
1217
+ can_be_deployed_to_land_base(): boolean;
1218
+ is_balloon(): boolean;
1219
+ id: string;
1220
+ readonly hash: bigint;
1221
+ readonly gear_id: number;
1222
+ readonly stars: number;
1223
+ readonly exp: number;
1224
+ readonly default_exp: number;
1225
+ name: string;
1226
+ types: Uint8Array;
1227
+ readonly gear_type: GearType;
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;
1236
+ readonly los: number;
1237
+ readonly luck: number;
1238
+ readonly accuracy: number;
1239
+ readonly evasion: number;
1240
+ readonly range: number;
1241
+ readonly radius: number;
1242
+ readonly cost: number;
1243
+ readonly improvable: boolean;
1244
+ readonly ship_anti_air_resist: number;
1245
+ readonly fleet_anti_air_resist: number;
1246
+ readonly gear_type_id: number;
1247
+ readonly special_type: number;
1248
+ readonly icon_id: number;
1249
+ readonly ace: number;
1250
+ readonly anti_bomber: number;
1251
+ readonly interception: number;
1252
+ }
1253
+ export class Org {
1254
+ private constructor();
1255
+ free(): void;
1256
+ first_ship_id(): string | undefined;
1257
+ get_ship_mid(fleet_key: FleetKey, ship_key: ShipKey): number | undefined;
1258
+ get_ship_eid(fleet_key: FleetKey, ship_key: ShipKey): string | undefined;
1259
+ get_fleet_id(key: FleetKey): string;
1260
+ air_squadron_ids(): string[];
1261
+ main_ship_ids(): Uint16Array;
1262
+ escort_ship_ids(): Uint16Array;
1263
+ clone_fleet(key: FleetKey): Fleet;
1264
+ clone_ship(fleet_key: FleetKey, ship_key: ShipKey): Ship | undefined;
1265
+ get_ship_by_id(id: string): Ship | undefined;
1266
+ ship_keys(key: FleetKey): string[];
1267
+ create_comp(): Comp;
1268
+ create_comp_by_key(key: FleetKey): Comp;
1269
+ get_air_squadron(key: string): AirSquadron;
1270
+ get_air_squadron_gear_ids_by_improvable(): string[];
1271
+ get_air_squadron_gear_ids_by_proficiency(): string[];
1272
+ side(): Side;
1273
+ is_player(): boolean;
1274
+ is_enemy(): boolean;
1275
+ is_single(): boolean;
1276
+ is_combined(): boolean;
1277
+ /**
1278
+ * 防空時の基地制空値
1279
+ */
1280
+ interception_power(): number;
1281
+ /**
1282
+ * 高高度迎撃時の基地制空値
1283
+ */
1284
+ high_altitude_interception_power(): number;
1285
+ create_move_ship_payload(
1286
+ id: string,
1287
+ x: number,
1288
+ y: number,
1289
+ ): MoveShipPayload | undefined;
1290
+ get_fleet_type(key: FleetKey): FleetType | undefined;
1291
+ id: string;
1292
+ readonly hash: bigint;
1293
+ readonly hq_level: number;
1294
+ readonly org_type: OrgType;
1295
+ readonly sortie: FleetKey;
1296
+ readonly route_sup: FleetKey | undefined;
1297
+ readonly boss_sup: FleetKey | undefined;
1298
+ }
1299
+ export class Ship {
1300
+ private constructor();
1301
+ free(): void;
1302
+ state_day_gunfit_accuracy(): number | undefined;
1303
+ state_night_gunfit_accuracy(): number | undefined;
1304
+ /**
1305
+ * フィット砲補正
1306
+ */
1307
+ gunfit_accuracy(is_night: boolean): number;
1308
+ static default(): Ship;
1309
+ eq_id(id: string): boolean;
1310
+ state(): ShipState;
1311
+ custom_power_mods(): CustomPowerModifiers;
1312
+ meta(): ShipMeta;
1313
+ damage_state(): DamageState;
1314
+ morale_state(): MoraleState;
1315
+ category(): ShipCategory;
1316
+ has_attr(attr: ShipAttr): boolean;
1317
+ gear_keys(): string[];
1318
+ get_gear(key: string): Gear | undefined;
1319
+ get_damage_bound(state: DamageState): number | undefined;
1320
+ get_remaining_fuel(rate: number, ceil: boolean): number;
1321
+ get_remaining_ammo(rate: number, ceil: boolean): number;
1322
+ has_unknown_stat(key: string): boolean;
1323
+ get_naked_stat(key: string): number | undefined;
1324
+ get_stat_interval_left(key: string): number | undefined;
1325
+ get_stat_interval_right(key: string): number | undefined;
1326
+ get_gear_stat(key: string): number;
1327
+ get_ebonus(key: string): number;
1328
+ get_stat_mod(key: string): number | undefined;
1329
+ is_abyssal(): boolean;
1330
+ is_submarine(): boolean;
1331
+ is_amagiri(): boolean;
1332
+ can_equip(gear: Gear, key: string): boolean;
1333
+ is_installation(): boolean;
1334
+ is_pt_imp(): boolean;
1335
+ special_enemy_type(): SpecialEnemyType;
1336
+ is_attackable_by_torpedo(): boolean;
1337
+ get_slot_size(index: number): number | undefined;
1338
+ get_max_slot_size(index: number): number | undefined;
1339
+ remaining_ammo_mod(): number;
1340
+ remaining_fuel_mod(): number;
1341
+ fighter_power(air_type: AirWaveType): number | undefined;
1342
+ fleet_los_factor(): number | undefined;
1343
+ /**
1344
+ * 加重対空
1345
+ */
1346
+ ship_adjusted_anti_air(side: Side): number | undefined;
1347
+ /**
1348
+ * 艦隊対空補正
1349
+ */
1350
+ fleet_anti_air_mod(): number;
1351
+ cruiser_fit_bonus(): number;
1352
+ basic_accuracy_term(): number | undefined;
1353
+ basic_evasion_term(): number | undefined;
1354
+ evasion_term(
1355
+ formation_mod: number,
1356
+ postcap_additive: number,
1357
+ postcap_multiplicative: number,
1358
+ ): number | undefined;
1359
+ basic_defense_power(armor_penetration: number): number | undefined;
1360
+ transport_point(): number;
1361
+ elos(node_divaricated_factor: number): number | undefined;
1362
+ /**
1363
+ * 確殺攻撃力
1364
+ */
1365
+ ohko_power(): number | undefined;
1366
+ id: string;
1367
+ readonly hash: bigint;
1368
+ readonly ship_id: number;
1369
+ readonly level: number;
1370
+ readonly current_hp: number;
1371
+ readonly morale: number;
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;
1379
+ readonly naked_armor: number | undefined;
1380
+ readonly naked_anti_air: number | undefined;
1381
+ readonly naked_evasion: number | undefined;
1382
+ readonly naked_asw: number | undefined;
1383
+ readonly naked_los: number | undefined;
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;
1391
+ readonly name: string;
1392
+ readonly yomi: string;
1393
+ readonly stype: number;
1394
+ readonly sort_id: number;
1395
+ readonly remodel_rank: number;
1396
+ readonly slotnum: number;
1397
+ readonly next_id: number;
1398
+ readonly useful: boolean;
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;
1409
+ }