Battle Nations Data
收藏数据集概述
该数据集为手机游戏 Battle Nations(战争民族) 的公开单位数据,以规范化的 JSON 格式提供每个单位的详细信息,并附带 TypeScript 类型声明和 JSON Schema 验证。
数据来源与格式
- 单位数据:以每个单位独立的 JSON 文件存储在
data/units/<id>.json中(权威来源)。 - 聚合数据:由所有独立文件自动生成的
data/units.json(便于批量获取)。 - 类型声明:位于
types/unit.d.ts,TypeScript 项目可直接导入使用。 - Schema 验证:
schemas/unit.schema.json提供了 JSON Schema,可用于校验数据格式。
数据内容字段分组
| 字段分组 | 主要键 |
|---|---|
| 身份与分类 | id、name、category、unitType、affiliation(浏览与筛选的关键字段) |
| 进程与经济 | unlockLevel、building、buildingLevel、productionTime、cost(描述单位的获取方式) |
| 各等级属性 | stats.ranks[](包含每个等级下的生存能力与核心性能数值) |
| 动作与攻击数据 | actions[](包含攻击元数据、模式、冷却时间、伤害范围及每个等级的调优参数) |
| 防御与规则 | resistances、immunities、blocking(描述基础摘要中易忽略的战斗交互) |
| 权威与生成数据 | data/units/<id>.json 为权威来源;data/units.json 为生成聚合;仅应用相关的摘要数据位于别处 |
快速使用
js // 获取所有单位 fetch("https://data.bn-db.com/data/units.json") .then(r => r.json()) .then(units => console.log(units.length));
// 获取单个单位(例如 ID 为 1 的单位) fetch("https://data.bn-db.com/data/units/1.json") .then(r => r.json()) .then(unit => console.log(unit.name));
// 使用 jsDelivr 固定历史版本(需替换 <tag>) // https://cdn.jsdelivr.net/gh/adaoj7/battle-nations-data@<tag>/data/units.json
探索与贡献
- 在线浏览:可通过 data.bn-db.com 交互式搜索、过滤各单位,并直接查看 JSON 结构。
- 仓库规则:
- 编辑单位数据时,请修改
data/units/<id>.json,而非生成的聚合文件。 - 提交修正需附带来源证据。
- 图像 URL 仅作参考,不保证本仓库中托管。
- 数据清理与字段语义保持为独立工作流。
- 编辑单位数据时,请修改
- 贡献方式:欢迎提交 Pull Request(修复单位属性、添加缺失状态效果等)或 Issue(报告错误属性、缺失字段等)。
仓库文件结构
battle-nations-data/ ├── data/ │ ├── units/<id>.json # 权威单位文件 │ └── units.json # 生成的聚合文件 ├── types/ │ └── unit.d.ts # TypeScript 类型声明 ├── schemas/ │ └── unit.schema.json # JSON Schema 验证文件 ├── docs/ # 来源、审核与规则文档 ├── scripts/ # 构建、验证与预览脚本 ├── assets/ # 文档站点样式与脚本 ├── index.html # 文档站点入口 ├── CONTRIBUTING.md # 贡献指南 └── CHANGELOG.md # 版本历史
工作流程(维护者/贡献者)
- 编辑
data/units/下的单位文件。 - 运行
pnpm build:units-index重新生成data/units.json。 - 运行
pnpm validate校验数据是否符合 Schema。 - 运行
pnpm preview:docs本地预览文档站点。 - 提交包含来源证据的 Pull Request。




