fleethub-core 1.9.1 → 1.10.0

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,44 @@ export function parse_ship_conditions(value: ShipConditions): ShipConditions;
8
8
  /**
9
9
  */
10
10
  export function set_panic_hook(): void;
11
+ export type ShipKey = "s1" | "s2" | "s3" | "s4" | "s5" | "s6" | "s7";
12
+
13
+ export interface ShipConditions extends ShipPosition {
14
+ formation?: Formation;
15
+ amagiri_index?: number | null;
16
+ }
17
+
18
+ export interface ShipPosition {
19
+ org_type?: OrgType;
20
+ fleet_type?: FleetType;
21
+ fleet_len?: number;
22
+ index?: number;
23
+ }
24
+
25
+ export interface NodeState {
26
+ map?: number;
27
+ node?: NodeId;
28
+ phase?: number;
29
+ debuff?: boolean;
30
+ }
31
+
32
+ export type NodeId = string;
33
+
34
+ export interface CompMeta {
35
+ fleets: Record<FleetType, FleetMeta>;
36
+ }
37
+
38
+ export interface FleetMeta {
39
+ id: string;
40
+ len: number;
41
+ ships: [string, ShipMeta | null][];
42
+ }
43
+
44
+ export interface ShipMeta {
45
+ id: string;
46
+ ship_id: number;
47
+ }
48
+
11
49
  export type GearCategory =
12
50
  | "Fighter"
13
51
  | "Bomber"
@@ -86,57 +124,30 @@ export type GearType =
86
124
 
87
125
  export type DamageState = "Normal" | "Shouha" | "Chuuha" | "Taiha" | "Sunk";
88
126
 
89
- export interface BattleDefinitions {
90
- formation: Record<Formation, NestedFormationDef>;
91
- anti_air_cutin: Record<number, AntiAirCutinDef>;
92
- day_cutin: Record<DayCutin, DayCutinDef>;
93
- night_cutin: Record<NightCutin, NightCutinDef>;
94
- }
127
+ export type TorpedoAttackType = null;
95
128
 
96
- export interface NightCutinDef {
97
- tag: NightCutin;
98
- hits: number;
99
- type_factor: number | null;
100
- power_mod: number | null;
101
- accuracy_mod: number | null;
102
- }
129
+ export type NightPhaseAttackType =
130
+ | { t: "Night"; c: NightAttackType }
131
+ | { t: "Asw"; c: AswAttackType };
103
132
 
104
- export interface DayCutinDef {
105
- tag: DayCutin;
106
- hits: number;
107
- type_factor: number | null;
108
- power_mod: number | null;
109
- accuracy_mod: number | null;
110
- }
133
+ export type DayPhaseAttackType =
134
+ | { t: "Shelling"; c: ShellingType }
135
+ | { t: "Asw"; c: AswAttackType };
111
136
 
112
- export interface AntiAirCutinDef {
113
- id: number;
114
- type_factor: number | null;
115
- multiplier: number | null;
116
- guaranteed: number | null;
117
- sequential: boolean | null;
118
- }
137
+ export type AttackType =
138
+ | { t: "Asw"; c: AswAttackType }
139
+ | { t: "Shelling"; c: ShellingType }
140
+ | { t: "Night"; c: NightAttackType }
141
+ | { t: "Torpedo" }
142
+ | { t: "SupportShelling"; c: SupportShellingType };
119
143
 
120
- export type NestedFormationDef =
121
- | FormationDef
122
- | { top_half: FormationDef; bottom_half: FormationDef };
144
+ export type SupportShellingType = ShellingType;
123
145
 
124
- export interface FormationDef {
125
- tag: Formation;
126
- protection_rate: number | null;
127
- fleet_anti_air_mod: number;
128
- shelling: FormationCombatModifiersDef;
129
- torpedo: FormationCombatModifiersDef;
130
- asw: FormationCombatModifiersDef;
131
- night: FormationCombatModifiersDef;
132
- support_shelling: FormationCombatModifiersDef;
133
- }
146
+ export type NightAttackType = "Normal" | "Swordfish" | "Carrier";
134
147
 
