fleethub-core 1.11.7 → 1.11.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.
@@ -1,93 +1,250 @@
1
1
  /* tslint:disable */
2
2
  /* eslint-disable */
3
- /**
4
- */
5
- export function set_panic_hook(): void;
6
3
  /**
7
4
  * @param {ShipConditions} value
8
5
  * @returns {ShipConditions}
9
6
  */
10
7
  export function parse_ship_conditions(value: ShipConditions): ShipConditions;
11
- export interface AttackPower {
12
- precap: number;
13
- is_capped: boolean;
14
- capped: number;
15
- normal: number;
16
- critical: number;
17
- armor_penetration: number;
18
- remaining_ammo_mod: number;
8
+ /**
9
+ */
10
+ export function set_panic_hook(): void;
11
+ export type GearTypeIdArray = [number, number, number, number, number];
12
+
13
+ export type GearVecInput = GearInput[];
14
+
15
+ export interface GearInput {
16
+ gear_id: number;
17
+ types: GearTypeIdArray;
18
+ firepower: number;
19
+ torpedo: number;
20
+ anti_air: number;
21
+ armor: number;
22
+ evasion: number;
23
+ asw: number;
24
+ los: number;
25
+ bombing: number;
26
+ accuracy: number;
27
+ range: number;
28
+ radius: number;
29
+ stars: number;
30
+ ace: number;
19
31
  }
20
32
 
21
- export interface AttackPowerParams {
22
- basic: number;
23
- cap: number;
24
- precap_mod: AttackPowerModifier;
25
- postcap_mod: AttackPowerModifier;
26
- ap_shell_mod: number | null;
27
- aerial_power: number | null;
28
- proficiency_critical_mod: number;
29
- armor_penetration: number;
30
- remaining_ammo_mod: number;
31
- special_enemy_mods: SpecialEnemyModifiers;
32
- historical_mod: AttackPowerModifier;
33
- custom_mods: CustomPowerModifiers;
33
+ export interface ShipInput {
34
+ ship_id: number;
35
+ ctype: number;
36
+ stype: number;
37
+ yomi: string;
34
38
  }
35
39
 
36
- export interface NightContactChance {
37
- rank1: number;
38
- rank2: number;
39
- rank3: number;
40
+ export interface EBonuses {
41
+ firepower: number;
42
+ torpedo: number;
43
+ anti_air: number;
44
+ armor: number;
45
+ evasion: number;
46
+ asw: number;
47
+ los: number;
48
+ bombing: number;
49
+ accuracy: number;
50
+ range: number;
40
51
  }
41
52
 
42
- export interface CompNightCutinAnalysis {
43
- night_contact_chance: NightContactChance;
44
- ships: ShipNightCutinAnalysis[];
53
+ export interface NodeAttackAnalyzerShipConfig extends NightFleetConditions {
54
+ formation?: Formation;
45
55
  }
46
56
 
47
- export interface ShipNightCutinAnalysis {
57
+ export interface NodeAttackAnalyzerConfig {
58
+ air_state?: AirState;
59
+ engagement?: Engagement;
60
+ node_state?: NodeState;
61
+ left?: NodeAttackAnalyzerShipConfig;
62
+ right?: NodeAttackAnalyzerShipConfig;
63
+ }
64
+
65
+ export interface NodeAttackAnalysis {
66
+ left: AttackAnalysis;
67
+ right: AttackAnalysis;
68
+ shelling_fleet_cutin: FleetCutinReport<ShellingStyle>[];
69
+ night_fleet_cutin: FleetCutinReport<NightAttackStyle>[];
70
+ }
71
+
72
+ export interface DamageReport {
73
+ miss_damage_min: number;
74
+ miss_damage_max: number;
75
+ normal_damage_min: number;
76
+ normal_damage_max: number;
77
+ critical_damage_min: number;
78
+ critical_damage_max: number;
79
+ normal_scratch_rate: number;
80
+ critical_scratch_rate: number;
81
+ damage_density: Histogram<number, number>;
82
+ damage_state_density: Histogram<DamageState, number>;
83
+ }
84
+
85
+ export interface CompAntiAirAnalysis {
86
+ fleet_adjusted_anti_air: number;
87
+ ships: AntiAirReport[];
88
+ anti_air_cutin_chance: [number, number][];
89
+ }
90
+
91
+ export interface AntiAirReport {
48
92
  ship_id: number;
93
+ role: Role;
49
94
  index: number;
50
- normal: NightCutinActionReport;
51
- chuuha: NightCutinActionReport;
95
+ adjusted_anti_air: number | null;
96
+ proportional_shotdown_rate: number | null;
97
+ fixed_shotdown_number: number | null;
98
+ guaranteed: number | null;
99
+ anti_air_cutin_chance: [number, number][];
100
+ anti_air_propellant_barrage_chance: number | null;
52
101
  }
53
102
 
54
- export interface NightCutinActionReport
55
- extends ActionReport<NightPhaseAttackStyle> {
56
- cutin_term: number | null;
103
+ export interface ActionReport<T> {
104
+ data: Record<string, AttackReport<T>>;
105
+ damage_state_density: Histogram<DamageState, number> | null;
106
+ is_active: boolean;
57
107
  }
58
108
 
59
- export type FleetType = "Main" | "Escort" | "RouteSup" | "BossSup";
109
+ export type AswAttackType = "DepthCharge" | "Aerial";
60
110
 
61
- export type GearAttr =
62
- | "Unknown"
63
- | "HighAngleMount"
64
- | "NightFighter"
65
- | "NightAttacker"
66
- | "HeavyBomber"
67
- | "NightRecon"
68
- | "MainGun"
69
- | "Radar"
70
- | "SurfaceRadar"
71
- | "AirRadar"
72
- | "DepthChargeProjector"
73
- | "SynergisticDepthCharge"
74
- | "AntiSubMortar"
75
- | "AntiSubWeapon"
76
- | "ApDepthCharge"
77
- | "AntiSubAircraft"
78
- | "LateModelBowTorpedo"
79
- | "Seaplane"
80
- | "CbAircraft"
81
- | "LbAircraft"
82
- | "JetAircraft"
83
- | "Fighter"
84
- | "Recon"
85
- | "ObservationSeaplane"
86
- | "CbFighterBomber"
87
- | "AntiInstDiveBomber"
88
- | "CbSwordfish"
89
- | "SemiNightPlane"
90
- | "HighAltitudeInterceptor";
111
+ export type ShellingType = "Normal" | "Aerial";
112
+
113
+ export type NightAttackType = "Normal" | "Swordfish" | "Aerial";
114
+
115
+ export type SupportShellingType = ShellingType;
116
+
117
+ export type AttackType =
118
+ | { t: "Asw"; c: AswAttackType }
119
+ | { t: "Shelling"; c: ShellingType }
120
+ | { t: "Night"; c: NightAttackType }
121
+ | { t: "Torpedo" }
122
+ | { t: "SupportShelling"; c: SupportShellingType };
123
+
124
+ export type DayPhaseAttackType =
125
+ | { t: "Shelling"; c: ShellingType }
126
+ | { t: "Asw"; c: AswAttackType };
127
+
128
+ export type NightPhaseAttackType =
129
+ | { t: "Night"; c: NightAttackType }
130
+ | { t: "Asw"; c: AswAttackType };
131
+
132
+ export type TorpedoAttackType = null;
133
+
134
+ export interface ShipMeta {
135
+ id: string;
136
+ ship_id: number;
137
+ }
138
+
139
+ export interface FleetMeta {
140
+ id: string;
141
+ len: number;
142
+ ships: [string, ShipMeta | null][];
143
+ }
144
+
145
+ export interface CompMeta {
146
+ fleets: Record<FleetType, FleetMeta>;
147
+ }
148
+
149
+ export type Role = "Main" | "Escort";
150
+
151
+ export interface MoveShipPayload {
152
+ current: [string, string, ShipKey];
153
+ target: [string | null, string, ShipKey];
154
+ }
155
+
156
+ export interface SlotSizeVecState {
157
+ ss1?: number;
158
+ ss2?: number;
159
+ ss3?: number;
160
+ ss4?: number;
161
+ ss5?: number;
162
+ }
163
+
164
+ export interface ShipState extends GearVecState, SlotSizeVecState {
165
+ id?: string;
166
+ ship_id: number;
167
+ level?: number;
168
+ current_hp?: number;
169
+ morale?: number;
170
+ ammo?: number;
171
+ fuel?: number;
172
+ max_hp_mod?: number;
173
+ firepower_mod?: number;
174
+ torpedo_mod?: number;
175
+ armor_mod?: number;
176
+ anti_air_mod?: number;
177
+ evasion_mod?: number;
178
+ asw_mod?: number;
179
+ los_mod?: number;
180
+ luck_mod?: number;
181
+ day_gunfit_accuracy?: number;
182
+ night_gunfit_accuracy?: number;
183
+ custom_power_mods?: CustomPowerModifiers;
184
+ }
185
+
186
+ export type ShipKey = "s1" | "s2" | "s3" | "s4" | "s5" | "s6" | "s7";
187
+
188
+ export type DayCutin =
189
+ | "Zuiun"
190
+ | "AirSea"
191
+ | "MainMain"
192
+ | "MainAp"
193
+ | "MainRadar"
194
+ | "MainSec"
195
+ | "DoubleAttack"
196
+ | "FBA"
197
+ | "BBA"
198
+ | "BA";
199
+
200
+ export type NightCutin =
201
+ | "MainTorpRadar"
202
+ | "TorpLookoutRadar"
203
+ | "TorpTsloTorp"
204
+ | "TorpTsloDrum"
205
+ | "NightZuiun2Radar"
206
+ | "NightZuiun2"
207
+ | "NightZuiunRadar"
208
+ | "NightZuiun"
209
+ | "DoubleAttack"
210
+ | "TorpTorpMain"
211
+ | "TorpTorpTorp"
212
+ | "MainMainSec"
213
+ | "MainMainMain"
214
+ | "SubTorpTorp"
215
+ | "SubRadarTorp"
216
+ | "Cvci1_25"
217
+ | "Cvci1_20"
218
+ | "Cvci1_18"
219
+ | "Photobomber";
220
+
221
+ export type FleetCutin =
222
+ | "NelsonTouch"
223
+ | "NagatoClassCutin"
224
+ | "ColoradoClassCutin"
225
+ | "KongouClassCutin"
226
+ | "Yamato2ShipCutin"
227
+ | "Yamato3ShipCutin";
228
+
229
+ export type DayCutinLike = DayCutin | FleetCutin;
230
+
231
+ export type NightCutinLike = NightCutin | FleetCutin;
232
+
233
+ export type SingleFormation =
234
+ | "LineAhead"
235
+ | "DoubleLine"
236
+ | "Diamond"
237
+ | "Echelon"
238
+ | "LineAbreast"
239
+ | "Vanguard";
240
+
241
+ export type CombinedFormation =
242
+ | "Cruising1"
243
+ | "Cruising2"
244
+ | "Cruising3"
245
+ | "Cruising4";
246
+
247
+ export type Formation = SingleFormation | CombinedFormation;
91
248
 
92
249
  export type GearType =
93
250
  | "Unknown"
@@ -165,23 +322,7 @@ export type GearCategory =
165
322
  | "LandBased"
166
323
  | "Misc";
167
324
 
168
- export interface OrgState {
169
- id?: string;
170
- f1?: FleetState;
171
- f2?: FleetState;
172
- f3?: FleetState;
173
- f4?: FleetState;
174
- a1?: AirSquadronState;
175
- a2?: AirSquadronState;
176
- a3?: AirSquadronState;
177
- hq_level?: number;
178
- org_type?: OrgType;
179
- sortie?: FleetKey;
180
- route_sup?: FleetKey;
181
- boss_sup?: FleetKey;
182
- }
183
-
184
- export type FleetKey = "f1" | "f2" | "f3" | "f4";
325
+ export type SpeedGroup = "A" | "B1" | "B2" | "C";
185
326
 
186
327
  export interface SupportShellingSimulatorParams {
187
328
  attacker_formation?: Formation;
@@ -189,70 +330,6 @@ export interface SupportShellingSimulatorParams {
189
330
  engagement: Engagement;
190
331
  }
191
332
 
192
- export interface EquippabilityRule {
193
- ship: CompiledEvaler;
194
- keys?: string[];
195
- include?: string;
196
- exclude?: string;
197
- }
198
-
199
- export interface MasterEquippability {
200
- equip_stype: EquipStype[];
201
- equip_exslot: number[];
202
- equip_ship: MstEquipShip[];
203
- equip_exslot_ship: Record<number, MstEquipExslotShip>;
204
- rules: EquippabilityRule[];
205
- }
206
-
207
- export interface MstEquipExslotShip {
208
- api_ctypes: Record<number, number> | null;
209
- api_ship_ids: Record<number, number> | null;
210
- api_stypes: Record<number, number> | null;
211
- }
212
-
213
- export interface MstEquipShip {
214
- api_ship_id: number;
215
- api_equip_type: number[];
216
- }
217
-
218
- export interface EquipStype {
219
- id: number;
220
- equip_type: number[];
221
- }
222
-
223
- export interface CompAnalyzerConfig {
224
- engagement: Engagement;
225
- formation: Formation;
226
- anti_air_cutin: number | null;
227
- ship_anti_air_resist: number;
228
- fleet_anti_air_resist: number;
229
- left_night_fleet_conditions: NightFleetConditions;
230
- right_night_fleet_conditions: NightFleetConditions;
231
- }
232
-
233
- export interface CompNightAnalysis {
234
- night_cutin: CompNightCutinAnalysis;
235
- fleet_cutin: FleetCutinReport<NightAttackStyle>[];
236
- }
237
-
238
- export interface CompDayAnalysis {
239
- day_cutin: CompDayCutinAnalysis;
240
- fleet_cutin: FleetCutinReport<ShellingStyle>[];
241
- }
242
-
243
- export interface CompAnalysis {
244
- day: CompDayAnalysis;
245
- night: CompNightAnalysis;
246
- contact: ContactAnalysis;
247
- anti_air: CompAntiAirAnalysis;
248
- }
249
-
250
- export interface AttackAnalyzerShipConfig
251
- extends ShipConditions,
252
- NightFleetConditions {
253
- fleet_los_mod?: number | null;
254
- }
255
-
256
333
  export interface MasterShip {
257
334
  ship_id: number;
258
335
  name: string;
@@ -287,93 +364,6 @@ export interface MasterShip {
287
364
 
288
365
  export type StatInterval = [number | null, number | null];
289
366
 
290
- export interface ShellingStyle {
291
- tag: "ShellingStyle";
292
- attack_type: ShellingType;
293
- cutin: DayCutinLike | null;
294
- power_mod: number;
295
- accuracy_mod: number;
296
- hits: number;
297
- }
298
-
299
- export interface NightAttackStyle {
300
- tag: "NightAttackStyle";
301
- attack_type: NightAttackType;
302
- cutin: NightCutinLike | null;
303
- power_mod: number;
304
- accuracy_mod: number;
305
- hits: number;
306
- }
307
-
308
- export interface AswAttackStyle {
309
- tag: "AswAttackStyle";
310
- attack_type: AswAttackType;
311
- }
312
-
313
- export interface TorpedoAttackStyle {
314
- tag: "TorpedoAttackStyle";
315
- attack_type: TorpedoAttackType;
316
- }
317
-
318
- export type DayPhaseAttackStyle = ShellingStyle | AswAttackStyle;
319
-
320
- export type NightPhaseAttackStyle = NightAttackStyle | AswAttackStyle;
321
-
322
- export interface SupportShellingStyle {
323
- tag: "SupportShellingStyle";
324
- attack_type: SupportShellingType;
325
- }
326
-
327
- export type OrgType =
328
- | "Single"
329
- | "CarrierTaskForce"
330
- | "SurfaceTaskForce"
331
- | "TransportEscort"
332
- | "EnemySingle"
333
- | "EnemyCombined";
334
-
335
- export type GearVecInput = GearInput[];
336
-
337
- export interface GearInput {
338
- gear_id: number;
339
- types: GearTypeIdArray;
340
- firepower: number;
341
- torpedo: number;
342
- anti_air: number;
343
- armor: number;
344
- evasion: number;
345
- asw: number;
346
- los: number;
347
- bombing: number;
348
- accuracy: number;
349
- range: number;
350
- radius: number;
351
- stars: number;
352
- ace: number;
353
- }
354
-
355
- export interface ShipInput {
356
- ship_id: number;
357
- ctype: number;
358
- stype: number;
359
- yomi: string;
360
- }
361
-
362
- export interface EBonuses {
363
- firepower: number;
364
- torpedo: number;
365
- anti_air: number;
366
- armor: number;
367
- evasion: number;
368
- asw: number;
369
- los: number;
370
- bombing: number;
371
- accuracy: number;
372
- range: number;
373
- }
374
-
375
- export type FhResult<T> = { Ok: T } | { Err: string };
376
-
377
367
  export interface MasterGear {
378
368
  gear_id: number;
379
369
  name: string;
@@ -400,45 +390,85 @@ export interface MasterGear {
400
390
  historical_aircraft_group?: number;
401
391
  }
402
392
 
403
- export interface NodeAttackAnalyzerShipConfig extends NightFleetConditions {
404
- formation?: Formation;
393
+ export interface HitRate {
394
+ normal: number;
395
+ critical: number;
396
+ total: number;
405
397
  }
406
398
 
407
- export interface NodeAttackAnalyzerConfig {
408
- air_state?: AirState;
409
- engagement?: Engagement;
410
- node_state?: NodeState;
411
- left?: NodeAttackAnalyzerShipConfig;
412
- right?: NodeAttackAnalyzerShipConfig;
399
+ export interface HitRateParams {
400
+ accuracy_term: number;
401
+ evasion_term: number;
402
+ target_morale_mod: number;
403
+ critical_rate_constant: number;
404
+ critical_percentage_bonus: number;
405
+ hit_percentage_bonus: number;
406
+ }
407
+
408
+ export interface ContactAnalysis {
409
+ single: DayContactChance[] | null;
410
+ combined: DayContactChance[] | null;
411
+ }
412
+
413
+ export interface DayContactChance {
414
+ air_state: AirState;
415
+ trigger_rate: number;
416
+ rank3: number;
417
+ rank2: number;
418
+ rank1: number;
419
+ total: number;
420
+ }
421
+
422
+ export interface AttackAnalysis {
423
+ attacker_is_player: boolean;
424
+ attacker_ship_id: number;
425
+ target_ship_id: number;
426
+ historical_params: HistoricalParams;
427
+ day: ActionReport<DayPhaseAttackStyle>;
428
+ night: ActionReport<NightPhaseAttackStyle>;
429
+ closing_torpedo: ActionReport<TorpedoAttackStyle>;
430
+ opening_asw: ActionReport<AswAttackStyle>;
431
+ support_shelling: ActionReport<SupportShellingStyle>;
432
+ }
433
+
434
+ export interface GearState {
435
+ id?: string;
436
+ gear_id: number;
437
+ exp?: number;
438
+ stars?: number;
413
439
  }
414
440
 
415
- export interface NodeAttackAnalysis {
416
- left: AttackAnalysis;
417
- right: AttackAnalysis;
418
- shelling_fleet_cutin: FleetCutinReport<ShellingStyle>[];
419
- night_fleet_cutin: FleetCutinReport<NightAttackStyle>[];
441
+ export interface GearVecState {
442
+ g1?: GearState;
443
+ g2?: GearState;
444
+ g3?: GearState;
445
+ g4?: GearState;
446
+ g5?: GearState;
447
+ gx?: GearState;
420
448
  }
421
449
 
422
- export interface CompDayCutinAnalysis {
423
- rank3_air_state: AirState;
424
- rank2_air_state: AirState;
425
- main_fleet_los_mod: number | null;
426
- escort_fleet_los_mod: number | null;
427
- ships: ShipDayCutinAnalysis[];
428
- }
450
+ export type NodeId = string;
429
451
 
430
- export interface ShipDayCutinAnalysis {
431
- ship_id: number;
432
- role: Role;
433
- index: number;
434
- rank3: DayCutinReport;
435
- rank2: DayCutinReport;
452
+ export interface NodeState {
453
+ map?: number;
454
+ node?: NodeId;
455
+ phase?: number;
456
+ debuff?: boolean;
457
+ disable_historical_mod?: boolean;
436
458
  }
437
459
 
438
- export interface DayCutinReport extends ActionReport<DayPhaseAttackStyle> {
439
- observation_term: number | null;
460
+ export type FhResult<T> = { Ok: T } | { Err: string };
461
+
462
+ export interface MasterBattleDefinitions {
463
+ formation: NestedFormationDef[];
464
+ anti_air_cutin: AntiAirCutinDef[];
465
+ day_cutin: DayCutinDef[];
466
+ night_cutin: NightCutinDef[];
467
+ historical_bonuses?: HistoricalBonusDef[];
440
468
  }
441
469
 
470
+ export type AirWaveType = "Jet" | "LandBase" | "Carrier";
471
+
442
472
  export interface BattleConditions {
443
473
  org_type: OrgType;
444
474
  role: Role;
@@ -461,97 +491,6 @@ export interface NightFleetConditions {
461
491
  activates_large_searchlight?: boolean;
462
492
  }
463
493
 
464
- export type DayCutin =
465
- | "Zuiun"
466
- | "AirSea"
467
- | "MainMain"
468
- | "MainAp"
469
- | "MainRadar"
470
- | "MainSec"
471
- | "DoubleAttack"
472
- | "FBA"
473
- | "BBA"
474
- | "BA";
475
-
476
- export type NightCutin =
477
- | "MainTorpRadar"
478
- | "TorpLookoutRadar"
479
- | "TorpTsloTorp"
480
- | "TorpTsloDrum"
481
- | "NightZuiun2Radar"
482
- | "NightZuiun2"
483
- | "NightZuiunRadar"
484
- | "NightZuiun"
485
- | "DoubleAttack"
486
- | "TorpTorpMain"
487
- | "TorpTorpTorp"
488
- | "MainMainSec"
489
- | "MainMainMain"
490
- | "SubTorpTorp"
491
- | "SubRadarTorp"
492
- | "Cvci1_25"
493
- | "Cvci1_20"
494
- | "Cvci1_18"
495
- | "Photobomber";
496
-
497
- export type FleetCutin =
498
- | "NelsonTouch"
499
- | "NagatoClassCutin"
500
- | "ColoradoClassCutin"
501
- | "KongouClassCutin"
502
- | "Yamato2ShipCutin"
503
- | "Yamato3ShipCutin";
504
-
505
- export type DayCutinLike = DayCutin | FleetCutin;
506
-
507
- export type NightCutinLike = NightCutin | FleetCutin;
508
-
509
- export type SingleFormation =
510
- | "LineAhead"
511
- | "DoubleLine"
512
- | "Diamond"
513
- | "Echelon"
514
- | "LineAbreast"
515
- | "Vanguard";
516
-
517
- export type CombinedFormation =
518
- | "Cruising1"
519
- | "Cruising2"
520
- | "Cruising3"
521
- | "Cruising4";
522
-
523
- export type Formation = SingleFormation | CombinedFormation;
524
-
525
- export type SpecialEnemyType =
526
- | "None"
527
- | "SoftSkinned"
528
- | "Pillbox"
529
- | "IsolatedIsland"
530
- | "SupplyDepot"
531
- | "NewSupplyDepot"
532
- | "HarbourSummerPrincess"
533
- | "PtImp"
534
- | "BattleshipSummerPrincess"
535
- | "HeavyCruiserSummerPrincess"
536
- | "FrenchBattleshipPrincess"
537
- | "AnchorageWaterDemonVacationMode"
538
- | "DockPrincess";
539
-
540
- export type SpeedGroup = "A" | "B1" | "B2" | "C";
541
-
542
- export interface FleetCutinReport<T> {
543
- cutin: FleetCutin;
544
- rate: number | null;
545
- formation: Formation;
546
- attacks: FleetCutinAttackReport<T>[];
547
- }
548
-
549
- export interface FleetCutinAttackReport<T> extends AttackReport<T> {
550
- index: number;
551
- ship_id: number;
552
- power_mod: number;
553
- }
554
-
555
494
  export interface FormationCombatModifiersDef {
556
495
  power_mod?: number;
557
496
  accuracy_mod?: number;
@@ -625,176 +564,150 @@ export interface BattleDefinitions {
625
564
  historical_bonuses: HistoricalBonusDef[];
626
565
  }
627
566
 
628
- export interface FleetState {
629
- id?: string;
630
- len?: number;
631
- s1?: ShipState;
632
- s2?: ShipState;
633
- s3?: ShipState;
634
- s4?: ShipState;
635
- s5?: ShipState;
636
- s6?: ShipState;
637
- s7?: ShipState;
638
- }
639
-
640
- export interface ShipMeta {
641
- id: string;
642
- ship_id: number;
643
- }
644
-
645
- export interface FleetMeta {
646
- id: string;
647
- len: number;
648
- ships: [string, ShipMeta | null][];
649
- }
650
-
651
- export interface CompMeta {
652
- fleets: Record<FleetType, FleetMeta>;
653
- }
654
-
655
- export type NodeId = string;
656
-
657
- export interface NodeState {
658
- map?: number;
659
- node?: NodeId;
660
- phase?: number;
661
- debuff?: boolean;
662
- disable_historical_mod?: boolean;
663
- }
664
-
665
- export interface SlotSizeVecState {
666
- ss1?: number;
667
- ss2?: number;
668
- ss3?: number;
669
- ss4?: number;
670
- ss5?: number;
671
- }
567
+ export type ShipAttr =
568
+ | "Unknown"
569
+ | "NightCarrier"
570
+ | "Installation"
571
+ | "RoyalNavy"
572
+ | "Kai2"
573
+ | "TurbineSpeedBonus"
574
+ | "NewModelBoilerSpeedBonus"
575
+ | "Pillbox"
576
+ | "IsolatedIsland"
577
+ | "HarbourSummerPrincess"
578
+ | "SupplyDepot"
579
+ | "NewSupplyDepot"
580
+ | "PtImp"
581
+ | "BattleshipSummerPrincess"
582
+ | "HeavyCruiserSummerPrincess"
583
+ | "AnchorageWaterDemonVacationMode"
584
+ | "FrenchBattleshipPrincess"
585
+ | "DockPrincess";
672
586
 
673
- export interface ShipState extends GearVecState, SlotSizeVecState {
674
- id?: string;
675
- ship_id: number;
676
- level?: number;
677
- current_hp?: number;
678
- morale?: number;
679
- ammo?: number;
680
- fuel?: number;
681
- max_hp_mod?: number;
682
- firepower_mod?: number;
683
- torpedo_mod?: number;
684
- armor_mod?: number;
685
- anti_air_mod?: number;
686
- evasion_mod?: number;
687
- asw_mod?: number;
688
- los_mod?: number;
689
- luck_mod?: number;
690
- day_gunfit_accuracy?: number;
691
- night_gunfit_accuracy?: number;
692
- custom_power_mods?: CustomPowerModifiers;
693
- }
587
+ export type Side = "Player" | "Enemy";
694
588
 
695
- export type ShipKey = "s1" | "s2" | "s3" | "s4" | "s5" | "s6" | "s7";
589
+ export type Align = "Left" | "Right";
696
590
 
697
591
  export type SlotSizeVec = (number | null)[];
698
592
 
699
- export interface MoveShipPayload {
700
- current: [string, string, ShipKey];
701
- target: [string | null, string, ShipKey];
702
- }
593
+ export type SpecialEnemyType =
594
+ | "None"
595
+ | "SoftSkinned"
596
+ | "Pillbox"
597
+ | "IsolatedIsland"
598
+ | "SupplyDepot"
599
+ | "NewSupplyDepot"
600
+ | "HarbourSummerPrincess"
601
+ | "PtImp"
602
+ | "BattleshipSummerPrincess"
603
+ | "HeavyCruiserSummerPrincess"
604
+ | "FrenchBattleshipPrincess"
605
+ | "AnchorageWaterDemonVacationMode"
606
+ | "DockPrincess";
703
607
 
704
- export interface MasterBattleDefinitions {
705
- formation: NestedFormationDef[];
706
- anti_air_cutin: AntiAirCutinDef[];
707
- day_cutin: DayCutinDef[];
708
- night_cutin: NightCutinDef[];
709
- historical_bonuses?: HistoricalBonusDef[];
710
- }
608
+ export type CompiledEvaler = string;
711
609
 
712
- export interface HitRate {
713
- normal: number;
714
- critical: number;
715
- total: number;
610
+ export interface SimulatorResult {
611
+ items: SimulatorResultItem[];
612
+ sunk_vec: [number, number, number][];
716
613
  }
717
614
 
718
- export interface HitRateParams {
719
- accuracy_term: number;
720
- evasion_term: number;
721
- target_morale_mod: number;
722
- critical_rate_constant: number;
723
- critical_percentage_bonus: number;
724
- hit_percentage_bonus: number;
615
+ export interface SimulatorResultItem {
616
+ id: string;
617
+ fleet_type: FleetType;
618
+ index: number;
619
+ damage_state_map: Record<DamageState, number>;
725
620
  }
726
621
 
727
- export interface DamageReport {
728
- miss_damage_min: number;
729
- miss_damage_max: number;
730
- normal_damage_min: number;
731
- normal_damage_max: number;
732
- critical_damage_min: number;
733
- critical_damage_max: number;
734
- normal_scratch_rate: number;
735
- critical_scratch_rate: number;
736
- damage_density: Histogram<number, number>;
737
- damage_state_density: Histogram<DamageState, number>;
622
+ export interface MasterData extends MasterBattleDefinitions {
623
+ created_at: number;
624
+ gears: MasterGear[];
625
+ gear_attrs: MasterAttrRule<GearAttr>[];
626
+ ships: MasterShip[];
627
+ ship_attrs: MasterAttrRule<ShipAttr>[];
628
+ ibonuses: MasterIBonuses;
629
+ equippability: MasterEquippability;
738
630
  }
739
631
 
740
- export interface ContactAnalysis {
741
- single: DayContactChance[] | null;
742
- combined: DayContactChance[] | null;
632
+ export interface NationalityDef {
633
+ id: number;
634
+ ctypes: number[];
743
635
  }
744
636
 
745
- export interface DayContactChance {
746
- air_state: AirState;
747
- trigger_rate: number;
748
- rank3: number;
749
- rank2: number;
750
- rank1: number;
751
- total: number;
637
+ export interface MasterAttrRule<T> {
638
+ tag: T;
639
+ name: string;
640
+ expr: CompiledEvaler;
752
641
  }
753
642
 
754
- export interface AttackAnalysis {
755
- attacker_is_player: boolean;
756
- attacker_ship_id: number;
757
- target_ship_id: number;
758
- historical_params: HistoricalParams;
759
- day: ActionReport<DayPhaseAttackStyle>;
760
- night: ActionReport<NightPhaseAttackStyle>;
761
- closing_torpedo: ActionReport<TorpedoAttackStyle>;
762
- opening_asw: ActionReport<AswAttackStyle>;
763
- support_shelling: ActionReport<SupportShellingStyle>;
764
- }
643
+ export type AirSquadronMode = "Sortie" | "AirDefense";
765
644
 
766
- export interface CompAntiAirAnalysis {
767
- fleet_adjusted_anti_air: number;
768
- ships: AntiAirReport[];
769
- anti_air_cutin_chance: [number, number][];
645
+ export interface AirSquadronState extends GearVecState, SlotSizeVecState {
646
+ id?: string;
647
+ mode?: AirSquadronMode;
770
648
  }
771
649
 
772
- export interface AntiAirReport {
773
- ship_id: number;
774
- role: Role;
775
- index: number;
776
- adjusted_anti_air: number | null;
777
- proportional_shotdown_rate: number | null;
778
- fixed_shotdown_number: number | null;
779
- guaranteed: number | null;
780
- anti_air_cutin_chance: [number, number][];
781
- anti_air_propellant_barrage_chance: number | null;
782
- }
650
+ export type AirState =
651
+ | "AirSupremacy"
652
+ | "AirSuperiority"
653
+ | "AirParity"
654
+ | "AirDenial"
655
+ | "AirIncapability";
783
656
 
784
- export interface GearState {
657
+ export type AirStateRank = "Rank0" | "Rank1" | "Rank2" | "Rank3";
658
+
659
+ export type ContactRank = "Rank1" | "Rank2" | "Rank3";
660
+
661
+ export type DamageState = "Normal" | "Shouha" | "Chuuha" | "Taiha" | "Sunk";
662
+
663
+ export type Engagement = "GreenT" | "Parallel" | "HeadOn" | "RedT";
664
+
665
+ export interface FleetState {
785
666
  id?: string;
786
- gear_id: number;
787
- exp?: number;
788
- stars?: number;
667
+ len?: number;
668
+ s1?: ShipState;
669
+ s2?: ShipState;
670
+ s3?: ShipState;
671
+ s4?: ShipState;
672
+ s5?: ShipState;
673
+ s6?: ShipState;
674
+ s7?: ShipState;
789
675
  }
790
676
 
791
- export interface GearVecState {
792
- g1?: GearState;
793
- g2?: GearState;
794
- g3?: GearState;
795
- g4?: GearState;
796
- g5?: GearState;
797
- gx?: GearState;
677
+ export type GearAttr =
678
+ | "Unknown"
679
+ | "HighAngleMount"
680
+ | "NightFighter"
681
+ | "NightAttacker"
682
+ | "HeavyBomber"
683
+ | "NightRecon"
684
+ | "MainGun"
685
+ | "Radar"
686
+ | "SurfaceRadar"
687
+ | "AirRadar"
688
+ | "DepthChargeProjector"
689
+ | "SynergisticDepthCharge"
690
+ | "AntiSubMortar"
691
+ | "AntiSubWeapon"
692
+ | "ApDepthCharge"
693
+ | "AntiSubAircraft"
694
+ | "LateModelBowTorpedo"
695
+ | "Seaplane"
696
+ | "CbAircraft"
697
+ | "LbAircraft"
698
+ | "JetAircraft"
699
+ | "Fighter"
700
+ | "Recon"
701
+ | "ObservationSeaplane"
702
+ | "CbFighterBomber"
703
+ | "AntiInstDiveBomber"
704
+ | "CbSwordfish"
705
+ | "SemiNightPlane"
706
+ | "HighAltitudeInterceptor";
707
+
708
+ export interface ShipConditions extends ShipPosition {
709
+ formation?: Formation;
710
+ amagiri_index?: number | null;
798
711
  }
799
712
 
800
713
  export type ShipCategory =
@@ -832,54 +745,100 @@ export type ShipType =
832
745
  | "CT"
833
746
  | "AO";
834
747
 
835
- export type Histogram<K extends keyof any, V> = Partial<Record<K, V>>;
748
+ export interface AttackPower {
749
+ precap: number;
750
+ is_capped: boolean;
751
+ capped: number;
752
+ normal: number;
753
+ critical: number;
754
+ armor_penetration: number;
755
+ remaining_ammo_mod: number;
756
+ }
836
757
 
837
- export type CompiledEvaler = string;
758
+ export interface AttackPowerParams {
759
+ basic: number;
760
+ cap: number;
761
+ precap_mod: AttackPowerModifier;
762
+ postcap_mod: AttackPowerModifier;
763
+ ap_shell_mod: number | null;
764
+ aerial_power: number | null;
765
+ proficiency_critical_mod: number;
766
+ armor_penetration: number;
767
+ remaining_ammo_mod: number;
768
+ special_enemy_mods: SpecialEnemyModifiers;
769
+ historical_mod: AttackPowerModifier;
770
+ custom_mods: CustomPowerModifiers;
771
+ }
838
772
 
839
- export interface AttackReport<T> {
840
- style: T;
841
- proc_rate: number | null;
842
- attack_power: AttackPower | null;
843
- attack_power_params: AttackPowerParams | null;
844
- hits: number;
845
- hit_rate: HitRate | null;
846
- hit_rate_params: HitRateParams | null;
847
- damage: DamageReport | null;
773
+ export interface NightContactChance {
774
+ rank1: number;
775
+ rank2: number;
776
+ rank3: number;
848
777
  }
849
778
 
850
- export interface ActionReport<T> {
851
- data: Record<string, AttackReport<T>>;
852
- damage_state_density: Histogram<DamageState, number> | null;
853
- is_active: boolean;
779
+ export interface CompNightCutinAnalysis {
780
+ night_contact_chance: NightContactChance;
781
+ ships: ShipNightCutinAnalysis[];
854
782
  }
855
783
 
856
- export type AirWaveType = "Jet" | "LandBase" | "Carrier";
784
+ export interface ShipNightCutinAnalysis {
785
+ ship_id: number;
786
+ index: number;
787
+ normal: NightCutinActionReport;
788
+ chuuha: NightCutinActionReport;
789
+ }
857
790
 
858
- export type MoraleState = "Sparkle" | "Normal" | "Orange" | "Red";
791
+ export interface NightCutinActionReport
792
+ extends ActionReport<NightPhaseAttackStyle> {
793
+ cutin_term: number | null;
794
+ }
859
795
 
860
- export type Side = "Player" | "Enemy";
796
+ export interface AttackAnalyzerShipConfig
797
+ extends ShipConditions,
798
+ NightFleetConditions {
799
+ fleet_los_mod?: number | null;
800
+ }
861
801
 
862
- export type Align = "Left" | "Right";
802
+ export interface AttackPowerModifier {
803
+ a?: number;
804
+ b?: number;
805
+ }
863
806
 
864
- export interface MasterData extends MasterBattleDefinitions {
865
- created_at: number;
866
- gears: MasterGear[];
867
- gear_attrs: MasterAttrRule<GearAttr>[];
868
- ships: MasterShip[];
869
- ship_attrs: MasterAttrRule<ShipAttr>[];
870
- ibonuses: MasterIBonuses;
871
- equippability: MasterEquippability;
807
+ export interface SpecialEnemyModifiers {
808
+ precap_general_mod: AttackPowerModifier;
809
+ stype_mod: AttackPowerModifier;
810
+ landing_craft_synergy_mod: AttackPowerModifier;
811
+ toku_daihatsu_tank_mod: AttackPowerModifier;
812
+ m4a1dd_mod: AttackPowerModifier;
813
+ honi_mod: AttackPowerModifier;
814
+ toku_daihatsu_chiha_mod: AttackPowerModifier;
815
+ toku_daihatsu_chiha_kai_mod: AttackPowerModifier;
816
+ postcap_general_mod: AttackPowerModifier;
817
+ pt_mod: AttackPowerModifier | null;
872
818
  }
873
819
 
874
- export interface NationalityDef {
875
- id: number;
876
- ctypes: number[];
820
+ export interface CustomPowerModifiers {
821
+ precap_mod?: AttackPowerModifier;
822
+ postcap_mod?: AttackPowerModifier;
823
+ basic_power_mod?: AttackPowerModifier;
824
+ historical_mod?: AttackPowerModifier;
877
825
  }
878
826
 
879
- export interface MasterAttrRule<T> {
880
- tag: T;
881
- name: string;
882
- expr: CompiledEvaler;
827
+ export type MoraleState = "Sparkle" | "Normal" | "Orange" | "Red";
828
+
829
+ export type OrgType =
830
+ | "Single"
831
+ | "CarrierTaskForce"
832
+ | "SurfaceTaskForce"
833
+ | "TransportEscort"
834
+ | "EnemySingle"
835
+ | "EnemyCombined";
836
+
837
+ export interface ShipPosition {
838
+ org_type?: OrgType;
839
+ fleet_type?: FleetType;
840
+ fleet_len?: number;
841
+ index?: number;
883
842
  }
884
843
 
885
844
  export interface MasterIBonuses {
@@ -907,130 +866,173 @@ export interface MasterIBonusRule {
907
866
  formula: CompiledEvaler;
908
867
  }
909
868
 
910
- export interface ShipPosition {
911
- org_type?: OrgType;
912
- fleet_type?: FleetType;
913
- fleet_len?: number;
914
- index?: number;
869
+ export interface ShipAnalyzerConfig {
870
+ air_state?: AirState;
871
+ engagement?: Engagement;
872
+ left?: AttackAnalyzerShipConfig;
873
+ right?: AttackAnalyzerShipConfig;
915
874
  }
916
875
 
917
- export type ShipAttr =
918
- | "Unknown"
919
- | "NightCarrier"
920
- | "Installation"
921
- | "RoyalNavy"
922
- | "Kai2"
923
- | "TurbineSpeedBonus"
924
- | "NewModelBoilerSpeedBonus"
925
- | "Pillbox"
926
- | "IsolatedIsland"
927
- | "HarbourSummerPrincess"
928
- | "SupplyDepot"
929
- | "NewSupplyDepot"
930
- | "PtImp"
931
- | "BattleshipSummerPrincess"
932
- | "HeavyCruiserSummerPrincess"
933
- | "AnchorageWaterDemonVacationMode"
934
- | "FrenchBattleshipPrincess"
935
- | "DockPrincess";
936
-
937
- export interface ShipConditions extends ShipPosition {
938
- formation?: Formation;
939
- amagiri_index?: number | null;
876
+ export interface FleetCutinReport<T> {
877
+ cutin: FleetCutin;
878
+ rate: number | null;
879
+ formation: Formation;
880
+ attacks: FleetCutinAttackReport<T>[];
940
881
  }
941
882
 
942
- export type GearTypeIdArray = [number, number, number, number, number];
883
+ export interface FleetCutinAttackReport<T> extends AttackReport<T> {
884
+ index: number;
885
+ ship_id: number;
886
+ power_mod: number;
887
+ }
943
888
 
944
- export interface SimulatorResult {
945
- items: SimulatorResultItem[];
946
- sunk_vec: [number, number, number][];
889
+ export interface AttackReport<T> {
890
+ style: T;
891
+ proc_rate: number | null;
892
+ attack_power: AttackPower | null;
893
+ attack_power_params: AttackPowerParams | null;
894
+ hits: number;
895
+ hit_rate: HitRate | null;
896
+ hit_rate_params: HitRateParams | null;
897
+ damage: DamageReport | null;
947
898
  }
948
899
 
949
- export interface SimulatorResultItem {
950
- id: string;
951
- fleet_type: FleetType;
952
- index: number;
953
- damage_state_map: Record<DamageState, number>;
900
+ export interface ShellingStyle {
901
+ tag: "ShellingStyle";
902
+ attack_type: ShellingType;
903
+ cutin: DayCutinLike | null;
904
+ power_mod: number;
905
+ accuracy_mod: number;
906
+ hits: number;
954
907
  }
955
908
 
956
- export interface ShipAnalyzerConfig {
957
- air_state?: AirState;
958
- engagement?: Engagement;
959
- left?: AttackAnalyzerShipConfig;
960
- right?: AttackAnalyzerShipConfig;
909
+ export interface NightAttackStyle {
910
+ tag: "NightAttackStyle";
911
+ attack_type: NightAttackType;
912
+ cutin: NightCutinLike | null;
913
+ power_mod: number;
914
+ accuracy_mod: number;
915
+ hits: number;
961
916
  }
962
917
 
963
- export type AirSquadronMode = "Sortie" | "AirDefense";
918
+ export interface AswAttackStyle {
919
+ tag: "AswAttackStyle";
920
+ attack_type: AswAttackType;
921
+ }
964
922
 
965
- export interface AirSquadronState extends GearVecState, SlotSizeVecState {
966
- id?: string;
967
- mode?: AirSquadronMode;
923
+ export interface TorpedoAttackStyle {
924
+ tag: "TorpedoAttackStyle";
925
+ attack_type: TorpedoAttackType;
968
926
  }
969
927
 
970
- export type AirState =
971
- | "AirSupremacy"
972
- | "AirSuperiority"
973
- | "AirParity"
974
- | "AirDenial"
975
- | "AirIncapability";
928
+ export type DayPhaseAttackStyle = ShellingStyle | AswAttackStyle;
976
929
 
977
- export type AirStateRank = "Rank0" | "Rank1" | "Rank2" | "Rank3";
930
+ export type NightPhaseAttackStyle = NightAttackStyle | AswAttackStyle;
978
931
 
979
- export interface AttackPowerModifier {
980
- a?: number;
981
- b?: number;
932
+ export interface SupportShellingStyle {
933
+ tag: "SupportShellingStyle";
934
+ attack_type: SupportShellingType;
982
935
  }
983
936
 
984
- export interface SpecialEnemyModifiers {
985
- precap_general_mod: AttackPowerModifier;
986
- stype_mod: AttackPowerModifier;
987
- landing_craft_synergy_mod: AttackPowerModifier;
988
- toku_daihatsu_tank_mod: AttackPowerModifier;
989
- m4a1dd_mod: AttackPowerModifier;
990
- honi_mod: AttackPowerModifier;
991
- postcap_general_mod: AttackPowerModifier;
992
- pt_mod: AttackPowerModifier | null;
937
+ export type FleetType = "Main" | "Escort" | "RouteSup" | "BossSup";
938
+
939
+ export type Histogram<K extends keyof any, V> = Partial<Record<K, V>>;
940
+
941
+ export interface EquippabilityRule {
942
+ ship: CompiledEvaler;
943
+ keys?: string[];
944
+ include?: string;
945
+ exclude?: string;
993
946
  }
994
947
 
995
- export interface CustomPowerModifiers {
996
- precap_mod?: AttackPowerModifier;
997
- postcap_mod?: AttackPowerModifier;
998
- basic_power_mod?: AttackPowerModifier;
999
- historical_mod?: AttackPowerModifier;
948
+ export interface MasterEquippability {
949
+ equip_stype: EquipStype[];
950
+ equip_exslot: number[];
951
+ equip_ship: MstEquipShip[];
952
+ equip_exslot_ship: Record<number, MstEquipExslotShip>;
953
+ rules: EquippabilityRule[];
1000
954
  }
1001
955
 
1002
- export type AswAttackType = "DepthCharge" | "Aerial";
956
+ export interface MstEquipExslotShip {
957
+ api_ctypes: Record<number, number> | null;
958
+ api_ship_ids: Record<number, number> | null;
959
+ api_stypes: Record<number, number> | null;
960
+ }
1003
961
 
1004
- export type ShellingType = "Normal" | "Aerial";
962
+ export interface MstEquipShip {
963
+ api_ship_id: number;
964
+ api_equip_type: number[];
965
+ }
1005
966
 
1006
- export type NightAttackType = "Normal" | "Swordfish" | "Aerial";
967
+ export interface EquipStype {
968
+ id: number;
969
+ equip_type: number[];
970
+ }
1007
971
 
1008
- export type SupportShellingType = ShellingType;
972
+ export interface CompDayCutinAnalysis {
973
+ rank3_air_state: AirState;
974
+ rank2_air_state: AirState;
975
+ main_fleet_los_mod: number | null;
976
+ escort_fleet_los_mod: number | null;
977
+ ships: ShipDayCutinAnalysis[];
978
+ }
1009
979
 
1010
- export type AttackType =
1011
- | { t: "Asw"; c: AswAttackType }
1012
- | { t: "Shelling"; c: ShellingType }
1013
- | { t: "Night"; c: NightAttackType }
1014
- | { t: "Torpedo" }
1015
- | { t: "SupportShelling"; c: SupportShellingType };
980
+ export interface ShipDayCutinAnalysis {
981
+ ship_id: number;
982
+ role: Role;
983
+ index: number;
984
+ rank3: DayCutinReport;
985
+ rank2: DayCutinReport;
986
+ }
1016
987
 
1017
- export type DayPhaseAttackType =
1018
- | { t: "Shelling"; c: ShellingType }
1019
- | { t: "Asw"; c: AswAttackType };
988
+ export interface DayCutinReport extends ActionReport<DayPhaseAttackStyle> {
989
+ observation_term: number | null;
990
+ }
1020
991
 
1021
- export type NightPhaseAttackType =
1022
- | { t: "Night"; c: NightAttackType }
1023
- | { t: "Asw"; c: AswAttackType };
992
+ export interface CompAnalyzerConfig {
993
+ engagement: Engagement;
994
+ formation: Formation;
995
+ anti_air_cutin: number | null;
996
+ ship_anti_air_resist: number;
997
+ fleet_anti_air_resist: number;
998
+ left_night_fleet_conditions: NightFleetConditions;
999
+ right_night_fleet_conditions: NightFleetConditions;
1000
+ }
1024
1001
 
1025
- export type TorpedoAttackType = null;
1002
+ export interface CompNightAnalysis {
1003
+ night_cutin: CompNightCutinAnalysis;
1004
+ fleet_cutin: FleetCutinReport<NightAttackStyle>[];
1005
+ }
1026
1006
 
1027
- export type ContactRank = "Rank1" | "Rank2" | "Rank3";
1007
+ export interface CompDayAnalysis {
1008
+ day_cutin: CompDayCutinAnalysis;
1009
+ fleet_cutin: FleetCutinReport<ShellingStyle>[];
1010
+ }
1028
1011
 
1029
- export type DamageState = "Normal" | "Shouha" | "Chuuha" | "Taiha" | "Sunk";
1012
+ export interface CompAnalysis {
1013
+ day: CompDayAnalysis;
1014
+ night: CompNightAnalysis;
1015
+ contact: ContactAnalysis;
1016
+ anti_air: CompAntiAirAnalysis;
1017
+ }
1030
1018
 
1031
- export type Engagement = "GreenT" | "Parallel" | "HeadOn" | "RedT";
1019
+ export interface OrgState {
1020
+ id?: string;
1021
+ f1?: FleetState;
1022
+ f2?: FleetState;
1023
+ f3?: FleetState;
1024
+ f4?: FleetState;
1025
+ a1?: AirSquadronState;
1026
+ a2?: AirSquadronState;
1027
+ a3?: AirSquadronState;
1028
+ hq_level?: number;
1029
+ org_type?: OrgType;
1030
+ sortie?: FleetKey;
1031
+ route_sup?: FleetKey;
1032
+ boss_sup?: FleetKey;
1033
+ }
1032
1034
 
1033
- export type Role = "Main" | "Escort";
1035
+ export type FleetKey = "f1" | "f2" | "f3" | "f4";
1034
1036
 
1035
1037
  /**
1036
1038
  */
@@ -1089,7 +1091,7 @@ export class Analyzer {
1089
1091
  config: ShipAnalyzerConfig,
1090
1092
  left: Ship,
1091
1093
  right: Ship,
1092
- attacker_is_left: boolean
1094
+ attacker_is_left: boolean,
1093
1095
  ): AttackAnalysis;
1094
1096
  /**
1095
1097
  * @param {NodeAttackAnalyzerConfig} config
@@ -1104,7 +1106,7 @@ export class Analyzer {
1104
1106
  left_comp: Comp,
1105
1107
  left_ship: Ship,
1106
1108
  right_comp: Comp,
1107
- right_ship: Ship
1109
+ right_ship: Ship,
1108
1110
  ): NodeAttackAnalysis;
1109
1111
  /**
1110
1112
  * @param {Comp} comp
@@ -1123,7 +1125,7 @@ export class Analyzer {
1123
1125
  player_comp: Comp,
1124
1126
  enemy_comp: Comp,
1125
1127
  config: NodeAttackAnalyzerConfig,
1126
- times: number
1128
+ times: number,
1127
1129
  ): SimulatorResult;
1128
1130
  }
1129
1131
  /**
@@ -1203,7 +1205,7 @@ export class Comp {
1203
1205
  */
1204
1206
  fighter_power(
1205
1207
  escort_participates: boolean,
1206
- air_type: AirWaveType
1208
+ air_type: AirWaveType,
1207
1209
  ): number | undefined;
1208
1210
  /**
1209
1211
  * マップ索敵
@@ -1342,7 +1344,7 @@ export class Fleet {
1342
1344
  get_remaining_fuel(
1343
1345
  id: string,
1344
1346
  rate: number,
1345
- ceil: boolean
1347
+ ceil: boolean,
1346
1348
  ): number | undefined;
1347
1349
  /**
1348
1350
  * @param {string} id
@@ -1353,7 +1355,7 @@ export class Fleet {
1353
1355
  get_remaining_ammo(
1354
1356
  id: string,
1355
1357
  rate: number,
1356
- ceil: boolean
1358
+ ceil: boolean,
1357
1359
  ): number | undefined;
1358
1360
  /**
1359
1361
  * @returns {number}
@@ -1734,7 +1736,7 @@ export class Org {
1734
1736
  create_move_ship_payload(
1735
1737
  id: string,
1736
1738
  x: number,
1737
- y: number
1739
+ y: number,
1738
1740
  ): MoveShipPayload | undefined;
1739
1741
  /**
1740
1742
  * @param {FleetKey} key
@@ -1767,6 +1769,20 @@ export class Org {
1767
1769
  */
1768
1770
  export class Ship {
1769
1771
  free(): void;
1772
+ /**
1773
+ * @returns {number | undefined}
1774
+ */
1775
+ state_day_gunfit_accuracy(): number | undefined;
1776
+ /**
1777
+ * @returns {number | undefined}
1778
+ */
1779
+ state_night_gunfit_accuracy(): number | undefined;
1780
+ /**
1781
+ * フィット砲補正
1782
+ * @param {boolean} is_night
1783
+ * @returns {number}
1784
+ */
1785
+ gunfit_accuracy(is_night: boolean): number;
1770
1786
  /**
1771
1787
  * @returns {Ship}
1772
1788
  */
@@ -1963,7 +1979,7 @@ export class Ship {
1963
1979
  evasion_term(
1964
1980
  formation_mod: number,
1965
1981
  postcap_additive: number,
1966
- postcap_multiplicative: number
1982
+ postcap_multiplicative: number,
1967
1983
  ): number | undefined;
1968
1984
  /**
1969
1985
  * @param {number} armor_penetration
@@ -1984,20 +2000,6 @@ export class Ship {
1984
2000
  * @returns {number | undefined}
1985
2001
  */
1986
2002
  ohko_power(): number | undefined;
1987
- /**
1988
- * @returns {number | undefined}
1989
- */
1990
- state_day_gunfit_accuracy(): number | undefined;
1991
- /**
1992
- * @returns {number | undefined}
1993
- */
1994
- state_night_gunfit_accuracy(): number | undefined;
1995
- /**
1996
- * フィット砲補正
1997
- * @param {boolean} is_night
1998
- * @returns {number}
1999
- */
2000
- gunfit_accuracy(is_night: boolean): number;
2001
2003
  /**
2002
2004
  */
2003
2005
  readonly accuracy: number;