# 哈夫币发布计算器 一个独立的 Go + Wails 桌面工具,只计算**号主到手价**。输入保险格数、账号状态、哈弗币数量和物品数量后立即出结果。 界面按「保险格数 + 特殊状态 + 哈弗币 + 物品清单 + 底部分结果」布局,规则支持本地配置和从线上同步。 ## 计算口径 ```text 参考比例 = 保险基础比例 + 缺配惩罚(红皮/刀皮/砖皮/满体力/满负重,每缺一项 +1) + 大额币修正(>130M +1;>230M +2.5;>380M +4;>530M +5) + 每日损耗修正(10/20/30/40/50M → +0/+1/+2/+3/+4) 最终比例 = clamp(加速比例, 参考比例, 参考比例 + 加速上限) 纯币到手 = 哈弗币万数 ÷ 最终比例 物品到手 = Σ(数量 × 单价) // 免费项不计 合计到手 = 纯币到手 + 物品到手 ``` 注意:比例数字越大,号主到手越低。加速出售是主动把比例调高、降低价格。 默认规则与 `hfb_sys` 主站发布口径一致: - 保险基础比例:`3*3=40`、`2*3=42`、`2*2=47`、`2*1=48` - 缺配项:刀皮、角色红皮、满体力、满负重、武器皮肤 - 大额修正:130M / 230M / 380M / 530M 四档 - 每日损耗:10M 到 50M - 物品单价:AWM 子弹、6 级子弹、6 级头盔、6 级护甲、巴雷特子弹、顶级保险卡、咖啡豆、子弹零件、45 格大红包 `3*3` 保险下「顶级保险卡 / 9 格体验卡」按主站规则禁用。 ## 本地运行 ```bash wails dev ``` Wails 程序不能用 `go run .` 启动;直接运行会缺少 Wails 需要的构建标签。 ## 构建 macOS: ```bash wails build ``` Windows exe(在 macOS 上可直接交叉编译,文件名自动带版本号): ```bash wails build -platform windows/amd64 -o hfb_price_tool-v1.0.1.exe ``` > 不要加 `-nopackage`。加上它会跳过 Windows 资源打包,导致 exe 没有自定义图标、版本属性和应用清单。 Windows 安装包: ```bash wails build -platform windows/amd64 -nsis ``` 生成物在 `build/bin/`。最终 Windows 文件名示例:`hfb_price_tool-v1.0.1.exe`。 图标文件: - `build/appicon.png`:macOS / 通用图标源图 - `build/windows/icon.ico`:Windows exe 图标(包含 16/24/32/48/64/128/256 多尺寸) - `build/windows/info.json`:Windows 版本属性 - `build/windows/wails.exe.manifest`:Windows 应用清单 ## 规则配置 右上角「配置」可以编辑: - 基础比例 - 缺配惩罚 - 大额修正 - 物品单价 / 单位 / 停用 - 每日损耗选项、加速上限 本地配置保存在: - Windows:`%AppData%\hfb-price-tool\config.json` - macOS:`~/Library/Application Support/hfb-price-tool/config.json` 配置弹窗支持导入、导出和打开配置目录。首次启动会自动写入一份默认规则。 ## 线上同步 「线上同步」调用主站公开接口: ```text GET {地址}/api/listing-publish-options ``` 默认地址:`https://hao858.com` 同步只覆盖: - `ratio_config.insurance_base_ratios` - `ratio_config.config_items` - `ratio_config.coin_corrections` - `quantity_items` 每日损耗选项、加速上限、本地物品停用状态会保留。同步成功后自动保存到本地配置。 接口响应结构: ```json { "code": "ok", "message": "ok", "data": { "ratio_config": {}, "quantity_items": [] } } ``` ## 验证 ```bash go test ./... cd frontend && npm run build ``` 关键用例:`226M + 9格 + 5 项特殊状态全未勾选 + 每日损耗 10M` ```text 比例 = 40 + 5 + 1 = 46 226M = 22600 万 22600 ÷ 46 = 491.304... → ¥491.30 ``` 该用例固定在 `internal/pricing/calc_test.go`。 ## 版本号 版本号的唯一来源是 `wails.json` 的 `info.productVersion`: - Windows exe 的版本资源由它生成 - 界面右上角的版本号由 `frontend/vite.config.js` 在构建时读取同一字段注入 升级版本时只改这一处,然后重新构建。 ## 目录 ```text app.go Wails 绑定、本地配置、线上同步、导入导出 main.go 窗口入口 internal/pricing/ 定价核心与单测 frontend/src/main.js 界面与交互 frontend/src/style.css 样式 ```