fleethub-core 1.7.2 → 1.7.6

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.
@@ -3,104 +3,266 @@
3
3
  /**
4
4
  */
5
5
  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";
30
+ }
31
+
6
32
  export type ShipType =
7
- | "Unknown"
8
- | "DE"
9
- | "DD"
10
- | "CL"
11
- | "CLT"
12
- | "CA"
13
- | "CAV"
14
- | "CVL"
15
- | "FBB"
16
- | "BB"
17
- | "BBV"
18
- | "CV"
19
- | "XBB"
20
- | "SS"
21
- | "SSV"
22
- | "AP"
23
- | "AV"
24
- | "LHA"
25
- | "CVB"
26
- | "AR"
27
- | "AS"
28
- | "CT"
29
- | "AO";
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";
66
+ }
30
67
 
31
68
  export type ShipCategory =
32
- | "Battleship"
33
- | "AircraftCarrier"
34
- | "HeavyCruiser"
35
- | "LightCruiser"
36
- | "Destroyer"
37
- | "CoastalDefenseShip"
38
- | "Submarine"
39
- | "AuxiliaryShip";
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
+ type __ShellingSpecialAttackDayCutin = DayCutin;
79
+ type __ShellingSpecialAttackFleetCutin = FleetCutin;
80
+ declare namespace ShellingSpecialAttack {
81
+ export type DayCutin = { DayCutin: __ShellingSpecialAttackDayCutin };
82
+ export type FleetCutin = { FleetCutin: __ShellingSpecialAttackFleetCutin };
83
+ }
40
84
 
41
85
  export type ShellingSpecialAttack =
42
- | { DayCutin: DayCutin }
43
- | { FleetCutin: FleetCutin };
86
+ | ShellingSpecialAttack.DayCutin
87
+ | ShellingSpecialAttack.FleetCutin;
88
+
89
+ declare namespace DayCutin {
90
+ export type MainMain = "MainMain";
91
+ export type MainAp = "MainAp";
92
+ export type MainRadar = "MainRadar";
93
+ export type MainSec = "MainSec";
94
+ export type DoubleAttack = "DoubleAttack";
95
+ export type FBA = "FBA";
96
+ export type BBA = "BBA";
97
+ export type BA = "BA";
98
+ export type Zuiun = "Zuiun";
99
+ export type AirSea = "AirSea";
100
+ }
44
101
 
45
102
  export type DayCutin =
46
- | "MainMain"
47
- | "MainAp"
48
- | "MainRadar"
49
- | "MainSec"
50
- | "DoubleAttack"
51
- | "FBA"
52
- | "BBA"
53
- | "BA"
54
- | "Zuiun"
55
- | "AirSea";
103
+ | DayCutin.MainMain
104
+ | DayCutin.MainAp
105
+ | DayCutin.MainRadar
106
+ | DayCutin.MainSec
107
+ | DayCutin.DoubleAttack
108
+ | DayCutin.FBA
109
+ | DayCutin.BBA
110
+ | DayCutin.BA
111
+ | DayCutin.Zuiun
112
+ | DayCutin.AirSea;
113
+
114
+ declare namespace ShellingAttackType {
115
+ export type Normal = "Normal";
116
+ export type Carrier = "Carrier";
117
+ }
118
+
119
+ export type ShellingAttackType =
120
+ | ShellingAttackType.Normal
121
+ | ShellingAttackType.Carrier;
56
122
 
