Skip to content
This repository was archived by the owner on Sep 20, 2026. It is now read-only.
This repository was archived by the owner on Sep 20, 2026. It is now read-only.

feat(combat-report): finish attribute activity semantics and coverage #184

Description

@pengx17

Context

Draft PR #132 establishes concrete attribute-change semantics, but a few product decisions and coverage gaps remain. Track them here so the temporary design draft can be retired during cleanup.

Remaining work

  • Finish the pure effect-definition → concrete attribute type/operation resolver, covering base abilities, enchantment abilities, auras, and unresolved/transformed sources.
  • Extend the optional report-event subtype/operation contract without breaking schema-v1 readers; cover unique, ambiguous, and unresolved attribution.
  • Consolidate the viewer attribute descriptor table so class, unit, sign policy, native icon semantic, timeline, Inspector, and statistics policies have one owner.
  • Decide and implement statistics behavior for Ammo gain/reload versus spend, including target-level aggregate detail.
  • Keep custom/unknown attributes explicit and visibly unclassified.

Coverage

  • Fixture coverage: HealthMax (Pasta/Boar Roast), Multicast loss after Ice Swan destruction, Damage/Crit/Cooldown modifiers, Ammo gain/loss, and actual destroy versus DestroyTargets.
  • Representative-report census: no raw per-frame Cooldown/Haste/Slow/Freeze modifier rows.
  • Playwright coverage for lane placement, source/target mode, diffs, native icons, Inspector detail, and statistics target breakdown.
  • Validate one freshly recorded report with the updated DLL; retain conservative behavior for legacy reports.

Product decisions

  1. Economy/progression changes: combat statistics or Inspector only.
  2. Unknown Custom_*: visible by default or behind a diagnostic disclosure.
  3. Ammo: gained/spent columns or signed net with tooltip breakdown.

Acceptance criteria

  • The remaining decisions are resolved and encoded in one semantic descriptor source.
  • All listed fixture, census, browser, and fresh-recording checks pass.
  • No event is presented as a concrete attribute change unless its subtype/operation is supported by serialized evidence.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    needs-triageMaintainer needs to evaluate this issue

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions