Skip to content

feat: HireRPG 图鉴系统 + 文案双语管理台 - #30

Merged
realRoc merged 3 commits into
mainfrom
feat/hirerpg-codex
Jun 1, 2026
Merged

feat: HireRPG 图鉴系统 + 文案双语管理台#30
realRoc merged 3 commits into
mainfrom
feat/hirerpg-codex

Conversation

@realRoc

@realRoc realRoc commented Jun 1, 2026

Copy link
Copy Markdown
Owner

概述

为站内小游戏 HireRPG 新增两块能力:游戏内的怪兽图鉴,以及一个独立的文案聚合 / 中英双语管理后台

改动

1. 游戏内图鉴 Codex(docs/game.html,+174 行)

  • 右上角背包上方新增可折叠「📖 图鉴 N/7」面板
  • 七只怪兽初始为剪影 + 「?」,击败后正式解锁显形
  • 点开看全屏详情:简介 / 它提醒你什么 / 扩展链接;未解锁给"去击败它解锁"提示
  • 标题屏「怪兽一览」精灵改为可点击,跳对应图鉴(预览模式)
  • 扩展文案集中在 CODEX_EXTRA(按怪兽 id 配 reminds + links),便于增补
  • 复用既有 spriteCanvasHTML / paintDomSprites / G.defeated,零侵入主流程

