fleethub-core 1.2.0 → 1.2.1

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.
@@ -28,44 +28,6 @@ export function org_type_side(org_type: OrgType): Side;
28
28
  /**
29
29
  */
30
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
31
  export type AirStateRank = "Rank0" | "Rank1" | "Rank2" | "Rank3";
70
32
 
71
33
  export type AirState =
@@ -88,6 +50,28 @@ export type NightSituation = {
88
50
  searchlight: boolean;
89
51
  };
90
52
 
53
+ export type CompDayCutinRateInfo = {
54
+ main: FleetDayCutinRateInfo;
55
+ escort: FleetDayCutinRateInfo | null;
56
+ };
57
+
58
+ export type FleetDayCutinRateInfo = {
59
+ fleet_los_mod: number | null;
60
+ ships: ShipDayCutinRateInfo[];
61
+ };
62
+
63
+ export type ShipDayCutinRateInfo = {
64
+ ship_id: number;
65
+ air_supremacy: DayCutinRateInfo;
66
+ air_superiority: DayCutinRateInfo;
67
+ };
68
+
69
+ export type DayCutinRateInfo = {
70
+ observation_term: number | null;
71
+ rates: [DayCutin | null, number | null][];
72
+ total_cutin_rate: number | null;
73
+ };
74
+
91
75
  export type DamageInfo = {
92
76
  miss_damage_min: number;
93
77
  miss_damage_max: number;
@@ -101,101 +85,6 @@ export type DamageInfo = {
101
85
  damage_state_map: NumMap<DamageState, number>;
102
86
  };
103
87
 
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
88
  export type GearTypes = [number, number, number, number, number];
200
89
 
201
90
  export type MasterGear = {
@@ -307,6 +196,89 @@ export type MasterData = {
307
196
 
308
197
  export type ContactRank = "Rank1" | "Rank2" | "Rank3";
309
198
 
199
+ export type AirWaveType = "Jet" | "LandBase" | "Carrier";
200
+
201
+ export type SimulatorResult = {
202
+ items: SimulatorResultItem[];
203
+ sunk_vec: [number, number, number][];
204
+ };
205
+
206
+ export type SimulatorResultItem = {
207
+ id: string;
208
+ role: Role;
209
+ index: number;
210
+ damage_state_map: Record<DamageState, number>;
211
+ };
212
+
213
+ export type AswAttackType = "DepthCharge" | "Aircraft";
214
+
215
+ export type SpecialEnemyType =
216
+ | "None"
217
+ | "SoftSkinned"
218
+ | "Pillbox"
219
+ | "IsolatedIsland"
220
+ | "SupplyDepot"
221
+ | "HarbourSummerPrincess"
222
+ | "PtImp"
223
+ | "BattleshipSummerPrincess"
224
+ | "HeavyCruiserSummerPrincess";
225
+
226
+ export type MoraleState = "Sparkle" | "Normal" | "Orange" | "Red";
227
+
228
+ export type DamageState = "Normal" | "Shouha" | "Chuuha" | "Taiha" | "Sunk";
229
+
230
+ export type SpeedGroup = "A" | "B1" | "B2" | "C";
231
+
232
+ export type ShipAttr =
233
+ | "Abyssal"
234
+ | "NightCarrier"
235
+ | "Installation"
236
+ | "RoyalNavy"
237
+ | "Kai2"
238
+ | "TurbineSpeedBonus"
239
+ | "Pillbox"
240
+ | "IsolatedIsland"
241
+ | "HarbourSummerPrincess"
242
+ | "SupplyDepot"
243
+ | "PtImp"
244
+ | "BattleshipSummerPrincess"
245
+ | "HeavyCruiserSummerPrincess";
246
+
247
+ export type ShipType =
248
+ | "Unknown"
249
+ | "DE"
250
+ | "DD"
251
+ | "CL"
252
+ | "CLT"
253
+ | "CA"
254
+ | "CAV"
255
+ | "CVL"
256
+ | "FBB"
257
+ | "BB"
258
+ | "BBV"
259
+ | "CV"
260
+ | "XBB"
261
+ | "SS"
262
+ | "SSV"
263
+ | "AP"
264
+ | "AV"
265
+ | "LHA"
266
+ | "CVB"
267
+ | "AR"
268
+ | "AS"
269
+ | "CT"
270
+ | "AO";
271
+
272
+ export type ShipCategory =
273
+ | "Battleship"
274
+ | "AircraftCarrier"
275
+ | "HeavyCruiser"
276
+ | "LightCruiser"
277
+ | "Destroyer"
278
+ | "CoastalDefenseShip"
279
+ | "Submarine"
280
+ | "AuxiliaryShip";
281
+
310
282
  export type CompMeta = { fleets: Record<FleetType, FleetMeta> };
311
283
 
312
284
  export type FleetMeta = {
@@ -317,6 +289,8 @@ export type FleetMeta = {
317
289
 
318
290
  export type ShipMeta = { id: string; ship_id: number };
319
291
 
292
+ export type Engagement = "GreenT" | "Parallel" | "HeadOn" | "RedT";
293
+
320
294
  export type WarfareContext = {
321
295
  attacker_env: WarfareShipEnvironment;
322
296
  target_env: WarfareShipEnvironment;
@@ -334,8 +308,6 @@ export type WarfareShipEnvironment = {
334
308
  fleet_los_mod: number | null;
335
309
  };
336
310
 
337
- export type AswAttackType = "DepthCharge" | "Aircraft";
338
-
339
311
  export type ShellingSpecialAttack =
340
312
  | { DayCutin: DayCutin }
341
313
  | { FleetCutin: FleetCutin };
@@ -352,7 +324,43 @@ export type DayCutin =
352
324
  | "Zuiun"
353
325
  | "AirSea";
354
326
 
355
- export type Engagement = "GreenT" | "Parallel" | "HeadOn" | "RedT";
327
+ export type EBonusFnGearInput = {
328
+ gear_id: number;
329
+ types: GearTypes;
330
+ firepower: number;
331
+ torpedo: number;
332
+ anti_air: number;
333
+ armor: number;
334
+ evasion: number;
335
+ asw: number;
336
+ los: number;
337
+ bombing: number;
338
+ accuracy: number;
339
+ range: number;
340
+ radius: number;
341
+ stars: number;
342
+ ace: number;
343
+ };
344
+
345
+ export type EBonusFnShipInput = {
346
+ ship_id: number;
347
+ ctype: number;
348
+ stype: number;
349
+ yomi: string;
350
+ };
351
+
352
+ export type EBonuses = {
353
+ firepower: number;
354
+ torpedo: number;
355
+ anti_air: number;
356
+ armor: number;
357
+ evasion: number;
358
+ asw: number;
359
+ los: number;
360
+ bombing: number;
361
+ accuracy: number;
362
+ range: number;
363
+ };
356
364
 
357
365
  export type AttackPower = {
358
366
  precap: number;
@@ -495,26 +503,93 @@ export type ShipKey = "s1" | "s2" | "s3" | "s4" | "s5" | "s6" | "s7";
495
503
 
496
504
  export type ShipStateMap = Record<ShipKey, ShipState>;
497
505
 
498
- export type CompDayCutinRateInfo = {
499
- main: FleetDayCutinRateInfo;
500
- escort: FleetDayCutinRateInfo | null;
506
+ export type Formation = SingleFormation | CombinedFormation;
507
+
508
+ export type CombinedFormation =
509
+ | "Cruising1"
510
+ | "Cruising2"
511
+ | "Cruising3"
512
+ | "Cruising4";
513
+
514
+ export type SingleFormation =
515
+ | "LineAhead"
516
+ | "DoubleLine"
517
+ | "Diamond"
518
+ | "Echelon"
519
+ | "LineAbreast"
520
+ | "Vanguard";
521
+
522
+ export type FleetType = "Main" | "Escort" | "RouteSup" | "BossSup";
523
+
524
+ export type ShellingAttackType = "Normal" | "Carrier";
525
+
526
+ export type FleetCutinAnalysis = {
527
+ shelling: FleetCutinInfo[];
528
+ night: FleetCutinInfo[];
501
529
  };
502
530
 
503
- export type FleetDayCutinRateInfo = {
504
- fleet_los_mod: number | null;
505
- ships: ShipDayCutinRateInfo[];
531
+ export type FleetCutinInfo = {
532
+ cutin: FleetCutin;
533
+ formation: Formation;
534
+ items: FleetCutinInfoItem[];
506
535
  };
507
536
 
508
- export type ShipDayCutinRateInfo = {
537
+ export type FleetCutinInfoItem = {
509
538
  ship_id: number;
510
- air_supremacy: DayCutinRateInfo;
511
- air_superiority: DayCutinRateInfo;
539
+ cutin: FleetCutin;
540
+ fleet_cutin_mod: number;
541
+ stats: AttackStats;
512
542
  };
513
543
 
514
- export type DayCutinRateInfo = {
515
- observation_term: number | null;
516
- rates: [DayCutin | null, number | null][];
517
- total_cutin_rate: number | null;
544
+ export type AttackInfo<AttackType, Cutin> = {
545
+ attack_type: AttackType;
546
+ items: AttackInfoItem<Cutin>[];
547
+ damage_state_map: NumMap<DamageState, number> | null;
548
+ };
549
+
550
+ export type AttackInfoItem<Cutin> = {
551
+ cutin: Cutin;
552
+ rate: number | null;
553
+ stats: AttackStats;
554
+ };
555
+
556
+ export type AttackStats = {
557
+ attack_power: AttackPower | null;
558
+ attack_power_params: AttackPowerParams | null;
559
+ hits: number;
560
+ hit_rate: HitRate | null;
561
+ hit_rate_params: HitRateParams | null;
562
+ damage: DamageInfo | null;
563
+ };
564
+
565
+ export type CompAntiAirInfo = {
566
+ fleet_anti_air: number;
567
+ ships: ShipAntiAirInfo[];
568
+ anti_air_cutin_chance: [number, number][];
569
+ };
570
+
571
+ export type ShipAntiAirInfo = {
572
+ ship_id: number;
573
+ adjusted_anti_air: number | null;
574
+ proportional_shotdown_rate: number | null;
575
+ fixed_shotdown_number: number | null;
576
+ minimum_bonus: number | null;
577
+ anti_air_cutin_chance: [number, number][];
578
+ anti_air_propellant_barrage_chance: number | null;
579
+ };
580
+
581
+ export type CompContactChanceInfo = {
582
+ single: AirstrikeContactChance[] | null;
583
+ combined: AirstrikeContactChance[] | null;
584
+ };
585
+
586
+ export type AirstrikeContactChance = {
587
+ air_state: AirState;
588
+ trigger_rate: number;
589
+ rank3: number;
590
+ rank2: number;
591
+ rank1: number;
592
+ total: number;
518
593
  };
519
594
 
520
595
  export type GearAttr =
@@ -597,98 +672,30 @@ export type GearType =
597
672
  | "SubmarineTorpedo"
598
673
  | "Starshell"
599
674
  | "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";
675
+ | "AviationPersonnel"
676
+ | "AntiAirFireDirector"
677
+ | "AntiGroundEquipment"
678
+ | "LargeMainGun2"
679
+ | "ShipPersonnel"
680
+ | "LargeSonar"
681
+ | "LargeFlyingBoat"
682
+ | "LargeSearchlight"
683
+ | "CombatRation"
684
+ | "Supplies"
685
+ | "SeaplaneFighter"
686
+ | "AmphibiousTank"
687
+ | "LbAttacker"
688
+ | "LbFighter"
689
+ | "LbRecon"
690
+ | "TransportationMaterial"
691
+ | "SubmarineEquipment"
692
+ | "LargeLbAircraft"
693
+ | "JetFighter"
694
+ | "JetFighterBomber"
695
+ | "JetTorpedoBomber"
696
+ | "JetRecon"
697
+ | "LargeRadar2"
698
+ | "CbRecon2";
692
699
 
693
700
  export type NightBattleAttackType =
694
701
  | { t: "NightAttack"; c: NightAttackType }
@@ -698,212 +705,31 @@ export type DayBattleAttackType =
698
705
  | { t: "Shelling"; c: ShellingAttackType }
699
706
  | { t: "Asw"; c: AswAttackType };
700
707
 
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";
708
+ import * as bindings from "../bindings";
709
+ export * from "../bindings";
869
710
 
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";
711
+ export type NightAttackType = "Normal" | "ArkRoyal" | "Carrier";
894
712
 
895
- export type ShipCategory =
896
- | "Battleship"
897
- | "AircraftCarrier"
898
- | "HeavyCruiser"
899
- | "LightCruiser"
900
- | "Destroyer"
901
- | "CoastalDefenseShip"
902
- | "Submarine"
903
- | "AuxiliaryShip";
713
+ export type NightSpecialAttack =
714
+ | { NightCutin: NightCutin }
715
+ | { FleetCutin: FleetCutin };
904
716
 
905
- import * as bindings from "../bindings";
906
- export * from "../bindings";
717
+ export type NightCutin =
718
+ | "MainTorpRadar"
719
+ | "TorpLookoutRadar"
720
+ | "TorpTsloTorp"
721
+ | "TorpTsloDrum"
722
+ | "DoubleAttack"
723
+ | "TorpTorpMain"
724
+ | "TorpTorpTorp"
725
+ | "MainMainSec"
726
+ | "MainMainMain"
727
+ | "SubTorpTorp"
728
+ | "SubRadarTorp"
729
+ | "Cvci1_25"
730
+ | "Cvci1_20"
731
+ | "Cvci1_18"
732
+ | "Photobomber";
907
733
 
908
734
  export type HitRate = { total: number; normal: number; critical: number };
909
735
 
@@ -942,28 +768,86 @@ export type WarfareAnalyzerShipEnvironment = {
942
768
  custom_mods: CustomModifiers;
943
769
  };
944
770
 
945
- export type NightAttackType = "Normal" | "ArkRoyal" | "Carrier";
771
+ export type FleetCutin =
772
+ | "NelsonTouch"
773
+ | "NagatoCutin"
774
+ | "ColoradoCutin"
775
+ | "KongouCutin";
946
776
 
947
- export type NightSpecialAttack =
948
- | { NightCutin: NightCutin }
949
- | { FleetCutin: FleetCutin };
777
+ export type BattleConfig = {
778
+ formation: NestedFormationDef[];
779
+ anti_air_cutin: AntiAirCutinDef[];
780
+ day_cutin: DayCutinDef[];
781
+ night_cutin: NightCutinDef[];
782
+ };
950
783
 
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";
784
+ export type NightCutinDef = {
785
+ tag: NightCutin;
786
+ hits: number;
787
+ chance_denom: number | null;
788
+ power_mod: number | null;
789
+ accuracy_mod: number | null;
790
+ };
791
+
792
+ export type DayCutinDef = {
793
+ tag: DayCutin;
794
+ hits: number;
795
+ chance_denom: number | null;
796
+ power_mod: number | null;
797
+ accuracy_mod: number | null;
798
+ };
799
+
800
+ export type AntiAirCutinDef = {
801
+ id: number;
802
+ chance_numer: number | null;
803
+ multiplier: number | null;
804
+ minimum_bonus: number | null;
805
+ sequential: boolean | null;
806
+ };
807
+
808
+ export type NestedFormationDef =
809
+ | FormationDef
810
+ | { top_half: FormationDef; bottom_half: FormationDef };
811
+
812
+ export type FormationDef = {
813
+ tag: Formation;
814
+ protection_rate: number | null;
815
+ fleet_anti_air_mod: number;
816
+ shelling: FormationWarfareDef;
817
+ torpedo: FormationWarfareDef;
818
+ asw: FormationWarfareDef;
819
+ night: FormationWarfareDef;
820
+ shelling_support: FormationWarfareDef;
821
+ };
822
+
823
+ export type FormationWarfareDef = {
824
+ power_mod: number | null;
825
+ accuracy_mod: number | null;
826
+ evasion_mod: number | null;
827
+ };
828
+
829
+ export type FleetNightCutinRateInfo = {
830
+ night_contact_chance: NightContactChance;
831
+ ships: ShipNightCutinRateInfo[];
832
+ };
833
+
834
+ export type ShipNightCutinRateInfo = {
835
+ ship_id: number;
836
+ normal: NightCutinRateInfo;
837
+ chuuha: NightCutinRateInfo;
838
+ };
839
+
840
+ export type NightCutinRateInfo = {
841
+ cutin_term: number | null;
842
+ rates: [NightCutin | null, number | null][];
843
+ };
844
+
845
+ export type NightContactChance = {
846
+ rank1: number;
847
+ rank2: number;
848
+ rank3: number;
849
+ total: number;
850
+ };
967
851
 
968
852
  /**
969
853
  */
@@ -1082,6 +966,10 @@ export class Comp {
1082
966
  * @returns {boolean}
1083
967
  */
1084
968
  is_combined(): boolean;
969
+ /**
970
+ * @returns {boolean}
971
+ */
972
+ is_player(): boolean;
1085
973
  /**
1086
974
  * @returns {boolean}
1087
975
  */
@@ -1143,6 +1031,15 @@ export class Comp {
1143
1031
  * @returns {number}
1144
1032
  */
1145
1033
  transport_point(): number;
1034
+ /**
1035
+ * @param {Ship} ship
1036
+ * @param {Formation} formation
1037
+ * @returns {WarfareShipEnvironment}
1038
+ */
1039
+ create_warfare_ship_environment(
1040
+ ship: Ship,
1041
+ formation: Formation
1042
+ ): WarfareShipEnvironment;
1146
1043
  /**
1147
1044
  */
1148
1045
  boss_sup?: Fleet;
@@ -1665,6 +1562,10 @@ export class Org {
1665
1562
  * @returns {(string)[]}
1666
1563
  */
1667
1564
  get_air_squadron_gear_ids_by_proficiency(): string[];
1565
+ /**
1566
+ * @returns {Side}
1567
+ */
1568
+ side(): Side;
1668
1569
  /**
1669
1570
  * @returns {boolean}
1670
1571
  */
@@ -1911,10 +1812,6 @@ export class Ship {
1911
1812
  * @returns {number | undefined}
1912
1813
  */
1913
1814
  basic_defense_power(armor_penetration: number): number | undefined;
1914
- /**
1915
- * @returns {Uint8Array}
1916
- */
1917
- get_possible_anti_air_cutin_ids(): Uint8Array;
1918
1815
  /**
1919
1816
  * @returns {number}
1920
1817
  */
@@ -1948,9 +1845,8 @@ export class Ship {
1948
1845
  */
1949
1846
  readonly asw: number | undefined;
1950
1847
  /**
1951
- * @returns {number}
1952
1848
  */
1953
- readonly ctype: number;
1849
+ ctype: number;
1954
1850
  /**
1955
1851
  */
1956
1852
  current_hp: number;
@@ -2042,9 +1938,6 @@ export class Ship {
2042
1938
  * @returns {number | undefined}
2043
1939
  */
2044
1940
  readonly range: number | undefined;
2045
- /**
2046
- */
2047
- ship_class: ShipClass;
2048
1941
  /**
2049
1942
  */
2050
1943
  ship_id: number;