fleethub-core 1.10.12 → 1.10.15
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.
- package/node/fleethub_core.d.ts +632 -633
- package/node/fleethub_core.js +97 -91
- package/node/fleethub_core_bg.wasm +0 -0
- package/node/fleethub_core_bg.wasm.d.ts +39 -39
- package/package.json +1 -1
- package/pkg/fleethub_core.d.ts +632 -633
- package/pkg/fleethub_core_bg.js +97 -91
- package/pkg/fleethub_core_bg.wasm +0 -0
- package/pkg/fleethub_core_bg.wasm.d.ts +39 -39
package/node/fleethub_core.d.ts
CHANGED
|
@@ -8,20 +8,8 @@ export function parse_ship_conditions(value: ShipConditions): ShipConditions;
|
|
|
8
8
|
/**
|
|
9
9
|
*/
|
|
10
10
|
export function set_panic_hook(): void;
|
|
11
|
-
export interface HitRate {
|
|
12
|
-
normal: number;
|
|
13
|
-
critical: number;
|
|
14
|
-
total: number;
|
|
15
|
-
}
|
|
16
11
|
|
|
17
|
-
export
|
|
18
|
-
accuracy_term: number;
|
|
19
|
-
evasion_term: number;
|
|
20
|
-
target_morale_mod: number;
|
|
21
|
-
critical_rate_constant: number;
|
|
22
|
-
critical_percentage_bonus: number;
|
|
23
|
-
hit_percentage_bonus: number;
|
|
24
|
-
}
|
|
12
|
+
export type Histogram<K extends keyof any, V> = Partial<Record<K, V>>;
|
|
25
13
|
|
|
26
14
|
export interface NodeAttackAnalyzerShipConfig extends NightFleetConditions {
|
|
27
15
|
formation?: Formation;
|
|
@@ -42,106 +30,169 @@ export interface NodeAttackAnalysis {
|
|
|
42
30
|
night_fleet_cutin: FleetCutinReport<NightAttackStyle>[];
|
|
43
31
|
}
|
|
44
32
|
|
|
45
|
-
export interface
|
|
46
|
-
|
|
47
|
-
|
|
33
|
+
export interface CompAnalyzerConfig {
|
|
34
|
+
engagement: Engagement;
|
|
35
|
+
formation: Formation;
|
|
36
|
+
anti_air_cutin: number | null;
|
|
37
|
+
ship_anti_air_resist: number;
|
|
38
|
+
fleet_anti_air_resist: number;
|
|
39
|
+
left_night_fleet_conditions: NightFleetConditions;
|
|
40
|
+
right_night_fleet_conditions: NightFleetConditions;
|
|
48
41
|
}
|
|
49
42
|
|
|
50
|
-
export interface
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
rank3: number;
|
|
54
|
-
rank2: number;
|
|
55
|
-
rank1: number;
|
|
56
|
-
total: number;
|
|
43
|
+
export interface CompNightAnalysis {
|
|
44
|
+
night_cutin: CompNightCutinAnalysis;
|
|
45
|
+
fleet_cutin: FleetCutinReport<NightAttackStyle>[];
|
|
57
46
|
}
|
|
58
47
|
|
|
59
|
-
export interface
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
exp?: number;
|
|
63
|
-
stars?: number;
|
|
48
|
+
export interface CompDayAnalysis {
|
|
49
|
+
day_cutin: CompDayCutinAnalysis;
|
|
50
|
+
fleet_cutin: FleetCutinReport<ShellingStyle>[];
|
|
64
51
|
}
|
|
65
52
|
|
|
66
|
-
export interface
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
g5?: GearState;
|
|
72
|
-
gx?: GearState;
|
|
53
|
+
export interface CompAnalysis {
|
|
54
|
+
day: CompDayAnalysis;
|
|
55
|
+
night: CompNightAnalysis;
|
|
56
|
+
contact: ContactAnalysis;
|
|
57
|
+
anti_air: CompAntiAirAnalysis;
|
|
73
58
|
}
|
|
74
59
|
|
|
75
|
-
export interface
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
ss4?: number;
|
|
80
|
-
ss5?: number;
|
|
60
|
+
export interface CompAntiAirAnalysis {
|
|
61
|
+
fleet_adjusted_anti_air: number;
|
|
62
|
+
ships: AntiAirReport[];
|
|
63
|
+
anti_air_cutin_chance: [number, number][];
|
|
81
64
|
}
|
|
82
65
|
|
|
83
|
-
export interface
|
|
84
|
-
id?: string;
|
|
66
|
+
export interface AntiAirReport {
|
|
85
67
|
ship_id: number;
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
armor_mod?: number;
|
|
95
|
-
anti_air_mod?: number;
|
|
96
|
-
evasion_mod?: number;
|
|
97
|
-
asw_mod?: number;
|
|
98
|
-
los_mod?: number;
|
|
99
|
-
luck_mod?: number;
|
|
100
|
-
day_gunfit_accuracy?: number;
|
|
101
|
-
night_gunfit_accuracy?: number;
|
|
102
|
-
custom_power_mods?: CustomPowerModifiers;
|
|
68
|
+
role: Role;
|
|
69
|
+
index: number;
|
|
70
|
+
adjusted_anti_air: number | null;
|
|
71
|
+
proportional_shotdown_rate: number | null;
|
|
72
|
+
fixed_shotdown_number: number | null;
|
|
73
|
+
guaranteed: number | null;
|
|
74
|
+
anti_air_cutin_chance: [number, number][];
|
|
75
|
+
anti_air_propellant_barrage_chance: number | null;
|
|
103
76
|
}
|
|
104
77
|
|
|
105
|
-
export type
|
|
78
|
+
export type OrgType =
|
|
79
|
+
| "Single"
|
|
80
|
+
| "CarrierTaskForce"
|
|
81
|
+
| "SurfaceTaskForce"
|
|
82
|
+
| "TransportEscort"
|
|
83
|
+
| "EnemySingle"
|
|
84
|
+
| "EnemyCombined";
|
|
106
85
|
|
|
107
|
-
export type
|
|
86
|
+
export type GearVecInput = GearInput[];
|
|
108
87
|
|
|
109
|
-
export interface
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
88
|
+
export interface GearInput {
|
|
89
|
+
gear_id: number;
|
|
90
|
+
types: GearTypeIdArray;
|
|
91
|
+
firepower: number;
|
|
92
|
+
torpedo: number;
|
|
93
|
+
anti_air: number;
|
|
94
|
+
armor: number;
|
|
95
|
+
evasion: number;
|
|
96
|
+
asw: number;
|
|
97
|
+
los: number;
|
|
98
|
+
bombing: number;
|
|
99
|
+
accuracy: number;
|
|
100
|
+
range: number;
|
|
101
|
+
radius: number;
|
|
102
|
+
stars: number;
|
|
103
|
+
ace: number;
|
|
114
104
|
}
|
|
115
105
|
|
|
116
|
-
export interface
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
rules: EquippabilityRule[];
|
|
106
|
+
export interface ShipInput {
|
|
107
|
+
ship_id: number;
|
|
108
|
+
ctype: number;
|
|
109
|
+
stype: number;
|
|
110
|
+
yomi: string;
|
|
122
111
|
}
|
|
123
112
|
|
|
124
|
-
export interface
|
|
125
|
-
|
|
126
|
-
|
|
113
|
+
export interface EBonuses {
|
|
114
|
+
firepower: number;
|
|
115
|
+
torpedo: number;
|
|
116
|
+
anti_air: number;
|
|
117
|
+
armor: number;
|
|
118
|
+
evasion: number;
|
|
119
|
+
asw: number;
|
|
120
|
+
los: number;
|
|
121
|
+
bombing: number;
|
|
122
|
+
accuracy: number;
|
|
123
|
+
range: number;
|
|
127
124
|
}
|
|
128
125
|
|
|
129
|
-
export interface
|
|
130
|
-
|
|
131
|
-
|
|
126
|
+
export interface HitRate {
|
|
127
|
+
normal: number;
|
|
128
|
+
critical: number;
|
|
129
|
+
total: number;
|
|
132
130
|
}
|
|
133
131
|
|
|
134
|
-
export interface
|
|
135
|
-
|
|
136
|
-
|
|
132
|
+
export interface HitRateParams {
|
|
133
|
+
accuracy_term: number;
|
|
134
|
+
evasion_term: number;
|
|
135
|
+
target_morale_mod: number;
|
|
136
|
+
critical_rate_constant: number;
|
|
137
|
+
critical_percentage_bonus: number;
|
|
138
|
+
hit_percentage_bonus: number;
|
|
137
139
|
}
|
|
138
140
|
|
|
139
|
-
export interface
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
141
|
+
export interface DamageReport {
|
|
142
|
+
miss_damage_min: number;
|
|
143
|
+
miss_damage_max: number;
|
|
144
|
+
normal_damage_min: number;
|
|
145
|
+
normal_damage_max: number;
|
|
146
|
+
critical_damage_min: number;
|
|
147
|
+
critical_damage_max: number;
|
|
148
|
+
normal_scratch_rate: number;
|
|
149
|
+
critical_scratch_rate: number;
|
|
150
|
+
damage_density: Histogram<number, number>;
|
|
151
|
+
damage_state_density: Histogram<DamageState, number>;
|
|
152
|
+
}
|
|
153
|
+
|
|
154
|
+
export interface ContactAnalysis {
|
|
155
|
+
single: DayContactChance[] | null;
|
|
156
|
+
combined: DayContactChance[] | null;
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
export interface DayContactChance {
|
|
160
|
+
air_state: AirState;
|
|
161
|
+
trigger_rate: number;
|
|
162
|
+
rank3: number;
|
|
163
|
+
rank2: number;
|
|
164
|
+
rank1: number;
|
|
165
|
+
total: number;
|
|
166
|
+
}
|
|
167
|
+
|
|
168
|
+
export type NodeId = string;
|
|
169
|
+
|
|
170
|
+
export interface NodeState {
|
|
171
|
+
map?: number;
|
|
172
|
+
node?: NodeId;
|
|
173
|
+
phase?: number;
|
|
174
|
+
debuff?: boolean;
|
|
175
|
+
disable_historical_mod?: boolean;
|
|
176
|
+
}
|
|
177
|
+
|
|
178
|
+
export interface OrgState {
|
|
179
|
+
id?: string;
|
|
180
|
+
f1?: FleetState;
|
|
181
|
+
f2?: FleetState;
|
|
182
|
+
f3?: FleetState;
|
|
183
|
+
f4?: FleetState;
|
|
184
|
+
a1?: AirSquadronState;
|
|
185
|
+
a2?: AirSquadronState;
|
|
186
|
+
a3?: AirSquadronState;
|
|
187
|
+
hq_level?: number;
|
|
188
|
+
org_type?: OrgType;
|
|
189
|
+
sortie?: FleetKey;
|
|
190
|
+
route_sup?: FleetKey;
|
|
191
|
+
boss_sup?: FleetKey;
|
|
143
192
|
}
|
|
144
193
|
|
|
194
|
+
export type FleetKey = "f1" | "f2" | "f3" | "f4";
|
|
195
|
+
|
|
145
196
|
export type ShipCategory =
|
|
146
197
|
| "Battleship"
|
|
147
198
|
| "AircraftCarrier"
|
|
@@ -179,153 +230,120 @@ export type ShipType =
|
|
|
179
230
|
|
|
180
231
|
export type SlotSizeVec = (number | null)[];
|
|
181
232
|
|
|
182
|
-
export
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
233
|
+
export interface AttackAnalysis {
|
|
234
|
+
attacker_is_player: boolean;
|
|
235
|
+
attacker_ship_id: number;
|
|
236
|
+
target_ship_id: number;
|
|
237
|
+
historical_params: HistoricalParams;
|
|
238
|
+
day: ActionReport<DayPhaseAttackStyle>;
|
|
239
|
+
night: ActionReport<NightPhaseAttackStyle>;
|
|
240
|
+
closing_torpedo: ActionReport<TorpedoAttackStyle>;
|
|
241
|
+
opening_asw: ActionReport<AswAttackStyle>;
|
|
242
|
+
support_shelling: ActionReport<SupportShellingStyle>;
|
|
192
243
|
}
|
|
193
244
|
|
|
194
|
-
export
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
245
|
+
export type SingleFormation =
|
|
246
|
+
| "LineAhead"
|
|
247
|
+
| "DoubleLine"
|
|
248
|
+
| "Diamond"
|
|
249
|
+
| "Echelon"
|
|
250
|
+
| "LineAbreast"
|
|
251
|
+
| "Vanguard";
|
|
198
252
|
|
|
199
|
-
export
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
}
|
|
205
|
-
|
|
206
|
-
export interface FleetState {
|
|
207
|
-
id?: string;
|
|
208
|
-
len?: number;
|
|
209
|
-
s1?: ShipState;
|
|
210
|
-
s2?: ShipState;
|
|
211
|
-
s3?: ShipState;
|
|
212
|
-
s4?: ShipState;
|
|
213
|
-
s5?: ShipState;
|
|
214
|
-
s6?: ShipState;
|
|
215
|
-
s7?: ShipState;
|
|
216
|
-
}
|
|
217
|
-
|
|
218
|
-
export type MoraleState = "Sparkle" | "Normal" | "Orange" | "Red";
|
|
219
|
-
|
|
220
|
-
export type Role = "Main" | "Escort";
|
|
253
|
+
export type CombinedFormation =
|
|
254
|
+
| "Cruising1"
|
|
255
|
+
| "Cruising2"
|
|
256
|
+
| "Cruising3"
|
|
257
|
+
| "Cruising4";
|
|
221
258
|
|
|
222
|
-
export type
|
|
259
|
+
export type Formation = SingleFormation | CombinedFormation;
|
|
223
260
|
|
|
224
|
-
export type
|
|
261
|
+
export type GearAttr =
|
|
262
|
+
| "Unknown"
|
|
263
|
+
| "HighAngleMount"
|
|
264
|
+
| "NightFighter"
|
|
265
|
+
| "NightAttacker"
|
|
266
|
+
| "HeavyBomber"
|
|
267
|
+
| "NightRecon"
|
|
268
|
+
| "MainGun"
|
|
269
|
+
| "Radar"
|
|
270
|
+
| "SurfaceRadar"
|
|
271
|
+
| "AirRadar"
|
|
272
|
+
| "DepthChargeProjector"
|
|
273
|
+
| "SynergisticDepthCharge"
|
|
274
|
+
| "AntiSubMortar"
|
|
275
|
+
| "AntiSubWeapon"
|
|
276
|
+
| "ApDepthCharge"
|
|
277
|
+
| "AntiSubAircraft"
|
|
278
|
+
| "LateModelBowTorpedo"
|
|
279
|
+
| "Seaplane"
|
|
280
|
+
| "CbAircraft"
|
|
281
|
+
| "LbAircraft"
|
|
282
|
+
| "JetAircraft"
|
|
283
|
+
| "Fighter"
|
|
284
|
+
| "Recon"
|
|
285
|
+
| "ObservationSeaplane"
|
|
286
|
+
| "CbFighterBomber"
|
|
287
|
+
| "AntiInstDiveBomber"
|
|
288
|
+
| "CbSwordfish"
|
|
289
|
+
| "SemiNightPlane"
|
|
290
|
+
| "HighAltitudeInterceptor";
|
|
225
291
|
|
|
226
|
-
export interface
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
yomi: string;
|
|
230
|
-
stype: number;
|
|
231
|
-
ctype: number;
|
|
232
|
-
nationality?: number;
|
|
233
|
-
sort_id?: number;
|
|
234
|
-
max_hp: StatInterval;
|
|
235
|
-
firepower: StatInterval;
|
|
236
|
-
armor: StatInterval;
|
|
237
|
-
torpedo: StatInterval;
|
|
238
|
-
evasion: StatInterval;
|
|
239
|
-
anti_air: StatInterval;
|
|
240
|
-
asw: StatInterval;
|
|
241
|
-
los: StatInterval;
|
|
242
|
-
luck: StatInterval;
|
|
243
|
-
torpedo_accuracy?: number;
|
|
244
|
-
basic_evasion_term?: number;
|
|
245
|
-
speed: number;
|
|
246
|
-
range?: number;
|
|
247
|
-
fuel?: number;
|
|
248
|
-
ammo?: number;
|
|
249
|
-
next_id?: number;
|
|
250
|
-
next_level?: number;
|
|
251
|
-
slotnum: number;
|
|
252
|
-
slots: SlotSizeVec;
|
|
253
|
-
stock: GearState[];
|
|
254
|
-
speed_group?: SpeedGroup;
|
|
255
|
-
useful?: boolean;
|
|
292
|
+
export interface MoveShipPayload {
|
|
293
|
+
current: [string, string, ShipKey];
|
|
294
|
+
target: [string | null, string, ShipKey];
|
|
256
295
|
}
|
|
257
296
|
|
|
258
|
-
export
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
evasion_mod?: number;
|
|
297
|
+
export interface EquippabilityRule {
|
|
298
|
+
ship: CompiledEvaler;
|
|
299
|
+
keys?: string[];
|
|
300
|
+
include?: string;
|
|
301
|
+
exclude?: string;
|
|
264
302
|
}
|
|
265
303
|
|
|
266
|
-
export interface
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
asw: FormationCombatModifiersDef;
|
|
273
|
-
night: FormationCombatModifiersDef;
|
|
274
|
-
support_shelling: FormationCombatModifiersDef;
|
|
304
|
+
export interface MasterEquippability {
|
|
305
|
+
equip_stype: EquipStype[];
|
|
306
|
+
equip_exslot: number[];
|
|
307
|
+
equip_ship: MstEquipShip[];
|
|
308
|
+
equip_exslot_ship: MstEquipExslotShip[];
|
|
309
|
+
rules: EquippabilityRule[];
|
|
275
310
|
}
|
|
276
311
|
|
|
277
|
-
export
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
export interface AntiAirCutinDef {
|
|
282
|
-
id: number;
|
|
283
|
-
type_factor: number | null;
|
|
284
|
-
multiplier: number | null;
|
|
285
|
-
guaranteed: number | null;
|
|
286
|
-
sequential: boolean | null;
|
|
312
|
+
export interface MstEquipExslotShip {
|
|
313
|
+
api_slotitem_id: number;
|
|
314
|
+
api_ship_ids: number[];
|
|
287
315
|
}
|
|
288
316
|
|
|
289
|
-
export interface
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
type_factor: number | null;
|
|
293
|
-
power_mod: number | null;
|
|
294
|
-
accuracy_mod: number | null;
|
|
317
|
+
export interface MstEquipShip {
|
|
318
|
+
api_ship_id: number;
|
|
319
|
+
api_equip_type: number[];
|
|
295
320
|
}
|
|
296
321
|
|
|
297
|
-
export interface
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
phase?: number;
|
|
301
|
-
debuff?: boolean;
|
|
302
|
-
ship?: CompiledEvaler;
|
|
303
|
-
enemy?: CompiledEvaler;
|
|
304
|
-
power_mod?: number;
|
|
305
|
-
accuracy_mod?: number;
|
|
306
|
-
evasion_mod?: number;
|
|
322
|
+
export interface EquipStype {
|
|
323
|
+
id: number;
|
|
324
|
+
equip_type: number[];
|
|
307
325
|
}
|
|
308
326
|
|
|
309
|
-
export interface
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
327
|
+
export interface BattleConditions {
|
|
328
|
+
org_type: OrgType;
|
|
329
|
+
role: Role;
|
|
330
|
+
ship_index: number;
|
|
331
|
+
fleet_len: number;
|
|
332
|
+
formation: Formation;
|
|
333
|
+
fleet_los_mod: number | null;
|
|
334
|
+
night_conditions: NightFleetConditions;
|
|
313
335
|
}
|
|
314
336
|
|
|
315
|
-
export interface
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
type_factor: number | null;
|
|
319
|
-
power_mod: number | null;
|
|
320
|
-
accuracy_mod: number | null;
|
|
337
|
+
export interface NightConditions {
|
|
338
|
+
player?: NightFleetConditions;
|
|
339
|
+
enemy?: NightFleetConditions;
|
|
321
340
|
}
|
|
322
341
|
|
|
323
|
-
export interface
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
historical_bonuses: HistoricalBonusDef[];
|
|
342
|
+
export interface NightFleetConditions {
|
|
343
|
+
night_contact_rank?: ContactRank | null;
|
|
344
|
+
starshell_index?: number | null;
|
|
345
|
+
searchlight_index?: number | null;
|
|
346
|
+
activates_large_searchlight?: boolean;
|
|
329
347
|
}
|
|
330
348
|
|
|
331
349
|
export type DayCutin =
|
|
@@ -369,27 +387,67 @@ export type DayCutinLike = DayCutin | FleetCutin;
|
|
|
369
387
|
|
|
370
388
|
export type NightCutinLike = NightCutin | FleetCutin;
|
|
371
389
|
|
|
372
|
-
export interface
|
|
373
|
-
|
|
374
|
-
|
|
390
|
+
export interface GearState {
|
|
391
|
+
id?: string;
|
|
392
|
+
gear_id: number;
|
|
393
|
+
exp?: number;
|
|
394
|
+
stars?: number;
|
|
375
395
|
}
|
|
376
396
|
|
|
377
|
-
export interface
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
hit_rate_params: HitRateParams | null;
|
|
385
|
-
damage: DamageReport | null;
|
|
397
|
+
export interface GearVecState {
|
|
398
|
+
g1?: GearState;
|
|
399
|
+
g2?: GearState;
|
|
400
|
+
g3?: GearState;
|
|
401
|
+
g4?: GearState;
|
|
402
|
+
g5?: GearState;
|
|
403
|
+
gx?: GearState;
|
|
386
404
|
}
|
|
387
405
|
|
|
388
|
-
export type
|
|
406
|
+
export type MoraleState = "Sparkle" | "Normal" | "Orange" | "Red";
|
|
389
407
|
|
|
390
|
-
export type
|
|
408
|
+
export type Role = "Main" | "Escort";
|
|
391
409
|
|
|
392
|
-
export
|
|
410
|
+
export interface SlotSizeVecState {
|
|
411
|
+
ss1?: number;
|
|
412
|
+
ss2?: number;
|
|
413
|
+
ss3?: number;
|
|
414
|
+
ss4?: number;
|
|
415
|
+
ss5?: number;
|
|
416
|
+
}
|
|
417
|
+
|
|
418
|
+
export interface ShipState extends GearVecState, SlotSizeVecState {
|
|
419
|
+
id?: string;
|
|
420
|
+
ship_id: number;
|
|
421
|
+
level?: number;
|
|
422
|
+
current_hp?: number;
|
|
423
|
+
morale?: number;
|
|
424
|
+
ammo?: number;
|
|
425
|
+
fuel?: number;
|
|
426
|
+
max_hp_mod?: number;
|
|
427
|
+
firepower_mod?: number;
|
|
428
|
+
torpedo_mod?: number;
|
|
429
|
+
armor_mod?: number;
|
|
430
|
+
anti_air_mod?: number;
|
|
431
|
+
evasion_mod?: number;
|
|
432
|
+
asw_mod?: number;
|
|
433
|
+
los_mod?: number;
|
|
434
|
+
luck_mod?: number;
|
|
435
|
+
day_gunfit_accuracy?: number;
|
|
436
|
+
night_gunfit_accuracy?: number;
|
|
437
|
+
custom_power_mods?: CustomPowerModifiers;
|
|
438
|
+
}
|
|
439
|
+
|
|
440
|
+
export type ShipKey = "s1" | "s2" | "s3" | "s4" | "s5" | "s6" | "s7";
|
|
441
|
+
|
|
442
|
+
export type SpeedGroup = "A" | "B1" | "B2" | "C";
|
|
443
|
+
|
|
444
|
+
export type CompiledEvaler = string;
|
|
445
|
+
|
|
446
|
+
export interface SupportShellingSimulatorParams {
|
|
447
|
+
attacker_formation?: Formation;
|
|
448
|
+
target_formation?: Formation;
|
|
449
|
+
engagement: Engagement;
|
|
450
|
+
}
|
|
393
451
|
|
|
394
452
|
export interface SimulatorResult {
|
|
395
453
|
items: SimulatorResultItem[];
|
|
@@ -403,34 +461,160 @@ export interface SimulatorResultItem {
|
|
|
403
461
|
damage_state_map: Record<DamageState, number>;
|
|
404
462
|
}
|
|
405
463
|
|
|
406
|
-
export
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
464
|
+
export interface ActionReport<T> {
|
|
465
|
+
data: Record<string, AttackReport<T>>;
|
|
466
|
+
damage_state_density: Histogram<DamageState, number> | null;
|
|
467
|
+
is_active: boolean;
|
|
468
|
+
}
|
|
469
|
+
|
|
470
|
+
export type AirWaveType = "Jet" | "LandBase" | "Carrier";
|
|
471
|
+
|
|
472
|
+
export type AswAttackType = "DepthCharge" | "Aerial";
|
|
473
|
+
|
|
474
|
+
export type ShellingType = "Normal" | "Aerial";
|
|
475
|
+
|
|
476
|
+
export type NightAttackType = "Normal" | "Swordfish" | "Aerial";
|
|
477
|
+
|
|
478
|
+
export type SupportShellingType = ShellingType;
|
|
479
|
+
|
|
480
|
+
export type AttackType =
|
|
481
|
+
| { t: "Asw"; c: AswAttackType }
|
|
482
|
+
| { t: "Shelling"; c: ShellingType }
|
|
483
|
+
| { t: "Night"; c: NightAttackType }
|
|
484
|
+
| { t: "Torpedo" }
|
|
485
|
+
| { t: "SupportShelling"; c: SupportShellingType };
|
|
486
|
+
|
|
487
|
+
export type DayPhaseAttackType =
|
|
488
|
+
| { t: "Shelling"; c: ShellingType }
|
|
489
|
+
| { t: "Asw"; c: AswAttackType };
|
|
490
|
+
|
|
491
|
+
export type NightPhaseAttackType =
|
|
492
|
+
| { t: "Night"; c: NightAttackType }
|
|
493
|
+
| { t: "Asw"; c: AswAttackType };
|
|
494
|
+
|
|
495
|
+
export type TorpedoAttackType = null;
|
|
496
|
+
|
|
497
|
+
export interface FormationCombatModifiersDef {
|
|
498
|
+
power_mod?: number;
|
|
499
|
+
accuracy_mod?: number;
|
|
500
|
+
evasion_mod?: number;
|
|
501
|
+
}
|
|
502
|
+
|
|
503
|
+
export interface FormationDef {
|
|
504
|
+
tag: Formation;
|
|
505
|
+
protection_rate: number | null;
|
|
506
|
+
fleet_anti_air_mod: number;
|
|
507
|
+
shelling: FormationCombatModifiersDef;
|
|
508
|
+
torpedo: FormationCombatModifiersDef;
|
|
509
|
+
asw: FormationCombatModifiersDef;
|
|
510
|
+
night: FormationCombatModifiersDef;
|
|
511
|
+
support_shelling: FormationCombatModifiersDef;
|
|
512
|
+
}
|
|
513
|
+
|
|
514
|
+
export type NestedFormationDef =
|
|
515
|
+
| FormationDef
|
|
516
|
+
| { top_half: FormationDef; bottom_half: FormationDef };
|
|
517
|
+
|
|
518
|
+
export interface AntiAirCutinDef {
|
|
519
|
+
id: number;
|
|
520
|
+
type_factor: number | null;
|
|
521
|
+
multiplier: number | null;
|
|
522
|
+
guaranteed: number | null;
|
|
523
|
+
sequential: boolean | null;
|
|
524
|
+
}
|
|
525
|
+
|
|
526
|
+
export interface DayCutinDef {
|
|
527
|
+
tag: DayCutin;
|
|
528
|
+
hits: number;
|
|
529
|
+
type_factor: number | null;
|
|
530
|
+
power_mod: number | null;
|
|
531
|
+
accuracy_mod: number | null;
|
|
532
|
+
}
|
|
533
|
+
|
|
534
|
+
export interface HistoricalBonusDef {
|
|
535
|
+
map?: number;
|
|
536
|
+
node?: CompiledEvaler;
|
|
537
|
+
phase?: number;
|
|
538
|
+
debuff?: boolean;
|
|
539
|
+
ship?: CompiledEvaler;
|
|
540
|
+
enemy?: CompiledEvaler;
|
|
541
|
+
power_mod?: number;
|
|
542
|
+
accuracy_mod?: number;
|
|
543
|
+
evasion_mod?: number;
|
|
544
|
+
}
|
|
545
|
+
|
|
546
|
+
export interface HistoricalParams {
|
|
547
|
+
power_mod: number;
|
|
548
|
+
accuracy_mod: number;
|
|
549
|
+
target_evasion_mod: number;
|
|
550
|
+
}
|
|
551
|
+
|
|
552
|
+
export interface NightCutinDef {
|
|
553
|
+
tag: NightCutin;
|
|
554
|
+
hits: number;
|
|
555
|
+
type_factor: number | null;
|
|
556
|
+
power_mod: number | null;
|
|
557
|
+
accuracy_mod: number | null;
|
|
558
|
+
}
|
|
559
|
+
|
|
560
|
+
export interface BattleDefinitions {
|
|
561
|
+
formation: Record<Formation, NestedFormationDef>;
|
|
562
|
+
anti_air_cutin: Record<number, AntiAirCutinDef>;
|
|
563
|
+
day_cutin: Record<DayCutin, DayCutinDef>;
|
|
564
|
+
night_cutin: Record<NightCutin, NightCutinDef>;
|
|
565
|
+
historical_bonuses: HistoricalBonusDef[];
|
|
566
|
+
}
|
|
567
|
+
|
|
568
|
+
export interface FleetState {
|
|
569
|
+
id?: string;
|
|
570
|
+
len?: number;
|
|
571
|
+
s1?: ShipState;
|
|
572
|
+
s2?: ShipState;
|
|
573
|
+
s3?: ShipState;
|
|
574
|
+
s4?: ShipState;
|
|
575
|
+
s5?: ShipState;
|
|
576
|
+
s6?: ShipState;
|
|
577
|
+
s7?: ShipState;
|
|
578
|
+
}
|
|
579
|
+
|
|
580
|
+
export type Side = "Player" | "Enemy";
|
|
581
|
+
|
|
582
|
+
export type Align = "Left" | "Right";
|
|
583
|
+
|
|
584
|
+
export interface MasterShip {
|
|
585
|
+
ship_id: number;
|
|
410
586
|
name: string;
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
587
|
+
yomi: string;
|
|
588
|
+
stype: number;
|
|
589
|
+
ctype: number;
|
|
590
|
+
nationality?: number;
|
|
591
|
+
sort_id?: number;
|
|
592
|
+
max_hp: StatInterval;
|
|
593
|
+
firepower: StatInterval;
|
|
594
|
+
armor: StatInterval;
|
|
595
|
+
torpedo: StatInterval;
|
|
596
|
+
evasion: StatInterval;
|
|
597
|
+
anti_air: StatInterval;
|
|
598
|
+
asw: StatInterval;
|
|
599
|
+
los: StatInterval;
|
|
600
|
+
luck: StatInterval;
|
|
601
|
+
torpedo_accuracy?: number;
|
|
602
|
+
basic_evasion_term?: number;
|
|
603
|
+
speed: number;
|
|
425
604
|
range?: number;
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
605
|
+
fuel?: number;
|
|
606
|
+
ammo?: number;
|
|
607
|
+
next_id?: number;
|
|
608
|
+
next_level?: number;
|
|
609
|
+
slotnum: number;
|
|
610
|
+
slots: SlotSizeVec;
|
|
611
|
+
stock: GearState[];
|
|
612
|
+
speed_group?: SpeedGroup;
|
|
613
|
+
useful?: boolean;
|
|
432
614
|
}
|
|
433
615
|
|
|
616
|
+
export type StatInterval = [number | null, number | null];
|
|
617
|
+
|
|
434
618
|
export interface AttackPower {
|
|
435
619
|
precap: number;
|
|
436
620
|
is_capped: boolean;
|
|
@@ -456,6 +640,29 @@ export interface AttackPowerParams {
|
|
|
456
640
|
custom_mods: CustomPowerModifiers;
|
|
457
641
|
}
|
|
458
642
|
|
|
643
|
+
export interface NightContactChance {
|
|
644
|
+
rank1: number;
|
|
645
|
+
rank2: number;
|
|
646
|
+
rank3: number;
|
|
647
|
+
}
|
|
648
|
+
|
|
649
|
+
export interface CompNightCutinAnalysis {
|
|
650
|
+
night_contact_chance: NightContactChance;
|
|
651
|
+
ships: ShipNightCutinAnalysis[];
|
|
652
|
+
}
|
|
653
|
+
|
|
654
|
+
export interface ShipNightCutinAnalysis {
|
|
655
|
+
ship_id: number;
|
|
656
|
+
index: number;
|
|
657
|
+
normal: NightCutinActionReport;
|
|
658
|
+
chuuha: NightCutinActionReport;
|
|
659
|
+
}
|
|
660
|
+
|
|
661
|
+
export interface NightCutinActionReport
|
|
662
|
+
extends ActionReport<NightPhaseAttackStyle> {
|
|
663
|
+
cutin_term: number | null;
|
|
664
|
+
}
|
|
665
|
+
|
|
459
666
|
export type AirSquadronMode = "Sortie" | "AirDefense";
|
|
460
667
|
|
|
461
668
|
export interface AirSquadronState extends GearVecState, SlotSizeVecState {
|
|
@@ -463,16 +670,32 @@ export interface AirSquadronState extends GearVecState, SlotSizeVecState {
|
|
|
463
670
|
mode?: AirSquadronMode;
|
|
464
671
|
}
|
|
465
672
|
|
|
466
|
-
export
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
|
|
470
|
-
| "AirDenial"
|
|
471
|
-
| "AirIncapability";
|
|
673
|
+
export interface AttackPowerModifier {
|
|
674
|
+
a?: number;
|
|
675
|
+
b?: number;
|
|
676
|
+
}
|
|
472
677
|
|
|
473
|
-
export
|
|
678
|
+
export interface SpecialEnemyModifiers {
|
|
679
|
+
precap_general_mod: AttackPowerModifier;
|
|
680
|
+
stype_mod: AttackPowerModifier;
|
|
681
|
+
landing_craft_synergy_mod: AttackPowerModifier;
|
|
682
|
+
toku_daihatsu_tank_mod: AttackPowerModifier;
|
|
683
|
+
m4a1dd_mod: AttackPowerModifier;
|
|
684
|
+
honi_mod: AttackPowerModifier;
|
|
685
|
+
postcap_general_mod: AttackPowerModifier;
|
|
686
|
+
pt_mod: AttackPowerModifier;
|
|
687
|
+
}
|
|
474
688
|
|
|
475
|
-
export
|
|
689
|
+
export interface CustomPowerModifiers {
|
|
690
|
+
precap_mod?: AttackPowerModifier;
|
|
691
|
+
postcap_mod?: AttackPowerModifier;
|
|
692
|
+
basic_power_mod?: AttackPowerModifier;
|
|
693
|
+
historical_mod?: AttackPowerModifier;
|
|
694
|
+
}
|
|
695
|
+
|
|
696
|
+
export type ContactRank = "Rank1" | "Rank2" | "Rank3";
|
|
697
|
+
|
|
698
|
+
export type DamageState = "Normal" | "Shouha" | "Chuuha" | "Taiha" | "Sunk";
|
|
476
699
|
|
|
477
700
|
export type GearType =
|
|
478
701
|
| "Unknown"
|
|
@@ -550,9 +773,83 @@ export type GearCategory =
|
|
|
550
773
|
| "LandBased"
|
|
551
774
|
| "Misc";
|
|
552
775
|
|
|
776
|
+
export interface ShipConditions extends ShipPosition {
|
|
777
|
+
formation?: Formation;
|
|
778
|
+
amagiri_index?: number | null;
|
|
779
|
+
}
|
|
780
|
+
|
|
781
|
+
export type GearTypeIdArray = [number, number, number, number, number];
|
|
782
|
+
|
|
783
|
+
export interface MasterGear {
|
|
784
|
+
gear_id: number;
|
|
785
|
+
name: string;
|
|
786
|
+
types: GearTypeIdArray;
|
|
787
|
+
special_type?: number;
|
|
788
|
+
max_hp?: number;
|
|
789
|
+
firepower?: number;
|
|
790
|
+
armor?: number;
|
|
791
|
+
torpedo?: number;
|
|
792
|
+
anti_air?: number;
|
|
793
|
+
speed?: number;
|
|
794
|
+
bombing?: number;
|
|
795
|
+
asw?: number;
|
|
796
|
+
los?: number;
|
|
797
|
+
luck?: number;
|
|
798
|
+
accuracy?: number;
|
|
799
|
+
evasion?: number;
|
|
800
|
+
range?: number;
|
|
801
|
+
radius?: number;
|
|
802
|
+
cost?: number;
|
|
803
|
+
improvable?: boolean;
|
|
804
|
+
ship_anti_air_resist?: number;
|
|
805
|
+
fleet_anti_air_resist?: number;
|
|
806
|
+
historical_aircraft_group?: number;
|
|
807
|
+
}
|
|
808
|
+
|
|
809
|
+
export interface ShipAnalyzerConfig {
|
|
810
|
+
air_state?: AirState;
|
|
811
|
+
engagement?: Engagement;
|
|
812
|
+
left?: AttackAnalyzerShipConfig;
|
|
813
|
+
right?: AttackAnalyzerShipConfig;
|
|
814
|
+
}
|
|
815
|
+
|
|
816
|
+
export interface AttackReport<T> {
|
|
817
|
+
style: T;
|
|
818
|
+
proc_rate: number | null;
|
|
819
|
+
attack_power: AttackPower | null;
|
|
820
|
+
attack_power_params: AttackPowerParams | null;
|
|
821
|
+
hits: number;
|
|
822
|
+
hit_rate: HitRate | null;
|
|
823
|
+
hit_rate_params: HitRateParams | null;
|
|
824
|
+
damage: DamageReport | null;
|
|
825
|
+
}
|
|
826
|
+
|
|
827
|
+
export type AirState =
|
|
828
|
+
| "AirSupremacy"
|
|
829
|
+
| "AirSuperiority"
|
|
830
|
+
| "AirParity"
|
|
831
|
+
| "AirDenial"
|
|
832
|
+
| "AirIncapability";
|
|
833
|
+
|
|
834
|
+
export type AirStateRank = "Rank0" | "Rank1" | "Rank2" | "Rank3";
|
|
835
|
+
|
|
836
|
+
export interface ShipMeta {
|
|
837
|
+
id: string;
|
|
838
|
+
ship_id: number;
|
|
839
|
+
}
|
|
840
|
+
|
|
841
|
+
export interface FleetMeta {
|
|
842
|
+
id: string;
|
|
843
|
+
len: number;
|
|
844
|
+
ships: [string, ShipMeta | null][];
|
|
845
|
+
}
|
|
846
|
+
|
|
847
|
+
export interface CompMeta {
|
|
848
|
+
fleets: Record<FleetType, FleetMeta>;
|
|
849
|
+
}
|
|
850
|
+
|
|
553
851
|
export type ShipAttr =
|
|
554
852
|
| "Unknown"
|
|
555
|
-
| "Abyssal"
|
|
556
853
|
| "NightCarrier"
|
|
557
854
|
| "Installation"
|
|
558
855
|
| "RoyalNavy"
|
|
@@ -570,35 +867,22 @@ export type ShipAttr =
|
|
|
570
867
|
| "FrenchBattleshipPrincess"
|
|
571
868
|
| "DockPrincess";
|
|
572
869
|
|
|
573
|
-
export
|
|
574
|
-
|
|
575
|
-
|
|
576
|
-
|
|
577
|
-
|
|
578
|
-
|
|
579
|
-
|
|
580
|
-
|
|
581
|
-
|
|
582
|
-
|
|
583
|
-
|
|
584
|
-
|
|
585
|
-
|
|
586
|
-
|
|
587
|
-
toku_daihatsu_tank_mod: AttackPowerModifier;
|
|
588
|
-
m4a1dd_mod: AttackPowerModifier;
|
|
589
|
-
honi_mod: AttackPowerModifier;
|
|
590
|
-
postcap_general_mod: AttackPowerModifier;
|
|
591
|
-
pt_mod: AttackPowerModifier;
|
|
592
|
-
}
|
|
593
|
-
|
|
594
|
-
export interface CustomPowerModifiers {
|
|
595
|
-
precap_mod?: AttackPowerModifier;
|
|
596
|
-
postcap_mod?: AttackPowerModifier;
|
|
597
|
-
basic_power_mod?: AttackPowerModifier;
|
|
598
|
-
historical_mod?: AttackPowerModifier;
|
|
599
|
-
}
|
|
870
|
+
export type SpecialEnemyType =
|
|
871
|
+
| "None"
|
|
872
|
+
| "SoftSkinned"
|
|
873
|
+
| "Pillbox"
|
|
874
|
+
| "IsolatedIsland"
|
|
875
|
+
| "SupplyDepot"
|
|
876
|
+
| "NewSupplyDepot"
|
|
877
|
+
| "HarbourSummerPrincess"
|
|
878
|
+
| "PtImp"
|
|
879
|
+
| "BattleshipSummerPrincess"
|
|
880
|
+
| "HeavyCruiserSummerPrincess"
|
|
881
|
+
| "FrenchBattleshipPrincess"
|
|
882
|
+
| "AnchorageWaterDemonVacationMode"
|
|
883
|
+
| "DockPrincess";
|
|
600
884
|
|
|
601
|
-
export type
|
|
885
|
+
export type FhResult<T> = { Ok: T } | { Err: string };
|
|
602
886
|
|
|
603
887
|
export interface MasterData extends MasterBattleDefinitions {
|
|
604
888
|
created_at: number;
|
|
@@ -616,178 +900,34 @@ export interface NationalityDef {
|
|
|
616
900
|
}
|
|
617
901
|
|
|
618
902
|
export interface MasterAttrRule<T> {
|
|
619
|
-
tag: T;
|
|
620
|
-
name: string;
|
|
621
|
-
expr: CompiledEvaler;
|
|
622
|
-
}
|
|
623
|
-
|
|
624
|
-
export interface MasterIBonuses {
|
|
625
|
-
shelling_power: MasterIBonusRule[];
|
|
626
|
-
shelling_accuracy: MasterIBonusRule[];
|
|
627
|
-
shelling_aerial_power: MasterIBonusRule[];
|
|
628
|
-
torpedo_power: MasterIBonusRule[];
|
|
629
|
-
torpedo_accuracy: MasterIBonusRule[];
|
|
630
|
-
torpedo_evasion: MasterIBonusRule[];
|
|
631
|
-
asw_power: MasterIBonusRule[];
|
|
632
|
-
asw_accuracy: MasterIBonusRule[];
|
|
633
|
-
night_power: MasterIBonusRule[];
|
|
634
|
-
night_aerial_power: MasterIBonusRule[];
|
|
635
|
-
night_accuracy: MasterIBonusRule[];
|
|
636
|
-
defense_power: MasterIBonusRule[];
|
|
637
|
-
contact_selection: MasterIBonusRule[];
|
|
638
|
-
fighter_power: MasterIBonusRule[];
|
|
639
|
-
ship_anti_air: MasterIBonusRule[];
|
|
640
|
-
fleet_anti_air: MasterIBonusRule[];
|
|
641
|
-
elos: MasterIBonusRule[];
|
|
642
|
-
}
|
|
643
|
-
|
|
644
|
-
export interface MasterIBonusRule {
|
|
645
|
-
expr: CompiledEvaler;
|
|
646
|
-
formula: CompiledEvaler;
|
|
647
|
-
}
|
|
648
|
-
|
|
649
|
-
export interface NightContactChance {
|
|
650
|
-
rank1: number;
|
|
651
|
-
rank2: number;
|
|
652
|
-
rank3: number;
|
|
653
|
-
}
|
|
654
|
-
|
|
655
|
-
export interface CompNightCutinAnalysis {
|
|
656
|
-
night_contact_chance: NightContactChance;
|
|
657
|
-
ships: ShipNightCutinAnalysis[];
|
|
658
|
-
}
|
|
659
|
-
|
|
660
|
-
export interface ShipNightCutinAnalysis {
|
|
661
|
-
ship_id: number;
|
|
662
|
-
index: number;
|
|
663
|
-
normal: NightCutinActionReport;
|
|
664
|
-
chuuha: NightCutinActionReport;
|
|
665
|
-
}
|
|
666
|
-
|
|
667
|
-
export interface NightCutinActionReport
|
|
668
|
-
extends ActionReport<NightPhaseAttackStyle> {
|
|
669
|
-
cutin_term: number | null;
|
|
670
|
-
}
|
|
671
|
-
|
|
672
|
-
export interface FleetCutinReport<T> {
|
|
673
|
-
cutin: FleetCutin;
|
|
674
|
-
rate: number | null;
|
|
675
|
-
formation: Formation;
|
|
676
|
-
attacks: FleetCutinAttackReport<T>[];
|
|
677
|
-
}
|
|
678
|
-
|
|
679
|
-
export interface FleetCutinAttackReport<T> extends AttackReport<T> {
|
|
680
|
-
index: number;
|
|
681
|
-
ship_id: number;
|
|
682
|
-
power_mod: number;
|
|
683
|
-
}
|
|
684
|
-
|
|
685
|
-
export type AswAttackType = "DepthCharge" | "Aerial";
|
|
686
|
-
|
|
687
|
-
export type ShellingType = "Normal" | "Aerial";
|
|
688
|
-
|
|
689
|
-
export type NightAttackType = "Normal" | "Swordfish" | "Aerial";
|
|
690
|
-
|
|
691
|
-
export type SupportShellingType = ShellingType;
|
|
692
|
-
|
|
693
|
-
export type AttackType =
|
|
694
|
-
| { t: "Asw"; c: AswAttackType }
|
|
695
|
-
| { t: "Shelling"; c: ShellingType }
|
|
696
|
-
| { t: "Night"; c: NightAttackType }
|
|
697
|
-
| { t: "Torpedo" }
|
|
698
|
-
| { t: "SupportShelling"; c: SupportShellingType };
|
|
699
|
-
|
|
700
|
-
export type DayPhaseAttackType =
|
|
701
|
-
| { t: "Shelling"; c: ShellingType }
|
|
702
|
-
| { t: "Asw"; c: AswAttackType };
|
|
703
|
-
|
|
704
|
-
export type NightPhaseAttackType =
|
|
705
|
-
| { t: "Night"; c: NightAttackType }
|
|
706
|
-
| { t: "Asw"; c: AswAttackType };
|
|
707
|
-
|
|
708
|
-
export type TorpedoAttackType = null;
|
|
709
|
-
|
|
710
|
-
export type GearAttr =
|
|
711
|
-
| "Unknown"
|
|
712
|
-
| "Abyssal"
|
|
713
|
-
| "HighAngleMount"
|
|
714
|
-
| "NightFighter"
|
|
715
|
-
| "NightAttacker"
|
|
716
|
-
| "HeavyBomber"
|
|
717
|
-
| "NightRecon"
|
|
718
|
-
| "MainGun"
|
|
719
|
-
| "Radar"
|
|
720
|
-
| "SurfaceRadar"
|
|
721
|
-
| "AirRadar"
|
|
722
|
-
| "DepthChargeProjector"
|
|
723
|
-
| "SynergisticDepthCharge"
|
|
724
|
-
| "AntiSubMortar"
|
|
725
|
-
| "AntiSubWeapon"
|
|
726
|
-
| "ApDepthCharge"
|
|
727
|
-
| "AntiSubAircraft"
|
|
728
|
-
| "LateModelBowTorpedo"
|
|
729
|
-
| "Seaplane"
|
|
730
|
-
| "CbAircraft"
|
|
731
|
-
| "LbAircraft"
|
|
732
|
-
| "JetAircraft"
|
|
733
|
-
| "Fighter"
|
|
734
|
-
| "Recon"
|
|
735
|
-
| "ObservationSeaplane"
|
|
736
|
-
| "CbFighterBomber"
|
|
737
|
-
| "AntiInstDiveBomber"
|
|
738
|
-
| "CbSwordfish"
|
|
739
|
-
| "SemiNightPlane"
|
|
740
|
-
| "HighAltitudeInterceptor";
|
|
741
|
-
|
|
742
|
-
export interface ShipMeta {
|
|
743
|
-
id: string;
|
|
744
|
-
ship_id: number;
|
|
745
|
-
}
|
|
746
|
-
|
|
747
|
-
export interface FleetMeta {
|
|
748
|
-
id: string;
|
|
749
|
-
len: number;
|
|
750
|
-
ships: [string, ShipMeta | null][];
|
|
751
|
-
}
|
|
752
|
-
|
|
753
|
-
export interface CompMeta {
|
|
754
|
-
fleets: Record<FleetType, FleetMeta>;
|
|
755
|
-
}
|
|
756
|
-
|
|
757
|
-
export type OrgType =
|
|
758
|
-
| "Single"
|
|
759
|
-
| "CarrierTaskForce"
|
|
760
|
-
| "SurfaceTaskForce"
|
|
761
|
-
| "TransportEscort"
|
|
762
|
-
| "EnemySingle"
|
|
763
|
-
| "EnemyCombined";
|
|
764
|
-
|
|
765
|
-
export interface ShipPosition {
|
|
766
|
-
org_type?: OrgType;
|
|
767
|
-
fleet_type?: FleetType;
|
|
768
|
-
fleet_len?: number;
|
|
769
|
-
index?: number;
|
|
903
|
+
tag: T;
|
|
904
|
+
name: string;
|
|
905
|
+
expr: CompiledEvaler;
|
|
770
906
|
}
|
|
771
907
|
|
|
772
|
-
export
|
|
773
|
-
|
|
774
|
-
|
|
775
|
-
|
|
776
|
-
|
|
777
|
-
|
|
778
|
-
|
|
779
|
-
|
|
780
|
-
|
|
781
|
-
|
|
782
|
-
|
|
783
|
-
|
|
784
|
-
|
|
785
|
-
|
|
908
|
+
export interface MasterIBonuses {
|
|
909
|
+
shelling_power: MasterIBonusRule[];
|
|
910
|
+
shelling_accuracy: MasterIBonusRule[];
|
|
911
|
+
shelling_aerial_power: MasterIBonusRule[];
|
|
912
|
+
torpedo_power: MasterIBonusRule[];
|
|
913
|
+
torpedo_accuracy: MasterIBonusRule[];
|
|
914
|
+
torpedo_evasion: MasterIBonusRule[];
|
|
915
|
+
asw_power: MasterIBonusRule[];
|
|
916
|
+
asw_accuracy: MasterIBonusRule[];
|
|
917
|
+
night_power: MasterIBonusRule[];
|
|
918
|
+
night_aerial_power: MasterIBonusRule[];
|
|
919
|
+
night_accuracy: MasterIBonusRule[];
|
|
920
|
+
defense_power: MasterIBonusRule[];
|
|
921
|
+
contact_selection: MasterIBonusRule[];
|
|
922
|
+
fighter_power: MasterIBonusRule[];
|
|
923
|
+
ship_anti_air: MasterIBonusRule[];
|
|
924
|
+
fleet_anti_air: MasterIBonusRule[];
|
|
925
|
+
elos: MasterIBonusRule[];
|
|
926
|
+
}
|
|
786
927
|
|
|
787
|
-
export interface
|
|
788
|
-
|
|
789
|
-
|
|
790
|
-
engagement: Engagement;
|
|
928
|
+
export interface MasterIBonusRule {
|
|
929
|
+
expr: CompiledEvaler;
|
|
930
|
+
formula: CompiledEvaler;
|
|
791
931
|
}
|
|
792
932
|
|
|
793
933
|
export interface MasterBattleDefinitions {
|
|
@@ -798,11 +938,17 @@ export interface MasterBattleDefinitions {
|
|
|
798
938
|
historical_bonuses?: HistoricalBonusDef[];
|
|
799
939
|
}
|
|
800
940
|
|
|
801
|
-
export interface
|
|
802
|
-
|
|
803
|
-
|
|
804
|
-
|
|
805
|
-
|
|
941
|
+
export interface FleetCutinReport<T> {
|
|
942
|
+
cutin: FleetCutin;
|
|
943
|
+
rate: number | null;
|
|
944
|
+
formation: Formation;
|
|
945
|
+
attacks: FleetCutinAttackReport<T>[];
|
|
946
|
+
}
|
|
947
|
+
|
|
948
|
+
export interface FleetCutinAttackReport<T> extends AttackReport<T> {
|
|
949
|
+
index: number;
|
|
950
|
+
ship_id: number;
|
|
951
|
+
power_mod: number;
|
|
806
952
|
}
|
|
807
953
|
|
|
808
954
|
export interface CompDayCutinAnalysis {
|
|
@@ -825,78 +971,10 @@ export interface DayCutinReport extends ActionReport<DayPhaseAttackStyle> {
|
|
|
825
971
|
observation_term: number | null;
|
|
826
972
|
}
|
|
827
973
|
|
|
828
|
-
export interface
|
|
829
|
-
|
|
830
|
-
|
|
831
|
-
|
|
832
|
-
historical_params: HistoricalParams;
|
|
833
|
-
day: ActionReport<DayPhaseAttackStyle>;
|
|
834
|
-
night: ActionReport<NightPhaseAttackStyle>;
|
|
835
|
-
closing_torpedo: ActionReport<TorpedoAttackStyle>;
|
|
836
|
-
opening_asw: ActionReport<AswAttackStyle>;
|
|
837
|
-
support_shelling: ActionReport<SupportShellingStyle>;
|
|
838
|
-
}
|
|
839
|
-
|
|
840
|
-
export type FleetType = "Main" | "Escort" | "RouteSup" | "BossSup";
|
|
841
|
-
|
|
842
|
-
export interface OrgState {
|
|
843
|
-
id?: string;
|
|
844
|
-
f1?: FleetState;
|
|
845
|
-
f2?: FleetState;
|
|
846
|
-
f3?: FleetState;
|
|
847
|
-
f4?: FleetState;
|
|
848
|
-
a1?: AirSquadronState;
|
|
849
|
-
a2?: AirSquadronState;
|
|
850
|
-
a3?: AirSquadronState;
|
|
851
|
-
hq_level?: number;
|
|
852
|
-
org_type?: OrgType;
|
|
853
|
-
sortie?: FleetKey;
|
|
854
|
-
route_sup?: FleetKey;
|
|
855
|
-
boss_sup?: FleetKey;
|
|
856
|
-
}
|
|
857
|
-
|
|
858
|
-
export type FleetKey = "f1" | "f2" | "f3" | "f4";
|
|
859
|
-
|
|
860
|
-
export type Histogram<K extends keyof any, V> = Partial<Record<K, V>>;
|
|
861
|
-
|
|
862
|
-
export type GearVecInput = GearInput[];
|
|
863
|
-
|
|
864
|
-
export interface GearInput {
|
|
865
|
-
gear_id: number;
|
|
866
|
-
types: GearTypeIdArray;
|
|
867
|
-
firepower: number;
|
|
868
|
-
torpedo: number;
|
|
869
|
-
anti_air: number;
|
|
870
|
-
armor: number;
|
|
871
|
-
evasion: number;
|
|
872
|
-
asw: number;
|
|
873
|
-
los: number;
|
|
874
|
-
bombing: number;
|
|
875
|
-
accuracy: number;
|
|
876
|
-
range: number;
|
|
877
|
-
radius: number;
|
|
878
|
-
stars: number;
|
|
879
|
-
ace: number;
|
|
880
|
-
}
|
|
881
|
-
|
|
882
|
-
export interface ShipInput {
|
|
883
|
-
ship_id: number;
|
|
884
|
-
ctype: number;
|
|
885
|
-
stype: number;
|
|
886
|
-
yomi: string;
|
|
887
|
-
}
|
|
888
|
-
|
|
889
|
-
export interface EBonuses {
|
|
890
|
-
firepower: number;
|
|
891
|
-
torpedo: number;
|
|
892
|
-
anti_air: number;
|
|
893
|
-
armor: number;
|
|
894
|
-
evasion: number;
|
|
895
|
-
asw: number;
|
|
896
|
-
los: number;
|
|
897
|
-
bombing: number;
|
|
898
|
-
accuracy: number;
|
|
899
|
-
range: number;
|
|
974
|
+
export interface AttackAnalyzerShipConfig
|
|
975
|
+
extends ShipConditions,
|
|
976
|
+
NightFleetConditions {
|
|
977
|
+
fleet_los_mod?: number | null;
|
|
900
978
|
}
|
|
901
979
|
|
|
902
980
|
export interface ShellingStyle {
|
|
@@ -936,94 +1014,15 @@ export interface SupportShellingStyle {
|
|
|
936
1014
|
attack_type: SupportShellingType;
|
|
937
1015
|
}
|
|
938
1016
|
|
|
939
|
-
export type
|
|
940
|
-
| "LineAhead"
|
|
941
|
-
| "DoubleLine"
|
|
942
|
-
| "Diamond"
|
|
943
|
-
| "Echelon"
|
|
944
|
-
| "LineAbreast"
|
|
945
|
-
| "Vanguard";
|
|
946
|
-
|
|
947
|
-
export type CombinedFormation =
|
|
948
|
-
| "Cruising1"
|
|
949
|
-
| "Cruising2"
|
|
950
|
-
| "Cruising3"
|
|
951
|
-
| "Cruising4";
|
|
952
|
-
|
|
953
|
-
export type Formation = SingleFormation | CombinedFormation;
|
|
954
|
-
|
|
955
|
-
export interface DamageReport {
|
|
956
|
-
miss_damage_min: number;
|
|
957
|
-
miss_damage_max: number;
|
|
958
|
-
normal_damage_min: number;
|
|
959
|
-
normal_damage_max: number;
|
|
960
|
-
critical_damage_min: number;
|
|
961
|
-
critical_damage_max: number;
|
|
962
|
-
normal_scratch_rate: number;
|
|
963
|
-
critical_scratch_rate: number;
|
|
964
|
-
damage_density: Histogram<number, number>;
|
|
965
|
-
damage_state_density: Histogram<DamageState, number>;
|
|
966
|
-
}
|
|
967
|
-
|
|
968
|
-
export interface CompAnalyzerConfig {
|
|
969
|
-
engagement: Engagement;
|
|
970
|
-
formation: Formation;
|
|
971
|
-
anti_air_cutin: number | null;
|
|
972
|
-
ship_anti_air_resist: number;
|
|
973
|
-
fleet_anti_air_resist: number;
|
|
974
|
-
left_night_fleet_conditions: NightFleetConditions;
|
|
975
|
-
right_night_fleet_conditions: NightFleetConditions;
|
|
976
|
-
}
|
|
977
|
-
|
|
978
|
-
export interface CompNightAnalysis {
|
|
979
|
-
night_cutin: CompNightCutinAnalysis;
|
|
980
|
-
fleet_cutin: FleetCutinReport<NightAttackStyle>[];
|
|
981
|
-
}
|
|
982
|
-
|
|
983
|
-
export interface CompDayAnalysis {
|
|
984
|
-
day_cutin: CompDayCutinAnalysis;
|
|
985
|
-
fleet_cutin: FleetCutinReport<ShellingStyle>[];
|
|
986
|
-
}
|
|
987
|
-
|
|
988
|
-
export interface CompAnalysis {
|
|
989
|
-
day: CompDayAnalysis;
|
|
990
|
-
night: CompNightAnalysis;
|
|
991
|
-
contact: ContactAnalysis;
|
|
992
|
-
anti_air: CompAntiAirAnalysis;
|
|
993
|
-
}
|
|
994
|
-
|
|
995
|
-
export interface AttackAnalyzerShipConfig
|
|
996
|
-
extends ShipConditions,
|
|
997
|
-
NightFleetConditions {
|
|
998
|
-
fleet_los_mod?: number | null;
|
|
999
|
-
}
|
|
1000
|
-
|
|
1001
|
-
export interface CompAntiAirAnalysis {
|
|
1002
|
-
fleet_adjusted_anti_air: number;
|
|
1003
|
-
ships: AntiAirReport[];
|
|
1004
|
-
anti_air_cutin_chance: [number, number][];
|
|
1005
|
-
}
|
|
1006
|
-
|
|
1007
|
-
export interface AntiAirReport {
|
|
1008
|
-
ship_id: number;
|
|
1009
|
-
role: Role;
|
|
1010
|
-
index: number;
|
|
1011
|
-
adjusted_anti_air: number | null;
|
|
1012
|
-
proportional_shotdown_rate: number | null;
|
|
1013
|
-
fixed_shotdown_number: number | null;
|
|
1014
|
-
guaranteed: number | null;
|
|
1015
|
-
anti_air_cutin_chance: [number, number][];
|
|
1016
|
-
anti_air_propellant_barrage_chance: number | null;
|
|
1017
|
-
}
|
|
1017
|
+
export type Engagement = "GreenT" | "Parallel" | "HeadOn" | "RedT";
|
|
1018
1018
|
|
|
1019
|
-
export type
|
|
1019
|
+
export type FleetType = "Main" | "Escort" | "RouteSup" | "BossSup";
|
|
1020
1020
|
|
|
1021
|
-
export interface
|
|
1022
|
-
|
|
1023
|
-
|
|
1024
|
-
|
|
1025
|
-
|
|
1026
|
-
disable_historical_mod?: boolean;
|
|
1021
|
+
export interface ShipPosition {
|
|
1022
|
+
org_type?: OrgType;
|
|
1023
|
+
fleet_type?: FleetType;
|
|
1024
|
+
fleet_len?: number;
|
|
1025
|
+
index?: number;
|
|
1027
1026
|
}
|
|
1028
1027
|
|
|
1029
1028
|
/**
|
|
@@ -1761,20 +1760,6 @@ export class Org {
|
|
|
1761
1760
|
*/
|
|
1762
1761
|
export class Ship {
|
|
1763
1762
|
free(): void;
|
|
1764
|
-
/**
|
|
1765
|
-
* @returns {number | undefined}
|
|
1766
|
-
*/
|
|
1767
|
-
state_day_gunfit_accuracy(): number | undefined;
|
|
1768
|
-
/**
|
|
1769
|
-
* @returns {number | undefined}
|
|
1770
|
-
*/
|
|
1771
|
-
state_night_gunfit_accuracy(): number | undefined;
|
|
1772
|
-
/**
|
|
1773
|
-
* フィット砲補正
|
|
1774
|
-
* @param {boolean} is_night
|
|
1775
|
-
* @returns {number}
|
|
1776
|
-
*/
|
|
1777
|
-
gunfit_accuracy(is_night: boolean): number;
|
|
1778
1763
|
/**
|
|
1779
1764
|
* @returns {Ship}
|
|
1780
1765
|
*/
|
|
@@ -1992,6 +1977,20 @@ export class Ship {
|
|
|
1992
1977
|
* @returns {number | undefined}
|
|
1993
1978
|
*/
|
|
1994
1979
|
ohko_power(): number | undefined;
|
|
1980
|
+
/**
|
|
1981
|
+
* @returns {number | undefined}
|
|
1982
|
+
*/
|
|
1983
|
+
state_day_gunfit_accuracy(): number | undefined;
|
|
1984
|
+
/**
|
|
1985
|
+
* @returns {number | undefined}
|
|
1986
|
+
*/
|
|
1987
|
+
state_night_gunfit_accuracy(): number | undefined;
|
|
1988
|
+
/**
|
|
1989
|
+
* フィット砲補正
|
|
1990
|
+
* @param {boolean} is_night
|
|
1991
|
+
* @returns {number}
|
|
1992
|
+
*/
|
|
1993
|
+
gunfit_accuracy(is_night: boolean): number;
|
|
1995
1994
|
/**
|
|
1996
1995
|
*/
|
|
1997
1996
|
readonly accuracy: number;
|