@kar-mi/spirit-vale-tools-combat 3.3.6 → 5.0.0
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/dist/events/combat-decoding.d.ts +41 -0
- package/dist/events/combat-decoding.d.ts.map +1 -0
- package/dist/{combat-tracker.d.ts → events/combat-events.d.ts} +29 -112
- package/dist/events/combat-events.d.ts.map +1 -0
- package/dist/events/damage-observer.d.ts +12 -0
- package/dist/events/damage-observer.d.ts.map +1 -0
- package/dist/events/decoded-fields.d.ts +5 -0
- package/dist/events/decoded-fields.d.ts.map +1 -0
- package/dist/events/effect-display.d.ts.map +1 -0
- package/dist/events/generated/combat-semantics.d.ts +7 -0
- package/dist/events/generated/combat-semantics.d.ts.map +1 -0
- package/dist/events/inference/recovery-style.d.ts +5 -0
- package/dist/events/inference/recovery-style.d.ts.map +1 -0
- package/dist/history/domain.d.ts +1 -1
- package/dist/history/domain.d.ts.map +1 -1
- package/dist/history/importer.d.ts.map +1 -1
- package/dist/history/store.d.ts +8 -4
- package/dist/history/store.d.ts.map +1 -1
- package/dist/index.d.ts +26 -20
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1057 -613
- package/dist/reducers/damage.d.ts +10 -2
- package/dist/reducers/damage.d.ts.map +1 -1
- package/dist/reducers/meter-group.d.ts +21 -0
- package/dist/reducers/meter-group.d.ts.map +1 -0
- package/dist/reducers/meter.d.ts +3 -3
- package/dist/reducers/meter.d.ts.map +1 -1
- package/dist/reducers/rows.d.ts +2 -2
- package/dist/reducers/rows.d.ts.map +1 -1
- package/dist/{snapshot.d.ts → reducers/snapshot.d.ts} +16 -10
- package/dist/reducers/snapshot.d.ts.map +1 -0
- package/dist/{live-log.d.ts → replay/live-log.d.ts} +4 -3
- package/dist/replay/live-log.d.ts.map +1 -0
- package/dist/{replay-capture.d.ts → replay/replay-capture.d.ts} +4 -7
- package/dist/replay/replay-capture.d.ts.map +1 -0
- package/dist/replay/replay-summary.d.ts.map +1 -0
- package/dist/{replay.d.ts → replay/replay.d.ts} +4 -4
- package/dist/replay/replay.d.ts.map +1 -0
- package/dist/{live-combat.d.ts → runtime/live-combat.d.ts} +6 -7
- package/dist/runtime/live-combat.d.ts.map +1 -0
- package/dist/testing/combat-packets.d.ts +28 -0
- package/dist/testing/combat-packets.d.ts.map +1 -0
- package/dist/{actor-directory.d.ts → tracking/actor-directory.d.ts} +18 -0
- package/dist/tracking/actor-directory.d.ts.map +1 -0
- package/dist/tracking/boss-catalog.d.ts +4 -0
- package/dist/tracking/boss-catalog.d.ts.map +1 -0
- package/dist/tracking/combat-tracker.d.ts +76 -0
- package/dist/tracking/combat-tracker.d.ts.map +1 -0
- package/dist/tracking/monster-identity.d.ts +32 -0
- package/dist/tracking/monster-identity.d.ts.map +1 -0
- package/dist/tracking/position-tracker.d.ts.map +1 -0
- package/dist/{status-tracker.d.ts → tracking/status-tracker.d.ts} +1 -1
- package/dist/tracking/status-tracker.d.ts.map +1 -0
- package/dist/tracking/summon-tracker.d.ts +47 -0
- package/dist/tracking/summon-tracker.d.ts.map +1 -0
- package/package.json +6 -6
- package/dist/actor-directory.d.ts.map +0 -1
- package/dist/boss-catalog.d.ts +0 -6
- package/dist/boss-catalog.d.ts.map +0 -1
- package/dist/combat-tracker.d.ts.map +0 -1
- package/dist/effect-display.d.ts.map +0 -1
- package/dist/live-combat.d.ts.map +0 -1
- package/dist/live-log.d.ts.map +0 -1
- package/dist/position-tracker.d.ts.map +0 -1
- package/dist/replay-capture.d.ts.map +0 -1
- package/dist/replay-summary.d.ts.map +0 -1
- package/dist/replay.d.ts.map +0 -1
- package/dist/snapshot.d.ts.map +0 -1
- package/dist/status-tracker.d.ts.map +0 -1
- /package/dist/{effect-display.d.ts → events/effect-display.d.ts} +0 -0
- /package/dist/{replay-summary.d.ts → replay/replay-summary.d.ts} +0 -0
- /package/dist/{position-tracker.d.ts → tracking/position-tracker.d.ts} +0 -0
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import type { DecodedFishNetPacket, FishNetDecodedValue, FishNetRpcMap } from "@kar-mi/spirit-vale-tools-capture";
|
|
2
|
+
import type { FishNetCombatMonsterIdentityEvent, FishNetHealingTraits } from "./combat-events.ts";
|
|
3
|
+
export interface SummonCalibrationEntry {
|
|
4
|
+
skillId: string;
|
|
5
|
+
level: number;
|
|
6
|
+
}
|
|
7
|
+
export interface LoginEffectEntry {
|
|
8
|
+
statusId: string;
|
|
9
|
+
level: number;
|
|
10
|
+
remainingSeconds?: number;
|
|
11
|
+
stacks: number;
|
|
12
|
+
}
|
|
13
|
+
export interface BondSyncEntry {
|
|
14
|
+
otherId: number;
|
|
15
|
+
skillId: string;
|
|
16
|
+
caster: boolean;
|
|
17
|
+
}
|
|
18
|
+
export interface DamageSource {
|
|
19
|
+
sourceId: string;
|
|
20
|
+
sourceLabel: string;
|
|
21
|
+
}
|
|
22
|
+
export declare function matchesBehaviour(packet: DecodedFishNetPacket, expected: string): boolean;
|
|
23
|
+
export declare function stringField(packet: DecodedFishNetPacket, name: string): string | undefined;
|
|
24
|
+
export declare function requiredNumberField(packet: DecodedFishNetPacket, name: string): number;
|
|
25
|
+
export declare function requiredBooleanField(packet: DecodedFishNetPacket, name: string): boolean;
|
|
26
|
+
export declare function requiredVectorField(packet: DecodedFishNetPacket, name: string): number[];
|
|
27
|
+
export declare function decodedFieldRecord(packet: DecodedFishNetPacket): Record<string, FishNetDecodedValue>;
|
|
28
|
+
export declare function healthComponentIndices(map: FishNetRpcMap | undefined): ReadonlySet<number>;
|
|
29
|
+
export declare function isCompleteRecoverPacket(packet: DecodedFishNetPacket): boolean;
|
|
30
|
+
export declare function damageSignature(tick: number, targetId: number, actorId: number, sourceId: string, value: number, hitCode: number): string;
|
|
31
|
+
export declare function drainRecoverySource(traits: FishNetHealingTraits | undefined): DamageSource;
|
|
32
|
+
export declare function resolveDamageSource(rawSourceId: string | null | undefined, damageType: number, skillLabels: ReadonlyMap<string, string>): DamageSource;
|
|
33
|
+
export declare function uniqueMonsterIdentityEvents(events: FishNetCombatMonsterIdentityEvent[]): FishNetCombatMonsterIdentityEvent[];
|
|
34
|
+
export declare function barrierSyncValues(packet: DecodedFishNetPacket): number[];
|
|
35
|
+
export declare function bondSyncEntries(packet: DecodedFishNetPacket): BondSyncEntry[] | undefined;
|
|
36
|
+
export declare function decodeFloaterSettings(payload: Buffer, start: number): NonNullable<DecodedFishNetPacket["decodedFields"]> | undefined;
|
|
37
|
+
/** Reads only the generated nested-field shape; missing, partial, or trailing data fails closed. */
|
|
38
|
+
export declare function decodedSummonCalibration(packet: DecodedFishNetPacket): SummonCalibrationEntry[] | undefined;
|
|
39
|
+
/** Reads only the generated `State.Effects` nested-field shape; missing, partial, or trailing data fails closed. */
|
|
40
|
+
export declare function decodedLoginEffects(packet: DecodedFishNetPacket): LoginEffectEntry[] | undefined;
|
|
41
|
+
//# sourceMappingURL=combat-decoding.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"combat-decoding.d.ts","sourceRoot":"","sources":["../../src/events/combat-decoding.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { FishNetDecodedValue } from "@kar-mi/spirit-vale-tools-capture";
|
|
2
2
|
import type { FishNetSkillCatalog } from "@kar-mi/spirit-vale-tools-skills";
|
|
3
|
+
import type { FishNetRecoveryStyle } from "./inference/recovery-style.ts";
|
|
3
4
|
export type FishNetCombatActionKind = "skill" | "basicAttack" | "inferred";
|
|
4
5
|
export type FishNetCombatActionPhase = "begin" | "complete" | "interrupt" | "cancel" | "inferred";
|
|
5
6
|
export type FishNetDamageAttribution = "exact" | "ambiguous" | "inferred";
|
|
@@ -28,8 +29,6 @@ export interface FishNetCombatTrackerOptions {
|
|
|
28
29
|
hitGraceTicks?: number;
|
|
29
30
|
/** Maximum age of an activation that never completes. Defaults to 900 ticks. */
|
|
30
31
|
activationMaxAgeTicks?: number;
|
|
31
|
-
/** Semantic labels for skill wire identifiers. Defaults to the current bundled build. */
|
|
32
|
-
semanticMap?: FishNetSemanticMap;
|
|
33
32
|
/** Extracted public skill metadata. Defaults to the current bundled build when available. */
|
|
34
33
|
skillCatalog?: FishNetSkillCatalog;
|
|
35
34
|
buildFingerprint?: string;
|
|
@@ -37,8 +36,6 @@ export interface FishNetCombatTrackerOptions {
|
|
|
37
36
|
actorIdentityResolver?: (actorId: number) => FishNetCombatActorIdentity | undefined;
|
|
38
37
|
/** Resolves healing mechanics for actors whose local character build is visible. */
|
|
39
38
|
healingTraitsResolver?: (actorId: number) => FishNetHealingTraits | undefined;
|
|
40
|
-
/** @deprecated Summon packets now require a verified object id; retained as an unused compatibility option. */
|
|
41
|
-
localActorIdResolver?: () => number | undefined;
|
|
42
39
|
/** Names monsters seen spawning, emitting identity lifecycle events keyed by network object id. */
|
|
43
40
|
monsterCatalog?: FishNetMonsterCatalog;
|
|
44
41
|
/** Fallback names for otherwise-anonymous bosses; game-provided identities always win. */
|
|
@@ -171,7 +168,7 @@ export interface FishNetCombatSummonEvent {
|
|
|
171
168
|
actorIdentity?: FishNetCombatActorIdentity;
|
|
172
169
|
}
|
|
173
170
|
/** A `PlayerController.FullHeal_C`, which restores an actor outright. */
|
|
174
|
-
interface FishNetCombatFullHealEvent {
|
|
171
|
+
export interface FishNetCombatFullHealEvent {
|
|
175
172
|
kind: "fullHeal";
|
|
176
173
|
rpc: "FullHeal_C";
|
|
177
174
|
tick: number;
|
|
@@ -205,110 +202,30 @@ export interface FishNetCombatHealEvent {
|
|
|
205
202
|
candidateActivationIds?: string[];
|
|
206
203
|
actorIdentity?: FishNetCombatActorIdentity;
|
|
207
204
|
}
|
|
208
|
-
export type
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
constructor(options?: FishNetCombatTrackerOptions);
|
|
233
|
-
consume(packet: DecodedFishNetPacket): FishNetCombatEvent[];
|
|
234
|
-
reset(): void;
|
|
235
|
-
private monsterIdentity;
|
|
236
|
-
/** Uses the normal monster-identity path so all consumers receive the curated boss name. */
|
|
237
|
-
private bossIdentity;
|
|
238
|
-
/**
|
|
239
|
-
* FishNet may reuse an object id in a later zone. Drop a curated boss name at every object
|
|
240
|
-
* lifetime boundary so the next boss cannot inherit the old one's identity before it casts.
|
|
241
|
-
*/
|
|
242
|
-
private bossIdentityLifecycle;
|
|
243
|
-
/**
|
|
244
|
-
* Turns the observers-facing status broadcast into the same status events as the owner-only
|
|
245
|
-
* `ApplyEffect_T`/`RemoveEffect_T` pair.
|
|
246
|
-
*
|
|
247
|
-
* This feed reports every actor in range rather than just the local player, and it repeats
|
|
248
|
-
* periodically instead of only on change, so it both widens coverage and self-heals after a
|
|
249
|
-
* dropped packet. It reports real remaining time, which the owner-only path can only approximate
|
|
250
|
-
* from the catalog. It carries no level, so the events omit one and consumers keep whatever the
|
|
251
|
-
* owner-only feed last reported.
|
|
252
|
-
*/
|
|
253
|
-
private consumeEffectDisplays;
|
|
254
|
-
/** Recovers only current-build payloads whose domain codec and component position both agree. */
|
|
255
|
-
private recoverAmbiguousCombat;
|
|
256
|
-
/**
|
|
257
|
-
* Turns the skill-icon display feed into status events.
|
|
258
|
-
*
|
|
259
|
-
* `ApplySkillDisplay_O`/`RemoveSkillDisplay_O` announce a *skill* shown on an actor - stances and
|
|
260
|
-
* auras such as `SilentEdge` that the effect feed does not report. Ids do overlap it in places
|
|
261
|
-
* (`FlowState`, `AngelicBlessing` appear on both), and this feed carries no timing at all, so it
|
|
262
|
-
* must never overwrite an expiry the effect feed established. `consumeStatus` enforces that by
|
|
263
|
-
* keeping a known expiry when an event brings none.
|
|
264
|
-
*/
|
|
265
|
-
private consumeSkillDisplay;
|
|
266
|
-
/**
|
|
267
|
-
* Login restores whichever effects were active at save time through `PlayerSave.LoadCharacter_T`'s
|
|
268
|
-
* own `State.Effects` snapshot - no other packet reports them. Unlike `ApplyEffectDisplays_O`
|
|
269
|
-
* (which repeats and self-heals), this fires once per login, so a status it lists that never gets
|
|
270
|
-
* an explicit apply afterward would otherwise never appear at all.
|
|
271
|
-
*/
|
|
272
|
-
private consumeLoginEffects;
|
|
273
|
-
/**
|
|
274
|
-
* Login restores an existing summon through `SummonSkillSync` (a `SummoningComponent` SyncType),
|
|
275
|
-
* not `CalibrateSummons_T` - that RPC only fires on a later change, so without this the overlay
|
|
276
|
-
* shows nothing for a summon that was already active when the client connected.
|
|
277
|
-
*
|
|
278
|
-
* `SummonSkillSync` lives on the summoned object's own `SummoningComponent`, not the owner's - the
|
|
279
|
-
* packet's `objectId` names the summon (e.g. one skeleton), not the actor to credit. `SummonerSync`,
|
|
280
|
-
* a sibling SyncType on that same component, is the owner reference. FishNet sends every dirty
|
|
281
|
-
* SyncType on login together, so both usually arrive in the same packet, but not always in the same
|
|
282
|
-
* order, and only a change re-sends a SyncType afterward - so `summonSkillSyncState` accumulates
|
|
283
|
-
* whichever field arrives first, per summon object, until both are known. Each summon object
|
|
284
|
-
* contributes its own +1 once (never more), so two objects reporting the same skill both count -
|
|
285
|
-
* this is per-object state, not a "have I seen this skill" flag.
|
|
286
|
-
*/
|
|
287
|
-
private consumeSummonSkillSync;
|
|
288
|
-
/**
|
|
289
|
-
* Clears a summon object's `SummonSkillSync` bookkeeping on despawn (or a respawn reusing the same
|
|
290
|
-
* network object id), so a later reused id starts fresh rather than inheriting a stale owner/skill.
|
|
291
|
-
* Also corrects the stack count for an object this tracker itself counted in, unless a
|
|
292
|
-
* `CalibrateSummons_T` snapshot has since taken over that actor's stacks (which will correct the
|
|
293
|
-
* count on its own).
|
|
294
|
-
*/
|
|
295
|
-
private consumeSummonObjectLifecycle;
|
|
296
|
-
/** Adjusts one actor's stack count for one skill by `delta` and reports the resulting total. */
|
|
297
|
-
private applySummonDelta;
|
|
298
|
-
private consumeSummonCalibration;
|
|
299
|
-
/** Diffs one summon snapshot against the actor's last known stacks and emits only the changes. */
|
|
300
|
-
private applySummonSnapshot;
|
|
301
|
-
private consumeSkill;
|
|
302
|
-
private beginAttack;
|
|
303
|
-
private consumeDamage;
|
|
304
|
-
private consumeRecover;
|
|
305
|
-
private createSelfRecovery;
|
|
306
|
-
private eligibleHealActivations;
|
|
307
|
-
private consumeStatus;
|
|
308
|
-
private createActivation;
|
|
309
|
-
private findLifecycleActivation;
|
|
310
|
-
private eligibleActivations;
|
|
311
|
-
private pruneExpired;
|
|
205
|
+
export type FishNetShieldAction = "gained" | "absorbed" | "cleared" | "reduced";
|
|
206
|
+
export interface FishNetCombatShieldEvent {
|
|
207
|
+
kind: "shield";
|
|
208
|
+
rpc: "barrierSync";
|
|
209
|
+
tick: number;
|
|
210
|
+
payloadBytes: number;
|
|
211
|
+
fields: Record<string, FishNetDecodedValue>;
|
|
212
|
+
targetId: number;
|
|
213
|
+
/** The inferred shield applier. Absent when attribution is ambiguous or unavailable. */
|
|
214
|
+
actorId?: number;
|
|
215
|
+
sourceId?: string;
|
|
216
|
+
sourceLabel?: string;
|
|
217
|
+
value: number;
|
|
218
|
+
barrierBefore: number;
|
|
219
|
+
barrierAfter: number;
|
|
220
|
+
action: FishNetShieldAction;
|
|
221
|
+
/** For `absorbed`: the incoming hit that the barrier soaked, when the tick's damage packet was seen first. */
|
|
222
|
+
incomingActorId?: number;
|
|
223
|
+
incomingSourceId?: string;
|
|
224
|
+
incomingSourceLabel?: string;
|
|
225
|
+
attribution: FishNetHealAttribution;
|
|
226
|
+
activationId?: string;
|
|
227
|
+
candidateActivationIds?: string[];
|
|
228
|
+
actorIdentity?: FishNetCombatActorIdentity;
|
|
312
229
|
}
|
|
313
|
-
export
|
|
314
|
-
//# sourceMappingURL=combat-
|
|
230
|
+
export type FishNetCombatEvent = FishNetCombatMonsterIdentityEvent | FishNetCombatActivationEvent | FishNetCombatDamageEvent | FishNetCombatDeathEvent | FishNetCombatStatusEvent | FishNetCombatSummonEvent | FishNetCombatHealEvent | FishNetCombatShieldEvent | FishNetCombatFullHealEvent;
|
|
231
|
+
//# sourceMappingURL=combat-events.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"combat-events.d.ts","sourceRoot":"","sources":["../../src/events/combat-events.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { DecodedFishNetPacket } from "@kar-mi/spirit-vale-tools-capture";
|
|
2
|
+
export interface FishNetDamageObservation {
|
|
3
|
+
kind: "damage" | "death";
|
|
4
|
+
tick: number;
|
|
5
|
+
actorId: number;
|
|
6
|
+
targetId: number;
|
|
7
|
+
value: number;
|
|
8
|
+
team: number;
|
|
9
|
+
}
|
|
10
|
+
/** Decodes only the authoritative hit identity needed by consumers that do not need attribution. */
|
|
11
|
+
export declare function observeFishNetDamagePacket(packet: DecodedFishNetPacket): FishNetDamageObservation | undefined;
|
|
12
|
+
//# sourceMappingURL=damage-observer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"damage-observer.d.ts","sourceRoot":"","sources":["../../src/events/damage-observer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,mCAAmC,CAAC;AAG9E,MAAM,WAAW,wBAAwB;IACvC,IAAI,EAAE,QAAQ,GAAG,OAAO,CAAC;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;CACd;AAED,oGAAoG;AACpG,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,oBAAoB,GAAG,wBAAwB,GAAG,SAAS,CAuB7G"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { DecodedFishNetPacket, FishNetDecodedValue } from "@kar-mi/spirit-vale-tools-capture";
|
|
2
|
+
export declare function field(packet: DecodedFishNetPacket, name: string): FishNetDecodedValue | undefined;
|
|
3
|
+
export declare function numberField(packet: DecodedFishNetPacket, name: string): number | undefined;
|
|
4
|
+
export declare function nullableStringField(packet: DecodedFishNetPacket, name: string): string | null | undefined;
|
|
5
|
+
//# sourceMappingURL=decoded-fields.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"decoded-fields.d.ts","sourceRoot":"","sources":["../../src/events/decoded-fields.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;AAEnG,wBAAgB,KAAK,CAAC,MAAM,EAAE,oBAAoB,EAAE,IAAI,EAAE,MAAM,GAAG,mBAAmB,GAAG,SAAS,CAEjG;AAED,wBAAgB,WAAW,CAAC,MAAM,EAAE,oBAAoB,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAG1F;AAED,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,oBAAoB,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,GAAG,SAAS,CAGzG"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"effect-display.d.ts","sourceRoot":"","sources":["../../src/events/effect-display.ts"],"names":[],"mappings":"AAGA,UAAU,oBAAoB;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,kCAAkC;IAClC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,uEAAuE;IACvE,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,yBAAyB;IACxC,OAAO,EAAE,oBAAoB,EAAE,CAAC;IAChC,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB;AAED,8EAA8E;AAC9E,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,MAAM,GAAG,yBAAyB,CA2C/E"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/** AUTO-GENERATED by scripts/generate-combat-semantics.ts. Do not hand-edit. */
|
|
2
|
+
export declare const COMBAT_SEMANTICS_BUILD_FINGERPRINT = "53305f369c4176d4b7644d06ad7f0cdc5c9bda6563144d0ce8cff3d12c520158";
|
|
3
|
+
export declare const DIRECT_HEALING_SKILL_IDS: Set<string>;
|
|
4
|
+
export declare const REGENERATION_SKILL_IDS: Set<string>;
|
|
5
|
+
export declare const BARRIER_SKILL_IDS: Set<string>;
|
|
6
|
+
export declare const BARRIER_STATUS_IDS: Set<string>;
|
|
7
|
+
//# sourceMappingURL=combat-semantics.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"combat-semantics.d.ts","sourceRoot":"","sources":["../../../src/events/generated/combat-semantics.ts"],"names":[],"mappings":"AAAA,gFAAgF;AAChF,eAAO,MAAM,kCAAkC,qEAAqE,CAAC;AACrH,eAAO,MAAM,wBAAwB,aAMnC,CAAC;AACH,eAAO,MAAM,sBAAsB,aAKjC,CAAC;AACH,eAAO,MAAM,iBAAiB,aAI5B,CAAC;AACH,eAAO,MAAM,kBAAkB,aAK7B,CAAC"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { DecodedFishNetPacket } from "@kar-mi/spirit-vale-tools-capture";
|
|
2
|
+
export type FishNetRecoveryStyle = "standard" | "passive-regeneration" | "drain" | "unknown";
|
|
3
|
+
/** Classifies the generated, structurally decoded FloaterSettings on HealthComponent.Recover_C. */
|
|
4
|
+
export declare function classifyFishNetRecoveryStyle(packet: Pick<DecodedFishNetPacket, "networkBehaviourType" | "rpcName" | "decodedFields">): FishNetRecoveryStyle;
|
|
5
|
+
//# sourceMappingURL=recovery-style.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"recovery-style.d.ts","sourceRoot":"","sources":["../../../src/events/inference/recovery-style.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,mCAAmC,CAAC;AAE9E,MAAM,MAAM,oBAAoB,GAAG,UAAU,GAAG,sBAAsB,GAAG,OAAO,GAAG,SAAS,CAAC;AAE7F,mGAAmG;AACnG,wBAAgB,4BAA4B,CAC1C,MAAM,EAAE,IAAI,CAAC,oBAAoB,EAAE,sBAAsB,GAAG,SAAS,GAAG,eAAe,CAAC,GACvF,oBAAoB,CAatB"}
|
package/dist/history/domain.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { ReadModelDomain } from "@kar-mi/spirit-vale-tools-sqlite";
|
|
2
2
|
/** Bump whenever the tables below change; only combat is dropped and re-indexed. */
|
|
3
|
-
export declare const COMBAT_DOMAIN_VERSION =
|
|
3
|
+
export declare const COMBAT_DOMAIN_VERSION = 8;
|
|
4
4
|
export declare const COMBAT_DOMAIN_NAME = "combat";
|
|
5
5
|
export declare function createCombatDomain(): ReadModelDomain;
|
|
6
6
|
//# sourceMappingURL=domain.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"domain.d.ts","sourceRoot":"","sources":["../../src/history/domain.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AAExE,oFAAoF;AACpF,eAAO,MAAM,qBAAqB,IAAI,CAAC;AACvC,eAAO,MAAM,kBAAkB,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"domain.d.ts","sourceRoot":"","sources":["../../src/history/domain.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AAExE,oFAAoF;AACpF,eAAO,MAAM,qBAAqB,IAAI,CAAC;AACvC,eAAO,MAAM,kBAAkB,WAAW,CAAC;AA8J3C,wBAAgB,kBAAkB,IAAI,eAAe,CAwBpD"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"importer.d.ts","sourceRoot":"","sources":["../../src/history/importer.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAsB,iBAAiB,EAAE,SAAS,EAAE,MAAM,kCAAkC,CAAC;AAKzG,OAAO,KAAK,EAAkB,oBAAoB,EAAmD,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"importer.d.ts","sourceRoot":"","sources":["../../src/history/importer.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAsB,iBAAiB,EAAE,SAAS,EAAE,MAAM,kCAAkC,CAAC;AAKzG,OAAO,KAAK,EAAkB,oBAAoB,EAAmD,MAAM,uBAAuB,CAAC;AAWnI,MAAM,WAAW,wBAAyB,SAAQ,IAAI,CAAC,oBAAoB,EAAE,WAAW,GAAG,mBAAmB,CAAC;IAC7G,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,oEAAoE;IACpE,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,kDAAkD;AAClD,wBAAsB,iBAAiB,CAAC,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,wBAAwB,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAkGvH"}
|
package/dist/history/store.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { ReadModel } from "@kar-mi/spirit-vale-tools-sqlite";
|
|
2
|
-
import type {
|
|
2
|
+
import type { CombatEncounterSnapshot } from "../reducers/snapshot.ts";
|
|
3
3
|
import type { RenderOptions } from "../reducers/rows.ts";
|
|
4
4
|
export interface Page<T> {
|
|
5
5
|
items: T[];
|
|
@@ -74,8 +74,12 @@ export declare class CombatHistoryStore {
|
|
|
74
74
|
/** Lines of this session's combat log that were not a valid record, across every indexing pass. */
|
|
75
75
|
invalidLines(sessionId: string): number;
|
|
76
76
|
listEncounters(query: ListEncountersQuery): Page<CombatEncounterSummary>;
|
|
77
|
-
/**
|
|
78
|
-
|
|
77
|
+
/**
|
|
78
|
+
* Per-attacker, per-enemy, per-skill damage for one encounter, with the enemy picker ordered by
|
|
79
|
+
* first sighting and duplicate monster names disambiguated. `meter` selects outgoing party damage
|
|
80
|
+
* (`"dps"`, the default) or incoming damage taken (`"tanked"`).
|
|
81
|
+
*/
|
|
82
|
+
getEnemyBreakdown(sessionId: string, encounterId: string, meter?: "dps" | "tanked"): CombatEnemyBreakdown;
|
|
79
83
|
/** Player deaths, newest first, paged so a long session never loads at once. */
|
|
80
84
|
getDeathLog(query: DeathLogQuery): Page<CombatDeathRecord>;
|
|
81
85
|
/**
|
|
@@ -84,7 +88,7 @@ export declare class CombatHistoryStore {
|
|
|
84
88
|
* Tanked and healing rates divide by the encounter's own duration, taken from the encounter row,
|
|
85
89
|
* so they stay comparable with the damage figure even when incoming hits span a shorter window.
|
|
86
90
|
*/
|
|
87
|
-
getEncounter(sessionId: string, encounterId: string, options?: GetEncounterOptions):
|
|
91
|
+
getEncounter(sessionId: string, encounterId: string, options?: GetEncounterOptions): CombatEncounterSnapshot | undefined;
|
|
88
92
|
private loadEncounter;
|
|
89
93
|
}
|
|
90
94
|
//# sourceMappingURL=store.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../src/history/store.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kCAAkC,CAAC;AAElE,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../src/history/store.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,14 +1,20 @@
|
|
|
1
|
-
export { FishNetCombatTracker } from "./combat-tracker.ts";
|
|
2
|
-
export {
|
|
3
|
-
export {
|
|
4
|
-
export {
|
|
5
|
-
export
|
|
6
|
-
export {
|
|
7
|
-
export type {
|
|
8
|
-
export {
|
|
9
|
-
export
|
|
10
|
-
export {
|
|
11
|
-
export type {
|
|
1
|
+
export { FishNetCombatTracker } from "./tracking/combat-tracker.ts";
|
|
2
|
+
export { FishNetMonsterIdentityTracker } from "./tracking/monster-identity.ts";
|
|
3
|
+
export type { FishNetMonsterIdentityTrackerOptions } from "./tracking/monster-identity.ts";
|
|
4
|
+
export { FishNetSummonTracker } from "./tracking/summon-tracker.ts";
|
|
5
|
+
export { observeFishNetDamagePacket } from "./events/damage-observer.ts";
|
|
6
|
+
export type { FishNetDamageObservation } from "./events/damage-observer.ts";
|
|
7
|
+
export type { FishNetRecoveryStyle } from "./events/inference/recovery-style.ts";
|
|
8
|
+
export { createBossCatalog } from "./tracking/boss-catalog.ts";
|
|
9
|
+
export { FishNetActorDirectory } from "./tracking/actor-directory.ts";
|
|
10
|
+
export { FishNetStatusTracker } from "./tracking/status-tracker.ts";
|
|
11
|
+
export type { FishNetActiveStatus, FishNetStatusTrackerOptions } from "./tracking/status-tracker.ts";
|
|
12
|
+
export { loadDpsReplay, parseDpsLogRecord } from "./replay/replay.ts";
|
|
13
|
+
export type { DpsReplayResult } from "./replay/replay.ts";
|
|
14
|
+
export { decodeCombatCaptureJsonLines, replayCombatCapture, replayCombatCaptures } from "./replay/replay-capture.ts";
|
|
15
|
+
export type { CombatCaptureReplayOptions, CombatCaptureReplayResult } from "./replay/replay-capture.ts";
|
|
16
|
+
export { formatCombatReplaySummary, inspectCombatReplaySummary, readCombatReplaySummary } from "./replay/replay-summary.ts";
|
|
17
|
+
export type { CombatReplayInspection, CombatReplaySummary } from "./replay/replay-summary.ts";
|
|
12
18
|
export { COMBAT_DOMAIN_NAME, COMBAT_DOMAIN_VERSION, createCombatDomain } from "./history/domain.ts";
|
|
13
19
|
export { indexCombatStream } from "./history/importer.ts";
|
|
14
20
|
export type { IndexCombatStreamOptions } from "./history/importer.ts";
|
|
@@ -18,17 +24,17 @@ export { DamageReducer } from "./reducers/damage.ts";
|
|
|
18
24
|
export type { ActorAggregate, CombatIdentity, DamageReducerOptions, EncounterAggregate, EnemySkillStats, SkillAggregate, } from "./reducers/damage.ts";
|
|
19
25
|
export { MeterReducer } from "./reducers/meter.ts";
|
|
20
26
|
export type { MeterKind, MeterReducerOptions } from "./reducers/meter.ts";
|
|
21
|
-
export { LiveCombatService } from "./live-combat.ts";
|
|
22
|
-
export type { CombatEncounterRecord, LiveCombatOptions, LiveCombatState, MeterEncounterSnapshot, MeterRow, } from "./live-combat.ts";
|
|
27
|
+
export { LiveCombatService } from "./runtime/live-combat.ts";
|
|
28
|
+
export type { CombatEncounterRecord, LiveCombatOptions, LiveCombatState, MeterEncounterSnapshot, MeterRow, } from "./runtime/live-combat.ts";
|
|
23
29
|
export { actorRowId, displayActorAggregates, normalizeName, renderEncounter } from "./reducers/rows.ts";
|
|
24
30
|
export type { DisplayActorAggregate, DisplayActorOptions, RenderOptions } from "./reducers/rows.ts";
|
|
25
31
|
export { ANALYSIS_BUCKET_MS } from "./reducers/timeline.ts";
|
|
26
32
|
export type { BucketSeries, TimelinePoint } from "./reducers/timeline.ts";
|
|
27
|
-
export { DpsLogFollower, DpsSessionLogFollower } from "./live-log.ts";
|
|
28
|
-
export type { DpsLogBatch, TimedDpsLogEvent } from "./live-log.ts";
|
|
29
|
-
export type {
|
|
30
|
-
export type { FishNetActorDirectoryOptions, FishNetActorIdentity, FishNetActorIdentityEvent, FishNetActorIdentityRemoveEvent, FishNetActorIdentityResetEvent, FishNetActorIdentityUpsertEvent, FishNetKnownIdentity, FishNetLocalIdentity, } from "./actor-directory.ts";
|
|
31
|
-
export type { FishNetCombatActionKind, FishNetCombatActionPhase, FishNetCombatActivationEvent, FishNetCombatDamageEvent, FishNetCombatDeathEvent, FishNetCombatEvent, FishNetCombatHealEvent, FishNetCombatMonsterIdentityEvent, FishNetCombatStatusEvent, FishNetCombatSummonEvent, FishNetCombatTrackerOptions, FishNetDamageAttribution, FishNetBossCatalog, FishNetMonsterCatalog, FishNetHealAttribution, FishNetHealingTraits, FishNetHitResult, } from "./combat-
|
|
32
|
-
export { FishNetPositionTracker } from "./position-tracker.ts";
|
|
33
|
-
export type { FishNetPosition, FishNetPositionEvent, FishNetPositionTrackerOptions, } from "./position-tracker.ts";
|
|
33
|
+
export { DpsLogFollower, DpsSessionLogFollower } from "./replay/live-log.ts";
|
|
34
|
+
export type { DpsLogBatch, DpsSessionLogFollowerOptions, TimedDpsLogEvent } from "./replay/live-log.ts";
|
|
35
|
+
export type { CombatActorRow, CombatEncounterSnapshot, CombatPersonalMatch, CombatSkillRow, CombatTimelinePoint, } from "./reducers/snapshot.ts";
|
|
36
|
+
export type { FishNetActorDirectoryOptions, FishNetActorIdentity, FishNetActorIdentityEvent, FishNetActorIdentityRemoveEvent, FishNetActorIdentityResetEvent, FishNetActorIdentityUpsertEvent, FishNetKnownIdentity, FishNetLocalIdentity, } from "./tracking/actor-directory.ts";
|
|
37
|
+
export type { FishNetCombatActionKind, FishNetCombatActionPhase, FishNetCombatActivationEvent, FishNetCombatDamageEvent, FishNetCombatDeathEvent, FishNetCombatEvent, FishNetCombatFullHealEvent, FishNetCombatHealEvent, FishNetCombatShieldEvent, FishNetCombatMonsterIdentityEvent, FishNetCombatStatusEvent, FishNetCombatSummonEvent, FishNetCombatTrackerOptions, FishNetDamageAttribution, FishNetBossCatalog, FishNetMonsterCatalog, FishNetHealAttribution, FishNetHealingTraits, FishNetHitResult, FishNetShieldAction, } from "./events/combat-events.ts";
|
|
38
|
+
export { FishNetPositionTracker } from "./tracking/position-tracker.ts";
|
|
39
|
+
export type { FishNetPosition, FishNetPositionEvent, FishNetPositionTrackerOptions, } from "./tracking/position-tracker.ts";
|
|
34
40
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|