57
- export interface ShellingSupportSimulatorParams {
58
- attacker_formation: Formation;
59
- target_formation: Formation;
60
- engagement: Engagement;
61
- custom_mods: CustomModifiers;
123
+ export interface FleetCutinAnalysis {
124
+ shelling: FleetCutinInfo[];
125
+ night: FleetCutinInfo[];
62
126
  }
63
127
 
64
- export type ShellingAttackType = "Normal" | "Carrier";
128
+ export interface FleetCutinInfo {
129
+ cutin: FleetCutin;
130
+ rate: number | null;
131
+ formation: Formation;
132
+ items: FleetCutinInfoItem[];
133
+ }
65
134
 
66
- export type AirWaveType = "Jet" | "LandBase" | "Carrier";
135
+ export interface FleetCutinInfoItem {
136
+ ship_id: number;
137
+ cutin: FleetCutin;
138
+ fleet_cutin_mod: number;
139
+ stats: AttackStats;
140
+ }
141
+
142
+ declare namespace SpecialEnemyType {
143
+ export type None = "None";
144
+ export type SoftSkinned = "SoftSkinned";
145
+ export type Pillbox = "Pillbox";
146
+ export type IsolatedIsland = "IsolatedIsland";
147
+ export type SupplyDepot = "SupplyDepot";
148
+ export type HarbourSummerPrincess = "HarbourSummerPrincess";
149
+ export type PtImp = "PtImp";
150
+ export type BattleshipSummerPrincess = "BattleshipSummerPrincess";
151
+ export type HeavyCruiserSummerPrincess = "HeavyCruiserSummerPrincess";
152
+ }
67
153
 
68
- export type AswAttackType = "DepthCharge" | "Aircraft";
154
+ export type SpecialEnemyType =
155
+ | SpecialEnemyType.None
156
+ | SpecialEnemyType.SoftSkinned
157
+ | SpecialEnemyType.Pillbox
158
+ | SpecialEnemyType.IsolatedIsland
159
+ | SpecialEnemyType.SupplyDepot
160
+ | SpecialEnemyType.HarbourSummerPrincess
161
+ | SpecialEnemyType.PtImp
162
+ | SpecialEnemyType.BattleshipSummerPrincess
163
+ | SpecialEnemyType.HeavyCruiserSummerPrincess;
164
+
165
+ declare namespace MoraleState {
166
+ export type Sparkle = "Sparkle";
167
+ export type Normal = "Normal";
168
+ export type Orange = "Orange";
169
+ export type Red = "Red";
170
+ }
171
+
172
+ export type MoraleState =
173
+ | MoraleState.Sparkle
174
+ | MoraleState.Normal
175
+ | MoraleState.Orange
176
+ | MoraleState.Red;
177
+
178
+ declare namespace DamageState {
179
+ export type Normal = "Normal";
180
+ export type Shouha = "Shouha";
181
+ export type Chuuha = "Chuuha";
182
+ export type Taiha = "Taiha";
183
+ export type Sunk = "Sunk";
184
+ }
185
+
186
+ export type DamageState =
187
+ | DamageState.Normal
188
+ | DamageState.Shouha
189
+ | DamageState.Chuuha
190
+ | DamageState.Taiha
191
+ | DamageState.Sunk;
192
+
193
+ declare namespace SpeedGroup {
194
+ export type A = "A";
195
+ export type B1 = "B1";
196
+ export type B2 = "B2";
197
+ export type C = "C";
198
+ }
199
+
200
+ export type SpeedGroup =
201
+ | SpeedGroup.A
202
+ | SpeedGroup.B1
203
+ | SpeedGroup.B2
204
+ | SpeedGroup.C;
205
+
206
+ declare namespace AswAttackType {
207
+ export type DepthCharge = "DepthCharge";
208
+ export type Aircraft = "Aircraft";
209
+ }
210
+
211
+ export type AswAttackType = AswAttackType.DepthCharge | AswAttackType.Aircraft;
212
+
213
+ declare namespace OrgType {
214
+ export type Single = "Single";
215
+ export type CarrierTaskForce = "CarrierTaskForce";
216
+ export type SurfaceTaskForce = "SurfaceTaskForce";
217
+ export type TransportEscort = "TransportEscort";
218
+ export type EnemySingle = "EnemySingle";
219
+ export type EnemyCombined = "EnemyCombined";
220
+ }
69
221
 
70
222
  export type OrgType =
71
- | "Single"
72
- | "CarrierTaskForce"
73
- | "SurfaceTaskForce"
74
- | "TransportEscort"
75
- | "EnemySingle"
76
- | "EnemyCombined";
223
+ | OrgType.Single
224
+ | OrgType.CarrierTaskForce
225
+ | OrgType.SurfaceTaskForce
226
+ | OrgType.TransportEscort
227
+ | OrgType.EnemySingle
228
+ | OrgType.EnemyCombined;
229
+
230
+ declare namespace FleetCutin {
231
+ export type NelsonTouch = "NelsonTouch";
232
+ export type NagatoCutin = "NagatoCutin";
233
+ export type ColoradoCutin = "ColoradoCutin";
234
+ export type KongouCutin = "KongouCutin";
235
+ export type Yamato2ShipCutin = "Yamato2ShipCutin";
236
+ export type Yamato3ShipCutin = "Yamato3ShipCutin";
237
+ }
77
238
 
78
239
  export type FleetCutin =
79
- | "NelsonTouch"
80
- | "NagatoCutin"
81
- | "ColoradoCutin"
82
- | "KongouCutin"
83
- | "Yamato2ShipCutin"
84
- | "Yamato3ShipCutin";
240
+ | FleetCutin.NelsonTouch
241
+ | FleetCutin.NagatoCutin
242
+ | FleetCutin.ColoradoCutin
243
+ | FleetCutin.KongouCutin
244
+ | FleetCutin.Yamato2ShipCutin
245
+ | FleetCutin.Yamato3ShipCutin;
85
246
 
86
- export interface WarfareContext {
87
- attacker_env: WarfareShipEnvironment;
88
- target_env: WarfareShipEnvironment;
89
- engagement: Engagement;
90
- air_state: AirState;
91
- custom_mods: CustomModifiers;
247
+ declare namespace AirWaveType {
248
+ export type Jet = "Jet";
249
+ export type LandBase = "LandBase";
250
+ export type Carrier = "Carrier";
92
251
  }
93
252
 
94
- export interface WarfareShipEnvironment {
95
- org_type: OrgType;
96
- role: Role;
97
- ship_index: number;
98
- fleet_len: number;
99
- formation: Formation;
100
- fleet_los_mod: number | null;
253
+ export type AirWaveType =
254
+ | AirWaveType.Jet
255
+ | AirWaveType.LandBase
256
+ | AirWaveType.Carrier;
257
+
258
+ export type NumMap<K, V> = Partial<Record<K, V>>;
259
+
260
+ declare namespace Role {
261
+ export type Main = "Main";
262
+ export type Escort = "Escort";
101
263
  }
102
264
 
103
- export type Role = "Main" | "Escort";
265
+ export type Role = Role.Main | Role.Escort;
104
266
 
105
267
  export interface CompMeta {
106
268
  fleets: Record<FleetType, FleetMeta>;
@@ -117,52 +279,6 @@ export interface ShipMeta {
117
279
  ship_id: number;
118
280
  }
119
281
 
120
- export interface AttackPower {
121
- precap: number;
122
- is_capped: boolean;
123
- capped: number;
124
- normal: number;
125
- critical: number;
126
- armor_penetration: number;
127
- remaining_ammo_mod: number;
128
- }
129
-
130
- export interface AttackPowerParams {
131
- basic: number;
132
- cap: number;
133
- precap_mod: AttackPowerModifier;
134
- postcap_mod: AttackPowerModifier;
135
- ap_shell_mod: number | null;
136
- carrier_power: number | null;
137
- proficiency_critical_mod: number | null;
138
- armor_penetration: number;
139
- remaining_ammo_mod: number;
140
- special_enemy_mods: SpecialEnemyModifiers;
141
- custom_mods: CustomModifiers;
142
- }
143
-
144
- export interface CustomModifiers {
145
- precap_mod?: AttackPowerModifier;
146
- postcap_mod?: AttackPowerModifier;
147
- basic_power_mod?: AttackPowerModifier;
148
- }
149
-
150
- export interface SpecialEnemyModifiers {
151
- precap_general_mod: AttackPowerModifier;
152
- stype_mod: AttackPowerModifier;
153
- landing_craft_synergy_mod: AttackPowerModifier;
154
- toku_daihatsu_tank_mod: AttackPowerModifier;
155
- m4a1dd_mod: AttackPowerModifier;
156
- honi_mod: AttackPowerModifier;
157
- postcap_general_mod: AttackPowerModifier;
158
- pt_mod: AttackPowerModifier;
159
- }
160
-
161
- export interface AttackPowerModifier {
162
- a: number;
163
- b: number;
164
- }
165
-
166
282
  export interface MasterData {
167
283
  gears: MasterGear[];
168
284
  gear_attrs: MasterAttrRule<GearAttr>[];
@@ -189,6 +305,22 @@ export interface MasterAttrRule<T> {
189
305
  expr: string;
190
306
  }
191
307
 
308
+ export interface WarfareContext {
309
+ attacker_env: WarfareShipEnvironment;
310
+ target_env: WarfareShipEnvironment;
311
+ engagement: Engagement;
312
+ air_state: AirState;
313
+ }
314
+
315
+ export interface WarfareShipEnvironment {
316
+ org_type: OrgType;
317
+ role: Role;
318
+ ship_index: number;
319
+ fleet_len: number;
320
+ formation: Formation;
321
+ fleet_los_mod: number | null;
322
+ }
323
+
192
324
  export interface CompDayCutinRateInfo {
193
325
  main: FleetDayCutinRateInfo;
194
326
  escort: FleetDayCutinRateInfo | null;
@@ -211,84 +343,170 @@ export interface DayCutinRateInfo {
211
343
  total_cutin_rate: number | null;
212
344
  }
213
345
 
214
- export type NumMap<K, V> = Partial<Record<K, V>>;
346
+ declare namespace GearCategory {
347
+ export type Fighter = "Fighter";
348
+ export type Bomber = "Bomber";
349
+ export type Recon = "Recon";
350
+ export type MainGun = "MainGun";
351
+ export type Secondary = "Secondary";
352
+ export type Torpedo = "Torpedo";
353
+ export type AntiSub = "AntiSub";
354
+ export type Radar = "Radar";
355
+ export type Landing = "Landing";
356
+ export type Ration = "Ration";
357
+ export type LandBased = "LandBased";
358
+ export type Misc = "Misc";
359
+ }
215
360
 
216
361
  export type GearCategory =
217
- | "Fighter"
218
- | "Bomber"
219
- | "Recon"
220
- | "MainGun"
221
- | "Secondary"
222
- | "Torpedo"
223
- | "AntiSub"
224
- | "Radar"
225
- | "Landing"
226
- | "Ration"
227
- | "LandBased"
228
- | "Misc";
362
+ | GearCategory.Fighter
363
+ | GearCategory.Bomber
364
+ | GearCategory.Recon
365
+ | GearCategory.MainGun
366
+ | GearCategory.Secondary
367
+ | GearCategory.Torpedo
368
+ | GearCategory.AntiSub
369
+ | GearCategory.Radar
370
+ | GearCategory.Landing
371
+ | GearCategory.Ration
372
+ | GearCategory.LandBased
373
+ | GearCategory.Misc;
374
+
375
+ declare namespace GearType {
376
+ export type Unknown = "Unknown";
377
+ export type SmallMainGun = "SmallMainGun";
378
+ export type MediumMainGun = "MediumMainGun";
379
+ export type LargeMainGun = "LargeMainGun";
380
+ export type SecondaryGun = "SecondaryGun";
381
+ export type Torpedo = "Torpedo";
382
+ export type CbFighter = "CbFighter";
383
+ export type CbDiveBomber = "CbDiveBomber";
384
+ export type CbTorpedoBomber = "CbTorpedoBomber";
385
+ export type CbRecon = "CbRecon";
386
+ export type ReconSeaplane = "ReconSeaplane";
387
+ export type SeaplaneBomber = "SeaplaneBomber";
388
+ export type SmallRadar = "SmallRadar";
389
+ export type LargeRadar = "LargeRadar";
390
+ export type Sonar = "Sonar";
391
+ export type DepthCharge = "DepthCharge";
392
+ export type ExtraArmor = "ExtraArmor";
393
+ export type Engine = "Engine";
394
+ export type AntiAirShell = "AntiAirShell";
395
+ export type ApShell = "ApShell";
396
+ export type VtFuze = "VtFuze";
397
+ export type AntiAirGun = "AntiAirGun";
398
+ export type MidgetSubmarine = "MidgetSubmarine";
399
+ export type EmergencyRepair = "EmergencyRepair";
400
+ export type LandingCraft = "LandingCraft";
401
+ export type Rotorcraft = "Rotorcraft";
402
+ export type AntiSubPatrolAircraft = "AntiSubPatrolAircraft";
403
+ export type MediumArmor = "MediumArmor";
404
+ export type LargeArmor = "LargeArmor";
405
+ export type Searchlight = "Searchlight";
406
+ export type SupplyContainer = "SupplyContainer";
407
+ export type ShipRepairFacility = "ShipRepairFacility";
408
+ export type SubmarineTorpedo = "SubmarineTorpedo";
409
+ export type Starshell = "Starshell";
410
+ export type CommandFacility = "CommandFacility";
411
+ export type AviationPersonnel = "AviationPersonnel";
412
+ export type AntiAirFireDirector = "AntiAirFireDirector";
413
+ export type AntiGroundEquipment = "AntiGroundEquipment";
414
+ export type LargeMainGun2 = "LargeMainGun2";
415
+ export type ShipPersonnel = "ShipPersonnel";
416
+ export type LargeSonar = "LargeSonar";
417
+ export type LargeFlyingBoat = "LargeFlyingBoat";
418
+ export type LargeSearchlight = "LargeSearchlight";
419
+ export type CombatRation = "CombatRation";
420
+ export type Supplies = "Supplies";
421
+ export type SeaplaneFighter = "SeaplaneFighter";
422
+ export type AmphibiousTank = "AmphibiousTank";
423
+ export type LbAttacker = "LbAttacker";
424
+ export type LbFighter = "LbFighter";
425
+ export type LbRecon = "LbRecon";
426
+ export type TransportationMaterial = "TransportationMaterial";
427
+ export type SubmarineEquipment = "SubmarineEquipment";
428
+ export type LargeLbAircraft = "LargeLbAircraft";
429
+ export type JetFighter = "JetFighter";
430
+ export type JetFighterBomber = "JetFighterBomber";
431
+ export type JetTorpedoBomber = "JetTorpedoBomber";
432
+ export type JetRecon = "JetRecon";
433
+ export type LargeRadar2 = "LargeRadar2";
434
+ export type CbRecon2 = "CbRecon2";
435
+ }
229
436
 
230
437
  export type GearType =
231
- | "Unknown"
232
- | "SmallMainGun"
233
- | "MediumMainGun"
234
- | "LargeMainGun"
235
- | "SecondaryGun"
236
- | "Torpedo"
237
- | "CbFighter"
238
- | "CbDiveBomber"
239
- | "CbTorpedoBomber"
240
- | "CbRecon"
241
- | "ReconSeaplane"
242
- | "SeaplaneBomber"
243
- | "SmallRadar"
244
- | "LargeRadar"
245
- | "Sonar"
246
- | "DepthCharge"
247
- | "ExtraArmor"
248
- | "Engine"
249
- | "AntiAirShell"
250
- | "ApShell"
251
- | "VtFuze"
252
- | "AntiAirGun"
253
- | "MidgetSubmarine"
254
- | "EmergencyRepair"
255
- | "LandingCraft"
256
- | "Rotorcraft"
257
- | "AntiSubPatrolAircraft"
258
- | "MediumArmor"
259
- | "LargeArmor"
260
- | "Searchlight"
261
- | "SupplyContainer"
262
- | "ShipRepairFacility"
263
- | "SubmarineTorpedo"
264
- | "Starshell"
265
- | "CommandFacility"
266
- | "AviationPersonnel"
267
- | "AntiAirFireDirector"
268
- | "AntiGroundEquipment"
269
- | "LargeMainGun2"
270
- | "ShipPersonnel"
271
- | "LargeSonar"
272
- | "LargeFlyingBoat"
273
- | "LargeSearchlight"
274
- | "CombatRation"
275
- | "Supplies"
276
- | "SeaplaneFighter"
277
- | "AmphibiousTank"
278
- | "LbAttacker"
279
- | "LbFighter"
280
- | "LbRecon"
281
- | "TransportationMaterial"
282
- | "SubmarineEquipment"
283
- | "LargeLbAircraft"
284
- | "JetFighter"
285
- | "JetFighterBomber"
286
- | "JetTorpedoBomber"
287
- | "JetRecon"
288
- | "LargeRadar2"
289
- | "CbRecon2";
290
-
291
- export type Engagement = "GreenT" | "Parallel" | "HeadOn" | "RedT";
438
+ | GearType.Unknown
439
+ | GearType.SmallMainGun
440
+ | GearType.MediumMainGun
441
+ | GearType.LargeMainGun
442
+ | GearType.SecondaryGun
443
+ | GearType.Torpedo
444
+ | GearType.CbFighter
445
+ | GearType.CbDiveBomber
446
+ | GearType.CbTorpedoBomber
447
+ | GearType.CbRecon
448
+ | GearType.ReconSeaplane
449
+ | GearType.SeaplaneBomber
450
+ | GearType.SmallRadar
451
+ | GearType.LargeRadar
452
+ | GearType.Sonar
453
+ | GearType.DepthCharge
454
+ | GearType.ExtraArmor
455
+ | GearType.Engine
456
+ | GearType.AntiAirShell
457
+ | GearType.ApShell
458
+ | GearType.VtFuze
459
+ | GearType.AntiAirGun
460
+ | GearType.MidgetSubmarine
461
+ | GearType.EmergencyRepair
462
+ | GearType.LandingCraft
463
+ | GearType.Rotorcraft
464
+ | GearType.AntiSubPatrolAircraft
465
+ | GearType.MediumArmor
466
+ | GearType.LargeArmor
467
+ | GearType.Searchlight
468
+ | GearType.SupplyContainer
469
+ | GearType.ShipRepairFacility
470
+ | GearType.SubmarineTorpedo
471
+ | GearType.Starshell
472
+ | GearType.CommandFacility
473
+ | GearType.AviationPersonnel
474
+ | GearType.AntiAirFireDirector
475
+ | GearType.AntiGroundEquipment
476
+ | GearType.LargeMainGun2
477
+ | GearType.ShipPersonnel
478
+ | GearType.LargeSonar
479
+ | GearType.LargeFlyingBoat
480
+ | GearType.LargeSearchlight
481
+ | GearType.CombatRation
482
+ | GearType.Supplies
483
+ | GearType.SeaplaneFighter
484
+ | GearType.AmphibiousTank
485
+ | GearType.LbAttacker
486
+ | GearType.LbFighter
487
+ | GearType.LbRecon
488
+ | GearType.TransportationMaterial
489
+ | GearType.SubmarineEquipment
490
+ | GearType.LargeLbAircraft
491
+ | GearType.JetFighter
492
+ | GearType.JetFighterBomber
493
+ | GearType.JetTorpedoBomber
494
+ | GearType.JetRecon
495
+ | GearType.LargeRadar2
496
+ | GearType.CbRecon2;
497
+
498
+ declare namespace Engagement {
499
+ export type GreenT = "GreenT";
500
+ export type Parallel = "Parallel";
501
+ export type HeadOn = "HeadOn";
502
+ export type RedT = "RedT";
503
+ }
504
+
505
+ export type Engagement =
506
+ | Engagement.GreenT
507
+ | Engagement.Parallel
508
+ | Engagement.HeadOn
509
+ | Engagement.RedT;
292
510
 
293
511
  export interface EBonuses {
294
512
  firepower: number;
@@ -330,14 +548,39 @@ export interface GearInput {
330
548
 
331
549
  export type GearVecInput = GearInput[];
332
550
 
333
- export type AirStateRank = "Rank0" | "Rank1" | "Rank2" | "Rank3";
551
+ declare namespace AirStateRank {
552
+ export type Rank0 = "Rank0";
553
+ export type Rank1 = "Rank1";
554
+ export type Rank2 = "Rank2";
555
+ export type Rank3 = "Rank3";
556
+ }
557
+
558
+ export type AirStateRank =
559
+ | AirStateRank.Rank0
560
+ | AirStateRank.Rank1
561
+ | AirStateRank.Rank2
562
+ | AirStateRank.Rank3;
563
+
564
+ declare namespace AirState {
565
+ export type AirSupremacy = "AirSupremacy";
566
+ export type AirSuperiority = "AirSuperiority";
567
+ export type AirParity = "AirParity";
568
+ export type AirDenial = "AirDenial";
569
+ export type AirIncapability = "AirIncapability";
570
+ }
334
571
 
335
572
  export type AirState =
336
- | "AirSupremacy"
337
- | "AirSuperiority"
338
- | "AirParity"
339
- | "AirDenial"
340
- | "AirIncapability";
573
+ | AirState.AirSupremacy
574
+ | AirState.AirSuperiority
575
+ | AirState.AirParity
576
+ | AirState.AirDenial
577
+ | AirState.AirIncapability;
578
+
579
+ export interface ShellingSupportSimulatorParams {
580
+ attacker_formation: Formation;
581
+ target_formation: Formation;
582
+ engagement: Engagement;
583
+ }
341
584
 
342
585
  export interface MasterIBonuses {
343
586
  shelling_power: MasterIBonusRule[];
@@ -369,25 +612,6 @@ export interface NightSituation {
369
612
  searchlight: boolean;
370
613
  }
371
614
 
372
- export interface FleetCutinAnalysis {
373
- shelling: FleetCutinInfo[];
374
- night: FleetCutinInfo[];
375
- }
376
-
377
- export interface FleetCutinInfo {
378
- cutin: FleetCutin;
379
- rate: number | null;
380
- formation: Formation;
381
- items: FleetCutinInfoItem[];
382
- }
383
-
384
- export interface FleetCutinInfoItem {
385
- ship_id: number;
386
- cutin: FleetCutin;
387
- fleet_cutin_mod: number;
388
- stats: AttackStats;
389
- }
390
-
391
615
  export interface DamageInfo {
392
616
  miss_damage_min: number;
393
617
  miss_damage_max: number;
@@ -401,39 +625,134 @@ export interface DamageInfo {
401
625
  damage_state_map: NumMap<DamageState, number>;
402
626
  }
403
627
 
628
+ declare namespace ShipAttr {
629
+ export type Unknown = "Unknown";
630
+ export type Abyssal = "Abyssal";
631
+ export type NightCarrier = "NightCarrier";
632
+ export type Installation = "Installation";
633
+ export type RoyalNavy = "RoyalNavy";
634
+ export type Kai2 = "Kai2";
635
+ export type TurbineSpeedBonus = "TurbineSpeedBonus";
636
+ export type Pillbox = "Pillbox";
637
+ export type IsolatedIsland = "IsolatedIsland";
638
+ export type HarbourSummerPrincess = "HarbourSummerPrincess";
639
+ export type SupplyDepot = "SupplyDepot";
640
+ export type PtImp = "PtImp";
641
+ export type BattleshipSummerPrincess = "BattleshipSummerPrincess";
642
+ export type HeavyCruiserSummerPrincess = "HeavyCruiserSummerPrincess";
643
+ }
644
+
404
645
  export type ShipAttr =
405
- | "Unknown"
406
- | "Abyssal"
407
- | "NightCarrier"
408
- | "Installation"
409
- | "RoyalNavy"
410
- | "Kai2"
411
- | "TurbineSpeedBonus"
412
- | "Pillbox"
413
- | "IsolatedIsland"
414
- | "HarbourSummerPrincess"
415
- | "SupplyDepot"
416
- | "PtImp"
417
- | "BattleshipSummerPrincess"
418
- | "HeavyCruiserSummerPrincess";
419
-
420
- export type Formation = SingleFormation | CombinedFormation;
646
+ | ShipAttr.Unknown
647
+ | ShipAttr.Abyssal
648
+ | ShipAttr.NightCarrier
649
+ | ShipAttr.Installation
650
+ | ShipAttr.RoyalNavy
651
+ | ShipAttr.Kai2
652
+ | ShipAttr.TurbineSpeedBonus
653
+ | ShipAttr.Pillbox
654
+ | ShipAttr.IsolatedIsland
655
+ | ShipAttr.HarbourSummerPrincess
656
+ | ShipAttr.SupplyDepot
657
+ | ShipAttr.PtImp
658
+ | ShipAttr.BattleshipSummerPrincess
659
+ | ShipAttr.HeavyCruiserSummerPrincess;
660
+
661
+ type __FormationCombinedFormation = CombinedFormation;
662
+ type __FormationSingleFormation = SingleFormation;
663
+ declare namespace Formation {
664
+ export type Single = __FormationSingleFormation;
665
+ export type Combined = __FormationCombinedFormation;
666
+ }
667
+
668
+ export type Formation = Formation.Single | Formation.Combined;
669
+
670
+ declare namespace CombinedFormation {
671
+ export type Cruising1 = "Cruising1";
672
+ export type Cruising2 = "Cruising2";
673
+ export type Cruising3 = "Cruising3";
674
+ export type Cruising4 = "Cruising4";
675
+ }
421
676
 
422
677
  export type CombinedFormation =
423
- | "Cruising1"
424
- | "Cruising2"
425
- | "Cruising3"
426
- | "Cruising4";
678
+ | CombinedFormation.Cruising1
679
+ | CombinedFormation.Cruising2
680
+ | CombinedFormation.Cruising3
681
+ | CombinedFormation.Cruising4;
682
+
683
+ declare namespace SingleFormation {
684
+ export type LineAhead = "LineAhead";
685
+ export type DoubleLine = "DoubleLine";
686
+ export type Diamond = "Diamond";
687
+ export type Echelon = "Echelon";
688
+ export type LineAbreast = "LineAbreast";
689
+ export type Vanguard = "Vanguard";
690
+ }
427
691
 
428
692
  export type SingleFormation =
429
- | "LineAhead"
430
- | "DoubleLine"
431
- | "Diamond"
432
- | "Echelon"
433
- | "LineAbreast"
434
- | "Vanguard";
693
+ | SingleFormation.LineAhead
694
+ | SingleFormation.DoubleLine
695
+ | SingleFormation.Diamond
696
+ | SingleFormation.Echelon
697
+ | SingleFormation.LineAbreast
698
+ | SingleFormation.Vanguard;
699
+
700
+ export interface CustomPowerModifiers {
701
+ precap_mod?: AttackPowerModifier;
702
+ postcap_mod?: AttackPowerModifier;
703
+ basic_power_mod?: AttackPowerModifier;
704
+ }
705
+
706
+ export interface SpecialEnemyModifiers {
707
+ precap_general_mod: AttackPowerModifier;
708
+ stype_mod: AttackPowerModifier;
709
+ landing_craft_synergy_mod: AttackPowerModifier;
710
+ toku_daihatsu_tank_mod: AttackPowerModifier;
711
+ m4a1dd_mod: AttackPowerModifier;
712
+ honi_mod: AttackPowerModifier;
713
+ postcap_general_mod: AttackPowerModifier;
714
+ pt_mod: AttackPowerModifier;
715
+ }
716
+
717
+ export interface AttackPowerModifier {
718
+ a?: number;
719
+ b?: number;
720
+ }
721
+
722
+ export interface AttackPower {
723
+ precap: number;
724
+ is_capped: boolean;
725
+ capped: number;
726
+ normal: number;
727
+ critical: number;
728
+ armor_penetration: number;
729
+ remaining_ammo_mod: number;
730
+ }
731
+
732
+ export interface AttackPowerParams {
733
+ basic: number;
734
+ cap: number;
735
+ precap_mod: AttackPowerModifier;
736
+ postcap_mod: AttackPowerModifier;
737
+ ap_shell_mod: number | null;
738
+ carrier_power: number | null;
739
+ proficiency_critical_mod: number | null;
740
+ armor_penetration: number;
741
+ remaining_ammo_mod: number;
742
+ special_enemy_mods: SpecialEnemyModifiers;
743
+ custom_mods: CustomPowerModifiers;
744
+ }
435
745
 
436
- export type FleetType = "Main" | "Escort" | "RouteSup" | "BossSup";
746
+ export interface SpecialEnemyModifiers {
747
+ precap_general_mod: AttackPowerModifier;
748
+ stype_mod: AttackPowerModifier;
749
+ landing_craft_synergy_mod: AttackPowerModifier;
750
+ toku_daihatsu_tank_mod: AttackPowerModifier;
751
+ m4a1dd_mod: AttackPowerModifier;
752
+ honi_mod: AttackPowerModifier;
753
+ postcap_general_mod: AttackPowerModifier;
754
+ pt_mod: AttackPowerModifier;
755
+ }
437
756
 
438
757
  export interface CompAntiAirInfo {
439
758
  fleet_adjusted_anti_air: number;
@@ -467,62 +786,89 @@ export interface AirstrikeContactChance {
467
786
 
468
787
  export type SlotSizeVec = (number | null)[];
469
788
 
470
- export type GearAttr =
471
- | "Unknown"
472
- | "Abyssal"
473
- | "HighAngleMount"
474
- | "NightFighter"
475
- | "NightAttacker"
476
- | "HeavyBomber"
477
- | "MainGun"
478
- | "Radar"
479
- | "SurfaceRadar"
480
- | "AirRadar"
481
- | "DepthChargeProjector"
482
- | "SynergisticDepthCharge"
483
- | "AntiSubMortar"
484
- | "AntiSubWeapon"
485
- | "AntiSubAircraft"
486
- | "LateModelBowTorpedo"
487
- | "Seaplane"
488
- | "CbAircraft"
489
- | "LbAircraft"
490
- | "JetAircraft"
491
- | "Fighter"
492
- | "Recon"
493
- | "ObservationSeaplane"
494
- | "CbFighterBomber"
495
- | "AntiInstDiveBomber"
496
- | "NightRecon"
497
- | "CbSwordfish"
498
- | "SemiNightPlane"
499
- | "HighAltitudeInterceptor";
500
-
501
- export interface MasterGear {
502
- gear_id: number;
503
- name: string;
504
- types: GearTypeIdArray;
505
- special_type?: number;
506
- max_hp?: number;
507
- firepower?: number;
508
- armor?: number;
509
- torpedo?: number;
510
- anti_air?: number;
511
- speed?: number;
512
- bombing?: number;
513
- asw?: number;
514
- los?: number;
515
- luck?: number;
516
- accuracy?: number;
517
- evasion?: number;
518
- range?: number;
519
- radius?: number;
520
- cost?: number;
521
- improvable?: boolean;
522
- ship_anti_air_resistance?: number;
523
- fleet_anti_air_resistance?: number;
789
+ declare namespace Side {
790
+ export type Player = "Player";
791
+ export type Enemy = "Enemy";
792
+ }
793
+
794
+ export type Side = Side.Player | Side.Enemy;
795
+
796
+ declare namespace GearAttr {
797
+ export type Unknown = "Unknown";
798
+ export type Abyssal = "Abyssal";
799
+ export type HighAngleMount = "HighAngleMount";
800
+ export type NightFighter = "NightFighter";
801
+ export type NightAttacker = "NightAttacker";
802
+ export type HeavyBomber = "HeavyBomber";
803
+ export type MainGun = "MainGun";
804
+ export type Radar = "Radar";
805
+ export type SurfaceRadar = "SurfaceRadar";
806
+ export type AirRadar = "AirRadar";
807
+ export type DepthChargeProjector = "DepthChargeProjector";
808
+ export type SynergisticDepthCharge = "SynergisticDepthCharge";
809
+ export type AntiSubMortar = "AntiSubMortar";
810
+ export type AntiSubWeapon = "AntiSubWeapon";
811
+ export type AntiSubAircraft = "AntiSubAircraft";
812
+ export type LateModelBowTorpedo = "LateModelBowTorpedo";
813
+ export type Seaplane = "Seaplane";
814
+ export type CbAircraft = "CbAircraft";
815
+ export type LbAircraft = "LbAircraft";
816
+ export type JetAircraft = "JetAircraft";
817
+ export type Fighter = "Fighter";
818
+ export type Recon = "Recon";
819
+ export type ObservationSeaplane = "ObservationSeaplane";
820
+ export type CbFighterBomber = "CbFighterBomber";
821
+ export type AntiInstDiveBomber = "AntiInstDiveBomber";
822
+ export type NightRecon = "NightRecon";
823
+ export type CbSwordfish = "CbSwordfish";
824
+ export type SemiNightPlane = "SemiNightPlane";
825
+ export type HighAltitudeInterceptor = "HighAltitudeInterceptor";
524
826
  }
525
827
 
828
+ export type GearAttr =
829
+ | GearAttr.Unknown
830
+ | GearAttr.Abyssal
831
+ | GearAttr.HighAngleMount
832
+ | GearAttr.NightFighter
833
+ | GearAttr.NightAttacker
834
+ | GearAttr.HeavyBomber
835
+ | GearAttr.MainGun
836
+ | GearAttr.Radar
837
+ | GearAttr.SurfaceRadar
838
+ | GearAttr.AirRadar
839
+ | GearAttr.DepthChargeProjector
840
+ | GearAttr.SynergisticDepthCharge
841
+ | GearAttr.AntiSubMortar
842
+ | GearAttr.AntiSubWeapon
843
+ | GearAttr.AntiSubAircraft
844
+ | GearAttr.LateModelBowTorpedo
845
+ | GearAttr.Seaplane
846
+ | GearAttr.CbAircraft
847
+ | GearAttr.LbAircraft
848
+ | GearAttr.JetAircraft
849
+ | GearAttr.Fighter
850
+ | GearAttr.Recon
851
+ | GearAttr.ObservationSeaplane
852
+ | GearAttr.CbFighterBomber
853
+ | GearAttr.AntiInstDiveBomber
854
+ | GearAttr.NightRecon
855
+ | GearAttr.CbSwordfish
856
+ | GearAttr.SemiNightPlane
857
+ | GearAttr.HighAltitudeInterceptor;
858
+
859
+ declare namespace FleetType {
860
+ export type Main = "Main";
861
+ export type Escort = "Escort";
862
+ export type RouteSup = "RouteSup";
863
+ export type BossSup = "BossSup";
864
+ }
865
+
866
+ export type FleetType =
867
+ | FleetType.Main
868
+ | FleetType.Escort
869
+ | FleetType.RouteSup
870
+ | FleetType.BossSup;
871
+
526
872
  export interface MasterEquippable {
527
873
  equip_stype: EquipStype[];
528
874
  equip_exslot: number[];
@@ -545,28 +891,33 @@ export interface EquipStype {
545
891
  equip_type: number[];
546
892
  }
547
893
 
548
- export interface HitRate {
549
- total: number;
550
- normal: number;
551
- critical: number;
552
- }
553
-
554
- export interface HitRateParams {
555
- accuracy_term: number;
556
- evasion_term: number;
557
- target_morale_mod: number;
558
- critical_rate_constant: number;
559
- critical_percentage_bonus: number;
560
- hit_percentage_bonus: number;
894
+ type __NightBattleAttackTypeAswAttackType = AswAttackType;
895
+ type __NightBattleAttackTypeNightAttackType = NightAttackType;
896
+ declare namespace NightBattleAttackType {
897
+ export type NightAttack = {
898
+ t: "NightAttack";
899
+ c: __NightBattleAttackTypeNightAttackType;
900
+ };
901
+ export type Asw = { t: "Asw"; c: __NightBattleAttackTypeAswAttackType };
561
902
  }
562
903
 
563
904
  export type NightBattleAttackType =
564
- | { t: "NightAttack"; c: NightAttackType }
565
- | { t: "Asw"; c: AswAttackType };
905
+ | NightBattleAttackType.NightAttack
906
+ | NightBattleAttackType.Asw;
907
+
908
+ type __DayBattleAttackTypeAswAttackType = AswAttackType;
909
+ type __DayBattleAttackTypeShellingAttackType = ShellingAttackType;
910
+ declare namespace DayBattleAttackType {
911
+ export type Shelling = {
912
+ t: "Shelling";
913
+ c: __DayBattleAttackTypeShellingAttackType;
914
+ };
915
+ export type Asw = { t: "Asw"; c: __DayBattleAttackTypeAswAttackType };
916
+ }
566
917
 
567
918
  export type DayBattleAttackType =
568
- | { t: "Shelling"; c: ShellingAttackType }
569
- | { t: "Asw"; c: AswAttackType };
919
+ | DayBattleAttackType.Shelling
920
+ | DayBattleAttackType.Asw;
570
921
 
571
922
  export interface AttackInfo<AttackType, Cutin> {
572
923
  attack_type: AttackType;
@@ -591,7 +942,24 @@ export interface AttackStats {
591
942
 
592
943
  export type ShipStateMap = Record<ShipKey, ShipState>;
593
944
 
594
- export type ShipKey = "s1" | "s2" | "s3" | "s4" | "s5" | "s6" | "s7";
945
+ declare namespace ShipKey {
946
+ export type s1 = "s1";
947
+ export type s2 = "s2";
948
+ export type s3 = "s3";
949
+ export type s4 = "s4";
950
+ export type s5 = "s5";
951
+ export type s6 = "s6";
952
+ export type s7 = "s7";
953
+ }
954
+
955
+ export type ShipKey =
956
+ | ShipKey.s1
957
+ | ShipKey.s2
958
+ | ShipKey.s3
959
+ | ShipKey.s4
960
+ | ShipKey.s5
961
+ | ShipKey.s6
962
+ | ShipKey.s7;
595
963
 
596
964
  export interface OrgState {
597
965
  id?: string;
@@ -609,23 +977,19 @@ export interface OrgState {
609
977
  boss_sup?: string;
610
978
  }
611
979
 
612
- export interface AirSquadronState {
980
+ export interface AirSquadronState extends GearVecState, SlotSizeVecState {
613
981
  id?: string;
614
982
  mode?: AirSquadronMode;
615
- g1?: GearState;
616
- g2?: GearState;
617
- g3?: GearState;
618
- g4?: GearState;
619
- g5?: GearState;
620
- gx?: GearState;
621
- ss1?: number;
622
- ss2?: number;
623
- ss3?: number;
624
- ss4?: number;
625
- ss5?: number;
626
983
  }
627
984
 
628
- export type AirSquadronMode = "Sortie" | "AirDefense";
985
+ declare namespace AirSquadronMode {
986
+ export type Sortie = "Sortie";
987
+ export type AirDefense = "AirDefense";
988
+ }
989
+
990
+ export type AirSquadronMode =
991
+ | AirSquadronMode.Sortie
992
+ | AirSquadronMode.AirDefense;
629
993
 
630
994
  export interface FleetState {
631
995
  id?: string;
@@ -656,6 +1020,9 @@ export interface ShipState extends GearVecState, SlotSizeVecState {
656
1020
  asw_mod?: number;
657
1021
  los_mod?: number;
658
1022
  luck_mod?: number;
1023
+ day_gunfit_accuracy?: number;
1024
+ night_gunfit_accuracy?: number;
1025
+ custom_power_mods?: CustomPowerModifiers;
659
1026
  }
660
1027
 
661
1028
  export interface SlotSizeVecState {
@@ -682,55 +1049,103 @@ export interface GearState {
682
1049
  stars?: number;
683
1050
  }
684
1051
 
685
- export type NightAttackType = "Normal" | "ArkRoyal" | "Carrier";
1052
+ export interface MasterGear {
1053
+ gear_id: number;
1054
+ name: string;
1055
+ types: GearTypeIdArray;
1056
+ special_type?: number;
1057
+ max_hp?: number;
1058
+ firepower?: number;
1059
+ armor?: number;
1060
+ torpedo?: number;
1061
+ anti_air?: number;
1062
+ speed?: number;
1063
+ bombing?: number;
1064
+ asw?: number;
1065
+ los?: number;
1066
+ luck?: number;
1067
+ accuracy?: number;
1068
+ evasion?: number;
1069
+ range?: number;
1070
+ radius?: number;
1071
+ cost?: number;
1072
+ improvable?: boolean;
1073
+ ship_anti_air_resistance?: number;
1074
+ fleet_anti_air_resistance?: number;
1075
+ }
686
1076
 
687
- export type NightSpecialAttack =
688
- | { NightCutin: NightCutin }
689
- | { FleetCutin: FleetCutin };
1077
+ export interface HitRate {
1078
+ total: number;
1079
+ normal: number;
1080
+ critical: number;
1081
+ }
690
1082
 
691
- export type NightCutin =
692
- | "MainTorpRadar"
693
- | "TorpLookoutRadar"
694
- | "TorpTsloTorp"
695
- | "TorpTsloDrum"
696
- | "DoubleAttack"
697
- | "TorpTorpMain"
698
- | "TorpTorpTorp"
699
- | "MainMainSec"
700
- | "MainMainMain"
701
- | "SubTorpTorp"
702
- | "SubRadarTorp"
703
- | "Cvci1_25"
704
- | "Cvci1_20"
705
- | "Cvci1_18"
706
- | "Photobomber";
1083
+ export interface HitRateParams {
1084
+ accuracy_term: number;
1085
+ evasion_term: number;
1086
+ target_morale_mod: number;
1087
+ critical_rate_constant: number;
1088
+ critical_percentage_bonus: number;
1089
+ hit_percentage_bonus: number;
1090
+ }
707
1091
 
708
- export interface WarfareInfo {
709
- day: AttackInfo<DayBattleAttackType, DayCutin | null> | null;
710
- closing_torpedo: AttackInfo<null, null> | null;
711
- night: AttackInfo<NightBattleAttackType, NightCutin | null> | null;
712
- shelling_support: AttackInfo<null, null> | null;
713
- opening_asw: AttackInfo<null, null> | null;
1092
+ declare namespace NightAttackType {
1093
+ export type Normal = "Normal";
1094
+ export type ArkRoyal = "ArkRoyal";
1095
+ export type Carrier = "Carrier";
714
1096
  }
715
1097
 
716
- export interface WarfareAnalyzerContext {
717
- attacker_env: WarfareAnalyzerShipEnvironment;
718
- target_env: WarfareAnalyzerShipEnvironment;
719
- engagement: Engagement;
720
- air_state: AirState;
1098
+ export type NightAttackType =
1099
+ | NightAttackType.Normal
1100
+ | NightAttackType.ArkRoyal
1101
+ | NightAttackType.Carrier;
1102
+
1103
+ type __NightSpecialAttackFleetCutin = FleetCutin;
1104
+ type __NightSpecialAttackNightCutin = NightCutin;
1105
+ declare namespace NightSpecialAttack {
1106
+ export type NightCutin = { NightCutin: __NightSpecialAttackNightCutin };
1107
+ export type FleetCutin = { FleetCutin: __NightSpecialAttackFleetCutin };
721
1108
  }
722
1109
 
723
- export interface WarfareAnalyzerShipEnvironment {
724
- org_type: OrgType;
725
- role: Role;
726
- ship_index: number;
727
- fleet_len: number;
728
- formation: Formation;
729
- fleet_los_mod: number | null;
730
- night_situation: NightSituation;
731
- custom_mods: CustomModifiers;
1110
+ export type NightSpecialAttack =
1111
+ | NightSpecialAttack.NightCutin
1112
+ | NightSpecialAttack.FleetCutin;
1113
+
1114
+ declare namespace NightCutin {
1115
+ export type MainTorpRadar = "MainTorpRadar";
1116
+ export type TorpLookoutRadar = "TorpLookoutRadar";
1117
+ export type TorpTsloTorp = "TorpTsloTorp";
1118
+ export type TorpTsloDrum = "TorpTsloDrum";
1119
+ export type DoubleAttack = "DoubleAttack";
1120
+ export type TorpTorpMain = "TorpTorpMain";
1121
+ export type TorpTorpTorp = "TorpTorpTorp";
1122
+ export type MainMainSec = "MainMainSec";
1123
+ export type MainMainMain = "MainMainMain";
1124
+ export type SubTorpTorp = "SubTorpTorp";
1125
+ export type SubRadarTorp = "SubRadarTorp";
1126
+ export type Cvci1_25 = "Cvci1_25";
1127
+ export type Cvci1_20 = "Cvci1_20";
1128
+ export type Cvci1_18 = "Cvci1_18";
1129
+ export type Photobomber = "Photobomber";
732
1130
  }
733
1131
 
1132
+ export type NightCutin =
1133
+ | NightCutin.MainTorpRadar
1134
+ | NightCutin.TorpLookoutRadar
1135
+ | NightCutin.TorpTsloTorp
1136
+ | NightCutin.TorpTsloDrum
1137
+ | NightCutin.DoubleAttack
1138
+ | NightCutin.TorpTorpMain
1139
+ | NightCutin.TorpTorpTorp
1140
+ | NightCutin.MainMainSec
1141
+ | NightCutin.MainMainMain
1142
+ | NightCutin.SubTorpTorp
1143
+ | NightCutin.SubRadarTorp
1144
+ | NightCutin.Cvci1_25
1145
+ | NightCutin.Cvci1_20
1146
+ | NightCutin.Cvci1_18
1147
+ | NightCutin.Photobomber;
1148
+
734
1149
  export interface BattleConfig {
735
1150
  formation: Record<Formation, NestedFormationDef>;
736
1151
  anti_air_cutin: Record<number, AntiAirCutinDef>;
@@ -762,9 +1177,18 @@ export interface AntiAirCutinDef {
762
1177
  sequential: boolean | null;
763
1178
  }
764
1179
 
1180
+ type __NestedFormationDefFormationDef = FormationDef;
1181
+ declare namespace NestedFormationDef {
1182
+ export type Normal = __NestedFormationDefFormationDef;
1183
+ export type Vanguard = {
1184
+ top_half: __NestedFormationDefFormationDef;
1185
+ bottom_half: __NestedFormationDefFormationDef;
1186
+ };
1187
+ }
1188
+
765
1189
  export type NestedFormationDef =
766
- | FormationDef
767
- | { top_half: FormationDef; bottom_half: FormationDef };
1190
+ | NestedFormationDef.Normal
1191
+ | NestedFormationDef.Vanguard;
768
1192
 
769
1193
  export interface FormationDef {
770
1194
  tag: Formation;
@@ -818,26 +1242,16 @@ export type StatInterval = [number | null, number | null];
818
1242
 
819
1243
  export type GearTypeIdArray = [number, number, number, number, number];
820
1244
 
821
- export type Side = "Player" | "Enemy";
822
-
823
- export type SpecialEnemyType =
824
- | "None"
825
- | "SoftSkinned"
826
- | "Pillbox"
827
- | "IsolatedIsland"
828
- | "SupplyDepot"
829
- | "HarbourSummerPrincess"
830
- | "PtImp"
831
- | "BattleshipSummerPrincess"
832
- | "HeavyCruiserSummerPrincess";
833
-
834
- export type MoraleState = "Sparkle" | "Normal" | "Orange" | "Red";
835
-
836
- export type DamageState = "Normal" | "Shouha" | "Chuuha" | "Taiha" | "Sunk";
837
-
838
- export type SpeedGroup = "A" | "B1" | "B2" | "C";
1245
+ declare namespace ContactRank {
1246
+ export type Rank1 = "Rank1";
1247
+ export type Rank2 = "Rank2";
1248
+ export type Rank3 = "Rank3";
1249
+ }
839
1250
 
840
- export type ContactRank = "Rank1" | "Rank2" | "Rank3";
1251
+ export type ContactRank =
1252
+ | ContactRank.Rank1
1253
+ | ContactRank.Rank2
1254
+ | ContactRank.Rank3;
841
1255
 
842
1256
  export interface SimulatorResult {
843
1257
  items: SimulatorResultItem[];
@@ -851,6 +1265,31 @@ export interface SimulatorResultItem {
851
1265
  damage_state_map: Record<DamageState, number>;
852
1266
  }
853
1267
 
1268
+ export interface WarfareInfo {
1269
+ day: AttackInfo<DayBattleAttackType, DayCutin | null> | null;
1270
+ closing_torpedo: AttackInfo<null, null> | null;
1271
+ night: AttackInfo<NightBattleAttackType, NightCutin | null> | null;
1272
+ shelling_support: AttackInfo<null, null> | null;
1273
+ opening_asw: AttackInfo<null, null> | null;
1274
+ }
1275
+
1276
+ export interface WarfareAnalyzerContext {
1277
+ attacker_env: WarfareAnalyzerShipEnvironment;
1278
+ target_env: WarfareAnalyzerShipEnvironment;
1279
+ engagement: Engagement;
1280
+ air_state: AirState;
1281
+ }
1282
+
1283
+ export interface WarfareAnalyzerShipEnvironment {
1284
+ org_type: OrgType;
1285
+ role: Role;
1286
+ ship_index: number;
1287
+ fleet_len: number;
1288
+ formation: Formation;
1289
+ fleet_los_mod: number | null;
1290
+ night_situation: NightSituation;
1291
+ }
1292
+
854
1293
  export interface FleetNightCutinRateInfo {
855
1294
  night_contact_chance: NightContactChance;
856
1295
  ships: ShipNightCutinRateInfo[];
@@ -1675,6 +2114,10 @@ export class Ship {
1675
2114
  * @returns {ShipState}
1676
2115
  */
1677
2116
  state(): ShipState;
2117
+ /**
2118
+ * @returns {CustomPowerModifiers}
2119
+ */
2120
+ custom_power_mods(): CustomPowerModifiers;
1678
2121
  /**
1679
2122
  * @returns {ShipMeta}
1680
2123
  */
@@ -1814,11 +2257,6 @@ export class Ship {
1814
2257
  * @returns {number}
1815
2258
  */
1816
2259
  cruiser_fit_bonus(): number;
1817
- /**
1818
- * @param {boolean} is_night
1819
- * @returns {number}
1820
- */
1821
- fit_gun_bonus(is_night: boolean): number;
1822
2260
  /**
1823
2261
  * @returns {number | undefined}
1824
2262
  */
@@ -1861,6 +2299,20 @@ export class Ship {
1861
2299
  * @param {number} value
1862
2300
  */
1863
2301
  take_damage(value: number): void;
2302
+ /**
2303
+ * @returns {number | undefined}
2304
+ */
2305
+ state_day_gunfit_accuracy(): number | undefined;
2306
+ /**
2307
+ * @returns {number | undefined}
2308
+ */
2309
+ state_night_gunfit_accuracy(): number | undefined;
2310
+ /**
2311
+ * フィット砲補正
2312
+ * @param {boolean} is_night
2313
+ * @returns {number}
2314
+ */
2315
+ gunfit_accuracy(is_night: boolean): number;
1864
2316
  /**
1865
2317
  */
1866
2318
  readonly accuracy: number;