fleethub-core 1.11.6 → 1.11.8

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.
@@ -1,99 +1,157 @@
1
1
  /* tslint:disable */
2
2
  /* eslint-disable */
3
- /**
4
- */
5
- export function set_panic_hook(): void;
6
3
  /**
7
4
  * @param {ShipConditions} value
8
5
  * @returns {ShipConditions}
9
6
  */
10
7
  export function parse_ship_conditions(value: ShipConditions): ShipConditions;
11
- export interface SupportShellingSimulatorParams {
12
- attacker_formation?: Formation;
13
- target_formation?: Formation;
14
- engagement: Engagement;
8
+ /**
9
+ */
10
+ export function set_panic_hook(): void;
11
+ export interface MoveShipPayload {
12
+ current: [string, string, ShipKey];
13
+ target: [string | null, string, ShipKey];
15
14
  }
16
15
 
17
- export interface AttackPower {
18
- precap: number;
19
- is_capped: boolean;
20
- capped: number;
21
- normal: number;
22
- critical: number;
23
- armor_penetration: number;
24
- remaining_ammo_mod: number;
16
+ export type GearTypeIdArray = [number, number, number, number, number];
17
+
18
+ export type GearVecInput = GearInput[];
19
+
20
+ export interface GearInput {
21
+ gear_id: number;
22
+ types: GearTypeIdArray;
23
+ firepower: number;
24
+ torpedo: number;
25
+ anti_air: number;
26
+ armor: number;
27
+ evasion: number;
28
+ asw: number;
29
+ los: number;
30
+ bombing: number;
31
+ accuracy: number;
32
+ range: number;
33
+ radius: number;
34
+ stars: number;
35
+ ace: number;
25
36
  }
26
37
 
27
- export interface AttackPowerParams {
28
- basic: number;
29
- cap: number;
30
- precap_mod: AttackPowerModifier;
31
- postcap_mod: AttackPowerModifier;
32
- ap_shell_mod: number | null;
33
- aerial_power: number | null;
34
- proficiency_critical_mod: number;
35
- armor_penetration: number;
36
- remaining_ammo_mod: number;
37
- special_enemy_mods: SpecialEnemyModifiers;
38
- historical_mod: AttackPowerModifier;
39
- custom_mods: CustomPowerModifiers;
38
+ export interface ShipInput {
39
+ ship_id: number;
40
+ ctype: number;
41
+ stype: number;
42
+ yomi: string;
40
43
  }
41
44
 
42
- export interface NightContactChance {
43
- rank1: number;
44
- rank2: number;
45
- rank3: number;
45
+ export interface EBonuses {
46
+ firepower: number;
47
+ torpedo: number;
48
+ anti_air: number;
49
+ armor: number;
50
+ evasion: number;
51
+ asw: number;
52
+ los: number;
53
+ bombing: number;
54
+ accuracy: number;
55
+ range: number;
46
56
  }
47
57
 
48
- export interface CompNightCutinAnalysis {
49
- night_contact_chance: NightContactChance;
50
- ships: ShipNightCutinAnalysis[];
58
+ export interface CompAntiAirAnalysis {
59
+ fleet_adjusted_anti_air: number;
60
+ ships: AntiAirReport[];
61
+ anti_air_cutin_chance: [number, number][];
51
62
  }
52
63
 
53
- export interface ShipNightCutinAnalysis {
64
+ export interface AntiAirReport {
54
65
  ship_id: number;
66
+ role: Role;
55
67
  index: number;
56
- normal: NightCutinActionReport;
57
- chuuha: NightCutinActionReport;
68
+ adjusted_anti_air: number | null;
69
+ proportional_shotdown_rate: number | null;
70
+ fixed_shotdown_number: number | null;
71
+ guaranteed: number | null;
72
+ anti_air_cutin_chance: [number, number][];
73
+ anti_air_propellant_barrage_chance: number | null;
58
74
  }
59
75
 
60
- export interface NightCutinActionReport
61
- extends ActionReport<NightPhaseAttackStyle> {
62
- cutin_term: number | null;
76
+ export interface ActionReport<T> {
77
+ data: Record<string, AttackReport<T>>;
78
+ damage_state_density: Histogram<DamageState, number> | null;
79
+ is_active: boolean;
63
80
  }
64
81
 
65
- export type FleetType = "Main" | "Escort" | "RouteSup" | "BossSup";
82
+ export type AswAttackType = "DepthCharge" | "Aerial";
66
83
 
67
- export type GearAttr =
68
- | "Unknown"
69
- | "HighAngleMount"
70
- | "NightFighter"
71
- | "NightAttacker"
72
- | "HeavyBomber"
73
- | "NightRecon"
74
- | "MainGun"
75
- | "Radar"
76
- | "SurfaceRadar"
77
- | "AirRadar"
78
- | "DepthChargeProjector"
79
- | "SynergisticDepthCharge"
80
- | "AntiSubMortar"
81
- | "AntiSubWeapon"
82
- | "ApDepthCharge"
83
- | "AntiSubAircraft"
84
- | "LateModelBowTorpedo"
85
- | "Seaplane"
86
- | "CbAircraft"
87
- | "LbAircraft"
88
- | "JetAircraft"
89
- | "Fighter"
90
- | "Recon"
91
- | "ObservationSeaplane"
92
- | "CbFighterBomber"
93
- | "AntiInstDiveBomber"
94
- | "CbSwordfish"
95
- | "SemiNightPlane"
96
- | "HighAltitudeInterceptor";
84
+ export type ShellingType = "Normal" | "Aerial";
85
+
86
+ export type NightAttackType = "Normal" | "Swordfish" | "Aerial";
87
+
88
+ export type SupportShellingType = ShellingType;
89
+
90
+ export type AttackType =
91
+ | { t: "Asw"; c: AswAttackType }
92
+ | { t: "Shelling"; c: ShellingType }
93
+ | { t: "Night"; c: NightAttackType }
94
+ | { t: "Torpedo" }
95
+ | { t: "SupportShelling"; c: SupportShellingType };
96
+
97
+ export type DayPhaseAttackType =
98
+ | { t: "Shelling"; c: ShellingType }
99
+ | { t: "Asw"; c: AswAttackType };
100
+
101
+ export type NightPhaseAttackType =
102
+ | { t: "Night"; c: NightAttackType }
103
+ | { t: "Asw"; c: AswAttackType };
104
+
105
+ export type TorpedoAttackType = null;
106
+
107
+ export interface ShipMeta {
108
+ id: string;
109
+ ship_id: number;
110
+ }
111
+
112
+ export interface FleetMeta {
113
+ id: string;
114
+ len: number;
115
+ ships: [string, ShipMeta | null][];
116
+ }
117
+
118
+ export interface CompMeta {
119
+ fleets: Record<FleetType, FleetMeta>;
120
+ }
121
+
122
+ export type Role = "Main" | "Escort";
123
+
124
+ export interface NodeAttackAnalyzerShipConfig extends NightFleetConditions {
125
+ formation?: Formation;
126
+ }
127
+
128
+ export interface NodeAttackAnalyzerConfig {
129
+ air_state?: AirState;
130
+ engagement?: Engagement;
131
+ node_state?: NodeState;
132
+ left?: NodeAttackAnalyzerShipConfig;
133
+ right?: NodeAttackAnalyzerShipConfig;
134
+ }
135
+
136
+ export interface NodeAttackAnalysis {
137
+ left: AttackAnalysis;
138
+ right: AttackAnalysis;
139
+ shelling_fleet_cutin: FleetCutinReport<ShellingStyle>[];
140
+ night_fleet_cutin: FleetCutinReport<NightAttackStyle>[];
141
+ }
142
+
143
+ export interface DamageReport {
144
+ miss_damage_min: number;
145
+ miss_damage_max: number;
146
+ normal_damage_min: number;
147
+ normal_damage_max: number;
148
+ critical_damage_min: number;
149
+ critical_damage_max: number;
150
+ normal_scratch_rate: number;
151
+ critical_scratch_rate: number;
152
+ damage_density: Histogram<number, number>;
153
+ damage_state_density: Histogram<DamageState, number>;
154
+ }
97
155
 
98
156
  export type GearType =
99
157
  | "Unknown"
@@ -171,95 +229,91 @@ export type GearCategory =
171
229
  | "LandBased"
172
230
  | "Misc";
173
231
 
174
- export interface OrgState {
175
- id?: string;
176
- f1?: FleetState;
177
- f2?: FleetState;
178
- f3?: FleetState;
179
- f4?: FleetState;
180
- a1?: AirSquadronState;
181
- a2?: AirSquadronState;
182
- a3?: AirSquadronState;
183
- hq_level?: number;
184
- org_type?: OrgType;
185
- sortie?: FleetKey;
186
- route_sup?: FleetKey;
187
- boss_sup?: FleetKey;
232
+ export interface SlotSizeVecState {
233
+ ss1?: number;
234
+ ss2?: number;
235
+ ss3?: number;
236
+ ss4?: number;
237
+ ss5?: number;
188
238
  }
189
239
 
190
- export type FleetKey = "f1" | "f2" | "f3" | "f4";
191
-
192
- export interface EquippabilityRule {
193
- ship: CompiledEvaler;
194
- keys?: string[];
195
- include?: string;
196
- exclude?: string;
240
+ export interface ShipState extends GearVecState, SlotSizeVecState {
241
+ id?: string;
242
+ ship_id: number;
243
+ level?: number;
244
+ current_hp?: number;
245
+ morale?: number;
246
+ ammo?: number;
247
+ fuel?: number;
248
+ max_hp_mod?: number;
249
+ firepower_mod?: number;
250
+ torpedo_mod?: number;
251
+ armor_mod?: number;
252
+ anti_air_mod?: number;
253
+ evasion_mod?: number;
254
+ asw_mod?: number;
255
+ los_mod?: number;
256
+ luck_mod?: number;
257
+ day_gunfit_accuracy?: number;
258
+ night_gunfit_accuracy?: number;
259
+ custom_power_mods?: CustomPowerModifiers;
197
260
  }
198
261
 
199
- export interface MasterEquippability {
200
- equip_stype: EquipStype[];
201
- equip_exslot: number[];
202
- equip_ship: MstEquipShip[];
203
- equip_exslot_ship: MstEquipExslotShip[];
204
- rules: EquippabilityRule[];
205
- }
262
+ export type ShipKey = "s1" | "s2" | "s3" | "s4" | "s5" | "s6" | "s7";
206
263
 
207
- export interface MstEquipExslotShip {
208
- api_slotitem_id: number;
209
- api_ship_ids: number[];
210
- }
211
-
212
- export interface MstEquipShip {
213
- api_ship_id: number;
214
- api_equip_type: number[];
215
- }
264
+ export type SpeedGroup = "A" | "B1" | "B2" | "C";
216
265
 
217
- export interface EquipStype {
218
- id: number;
219
- equip_type: number[];
220
- }
266
+ export type DayCutin =
267
+ | "Zuiun"
268
+ | "AirSea"
269
+ | "MainMain"
270
+ | "MainAp"
271
+ | "MainRadar"
272
+ | "MainSec"
273
+ | "DoubleAttack"
274
+ | "FBA"
275
+ | "BBA"
276
+ | "BA";
221
277
 
222
- export interface CompAnalyzerConfig {
223
- engagement: Engagement;
224
- formation: Formation;
225
- anti_air_cutin: number | null;
226
- ship_anti_air_resist: number;
227
- fleet_anti_air_resist: number;
228
- left_night_fleet_conditions: NightFleetConditions;
229
- right_night_fleet_conditions: NightFleetConditions;
230
- }
278
+ export type NightCutin =
279
+ | "MainTorpRadar"
280
+ | "TorpLookoutRadar"
281
+ | "TorpTsloTorp"
282
+ | "TorpTsloDrum"
283
+ | "NightZuiun2Radar"
284
+ | "NightZuiun2"
285
+ | "NightZuiunRadar"
286
+ | "NightZuiun"
287
+ | "DoubleAttack"
288
+ | "TorpTorpMain"
289
+ | "TorpTorpTorp"
290
+ | "MainMainSec"
291
+ | "MainMainMain"
292
+ | "SubTorpTorp"
293
+ | "SubRadarTorp"
294
+ | "Cvci1_25"
295
+ | "Cvci1_20"
296
+ | "Cvci1_18"
297
+ | "Photobomber";
231
298
 
232
- export interface CompNightAnalysis {
233
- night_cutin: CompNightCutinAnalysis;
234
- fleet_cutin: FleetCutinReport<NightAttackStyle>[];
235
- }
299
+ export type FleetCutin =
300
+ | "NelsonTouch"
301
+ | "NagatoClassCutin"
302
+ | "ColoradoClassCutin"
303
+ | "KongouClassCutin"
304
+ | "Yamato2ShipCutin"
305
+ | "Yamato3ShipCutin";
236
306
 
237
- export interface CompDayAnalysis {
238
- day_cutin: CompDayCutinAnalysis;
239
- fleet_cutin: FleetCutinReport<ShellingStyle>[];
240
- }
307
+ export type DayCutinLike = DayCutin | FleetCutin;
241
308
 
242
- export interface CompAnalysis {
243
- day: CompDayAnalysis;
244
- night: CompNightAnalysis;
245
- contact: ContactAnalysis;
246
- anti_air: CompAntiAirAnalysis;
247
- }
309
+ export type NightCutinLike = NightCutin | FleetCutin;
248
310
 
249
- export interface AttackAnalyzerShipConfig
250
- extends ShipConditions,
251
- NightFleetConditions {
252
- fleet_los_mod?: number | null;
311
+ export interface SupportShellingSimulatorParams {
312
+ attacker_formation?: Formation;
313
+ target_formation?: Formation;
314
+ engagement: Engagement;
253
315
  }
254
316
 
255
- export type OrgType =
256
- | "Single"
257
- | "CarrierTaskForce"
258
- | "SurfaceTaskForce"
259
- | "TransportEscort"
260
- | "EnemySingle"
261
- | "EnemyCombined";
262
-
263
317
  export interface MasterShip {
264
318
  ship_id: number;
265
319
  name: string;
@@ -294,85 +348,6 @@ export interface MasterShip {
294
348
 
295
349
  export type StatInterval = [number | null, number | null];
296
350
 
297
- export interface ShellingStyle {
298
- tag: "ShellingStyle";
299
- attack_type: ShellingType;
300
- cutin: DayCutinLike | null;
301
- power_mod: number;
302
- accuracy_mod: number;
303
- hits: number;
304
- }
305
-
306
- export interface NightAttackStyle {
307
- tag: "NightAttackStyle";
308
- attack_type: NightAttackType;
309
- cutin: NightCutinLike | null;
310
- power_mod: number;
311
- accuracy_mod: number;
312
- hits: number;
313
- }
314
-
315
- export interface AswAttackStyle {
316
- tag: "AswAttackStyle";
317
- attack_type: AswAttackType;
318
- }
319
-
320
- export interface TorpedoAttackStyle {
321
- tag: "TorpedoAttackStyle";
322
- attack_type: TorpedoAttackType;
323
- }
324
-
325
- export type DayPhaseAttackStyle = ShellingStyle | AswAttackStyle;
326
-
327
- export type NightPhaseAttackStyle = NightAttackStyle | AswAttackStyle;
328
-
329
- export interface SupportShellingStyle {
330
- tag: "SupportShellingStyle";
331
- attack_type: SupportShellingType;
332
- }
333
-
334
- export type GearVecInput = GearInput[];
335
-
336
- export interface GearInput {
337
- gear_id: number;
338
- types: GearTypeIdArray;
339
- firepower: number;
340
- torpedo: number;
341
- anti_air: number;
342
- armor: number;
343
- evasion: number;
344
- asw: number;
345
- los: number;
346
- bombing: number;
347
- accuracy: number;
348
- range: number;
349
- radius: number;
350
- stars: number;
351
- ace: number;
352
- }
353
-
354
- export interface ShipInput {
355
- ship_id: number;
356
- ctype: number;
357
- stype: number;
358
- yomi: string;
359
- }
360
-
361
- export interface EBonuses {
362
- firepower: number;
363
- torpedo: number;
364
- anti_air: number;
365
- armor: number;
366
- evasion: number;
367
- asw: number;
368
- los: number;
369
- bombing: number;
370
- accuracy: number;
371
- range: number;
372
- }
373
-
374
- export type FhResult<T> = { Ok: T } | { Err: string };
375
-
376
351
  export interface MasterGear {
377
352
  gear_id: number;
378
353
  name: string;
@@ -399,161 +374,121 @@ export interface MasterGear {
399
374
  historical_aircraft_group?: number;
400
375
  }
401
376
 
402
- export interface NodeAttackAnalyzerShipConfig extends NightFleetConditions {
403
- formation?: Formation;
377
+ export interface HitRate {
378
+ normal: number;
379
+ critical: number;
380
+ total: number;
404
381
  }
405
382
 
406
- export interface NodeAttackAnalyzerConfig {
407
- air_state?: AirState;
408
- engagement?: Engagement;
409
- node_state?: NodeState;
410
- left?: NodeAttackAnalyzerShipConfig;
411
- right?: NodeAttackAnalyzerShipConfig;
383
+ export interface HitRateParams {
384
+ accuracy_term: number;
385
+ evasion_term: number;
386
+ target_morale_mod: number;
387
+ critical_rate_constant: number;
388
+ critical_percentage_bonus: number;
389
+ hit_percentage_bonus: number;
412
390
  }
413
391
 
414
- export interface NodeAttackAnalysis {
415
- left: AttackAnalysis;
416
- right: AttackAnalysis;
417
- shelling_fleet_cutin: FleetCutinReport<ShellingStyle>[];
418
- night_fleet_cutin: FleetCutinReport<NightAttackStyle>[];
392
+ export interface ContactAnalysis {
393
+ single: DayContactChance[] | null;
394
+ combined: DayContactChance[] | null;
419
395
  }
420
396
 
421
- export interface CompDayCutinAnalysis {
422
- rank3_air_state: AirState;
423
- rank2_air_state: AirState;
424
- main_fleet_los_mod: number | null;
425
- escort_fleet_los_mod: number | null;
426
- ships: ShipDayCutinAnalysis[];
397
+ export interface DayContactChance {
398
+ air_state: AirState;
399
+ trigger_rate: number;
400
+ rank3: number;
401
+ rank2: number;
402
+ rank1: number;
403
+ total: number;
427
404
  }
428
405
 
429
- export interface ShipDayCutinAnalysis {
430
- ship_id: number;
431
- role: Role;
432
- index: number;
433
- rank3: DayCutinReport;
434
- rank2: DayCutinReport;
406
+ export interface AttackAnalysis {
407
+ attacker_is_player: boolean;
408
+ attacker_ship_id: number;
409
+ target_ship_id: number;
410
+ historical_params: HistoricalParams;
411
+ day: ActionReport<DayPhaseAttackStyle>;
412
+ night: ActionReport<NightPhaseAttackStyle>;
413
+ closing_torpedo: ActionReport<TorpedoAttackStyle>;
414
+ opening_asw: ActionReport<AswAttackStyle>;
415
+ support_shelling: ActionReport<SupportShellingStyle>;
435
416
  }
436
417
 
437
- export interface DayCutinReport extends ActionReport<DayPhaseAttackStyle> {
438
- observation_term: number | null;
439
- }
418
+ export type SingleFormation =
419
+ | "LineAhead"
420
+ | "DoubleLine"
421
+ | "Diamond"
422
+ | "Echelon"
423
+ | "LineAbreast"
424
+ | "Vanguard";
440
425
 
441
- export interface BattleConditions {
442
- org_type: OrgType;
443
- role: Role;
444
- ship_index: number;
445
- fleet_len: number;
446
- formation: Formation;
447
- fleet_los_mod: number | null;
448
- night_conditions: NightFleetConditions;
449
- }
426
+ export type CombinedFormation =
427
+ | "Cruising1"
428
+ | "Cruising2"
429
+ | "Cruising3"
430
+ | "Cruising4";
450
431
 
451
- export interface NightConditions {
452
- player?: NightFleetConditions;
453
- enemy?: NightFleetConditions;
454
- }
432
+ export type Formation = SingleFormation | CombinedFormation;
455
433
 
456
- export interface NightFleetConditions {
457
- night_contact_rank?: ContactRank | null;
458
- starshell_index?: number | null;
459
- searchlight_index?: number | null;
460
- activates_large_searchlight?: boolean;
434
+ export interface GearState {
435
+ id?: string;
436
+ gear_id: number;
437
+ exp?: number;
438
+ stars?: number;
461
439
  }
462
440
 
463
- export type DayCutin =
464
- | "Zuiun"
465
- | "AirSea"
466
- | "MainMain"
467
- | "MainAp"
468
- | "MainRadar"
469
- | "MainSec"
470
- | "DoubleAttack"
471
- | "FBA"
472
- | "BBA"
473
- | "BA";
474
-
475
- export type NightCutin =
476
- | "MainTorpRadar"
477
- | "TorpLookoutRadar"
478
- | "TorpTsloTorp"
479
- | "TorpTsloDrum"
480
- | "NightZuiun2Radar"
481
- | "NightZuiun2"
482
- | "NightZuiunRadar"
483
- | "NightZuiun"
484
- | "DoubleAttack"
485
- | "TorpTorpMain"
486
- | "TorpTorpTorp"
487
- | "MainMainSec"
488
- | "MainMainMain"
489
- | "SubTorpTorp"
490
- | "SubRadarTorp"
491
- | "Cvci1_25"
492
- | "Cvci1_20"
493
- | "Cvci1_18"
494
- | "Photobomber";
495
-
496
- export type FleetCutin =
497
- | "NelsonTouch"
498
- | "NagatoClassCutin"
499
- | "ColoradoClassCutin"
500
- | "KongouClassCutin"
501
- | "Yamato2ShipCutin"
502
- | "Yamato3ShipCutin";
503
-
504
- export type DayCutinLike = DayCutin | FleetCutin;
505
-
506
- export type NightCutinLike = NightCutin | FleetCutin;
441
+ export interface GearVecState {
442
+ g1?: GearState;
443
+ g2?: GearState;
444
+ g3?: GearState;
445
+ g4?: GearState;
446
+ g5?: GearState;
447
+ gx?: GearState;
448
+ }
507
449
 
508
- export type SingleFormation =
509
- | "LineAhead"
510
- | "DoubleLine"
511
- | "Diamond"
512
- | "Echelon"
513
- | "LineAbreast"
514
- | "Vanguard";
450
+ export type NodeId = string;
515
451
 
516
- export type CombinedFormation =
517
- | "Cruising1"
518
- | "Cruising2"
519
- | "Cruising3"
520
- | "Cruising4";
452
+ export interface NodeState {
453
+ map?: number;
454
+ node?: NodeId;
455
+ phase?: number;
456
+ debuff?: boolean;
457
+ disable_historical_mod?: boolean;
458
+ }
521
459
 
522
- export type Formation = SingleFormation | CombinedFormation;
460
+ export type FhResult<T> = { Ok: T } | { Err: string };
523
461
 
524
- export type SpecialEnemyType =
525
- | "None"
526
- | "SoftSkinned"
527
- | "Pillbox"
528
- | "IsolatedIsland"
529
- | "SupplyDepot"
530
- | "NewSupplyDepot"
531
- | "HarbourSummerPrincess"
532
- | "PtImp"
533
- | "BattleshipSummerPrincess"
534
- | "HeavyCruiserSummerPrincess"
535
- | "FrenchBattleshipPrincess"
536
- | "AnchorageWaterDemonVacationMode"
537
- | "DockPrincess";
462
+ export interface MasterBattleDefinitions {
463
+ formation: NestedFormationDef[];
464
+ anti_air_cutin: AntiAirCutinDef[];
465
+ day_cutin: DayCutinDef[];
466
+ night_cutin: NightCutinDef[];
467
+ historical_bonuses?: HistoricalBonusDef[];
468
+ }
538
469
 
539
- export type SpeedGroup = "A" | "B1" | "B2" | "C";
470
+ export type AirWaveType = "Jet" | "LandBase" | "Carrier";
540
471
 
541
- export interface MoveShipPayload {
542
- current: [string, string, ShipKey];
543
- target: [string | null, string, ShipKey];
472
+ export interface BattleConditions {
473
+ org_type: OrgType;
474
+ role: Role;
475
+ ship_index: number;
476
+ fleet_len: number;
477
+ formation: Formation;
478
+ fleet_los_mod: number | null;
479
+ night_conditions: NightFleetConditions;
544
480
  }
545
481
 
546
- export interface FleetCutinReport<T> {
547
- cutin: FleetCutin;
548
- rate: number | null;
549
- formation: Formation;
550
- attacks: FleetCutinAttackReport<T>[];
482
+ export interface NightConditions {
483
+ player?: NightFleetConditions;
484
+ enemy?: NightFleetConditions;
551
485
  }
552
486
 
553
- export interface FleetCutinAttackReport<T> extends AttackReport<T> {
554
- index: number;
555
- ship_id: number;
556
- power_mod: number;
487
+ export interface NightFleetConditions {
488
+ night_contact_rank?: ContactRank | null;
489
+ starshell_index?: number | null;
490
+ searchlight_index?: number | null;
491
+ activates_large_searchlight?: boolean;
557
492
  }
558
493
 
559
494
  export interface FormationCombatModifiersDef {
@@ -629,142 +564,103 @@ export interface BattleDefinitions {
629
564
  historical_bonuses: HistoricalBonusDef[];
630
565
  }
631
566
 
632
- export interface ShipMeta {
633
- id: string;
634
- ship_id: number;
567
+ export type ShipAttr =
568
+ | "Unknown"
569
+ | "NightCarrier"
570
+ | "Installation"
571
+ | "RoyalNavy"
572
+ | "Kai2"
573
+ | "TurbineSpeedBonus"
574
+ | "NewModelBoilerSpeedBonus"
575
+ | "Pillbox"
576
+ | "IsolatedIsland"
577
+ | "HarbourSummerPrincess"
578
+ | "SupplyDepot"
579
+ | "NewSupplyDepot"
580
+ | "PtImp"
581
+ | "BattleshipSummerPrincess"
582
+ | "HeavyCruiserSummerPrincess"
583
+ | "AnchorageWaterDemonVacationMode"
584
+ | "FrenchBattleshipPrincess"
585
+ | "DockPrincess";
586
+
587
+ export type Side = "Player" | "Enemy";
588
+
589
+ export type Align = "Left" | "Right";
590
+
591
+ export type SlotSizeVec = (number | null)[];
592
+
593
+ export type SpecialEnemyType =
594
+ | "None"
595
+ | "SoftSkinned"
596
+ | "Pillbox"
597
+ | "IsolatedIsland"
598
+ | "SupplyDepot"
599
+ | "NewSupplyDepot"
600
+ | "HarbourSummerPrincess"
601
+ | "PtImp"
602
+ | "BattleshipSummerPrincess"
603
+ | "HeavyCruiserSummerPrincess"
604
+ | "FrenchBattleshipPrincess"
605
+ | "AnchorageWaterDemonVacationMode"
606
+ | "DockPrincess";
607
+
608
+ export type CompiledEvaler = string;
609
+
610
+ export interface SimulatorResult {
611
+ items: SimulatorResultItem[];
612
+ sunk_vec: [number, number, number][];
635
613
  }
636
614
 
637
- export interface FleetMeta {
615
+ export interface SimulatorResultItem {
638
616
  id: string;
639
- len: number;
640
- ships: [string, ShipMeta | null][];
617
+ fleet_type: FleetType;
618
+ index: number;
619
+ damage_state_map: Record<DamageState, number>;
641
620
  }
642
621
 
643
- export interface CompMeta {
644
- fleets: Record<FleetType, FleetMeta>;
622
+ export interface MasterData extends MasterBattleDefinitions {
623
+ created_at: number;
624
+ gears: MasterGear[];
625
+ gear_attrs: MasterAttrRule<GearAttr>[];
626
+ ships: MasterShip[];
627
+ ship_attrs: MasterAttrRule<ShipAttr>[];
628
+ ibonuses: MasterIBonuses;
629
+ equippability: MasterEquippability;
645
630
  }
646
631
 
647
- export type NodeId = string;
648
-
649
- export interface NodeState {
650
- map?: number;
651
- node?: NodeId;
652
- phase?: number;
653
- debuff?: boolean;
654
- disable_historical_mod?: boolean;
632
+ export interface NationalityDef {
633
+ id: number;
634
+ ctypes: number[];
655
635
  }
656
636
 
657
- export interface SlotSizeVecState {
658
- ss1?: number;
659
- ss2?: number;
660
- ss3?: number;
661
- ss4?: number;
662
- ss5?: number;
637
+ export interface MasterAttrRule<T> {
638
+ tag: T;
639
+ name: string;
640
+ expr: CompiledEvaler;
663
641
  }
664
642
 
665
- export interface ShipState extends GearVecState, SlotSizeVecState {
643
+ export type AirSquadronMode = "Sortie" | "AirDefense";
644
+
645
+ export interface AirSquadronState extends GearVecState, SlotSizeVecState {
666
646
  id?: string;
667
- ship_id: number;
668
- level?: number;
669
- current_hp?: number;
670
- morale?: number;
671
- ammo?: number;
672
- fuel?: number;
673
- max_hp_mod?: number;
674
- firepower_mod?: number;
675
- torpedo_mod?: number;
676
- armor_mod?: number;
677
- anti_air_mod?: number;
678
- evasion_mod?: number;
679
- asw_mod?: number;
680
- los_mod?: number;
681
- luck_mod?: number;
682
- day_gunfit_accuracy?: number;
683
- night_gunfit_accuracy?: number;
684
- custom_power_mods?: CustomPowerModifiers;
647
+ mode?: AirSquadronMode;
685
648
  }
686
649
 
687
- export type ShipKey = "s1" | "s2" | "s3" | "s4" | "s5" | "s6" | "s7";
650
+ export type AirState =
651
+ | "AirSupremacy"
652
+ | "AirSuperiority"
653
+ | "AirParity"
654
+ | "AirDenial"
655
+ | "AirIncapability";
688
656
 
689
- export interface MasterBattleDefinitions {
690
- formation: NestedFormationDef[];
691
- anti_air_cutin: AntiAirCutinDef[];
692
- day_cutin: DayCutinDef[];
693
- night_cutin: NightCutinDef[];
694
- historical_bonuses?: HistoricalBonusDef[];
695
- }
696
-
697
- export interface HitRate {
698
- normal: number;
699
- critical: number;
700
- total: number;
701
- }
702
-
703
- export interface HitRateParams {
704
- accuracy_term: number;
705
- evasion_term: number;
706
- target_morale_mod: number;
707
- critical_rate_constant: number;
708
- critical_percentage_bonus: number;
709
- hit_percentage_bonus: number;
710
- }
711
-
712
- export interface DamageReport {
713
- miss_damage_min: number;
714
- miss_damage_max: number;
715
- normal_damage_min: number;
716
- normal_damage_max: number;
717
- critical_damage_min: number;
718
- critical_damage_max: number;
719
- normal_scratch_rate: number;
720
- critical_scratch_rate: number;
721
- damage_density: Histogram<number, number>;
722
- damage_state_density: Histogram<DamageState, number>;
723
- }
724
-
725
- export interface ContactAnalysis {
726
- single: DayContactChance[] | null;
727
- combined: DayContactChance[] | null;
728
- }
729
-
730
- export interface DayContactChance {
731
- air_state: AirState;
732
- trigger_rate: number;
733
- rank3: number;
734
- rank2: number;
735
- rank1: number;
736
- total: number;
737
- }
657
+ export type AirStateRank = "Rank0" | "Rank1" | "Rank2" | "Rank3";
738
658
 
739
- export interface AttackAnalysis {
740
- attacker_is_player: boolean;
741
- attacker_ship_id: number;
742
- target_ship_id: number;
743
- historical_params: HistoricalParams;
744
- day: ActionReport<DayPhaseAttackStyle>;
745
- night: ActionReport<NightPhaseAttackStyle>;
746
- closing_torpedo: ActionReport<TorpedoAttackStyle>;
747
- opening_asw: ActionReport<AswAttackStyle>;
748
- support_shelling: ActionReport<SupportShellingStyle>;
749
- }
659
+ export type ContactRank = "Rank1" | "Rank2" | "Rank3";
750
660
 
751
- export interface CompAntiAirAnalysis {
752
- fleet_adjusted_anti_air: number;
753
- ships: AntiAirReport[];
754
- anti_air_cutin_chance: [number, number][];
755
- }
661
+ export type DamageState = "Normal" | "Shouha" | "Chuuha" | "Taiha" | "Sunk";
756
662
 
757
- export interface AntiAirReport {
758
- ship_id: number;
759
- role: Role;
760
- index: number;
761
- adjusted_anti_air: number | null;
762
- proportional_shotdown_rate: number | null;
763
- fixed_shotdown_number: number | null;
764
- guaranteed: number | null;
765
- anti_air_cutin_chance: [number, number][];
766
- anti_air_propellant_barrage_chance: number | null;
767
- }
663
+ export type Engagement = "GreenT" | "Parallel" | "HeadOn" | "RedT";
768
664
 
769
665
  export interface FleetState {
770
666
  id?: string;
@@ -778,24 +674,42 @@ export interface FleetState {
778
674
  s7?: ShipState;
779
675
  }
780
676
 
781
- export interface GearState {
782
- id?: string;
783
- gear_id: number;
784
- exp?: number;
785
- stars?: number;
786
- }
677
+ export type GearAttr =
678
+ | "Unknown"
679
+ | "HighAngleMount"
680
+ | "NightFighter"
681
+ | "NightAttacker"
682
+ | "HeavyBomber"
683
+ | "NightRecon"
684
+ | "MainGun"
685
+ | "Radar"
686
+ | "SurfaceRadar"
687
+ | "AirRadar"
688
+ | "DepthChargeProjector"
689
+ | "SynergisticDepthCharge"
690
+ | "AntiSubMortar"
691
+ | "AntiSubWeapon"
692
+ | "ApDepthCharge"
693
+ | "AntiSubAircraft"
694
+ | "LateModelBowTorpedo"
695
+ | "Seaplane"
696
+ | "CbAircraft"
697
+ | "LbAircraft"
698
+ | "JetAircraft"
699
+ | "Fighter"
700
+ | "Recon"
701
+ | "ObservationSeaplane"
702
+ | "CbFighterBomber"
703
+ | "AntiInstDiveBomber"
704
+ | "CbSwordfish"
705
+ | "SemiNightPlane"
706
+ | "HighAltitudeInterceptor";
787
707
 
788
- export interface GearVecState {
789
- g1?: GearState;
790
- g2?: GearState;
791
- g3?: GearState;
792
- g4?: GearState;
793
- g5?: GearState;
794
- gx?: GearState;
708
+ export interface ShipConditions extends ShipPosition {
709
+ formation?: Formation;
710
+ amagiri_index?: number | null;
795
711
  }
796
712
 
797
- export type MoraleState = "Sparkle" | "Normal" | "Orange" | "Red";
798
-
799
713
  export type ShipCategory =
800
714
  | "Battleship"
801
715
  | "AircraftCarrier"
@@ -831,56 +745,104 @@ export type ShipType =
831
745
  | "CT"
832
746
  | "AO";
833
747
 
834
- export type SlotSizeVec = (number | null)[];
748
+ export interface AttackPower {
749
+ precap: number;
750
+ is_capped: boolean;
751
+ capped: number;
752
+ normal: number;
753
+ critical: number;
754
+ armor_penetration: number;
755
+ remaining_ammo_mod: number;
756
+ }
835
757
 
836
- export type Histogram<K extends keyof any, V> = Partial<Record<K, V>>;
758
+ export interface AttackPowerParams {
759
+ basic: number;
760
+ cap: number;
761
+ precap_mod: AttackPowerModifier;
762
+ postcap_mod: AttackPowerModifier;
763
+ ap_shell_mod: number | null;
764
+ aerial_power: number | null;
765
+ proficiency_critical_mod: number;
766
+ armor_penetration: number;
767
+ remaining_ammo_mod: number;
768
+ special_enemy_mods: SpecialEnemyModifiers;
769
+ historical_mod: AttackPowerModifier;
770
+ custom_mods: CustomPowerModifiers;
771
+ }
837
772
 
838
- export type CompiledEvaler = string;
773
+ export interface NightContactChance {
774
+ rank1: number;
775
+ rank2: number;
776
+ rank3: number;
777
+ }
839
778
 
840
- export interface AttackReport<T> {
841
- style: T;
842
- proc_rate: number | null;
843
- attack_power: AttackPower | null;
844
- attack_power_params: AttackPowerParams | null;
845
- hits: number;
846
- hit_rate: HitRate | null;
847
- hit_rate_params: HitRateParams | null;
848
- damage: DamageReport | null;
779
+ export interface CompNightCutinAnalysis {
780
+ night_contact_chance: NightContactChance;
781
+ ships: ShipNightCutinAnalysis[];
849
782
  }
850
783
 
851
- export interface ActionReport<T> {
852
- data: Record<string, AttackReport<T>>;
853
- damage_state_density: Histogram<DamageState, number> | null;
854
- is_active: boolean;
784
+ export interface ShipNightCutinAnalysis {
785
+ ship_id: number;
786
+ index: number;
787
+ normal: NightCutinActionReport;
788
+ chuuha: NightCutinActionReport;
855
789
  }
856
790
 
857
- export type AirWaveType = "Jet" | "LandBase" | "Carrier";
791
+ export interface NightCutinActionReport
792
+ extends ActionReport<NightPhaseAttackStyle> {
793
+ cutin_term: number | null;
794
+ }
858
795
 
859
- export type Side = "Player" | "Enemy";
796
+ export interface AttackAnalyzerShipConfig
797
+ extends ShipConditions,
798
+ NightFleetConditions {
799
+ fleet_los_mod?: number | null;
800
+ }
860
801
 
861
- export type Align = "Left" | "Right";
802
+ export interface AttackPowerModifier {
803
+ a?: number;
804
+ b?: number;
805
+ }
862
806
 
863
- export interface MasterData extends MasterBattleDefinitions {
864
- created_at: number;
865
- gears: MasterGear[];
866
- gear_attrs: MasterAttrRule<GearAttr>[];
867
- ships: MasterShip[];
868
- ship_attrs: MasterAttrRule<ShipAttr>[];
869
- ibonuses: MasterIBonuses;
870
- equippability: MasterEquippability;
807
+ export interface SpecialEnemyModifiers {
808
+ precap_general_mod: AttackPowerModifier;
809
+ stype_mod: AttackPowerModifier;
810
+ landing_craft_synergy_mod: AttackPowerModifier;
811
+ toku_daihatsu_tank_mod: AttackPowerModifier;
812
+ m4a1dd_mod: AttackPowerModifier;
813
+ honi_mod: AttackPowerModifier;
814
+ toku_daihatsu_chiha_mod: AttackPowerModifier;
815
+ toku_daihatsu_chiha_kai_mod: AttackPowerModifier;
816
+ postcap_general_mod: AttackPowerModifier;
817
+ pt_mod: AttackPowerModifier | null;
871
818
  }
872
819
 
873
- export interface NationalityDef {
874
- id: number;
875
- ctypes: number[];
820
+ export interface CustomPowerModifiers {
821
+ precap_mod?: AttackPowerModifier;
822
+ postcap_mod?: AttackPowerModifier;
823
+ basic_power_mod?: AttackPowerModifier;
824
+ historical_mod?: AttackPowerModifier;
876
825
  }
877
826
 
878
- export interface MasterAttrRule<T> {
879
- tag: T;
880
- name: string;
881
- expr: CompiledEvaler;
827
+ export type MoraleState = "Sparkle" | "Normal" | "Orange" | "Red";
828
+
829
+ export type OrgType =
830
+ | "Single"
831
+ | "CarrierTaskForce"
832
+ | "SurfaceTaskForce"
833
+ | "TransportEscort"
834
+ | "EnemySingle"
835
+ | "EnemyCombined";
836
+
837
+ export interface ShipPosition {
838
+ org_type?: OrgType;
839
+ fleet_type?: FleetType;
840
+ fleet_len?: number;
841
+ index?: number;
882
842
  }
883
843
 
844
+ export type Histogram<K extends keyof any, V> = Partial<Record<K, V>>;
845
+
884
846
  export interface MasterIBonuses {
885
847
  shelling_power: MasterIBonusRule[];
886
848
  shelling_accuracy: MasterIBonusRule[];
@@ -906,130 +868,171 @@ export interface MasterIBonusRule {
906
868
  formula: CompiledEvaler;
907
869
  }
908
870
 
909
- export interface ShipPosition {
910
- org_type?: OrgType;
911
- fleet_type?: FleetType;
912
- fleet_len?: number;
913
- index?: number;
871
+ export interface ShipAnalyzerConfig {
872
+ air_state?: AirState;
873
+ engagement?: Engagement;
874
+ left?: AttackAnalyzerShipConfig;
875
+ right?: AttackAnalyzerShipConfig;
914
876
  }
915
877
 
916
- export type ShipAttr =
917
- | "Unknown"
918
- | "NightCarrier"
919
- | "Installation"
920
- | "RoyalNavy"
921
- | "Kai2"
922
- | "TurbineSpeedBonus"
923
- | "NewModelBoilerSpeedBonus"
924
- | "Pillbox"
925
- | "IsolatedIsland"
926
- | "HarbourSummerPrincess"
927
- | "SupplyDepot"
928
- | "NewSupplyDepot"
929
- | "PtImp"
930
- | "BattleshipSummerPrincess"
931
- | "HeavyCruiserSummerPrincess"
932
- | "AnchorageWaterDemonVacationMode"
933
- | "FrenchBattleshipPrincess"
934
- | "DockPrincess";
935
-
936
- export interface ShipConditions extends ShipPosition {
937
- formation?: Formation;
938
- amagiri_index?: number | null;
878
+ export interface FleetCutinReport<T> {
879
+ cutin: FleetCutin;
880
+ rate: number | null;
881
+ formation: Formation;
882
+ attacks: FleetCutinAttackReport<T>[];
939
883
  }
940
884
 
941
- export type GearTypeIdArray = [number, number, number, number, number];
885
+ export interface FleetCutinAttackReport<T> extends AttackReport<T> {
886
+ index: number;
887
+ ship_id: number;
888
+ power_mod: number;
889
+ }
942
890
 
943
- export interface SimulatorResult {
944
- items: SimulatorResultItem[];
945
- sunk_vec: [number, number, number][];
891
+ export interface CompDayCutinAnalysis {
892
+ rank3_air_state: AirState;
893
+ rank2_air_state: AirState;
894
+ main_fleet_los_mod: number | null;
895
+ escort_fleet_los_mod: number | null;
896
+ ships: ShipDayCutinAnalysis[];
946
897
  }
947
898
 
948
- export interface SimulatorResultItem {
949
- id: string;
950
- fleet_type: FleetType;
899
+ export interface ShipDayCutinAnalysis {
900
+ ship_id: number;
901
+ role: Role;
951
902
  index: number;
952
- damage_state_map: Record<DamageState, number>;
903
+ rank3: DayCutinReport;
904
+ rank2: DayCutinReport;
953
905
  }
954
906
 
955
- export interface ShipAnalyzerConfig {
956
- air_state?: AirState;
957
- engagement?: Engagement;
958
- left?: AttackAnalyzerShipConfig;
959
- right?: AttackAnalyzerShipConfig;
907
+ export interface DayCutinReport extends ActionReport<DayPhaseAttackStyle> {
908
+ observation_term: number | null;
960
909
  }
961
910
 
962
- export type AirSquadronMode = "Sortie" | "AirDefense";
963
-
964
- export interface AirSquadronState extends GearVecState, SlotSizeVecState {
965
- id?: string;
966
- mode?: AirSquadronMode;
911
+ export interface AttackReport<T> {
912
+ style: T;
913
+ proc_rate: number | null;
914
+ attack_power: AttackPower | null;
915
+ attack_power_params: AttackPowerParams | null;
916
+ hits: number;
917
+ hit_rate: HitRate | null;
918
+ hit_rate_params: HitRateParams | null;
919
+ damage: DamageReport | null;
967
920
  }
968
921
 
969
- export type AirState =
970
- | "AirSupremacy"
971
- | "AirSuperiority"
972
- | "AirParity"
973
- | "AirDenial"
974
- | "AirIncapability";
922
+ export interface ShellingStyle {
923
+ tag: "ShellingStyle";
924
+ attack_type: ShellingType;
925
+ cutin: DayCutinLike | null;
926
+ power_mod: number;
927
+ accuracy_mod: number;
928
+ hits: number;
929
+ }
975
930
 
976
- export type AirStateRank = "Rank0" | "Rank1" | "Rank2" | "Rank3";
931
+ export interface NightAttackStyle {
932
+ tag: "NightAttackStyle";
933
+ attack_type: NightAttackType;
934
+ cutin: NightCutinLike | null;
935
+ power_mod: number;
936
+ accuracy_mod: number;
937
+ hits: number;
938
+ }
977
939
 
978
- export interface AttackPowerModifier {
979
- a?: number;
980
- b?: number;
940
+ export interface AswAttackStyle {
941
+ tag: "AswAttackStyle";
942
+ attack_type: AswAttackType;
981
943
  }
982
944
 
983
- export interface SpecialEnemyModifiers {
984
- precap_general_mod: AttackPowerModifier;
985
- stype_mod: AttackPowerModifier;
986
- landing_craft_synergy_mod: AttackPowerModifier;
987
- toku_daihatsu_tank_mod: AttackPowerModifier;
988
- m4a1dd_mod: AttackPowerModifier;
989
- honi_mod: AttackPowerModifier;
990
- postcap_general_mod: AttackPowerModifier;
991
- pt_mod: AttackPowerModifier | null;
945
+ export interface TorpedoAttackStyle {
946
+ tag: "TorpedoAttackStyle";
947
+ attack_type: TorpedoAttackType;
992
948
  }
993
949
 
994
- export interface CustomPowerModifiers {
995
- precap_mod?: AttackPowerModifier;
996
- postcap_mod?: AttackPowerModifier;
997
- basic_power_mod?: AttackPowerModifier;
998
- historical_mod?: AttackPowerModifier;
950
+ export type DayPhaseAttackStyle = ShellingStyle | AswAttackStyle;
951
+
952
+ export type NightPhaseAttackStyle = NightAttackStyle | AswAttackStyle;
953
+
954
+ export interface SupportShellingStyle {
955
+ tag: "SupportShellingStyle";
956
+ attack_type: SupportShellingType;
999
957
  }
1000
958
 
1001
- export type AswAttackType = "DepthCharge" | "Aerial";
959
+ export type FleetType = "Main" | "Escort" | "RouteSup" | "BossSup";
1002
960
 
1003
- export type ShellingType = "Normal" | "Aerial";
961
+ export interface EquippabilityRule {
962
+ ship: CompiledEvaler;
963
+ keys?: string[];
964
+ include?: string;
965
+ exclude?: string;
966
+ }
1004
967
 
1005
- export type NightAttackType = "Normal" | "Swordfish" | "Aerial";
968
+ export interface MasterEquippability {
969
+ equip_stype: EquipStype[];
970
+ equip_exslot: number[];
971
+ equip_ship: MstEquipShip[];
972
+ equip_exslot_ship: Record<number, MstEquipExslotShip>;
973
+ rules: EquippabilityRule[];
974
+ }
1006
975
 
1007
- export type SupportShellingType = ShellingType;
976
+ export interface MstEquipExslotShip {
977
+ api_ctypes: Record<number, number> | null;
978
+ api_ship_ids: Record<number, number> | null;
979
+ api_stypes: Record<number, number> | null;
980
+ }
1008
981
 
1009
- export type AttackType =
1010
- | { t: "Asw"; c: AswAttackType }
1011
- | { t: "Shelling"; c: ShellingType }
1012
- | { t: "Night"; c: NightAttackType }
1013
- | { t: "Torpedo" }
1014
- | { t: "SupportShelling"; c: SupportShellingType };
982
+ export interface MstEquipShip {
983
+ api_ship_id: number;
984
+ api_equip_type: number[];
985
+ }
1015
986
 
1016
- export type DayPhaseAttackType =
1017
- | { t: "Shelling"; c: ShellingType }
1018
- | { t: "Asw"; c: AswAttackType };
987
+ export interface EquipStype {
988
+ id: number;
989
+ equip_type: number[];
990
+ }
1019
991
 
1020
- export type NightPhaseAttackType =
1021
- | { t: "Night"; c: NightAttackType }
1022
- | { t: "Asw"; c: AswAttackType };
992
+ export interface CompAnalyzerConfig {
993
+ engagement: Engagement;
994
+ formation: Formation;
995
+ anti_air_cutin: number | null;
996
+ ship_anti_air_resist: number;
997
+ fleet_anti_air_resist: number;
998
+ left_night_fleet_conditions: NightFleetConditions;
999
+ right_night_fleet_conditions: NightFleetConditions;
1000
+ }
1023
1001
 
1024
- export type TorpedoAttackType = null;
1002
+ export interface CompNightAnalysis {
1003
+ night_cutin: CompNightCutinAnalysis;
1004
+ fleet_cutin: FleetCutinReport<NightAttackStyle>[];
1005
+ }
1025
1006
 
1026
- export type ContactRank = "Rank1" | "Rank2" | "Rank3";
1007
+ export interface CompDayAnalysis {
1008
+ day_cutin: CompDayCutinAnalysis;
1009
+ fleet_cutin: FleetCutinReport<ShellingStyle>[];
1010
+ }
1027
1011
 
1028
- export type DamageState = "Normal" | "Shouha" | "Chuuha" | "Taiha" | "Sunk";
1012
+ export interface CompAnalysis {
1013
+ day: CompDayAnalysis;
1014
+ night: CompNightAnalysis;
1015
+ contact: ContactAnalysis;
1016
+ anti_air: CompAntiAirAnalysis;
1017
+ }
1029
1018
 
1030
- export type Engagement = "GreenT" | "Parallel" | "HeadOn" | "RedT";
1019
+ export interface OrgState {
1020
+ id?: string;
1021
+ f1?: FleetState;
1022
+ f2?: FleetState;
1023
+ f3?: FleetState;
1024
+ f4?: FleetState;
1025
+ a1?: AirSquadronState;
1026
+ a2?: AirSquadronState;
1027
+ a3?: AirSquadronState;
1028
+ hq_level?: number;
1029
+ org_type?: OrgType;
1030
+ sortie?: FleetKey;
1031
+ route_sup?: FleetKey;
1032
+ boss_sup?: FleetKey;
1033
+ }
1031
1034
 
1032
- export type Role = "Main" | "Escort";
1035
+ export type FleetKey = "f1" | "f2" | "f3" | "f4";
1033
1036
 
1034
1037
  /**
1035
1038
  */