fleethub-core 1.12.9 → 1.12.10

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.
@@ -31,191 +31,6 @@ export interface ActionReport<T> {
31
31
 
32
32
  export type SpeedGroup = "A" | "B1" | "B2" | "C";
33
33
 
34
- export type CompiledEvaler = string;
35
-
36
- export interface EquippabilityRule {
37
- ship: CompiledEvaler;
38
- keys?: string[];
39
- include?: string;
40
- exclude?: string;
41
- }
42
-
43
- export interface MasterEquippability {
44
- equip_stype: MstStype[];
45
- equip_exslot: number[];
46
- equip_ship: Record<number, MstEquipShip>;
47
- equip_exslot_ship: Record<number, MstEquipExslotShip>;
48
- rules: EquippabilityRule[];
49
- }
50
-
51
- export interface MstEquipExslotShip {
52
- api_ctypes: Record<number, number> | null;
53
- api_ship_ids: Record<number, number> | null;
54
- api_stypes: Record<number, number> | null;
55
- }
56
-
57
- export type MstEquipShip = Record<number, MstEquipShipValue>;
58
-
59
- export type MstEquipShipValue = null | number[];
60
-
61
- export interface MstStype {
62
- api_id: number;
63
- api_equip_type: Record<number, number>;
64
- }
65
-
66
- export type Histogram<K extends keyof any, V> = Partial<Record<K, V>>;
67
-
68
- export type FhResult<T> = { Ok: T } | { Err: string };
69
-
70
- export interface AttackReport<T> {
71
- style: T;
72
- proc_rate: number | null;
73
- attack_power: AttackPower | null;
74
- attack_power_params: AttackPowerParams | null;
75
- hits: number;
76
- hit_rate: HitRate | null;
77
- hit_rate_params: HitRateParams | null;
78
- damage: DamageReport | null;
79
- }
80
-
81
- export interface CompAntiAirAnalysis {
82
- fleet_adjusted_anti_air: number;
83
- ships: AntiAirReport[];
84
- anti_air_cutin_chance: [number, number][];
85
- }
86
-
87
- export interface AntiAirReport {
88
- ship_id: number;
89
- role: Role;
90
- index: number;
91
- adjusted_anti_air: number | null;
92
- proportional_shotdown_rate: number | null;
93
- fixed_shotdown_number: number | null;
94
- guaranteed: number | null;
95
- anti_air_cutin_chance: [number, number][];
96
- anti_air_propellant_barrage_chance: number | null;
97
- }
98
-
99
- export type AirWaveType = "Jet" | "LandBase" | "Carrier";
100
-
101
- export interface AttackPowerModifier {
102
- a?: number;
103
- b?: number;
104
- }
105
-
106
- export interface SpecialEnemyModifiers {
107
- precap_general_mod: AttackPowerModifier;
108
- stype_mod: AttackPowerModifier;
109
- landing_craft_synergy_mod: AttackPowerModifier;
110
- toku_daihatsu_tank_mod: AttackPowerModifier;
111
- m4a1dd_mod: AttackPowerModifier;
112
- honi_mod: AttackPowerModifier;
113
- toku_daihatsu_chiha_mod: AttackPowerModifier;
114
- toku_daihatsu_chiha_kai_mod: AttackPowerModifier;
115
- t4_tank_group_mod: AttackPowerModifier;
116
- t4_tank_kai_mod: AttackPowerModifier;
117
- postcap_general_mod: AttackPowerModifier;
118
- pt_mod: AttackPowerModifier | null;
119
- }
120
-
121
- export interface CustomPowerModifiers {
122
- precap_mod?: AttackPowerModifier;
123
- postcap_mod?: AttackPowerModifier;
124
- basic_power_mod?: AttackPowerModifier;
125
- historical_mod?: AttackPowerModifier;
126
- }
127
-
128
- export interface FormationCombatModifiersDef {
129
- power_mod?: number;
130
- accuracy_mod?: number;
131
- evasion_mod?: number;
132
- }
133
-
134
- export interface FormationDef {
135
- tag: Formation;
136
- protection_rate: number | null;
137
- fleet_anti_air_mod: number;
138
- shelling: FormationCombatModifiersDef;
139
- torpedo: FormationCombatModifiersDef;
140
- asw: FormationCombatModifiersDef;
141
- night: FormationCombatModifiersDef;
142
- support_shelling: FormationCombatModifiersDef;
143
- }
144
-
145
- export type NestedFormationDef =
146
- | FormationDef
147
- | { top_half: FormationDef; bottom_half: FormationDef };
148
-
149
- export interface AntiAirCutinDef {
150
- id: number;
151
- type_factor: number | null;
152
- multiplier: number | null;
153
- guaranteed: number | null;
154
- sequential: boolean | null;
155
- }
156
-
157
- export interface DayCutinDef {
158
- tag: DayCutin;
159
- hits: number;
160
- type_factor: number | null;
161
- power_mod: number | null;
162
- accuracy_mod: number | null;
163
- }
164
-
165
- export interface HistoricalBonusDef {
166
- map?: number;
167
- node?: CompiledEvaler;
168
- phase?: number;
169
- debuff?: boolean;
170
- ship?: CompiledEvaler;
171
- enemy?: CompiledEvaler;
172
- power_mod?: AttackPowerModifier;
173
- armor_penetration?: number;
174
- accuracy_mod?: number;
175
- evasion_mod?: number;
176
- }
177
-
178
- export interface HistoricalParams {
179
- power_mod: AttackPowerModifier;
180
- armor_penetration: number;
181
- accuracy_mod: number;
182
- target_evasion_mod: number;
183
- }
184
-
185
- export interface NightCutinDef {
186
- tag: NightCutin;
187
- hits: number;
188
- type_factor: number | null;
189
- power_mod: number | null;
190
- accuracy_mod: number | null;
191
- }
192
-
193
- export interface BattleDefinitions {
194
- formation: Record<Formation, NestedFormationDef>;
195
- anti_air_cutin: Record<number, AntiAirCutinDef>;
196
- day_cutin: Record<DayCutin, DayCutinDef>;
197
- night_cutin: Record<NightCutin, NightCutinDef>;
198
- historical_bonuses: HistoricalBonusDef[];
199
- }
200
-
201
- export type ContactRank = "Rank1" | "Rank2" | "Rank3";
202
-
203
- export interface GearState {
204
- id?: string;
205
- gear_id: number;
206
- exp?: number;
207
- stars?: number;
208
- }
209
-
210
- export interface GearVecState {
211
- g1?: GearState;
212
- g2?: GearState;
213
- g3?: GearState;
214
- g4?: GearState;
215
- g5?: GearState;
216
- gx?: GearState;
217
- }
218
-
219
34
  export interface MoveShipPayload {
220
35
  current: [string, string, ShipKey];
221
36
  target: [string | null, string, ShipKey];
@@ -626,41 +441,199 @@ export type ShipType =
626
441
  | "CT"
627
442
  | "AO";
628
443
 
629
- export type GearTypeIdArray = [number, number, number, number, number];
444
+ export type CompiledEvaler = string;
630
445
 
631
- export interface SupportShellingSimulatorParams {
632
- attacker_formation?: Formation;
633
- target_formation?: Formation;
634
- engagement: Engagement;
635
- node_state: NodeState;
446
+ export interface EquippabilityRule {
447
+ ship: CompiledEvaler;
448
+ keys?: string[];
449
+ include?: string;
450
+ exclude?: string;
636
451
  }
637
452
 
638
- export interface ShipAnalyzerConfig {
639
- air_state?: AirState;
640
- engagement?: Engagement;
641
- left?: AttackAnalyzerShipConfig;
642
- right?: AttackAnalyzerShipConfig;
453
+ export interface MasterEquippability {
454
+ equip_stype: MstStype[];
455
+ equip_exslot: number[];
456
+ equip_ship: Record<number, MstEquipShip>;
457
+ equip_exslot_ship: Record<number, MstEquipExslotShip>;
458
+ rules: EquippabilityRule[];
643
459
  }
644
460
 
645
- export type Engagement = "GreenT" | "Parallel" | "HeadOn" | "RedT";
461
+ export interface MstEquipExslotShip {
462
+ api_ctypes: Record<number, number> | null;
463
+ api_ship_ids: Record<number, number> | null;
464
+ api_stypes: Record<number, number> | null;
465
+ }
646
466
 
647
- export type SingleFormation =
648
- | "LineAhead"
649
- | "DoubleLine"
650
- | "Diamond"
651
- | "Echelon"
652
- | "LineAbreast"
653
- | "Vanguard";
467
+ export interface MstEquipShip {
468
+ api_equip_type: Record<number, MstEquipShipValue>;
469
+ }
654
470
 
655
- export type CombinedFormation =
656
- | "Cruising1"
657
- | "Cruising2"
658
- | "Cruising3"
659
- | "Cruising4";
471
+ export type MstEquipShipValue = null | number[];
660
472
 
661
- export type Formation = SingleFormation | CombinedFormation;
473
+ export interface MstStype {
474
+ api_id: number;
475
+ api_equip_type: Record<number, number>;
476
+ }
662
477
 
663
- export type Role = "Main" | "Escort";
478
+ export type FhResult<T> = { Ok: T } | { Err: string };
479
+
480
+ export interface AttackReport<T> {
481
+ style: T;
482
+ proc_rate: number | null;
483
+ attack_power: AttackPower | null;
484
+ attack_power_params: AttackPowerParams | null;
485
+ hits: number;
486
+ hit_rate: HitRate | null;
487
+ hit_rate_params: HitRateParams | null;
488
+ damage: DamageReport | null;
489
+ }
490
+
491
+ export interface CompAntiAirAnalysis {
492
+ fleet_adjusted_anti_air: number;
493
+ ships: AntiAirReport[];
494
+ anti_air_cutin_chance: [number, number][];
495
+ }
496
+
497
+ export interface AntiAirReport {
498
+ ship_id: number;
499
+ role: Role;
500
+ index: number;
501
+ adjusted_anti_air: number | null;
502
+ proportional_shotdown_rate: number | null;
503
+ fixed_shotdown_number: number | null;
504
+ guaranteed: number | null;
505
+ anti_air_cutin_chance: [number, number][];
506
+ anti_air_propellant_barrage_chance: number | null;
507
+ }
508
+
509
+ export type AirWaveType = "Jet" | "LandBase" | "Carrier";
510
+
511
+ export interface AttackPowerModifier {
512
+ a?: number;
513
+ b?: number;
514
+ }
515
+
516
+ export interface SpecialEnemyModifiers {
517
+ precap_general_mod: AttackPowerModifier;
518
+ stype_mod: AttackPowerModifier;
519
+ landing_craft_synergy_mod: AttackPowerModifier;
520
+ toku_daihatsu_tank_mod: AttackPowerModifier;
521
+ m4a1dd_mod: AttackPowerModifier;
522
+ honi_mod: AttackPowerModifier;
523
+ toku_daihatsu_chiha_mod: AttackPowerModifier;
524
+ toku_daihatsu_chiha_kai_mod: AttackPowerModifier;
525
+ t4_tank_group_mod: AttackPowerModifier;
526
+ t4_tank_kai_mod: AttackPowerModifier;
527
+ postcap_general_mod: AttackPowerModifier;
528
+ pt_mod: AttackPowerModifier | null;
529
+ }
530
+
531
+ export interface CustomPowerModifiers {
532
+ precap_mod?: AttackPowerModifier;
533
+ postcap_mod?: AttackPowerModifier;
534
+ basic_power_mod?: AttackPowerModifier;
535
+ historical_mod?: AttackPowerModifier;
536
+ }
537
+
538
+ export interface FormationCombatModifiersDef {
539
+ power_mod?: number;
540
+ accuracy_mod?: number;
541
+ evasion_mod?: number;
542
+ }
543
+
544
+ export interface FormationDef {
545
+ tag: Formation;
546
+ protection_rate: number | null;
547
+ fleet_anti_air_mod: number;
548
+ shelling: FormationCombatModifiersDef;
549
+ torpedo: FormationCombatModifiersDef;
550
+ asw: FormationCombatModifiersDef;
551
+ night: FormationCombatModifiersDef;
552
+ support_shelling: FormationCombatModifiersDef;
553
+ }
554
+
555
+ export type NestedFormationDef =
556
+ | FormationDef
557
+ | { top_half: FormationDef; bottom_half: FormationDef };
558
+
559
+ export interface AntiAirCutinDef {
560
+ id: number;
561
+ type_factor: number | null;
562
+ multiplier: number | null;
563
+ guaranteed: number | null;
564
+ sequential: boolean | null;
565
+ }
566
+
567
+ export interface DayCutinDef {
568
+ tag: DayCutin;
569
+ hits: number;
570
+ type_factor: number | null;
571
+ power_mod: number | null;
572
+ accuracy_mod: number | null;
573
+ }
574
+
575
+ export interface HistoricalBonusDef {
576
+ map?: number;
577
+ node?: CompiledEvaler;
578
+ phase?: number;
579
+ debuff?: boolean;
580
+ ship?: CompiledEvaler;
581
+ enemy?: CompiledEvaler;
582
+ power_mod?: AttackPowerModifier;
583
+ armor_penetration?: number;
584
+ accuracy_mod?: number;
585
+ evasion_mod?: number;
586
+ }
587
+
588
+ export interface HistoricalParams {
589
+ power_mod: AttackPowerModifier;
590
+ armor_penetration: number;
591
+ accuracy_mod: number;
592
+ target_evasion_mod: number;
593
+ }
594
+
595
+ export interface NightCutinDef {
596
+ tag: NightCutin;
597
+ hits: number;
598
+ type_factor: number | null;
599
+ power_mod: number | null;
600
+ accuracy_mod: number | null;
601
+ }
602
+
603
+ export interface BattleDefinitions {
604
+ formation: Record<Formation, NestedFormationDef>;
605
+ anti_air_cutin: Record<number, AntiAirCutinDef>;
606
+ day_cutin: Record<DayCutin, DayCutinDef>;
607
+ night_cutin: Record<NightCutin, NightCutinDef>;
608
+ historical_bonuses: HistoricalBonusDef[];
609
+ }
610
+
611
+ export type ContactRank = "Rank1" | "Rank2" | "Rank3";
612
+
613
+ export interface GearState {
614
+ id?: string;
615
+ gear_id: number;
616
+ exp?: number;
617
+ stars?: number;
618
+ }
619
+
620
+ export interface GearVecState {
621
+ g1?: GearState;
622
+ g2?: GearState;
623
+ g3?: GearState;
624
+ g4?: GearState;
625
+ g5?: GearState;
626
+ gx?: GearState;
627
+ }
628
+
629
+ export type Histogram<K extends keyof any, V> = Partial<Record<K, V>>;
630
+
631
+ export interface ShipAnalyzerConfig {
632
+ air_state?: AirState;
633
+ engagement?: Engagement;
634
+ left?: AttackAnalyzerShipConfig;
635
+ right?: AttackAnalyzerShipConfig;
636
+ }
664
637
 
665
638
  export interface CompAnalyzerConfig {
666
639
  engagement: Engagement;
@@ -689,6 +662,35 @@ export interface CompAnalysis {
689
662
  anti_air: CompAntiAirAnalysis;
690
663
  }
691
664
 
665
+ export type GearTypeIdArray = [number, number, number, number, number];
666
+
667
+ export interface SupportShellingSimulatorParams {
668
+ attacker_formation?: Formation;
669
+ target_formation?: Formation;
670
+ engagement: Engagement;
671
+ node_state: NodeState;
672
+ }
673
+
674
+ export type Engagement = "GreenT" | "Parallel" | "HeadOn" | "RedT";
675
+
676
+ export type SingleFormation =
677
+ | "LineAhead"
678
+ | "DoubleLine"
679
+ | "Diamond"
680
+ | "Echelon"
681
+ | "LineAbreast"
682
+ | "Vanguard";
683
+
684
+ export type CombinedFormation =
685
+ | "Cruising1"
686
+ | "Cruising2"
687
+ | "Cruising3"
688
+ | "Cruising4";
689
+
690
+ export type Formation = SingleFormation | CombinedFormation;
691
+
692
+ export type Role = "Main" | "Escort";
693
+
692
694
  export interface MasterGear {
693
695
  gear_id: number;
694
696
  name: string;
@@ -132,10 +132,6 @@ function _assertClass(instance, klass) {
132
132
  }
133
133
  }
134
134
 
135
- exports.set_panic_hook = function() {
136
- wasm.set_panic_hook();
137
- };
138
-
139
135
  function getArrayJsValueFromWasm0(ptr, len) {
140
136
  ptr = ptr >>> 0;
141
137
  const mem = getDataViewMemory0();
@@ -175,6 +171,10 @@ function passArray16ToWasm0(arg, malloc) {
175
171
  return ptr;
176
172
  }
177
173
 
174
+ exports.set_panic_hook = function() {
175
+ wasm.set_panic_hook();
176
+ };
177
+
178
178
  const AirSquadronFinalization = (typeof FinalizationRegistry === 'undefined')
179
179
  ? { register: () => {}, unregister: () => {} }
180
180
  : new FinalizationRegistry(ptr => wasm.__wbg_airsquadron_free(ptr >>> 0, 1));
Binary file
@@ -46,7 +46,6 @@ export const comp_transport_point: (a: number) => number;
46
46
  export const comp_get_ship_conditions: (a: number, b: number, c: number) => any;
47
47
  export const comp_fleet_los_mod: (a: number, b: any) => [number, number];
48
48
  export const comp_balloons: (a: number) => number;
49
- export const set_panic_hook: () => void;
50
49
  export const __wbg_fleet_free: (a: number, b: number) => void;
51
50
  export const __wbg_get_fleet_id: (a: number) => [number, number];
52
51
  export const __wbg_set_fleet_id: (a: number, b: number, c: number) => void;
@@ -187,6 +186,7 @@ export const fhcore_create_all_ships: (a: number) => any;
187
186
  export const fhcore_create_comp_by_map_enemy: (a: number, b: number, c: number, d: number, e: number) => number;
188
187
  export const fhcore_create_default_ship: (a: number) => number;
189
188
  export const fhcore_create_analyzer: (a: number) => number;
189
+ export const set_panic_hook: () => void;
190
190
  export const __wbg_ship_free: (a: number, b: number) => void;
191
191
  export const __wbg_get_ship_id: (a: number) => [number, number];
192
192
  export const __wbg_set_ship_id: (a: number, b: number, c: number) => void;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "fleethub-core",
3
- "version": "1.12.9",
3
+ "version": "1.12.10",
4
4
  "license": "UNLICENSED",
5
5
  "exports": {
6
6
  "import": "./pkg/fleethub_core.js",
@@ -31,191 +31,6 @@ export interface ActionReport<T> {
31
31
 
32
32
  export type SpeedGroup = "A" | "B1" | "B2" | "C";
33
33
 
34
- export type CompiledEvaler = string;
35
-
36
- export interface EquippabilityRule {
37
- ship: CompiledEvaler;
38
- keys?: string[];
39
- include?: string;
40
- exclude?: string;
41
- }
42
-
43
- export interface MasterEquippability {
44
- equip_stype: MstStype[];
45
- equip_exslot: number[];
46
- equip_ship: Record<number, MstEquipShip>;
47
- equip_exslot_ship: Record<number, MstEquipExslotShip>;
48
- rules: EquippabilityRule[];
49
- }
50
-
51
- export interface MstEquipExslotShip {
52
- api_ctypes: Record<number, number> | null;
53
- api_ship_ids: Record<number, number> | null;
54
- api_stypes: Record<number, number> | null;
55
- }
56
-
57
- export type MstEquipShip = Record<number, MstEquipShipValue>;
58
-
59
- export type MstEquipShipValue = null | number[];
60
-
61
- export interface MstStype {
62
- api_id: number;
63
- api_equip_type: Record<number, number>;
64
- }
65
-
66
- export type Histogram<K extends keyof any, V> = Partial<Record<K, V>>;
67
-
68
- export type FhResult<T> = { Ok: T } | { Err: string };
69
-
70
- export interface AttackReport<T> {
71
- style: T;
72
- proc_rate: number | null;
73
- attack_power: AttackPower | null;
74
- attack_power_params: AttackPowerParams | null;
75
- hits: number;
76
- hit_rate: HitRate | null;
77
- hit_rate_params: HitRateParams | null;
78
- damage: DamageReport | null;
79
- }
80
-
81
- export interface CompAntiAirAnalysis {
82
- fleet_adjusted_anti_air: number;
83
- ships: AntiAirReport[];
84
- anti_air_cutin_chance: [number, number][];
85
- }
86
-
87
- export interface AntiAirReport {
88
- ship_id: number;
89
- role: Role;
90
- index: number;
91
- adjusted_anti_air: number | null;
92
- proportional_shotdown_rate: number | null;
93
- fixed_shotdown_number: number | null;
94
- guaranteed: number | null;
95
- anti_air_cutin_chance: [number, number][];
96
- anti_air_propellant_barrage_chance: number | null;
97
- }
98
-
99
- export type AirWaveType = "Jet" | "LandBase" | "Carrier";
100
-
101
- export interface AttackPowerModifier {
102
- a?: number;
103
- b?: number;
104
- }
105
-
106
- export interface SpecialEnemyModifiers {
107
- precap_general_mod: AttackPowerModifier;
108
- stype_mod: AttackPowerModifier;
109
- landing_craft_synergy_mod: AttackPowerModifier;
110
- toku_daihatsu_tank_mod: AttackPowerModifier;
111
- m4a1dd_mod: AttackPowerModifier;
112
- honi_mod: AttackPowerModifier;
113
- toku_daihatsu_chiha_mod: AttackPowerModifier;
114
- toku_daihatsu_chiha_kai_mod: AttackPowerModifier;
115
- t4_tank_group_mod: AttackPowerModifier;
116
- t4_tank_kai_mod: AttackPowerModifier;
117
- postcap_general_mod: AttackPowerModifier;
118
- pt_mod: AttackPowerModifier | null;
119
- }
120
-
121
- export interface CustomPowerModifiers {
122
- precap_mod?: AttackPowerModifier;
123
- postcap_mod?: AttackPowerModifier;
124
- basic_power_mod?: AttackPowerModifier;
125
- historical_mod?: AttackPowerModifier;
126
- }
127
-
128
- export interface FormationCombatModifiersDef {
129
- power_mod?: number;
130
- accuracy_mod?: number;
131
- evasion_mod?: number;
132
- }
133
-
134
- export interface FormationDef {
135
- tag: Formation;
136
- protection_rate: number | null;
137
- fleet_anti_air_mod: number;
138
- shelling: FormationCombatModifiersDef;
139
- torpedo: FormationCombatModifiersDef;
140
- asw: FormationCombatModifiersDef;
141
- night: FormationCombatModifiersDef;
142
- support_shelling: FormationCombatModifiersDef;
143
- }
144
-
145
- export type NestedFormationDef =
146
- | FormationDef
147
- | { top_half: FormationDef; bottom_half: FormationDef };
148
-
149
- export interface AntiAirCutinDef {
150
- id: number;
151
- type_factor: number | null;
152
- multiplier: number | null;
153
- guaranteed: number | null;
154
- sequential: boolean | null;
155
- }
156
-
157
- export interface DayCutinDef {
158
- tag: DayCutin;
159
- hits: number;
160
- type_factor: number | null;
161
- power_mod: number | null;
162
- accuracy_mod: number | null;
163
- }
164
-
165
- export interface HistoricalBonusDef {
166
- map?: number;
167
- node?: CompiledEvaler;
168
- phase?: number;
169
- debuff?: boolean;
170
- ship?: CompiledEvaler;
171
- enemy?: CompiledEvaler;
172
- power_mod?: AttackPowerModifier;
173
- armor_penetration?: number;
174
- accuracy_mod?: number;
175
- evasion_mod?: number;
176
- }
177
-
178
- export interface HistoricalParams {
179
- power_mod: AttackPowerModifier;
180
- armor_penetration: number;
181
- accuracy_mod: number;
182
- target_evasion_mod: number;
183
- }
184
-
185
- export interface NightCutinDef {
186
- tag: NightCutin;
187
- hits: number;
188
- type_factor: number | null;
189
- power_mod: number | null;
190
- accuracy_mod: number | null;
191
- }
192
-
193
- export interface BattleDefinitions {
194
- formation: Record<Formation, NestedFormationDef>;
195
- anti_air_cutin: Record<number, AntiAirCutinDef>;
196
- day_cutin: Record<DayCutin, DayCutinDef>;
197
- night_cutin: Record<NightCutin, NightCutinDef>;
198
- historical_bonuses: HistoricalBonusDef[];
199
- }
200
-
201
- export type ContactRank = "Rank1" | "Rank2" | "Rank3";
202
-
203
- export interface GearState {
204
- id?: string;
205
- gear_id: number;
206
- exp?: number;
207
- stars?: number;
208
- }
209
-
210
- export interface GearVecState {
211
- g1?: GearState;
212
- g2?: GearState;
213
- g3?: GearState;
214
- g4?: GearState;
215
- g5?: GearState;
216
- gx?: GearState;
217
- }
218
-
219
34
  export interface MoveShipPayload {
220
35
  current: [string, string, ShipKey];
221
36
  target: [string | null, string, ShipKey];
@@ -626,41 +441,199 @@ export type ShipType =
626
441
  | "CT"
627
442
  | "AO";
628
443
 
629
- export type GearTypeIdArray = [number, number, number, number, number];
444
+ export type CompiledEvaler = string;
630
445
 
631
- export interface SupportShellingSimulatorParams {
632
- attacker_formation?: Formation;
633
- target_formation?: Formation;
634
- engagement: Engagement;
635
- node_state: NodeState;
446
+ export interface EquippabilityRule {
447
+ ship: CompiledEvaler;
448
+ keys?: string[];
449
+ include?: string;
450
+ exclude?: string;
636
451
  }
637
452
 
638
- export interface ShipAnalyzerConfig {
639
- air_state?: AirState;
640
- engagement?: Engagement;
641
- left?: AttackAnalyzerShipConfig;
642
- right?: AttackAnalyzerShipConfig;
453
+ export interface MasterEquippability {
454
+ equip_stype: MstStype[];
455
+ equip_exslot: number[];
456
+ equip_ship: Record<number, MstEquipShip>;
457
+ equip_exslot_ship: Record<number, MstEquipExslotShip>;
458
+ rules: EquippabilityRule[];
643
459
  }
644
460
 
645
- export type Engagement = "GreenT" | "Parallel" | "HeadOn" | "RedT";
461
+ export interface MstEquipExslotShip {
462
+ api_ctypes: Record<number, number> | null;
463
+ api_ship_ids: Record<number, number> | null;
464
+ api_stypes: Record<number, number> | null;
465
+ }
646
466
 
647
- export type SingleFormation =
648
- | "LineAhead"
649
- | "DoubleLine"
650
- | "Diamond"
651
- | "Echelon"
652
- | "LineAbreast"
653
- | "Vanguard";
467
+ export interface MstEquipShip {
468
+ api_equip_type: Record<number, MstEquipShipValue>;
469
+ }
654
470
 
655
- export type CombinedFormation =
656
- | "Cruising1"
657
- | "Cruising2"
658
- | "Cruising3"
659
- | "Cruising4";
471
+ export type MstEquipShipValue = null | number[];
660
472
 
661
- export type Formation = SingleFormation | CombinedFormation;
473
+ export interface MstStype {
474
+ api_id: number;
475
+ api_equip_type: Record<number, number>;
476
+ }
662
477
 
663
- export type Role = "Main" | "Escort";
478
+ export type FhResult<T> = { Ok: T } | { Err: string };
479
+
480
+ export interface AttackReport<T> {
481
+ style: T;
482
+ proc_rate: number | null;
483
+ attack_power: AttackPower | null;
484
+ attack_power_params: AttackPowerParams | null;
485
+ hits: number;
486
+ hit_rate: HitRate | null;
487
+ hit_rate_params: HitRateParams | null;
488
+ damage: DamageReport | null;
489
+ }
490
+
491
+ export interface CompAntiAirAnalysis {
492
+ fleet_adjusted_anti_air: number;
493
+ ships: AntiAirReport[];
494
+ anti_air_cutin_chance: [number, number][];
495
+ }
496
+
497
+ export interface AntiAirReport {
498
+ ship_id: number;
499
+ role: Role;
500
+ index: number;
501
+ adjusted_anti_air: number | null;
502
+ proportional_shotdown_rate: number | null;
503
+ fixed_shotdown_number: number | null;
504
+ guaranteed: number | null;
505
+ anti_air_cutin_chance: [number, number][];
506
+ anti_air_propellant_barrage_chance: number | null;
507
+ }
508
+
509
+ export type AirWaveType = "Jet" | "LandBase" | "Carrier";
510
+
511
+ export interface AttackPowerModifier {
512
+ a?: number;
513
+ b?: number;
514
+ }
515
+
516
+ export interface SpecialEnemyModifiers {
517
+ precap_general_mod: AttackPowerModifier;
518
+ stype_mod: AttackPowerModifier;
519
+ landing_craft_synergy_mod: AttackPowerModifier;
520
+ toku_daihatsu_tank_mod: AttackPowerModifier;
521
+ m4a1dd_mod: AttackPowerModifier;
522
+ honi_mod: AttackPowerModifier;
523
+ toku_daihatsu_chiha_mod: AttackPowerModifier;
524
+ toku_daihatsu_chiha_kai_mod: AttackPowerModifier;
525
+ t4_tank_group_mod: AttackPowerModifier;
526
+ t4_tank_kai_mod: AttackPowerModifier;
527
+ postcap_general_mod: AttackPowerModifier;
528
+ pt_mod: AttackPowerModifier | null;
529
+ }
530
+
531
+ export interface CustomPowerModifiers {
532
+ precap_mod?: AttackPowerModifier;
533
+ postcap_mod?: AttackPowerModifier;
534
+ basic_power_mod?: AttackPowerModifier;
535
+ historical_mod?: AttackPowerModifier;
536
+ }
537
+
538
+ export interface FormationCombatModifiersDef {
539
+ power_mod?: number;
540
+ accuracy_mod?: number;
541
+ evasion_mod?: number;
542
+ }
543
+
544
+ export interface FormationDef {
545
+ tag: Formation;
546
+ protection_rate: number | null;
547
+ fleet_anti_air_mod: number;
548
+ shelling: FormationCombatModifiersDef;
549
+ torpedo: FormationCombatModifiersDef;
550
+ asw: FormationCombatModifiersDef;
551
+ night: FormationCombatModifiersDef;
552
+ support_shelling: FormationCombatModifiersDef;
553
+ }
554
+
555
+ export type NestedFormationDef =
556
+ | FormationDef
557
+ | { top_half: FormationDef; bottom_half: FormationDef };
558
+
559
+ export interface AntiAirCutinDef {
560
+ id: number;
561
+ type_factor: number | null;
562
+ multiplier: number | null;
563
+ guaranteed: number | null;
564
+ sequential: boolean | null;
565
+ }
566
+
567
+ export interface DayCutinDef {
568
+ tag: DayCutin;
569
+ hits: number;
570
+ type_factor: number | null;
571
+ power_mod: number | null;
572
+ accuracy_mod: number | null;
573
+ }
574
+
575
+ export interface HistoricalBonusDef {
576
+ map?: number;
577
+ node?: CompiledEvaler;
578
+ phase?: number;
579
+ debuff?: boolean;
580
+ ship?: CompiledEvaler;
581
+ enemy?: CompiledEvaler;
582
+ power_mod?: AttackPowerModifier;
583
+ armor_penetration?: number;
584
+ accuracy_mod?: number;
585
+ evasion_mod?: number;
586
+ }
587
+
588
+ export interface HistoricalParams {
589
+ power_mod: AttackPowerModifier;
590
+ armor_penetration: number;
591
+ accuracy_mod: number;
592
+ target_evasion_mod: number;
593
+ }
594
+
595
+ export interface NightCutinDef {
596
+ tag: NightCutin;
597
+ hits: number;
598
+ type_factor: number | null;
599
+ power_mod: number | null;
600
+ accuracy_mod: number | null;
601
+ }
602
+
603
+ export interface BattleDefinitions {
604
+ formation: Record<Formation, NestedFormationDef>;
605
+ anti_air_cutin: Record<number, AntiAirCutinDef>;
606
+ day_cutin: Record<DayCutin, DayCutinDef>;
607
+ night_cutin: Record<NightCutin, NightCutinDef>;
608
+ historical_bonuses: HistoricalBonusDef[];
609
+ }
610
+
611
+ export type ContactRank = "Rank1" | "Rank2" | "Rank3";
612
+
613
+ export interface GearState {
614
+ id?: string;
615
+ gear_id: number;
616
+ exp?: number;
617
+ stars?: number;
618
+ }
619
+
620
+ export interface GearVecState {
621
+ g1?: GearState;
622
+ g2?: GearState;
623
+ g3?: GearState;
624
+ g4?: GearState;
625
+ g5?: GearState;
626
+ gx?: GearState;
627
+ }
628
+
629
+ export type Histogram<K extends keyof any, V> = Partial<Record<K, V>>;
630
+
631
+ export interface ShipAnalyzerConfig {
632
+ air_state?: AirState;
633
+ engagement?: Engagement;
634
+ left?: AttackAnalyzerShipConfig;
635
+ right?: AttackAnalyzerShipConfig;
636
+ }
664
637
 
665
638
  export interface CompAnalyzerConfig {
666
639
  engagement: Engagement;
@@ -689,6 +662,35 @@ export interface CompAnalysis {
689
662
  anti_air: CompAntiAirAnalysis;
690
663
  }
691
664
 
665
+ export type GearTypeIdArray = [number, number, number, number, number];
666
+
667
+ export interface SupportShellingSimulatorParams {
668
+ attacker_formation?: Formation;
669
+ target_formation?: Formation;
670
+ engagement: Engagement;
671
+ node_state: NodeState;
672
+ }
673
+
674
+ export type Engagement = "GreenT" | "Parallel" | "HeadOn" | "RedT";
675
+
676
+ export type SingleFormation =
677
+ | "LineAhead"
678
+ | "DoubleLine"
679
+ | "Diamond"
680
+ | "Echelon"
681
+ | "LineAbreast"
682
+ | "Vanguard";
683
+
684
+ export type CombinedFormation =
685
+ | "Cruising1"
686
+ | "Cruising2"
687
+ | "Cruising3"
688
+ | "Cruising4";
689
+
690
+ export type Formation = SingleFormation | CombinedFormation;
691
+
692
+ export type Role = "Main" | "Escort";
693
+
692
694
  export interface MasterGear {
693
695
  gear_id: number;
694
696
  name: string;
@@ -141,10 +141,6 @@ function _assertClass(instance, klass) {
141
141
  }
142
142
  }
143
143
 
144
- export function set_panic_hook() {
145
- wasm.set_panic_hook();
146
- }
147
-
148
144
  function getArrayJsValueFromWasm0(ptr, len) {
149
145
  ptr = ptr >>> 0;
150
146
  const mem = getDataViewMemory0();
@@ -184,6 +180,10 @@ function passArray16ToWasm0(arg, malloc) {
184
180
  return ptr;
185
181
  }
186
182
 
183
+ export function set_panic_hook() {
184
+ wasm.set_panic_hook();
185
+ }
186
+
187
187
  const AirSquadronFinalization = (typeof FinalizationRegistry === 'undefined')
188
188
  ? { register: () => {}, unregister: () => {} }
189
189
  : new FinalizationRegistry(ptr => wasm.__wbg_airsquadron_free(ptr >>> 0, 1));
Binary file
@@ -46,7 +46,6 @@ export const comp_transport_point: (a: number) => number;
46
46
  export const comp_get_ship_conditions: (a: number, b: number, c: number) => any;
47
47
  export const comp_fleet_los_mod: (a: number, b: any) => [number, number];
48
48
  export const comp_balloons: (a: number) => number;
49
- export const set_panic_hook: () => void;
50
49
  export const __wbg_fleet_free: (a: number, b: number) => void;
51
50
  export const __wbg_get_fleet_id: (a: number) => [number, number];
52
51
  export const __wbg_set_fleet_id: (a: number, b: number, c: number) => void;
@@ -187,6 +186,7 @@ export const fhcore_create_all_ships: (a: number) => any;
187
186
  export const fhcore_create_comp_by_map_enemy: (a: number, b: number, c: number, d: number, e: number) => number;
188
187
  export const fhcore_create_default_ship: (a: number) => number;
189
188
  export const fhcore_create_analyzer: (a: number) => number;
189
+ export const set_panic_hook: () => void;
190
190
  export const __wbg_ship_free: (a: number, b: number) => void;
191
191
  export const __wbg_get_ship_id: (a: number) => [number, number];
192
192
  export const __wbg_set_ship_id: (a: number, b: number, c: number) => void;