fleethub-core 1.7.7 → 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,41 +75,90 @@ 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;
123
+
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";
130
+ }
131
+
132
+ export type AirState =
133
+ | AirState.AirSupremacy
134
+ | AirState.AirSuperiority
135
+ | AirState.AirParity
136
+ | AirState.AirDenial
137
+ | AirState.AirIncapability;
138
+
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[];
156
+ }
157
+
158
+ export interface MasterIBonusRule {
159
+ expr: CompiledEvaler;
160
+ formula: CompiledEvaler;
161
+ }
113
162
 
114
163
  declare namespace ShellingAttackType {
115
164
  export type Normal = "Normal";
@@ -139,70 +188,29 @@ export interface FleetCutinInfoItem {
139
188
  stats: AttackStats;
140
189
  }
141
190
 
142
- declare namespace SpecialEnemyType {
143
- export type None = "None";
144
- export type SoftSkinned = "SoftSkinned";
145
- export type Pillbox = "Pillbox";
146
- export type IsolatedIsland = "IsolatedIsland";
147
- export type SupplyDepot = "SupplyDepot";
148
- export type HarbourSummerPrincess = "HarbourSummerPrincess";
149
- export type PtImp = "PtImp";
150
- export type BattleshipSummerPrincess = "BattleshipSummerPrincess";
151
- export type HeavyCruiserSummerPrincess = "HeavyCruiserSummerPrincess";
152
- }
153
-
154
- export type SpecialEnemyType =
155
- | SpecialEnemyType.None
156
- | SpecialEnemyType.SoftSkinned
157
- | SpecialEnemyType.Pillbox
158
- | SpecialEnemyType.IsolatedIsland
159
- | SpecialEnemyType.SupplyDepot
160
- | SpecialEnemyType.HarbourSummerPrincess
161
- | SpecialEnemyType.PtImp
162
- | SpecialEnemyType.BattleshipSummerPrincess
163
- | SpecialEnemyType.HeavyCruiserSummerPrincess;
164
-
165
- declare namespace MoraleState {
166
- export type Sparkle = "Sparkle";
167
- export type Normal = "Normal";
168
- export type Orange = "Orange";
169
- export type Red = "Red";
191
+ declare namespace AirWaveType {
192
+ export type Jet = "Jet";
193
+ export type LandBase = "LandBase";
194
+ export type Carrier = "Carrier";
170
195
  }
171
196
 
172
- export type MoraleState =
173
- | MoraleState.Sparkle
174
- | MoraleState.Normal
175
- | MoraleState.Orange
176
- | MoraleState.Red;
197
+ export type AirWaveType =
198
+ | AirWaveType.Jet
199
+ | AirWaveType.LandBase
200
+ | AirWaveType.Carrier;
177
201
 
178
- declare namespace DamageState {
179
- export type Normal = "Normal";
180
- export type Shouha = "Shouha";
181
- export type Chuuha = "Chuuha";
182
- export type Taiha = "Taiha";
183
- export type Sunk = "Sunk";
202
+ export interface SimulatorResult {
203
+ items: SimulatorResultItem[];
204
+ sunk_vec: [number, number, number][];
184
205
  }
185
206
 
186
- export type DamageState =
187
- | DamageState.Normal
188
- | DamageState.Shouha
189
- | DamageState.Chuuha
190
- | DamageState.Taiha
191
- | DamageState.Sunk;
192
-
193
- declare namespace SpeedGroup {
194
- export type A = "A";
195
- export type B1 = "B1";
196
- export type B2 = "B2";
197
- export type C = "C";
207
+ export interface SimulatorResultItem {
208
+ id: string;
209
+ role: Role;
210
+ index: number;
211
+ damage_state_map: Record<DamageState, number>;
198
212
  }
199
213
 
200
- export type SpeedGroup =
201
- | SpeedGroup.A
202
- | SpeedGroup.B1
203
- | SpeedGroup.B2
204
- | SpeedGroup.C;
205
-
206
214
  declare namespace AswAttackType {
207
215
  export type DepthCharge = "DepthCharge";
208
216
  export type Aircraft = "Aircraft";
@@ -227,36 +235,6 @@ export type OrgType =
227
235
  | OrgType.EnemySingle
228
236
  | OrgType.EnemyCombined;
229
237
 
230
- declare namespace FleetCutin {
231
- export type NelsonTouch = "NelsonTouch";
232
- export type NagatoCutin = "NagatoCutin";
233
- export type ColoradoCutin = "ColoradoCutin";
234
- export type KongouCutin = "KongouCutin";
235
- export type Yamato2ShipCutin = "Yamato2ShipCutin";
236
- export type Yamato3ShipCutin = "Yamato3ShipCutin";
237
- }
238
-
239
- export type FleetCutin =
240
- | FleetCutin.NelsonTouch
241
- | FleetCutin.NagatoCutin
242
- | FleetCutin.ColoradoCutin
243
- | FleetCutin.KongouCutin
244
- | FleetCutin.Yamato2ShipCutin
245
- | FleetCutin.Yamato3ShipCutin;
246
-
247
- declare namespace AirWaveType {
248
- export type Jet = "Jet";
249
- export type LandBase = "LandBase";
250
- export type Carrier = "Carrier";
251
- }
252
-
253
- export type AirWaveType =
254
- | AirWaveType.Jet
255
- | AirWaveType.LandBase
256
- | AirWaveType.Carrier;
257
-
258
- export type NumMap<K, V> = Partial<Record<K, V>>;
259
-
260
238
  declare namespace Role {
261
239
  export type Main = "Main";
262
240
  export type Escort = "Escort";
@@ -279,98 +257,34 @@ export interface ShipMeta {
279
257
  ship_id: number;
280
258
  }
281
259
 
282
- export interface MasterData {
283
- gears: MasterGear[];
284
- gear_attrs: MasterAttrRule<GearAttr>[];
285
- ships: MasterShip[];
286
- ship_attrs: MasterAttrRule<ShipAttr>[];
287
- ibonuses: MasterIBonuses;
288
- equippable: MasterEquippable;
289
- formation: NestedFormationDef[];
290
- anti_air_cutin: AntiAirCutinDef[];
291
- day_cutin: DayCutinDef[];
292
- night_cutin: NightCutinDef[];
293
- }
294
-
295
- export interface MasterConfig {
296
- formation: NestedFormationDef[];
297
- anti_air_cutin: AntiAirCutinDef[];
298
- day_cutin: DayCutinDef[];
299
- night_cutin: NightCutinDef[];
260
+ declare namespace GearCategory {
261
+ export type Fighter = "Fighter";
262
+ export type Bomber = "Bomber";
263
+ export type Recon = "Recon";
264
+ export type MainGun = "MainGun";
265
+ export type Secondary = "Secondary";
266
+ export type Torpedo = "Torpedo";
267
+ export type AntiSub = "AntiSub";
268
+ export type Radar = "Radar";
269
+ export type Landing = "Landing";
270
+ export type Ration = "Ration";
271
+ export type LandBased = "LandBased";
272
+ export type Misc = "Misc";
300
273
  }
301
274
 
302
- export interface MasterAttrRule<T> {
303
- tag: T;
304
- name: string;
305
- expr: string;
306
- }
307
-
308
- export interface WarfareContext {
309
- attacker_env: WarfareShipEnvironment;
310
- target_env: WarfareShipEnvironment;
311
- engagement: Engagement;
312
- air_state: AirState;
313
- }
314
-
315
- export interface WarfareShipEnvironment {
316
- org_type: OrgType;
317
- role: Role;
318
- ship_index: number;
319
- fleet_len: number;
320
- formation: Formation;
321
- fleet_los_mod: number | null;
322
- }
323
-
324
- export interface CompDayCutinRateInfo {
325
- main: FleetDayCutinRateInfo;
326
- escort: FleetDayCutinRateInfo | null;
327
- }
328
-
329
- export interface FleetDayCutinRateInfo {
330
- fleet_los_mod: number | null;
331
- ships: ShipDayCutinRateInfo[];
332
- }
333
-
334
- export interface ShipDayCutinRateInfo {
335
- ship_id: number;
336
- air_supremacy: DayCutinRateInfo;
337
- air_superiority: DayCutinRateInfo;
338
- }
339
-
340
- export interface DayCutinRateInfo {
341
- observation_term: number | null;
342
- rates: [DayCutin | null, number | null][];
343
- total_cutin_rate: number | null;
344
- }
345
-
346
- declare namespace GearCategory {
347
- export type Fighter = "Fighter";
348
- export type Bomber = "Bomber";
349
- export type Recon = "Recon";
350
- export type MainGun = "MainGun";
351
- export type Secondary = "Secondary";
352
- export type Torpedo = "Torpedo";
353
- export type AntiSub = "AntiSub";
354
- export type Radar = "Radar";
355
- export type Landing = "Landing";
356
- export type Ration = "Ration";
357
- export type LandBased = "LandBased";
358
- export type Misc = "Misc";
359
- }
360
-
361
- export type GearCategory =
362
- | GearCategory.Fighter
363
- | GearCategory.Bomber
364
- | GearCategory.Recon
365
- | GearCategory.MainGun
366
- | GearCategory.Secondary
367
- | GearCategory.Torpedo
368
- | GearCategory.AntiSub
369
- | GearCategory.Radar
370
- | GearCategory.Landing
371
- | GearCategory.Ration
372
- | GearCategory.LandBased
373
- | GearCategory.Misc;
275
+ export type GearCategory =
276
+ | GearCategory.Fighter
277
+ | GearCategory.Bomber
278
+ | GearCategory.Recon
279
+ | GearCategory.MainGun
280
+ | GearCategory.Secondary
281
+ | GearCategory.Torpedo
282
+ | GearCategory.AntiSub
283
+ | GearCategory.Radar
284
+ | GearCategory.Landing
285
+ | GearCategory.Ration
286
+ | GearCategory.LandBased
287
+ | GearCategory.Misc;
374
288
 
375
289
  declare namespace GearType {
376
290
  export type Unknown = "Unknown";
@@ -495,303 +409,189 @@ export type GearType =
495
409
  | GearType.LargeRadar2
496
410
  | GearType.CbRecon2;
497
411
 
498
- declare namespace Engagement {
499
- export type GreenT = "GreenT";
500
- export type Parallel = "Parallel";
501
- export type HeadOn = "HeadOn";
502
- export type RedT = "RedT";
503
- }
504
-
505
- export type Engagement =
506
- | Engagement.GreenT
507
- | Engagement.Parallel
508
- | Engagement.HeadOn
509
- | Engagement.RedT;
510
-
511
- export interface EBonuses {
512
- firepower: number;
513
- torpedo: number;
514
- anti_air: number;
515
- armor: number;
516
- evasion: number;
517
- asw: number;
518
- los: number;
519
- bombing: number;
520
- accuracy: number;
521
- range: number;
522
- }
523
-
524
- export interface ShipInput {
525
- ship_id: number;
526
- ctype: number;
527
- stype: number;
528
- yomi: string;
529
- }
530
-
531
- export interface GearInput {
532
- gear_id: number;
533
- types: GearTypeIdArray;
534
- firepower: number;
535
- torpedo: number;
536
- anti_air: number;
537
- armor: number;
538
- evasion: number;
539
- asw: number;
540
- los: number;
541
- bombing: number;
542
- accuracy: number;
543
- range: number;
544
- radius: number;
545
- stars: number;
546
- ace: number;
547
- }
548
-
549
- export type GearVecInput = GearInput[];
550
-
551
- declare namespace AirStateRank {
552
- export type Rank0 = "Rank0";
553
- export type Rank1 = "Rank1";
554
- export type Rank2 = "Rank2";
555
- export type Rank3 = "Rank3";
556
- }
557
-
558
- export type AirStateRank =
559
- | AirStateRank.Rank0
560
- | AirStateRank.Rank1
561
- | AirStateRank.Rank2
562
- | AirStateRank.Rank3;
563
-
564
- declare namespace AirState {
565
- export type AirSupremacy = "AirSupremacy";
566
- export type AirSuperiority = "AirSuperiority";
567
- export type AirParity = "AirParity";
568
- export type AirDenial = "AirDenial";
569
- export type AirIncapability = "AirIncapability";
570
- }
571
-
572
- export type AirState =
573
- | AirState.AirSupremacy
574
- | AirState.AirSuperiority
575
- | AirState.AirParity
576
- | AirState.AirDenial
577
- | AirState.AirIncapability;
578
-
579
- export interface ShellingSupportSimulatorParams {
580
- attacker_formation: Formation;
581
- target_formation: Formation;
582
- engagement: Engagement;
583
- }
584
-
585
- export interface MasterIBonuses {
586
- shelling_power: MasterIBonusRule[];
587
- carrier_shelling_power: MasterIBonusRule[];
588
- shelling_accuracy: MasterIBonusRule[];
589
- torpedo_power: MasterIBonusRule[];
590
- torpedo_accuracy: MasterIBonusRule[];
591
- torpedo_evasion: MasterIBonusRule[];
592
- asw_power: MasterIBonusRule[];
593
- asw_accuracy: MasterIBonusRule[];
594
- night_power: MasterIBonusRule[];
595
- night_accuracy: MasterIBonusRule[];
596
- defense_power: MasterIBonusRule[];
597
- contact_selection: MasterIBonusRule[];
598
- fighter_power: MasterIBonusRule[];
599
- ship_anti_air: MasterIBonusRule[];
600
- fleet_anti_air: MasterIBonusRule[];
601
- elos: MasterIBonusRule[];
602
- }
603
-
604
- export interface MasterIBonusRule {
605
- expr: CompiledEvaler;
606
- formula: CompiledEvaler;
607
- }
608
-
609
- export interface NightSituation {
610
- night_contact_rank: ContactRank | null;
611
- starshell: boolean;
612
- searchlight: boolean;
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[];
613
423
  }
614
424
 
615
- export interface DamageInfo {
616
- miss_damage_min: number;
617
- miss_damage_max: number;
618
- normal_damage_min: number;
619
- normal_damage_max: number;
620
- critical_damage_min: number;
621
- critical_damage_max: number;
622
- normal_scratch_rate: number;
623
- critical_scratch_rate: number;
624
- damage_map: NumMap<number, number>;
625
- damage_state_map: NumMap<DamageState, number>;
425
+ export interface MasterConfig {
426
+ formation: NestedFormationDef[];
427
+ anti_air_cutin: AntiAirCutinDef[];
428
+ day_cutin: DayCutinDef[];
429
+ night_cutin: NightCutinDef[];
626
430
  }
627
431
 
628
- declare namespace ShipAttr {
629
- export type Unknown = "Unknown";
630
- export type Abyssal = "Abyssal";
631
- export type NightCarrier = "NightCarrier";
632
- export type Installation = "Installation";
633
- export type RoyalNavy = "RoyalNavy";
634
- export type Kai2 = "Kai2";
635
- export type TurbineSpeedBonus = "TurbineSpeedBonus";
636
- export type Pillbox = "Pillbox";
637
- export type IsolatedIsland = "IsolatedIsland";
638
- export type HarbourSummerPrincess = "HarbourSummerPrincess";
639
- export type SupplyDepot = "SupplyDepot";
640
- export type PtImp = "PtImp";
641
- export type BattleshipSummerPrincess = "BattleshipSummerPrincess";
642
- export type HeavyCruiserSummerPrincess = "HeavyCruiserSummerPrincess";
432
+ export interface MasterAttrRule<T> {
433
+ tag: T;
434
+ name: string;
435
+ expr: string;
643
436
  }
644
437
 
645
- export type ShipAttr =
646
- | ShipAttr.Unknown
647
- | ShipAttr.Abyssal
648
- | ShipAttr.NightCarrier
649
- | ShipAttr.Installation
650
- | ShipAttr.RoyalNavy
651
- | ShipAttr.Kai2
652
- | ShipAttr.TurbineSpeedBonus
653
- | ShipAttr.Pillbox
654
- | ShipAttr.IsolatedIsland
655
- | ShipAttr.HarbourSummerPrincess
656
- | ShipAttr.SupplyDepot
657
- | ShipAttr.PtImp
658
- | ShipAttr.BattleshipSummerPrincess
659
- | ShipAttr.HeavyCruiserSummerPrincess;
438
+ export type NumMap<K, V> = Partial<Record<K, V>>;
660
439
 
661
- type __FormationCombinedFormation = CombinedFormation;
662
- type __FormationSingleFormation = SingleFormation;
663
- declare namespace Formation {
664
- export type Single = __FormationSingleFormation;
665
- export type Combined = __FormationCombinedFormation;
440
+ type __ShellingSpecialAttackDayCutin = DayCutin;
441
+ type __ShellingSpecialAttackFleetCutin = FleetCutin;
442
+ declare namespace ShellingSpecialAttack {
443
+ export type DayCutin = { DayCutin: __ShellingSpecialAttackDayCutin };
444
+ export type FleetCutin = { FleetCutin: __ShellingSpecialAttackFleetCutin };
666
445
  }
667
446
 
668
- export type Formation = Formation.Single | Formation.Combined;
447
+ export type ShellingSpecialAttack =
448
+ | ShellingSpecialAttack.DayCutin
449
+ | ShellingSpecialAttack.FleetCutin;
669
450
 
670
- declare namespace CombinedFormation {
671
- export type Cruising1 = "Cruising1";
672
- export type Cruising2 = "Cruising2";
673
- export type Cruising3 = "Cruising3";
674
- export type Cruising4 = "Cruising4";
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";
675
462
  }
676
463
 
677
- export type CombinedFormation =
678
- | CombinedFormation.Cruising1
679
- | CombinedFormation.Cruising2
680
- | CombinedFormation.Cruising3
681
- | CombinedFormation.Cruising4;
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;
682
475
 
683
- declare namespace SingleFormation {
684
- export type LineAhead = "LineAhead";
685
- export type DoubleLine = "DoubleLine";
686
- export type Diamond = "Diamond";
687
- export type Echelon = "Echelon";
688
- export type LineAbreast = "LineAbreast";
689
- export type Vanguard = "Vanguard";
476
+ declare namespace Engagement {
477
+ export type GreenT = "GreenT";
478
+ export type Parallel = "Parallel";
479
+ export type HeadOn = "HeadOn";
480
+ export type RedT = "RedT";
690
481
  }
691
482
 
692
- export type SingleFormation =
693
- | SingleFormation.LineAhead
694
- | SingleFormation.DoubleLine
695
- | SingleFormation.Diamond
696
- | SingleFormation.Echelon
697
- | SingleFormation.LineAbreast
698
- | SingleFormation.Vanguard;
483
+ export type Engagement =
484
+ | Engagement.GreenT
485
+ | Engagement.Parallel
486
+ | Engagement.HeadOn
487
+ | Engagement.RedT;
699
488
 
700
- export interface CustomPowerModifiers {
701
- precap_mod?: AttackPowerModifier;
702
- postcap_mod?: AttackPowerModifier;
703
- basic_power_mod?: AttackPowerModifier;
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;
704
497
  }
705
498
 
706
- export interface SpecialEnemyModifiers {
707
- precap_general_mod: AttackPowerModifier;
708
- stype_mod: AttackPowerModifier;
709
- landing_craft_synergy_mod: AttackPowerModifier;
710
- toku_daihatsu_tank_mod: AttackPowerModifier;
711
- m4a1dd_mod: AttackPowerModifier;
712
- honi_mod: AttackPowerModifier;
713
- postcap_general_mod: AttackPowerModifier;
714
- pt_mod: AttackPowerModifier;
499
+ export interface NightConditions {
500
+ night_contact_rank?: ContactRank | null;
501
+ starshell_index?: number | null;
502
+ searchlight_index?: number | null;
715
503
  }
716
504
 
717
- export interface AttackPowerModifier {
718
- a?: number;
719
- b?: number;
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;
720
513
  }
721
514
 
722
- export interface AttackPower {
723
- precap: number;
724
- is_capped: boolean;
725
- capped: number;
726
- normal: number;
727
- critical: number;
728
- armor_penetration: number;
729
- remaining_ammo_mod: number;
515
+ export interface CompDayCutinRateInfo {
516
+ main: FleetDayCutinRateInfo;
517
+ escort: FleetDayCutinRateInfo | null;
730
518
  }
731
-
732
- export interface AttackPowerParams {
733
- basic: number;
734
- cap: number;
735
- precap_mod: AttackPowerModifier;
736
- postcap_mod: AttackPowerModifier;
737
- ap_shell_mod: number | null;
738
- carrier_power: number | null;
739
- proficiency_critical_mod: number | null;
740
- armor_penetration: number;
741
- remaining_ammo_mod: number;
742
- special_enemy_mods: SpecialEnemyModifiers;
743
- custom_mods: CustomPowerModifiers;
519
+
520
+ export interface FleetDayCutinRateInfo {
521
+ fleet_los_mod: number | null;
522
+ ships: ShipDayCutinRateInfo[];
744
523
  }
745
524
 
746
- export interface SpecialEnemyModifiers {
747
- precap_general_mod: AttackPowerModifier;
748
- stype_mod: AttackPowerModifier;
749
- landing_craft_synergy_mod: AttackPowerModifier;
750
- toku_daihatsu_tank_mod: AttackPowerModifier;
751
- m4a1dd_mod: AttackPowerModifier;
752
- honi_mod: AttackPowerModifier;
753
- postcap_general_mod: AttackPowerModifier;
754
- pt_mod: AttackPowerModifier;
525
+ export interface ShipDayCutinRateInfo {
526
+ ship_id: number;
527
+ air_supremacy: DayCutinRateInfo;
528
+ air_superiority: DayCutinRateInfo;
755
529
  }
756
530
 
757
- export interface CompAntiAirInfo {
758
- fleet_adjusted_anti_air: number;
759
- ships: ShipAntiAirInfo[];
760
- anti_air_cutin_chance: [number, number][];
531
+ export interface DayCutinRateInfo {
532
+ observation_term: number | null;
533
+ rates: [DayCutin | null, number | null][];
534
+ total_cutin_rate: number | null;
761
535
  }
762
536
 
763
- export interface ShipAntiAirInfo {
764
- ship_id: number;
765
- adjusted_anti_air: number | null;
766
- proportional_shotdown_rate: number | null;
767
- fixed_shotdown_number: number | null;
768
- guaranteed: number | null;
769
- anti_air_cutin_chance: [number, number][];
770
- anti_air_propellant_barrage_chance: number | null;
537
+ export interface EBonuses {
538
+ firepower: number;
539
+ torpedo: number;
540
+ anti_air: number;
541
+ armor: number;
542
+ evasion: number;
543
+ asw: number;
544
+ los: number;
545
+ bombing: number;
546
+ accuracy: number;
547
+ range: number;
771
548
  }
772
549
 
773
- export interface CompContactChanceInfo {
774
- single: AirstrikeContactChance[] | null;
775
- combined: AirstrikeContactChance[] | null;
550
+ export interface ShipInput {
551
+ ship_id: number;
552
+ ctype: number;
553
+ stype: number;
554
+ yomi: string;
776
555
  }
777
556
 
778
- export interface AirstrikeContactChance {
779
- air_state: AirState;
780
- trigger_rate: number;
781
- rank3: number;
782
- rank2: number;
783
- rank1: number;
784
- total: number;
557
+ export interface GearInput {
558
+ gear_id: number;
559
+ types: GearTypeIdArray;
560
+ firepower: number;
561
+ torpedo: number;
562
+ anti_air: number;
563
+ armor: number;
564
+ evasion: number;
565
+ asw: number;
566
+ los: number;
567
+ bombing: number;
568
+ accuracy: number;
569
+ range: number;
570
+ radius: number;
571
+ stars: number;
572
+ ace: number;
785
573
  }
786
574
 
787
- export type SlotSizeVec = (number | null)[];
575
+ export type GearVecInput = GearInput[];
788
576
 
789
- declare namespace Side {
790
- export type Player = "Player";
791
- export type Enemy = "Enemy";
577
+ export interface ShellingSupportSimulatorParams {
578
+ attacker_formation?: Formation;
579
+ target_formation?: Formation;
580
+ engagement: Engagement;
792
581
  }
793
582
 
794
- export type Side = Side.Player | Side.Enemy;
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>;
594
+ }
795
595
 
796
596
  declare namespace GearAttr {
797
597
  export type Unknown = "Unknown";
@@ -856,6 +656,92 @@ export type GearAttr =
856
656
  | GearAttr.SemiNightPlane
857
657
  | GearAttr.HighAltitudeInterceptor;
858
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
+
859
745
  declare namespace FleetType {
860
746
  export type Main = "Main";
861
747
  export type Escort = "Escort";
@@ -891,33 +777,47 @@ export interface EquipStype {
891
777
  equip_type: number[];
892
778
  }
893
779
 
894
- type __NightBattleAttackTypeAswAttackType = AswAttackType;
895
- type __NightBattleAttackTypeNightAttackType = NightAttackType;
896
- declare namespace NightBattleAttackType {
897
- export type NightAttack = {
898
- t: "NightAttack";
899
- c: __NightBattleAttackTypeNightAttackType;
900
- };
901
- export type Asw = { t: "Asw"; c: __NightBattleAttackTypeAswAttackType };
780
+ export interface WarfareContext {
781
+ attacker_env: ShipEnvironment;
782
+ target_env: ShipEnvironment;
783
+ engagement: Engagement;
784
+ air_state: AirState;
902
785
  }
903
786
 
904
- export type NightBattleAttackType =
905
- | NightBattleAttackType.NightAttack
906
- | NightBattleAttackType.Asw;
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;
795
+ }
907
796
 
908
- type __DayBattleAttackTypeAswAttackType = AswAttackType;
909
- type __DayBattleAttackTypeShellingAttackType = ShellingAttackType;
910
- declare namespace DayBattleAttackType {
911
- export type Shelling = {
912
- t: "Shelling";
913
- c: __DayBattleAttackTypeShellingAttackType;
914
- };
915
- export type Asw = { t: "Asw"; c: __DayBattleAttackTypeAswAttackType };
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;
916
809
  }
917
810
 
918
- export type DayBattleAttackType =
919
- | DayBattleAttackType.Shelling
920
- | DayBattleAttackType.Asw;
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;
820
+ }
921
821
 
922
822
  export interface AttackInfo<AttackType, Cutin> {
923
823
  attack_type: AttackType;
@@ -925,19 +825,49 @@ export interface AttackInfo<AttackType, Cutin> {
925
825
  damage_state_map: NumMap<DamageState, number> | null;
926
826
  }
927
827
 
928
- export interface AttackInfoItem<Cutin> {
929
- cutin: Cutin;
930
- rate: number | null;
931
- stats: AttackStats;
828
+ export interface AttackInfoItem<Cutin> {
829
+ cutin: Cutin;
830
+ rate: number | null;
831
+ stats: AttackStats;
832
+ }
833
+
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;
841
+ }
842
+
843
+ export interface CompAntiAirInfo {
844
+ fleet_adjusted_anti_air: number;
845
+ ships: ShipAntiAirInfo[];
846
+ anti_air_cutin_chance: [number, number][];
847
+ }
848
+
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;
857
+ }
858
+
859
+ export interface CompContactChanceInfo {
860
+ single: AirstrikeContactChance[] | null;
861
+ combined: AirstrikeContactChance[] | null;
932
862
  }
933
863
 
934
- export interface AttackStats {
935
- attack_power: AttackPower | null;
936
- attack_power_params: AttackPowerParams | null;
937
- hits: number;
938
- hit_rate: HitRate | null;
939
- hit_rate_params: HitRateParams | null;
940
- damage: DamageInfo | null;
864
+ export interface AirstrikeContactChance {
865
+ air_state: AirState;
866
+ trigger_rate: number;
867
+ rank3: number;
868
+ rank2: number;
869
+ rank1: number;
870
+ total: number;
941
871
  }
942
872
 
943
873
  export type ShipStateMap = Record<ShipKey, ShipState>;
@@ -1049,45 +979,14 @@ export interface GearState {
1049
979
  stars?: number;
1050
980
  }
1051
981
 
1052
- export interface MasterGear {
1053
- gear_id: number;
1054
- name: string;
1055
- types: GearTypeIdArray;
1056
- special_type?: number;
1057
- max_hp?: number;
1058
- firepower?: number;
1059
- armor?: number;
1060
- torpedo?: number;
1061
- anti_air?: number;
1062
- speed?: number;
1063
- bombing?: number;
1064
- asw?: number;
1065
- los?: number;
1066
- luck?: number;
1067
- accuracy?: number;
1068
- evasion?: number;
1069
- range?: number;
1070
- radius?: number;
1071
- cost?: number;
1072
- improvable?: boolean;
1073
- ship_anti_air_resistance?: number;
1074
- fleet_anti_air_resistance?: number;
1075
- }
982
+ export type SlotSizeVec = (number | null)[];
1076
983
 
1077
- export interface HitRate {
1078
- total: number;
1079
- normal: number;
1080
- critical: number;
984
+ declare namespace Side {
985
+ export type Player = "Player";
986
+ export type Enemy = "Enemy";
1081
987
  }
1082
988
 
1083
- export interface HitRateParams {
1084
- accuracy_term: number;
1085
- evasion_term: number;
1086
- target_morale_mod: number;
1087
- critical_rate_constant: number;
1088
- critical_percentage_bonus: number;
1089
- hit_percentage_bonus: number;
1090
- }
989
+ export type Side = Side.Player | Side.Enemy;
1091
990
 
1092
991
  declare namespace NightAttackType {
1093
992
  export type Normal = "Normal";
@@ -1146,6 +1045,47 @@ export type NightCutin =
1146
1045
  | NightCutin.Cvci1_18
1147
1046
  | NightCutin.Photobomber;
1148
1047
 
1048
+ declare namespace ContactRank {
1049
+ export type Rank1 = "Rank1";
1050
+ export type Rank2 = "Rank2";
1051
+ export type Rank3 = "Rank3";
1052
+ }
1053
+
1054
+ export type ContactRank =
1055
+ | ContactRank.Rank1
1056
+ | ContactRank.Rank2
1057
+ | ContactRank.Rank3;
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>;
@@ -1240,54 +1180,44 @@ export interface MasterShip {
1240
1180
 
1241
1181
  export type StatInterval = [number | null, number | null];
1242
1182
 
1243
- export type GearTypeIdArray = [number, number, number, number, number];
1244
-
1245
- declare namespace ContactRank {
1246
- export type Rank1 = "Rank1";
1247
- export type Rank2 = "Rank2";
1248
- export type Rank3 = "Rank3";
1249
- }
1250
-
1251
- export type ContactRank =
1252
- | ContactRank.Rank1
1253
- | ContactRank.Rank2
1254
- | ContactRank.Rank3;
1255
-
1256
- export interface SimulatorResult {
1257
- items: SimulatorResultItem[];
1258
- sunk_vec: [number, number, number][];
1259
- }
1260
-
1261
- export interface SimulatorResultItem {
1262
- id: string;
1263
- role: Role;
1264
- index: number;
1265
- damage_state_map: Record<DamageState, number>;
1266
- }
1267
-
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;
1183
+ export interface MasterGear {
1184
+ gear_id: number;
1185
+ name: string;
1186
+ types: GearTypeIdArray;
1187
+ special_type?: number;
1188
+ max_hp?: number;
1189
+ firepower?: number;
1190
+ armor?: number;
1191
+ torpedo?: number;
1192
+ anti_air?: number;
1193
+ speed?: number;
1194
+ bombing?: number;
1195
+ asw?: number;
1196
+ los?: number;
1197
+ luck?: number;
1198
+ accuracy?: number;
1199
+ evasion?: number;
1200
+ range?: number;
1201
+ radius?: number;
1202
+ cost?: number;
1203
+ improvable?: boolean;
1204
+ ship_anti_air_resistance?: number;
1205
+ fleet_anti_air_resistance?: number;
1274
1206
  }
1275
1207
 
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;
@@ -1433,6 +1427,10 @@ export class Comp {
1433
1427
  * @returns {boolean}
1434
1428
  */
1435
1429
  is_enemy(): boolean;
1430
+ /**
1431
+ * @returns {boolean}
1432
+ */
1433
+ has_route_sup(): boolean;
1436
1434
  /**
1437
1435
  * @returns {CompMeta}
1438
1436
  */
@@ -1492,13 +1490,13 @@ export class Comp {
1492
1490
  transport_point(): number;
1493
1491
  /**
1494
1492
  * @param {Ship} ship
1495
- * @param {Formation} formation
1496
- * @returns {WarfareShipEnvironment}
1493
+ * @param {Formation | undefined} formation
1494
+ * @returns {ShipEnvironment}
1497
1495
  */
1498
1496
  create_warfare_ship_environment(
1499
1497
  ship: Ship,
1500
- formation: Formation
1501
- ): WarfareShipEnvironment;
1498
+ formation?: Formation
1499
+ ): ShipEnvironment;
1502
1500
  /**
1503
1501
  */
1504
1502
  boss_sup?: Fleet;
@@ -2062,15 +2060,6 @@ export class Org {
2062
2060
  * @returns {number}
2063
2061
  */
2064
2062
  high_altitude_interception_power(): number;
2065
- /**
2066
- * @param {Ship} ship
2067
- * @param {Formation} formation
2068
- * @returns {WarfareShipEnvironment}
2069
- */
2070
- create_warfare_ship_environment(
2071
- ship: Ship,
2072
- formation: Formation
2073
- ): WarfareShipEnvironment;
2074
2063
  /**
2075
2064
  * @returns {Org}
2076
2065
  */