fleethub-core 1.12.10 → 1.12.11

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.
@@ -2,12 +2,23 @@
2
2
  /* eslint-disable */
3
3
  export function parse_ship_conditions(value: ShipConditions): ShipConditions;
4
4
  export function set_panic_hook(): void;
5
- export interface MasterBattleDefinitions {
6
- formation: NestedFormationDef[];
7
- anti_air_cutin: AntiAirCutinDef[];
8
- day_cutin: DayCutinDef[];
9
- night_cutin: NightCutinDef[];
10
- historical_bonuses?: HistoricalBonusDef[];
5
+ export interface NodeAttackAnalyzerShipConfig extends NightFleetConditions {
6
+ formation?: Formation;
7
+ }
8
+
9
+ export interface NodeAttackAnalyzerConfig {
10
+ air_state?: AirState;
11
+ engagement?: Engagement;
12
+ node_state?: NodeState;
13
+ left?: NodeAttackAnalyzerShipConfig;
14
+ right?: NodeAttackAnalyzerShipConfig;
15
+ }
16
+
17
+ export interface NodeAttackAnalysis {
18
+ left: AttackAnalysis;
19
+ right: AttackAnalysis;
20
+ shelling_fleet_cutin: FleetCutinReport<ShellingStyle>[];
21
+ night_fleet_cutin: FleetCutinReport<NightAttackStyle>[];
11
22
  }
12
23
 
13
24
  export interface FleetCutinReport<T> {
@@ -23,460 +34,153 @@ export interface FleetCutinAttackReport<T> extends AttackReport<T> {
23
34
  power_mod: number;
24
35
  }
25
36
 
26
- export interface ActionReport<T> {
27
- data: Record<string, AttackReport<T>>;
28
- damage_state_density: Histogram<DamageState, number> | null;
29
- is_active: boolean;
37
+ export interface AttackAnalysis {
38
+ attacker_is_player: boolean;
39
+ attacker_ship_id: number;
40
+ target_ship_id: number;
41
+ historical_params: HistoricalParams;
42
+ day: ActionReport<DayPhaseAttackStyle>;
43
+ night: ActionReport<NightPhaseAttackStyle>;
44
+ closing_torpedo: ActionReport<TorpedoAttackStyle>;
45
+ opening_asw: ActionReport<AswAttackStyle>;
46
+ support_shelling: ActionReport<SupportShellingStyle>;
30
47
  }
31
48
 
32
- export type SpeedGroup = "A" | "B1" | "B2" | "C";
49
+ export type AswAttackType = "DepthCharge" | "Aerial";
33
50
 
34
- export interface MoveShipPayload {
35
- current: [string, string, ShipKey];
36
- target: [string | null, string, ShipKey];
37
- }
51
+ export type ShellingType = "Normal" | "Aerial";
38
52
 
39
- export type GearVecInput = GearInput[];
53
+ export type NightAttackType = "Normal" | "Swordfish" | "Aerial";
40
54
 
41
- export interface GearInput {
42
- gear_id: number;
43
- types: GearTypeIdArray;
44
- firepower: number;
45
- torpedo: number;
46
- anti_air: number;
47
- armor: number;
48
- evasion: number;
49
- asw: number;
50
- los: number;
51
- bombing: number;
52
- accuracy: number;
53
- range: number;
54
- radius: number;
55
- stars: number;
56
- ace: number;
57
- }
55
+ export type SupportShellingType = ShellingType;
58
56
 
59
- export interface ShipInput {
60
- ship_id: number;
61
- ctype: number;
62
- stype: number;
63
- yomi: string;
64
- }
57
+ export type AttackType =
58
+ | { t: "Asw"; c: AswAttackType }
59
+ | { t: "Shelling"; c: ShellingType }
60
+ | { t: "Night"; c: NightAttackType }
61
+ | { t: "Torpedo" }
62
+ | { t: "SupportShelling"; c: SupportShellingType };
65
63
 
66
- export interface EBonuses {
67
- firepower: number;
68
- torpedo: number;
69
- anti_air: number;
70
- armor: number;
71
- evasion: number;
72
- asw: number;
73
- los: number;
74
- bombing: number;
75
- accuracy: number;
76
- range: number;
77
- }
64
+ export type DayPhaseAttackType =
65
+ | { t: "Shelling"; c: ShellingType }
66
+ | { t: "Asw"; c: AswAttackType };
78
67
 
79
- export interface SimulatorResult {
80
- items: SimulatorResultItem[];
81
- sunk_vec: [number, number, number][];
82
- }
68
+ export type NightPhaseAttackType =
69
+ | { t: "Night"; c: NightAttackType }
70
+ | { t: "Asw"; c: AswAttackType };
83
71
 
84
- export interface SimulatorResultItem {
85
- id: string;
86
- fleet_type: FleetType;
87
- index: number;
88
- damage_state_map: Record<DamageState, number>;
89
- }
72
+ export type TorpedoAttackType = null;
90
73
 
91
- export interface HitRate {
92
- normal: number;
93
- critical: number;
94
- total: number;
95
- }
74
+ export type DayCutin =
75
+ | "Zuiun"
76
+ | "AirSea"
77
+ | "MainMain"
78
+ | "MainAp"
79
+ | "MainRadar"
80
+ | "MainSec"
81
+ | "DoubleAttack"
82
+ | "FBA"
83
+ | "BBA"
84
+ | "BA";
96
85
 
97
- export interface HitRateParams {
98
- accuracy_term: number;
99
- evasion_term: number;
100
- target_morale_mod: number;
101
- critical_rate_constant: number;
102
- critical_percentage_bonus: number;
103
- hit_percentage_bonus: number;
104
- }
86
+ export type NightCutin =
87
+ | "MainTorpRadar"
88
+ | "TorpLookoutRadar"
89
+ | "TorpTsloTorp"
90
+ | "TorpTsloDrum"
91
+ | "NightZuiun2Radar"
92
+ | "NightZuiun2"
93
+ | "NightZuiunRadar"
94
+ | "NightZuiun"
95
+ | "DoubleAttack"
96
+ | "TorpTorpMain"
97
+ | "TorpTorpTorp"
98
+ | "MainMainSec"
99
+ | "MainMainMain"
100
+ | "SubTorpTorp"
101
+ | "SubRadarTorp"
102
+ | "Cvci1_25"
103
+ | "Cvci1_20"
104
+ | "Cvci1_18"
105
+ | "Photobomber";
105
106
 
106
- export interface AttackAnalyzerShipConfig
107
- extends ShipConditions,
108
- NightFleetConditions {
109
- balloons?: number;
110
- fleet_los_mod?: number | null;
111
- }
107
+ export type FleetCutin =
108
+ | "NelsonTouch"
109
+ | "NagatoClassCutin"
110
+ | "ColoradoClassCutin"
111
+ | "KongouClassCutin"
112
+ | "Yamato2ShipCutin"
113
+ | "Yamato3ShipCutin";
112
114
 
113
- export type AirSquadronMode = "Sortie" | "AirDefense";
115
+ export type DayCutinLike = DayCutin | FleetCutin;
114
116
 
115
- export interface AirSquadronState extends GearVecState, SlotSizeVecState {
116
- id?: string;
117
- mode?: AirSquadronMode;
118
- }
117
+ export type NightCutinLike = NightCutin | FleetCutin;
119
118
 
120
- export interface ShellingStyle {
121
- tag: "ShellingStyle";
122
- attack_type: ShellingType;
123
- cutin: DayCutinLike | null;
124
- power_mod: number;
125
- accuracy_mod: number;
126
- hits: number;
119
+ export interface ShipConditions extends ShipPosition {
120
+ formation?: Formation;
121
+ amagiri_index?: number | null;
127
122
  }
128
123
 
129
- export interface NightAttackStyle {
130
- tag: "NightAttackStyle";
131
- attack_type: NightAttackType;
132
- cutin: NightCutinLike | null;
133
- power_mod: number;
134
- accuracy_mod: number;
135
- hits: number;
124
+ export interface BattleConditions {
125
+ org_type: OrgType;
126
+ role: Role;
127
+ ship_index: number;
128
+ fleet_len: number;
129
+ formation: Formation;
130
+ fleet_los_mod: number | null;
131
+ night_conditions: NightFleetConditions;
136
132
  }
137
133
 
138
- export interface AswAttackStyle {
139
- tag: "AswAttackStyle";
140
- attack_type: AswAttackType;
134
+ export interface NightConditions {
135
+ player?: NightFleetConditions;
136
+ enemy?: NightFleetConditions;
141
137
  }
142
138
 
143
- export interface TorpedoAttackStyle {
144
- tag: "TorpedoAttackStyle";
145
- attack_type: TorpedoAttackType;
139
+ export interface NightFleetConditions {
140
+ night_contact_rank?: ContactRank | null;
141
+ starshell_index?: number | null;
142
+ searchlight_index?: number | null;
143
+ activates_large_searchlight?: boolean;
146
144
  }
147
145
 
148
- export type DayPhaseAttackStyle = ShellingStyle | AswAttackStyle;
149
-
150
- export type NightPhaseAttackStyle = NightAttackStyle | AswAttackStyle;
146
+ export type GearAttr =
147
+ | "Unknown"
148
+ | "HighAngleMount"
149
+ | "NightFighter"
150
+ | "NightAttacker"
151
+ | "HeavyBomber"
152
+ | "NightRecon"
153
+ | "MainGun"
154
+ | "Radar"
155
+ | "SurfaceRadar"
156
+ | "AirRadar"
157
+ | "DepthChargeProjector"
158
+ | "SynergisticDepthCharge"
159
+ | "AntiSubMortar"
160
+ | "AntiSubWeapon"
161
+ | "ApDepthCharge"
162
+ | "AntiSubAircraft"
163
+ | "LateModelBowTorpedo"
164
+ | "Seaplane"
165
+ | "CbAircraft"
166
+ | "LbAircraft"
167
+ | "JetAircraft"
168
+ | "Fighter"
169
+ | "Recon"
170
+ | "ObservationSeaplane"
171
+ | "CbFighterBomber"
172
+ | "AntiInstDiveBomber"
173
+ | "CbSwordfish"
174
+ | "SemiNightPlane"
175
+ | "HighAltitudeInterceptor";
151
176
 
152
- export interface SupportShellingStyle {
153
- tag: "SupportShellingStyle";
154
- attack_type: SupportShellingType;
177
+ export interface ShipPosition {
178
+ org_type?: OrgType;
179
+ fleet_type?: FleetType;
180
+ fleet_len?: number;
181
+ index?: number;
155
182
  }
156
183
 
157
- export type DamageState = "Normal" | "Shouha" | "Chuuha" | "Taiha" | "Sunk";
158
-
159
- export type FleetType = "Main" | "Escort" | "RouteSup" | "BossSup";
160
-
161
- export interface ShipMeta {
162
- id: string;
163
- ship_id: number;
164
- }
165
-
166
- export interface FleetMeta {
167
- id: string;
168
- len: number;
169
- ships: [string, ShipMeta | null][];
170
- }
171
-
172
- export interface CompMeta {
173
- fleets: Record<FleetType, FleetMeta>;
174
- }
175
-
176
- export interface OrgState {
177
- id?: string;
178
- f1?: FleetState;
179
- f2?: FleetState;
180
- f3?: FleetState;
181
- f4?: FleetState;
182
- a1?: AirSquadronState;
183
- a2?: AirSquadronState;
184
- a3?: AirSquadronState;
185
- hq_level?: number;
186
- org_type?: OrgType;
187
- sortie?: FleetKey;
188
- route_sup?: FleetKey;
189
- boss_sup?: FleetKey;
190
- }
191
-
192
- export type FleetKey = "f1" | "f2" | "f3" | "f4";
193
-
194
- export interface SlotSizeVecState {
195
- ss1?: number;
196
- ss2?: number;
197
- ss3?: number;
198
- ss4?: number;
199
- ss5?: number;
200
- }
201
-
202
- export interface ShipState extends GearVecState, SlotSizeVecState {
203
- id?: string;
204
- ship_id: number;
205
- level?: number;
206
- current_hp?: number;
207
- morale?: number;
208
- ammo?: number;
209
- fuel?: number;
210
- max_hp_mod?: number;
211
- firepower_mod?: number;
212
- torpedo_mod?: number;
213
- armor_mod?: number;
214
- anti_air_mod?: number;
215
- evasion_mod?: number;
216
- asw_mod?: number;
217
- los_mod?: number;
218
- luck_mod?: number;
219
- day_gunfit_accuracy?: number;
220
- night_gunfit_accuracy?: number;
221
- custom_power_mods?: CustomPowerModifiers;
222
- }
223
-
224
- export type ShipKey = "s1" | "s2" | "s3" | "s4" | "s5" | "s6" | "s7";
225
-
226
- export type Side = "Player" | "Enemy";
227
-
228
- export type Align = "Left" | "Right";
229
-
230
- export interface MasterData extends MasterBattleDefinitions {
231
- created_at: number;
232
- gears: MasterGear[];
233
- gear_attrs: MasterAttrRule<GearAttr>[];
234
- ships: MasterShip[];
235
- ship_attrs: MasterAttrRule<ShipAttr>[];
236
- ibonuses: MasterIBonuses;
237
- equippability: MasterEquippability;
238
- }
239
-
240
- export interface NationalityDef {
241
- id: number;
242
- ctypes: number[];
243
- }
244
-
245
- export interface MasterAttrRule<T> {
246
- tag: T;
247
- name: string;
248
- expr: CompiledEvaler;
249
- }
250
-
251
- export interface MasterShip {
252
- ship_id: number;
253
- name: string;
254
- yomi: string;
255
- stype: number;
256
- ctype: number;
257
- nationality?: number;
258
- sort_id?: number;
259
- max_hp: StatInterval;
260
- firepower: StatInterval;
261
- armor: StatInterval;
262
- torpedo: StatInterval;
263
- evasion: StatInterval;
264
- anti_air: StatInterval;
265
- asw: StatInterval;
266
- los: StatInterval;
267
- luck: StatInterval;
268
- torpedo_accuracy?: number;
269
- basic_evasion_term?: number;
270
- speed: number;
271
- range?: number;
272
- fuel?: number;
273
- ammo?: number;
274
- next_id?: number;
275
- next_level?: number;
276
- slotnum: number;
277
- slots: SlotSizeVec;
278
- stock: GearState[];
279
- speed_group?: SpeedGroup;
280
- useful?: boolean;
281
- }
282
-
283
- export type StatInterval = [number | null, number | null];
284
-
285
- export interface MasterIBonuses {
286
- shelling_power: MasterIBonusRule[];
287
- shelling_accuracy: MasterIBonusRule[];
288
- shelling_aerial_power: MasterIBonusRule[];
289
- torpedo_power: MasterIBonusRule[];
290
- torpedo_accuracy: MasterIBonusRule[];
291
- torpedo_evasion: MasterIBonusRule[];
292
- asw_power: MasterIBonusRule[];
293
- asw_accuracy: MasterIBonusRule[];
294
- night_power: MasterIBonusRule[];
295
- night_aerial_power: MasterIBonusRule[];
296
- night_accuracy: MasterIBonusRule[];
297
- defense_power: MasterIBonusRule[];
298
- contact_selection: MasterIBonusRule[];
299
- fighter_power: MasterIBonusRule[];
300
- ship_anti_air: MasterIBonusRule[];
301
- fleet_anti_air: MasterIBonusRule[];
302
- elos: MasterIBonusRule[];
303
- }
304
-
305
- export interface MasterIBonusRule {
306
- expr: CompiledEvaler;
307
- formula: CompiledEvaler;
308
- }
309
-
310
- export type GearType =
311
- | "Unknown"
312
- | "SmallMainGun"
313
- | "MediumMainGun"
314
- | "LargeMainGun"
315
- | "SecondaryGun"
316
- | "Torpedo"
317
- | "CbFighter"
318
- | "CbDiveBomber"
319
- | "CbTorpedoBomber"
320
- | "CbRecon"
321
- | "ReconSeaplane"
322
- | "SeaplaneBomber"
323
- | "SmallRadar"
324
- | "LargeRadar"
325
- | "Sonar"
326
- | "DepthCharge"
327
- | "ExtraArmor"
328
- | "Engine"
329
- | "AntiAirShell"
330
- | "ApShell"
331
- | "VtFuze"
332
- | "AntiAirGun"
333
- | "MidgetSubmarine"
334
- | "EmergencyRepair"
335
- | "LandingCraft"
336
- | "Rotorcraft"
337
- | "AntiSubPatrolAircraft"
338
- | "MediumArmor"
339
- | "LargeArmor"
340
- | "Searchlight"
341
- | "SupplyContainer"
342
- | "ShipRepairFacility"
343
- | "SubmarineTorpedo"
344
- | "Starshell"
345
- | "CommandFacility"
346
- | "AviationPersonnel"
347
- | "AntiAirFireDirector"
348
- | "AntiGroundEquipment"
349
- | "LargeMainGun2"
350
- | "ShipPersonnel"
351
- | "LargeSonar"
352
- | "LargeFlyingBoat"
353
- | "LargeSearchlight"
354
- | "CombatRation"
355
- | "Supplies"
356
- | "SeaplaneFighter"
357
- | "AmphibiousTank"
358
- | "LbAttacker"
359
- | "LbFighter"
360
- | "LbRecon"
361
- | "TransportationMaterial"
362
- | "SubmarineEquipment"
363
- | "LandingForce"
364
- | "LargeLbAircraft"
365
- | "SurfaceEquipment"
366
- | "JetFighter"
367
- | "JetFighterBomber"
368
- | "JetTorpedoBomber"
369
- | "JetRecon"
370
- | "LargeRadar2"
371
- | "CbRecon2"
372
- | "SecondaryGun2";
373
-
374
- export type GearCategory =
375
- | "Fighter"
376
- | "Bomber"
377
- | "Recon"
378
- | "MainGun"
379
- | "Secondary"
380
- | "Torpedo"
381
- | "AntiSub"
382
- | "Radar"
383
- | "Landing"
384
- | "Ration"
385
- | "LandBased"
386
- | "Misc";
387
-
388
- export type ShipAttr =
389
- | "Unknown"
390
- | "NightCarrier"
391
- | "Installation"
392
- | "RoyalNavy"
393
- | "Kai2"
394
- | "TurbineSpeedBonus"
395
- | "NewModelBoilerSpeedBonus"
396
- | "Pillbox"
397
- | "IsolatedIsland"
398
- | "HarbourSummerPrincess"
399
- | "SupplyDepot"
400
- | "NewSupplyDepot"
401
- | "PtImp"
402
- | "BattleshipSummerPrincess"
403
- | "HeavyCruiserSummerPrincess"
404
- | "AnchorageWaterDemonVacationMode"
405
- | "FrenchBattleshipPrincess"
406
- | "DockPrincess"
407
- | "SummerAircraftCarrierDemon";
408
-
409
- export type ShipCategory =
410
- | "Battleship"
411
- | "AircraftCarrier"
412
- | "HeavyCruiser"
413
- | "LightCruiser"
414
- | "Destroyer"
415
- | "CoastalDefenseShip"
416
- | "Submarine"
417
- | "AuxiliaryShip";
418
-
419
- export type ShipType =
420
- | "Unknown"
421
- | "DE"
422
- | "DD"
423
- | "CL"
424
- | "CLT"
425
- | "CA"
426
- | "CAV"
427
- | "CVL"
428
- | "FBB"
429
- | "BB"
430
- | "BBV"
431
- | "CV"
432
- | "XBB"
433
- | "SS"
434
- | "SSV"
435
- | "AP"
436
- | "AV"
437
- | "LHA"
438
- | "CVB"
439
- | "AR"
440
- | "AS"
441
- | "CT"
442
- | "AO";
443
-
444
- export type CompiledEvaler = string;
445
-
446
- export interface EquippabilityRule {
447
- ship: CompiledEvaler;
448
- keys?: string[];
449
- include?: string;
450
- exclude?: string;
451
- }
452
-
453
- export interface MasterEquippability {
454
- equip_stype: MstStype[];
455
- equip_exslot: number[];
456
- equip_ship: Record<number, MstEquipShip>;
457
- equip_exslot_ship: Record<number, MstEquipExslotShip>;
458
- rules: EquippabilityRule[];
459
- }
460
-
461
- export interface MstEquipExslotShip {
462
- api_ctypes: Record<number, number> | null;
463
- api_ship_ids: Record<number, number> | null;
464
- api_stypes: Record<number, number> | null;
465
- }
466
-
467
- export interface MstEquipShip {
468
- api_equip_type: Record<number, MstEquipShipValue>;
469
- }
470
-
471
- export type MstEquipShipValue = null | number[];
472
-
473
- export interface MstStype {
474
- api_id: number;
475
- api_equip_type: Record<number, number>;
476
- }
477
-
478
- export type FhResult<T> = { Ok: T } | { Err: string };
479
-
480
184
  export interface AttackReport<T> {
481
185
  style: T;
482
186
  proc_rate: number | null;
@@ -506,8 +210,6 @@ export interface AntiAirReport {
506
210
  anti_air_propellant_barrage_chance: number | null;
507
211
  }
508
212
 
509
- export type AirWaveType = "Jet" | "LandBase" | "Carrier";
510
-
511
213
  export interface AttackPowerModifier {
512
214
  a?: number;
513
215
  b?: number;
@@ -608,7 +310,17 @@ export interface BattleDefinitions {
608
310
  historical_bonuses: HistoricalBonusDef[];
609
311
  }
610
312
 
611
- export type ContactRank = "Rank1" | "Rank2" | "Rank3";
313
+ export interface FleetState {
314
+ id?: string;
315
+ len?: number;
316
+ s1?: ShipState;
317
+ s2?: ShipState;
318
+ s3?: ShipState;
319
+ s4?: ShipState;
320
+ s5?: ShipState;
321
+ s6?: ShipState;
322
+ s7?: ShipState;
323
+ }
612
324
 
613
325
  export interface GearState {
614
326
  id?: string;
@@ -626,14 +338,15 @@ export interface GearVecState {
626
338
  gx?: GearState;
627
339
  }
628
340
 
629
- export type Histogram<K extends keyof any, V> = Partial<Record<K, V>>;
341
+ export type OrgType =
342
+ | "Single"
343
+ | "CarrierTaskForce"
344
+ | "SurfaceTaskForce"
345
+ | "TransportEscort"
346
+ | "EnemySingle"
347
+ | "EnemyCombined";
630
348
 
631
- export interface ShipAnalyzerConfig {
632
- air_state?: AirState;
633
- engagement?: Engagement;
634
- left?: AttackAnalyzerShipConfig;
635
- right?: AttackAnalyzerShipConfig;
636
- }
349
+ export type Role = "Main" | "Escort";
637
350
 
638
351
  export interface CompAnalyzerConfig {
639
352
  engagement: Engagement;
@@ -655,41 +368,280 @@ export interface CompDayAnalysis {
655
368
  fleet_cutin: FleetCutinReport<ShellingStyle>[];
656
369
  }
657
370
 
658
- export interface CompAnalysis {
659
- day: CompDayAnalysis;
660
- night: CompNightAnalysis;
661
- contact: ContactAnalysis;
662
- anti_air: CompAntiAirAnalysis;
371
+ export interface CompAnalysis {
372
+ day: CompDayAnalysis;
373
+ night: CompNightAnalysis;
374
+ contact: ContactAnalysis;
375
+ anti_air: CompAntiAirAnalysis;
376
+ }
377
+
378
+ export type NodeId = string;
379
+
380
+ export interface NodeState {
381
+ map?: number;
382
+ node?: NodeId;
383
+ phase?: number;
384
+ debuff?: boolean;
385
+ disable_historical_mod?: boolean;
386
+ landing_battle?: boolean;
387
+ }
388
+
389
+ export type GearTypeIdArray = [number, number, number, number, number];
390
+
391
+ export interface SupportShellingSimulatorParams {
392
+ attacker_formation?: Formation;
393
+ target_formation?: Formation;
394
+ engagement: Engagement;
395
+ node_state: NodeState;
396
+ }
397
+
398
+ export type FhResult<T> = { Ok: T } | { Err: string };
399
+
400
+ export type Engagement = "GreenT" | "Parallel" | "HeadOn" | "RedT";
401
+
402
+ export type SingleFormation =
403
+ | "LineAhead"
404
+ | "DoubleLine"
405
+ | "Diamond"
406
+ | "Echelon"
407
+ | "LineAbreast"
408
+ | "Vanguard";
409
+
410
+ export type CombinedFormation =
411
+ | "Cruising1"
412
+ | "Cruising2"
413
+ | "Cruising3"
414
+ | "Cruising4";
415
+
416
+ export type Formation = SingleFormation | CombinedFormation;
417
+
418
+ export interface MasterData extends MasterBattleDefinitions {
419
+ created_at: number;
420
+ gears: MasterGear[];
421
+ gear_attrs: MasterAttrRule<GearAttr>[];
422
+ ships: MasterShip[];
423
+ ship_attrs: MasterAttrRule<ShipAttr>[];
424
+ ibonuses: MasterIBonuses;
425
+ equippability: MasterEquippability;
426
+ }
427
+
428
+ export interface NationalityDef {
429
+ id: number;
430
+ ctypes: number[];
431
+ }
432
+
433
+ export interface MasterAttrRule<T> {
434
+ tag: T;
435
+ name: string;
436
+ expr: CompiledEvaler;
437
+ }
438
+
439
+ export interface MasterShip {
440
+ ship_id: number;
441
+ name: string;
442
+ yomi: string;
443
+ stype: number;
444
+ ctype: number;
445
+ nationality?: number;
446
+ sort_id?: number;
447
+ max_hp: StatInterval;
448
+ firepower: StatInterval;
449
+ armor: StatInterval;
450
+ torpedo: StatInterval;
451
+ evasion: StatInterval;
452
+ anti_air: StatInterval;
453
+ asw: StatInterval;
454
+ los: StatInterval;
455
+ luck: StatInterval;
456
+ torpedo_accuracy?: number;
457
+ basic_evasion_term?: number;
458
+ speed: number;
459
+ range?: number;
460
+ fuel?: number;
461
+ ammo?: number;
462
+ next_id?: number;
463
+ next_level?: number;
464
+ slotnum: number;
465
+ slots: SlotSizeVec;
466
+ stock: GearState[];
467
+ speed_group?: SpeedGroup;
468
+ useful?: boolean;
469
+ }
470
+
471
+ export type StatInterval = [number | null, number | null];
472
+
473
+ export interface MasterIBonuses {
474
+ shelling_power: MasterIBonusRule[];
475
+ shelling_accuracy: MasterIBonusRule[];
476
+ shelling_aerial_power: MasterIBonusRule[];
477
+ torpedo_power: MasterIBonusRule[];
478
+ torpedo_accuracy: MasterIBonusRule[];
479
+ torpedo_evasion: MasterIBonusRule[];
480
+ asw_power: MasterIBonusRule[];
481
+ asw_accuracy: MasterIBonusRule[];
482
+ night_power: MasterIBonusRule[];
483
+ night_aerial_power: MasterIBonusRule[];
484
+ night_accuracy: MasterIBonusRule[];
485
+ defense_power: MasterIBonusRule[];
486
+ contact_selection: MasterIBonusRule[];
487
+ fighter_power: MasterIBonusRule[];
488
+ ship_anti_air: MasterIBonusRule[];
489
+ fleet_anti_air: MasterIBonusRule[];
490
+ elos: MasterIBonusRule[];
491
+ }
492
+
493
+ export interface MasterIBonusRule {
494
+ expr: CompiledEvaler;
495
+ formula: CompiledEvaler;
496
+ }
497
+
498
+ export type ShipAttr =
499
+ | "Unknown"
500
+ | "NightCarrier"
501
+ | "Installation"
502
+ | "RoyalNavy"
503
+ | "Kai2"
504
+ | "TurbineSpeedBonus"
505
+ | "NewModelBoilerSpeedBonus"
506
+ | "Pillbox"
507
+ | "IsolatedIsland"
508
+ | "HarbourSummerPrincess"
509
+ | "SupplyDepot"
510
+ | "NewSupplyDepot"
511
+ | "PtImp"
512
+ | "BattleshipSummerPrincess"
513
+ | "HeavyCruiserSummerPrincess"
514
+ | "AnchorageWaterDemonVacationMode"
515
+ | "FrenchBattleshipPrincess"
516
+ | "DockPrincess"
517
+ | "SummerAircraftCarrierDemon"
518
+ | "EuropeanWaterPrincess";
519
+
520
+ export type ShipCategory =
521
+ | "Battleship"
522
+ | "AircraftCarrier"
523
+ | "HeavyCruiser"
524
+ | "LightCruiser"
525
+ | "Destroyer"
526
+ | "CoastalDefenseShip"
527
+ | "Submarine"
528
+ | "AuxiliaryShip";
529
+
530
+ export type ShipType =
531
+ | "Unknown"
532
+ | "DE"
533
+ | "DD"
534
+ | "CL"
535
+ | "CLT"
536
+ | "CA"
537
+ | "CAV"
538
+ | "CVL"
539
+ | "FBB"
540
+ | "BB"
541
+ | "BBV"
542
+ | "CV"
543
+ | "XBB"
544
+ | "SS"
545
+ | "SSV"
546
+ | "AP"
547
+ | "AV"
548
+ | "LHA"
549
+ | "CVB"
550
+ | "AR"
551
+ | "AS"
552
+ | "CT"
553
+ | "AO";
554
+
555
+ export type CompiledEvaler = string;
556
+
557
+ export interface EquippabilityRule {
558
+ ship: CompiledEvaler;
559
+ keys?: string[];
560
+ include?: string;
561
+ exclude?: string;
562
+ }
563
+
564
+ export interface MasterEquippability {
565
+ equip_stype: MstStype[];
566
+ equip_exslot: number[];
567
+ equip_ship: Record<number, MstEquipShip>;
568
+ equip_exslot_ship: Record<number, MstEquipExslotShip>;
569
+ rules: EquippabilityRule[];
570
+ }
571
+
572
+ export interface MstEquipExslotShip {
573
+ api_ctypes: Record<number, number> | null;
574
+ api_ship_ids: Record<number, number> | null;
575
+ api_stypes: Record<number, number> | null;
576
+ }
577
+
578
+ export interface MstEquipShip {
579
+ api_equip_type: Record<number, MstEquipShipValue>;
580
+ }
581
+
582
+ export type MstEquipShipValue = null | number[];
583
+
584
+ export interface MstStype {
585
+ api_id: number;
586
+ api_equip_type: Record<number, number>;
587
+ }
588
+
589
+ export interface MoveShipPayload {
590
+ current: [string, string, ShipKey];
591
+ target: [string | null, string, ShipKey];
663
592
  }
664
593
 
665
- export type GearTypeIdArray = [number, number, number, number, number];
594
+ export type GearVecInput = GearInput[];
666
595
 
667
- export interface SupportShellingSimulatorParams {
668
- attacker_formation?: Formation;
669
- target_formation?: Formation;
670
- engagement: Engagement;
671
- node_state: NodeState;
596
+ export interface GearInput {
597
+ gear_id: number;
598
+ types: GearTypeIdArray;
599
+ firepower: number;
600
+ torpedo: number;
601
+ anti_air: number;
602
+ armor: number;
603
+ evasion: number;
604
+ asw: number;
605
+ los: number;
606
+ bombing: number;
607
+ accuracy: number;
608
+ range: number;
609
+ radius: number;
610
+ stars: number;
611
+ ace: number;
672
612
  }
673
613
 
674
- export type Engagement = "GreenT" | "Parallel" | "HeadOn" | "RedT";
675
-
676
- export type SingleFormation =
677
- | "LineAhead"
678
- | "DoubleLine"
679
- | "Diamond"
680
- | "Echelon"
681
- | "LineAbreast"
682
- | "Vanguard";
614
+ export interface ShipInput {
615
+ ship_id: number;
616
+ ctype: number;
617
+ stype: number;
618
+ yomi: string;
619
+ }
683
620
 
684
- export type CombinedFormation =
685
- | "Cruising1"
686
- | "Cruising2"
687
- | "Cruising3"
688
- | "Cruising4";
621
+ export interface EBonuses {
622
+ firepower: number;
623
+ torpedo: number;
624
+ anti_air: number;
625
+ armor: number;
626
+ evasion: number;
627
+ asw: number;
628
+ los: number;
629
+ bombing: number;
630
+ accuracy: number;
631
+ range: number;
632
+ }
689
633
 
690
- export type Formation = SingleFormation | CombinedFormation;
634
+ export interface SimulatorResult {
635
+ items: SimulatorResultItem[];
636
+ sunk_vec: [number, number, number][];
637
+ }
691
638
 
692
- export type Role = "Main" | "Escort";
639
+ export interface SimulatorResultItem {
640
+ id: string;
641
+ fleet_type: FleetType;
642
+ index: number;
643
+ damage_state_map: Record<DamageState, number>;
644
+ }
693
645
 
694
646
  export interface MasterGear {
695
647
  gear_id: number;
@@ -717,50 +669,229 @@ export interface MasterGear {
717
669
  historical_aircraft_group?: number;
718
670
  }
719
671
 
720
- export type AirState =
721
- | "AirSupremacy"
722
- | "AirSuperiority"
723
- | "AirParity"
724
- | "AirDenial"
725
- | "AirIncapability";
672
+ export interface HitRate {
673
+ normal: number;
674
+ critical: number;
675
+ total: number;
676
+ }
677
+
678
+ export interface HitRateParams {
679
+ accuracy_term: number;
680
+ evasion_term: number;
681
+ target_morale_mod: number;
682
+ critical_rate_constant: number;
683
+ critical_percentage_bonus: number;
684
+ hit_percentage_bonus: number;
685
+ }
686
+
687
+ export interface AttackAnalyzerShipConfig
688
+ extends ShipConditions,
689
+ NightFleetConditions {
690
+ balloons?: number;
691
+ fleet_los_mod?: number | null;
692
+ }
693
+
694
+ export type AirSquadronMode = "Sortie" | "AirDefense";
695
+
696
+ export interface AirSquadronState extends GearVecState, SlotSizeVecState {
697
+ id?: string;
698
+ mode?: AirSquadronMode;
699
+ }
700
+
701
+ export interface ShellingStyle {
702
+ tag: "ShellingStyle";
703
+ attack_type: ShellingType;
704
+ cutin: DayCutinLike | null;
705
+ power_mod: number;
706
+ accuracy_mod: number;
707
+ hits: number;
708
+ }
709
+
710
+ export interface NightAttackStyle {
711
+ tag: "NightAttackStyle";
712
+ attack_type: NightAttackType;
713
+ cutin: NightCutinLike | null;
714
+ power_mod: number;
715
+ accuracy_mod: number;
716
+ hits: number;
717
+ }
718
+
719
+ export interface AswAttackStyle {
720
+ tag: "AswAttackStyle";
721
+ attack_type: AswAttackType;
722
+ }
723
+
724
+ export interface TorpedoAttackStyle {
725
+ tag: "TorpedoAttackStyle";
726
+ attack_type: TorpedoAttackType;
727
+ }
728
+
729
+ export type DayPhaseAttackStyle = ShellingStyle | AswAttackStyle;
730
+
731
+ export type NightPhaseAttackStyle = NightAttackStyle | AswAttackStyle;
732
+
733
+ export interface SupportShellingStyle {
734
+ tag: "SupportShellingStyle";
735
+ attack_type: SupportShellingType;
736
+ }
737
+
738
+ export type FleetType = "Main" | "Escort" | "RouteSup" | "BossSup";
739
+
740
+ export type GearType =
741
+ | "Unknown"
742
+ | "SmallMainGun"
743
+ | "MediumMainGun"
744
+ | "LargeMainGun"
745
+ | "SecondaryGun"
746
+ | "Torpedo"
747
+ | "CbFighter"
748
+ | "CbDiveBomber"
749
+ | "CbTorpedoBomber"
750
+ | "CbRecon"
751
+ | "ReconSeaplane"
752
+ | "SeaplaneBomber"
753
+ | "SmallRadar"
754
+ | "LargeRadar"
755
+ | "Sonar"
756
+ | "DepthCharge"
757
+ | "ExtraArmor"
758
+ | "Engine"
759
+ | "AntiAirShell"
760
+ | "ApShell"
761
+ | "VtFuze"
762
+ | "AntiAirGun"
763
+ | "MidgetSubmarine"
764
+ | "EmergencyRepair"
765
+ | "LandingCraft"
766
+ | "Rotorcraft"
767
+ | "AntiSubPatrolAircraft"
768
+ | "MediumArmor"
769
+ | "LargeArmor"
770
+ | "Searchlight"
771
+ | "SupplyContainer"
772
+ | "ShipRepairFacility"
773
+ | "SubmarineTorpedo"
774
+ | "Starshell"
775
+ | "CommandFacility"
776
+ | "AviationPersonnel"
777
+ | "AntiAirFireDirector"
778
+ | "AntiGroundEquipment"
779
+ | "LargeMainGun2"
780
+ | "ShipPersonnel"
781
+ | "LargeSonar"
782
+ | "LargeFlyingBoat"
783
+ | "LargeSearchlight"
784
+ | "CombatRation"
785
+ | "Supplies"
786
+ | "SeaplaneFighter"
787
+ | "AmphibiousTank"
788
+ | "LbAttacker"
789
+ | "LbFighter"
790
+ | "LbRecon"
791
+ | "TransportationMaterial"
792
+ | "SubmarineEquipment"
793
+ | "LandingForce"
794
+ | "LargeLbAircraft"
795
+ | "SurfaceEquipment"
796
+ | "JetFighter"
797
+ | "JetFighterBomber"
798
+ | "JetTorpedoBomber"
799
+ | "JetRecon"
800
+ | "LargeRadar2"
801
+ | "CbRecon2"
802
+ | "SecondaryGun2";
803
+
804
+ export type GearCategory =
805
+ | "Fighter"
806
+ | "Bomber"
807
+ | "Recon"
808
+ | "MainGun"
809
+ | "Secondary"
810
+ | "Torpedo"
811
+ | "AntiSub"
812
+ | "Radar"
813
+ | "Landing"
814
+ | "Ration"
815
+ | "LandBased"
816
+ | "Misc";
817
+
818
+ export interface ShipMeta {
819
+ id: string;
820
+ ship_id: number;
821
+ }
822
+
823
+ export interface FleetMeta {
824
+ id: string;
825
+ len: number;
826
+ ships: [string, ShipMeta | null][];
827
+ }
828
+
829
+ export interface CompMeta {
830
+ fleets: Record<FleetType, FleetMeta>;
831
+ }
832
+
833
+ export interface OrgState {
834
+ id?: string;
835
+ f1?: FleetState;
836
+ f2?: FleetState;
837
+ f3?: FleetState;
838
+ f4?: FleetState;
839
+ a1?: AirSquadronState;
840
+ a2?: AirSquadronState;
841
+ a3?: AirSquadronState;
842
+ hq_level?: number;
843
+ org_type?: OrgType;
844
+ sortie?: FleetKey;
845
+ route_sup?: FleetKey;
846
+ boss_sup?: FleetKey;
847
+ }
726
848
 
727
- export type AirStateRank = "Rank0" | "Rank1" | "Rank2" | "Rank3";
849
+ export type FleetKey = "f1" | "f2" | "f3" | "f4";
728
850
 
729
- export interface BattleConditions {
730
- org_type: OrgType;
731
- role: Role;
732
- ship_index: number;
733
- fleet_len: number;
734
- formation: Formation;
735
- fleet_los_mod: number | null;
736
- night_conditions: NightFleetConditions;
851
+ export interface SlotSizeVecState {
852
+ ss1?: number;
853
+ ss2?: number;
854
+ ss3?: number;
855
+ ss4?: number;
856
+ ss5?: number;
737
857
  }
738
858
 
739
- export interface NightConditions {
740
- player?: NightFleetConditions;
741
- enemy?: NightFleetConditions;
859
+ export interface ShipState extends GearVecState, SlotSizeVecState {
860
+ id?: string;
861
+ ship_id: number;
862
+ level?: number;
863
+ current_hp?: number;
864
+ morale?: number;
865
+ ammo?: number;
866
+ fuel?: number;
867
+ max_hp_mod?: number;
868
+ firepower_mod?: number;
869
+ torpedo_mod?: number;
870
+ armor_mod?: number;
871
+ anti_air_mod?: number;
872
+ evasion_mod?: number;
873
+ asw_mod?: number;
874
+ los_mod?: number;
875
+ luck_mod?: number;
876
+ day_gunfit_accuracy?: number;
877
+ night_gunfit_accuracy?: number;
878
+ custom_power_mods?: CustomPowerModifiers;
742
879
  }
743
880
 
744
- export interface NightFleetConditions {
745
- night_contact_rank?: ContactRank | null;
746
- starshell_index?: number | null;
747
- searchlight_index?: number | null;
748
- activates_large_searchlight?: boolean;
749
- }
881
+ export type ShipKey = "s1" | "s2" | "s3" | "s4" | "s5" | "s6" | "s7";
750
882
 
751
- export type OrgType =
752
- | "Single"
753
- | "CarrierTaskForce"
754
- | "SurfaceTaskForce"
755
- | "TransportEscort"
756
- | "EnemySingle"
757
- | "EnemyCombined";
883
+ export type Side = "Player" | "Enemy";
758
884
 
759
- export interface ShipPosition {
760
- org_type?: OrgType;
761
- fleet_type?: FleetType;
762
- fleet_len?: number;
763
- index?: number;
885
+ export type Align = "Left" | "Right";
886
+
887
+ export type Histogram<K extends keyof any, V> = Partial<Record<K, V>>;
888
+
889
+ export interface MasterBattleDefinitions {
890
+ formation: NestedFormationDef[];
891
+ anti_air_cutin: AntiAirCutinDef[];
892
+ day_cutin: DayCutinDef[];
893
+ night_cutin: NightCutinDef[];
894
+ historical_bonuses?: HistoricalBonusDef[];
764
895
  }
765
896
 
766
897
  export interface AttackPower {
@@ -790,83 +921,21 @@ export interface AttackPowerParams {
790
921
  custom_mods: CustomPowerModifiers;
791
922
  }
792
923
 
793
- export interface NodeAttackAnalyzerShipConfig extends NightFleetConditions {
794
- formation?: Formation;
795
- }
796
-
797
- export interface NodeAttackAnalyzerConfig {
798
- air_state?: AirState;
799
- engagement?: Engagement;
800
- node_state?: NodeState;
801
- left?: NodeAttackAnalyzerShipConfig;
802
- right?: NodeAttackAnalyzerShipConfig;
803
- }
804
-
805
- export interface NodeAttackAnalysis {
806
- left: AttackAnalysis;
807
- right: AttackAnalysis;
808
- shelling_fleet_cutin: FleetCutinReport<ShellingStyle>[];
809
- night_fleet_cutin: FleetCutinReport<NightAttackStyle>[];
810
- }
811
-
812
- export interface AttackAnalysis {
813
- attacker_is_player: boolean;
814
- attacker_ship_id: number;
815
- target_ship_id: number;
816
- historical_params: HistoricalParams;
817
- day: ActionReport<DayPhaseAttackStyle>;
818
- night: ActionReport<NightPhaseAttackStyle>;
819
- closing_torpedo: ActionReport<TorpedoAttackStyle>;
820
- opening_asw: ActionReport<AswAttackStyle>;
821
- support_shelling: ActionReport<SupportShellingStyle>;
924
+ export interface ActionReport<T> {
925
+ data: Record<string, AttackReport<T>>;
926
+ damage_state_density: Histogram<DamageState, number> | null;
927
+ is_active: boolean;
822
928
  }
823
929
 
824
- export interface FleetState {
825
- id?: string;
826
- len?: number;
827
- s1?: ShipState;
828
- s2?: ShipState;
829
- s3?: ShipState;
830
- s4?: ShipState;
831
- s5?: ShipState;
832
- s6?: ShipState;
833
- s7?: ShipState;
834
- }
930
+ export type ContactRank = "Rank1" | "Rank2" | "Rank3";
835
931
 
836
- export type GearAttr =
837
- | "Unknown"
838
- | "HighAngleMount"
839
- | "NightFighter"
840
- | "NightAttacker"
841
- | "HeavyBomber"
842
- | "NightRecon"
843
- | "MainGun"
844
- | "Radar"
845
- | "SurfaceRadar"
846
- | "AirRadar"
847
- | "DepthChargeProjector"
848
- | "SynergisticDepthCharge"
849
- | "AntiSubMortar"
850
- | "AntiSubWeapon"
851
- | "ApDepthCharge"
852
- | "AntiSubAircraft"
853
- | "LateModelBowTorpedo"
854
- | "Seaplane"
855
- | "CbAircraft"
856
- | "LbAircraft"
857
- | "JetAircraft"
858
- | "Fighter"
859
- | "Recon"
860
- | "ObservationSeaplane"
861
- | "CbFighterBomber"
862
- | "AntiInstDiveBomber"
863
- | "CbSwordfish"
864
- | "SemiNightPlane"
865
- | "HighAltitudeInterceptor";
932
+ export type SpeedGroup = "A" | "B1" | "B2" | "C";
866
933
 
867
- export interface ShipConditions extends ShipPosition {
868
- formation?: Formation;
869
- amagiri_index?: number | null;
934
+ export interface ShipAnalyzerConfig {
935
+ air_state?: AirState;
936
+ engagement?: Engagement;
937
+ left?: AttackAnalyzerShipConfig;
938
+ right?: AttackAnalyzerShipConfig;
870
939
  }
871
940
 
872
941
  export interface NightContactChance {
@@ -939,89 +1008,21 @@ export interface DayContactChance {
939
1008
  total: number;
940
1009
  }
941
1010
 
942
- export type AswAttackType = "DepthCharge" | "Aerial";
943
-
944
- export type ShellingType = "Normal" | "Aerial";
945
-
946
- export type NightAttackType = "Normal" | "Swordfish" | "Aerial";
947
-
948
- export type SupportShellingType = ShellingType;
949
-
950
- export type AttackType =
951
- | { t: "Asw"; c: AswAttackType }
952
- | { t: "Shelling"; c: ShellingType }
953
- | { t: "Night"; c: NightAttackType }
954
- | { t: "Torpedo" }
955
- | { t: "SupportShelling"; c: SupportShellingType };
956
-
957
- export type DayPhaseAttackType =
958
- | { t: "Shelling"; c: ShellingType }
959
- | { t: "Asw"; c: AswAttackType };
960
-
961
- export type NightPhaseAttackType =
962
- | { t: "Night"; c: NightAttackType }
963
- | { t: "Asw"; c: AswAttackType };
964
-
965
- export type TorpedoAttackType = null;
966
-
967
- export type DayCutin =
968
- | "Zuiun"
969
- | "AirSea"
970
- | "MainMain"
971
- | "MainAp"
972
- | "MainRadar"
973
- | "MainSec"
974
- | "DoubleAttack"
975
- | "FBA"
976
- | "BBA"
977
- | "BA";
978
-
979
- export type NightCutin =
980
- | "MainTorpRadar"
981
- | "TorpLookoutRadar"
982
- | "TorpTsloTorp"
983
- | "TorpTsloDrum"
984
- | "NightZuiun2Radar"
985
- | "NightZuiun2"
986
- | "NightZuiunRadar"
987
- | "NightZuiun"
988
- | "DoubleAttack"
989
- | "TorpTorpMain"
990
- | "TorpTorpTorp"
991
- | "MainMainSec"
992
- | "MainMainMain"
993
- | "SubTorpTorp"
994
- | "SubRadarTorp"
995
- | "Cvci1_25"
996
- | "Cvci1_20"
997
- | "Cvci1_18"
998
- | "Photobomber";
1011
+ export type AirWaveType = "Jet" | "LandBase" | "Carrier";
999
1012
 
1000
- export type FleetCutin =
1001
- | "NelsonTouch"
1002
- | "NagatoClassCutin"
1003
- | "ColoradoClassCutin"
1004
- | "KongouClassCutin"
1005
- | "Yamato2ShipCutin"
1006
- | "Yamato3ShipCutin";
1013
+ export type AirState =
1014
+ | "AirSupremacy"
1015
+ | "AirSuperiority"
1016
+ | "AirParity"
1017
+ | "AirDenial"
1018
+ | "AirIncapability";
1007
1019
 
1008
- export type DayCutinLike = DayCutin | FleetCutin;
1020
+ export type AirStateRank = "Rank0" | "Rank1" | "Rank2" | "Rank3";
1009
1021
 
1010
- export type NightCutinLike = NightCutin | FleetCutin;
1022
+ export type DamageState = "Normal" | "Shouha" | "Chuuha" | "Taiha" | "Sunk";
1011
1023
 
1012
1024
  export type MoraleState = "Sparkle" | "Normal" | "Orange" | "Red";
1013
1025
 
1014
- export type NodeId = string;
1015
-
1016
- export interface NodeState {
1017
- map?: number;
1018
- node?: NodeId;
1019
- phase?: number;
1020
- debuff?: boolean;
1021
- disable_historical_mod?: boolean;
1022
- landing_battle?: boolean;
1023
- }
1024
-
1025
1026
  export type SlotSizeVec = (number | null)[];
1026
1027
 
1027
1028
  export type SpecialEnemyType =
@@ -1038,7 +1039,8 @@ export type SpecialEnemyType =
1038
1039
  | "FrenchBattleshipPrincess"
1039
1040
  | "AnchorageWaterDemonVacationMode"
1040
1041
  | "DockPrincess"
1041
- | "SummerAircraftCarrierDemon";
1042
+ | "SummerAircraftCarrierDemon"
1043
+ | "EuropeanWaterPrincess";
1042
1044
 
1043
1045
  export class AirSquadron {
1044
1046
  private constructor();
@@ -1307,12 +1309,6 @@ export class Ship {
1307
1309
  private constructor();
1308
1310
  free(): void;
1309
1311
  [Symbol.dispose](): void;
1310
- state_day_gunfit_accuracy(): number | undefined;
1311
- state_night_gunfit_accuracy(): number | undefined;
1312
- /**
1313
- * フィット砲補正
1314
- */
1315
- gunfit_accuracy(is_night: boolean): number;
1316
1312
  static default(): Ship;
1317
1313
  eq_id(id: string): boolean;
1318
1314
  state(): ShipState;
@@ -1371,6 +1367,12 @@ export class Ship {
1371
1367
  * 確殺攻撃力
1372
1368
  */
1373
1369
  ohko_power(): number | undefined;
1370
+ state_day_gunfit_accuracy(): number | undefined;
1371
+ state_night_gunfit_accuracy(): number | undefined;
1372
+ /**
1373
+ * フィット砲補正
1374
+ */
1375
+ gunfit_accuracy(is_night: boolean): number;
1374
1376
  id: string;
1375
1377
  readonly hash: bigint;
1376
1378
  readonly ship_id: number;