135
- export interface FormationCombatModifiersDef {
136
- power_mod?: number;
137
- accuracy_mod?: number;
138
- evasion_mod?: number;
139
- }
148
+ export type ShellingType = "Normal" | "Carrier";
149
+
150
+ export type AswAttackType = "DepthCharge" | "Aircraft";
140
151
 
141
152
  export type AirStateRank = "Rank0" | "Rank1" | "Rank2" | "Rank3";
142
153
 
@@ -154,7 +165,7 @@ export interface MasterData extends MasterBattleDefinitions {
154
165
  ships: MasterShip[];
155
166
  ship_attrs: MasterAttrRule<ShipAttr>[];
156
167
  ibonuses: MasterIBonuses;
157
- equippable: MasterEquippability;
168
+ equippability: MasterEquippability;
158
169
  }
159
170
 
160
171
  export interface NationalityDef {
@@ -168,6 +179,85 @@ export interface MasterAttrRule<T> {
168
179
  expr: CompiledEvaler;
169
180
  }
170
181
 
182
+ export type SpeedGroup = "A" | "B1" | "B2" | "C";
183
+
184
+ export interface NightFleetConditions {
185
+ night_contact_rank?: ContactRank | null;
186
+ starshell_index?: number | null;
187
+ searchlight_index?: number | null;
188
+ activates_large_searchlight?: boolean;
189
+ }
190
+
191
+ export interface NightConditions {
192
+ player?: NightFleetConditions;
193
+ enemy?: NightFleetConditions;
194
+ }
195
+
196
+ export interface BattleConditions {
197
+ org_type: OrgType;
198
+ role: Role;
199
+ ship_index: number;
200
+ fleet_len: number;
201
+ formation: Formation;
202
+ fleet_los_mod: number | null;
203
+ night_conditions: NightFleetConditions;
204
+ }
205
+
206
+ export interface MasterGear {
207
+ gear_id: number;
208
+ name: string;
209
+ types: GearTypeIdArray;
210
+ special_type?: number;
211
+ max_hp?: number;
212
+ firepower?: number;
213
+ armor?: number;
214
+ torpedo?: number;
215
+ anti_air?: number;
216
+ speed?: number;
217
+ bombing?: number;
218
+ asw?: number;
219
+ los?: number;
220
+ luck?: number;
221
+ accuracy?: number;
222
+ evasion?: number;
223
+ range?: number;
224
+ radius?: number;
225
+ cost?: number;
226
+ improvable?: boolean;
227
+ ship_anti_air_resist?: number;
228
+ fleet_anti_air_resist?: number;
229
+ }
230
+
231
+ export interface EquippabilityRule {
232
+ ship: CompiledEvaler;
233
+ keys?: string[];
234
+ include?: string;
235
+ exclude?: string;
236
+ }
237
+
238
+ export interface MasterEquippability {
239
+ equip_stype: EquipStype[];
240
+ equip_exslot: number[];
241
+ equip_ship: MstEquipShip[];
242
+ equip_exslot_ship: MstEquipExslotShip[];
243
+ rules: EquippabilityRule[];
244
+ }
245
+
246
+ export interface MstEquipExslotShip {
247
+ api_slotitem_id: number;
248
+ api_ship_ids: number[];
249
+ }
250
+
251
+ export interface MstEquipShip {
252
+ api_ship_id: number;
253
+ api_equip_type: number[];
254
+ }
255
+
256
+ export interface EquipStype {
257
+ id: number;
258
+ equip_type: number[];
259
+ }
260
+
171
261
  export interface OrgState {
172
262
  id?: string;
173
263
  f1?: FleetState;
@@ -293,6 +383,7 @@ export interface NodeAttackAnalyzerShipConfig extends NightFleetConditions {
293
383
  export interface NodeAttackAnalyzerConfig {
294
384
  air_state?: AirState;
295
385
  engagement?: Engagement;
386
+ node_state?: NodeState;
296
387
  left?: NodeAttackAnalyzerShipConfig;
297
388
  right?: NodeAttackAnalyzerShipConfig;
298
389
  }
@@ -320,6 +411,22 @@ export type Role = "Main" | "Escort";
320
411
 
321
412
  export type MoraleState = "Sparkle" | "Normal" | "Orange" | "Red";
322
413
 
414
+ export interface AttackReport<T> {
415
+ style: T;
416
+ proc_rate: number | null;
417
+ attack_power: AttackPower | null;
418
+ attack_power_params: AttackPowerParams | null;
419
+ hits: number;
420
+ hit_rate: HitRate | null;
421
+ hit_rate_params: HitRateParams | null;
422
+ damage: DamageReport | null;
423
+ }
424
+
425
+ export interface MoveShipPayload {
426
+ current: [string, string, ShipKey];
427
+ target: [string | null, string, ShipKey];
428
+ }
429
+
323
430
  export type NightCutinLike = NightCutin | FleetCutin;
324
431
 
325
432
  export type DayCutinLike = DayCutin | FleetCutin;
@@ -361,21 +468,7 @@ export type DayCutin =
361
468
  | "BBA"
362
469
  | "BA";
363
470
 
364
- export interface AttackReport<T> {
365
- style: T;
366
- proc_rate: number | null;
367
- attack_power: AttackPower | null;
368
- attack_power_params: AttackPowerParams | null;
369
- hits: number;
370
- hit_rate: HitRate | null;
371
- hit_rate_params: HitRateParams | null;
372
- damage: DamageReport | null;
373
- }
374
-
375
- export interface MoveShipPayload {
376
- current: [string, string, ShipKey];
377
- target: [string | null, string, ShipKey];
378
- }
471
+ export type ContactRank = "Rank1" | "Rank2" | "Rank3";
379
472
 
380
473
  export type AirWaveType = "Jet" | "LandBase" | "Carrier";
381
474
 
@@ -416,36 +509,103 @@ export interface MasterIBonusRule {
416
509
  formula: CompiledEvaler;
417
510
  }
418
511
 
419
- export type ShipKey = "s1" | "s2" | "s3" | "s4" | "s5" | "s6" | "s7";
512
+ export interface BattleDefinitions {
513
+ formation: Record<Formation, NestedFormationDef>;
514
+ anti_air_cutin: Record<number, AntiAirCutinDef>;
515
+ day_cutin: Record<DayCutin, DayCutinDef>;
516
+ night_cutin: Record<NightCutin, NightCutinDef>;
517
+ historical_bonuses: HistoricalBonusDef[];
518
+ }
420
519
 
421
- export interface ShipConditions extends ShipPosition {
422
- formation?: Formation;
423
- amagiri_index?: number | null;
520
+ export interface NightCutinDef {
521
+ tag: NightCutin;
522
+ hits: number;
523
+ type_factor: number | null;
524
+ power_mod: number | null;
525
+ accuracy_mod: number | null;
424
526
  }
425
527
 
426
- export type ContactRank = "Rank1" | "Rank2" | "Rank3";
528
+ export interface HistoricalBonusDef {
529
+ map?: number;
530
+ node?: NodeId;
531
+ phase?: number;
532
+ debuff?: boolean;
533
+ ship?: CompiledEvaler;
534
+ enemy?: CompiledEvaler;
535
+ power_mod?: number;
536
+ accuracy_mod?: number;
537
+ evasion_mod?: number;
538
+ }
427
539
 
428
- export interface EBonuses {
429
- firepower: number;
430
- torpedo: number;
431
- anti_air: number;
432
- armor: number;
433
- evasion: number;
434
- asw: number;
435
- los: number;
436
- bombing: number;
437
- accuracy: number;
438
- range: number;
540
+ export interface DayCutinDef {
541
+ tag: DayCutin;
542
+ hits: number;
543
+ type_factor: number | null;
544
+ power_mod: number | null;
545
+ accuracy_mod: number | null;
439
546
  }
440
547
 
441
- export interface ShipInput {
442
- ship_id: number;
443
- ctype: number;
444
- stype: number;
445
- yomi: string;
548
+ export interface AntiAirCutinDef {
549
+ id: number;
550
+ type_factor: number | null;
551
+ multiplier: number | null;
552
+ guaranteed: number | null;
553
+ sequential: boolean | null;
446
554
  }
447
555
 
448
- export interface GearInput {
556
+ export type NestedFormationDef =
557
+ | FormationDef
558
+ | { top_half: FormationDef; bottom_half: FormationDef };
559
+
560
+ export interface FormationDef {
561
+ tag: Formation;
562
+ protection_rate: number | null;
563
+ fleet_anti_air_mod: number;
564
+ shelling: FormationCombatModifiersDef;
565
+ torpedo: FormationCombatModifiersDef;
566
+ asw: FormationCombatModifiersDef;
567
+ night: FormationCombatModifiersDef;
568
+ support_shelling: FormationCombatModifiersDef;
569
+ }
570
+
571
+ export interface FormationCombatModifiersDef {
572
+ power_mod?: number;
573
+ accuracy_mod?: number;
574
+ evasion_mod?: number;
575
+ }
576
+
577
+ export type Engagement = "GreenT" | "Parallel" | "HeadOn" | "RedT";
578
+
579
+ export type FhResult<T> = { Ok: T } | { Err: string };
580
+
581
+ export interface ShipAnalyzerConfig {
582
+ air_state?: AirState;
583
+ engagement?: Engagement;
584
+ left?: AttackAnalyzerShipConfig;
585
+ right?: AttackAnalyzerShipConfig;
586
+ }
587
+
588
+ export interface EBonuses {
589
+ firepower: number;
590
+ torpedo: number;
591
+ anti_air: number;
592
+ armor: number;
593
+ evasion: number;
594
+ asw: number;
595
+ los: number;
596
+ bombing: number;
597
+ accuracy: number;
598
+ range: number;
599
+ }
600
+
601
+ export interface ShipInput {
602
+ ship_id: number;
603
+ ctype: number;
604
+ stype: number;
605
+ yomi: string;
606
+ }
607
+
608
+ export interface GearInput {
449
609
  gear_id: number;
450
610
  types: GearTypeIdArray;
451
611
  firepower: number;
@@ -465,64 +625,6 @@ export interface GearInput {
465
625
 
466
626
  export type GearVecInput = GearInput[];
467
627
 
468
- export interface ShipPosition {
469
- org_type?: OrgType;
470
- fleet_type?: FleetType;
471
- fleet_len?: number;
472
- index?: number;
473
- }
474
-
475
- export interface CompMeta {
476
- fleets: Record<FleetType, FleetMeta>;
477
- }
478
-
479
- export interface FleetMeta {
480
- id: string;
481
- len: number;
482
- ships: [string, ShipMeta | null][];
483
- }
484
-
485
- export interface ShipMeta {
486
- id: string;
487
- ship_id: number;
488
- }
489
-
490
- export type Engagement = "GreenT" | "Parallel" | "HeadOn" | "RedT";
491
-
492
- export type TorpedoAttackType = null;
493
-
494
- export type NightPhaseAttackType =
495
- | { t: "Night"; c: NightAttackType }
496
- | { t: "Asw"; c: AswAttackType };
497
-
498
- export type DayPhaseAttackType =
499
- | { t: "Shelling"; c: ShellingType }
500
- | { t: "Asw"; c: AswAttackType };
501
-
502
- export type AttackType =
503
- | { t: "Asw"; c: AswAttackType }
504
- | { t: "Shelling"; c: ShellingType }
505
- | { t: "Night"; c: NightAttackType }
506
- | { t: "Torpedo" }
507
- | { t: "SupportShelling"; c: SupportShellingType };
508
-
509
- export type SupportShellingType = ShellingType;
510
-
511
- export type NightAttackType = "Normal" | "Swordfish" | "Carrier";
512
-
513
- export type ShellingType = "Normal" | "Carrier";
514
-
515
- export type AswAttackType = "DepthCharge" | "Aircraft";
516
-
517
- export type FhResult<T> = { Ok: T } | { Err: string };
518
-
519
- export interface ShipAnalyzerConfig {
520
- air_state?: AirState;
521
- engagement?: Engagement;
522
- left?: AttackAnalyzerShipConfig;
523
- right?: AttackAnalyzerShipConfig;
524
- }
525
-
526
628
  export type ShipAttr =
527
629
  | "Unknown"
528
630
  | "Abyssal"
@@ -588,6 +690,57 @@ export interface SupportShellingSimulatorParams {
588
690
  engagement: Engagement;
589
691
  }
590
692
 
693
+ export interface MasterBattleDefinitions {
694
+ formation: NestedFormationDef[];
695
+ anti_air_cutin: AntiAirCutinDef[];
696
+ day_cutin: DayCutinDef[];
697
+ night_cutin: NightCutinDef[];
698
+ historical_bonuses?: HistoricalBonusDef[];
699
+ }
700
+
701
+ export interface AttackAnalyzerShipConfig
702
+ extends ShipConditions,
703
+ NightFleetConditions {
704
+ fleet_los_mod?: number | null;
705
+ }
706
+
707
+ export interface SupportShellingStyle {
708
+ tag: "SupportShellingStyle";
709
+ attack_type: SupportShellingType;
710
+ }
711
+
712
+ export type NightPhaseAttackStyle = NightAttackStyle | AswAttackStyle;
713
+
714
+ export type DayPhaseAttackStyle = ShellingStyle | AswAttackStyle;
715
+
716
+ export interface TorpedoAttackStyle {
717
+ tag: "TorpedoAttackStyle";
718
+ attack_type: TorpedoAttackType;
719
+ }
720
+
721
+ export interface AswAttackStyle {
722
+ tag: "AswAttackStyle";
723
+ attack_type: AswAttackType;
724
+ }
725
+
726
+ export interface NightAttackStyle {
727
+ tag: "NightAttackStyle";
728
+ attack_type: NightAttackType;
729
+ cutin: NightCutinLike | null;
730
+ power_mod: number;
731
+ accuracy_mod: number;
732
+ hits: number;
733
+ }
734
+
735
+ export interface ShellingStyle {
736
+ tag: "ShellingStyle";
737
+ attack_type: ShellingType;
738
+ cutin: DayCutinLike | null;
739
+ power_mod: number;
740
+ accuracy_mod: number;
741
+ hits: number;
742
+ }
743
+
591
744
  export interface NightContactChance {
592
745
  rank1: number;
593
746
  rank2: number;
@@ -611,6 +764,32 @@ export interface NightCutinActionReport
611
764
  cutin_term: number | null;
612
765
  }
613
766
 
767
+ export interface FleetCutinReport<T> {
768
+ cutin: FleetCutin;
769
+ rate: number | null;
770
+ formation: Formation;
771
+ attacks: FleetCutinAttackReport<T>[];
772
+ }
773
+
774
+ export interface FleetCutinAttackReport<T> extends AttackReport<T> {
775
+ index: number;
776
+ ship_id: number;
777
+ power_mod: number;
778
+ }
779
+
780
+ export interface DamageReport {
781
+ miss_damage_min: number;
782
+ miss_damage_max: number;
783
+ normal_damage_min: number;
784
+ normal_damage_max: number;
785
+ critical_damage_min: number;
786
+ critical_damage_max: number;
787
+ normal_scratch_rate: number;
788
+ critical_scratch_rate: number;
789
+ damage_density: Histogram<number, number>;
790
+ damage_state_density: Histogram<DamageState, number>;
791
+ }
792
+
614
793
  export interface CompAntiAirAnalysis {
615
794
  fleet_adjusted_anti_air: number;
616
795
  ships: AntiAirReport[];
@@ -629,44 +808,25 @@ export interface AntiAirReport {
629
808
  anti_air_propellant_barrage_chance: number | null;
630
809
  }
631
810
 
632
- export type FleetType = "Main" | "Escort" | "RouteSup" | "BossSup";
633
-
634
- export interface SupportShellingStyle {
635
- tag: "SupportShellingStyle";
636
- attack_type: SupportShellingType;
637
- }
638
-
639
- export type NightPhaseAttackStyle = NightAttackStyle | AswAttackStyle;
640
-
641
- export type DayPhaseAttackStyle = ShellingStyle | AswAttackStyle;
811
+ export type CompiledEvaler = string;
642
812
 
643
- export interface TorpedoAttackStyle {
644
- tag: "TorpedoAttackStyle";
645
- attack_type: TorpedoAttackType;
646
- }
813
+ export type Formation = SingleFormation | CombinedFormation;
647
814
 
648
- export interface AswAttackStyle {
649
- tag: "AswAttackStyle";
650
- attack_type: AswAttackType;
651
- }
815
+ export type CombinedFormation =
816
+ | "Cruising1"
817
+ | "Cruising2"
818
+ | "Cruising3"
819
+ | "Cruising4";
652
820
 
653
- export interface NightAttackStyle {
654
- tag: "NightAttackStyle";
655
- attack_type: NightAttackType;
656
- cutin: NightCutinLike | null;
657
- power_mod: number;
658
- accuracy_mod: number;
659
- hits: number;
660
- }
821
+ export type SingleFormation =
822
+ | "LineAhead"
823
+ | "DoubleLine"
824
+ | "Diamond"
825
+ | "Echelon"
826
+ | "LineAbreast"
827
+ | "Vanguard";
661
828
 
662
- export interface ShellingStyle {
663
- tag: "ShellingStyle";
664
- attack_type: ShellingType;
665
- cutin: DayCutinLike | null;
666
- power_mod: number;
667
- accuracy_mod: number;
668
- hits: number;
669
- }
829
+ export type FleetType = "Main" | "Escort" | "RouteSup" | "BossSup";
670
830
 
671
831
  export interface CustomPowerModifiers {
672
832
  precap_mod?: AttackPowerModifier;
@@ -711,6 +871,7 @@ export interface AttackPowerParams {
711
871
  armor_penetration: number;
712
872
  remaining_ammo_mod: number;
713
873
  special_enemy_mods: SpecialEnemyModifiers;
874
+ historical_mod: number;
714
875
  custom_mods: CustomPowerModifiers;
715
876
  }
716
877
 
@@ -725,56 +886,6 @@ export interface SpecialEnemyModifiers {
725
886
  pt_mod: AttackPowerModifier;
726
887
  }
727
888
 
728
- export interface FleetCutinReport<T> {
729
- cutin: FleetCutin;
730
- rate: number | null;
731
- formation: Formation;
732
- attacks: FleetCutinAttackReport<T>[];
733
- }
734
-
735
- export interface FleetCutinAttackReport<T> extends AttackReport<T> {
736
- index: number;
737
- ship_id: number;
738
- power_mod: number;
739
- }
740
-
741
- export interface DamageReport {
742
- miss_damage_min: number;
743
- miss_damage_max: number;
744
- normal_damage_min: number;
745
- normal_damage_max: number;
746
- critical_damage_min: number;
747
- critical_damage_max: number;
748
- normal_scratch_rate: number;
749
- critical_scratch_rate: number;
750
- damage_density: Histogram<number, number>;
751
- damage_state_density: Histogram<DamageState, number>;
752
- }
753
-
754
- export interface AttackAnalyzerShipConfig
755
- extends ShipConditions,
756
- NightFleetConditions {
757
- fleet_los_mod?: number | null;
758
- }
759
-
760
- export type Histogram<K, V> = Partial<Record<K, V>>;
761
-
762
- export type Formation = SingleFormation | CombinedFormation;
763
-
764
- export type CombinedFormation =
765
- | "Cruising1"
766
- | "Cruising2"
767
- | "Cruising3"
768
- | "Cruising4";
769
-
770
- export type SingleFormation =
771
- | "LineAhead"
772
- | "DoubleLine"
773
- | "Diamond"
774
- | "Echelon"
775
- | "LineAbreast"
776
- | "Vanguard";
777
-
778
889
  export interface CompDayCutinAnalysis {
779
890
  rank3_air_state: AirState;
780
891
  rank2_air_state: AirState;
@@ -806,6 +917,8 @@ export interface AttackAnalysis {
806
917
  support_shelling: ActionReport<SupportShellingStyle>;
807
918
  }
808
919
 
920
+ export type Histogram<K, V> = Partial<Record<K, V>>;
921
+
809
922
  export type SpecialEnemyType =
810
923
  | "None"
811
924
  | "SoftSkinned"
@@ -852,43 +965,6 @@ export interface MasterShip {
852
965
 
853
966
  export type StatInterval = [number | null, number | null];
854
967
 
855
- export interface EquippabilityRule {
856
- ship: CompiledEvaler;
857
- keys?: string[];
858
- include?: string;
859
- exclude?: string;
860
- }
861
-
862
- export interface MasterEquippability {
863
- equip_stype: EquipStype[];
864
- equip_exslot: number[];
865
- equip_ship: MstEquipShip[];
866
- equip_exslot_ship: MstEquipExslotShip[];
867
- rules: EquippabilityRule[];
868
- }
869
-
870
- export interface MstEquipExslotShip {
871
- api_slotitem_id: number;
872
- api_ship_ids: number[];
873
- }
874
-
875
- export interface MstEquipShip {
876
- api_ship_id: number;
877
- api_equip_type: number[];
878
- }
879
-
880
- export interface EquipStype {
881
- id: number;
882
- equip_type: number[];
883
- }
884
-
885
- export interface MasterBattleDefinitions {
886
- formation: NestedFormationDef[];
887
- anti_air_cutin: AntiAirCutinDef[];
888
- day_cutin: DayCutinDef[];
889
- night_cutin: NightCutinDef[];
890
- }
891
-
892
968
  export interface HitRate {
893
969
  normal: number;
894
970
  critical: number;
@@ -945,57 +1021,6 @@ export interface CompAnalysis {
945
1021
  anti_air: CompAntiAirAnalysis;
946
1022
  }
947
1023
 
948
- export type CompiledEvaler = string;
949
-
950
- export type SpeedGroup = "A" | "B1" | "B2" | "C";
951
-
952
- export interface NightFleetConditions {
953
- night_contact_rank?: ContactRank | null;
954
- starshell_index?: number | null;
955
- searchlight_index?: number | null;
956
- activates_large_searchlight?: boolean;
957
- }
958
-
959
- export interface NightConditions {
960
- player?: NightFleetConditions;
961
- enemy?: NightFleetConditions;
962
- }
963
-
964
- export interface BattleConditions {
965
- org_type: OrgType;
966
- role: Role;
967
- ship_index: number;
968
- fleet_len: number;
969
- formation: Formation;
970
- fleet_los_mod: number | null;
971
- night_conditions: NightFleetConditions;
972
- }
973
-
974
- export interface MasterGear {
975
- gear_id: number;
976
- name: string;
977
- types: GearTypeIdArray;
978
- special_type?: number;
979
- max_hp?: number;
980
- firepower?: number;
981
- armor?: number;
982
- torpedo?: number;
983
- anti_air?: number;
984
- speed?: number;
985
- bombing?: number;
986
- asw?: number;
987
- los?: number;
988
- luck?: number;
989
- accuracy?: number;
990
- evasion?: number;
991
- range?: number;
992
- radius?: number;
993
- cost?: number;
994
- improvable?: boolean;
995
- ship_anti_air_resist?: number;
996
- fleet_anti_air_resist?: number;
997
- }
998
-
999
1024
  /**
1000
1025
  */
1001
1026
  export class AirSquadron {