2. 文案管理后台(docs/game-codex.html,新增,noindex

  • 数据 fetch(game.html)正则解析:怪兽(MONSTERS + CODEX_EXTRA)+ 全量中文串(道具/NPC/地图/题库/界面,约 259 条),按行号自动归类
  • 怪兽卡显示真实像素精灵(隐藏 iframe 调 getSprite()),连不上回退 emoji
  • 中文 + 英文均可在线编辑,存浏览器 localStorage;怪兽名/reminds 内置英文默认译
  • 只导出 JSON,无导入、无任何在线写回——文案更新只能走本地 commit/PR,线上无人能直接改
  • 工具条:对照/中文/EN 切换、分类筛选、显式「查询」按钮 + 回车、清除
  • 怪兽图鉴纳入 filter 体系(不再永久置顶)

测试

浏览器实测(http 模式):图鉴 7 卡 + 真实精灵 7/7 绘制、全量文言 259 条、中英双语编辑落盘、查询/分类联动、导出 JSON 结构正确(含中文引号/破折号/嵌套 links 解析无误)。JS 括号配平校验通过。

注意

game-codex.html 须经 http(s) / 本地服务器访问(python3 -m http.server),双击 file:// 会被浏览器禁止读取本地文件——此时页面会给出明确提示。

后续(未包含在本 PR)

导出的 JSON 目前是"快照"。若要让它真正驱动游戏切换中英显示,需再做一步 i18n 接入(把 game.html 硬编码中文改成读译文)。

🤖 Generated with Claude Code

wuyupeng and others added 2 commits June 1, 2026 09:04
在右上角背包上方新增可折叠「图鉴」面板(renderCodex/openCodex):
- 初始七只怪兽均为剪影 + 「?」,击败后正式解锁显形
- 点开看全屏详情:简介 / 它提醒你什么 / 扩展链接
- 标题屏「怪兽一览」精灵改为可点击,跳对应图鉴(预览模式)

扩展文案集中在 CODEX_EXTRA(按怪兽 id 配 reminds + links),便于后续增补。
复用既有 spriteCanvasHTML / paintDomSprites / G.defeated,零侵入主流程。

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
游戏全部「文言」的聚合预览 + 双语编辑后台:
- 数据 fetch(game.html) 后正则解析:怪兽(MONSTERS+CODEX_EXTRA) + 全量中文串
  (道具/NPC/地图/题库/界面,约 259 条),按行号自动归类
- 怪兽卡显示真实像素精灵(隐藏 iframe 调 getSprite()),连不上回退 emoji
- 中文 + 英文均可在线编辑,存浏览器 localStorage;怪兽名/reminds 内置英文默认译
- 只「导出 JSON」无导入、无任何在线写回——文案更新只能本地 commit/PR
- 工具条:对照/中文/EN 切换、分类筛选、显式「查询」按钮 + 回车、清除
- 怪兽图鉴纳入 filter 体系(不再永久置顶)

注意:须经 http(s)/本地服务器访问,双击 file:// 会被浏览器禁止读取本地文件。

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@realRoc

realRoc commented Jun 1, 2026

Copy link
Copy Markdown
Owner Author

🤖 由 Codex 自动生成

Blocker / 必须修正

  • docs/game-codex.html:260-275harvest() 只匹配单/双引号字符串,无法采集 backtick template literal 或 HTML 文本节点里的中文;但本 PR 把管理台定义为“全量文言”聚合。比如 docs/game.html:855-868 的标题屏说明、按钮、提示文案,以及 docs/game.html:905 的地图提示都不会进入 catalog,导出的 JSON 因而不是完整文案快照。需要改为能覆盖模板字符串/DOM 文本的解析方式,或至少把“全量”范围收窄并加校验,避免双语管理台漏改线上可见文案。

建议

  • 给文案采集补一个最小回归校验:固定断言几个代表性文本会被抓到,例如 进入世界 →、标题屏长说明、地图提示、战斗/结算文案。这样后续 game.html 行号变化或字符串写法变化时不会静默漏采。
  • docs/game-codex.html:259categoryForLine() 依赖硬编码行号,后续在 game.html 前面插入内容会让分类/跳过区间漂移;建议改成基于常量名、函数名或注释锚点切片。

结论:❌ 暂不可合并(存在 blocker)

原 harvest() 只逐行匹配单/双引号字符串,标题屏说明/按钮(进入世界 →)、
地图提示、以及多行模板字符串等线上可见文案都进不了 catalog,导出的 JSON
并非完整文案快照,违背"全量文言"定义。

改为对整源做偏移扫描,统一覆盖:单/双引号 + 反引号模板(含跨行)+ HTML
文本节点;并以字符串字面量区间对 HTML 文本去重,避免 JS 拼接 HTML 被重复
采集。行号/列号由偏移换算,categoryForLine 与跳过区间逻辑不变。

验证(node 跑实际逻辑 against docs/game.html):采集量 86 → 165,
代表文案进入世界/titleSlogan/titleQuote/地图提示均被抓到,4 条多行模板
全部覆盖;node --check 语法通过。建议项(回归断言、锚点切片)本次未做,
属优化非 blocker。

Reviewed-Comment: #30 (comment)
Co-Authored-By: Claude <noreply@anthropic.com>
@realRoc

realRoc commented Jun 1, 2026

Copy link
Copy Markdown
Owner Author

🤖 由 Codex 自动生成

建议

  • docs/game-codex.html:166 / docs/game-codex.html:274:分类和跳过区间绑定 game.html 的绝对行号;后续只要在前面插入/删除文案,分类、去重以及 L<line>#<col> 导出的键都会漂移,可能让 localStorage 里的译文对不上原文。建议至少把跳过范围改为基于 sliceBalanced 得到的源码 offset,导出 key 尽量使用语义路径(如 questions.<monster>.<index>.qui.title.desc)而不是行列号。
  • docs/game.html:1716 / docs/game.html:1721:图鉴弹层用 innerHTML 拼接 m.*CODEX_EXTRA 和 links;当前数据都在源码里,风险可控,但这个页面后续要承接文案回灌时,建议在这里统一走 HTML escape 或 DOM API,避免翻译内容进入游戏后带来 XSS/破坏结构的问题。
  • docs/game.html:761:建议把 cxOpen:false 加进 freshState(),和 bpOpen 一样声明状态结构,避免后续存档/重开局逻辑读到隐式字段。

结论:✅ 可以合并

@realRoc
realRoc merged commit 519f536 into main Jun 1, 2026
1 check passed
@realRoc
realRoc deleted the feat/hirerpg-codex branch June 1, 2026 01:24
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant