fleethub-core 1.7.9 → 1.7.11

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.
@@ -75,135 +75,118 @@ export type ShipCategory =
75
75
  | ShipCategory.Submarine
76
76
  | ShipCategory.AuxiliaryShip;
77
77
 
78
- type __ShellingSpecialAttackDayCutin = DayCutin;
79
- type __ShellingSpecialAttackFleetCutin = FleetCutin;
80
- declare namespace ShellingSpecialAttack {
81
- export type DayCutin = { DayCutin: __ShellingSpecialAttackDayCutin };
82
- export type FleetCutin = { FleetCutin: __ShellingSpecialAttackFleetCutin };
78
+ declare namespace ShipAttr {
79
+ export type Unknown = "Unknown";
80
+ export type Abyssal = "Abyssal";
81
+ export type NightCarrier = "NightCarrier";
82
+ export type Installation = "Installation";
83
+ export type RoyalNavy = "RoyalNavy";
84
+ export type Kai2 = "Kai2";
85
+ export type TurbineSpeedBonus = "TurbineSpeedBonus";
86
+ export type Pillbox = "Pillbox";
87
+ export type IsolatedIsland = "IsolatedIsland";
88
+ export type HarbourSummerPrincess = "HarbourSummerPrincess";
89
+ export type SupplyDepot = "SupplyDepot";
90
+ export type PtImp = "PtImp";
91
+ export type BattleshipSummerPrincess = "BattleshipSummerPrincess";
92
+ export type HeavyCruiserSummerPrincess = "HeavyCruiserSummerPrincess";
83
93
  }
84
94
 
85
- export type ShellingSpecialAttack =
86
- | ShellingSpecialAttack.DayCutin
87
- | ShellingSpecialAttack.FleetCutin;
95
+ export type ShipAttr =
96
+ | ShipAttr.Unknown
97
+ | ShipAttr.Abyssal
98
+ | ShipAttr.NightCarrier
99
+ | ShipAttr.Installation
100
+ | ShipAttr.RoyalNavy
101
+ | ShipAttr.Kai2
102
+ | ShipAttr.TurbineSpeedBonus
103
+ | ShipAttr.Pillbox
104
+ | ShipAttr.IsolatedIsland
105
+ | ShipAttr.HarbourSummerPrincess
106
+ | ShipAttr.SupplyDepot
107
+ | ShipAttr.PtImp
108
+ | ShipAttr.BattleshipSummerPrincess
109
+ | ShipAttr.HeavyCruiserSummerPrincess;
88
110
 
89
- declare namespace DayCutin {
90
- export type MainMain = "MainMain";
91
- export type MainAp = "MainAp";
92
- export type MainRadar = "MainRadar";
93
- export type MainSec = "MainSec";
94
- export type DoubleAttack = "DoubleAttack";
95
- export type FBA = "FBA";
96
- export type BBA = "BBA";
97
- export type BA = "BA";
98
- export type Zuiun = "Zuiun";
99
- export type AirSea = "AirSea";
111
+ declare namespace AirStateRank {
112
+ export type Rank0 = "Rank0";
113
+ export type Rank1 = "Rank1";
114
+ export type Rank2 = "Rank2";
115
+ export type Rank3 = "Rank3";
100
116
  }
101
117
 
102
- export type DayCutin =
103
- | DayCutin.MainMain
104
- | DayCutin.MainAp
105
- | DayCutin.MainRadar
106
- | DayCutin.MainSec
107
- | DayCutin.DoubleAttack
108
- | DayCutin.FBA
109
- | DayCutin.BBA
110
- | DayCutin.BA
111
- | DayCutin.Zuiun
112
- | DayCutin.AirSea;
118
+ export type AirStateRank =
119
+ | AirStateRank.Rank0
120
+ | AirStateRank.Rank1
121
+ | AirStateRank.Rank2
122
+ | AirStateRank.Rank3;
113
123
 
114
- declare namespace Engagement {
115
- export type GreenT = "GreenT";
116
- export type Parallel = "Parallel";
117
- export type HeadOn = "HeadOn";
118
- export type RedT = "RedT";
124
+ declare namespace AirState {
125
+ export type AirSupremacy = "AirSupremacy";
126
+ export type AirSuperiority = "AirSuperiority";
127
+ export type AirParity = "AirParity";
128
+ export type AirDenial = "AirDenial";
129
+ export type AirIncapability = "AirIncapability";
119
130
  }
120
131
 
121
- export type Engagement =
122
- | Engagement.GreenT
123
- | Engagement.Parallel
124
- | Engagement.HeadOn
125
- | Engagement.RedT;
132
+ export type AirState =
133
+ | AirState.AirSupremacy
134
+ | AirState.AirSuperiority
135
+ | AirState.AirParity
136
+ | AirState.AirDenial
137
+ | AirState.AirIncapability;
126
138
 
127
- declare namespace SpecialEnemyType {
128
- export type None = "None";
129
- export type SoftSkinned = "SoftSkinned";
130
- export type Pillbox = "Pillbox";
131
- export type IsolatedIsland = "IsolatedIsland";
132
- export type SupplyDepot = "SupplyDepot";
133
- export type HarbourSummerPrincess = "HarbourSummerPrincess";
134
- export type PtImp = "PtImp";
135
- export type BattleshipSummerPrincess = "BattleshipSummerPrincess";
136
- export type HeavyCruiserSummerPrincess = "HeavyCruiserSummerPrincess";
139
+ export interface MasterIBonuses {
140
+ shelling_power: MasterIBonusRule[];
141
+ carrier_shelling_power: MasterIBonusRule[];
142
+ shelling_accuracy: MasterIBonusRule[];
143
+ torpedo_power: MasterIBonusRule[];
144
+ torpedo_accuracy: MasterIBonusRule[];
145
+ torpedo_evasion: MasterIBonusRule[];
146
+ asw_power: MasterIBonusRule[];
147
+ asw_accuracy: MasterIBonusRule[];
148
+ night_power: MasterIBonusRule[];
149
+ night_accuracy: MasterIBonusRule[];
150
+ defense_power: MasterIBonusRule[];
151
+ contact_selection: MasterIBonusRule[];
152
+ fighter_power: MasterIBonusRule[];
153
+ ship_anti_air: MasterIBonusRule[];
154
+ fleet_anti_air: MasterIBonusRule[];
155
+ elos: MasterIBonusRule[];
137
156
  }
138
157
 
139
- export type SpecialEnemyType =
140
- | SpecialEnemyType.None
141
- | SpecialEnemyType.SoftSkinned
142
- | SpecialEnemyType.Pillbox
143
- | SpecialEnemyType.IsolatedIsland
144
- | SpecialEnemyType.SupplyDepot
145
- | SpecialEnemyType.HarbourSummerPrincess
146
- | SpecialEnemyType.PtImp
147
- | SpecialEnemyType.BattleshipSummerPrincess
148
- | SpecialEnemyType.HeavyCruiserSummerPrincess;
149
-
150
- declare namespace MoraleState {
151
- export type Sparkle = "Sparkle";
152
- export type Normal = "Normal";
153
- export type Orange = "Orange";
154
- export type Red = "Red";
158
+ export interface MasterIBonusRule {
159
+ expr: CompiledEvaler;
160
+ formula: CompiledEvaler;
155
161
  }
156
162
 
157
- export type MoraleState =
158
- | MoraleState.Sparkle
159
- | MoraleState.Normal
160
- | MoraleState.Orange
161
- | MoraleState.Red;
162
-
163
- declare namespace DamageState {
163
+ declare namespace ShellingAttackType {
164
164
  export type Normal = "Normal";
165
- export type Shouha = "Shouha";
166
- export type Chuuha = "Chuuha";
167
- export type Taiha = "Taiha";
168
- export type Sunk = "Sunk";
165
+ export type Carrier = "Carrier";
169
166
  }
170
167
 
171
- export type DamageState =
172
- | DamageState.Normal
173
- | DamageState.Shouha
174
- | DamageState.Chuuha
175
- | DamageState.Taiha
176
- | DamageState.Sunk;
168
+ export type ShellingAttackType =
169
+ | ShellingAttackType.Normal
170
+ | ShellingAttackType.Carrier;
177
171
 
178
- declare namespace SpeedGroup {
179
- export type A = "A";
180
- export type B1 = "B1";
181
- export type B2 = "B2";
182
- export type C = "C";
172
+ export interface FleetCutinAnalysis {
173
+ shelling: FleetCutinInfo[];
174
+ night: FleetCutinInfo[];
183
175
  }
184
176
 
185
- export type SpeedGroup =
186
- | SpeedGroup.A
187
- | SpeedGroup.B1
188
- | SpeedGroup.B2
189
- | SpeedGroup.C;
190
-
191
- declare namespace FleetCutin {
192
- export type NelsonTouch = "NelsonTouch";
193
- export type NagatoCutin = "NagatoCutin";
194
- export type ColoradoCutin = "ColoradoCutin";
195
- export type KongouCutin = "KongouCutin";
196
- export type Yamato2ShipCutin = "Yamato2ShipCutin";
197
- export type Yamato3ShipCutin = "Yamato3ShipCutin";
177
+ export interface FleetCutinInfo {
178
+ cutin: FleetCutin;
179
+ rate: number | null;
180
+ formation: Formation;
181
+ items: FleetCutinInfoItem[];
198
182
  }
199
183
 
200
- export type FleetCutin =
201
- | FleetCutin.NelsonTouch
202
- | FleetCutin.NagatoCutin
203
- | FleetCutin.ColoradoCutin
204
- | FleetCutin.KongouCutin
205
- | FleetCutin.Yamato2ShipCutin
206
- | FleetCutin.Yamato3ShipCutin;
184
+ export interface FleetCutinInfoItem {
185
+ ship_id: number;
186
+ cutin: FleetCutin;
187
+ fleet_cutin_mod: number;
188
+ stats: AttackStats;
189
+ }
207
190
 
208
191
  declare namespace AirWaveType {
209
192
  export type Jet = "Jet";
@@ -252,21 +235,12 @@ export type OrgType =
252
235
  | OrgType.EnemySingle
253
236
  | OrgType.EnemyCombined;
254
237
 
255
- export interface WarfareContext {
256
- attacker_env: WarfareShipEnvironment;
257
- target_env: WarfareShipEnvironment;
258
- engagement: Engagement;
259
- air_state: AirState;
238
+ declare namespace Role {
239
+ export type Main = "Main";
240
+ export type Escort = "Escort";
260
241
  }
261
242
 
262
- export interface WarfareShipEnvironment {
263
- org_type: OrgType;
264
- role: Role;
265
- ship_index: number;
266
- fleet_len: number;
267
- formation: Formation;
268
- fleet_los_mod: number | null;
269
- }
243
+ export type Role = Role.Main | Role.Escort;
270
244
 
271
245
  export interface CompMeta {
272
246
  fleets: Record<FleetType, FleetMeta>;
@@ -283,41 +257,6 @@ export interface ShipMeta {
283
257
  ship_id: number;
284
258
  }
285
259
 
286
- export interface MasterData {
287
- gears: MasterGear[];
288
- gear_attrs: MasterAttrRule<GearAttr>[];
289
- ships: MasterShip[];
290
- ship_attrs: MasterAttrRule<ShipAttr>[];
291
- ibonuses: MasterIBonuses;
292
- equippable: MasterEquippable;
293
- formation: NestedFormationDef[];
294
- anti_air_cutin: AntiAirCutinDef[];
295
- day_cutin: DayCutinDef[];
296
- night_cutin: NightCutinDef[];
297
- }
298
-
299
- export interface MasterConfig {
300
- formation: NestedFormationDef[];
301
- anti_air_cutin: AntiAirCutinDef[];
302
- day_cutin: DayCutinDef[];
303
- night_cutin: NightCutinDef[];
304
- }
305
-
306
- export interface MasterAttrRule<T> {
307
- tag: T;
308
- name: string;
309
- expr: string;
310
- }
311
-
312
- export type NumMap<K, V> = Partial<Record<K, V>>;
313
-
314
- declare namespace Role {
315
- export type Main = "Main";
316
- export type Escort = "Escort";
317
- }
318
-
319
- export type Role = Role.Main | Role.Escort;
320
-
321
260
  declare namespace GearCategory {
322
261
  export type Fighter = "Fighter";
323
262
  export type Bomber = "Bomber";
@@ -470,13 +409,116 @@ export type GearType =
470
409
  | GearType.LargeRadar2
471
410
  | GearType.CbRecon2;
472
411
 
473
- export interface CompDayCutinRateInfo {
474
- main: FleetDayCutinRateInfo;
475
- escort: FleetDayCutinRateInfo | null;
412
+ export interface MasterData {
413
+ gears: MasterGear[];
414
+ gear_attrs: MasterAttrRule<GearAttr>[];
415
+ ships: MasterShip[];
416
+ ship_attrs: MasterAttrRule<ShipAttr>[];
417
+ ibonuses: MasterIBonuses;
418
+ equippable: MasterEquippable;
419
+ formation: NestedFormationDef[];
420
+ anti_air_cutin: AntiAirCutinDef[];
421
+ day_cutin: DayCutinDef[];
422
+ night_cutin: NightCutinDef[];
476
423
  }
477
424
 
478
- export interface FleetDayCutinRateInfo {
479
- fleet_los_mod: number | null;
425
+ export interface MasterConfig {
426
+ formation: NestedFormationDef[];
427
+ anti_air_cutin: AntiAirCutinDef[];
428
+ day_cutin: DayCutinDef[];
429
+ night_cutin: NightCutinDef[];
430
+ }
431
+
432
+ export interface MasterAttrRule<T> {
433
+ tag: T;
434
+ name: string;
435
+ expr: string;
436
+ }
437
+
438
+ export type NumMap<K, V> = Partial<Record<K, V>>;
439
+
440
+ type __ShellingSpecialAttackDayCutin = DayCutin;
441
+ type __ShellingSpecialAttackFleetCutin = FleetCutin;
442
+ declare namespace ShellingSpecialAttack {
443
+ export type DayCutin = { DayCutin: __ShellingSpecialAttackDayCutin };
444
+ export type FleetCutin = { FleetCutin: __ShellingSpecialAttackFleetCutin };
445
+ }
446
+
447
+ export type ShellingSpecialAttack =
448
+ | ShellingSpecialAttack.DayCutin
449
+ | ShellingSpecialAttack.FleetCutin;
450
+
451
+ declare namespace DayCutin {
452
+ export type Zuiun = "Zuiun";
453
+ export type AirSea = "AirSea";
454
+ export type MainMain = "MainMain";
455
+ export type MainAp = "MainAp";
456
+ export type MainRadar = "MainRadar";
457
+ export type MainSec = "MainSec";
458
+ export type DoubleAttack = "DoubleAttack";
459
+ export type FBA = "FBA";
460
+ export type BBA = "BBA";
461
+ export type BA = "BA";
462
+ }
463
+
464
+ export type DayCutin =
465
+ | DayCutin.Zuiun
466
+ | DayCutin.AirSea
467
+ | DayCutin.MainMain
468
+ | DayCutin.MainAp
469
+ | DayCutin.MainRadar
470
+ | DayCutin.MainSec
471
+ | DayCutin.DoubleAttack
472
+ | DayCutin.FBA
473
+ | DayCutin.BBA
474
+ | DayCutin.BA;
475
+
476
+ declare namespace Engagement {
477
+ export type GreenT = "GreenT";
478
+ export type Parallel = "Parallel";
479
+ export type HeadOn = "HeadOn";
480
+ export type RedT = "RedT";
481
+ }
482
+
483
+ export type Engagement =
484
+ | Engagement.GreenT
485
+ | Engagement.Parallel
486
+ | Engagement.HeadOn
487
+ | Engagement.RedT;
488
+
489
+ export interface ShipEnvironment {
490
+ org_type?: OrgType;
491
+ role?: Role;
492
+ index?: number;
493
+ fleet_len?: number;
494
+ formation?: Formation;
495
+ fleet_los_mod?: number | null;
496
+ night_conditions?: NightConditions;
497
+ }
498
+
499
+ export interface NightConditions {
500
+ night_contact_rank?: ContactRank | null;
501
+ starshell_index?: number | null;
502
+ searchlight_index?: number | null;
503
+ }
504
+
505
+ export interface BattleConditions {
506
+ org_type: OrgType;
507
+ role: Role;
508
+ ship_index: number;
509
+ fleet_len: number;
510
+ formation: Formation;
511
+ fleet_los_mod: number | null;
512
+ night_conditions: NightConditions;
513
+ }
514
+
515
+ export interface CompDayCutinRateInfo {
516
+ main: FleetDayCutinRateInfo;
517
+ escort: FleetDayCutinRateInfo | null;
518
+ }
519
+
520
+ export interface FleetDayCutinRateInfo {
521
+ fleet_los_mod: number | null;
480
522
  ships: ShipDayCutinRateInfo[];
481
523
  }
482
524
 
@@ -523,261 +565,32 @@ export interface GearInput {
523
565
  asw: number;
524
566
  los: number;
525
567
  bombing: number;
526
- accuracy: number;
527
- range: number;
528
- radius: number;
529
- stars: number;
530
- ace: number;
531
- }
532
-
533
- export type GearVecInput = GearInput[];
534
-
535
- declare namespace AirStateRank {
536
- export type Rank0 = "Rank0";
537
- export type Rank1 = "Rank1";
538
- export type Rank2 = "Rank2";
539
- export type Rank3 = "Rank3";
540
- }
541
-
542
- export type AirStateRank =
543
- | AirStateRank.Rank0
544
- | AirStateRank.Rank1
545
- | AirStateRank.Rank2
546
- | AirStateRank.Rank3;
547
-
548
- declare namespace AirState {
549
- export type AirSupremacy = "AirSupremacy";
550
- export type AirSuperiority = "AirSuperiority";
551
- export type AirParity = "AirParity";
552
- export type AirDenial = "AirDenial";
553
- export type AirIncapability = "AirIncapability";
554
- }
555
-
556
- export type AirState =
557
- | AirState.AirSupremacy
558
- | AirState.AirSuperiority
559
- | AirState.AirParity
560
- | AirState.AirDenial
561
- | AirState.AirIncapability;
562
-
563
- export interface MasterIBonuses {
564
- shelling_power: MasterIBonusRule[];
565
- carrier_shelling_power: MasterIBonusRule[];
566
- shelling_accuracy: MasterIBonusRule[];
567
- torpedo_power: MasterIBonusRule[];
568
- torpedo_accuracy: MasterIBonusRule[];
569
- torpedo_evasion: MasterIBonusRule[];
570
- asw_power: MasterIBonusRule[];
571
- asw_accuracy: MasterIBonusRule[];
572
- night_power: MasterIBonusRule[];
573
- night_accuracy: MasterIBonusRule[];
574
- defense_power: MasterIBonusRule[];
575
- contact_selection: MasterIBonusRule[];
576
- fighter_power: MasterIBonusRule[];
577
- ship_anti_air: MasterIBonusRule[];
578
- fleet_anti_air: MasterIBonusRule[];
579
- elos: MasterIBonusRule[];
580
- }
581
-
582
- export interface MasterIBonusRule {
583
- expr: CompiledEvaler;
584
- formula: CompiledEvaler;
585
- }
586
-
587
- declare namespace ShellingAttackType {
588
- export type Normal = "Normal";
589
- export type Carrier = "Carrier";
590
- }
591
-
592
- export type ShellingAttackType =
593
- | ShellingAttackType.Normal
594
- | ShellingAttackType.Carrier;
595
-
596
- export interface NightSituation {
597
- night_contact_rank: ContactRank | null;
598
- starshell: boolean;
599
- searchlight: boolean;
600
- }
601
-
602
- export interface FleetCutinAnalysis {
603
- shelling: FleetCutinInfo[];
604
- night: FleetCutinInfo[];
605
- }
606
-
607
- export interface FleetCutinInfo {
608
- cutin: FleetCutin;
609
- rate: number | null;
610
- formation: Formation;
611
- items: FleetCutinInfoItem[];
612
- }
613
-
614
- export interface FleetCutinInfoItem {
615
- ship_id: number;
616
- cutin: FleetCutin;
617
- fleet_cutin_mod: number;
618
- stats: AttackStats;
619
- }
620
-
621
- export interface DamageInfo {
622
- miss_damage_min: number;
623
- miss_damage_max: number;
624
- normal_damage_min: number;
625
- normal_damage_max: number;
626
- critical_damage_min: number;
627
- critical_damage_max: number;
628
- normal_scratch_rate: number;
629
- critical_scratch_rate: number;
630
- damage_map: NumMap<number, number>;
631
- damage_state_map: NumMap<DamageState, number>;
632
- }
633
-
634
- declare namespace ShipAttr {
635
- export type Unknown = "Unknown";
636
- export type Abyssal = "Abyssal";
637
- export type NightCarrier = "NightCarrier";
638
- export type Installation = "Installation";
639
- export type RoyalNavy = "RoyalNavy";
640
- export type Kai2 = "Kai2";
641
- export type TurbineSpeedBonus = "TurbineSpeedBonus";
642
- export type Pillbox = "Pillbox";
643
- export type IsolatedIsland = "IsolatedIsland";
644
- export type HarbourSummerPrincess = "HarbourSummerPrincess";
645
- export type SupplyDepot = "SupplyDepot";
646
- export type PtImp = "PtImp";
647
- export type BattleshipSummerPrincess = "BattleshipSummerPrincess";
648
- export type HeavyCruiserSummerPrincess = "HeavyCruiserSummerPrincess";
649
- }
650
-
651
- export type ShipAttr =
652
- | ShipAttr.Unknown
653
- | ShipAttr.Abyssal
654
- | ShipAttr.NightCarrier
655
- | ShipAttr.Installation
656
- | ShipAttr.RoyalNavy
657
- | ShipAttr.Kai2
658
- | ShipAttr.TurbineSpeedBonus
659
- | ShipAttr.Pillbox
660
- | ShipAttr.IsolatedIsland
661
- | ShipAttr.HarbourSummerPrincess
662
- | ShipAttr.SupplyDepot
663
- | ShipAttr.PtImp
664
- | ShipAttr.BattleshipSummerPrincess
665
- | ShipAttr.HeavyCruiserSummerPrincess;
666
-
667
- type __FormationCombinedFormation = CombinedFormation;
668
- type __FormationSingleFormation = SingleFormation;
669
- declare namespace Formation {
670
- export type Single = __FormationSingleFormation;
671
- export type Combined = __FormationCombinedFormation;
672
- }
673
-
674
- export type Formation = Formation.Single | Formation.Combined;
675
-
676
- declare namespace CombinedFormation {
677
- export type Cruising1 = "Cruising1";
678
- export type Cruising2 = "Cruising2";
679
- export type Cruising3 = "Cruising3";
680
- export type Cruising4 = "Cruising4";
681
- }
682
-
683
- export type CombinedFormation =
684
- | CombinedFormation.Cruising1
685
- | CombinedFormation.Cruising2
686
- | CombinedFormation.Cruising3
687
- | CombinedFormation.Cruising4;
688
-
689
- declare namespace SingleFormation {
690
- export type LineAhead = "LineAhead";
691
- export type DoubleLine = "DoubleLine";
692
- export type Diamond = "Diamond";
693
- export type Echelon = "Echelon";
694
- export type LineAbreast = "LineAbreast";
695
- export type Vanguard = "Vanguard";
696
- }
697
-
698
- export type SingleFormation =
699
- | SingleFormation.LineAhead
700
- | SingleFormation.DoubleLine
701
- | SingleFormation.Diamond
702
- | SingleFormation.Echelon
703
- | SingleFormation.LineAbreast
704
- | SingleFormation.Vanguard;
705
-
706
- export interface CustomPowerModifiers {
707
- precap_mod?: AttackPowerModifier;
708
- postcap_mod?: AttackPowerModifier;
709
- basic_power_mod?: AttackPowerModifier;
710
- }
711
-
712
- export interface SpecialEnemyModifiers {
713
- precap_general_mod: AttackPowerModifier;
714
- stype_mod: AttackPowerModifier;
715
- landing_craft_synergy_mod: AttackPowerModifier;
716
- toku_daihatsu_tank_mod: AttackPowerModifier;
717
- m4a1dd_mod: AttackPowerModifier;
718
- honi_mod: AttackPowerModifier;
719
- postcap_general_mod: AttackPowerModifier;
720
- pt_mod: AttackPowerModifier;
721
- }
722
-
723
- export interface AttackPowerModifier {
724
- a?: number;
725
- b?: number;
726
- }
727
-
728
- export interface ShellingSupportSimulatorParams {
729
- attacker_formation: Formation;
730
- target_formation: Formation;
731
- engagement: Engagement;
732
- }
733
-
734
- export interface AttackPower {
735
- precap: number;
736
- is_capped: boolean;
737
- capped: number;
738
- normal: number;
739
- critical: number;
740
- armor_penetration: number;
741
- remaining_ammo_mod: number;
742
- }
743
-
744
- export interface AttackPowerParams {
745
- basic: number;
746
- cap: number;
747
- precap_mod: AttackPowerModifier;
748
- postcap_mod: AttackPowerModifier;
749
- ap_shell_mod: number | null;
750
- carrier_power: number | null;
751
- proficiency_critical_mod: number | null;
752
- armor_penetration: number;
753
- remaining_ammo_mod: number;
754
- special_enemy_mods: SpecialEnemyModifiers;
755
- custom_mods: CustomPowerModifiers;
568
+ accuracy: number;
569
+ range: number;
570
+ radius: number;
571
+ stars: number;
572
+ ace: number;
756
573
  }
757
574
 
758
- export interface SpecialEnemyModifiers {
759
- precap_general_mod: AttackPowerModifier;
760
- stype_mod: AttackPowerModifier;
761
- landing_craft_synergy_mod: AttackPowerModifier;
762
- toku_daihatsu_tank_mod: AttackPowerModifier;
763
- m4a1dd_mod: AttackPowerModifier;
764
- honi_mod: AttackPowerModifier;
765
- postcap_general_mod: AttackPowerModifier;
766
- pt_mod: AttackPowerModifier;
767
- }
575
+ export type GearVecInput = GearInput[];
768
576
 
769
- export interface CompContactChanceInfo {
770
- single: AirstrikeContactChance[] | null;
771
- combined: AirstrikeContactChance[] | null;
577
+ export interface ShellingSupportSimulatorParams {
578
+ attacker_formation?: Formation;
579
+ target_formation?: Formation;
580
+ engagement: Engagement;
772
581
  }
773
582
 
774
- export interface AirstrikeContactChance {
775
- air_state: AirState;
776
- trigger_rate: number;
777
- rank3: number;
778
- rank2: number;
779
- rank1: number;
780
- total: number;
583
+ export interface DamageInfo {
584
+ miss_damage_min: number;
585
+ miss_damage_max: number;
586
+ normal_damage_min: number;
587
+ normal_damage_max: number;
588
+ critical_damage_min: number;
589
+ critical_damage_max: number;
590
+ normal_scratch_rate: number;
591
+ critical_scratch_rate: number;
592
+ damage_map: NumMap<number, number>;
593
+ damage_state_map: NumMap<DamageState, number>;
781
594
  }
782
595
 
783
596
  declare namespace GearAttr {
@@ -843,6 +656,92 @@ export type GearAttr =
843
656
  | GearAttr.SemiNightPlane
844
657
  | GearAttr.HighAltitudeInterceptor;
845
658
 
659
+ type __FormationCombinedFormation = CombinedFormation;
660
+ type __FormationSingleFormation = SingleFormation;
661
+ declare namespace Formation {
662
+ export type Single = __FormationSingleFormation;
663
+ export type Combined = __FormationCombinedFormation;
664
+ }
665
+
666
+ export type Formation = Formation.Single | Formation.Combined;
667
+
668
+ declare namespace CombinedFormation {
669
+ export type Cruising1 = "Cruising1";
670
+ export type Cruising2 = "Cruising2";
671
+ export type Cruising3 = "Cruising3";
672
+ export type Cruising4 = "Cruising4";
673
+ }
674
+
675
+ export type CombinedFormation =
676
+ | CombinedFormation.Cruising1
677
+ | CombinedFormation.Cruising2
678
+ | CombinedFormation.Cruising3
679
+ | CombinedFormation.Cruising4;
680
+
681
+ declare namespace SingleFormation {
682
+ export type LineAhead = "LineAhead";
683
+ export type DoubleLine = "DoubleLine";
684
+ export type Diamond = "Diamond";
685
+ export type Echelon = "Echelon";
686
+ export type LineAbreast = "LineAbreast";
687
+ export type Vanguard = "Vanguard";
688
+ }
689
+
690
+ export type SingleFormation =
691
+ | SingleFormation.LineAhead
692
+ | SingleFormation.DoubleLine
693
+ | SingleFormation.Diamond
694
+ | SingleFormation.Echelon
695
+ | SingleFormation.LineAbreast
696
+ | SingleFormation.Vanguard;
697
+
698
+ declare namespace FleetCutin {
699
+ export type NelsonTouch = "NelsonTouch";
700
+ export type NagatoClassCutin = "NagatoClassCutin";
701
+ export type ColoradoClassCutin = "ColoradoClassCutin";
702
+ export type KongouClassCutin = "KongouClassCutin";
703
+ export type Yamato2ShipCutin = "Yamato2ShipCutin";
704
+ export type Yamato3ShipCutin = "Yamato3ShipCutin";
705
+ }
706
+
707
+ export type FleetCutin =
708
+ | FleetCutin.NelsonTouch
709
+ | FleetCutin.NagatoClassCutin
710
+ | FleetCutin.ColoradoClassCutin
711
+ | FleetCutin.KongouClassCutin
712
+ | FleetCutin.Yamato2ShipCutin
713
+ | FleetCutin.Yamato3ShipCutin;
714
+
715
+ export interface CustomPowerModifiers {
716
+ precap_mod?: AttackPowerModifier;
717
+ postcap_mod?: AttackPowerModifier;
718
+ basic_power_mod?: AttackPowerModifier;
719
+ }
720
+
721
+ export interface SpecialEnemyModifiers {
722
+ precap_general_mod: AttackPowerModifier;
723
+ stype_mod: AttackPowerModifier;
724
+ landing_craft_synergy_mod: AttackPowerModifier;
725
+ toku_daihatsu_tank_mod: AttackPowerModifier;
726
+ m4a1dd_mod: AttackPowerModifier;
727
+ honi_mod: AttackPowerModifier;
728
+ postcap_general_mod: AttackPowerModifier;
729
+ pt_mod: AttackPowerModifier;
730
+ }
731
+
732
+ export interface AttackPowerModifier {
733
+ a?: number;
734
+ b?: number;
735
+ }
736
+
737
+ export interface WarfareInfo {
738
+ day: AttackInfo<DayBattleAttackType, DayCutin | null> | null;
739
+ closing_torpedo: AttackInfo<null, null> | null;
740
+ night: AttackInfo<NightBattleAttackType, NightCutin | null> | null;
741
+ shelling_support: AttackInfo<null, null> | null;
742
+ opening_asw: AttackInfo<null, null> | null;
743
+ }
744
+
846
745
  declare namespace FleetType {
847
746
  export type Main = "Main";
848
747
  export type Escort = "Escort";
@@ -878,153 +777,98 @@ export interface EquipStype {
878
777
  equip_type: number[];
879
778
  }
880
779
 
881
- export interface AttackInfo<AttackType, Cutin> {
882
- attack_type: AttackType;
883
- items: AttackInfoItem<Cutin>[];
884
- damage_state_map: NumMap<DamageState, number> | null;
885
- }
886
-
887
- export interface AttackInfoItem<Cutin> {
888
- cutin: Cutin;
889
- rate: number | null;
890
- stats: AttackStats;
891
- }
892
-
893
- export interface AttackStats {
894
- attack_power: AttackPower | null;
895
- attack_power_params: AttackPowerParams | null;
896
- hits: number;
897
- hit_rate: HitRate | null;
898
- hit_rate_params: HitRateParams | null;
899
- damage: DamageInfo | null;
900
- }
901
-
902
- export interface CompAntiAirInfo {
903
- fleet_adjusted_anti_air: number;
904
- ships: ShipAntiAirInfo[];
905
- anti_air_cutin_chance: [number, number][];
906
- }
907
-
908
- export interface ShipAntiAirInfo {
909
- ship_id: number;
910
- adjusted_anti_air: number | null;
911
- proportional_shotdown_rate: number | null;
912
- fixed_shotdown_number: number | null;
913
- guaranteed: number | null;
914
- anti_air_cutin_chance: [number, number][];
915
- anti_air_propellant_barrage_chance: number | null;
780
+ export interface WarfareContext {
781
+ attacker_env: ShipEnvironment;
782
+ target_env: ShipEnvironment;
783
+ engagement: Engagement;
784
+ air_state: AirState;
916
785
  }
917
786
 
918
- export type SlotSizeVec = (number | null)[];
919
-
920
- declare namespace Side {
921
- export type Player = "Player";
922
- export type Enemy = "Enemy";
787
+ export interface AttackPower {
788
+ precap: number;
789
+ is_capped: boolean;
790
+ capped: number;
791
+ normal: number;
792
+ critical: number;
793
+ armor_penetration: number;
794
+ remaining_ammo_mod: number;
923
795
  }
924
796
 
925
- export type Side = Side.Player | Side.Enemy;
926
-
927
- declare namespace NightAttackType {
928
- export type Normal = "Normal";
929
- export type ArkRoyal = "ArkRoyal";
930
- export type Carrier = "Carrier";
797
+ export interface AttackPowerParams {
798
+ basic: number;
799
+ cap: number;
800
+ precap_mod: AttackPowerModifier;
801
+ postcap_mod: AttackPowerModifier;
802
+ ap_shell_mod: number | null;
803
+ carrier_power: number | null;
804
+ proficiency_critical_mod: number | null;
805
+ armor_penetration: number;
806
+ remaining_ammo_mod: number;
807
+ special_enemy_mods: SpecialEnemyModifiers;
808
+ custom_mods: CustomPowerModifiers;
931
809
  }
932
810
 
933
- export type NightAttackType =
934
- | NightAttackType.Normal
935
- | NightAttackType.ArkRoyal
936
- | NightAttackType.Carrier;
937
-
938
- type __NightSpecialAttackFleetCutin = FleetCutin;
939
- type __NightSpecialAttackNightCutin = NightCutin;
940
- declare namespace NightSpecialAttack {
941
- export type NightCutin = { NightCutin: __NightSpecialAttackNightCutin };
942
- export type FleetCutin = { FleetCutin: __NightSpecialAttackFleetCutin };
811
+ export interface SpecialEnemyModifiers {
812
+ precap_general_mod: AttackPowerModifier;
813
+ stype_mod: AttackPowerModifier;
814
+ landing_craft_synergy_mod: AttackPowerModifier;
815
+ toku_daihatsu_tank_mod: AttackPowerModifier;
816
+ m4a1dd_mod: AttackPowerModifier;
817
+ honi_mod: AttackPowerModifier;
818
+ postcap_general_mod: AttackPowerModifier;
819
+ pt_mod: AttackPowerModifier;
943
820
  }
944
821
 
945
- export type NightSpecialAttack =
946
- | NightSpecialAttack.NightCutin
947
- | NightSpecialAttack.FleetCutin;
948
-
949
- declare namespace NightCutin {
950
- export type MainTorpRadar = "MainTorpRadar";
951
- export type TorpLookoutRadar = "TorpLookoutRadar";
952
- export type TorpTsloTorp = "TorpTsloTorp";
953
- export type TorpTsloDrum = "TorpTsloDrum";
954
- export type DoubleAttack = "DoubleAttack";
955
- export type TorpTorpMain = "TorpTorpMain";
956
- export type TorpTorpTorp = "TorpTorpTorp";
957
- export type MainMainSec = "MainMainSec";
958
- export type MainMainMain = "MainMainMain";
959
- export type SubTorpTorp = "SubTorpTorp";
960
- export type SubRadarTorp = "SubRadarTorp";
961
- export type Cvci1_25 = "Cvci1_25";
962
- export type Cvci1_20 = "Cvci1_20";
963
- export type Cvci1_18 = "Cvci1_18";
964
- export type Photobomber = "Photobomber";
822
+ export interface AttackInfo<AttackType, Cutin> {
823
+ attack_type: AttackType;
824
+ items: AttackInfoItem<Cutin>[];
825
+ damage_state_map: NumMap<DamageState, number> | null;
965
826
  }
966
827
 
967
- export type NightCutin =
968
- | NightCutin.MainTorpRadar
969
- | NightCutin.TorpLookoutRadar
970
- | NightCutin.TorpTsloTorp
971
- | NightCutin.TorpTsloDrum
972
- | NightCutin.DoubleAttack
973
- | NightCutin.TorpTorpMain
974
- | NightCutin.TorpTorpTorp
975
- | NightCutin.MainMainSec
976
- | NightCutin.MainMainMain
977
- | NightCutin.SubTorpTorp
978
- | NightCutin.SubRadarTorp
979
- | NightCutin.Cvci1_25
980
- | NightCutin.Cvci1_20
981
- | NightCutin.Cvci1_18
982
- | NightCutin.Photobomber;
983
-
984
- export interface HitRate {
985
- total: number;
986
- normal: number;
987
- critical: number;
828
+ export interface AttackInfoItem<Cutin> {
829
+ cutin: Cutin;
830
+ rate: number | null;
831
+ stats: AttackStats;
988
832
  }
989
833
 
990
- export interface HitRateParams {
991
- accuracy_term: number;
992
- evasion_term: number;
993
- target_morale_mod: number;
994
- critical_rate_constant: number;
995
- critical_percentage_bonus: number;
996
- hit_percentage_bonus: number;
834
+ export interface AttackStats {
835
+ attack_power: AttackPower | null;
836
+ attack_power_params: AttackPowerParams | null;
837
+ hits: number;
838
+ hit_rate: HitRate | null;
839
+ hit_rate_params: HitRateParams | null;
840
+ damage: DamageInfo | null;
997
841
  }
998
842
 
999
- type __NightBattleAttackTypeAswAttackType = AswAttackType;
1000
- type __NightBattleAttackTypeNightAttackType = NightAttackType;
1001
- declare namespace NightBattleAttackType {
1002
- export type NightAttack = {
1003
- t: "NightAttack";
1004
- c: __NightBattleAttackTypeNightAttackType;
1005
- };
1006
- export type Asw = { t: "Asw"; c: __NightBattleAttackTypeAswAttackType };
843
+ export interface CompAntiAirInfo {
844
+ fleet_adjusted_anti_air: number;
845
+ ships: ShipAntiAirInfo[];
846
+ anti_air_cutin_chance: [number, number][];
1007
847
  }
1008
848
 
1009
- export type NightBattleAttackType =
1010
- | NightBattleAttackType.NightAttack
1011
- | NightBattleAttackType.Asw;
1012
-
1013
- type __DayBattleAttackTypeAswAttackType = AswAttackType;
1014
- type __DayBattleAttackTypeShellingAttackType = ShellingAttackType;
1015
- declare namespace DayBattleAttackType {
1016
- export type Shelling = {
1017
- t: "Shelling";
1018
- c: __DayBattleAttackTypeShellingAttackType;
1019
- };
1020
- export type Asw = { t: "Asw"; c: __DayBattleAttackTypeAswAttackType };
849
+ export interface ShipAntiAirInfo {
850
+ ship_id: number;
851
+ adjusted_anti_air: number | null;
852
+ proportional_shotdown_rate: number | null;
853
+ fixed_shotdown_number: number | null;
854
+ guaranteed: number | null;
855
+ anti_air_cutin_chance: [number, number][];
856
+ anti_air_propellant_barrage_chance: number | null;
1021
857
  }
1022
858
 
1023
- export type DayBattleAttackType =
1024
- | DayBattleAttackType.Shelling
1025
- | DayBattleAttackType.Asw;
859
+ export interface CompContactChanceInfo {
860
+ single: AirstrikeContactChance[] | null;
861
+ combined: AirstrikeContactChance[] | null;
862
+ }
1026
863
 
1027
- export type GearTypeIdArray = [number, number, number, number, number];
864
+ export interface AirstrikeContactChance {
865
+ air_state: AirState;
866
+ trigger_rate: number;
867
+ rank3: number;
868
+ rank2: number;
869
+ rank1: number;
870
+ total: number;
871
+ }
1028
872
 
1029
873
  export type ShipStateMap = Record<ShipKey, ShipState>;
1030
874
 
@@ -1135,6 +979,72 @@ export interface GearState {
1135
979
  stars?: number;
1136
980
  }
1137
981
 
982
+ export type SlotSizeVec = (number | null)[];
983
+
984
+ declare namespace Side {
985
+ export type Player = "Player";
986
+ export type Enemy = "Enemy";
987
+ }
988
+
989
+ export type Side = Side.Player | Side.Enemy;
990
+
991
+ declare namespace NightAttackType {
992
+ export type Normal = "Normal";
993
+ export type ArkRoyal = "ArkRoyal";
994
+ export type Carrier = "Carrier";
995
+ }
996
+
997
+ export type NightAttackType =
998
+ | NightAttackType.Normal
999
+ | NightAttackType.ArkRoyal
1000
+ | NightAttackType.Carrier;
1001
+
1002
+ type __NightSpecialAttackFleetCutin = FleetCutin;
1003
+ type __NightSpecialAttackNightCutin = NightCutin;
1004
+ declare namespace NightSpecialAttack {
1005
+ export type NightCutin = { NightCutin: __NightSpecialAttackNightCutin };
1006
+ export type FleetCutin = { FleetCutin: __NightSpecialAttackFleetCutin };
1007
+ }
1008
+
1009
+ export type NightSpecialAttack =
1010
+ | NightSpecialAttack.NightCutin
1011
+ | NightSpecialAttack.FleetCutin;
1012
+
1013
+ declare namespace NightCutin {
1014
+ export type MainTorpRadar = "MainTorpRadar";
1015
+ export type TorpLookoutRadar = "TorpLookoutRadar";
1016
+ export type TorpTsloTorp = "TorpTsloTorp";
1017
+ export type TorpTsloDrum = "TorpTsloDrum";
1018
+ export type DoubleAttack = "DoubleAttack";
1019
+ export type TorpTorpMain = "TorpTorpMain";
1020
+ export type TorpTorpTorp = "TorpTorpTorp";
1021
+ export type MainMainSec = "MainMainSec";
1022
+ export type MainMainMain = "MainMainMain";
1023
+ export type SubTorpTorp = "SubTorpTorp";
1024
+ export type SubRadarTorp = "SubRadarTorp";
1025
+ export type Cvci1_25 = "Cvci1_25";
1026
+ export type Cvci1_20 = "Cvci1_20";
1027
+ export type Cvci1_18 = "Cvci1_18";
1028
+ export type Photobomber = "Photobomber";
1029
+ }
1030
+
1031
+ export type NightCutin =
1032
+ | NightCutin.MainTorpRadar
1033
+ | NightCutin.TorpLookoutRadar
1034
+ | NightCutin.TorpTsloTorp
1035
+ | NightCutin.TorpTsloDrum
1036
+ | NightCutin.DoubleAttack
1037
+ | NightCutin.TorpTorpMain
1038
+ | NightCutin.TorpTorpTorp
1039
+ | NightCutin.MainMainSec
1040
+ | NightCutin.MainMainMain
1041
+ | NightCutin.SubTorpTorp
1042
+ | NightCutin.SubRadarTorp
1043
+ | NightCutin.Cvci1_25
1044
+ | NightCutin.Cvci1_20
1045
+ | NightCutin.Cvci1_18
1046
+ | NightCutin.Photobomber;
1047
+
1138
1048
  declare namespace ContactRank {
1139
1049
  export type Rank1 = "Rank1";
1140
1050
  export type Rank2 = "Rank2";
@@ -1146,6 +1056,36 @@ export type ContactRank =
1146
1056
  | ContactRank.Rank2
1147
1057
  | ContactRank.Rank3;
1148
1058
 
1059
+ type __NightBattleAttackTypeAswAttackType = AswAttackType;
1060
+ type __NightBattleAttackTypeNightAttackType = NightAttackType;
1061
+ declare namespace NightBattleAttackType {
1062
+ export type NightAttack = {
1063
+ t: "NightAttack";
1064
+ c: __NightBattleAttackTypeNightAttackType;
1065
+ };
1066
+ export type Asw = { t: "Asw"; c: __NightBattleAttackTypeAswAttackType };
1067
+ }
1068
+
1069
+ export type NightBattleAttackType =
1070
+ | NightBattleAttackType.NightAttack
1071
+ | NightBattleAttackType.Asw;
1072
+
1073
+ type __DayBattleAttackTypeAswAttackType = AswAttackType;
1074
+ type __DayBattleAttackTypeShellingAttackType = ShellingAttackType;
1075
+ declare namespace DayBattleAttackType {
1076
+ export type Shelling = {
1077
+ t: "Shelling";
1078
+ c: __DayBattleAttackTypeShellingAttackType;
1079
+ };
1080
+ export type Asw = { t: "Asw"; c: __DayBattleAttackTypeAswAttackType };
1081
+ }
1082
+
1083
+ export type DayBattleAttackType =
1084
+ | DayBattleAttackType.Shelling
1085
+ | DayBattleAttackType.Asw;
1086
+
1087
+ export type GearTypeIdArray = [number, number, number, number, number];
1088
+
1149
1089
  export interface BattleConfig {
1150
1090
  formation: Record<Formation, NestedFormationDef>;
1151
1091
  anti_air_cutin: Record<number, AntiAirCutinDef>;
@@ -1265,29 +1205,19 @@ export interface MasterGear {
1265
1205
  fleet_anti_air_resistance?: number;
1266
1206
  }
1267
1207
 
1268
- export interface WarfareInfo {
1269
- day: AttackInfo<DayBattleAttackType, DayCutin | null> | null;
1270
- closing_torpedo: AttackInfo<null, null> | null;
1271
- night: AttackInfo<NightBattleAttackType, NightCutin | null> | null;
1272
- shelling_support: AttackInfo<null, null> | null;
1273
- opening_asw: AttackInfo<null, null> | null;
1274
- }
1275
-
1276
- export interface WarfareAnalyzerContext {
1277
- attacker_env: WarfareAnalyzerShipEnvironment;
1278
- target_env: WarfareAnalyzerShipEnvironment;
1279
- engagement: Engagement;
1280
- air_state: AirState;
1208
+ export interface HitRate {
1209
+ total: number;
1210
+ normal: number;
1211
+ critical: number;
1281
1212
  }
1282
1213
 
1283
- export interface WarfareAnalyzerShipEnvironment {
1284
- org_type: OrgType;
1285
- role: Role;
1286
- ship_index: number;
1287
- fleet_len: number;
1288
- formation: Formation;
1289
- fleet_los_mod: number | null;
1290
- night_situation: NightSituation;
1214
+ export interface HitRateParams {
1215
+ accuracy_term: number;
1216
+ evasion_term: number;
1217
+ target_morale_mod: number;
1218
+ critical_rate_constant: number;
1219
+ critical_percentage_bonus: number;
1220
+ hit_percentage_bonus: number;
1291
1221
  }
1292
1222
 
1293
1223
  export interface FleetNightCutinRateInfo {
@@ -1313,6 +1243,70 @@ export interface NightContactChance {
1313
1243
  total: number;
1314
1244
  }
1315
1245
 
1246
+ declare namespace SpecialEnemyType {
1247
+ export type None = "None";
1248
+ export type SoftSkinned = "SoftSkinned";
1249
+ export type Pillbox = "Pillbox";
1250
+ export type IsolatedIsland = "IsolatedIsland";
1251
+ export type SupplyDepot = "SupplyDepot";
1252
+ export type HarbourSummerPrincess = "HarbourSummerPrincess";
1253
+ export type PtImp = "PtImp";
1254
+ export type BattleshipSummerPrincess = "BattleshipSummerPrincess";
1255
+ export type HeavyCruiserSummerPrincess = "HeavyCruiserSummerPrincess";
1256
+ }
1257
+
1258
+ export type SpecialEnemyType =
1259
+ | SpecialEnemyType.None
1260
+ | SpecialEnemyType.SoftSkinned
1261
+ | SpecialEnemyType.Pillbox
1262
+ | SpecialEnemyType.IsolatedIsland
1263
+ | SpecialEnemyType.SupplyDepot
1264
+ | SpecialEnemyType.HarbourSummerPrincess
1265
+ | SpecialEnemyType.PtImp
1266
+ | SpecialEnemyType.BattleshipSummerPrincess
1267
+ | SpecialEnemyType.HeavyCruiserSummerPrincess;
1268
+
1269
+ declare namespace MoraleState {
1270
+ export type Sparkle = "Sparkle";
1271
+ export type Normal = "Normal";
1272
+ export type Orange = "Orange";
1273
+ export type Red = "Red";
1274
+ }
1275
+
1276
+ export type MoraleState =
1277
+ | MoraleState.Sparkle
1278
+ | MoraleState.Normal
1279
+ | MoraleState.Orange
1280
+ | MoraleState.Red;
1281
+
1282
+ declare namespace DamageState {
1283
+ export type Normal = "Normal";
1284
+ export type Shouha = "Shouha";
1285
+ export type Chuuha = "Chuuha";
1286
+ export type Taiha = "Taiha";
1287
+ export type Sunk = "Sunk";
1288
+ }
1289
+
1290
+ export type DamageState =
1291
+ | DamageState.Normal
1292
+ | DamageState.Shouha
1293
+ | DamageState.Chuuha
1294
+ | DamageState.Taiha
1295
+ | DamageState.Sunk;
1296
+
1297
+ declare namespace SpeedGroup {
1298
+ export type A = "A";
1299
+ export type B1 = "B1";
1300
+ export type B2 = "B2";
1301
+ export type C = "C";
1302
+ }
1303
+
1304
+ export type SpeedGroup =
1305
+ | SpeedGroup.A
1306
+ | SpeedGroup.B1
1307
+ | SpeedGroup.B2
1308
+ | SpeedGroup.C;
1309
+
1316
1310
  /**
1317
1311
  */
1318
1312
  export class AirSquadron {
@@ -1381,14 +1375,14 @@ export class Analyzer {
1381
1375
  analyze_day_cutin(comp: Comp): CompDayCutinRateInfo;
1382
1376
  /**
1383
1377
  * @param {Comp} comp
1384
- * @param {NightSituation} attacker_situation
1385
- * @param {NightSituation} target_situation
1378
+ * @param {NightConditions} attacker_conditions
1379
+ * @param {NightConditions} target_conditions
1386
1380
  * @returns {FleetNightCutinRateInfo}
1387
1381
  */
1388
1382
  analyze_night_cutin(
1389
1383
  comp: Comp,
1390
- attacker_situation: NightSituation,
1391
- target_situation: NightSituation
1384
+ attacker_conditions: NightConditions,
1385
+ target_conditions: NightConditions
1392
1386
  ): FleetNightCutinRateInfo;
1393
1387
  /**
1394
1388
  * @param {Comp} comp
@@ -1396,13 +1390,13 @@ export class Analyzer {
1396
1390
  */
1397
1391
  analyze_contact_chance(comp: Comp): CompContactChanceInfo;
1398
1392
  /**
1399
- * @param {WarfareAnalyzerContext} params
1393
+ * @param {WarfareContext} params
1400
1394
  * @param {Ship} attacker
1401
1395
  * @param {Ship} target
1402
1396
  * @returns {WarfareInfo}
1403
1397
  */
1404
1398
  analyze_warfare(
1405
- params: WarfareAnalyzerContext,
1399
+ params: WarfareContext,
1406
1400
  attacker: Ship,
1407
1401
  target: Ship
1408
1402
  ): WarfareInfo;
@@ -1496,13 +1490,13 @@ export class Comp {
1496
1490
  transport_point(): number;
1497
1491
  /**
1498
1492
  * @param {Ship} ship
1499
- * @param {Formation} formation
1500
- * @returns {WarfareShipEnvironment}
1493
+ * @param {Formation | undefined} formation
1494
+ * @returns {ShipEnvironment}
1501
1495
  */
1502
1496
  create_warfare_ship_environment(
1503
1497
  ship: Ship,
1504
- formation: Formation
1505
- ): WarfareShipEnvironment;
1498
+ formation?: Formation
1499
+ ): ShipEnvironment;
1506
1500
  /**
1507
1501
  */
1508
1502
  boss_sup?: Fleet;
@@ -2066,15 +2060,6 @@ export class Org {
2066
2060
  * @returns {number}
2067
2061
  */
2068
2062
  high_altitude_interception_power(): number;
2069
- /**
2070
- * @param {Ship} ship
2071
- * @param {Formation} formation
2072
- * @returns {WarfareShipEnvironment}
2073
- */
2074
- create_warfare_ship_environment(
2075
- ship: Ship,
2076
- formation: Formation
2077
- ): WarfareShipEnvironment;
2078
2063
  /**
2079
2064
  * @returns {Org}
2080
2065
  */