fleethub-core 1.11.23 → 1.11.25

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.
@@ -8,31 +8,44 @@ export function parse_ship_conditions(value: ShipConditions): ShipConditions;
8
8
  /**
9
9
  */
10
10
  export function set_panic_hook(): void;
11
- export interface CompAnalyzerConfig {
12
- engagement: Engagement;
11
+ export type GearTypeIdArray = [number, number, number, number, number];
12
+
13
+ export interface FleetCutinReport<T> {
14
+ cutin: FleetCutin;
15
+ rate: number | null;
13
16
  formation: Formation;
14
- anti_air_cutin: number | null;
15
- ship_anti_air_resist: number;
16
- fleet_anti_air_resist: number;
17
- left_night_fleet_conditions: NightFleetConditions;
18
- right_night_fleet_conditions: NightFleetConditions;
17
+ attacks: FleetCutinAttackReport<T>[];
19
18
  }
20
19
 
21
- export interface CompNightAnalysis {
22
- night_cutin: CompNightCutinAnalysis;
23
- fleet_cutin: FleetCutinReport<NightAttackStyle>[];
20
+ export interface FleetCutinAttackReport<T> extends AttackReport<T> {
21
+ index: number;
22
+ ship_id: number;
23
+ power_mod: number;
24
24
  }
25
25
 
26
- export interface CompDayAnalysis {
27
- day_cutin: CompDayCutinAnalysis;
28
- fleet_cutin: FleetCutinReport<ShellingStyle>[];
26
+ export interface DamageReport {
27
+ miss_damage_min: number;
28
+ miss_damage_max: number;
29
+ normal_damage_min: number;
30
+ normal_damage_max: number;
31
+ critical_damage_min: number;
32
+ critical_damage_max: number;
33
+ normal_scratch_rate: number;
34
+ critical_scratch_rate: number;
35
+ damage_density: Histogram<number, number>;
36
+ damage_state_density: Histogram<DamageState, number>;
29
37
  }
30
38
 
31
- export interface CompAnalysis {
32
- day: CompDayAnalysis;
33
- night: CompNightAnalysis;
34
- contact: ContactAnalysis;
35
- anti_air: CompAntiAirAnalysis;
39
+ export interface AttackAnalysis {
40
+ attacker_is_player: boolean;
41
+ attacker_ship_id: number;
42
+ target_ship_id: number;
43
+ historical_params: HistoricalParams;
44
+ day: ActionReport<DayPhaseAttackStyle>;
45
+ night: ActionReport<NightPhaseAttackStyle>;
46
+ closing_torpedo: ActionReport<TorpedoAttackStyle>;
47
+ opening_asw: ActionReport<AswAttackStyle>;
48
+ support_shelling: ActionReport<SupportShellingStyle>;
36
49
  }
37
50
 
38
51
  export type AirSquadronMode = "Sortie" | "AirDefense";
@@ -42,19 +55,70 @@ export interface AirSquadronState extends GearVecState, SlotSizeVecState {
42
55
  mode?: AirSquadronMode;
43
56
  }
44
57
 
45
- export type AirState =
46
- | "AirSupremacy"
47
- | "AirSuperiority"
48
- | "AirParity"
49
- | "AirDenial"
50
- | "AirIncapability";
58
+ export type ContactRank = "Rank1" | "Rank2" | "Rank3";
51
59
 
52
- export type AirStateRank = "Rank0" | "Rank1" | "Rank2" | "Rank3";
60
+ export type DamageState = "Normal" | "Shouha" | "Chuuha" | "Taiha" | "Sunk";
53
61
 
54
62
  export type Engagement = "GreenT" | "Parallel" | "HeadOn" | "RedT";
55
63
 
56
64
  export type Role = "Main" | "Escort";
57
65
 
66
+ export interface ShipConditions extends ShipPosition {
67
+ formation?: Formation;
68
+ amagiri_index?: number | null;
69
+ }
70
+
71
+ export type ShipCategory =
72
+ | "Battleship"
73
+ | "AircraftCarrier"
74
+ | "HeavyCruiser"
75
+ | "LightCruiser"
76
+ | "Destroyer"
77
+ | "CoastalDefenseShip"
78
+ | "Submarine"
79
+ | "AuxiliaryShip";
80
+
81
+ export type ShipType =
82
+ | "Unknown"
83
+ | "DE"
84
+ | "DD"
85
+ | "CL"
86
+ | "CLT"
87
+ | "CA"
88
+ | "CAV"
89
+ | "CVL"
90
+ | "FBB"
91
+ | "BB"
92
+ | "BBV"
93
+ | "CV"
94
+ | "XBB"
95
+ | "SS"
96
+ | "SSV"
97
+ | "AP"
98
+ | "AV"
99
+ | "LHA"
100
+ | "CVB"
101
+ | "AR"
102
+ | "AS"
103
+ | "CT"
104
+ | "AO";
105
+
106
+ export type SpecialEnemyType =
107
+ | "None"
108
+ | "SoftSkinned"
109
+ | "Pillbox"
110
+ | "IsolatedIsland"
111
+ | "SupplyDepot"
112
+ | "NewSupplyDepot"
113
+ | "HarbourSummerPrincess"
114
+ | "PtImp"
115
+ | "BattleshipSummerPrincess"
116
+ | "HeavyCruiserSummerPrincess"
117
+ | "FrenchBattleshipPrincess"
118
+ | "AnchorageWaterDemonVacationMode"
119
+ | "DockPrincess"
120
+ | "SummerAircraftCarrierDemon";
121
+
58
122
  export interface SupportShellingSimulatorParams {
59
123
  attacker_formation?: Formation;
60
124
  target_formation?: Formation;
@@ -62,6 +126,8 @@ export interface SupportShellingSimulatorParams {
62
126
  node_state: NodeState;
63
127
  }
64
128
 
129
+ export type FhResult<T> = { Ok: T } | { Err: string };
130
+
65
131
  export interface MasterIBonuses {
66
132
  shelling_power: MasterIBonusRule[];
67
133
  shelling_accuracy: MasterIBonusRule[];
@@ -167,10 +233,6 @@ export interface NightFleetConditions {
167
233
  activates_large_searchlight?: boolean;
168
234
  }
169
235
 
170
- export type ContactRank = "Rank1" | "Rank2" | "Rank3";
171
-
172
- export type DamageState = "Normal" | "Shouha" | "Chuuha" | "Taiha" | "Sunk";
173
-
174
236
  export interface FleetState {
175
237
  id?: string;
176
238
  len?: number;
@@ -200,29 +262,6 @@ export interface CompMeta {
200
262
 
201
263
  export type MoraleState = "Sparkle" | "Normal" | "Orange" | "Red";
202
264
 
203
- export interface ShipConditions extends ShipPosition {
204
- formation?: Formation;
205
- amagiri_index?: number | null;
206
- }
207
-
208
- export type SpecialEnemyType =
209
- | "None"
210
- | "SoftSkinned"
211
- | "Pillbox"
212
- | "IsolatedIsland"
213
- | "SupplyDepot"
214
- | "NewSupplyDepot"
215
- | "HarbourSummerPrincess"
216
- | "PtImp"
217
- | "BattleshipSummerPrincess"
218
- | "HeavyCruiserSummerPrincess"
219
- | "FrenchBattleshipPrincess"
220
- | "AnchorageWaterDemonVacationMode"
221
- | "DockPrincess"
222
- | "SummerAircraftCarrierDemon";
223
-
224
- export type FhResult<T> = { Ok: T } | { Err: string };
225
-
226
265
  export interface MasterData extends MasterBattleDefinitions {
227
266
  created_at: number;
228
267
  gears: MasterGear[];
@@ -244,37 +283,6 @@ export interface MasterAttrRule<T> {
244
283
  expr: CompiledEvaler;
245
284
  }
246
285
 
247
- export interface EquippabilityRule {
248
- ship: CompiledEvaler;
249
- keys?: string[];
250
- include?: string;
251
- exclude?: string;
252
- }
253
-
254
- export interface MasterEquippability {
255
- equip_stype: EquipStype[];
256
- equip_exslot: number[];
257
- equip_ship: MstEquipShip[];
258
- equip_exslot_ship: Record<number, MstEquipExslotShip>;
259
- rules: EquippabilityRule[];
260
- }
261
-
262
- export interface MstEquipExslotShip {
263
- api_ctypes: Record<number, number> | null;
264
- api_ship_ids: Record<number, number> | null;
265
- api_stypes: Record<number, number> | null;
266
- }
267
-
268
- export interface MstEquipShip {
269
- api_ship_id: number;
270
- api_equip_type: number[];
271
- }
272
-
273
- export interface EquipStype {
274
- id: number;
275
- equip_type: number[];
276
- }
277
-
278
286
  export interface MasterBattleDefinitions {
279
287
  formation: NestedFormationDef[];
280
288
  anti_air_cutin: AntiAirCutinDef[];
@@ -333,22 +341,6 @@ export interface AttackAnalyzerShipConfig
333
341
  fleet_los_mod?: number | null;
334
342
  }
335
343
 
336
- export type SingleFormation =
337
- | "LineAhead"
338
- | "DoubleLine"
339
- | "Diamond"
340
- | "Echelon"
341
- | "LineAbreast"
342
- | "Vanguard";
343
-
344
- export type CombinedFormation =
345
- | "Cruising1"
346
- | "Cruising2"
347
- | "Cruising3"
348
- | "Cruising4";
349
-
350
- export type Formation = SingleFormation | CombinedFormation;
351
-
352
344
  export type GearAttr =
353
345
  | "Unknown"
354
346
  | "HighAngleMount"
@@ -406,15 +398,35 @@ export type OrgType =
406
398
  | "EnemySingle"
407
399
  | "EnemyCombined";
408
400
 
409
- export interface AttackReport<T> {
410
- style: T;
411
- proc_rate: number | null;
412
- attack_power: AttackPower | null;
413
- attack_power_params: AttackPowerParams | null;
414
- hits: number;
415
- hit_rate: HitRate | null;
416
- hit_rate_params: HitRateParams | null;
417
- damage: DamageReport | null;
401
+ export interface EquippabilityRule {
402
+ ship: CompiledEvaler;
403
+ keys?: string[];
404
+ include?: string;
405
+ exclude?: string;
406
+ }
407
+
408
+ export interface MasterEquippability {
409
+ equip_stype: EquipStype[];
410
+ equip_exslot: number[];
411
+ equip_ship: MstEquipShip[];
412
+ equip_exslot_ship: Record<number, MstEquipExslotShip>;
413
+ rules: EquippabilityRule[];
414
+ }
415
+
416
+ export interface MstEquipExslotShip {
417
+ api_ctypes: Record<number, number> | null;
418
+ api_ship_ids: Record<number, number> | null;
419
+ api_stypes: Record<number, number> | null;
420
+ }
421
+
422
+ export interface MstEquipShip {
423
+ api_ship_id: number;
424
+ api_equip_type: number[];
425
+ }
426
+
427
+ export interface EquipStype {
428
+ id: number;
429
+ equip_type: number[];
418
430
  }
419
431
 
420
432
  export interface CompAntiAirAnalysis {
@@ -510,6 +522,22 @@ export interface BattleDefinitions {
510
522
 
511
523
  export type FleetType = "Main" | "Escort" | "RouteSup" | "BossSup";
512
524
 
525
+ export type SingleFormation =
526
+ | "LineAhead"
527
+ | "DoubleLine"
528
+ | "Diamond"
529
+ | "Echelon"
530
+ | "LineAbreast"
531
+ | "Vanguard";
532
+
533
+ export type CombinedFormation =
534
+ | "Cruising1"
535
+ | "Cruising2"
536
+ | "Cruising3"
537
+ | "Cruising4";
538
+
539
+ export type Formation = SingleFormation | CombinedFormation;
540
+
513
541
  export interface ShipPosition {
514
542
  org_type?: OrgType;
515
543
  fleet_type?: FleetType;
@@ -519,26 +547,9 @@ export interface ShipPosition {
519
547
 
520
548
  export type Histogram<K extends keyof any, V> = Partial<Record<K, V>>;
521
549
 
522
- export type NodeId = string;
523
-
524
- export interface NodeState {
525
- map?: number;
526
- node?: NodeId;
527
- phase?: number;
528
- debuff?: boolean;
529
- disable_historical_mod?: boolean;
530
- landing_battle?: boolean;
531
- }
532
-
533
- export type Side = "Player" | "Enemy";
534
-
535
- export type Align = "Left" | "Right";
536
-
537
- export type CompiledEvaler = string;
538
-
539
- export interface SimulatorResult {
540
- items: SimulatorResultItem[];
541
- sunk_vec: [number, number, number][];
550
+ export interface SimulatorResult {
551
+ items: SimulatorResultItem[];
552
+ sunk_vec: [number, number, number][];
542
553
  }
543
554
 
544
555
  export interface SimulatorResultItem {
@@ -548,6 +559,25 @@ export interface SimulatorResultItem {
548
559
  damage_state_map: Record<DamageState, number>;
549
560
  }
550
561
 
562
+ export interface AttackReport<T> {
563
+ style: T;
564
+ proc_rate: number | null;
565
+ attack_power: AttackPower | null;
566
+ attack_power_params: AttackPowerParams | null;
567
+ hits: number;
568
+ hit_rate: HitRate | null;
569
+ hit_rate_params: HitRateParams | null;
570
+ damage: DamageReport | null;
571
+ }
572
+
573
+ export type AirWaveType = "Jet" | "LandBase" | "Carrier";
574
+
575
+ export type Side = "Player" | "Enemy";
576
+
577
+ export type Align = "Left" | "Right";
578
+
579
+ export type CompiledEvaler = string;
580
+
551
581
  export interface HitRate {
552
582
  normal: number;
553
583
  critical: number;
@@ -603,8 +633,6 @@ export interface DayContactChance {
603
633
  total: number;
604
634
  }
605
635
 
606
- export type AirWaveType = "Jet" | "LandBase" | "Carrier";
607
-
608
636
  export type AswAttackType = "DepthCharge" | "Aerial";
609
637
 
610
638
  export type ShellingType = "Normal" | "Aerial";
@@ -630,6 +658,19 @@ export type NightPhaseAttackType =
630
658
 
631
659
  export type TorpedoAttackType = null;
632
660
 
661
+ export type NodeId = string;
662
+
663
+ export interface NodeState {
664
+ map?: number;
665
+ node?: NodeId;
666
+ phase?: number;
667
+ debuff?: boolean;
668
+ disable_historical_mod?: boolean;
669
+ landing_battle?: boolean;
670
+ }
671
+
672
+ export type SlotSizeVec = (number | null)[];
673
+
633
674
  export interface MoveShipPayload {
634
675
  current: [string, string, ShipKey];
635
676
  target: [string | null, string, ShipKey];
@@ -698,6 +739,84 @@ export interface SupportShellingStyle {
698
739
  attack_type: SupportShellingType;
699
740
  }
700
741
 
742
+ export type GearType =
743
+ | "Unknown"
744
+ | "SmallMainGun"
745
+ | "MediumMainGun"
746
+ | "LargeMainGun"
747
+ | "SecondaryGun"
748
+ | "Torpedo"
749
+ | "CbFighter"
750
+ | "CbDiveBomber"
751
+ | "CbTorpedoBomber"
752
+ | "CbRecon"
753
+ | "ReconSeaplane"
754
+ | "SeaplaneBomber"
755
+ | "SmallRadar"
756
+ | "LargeRadar"
757
+ | "Sonar"
758
+ | "DepthCharge"
759
+ | "ExtraArmor"
760
+ | "Engine"
761
+ | "AntiAirShell"
762
+ | "ApShell"
763
+ | "VtFuze"
764
+ | "AntiAirGun"
765
+ | "MidgetSubmarine"
766
+ | "EmergencyRepair"
767
+ | "LandingCraft"
768
+ | "Rotorcraft"
769
+ | "AntiSubPatrolAircraft"
770
+ | "MediumArmor"
771
+ | "LargeArmor"
772
+ | "Searchlight"
773
+ | "SupplyContainer"
774
+ | "ShipRepairFacility"
775
+ | "SubmarineTorpedo"
776
+ | "Starshell"
777
+ | "CommandFacility"
778
+ | "AviationPersonnel"
779
+ | "AntiAirFireDirector"
780
+ | "AntiGroundEquipment"
781
+ | "LargeMainGun2"
782
+ | "ShipPersonnel"
783
+ | "LargeSonar"
784
+ | "LargeFlyingBoat"
785
+ | "LargeSearchlight"
786
+ | "CombatRation"
787
+ | "Supplies"
788
+ | "SeaplaneFighter"
789
+ | "AmphibiousTank"
790
+ | "LbAttacker"
791
+ | "LbFighter"
792
+ | "LbRecon"
793
+ | "TransportationMaterial"
794
+ | "SubmarineEquipment"
795
+ | "LandingForce"
796
+ | "LargeLbAircraft"
797
+ | "SurfaceEquipment"
798
+ | "JetFighter"
799
+ | "JetFighterBomber"
800
+ | "JetTorpedoBomber"
801
+ | "JetRecon"
802
+ | "LargeRadar2"
803
+ | "CbRecon2"
804
+ | "SecondaryGun2";
805
+
806
+ export type GearCategory =
807
+ | "Fighter"
808
+ | "Bomber"
809
+ | "Recon"
810
+ | "MainGun"
811
+ | "Secondary"
812
+ | "Torpedo"
813
+ | "AntiSub"
814
+ | "Radar"
815
+ | "Landing"
816
+ | "Ration"
817
+ | "LandBased"
818
+ | "Misc";
819
+
701
820
  export interface SlotSizeVecState {
702
821
  ss1?: number;
703
822
  ss2?: number;
@@ -730,10 +849,48 @@ export interface ShipState extends GearVecState, SlotSizeVecState {
730
849
 
731
850
  export type ShipKey = "s1" | "s2" | "s3" | "s4" | "s5" | "s6" | "s7";
732
851
 
733
- export type SlotSizeVec = (number | null)[];
734
-
735
852
  export type SpeedGroup = "A" | "B1" | "B2" | "C";
736
853
 
854
+ export type GearVecInput = GearInput[];
855
+
856
+ export interface GearInput {
857
+ gear_id: number;
858
+ types: GearTypeIdArray;
859
+ firepower: number;
860
+ torpedo: number;
861
+ anti_air: number;
862
+ armor: number;
863
+ evasion: number;
864
+ asw: number;
865
+ los: number;
866
+ bombing: number;
867
+ accuracy: number;
868
+ range: number;
869
+ radius: number;
870
+ stars: number;
871
+ ace: number;
872
+ }
873
+
874
+ export interface ShipInput {
875
+ ship_id: number;
876
+ ctype: number;
877
+ stype: number;
878
+ yomi: string;
879
+ }
880
+
881
+ export interface EBonuses {
882
+ firepower: number;
883
+ torpedo: number;
884
+ anti_air: number;
885
+ armor: number;
886
+ evasion: number;
887
+ asw: number;
888
+ los: number;
889
+ bombing: number;
890
+ accuracy: number;
891
+ range: number;
892
+ }
893
+
737
894
  export interface MasterShip {
738
895
  ship_id: number;
739
896
  name: string;
@@ -768,18 +925,6 @@ export interface MasterShip {
768
925
 
769
926
  export type StatInterval = [number | null, number | null];
770
927
 
771
- export interface AttackAnalysis {
772
- attacker_is_player: boolean;
773
- attacker_ship_id: number;
774
- target_ship_id: number;
775
- historical_params: HistoricalParams;
776
- day: ActionReport<DayPhaseAttackStyle>;
777
- night: ActionReport<NightPhaseAttackStyle>;
778
- closing_torpedo: ActionReport<TorpedoAttackStyle>;
779
- opening_asw: ActionReport<AswAttackStyle>;
780
- support_shelling: ActionReport<SupportShellingStyle>;
781
- }
782
-
783
928
  export type DayCutin =
784
929
  | "Zuiun"
785
930
  | "AirSea"
@@ -841,84 +986,6 @@ export interface GearVecState {
841
986
  gx?: GearState;
842
987
  }
843
988
 
844
- export type GearType =
845
- | "Unknown"
846
- | "SmallMainGun"
847
- | "MediumMainGun"
848
- | "LargeMainGun"
849
- | "SecondaryGun"
850
- | "Torpedo"
851
- | "CbFighter"
852
- | "CbDiveBomber"
853
- | "CbTorpedoBomber"
854
- | "CbRecon"
855
- | "ReconSeaplane"
856
- | "SeaplaneBomber"
857
- | "SmallRadar"
858
- | "LargeRadar"
859
- | "Sonar"
860
- | "DepthCharge"
861
- | "ExtraArmor"
862
- | "Engine"
863
- | "AntiAirShell"
864
- | "ApShell"
865
- | "VtFuze"
866
- | "AntiAirGun"
867
- | "MidgetSubmarine"
868
- | "EmergencyRepair"
869
- | "LandingCraft"
870
- | "Rotorcraft"
871
- | "AntiSubPatrolAircraft"
872
- | "MediumArmor"
873
- | "LargeArmor"
874
- | "Searchlight"
875
- | "SupplyContainer"
876
- | "ShipRepairFacility"
877
- | "SubmarineTorpedo"
878
- | "Starshell"
879
- | "CommandFacility"
880
- | "AviationPersonnel"
881
- | "AntiAirFireDirector"
882
- | "AntiGroundEquipment"
883
- | "LargeMainGun2"
884
- | "ShipPersonnel"
885
- | "LargeSonar"
886
- | "LargeFlyingBoat"
887
- | "LargeSearchlight"
888
- | "CombatRation"
889
- | "Supplies"
890
- | "SeaplaneFighter"
891
- | "AmphibiousTank"
892
- | "LbAttacker"
893
- | "LbFighter"
894
- | "LbRecon"
895
- | "TransportationMaterial"
896
- | "SubmarineEquipment"
897
- | "LandingForce"
898
- | "LargeLbAircraft"
899
- | "SurfaceEquipment"
900
- | "JetFighter"
901
- | "JetFighterBomber"
902
- | "JetTorpedoBomber"
903
- | "JetRecon"
904
- | "LargeRadar2"
905
- | "CbRecon2"
906
- | "SecondaryGun2";
907
-
908
- export type GearCategory =
909
- | "Fighter"
910
- | "Bomber"
911
- | "Recon"
912
- | "MainGun"
913
- | "Secondary"
914
- | "Torpedo"
915
- | "AntiSub"
916
- | "Radar"
917
- | "Landing"
918
- | "Ration"
919
- | "LandBased"
920
- | "Misc";
921
-
922
989
  export type ShipAttr =
923
990
  | "Unknown"
924
991
  | "NightCarrier"
@@ -940,108 +1007,41 @@ export type ShipAttr =
940
1007
  | "DockPrincess"
941
1008
  | "SummerAircraftCarrierDemon";
942
1009
 
943
- export type ShipCategory =
944
- | "Battleship"
945
- | "AircraftCarrier"
946
- | "HeavyCruiser"
947
- | "LightCruiser"
948
- | "Destroyer"
949
- | "CoastalDefenseShip"
950
- | "Submarine"
951
- | "AuxiliaryShip";
952
-
953
- export type ShipType =
954
- | "Unknown"
955
- | "DE"
956
- | "DD"
957
- | "CL"
958
- | "CLT"
959
- | "CA"
960
- | "CAV"
961
- | "CVL"
962
- | "FBB"
963
- | "BB"
964
- | "BBV"
965
- | "CV"
966
- | "XBB"
967
- | "SS"
968
- | "SSV"
969
- | "AP"
970
- | "AV"
971
- | "LHA"
972
- | "CVB"
973
- | "AR"
974
- | "AS"
975
- | "CT"
976
- | "AO";
977
-
978
- export type GearTypeIdArray = [number, number, number, number, number];
979
-
980
- export type GearVecInput = GearInput[];
981
-
982
- export interface GearInput {
983
- gear_id: number;
984
- types: GearTypeIdArray;
985
- firepower: number;
986
- torpedo: number;
987
- anti_air: number;
988
- armor: number;
989
- evasion: number;
990
- asw: number;
991
- los: number;
992
- bombing: number;
993
- accuracy: number;
994
- range: number;
995
- radius: number;
996
- stars: number;
997
- ace: number;
1010
+ export interface CompAnalyzerConfig {
1011
+ engagement: Engagement;
1012
+ formation: Formation;
1013
+ anti_air_cutin: number | null;
1014
+ ship_anti_air_resist: number;
1015
+ fleet_anti_air_resist: number;
1016
+ left_night_fleet_conditions: NightFleetConditions;
1017
+ right_night_fleet_conditions: NightFleetConditions;
998
1018
  }
999
1019
 
1000
- export interface ShipInput {
1001
- ship_id: number;
1002
- ctype: number;
1003
- stype: number;
1004
- yomi: string;
1020
+ export interface CompNightAnalysis {
1021
+ night_cutin: CompNightCutinAnalysis;
1022
+ fleet_cutin: FleetCutinReport<NightAttackStyle>[];
1005
1023
  }
1006
1024
 
1007
- export interface EBonuses {
1008
- firepower: number;
1009
- torpedo: number;
1010
- anti_air: number;
1011
- armor: number;
1012
- evasion: number;
1013
- asw: number;
1014
- los: number;
1015
- bombing: number;
1016
- accuracy: number;
1017
- range: number;
1025
+ export interface CompDayAnalysis {
1026
+ day_cutin: CompDayCutinAnalysis;
1027
+ fleet_cutin: FleetCutinReport<ShellingStyle>[];
1018
1028
  }
1019
1029
 
1020
- export interface FleetCutinReport<T> {
1021
- cutin: FleetCutin;
1022
- rate: number | null;
1023
- formation: Formation;
1024
- attacks: FleetCutinAttackReport<T>[];
1030
+ export interface CompAnalysis {
1031
+ day: CompDayAnalysis;
1032
+ night: CompNightAnalysis;
1033
+ contact: ContactAnalysis;
1034
+ anti_air: CompAntiAirAnalysis;
1025
1035
  }
1026
1036
 
1027
- export interface FleetCutinAttackReport<T> extends AttackReport<T> {
1028
- index: number;
1029
- ship_id: number;
1030
- power_mod: number;
1031
- }
1037
+ export type AirState =
1038
+ | "AirSupremacy"
1039
+ | "AirSuperiority"
1040
+ | "AirParity"
1041
+ | "AirDenial"
1042
+ | "AirIncapability";
1032
1043
 
1033
- export interface DamageReport {
1034
- miss_damage_min: number;
1035
- miss_damage_max: number;
1036
- normal_damage_min: number;
1037
- normal_damage_max: number;
1038
- critical_damage_min: number;
1039
- critical_damage_max: number;
1040
- normal_scratch_rate: number;
1041
- critical_scratch_rate: number;
1042
- damage_density: Histogram<number, number>;
1043
- damage_state_density: Histogram<DamageState, number>;
1044
- }
1044
+ export type AirStateRank = "Rank0" | "Rank1" | "Rank2" | "Rank3";
1045
1045
 
1046
1046
  /**
1047
1047
  */