fleethub-core 1.8.8 → 1.8.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -8,6 +8,8 @@ export function set_panic_hook(): void;
8
8
  * @returns {ShipConditions}
9
9
  */
10
10
  export function parse_ship_conditions(value: ShipConditions): ShipConditions;
11
+ export type Role = "Main" | "Escort";
12
+
11
13
  export interface ShipPosition {
12
14
  org_type?: OrgType;
13
15
  fleet_type?: FleetType;
@@ -15,6 +17,23 @@ export interface ShipPosition {
15
17
  index?: number;
16
18
  }
17
19
 
20
+ export interface CompMeta {
21
+ fleets: Record<FleetType, FleetMeta>;
22
+ }
23
+
24
+ export interface FleetMeta {
25
+ id: string;
26
+ len: number;
27
+ ships: [string, ShipMeta | null][];
28
+ }
29
+
30
+ export interface ShipMeta {
31
+ id: string;
32
+ ship_id: number;
33
+ }
34
+
35
+ export type Engagement = "GreenT" | "Parallel" | "HeadOn" | "RedT";
36
+
18
37
  export interface BattleDefinitions {
19
38
  formation: Record<Formation, NestedFormationDef>;
20
39
  anti_air_cutin: Record<number, AntiAirCutinDef>;
@@ -67,6 +86,40 @@ export interface FormationCombatModifiersDef {
67
86
  evasion_mod?: number;
68
87
  }
69
88
 
89
+ export type TorpedoAttackType = null;
90
+
91
+ export type NightPhaseAttackType =
92
+ | { t: "Night"; c: NightAttackType }
93
+ | { t: "Asw"; c: AswAttackType };
94
+
95
+ export type DayPhaseAttackType =
96
+ | { t: "Shelling"; c: ShellingType }
97
+ | { t: "Asw"; c: AswAttackType };
98
+
99
+ export type AttackType =
100
+ | { t: "Asw"; c: AswAttackType }
101
+ | { t: "Shelling"; c: ShellingType }
102
+ | { t: "Night"; c: NightAttackType }
103
+ | { t: "Torpedo" }
104
+ | { t: "SupportShelling"; c: SupportShellingType };
105
+
106
+ export type SupportShellingType = ShellingType;
107
+
108
+ export type NightAttackType = "Normal" | "Swordfish" | "Carrier";
109
+
110
+ export type ShellingType = "Normal" | "Carrier";
111
+
112
+ export type AswAttackType = "DepthCharge" | "Aircraft";
113
+
114
+ export type AirStateRank = "Rank0" | "Rank1" | "Rank2" | "Rank3";
115
+
116
+ export type AirState =
117
+ | "AirSupremacy"
118
+ | "AirSuperiority"
119
+ | "AirParity"
120
+ | "AirDenial"
121
+ | "AirIncapability";
122
+
70
123
  export type CompiledEvaler = string;
71
124
 
72
125
  export type SpeedGroup = "A" | "B1" | "B2" | "C";
@@ -157,6 +210,31 @@ export type DayCutin =
157
210
  | "BBA"
158
211
  | "BA";
159
212
 
213
+ export interface MasterIBonuses {
214
+ shelling_power: MasterIBonusRule[];
215
+ shelling_accuracy: MasterIBonusRule[];
216
+ shelling_aerial_power: MasterIBonusRule[];
217
+ torpedo_power: MasterIBonusRule[];
218
+ torpedo_accuracy: MasterIBonusRule[];
219
+ torpedo_evasion: MasterIBonusRule[];
220
+ asw_power: MasterIBonusRule[];
221
+ asw_accuracy: MasterIBonusRule[];
222
+ night_power: MasterIBonusRule[];
223
+ night_aerial_power: MasterIBonusRule[];
224
+ night_accuracy: MasterIBonusRule[];
225
+ defense_power: MasterIBonusRule[];
226
+ contact_selection: MasterIBonusRule[];
227
+ fighter_power: MasterIBonusRule[];
228
+ ship_anti_air: MasterIBonusRule[];
229
+ fleet_anti_air: MasterIBonusRule[];
230
+ elos: MasterIBonusRule[];
231
+ }
232
+
233
+ export interface MasterIBonusRule {
234
+ expr: CompiledEvaler;
235
+ formula: CompiledEvaler;
236
+ }
237
+
160
238
  export interface FleetCutinAnalysis {
161
239
  shelling: FleetCutinReport<ShellingStyle>[];
162
240
  night: FleetCutinReport<NightAttackStyle>[];
@@ -175,6 +253,17 @@ export interface FleetCutinAttackReport<T> extends AttackReport<T> {
175
253
  power_mod: number;
176
254
  }
177
255
 
256
+ export type SpecialEnemyType =
257
+ | "None"
258
+ | "SoftSkinned"
259
+ | "Pillbox"
260
+ | "IsolatedIsland"
261
+ | "SupplyDepot"
262
+ | "HarbourSummerPrincess"
263
+ | "PtImp"
264
+ | "BattleshipSummerPrincess"
265
+ | "HeavyCruiserSummerPrincess";
266
+
178
267
  export type ContactRank = "Rank1" | "Rank2" | "Rank3";
179
268
 
180
269
  export type AirWaveType = "Jet" | "LandBase" | "Carrier";
@@ -191,17 +280,6 @@ export interface SimulatorResultItem {
191
280
  damage_state_map: Record<DamageState, number>;
192
281
  }
193
282
 
194
- export type SpecialEnemyType =
195
- | "None"
196
- | "SoftSkinned"
197
- | "Pillbox"
198
- | "IsolatedIsland"
199
- | "SupplyDepot"
200
- | "HarbourSummerPrincess"
201
- | "PtImp"
202
- | "BattleshipSummerPrincess"
203
- | "HeavyCruiserSummerPrincess";
204
-
205
283
  export type GearCategory =
206
284
  | "Fighter"
207
285
  | "Bomber"
@@ -280,6 +358,8 @@ export type GearType =
280
358
 
281
359
  export type DamageState = "Normal" | "Shouha" | "Chuuha" | "Taiha" | "Sunk";
282
360
 
361
+ export type FhResult<T> = { Ok: T } | { Err: string };
362
+
283
363
  export interface MasterData extends MasterBattleDefinitions {
284
364
  created_at: number;
285
365
  gears: MasterGear[];
@@ -301,57 +381,6 @@ export interface MasterAttrRule<T> {
301
381
  expr: CompiledEvaler;
302
382
  }
303
383
 
304
- export interface CompMeta {
305
- fleets: Record<FleetType, FleetMeta>;
306
- }
307
-
308
- export interface FleetMeta {
309
- id: string;
310
- len: number;
311
- ships: [string, ShipMeta | null][];
312
- }
313
-
314
- export interface ShipMeta {
315
- id: string;
316
- ship_id: number;
317
- }
318
-
319
- export type TorpedoAttackType = null;
320
-
321
- export type NightPhaseAttackType =
322
- | { t: "Night"; c: NightAttackType }
323
- | { t: "Asw"; c: AswAttackType };
324
-
325
- export type DayPhaseAttackType =
326
- | { t: "Shelling"; c: ShellingType }
327
- | { t: "Asw"; c: AswAttackType };
328
-
329
- export type AttackType =
330
- | { t: "Asw"; c: AswAttackType }
331
- | { t: "Shelling"; c: ShellingType }
332
- | { t: "Night"; c: NightAttackType }
333
- | { t: "Torpedo" }
334
- | { t: "SupportShelling"; c: SupportShellingType };
335
-
336
- export type SupportShellingType = ShellingType;
337
-
338
- export type NightAttackType = "Normal" | "Swordfish" | "Carrier";
339
-
340
- export type ShellingType = "Normal" | "Carrier";
341
-
342
- export type AswAttackType = "DepthCharge" | "Aircraft";
343
-
344
- export type AirStateRank = "Rank0" | "Rank1" | "Rank2" | "Rank3";
345
-
346
- export type AirState =
347
- | "AirSupremacy"
348
- | "AirSuperiority"
349
- | "AirParity"
350
- | "AirDenial"
351
- | "AirIncapability";
352
-
353
- export type FhResult<T> = { Ok: T } | { Err: string };
354
-
355
384
  export interface NodeAttackAnalyzerShipConfig extends NightFleetConditions {
356
385
  formation?: Formation;
357
386
  }
@@ -368,19 +397,6 @@ export interface NodeAttackAnalysis {
368
397
  right: AttackAnalysis;
369
398
  }
370
399
 
371
- export type Side = "Player" | "Enemy";
372
-
373
- export type Role = "Main" | "Escort";
374
-
375
- export type Engagement = "GreenT" | "Parallel" | "HeadOn" | "RedT";
376
-
377
- export interface ShipAnalyzerConfig {
378
- air_state?: AirState;
379
- engagement?: Engagement;
380
- left?: AttackAnalyzerShipConfig;
381
- right?: AttackAnalyzerShipConfig;
382
- }
383
-
384
400
  export interface EBonuses {
385
401
  firepower: number;
386
402
  torpedo: number;
@@ -421,26 +437,12 @@ export interface GearInput {
421
437
 
422
438
  export type GearVecInput = GearInput[];
423
439
 
440
+ export type Side = "Player" | "Enemy";
441
+
424
442
  export interface ShipConditions extends ShipPosition {
425
443
  formation?: Formation;
426
444
  }
427
445
 
428
- export type ShipAttr =
429
- | "Unknown"
430
- | "Abyssal"
431
- | "NightCarrier"
432
- | "Installation"
433
- | "RoyalNavy"
434
- | "Kai2"
435
- | "TurbineSpeedBonus"
436
- | "Pillbox"
437
- | "IsolatedIsland"
438
- | "HarbourSummerPrincess"
439
- | "SupplyDepot"
440
- | "PtImp"
441
- | "BattleshipSummerPrincess"
442
- | "HeavyCruiserSummerPrincess";
443
-
444
446
  export type OrgType =
445
447
  | "Single"
446
448
  | "CarrierTaskForce"
@@ -455,47 +457,28 @@ export interface SupportShellingSimulatorParams {
455
457
  engagement: Engagement;
456
458
  }
457
459
 
458
- export interface MasterIBonuses {
459
- shelling_power: MasterIBonusRule[];
460
- carrier_shelling_power: MasterIBonusRule[];
461
- shelling_accuracy: MasterIBonusRule[];
462
- torpedo_power: MasterIBonusRule[];
463
- torpedo_accuracy: MasterIBonusRule[];
464
- torpedo_evasion: MasterIBonusRule[];
465
- asw_power: MasterIBonusRule[];
466
- asw_accuracy: MasterIBonusRule[];
467
- night_power: MasterIBonusRule[];
468
- night_accuracy: MasterIBonusRule[];
469
- defense_power: MasterIBonusRule[];
470
- contact_selection: MasterIBonusRule[];
471
- fighter_power: MasterIBonusRule[];
472
- ship_anti_air: MasterIBonusRule[];
473
- fleet_anti_air: MasterIBonusRule[];
474
- elos: MasterIBonusRule[];
475
- }
476
-
477
- export interface MasterIBonusRule {
478
- expr: CompiledEvaler;
479
- formula: CompiledEvaler;
480
- }
481
-
482
- export interface CompAntiAirAnalysis {
483
- fleet_adjusted_anti_air: number;
484
- ships: AntiAirReport[];
485
- anti_air_cutin_chance: [number, number][];
460
+ export interface ShipAnalyzerConfig {
461
+ air_state?: AirState;
462
+ engagement?: Engagement;
463
+ left?: AttackAnalyzerShipConfig;
464
+ right?: AttackAnalyzerShipConfig;
486
465
  }
487
466
 
488
- export interface AntiAirReport {
489
- ship_id: number;
490
- role: Role;
491
- index: number;
492
- adjusted_anti_air: number | null;
493
- proportional_shotdown_rate: number | null;
494
- fixed_shotdown_number: number | null;
495
- guaranteed: number | null;
496
- anti_air_cutin_chance: [number, number][];
497
- anti_air_propellant_barrage_chance: number | null;
498
- }
467
+ export type ShipAttr =
468
+ | "Unknown"
469
+ | "Abyssal"
470
+ | "NightCarrier"
471
+ | "Installation"
472
+ | "RoyalNavy"
473
+ | "Kai2"
474
+ | "TurbineSpeedBonus"
475
+ | "Pillbox"
476
+ | "IsolatedIsland"
477
+ | "HarbourSummerPrincess"
478
+ | "SupplyDepot"
479
+ | "PtImp"
480
+ | "BattleshipSummerPrincess"
481
+ | "HeavyCruiserSummerPrincess";
499
482
 
500
483
  export type GearAttr =
501
484
  | "Unknown"
@@ -529,6 +512,24 @@ export type GearAttr =
529
512
  | "SemiNightPlane"
530
513
  | "HighAltitudeInterceptor";
531
514
 
515
+ export interface CompAntiAirAnalysis {
516
+ fleet_adjusted_anti_air: number;
517
+ ships: AntiAirReport[];
518
+ anti_air_cutin_chance: [number, number][];
519
+ }
520
+
521
+ export interface AntiAirReport {
522
+ ship_id: number;
523
+ role: Role;
524
+ index: number;
525
+ adjusted_anti_air: number | null;
526
+ proportional_shotdown_rate: number | null;
527
+ fixed_shotdown_number: number | null;
528
+ guaranteed: number | null;
529
+ anti_air_cutin_chance: [number, number][];
530
+ anti_air_propellant_barrage_chance: number | null;
531
+ }
532
+
532
533
  export type FleetType = "Main" | "Escort" | "RouteSup" | "BossSup";
533
534
 
534
535
  export interface SupportShellingStyle {
@@ -568,6 +569,28 @@ export interface ShellingStyle {
568
569
  hits: number;
569
570
  }
570
571
 
572
+ export interface CustomPowerModifiers {
573
+ precap_mod?: AttackPowerModifier;
574
+ postcap_mod?: AttackPowerModifier;
575
+ basic_power_mod?: AttackPowerModifier;
576
+ }
577
+
578
+ export interface SpecialEnemyModifiers {
579
+ precap_general_mod: AttackPowerModifier;
580
+ stype_mod: AttackPowerModifier;
581
+ landing_craft_synergy_mod: AttackPowerModifier;
582
+ toku_daihatsu_tank_mod: AttackPowerModifier;
583
+ m4a1dd_mod: AttackPowerModifier;
584
+ honi_mod: AttackPowerModifier;
585
+ postcap_general_mod: AttackPowerModifier;
586
+ pt_mod: AttackPowerModifier;
587
+ }
588
+
589
+ export interface AttackPowerModifier {
590
+ a?: number;
591
+ b?: number;
592
+ }
593
+
571
594
  export interface AttackPower {
572
595
  precap: number;
573
596
  is_capped: boolean;
@@ -584,7 +607,7 @@ export interface AttackPowerParams {
584
607
  precap_mod: AttackPowerModifier;
585
608
  postcap_mod: AttackPowerModifier;
586
609
  ap_shell_mod: number | null;
587
- carrier_power: number | null;
610
+ aerial_power: number | null;
588
611
  proficiency_critical_mod: number;
589
612
  armor_penetration: number;
590
613
  remaining_ammo_mod: number;
@@ -663,28 +686,6 @@ export type SingleFormation =
663
686
  | "LineAbreast"
664
687
  | "Vanguard";
665
688
 
666
- export interface CustomPowerModifiers {
667
- precap_mod?: AttackPowerModifier;
668
- postcap_mod?: AttackPowerModifier;
669
- basic_power_mod?: AttackPowerModifier;
670
- }
671
-
672
- export interface SpecialEnemyModifiers {
673
- precap_general_mod: AttackPowerModifier;
674
- stype_mod: AttackPowerModifier;
675
- landing_craft_synergy_mod: AttackPowerModifier;
676
- toku_daihatsu_tank_mod: AttackPowerModifier;
677
- m4a1dd_mod: AttackPowerModifier;
678
- honi_mod: AttackPowerModifier;
679
- postcap_general_mod: AttackPowerModifier;
680
- pt_mod: AttackPowerModifier;
681
- }
682
-
683
- export interface AttackPowerModifier {
684
- a?: number;
685
- b?: number;
686
- }
687
-
688
689
  export interface MasterBattleDefinitions {
689
690
  formation: NestedFormationDef[];
690
691
  anti_air_cutin: AntiAirCutinDef[];
@@ -1557,68 +1558,10 @@ export class Gear {
1557
1558
  */
1558
1559
  types: Uint8Array;
1559
1560
  }
1560
- /**
1561
- */
1562
- export class IBonuses {
1563
- free(): void;
1564
- /**
1565
- */
1566
- asw_accuracy: number;
1567
- /**
1568
- */
1569
- asw_power: number;
1570
- /**
1571
- */
1572
- carrier_shelling_power: number;
1573
- /**
1574
- */
1575
- contact_selection: number;
1576
- /**
1577
- */
1578
- defense_power: number;
1579
- /**
1580
- */
1581
- elos: number;
1582
- /**
1583
- */
1584
- fighter_power: number;
1585
- /**
1586
- */
1587
- fleet_anti_air: number;
1588
- /**
1589
- */
1590
- night_accuracy: number;
1591
- /**
1592
- */
1593
- night_power: number;
1594
- /**
1595
- */
1596
- shelling_accuracy: number;
1597
- /**
1598
- */
1599
- shelling_power: number;
1600
- /**
1601
- */
1602
- ship_anti_air: number;
1603
- /**
1604
- */
1605
- torpedo_accuracy: number;
1606
- /**
1607
- */
1608
- torpedo_evasion: number;
1609
- /**
1610
- */
1611
- torpedo_power: number;
1612
- }
1613
1561
  /**
1614
1562
  */
1615
1563
  export class Org {
1616
1564
  free(): void;
1617
- /**
1618
- * @param {Role} role
1619
- * @returns {number}
1620
- */
1621
- fleet_len(role: Role): number;
1622
1565
  /**
1623
1566
  * @param {Role} role
1624
1567
  * @param {string} key
@@ -1629,11 +1572,6 @@ export class Org {
1629
1572
  * @returns {(string)[]}
1630
1573
  */
1631
1574
  air_squadron_ids(): string[];
1632
- /**
1633
- * @param {Role} role
1634
- * @returns {number | undefined}
1635
- */
1636
- fleet_los_mod(role: Role): number | undefined;
1637
1575
  /**
1638
1576
  * @returns {Uint16Array}
1639
1577
  */
@@ -1647,22 +1585,11 @@ export class Org {
1647
1585
  * @returns {Fleet}
1648
1586
  */
1649
1587
  clone_fleet(key: string): Fleet;
1650
- /**
1651
- * @param {Role} role
1652
- * @param {string} key
1653
- * @returns {Ship | undefined}
1654
- */
1655
- get_ship(role: Role, key: string): Ship | undefined;
1656
1588
  /**
1657
1589
  * @param {string} id
1658
1590
  * @returns {Ship | undefined}
1659
1591
  */
1660
1592
  get_ship_by_id(id: string): Ship | undefined;
1661
- /**
1662
- * @param {Role} role
1663
- * @returns {string}
1664
- */
1665
- get_fleet_id_by_role(role: Role): string;
1666
1593
  /**
1667
1594
  * @returns {Comp}
1668
1595
  */
@@ -1715,10 +1642,6 @@ export class Org {
1715
1642
  * @returns {number}
1716
1643
  */
1717
1644
  high_altitude_interception_power(): number;
1718
- /**
1719
- * @returns {Org}
1720
- */
1721
- static default(): Org;
1722
1645
  /**
1723
1646
  */
1724
1647
  boss_sup?: string;