fleethub-core 1.12.12 → 1.12.13

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.
@@ -52,6 +52,11 @@ export interface MasterGear {
52
52
  historical_aircraft_group?: number;
53
53
  }
54
54
 
55
+ export interface MasterIBonusRule {
56
+ expr: CompiledEvaler;
57
+ formula: CompiledEvaler;
58
+ }
59
+
55
60
  export interface MasterIBonuses {
56
61
  shelling_power: MasterIBonusRule[];
57
62
  shelling_accuracy: MasterIBonusRule[];
@@ -72,11 +77,6 @@ export interface MasterIBonuses {
72
77
  elos: MasterIBonusRule[];
73
78
  }
74
79
 
75
- export interface MasterIBonusRule {
76
- expr: CompiledEvaler;
77
- formula: CompiledEvaler;
78
- }
79
-
80
80
  export interface MasterBattleDefinitions {
81
81
  formation: NestedFormationDef[];
82
82
  anti_air_cutin: AntiAirCutinDef[];
@@ -155,12 +155,18 @@ export interface SlotSizeVecState {
155
155
  ss5?: number;
156
156
  }
157
157
 
158
+ export type AirSquadronMode = "Sortie" | "AirDefense";
159
+
158
160
  export interface AirSquadronState extends GearVecState, SlotSizeVecState {
159
161
  id?: string;
160
162
  mode?: AirSquadronMode;
161
163
  }
162
164
 
163
- export type AirSquadronMode = "Sortie" | "AirDefense";
165
+ export interface FleetMeta {
166
+ id: string;
167
+ len: number;
168
+ ships: [string, ShipMeta | null][];
169
+ }
164
170
 
165
171
  export interface ShipMeta {
166
172
  id: string;
@@ -171,15 +177,16 @@ export interface CompMeta {
171
177
  fleets: Record<FleetType, FleetMeta>;
172
178
  }
173
179
 
174
- export interface FleetMeta {
175
- id: string;
176
- len: number;
177
- ships: [string, ShipMeta | null][];
178
- }
180
+ export type Side = "Player" | "Enemy";
179
181
 
180
182
  export type Align = "Left" | "Right";
181
183
 
182
- export type Side = "Player" | "Enemy";
184
+ export interface ShipInput {
185
+ ship_id: number;
186
+ ctype: number;
187
+ stype: number;
188
+ yomi: string;
189
+ }
183
190
 
184
191
  export interface GearInput {
185
192
  gear_id: number;
@@ -199,13 +206,6 @@ export interface GearInput {
199
206
  ace: number;
200
207
  }
201
208
 
202
- export interface ShipInput {
203
- ship_id: number;
204
- ctype: number;
205
- stype: number;
206
- yomi: string;
207
- }
208
-
209
209
  export type GearVecInput = GearInput[];
210
210
 
211
211
  export interface EBonuses {
@@ -299,8 +299,6 @@ export type GearType =
299
299
  | "CbRecon2"
300
300
  | "SecondaryGun2";
301
301
 
302
- export type FleetKey = "f1" | "f2" | "f3" | "f4";
303
-
304
302
  export interface OrgState {
305
303
  id?: string;
306
304
  f1?: FleetState;
@@ -317,18 +315,13 @@ export interface OrgState {
317
315
  boss_sup?: FleetKey;
318
316
  }
319
317
 
318
+ export type FleetKey = "f1" | "f2" | "f3" | "f4";
319
+
320
320
  export interface CompDayAnalysis {
321
321
  day_cutin: CompDayCutinAnalysis;
322
322
  fleet_cutin: FleetCutinReport<ShellingStyle>[];
323
323
  }
324
324
 
325
- export interface CompAnalysis {
326
- day: CompDayAnalysis;
327
- night: CompNightAnalysis;
328
- contact: ContactAnalysis;
329
- anti_air: CompAntiAirAnalysis;
330
- }
331
-
332
325
  export interface CompNightAnalysis {
333
326
  night_cutin: CompNightCutinAnalysis;
334
327
  fleet_cutin: FleetCutinReport<NightAttackStyle>[];
@@ -344,6 +337,13 @@ export interface CompAnalyzerConfig {
344
337
  right_night_fleet_conditions: NightFleetConditions;
345
338
  }
346
339
 
340
+ export interface CompAnalysis {
341
+ day: CompDayAnalysis;
342
+ night: CompNightAnalysis;
343
+ contact: ContactAnalysis;
344
+ anti_air: CompAntiAirAnalysis;
345
+ }
346
+
347
347
  export interface ShipAnalyzerConfig {
348
348
  air_state?: AirState;
349
349
  engagement?: Engagement;
@@ -358,11 +358,6 @@ export interface AttackAnalyzerShipConfig
358
358
  fleet_los_mod?: number | null;
359
359
  }
360
360
 
361
- export interface SimulatorResult {
362
- items: SimulatorResultItem[];
363
- sunk_vec: [number, number, number][];
364
- }
365
-
366
361
  export interface SimulatorResultItem {
367
362
  id: string;
368
363
  fleet_type: FleetType;
@@ -370,6 +365,11 @@ export interface SimulatorResultItem {
370
365
  damage_state_map: Record<DamageState, number>;
371
366
  }
372
367
 
368
+ export interface SimulatorResult {
369
+ items: SimulatorResultItem[];
370
+ sunk_vec: [number, number, number][];
371
+ }
372
+
373
373
  export type SpeedGroup = "A" | "B1" | "B2" | "C";
374
374
 
375
375
  export interface SupportShellingSimulatorParams {
@@ -379,24 +379,12 @@ export interface SupportShellingSimulatorParams {
379
379
  node_state: NodeState;
380
380
  }
381
381
 
382
- export type NightAttackType = "Normal" | "Swordfish" | "Aerial";
382
+ export type TorpedoAttackType = null;
383
383
 
384
384
  export type SupportShellingType = ShellingType;
385
385
 
386
- export type ShellingType = "Normal" | "Aerial";
387
-
388
- export type NightPhaseAttackType =
389
- | { t: "Night"; c: NightAttackType }
390
- | { t: "Asw"; c: AswAttackType };
391
-
392
386
  export type AswAttackType = "DepthCharge" | "Aerial";
393
387
 
394
- export type TorpedoAttackType = null;
395
-
396
- export type DayPhaseAttackType =
397
- | { t: "Shelling"; c: ShellingType }
398
- | { t: "Asw"; c: AswAttackType };
399
-
400
388
  export type AttackType =
401
389
  | { t: "Asw"; c: AswAttackType }
402
390
  | { t: "Shelling"; c: ShellingType }
@@ -404,6 +392,18 @@ export type AttackType =
404
392
  | { t: "Torpedo" }
405
393
  | { t: "SupportShelling"; c: SupportShellingType };
406
394
 
395
+ export type DayPhaseAttackType =
396
+ | { t: "Shelling"; c: ShellingType }
397
+ | { t: "Asw"; c: AswAttackType };
398
+
399
+ export type NightAttackType = "Normal" | "Swordfish" | "Aerial";
400
+
401
+ export type ShellingType = "Normal" | "Aerial";
402
+
403
+ export type NightPhaseAttackType =
404
+ | { t: "Night"; c: NightAttackType }
405
+ | { t: "Asw"; c: AswAttackType };
406
+
407
407
  export type SlotSizeVec = (number | null)[];
408
408
 
409
409
  export type GearTypeIdArray = [number, number, number, number, number];
@@ -427,8 +427,6 @@ export type SpecialEnemyType =
427
427
 
428
428
  export type Role = "Main" | "Escort";
429
429
 
430
- export type NightCutinLike = NightCutin | FleetCutin;
431
-
432
430
  export type FleetCutin =
433
431
  | "NelsonTouch"
434
432
  | "NagatoClassCutin"
@@ -460,6 +458,10 @@ export type NightCutin =
460
458
  | "Cvci1_18"
461
459
  | "Photobomber";
462
460
 
461
+ export type NightCutinLike = NightCutin | FleetCutin;
462
+
463
+ export type DayCutinLike = DayCutin | FleetCutin;
464
+
463
465
  export type DayCutin =
464
466
  | "Zuiun"
465
467
  | "AirSea"
@@ -472,7 +474,15 @@ export type DayCutin =
472
474
  | "BBA"
473
475
  | "BA";
474
476
 
475
- export type DayCutinLike = DayCutin | FleetCutin;
477
+ export type ShipCategory =
478
+ | "Battleship"
479
+ | "AircraftCarrier"
480
+ | "HeavyCruiser"
481
+ | "LightCruiser"
482
+ | "Destroyer"
483
+ | "CoastalDefenseShip"
484
+ | "Submarine"
485
+ | "AuxiliaryShip";
476
486
 
477
487
  export type ShipType =
478
488
  | "Unknown"
@@ -499,15 +509,11 @@ export type ShipType =
499
509
  | "CT"
500
510
  | "AO";
501
511
 
502
- export type ShipCategory =
503
- | "Battleship"
504
- | "AircraftCarrier"
505
- | "HeavyCruiser"
506
- | "LightCruiser"
507
- | "Destroyer"
508
- | "CoastalDefenseShip"
509
- | "Submarine"
510
- | "AuxiliaryShip";
512
+ export interface HitRate {
513
+ normal: number;
514
+ critical: number;
515
+ total: number;
516
+ }
511
517
 
512
518
  export interface HitRateParams {
513
519
  accuracy_term: number;
@@ -518,12 +524,6 @@ export interface HitRateParams {
518
524
  hit_percentage_bonus: number;
519
525
  }
520
526
 
521
- export interface HitRate {
522
- normal: number;
523
- critical: number;
524
- total: number;
525
- }
526
-
527
527
  export type FhResult<T> = { Ok: T } | { Err: string };
528
528
 
529
529
  export interface DamageReport {
@@ -539,8 +539,12 @@ export interface DamageReport {
539
539
  damage_state_density: Histogram<DamageState, number>;
540
540
  }
541
541
 
542
- export interface DayCutinReport extends ActionReport<DayPhaseAttackStyle> {
543
- observation_term: number | null;
542
+ export interface ShipDayCutinAnalysis {
543
+ ship_id: number;
544
+ role: Role;
545
+ index: number;
546
+ rank3: DayCutinReport;
547
+ rank2: DayCutinReport;
544
548
  }
545
549
 
546
550
  export interface CompDayCutinAnalysis {
@@ -551,17 +555,8 @@ export interface CompDayCutinAnalysis {
551
555
  ships: ShipDayCutinAnalysis[];
552
556
  }
553
557
 
554
- export interface ShipDayCutinAnalysis {
555
- ship_id: number;
556
- role: Role;
557
- index: number;
558
- rank3: DayCutinReport;
559
- rank2: DayCutinReport;
560
- }
561
-
562
- export interface NightCutinActionReport
563
- extends ActionReport<NightPhaseAttackStyle> {
564
- cutin_term: number | null;
558
+ export interface DayCutinReport extends ActionReport<DayPhaseAttackStyle> {
559
+ observation_term: number | null;
565
560
  }
566
561
 
567
562
  export interface NightContactChance {
@@ -570,6 +565,11 @@ export interface NightContactChance {
570
565
  rank3: number;
571
566
  }
572
567
 
568
+ export interface NightCutinActionReport
569
+ extends ActionReport<NightPhaseAttackStyle> {
570
+ cutin_term: number | null;
571
+ }
572
+
573
573
  export interface ShipNightCutinAnalysis {
574
574
  ship_id: number;
575
575
  index: number;
@@ -588,25 +588,14 @@ export type DamageState = "Normal" | "Shouha" | "Chuuha" | "Taiha" | "Sunk";
588
588
 
589
589
  export type MoraleState = "Sparkle" | "Normal" | "Orange" | "Red";
590
590
 
591
- export interface NightCutinDef {
592
- tag: NightCutin;
593
- hits: number;
594
- type_factor: number | null;
595
- power_mod: number | null;
596
- accuracy_mod: number | null;
597
- }
598
-
599
- export interface HistoricalParams {
600
- power_mod: AttackPowerModifier;
601
- armor_penetration: number;
602
- accuracy_mod: number;
603
- target_evasion_mod: number;
591
+ export interface BattleDefinitions {
592
+ formation: Record<Formation, NestedFormationDef>;
593
+ anti_air_cutin: Record<number, AntiAirCutinDef>;
594
+ day_cutin: Record<DayCutin, DayCutinDef>;
595
+ night_cutin: Record<NightCutin, NightCutinDef>;
596
+ historical_bonuses: HistoricalBonusDef[];
604
597
  }
605
598
 
606
- export type NestedFormationDef =
607
- | FormationDef
608
- | { top_half: FormationDef; bottom_half: FormationDef };
609
-
610
599
  export interface AntiAirCutinDef {
611
600
  id: number;
612
601
  type_factor: number | null;
@@ -615,28 +604,19 @@ export interface AntiAirCutinDef {
615
604
  sequential: boolean | null;
616
605
  }
617
606
 
618
- export interface DayCutinDef {
619
- tag: DayCutin;
620
- hits: number;
621
- type_factor: number | null;
622
- power_mod: number | null;
623
- accuracy_mod: number | null;
624
- }
625
-
626
- export interface FormationCombatModifiersDef {
627
- power_mod?: number;
607
+ export interface HistoricalBonusDef {
608
+ map?: number;
609
+ node?: CompiledEvaler;
610
+ phase?: number;
611
+ debuff?: boolean;
612
+ ship?: CompiledEvaler;
613
+ enemy?: CompiledEvaler;
614
+ power_mod?: AttackPowerModifier;
615
+ armor_penetration?: number;
628
616
  accuracy_mod?: number;
629
617
  evasion_mod?: number;
630
618
  }
631
619
 
632
- export interface BattleDefinitions {
633
- formation: Record<Formation, NestedFormationDef>;
634
- anti_air_cutin: Record<number, AntiAirCutinDef>;
635
- day_cutin: Record<DayCutin, DayCutinDef>;
636
- night_cutin: Record<NightCutin, NightCutinDef>;
637
- historical_bonuses: HistoricalBonusDef[];
638
- }
639
-
640
620
  export interface FormationDef {
641
621
  tag: Formation;
642
622
  protection_rate: number | null;
@@ -648,15 +628,35 @@ export interface FormationDef {
648
628
  support_shelling: FormationCombatModifiersDef;
649
629
  }
650
630
 
651
- export interface HistoricalBonusDef {
652
- map?: number;
653
- node?: CompiledEvaler;
654
- phase?: number;
655
- debuff?: boolean;
656
- ship?: CompiledEvaler;
657
- enemy?: CompiledEvaler;
658
- power_mod?: AttackPowerModifier;
659
- armor_penetration?: number;
631
+ export interface DayCutinDef {
632
+ tag: DayCutin;
633
+ hits: number;
634
+ type_factor: number | null;
635
+ power_mod: number | null;
636
+ accuracy_mod: number | null;
637
+ }
638
+
639
+ export type NestedFormationDef =
640
+ | FormationDef
641
+ | { top_half: FormationDef; bottom_half: FormationDef };
642
+
643
+ export interface NightCutinDef {
644
+ tag: NightCutin;
645
+ hits: number;
646
+ type_factor: number | null;
647
+ power_mod: number | null;
648
+ accuracy_mod: number | null;
649
+ }
650
+
651
+ export interface HistoricalParams {
652
+ power_mod: AttackPowerModifier;
653
+ armor_penetration: number;
654
+ accuracy_mod: number;
655
+ target_evasion_mod: number;
656
+ }
657
+
658
+ export interface FormationCombatModifiersDef {
659
+ power_mod?: number;
660
660
  accuracy_mod?: number;
661
661
  evasion_mod?: number;
662
662
  }
@@ -666,6 +666,13 @@ export interface AttackPowerModifier {
666
666
  b?: number;
667
667
  }
668
668
 
669
+ export interface CustomPowerModifiers {
670
+ precap_mod?: AttackPowerModifier;
671
+ postcap_mod?: AttackPowerModifier;
672
+ basic_power_mod?: AttackPowerModifier;
673
+ historical_mod?: AttackPowerModifier;
674
+ }
675
+
669
676
  export interface SpecialEnemyModifiers {
670
677
  precap_general_mod: AttackPowerModifier;
671
678
  stype_mod: AttackPowerModifier;
@@ -681,13 +688,6 @@ export interface SpecialEnemyModifiers {
681
688
  pt_mod: AttackPowerModifier | null;
682
689
  }
683
690
 
684
- export interface CustomPowerModifiers {
685
- precap_mod?: AttackPowerModifier;
686
- postcap_mod?: AttackPowerModifier;
687
- basic_power_mod?: AttackPowerModifier;
688
- historical_mod?: AttackPowerModifier;
689
- }
690
-
691
691
  export type OrgType =
692
692
  | "Single"
693
693
  | "CarrierTaskForce"
@@ -696,6 +696,8 @@ export type OrgType =
696
696
  | "EnemySingle"
697
697
  | "EnemyCombined";
698
698
 
699
+ export type AirStateRank = "Rank0" | "Rank1" | "Rank2" | "Rank3";
700
+
699
701
  export type AirState =
700
702
  | "AirSupremacy"
701
703
  | "AirSuperiority"
@@ -703,7 +705,13 @@ export type AirState =
703
705
  | "AirDenial"
704
706
  | "AirIncapability";
705
707
 
706
- export type AirStateRank = "Rank0" | "Rank1" | "Rank2" | "Rank3";
708
+ export type CombinedFormation =
709
+ | "Cruising1"
710
+ | "Cruising2"
711
+ | "Cruising3"
712
+ | "Cruising4";
713
+
714
+ export type Formation = SingleFormation | CombinedFormation;
707
715
 
708
716
  export type SingleFormation =
709
717
  | "LineAhead"
@@ -713,20 +721,6 @@ export type SingleFormation =
713
721
  | "LineAbreast"
714
722
  | "Vanguard";
715
723
 
716
- export type Formation = SingleFormation | CombinedFormation;
717
-
718
- export type CombinedFormation =
719
- | "Cruising1"
720
- | "Cruising2"
721
- | "Cruising3"
722
- | "Cruising4";
723
-
724
- export interface CompAntiAirAnalysis {
725
- fleet_adjusted_anti_air: number;
726
- ships: AntiAirReport[];
727
- anti_air_cutin_chance: [number, number][];
728
- }
729
-
730
724
  export interface AntiAirReport {
731
725
  ship_id: number;
732
726
  role: Role;
@@ -739,10 +733,10 @@ export interface AntiAirReport {
739
733
  anti_air_propellant_barrage_chance: number | null;
740
734
  }
741
735
 
742
- export interface FleetCutinAttackReport<T> extends AttackReport<T> {
743
- index: number;
744
- ship_id: number;
745
- power_mod: number;
736
+ export interface CompAntiAirAnalysis {
737
+ fleet_adjusted_anti_air: number;
738
+ ships: AntiAirReport[];
739
+ anti_air_cutin_chance: [number, number][];
746
740
  }
747
741
 
748
742
  export interface FleetCutinReport<T> {
@@ -752,14 +746,10 @@ export interface FleetCutinReport<T> {
752
746
  attacks: FleetCutinAttackReport<T>[];
753
747
  }
754
748
 
755
- export interface AttackPower {
756
- precap: number;
757
- is_capped: boolean;
758
- capped: number;
759
- normal: number;
760
- critical: number;
761
- armor_penetration: number;
762
- remaining_ammo_mod: number;
749
+ export interface FleetCutinAttackReport<T> extends AttackReport<T> {
750
+ index: number;
751
+ ship_id: number;
752
+ power_mod: number;
763
753
  }
764
754
 
765
755
  export interface AttackPowerParams {
@@ -779,6 +769,16 @@ export interface AttackPowerParams {
779
769
  custom_mods: CustomPowerModifiers;
780
770
  }
781
771
 
772
+ export interface AttackPower {
773
+ precap: number;
774
+ is_capped: boolean;
775
+ capped: number;
776
+ normal: number;
777
+ critical: number;
778
+ armor_penetration: number;
779
+ remaining_ammo_mod: number;
780
+ }
781
+
782
782
  export interface AttackAnalysis {
783
783
  attacker_is_player: boolean;
784
784
  attacker_ship_id: number;
@@ -791,11 +791,6 @@ export interface AttackAnalysis {
791
791
  support_shelling: ActionReport<SupportShellingStyle>;
792
792
  }
793
793
 
794
- export interface ContactAnalysis {
795
- single: DayContactChance[] | null;
796
- combined: DayContactChance[] | null;
797
- }
798
-
799
794
  export interface DayContactChance {
800
795
  air_state: AirState;
801
796
  trigger_rate: number;
@@ -805,14 +800,9 @@ export interface DayContactChance {
805
800
  total: number;
806
801
  }
807
802
 
808
- export interface MasterData extends MasterBattleDefinitions {
809
- created_at: number;
810
- gears: MasterGear[];
811
- gear_attrs: MasterAttrRule<GearAttr>[];
812
- ships: MasterShip[];
813
- ship_attrs: MasterAttrRule<ShipAttr>[];
814
- ibonuses: MasterIBonuses;
815
- equippability: MasterEquippability;
803
+ export interface ContactAnalysis {
804
+ single: DayContactChance[] | null;
805
+ combined: DayContactChance[] | null;
816
806
  }
817
807
 
818
808
  export interface MasterAttrRule<T> {
@@ -826,8 +816,23 @@ export interface NationalityDef {
826
816
  ctypes: number[];
827
817
  }
828
818
 
819
+ export interface MasterData extends MasterBattleDefinitions {
820
+ created_at: number;
821
+ gears: MasterGear[];
822
+ gear_attrs: MasterAttrRule<GearAttr>[];
823
+ ships: MasterShip[];
824
+ ship_attrs: MasterAttrRule<ShipAttr>[];
825
+ ibonuses: MasterIBonuses;
826
+ equippability: MasterEquippability;
827
+ }
828
+
829
829
  export type CompiledEvaler = string;
830
830
 
831
+ export interface NightConditions {
832
+ player?: NightFleetConditions;
833
+ enemy?: NightFleetConditions;
834
+ }
835
+
831
836
  export interface BattleConditions {
832
837
  org_type: OrgType;
833
838
  role: Role;
@@ -838,11 +843,6 @@ export interface BattleConditions {
838
843
  night_conditions: NightFleetConditions;
839
844
  }
840
845
 
841
- export interface NightConditions {
842
- player?: NightFleetConditions;
843
- enemy?: NightFleetConditions;
844
- }
845
-
846
846
  export interface NightFleetConditions {
847
847
  night_contact_rank?: ContactRank | null;
848
848
  starshell_index?: number | null;
@@ -888,6 +888,8 @@ export type GearAttr =
888
888
  | "SemiNightPlane"
889
889
  | "HighAltitudeInterceptor";
890
890
 
891
+ export type StatInterval = [number | null, number | null];
892
+
891
893
  export interface MasterShip {
892
894
  ship_id: number;
893
895
  name: string;
@@ -920,8 +922,6 @@ export interface MasterShip {
920
922
  useful?: boolean;
921
923
  }
922
924
 
923
- export type StatInterval = [number | null, number | null];
924
-
925
925
  export interface GearVecState {
926
926
  g1?: GearState;
927
927
  g2?: GearState;
@@ -938,6 +938,11 @@ export interface GearState {
938
938
  stars?: number;
939
939
  }
940
940
 
941
+ export interface TorpedoAttackStyle {
942
+ tag: "TorpedoAttackStyle";
943
+ attack_type: TorpedoAttackType;
944
+ }
945
+
941
946
  export interface ShellingStyle {
942
947
  tag: "ShellingStyle";
943
948
  attack_type: ShellingType;
@@ -947,6 +952,8 @@ export interface ShellingStyle {
947
952
  hits: number;
948
953
  }
949
954
 
955
+ export type DayPhaseAttackStyle = ShellingStyle | AswAttackStyle;
956
+
950
957
  export interface AswAttackStyle {
951
958
  tag: "AswAttackStyle";
952
959
  attack_type: AswAttackType;
@@ -961,20 +968,13 @@ export interface NightAttackStyle {
961
968
  hits: number;
962
969
  }
963
970
 
971
+ export type NightPhaseAttackStyle = NightAttackStyle | AswAttackStyle;
972
+
964
973
  export interface SupportShellingStyle {
965
974
  tag: "SupportShellingStyle";
966
975
  attack_type: SupportShellingType;
967
976
  }
968
977
 
969
- export interface TorpedoAttackStyle {
970
- tag: "TorpedoAttackStyle";
971
- attack_type: TorpedoAttackType;
972
- }
973
-
974
- export type NightPhaseAttackStyle = NightAttackStyle | AswAttackStyle;
975
-
976
- export type DayPhaseAttackStyle = ShellingStyle | AswAttackStyle;
977
-
978
978
  export interface ShipConditions extends ShipPosition {
979
979
  formation?: Formation;
980
980
  amagiri_index?: number | null;
@@ -984,13 +984,6 @@ export interface NodeAttackAnalyzerShipConfig extends NightFleetConditions {
984
984
  formation?: Formation;
985
985
  }
986
986
 
987
- export interface NodeAttackAnalysis {
988
- left: AttackAnalysis;
989
- right: AttackAnalysis;
990
- shelling_fleet_cutin: FleetCutinReport<ShellingStyle>[];
991
- night_fleet_cutin: FleetCutinReport<NightAttackStyle>[];
992
- }
993
-
994
987
  export interface NodeAttackAnalyzerConfig {
995
988
  air_state?: AirState;
996
989
  engagement?: Engagement;
@@ -999,6 +992,13 @@ export interface NodeAttackAnalyzerConfig {
999
992
  right?: NodeAttackAnalyzerShipConfig;
1000
993
  }
1001
994
 
995
+ export interface NodeAttackAnalysis {
996
+ left: AttackAnalysis;
997
+ right: AttackAnalysis;
998
+ shelling_fleet_cutin: FleetCutinReport<ShellingStyle>[];
999
+ night_fleet_cutin: FleetCutinReport<NightAttackStyle>[];
1000
+ }
1001
+
1002
1002
  export interface MasterEquippability {
1003
1003
  equip_stype: MstStype[];
1004
1004
  equip_exslot: number[];
@@ -1007,9 +1007,16 @@ export interface MasterEquippability {
1007
1007
  rules: EquippabilityRule[];
1008
1008
  }
1009
1009
 
1010
- export interface MstStype {
1011
- api_id: number;
1012
- api_equip_type: Record<number, number>;
1010
+ export type MstEquipShipValue = null | number[];
1011
+
1012
+ export interface MstEquipExslotShip {
1013
+ api_ctypes: Record<number, number> | null;
1014
+ api_ship_ids: Record<number, number> | null;
1015
+ api_stypes: Record<number, number> | null;
1016
+ }
1017
+
1018
+ export interface MstEquipShip {
1019
+ api_equip_type: Record<number, MstEquipShipValue>;
1013
1020
  }
1014
1021
 
1015
1022
  export interface EquippabilityRule {
@@ -1019,20 +1026,11 @@ export interface EquippabilityRule {
1019
1026
  exclude?: string;
1020
1027
  }
1021
1028
 
1022
- export interface MstEquipShip {
1023
- api_equip_type: Record<number, MstEquipShipValue>;
1024
- }
1025
-
1026
- export interface MstEquipExslotShip {
1027
- api_ctypes: Record<number, number> | null;
1028
- api_ship_ids: Record<number, number> | null;
1029
- api_stypes: Record<number, number> | null;
1029
+ export interface MstStype {
1030
+ api_id: number;
1031
+ api_equip_type: Record<number, number>;
1030
1032
  }
1031
1033
 
1032
- export type MstEquipShipValue = null | number[];
1033
-
1034
- export type NodeId = string;
1035
-
1036
1034
  export interface NodeState {
1037
1035
  map?: number;
1038
1036
  node?: NodeId;
@@ -1042,6 +1040,8 @@ export interface NodeState {
1042
1040
  landing_battle?: boolean;
1043
1041
  }
1044
1042
 
1043
+ export type NodeId = string;
1044
+
1045
1045
  export type ContactRank = "Rank1" | "Rank2" | "Rank3";
1046
1046
 
1047
1047
  export class AirSquadron {