fleethub-core 1.6.1 → 1.7.1

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,46 +3,6 @@
3
3
  /**
4
4
  */
5
5
  export function set_panic_hook(): void;
6
- export interface EBonuses {
7
- firepower: number;
8
- torpedo: number;
9
- anti_air: number;
10
- armor: number;
11
- evasion: number;
12
- asw: number;
13
- los: number;
14
- bombing: number;
15
- accuracy: number;
16
- range: number;
17
- }
18
-
19
- export interface ShipInput {
20
- ship_id: number;
21
- ctype: number;
22
- stype: number;
23
- yomi: string;
24
- }
25
-
26
- export interface GearInput {
27
- gear_id: number;
28
- types: GearTypeIdArray;
29
- firepower: number;
30
- torpedo: number;
31
- anti_air: number;
32
- armor: number;
33
- evasion: number;
34
- asw: number;
35
- los: number;
36
- bombing: number;
37
- accuracy: number;
38
- range: number;
39
- radius: number;
40
- stars: number;
41
- ace: number;
42
- }
43
-
44
- export type GearVecInput = GearInput[];
45
-
46
6
  export type ShipType =
47
7
  | "Unknown"
48
8
  | "DE"
@@ -78,46 +38,50 @@ export type ShipCategory =
78
38
  | "Submarine"
79
39
  | "AuxiliaryShip";
80
40
 
81
- export type AirStateRank = "Rank0" | "Rank1" | "Rank2" | "Rank3";
41
+ export type ShellingSpecialAttack =
42
+ | { DayCutin: DayCutin }
43
+ | { FleetCutin: FleetCutin };
82
44
 
83
- export type AirState =
84
- | "AirSupremacy"
85
- | "AirSuperiority"
86
- | "AirParity"
87
- | "AirDenial"
88
- | "AirIncapability";
45
+ export type DayCutin =
46
+ | "MainMain"
47
+ | "MainAp"
48
+ | "MainRadar"
49
+ | "MainSec"
50
+ | "DoubleAttack"
51
+ | "FBA"
52
+ | "BBA"
53
+ | "BA"
54
+ | "Zuiun"
55
+ | "AirSea";
89
56
 
