Skip to content

Latest commit

 

History

History
96 lines (78 loc) · 6.53 KB

File metadata and controls

96 lines (78 loc) · 6.53 KB

Task Plan: Smash Up Oops 四派系接入与玩法实施

Addendum(2026-04-07):Android 本地素材包图片加载故障

Goal

修复 App 端“素材包已下载但进入游戏后图片仍全部加载中”的问题,确保前端能在未走大厅包管理 hook 的情况下接住已安装游戏包,并且不会把 Android /_capacitor_file_/... 本地路径误套进开发态图片 fetch/blob workaround。

Phase

  • Phase A: 链路排查与根因确认

    • 复核原生安装目录、前端 asset override 注入点、MatchRoom 关键图片加载链路
    • 确认启动期 hydration 会跳过“未预注册 fallbackState 的已安装包”
    • 确认 OptimizedImage 会把 /_capacitor_file_/... 本地包路径误走开发态 fetch -> blob workaround
  • Phase B: 修复与回归

    • 修复 hydrateInstalledNativeGamePackages() 对已安装包的兜底 hydration
    • 收窄 OptimizedImage 的 blob-fetch workaround,只保留开发态 public /assets/...
    • 补定向测试并完成 eslint / vitest 校验

Goal

分两阶段完成 Smash Up Oops, You Did It Again 四个派系(埃及、牛仔、武士、维京人)的完整交付:先完成图片 intake、可复刻工作流与静态接入;再按 Ancient Egyptians → Vikings → Cowboys → Samurai 的顺序逐派系实施正式玩法、补齐 UI、新交互类型 E2E、统一审计与证据留档。

Phases

  • Phase 1: 发现与设计(intake)

    • 阅读 AGENTS、OpenSpec、资产/录入/测试/审计规范
    • 创建独立 worktree 与任务分支
    • 盘点现有 Smash Up 图片接入链路、脚本、数据结构与目标素材
    • 创建 OpenSpec proposal/tasks/design/spec delta
  • Phase 2: 资产处理与录入(intake)

    • 锁定权威来源与图片清单,建立 Markdown 核对契约
    • 完成图片压缩、图集/切片配置与资源落盘
    • 完成 i18n / 静态数据 / atlas / faction metadata 的同步录入
    • 沉淀“给一批图片即可录入”的复刻工作流文档
  • Phase 3: 审计与验证(intake)

    • 对照描述、资源路径、加载链路做 intake 审计
    • 运行相关 Vitest / 审计脚本
    • 编写并运行相关 E2E,用截图留证
    • 汇总 evidence、结果与残留风险
  • Phase 4: 玩法提案与实施设计(gameplay)

    • 创建 add-smashup-oops-faction-gameplay OpenSpec 变更
    • 明确用户要求的实施顺序:逐派系实现,全部完成后统一审计与 E2E
    • 将 bury UI 与新交互类型纳入正式 scope
    • 运行 openspec validate add-smashup-oops-faction-gameplay --strict --no-interactive
    • 等待用户确认 proposal 后进入 Ancient Egyptians
  • Phase 5: Ancient Egyptians

    • 补齐 card defs 元数据与 abilityTags
    • 实现埋葬、翻开、替代去向与相关 base/action/minion ability
    • 补齐 owner-visible bury UI 与对手隐藏占位
    • 补领域测试与统一 E2E 证据收口
  • Phase 6: Vikings

    • 按官方规则书 / Fandom 口径修正 defs、locale 与 ability metadata
    • 实现 deck-top / discard / steal / extra-action 联动与相关基地能力
    • 补领域测试并完成增量门禁验证
    • 统一 E2E 与更严格语义收口已在四派系统一审计阶段完成
  • Phase 7: Cowboys

    • 实现官方 duel 内核、move / destroy / ongoing draw 与相关 metadata
    • 补决斗/目标选择最小交互断言
    • 补完整 duel 浏览器 E2E 与证据收口
  • Phase 8: Samurai

    • 按官方规则书 / Fandom 口径修正 defs、locale 与 ability metadata
    • 实现 honor / duel / destroy / temporary-buff / ongoing draw 与相关基地能力
    • Samurai 专项浏览器 E2E、临时触发精细语义与更严格审计已在统一审计阶段完成
  • Phase 9: 统一审计与收尾

    • 四派系完成后再统一做 gameplay 审计
    • 运行相关 Vitest / typecheck / OpenSpec 校验
    • 运行覆盖新交互类型的 E2E 并留证
    • 汇总最终 evidence、残留风险与后续扩展点

Technical Decisions

Decision Rationale Status
使用独立 worktree feat/smashup-base-faction-assets 根工作区已有并行任务与规划文件,隔离当前任务避免串改 Approved
使用 OpenSpec + planning-with-files 双轨记录 本次既要落地实现,也要沉淀可复刻流程和验收证据 Approved
以用户提供图片作为当前任务的直接权威来源 符合数据录入规范第 3 优先级,可直接用于资源与索引录入 Approved
Smash Up 规则文本与审计必须走 Wiki 爬虫 项目专用强制规范,不能只凭图片或记忆录入 Approved
本轮 scope 以 intake/静态接入为准 用户要求整条资源接入链路,但 OpenSpec 已收束为图片、atlas、静态数据、文档、测试、E2E;不在本 change 内补完四派系完整 gameplay ability Approved
aiji.png7x7aiji_base.png2x4 row-major 切片 已通过直接看图确认 48 张卡 + 1 尾格、8 张基地;后续 atlas/index 以此为唯一切片基准 Approved
武士基地 defId 使用 canonical 英文名,图面英文差异写入证据文档 图面为 Kyuden Konbini / Sakura Shigemi,TTS / Wiki canonical 为 Shogun's Palace / Sakura Garden;运行时名称与来源说明必须分离 Approved
先完整录入 locale 文本,再最小化卡牌结构标签 为避免把“未实现玩法”误录成“已实现 ability”,本轮卡牌 defs 仅承载图片、数量、力量、所属派系与最小结构,详细文本放入 locale Approved
gameplay 以独立 OpenSpec change 推进,而不与 intake 混写 intake 已完成并可单独验收;玩法补完涉及新交互类型、UI 与审计范围,必须单独建模 Approved
gameplay 实施顺序固定为 Ancient Egyptians → Vikings → Cowboys → Samurai 先打通 bury 主链路与 UI,再做 duel / movement / replacement,更容易收敛和审计 Approved
bury UI 必须纳入 Ancient Egyptians 第一波范围 用户已指出吸血鬼 pod 时 bury 体系只有领域逻辑,没有正式 UI;若继续只做逻辑会重复留下未完成实现 Approved

Critical Errors / Blockers

Error Impact Resolution
根工作区 task_plan.md/findings.md/progress.md 已服务其他任务 不能在原工作区继续维护本次计划 新建独立 worktree 承载本任务