fleethub-core 1.7.13 → 1.8.2

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,199 +1,89 @@
1
1
  /* tslint:disable */
2
2
  /* eslint-disable */
3
+ /**
4
+ * @param {ShipConditions} value
5
+ * @returns {ShipConditions}
6
+ */
7
+ export function parse_ship_conditions(value: ShipConditions): ShipConditions;
3
8
  /**
4
9
  */
5
10
  export function set_panic_hook(): void;
6
- declare namespace ShipType {
7
- export type Unknown = "Unknown";
8
- export type DE = "DE";
9
- export type DD = "DD";
10
- export type CL = "CL";
11
- export type CLT = "CLT";
12
- export type CA = "CA";
13
- export type CAV = "CAV";
14
- export type CVL = "CVL";
15
- export type FBB = "FBB";
16
- export type BB = "BB";
17
- export type BBV = "BBV";
18
- export type CV = "CV";
19
- export type XBB = "XBB";
20
- export type SS = "SS";
21
- export type SSV = "SSV";
22
- export type AP = "AP";
23
- export type AV = "AV";
24
- export type LHA = "LHA";
25
- export type CVB = "CVB";
26
- export type AR = "AR";
27
- export type AS = "AS";
28
- export type CT = "CT";
29
- export type AO = "AO";
11
+ export interface ShipConditions extends ShipPosition {
12
+ formation?: Formation;
30
13
  }
31
14
 
32
- export type ShipType =
33
- | ShipType.Unknown
34
- | ShipType.DE
35
- | ShipType.DD
36
- | ShipType.CL
37
- | ShipType.CLT
38
- | ShipType.CA
39
- | ShipType.CAV
40
- | ShipType.CVL
41
- | ShipType.FBB
42
- | ShipType.BB
43
- | ShipType.BBV
44
- | ShipType.CV
45
- | ShipType.XBB
46
- | ShipType.SS
47
- | ShipType.SSV
48
- | ShipType.AP
49
- | ShipType.AV
50
- | ShipType.LHA
51
- | ShipType.CVB
52
- | ShipType.AR
53
- | ShipType.AS
54
- | ShipType.CT
55
- | ShipType.AO;
56
-
57
- declare namespace ShipCategory {
58
- export type Battleship = "Battleship";
59
- export type AircraftCarrier = "AircraftCarrier";
60
- export type HeavyCruiser = "HeavyCruiser";
61
- export type LightCruiser = "LightCruiser";
62
- export type Destroyer = "Destroyer";
63
- export type CoastalDefenseShip = "CoastalDefenseShip";
64
- export type Submarine = "Submarine";
65
- export type AuxiliaryShip = "AuxiliaryShip";
15
+ export interface BattleDefinitions {
16
+ formation: Record<Formation, NestedFormationDef>;
17
+ anti_air_cutin: Record<number, AntiAirCutinDef>;
18
+ day_cutin: Record<DayCutin, DayCutinDef>;
19
+ night_cutin: Record<NightCutin, NightCutinDef>;
66
20
  }
67
21
 
68
- export type ShipCategory =
69
- | ShipCategory.Battleship
70
- | ShipCategory.AircraftCarrier
71
- | ShipCategory.HeavyCruiser
72
- | ShipCategory.LightCruiser
73
- | ShipCategory.Destroyer
74
- | ShipCategory.CoastalDefenseShip
75
- | ShipCategory.Submarine
76
- | ShipCategory.AuxiliaryShip;
77
-
78
- declare namespace ShipAttr {
79
- export type Unknown = "Unknown";
80
- export type Abyssal = "Abyssal";
81
- export type NightCarrier = "NightCarrier";
82
- export type Installation = "Installation";
83
- export type RoyalNavy = "RoyalNavy";
84
- export type Kai2 = "Kai2";
85
- export type TurbineSpeedBonus = "TurbineSpeedBonus";
86
- export type Pillbox = "Pillbox";
87
- export type IsolatedIsland = "IsolatedIsland";
88
- export type HarbourSummerPrincess = "HarbourSummerPrincess";
89
- export type SupplyDepot = "SupplyDepot";
90
- export type PtImp = "PtImp";
91
- export type BattleshipSummerPrincess = "BattleshipSummerPrincess";
92
- export type HeavyCruiserSummerPrincess = "HeavyCruiserSummerPrincess";
22
+ export interface NightCutinDef {
23
+ tag: NightCutin;
24
+ hits: number;
25
+ type_factor: number | null;
26
+ power_mod: number | null;
27
+ accuracy_mod: number | null;
93
28
  }
94
29
 
95
- export type ShipAttr =
96
- | ShipAttr.Unknown
97
- | ShipAttr.Abyssal
98
- | ShipAttr.NightCarrier
99
- | ShipAttr.Installation
100
- | ShipAttr.RoyalNavy
101
- | ShipAttr.Kai2
102
- | ShipAttr.TurbineSpeedBonus
103
- | ShipAttr.Pillbox
104
- | ShipAttr.IsolatedIsland
105
- | ShipAttr.HarbourSummerPrincess
106
- | ShipAttr.SupplyDepot
107
- | ShipAttr.PtImp
108
- | ShipAttr.BattleshipSummerPrincess
109
- | ShipAttr.HeavyCruiserSummerPrincess;
110
-
111
- declare namespace FleetCutin {
112
- export type NelsonTouch = "NelsonTouch";
113
- export type NagatoClassCutin = "NagatoClassCutin";
114
- export type ColoradoClassCutin = "ColoradoClassCutin";
115
- export type KongouClassCutin = "KongouClassCutin";
116
- export type Yamato2ShipCutin = "Yamato2ShipCutin";
117
- export type Yamato3ShipCutin = "Yamato3ShipCutin";
30
+ export interface DayCutinDef {
31
+ tag: DayCutin;
32
+ hits: number;
33
+ type_factor: number | null;
34
+ power_mod: number | null;
35
+ accuracy_mod: number | null;
118
36
  }
119
37
 
120
- export type FleetCutin =
121
- | FleetCutin.NelsonTouch
122
- | FleetCutin.NagatoClassCutin
123
- | FleetCutin.ColoradoClassCutin
124
- | FleetCutin.KongouClassCutin
125
- | FleetCutin.Yamato2ShipCutin
126
- | FleetCutin.Yamato3ShipCutin;
127
-
128
- declare namespace AirStateRank {
129
- export type Rank0 = "Rank0";
130
- export type Rank1 = "Rank1";
131
- export type Rank2 = "Rank2";
132
- export type Rank3 = "Rank3";
38
+ export interface AntiAirCutinDef {
39
+ id: number;
40
+ type_factor: number | null;
41
+ multiplier: number | null;
42
+ guaranteed: number | null;
43
+ sequential: boolean | null;
133
44
  }
134
45
 
135
- export type AirStateRank =
136
- | AirStateRank.Rank0
137
- | AirStateRank.Rank1
138
- | AirStateRank.Rank2
139
- | AirStateRank.Rank3;
140
-
141
- declare namespace AirState {
142
- export type AirSupremacy = "AirSupremacy";
143
- export type AirSuperiority = "AirSuperiority";
144
- export type AirParity = "AirParity";
145
- export type AirDenial = "AirDenial";
146
- export type AirIncapability = "AirIncapability";
46
+ type __NestedFormationDefFormationDef = FormationDef;
47
+ declare namespace NestedFormationDef {
48
+ export type Normal = __NestedFormationDefFormationDef;
49
+ export type Vanguard = {
50
+ top_half: __NestedFormationDefFormationDef;
51
+ bottom_half: __NestedFormationDefFormationDef;
52
+ };
147
53
  }
148
54
 
149
- export type AirState =
150
- | AirState.AirSupremacy
151
- | AirState.AirSuperiority
152
- | AirState.AirParity
153
- | AirState.AirDenial
154
- | AirState.AirIncapability;
155
-
156
- export interface MasterIBonuses {
157
- shelling_power: MasterIBonusRule[];
158
- carrier_shelling_power: MasterIBonusRule[];
159
- shelling_accuracy: MasterIBonusRule[];
160
- torpedo_power: MasterIBonusRule[];
161
- torpedo_accuracy: MasterIBonusRule[];
162
- torpedo_evasion: MasterIBonusRule[];
163
- asw_power: MasterIBonusRule[];
164
- asw_accuracy: MasterIBonusRule[];
165
- night_power: MasterIBonusRule[];
166
- night_accuracy: MasterIBonusRule[];
167
- defense_power: MasterIBonusRule[];
168
- contact_selection: MasterIBonusRule[];
169
- fighter_power: MasterIBonusRule[];
170
- ship_anti_air: MasterIBonusRule[];
171
- fleet_anti_air: MasterIBonusRule[];
172
- elos: MasterIBonusRule[];
173
- }
55
+ export type NestedFormationDef =
56
+ | NestedFormationDef.Normal
57
+ | NestedFormationDef.Vanguard;
174
58
 
175
- export interface MasterIBonusRule {
176
- expr: CompiledEvaler;
177
- formula: CompiledEvaler;
59
+ export interface FormationDef {
60
+ tag: Formation;
61
+ protection_rate: number | null;
62
+ fleet_anti_air_mod: number;
63
+ shelling: FormationCombatModifiersDef;
64
+ torpedo: FormationCombatModifiersDef;
65
+ asw: FormationCombatModifiersDef;
66
+ night: FormationCombatModifiersDef;
67
+ support_shelling: FormationCombatModifiersDef;
178
68
  }
179
69
 
180
- export interface FleetCutinAnalysis {
181
- shelling: FleetCutinInfo[];
182
- night: FleetCutinInfo[];
70
+ export interface FormationCombatModifiersDef {
71
+ power_mod?: number;
72
+ accuracy_mod?: number;
73
+ evasion_mod?: number;
183
74
  }
184
75
 
185
- export interface FleetCutinInfo {
186
- cutin: FleetCutin;
187
- rate: number | null;
188
- formation: Formation;
189
- items: FleetCutinInfoItem[];
76
+ export interface SupportShellingSimulatorParams {
77
+ attacker_formation?: Formation;
78
+ target_formation?: Formation;
79
+ engagement: Engagement;
190
80
  }
191
81
 
192
- export interface FleetCutinInfoItem {
193
- ship_id: number;
194
- cutin: FleetCutin;
195
- fleet_cutin_mod: number;
196
- stats: AttackStats;
82
+ export interface ShipAnalyzerConfig {
83
+ air_state?: AirState;
84
+ engagement?: Engagement;
85
+ left?: AttackAnalyzerShipConfig;
86
+ right?: AttackAnalyzerShipConfig;
197
87
  }
198
88
 
199
89
  declare namespace SpecialEnemyType {
@@ -219,46 +109,113 @@ export type SpecialEnemyType =
219
109
  | SpecialEnemyType.BattleshipSummerPrincess
220
110
  | SpecialEnemyType.HeavyCruiserSummerPrincess;
221
111
 
222
- declare namespace MoraleState {
223
- export type Sparkle = "Sparkle";
224
- export type Normal = "Normal";
225
- export type Orange = "Orange";
226
- export type Red = "Red";
112
+ type __NightCutinLikeFleetCutin = FleetCutin;
113
+ type __NightCutinLikeNightCutin = NightCutin;
114
+ declare namespace NightCutinLike {
115
+ export type NightCutin = __NightCutinLikeNightCutin;
116
+ export type FleetCutin = __NightCutinLikeFleetCutin;
227
117
  }
228
118
 
229
- export type MoraleState =
230
- | MoraleState.Sparkle
231
- | MoraleState.Normal
232
- | MoraleState.Orange
233
- | MoraleState.Red;
119
+ export type NightCutinLike =
120
+ | NightCutinLike.NightCutin
121
+ | NightCutinLike.FleetCutin;
234
122
 
235
- declare namespace DamageState {
236
- export type Normal = "Normal";
237
- export type Shouha = "Shouha";
238
- export type Chuuha = "Chuuha";
239
- export type Taiha = "Taiha";
240
- export type Sunk = "Sunk";
123
+ type __DayCutinLikeDayCutin = DayCutin;
124
+ type __DayCutinLikeFleetCutin = FleetCutin;
125
+ declare namespace DayCutinLike {
126
+ export type DayCutin = __DayCutinLikeDayCutin;
127
+ export type FleetCutin = __DayCutinLikeFleetCutin;
241
128
  }
242
129
 
243
- export type DamageState =
244
- | DamageState.Normal
245
- | DamageState.Shouha
246
- | DamageState.Chuuha
247
- | DamageState.Taiha
248
- | DamageState.Sunk;
130
+ export type DayCutinLike = DayCutinLike.DayCutin | DayCutinLike.FleetCutin;
249
131
 
250
- declare namespace SpeedGroup {
251
- export type A = "A";
252
- export type B1 = "B1";
253
- export type B2 = "B2";
254
- export type C = "C";
132
+ declare namespace FleetCutin {
133
+ export type NelsonTouch = "NelsonTouch";
134
+ export type NagatoClassCutin = "NagatoClassCutin";
135
+ export type ColoradoClassCutin = "ColoradoClassCutin";
136
+ export type KongouClassCutin = "KongouClassCutin";
137
+ export type Yamato2ShipCutin = "Yamato2ShipCutin";
138
+ export type Yamato3ShipCutin = "Yamato3ShipCutin";
255
139
  }
256
140
 
257
- export type SpeedGroup =
258
- | SpeedGroup.A
259
- | SpeedGroup.B1
260
- | SpeedGroup.B2
261
- | SpeedGroup.C;
141
+ export type FleetCutin =
142
+ | FleetCutin.NelsonTouch
143
+ | FleetCutin.NagatoClassCutin
144
+ | FleetCutin.ColoradoClassCutin
145
+ | FleetCutin.KongouClassCutin
146
+ | FleetCutin.Yamato2ShipCutin
147
+ | FleetCutin.Yamato3ShipCutin;
148
+
149
+ declare namespace NightCutin {
150
+ export type MainTorpRadar = "MainTorpRadar";
151
+ export type TorpLookoutRadar = "TorpLookoutRadar";
152
+ export type TorpTsloTorp = "TorpTsloTorp";
153
+ export type TorpTsloDrum = "TorpTsloDrum";
154
+ export type DoubleAttack = "DoubleAttack";
155
+ export type TorpTorpMain = "TorpTorpMain";
156
+ export type TorpTorpTorp = "TorpTorpTorp";
157
+ export type MainMainSec = "MainMainSec";
158
+ export type MainMainMain = "MainMainMain";
159
+ export type SubTorpTorp = "SubTorpTorp";
160
+ export type SubRadarTorp = "SubRadarTorp";
161
+ export type Cvci1_25 = "Cvci1_25";
162
+ export type Cvci1_20 = "Cvci1_20";
163
+ export type Cvci1_18 = "Cvci1_18";
164
+ export type Photobomber = "Photobomber";
165
+ }
166
+
167
+ export type NightCutin =
168
+ | NightCutin.MainTorpRadar
169
+ | NightCutin.TorpLookoutRadar
170
+ | NightCutin.TorpTsloTorp
171
+ | NightCutin.TorpTsloDrum
172
+ | NightCutin.DoubleAttack
173
+ | NightCutin.TorpTorpMain
174
+ | NightCutin.TorpTorpTorp
175
+ | NightCutin.MainMainSec
176
+ | NightCutin.MainMainMain
177
+ | NightCutin.SubTorpTorp
178
+ | NightCutin.SubRadarTorp
179
+ | NightCutin.Cvci1_25
180
+ | NightCutin.Cvci1_20
181
+ | NightCutin.Cvci1_18
182
+ | NightCutin.Photobomber;
183
+
184
+ declare namespace DayCutin {
185
+ export type Zuiun = "Zuiun";
186
+ export type AirSea = "AirSea";
187
+ export type MainMain = "MainMain";
188
+ export type MainAp = "MainAp";
189
+ export type MainRadar = "MainRadar";
190
+ export type MainSec = "MainSec";
191
+ export type DoubleAttack = "DoubleAttack";
192
+ export type FBA = "FBA";
193
+ export type BBA = "BBA";
194
+ export type BA = "BA";
195
+ }
196
+
197
+ export type DayCutin =
198
+ | DayCutin.Zuiun
199
+ | DayCutin.AirSea
200
+ | DayCutin.MainMain
201
+ | DayCutin.MainAp
202
+ | DayCutin.MainRadar
203
+ | DayCutin.MainSec
204
+ | DayCutin.DoubleAttack
205
+ | DayCutin.FBA
206
+ | DayCutin.BBA
207
+ | DayCutin.BA;
208
+
209
+ declare namespace ContactRank {
210
+ export type Rank1 = "Rank1";
211
+ export type Rank2 = "Rank2";
212
+ export type Rank3 = "Rank3";
213
+ }
214
+
215
+ export type ContactRank =
216
+ | ContactRank.Rank1
217
+ | ContactRank.Rank2
218
+ | ContactRank.Rank3;
262
219
 
263
220
  declare namespace AirWaveType {
264
221
  export type Jet = "Jet";
@@ -278,49 +235,25 @@ export interface SimulatorResult {
278
235
 
279
236
  export interface SimulatorResultItem {
280
237
  id: string;
281
- role: Role;
238
+ fleet_type: FleetType;
282
239
  index: number;
283
240
  damage_state_map: Record<DamageState, number>;
284
241
  }
285
242
 
286
- declare namespace OrgType {
287
- export type Single = "Single";
288
- export type CarrierTaskForce = "CarrierTaskForce";
289
- export type SurfaceTaskForce = "SurfaceTaskForce";
290
- export type TransportEscort = "TransportEscort";
291
- export type EnemySingle = "EnemySingle";
292
- export type EnemyCombined = "EnemyCombined";
293
- }
294
-
295
- export type OrgType =
296
- | OrgType.Single
297
- | OrgType.CarrierTaskForce
298
- | OrgType.SurfaceTaskForce
299
- | OrgType.TransportEscort
300
- | OrgType.EnemySingle
301
- | OrgType.EnemyCombined;
302
-
303
- export interface CompMeta {
304
- fleets: Record<FleetType, FleetMeta>;
305
- }
306
-
307
- export interface FleetMeta {
308
- id: string;
309
- len: number;
310
- ships: [string, ShipMeta | null][];
311
- }
312
-
313
- export interface ShipMeta {
314
- id: string;
315
- ship_id: number;
316
- }
317
-
318
- declare namespace AswAttackType {
319
- export type DepthCharge = "DepthCharge";
320
- export type Aircraft = "Aircraft";
243
+ declare namespace DamageState {
244
+ export type Normal = "Normal";
245
+ export type Shouha = "Shouha";
246
+ export type Chuuha = "Chuuha";
247
+ export type Taiha = "Taiha";
248
+ export type Sunk = "Sunk";
321
249
  }
322
250
 
323
- export type AswAttackType = AswAttackType.DepthCharge | AswAttackType.Aircraft;
251
+ export type DamageState =
252
+ | DamageState.Normal
253
+ | DamageState.Shouha
254
+ | DamageState.Chuuha
255
+ | DamageState.Taiha
256
+ | DamageState.Sunk;
324
257
 
325
258
  declare namespace GearCategory {
326
259
  export type Fighter = "Fighter";
@@ -411,6 +344,7 @@ declare namespace GearType {
411
344
  export type JetRecon = "JetRecon";
412
345
  export type LargeRadar2 = "LargeRadar2";
413
346
  export type CbRecon2 = "CbRecon2";
347
+ export type SecondaryGun2 = "SecondaryGun2";
414
348
  }
415
349
 
416
350
  export type GearType =
@@ -472,45 +406,43 @@ export type GearType =
472
406
  | GearType.JetTorpedoBomber
473
407
  | GearType.JetRecon
474
408
  | GearType.LargeRadar2
475
- | GearType.CbRecon2;
409
+ | GearType.CbRecon2
410
+ | GearType.SecondaryGun2;
411
+
412
+ declare namespace AirStateRank {
413
+ export type Rank0 = "Rank0";
414
+ export type Rank1 = "Rank1";
415
+ export type Rank2 = "Rank2";
416
+ export type Rank3 = "Rank3";
417
+ }
476
418
 
477
- export type NumMap<K, V> = Partial<Record<K, V>>;
419
+ export type AirStateRank =
420
+ | AirStateRank.Rank0
421
+ | AirStateRank.Rank1
422
+ | AirStateRank.Rank2
423
+ | AirStateRank.Rank3;
478
424
 
479
- type __ShellingSpecialAttackDayCutin = DayCutin;
480
- type __ShellingSpecialAttackFleetCutin = FleetCutin;
481
- declare namespace ShellingSpecialAttack {
482
- export type DayCutin = { DayCutin: __ShellingSpecialAttackDayCutin };
483
- export type FleetCutin = { FleetCutin: __ShellingSpecialAttackFleetCutin };
425
+ declare namespace AirState {
426
+ export type AirSupremacy = "AirSupremacy";
427
+ export type AirSuperiority = "AirSuperiority";
428
+ export type AirParity = "AirParity";
429
+ export type AirDenial = "AirDenial";
430
+ export type AirIncapability = "AirIncapability";
484
431
  }
485
432
 
486
- export type ShellingSpecialAttack =
487
- | ShellingSpecialAttack.DayCutin
488
- | ShellingSpecialAttack.FleetCutin;
433
+ export type AirState =
434
+ | AirState.AirSupremacy
435
+ | AirState.AirSuperiority
436
+ | AirState.AirParity
437
+ | AirState.AirDenial
438
+ | AirState.AirIncapability;
489
439
 
490
- declare namespace DayCutin {
491
- export type Zuiun = "Zuiun";
492
- export type AirSea = "AirSea";
493
- export type MainMain = "MainMain";
494
- export type MainAp = "MainAp";
495
- export type MainRadar = "MainRadar";
496
- export type MainSec = "MainSec";
497
- export type DoubleAttack = "DoubleAttack";
498
- export type FBA = "FBA";
499
- export type BBA = "BBA";
500
- export type BA = "BA";
440
+ declare namespace Side {
441
+ export type Player = "Player";
442
+ export type Enemy = "Enemy";
501
443
  }
502
444
 
503
- export type DayCutin =
504
- | DayCutin.Zuiun
505
- | DayCutin.AirSea
506
- | DayCutin.MainMain
507
- | DayCutin.MainAp
508
- | DayCutin.MainRadar
509
- | DayCutin.MainSec
510
- | DayCutin.DoubleAttack
511
- | DayCutin.FBA
512
- | DayCutin.BBA
513
- | DayCutin.BA;
445
+ export type Side = Side.Player | Side.Enemy;
514
446
 
515
447
  declare namespace Role {
516
448
  export type Main = "Main";
@@ -519,6 +451,28 @@ declare namespace Role {
519
451
 
520
452
  export type Role = Role.Main | Role.Escort;
521
453
 
454
+ export interface ShipPosition {
455
+ org_type?: OrgType;
456
+ fleet_type?: FleetType;
457
+ fleet_len?: number;
458
+ index?: number;
459
+ }
460
+
461
+ export interface CompMeta {
462
+ fleets: Record<FleetType, FleetMeta>;
463
+ }
464
+
465
+ export interface FleetMeta {
466
+ id: string;
467
+ len: number;
468
+ ships: [string, ShipMeta | null][];
469
+ }
470
+
471
+ export interface ShipMeta {
472
+ id: string;
473
+ ship_id: number;
474
+ }
475
+
522
476
  declare namespace Engagement {
523
477
  export type GreenT = "GreenT";
524
478
  export type Parallel = "Parallel";
@@ -532,32 +486,79 @@ export type Engagement =
532
486
  | Engagement.HeadOn
533
487
  | Engagement.RedT;
534
488
 
535
- export interface ShipEnvironment {
536
- org_type?: OrgType;
537
- role?: Role;
538
- index?: number;
539
- fleet_len?: number;
540
- formation?: Formation;
541
- fleet_los_mod?: number | null;
542
- night_conditions?: NightConditions;
489
+ export type TorpedoAttackType = null;
490
+
491
+ type __NightPhaseAttackTypeAswAttackType = AswAttackType;
492
+ type __NightPhaseAttackTypeNightAttackType = NightAttackType;
493
+ declare namespace NightPhaseAttackType {
494
+ export type Night = { t: "Night"; c: __NightPhaseAttackTypeNightAttackType };
495
+ export type Asw = { t: "Asw"; c: __NightPhaseAttackTypeAswAttackType };
496
+ }
497
+
498
+ export type NightPhaseAttackType =
499
+ | NightPhaseAttackType.Night
500
+ | NightPhaseAttackType.Asw;
501
+
502
+ type __DayPhaseAttackTypeAswAttackType = AswAttackType;
503
+ type __DayPhaseAttackTypeShellingType = ShellingType;
504
+ declare namespace DayPhaseAttackType {
505
+ export type Shelling = { t: "Shelling"; c: __DayPhaseAttackTypeShellingType };
506
+ export type Asw = { t: "Asw"; c: __DayPhaseAttackTypeAswAttackType };
507
+ }
508
+
509
+ export type DayPhaseAttackType =
510
+ | DayPhaseAttackType.Shelling
511
+ | DayPhaseAttackType.Asw;
512
+
513
+ type __AttackTypeAswAttackType = AswAttackType;
514
+ type __AttackTypeNightAttackType = NightAttackType;
515
+ type __AttackTypeShellingType = ShellingType;
516
+ type __AttackTypeSupportShellingType = SupportShellingType;
517
+ declare namespace AttackType {
518
+ export type Asw = { t: "Asw"; c: __AttackTypeAswAttackType };
519
+ export type Shelling = { t: "Shelling"; c: __AttackTypeShellingType };
520
+ export type Night = { t: "Night"; c: __AttackTypeNightAttackType };
521
+ export type Torpedo = { t: "Torpedo"; c: null };
522
+ export type SupportShelling = {
523
+ t: "SupportShelling";
524
+ c: __AttackTypeSupportShellingType;
525
+ };
543
526
  }
544
527
 
545
- export interface NightConditions {
546
- night_contact_rank?: ContactRank | null;
547
- starshell_index?: number | null;
548
- searchlight_index?: number | null;
528
+ export type AttackType =
529
+ | AttackType.Asw
530
+ | AttackType.Shelling
531
+ | AttackType.Night
532
+ | AttackType.Torpedo
533
+ | AttackType.SupportShelling;
534
+
535
+ export type SupportShellingType = ShellingType;
536
+
537
+ declare namespace NightAttackType {
538
+ export type Normal = "Normal";
539
+ export type Swordfish = "Swordfish";
540
+ export type Carrier = "Carrier";
549
541
  }
550
542
 
551
- export interface BattleConditions {
552
- org_type: OrgType;
553
- role: Role;
554
- ship_index: number;
555
- fleet_len: number;
556
- formation: Formation;
557
- fleet_los_mod: number | null;
558
- night_conditions: NightConditions;
543
+ export type NightAttackType =
544
+ | NightAttackType.Normal
545
+ | NightAttackType.Swordfish
546
+ | NightAttackType.Carrier;
547
+
548
+ declare namespace ShellingType {
549
+ export type Normal = "Normal";
550
+ export type Carrier = "Carrier";
551
+ }
552
+
553
+ export type ShellingType = ShellingType.Normal | ShellingType.Carrier;
554
+
555
+ declare namespace AswAttackType {
556
+ export type DepthCharge = "DepthCharge";
557
+ export type Aircraft = "Aircraft";
559
558
  }
560
559
 
560
+ export type AswAttackType = AswAttackType.DepthCharge | AswAttackType.Aircraft;
561
+
561
562
  export interface MasterData {
562
563
  gears: MasterGear[];
563
564
  gear_attrs: MasterAttrRule<GearAttr>[];
@@ -584,26 +585,33 @@ export interface MasterAttrRule<T> {
584
585
  expr: string;
585
586
  }
586
587
 
587
- export interface CompDayCutinRateInfo {
588
- main: FleetDayCutinRateInfo;
589
- escort: FleetDayCutinRateInfo | null;
588
+ export interface NodeAttackAnalyzerShipConfig extends NightFleetConditions {
589
+ formation?: Formation;
590
590
  }
591
591
 
592
- export interface FleetDayCutinRateInfo {
593
- fleet_los_mod: number | null;
594
- ships: ShipDayCutinRateInfo[];
592
+ export interface NodeAttackAnalyzerConfig {
593
+ air_state?: AirState;
594
+ engagement?: Engagement;
595
+ left?: NodeAttackAnalyzerShipConfig;
596
+ right?: NodeAttackAnalyzerShipConfig;
595
597
  }
596
598
 
597
- export interface ShipDayCutinRateInfo {
598
- ship_id: number;
599
- air_supremacy: DayCutinRateInfo;
600
- air_superiority: DayCutinRateInfo;
599
+ export interface NodeAttackAnalysis {
600
+ left: AttackAnalysis;
601
+ right: AttackAnalysis;
601
602
  }
602
603
 
603
- export interface DayCutinRateInfo {
604
- observation_term: number | null;
605
- rates: [DayCutin | null, number | null][];
606
- total_cutin_rate: number | null;
604
+ export interface AttackAnalyzerConfig {
605
+ air_state?: AirState;
606
+ engagement?: Engagement;
607
+ attacker?: AttackAnalyzerShipConfig;
608
+ target?: AttackAnalyzerShipConfig;
609
+ }
610
+
611
+ export interface AttackAnalyzerShipConfig
612
+ extends ShipConditions,
613
+ NightFleetConditions {
614
+ fleet_los_mod?: number | null;
607
615
  }
608
616
 
609
617
  export interface EBonuses {
@@ -646,25 +654,56 @@ export interface GearInput {
646
654
 
647
655
  export type GearVecInput = GearInput[];
648
656
 
649
- export interface ShellingSupportSimulatorParams {
650
- attacker_formation?: Formation;
651
- target_formation?: Formation;
652
- engagement: Engagement;
657
+ declare namespace ShipAttr {
658
+ export type Unknown = "Unknown";
659
+ export type Abyssal = "Abyssal";
660
+ export type NightCarrier = "NightCarrier";
661
+ export type Installation = "Installation";
662
+ export type RoyalNavy = "RoyalNavy";
663
+ export type Kai2 = "Kai2";
664
+ export type TurbineSpeedBonus = "TurbineSpeedBonus";
665
+ export type Pillbox = "Pillbox";
666
+ export type IsolatedIsland = "IsolatedIsland";
667
+ export type HarbourSummerPrincess = "HarbourSummerPrincess";
668
+ export type SupplyDepot = "SupplyDepot";
669
+ export type PtImp = "PtImp";
670
+ export type BattleshipSummerPrincess = "BattleshipSummerPrincess";
671
+ export type HeavyCruiserSummerPrincess = "HeavyCruiserSummerPrincess";
653
672
  }
654
673
 
655
- export interface DamageInfo {
656
- miss_damage_min: number;
657
- miss_damage_max: number;
658
- normal_damage_min: number;
659
- normal_damage_max: number;
660
- critical_damage_min: number;
661
- critical_damage_max: number;
662
- normal_scratch_rate: number;
663
- critical_scratch_rate: number;
664
- damage_map: NumMap<number, number>;
665
- damage_state_map: NumMap<DamageState, number>;
674
+ export type ShipAttr =
675
+ | ShipAttr.Unknown
676
+ | ShipAttr.Abyssal
677
+ | ShipAttr.NightCarrier
678
+ | ShipAttr.Installation
679
+ | ShipAttr.RoyalNavy
680
+ | ShipAttr.Kai2
681
+ | ShipAttr.TurbineSpeedBonus
682
+ | ShipAttr.Pillbox
683
+ | ShipAttr.IsolatedIsland
684
+ | ShipAttr.HarbourSummerPrincess
685
+ | ShipAttr.SupplyDepot
686
+ | ShipAttr.PtImp
687
+ | ShipAttr.BattleshipSummerPrincess
688
+ | ShipAttr.HeavyCruiserSummerPrincess;
689
+
690
+ declare namespace OrgType {
691
+ export type Single = "Single";
692
+ export type CarrierTaskForce = "CarrierTaskForce";
693
+ export type SurfaceTaskForce = "SurfaceTaskForce";
694
+ export type TransportEscort = "TransportEscort";
695
+ export type EnemySingle = "EnemySingle";
696
+ export type EnemyCombined = "EnemyCombined";
666
697
  }
667
698
 
699
+ export type OrgType =
700
+ | OrgType.Single
701
+ | OrgType.CarrierTaskForce
702
+ | OrgType.SurfaceTaskForce
703
+ | OrgType.TransportEscort
704
+ | OrgType.EnemySingle
705
+ | OrgType.EnemyCombined;
706
+
668
707
  declare namespace GearAttr {
669
708
  export type Unknown = "Unknown";
670
709
  export type Abyssal = "Abyssal";
@@ -681,6 +720,7 @@ declare namespace GearAttr {
681
720
  export type SynergisticDepthCharge = "SynergisticDepthCharge";
682
721
  export type AntiSubMortar = "AntiSubMortar";
683
722
  export type AntiSubWeapon = "AntiSubWeapon";
723
+ export type ApDepthCharge = "ApDepthCharge";
684
724
  export type AntiSubAircraft = "AntiSubAircraft";
685
725
  export type LateModelBowTorpedo = "LateModelBowTorpedo";
686
726
  export type Seaplane = "Seaplane";
@@ -697,36 +737,172 @@ declare namespace GearAttr {
697
737
  export type HighAltitudeInterceptor = "HighAltitudeInterceptor";
698
738
  }
699
739
 
700
- export type GearAttr =
701
- | GearAttr.Unknown
702
- | GearAttr.Abyssal
703
- | GearAttr.HighAngleMount
704
- | GearAttr.NightFighter
705
- | GearAttr.NightAttacker
706
- | GearAttr.HeavyBomber
707
- | GearAttr.NightRecon
708
- | GearAttr.MainGun
709
- | GearAttr.Radar
710
- | GearAttr.SurfaceRadar
711
- | GearAttr.AirRadar
712
- | GearAttr.DepthChargeProjector
713
- | GearAttr.SynergisticDepthCharge
714
- | GearAttr.AntiSubMortar
715
- | GearAttr.AntiSubWeapon
716
- | GearAttr.AntiSubAircraft
717
- | GearAttr.LateModelBowTorpedo
718
- | GearAttr.Seaplane
719
- | GearAttr.CbAircraft
720
- | GearAttr.LbAircraft
721
- | GearAttr.JetAircraft
722
- | GearAttr.Fighter
723
- | GearAttr.Recon
724
- | GearAttr.ObservationSeaplane
725
- | GearAttr.CbFighterBomber
726
- | GearAttr.AntiInstDiveBomber
727
- | GearAttr.CbSwordfish
728
- | GearAttr.SemiNightPlane
729
- | GearAttr.HighAltitudeInterceptor;
740
+ export type GearAttr =
741
+ | GearAttr.Unknown
742
+ | GearAttr.Abyssal
743
+ | GearAttr.HighAngleMount
744
+ | GearAttr.NightFighter
745
+ | GearAttr.NightAttacker
746
+ | GearAttr.HeavyBomber
747
+ | GearAttr.NightRecon
748
+ | GearAttr.MainGun
749
+ | GearAttr.Radar
750
+ | GearAttr.SurfaceRadar
751
+ | GearAttr.AirRadar
752
+ | GearAttr.DepthChargeProjector
753
+ | GearAttr.SynergisticDepthCharge
754
+ | GearAttr.AntiSubMortar
755
+ | GearAttr.AntiSubWeapon
756
+ | GearAttr.ApDepthCharge
757
+ | GearAttr.AntiSubAircraft
758
+ | GearAttr.LateModelBowTorpedo
759
+ | GearAttr.Seaplane
760
+ | GearAttr.CbAircraft
761
+ | GearAttr.LbAircraft
762
+ | GearAttr.JetAircraft
763
+ | GearAttr.Fighter
764
+ | GearAttr.Recon
765
+ | GearAttr.ObservationSeaplane
766
+ | GearAttr.CbFighterBomber
767
+ | GearAttr.AntiInstDiveBomber
768
+ | GearAttr.CbSwordfish
769
+ | GearAttr.SemiNightPlane
770
+ | GearAttr.HighAltitudeInterceptor;
771
+
772
+ export interface SupportShellingStyle {
773
+ tag: "SupportShellingStyle";
774
+ attack_type: SupportShellingType;
775
+ }
776
+
777
+ type __NightPhaseAttackStyleAswAttackStyle = AswAttackStyle;
778
+ type __NightPhaseAttackStyleNightAttackStyle = NightAttackStyle;
779
+ declare namespace NightPhaseAttackStyle {
780
+ export type Night = __NightPhaseAttackStyleNightAttackStyle;
781
+ export type Asw = __NightPhaseAttackStyleAswAttackStyle;
782
+ }
783
+
784
+ export type NightPhaseAttackStyle =
785
+ | NightPhaseAttackStyle.Night
786
+ | NightPhaseAttackStyle.Asw;
787
+
788
+ type __DayPhaseAttackStyleAswAttackStyle = AswAttackStyle;
789
+ type __DayPhaseAttackStyleShellingStyle = ShellingStyle;
790
+ declare namespace DayPhaseAttackStyle {
791
+ export type Shelling = __DayPhaseAttackStyleShellingStyle;
792
+ export type Asw = __DayPhaseAttackStyleAswAttackStyle;
793
+ }
794
+
795
+ export type DayPhaseAttackStyle =
796
+ | DayPhaseAttackStyle.Shelling
797
+ | DayPhaseAttackStyle.Asw;
798
+
799
+ export interface TorpedoAttackStyle {
800
+ tag: "TorpedoAttackStyle";
801
+ attack_type: TorpedoAttackType;
802
+ }
803
+
804
+ export interface AswAttackStyle {
805
+ tag: "AswAttackStyle";
806
+ attack_type: AswAttackType;
807
+ }
808
+
809
+ export interface NightAttackStyle {
810
+ tag: "NightAttackStyle";
811
+ attack_type: NightAttackType;
812
+ cutin: NightCutinLike | null;
813
+ power_mod: number;
814
+ accuracy_mod: number;
815
+ hits: number;
816
+ }
817
+
818
+ export interface ShellingStyle {
819
+ tag: "ShellingStyle";
820
+ attack_type: ShellingType;
821
+ cutin: DayCutinLike | null;
822
+ power_mod: number;
823
+ accuracy_mod: number;
824
+ hits: number;
825
+ }
826
+
827
+ export interface MasterIBonuses {
828
+ shelling_power: MasterIBonusRule[];
829
+ carrier_shelling_power: MasterIBonusRule[];
830
+ shelling_accuracy: MasterIBonusRule[];
831
+ torpedo_power: MasterIBonusRule[];
832
+ torpedo_accuracy: MasterIBonusRule[];
833
+ torpedo_evasion: MasterIBonusRule[];
834
+ asw_power: MasterIBonusRule[];
835
+ asw_accuracy: MasterIBonusRule[];
836
+ night_power: MasterIBonusRule[];
837
+ night_accuracy: MasterIBonusRule[];
838
+ defense_power: MasterIBonusRule[];
839
+ contact_selection: MasterIBonusRule[];
840
+ fighter_power: MasterIBonusRule[];
841
+ ship_anti_air: MasterIBonusRule[];
842
+ fleet_anti_air: MasterIBonusRule[];
843
+ elos: MasterIBonusRule[];
844
+ }
845
+
846
+ export interface MasterIBonusRule {
847
+ expr: CompiledEvaler;
848
+ formula: CompiledEvaler;
849
+ }
850
+
851
+ export interface NightContactChance {
852
+ rank1: number;
853
+ rank2: number;
854
+ rank3: number;
855
+ }
856
+
857
+ export interface CompNightCutinAnalysis {
858
+ night_contact_chance: NightContactChance;
859
+ ships: ShipNightCutinAnalysis[];
860
+ }
861
+
862
+ export interface ShipNightCutinAnalysis {
863
+ ship_id: number;
864
+ index: number;
865
+ normal: NightCutinActionReport;
866
+ chuuha: NightCutinActionReport;
867
+ }
868
+
869
+ export interface NightCutinActionReport
870
+ extends ActionReport<NightPhaseAttackStyle> {
871
+ cutin_term: number | null;
872
+ }
873
+
874
+ export interface DamageReport {
875
+ miss_damage_min: number;
876
+ miss_damage_max: number;
877
+ normal_damage_min: number;
878
+ normal_damage_max: number;
879
+ critical_damage_min: number;
880
+ critical_damage_max: number;
881
+ normal_scratch_rate: number;
882
+ critical_scratch_rate: number;
883
+ damage_density: Histogram<number, number>;
884
+ damage_state_density: Histogram<DamageState, number>;
885
+ }
886
+
887
+ export interface CompAntiAirAnalysis {
888
+ fleet_adjusted_anti_air: number;
889
+ ships: AntiAirReport[];
890
+ anti_air_cutin_chance: [number, number][];
891
+ }
892
+
893
+ export interface AntiAirReport {
894
+ ship_id: number;
895
+ role: Role;
896
+ index: number;
897
+ adjusted_anti_air: number | null;
898
+ proportional_shotdown_rate: number | null;
899
+ fixed_shotdown_number: number | null;
900
+ guaranteed: number | null;
901
+ anti_air_cutin_chance: [number, number][];
902
+ anti_air_propellant_barrage_chance: number | null;
903
+ }
904
+
905
+ export type Histogram<K, V> = Partial<Record<K, V>>;
730
906
 
731
907
  type __FormationCombinedFormation = CombinedFormation;
732
908
  type __FormationSingleFormation = SingleFormation;
@@ -767,6 +943,19 @@ export type SingleFormation =
767
943
  | SingleFormation.LineAbreast
768
944
  | SingleFormation.Vanguard;
769
945
 
946
+ declare namespace FleetType {
947
+ export type Main = "Main";
948
+ export type Escort = "Escort";
949
+ export type RouteSup = "RouteSup";
950
+ export type BossSup = "BossSup";
951
+ }
952
+
953
+ export type FleetType =
954
+ | FleetType.Main
955
+ | FleetType.Escort
956
+ | FleetType.RouteSup
957
+ | FleetType.BossSup;
958
+
770
959
  export interface CustomPowerModifiers {
771
960
  precap_mod?: AttackPowerModifier;
772
961
  postcap_mod?: AttackPowerModifier;
@@ -789,27 +978,6 @@ export interface AttackPowerModifier {
789
978
  b?: number;
790
979
  }
791
980
 
792
- export interface WarfareInfo {
793
- day: AttackInfo<DayBattleAttackType, DayCutin | null> | null;
794
- closing_torpedo: AttackInfo<null, null> | null;
795
- night: AttackInfo<NightBattleAttackType, NightCutin | null> | null;
796
- shelling_support: AttackInfo<null, null> | null;
797
- opening_asw: AttackInfo<null, null> | null;
798
- }
799
-
800
- declare namespace FleetType {
801
- export type Main = "Main";
802
- export type Escort = "Escort";
803
- export type RouteSup = "RouteSup";
804
- export type BossSup = "BossSup";
805
- }
806
-
807
- export type FleetType =
808
- | FleetType.Main
809
- | FleetType.Escort
810
- | FleetType.RouteSup
811
- | FleetType.BossSup;
812
-
813
981
  export interface MasterEquippable {
814
982
  equip_stype: EquipStype[];
815
983
  equip_exslot: number[];
@@ -832,14 +1000,20 @@ export interface EquipStype {
832
1000
  equip_type: number[];
833
1001
  }
834
1002
 
835
- declare namespace ShellingAttackType {
836
- export type Normal = "Normal";
837
- export type Carrier = "Carrier";
1003
+ export interface HitRate {
1004
+ normal: number;
1005
+ critical: number;
1006
+ total: number;
838
1007
  }
839
1008
 
840
- export type ShellingAttackType =
841
- | ShellingAttackType.Normal
842
- | ShellingAttackType.Carrier;
1009
+ export interface HitRateParams {
1010
+ accuracy_term: number;
1011
+ evasion_term: number;
1012
+ target_morale_mod: number;
1013
+ critical_rate_constant: number;
1014
+ critical_percentage_bonus: number;
1015
+ hit_percentage_bonus: number;
1016
+ }
843
1017
 
844
1018
  export interface AttackPower {
845
1019
  precap: number;
@@ -858,7 +1032,7 @@ export interface AttackPowerParams {
858
1032
  postcap_mod: AttackPowerModifier;
859
1033
  ap_shell_mod: number | null;
860
1034
  carrier_power: number | null;
861
- proficiency_critical_mod: number | null;
1035
+ proficiency_critical_mod: number;
862
1036
  armor_penetration: number;
863
1037
  remaining_ammo_mod: number;
864
1038
  special_enemy_mods: SpecialEnemyModifiers;
@@ -876,49 +1050,32 @@ export interface SpecialEnemyModifiers {
876
1050
  pt_mod: AttackPowerModifier;
877
1051
  }
878
1052
 
879
- export interface AttackInfo<AttackType, Cutin> {
880
- attack_type: AttackType;
881
- items: AttackInfoItem<Cutin>[];
882
- damage_state_map: NumMap<DamageState, number> | null;
1053
+ export interface CompDayCutinAnalysis {
1054
+ rank3_air_state: AirState;
1055
+ rank2_air_state: AirState;
1056
+ main_fleet_los_mod: number | null;
1057
+ escort_fleet_los_mod: number | null;
1058
+ ships: ShipDayCutinAnalysis[];
883
1059
  }
884
1060
 
885
- export interface AttackInfoItem<Cutin> {
886
- cutin: Cutin;
887
- rate: number | null;
888
- stats: AttackStats;
889
- }
890
-
891
- export interface AttackStats {
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: DamageInfo | null;
898
- }
899
-
900
- export interface CompAntiAirInfo {
901
- fleet_adjusted_anti_air: number;
902
- ships: ShipAntiAirInfo[];
903
- anti_air_cutin_chance: [number, number][];
1061
+ export interface ShipDayCutinAnalysis {
1062
+ ship_id: number;
1063
+ role: Role;
1064
+ index: number;
1065
+ rank3: DayCutinReport;
1066
+ rank2: DayCutinReport;
904
1067
  }
905
1068
 
906
- export interface ShipAntiAirInfo {
907
- ship_id: number;
908
- adjusted_anti_air: number | null;
909
- proportional_shotdown_rate: number | null;
910
- fixed_shotdown_number: number | null;
911
- guaranteed: number | null;
912
- anti_air_cutin_chance: [number, number][];
913
- anti_air_propellant_barrage_chance: number | null;
1069
+ export interface DayCutinReport extends ActionReport<DayPhaseAttackStyle> {
1070
+ observation_term: number | null;
914
1071
  }
915
1072
 
916
- export interface CompContactChanceInfo {
917
- single: AirstrikeContactChance[] | null;
918
- combined: AirstrikeContactChance[] | null;
1073
+ export interface ContactAnalysis {
1074
+ single: DayContactChance[] | null;
1075
+ combined: DayContactChance[] | null;
919
1076
  }
920
1077
 
921
- export interface AirstrikeContactChance {
1078
+ export interface DayContactChance {
922
1079
  air_state: AirState;
923
1080
  trigger_rate: number;
924
1081
  rank3: number;
@@ -927,142 +1084,15 @@ export interface AirstrikeContactChance {
927
1084
  total: number;
928
1085
  }
929
1086
 
930
- export type SlotSizeVec = (number | null)[];
931
-
932
- declare namespace Side {
933
- export type Player = "Player";
934
- export type Enemy = "Enemy";
935
- }
936
-
937
- export type Side = Side.Player | Side.Enemy;
938
-
939
- declare namespace NightAttackType {
940
- export type Normal = "Normal";
941
- export type ArkRoyal = "ArkRoyal";
942
- export type Carrier = "Carrier";
943
- }
944
-
945
- export type NightAttackType =
946
- | NightAttackType.Normal
947
- | NightAttackType.ArkRoyal
948
- | NightAttackType.Carrier;
949
-
950
- type __NightSpecialAttackFleetCutin = FleetCutin;
951
- type __NightSpecialAttackNightCutin = NightCutin;
952
- declare namespace NightSpecialAttack {
953
- export type NightCutin = { NightCutin: __NightSpecialAttackNightCutin };
954
- export type FleetCutin = { FleetCutin: __NightSpecialAttackFleetCutin };
955
- }
956
-
957
- export type NightSpecialAttack =
958
- | NightSpecialAttack.NightCutin
959
- | NightSpecialAttack.FleetCutin;
960
-
961
- declare namespace NightCutin {
962
- export type MainTorpRadar = "MainTorpRadar";
963
- export type TorpLookoutRadar = "TorpLookoutRadar";
964
- export type TorpTsloTorp = "TorpTsloTorp";
965
- export type TorpTsloDrum = "TorpTsloDrum";
966
- export type DoubleAttack = "DoubleAttack";
967
- export type TorpTorpMain = "TorpTorpMain";
968
- export type TorpTorpTorp = "TorpTorpTorp";
969
- export type MainMainSec = "MainMainSec";
970
- export type MainMainMain = "MainMainMain";
971
- export type SubTorpTorp = "SubTorpTorp";
972
- export type SubRadarTorp = "SubRadarTorp";
973
- export type Cvci1_25 = "Cvci1_25";
974
- export type Cvci1_20 = "Cvci1_20";
975
- export type Cvci1_18 = "Cvci1_18";
976
- export type Photobomber = "Photobomber";
977
- }
978
-
979
- export type NightCutin =
980
- | NightCutin.MainTorpRadar
981
- | NightCutin.TorpLookoutRadar
982
- | NightCutin.TorpTsloTorp
983
- | NightCutin.TorpTsloDrum
984
- | NightCutin.DoubleAttack
985
- | NightCutin.TorpTorpMain
986
- | NightCutin.TorpTorpTorp
987
- | NightCutin.MainMainSec
988
- | NightCutin.MainMainMain
989
- | NightCutin.SubTorpTorp
990
- | NightCutin.SubRadarTorp
991
- | NightCutin.Cvci1_25
992
- | NightCutin.Cvci1_20
993
- | NightCutin.Cvci1_18
994
- | NightCutin.Photobomber;
995
-
996
- declare namespace ContactRank {
997
- export type Rank1 = "Rank1";
998
- export type Rank2 = "Rank2";
999
- export type Rank3 = "Rank3";
1000
- }
1001
-
1002
- export type ContactRank =
1003
- | ContactRank.Rank1
1004
- | ContactRank.Rank2
1005
- | ContactRank.Rank3;
1006
-
1007
- export interface BattleDefinitions {
1008
- formation: Record<Formation, NestedFormationDef>;
1009
- anti_air_cutin: Record<number, AntiAirCutinDef>;
1010
- day_cutin: Record<DayCutin, DayCutinDef>;
1011
- night_cutin: Record<NightCutin, NightCutinDef>;
1012
- }
1013
-
1014
- export interface NightCutinDef {
1015
- tag: NightCutin;
1016
- hits: number;
1017
- type_factor: number | null;
1018
- power_mod: number | null;
1019
- accuracy_mod: number | null;
1020
- }
1021
-
1022
- export interface DayCutinDef {
1023
- tag: DayCutin;
1024
- hits: number;
1025
- type_factor: number | null;
1026
- power_mod: number | null;
1027
- accuracy_mod: number | null;
1028
- }
1029
-
1030
- export interface AntiAirCutinDef {
1031
- id: number;
1032
- type_factor: number | null;
1033
- multiplier: number | null;
1034
- guaranteed: number | null;
1035
- sequential: boolean | null;
1036
- }
1037
-
1038
- type __NestedFormationDefFormationDef = FormationDef;
1039
- declare namespace NestedFormationDef {
1040
- export type Normal = __NestedFormationDefFormationDef;
1041
- export type Vanguard = {
1042
- top_half: __NestedFormationDefFormationDef;
1043
- bottom_half: __NestedFormationDefFormationDef;
1044
- };
1045
- }
1046
-
1047
- export type NestedFormationDef =
1048
- | NestedFormationDef.Normal
1049
- | NestedFormationDef.Vanguard;
1050
-
1051
- export interface FormationDef {
1052
- tag: Formation;
1053
- protection_rate: number | null;
1054
- fleet_anti_air_mod: number;
1055
- shelling: FormationWarfareDef;
1056
- torpedo: FormationWarfareDef;
1057
- asw: FormationWarfareDef;
1058
- night: FormationWarfareDef;
1059
- shelling_support: FormationWarfareDef;
1060
- }
1061
-
1062
- export interface FormationWarfareDef {
1063
- power_mod: number | null;
1064
- accuracy_mod: number | null;
1065
- evasion_mod: number | null;
1087
+ export interface AttackAnalysis {
1088
+ attacker_is_player: boolean;
1089
+ attacker_ship_id: number;
1090
+ target_ship_id: number;
1091
+ day: ActionReport<DayPhaseAttackStyle>;
1092
+ night: ActionReport<NightPhaseAttackStyle>;
1093
+ closing_torpedo: ActionReport<TorpedoAttackStyle>;
1094
+ opening_asw: ActionReport<AswAttackStyle>;
1095
+ support_shelling: ActionReport<SupportShellingStyle>;
1066
1096
  }
1067
1097
 
1068
1098
  export interface MasterShip {
@@ -1081,94 +1111,59 @@ export interface MasterShip {
1081
1111
  asw: StatInterval;
1082
1112
  los: StatInterval;
1083
1113
  luck: StatInterval;
1084
- torpedo_accuracy?: number;
1085
- basic_evasion_term?: number;
1086
- speed: number;
1087
- range?: number;
1088
- fuel?: number;
1089
- ammo?: number;
1090
- next_id?: number;
1091
- next_level?: number;
1092
- slotnum: number;
1093
- slots: SlotSizeVec;
1094
- stock: GearState[];
1095
- speed_group?: SpeedGroup;
1096
- useful?: boolean;
1097
- }
1098
-
1099
- export type StatInterval = [number | null, number | null];
1100
-
1101
- export interface MasterGear {
1102
- gear_id: number;
1103
- name: string;
1104
- types: GearTypeIdArray;
1105
- special_type?: number;
1106
- max_hp?: number;
1107
- firepower?: number;
1108
- armor?: number;
1109
- torpedo?: number;
1110
- anti_air?: number;
1111
- speed?: number;
1112
- bombing?: number;
1113
- asw?: number;
1114
- los?: number;
1115
- luck?: number;
1116
- accuracy?: number;
1117
- evasion?: number;
1114
+ torpedo_accuracy?: number;
1115
+ basic_evasion_term?: number;
1116
+ speed: number;
1118
1117
  range?: number;
1119
- radius?: number;
1120
- cost?: number;
1121
- improvable?: boolean;
1122
- ship_anti_air_resistance?: number;
1123
- fleet_anti_air_resistance?: number;
1118
+ fuel?: number;
1119
+ ammo?: number;
1120
+ next_id?: number;
1121
+ next_level?: number;
1122
+ slotnum: number;
1123
+ slots: SlotSizeVec;
1124
+ stock: GearState[];
1125
+ speed_group?: SpeedGroup;
1126
+ useful?: boolean;
1124
1127
  }
1125
1128
 
1126
- export interface WarfareContext {
1127
- attacker_env: ShipEnvironment;
1128
- target_env: ShipEnvironment;
1129
+ export type StatInterval = [number | null, number | null];
1130
+
1131
+ export interface CompAnalyzerConfig {
1129
1132
  engagement: Engagement;
1130
- air_state: AirState;
1133
+ formation: Formation;
1134
+ anti_air_cutin: number | null;
1135
+ ship_anti_air_resist: number;
1136
+ fleet_anti_air_resist: number;
1137
+ left_night_fleet_conditions: NightFleetConditions;
1138
+ right_night_fleet_conditions: NightFleetConditions;
1131
1139
  }
1132
1140
 
1133
- type __NightBattleAttackTypeAswAttackType = AswAttackType;
1134
- type __NightBattleAttackTypeNightAttackType = NightAttackType;
1135
- declare namespace NightBattleAttackType {
1136
- export type NightAttack = {
1137
- t: "NightAttack";
1138
- c: __NightBattleAttackTypeNightAttackType;
1139
- };
1140
- export type Asw = { t: "Asw"; c: __NightBattleAttackTypeAswAttackType };
1141
+ export interface CompNightAnalysis {
1142
+ night_cutin: CompNightCutinAnalysis;
1143
+ fleet_cutin: FleetCutinReport<NightAttackStyle>[];
1141
1144
  }
1142
1145
 
1143
- export type NightBattleAttackType =
1144
- | NightBattleAttackType.NightAttack
1145
- | NightBattleAttackType.Asw;
1146
-
1147
- type __DayBattleAttackTypeAswAttackType = AswAttackType;
1148
- type __DayBattleAttackTypeShellingAttackType = ShellingAttackType;
1149
- declare namespace DayBattleAttackType {
1150
- export type Shelling = {
1151
- t: "Shelling";
1152
- c: __DayBattleAttackTypeShellingAttackType;
1153
- };
1154
- export type Asw = { t: "Asw"; c: __DayBattleAttackTypeAswAttackType };
1146
+ export interface CompDayAnalysis {
1147
+ day_cutin: CompDayCutinAnalysis;
1148
+ fleet_cutin: FleetCutinReport<ShellingStyle>[];
1155
1149
  }
1156
1150
 
1157
- export type DayBattleAttackType =
1158
- | DayBattleAttackType.Shelling
1159
- | DayBattleAttackType.Asw;
1160
-
1161
- export interface WarfareAnalysisResult {
1162
- player: AttackAnalysisResult;
1163
- enemy: AttackAnalysisResult;
1151
+ export interface CompAnalysis {
1152
+ day: CompDayAnalysis;
1153
+ night: CompNightAnalysis;
1154
+ contact: ContactAnalysis;
1155
+ anti_air: CompAntiAirAnalysis;
1164
1156
  }
1165
1157
 
1166
- export interface AttackAnalysisResult {
1167
- day: AttackInfo<DayBattleAttackType, DayCutin | null> | null;
1168
- closing_torpedo: AttackInfo<null, null> | null;
1169
- night: AttackInfo<NightBattleAttackType, NightCutin | null> | null;
1170
- shelling_support: AttackInfo<null, null> | null;
1171
- opening_asw: AttackInfo<null, null> | null;
1158
+ export interface AttackReport<T> {
1159
+ style: T;
1160
+ proc_rate: number | null;
1161
+ attack_power: AttackPower | null;
1162
+ attack_power_params: AttackPowerParams | null;
1163
+ hits: number;
1164
+ hit_rate: HitRate | null;
1165
+ hit_rate_params: HitRateParams | null;
1166
+ damage: DamageReport | null;
1172
1167
  }
1173
1168
 
1174
1169
  export type ShipStateMap = Record<ShipKey, ShipState>;
@@ -1280,60 +1275,177 @@ export interface GearState {
1280
1275
  stars?: number;
1281
1276
  }
1282
1277
 
1283
- export interface HitRate {
1284
- total: number;
1285
- normal: number;
1286
- critical: number;
1278
+ declare namespace SpeedGroup {
1279
+ export type A = "A";
1280
+ export type B1 = "B1";
1281
+ export type B2 = "B2";
1282
+ export type C = "C";
1287
1283
  }
1288
1284
 
1289
- export interface HitRateParams {
1290
- accuracy_term: number;
1291
- evasion_term: number;
1292
- target_morale_mod: number;
1293
- critical_rate_constant: number;
1294
- critical_percentage_bonus: number;
1295
- hit_percentage_bonus: number;
1285
+ export type SpeedGroup =
1286
+ | SpeedGroup.A
1287
+ | SpeedGroup.B1
1288
+ | SpeedGroup.B2
1289
+ | SpeedGroup.C;
1290
+
1291
+ export type SlotSizeVec = (number | null)[];
1292
+
1293
+ export interface NightFleetConditions {
1294
+ night_contact_rank?: ContactRank | null;
1295
+ starshell_index?: number | null;
1296
+ searchlight_index?: number | null;
1297
+ activates_large_searchlight?: boolean;
1298
+ }
1299
+
1300
+ export interface NightConditions {
1301
+ player?: NightFleetConditions;
1302
+ enemy?: NightFleetConditions;
1303
+ }
1304
+
1305
+ export interface BattleConditions {
1306
+ org_type: OrgType;
1307
+ role: Role;
1308
+ ship_index: number;
1309
+ fleet_len: number;
1310
+ formation: Formation;
1311
+ fleet_los_mod: number | null;
1312
+ night_conditions: NightFleetConditions;
1313
+ }
1314
+
1315
+ export interface MasterGear {
1316
+ gear_id: number;
1317
+ name: string;
1318
+ types: GearTypeIdArray;
1319
+ special_type?: number;
1320
+ max_hp?: number;
1321
+ firepower?: number;
1322
+ armor?: number;
1323
+ torpedo?: number;
1324
+ anti_air?: number;
1325
+ speed?: number;
1326
+ bombing?: number;
1327
+ asw?: number;
1328
+ los?: number;
1329
+ luck?: number;
1330
+ accuracy?: number;
1331
+ evasion?: number;
1332
+ range?: number;
1333
+ radius?: number;
1334
+ cost?: number;
1335
+ improvable?: boolean;
1336
+ ship_anti_air_resist?: number;
1337
+ fleet_anti_air_resist?: number;
1338
+ }
1339
+
1340
+ export interface ActionReport<T> {
1341
+ data: Record<string, AttackReport<T>>;
1342
+ damage_state_density: Histogram<DamageState, number> | null;
1343
+ is_active: boolean;
1296
1344
  }
1297
1345
 
1298
1346
  export type GearTypeIdArray = [number, number, number, number, number];
1299
1347
 
1300
- declare namespace ShellingAttackType {
1301
- export type Normal = "Normal";
1302
- export type Carrier = "Carrier";
1348
+ declare namespace ShipType {
1349
+ export type Unknown = "Unknown";
1350
+ export type DE = "DE";
1351
+ export type DD = "DD";
1352
+ export type CL = "CL";
1353
+ export type CLT = "CLT";
1354
+ export type CA = "CA";
1355
+ export type CAV = "CAV";
1356
+ export type CVL = "CVL";
1357
+ export type FBB = "FBB";
1358
+ export type BB = "BB";
1359
+ export type BBV = "BBV";
1360
+ export type CV = "CV";
1361
+ export type XBB = "XBB";
1362
+ export type SS = "SS";
1363
+ export type SSV = "SSV";
1364
+ export type AP = "AP";
1365
+ export type AV = "AV";
1366
+ export type LHA = "LHA";
1367
+ export type CVB = "CVB";
1368
+ export type AR = "AR";
1369
+ export type AS = "AS";
1370
+ export type CT = "CT";
1371
+ export type AO = "AO";
1303
1372
  }
1304
1373
 
1305
- export type ShellingAttackType =
1306
- | ShellingAttackType.Normal
1307
- | ShellingAttackType.Carrier;
1374
+ export type ShipType =
1375
+ | ShipType.Unknown
1376
+ | ShipType.DE
1377
+ | ShipType.DD
1378
+ | ShipType.CL
1379
+ | ShipType.CLT
1380
+ | ShipType.CA
1381
+ | ShipType.CAV
1382
+ | ShipType.CVL
1383
+ | ShipType.FBB
1384
+ | ShipType.BB
1385
+ | ShipType.BBV
1386
+ | ShipType.CV
1387
+ | ShipType.XBB
1388
+ | ShipType.SS
1389
+ | ShipType.SSV
1390
+ | ShipType.AP
1391
+ | ShipType.AV
1392
+ | ShipType.LHA
1393
+ | ShipType.CVB
1394
+ | ShipType.AR
1395
+ | ShipType.AS
1396
+ | ShipType.CT
1397
+ | ShipType.AO;
1308
1398
 
1309
- declare namespace AswAttackType {
1310
- export type DepthCharge = "DepthCharge";
1311
- export type Aircraft = "Aircraft";
1399
+ declare namespace ShipCategory {
1400
+ export type Battleship = "Battleship";
1401
+ export type AircraftCarrier = "AircraftCarrier";
1402
+ export type HeavyCruiser = "HeavyCruiser";
1403
+ export type LightCruiser = "LightCruiser";
1404
+ export type Destroyer = "Destroyer";
1405
+ export type CoastalDefenseShip = "CoastalDefenseShip";
1406
+ export type Submarine = "Submarine";
1407
+ export type AuxiliaryShip = "AuxiliaryShip";
1312
1408
  }
1313
1409
 
1314
- export type AswAttackType = AswAttackType.DepthCharge | AswAttackType.Aircraft;
1410
+ export type ShipCategory =
1411
+ | ShipCategory.Battleship
1412
+ | ShipCategory.AircraftCarrier
1413
+ | ShipCategory.HeavyCruiser
1414
+ | ShipCategory.LightCruiser
1415
+ | ShipCategory.Destroyer
1416
+ | ShipCategory.CoastalDefenseShip
1417
+ | ShipCategory.Submarine
1418
+ | ShipCategory.AuxiliaryShip;
1315
1419
 
1316
- export interface FleetNightCutinRateInfo {
1317
- night_contact_chance: NightContactChance;
1318
- ships: ShipNightCutinRateInfo[];
1420
+ declare namespace MoraleState {
1421
+ export type Sparkle = "Sparkle";
1422
+ export type Normal = "Normal";
1423
+ export type Orange = "Orange";
1424
+ export type Red = "Red";
1319
1425
  }
1320
1426
 
1321
- export interface ShipNightCutinRateInfo {
1322
- ship_id: number;
1323
- normal: NightCutinRateInfo;
1324
- chuuha: NightCutinRateInfo;
1427
+ export type MoraleState =
1428
+ | MoraleState.Sparkle
1429
+ | MoraleState.Normal
1430
+ | MoraleState.Orange
1431
+ | MoraleState.Red;
1432
+
1433
+ export interface FleetCutinAnalysis {
1434
+ shelling: FleetCutinReport<ShellingStyle>[];
1435
+ night: FleetCutinReport<NightAttackStyle>[];
1325
1436
  }
1326
1437
 
1327
- export interface NightCutinRateInfo {
1328
- cutin_term: number | null;
1329
- rates: [NightCutin | null, number | null][];
1438
+ export interface FleetCutinReport<T> {
1439
+ cutin: FleetCutin;
1440
+ rate: number | null;
1441
+ formation: Formation;
1442
+ attacks: FleetCutinAttackReport<T>[];
1330
1443
  }
1331
1444
 
1332
- export interface NightContactChance {
1333
- rank1: number;
1334
- rank2: number;
1335
- rank3: number;
1336
- total: number;
1445
+ export interface FleetCutinAttackReport<T> extends AttackReport<T> {
1446
+ index: number;
1447
+ ship_id: number;
1448
+ power_mod: number;
1337
1449
  }
1338
1450
 
1339
1451
  /**
@@ -1370,71 +1482,76 @@ export class AirSquadron {
1370
1482
  radius(): number;
1371
1483
  /**
1372
1484
  */
1373
- id: string;
1485
+ hash: bigint;
1374
1486
  /**
1375
1487
  */
1376
- mode: AirSquadronMode;
1488
+ id: string;
1377
1489
  /**
1378
1490
  */
1379
- xxh3: bigint;
1491
+ mode: AirSquadronMode;
1380
1492
  }
1381
1493
  /**
1382
1494
  */
1383
1495
  export class Analyzer {
1384
1496
  free(): void;
1385
1497
  /**
1386
- * @param {Comp} comp
1387
- * @param {Formation} formation
1388
- * @param {number} ship_anti_air_resist
1389
- * @param {number} fleet_anti_air_resist
1390
- * @param {number | undefined} aaci
1391
- * @returns {CompAntiAirInfo}
1392
- */
1393
- analyze_anti_air(
1394
- comp: Comp,
1395
- formation: Formation,
1396
- ship_anti_air_resist: number,
1397
- fleet_anti_air_resist: number,
1398
- aaci?: number
1399
- ): CompAntiAirInfo;
1400
- /**
1401
- * @param {Comp} comp
1402
- * @returns {CompDayCutinRateInfo}
1403
- */
1404
- analyze_day_cutin(comp: Comp): CompDayCutinRateInfo;
1405
- /**
1406
- * @param {Comp} comp
1407
- * @param {NightConditions} attacker_conditions
1408
- * @param {NightConditions} target_conditions
1409
- * @returns {FleetNightCutinRateInfo}
1410
- */
1411
- analyze_night_cutin(
1412
- comp: Comp,
1413
- attacker_conditions: NightConditions,
1414
- target_conditions: NightConditions
1415
- ): FleetNightCutinRateInfo;
1416
- /**
1417
- * @param {Comp} comp
1418
- * @returns {CompContactChanceInfo}
1419
- */
1420
- analyze_contact_chance(comp: Comp): CompContactChanceInfo;
1421
- /**
1422
- * @param {WarfareContext} params
1498
+ * @param {AttackAnalyzerConfig} config
1423
1499
  * @param {Ship} attacker
1424
1500
  * @param {Ship} target
1425
- * @returns {WarfareInfo}
1501
+ * @returns {AttackAnalysis}
1426
1502
  */
1427
- analyze_warfare(
1428
- params: WarfareContext,
1503
+ analyze_attack(
1504
+ config: AttackAnalyzerConfig,
1429
1505
  attacker: Ship,
1430
1506
  target: Ship
1431
- ): WarfareInfo;
1507
+ ): AttackAnalysis;
1508
+ /**
1509
+ * @param {ShipAnalyzerConfig} config
1510
+ * @param {Ship} left
1511
+ * @param {Ship} right
1512
+ * @param {boolean} attacker_is_left
1513
+ * @returns {AttackAnalysis}
1514
+ */
1515
+ analyze_attack_by_ship_analyzer(
1516
+ config: ShipAnalyzerConfig,
1517
+ left: Ship,
1518
+ right: Ship,
1519
+ attacker_is_left: boolean
1520
+ ): AttackAnalysis;
1521
+ /**
1522
+ * @param {NodeAttackAnalyzerConfig} config
1523
+ * @param {Comp} left_comp
1524
+ * @param {Ship} left_ship
1525
+ * @param {Comp} right_comp
1526
+ * @param {Ship} right_ship
1527
+ * @returns {NodeAttackAnalysis}
1528
+ */
1529
+ analyze_node_attack(
1530
+ config: NodeAttackAnalyzerConfig,
1531
+ left_comp: Comp,
1532
+ left_ship: Ship,
1533
+ right_comp: Comp,
1534
+ right_ship: Ship
1535
+ ): NodeAttackAnalysis;
1432
1536
  /**
1433
1537
  * @param {Comp} comp
1434
- * @param {Engagement} engagement
1435
- * @returns {FleetCutinAnalysis}
1538
+ * @param {CompAnalyzerConfig} config
1539
+ * @returns {CompAnalysis}
1540
+ */
1541
+ analyze_comp(comp: Comp, config: CompAnalyzerConfig): CompAnalysis;
1542
+ /**
1543
+ * @param {Comp} player_comp
1544
+ * @param {Comp} enemy_comp
1545
+ * @param {NodeAttackAnalyzerConfig} config
1546
+ * @param {number} times
1547
+ * @returns {SimulatorResult}
1436
1548
  */
1437
- analyze_fleet_cutin(comp: Comp, engagement: Engagement): FleetCutinAnalysis;
1549
+ simulate_support_shelling(
1550
+ player_comp: Comp,
1551
+ enemy_comp: Comp,
1552
+ config: NodeAttackAnalyzerConfig,
1553
+ times: number
1554
+ ): SimulatorResult;
1438
1555
  }
1439
1556
  /**
1440
1557
  */
@@ -1520,12 +1637,9 @@ export class Comp {
1520
1637
  /**
1521
1638
  * @param {Ship} ship
1522
1639
  * @param {Formation | undefined} formation
1523
- * @returns {ShipEnvironment}
1640
+ * @returns {ShipConditions}
1524
1641
  */
1525
- create_warfare_ship_environment(
1526
- ship: Ship,
1527
- formation?: Formation
1528
- ): ShipEnvironment;
1642
+ get_ship_conditions(ship: Ship, formation?: Formation): ShipConditions;
1529
1643
  /**
1530
1644
  */
1531
1645
  boss_sup?: Fleet;
@@ -1534,13 +1648,13 @@ export class Comp {
1534
1648
  escort?: Fleet;
1535
1649
  /**
1536
1650
  */
1537
- hq_level: number;
1651
+ readonly hq_level: number;
1538
1652
  /**
1539
1653
  */
1540
1654
  main: Fleet;
1541
1655
  /**
1542
1656
  */
1543
- org_type: OrgType;
1657
+ readonly org_type: OrgType;
1544
1658
  /**
1545
1659
  */
1546
1660
  route_sup?: Fleet;
@@ -1601,19 +1715,6 @@ export class FhCore {
1601
1715
  * @returns {Analyzer}
1602
1716
  */
1603
1717
  create_analyzer(): Analyzer;
1604
- /**
1605
- * @param {Comp} player
1606
- * @param {Comp} enemy
1607
- * @param {ShellingSupportSimulatorParams} params
1608
- * @param {number} times
1609
- * @returns {SimulatorResult}
1610
- */
1611
- simulate_shelling_support(
1612
- player: Comp,
1613
- enemy: Comp,
1614
- params: ShellingSupportSimulatorParams,
1615
- times: number
1616
- ): SimulatorResult;
1617
1718
  }
1618
1719
  /**
1619
1720
  */
@@ -1711,13 +1812,13 @@ export class Fleet {
1711
1812
  readonly fleet_los_mod: number | undefined;
1712
1813
  /**
1713
1814
  */
1714
- id: string;
1815
+ readonly hash: bigint;
1715
1816
  /**
1716
1817
  */
1717
- len: number;
1818
+ id: string;
1718
1819
  /**
1719
1820
  */
1720
- xxh3: bigint;
1821
+ readonly len: number;
1721
1822
  }
1722
1823
  /**
1723
1824
  */
@@ -1755,7 +1856,7 @@ export class Gear {
1755
1856
  /**
1756
1857
  * @returns {number}
1757
1858
  */
1758
- proficiency_critical_power_mod(): number;
1859
+ exp_critical_bonus(): number;
1759
1860
  /**
1760
1861
  * @param {number} slot_size
1761
1862
  * @returns {number}
@@ -1833,52 +1934,55 @@ export class Gear {
1833
1934
  can_be_deployed_to_land_base(): boolean;
1834
1935
  /**
1835
1936
  */
1836
- accuracy: number;
1937
+ readonly accuracy: number;
1837
1938
  /**
1838
1939
  */
1839
1940
  readonly ace: number;
1840
1941
  /**
1841
1942
  */
1842
- anti_air: number;
1943
+ readonly anti_air: number;
1843
1944
  /**
1844
1945
  */
1845
1946
  readonly anti_bomber: number;
1846
1947
  /**
1847
1948
  */
1848
- armor: number;
1949
+ readonly armor: number;
1849
1950
  /**
1850
1951
  */
1851
- asw: number;
1952
+ readonly asw: number;
1852
1953
  /**
1853
1954
  */
1854
- bombing: number;
1955
+ readonly bombing: number;
1855
1956
  /**
1856
1957
  */
1857
- cost: number;
1958
+ readonly cost: number;
1858
1959
  /**
1859
1960
  */
1860
- default_exp: number;
1961
+ readonly default_exp: number;
1861
1962
  /**
1862
1963
  */
1863
- evasion: number;
1964
+ readonly evasion: number;
1864
1965
  /**
1865
1966
  */
1866
- exp: number;
1967
+ readonly exp: number;
1867
1968
  /**
1868
1969
  */
1869
- firepower: number;
1970
+ readonly firepower: number;
1870
1971
  /**
1871
1972
  */
1872
- fleet_anti_air_resistance: number;
1973
+ readonly fleet_anti_air_resist: number;
1873
1974
  /**
1874
1975
  */
1875
- gear_id: number;
1976
+ readonly gear_id: number;
1876
1977
  /**
1877
1978
  */
1878
- gear_type: GearType;
1979
+ readonly gear_type: GearType;
1879
1980
  /**
1880
1981
  */
1881
1982
  readonly gear_type_id: number;
1983
+ /**
1984
+ */
1985
+ readonly hash: bigint;
1882
1986
  /**
1883
1987
  */
1884
1988
  readonly icon_id: number;
@@ -1887,49 +1991,46 @@ export class Gear {
1887
1991
  id: string;
1888
1992
  /**
1889
1993
  */
1890
- improvable: boolean;
1994
+ readonly improvable: boolean;
1891
1995
  /**
1892
1996
  */
1893
1997
  readonly interception: number;
1894
1998
  /**
1895
1999
  */
1896
- los: number;
2000
+ readonly los: number;
1897
2001
  /**
1898
2002
  */
1899
- luck: number;
2003
+ readonly luck: number;
1900
2004
  /**
1901
2005
  */
1902
- max_hp: number;
2006
+ readonly max_hp: number;
1903
2007
  /**
1904
2008
  */
1905
2009
  name: string;
1906
2010
  /**
1907
2011
  */
1908
- radius: number;
2012
+ readonly radius: number;
1909
2013
  /**
1910
2014
  */
1911
- range: number;
2015
+ readonly range: number;
1912
2016
  /**
1913
2017
  */
1914
- ship_anti_air_resistance: number;
2018
+ readonly ship_anti_air_resist: number;
1915
2019
  /**
1916
2020
  */
1917
- readonly special_type_id: number;
2021
+ readonly special_type: number;
1918
2022
  /**
1919
2023
  */
1920
- speed: number;
2024
+ readonly speed: number;
1921
2025
  /**
1922
2026
  */
1923
- stars: number;
2027
+ readonly stars: number;
1924
2028
  /**
1925
2029
  */
1926
- torpedo: number;
2030
+ readonly torpedo: number;
1927
2031
  /**
1928
2032
  */
1929
2033
  types: Uint8Array;
1930
- /**
1931
- */
1932
- xxh3: bigint;
1933
2034
  }
1934
2035
  /**
1935
2036
  */
@@ -2098,22 +2199,22 @@ export class Org {
2098
2199
  boss_sup?: string;
2099
2200
  /**
2100
2201
  */
2101
- hq_level: number;
2202
+ readonly hash: bigint;
2203
+ /**
2204
+ */
2205
+ readonly hq_level: number;
2102
2206
  /**
2103
2207
  */
2104
2208
  id: string;
2105
2209
  /**
2106
2210
  */
2107
- org_type: OrgType;
2211
+ readonly org_type: OrgType;
2108
2212
  /**
2109
2213
  */
2110
2214
  route_sup?: string;
2111
2215
  /**
2112
2216
  */
2113
2217
  sortie: string;
2114
- /**
2115
- */
2116
- xxh3: bigint;
2117
2218
  }
2118
2219
  /**
2119
2220
  */
@@ -2268,6 +2369,13 @@ export class Ship {
2268
2369
  */
2269
2370
  fleet_los_factor(): number | undefined;
2270
2371
  /**
2372
+ * 加重対空
2373
+ * @param {Side} side
2374
+ * @returns {number | undefined}
2375
+ */
2376
+ ship_adjusted_anti_air(side: Side): number | undefined;
2377
+ /**
2378
+ * 艦隊対空補正
2271
2379
  * @returns {number}
2272
2380
  */
2273
2381
  fleet_anti_air_mod(): number;
@@ -2313,10 +2421,6 @@ export class Ship {
2313
2421
  * @returns {number | undefined}
2314
2422
  */
2315
2423
  ohko_power(): number | undefined;
2316
- /**
2317
- * @param {number} value
2318
- */
2319
- take_damage(value: number): void;
2320
2424
  /**
2321
2425
  * @returns {number | undefined}
2322
2426
  */
@@ -2336,7 +2440,7 @@ export class Ship {
2336
2440
  readonly accuracy: number;
2337
2441
  /**
2338
2442
  */
2339
- ammo: number;
2443
+ readonly ammo: number;
2340
2444
  /**
2341
2445
  */
2342
2446
  readonly anti_air: number | undefined;
@@ -2348,10 +2452,10 @@ export class Ship {
2348
2452
  readonly asw: number | undefined;
2349
2453
  /**
2350
2454
  */
2351
- ctype: number;
2455
+ readonly ctype: number;
2352
2456
  /**
2353
2457
  */
2354
- current_hp: number;
2458
+ readonly current_hp: number;
2355
2459
  /**
2356
2460
  */
2357
2461
  readonly evasion: number | undefined;
@@ -2360,7 +2464,10 @@ export class Ship {
2360
2464
  readonly firepower: number | undefined;
2361
2465
  /**
2362
2466
  */
2363
- fuel: number;
2467
+ readonly fuel: number;
2468
+ /**
2469
+ */
2470
+ readonly hash: bigint;
2364
2471
  /**
2365
2472
  */
2366
2473
  id: string;
@@ -2369,7 +2476,7 @@ export class Ship {
2369
2476
  readonly innate_torpedo_accuracy: number;
2370
2477
  /**
2371
2478
  */
2372
- level: number;
2479
+ readonly level: number;
2373
2480
  /**
2374
2481
  */
2375
2482
  readonly los: number | undefined;
@@ -2387,7 +2494,7 @@ export class Ship {
2387
2494
  readonly max_hp: number | undefined;
2388
2495
  /**
2389
2496
  */
2390
- morale: number;
2497
+ readonly morale: number;
2391
2498
  /**
2392
2499
  */
2393
2500
  readonly naked_anti_air: number | undefined;
@@ -2426,10 +2533,10 @@ export class Ship {
2426
2533
  readonly range: number | undefined;
2427
2534
  /**
2428
2535
  */
2429
- ship_id: number;
2536
+ readonly ship_id: number;
2430
2537
  /**
2431
2538
  */
2432
- ship_type: ShipType;
2539
+ readonly ship_type: ShipType;
2433
2540
  /**
2434
2541
  */
2435
2542
  readonly slotnum: number;
@@ -2451,9 +2558,6 @@ export class Ship {
2451
2558
  /**
2452
2559
  */
2453
2560
  readonly useful: boolean;
2454
- /**
2455
- */
2456
- xxh3: bigint;
2457
2561
  /**
2458
2562
  */
2459
2563
  readonly yomi: string;