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