fleethub-core 1.8.6 → 1.8.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,30 +1,14 @@
1
1
  /* tslint:disable */
2
2
  /* eslint-disable */
3
+ /**
4
+ */
5
+ export function set_panic_hook(): void;
3
6
  /**
4
7
  * @param {ShipConditions} value
5
8
  * @returns {ShipConditions}
6
9
  */
7
10
  export function parse_ship_conditions(value: ShipConditions): ShipConditions;
8
- /**
9
- */
10
- export function set_panic_hook(): void;
11
- declare namespace Side {
12
- export type Player = "Player";
13
- export type Enemy = "Enemy";
14
- }
15
-
16
- export type Side = Side.Player | Side.Enemy;
17
-
18
- export interface ShipConditions extends ShipPosition {
19
- formation?: Formation;
20
- }
21
-
22
- declare namespace Role {
23
- export type Main = "Main";
24
- export type Escort = "Escort";
25
- }
26
-
27
- export type Role = Role.Main | Role.Escort;
11
+ export type Role = "Main" | "Escort";
28
12
 
29
13
  export interface ShipPosition {
30
14
  org_type?: OrgType;
@@ -33,18 +17,22 @@ export interface ShipPosition {
33
17
  index?: number;
34
18
  }
35
19
 
36
- declare namespace Engagement {
37
- export type GreenT = "GreenT";
38
- export type Parallel = "Parallel";
39
- export type HeadOn = "HeadOn";
40
- export type RedT = "RedT";
20
+ export interface CompMeta {
21
+ fleets: Record<FleetType, FleetMeta>;
41
22
  }
42
23
 
43
- export type Engagement =
44
- | Engagement.GreenT
45
- | Engagement.Parallel
46
- | Engagement.HeadOn
47
- | Engagement.RedT;
24
+ export interface FleetMeta {
25
+ id: string;
26
+ len: number;
27
+ ships: [string, ShipMeta | null][];
28
+ }
29
+
30
+ export interface ShipMeta {
31
+ id: string;
32
+ ship_id: number;
33
+ }
34
+
35
+ export type Engagement = "GreenT" | "Parallel" | "HeadOn" | "RedT";
48
36
 
49
37
  export interface BattleDefinitions {
50
38
  formation: Record<Formation, NestedFormationDef>;
@@ -77,18 +65,9 @@ export interface AntiAirCutinDef {
77
65
  sequential: boolean | null;
78
66
  }
79
67
 
80
- type __NestedFormationDefFormationDef = FormationDef;
81
- declare namespace NestedFormationDef {
82
- export type Normal = __NestedFormationDefFormationDef;
83
- export type Vanguard = {
84
- top_half: __NestedFormationDefFormationDef;
85
- bottom_half: __NestedFormationDefFormationDef;
86
- };
87
- }
88
-
89
68
  export type NestedFormationDef =
90
- | NestedFormationDef.Normal
91
- | NestedFormationDef.Vanguard;
69
+ | FormationDef
70
+ | { top_half: FormationDef; bottom_half: FormationDef };
92
71
 
93
72
  export interface FormationDef {
94
73
  tag: Formation;
@@ -107,506 +86,315 @@ export interface FormationCombatModifiersDef {
107
86
  evasion_mod?: number;
108
87
  }
109
88
 
110
- export interface ShipAnalyzerConfig {
111
- air_state?: AirState;
112
- engagement?: Engagement;
113
- left?: AttackAnalyzerShipConfig;
114
- right?: AttackAnalyzerShipConfig;
115
- }
89
+ export type TorpedoAttackType = null;
116
90
 
117
- declare namespace SpecialEnemyType {
118
- export type None = "None";
119
- export type SoftSkinned = "SoftSkinned";
120
- export type Pillbox = "Pillbox";
121
- export type IsolatedIsland = "IsolatedIsland";
122
- export type SupplyDepot = "SupplyDepot";
123
- export type HarbourSummerPrincess = "HarbourSummerPrincess";
124
- export type PtImp = "PtImp";
125
- export type BattleshipSummerPrincess = "BattleshipSummerPrincess";
126
- export type HeavyCruiserSummerPrincess = "HeavyCruiserSummerPrincess";
127
- }
91
+ export type NightPhaseAttackType =
92
+ | { t: "Night"; c: NightAttackType }
93
+ | { t: "Asw"; c: AswAttackType };
128
94
 
129
- export type SpecialEnemyType =
130
- | SpecialEnemyType.None
131
- | SpecialEnemyType.SoftSkinned
132
- | SpecialEnemyType.Pillbox
133
- | SpecialEnemyType.IsolatedIsland
134
- | SpecialEnemyType.SupplyDepot
135
- | SpecialEnemyType.HarbourSummerPrincess
136
- | SpecialEnemyType.PtImp
137
- | SpecialEnemyType.BattleshipSummerPrincess
138
- | SpecialEnemyType.HeavyCruiserSummerPrincess;
139
-
140
- declare namespace MoraleState {
141
- export type Sparkle = "Sparkle";
142
- export type Normal = "Normal";
143
- export type Orange = "Orange";
144
- export type Red = "Red";
145
- }
146
-
147
- export type MoraleState =
148
- | MoraleState.Sparkle
149
- | MoraleState.Normal
150
- | MoraleState.Orange
151
- | MoraleState.Red;
152
-
153
- type __NightCutinLikeFleetCutin = FleetCutin;
154
- type __NightCutinLikeNightCutin = NightCutin;
155
- declare namespace NightCutinLike {
156
- export type NightCutin = __NightCutinLikeNightCutin;
157
- export type FleetCutin = __NightCutinLikeFleetCutin;
158
- }
159
-
160
- export type NightCutinLike =
161
- | NightCutinLike.NightCutin
162
- | NightCutinLike.FleetCutin;
163
-
164
- type __DayCutinLikeDayCutin = DayCutin;
165
- type __DayCutinLikeFleetCutin = FleetCutin;
166
- declare namespace DayCutinLike {
167
- export type DayCutin = __DayCutinLikeDayCutin;
168
- export type FleetCutin = __DayCutinLikeFleetCutin;
169
- }
170
-
171
- export type DayCutinLike = DayCutinLike.DayCutin | DayCutinLike.FleetCutin;
172
-
173
- declare namespace FleetCutin {
174
- export type NelsonTouch = "NelsonTouch";
175
- export type NagatoClassCutin = "NagatoClassCutin";
176
- export type ColoradoClassCutin = "ColoradoClassCutin";
177
- export type KongouClassCutin = "KongouClassCutin";
178
- export type Yamato2ShipCutin = "Yamato2ShipCutin";
179
- export type Yamato3ShipCutin = "Yamato3ShipCutin";
180
- }
95
+ export type DayPhaseAttackType =
96
+ | { t: "Shelling"; c: ShellingType }
97
+ | { t: "Asw"; c: AswAttackType };
181
98
 
182
- export type FleetCutin =
183
- | FleetCutin.NelsonTouch
184
- | FleetCutin.NagatoClassCutin
185
- | FleetCutin.ColoradoClassCutin
186
- | FleetCutin.KongouClassCutin
187
- | FleetCutin.Yamato2ShipCutin
188
- | FleetCutin.Yamato3ShipCutin;
189
-
190
- declare namespace NightCutin {
191
- export type MainTorpRadar = "MainTorpRadar";
192
- export type TorpLookoutRadar = "TorpLookoutRadar";
193
- export type TorpTsloTorp = "TorpTsloTorp";
194
- export type TorpTsloDrum = "TorpTsloDrum";
195
- export type DoubleAttack = "DoubleAttack";
196
- export type TorpTorpMain = "TorpTorpMain";
197
- export type TorpTorpTorp = "TorpTorpTorp";
198
- export type MainMainSec = "MainMainSec";
199
- export type MainMainMain = "MainMainMain";
200
- export type SubTorpTorp = "SubTorpTorp";
201
- export type SubRadarTorp = "SubRadarTorp";
202
- export type Cvci1_25 = "Cvci1_25";
203
- export type Cvci1_20 = "Cvci1_20";
204
- export type Cvci1_18 = "Cvci1_18";
205
- export type Photobomber = "Photobomber";
206
- }
99
+ export type AttackType =
100
+ | { t: "Asw"; c: AswAttackType }
101
+ | { t: "Shelling"; c: ShellingType }
102
+ | { t: "Night"; c: NightAttackType }
103
+ | { t: "Torpedo" }
104
+ | { t: "SupportShelling"; c: SupportShellingType };
207
105
 
208
- export type NightCutin =
209
- | NightCutin.MainTorpRadar
210
- | NightCutin.TorpLookoutRadar
211
- | NightCutin.TorpTsloTorp
212
- | NightCutin.TorpTsloDrum
213
- | NightCutin.DoubleAttack
214
- | NightCutin.TorpTorpMain
215
- | NightCutin.TorpTorpTorp
216
- | NightCutin.MainMainSec
217
- | NightCutin.MainMainMain
218
- | NightCutin.SubTorpTorp
219
- | NightCutin.SubRadarTorp
220
- | NightCutin.Cvci1_25
221
- | NightCutin.Cvci1_20
222
- | NightCutin.Cvci1_18
223
- | NightCutin.Photobomber;
224
-
225
- declare namespace DayCutin {
226
- export type Zuiun = "Zuiun";
227
- export type AirSea = "AirSea";
228
- export type MainMain = "MainMain";
229
- export type MainAp = "MainAp";
230
- export type MainRadar = "MainRadar";
231
- export type MainSec = "MainSec";
232
- export type DoubleAttack = "DoubleAttack";
233
- export type FBA = "FBA";
234
- export type BBA = "BBA";
235
- export type BA = "BA";
236
- }
106
+ export type SupportShellingType = ShellingType;
237
107
 
238
- export type DayCutin =
239
- | DayCutin.Zuiun
240
- | DayCutin.AirSea
241
- | DayCutin.MainMain
242
- | DayCutin.MainAp
243
- | DayCutin.MainRadar
244
- | DayCutin.MainSec
245
- | DayCutin.DoubleAttack
246
- | DayCutin.FBA
247
- | DayCutin.BBA
248
- | DayCutin.BA;
249
-
250
- declare namespace ContactRank {
251
- export type Rank1 = "Rank1";
252
- export type Rank2 = "Rank2";
253
- export type Rank3 = "Rank3";
254
- }
255
-
256
- export type ContactRank =
257
- | ContactRank.Rank1
258
- | ContactRank.Rank2
259
- | ContactRank.Rank3;
260
-
261
- declare namespace AirWaveType {
262
- export type Jet = "Jet";
263
- export type LandBase = "LandBase";
264
- export type Carrier = "Carrier";
265
- }
266
-
267
- export type AirWaveType =
268
- | AirWaveType.Jet
269
- | AirWaveType.LandBase
270
- | AirWaveType.Carrier;
108
+ export type NightAttackType = "Normal" | "Swordfish" | "Carrier";
271
109
 
272
- export interface SimulatorResult {
273
- items: SimulatorResultItem[];
274
- sunk_vec: [number, number, number][];
275
- }
110
+ export type ShellingType = "Normal" | "Carrier";
276
111
 
277
- export interface SimulatorResultItem {
278
- id: string;
279
- fleet_type: FleetType;
280
- index: number;
281
- damage_state_map: Record<DamageState, number>;
282
- }
112
+ export type AswAttackType = "DepthCharge" | "Aircraft";
283
113
 
284
- declare namespace GearCategory {
285
- export type Fighter = "Fighter";
286
- export type Bomber = "Bomber";
287
- export type Recon = "Recon";
288
- export type MainGun = "MainGun";
289
- export type Secondary = "Secondary";
290
- export type Torpedo = "Torpedo";
291
- export type AntiSub = "AntiSub";
292
- export type Radar = "Radar";
293
- export type Landing = "Landing";
294
- export type Ration = "Ration";
295
- export type LandBased = "LandBased";
296
- export type Misc = "Misc";
297
- }
114
+ export type AirStateRank = "Rank0" | "Rank1" | "Rank2" | "Rank3";
298
115
 
299
- export type GearCategory =
300
- | GearCategory.Fighter
301
- | GearCategory.Bomber
302
- | GearCategory.Recon
303
- | GearCategory.MainGun
304
- | GearCategory.Secondary
305
- | GearCategory.Torpedo
306
- | GearCategory.AntiSub
307
- | GearCategory.Radar
308
- | GearCategory.Landing
309
- | GearCategory.Ration
310
- | GearCategory.LandBased
311
- | GearCategory.Misc;
312
-
313
- declare namespace GearType {
314
- export type Unknown = "Unknown";
315
- export type SmallMainGun = "SmallMainGun";
316
- export type MediumMainGun = "MediumMainGun";
317
- export type LargeMainGun = "LargeMainGun";
318
- export type SecondaryGun = "SecondaryGun";
319
- export type Torpedo = "Torpedo";
320
- export type CbFighter = "CbFighter";
321
- export type CbDiveBomber = "CbDiveBomber";
322
- export type CbTorpedoBomber = "CbTorpedoBomber";
323
- export type CbRecon = "CbRecon";
324
- export type ReconSeaplane = "ReconSeaplane";
325
- export type SeaplaneBomber = "SeaplaneBomber";
326
- export type SmallRadar = "SmallRadar";
327
- export type LargeRadar = "LargeRadar";
328
- export type Sonar = "Sonar";
329
- export type DepthCharge = "DepthCharge";
330
- export type ExtraArmor = "ExtraArmor";
331
- export type Engine = "Engine";
332
- export type AntiAirShell = "AntiAirShell";
333
- export type ApShell = "ApShell";
334
- export type VtFuze = "VtFuze";
335
- export type AntiAirGun = "AntiAirGun";
336
- export type MidgetSubmarine = "MidgetSubmarine";
337
- export type EmergencyRepair = "EmergencyRepair";
338
- export type LandingCraft = "LandingCraft";
339
- export type Rotorcraft = "Rotorcraft";
340
- export type AntiSubPatrolAircraft = "AntiSubPatrolAircraft";
341
- export type MediumArmor = "MediumArmor";
342
- export type LargeArmor = "LargeArmor";
343
- export type Searchlight = "Searchlight";
344
- export type SupplyContainer = "SupplyContainer";
345
- export type ShipRepairFacility = "ShipRepairFacility";
346
- export type SubmarineTorpedo = "SubmarineTorpedo";
347
- export type Starshell = "Starshell";
348
- export type CommandFacility = "CommandFacility";
349
- export type AviationPersonnel = "AviationPersonnel";
350
- export type AntiAirFireDirector = "AntiAirFireDirector";
351
- export type AntiGroundEquipment = "AntiGroundEquipment";
352
- export type LargeMainGun2 = "LargeMainGun2";
353
- export type ShipPersonnel = "ShipPersonnel";
354
- export type LargeSonar = "LargeSonar";
355
- export type LargeFlyingBoat = "LargeFlyingBoat";
356
- export type LargeSearchlight = "LargeSearchlight";
357
- export type CombatRation = "CombatRation";
358
- export type Supplies = "Supplies";
359
- export type SeaplaneFighter = "SeaplaneFighter";
360
- export type AmphibiousTank = "AmphibiousTank";
361
- export type LbAttacker = "LbAttacker";
362
- export type LbFighter = "LbFighter";
363
- export type LbRecon = "LbRecon";
364
- export type TransportationMaterial = "TransportationMaterial";
365
- export type SubmarineEquipment = "SubmarineEquipment";
366
- export type LargeLbAircraft = "LargeLbAircraft";
367
- export type JetFighter = "JetFighter";
368
- export type JetFighterBomber = "JetFighterBomber";
369
- export type JetTorpedoBomber = "JetTorpedoBomber";
370
- export type JetRecon = "JetRecon";
371
- export type LargeRadar2 = "LargeRadar2";
372
- export type CbRecon2 = "CbRecon2";
373
- export type SecondaryGun2 = "SecondaryGun2";
374
- }
116
+ export type AirState =
117
+ | "AirSupremacy"
118
+ | "AirSuperiority"
119
+ | "AirParity"
120
+ | "AirDenial"
121
+ | "AirIncapability";
375
122
 
376
- export type GearType =
377
- | GearType.Unknown
378
- | GearType.SmallMainGun
379
- | GearType.MediumMainGun
380
- | GearType.LargeMainGun
381
- | GearType.SecondaryGun
382
- | GearType.Torpedo
383
- | GearType.CbFighter
384
- | GearType.CbDiveBomber
385
- | GearType.CbTorpedoBomber
386
- | GearType.CbRecon
387
- | GearType.ReconSeaplane
388
- | GearType.SeaplaneBomber
389
- | GearType.SmallRadar
390
- | GearType.LargeRadar
391
- | GearType.Sonar
392
- | GearType.DepthCharge
393
- | GearType.ExtraArmor
394
- | GearType.Engine
395
- | GearType.AntiAirShell
396
- | GearType.ApShell
397
- | GearType.VtFuze
398
- | GearType.AntiAirGun
399
- | GearType.MidgetSubmarine
400
- | GearType.EmergencyRepair
401
- | GearType.LandingCraft
402
- | GearType.Rotorcraft
403
- | GearType.AntiSubPatrolAircraft
404
- | GearType.MediumArmor
405
- | GearType.LargeArmor
406
- | GearType.Searchlight
407
- | GearType.SupplyContainer
408
- | GearType.ShipRepairFacility
409
- | GearType.SubmarineTorpedo
410
- | GearType.Starshell
411
- | GearType.CommandFacility
412
- | GearType.AviationPersonnel
413
- | GearType.AntiAirFireDirector
414
- | GearType.AntiGroundEquipment
415
- | GearType.LargeMainGun2
416
- | GearType.ShipPersonnel
417
- | GearType.LargeSonar
418
- | GearType.LargeFlyingBoat
419
- | GearType.LargeSearchlight
420
- | GearType.CombatRation
421
- | GearType.Supplies
422
- | GearType.SeaplaneFighter
423
- | GearType.AmphibiousTank
424
- | GearType.LbAttacker
425
- | GearType.LbFighter
426
- | GearType.LbRecon
427
- | GearType.TransportationMaterial
428
- | GearType.SubmarineEquipment
429
- | GearType.LargeLbAircraft
430
- | GearType.JetFighter
431
- | GearType.JetFighterBomber
432
- | GearType.JetTorpedoBomber
433
- | GearType.JetRecon
434
- | GearType.LargeRadar2
435
- | GearType.CbRecon2
436
- | GearType.SecondaryGun2;
437
-
438
- declare namespace DamageState {
439
- export type Normal = "Normal";
440
- export type Shouha = "Shouha";
441
- export type Chuuha = "Chuuha";
442
- export type Taiha = "Taiha";
443
- export type Sunk = "Sunk";
444
- }
445
-
446
- export type DamageState =
447
- | DamageState.Normal
448
- | DamageState.Shouha
449
- | DamageState.Chuuha
450
- | DamageState.Taiha
451
- | DamageState.Sunk;
123
+ export type CompiledEvaler = string;
452
124
 
453
- export interface NodeAttackAnalyzerShipConfig extends NightFleetConditions {
454
- formation?: Formation;
455
- }
125
+ export type SpeedGroup = "A" | "B1" | "B2" | "C";
456
126
 
457
- export interface NodeAttackAnalyzerConfig {
458
- air_state?: AirState;
459
- engagement?: Engagement;
460
- left?: NodeAttackAnalyzerShipConfig;
461
- right?: NodeAttackAnalyzerShipConfig;
127
+ export interface ActionReport<T> {
128
+ data: Record<string, AttackReport<T>>;
129
+ damage_state_density: Histogram<DamageState, number> | null;
130
+ is_active: boolean;
462
131
  }
463
132
 
464
- export interface NodeAttackAnalysis {
465
- left: AttackAnalysis;
466
- right: AttackAnalysis;
467
- }
133
+ export type GearTypeIdArray = [number, number, number, number, number];
468
134
 
469
- export interface CompMeta {
470
- fleets: Record<FleetType, FleetMeta>;
471
- }
135
+ export type ShipType =
136
+ | "Unknown"
137
+ | "DE"
138
+ | "DD"
139
+ | "CL"
140
+ | "CLT"
141
+ | "CA"
142
+ | "CAV"
143
+ | "CVL"
144
+ | "FBB"
145
+ | "BB"
146
+ | "BBV"
147
+ | "CV"
148
+ | "XBB"
149
+ | "SS"
150
+ | "SSV"
151
+ | "AP"
152
+ | "AV"
153
+ | "LHA"
154
+ | "CVB"
155
+ | "AR"
156
+ | "AS"
157
+ | "CT"
158
+ | "AO";
472
159
 
473
- export interface FleetMeta {
474
- id: string;
475
- len: number;
476
- ships: [string, ShipMeta | null][];
477
- }
160
+ export type ShipCategory =
161
+ | "Battleship"
162
+ | "AircraftCarrier"
163
+ | "HeavyCruiser"
164
+ | "LightCruiser"
165
+ | "Destroyer"
166
+ | "CoastalDefenseShip"
167
+ | "Submarine"
168
+ | "AuxiliaryShip";
478
169
 
479
- export interface ShipMeta {
480
- id: string;
481
- ship_id: number;
482
- }
170
+ export type MoraleState = "Sparkle" | "Normal" | "Orange" | "Red";
483
171
 
484
- export type TorpedoAttackType = null;
172
+ export type NightCutinLike = NightCutin | FleetCutin;
485
173
 
486
- type __NightPhaseAttackTypeAswAttackType = AswAttackType;
487
- type __NightPhaseAttackTypeNightAttackType = NightAttackType;
488
- declare namespace NightPhaseAttackType {
489
- export type Night = { t: "Night"; c: __NightPhaseAttackTypeNightAttackType };
490
- export type Asw = { t: "Asw"; c: __NightPhaseAttackTypeAswAttackType };
491
- }
174
+ export type DayCutinLike = DayCutin | FleetCutin;
492
175
 
493
- export type NightPhaseAttackType =
494
- | NightPhaseAttackType.Night
495
- | NightPhaseAttackType.Asw;
176
+ export type FleetCutin =
177
+ | "NelsonTouch"
178
+ | "NagatoClassCutin"
179
+ | "ColoradoClassCutin"
180
+ | "KongouClassCutin"
181
+ | "Yamato2ShipCutin"
182
+ | "Yamato3ShipCutin";
496
183
 
497
- type __DayPhaseAttackTypeAswAttackType = AswAttackType;
498
- type __DayPhaseAttackTypeShellingType = ShellingType;
499
- declare namespace DayPhaseAttackType {
500
- export type Shelling = { t: "Shelling"; c: __DayPhaseAttackTypeShellingType };
501
- export type Asw = { t: "Asw"; c: __DayPhaseAttackTypeAswAttackType };
502
- }
184
+ export type NightCutin =
185
+ | "MainTorpRadar"
186
+ | "TorpLookoutRadar"
187
+ | "TorpTsloTorp"
188
+ | "TorpTsloDrum"
189
+ | "DoubleAttack"
190
+ | "TorpTorpMain"
191
+ | "TorpTorpTorp"
192
+ | "MainMainSec"
193
+ | "MainMainMain"
194
+ | "SubTorpTorp"
195
+ | "SubRadarTorp"
196
+ | "Cvci1_25"
197
+ | "Cvci1_20"
198
+ | "Cvci1_18"
199
+ | "Photobomber";
503
200
 
504
- export type DayPhaseAttackType =
505
- | DayPhaseAttackType.Shelling
506
- | DayPhaseAttackType.Asw;
507
-
508
- type __AttackTypeAswAttackType = AswAttackType;
509
- type __AttackTypeNightAttackType = NightAttackType;
510
- type __AttackTypeShellingType = ShellingType;
511
- type __AttackTypeSupportShellingType = SupportShellingType;
512
- declare namespace AttackType {
513
- export type Asw = { t: "Asw"; c: __AttackTypeAswAttackType };
514
- export type Shelling = { t: "Shelling"; c: __AttackTypeShellingType };
515
- export type Night = { t: "Night"; c: __AttackTypeNightAttackType };
516
- export type Torpedo = { t: "Torpedo"; c: null };
517
- export type SupportShelling = {
518
- t: "SupportShelling";
519
- c: __AttackTypeSupportShellingType;
520
- };
521
- }
201
+ export type DayCutin =
202
+ | "Zuiun"
203
+ | "AirSea"
204
+ | "MainMain"
205
+ | "MainAp"
206
+ | "MainRadar"
207
+ | "MainSec"
208
+ | "DoubleAttack"
209
+ | "FBA"
210
+ | "BBA"
211
+ | "BA";
522
212
 
523
- export type AttackType =
524
- | AttackType.Asw
525
- | AttackType.Shelling
526
- | AttackType.Night
527
- | AttackType.Torpedo
528
- | AttackType.SupportShelling;
213
+ export interface MasterIBonuses {
214
+ shelling_power: MasterIBonusRule[];
215
+ shelling_accuracy: MasterIBonusRule[];
216
+ shelling_aerial_power: MasterIBonusRule[];
217
+ torpedo_power: MasterIBonusRule[];
218
+ torpedo_accuracy: MasterIBonusRule[];
219
+ torpedo_evasion: MasterIBonusRule[];
220
+ asw_power: MasterIBonusRule[];
221
+ asw_accuracy: MasterIBonusRule[];
222
+ night_power: MasterIBonusRule[];
223
+ night_aerial_power: MasterIBonusRule[];
224
+ night_accuracy: MasterIBonusRule[];
225
+ defense_power: MasterIBonusRule[];
226
+ contact_selection: MasterIBonusRule[];
227
+ fighter_power: MasterIBonusRule[];
228
+ ship_anti_air: MasterIBonusRule[];
229
+ fleet_anti_air: MasterIBonusRule[];
230
+ elos: MasterIBonusRule[];
231
+ }
529
232
 
530
- export type SupportShellingType = ShellingType;
233
+ export interface MasterIBonusRule {
234
+ expr: CompiledEvaler;
235
+ formula: CompiledEvaler;
236
+ }
531
237
 
532
- declare namespace NightAttackType {
533
- export type Normal = "Normal";
534
- export type Swordfish = "Swordfish";
535
- export type Carrier = "Carrier";
238
+ export interface FleetCutinAnalysis {
239
+ shelling: FleetCutinReport<ShellingStyle>[];
240
+ night: FleetCutinReport<NightAttackStyle>[];
536
241
  }
537
242
 
538
- export type NightAttackType =
539
- | NightAttackType.Normal
540
- | NightAttackType.Swordfish
541
- | NightAttackType.Carrier;
243
+ export interface FleetCutinReport<T> {
244
+ cutin: FleetCutin;
245
+ rate: number | null;
246
+ formation: Formation;
247
+ attacks: FleetCutinAttackReport<T>[];
248
+ }
542
249
 
543
- declare namespace ShellingType {
544
- export type Normal = "Normal";
545
- export type Carrier = "Carrier";
250
+ export interface FleetCutinAttackReport<T> extends AttackReport<T> {
251
+ index: number;
252
+ ship_id: number;
253
+ power_mod: number;
546
254
  }
547
255
 
548
- export type ShellingType = ShellingType.Normal | ShellingType.Carrier;
256
+ export type SpecialEnemyType =
257
+ | "None"
258
+ | "SoftSkinned"
259
+ | "Pillbox"
260
+ | "IsolatedIsland"
261
+ | "SupplyDepot"
262
+ | "HarbourSummerPrincess"
263
+ | "PtImp"
264
+ | "BattleshipSummerPrincess"
265
+ | "HeavyCruiserSummerPrincess";
549
266
 
550
- declare namespace AswAttackType {
551
- export type DepthCharge = "DepthCharge";
552
- export type Aircraft = "Aircraft";
553
- }
267
+ export type ContactRank = "Rank1" | "Rank2" | "Rank3";
554
268
 
555
- export type AswAttackType = AswAttackType.DepthCharge | AswAttackType.Aircraft;
269
+ export type AirWaveType = "Jet" | "LandBase" | "Carrier";
556
270
 
557
- declare namespace AirStateRank {
558
- export type Rank0 = "Rank0";
559
- export type Rank1 = "Rank1";
560
- export type Rank2 = "Rank2";
561
- export type Rank3 = "Rank3";
271
+ export interface SimulatorResult {
272
+ items: SimulatorResultItem[];
273
+ sunk_vec: [number, number, number][];
562
274
  }
563
275
 
564
- export type AirStateRank =
565
- | AirStateRank.Rank0
566
- | AirStateRank.Rank1
567
- | AirStateRank.Rank2
568
- | AirStateRank.Rank3;
569
-
570
- declare namespace AirState {
571
- export type AirSupremacy = "AirSupremacy";
572
- export type AirSuperiority = "AirSuperiority";
573
- export type AirParity = "AirParity";
574
- export type AirDenial = "AirDenial";
575
- export type AirIncapability = "AirIncapability";
276
+ export interface SimulatorResultItem {
277
+ id: string;
278
+ fleet_type: FleetType;
279
+ index: number;
280
+ damage_state_map: Record<DamageState, number>;
576
281
  }
577
282
 
578
- export type AirState =
579
- | AirState.AirSupremacy
580
- | AirState.AirSuperiority
581
- | AirState.AirParity
582
- | AirState.AirDenial
583
- | AirState.AirIncapability;
283
+ export type GearCategory =
284
+ | "Fighter"
285
+ | "Bomber"
286
+ | "Recon"
287
+ | "MainGun"
288
+ | "Secondary"
289
+ | "Torpedo"
290
+ | "AntiSub"
291
+ | "Radar"
292
+ | "Landing"
293
+ | "Ration"
294
+ | "LandBased"
295
+ | "Misc";
584
296
 
585
- export interface MasterData {
297
+ export type GearType =
298
+ | "Unknown"
299
+ | "SmallMainGun"
300
+ | "MediumMainGun"
301
+ | "LargeMainGun"
302
+ | "SecondaryGun"
303
+ | "Torpedo"
304
+ | "CbFighter"
305
+ | "CbDiveBomber"
306
+ | "CbTorpedoBomber"
307
+ | "CbRecon"
308
+ | "ReconSeaplane"
309
+ | "SeaplaneBomber"
310
+ | "SmallRadar"
311
+ | "LargeRadar"
312
+ | "Sonar"
313
+ | "DepthCharge"
314
+ | "ExtraArmor"
315
+ | "Engine"
316
+ | "AntiAirShell"
317
+ | "ApShell"
318
+ | "VtFuze"
319
+ | "AntiAirGun"
320
+ | "MidgetSubmarine"
321
+ | "EmergencyRepair"
322
+ | "LandingCraft"
323
+ | "Rotorcraft"
324
+ | "AntiSubPatrolAircraft"
325
+ | "MediumArmor"
326
+ | "LargeArmor"
327
+ | "Searchlight"
328
+ | "SupplyContainer"
329
+ | "ShipRepairFacility"
330
+ | "SubmarineTorpedo"
331
+ | "Starshell"
332
+ | "CommandFacility"
333
+ | "AviationPersonnel"
334
+ | "AntiAirFireDirector"
335
+ | "AntiGroundEquipment"
336
+ | "LargeMainGun2"
337
+ | "ShipPersonnel"
338
+ | "LargeSonar"
339
+ | "LargeFlyingBoat"
340
+ | "LargeSearchlight"
341
+ | "CombatRation"
342
+ | "Supplies"
343
+ | "SeaplaneFighter"
344
+ | "AmphibiousTank"
345
+ | "LbAttacker"
346
+ | "LbFighter"
347
+ | "LbRecon"
348
+ | "TransportationMaterial"
349
+ | "SubmarineEquipment"
350
+ | "LargeLbAircraft"
351
+ | "JetFighter"
352
+ | "JetFighterBomber"
353
+ | "JetTorpedoBomber"
354
+ | "JetRecon"
355
+ | "LargeRadar2"
356
+ | "CbRecon2"
357
+ | "SecondaryGun2";
358
+
359
+ export type DamageState = "Normal" | "Shouha" | "Chuuha" | "Taiha" | "Sunk";
360
+
361
+ export type FhResult<T> = { Ok: T } | { Err: string };
362
+
363
+ export interface MasterData extends MasterBattleDefinitions {
586
364
  created_at: number;
587
365
  gears: MasterGear[];
588
366
  gear_attrs: MasterAttrRule<GearAttr>[];
589
367
  ships: MasterShip[];
590
368
  ship_attrs: MasterAttrRule<ShipAttr>[];
591
369
  ibonuses: MasterIBonuses;
592
- equippable: MasterEquippable;
593
- formation: NestedFormationDef[];
594
- anti_air_cutin: AntiAirCutinDef[];
595
- day_cutin: DayCutinDef[];
596
- night_cutin: NightCutinDef[];
370
+ equippable: MasterEquippability;
597
371
  }
598
372
 
599
- export interface MasterConfig {
600
- formation: NestedFormationDef[];
601
- anti_air_cutin: AntiAirCutinDef[];
602
- day_cutin: DayCutinDef[];
603
- night_cutin: NightCutinDef[];
373
+ export interface NationalityDef {
374
+ id: number;
375
+ ctypes: number[];
604
376
  }
605
377
 
606
378
  export interface MasterAttrRule<T> {
607
379
  tag: T;
608
380
  name: string;
609
- expr: string;
381
+ expr: CompiledEvaler;
382
+ }
383
+
384
+ export interface NodeAttackAnalyzerShipConfig extends NightFleetConditions {
385
+ formation?: Formation;
386
+ }
387
+
388
+ export interface NodeAttackAnalyzerConfig {
389
+ air_state?: AirState;
390
+ engagement?: Engagement;
391
+ left?: NodeAttackAnalyzerShipConfig;
392
+ right?: NodeAttackAnalyzerShipConfig;
393
+ }
394
+
395
+ export interface NodeAttackAnalysis {
396
+ left: AttackAnalysis;
397
+ right: AttackAnalysis;
610
398
  }
611
399
 
612
400
  export interface EBonuses {
@@ -649,147 +437,109 @@ export interface GearInput {
649
437
 
650
438
  export type GearVecInput = GearInput[];
651
439
 
652
- declare namespace ShipAttr {
653
- export type Unknown = "Unknown";
654
- export type Abyssal = "Abyssal";
655
- export type NightCarrier = "NightCarrier";
656
- export type Installation = "Installation";
657
- export type RoyalNavy = "RoyalNavy";
658
- export type Kai2 = "Kai2";
659
- export type TurbineSpeedBonus = "TurbineSpeedBonus";
660
- export type Pillbox = "Pillbox";
661
- export type IsolatedIsland = "IsolatedIsland";
662
- export type HarbourSummerPrincess = "HarbourSummerPrincess";
663
- export type SupplyDepot = "SupplyDepot";
664
- export type PtImp = "PtImp";
665
- export type BattleshipSummerPrincess = "BattleshipSummerPrincess";
666
- export type HeavyCruiserSummerPrincess = "HeavyCruiserSummerPrincess";
667
- }
440
+ export type Side = "Player" | "Enemy";
668
441
 
669
- export type ShipAttr =
670
- | ShipAttr.Unknown
671
- | ShipAttr.Abyssal
672
- | ShipAttr.NightCarrier
673
- | ShipAttr.Installation
674
- | ShipAttr.RoyalNavy
675
- | ShipAttr.Kai2
676
- | ShipAttr.TurbineSpeedBonus
677
- | ShipAttr.Pillbox
678
- | ShipAttr.IsolatedIsland
679
- | ShipAttr.HarbourSummerPrincess
680
- | ShipAttr.SupplyDepot
681
- | ShipAttr.PtImp
682
- | ShipAttr.BattleshipSummerPrincess
683
- | ShipAttr.HeavyCruiserSummerPrincess;
684
-
685
- declare namespace OrgType {
686
- export type Single = "Single";
687
- export type CarrierTaskForce = "CarrierTaskForce";
688
- export type SurfaceTaskForce = "SurfaceTaskForce";
689
- export type TransportEscort = "TransportEscort";
690
- export type EnemySingle = "EnemySingle";
691
- export type EnemyCombined = "EnemyCombined";
442
+ export interface ShipConditions extends ShipPosition {
443
+ formation?: Formation;
692
444
  }
693
445
 
694
446
  export type OrgType =
695
- | OrgType.Single
696
- | OrgType.CarrierTaskForce
697
- | OrgType.SurfaceTaskForce
698
- | OrgType.TransportEscort
699
- | OrgType.EnemySingle
700
- | OrgType.EnemyCombined;
701
-
702
- declare namespace GearAttr {
703
- export type Unknown = "Unknown";
704
- export type Abyssal = "Abyssal";
705
- export type HighAngleMount = "HighAngleMount";
706
- export type NightFighter = "NightFighter";
707
- export type NightAttacker = "NightAttacker";
708
- export type HeavyBomber = "HeavyBomber";
709
- export type NightRecon = "NightRecon";
710
- export type MainGun = "MainGun";
711
- export type Radar = "Radar";
712
- export type SurfaceRadar = "SurfaceRadar";
713
- export type AirRadar = "AirRadar";
714
- export type DepthChargeProjector = "DepthChargeProjector";
715
- export type SynergisticDepthCharge = "SynergisticDepthCharge";
716
- export type AntiSubMortar = "AntiSubMortar";
717
- export type AntiSubWeapon = "AntiSubWeapon";
718
- export type ApDepthCharge = "ApDepthCharge";
719
- export type AntiSubAircraft = "AntiSubAircraft";
720
- export type LateModelBowTorpedo = "LateModelBowTorpedo";
721
- export type Seaplane = "Seaplane";
722
- export type CbAircraft = "CbAircraft";
723
- export type LbAircraft = "LbAircraft";
724
- export type JetAircraft = "JetAircraft";
725
- export type Fighter = "Fighter";
726
- export type Recon = "Recon";
727
- export type ObservationSeaplane = "ObservationSeaplane";
728
- export type CbFighterBomber = "CbFighterBomber";
729
- export type AntiInstDiveBomber = "AntiInstDiveBomber";
730
- export type CbSwordfish = "CbSwordfish";
731
- export type SemiNightPlane = "SemiNightPlane";
732
- export type HighAltitudeInterceptor = "HighAltitudeInterceptor";
447
+ | "Single"
448
+ | "CarrierTaskForce"
449
+ | "SurfaceTaskForce"
450
+ | "TransportEscort"
451
+ | "EnemySingle"
452
+ | "EnemyCombined";
453
+
454
+ export interface SupportShellingSimulatorParams {
455
+ attacker_formation?: Formation;
456
+ target_formation?: Formation;
457
+ engagement: Engagement;
733
458
  }
734
459
 
460
+ export interface ShipAnalyzerConfig {
461
+ air_state?: AirState;
462
+ engagement?: Engagement;
463
+ left?: AttackAnalyzerShipConfig;
464
+ right?: AttackAnalyzerShipConfig;
465
+ }
466
+
467
+ export type ShipAttr =
468
+ | "Unknown"
469
+ | "Abyssal"
470
+ | "NightCarrier"
471
+ | "Installation"
472
+ | "RoyalNavy"
473
+ | "Kai2"
474
+ | "TurbineSpeedBonus"
475
+ | "Pillbox"
476
+ | "IsolatedIsland"
477
+ | "HarbourSummerPrincess"
478
+ | "SupplyDepot"
479
+ | "PtImp"
480
+ | "BattleshipSummerPrincess"
481
+ | "HeavyCruiserSummerPrincess";
482
+
735
483
  export type GearAttr =
736
- | GearAttr.Unknown
737
- | GearAttr.Abyssal
738
- | GearAttr.HighAngleMount
739
- | GearAttr.NightFighter
740
- | GearAttr.NightAttacker
741
- | GearAttr.HeavyBomber
742
- | GearAttr.NightRecon
743
- | GearAttr.MainGun
744
- | GearAttr.Radar
745
- | GearAttr.SurfaceRadar
746
- | GearAttr.AirRadar
747
- | GearAttr.DepthChargeProjector
748
- | GearAttr.SynergisticDepthCharge
749
- | GearAttr.AntiSubMortar
750
- | GearAttr.AntiSubWeapon
751
- | GearAttr.ApDepthCharge
752
- | GearAttr.AntiSubAircraft
753
- | GearAttr.LateModelBowTorpedo
754
- | GearAttr.Seaplane
755
- | GearAttr.CbAircraft
756
- | GearAttr.LbAircraft
757
- | GearAttr.JetAircraft
758
- | GearAttr.Fighter
759
- | GearAttr.Recon
760
- | GearAttr.ObservationSeaplane
761
- | GearAttr.CbFighterBomber
762
- | GearAttr.AntiInstDiveBomber
763
- | GearAttr.CbSwordfish
764
- | GearAttr.SemiNightPlane
765
- | GearAttr.HighAltitudeInterceptor;
484
+ | "Unknown"
485
+ | "Abyssal"
486
+ | "HighAngleMount"
487
+ | "NightFighter"
488
+ | "NightAttacker"
489
+ | "HeavyBomber"
490
+ | "NightRecon"
491
+ | "MainGun"
492
+ | "Radar"
493
+ | "SurfaceRadar"
494
+ | "AirRadar"
495
+ | "DepthChargeProjector"
496
+ | "SynergisticDepthCharge"
497
+ | "AntiSubMortar"
498
+ | "AntiSubWeapon"
499
+ | "ApDepthCharge"
500
+ | "AntiSubAircraft"
501
+ | "LateModelBowTorpedo"
502
+ | "Seaplane"
503
+ | "CbAircraft"
504
+ | "LbAircraft"
505
+ | "JetAircraft"
506
+ | "Fighter"
507
+ | "Recon"
508
+ | "ObservationSeaplane"
509
+ | "CbFighterBomber"
510
+ | "AntiInstDiveBomber"
511
+ | "CbSwordfish"
512
+ | "SemiNightPlane"
513
+ | "HighAltitudeInterceptor";
766
514
 
767
- export interface SupportShellingStyle {
768
- tag: "SupportShellingStyle";
769
- attack_type: SupportShellingType;
515
+ export interface CompAntiAirAnalysis {
516
+ fleet_adjusted_anti_air: number;
517
+ ships: AntiAirReport[];
518
+ anti_air_cutin_chance: [number, number][];
770
519
  }
771
520
 
772
- type __NightPhaseAttackStyleAswAttackStyle = AswAttackStyle;
773
- type __NightPhaseAttackStyleNightAttackStyle = NightAttackStyle;
774
- declare namespace NightPhaseAttackStyle {
775
- export type Night = __NightPhaseAttackStyleNightAttackStyle;
776
- export type Asw = __NightPhaseAttackStyleAswAttackStyle;
521
+ export interface AntiAirReport {
522
+ ship_id: number;
523
+ role: Role;
524
+ index: number;
525
+ adjusted_anti_air: number | null;
526
+ proportional_shotdown_rate: number | null;
527
+ fixed_shotdown_number: number | null;
528
+ guaranteed: number | null;
529
+ anti_air_cutin_chance: [number, number][];
530
+ anti_air_propellant_barrage_chance: number | null;
777
531
  }
778
532
 
779
- export type NightPhaseAttackStyle =
780
- | NightPhaseAttackStyle.Night
781
- | NightPhaseAttackStyle.Asw;
533
+ export type FleetType = "Main" | "Escort" | "RouteSup" | "BossSup";
782
534
 
783
- type __DayPhaseAttackStyleAswAttackStyle = AswAttackStyle;
784
- type __DayPhaseAttackStyleShellingStyle = ShellingStyle;
785
- declare namespace DayPhaseAttackStyle {
786
- export type Shelling = __DayPhaseAttackStyleShellingStyle;
787
- export type Asw = __DayPhaseAttackStyleAswAttackStyle;
535
+ export interface SupportShellingStyle {
536
+ tag: "SupportShellingStyle";
537
+ attack_type: SupportShellingType;
788
538
  }
789
539
 
790
- export type DayPhaseAttackStyle =
791
- | DayPhaseAttackStyle.Shelling
792
- | DayPhaseAttackStyle.Asw;
540
+ export type NightPhaseAttackStyle = NightAttackStyle | AswAttackStyle;
541
+
542
+ export type DayPhaseAttackStyle = ShellingStyle | AswAttackStyle;
793
543
 
794
544
  export interface TorpedoAttackStyle {
795
545
  tag: "TorpedoAttackStyle";
@@ -819,34 +569,61 @@ export interface ShellingStyle {
819
569
  hits: number;
820
570
  }
821
571
 
822
- export interface SupportShellingSimulatorParams {
823
- attacker_formation?: Formation;
824
- target_formation?: Formation;
825
- engagement: Engagement;
572
+ export interface CustomPowerModifiers {
573
+ precap_mod?: AttackPowerModifier;
574
+ postcap_mod?: AttackPowerModifier;
575
+ basic_power_mod?: AttackPowerModifier;
826
576
  }
827
577
 
828
- export interface MasterIBonuses {
829
- shelling_power: MasterIBonusRule[];
830
- carrier_shelling_power: MasterIBonusRule[];
831
- shelling_accuracy: MasterIBonusRule[];
832
- torpedo_power: MasterIBonusRule[];
833
- torpedo_accuracy: MasterIBonusRule[];
834
- torpedo_evasion: MasterIBonusRule[];
835
- asw_power: MasterIBonusRule[];
836
- asw_accuracy: MasterIBonusRule[];
837
- night_power: MasterIBonusRule[];
838
- night_accuracy: MasterIBonusRule[];
839
- defense_power: MasterIBonusRule[];
840
- contact_selection: MasterIBonusRule[];
841
- fighter_power: MasterIBonusRule[];
842
- ship_anti_air: MasterIBonusRule[];
843
- fleet_anti_air: MasterIBonusRule[];
844
- elos: MasterIBonusRule[];
578
+ export interface SpecialEnemyModifiers {
579
+ precap_general_mod: AttackPowerModifier;
580
+ stype_mod: AttackPowerModifier;
581
+ landing_craft_synergy_mod: AttackPowerModifier;
582
+ toku_daihatsu_tank_mod: AttackPowerModifier;
583
+ m4a1dd_mod: AttackPowerModifier;
584
+ honi_mod: AttackPowerModifier;
585
+ postcap_general_mod: AttackPowerModifier;
586
+ pt_mod: AttackPowerModifier;
845
587
  }
846
588
 
847
- export interface MasterIBonusRule {
848
- expr: CompiledEvaler;
849
- formula: CompiledEvaler;
589
+ export interface AttackPowerModifier {
590
+ a?: number;
591
+ b?: number;
592
+ }
593
+
594
+ export interface AttackPower {
595
+ precap: number;
596
+ is_capped: boolean;
597
+ capped: number;
598
+ normal: number;
599
+ critical: number;
600
+ armor_penetration: number;
601
+ remaining_ammo_mod: number;
602
+ }
603
+
604
+ export interface AttackPowerParams {
605
+ basic: number;
606
+ cap: number;
607
+ precap_mod: AttackPowerModifier;
608
+ postcap_mod: AttackPowerModifier;
609
+ ap_shell_mod: number | null;
610
+ aerial_power: number | null;
611
+ proficiency_critical_mod: number;
612
+ armor_penetration: number;
613
+ remaining_ammo_mod: number;
614
+ special_enemy_mods: SpecialEnemyModifiers;
615
+ custom_mods: CustomPowerModifiers;
616
+ }
617
+
618
+ export interface SpecialEnemyModifiers {
619
+ precap_general_mod: AttackPowerModifier;
620
+ stype_mod: AttackPowerModifier;
621
+ landing_craft_synergy_mod: AttackPowerModifier;
622
+ toku_daihatsu_tank_mod: AttackPowerModifier;
623
+ m4a1dd_mod: AttackPowerModifier;
624
+ honi_mod: AttackPowerModifier;
625
+ postcap_general_mod: AttackPowerModifier;
626
+ pt_mod: AttackPowerModifier;
850
627
  }
851
628
 
852
629
  export interface NightContactChance {
@@ -880,125 +657,40 @@ export interface DamageReport {
880
657
  critical_damage_min: number;
881
658
  critical_damage_max: number;
882
659
  normal_scratch_rate: number;
883
- critical_scratch_rate: number;
884
- damage_density: Histogram<number, number>;
885
- damage_state_density: Histogram<DamageState, number>;
886
- }
887
-
888
- export interface CompAntiAirAnalysis {
889
- fleet_adjusted_anti_air: number;
890
- ships: AntiAirReport[];
891
- anti_air_cutin_chance: [number, number][];
892
- }
893
-
894
- export interface AntiAirReport {
895
- ship_id: number;
896
- role: Role;
897
- index: number;
898
- adjusted_anti_air: number | null;
899
- proportional_shotdown_rate: number | null;
900
- fixed_shotdown_number: number | null;
901
- guaranteed: number | null;
902
- anti_air_cutin_chance: [number, number][];
903
- anti_air_propellant_barrage_chance: number | null;
904
- }
905
-
906
- export type Histogram<K, V> = Partial<Record<K, V>>;
907
-
908
- type __FormationCombinedFormation = CombinedFormation;
909
- type __FormationSingleFormation = SingleFormation;
910
- declare namespace Formation {
911
- export type Single = __FormationSingleFormation;
912
- export type Combined = __FormationCombinedFormation;
913
- }
914
-
915
- export type Formation = Formation.Single | Formation.Combined;
916
-
917
- declare namespace CombinedFormation {
918
- export type Cruising1 = "Cruising1";
919
- export type Cruising2 = "Cruising2";
920
- export type Cruising3 = "Cruising3";
921
- export type Cruising4 = "Cruising4";
922
- }
923
-
924
- export type CombinedFormation =
925
- | CombinedFormation.Cruising1
926
- | CombinedFormation.Cruising2
927
- | CombinedFormation.Cruising3
928
- | CombinedFormation.Cruising4;
929
-
930
- declare namespace SingleFormation {
931
- export type LineAhead = "LineAhead";
932
- export type DoubleLine = "DoubleLine";
933
- export type Diamond = "Diamond";
934
- export type Echelon = "Echelon";
935
- export type LineAbreast = "LineAbreast";
936
- export type Vanguard = "Vanguard";
937
- }
938
-
939
- export type SingleFormation =
940
- | SingleFormation.LineAhead
941
- | SingleFormation.DoubleLine
942
- | SingleFormation.Diamond
943
- | SingleFormation.Echelon
944
- | SingleFormation.LineAbreast
945
- | SingleFormation.Vanguard;
946
-
947
- declare namespace FleetType {
948
- export type Main = "Main";
949
- export type Escort = "Escort";
950
- export type RouteSup = "RouteSup";
951
- export type BossSup = "BossSup";
952
- }
953
-
954
- export type FleetType =
955
- | FleetType.Main
956
- | FleetType.Escort
957
- | FleetType.RouteSup
958
- | FleetType.BossSup;
959
-
960
- export interface CustomPowerModifiers {
961
- precap_mod?: AttackPowerModifier;
962
- postcap_mod?: AttackPowerModifier;
963
- basic_power_mod?: AttackPowerModifier;
964
- }
965
-
966
- export interface SpecialEnemyModifiers {
967
- precap_general_mod: AttackPowerModifier;
968
- stype_mod: AttackPowerModifier;
969
- landing_craft_synergy_mod: AttackPowerModifier;
970
- toku_daihatsu_tank_mod: AttackPowerModifier;
971
- m4a1dd_mod: AttackPowerModifier;
972
- honi_mod: AttackPowerModifier;
973
- postcap_general_mod: AttackPowerModifier;
974
- pt_mod: AttackPowerModifier;
660
+ critical_scratch_rate: number;
661
+ damage_density: Histogram<number, number>;
662
+ damage_state_density: Histogram<DamageState, number>;
975
663
  }
976
664
 
977
- export interface AttackPowerModifier {
978
- a?: number;
979
- b?: number;
665
+ export interface AttackAnalyzerShipConfig
666
+ extends ShipConditions,
667
+ NightFleetConditions {
668
+ fleet_los_mod?: number | null;
980
669
  }
981
670
 
982
- export interface MasterEquippable {
983
- equip_stype: EquipStype[];
984
- equip_exslot: number[];
985
- equip_ship: MstEquipShip[];
986
- equip_exslot_ship: MstEquipExslotShip[];
987
- }
671
+ export type Histogram<K, V> = Partial<Record<K, V>>;
988
672
 
989
- export interface MstEquipExslotShip {
990
- api_slotitem_id: number;
991
- api_ship_ids: number[];
992
- }
673
+ export type Formation = SingleFormation | CombinedFormation;
993
674
 
994
- export interface MstEquipShip {
995
- api_ship_id: number;
996
- api_equip_type: number[];
997
- }
675
+ export type CombinedFormation =
676
+ | "Cruising1"
677
+ | "Cruising2"
678
+ | "Cruising3"
679
+ | "Cruising4";
998
680
 
999
- export interface EquipStype {
1000
- id: number;
1001
- equip_type: number[];
681
+ export type SingleFormation =
682
+ | "LineAhead"
683
+ | "DoubleLine"
684
+ | "Diamond"
685
+ | "Echelon"
686
+ | "LineAbreast"
687
+ | "Vanguard";
688
+
689
+ export interface MasterBattleDefinitions {
690
+ formation: NestedFormationDef[];
691
+ anti_air_cutin: AntiAirCutinDef[];
692
+ day_cutin: DayCutinDef[];
693
+ night_cutin: NightCutinDef[];
1002
694
  }
1003
695
 
1004
696
  export interface HitRate {
@@ -1016,41 +708,6 @@ export interface HitRateParams {
1016
708
  hit_percentage_bonus: number;
1017
709
  }
1018
710
 
1019
- export interface AttackPower {
1020
- precap: number;
1021
- is_capped: boolean;
1022
- capped: number;
1023
- normal: number;
1024
- critical: number;
1025
- armor_penetration: number;
1026
- remaining_ammo_mod: number;
1027
- }
1028
-
1029
- export interface AttackPowerParams {
1030
- basic: number;
1031
- cap: number;
1032
- precap_mod: AttackPowerModifier;
1033
- postcap_mod: AttackPowerModifier;
1034
- ap_shell_mod: number | null;
1035
- carrier_power: number | null;
1036
- proficiency_critical_mod: number;
1037
- armor_penetration: number;
1038
- remaining_ammo_mod: number;
1039
- special_enemy_mods: SpecialEnemyModifiers;
1040
- custom_mods: CustomPowerModifiers;
1041
- }
1042
-
1043
- export interface SpecialEnemyModifiers {
1044
- precap_general_mod: AttackPowerModifier;
1045
- stype_mod: AttackPowerModifier;
1046
- landing_craft_synergy_mod: AttackPowerModifier;
1047
- toku_daihatsu_tank_mod: AttackPowerModifier;
1048
- m4a1dd_mod: AttackPowerModifier;
1049
- honi_mod: AttackPowerModifier;
1050
- postcap_general_mod: AttackPowerModifier;
1051
- pt_mod: AttackPowerModifier;
1052
- }
1053
-
1054
711
  export interface CompDayCutinAnalysis {
1055
712
  rank3_air_state: AirState;
1056
713
  rank2_air_state: AirState;
@@ -1085,12 +742,6 @@ export interface DayContactChance {
1085
742
  total: number;
1086
743
  }
1087
744
 
1088
- export interface AttackAnalyzerShipConfig
1089
- extends ShipConditions,
1090
- NightFleetConditions {
1091
- fleet_los_mod?: number | null;
1092
- }
1093
-
1094
745
  export interface AttackAnalysis {
1095
746
  attacker_is_player: boolean;
1096
747
  attacker_ship_id: number;
@@ -1102,34 +753,13 @@ export interface AttackAnalysis {
1102
753
  support_shelling: ActionReport<SupportShellingStyle>;
1103
754
  }
1104
755
 
1105
- export interface NightFleetConditions {
1106
- night_contact_rank?: ContactRank | null;
1107
- starshell_index?: number | null;
1108
- searchlight_index?: number | null;
1109
- activates_large_searchlight?: boolean;
1110
- }
1111
-
1112
- export interface NightConditions {
1113
- player?: NightFleetConditions;
1114
- enemy?: NightFleetConditions;
1115
- }
1116
-
1117
- export interface BattleConditions {
1118
- org_type: OrgType;
1119
- role: Role;
1120
- ship_index: number;
1121
- fleet_len: number;
1122
- formation: Formation;
1123
- fleet_los_mod: number | null;
1124
- night_conditions: NightFleetConditions;
1125
- }
1126
-
1127
756
  export interface MasterShip {
1128
757
  ship_id: number;
1129
758
  name: string;
1130
759
  yomi: string;
1131
760
  stype: number;
1132
761
  ctype: number;
762
+ nationality?: number;
1133
763
  sort_id?: number;
1134
764
  max_hp: StatInterval;
1135
765
  firepower: StatInterval;
@@ -1157,6 +787,36 @@ export interface MasterShip {
1157
787
 
1158
788
  export type StatInterval = [number | null, number | null];
1159
789
 
790
+ export interface EquippabilityRule {
791
+ ship: CompiledEvaler;
792
+ keys?: string[];
793
+ include?: string;
794
+ exclude?: string;
795
+ }
796
+
797
+ export interface MasterEquippability {
798
+ equip_stype: EquipStype[];
799
+ equip_exslot: number[];
800
+ equip_ship: MstEquipShip[];
801
+ equip_exslot_ship: MstEquipExslotShip[];
802
+ rules: EquippabilityRule[];
803
+ }
804
+
805
+ export interface MstEquipExslotShip {
806
+ api_slotitem_id: number;
807
+ api_ship_ids: number[];
808
+ }
809
+
810
+ export interface MstEquipShip {
811
+ api_ship_id: number;
812
+ api_equip_type: number[];
813
+ }
814
+
815
+ export interface EquipStype {
816
+ id: number;
817
+ equip_type: number[];
818
+ }
819
+
1160
820
  export interface CompAnalyzerConfig {
1161
821
  engagement: Engagement;
1162
822
  formation: Formation;
@@ -1197,24 +857,7 @@ export interface AttackReport<T> {
1197
857
 
1198
858
  export type ShipStateMap = Record<ShipKey, ShipState>;
1199
859
 
1200
- declare namespace ShipKey {
1201
- export type s1 = "s1";
1202
- export type s2 = "s2";
1203
- export type s3 = "s3";
1204
- export type s4 = "s4";
1205
- export type s5 = "s5";
1206
- export type s6 = "s6";
1207
- export type s7 = "s7";
1208
- }
1209
-
1210
- export type ShipKey =
1211
- | ShipKey.s1
1212
- | ShipKey.s2
1213
- | ShipKey.s3
1214
- | ShipKey.s4
1215
- | ShipKey.s5
1216
- | ShipKey.s6
1217
- | ShipKey.s7;
860
+ export type ShipKey = "s1" | "s2" | "s3" | "s4" | "s5" | "s6" | "s7";
1218
861
 
1219
862
  export interface OrgState {
1220
863
  id?: string;
@@ -1237,14 +880,7 @@ export interface AirSquadronState extends GearVecState, SlotSizeVecState {
1237
880
  mode?: AirSquadronMode;
1238
881
  }
1239
882
 
1240
- declare namespace AirSquadronMode {
1241
- export type Sortie = "Sortie";
1242
- export type AirDefense = "AirDefense";
1243
- }
1244
-
1245
- export type AirSquadronMode =
1246
- | AirSquadronMode.Sortie
1247
- | AirSquadronMode.AirDefense;
883
+ export type AirSquadronMode = "Sortie" | "AirDefense";
1248
884
 
1249
885
  export interface FleetState {
1250
886
  id?: string;
@@ -1304,20 +940,29 @@ export interface GearState {
1304
940
  stars?: number;
1305
941
  }
1306
942
 
1307
- declare namespace SpeedGroup {
1308
- export type A = "A";
1309
- export type B1 = "B1";
1310
- export type B2 = "B2";
1311
- export type C = "C";
943
+ export type SlotSizeVec = (number | null)[];
944
+
945
+ export interface NightFleetConditions {
946
+ night_contact_rank?: ContactRank | null;
947
+ starshell_index?: number | null;
948
+ searchlight_index?: number | null;
949
+ activates_large_searchlight?: boolean;
1312
950
  }
1313
951
 
1314
- export type SpeedGroup =
1315
- | SpeedGroup.A
1316
- | SpeedGroup.B1
1317
- | SpeedGroup.B2
1318
- | SpeedGroup.C;
952
+ export interface NightConditions {
953
+ player?: NightFleetConditions;
954
+ enemy?: NightFleetConditions;
955
+ }
1319
956
 
1320
- export type SlotSizeVec = (number | null)[];
957
+ export interface BattleConditions {
958
+ org_type: OrgType;
959
+ role: Role;
960
+ ship_index: number;
961
+ fleet_len: number;
962
+ formation: Formation;
963
+ fleet_los_mod: number | null;
964
+ night_conditions: NightFleetConditions;
965
+ }
1321
966
 
1322
967
  export interface MasterGear {
1323
968
  gear_id: number;
@@ -1344,104 +989,6 @@ export interface MasterGear {
1344
989
  fleet_anti_air_resist?: number;
1345
990
  }
1346
991
 
1347
- export type GearTypeIdArray = [number, number, number, number, number];
1348
-
1349
- declare namespace ShipType {
1350
- export type Unknown = "Unknown";
1351
- export type DE = "DE";
1352
- export type DD = "DD";
1353
- export type CL = "CL";
1354
- export type CLT = "CLT";
1355
- export type CA = "CA";
1356
- export type CAV = "CAV";
1357
- export type CVL = "CVL";
1358
- export type FBB = "FBB";
1359
- export type BB = "BB";
1360
- export type BBV = "BBV";
1361
- export type CV = "CV";
1362
- export type XBB = "XBB";
1363
- export type SS = "SS";
1364
- export type SSV = "SSV";
1365
- export type AP = "AP";
1366
- export type AV = "AV";
1367
- export type LHA = "LHA";
1368
- export type CVB = "CVB";
1369
- export type AR = "AR";
1370
- export type AS = "AS";
1371
- export type CT = "CT";
1372
- export type AO = "AO";
1373
- }
1374
-
1375
- export type ShipType =
1376
- | ShipType.Unknown
1377
- | ShipType.DE
1378
- | ShipType.DD
1379
- | ShipType.CL
1380
- | ShipType.CLT
1381
- | ShipType.CA
1382
- | ShipType.CAV
1383
- | ShipType.CVL
1384
- | ShipType.FBB
1385
- | ShipType.BB
1386
- | ShipType.BBV
1387
- | ShipType.CV
1388
- | ShipType.XBB
1389
- | ShipType.SS
1390
- | ShipType.SSV
1391
- | ShipType.AP
1392
- | ShipType.AV
1393
- | ShipType.LHA
1394
- | ShipType.CVB
1395
- | ShipType.AR
1396
- | ShipType.AS
1397
- | ShipType.CT
1398
- | ShipType.AO;
1399
-
1400
- declare namespace ShipCategory {
1401
- export type Battleship = "Battleship";
1402
- export type AircraftCarrier = "AircraftCarrier";
1403
- export type HeavyCruiser = "HeavyCruiser";
1404
- export type LightCruiser = "LightCruiser";
1405
- export type Destroyer = "Destroyer";
1406
- export type CoastalDefenseShip = "CoastalDefenseShip";
1407
- export type Submarine = "Submarine";
1408
- export type AuxiliaryShip = "AuxiliaryShip";
1409
- }
1410
-
1411
- export type ShipCategory =
1412
- | ShipCategory.Battleship
1413
- | ShipCategory.AircraftCarrier
1414
- | ShipCategory.HeavyCruiser
1415
- | ShipCategory.LightCruiser
1416
- | ShipCategory.Destroyer
1417
- | ShipCategory.CoastalDefenseShip
1418
- | ShipCategory.Submarine
1419
- | ShipCategory.AuxiliaryShip;
1420
-
1421
- export interface FleetCutinAnalysis {
1422
- shelling: FleetCutinReport<ShellingStyle>[];
1423
- night: FleetCutinReport<NightAttackStyle>[];
1424
- }
1425
-
1426
- export interface FleetCutinReport<T> {
1427
- cutin: FleetCutin;
1428
- rate: number | null;
1429
- formation: Formation;
1430
- attacks: FleetCutinAttackReport<T>[];
1431
- }
1432
-
1433
- export interface FleetCutinAttackReport<T> extends AttackReport<T> {
1434
- index: number;
1435
- ship_id: number;
1436
- power_mod: number;
1437
- }
1438
-
1439
- export interface ActionReport<T> {
1440
- data: Record<string, AttackReport<T>>;
1441
- damage_state_density: Histogram<DamageState, number> | null;
1442
- is_active: boolean;
1443
- }
1444
-
1445
992
  /**
1446
993
  */
1447
994
  export class AirSquadron {
@@ -2011,68 +1558,10 @@ export class Gear {
2011
1558
  */
2012
1559
  types: Uint8Array;
2013
1560
  }
2014
- /**
2015
- */
2016
- export class IBonuses {
2017
- free(): void;
2018
- /**
2019
- */
2020
- asw_accuracy: number;
2021
- /**
2022
- */
2023
- asw_power: number;
2024
- /**
2025
- */
2026
- carrier_shelling_power: number;
2027
- /**
2028
- */
2029
- contact_selection: number;
2030
- /**
2031
- */
2032
- defense_power: number;
2033
- /**
2034
- */
2035
- elos: number;
2036
- /**
2037
- */
2038
- fighter_power: number;
2039
- /**
2040
- */
2041
- fleet_anti_air: number;
2042
- /**
2043
- */
2044
- night_accuracy: number;
2045
- /**
2046
- */
2047
- night_power: number;
2048
- /**
2049
- */
2050
- shelling_accuracy: number;
2051
- /**
2052
- */
2053
- shelling_power: number;
2054
- /**
2055
- */
2056
- ship_anti_air: number;
2057
- /**
2058
- */
2059
- torpedo_accuracy: number;
2060
- /**
2061
- */
2062
- torpedo_evasion: number;
2063
- /**
2064
- */
2065
- torpedo_power: number;
2066
- }
2067
1561
  /**
2068
1562
  */
2069
1563
  export class Org {
2070
1564
  free(): void;
2071
- /**
2072
- * @param {Role} role
2073
- * @returns {number}
2074
- */
2075
- fleet_len(role: Role): number;
2076
1565
  /**
2077
1566
  * @param {Role} role
2078
1567
  * @param {string} key
@@ -2083,11 +1572,6 @@ export class Org {
2083
1572
  * @returns {(string)[]}
2084
1573
  */
2085
1574
  air_squadron_ids(): string[];
2086
- /**
2087
- * @param {Role} role
2088
- * @returns {number | undefined}
2089
- */
2090
- fleet_los_mod(role: Role): number | undefined;
2091
1575
  /**
2092
1576
  * @returns {Uint16Array}
2093
1577
  */
@@ -2101,22 +1585,11 @@ export class Org {
2101
1585
  * @returns {Fleet}
2102
1586
  */
2103
1587
  clone_fleet(key: string): Fleet;
2104
- /**
2105
- * @param {Role} role
2106
- * @param {string} key
2107
- * @returns {Ship | undefined}
2108
- */
2109
- get_ship(role: Role, key: string): Ship | undefined;
2110
1588
  /**
2111
1589
  * @param {string} id
2112
1590
  * @returns {Ship | undefined}
2113
1591
  */
2114
1592
  get_ship_by_id(id: string): Ship | undefined;
2115
- /**
2116
- * @param {Role} role
2117
- * @returns {string}
2118
- */
2119
- get_fleet_id_by_role(role: Role): string;
2120
1593
  /**
2121
1594
  * @returns {Comp}
2122
1595
  */
@@ -2169,10 +1642,6 @@ export class Org {
2169
1642
  * @returns {number}
2170
1643
  */
2171
1644
  high_altitude_interception_power(): number;
2172
- /**
2173
- * @returns {Org}
2174
- */
2175
- static default(): Org;
2176
1645
  /**
2177
1646
  */
2178
1647
  boss_sup?: string;
@@ -2199,6 +1668,20 @@ export class Org {
2199
1668
  */
2200
1669
  export class Ship {
2201
1670
  free(): void;
1671
+ /**
1672
+ * @returns {number | undefined}
1673
+ */
1674
+ state_day_gunfit_accuracy(): number | undefined;
1675
+ /**
1676
+ * @returns {number | undefined}
1677
+ */
1678
+ state_night_gunfit_accuracy(): number | undefined;
1679
+ /**
1680
+ * フィット砲補正
1681
+ * @param {boolean} is_night
1682
+ * @returns {number}
1683
+ */
1684
+ gunfit_accuracy(is_night: boolean): number;
2202
1685
  /**
2203
1686
  * @returns {Ship}
2204
1687
  */
@@ -2404,20 +1887,6 @@ export class Ship {
2404
1887
  * @returns {number | undefined}
2405
1888
  */
2406
1889
  ohko_power(): number | undefined;
2407
- /**
2408
- * @returns {number | undefined}
2409
- */
2410
- state_day_gunfit_accuracy(): number | undefined;
2411
- /**
2412
- * @returns {number | undefined}
2413
- */
2414
- state_night_gunfit_accuracy(): number | undefined;
2415
- /**
2416
- * フィット砲補正
2417
- * @param {boolean} is_night
2418
- * @returns {number}
2419
- */
2420
- gunfit_accuracy(is_night: boolean): number;
2421
1890
  /**
2422
1891
  */
2423
1892
  readonly accuracy: number;