Skip to content

pa001024/dna-builder

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

292 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

二重螺旋构筑模拟器 Duet Night Abyss Builder

Website Build Status License GitHub code size in bytes

DNA Builder(二重螺旋构筑模拟器,简称 DOB)是面向《二重螺旋 Duet Night Abyss》的综合工具,提供资料检索、角色构建、养成分析与伤害计算能力。

使用入口

网页版(支持 PWA)

可直接在浏览器中安装为应用,支持离线访问。

桌面版(推荐)

微软商店截图

微软商店截图

功能特点

  • 🎮 角色构建:角色、武器、MOD、BUFF 的可视化配置
  • 🔨 自动构建:一键搜索当前条件下的高收益组合
  • 📊 伤害计算:技能与武器伤害期望的实时计算
  • ⚙️ 目标函数:支持自定义表达式优化
  • 📦 库存管理:支持武器与 MOD 的库存记录与筛选
  • 🔍 拼音搜索:快速检索角色、武器与 MOD
  • 🎣 钓鱼模拟器:内置鱼类与钓点相关数据
  • 🔒 密函模拟器:内置密函数据与模拟流程
  • 🏆 成就系统:记录与跟踪成就进度
  • 🤖 MCP Server:支持 AI 工具集成

技术栈

前端

  • Vue 3 + TypeScript
  • Vite 7
  • Tailwind CSS v4 + daisyUI v5 + reka-ui
  • Pinia + Vue Router
  • i18next
  • Vitest + Biome

桌面应用

  • Tauri 2(Rust + WebView2)

服务端(可选)

  • Bun + Elysia
  • SQLite + Drizzle ORM
  • GraphQL Yoga

多语言

目前支持(含部分数据翻译):

  • 中文(简体 / 繁体)
  • English
  • 日本語
  • 한국어

欢迎提交翻译改进。

开发说明

环境要求

  • Node.js(建议 20+)
  • pnpm(项目使用 pnpm
  • bun(用于 server 与工具脚本)
  • Rust 工具链(开发 Tauri 时需要)

前端

# 安装依赖
pnpm install

# 本地开发(默认 http://localhost:1420/)
pnpm dev

# 代码检查(Biome + vue-tsc)
pnpm lint

# 单元测试
pnpm test

# 覆盖率
pnpm coverage

# 代码格式化
pnpm format

桌面应用(Tauri)

pnpm tauri dev
pnpm tauri build

服务端(Bun + Elysia)

cd server
bun install

# 开发模式(含迁移)
bun run dev

# 生成迁移
bun run gen

# 执行迁移
bun run mig

常用工具命令

# 生成 API 调用代码
pnpm gen

# 图标管理
bun tools/icon_tool.ts add|check|clean|list

# i18n 导入导出
bun tools/i18n_tool.ts export|import

项目结构

dna-builder/
├── src/                  # 前端主代码
│   ├── components/       # Vue 组件
│   ├── data/             # 游戏数据与计算逻辑(含 tests)
│   ├── store/            # Pinia 状态管理
│   ├── views/            # 页面视图
│   ├── api/              # API 调用
│   ├── utils/            # 工具函数
│   └── router.ts         # 路由配置
├── public/               # 静态资源(图片、i18n 等)
├── src-tauri/            # Tauri Rust 代码
├── server/               # Bun + Elysia 服务端
├── mcp_server/           # Rust MCP Server
├── externals/dna-api/    # 外部 dna-api 包源码
└── tools/                # 开发工具脚本

相关包

dna-api

dna-api 提供游戏数据访问接口。

npm install dna-api
# or
pnpm install dna-api
# or
bun install dna-api

dna-builder-data

dna-builder-data 提供核心计算模型。

npm install dna-builder-data
import { CharBuild, LeveledBuff, LeveledChar, LeveledMod, LeveledWeapon } from "dna-builder-data"

const options = {
    char: new LeveledChar("黎瑟", 80),
    melee: new LeveledWeapon("铸铁者"),
    ranged: new LeveledWeapon("烈焰孤沙"),
    charMods: [new LeveledMod(41324)],
    buffs: [new LeveledBuff("黎瑟E")],
    hpPercent: 1,
    resonanceGain: 0,
    baseName: "普通攻击",
    targetFunction: "DPS",
    enemyId: 130,
    enemyLevel: 80,
    skillLevel: 10,
}

const cb = new CharBuild(options)
const damage = cb.calculate()

dob-script(CLI,面向 Agent 脚本测试)

dob-script 是 DNA Builder 脚本引擎的命令行入口,主要用于让 AI Agent 快速生成、执行、迭代 .js 脚本,不需要先打开桌面 UI。

安装(全局):

npm i -g dob-script

执行脚本:

dob-script ./example.js

AI Agent 提示词模板(可直接复用):

  1. 生成脚本(首轮)
你现在是 DNA Builder 脚本助手,请输出一个可直接运行的完整 JS 脚本(不要解释,只输出代码)。
目标:<这里写自动化目标,例如“每隔 200ms 检测窗口并点击按钮”>。
约束:
- 脚本文件需可通过 `dob-script xxx.js` 直接执行
- 必须包含必要的日志输出(console.log / console.error)
- 异常要可见,避免静默失败
  1. 迭代修复(拿到运行日志后)
下面是我通过 `dob-script test.js` 得到的报错日志,请根据日志修复脚本并输出完整可运行代码(不要解释):
<粘贴日志>

说明:

  • 推荐流程:Agent 生成脚本 -> dob-script 本地运行 -> 根据日志继续让 Agent 修复
  • 该 CLI 当前主要面向 Windows 环境

MCP(npx stdio)

dna-builder-data 也提供可通过 npx 直接启动的 MCP stdio 服务(参考 Context7 的两步查询流程)。

npx -y dna-builder-data

可选:覆盖在线查询使用的 GraphQL 端点(默认 https://api.dna-builder.cn/graphql):

DNA_MCP_GRAPHQL_ENDPOINT=http://127.0.0.1:8887/graphql npx -y dna-builder-data
#
npx -y dna-builder-data --graphql-endpoint http://127.0.0.1:8887/graphql

主要工具:

  1. resolve-data-module:先把关键词解析为本地模块 ID(如 /local/char
  2. query-data-module:在本地单模块内查询,支持 fieldsexactIdthreshold 等参数降噪
  3. query-missions:独立查询实时密函,默认请求 missionsIngame(server: "cn")

能力范围:

  • 本地数据查询:查询 src/data/d/*.data.ts,并针对 reward / dungeon / abyss 做业务解压
  • 在线数据查询:连接项目 GraphQL 后端,查询实时密函(missionsIngame),并转换为 角色/武器/魔之楔 结构化字段

支持作者

如果这个项目对你有帮助,欢迎支持:

贡献

欢迎提交 Issue 与 Pull Request。

许可证

MIT License

联系方式

如有问题或建议,请在 GitHub 仓库提交 Issue。

Star History

Star History Chart