90
- export interface FleetCutinAnalysis {
91
- shelling: FleetCutinInfo[];
92
- night: FleetCutinInfo[];
57
+ export interface ShellingSupportSimulatorParams {
58
+ attacker_formation: Formation;
59
+ target_formation: Formation;
60
+ engagement: Engagement;
61
+ custom_mods: CustomModifiers;
93
62
  }
94
63
 
95
- export interface FleetCutinInfo {
96
- cutin: FleetCutin;
97
- rate: number | null;
98
- formation: Formation;
99
- items: FleetCutinInfoItem[];
100
- }
64
+ export type ShellingAttackType = "Normal" | "Carrier";
101
65
 
102
- export interface FleetCutinInfoItem {
103
- ship_id: number;
104
- cutin: FleetCutin;
105
- fleet_cutin_mod: number;
106
- stats: AttackStats;
107
- }
66
+ export type AirWaveType = "Jet" | "LandBase" | "Carrier";
108
67
 
109
- export interface DamageInfo {
110
- miss_damage_min: number;
111
- miss_damage_max: number;
112
- normal_damage_min: number;
113
- normal_damage_max: number;
114
- critical_damage_min: number;
115
- critical_damage_max: number;
116
- normal_scratch_rate: number;
117
- critical_scratch_rate: number;
118
- damage_map: NumMap<number, number>;
119
- damage_state_map: NumMap<DamageState, number>;
120
- }
68
+ export type AswAttackType = "DepthCharge" | "Aircraft";
69
+
70
+ export type OrgType =
71
+ | "Single"
72
+ | "CarrierTaskForce"
73
+ | "SurfaceTaskForce"
74
+ | "TransportEscort"
75
+ | "EnemySingle"
76
+ | "EnemyCombined";
77
+
78
+ export type FleetCutin =
79
+ | "NelsonTouch"
80
+ | "NagatoCutin"
81
+ | "ColoradoCutin"
82
+ | "KongouCutin"
83
+ | "Yamato2ShipCutin"
84
+ | "Yamato3ShipCutin";
121
85
 
122
86
  export interface WarfareContext {
123
87
  attacker_env: WarfareShipEnvironment;
@@ -136,13 +100,7 @@ export interface WarfareShipEnvironment {
136
100
  fleet_los_mod: number | null;
137
101
  }
138
102
 
139
- export type OrgType =
140
- | "Single"
141
- | "CarrierTaskForce"
142
- | "SurfaceTaskForce"
143
- | "TransportEscort"
144
- | "EnemySingle"
145
- | "EnemyCombined";
103
+ export type Role = "Main" | "Escort";
146
104
 
147
105
  export interface CompMeta {
148
106
  fleets: Record<FleetType, FleetMeta>;
@@ -159,32 +117,6 @@ export interface ShipMeta {
159
117
  ship_id: number;
160
118
  }
161
119
 
162
- export interface MasterData {
163
- gears: MasterGear[];
164
- gear_attrs: MasterAttrRule<GearAttr>[];
165
- ships: MasterShip[];
166
- ship_attrs: MasterAttrRule<ShipAttr>[];
167
- ibonuses: MasterIBonuses;
168
- equippable: MasterEquippable;
169
- formation: NestedFormationDef[];
170
- anti_air_cutin: AntiAirCutinDef[];
171
- day_cutin: DayCutinDef[];
172
- night_cutin: NightCutinDef[];
173
- }
174
-
175
- export interface MasterConfig {
176
- formation: NestedFormationDef[];
177
- anti_air_cutin: AntiAirCutinDef[];
178
- day_cutin: DayCutinDef[];
179
- night_cutin: NightCutinDef[];
180
- }
181
-
182
- export interface MasterAttrRule<T> {
183
- tag: T;
184
- name: string;
185
- expr: string;
186
- }
187
-
188
120
  export interface AttackPower {
189
121
  precap: number;
190
122
  is_capped: boolean;
@@ -210,8 +142,9 @@ export interface AttackPowerParams {
210
142
  }
211
143
 
212
144
  export interface CustomModifiers {
213
- precap_mod: AttackPowerModifier;
214
- postcap_mod: AttackPowerModifier;
145
+ precap_mod?: AttackPowerModifier;
146
+ postcap_mod?: AttackPowerModifier;
147
+ basic_power_mod?: AttackPowerModifier;
215
148
  }
216
149
 
217
150
  export interface SpecialEnemyModifiers {
@@ -230,25 +163,55 @@ export interface AttackPowerModifier {
230
163
  b: number;
231
164
  }
232
165
 
233
- export type NumMap<K, V> = Partial<Record<K, V>>;
166
+ export interface MasterData {
167
+ gears: MasterGear[];
168
+ gear_attrs: MasterAttrRule<GearAttr>[];
169
+ ships: MasterShip[];
170
+ ship_attrs: MasterAttrRule<ShipAttr>[];
171
+ ibonuses: MasterIBonuses;
172
+ equippable: MasterEquippable;
173
+ formation: NestedFormationDef[];
174
+ anti_air_cutin: AntiAirCutinDef[];
175
+ day_cutin: DayCutinDef[];
176
+ night_cutin: NightCutinDef[];
177
+ }
234
178
 
235
- export type ShellingSpecialAttack =
236
- | { DayCutin: DayCutin }
237
- | { FleetCutin: FleetCutin };
179
+ export interface MasterConfig {
180
+ formation: NestedFormationDef[];
181
+ anti_air_cutin: AntiAirCutinDef[];
182
+ day_cutin: DayCutinDef[];
183
+ night_cutin: NightCutinDef[];
184
+ }
238
185
 
239
- export type DayCutin =
240
- | "MainMain"
241
- | "MainAp"
242
- | "MainRadar"
243
- | "MainSec"
244
- | "DoubleAttack"
245
- | "FBA"
246
- | "BBA"
247
- | "BA"
248
- | "Zuiun"
249
- | "AirSea";
186
+ export interface MasterAttrRule<T> {
187
+ tag: T;
188
+ name: string;
189
+ expr: string;
190
+ }
250
191
 
251
- export type Role = "Main" | "Escort";
192
+ export interface CompDayCutinRateInfo {
193
+ main: FleetDayCutinRateInfo;
194
+ escort: FleetDayCutinRateInfo | null;
195
+ }
196
+
197
+ export interface FleetDayCutinRateInfo {
198
+ fleet_los_mod: number | null;
199
+ ships: ShipDayCutinRateInfo[];
200
+ }
201
+
202
+ export interface ShipDayCutinRateInfo {
203
+ ship_id: number;
204
+ air_supremacy: DayCutinRateInfo;
205
+ air_superiority: DayCutinRateInfo;
206
+ }
207
+
208
+ export interface DayCutinRateInfo {
209
+ observation_term: number | null;
210
+ rates: [DayCutin | null, number | null][];
211
+ total_cutin_rate: number | null;
212
+ }
213
+
214
+ export type NumMap<K, V> = Partial<Record<K, V>>;
252
215
 
253
216
  export type GearCategory =
254
217
  | "Fighter"
@@ -327,52 +290,54 @@ export type GearType =
327
290
 
328
291
  export type Engagement = "GreenT" | "Parallel" | "HeadOn" | "RedT";
329
292
 
330
- export interface ShellingSupportSimulatorParams {
331
- attacker_formation: Formation;
332
- target_formation: Formation;
333
- engagement: Engagement;
334
- custom_mods: CustomModifiers;
293
+ export interface EBonuses {
294
+ firepower: number;
295
+ torpedo: number;
296
+ anti_air: number;
297
+ armor: number;
298
+ evasion: number;
299
+ asw: number;
300
+ los: number;
301
+ bombing: number;
302
+ accuracy: number;
303
+ range: number;
335
304
  }
336
305
 
337
- export type ShellingAttackType = "Normal" | "Carrier";
338
-
339
- export interface CompDayCutinRateInfo {
340
- main: FleetDayCutinRateInfo;
341
- escort: FleetDayCutinRateInfo | null;
306
+ export interface ShipInput {
307
+ ship_id: number;
308
+ ctype: number;
309
+ stype: number;
310
+ yomi: string;
342
311
  }
343
312
 
344
- export interface FleetDayCutinRateInfo {
345
- fleet_los_mod: number | null;
346
- ships: ShipDayCutinRateInfo[];
313
+ export interface GearInput {
314
+ gear_id: number;
315
+ types: GearTypeIdArray;
316
+ firepower: number;
317
+ torpedo: number;
318
+ anti_air: number;
319
+ armor: number;
320
+ evasion: number;
321
+ asw: number;
322
+ los: number;
323
+ bombing: number;
324
+ accuracy: number;
325
+ range: number;
326
+ radius: number;
327
+ stars: number;
328
+ ace: number;
347
329
  }
348
330
 
349
- export interface ShipDayCutinRateInfo {
350
- ship_id: number;
351
- air_supremacy: DayCutinRateInfo;
352
- air_superiority: DayCutinRateInfo;
353
- }
331
+ export type GearVecInput = GearInput[];
354
332
 
355
- export interface DayCutinRateInfo {
356
- observation_term: number | null;
357
- rates: [DayCutin | null, number | null][];
358
- total_cutin_rate: number | null;
359
- }
333
+ export type AirStateRank = "Rank0" | "Rank1" | "Rank2" | "Rank3";
360
334
 
361
- export type ShipAttr =
362
- | "Unknown"
363
- | "Abyssal"
364
- | "NightCarrier"
365
- | "Installation"
366
- | "RoyalNavy"
367
- | "Kai2"
368
- | "TurbineSpeedBonus"
369
- | "Pillbox"
370
- | "IsolatedIsland"
371
- | "HarbourSummerPrincess"
372
- | "SupplyDepot"
373
- | "PtImp"
374
- | "BattleshipSummerPrincess"
375
- | "HeavyCruiserSummerPrincess";
335
+ export type AirState =
336
+ | "AirSupremacy"
337
+ | "AirSuperiority"
338
+ | "AirParity"
339
+ | "AirDenial"
340
+ | "AirIncapability";
376
341
 
377
342
  export interface MasterIBonuses {
378
343
  shelling_power: MasterIBonusRule[];
@@ -404,6 +369,104 @@ export interface NightSituation {
404
369
  searchlight: boolean;
405
370
  }
406
371
 
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
+ export interface DamageInfo {
392
+ miss_damage_min: number;
393
+ miss_damage_max: number;
394
+ normal_damage_min: number;
395
+ normal_damage_max: number;
396
+ critical_damage_min: number;
397
+ critical_damage_max: number;
398
+ normal_scratch_rate: number;
399
+ critical_scratch_rate: number;
400
+ damage_map: NumMap<number, number>;
401
+ damage_state_map: NumMap<DamageState, number>;
402
+ }
403
+
404
+ 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;
421
+
422
+ export type CombinedFormation =
423
+ | "Cruising1"
424
+ | "Cruising2"
425
+ | "Cruising3"
426
+ | "Cruising4";
427
+
428
+ export type SingleFormation =
429
+ | "LineAhead"
430
+ | "DoubleLine"
431
+ | "Diamond"
432
+ | "Echelon"
433
+ | "LineAbreast"
434
+ | "Vanguard";
435
+
436
+ export type FleetType = "Main" | "Escort" | "RouteSup" | "BossSup";
437
+
438
+ export interface CompAntiAirInfo {
439
+ fleet_adjusted_anti_air: number;
440
+ ships: ShipAntiAirInfo[];
441
+ anti_air_cutin_chance: [number, number][];
442
+ }
443
+
444
+ export interface ShipAntiAirInfo {
445
+ ship_id: number;
446
+ adjusted_anti_air: number | null;
447
+ proportional_shotdown_rate: number | null;
448
+ fixed_shotdown_number: number | null;
449
+ guaranteed: number | null;
450
+ anti_air_cutin_chance: [number, number][];
451
+ anti_air_propellant_barrage_chance: number | null;
452
+ }
453
+
454
+ export interface CompContactChanceInfo {
455
+ single: AirstrikeContactChance[] | null;
456
+ combined: AirstrikeContactChance[] | null;
457
+ }
458
+
459
+ export interface AirstrikeContactChance {
460
+ air_state: AirState;
461
+ trigger_rate: number;
462
+ rank3: number;
463
+ rank2: number;
464
+ rank1: number;
465
+ total: number;
466
+ }
467
+
468
+ export type SlotSizeVec = (number | null)[];
469
+
407
470
  export type GearAttr =
408
471
  | "Unknown"
409
472
  | "Abyssal"
@@ -435,23 +498,75 @@ export type GearAttr =
435
498
  | "SemiNightPlane"
436
499
  | "HighAltitudeInterceptor";
437
500
 
438
- export type Formation = SingleFormation | CombinedFormation;
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;
524
+ }
525
+
526
+ export interface MasterEquippable {
527
+ equip_stype: EquipStype[];
528
+ equip_exslot: number[];
529
+ equip_ship: MstEquipShip[];
530
+ equip_exslot_ship: MstEquipExslotShip[];
531
+ }
439
532
 
440
- export type CombinedFormation =
441
- | "Cruising1"
442
- | "Cruising2"
443
- | "Cruising3"
444
- | "Cruising4";
533
+ export interface MstEquipExslotShip {
534
+ api_slotitem_id: number;
535
+ api_ship_ids: number[];
536
+ }
445
537
 
446
- export type SingleFormation =
447
- | "LineAhead"
448
- | "DoubleLine"
449
- | "Diamond"
450
- | "Echelon"
451
- | "LineAbreast"
452
- | "Vanguard";
538
+ export interface MstEquipShip {
539
+ api_ship_id: number;
540
+ api_equip_type: number[];
541
+ }
453
542
 
454
- export type FleetType = "Main" | "Escort" | "RouteSup" | "BossSup";
543
+ export interface EquipStype {
544
+ id: number;
545
+ equip_type: number[];
546
+ }
547
+
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;
561
+ }
562
+
563
+ export type NightBattleAttackType =
564
+ | { t: "NightAttack"; c: NightAttackType }
565
+ | { t: "Asw"; c: AswAttackType };
566
+
567
+ export type DayBattleAttackType =
568
+ | { t: "Shelling"; c: ShellingAttackType }
569
+ | { t: "Asw"; c: AswAttackType };
455
570
 
456
571
  export interface AttackInfo<AttackType, Cutin> {
457
572
  attack_type: AttackType;
@@ -474,36 +589,6 @@ export interface AttackStats {
474
589
  damage: DamageInfo | null;
475
590
  }
476
591
 
477
- export interface CompAntiAirInfo {
478
- fleet_adjusted_anti_air: number;
479
- ships: ShipAntiAirInfo[];
480
- anti_air_cutin_chance: [number, number][];
481
- }
482
-
483
- export interface ShipAntiAirInfo {
484
- ship_id: number;
485
- adjusted_anti_air: number | null;
486
- proportional_shotdown_rate: number | null;
487
- fixed_shotdown_number: number | null;
488
- guaranteed: number | null;
489
- anti_air_cutin_chance: [number, number][];
490
- anti_air_propellant_barrage_chance: number | null;
491
- }
492
-
493
- export interface CompContactChanceInfo {
494
- single: AirstrikeContactChance[] | null;
495
- combined: AirstrikeContactChance[] | null;
496
- }
497
-
498
- export interface AirstrikeContactChance {
499
- air_state: AirState;
500
- trigger_rate: number;
501
- rank3: number;
502
- rank2: number;
503
- rank1: number;
504
- total: number;
505
- }
506
-
507
592
  export type ShipStateMap = Record<ShipKey, ShipState>;
508
593
 
509
594
  export type ShipKey = "s1" | "s2" | "s3" | "s4" | "s5" | "s6" | "s7";
@@ -554,7 +639,7 @@ export interface FleetState {
554
639
  s7?: ShipState;
555
640
  }
556
641
 
557
- export interface ShipState {
642
+ export interface ShipState extends GearVecState, SlotSizeVecState {
558
643
  id?: string;
559
644
  ship_id: number;
560
645
  level?: number;
@@ -571,26 +656,23 @@ export interface ShipState {
571
656
  asw_mod?: number;
572
657
  los_mod?: number;
573
658
  luck_mod?: number;
574
- g1?: GearState;
575
- g2?: GearState;
576
- g3?: GearState;
577
- g4?: GearState;
578
- g5?: GearState;
579
- gx?: GearState;
659
+ }
660
+
661
+ export interface SlotSizeVecState {
580
662
  ss1?: number;
581
663
  ss2?: number;
582
664
  ss3?: number;
583
665
  ss4?: number;
584
666
  ss5?: number;
585
- overrides?: ShipOverrides;
586
667
  }
587
668
 
588
- export interface ShipOverrides {
589
- naked_max_hp?: number;
590
- naked_luck?: number;
591
- naked_evasion?: number;
592
- naked_asw?: number;
593
- naked_los?: number;
669
+ export interface GearVecState {
670
+ g1?: GearState;
671
+ g2?: GearState;
672
+ g3?: GearState;
673
+ g4?: GearState;
674
+ g5?: GearState;
675
+ gx?: GearState;
594
676
  }
595
677
 
596
678
  export interface GearState {
@@ -600,40 +682,6 @@ export interface GearState {
600
682
  stars?: number;
601
683
  }
602
684
 
603
- export interface MasterEquippable {
604
- equip_stype: EquipStype[];
605
- equip_exslot: number[];
606
- equip_ship: MstEquipShip[];
607
- equip_exslot_ship: MstEquipExslotShip[];
608
- }
609
-
610
- export interface MstEquipExslotShip {
611
- api_slotitem_id: number;
612
- api_ship_ids: number[];
613
- }
614
-
615
- export interface MstEquipShip {
616
- api_ship_id: number;
617
- api_equip_type: number[];
618
- }
619
-
620
- export interface EquipStype {
621
- id: number;
622
- equip_type: number[];
623
- }
624
-
625
- export type NightBattleAttackType =
626
- | { t: "NightAttack"; c: NightAttackType }
627
- | { t: "Asw"; c: AswAttackType };
628
-
629
- export type DayBattleAttackType =
630
- | { t: "Shelling"; c: ShellingAttackType }
631
- | { t: "Asw"; c: AswAttackType };
632
-
633
- export type SlotSizeVec = (number | null)[];
634
-
635
- export type Side = "Player" | "Enemy";
636
-
637
685
  export type NightAttackType = "Normal" | "ArkRoyal" | "Carrier";
638
686
 
639
687
  export type NightSpecialAttack =
@@ -657,6 +705,32 @@ export type NightCutin =
657
705
  | "Cvci1_18"
658
706
  | "Photobomber";
659
707
 
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;
714
+ }
715
+
716
+ export interface WarfareAnalyzerContext {
717
+ attacker_env: WarfareAnalyzerShipEnvironment;
718
+ target_env: WarfareAnalyzerShipEnvironment;
719
+ engagement: Engagement;
720
+ air_state: AirState;
721
+ }
722
+
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;
732
+ }
733
+
660
734
  export interface BattleConfig {
661
735
  formation: Record<Formation, NestedFormationDef>;
662
736
  anti_air_cutin: Record<number, AntiAirCutinDef>;
@@ -709,48 +783,6 @@ export interface FormationWarfareDef {
709
783
  evasion_mod: number | null;
710
784
  }
711
785
 
712
- export interface MasterGear {
713
- gear_id: number;
714
- name: string;
715
- types: GearTypeIdArray;
716
- special_type?: number;
717
- max_hp?: number;
718
- firepower?: number;
719
- armor?: number;
720
- torpedo?: number;
721
- anti_air?: number;
722
- speed?: number;
723
- bombing?: number;
724
- asw?: number;
725
- los?: number;
726
- luck?: number;
727
- accuracy?: number;
728
- evasion?: number;
729
- range?: number;
730
- radius?: number;
731
- cost?: number;
732
- improvable?: boolean;
733
- ship_anti_air_resistance?: number;
734
- fleet_anti_air_resistance?: number;
735
- }
736
-
737
- export interface HitRate {
738
- total: number;
739
- normal: number;
740
- critical: number;
741
- }
742
-
743
- export interface HitRateParams {
744
- accuracy_term: number;
745
- evasion_term: number;
746
- target_morale_mod: number;
747
- critical_rate_constant: number;
748
- critical_percentage_bonus: number;
749
- hit_percentage_bonus: number;
750
- }
751
-
752
- export type GearTypeIdArray = [number, number, number, number, number];
753
-
754
786
  export interface MasterShip {
755
787
  ship_id: number;
756
788
  name: string;
@@ -768,6 +800,7 @@ export interface MasterShip {
768
800
  los: StatInterval;
769
801
  luck: StatInterval;
770
802
  torpedo_accuracy?: number;
803
+ basic_evasion_term?: number;
771
804
  speed: number;
772
805
  range?: number;
773
806
  fuel?: number;
@@ -783,31 +816,9 @@ export interface MasterShip {
783
816
 
784
817
  export type StatInterval = [number | null, number | null];
785
818
 
786
- export interface WarfareInfo {
787
- day: AttackInfo<DayBattleAttackType, DayCutin | null> | null;
788
- closing_torpedo: AttackInfo<null, null> | null;
789
- night: AttackInfo<NightBattleAttackType, NightCutin | null> | null;
790
- shelling_support: AttackInfo<null, null> | null;
791
- opening_asw: AttackInfo<null, null> | null;
792
- }
793
-
794
- export interface WarfareAnalyzerContext {
795
- attacker_env: WarfareAnalyzerShipEnvironment;
796
- target_env: WarfareAnalyzerShipEnvironment;
797
- engagement: Engagement;
798
- air_state: AirState;
799
- }
819
+ export type GearTypeIdArray = [number, number, number, number, number];
800
820
 
801
- export interface WarfareAnalyzerShipEnvironment {
802
- org_type: OrgType;
803
- role: Role;
804
- ship_index: number;
805
- fleet_len: number;
806
- formation: Formation;
807
- fleet_los_mod: number | null;
808
- night_situation: NightSituation;
809
- custom_mods: CustomModifiers;
810
- }
821
+ export type Side = "Player" | "Enemy";
811
822
 
812
823
  export type SpecialEnemyType =
813
824
  | "None"
@@ -826,16 +837,8 @@ export type DamageState = "Normal" | "Shouha" | "Chuuha" | "Taiha" | "Sunk";
826
837
 
827
838
  export type SpeedGroup = "A" | "B1" | "B2" | "C";
828
839
 
829
- export type FleetCutin =
830
- | "NelsonTouch"
831
- | "NagatoCutin"
832
- | "ColoradoCutin"
833
- | "KongouCutin";
834
-
835
840
  export type ContactRank = "Rank1" | "Rank2" | "Rank3";
836
841
 
837
- export type AirWaveType = "Jet" | "LandBase" | "Carrier";
838
-
839
842
  export interface SimulatorResult {
840
843
  items: SimulatorResultItem[];
841
844
  sunk_vec: [number, number, number][];
@@ -848,8 +851,6 @@ export interface SimulatorResultItem {
848
851
  damage_state_map: Record<DamageState, number>;
849
852
  }
850
853
 
851
- export type AswAttackType = "DepthCharge" | "Aircraft";
852
-
853
854
  export interface FleetNightCutinRateInfo {
854
855
  night_contact_chance: NightContactChance;
855
856
  ships: ShipNightCutinRateInfo[];
@@ -1270,6 +1271,10 @@ export class Gear {
1270
1271
  * @returns {GearCategory}
1271
1272
  */
1272
1273
  category(): GearCategory;
1274
+ /**
1275
+ * @returns {boolean}
1276
+ */
1277
+ is_high_angle_mount(): boolean;
1273
1278
  /**
1274
1279
  * @returns {boolean}
1275
1280
  */
@@ -1854,6 +1859,11 @@ export class Ship {
1854
1859
  * @returns {number | undefined}
1855
1860
  */
1856
1861
  elos(node_divaricated_factor: number): number | undefined;
1862
+ /**
1863
+ * 確殺攻撃力
1864
+ * @returns {number | undefined}
1865
+ */
1866
+ ohko_power(): number | undefined;
1857
1867
  /**
1858
1868
  * @param {number} value
1859
1869
  */
@@ -1897,6 +1907,10 @@ export class Ship {
1897
1907
  /**
1898
1908
  */
1899
1909
  id: string;
1910
+ /**
1911
+ * @returns {number}
1912
+ */
1913
+ readonly innate_torpedo_accuracy: number;
1900
1914
  /**
1901
1915
  */
1902
1916
  level: number;
@@ -2000,10 +2014,6 @@ export class Ship {
2000
2014
  * @returns {number | undefined}
2001
2015
  */
2002
2016
  readonly torpedo: number | undefined;
2003
- /**
2004
- * @returns {number}
2005
- */
2006
- readonly torpedo_accuracy_mod: number;
2007
2017
  /**
2008
2018
  * @returns {boolean}
2009
2019
  */