fleethub-core 1.2.1 → 1.3.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,55 +1,8 @@
1
1
  /* tslint:disable */
2
2
  /* eslint-disable */
3
- /**
4
- * @param {Gear} gear
5
- * @returns {boolean}
6
- */
7
- export function air_squadron_can_equip(gear: Gear): boolean;
8
- /**
9
- * @param {OrgType} org_type
10
- * @returns {boolean}
11
- */
12
- export function org_type_is_single(org_type: OrgType): boolean;
13
- /**
14
- * @param {OrgType} org_type
15
- * @returns {Formation}
16
- */
17
- export function org_type_default_formation(org_type: OrgType): Formation;
18
- /**
19
- * @param {OrgType} org_type
20
- * @returns {boolean}
21
- */
22
- export function org_type_is_player(org_type: OrgType): boolean;
23
- /**
24
- * @param {OrgType} org_type
25
- * @returns {Side}
26
- */
27
- export function org_type_side(org_type: OrgType): Side;
28
3
  /**
29
4
  */
30
5
  export function set_panic_hook(): void;
31
- export type AirStateRank = "Rank0" | "Rank1" | "Rank2" | "Rank3";
32
-
33
- export type AirState =
34
- | "AirSupremacy"
35
- | "AirSuperiority"
36
- | "AirParity"
37
- | "AirDenial"
38
- | "AirIncapability";
39
-
40
- export type ShellingSupportSimulatorParams = {
41
- attacker_formation: Formation;
42
- target_formation: Formation;
43
- engagement: Engagement;
44
- custom_mods: CustomModifiers;
45
- };
46
-
47
- export type NightSituation = {
48
- night_contact_rank: ContactRank | null;
49
- starshell: boolean;
50
- searchlight: boolean;
51
- };
52
-
53
6
  export type CompDayCutinRateInfo = {
54
7
  main: FleetDayCutinRateInfo;
55
8
  escort: FleetDayCutinRateInfo | null;
@@ -85,59 +38,59 @@ export type DamageInfo = {
85
38
  damage_state_map: NumMap<DamageState, number>;
86
39
  };
87
40
 
88
- export type GearTypes = [number, number, number, number, number];
41
+ export type NumMap<K, V> = Partial<Record<K, V>>;
89
42
 
90
- export type MasterGear = {
91
- gear_id: number;
92
- name: string;
93
- types: GearTypes;
94
- special_type?: number;
95
- max_hp?: number;
96
- firepower?: number;
97
- armor?: number;
98
- torpedo?: number;
99
- anti_air?: number;
100
- speed?: number;
101
- bombing?: number;
102
- asw?: number;
103
- los?: number;
104
- luck?: number;
105
- accuracy?: number;
106
- evasion?: number;
107
- range?: number;
108
- radius?: number;
109
- cost?: number;
110
- improvable?: boolean;
111
- adjusted_anti_air_resistance?: number;
112
- fleet_anti_air_resistance?: number;
43
+ export type OrgType =
44
+ | "Single"
45
+ | "CarrierTaskForce"
46
+ | "SurfaceTaskForce"
47
+ | "TransportEscort"
48
+ | "EnemySingle"
49
+ | "EnemyCombined";
50
+
51
+ export type ContactRank = "Rank1" | "Rank2" | "Rank3";
52
+
53
+ export type AirWaveType = "Jet" | "LandBase" | "Carrier";
54
+
55
+ export type SimulatorResult = {
56
+ items: SimulatorResultItem[];
57
+ sunk_vec: [number, number, number][];
113
58
  };
114
59
 
115
- export type MasterVariantDef = { tag: string; id: number; name: string };
60
+ export type SimulatorResultItem = {
61
+ id: string;
62
+ role: Role;
63
+ index: number;
64
+ damage_state_map: Record<DamageState, number>;
65
+ };
116
66
 
117
- export type MasterAttrRule = { tag: string; name: string; expr: string };
67
+ export type AswAttackType = "DepthCharge" | "Aircraft";
118
68
 
119
- export type MasterIBonusRule = { expr: string; formula: string };
69
+ export type MasterData = {
70
+ gears: MasterGear[];
71
+ gear_attrs: MasterAttrRule[];
72
+ ships: MasterShip[];
73
+ ship_attrs: MasterAttrRule[];
74
+ equippable: MasterEquippable;
75
+ ibonuses: MasterIBonuses;
76
+ config: BattleConfig;
77
+ };
120
78
 
121
- export type MasterIBonuses = {
122
- shelling_power: MasterIBonusRule[];
123
- carrier_shelling_power: MasterIBonusRule[];
124
- shelling_accuracy: MasterIBonusRule[];
125
- torpedo_power: MasterIBonusRule[];
126
- torpedo_accuracy: MasterIBonusRule[];
127
- torpedo_evasion: MasterIBonusRule[];
128
- asw_power: MasterIBonusRule[];
129
- asw_accuracy: MasterIBonusRule[];
130
- night_power: MasterIBonusRule[];
131
- night_accuracy: MasterIBonusRule[];
132
- defense_power: MasterIBonusRule[];
133
- contact_selection: MasterIBonusRule[];
134
- fighter_power: MasterIBonusRule[];
135
- adjusted_anti_air: MasterIBonusRule[];
136
- fleet_anti_air: MasterIBonusRule[];
137
- elos: MasterIBonusRule[];
79
+ export type MasterEquippable = {
80
+ equip_stype: EquipStype[];
81
+ equip_exslot: number[];
82
+ equip_ship: MstEquipShip[];
83
+ equip_exslot_ship: MstEquipExslotShip[];
138
84
  };
139
85
 
140
- export type StatInterval = [number | null, number | null];
86
+ export type MstEquipExslotShip = {
87
+ api_slotitem_id: number;
88
+ api_ship_ids: number[];
89
+ };
90
+
91
+ export type MstEquipShip = { api_ship_id: number; api_equip_type: number[] };
92
+
93
+ export type EquipStype = { id: number; equip_type: number[] };
141
94
 
142
95
  export type MasterShip = {
143
96
  ship_id: number;
@@ -162,72 +115,140 @@ export type MasterShip = {
162
115
  next_id?: number;
163
116
  next_level?: number;
164
117
  slotnum: number;
165
- slots: Array<number | null>;
118
+ slots: SlotSizeVec;
166
119
  stock: Array<GearState>;
167
120
  speed_group?: SpeedGroup;
168
121
  useful?: boolean;
169
122
  };
170
123
 
171
- export type EquipStype = { id: number; equip_type: number[] };
172
-
173
- export type MstEquipShip = { api_ship_id: number; api_equip_type: number[] };
174
-
175
- export type MstEquipExslotShip = {
176
- api_slotitem_id: number;
177
- api_ship_ids: number[];
178
- };
179
-
180
- export type MasterEquippable = {
181
- equip_stype: EquipStype[];
182
- equip_exslot: number[];
183
- equip_ship: MstEquipShip[];
184
- equip_exslot_ship: MstEquipExslotShip[];
185
- };
124
+ export type StatInterval = [number | null, number | null];
186
125
 
187
- export type MasterData = {
188
- gears: MasterGear[];
189
- gear_attrs: MasterAttrRule[];
190
- ships: MasterShip[];
191
- ship_attrs: MasterAttrRule[];
192
- equippable: MasterEquippable;
193
- ibonuses: MasterIBonuses;
194
- config: BattleConfig;
126
+ export type MasterIBonuses = {
127
+ shelling_power: MasterIBonusRule[];
128
+ carrier_shelling_power: MasterIBonusRule[];
129
+ shelling_accuracy: MasterIBonusRule[];
130
+ torpedo_power: MasterIBonusRule[];
131
+ torpedo_accuracy: MasterIBonusRule[];
132
+ torpedo_evasion: MasterIBonusRule[];
133
+ asw_power: MasterIBonusRule[];
134
+ asw_accuracy: MasterIBonusRule[];
135
+ night_power: MasterIBonusRule[];
136
+ night_accuracy: MasterIBonusRule[];
137
+ defense_power: MasterIBonusRule[];
138
+ contact_selection: MasterIBonusRule[];
139
+ fighter_power: MasterIBonusRule[];
140
+ ship_anti_air: MasterIBonusRule[];
141
+ fleet_anti_air: MasterIBonusRule[];
142
+ elos: MasterIBonusRule[];
195
143
  };
196
144
 
197
- export type ContactRank = "Rank1" | "Rank2" | "Rank3";
145
+ export type MasterIBonusRule = { expr: string; formula: string };
198
146
 
199
- export type AirWaveType = "Jet" | "LandBase" | "Carrier";
147
+ export type MasterAttrRule = { tag: string; name: string; expr: string };
200
148
 
201
- export type SimulatorResult = {
202
- items: SimulatorResultItem[];
203
- sunk_vec: [number, number, number][];
204
- };
149
+ export type MasterVariantDef = { tag: string; id: number; name: string };
205
150
 
206
- export type SimulatorResultItem = {
207
- id: string;
208
- role: Role;
209
- index: number;
210
- damage_state_map: Record<DamageState, number>;
151
+ export type MasterGear = {
152
+ gear_id: number;
153
+ name: string;
154
+ types: GearTypeIdArray;
155
+ special_type?: number;
156
+ max_hp?: number;
157
+ firepower?: number;
158
+ armor?: number;
159
+ torpedo?: number;
160
+ anti_air?: number;
161
+ speed?: number;
162
+ bombing?: number;
163
+ asw?: number;
164
+ los?: number;
165
+ luck?: number;
166
+ accuracy?: number;
167
+ evasion?: number;
168
+ range?: number;
169
+ radius?: number;
170
+ cost?: number;
171
+ improvable?: boolean;
172
+ ship_anti_air_resistance?: number;
173
+ fleet_anti_air_resistance?: number;
211
174
  };
212
175
 
213
- export type AswAttackType = "DepthCharge" | "Aircraft";
214
-
215
- export type SpecialEnemyType =
216
- | "None"
217
- | "SoftSkinned"
218
- | "Pillbox"
219
- | "IsolatedIsland"
220
- | "SupplyDepot"
221
- | "HarbourSummerPrincess"
222
- | "PtImp"
223
- | "BattleshipSummerPrincess"
224
- | "HeavyCruiserSummerPrincess";
225
-
226
- export type MoraleState = "Sparkle" | "Normal" | "Orange" | "Red";
176
+ export type GearCategory =
177
+ | "Fighter"
178
+ | "Bomber"
179
+ | "Recon"
180
+ | "MainGun"
181
+ | "Secondary"
182
+ | "Torpedo"
183
+ | "AntiSub"
184
+ | "Radar"
185
+ | "Landing"
186
+ | "Ration"
187
+ | "LandBased"
188
+ | "Misc";
227
189
 
228
- export type DamageState = "Normal" | "Shouha" | "Chuuha" | "Taiha" | "Sunk";
190
+ export type GearType =
191
+ | "Unknown"
192
+ | "SmallMainGun"
193
+ | "MediumMainGun"
194
+ | "LargeMainGun"
195
+ | "SecondaryGun"
196
+ | "Torpedo"
197
+ | "CbFighter"
198
+ | "CbDiveBomber"
199
+ | "CbTorpedoBomber"
200
+ | "CbRecon"
201
+ | "ReconSeaplane"
202
+ | "SeaplaneBomber"
203
+ | "SmallRadar"
204
+ | "LargeRadar"
205
+ | "Sonar"
206
+ | "DepthCharge"
207
+ | "ExtraArmor"
208
+ | "Engine"
209
+ | "AntiAirShell"
210
+ | "ApShell"
211
+ | "VtFuze"
212
+ | "AntiAirGun"
213
+ | "MidgetSubmarine"
214
+ | "EmergencyRepair"
215
+ | "LandingCraft"
216
+ | "Rotorcraft"
217
+ | "AntiSubPatrolAircraft"
218
+ | "MediumArmor"
219
+ | "LargeArmor"
220
+ | "Searchlight"
221
+ | "SupplyContainer"
222
+ | "ShipRepairFacility"
223
+ | "SubmarineTorpedo"
224
+ | "Starshell"
225
+ | "CommandFacility"
226
+ | "AviationPersonnel"
227
+ | "AntiAirFireDirector"
228
+ | "AntiGroundEquipment"
229
+ | "LargeMainGun2"
230
+ | "ShipPersonnel"
231
+ | "LargeSonar"
232
+ | "LargeFlyingBoat"
233
+ | "LargeSearchlight"
234
+ | "CombatRation"
235
+ | "Supplies"
236
+ | "SeaplaneFighter"
237
+ | "AmphibiousTank"
238
+ | "LbAttacker"
239
+ | "LbFighter"
240
+ | "LbRecon"
241
+ | "TransportationMaterial"
242
+ | "SubmarineEquipment"
243
+ | "LargeLbAircraft"
244
+ | "JetFighter"
245
+ | "JetFighterBomber"
246
+ | "JetTorpedoBomber"
247
+ | "JetRecon"
248
+ | "LargeRadar2"
249
+ | "CbRecon2";
229
250
 
230
- export type SpeedGroup = "A" | "B1" | "B2" | "C";
251
+ export type GearTypeIdArray = [number, number, number, number, number];
231
252
 
232
253
  export type ShipAttr =
233
254
  | "Abyssal"
@@ -244,6 +265,65 @@ export type ShipAttr =
244
265
  | "BattleshipSummerPrincess"
245
266
  | "HeavyCruiserSummerPrincess";
246
267
 
268
+ export type Role = "Main" | "Escort";
269
+
270
+ export type CompMeta = { fleets: Record<FleetType, FleetMeta> };
271
+
272
+ export type FleetMeta = {
273
+ id: string;
274
+ len: number;
275
+ ships: [string, ShipMeta | null][];
276
+ };
277
+
278
+ export type ShipMeta = { id: string; ship_id: number };
279
+
280
+ export type GearAttr =
281
+ | "Abyssal"
282
+ | "HighAngleMount"
283
+ | "NightFighter"
284
+ | "NightAttacker"
285
+ | "HeavyBomber"
286
+ | "MainGun"
287
+ | "Radar"
288
+ | "SurfaceRadar"
289
+ | "AirRadar"
290
+ | "DepthChargeProjector"
291
+ | "AdditionalDepthCharge"
292
+ | "AntiSubMortar"
293
+ | "AntiSubWeapon"
294
+ | "AntiSubAircraft"
295
+ | "LateModelBowTorpedo"
296
+ | "Seaplane"
297
+ | "CbAircraft"
298
+ | "LbAircraft"
299
+ | "JetAircraft"
300
+ | "Fighter"
301
+ | "Recon"
302
+ | "ObservationSeaplane"
303
+ | "CbFighterBomber"
304
+ | "AntiInstDiveBomber"
305
+ | "NightRecon"
306
+ | "CbSwordfish"
307
+ | "SemiNightPlane"
308
+ | "HighAltitudeInterceptor";
309
+
310
+ export type WarfareContext = {
311
+ attacker_env: WarfareShipEnvironment;
312
+ target_env: WarfareShipEnvironment;
313
+ engagement: Engagement;
314
+ air_state: AirState;
315
+ custom_mods: CustomModifiers;
316
+ };
317
+
318
+ export type WarfareShipEnvironment = {
319
+ org_type: OrgType;
320
+ role: Role;
321
+ ship_index: number;
322
+ fleet_len: number;
323
+ formation: Formation;
324
+ fleet_los_mod: number | null;
325
+ };
326
+
247
327
  export type ShipType =
248
328
  | "Unknown"
249
329
  | "DE"
@@ -279,35 +359,6 @@ export type ShipCategory =
279
359
  | "Submarine"
280
360
  | "AuxiliaryShip";
281
361
 
282
- export type CompMeta = { fleets: Record<FleetType, FleetMeta> };
283
-
284
- export type FleetMeta = {
285
- id: string;
286
- len: number;
287
- ships: [string, ShipMeta | null][];
288
- };
289
-
290
- export type ShipMeta = { id: string; ship_id: number };
291
-
292
- export type Engagement = "GreenT" | "Parallel" | "HeadOn" | "RedT";
293
-
294
- export type WarfareContext = {
295
- attacker_env: WarfareShipEnvironment;
296
- target_env: WarfareShipEnvironment;
297
- engagement: Engagement;
298
- air_state: AirState;
299
- custom_mods: CustomModifiers;
300
- };
301
-
302
- export type WarfareShipEnvironment = {
303
- org_type: OrgType;
304
- role: Role;
305
- ship_index: number;
306
- fleet_len: number;
307
- formation: Formation;
308
- fleet_los_mod: number | null;
309
- };
310
-
311
362
  export type ShellingSpecialAttack =
312
363
  | { DayCutin: DayCutin }
313
364
  | { FleetCutin: FleetCutin };
@@ -324,9 +375,11 @@ export type DayCutin =
324
375
  | "Zuiun"
325
376
  | "AirSea";
326
377
 
378
+ export type Engagement = "GreenT" | "Parallel" | "HeadOn" | "RedT";
379
+
327
380
  export type EBonusFnGearInput = {
328
381
  gear_id: number;
329
- types: GearTypes;
382
+ types: GearTypeIdArray;
330
383
  firepower: number;
331
384
  torpedo: number;
332
385
  anti_air: number;
@@ -362,6 +415,28 @@ export type EBonuses = {
362
415
  range: number;
363
416
  };
364
417
 
418
+ export type AirStateRank = "Rank0" | "Rank1" | "Rank2" | "Rank3";
419
+
420
+ export type AirState =
421
+ | "AirSupremacy"
422
+ | "AirSuperiority"
423
+ | "AirParity"
424
+ | "AirDenial"
425
+ | "AirIncapability";
426
+
427
+ export type ShellingSupportSimulatorParams = {
428
+ attacker_formation: Formation;
429
+ target_formation: Formation;
430
+ engagement: Engagement;
431
+ custom_mods: CustomModifiers;
432
+ };
433
+
434
+ export type NightSituation = {
435
+ night_contact_rank: ContactRank | null;
436
+ starshell: boolean;
437
+ searchlight: boolean;
438
+ };
439
+
365
440
  export type AttackPower = {
366
441
  precap: number;
367
442
  is_capped: boolean;
@@ -404,125 +479,8 @@ export type SpecialEnemyModifiers = {
404
479
 
405
480
  export type AttackPowerModifier = { a: number; b: number };
406
481
 
407
- export type GearState = {
408
- id?: string;
409
- gear_id: number;
410
- exp?: number;
411
- stars?: number;
412
- };
413
-
414
- export type ShipState = {
415
- id?: string;
416
- ship_id: number;
417
- level?: number;
418
- current_hp?: number;
419
- morale?: number;
420
- ammo?: number;
421
- fuel?: number;
422
- max_hp_mod?: number;
423
- firepower_mod?: number;
424
- torpedo_mod?: number;
425
- armor_mod?: number;
426
- anti_air_mod?: number;
427
- evasion_mod?: number;
428
- asw_mod?: number;
429
- los_mod?: number;
430
- luck_mod?: number;
431
- g1?: GearState;
432
- g2?: GearState;
433
- g3?: GearState;
434
- g4?: GearState;
435
- g5?: GearState;
436
- gx?: GearState;
437
- ss1?: number;
438
- ss2?: number;
439
- ss3?: number;
440
- ss4?: number;
441
- ss5?: number;
442
- };
443
-
444
- export type FleetState = {
445
- id?: string;
446
- len?: number;
447
- s1?: ShipState;
448
- s2?: ShipState;
449
- s3?: ShipState;
450
- s4?: ShipState;
451
- s5?: ShipState;
452
- s6?: ShipState;
453
- s7?: ShipState;
454
- };
455
-
456
- export type AirSquadronMode = "Sortie" | "AirDefense";
457
-
458
- export type AirSquadronState = {
459
- id?: string;
460
- mode?: AirSquadronMode;
461
- g1?: GearState;
462
- g2?: GearState;
463
- g3?: GearState;
464
- g4?: GearState;
465
- g5?: GearState;
466
- gx?: GearState;
467
- ss1?: number;
468
- ss2?: number;
469
- ss3?: number;
470
- ss4?: number;
471
- ss5?: number;
472
- };
473
-
474
- export type Side = "Player" | "Enemy";
475
-
476
- export type OrgType =
477
- | "Single"
478
- | "CarrierTaskForce"
479
- | "SurfaceTaskForce"
480
- | "TransportEscort"
481
- | "EnemySingle"
482
- | "EnemyCombined";
483
-
484
- export type Role = "Main" | "Escort";
485
-
486
- export type OrgState = {
487
- id?: string;
488
- f1?: FleetState;
489
- f2?: FleetState;
490
- f3?: FleetState;
491
- f4?: FleetState;
492
- a1?: AirSquadronState;
493
- a2?: AirSquadronState;
494
- a3?: AirSquadronState;
495
- hq_level?: number;
496
- org_type?: OrgType;
497
- sortie?: string;
498
- route_sup?: string;
499
- boss_sup?: string;
500
- };
501
-
502
- export type ShipKey = "s1" | "s2" | "s3" | "s4" | "s5" | "s6" | "s7";
503
-
504
- export type ShipStateMap = Record<ShipKey, ShipState>;
505
-
506
- export type Formation = SingleFormation | CombinedFormation;
507
-
508
- export type CombinedFormation =
509
- | "Cruising1"
510
- | "Cruising2"
511
- | "Cruising3"
512
- | "Cruising4";
513
-
514
- export type SingleFormation =
515
- | "LineAhead"
516
- | "DoubleLine"
517
- | "Diamond"
518
- | "Echelon"
519
- | "LineAbreast"
520
- | "Vanguard";
521
-
522
482
  export type FleetType = "Main" | "Escort" | "RouteSup" | "BossSup";
523
483
 
524
- export type ShellingAttackType = "Normal" | "Carrier";
525
-
526
484
  export type FleetCutinAnalysis = {
527
485
  shelling: FleetCutinInfo[];
528
486
  night: FleetCutinInfo[];
@@ -541,29 +499,8 @@ export type FleetCutinInfoItem = {
541
499
  stats: AttackStats;
542
500
  };
543
501
 
544
- export type AttackInfo<AttackType, Cutin> = {
545
- attack_type: AttackType;
546
- items: AttackInfoItem<Cutin>[];
547
- damage_state_map: NumMap<DamageState, number> | null;
548
- };
549
-
550
- export type AttackInfoItem<Cutin> = {
551
- cutin: Cutin;
552
- rate: number | null;
553
- stats: AttackStats;
554
- };
555
-
556
- export type AttackStats = {
557
- attack_power: AttackPower | null;
558
- attack_power_params: AttackPowerParams | null;
559
- hits: number;
560
- hit_rate: HitRate | null;
561
- hit_rate_params: HitRateParams | null;
562
- damage: DamageInfo | null;
563
- };
564
-
565
502
  export type CompAntiAirInfo = {
566
- fleet_anti_air: number;
503
+ fleet_adjusted_anti_air: number;
567
504
  ships: ShipAntiAirInfo[];
568
505
  anti_air_cutin_chance: [number, number][];
569
506
  };
@@ -573,7 +510,7 @@ export type ShipAntiAirInfo = {
573
510
  adjusted_anti_air: number | null;
574
511
  proportional_shotdown_rate: number | null;
575
512
  fixed_shotdown_number: number | null;
576
- minimum_bonus: number | null;
513
+ guaranteed: number | null;
577
514
  anti_air_cutin_chance: [number, number][];
578
515
  anti_air_propellant_barrage_chance: number | null;
579
516
  };
@@ -592,110 +529,26 @@ export type AirstrikeContactChance = {
592
529
  total: number;
593
530
  };
594
531
 
595
- export type GearAttr =
596
- | "Abyssal"
597
- | "HighAngleMount"
598
- | "NightFighter"
599
- | "NightAttacker"
600
- | "HeavyBomber"
601
- | "MainGun"
602
- | "Radar"
603
- | "SurfaceRadar"
604
- | "AirRadar"
605
- | "DepthChargeProjector"
606
- | "AdditionalDepthCharge"
607
- | "AntiSubMortar"
608
- | "AntiSubWeapon"
609
- | "AntiSubAircraft"
610
- | "LateModelBowTorpedo"
611
- | "Seaplane"
612
- | "CbAircraft"
613
- | "LbAircraft"
614
- | "JetAircraft"
615
- | "Fighter"
616
- | "Recon"
617
- | "ObservationSeaplane"
618
- | "CbFighterBomber"
619
- | "AntiInstDiveBomber"
620
- | "NightRecon"
621
- | "CbSwordfish"
622
- | "SemiNightPlane"
623
- | "HighAltitudeInterceptor";
532
+ import * as bindings from "../bindings";
533
+ export * from "../bindings";
624
534
 
625
- export type GearCategory =
626
- | "Fighter"
627
- | "Bomber"
628
- | "Recon"
629
- | "MainGun"
630
- | "Secondary"
631
- | "Torpedo"
632
- | "AntiSub"
633
- | "Radar"
634
- | "Landing"
635
- | "Ration"
636
- | "LandBased"
637
- | "Misc";
535
+ export type Formation = SingleFormation | CombinedFormation;
536
+
537
+ export type CombinedFormation =
538
+ | "Cruising1"
539
+ | "Cruising2"
540
+ | "Cruising3"
541
+ | "Cruising4";
638
542
 
639
- export type GearType =
640
- | "Unknown"
641
- | "SmallMainGun"
642
- | "MediumMainGun"
643
- | "LargeMainGun"
644
- | "SecondaryGun"
645
- | "Torpedo"
646
- | "CbFighter"
647
- | "CbDiveBomber"
648
- | "CbTorpedoBomber"
649
- | "CbRecon"
650
- | "ReconSeaplane"
651
- | "SeaplaneBomber"
652
- | "SmallRadar"
653
- | "LargeRadar"
654
- | "Sonar"
655
- | "DepthCharge"
656
- | "ExtraArmor"
657
- | "Engine"
658
- | "AntiAirShell"
659
- | "ApShell"
660
- | "VtFuze"
661
- | "AntiAirGun"
662
- | "MidgetSubmarine"
663
- | "EmergencyRepair"
664
- | "LandingCraft"
665
- | "Rotorcraft"
666
- | "AntiSubPatrolAircraft"
667
- | "MediumArmor"
668
- | "LargeArmor"
669
- | "Searchlight"
670
- | "SupplyContainer"
671
- | "ShipRepairFacility"
672
- | "SubmarineTorpedo"
673
- | "Starshell"
674
- | "CommandFacility"
675
- | "AviationPersonnel"
676
- | "AntiAirFireDirector"
677
- | "AntiGroundEquipment"
678
- | "LargeMainGun2"
679
- | "ShipPersonnel"
680
- | "LargeSonar"
681
- | "LargeFlyingBoat"
682
- | "LargeSearchlight"
683
- | "CombatRation"
684
- | "Supplies"
685
- | "SeaplaneFighter"
686
- | "AmphibiousTank"
687
- | "LbAttacker"
688
- | "LbFighter"
689
- | "LbRecon"
690
- | "TransportationMaterial"
691
- | "SubmarineEquipment"
692
- | "LargeLbAircraft"
693
- | "JetFighter"
694
- | "JetFighterBomber"
695
- | "JetTorpedoBomber"
696
- | "JetRecon"
697
- | "LargeRadar2"
698
- | "CbRecon2";
543
+ export type SingleFormation =
544
+ | "LineAhead"
545
+ | "DoubleLine"
546
+ | "Diamond"
547
+ | "Echelon"
548
+ | "LineAbreast"
549
+ | "Vanguard";
550
+
551
+ export type ShellingAttackType = "Normal" | "Carrier";
699
552
 
700
553
  export type NightBattleAttackType =
701
554
  | { t: "NightAttack"; c: NightAttackType }
@@ -705,31 +558,115 @@ export type DayBattleAttackType =
705
558
  | { t: "Shelling"; c: ShellingAttackType }
706
559
  | { t: "Asw"; c: AswAttackType };
707
560
 
708
- import * as bindings from "../bindings";
709
- export * from "../bindings";
561
+ export type AttackInfo<AttackType, Cutin> = {
562
+ attack_type: AttackType;
563
+ items: AttackInfoItem<Cutin>[];
564
+ damage_state_map: NumMap<DamageState, number> | null;
565
+ };
710
566
 
711
- export type NightAttackType = "Normal" | "ArkRoyal" | "Carrier";
567
+ export type AttackInfoItem<Cutin> = {
568
+ cutin: Cutin;
569
+ rate: number | null;
570
+ stats: AttackStats;
571
+ };
712
572
 
713
- export type NightSpecialAttack =
714
- | { NightCutin: NightCutin }
715
- | { FleetCutin: FleetCutin };
573
+ export type AttackStats = {
574
+ attack_power: AttackPower | null;
575
+ attack_power_params: AttackPowerParams | null;
576
+ hits: number;
577
+ hit_rate: HitRate | null;
578
+ hit_rate_params: HitRateParams | null;
579
+ damage: DamageInfo | null;
580
+ };
716
581
 
717
- export type NightCutin =
718
- | "MainTorpRadar"
719
- | "TorpLookoutRadar"
720
- | "TorpTsloTorp"
721
- | "TorpTsloDrum"
722
- | "DoubleAttack"
723
- | "TorpTorpMain"
724
- | "TorpTorpTorp"
725
- | "MainMainSec"
726
- | "MainMainMain"
727
- | "SubTorpTorp"
728
- | "SubRadarTorp"
729
- | "Cvci1_25"
730
- | "Cvci1_20"
731
- | "Cvci1_18"
732
- | "Photobomber";
582
+ export type SlotSizeVec = (number | null)[];
583
+
584
+ export type ShipStateMap = Record<ShipKey, ShipState>;
585
+
586
+ export type ShipKey = "s1" | "s2" | "s3" | "s4" | "s5" | "s6" | "s7";
587
+
588
+ export type OrgState = {
589
+ id?: string;
590
+ f1?: FleetState;
591
+ f2?: FleetState;
592
+ f3?: FleetState;
593
+ f4?: FleetState;
594
+ a1?: AirSquadronState;
595
+ a2?: AirSquadronState;
596
+ a3?: AirSquadronState;
597
+ hq_level?: number;
598
+ org_type?: OrgType;
599
+ sortie?: string;
600
+ route_sup?: string;
601
+ boss_sup?: string;
602
+ };
603
+
604
+ export type AirSquadronState = {
605
+ id?: string;
606
+ mode?: AirSquadronMode;
607
+ g1?: GearState;
608
+ g2?: GearState;
609
+ g3?: GearState;
610
+ g4?: GearState;
611
+ g5?: GearState;
612
+ gx?: GearState;
613
+ ss1?: number;
614
+ ss2?: number;
615
+ ss3?: number;
616
+ ss4?: number;
617
+ ss5?: number;
618
+ };
619
+
620
+ export type AirSquadronMode = "Sortie" | "AirDefense";
621
+
622
+ export type FleetState = {
623
+ id?: string;
624
+ len?: number;
625
+ s1?: ShipState;
626
+ s2?: ShipState;
627
+ s3?: ShipState;
628
+ s4?: ShipState;
629
+ s5?: ShipState;
630
+ s6?: ShipState;
631
+ s7?: ShipState;
632
+ };
633
+
634
+ export type ShipState = {
635
+ id?: string;
636
+ ship_id: number;
637
+ level?: number;
638
+ current_hp?: number;
639
+ morale?: number;
640
+ ammo?: number;
641
+ fuel?: number;
642
+ max_hp_mod?: number;
643
+ firepower_mod?: number;
644
+ torpedo_mod?: number;
645
+ armor_mod?: number;
646
+ anti_air_mod?: number;
647
+ evasion_mod?: number;
648
+ asw_mod?: number;
649
+ los_mod?: number;
650
+ luck_mod?: number;
651
+ g1?: GearState;
652
+ g2?: GearState;
653
+ g3?: GearState;
654
+ g4?: GearState;
655
+ g5?: GearState;
656
+ gx?: GearState;
657
+ ss1?: number;
658
+ ss2?: number;
659
+ ss3?: number;
660
+ ss4?: number;
661
+ ss5?: number;
662
+ };
663
+
664
+ export type GearState = {
665
+ id?: string;
666
+ gear_id: number;
667
+ exp?: number;
668
+ stars?: number;
669
+ };
733
670
 
734
671
  export type HitRate = { total: number; normal: number; critical: number };
735
672
 
@@ -768,6 +705,48 @@ export type WarfareAnalyzerShipEnvironment = {
768
705
  custom_mods: CustomModifiers;
769
706
  };
770
707
 
708
+ export type Side = "Player" | "Enemy";
709
+
710
+ export type SpecialEnemyType =
711
+ | "None"
712
+ | "SoftSkinned"
713
+ | "Pillbox"
714
+ | "IsolatedIsland"
715
+ | "SupplyDepot"
716
+ | "HarbourSummerPrincess"
717
+ | "PtImp"
718
+ | "BattleshipSummerPrincess"
719
+ | "HeavyCruiserSummerPrincess";
720
+
721
+ export type MoraleState = "Sparkle" | "Normal" | "Orange" | "Red";
722
+
723
+ export type DamageState = "Normal" | "Shouha" | "Chuuha" | "Taiha" | "Sunk";
724
+
725
+ export type SpeedGroup = "A" | "B1" | "B2" | "C";
726
+
727
+ export type NightAttackType = "Normal" | "ArkRoyal" | "Carrier";
728
+
729
+ export type NightSpecialAttack =
730
+ | { NightCutin: NightCutin }
731
+ | { FleetCutin: FleetCutin };
732
+
733
+ export type NightCutin =
734
+ | "MainTorpRadar"
735
+ | "TorpLookoutRadar"
736
+ | "TorpTsloTorp"
737
+ | "TorpTsloDrum"
738
+ | "DoubleAttack"
739
+ | "TorpTorpMain"
740
+ | "TorpTorpTorp"
741
+ | "MainMainSec"
742
+ | "MainMainMain"
743
+ | "SubTorpTorp"
744
+ | "SubRadarTorp"
745
+ | "Cvci1_25"
746
+ | "Cvci1_20"
747
+ | "Cvci1_18"
748
+ | "Photobomber";
749
+
771
750
  export type FleetCutin =
772
751
  | "NelsonTouch"
773
752
  | "NagatoCutin"
@@ -801,7 +780,7 @@ export type AntiAirCutinDef = {
801
780
  id: number;
802
781
  chance_numer: number | null;
803
782
  multiplier: number | null;
804
- minimum_bonus: number | null;
783
+ guaranteed: number | null;
805
784
  sequential: boolean | null;
806
785
  };
807
786
 
@@ -858,11 +837,6 @@ export class AirSquadron {
858
837
  * @returns {Gear | undefined}
859
838
  */
860
839
  get_gear(key: string): Gear | undefined;
861
- /**
862
- * @param {Gear} gear
863
- * @returns {boolean}
864
- */
865
- can_equip(gear: Gear): boolean;
866
840
  /**
867
841
  * @param {number} index
868
842
  * @returns {number}
@@ -903,7 +877,7 @@ export class Analyzer {
903
877
  /**
904
878
  * @param {Comp} comp
905
879
  * @param {Formation} formation
906
- * @param {number} adjusted_anti_air_resist
880
+ * @param {number} ship_anti_air_resist
907
881
  * @param {number} fleet_anti_air_resist
908
882
  * @param {number | undefined} aaci
909
883
  * @returns {CompAntiAirInfo}
@@ -911,7 +885,7 @@ export class Analyzer {
911
885
  analyze_anti_air(
912
886
  comp: Comp,
913
887
  formation: Formation,
914
- adjusted_anti_air_resist: number,
888
+ ship_anti_air_resist: number,
915
889
  fleet_anti_air_resist: number,
916
890
  aaci?: number
917
891
  ): CompAntiAirInfo;
@@ -1005,11 +979,11 @@ export class Comp {
1005
979
  */
1006
980
  default_formation(): Formation;
1007
981
  /**
1008
- * 艦隊対空値
982
+ * 艦隊防空値
1009
983
  * @param {number} formation_mod
1010
984
  * @returns {number}
1011
985
  */
1012
- fleet_anti_air(formation_mod: number): number;
986
+ adjusted_anti_air(formation_mod: number): number;
1013
987
  /**
1014
988
  * 制空値
1015
989
  * @param {boolean} escort_participates
@@ -1277,11 +1251,11 @@ export class Gear {
1277
1251
  /**
1278
1252
  * @returns {number}
1279
1253
  */
1280
- fleet_anti_air(): number;
1254
+ fleet_anti_air_mod(): number;
1281
1255
  /**
1282
1256
  * @returns {number}
1283
1257
  */
1284
- adjusted_anti_air(): number;
1258
+ ship_anti_air_mod(): number;
1285
1259
  /**
1286
1260
  * @param {number} slot_size
1287
1261
  * @returns {number}
@@ -1327,6 +1301,10 @@ export class Gear {
1327
1301
  * @returns {number}
1328
1302
  */
1329
1303
  expedition_bonus(): number;
1304
+ /**
1305
+ * @returns {boolean}
1306
+ */
1307
+ can_be_deployed_to_land_base(): boolean;
1330
1308
  /**
1331
1309
  */
1332
1310
  accuracy: number;
@@ -1334,9 +1312,6 @@ export class Gear {
1334
1312
  * @returns {number}
1335
1313
  */
1336
1314
  readonly ace: number;
1337
- /**
1338
- */
1339
- adjusted_anti_air_resistance: number;
1340
1315
  /**
1341
1316
  */
1342
1317
  anti_air: number;
@@ -1413,6 +1388,9 @@ export class Gear {
1413
1388
  /**
1414
1389
  */
1415
1390
  range: number;
1391
+ /**
1392
+ */
1393
+ ship_anti_air_resistance: number;
1416
1394
  /**
1417
1395
  * @returns {number}
1418
1396
  */
@@ -1427,9 +1405,8 @@ export class Gear {
1427
1405
  */
1428
1406
  torpedo: number;
1429
1407
  /**
1430
- * @returns {any}
1431
1408
  */
1432
- readonly types: any;
1409
+ types: Uint8Array;
1433
1410
  /**
1434
1411
  */
1435
1412
  xxh3: BigInt;
@@ -1438,9 +1415,6 @@ export class Gear {
1438
1415
  */
1439
1416
  export class IBonuses {
1440
1417
  free(): void;
1441
- /**
1442
- */
1443
- adjusted_anti_air: number;
1444
1418
  /**
1445
1419
  */
1446
1420
  asw_accuracy: number;
@@ -1477,6 +1451,9 @@ export class IBonuses {
1477
1451
  /**
1478
1452
  */
1479
1453
  shelling_power: number;
1454
+ /**
1455
+ */
1456
+ ship_anti_air: number;
1480
1457
  /**
1481
1458
  */
1482
1459
  torpedo_accuracy: number;
@@ -1778,7 +1755,7 @@ export class Ship {
1778
1755
  /**
1779
1756
  * @returns {number}
1780
1757
  */
1781
- fleet_anti_air(): number;
1758
+ fleet_anti_air_mod(): number;
1782
1759
  /**
1783
1760
  * @returns {number}
1784
1761
  */
@@ -1948,6 +1925,9 @@ export class Ship {
1948
1925
  * @returns {number}
1949
1926
  */
1950
1927
  readonly slotnum: number;
1928
+ /**
1929
+ */
1930
+ slots: SlotSizeVec;
1951
1931
  /**
1952
1932
  * @returns {number}
1953
1933
  */