Arquivo de origem do README: README.md
Ler o README original# WARDOGS 迫击炮弹道计算机
AstrBot 插件:通过 `/wd bc` 计算《WARDOGS》L81 迫击炮和 SPH-2 自行榴弹炮的方位、距离(M)与射程密位(MIL)。坐标每 1 单位等于 100 米。
## 用法
```text
/wd bc x64.85, y71.98 x74.85, y61.13
/wd 弹道 x64.85,y71.98 y74.85x61.13
/wardogs ballistic 64.85 71.98 74.85,61.13
/战狗 弹道计算 sph2 x64.85, y71.98 x74.85, y61.13
/wd bc PZH x74.85, y61.13
```
命令组为 `/wd`(别名:`/wardogs`、`/战狗`),弹道子命令为 `bc`(别名:`弹道`、`弹道计算`、`ballistic`)。完整格式为 `/wd bc [l81|sph2] <炮位> <目标位>` 或 `/wd bc [l81|sph2] <目标位>`。未指定武器时默认 L81;武器标识不区分大小写。L81 别名为 `迫击炮`;SPH-2 别名为 `SPH-2`、`攀枝花`、`PZH`、`PZH2000`、`自火`。
伤害查询:`/wd damage <武器> [弹药] [部位] [护甲] [距离] [生命]`。子命令别名为 `伤害`、`伤害计算`;弹药支持 `ap/穿甲/穿甲弹`、`hp/肉弹/肉伤`、`fmj/标准`,例如:`/wd damage m4 穿甲弹 头部 四级头 100 100`。完整数据说明见 [docs/wardogs_ballistics_data.md](docs/wardogs_ballistics_data.md)。
数据查询:`/wd info <武器或护甲>`,别名为 `查询`、`数据`、`属性`。例如:`/wd info m4`、`/wd 查询 四级头`、`/wd 数据 armor3`。
装备列表:`/wd list [武器|头盔|防弹衣]`,别名为 `列表`、`装备列表`。省略分类时列出全部可查询装备,例如:`/wd 装备列表`、`/wd list 武器`。
炮位按“平台 + 用户 + 武器”隔离缓存 105 分钟;L81 与 SPH-2 不会互相复用炮位。方位以地图正北为 0°,顺时针增加。L81 射程密位基于 132–684 M 社区射表;SPH-2 在 780–1180 M 仅提供高弹道、在 1181–2629 M 提供高低双弹道。射表采用线性插值,未进行高差或车辆姿态修正。
当目标落在至少一条射表范围内时,机器人会额外发送一张纵向瞄准标尺图:每条可用弹道只显示目标密位所夹的上下射表刻度,并以渐隐刻度向两端延伸最多两个刻度;红色瞄准指针按插值位置标出。SPH-2 同时具备高、低弹道时会显示两条标尺;超出射表时仅发送文本结果。
带 `x` / `y` 轴标记与无标记的坐标可以混用;未标记数字默认按 `x y` 解析。
插件内置 `wardogs-ballistic` Skill。启用后,模型在收到 WARDOGS 地图截图、迫击炮、自行火炮或坐标问题时,会识别场景并引导/调用 `/wd bc` 得到准确结果。
## 开发
无第三方运行时依赖。运行测试:
```bash
python -m pytest
```
Ler o README original