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-replay): show a native scrolling combat log during playback #188

Description

@pengx17

背景

Replay 播放时只有棋盘动画,玩家难以快速理解刚刚发生了什么。PR #132 的底部 Web Combat Log 验证了事件信息的价值,但该 Viewer 不再继续维护。

目标

在游戏内播放 Replay 时,于画面右侧显示原生 Combat Log:新事件出现后向上滚动,并自然渐入、停留、渐出。

范围

  • 使用游戏内 UI Toolkit 创建 Replay 专用右侧覆盖层。
  • 每条记录优先展示:原生效果图标、动作、来源、目标、关键数值或持续时间。
  • 同一动作的多目标或重复结算可以紧凑合并,但不得丢失关键语义。
  • 新记录从下方进入,已有记录向上移动;超出保留时间后渐出并移除。
  • 复用战斗事件的语义分类;不复用 feat(combat-replay): add static post-combat report viewer #132 的 React 组件。

播放语义

  • 暂停:事件流和动画一起暂停。
  • 倍速:事件出现节奏跟随 Replay 时间,而不是墙钟时间。
  • 向前 Seek:直接重建目标时间附近的可见窗口,不高速补播所有动画。
  • 向后 Seek:清除未来记录并按目标时间重建,不能重复累加。
  • Replay 结束:保留最后几条记录一小段时间,再随播放界面退出。

非目标

  • 实时对局中的 Combat Log。
  • Web 报告、浏览器或 WebView。
  • 可点击跳转的时间轴工作台。
  • 在第一版提供搜索、筛选、导出或完整历史列表。

验收标准

  • Replay 播放时右侧出现原生事件流,普通战斗不受影响。
  • 记录按 Replay 时间顺序向上滚动,并完成渐入渐出。
  • 伤害、治疗、护盾、燃烧、中毒、控制、充能、属性变化与摧毁能使用正确语义和原生图标。
  • 来源、目标、数值/时长在可用时正确显示;不会退化成大量 Status change
  • 暂停、倍速、前后 Seek 与结束状态不会产生重复、倒序或过期记录。
  • 大量事件下不引起明显的主线程卡顿或持续分配尖峰。
  • 事件窗口策略有纯测试,并通过真实 Saved Replay Smoke Test。

实施约束

Activity

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

Metadata

Metadata

Assignees

Labels

enhancementNew feature or requestneeds-infoWaiting on reporter for more information

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions