LC-John/CyberPunkRED_role

★ 0Forks 0TypeScriptGitHub ↗Compare

README

Punk Journal

用于创建和管理《赛博朋克 RED》角色的软件

Punk Journal 读取文本构建记录,应用角色与装备规则,并输出结构化 JSON、网页角色卡或可选的 PDF 角色卡。项目使用 Node.js 与 TypeScript,统一由 pnpm 管理。

环境要求

  • Node.js 22 或更高版本
  • pnpm 10
  • XeLaTeX(仅生成 PDF 时需要)
pnpm install
pnpm check
pnpm build
./pjournal build examples/carl.txt
./pjournal pdf examples/carl.txt

生成的 carl.json 包含完整角色数据。开发过程中如不想预先编译,可以使用 pnpm dev -- build ...。

TypeScript 应用层还提供面向 10 个核心职业的 Streetrat 创建器。它根据固定 seed 生成属性、技能与 Lifepath,使用带临时来源标记的 Single Shot Pack v1.1 装备预设,校验所有必选项、Tech/Medtech 专长、Exec 团队成员和 Nomad 载具, 再通过正常规则引擎生成 TXT、JSON 与中文网页。运行 pnpm generate:streetrat-demo 后,可从 output/streetrat/index.html 浏览十张 角色卡,或从 wizard.html 使用网页向导。详情见 docs/streetrat.md。

web-demo/ 提供可部署的 Streetrat 前端向导。它覆盖四步创建流程、十职业、 每职业十组属性数组,以及 Tech、Medtech、Exec 的职业资源预设;最终可下载独立 HTML 角色卡,或通过系统打印面板保存为 PDF。更新规则或模板后,先运行:

pnpm generate:streetrat-wizard-data
cd web-demo
npm run dev

向导使用预生成且经过后端规则校验的角色卡变体,因此前端选择不会绕过装备、 职业能力、派生数值或人性规则。

命令

./pjournal build <character.txt> [portrait.png]
./pjournal pdf <character.txt> [portrait.png]
./pjournal web <character.txt> [portrait.png]
./pjournal parse <character.txt>
./pjournal validate-database

build 输出 JSON。web 输出无需服务器、可直接打开的独立响应式 HTML 角色卡。pdf 使用 Nunjucks 模板和 XeLaTeX 渲染相同的角色数据;可通过 --output <文件> 指定输出位置,通过 --tex 保留生成的 TeX。运行 ./pjournal --help 可查看全部选项。

玩家角色 PDF 首先展示一张受《赛博朋克 RED》快速参考卡启发的红黑色单页角色卡, 其中包含身份、属性、派生数值、技能、武器与护甲、义体、服装、现金和随身装备。 完整库存、战斗详情、备注和可选日志则展示在后续横向详情页中。

测试

pnpm check

测试套件包含单元测试、应用层测试、仓库内 9 个示例的语义黄金测试、模板测试和 可选的 XeLaTeX 集成测试。环境中没有 XeLaTeX 时,会自动跳过 PDF 集成测试。

构建记录用法见 USAGE.md,已完成的迁移记录见 docs/typescript-migration.md。

法律声明

Punk Journal 是依据 R. Talsorian Games 的 同人内容政策 制作的非官方内容, 未经 R. Talsorian Games 批准或背书。数据库文件来源于受 R. Talsorian Games 版权保护的材料,不适用本项目的软件许可证。

其余软件、文档、LaTeX 支持文件及模板采用 GNU 通用公共许可证第 3 版。

Copyright 2024, Jason Denton

Contributors

jasondenton

Issues