fleethub-core 1.12.19 → 1.12.20

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.
@@ -5,6 +5,31 @@ export type CompiledEvaler = string;
5
5
 
6
6
  export type Histogram<K extends keyof any, V> = Partial<Record<K, V>>;
7
7
 
8
+ /**
9
+ * `DamageReport` にどこまでの分布を持たせるか。
10
+ */
11
+ export type DensityDetail = "Total" | "WithNoPenetration";
12
+
13
+ /**
14
+ * 特殊敵種別
15
+ */
16
+ export type SpecialEnemyType =
17
+ | "None"
18
+ | "SoftSkinned"
19
+ | "Pillbox"
20
+ | "IsolatedIsland"
21
+ | "SupplyDepot"
22
+ | "NewSupplyDepot"
23
+ | "HarbourSummerPrincess"
24
+ | "PtImp"
25
+ | "BattleshipSummerPrincess"
26
+ | "HeavyCruiserSummerPrincess"
27
+ | "FrenchBattleshipPrincess"
28
+ | "AnchorageWaterDemonVacationMode"
29
+ | "DockPrincess"
30
+ | "SummerAircraftCarrierDemon"
31
+ | "EuropeanWaterPrincess";
32
+
8
33
  export interface ActionReport<T> {
9
34
  data: Record<string, AttackReport<T>>;
10
35
  damage_state_density: Histogram<DamageState, number> | null;
@@ -193,6 +218,16 @@ export interface DamageReport {
193
218
  normal_scratch_rate: number;
194
219
  critical_scratch_rate: number;
195
220
  damage_density: Histogram<number, number>;
221
+ /**
222
+ * 1発も装甲を貫通しなかった場合の分布。`damage_density` との差が
223
+ * 「少なくとも1発貫通した場合」になる。
224
+ *
225
+ * 割合ダメージを 0 ダメージ扱いにした分布との差では代わりにならない。多段では
226
+ * 「割合+貫通」の結果が貫通ぶんだけ大きなダメージ値へ動くので、その位置まで
227
+ * 割合として数えてしまう。
228
+ *
229
+ * 両者は加算順が違うため、差は丸め誤差の幅で負になり得る。
230
+ */
196
231
  damage_density_no_penetration: Histogram<number, number> | null;
197
232
  damage_state_density: Histogram<DamageState, number>;
198
233
  }
@@ -775,8 +810,6 @@ export type DayPhaseAttackType =
775
810
  | { t: "Shelling"; c: ShellingType }
776
811
  | { t: "Asw"; c: AswAttackType };
777
812
 
778
- export type DensityDetail = "Total" | "WithNoPenetration";
779
-
780
813
  export type Engagement = "GreenT" | "Parallel" | "HeadOn" | "RedT";
781
814
 
782
815
  export type FhResult<T> = { Ok: T } | { Err: string };
@@ -1035,23 +1068,6 @@ export type SingleFormation =
1035
1068
 
1036
1069
  export type SlotSizeVec = (number | null)[];
1037
1070
 
1038
- export type SpecialEnemyType =
1039
- | "None"
1040
- | "SoftSkinned"
1041
- | "Pillbox"
1042
- | "IsolatedIsland"
1043
- | "SupplyDepot"
1044
- | "NewSupplyDepot"
1045
- | "HarbourSummerPrincess"
1046
- | "PtImp"
1047
- | "BattleshipSummerPrincess"
1048
- | "HeavyCruiserSummerPrincess"
1049
- | "FrenchBattleshipPrincess"
1050
- | "AnchorageWaterDemonVacationMode"
1051
- | "DockPrincess"
1052
- | "SummerAircraftCarrierDemon"
1053
- | "EuropeanWaterPrincess";
1054
-
1055
1071
  export type SpeedGroup = "A" | "B1" | "B2" | "C";
1056
1072
 
1057
1073
  export type StatInterval = [number | null, number | null];
@@ -1073,9 +1089,9 @@ export class AirSquadron {
1073
1089
  * 行動半径
1074
1090
  */
1075
1091
  radius(): number;
1092
+ mode: AirSquadronMode;
1076
1093
  hash: bigint;
1077
1094
  id: string;
1078
- mode: AirSquadronMode;
1079
1095
  }
1080
1096
 
1081
1097
  export class Analyzer {
@@ -1144,13 +1160,13 @@ export class Comp {
1144
1160
  * 輸送物資量(TP)
1145
1161
  */
1146
1162
  transport_point(): number;
1163
+ readonly org_type: OrgType;
1147
1164
  get boss_sup(): Fleet | undefined;
1148
1165
  set boss_sup(value: Fleet | null | undefined);
1149
1166
  get escort(): Fleet | undefined;
1150
1167
  set escort(value: Fleet | null | undefined);
1151
1168
  readonly hq_level: number;
1152
1169
  main: Fleet;
1153
- readonly org_type: OrgType;
1154
1170
  get route_sup(): Fleet | undefined;
1155
1171
  set route_sup(value: Fleet | null | undefined);
1156
1172
  }
@@ -1252,6 +1268,7 @@ export class Gear {
1252
1268
  readonly ace: number;
1253
1269
  readonly anti_bomber: number;
1254
1270
  readonly gear_type_id: number;
1271
+ readonly gear_type: GearType;
1255
1272
  readonly icon_id: number;
1256
1273
  readonly interception: number;
1257
1274
  readonly special_type: number;
@@ -1267,7 +1284,6 @@ export class Gear {
1267
1284
  readonly firepower: number;
1268
1285
  readonly fleet_anti_air_resist: number;
1269
1286
  readonly gear_id: number;
1270
- readonly gear_type: GearType;
1271
1287
  readonly hash: bigint;
1272
1288
  id: string;
1273
1289
  readonly improvable: boolean;
@@ -1323,10 +1339,10 @@ export class Org {
1323
1339
  main_ship_ids(): Uint16Array;
1324
1340
  ship_keys(key: FleetKey): string[];
1325
1341
  side(): Side;
1326
- readonly boss_sup: FleetKey | undefined;
1327
1342
  readonly hash: bigint;
1328
1343
  readonly hq_level: number;
1329
1344
  id: string;
1345
+ readonly boss_sup: FleetKey | undefined;
1330
1346
  readonly org_type: OrgType;
1331
1347
  readonly route_sup: FleetKey | undefined;
1332
1348
  readonly sortie: FleetKey;
@@ -1409,8 +1425,6 @@ export class Ship {
1409
1425
  readonly level: number;
1410
1426
  readonly morale: number;
1411
1427
  readonly ship_id: number;
1412
- readonly ship_type: ShipType;
1413
- slots: SlotSizeVec;
1414
1428
  readonly accuracy: number;
1415
1429
  readonly anti_air: number | undefined;
1416
1430
  readonly armor: number | undefined;
@@ -1436,6 +1450,8 @@ export class Ship {
1436
1450
  readonly next_id: number;
1437
1451
  readonly range: number | undefined;
1438
1452
  readonly remodel_rank: number;
1453
+ slots: SlotSizeVec;
1454
+ readonly ship_type: ShipType;
1439
1455
  readonly slotnum: number;
1440
1456
  readonly sort_id: number;
1441
1457
  readonly speed: number;