delta-force-core 0.4.0 → 0.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -23,12 +23,26 @@
23
23
  <a id="status"></a>
24
24
  > ## 📢 项目状态
25
25
  >
26
- > **v0.2.x** — 稳定版本,覆盖 **干员 / 武器 / 装备 / 子弹** 四大模块。
26
+ > **v0.4.x** — 稳定版本,覆盖 **干员 / 武器 / 装备 / 子弹** 四大模块。
27
+ >
28
+ > **新增**:MCP Server(给 AI 客户端用)
27
29
  >
28
30
  > **路线图**:配件系统、子弹细分(1~6 弹)、图片资源、多语言支持。
29
31
 
30
32
  ---
31
33
 
34
+ <a id="ai-agents"></a>
35
+ ## 🤖 For AI Agents
36
+
37
+ - **Wiki(AI 使用指南)**:https://github.com/Zhoyi011/delta-force-core/wiki
38
+ - **`llms.txt`(AI 索引)**:[llms.txt](./llms.txt)
39
+ - **`llms-full.txt`(AI 全文)**:[llms-full.txt](./llms-full.txt)
40
+ - **Raw JSON 数据**:https://unpkg.com/delta-force-core/index.json
41
+ - **MCP Server**:`npx -y -p delta-force-core delta-force-mcp`
42
+ - **npm 页面**:https://www.npmjs.com/package/delta-force-core
43
+
44
+ ---
45
+
32
46
  <a id="toc"></a>
33
47
  ## 📖 目录
34
48
 
@@ -36,6 +50,7 @@
36
50
  - [🎯 使用场景](#use-cases)
37
51
  - [🧠 设计理念](#design)
38
52
  - [📦 安装](#install)
53
+ - [🤖 MCP Server](#mcp)
39
54
  - [🚀 快速开始](#quick-start)
40
55
  - [🧩 核心概念](#concepts)
41
56
  - [📘 API 参考](#api)
@@ -89,6 +104,7 @@
89
104
  - ✅ **零依赖** —— 核心库不依赖任何第三方包
90
105
  - ✅ **向前兼容** —— 所有可选字段 `?:`,新版本不破坏老用户
91
106
  - ✅ **Node + 浏览器** —— 同时支持 Node.js ≥ 18 和现代浏览器
107
+ - ✅ **MCP Server** —— 支持 Claude Desktop / Cursor / Cline 直接调用
92
108
 
93
109
  ---
94
110
 
@@ -120,6 +136,10 @@
120
136
  <td>🌐 <b>静态网站 / CDN</b></td>
121
137
  <td>通过 <code>index.json</code> 直接 fetch,无需构建</td>
122
138
  </tr>
139
+ <tr>
140
+ <td>🧠 <b>AI 助手</b></td>
141
+ <td>通过 MCP Server,让 Claude / Cursor 直接调用</td>
142
+ </tr>
123
143
  </table>
124
144
 
125
145
  ---
@@ -148,7 +168,7 @@
148
168
  ▼
149
169
  ┌──────────────────────────────────────┐
150
170
  │ 引擎(Engine) │
151
- │ · 抽签 · 查询 │
171
+ │ · 抽签 · 查询 · MCP │
152
172
  └──────────────────────────────────────┘
153
173
  ```
154
174
 
@@ -172,7 +192,7 @@
172
192
  ## 📦 安装
173
193
 
174
194
  <details open>
175
- <summary><b>npm / yarn / pnpm / bun</b></summary>
195
+ <summary><b>作为 JS 库(npm / yarn / pnpm / bun)</b></summary>
176
196
 
177
197
  ```bash
178
198
  # npm
@@ -190,6 +210,44 @@ bun add delta-force-core
190
210
 
191
211
  </details>
192
212
 
213
+ <details>
214
+ <summary><b>作为 MCP Server(给 AI 客户端)</b></summary>
215
+
216
+ **方式 1:npx(推荐,不安装)**
217
+
218
+ 在 Claude Desktop / Cursor / Cline 配置里加:
219
+
220
+ ```json
221
+ {
222
+ "mcpServers": {
223
+ "delta-force": {
224
+ "command": "npx",
225
+ "args": ["-y", "-p", "delta-force-core", "delta-force-mcp"]
226
+ }
227
+ }
228
+ }
229
+ ```
230
+
231
+ **方式 2:全局安装**
232
+
233
+ ```bash
234
+ npm install -g delta-force-core
235
+ ```
236
+
237
+ 配置:
238
+
239
+ ```json
240
+ {
241
+ "mcpServers": {
242
+ "delta-force": {
243
+ "command": "delta-force-mcp"
244
+ }
245
+ }
246
+ }
247
+ ```
248
+
249
+ </details>
250
+
193
251
  <details>
194
252
  <summary><b>CDN(浏览器直接使用)</b></summary>
195
253
 
@@ -214,6 +272,57 @@ bun add delta-force-core
214
272
 
215
273
  ---
216
274
 
275
+ <a id="mcp"></a>
276
+ ## 🤖 MCP Server
277
+
278
+ `delta-force-core` 内置 MCP Server,可以让 AI 客户端(Claude Desktop / Cursor / Cline)**直接调用**你的工具。
279
+
280
+ ### 配置
281
+
282
+ ```json
283
+ {
284
+ "mcpServers": {
285
+ "delta-force": {
286
+ "command": "npx",
287
+ "args": ["-y", "-p", "delta-force-core", "delta-force-mcp"]
288
+ }
289
+ }
290
+ }
291
+ ```
292
+
293
+ ### 可用工具(Tools)
294
+
295
+ | 工具 | 说明 |
296
+ |---|---|
297
+ | `get_random_loadout` | 随机完整配装 |
298
+ | `get_random_weapon` | 随机武器 |
299
+ | `get_random_operator` | 随机干员 |
300
+ | `get_random_ammo` | 随机子弹 |
301
+ | `find_weapon` | 按 id 查武器 |
302
+ | `find_operator` | 按 id 查干员 |
303
+ | `find_ammo` | 按 id 查子弹 |
304
+ | `find_weapons_by_caliber` | 按口径查武器 |
305
+ | `find_ammo_by_caliber` | 按口径查子弹 |
306
+ | `list_weapons` | 列出武器(可按分类) |
307
+ | `list_operators` | 列出干员(可按分类) |
308
+ | `list_categories` | 列出所有分类 |
309
+
310
+ ### 可用资源(Resources)
311
+
312
+ - `delta-force://weapons` — 全部武器 JSON
313
+ - `delta-force://operators` — 全部干员 JSON
314
+ - `delta-force://equipment` — 全部装备 JSON
315
+ - `delta-force://ammo` — 全部子弹 JSON
316
+
317
+ ### 用户示例
318
+
319
+ 用户在 Claude Desktop 说:
320
+ > "帮我抽一套三角洲配装"
321
+
322
+ AI 会**自动调用** `get_random_loadout`,返回**真实数据**。
323
+
324
+ ---
325
+
217
326
  <a id="quick-start"></a>
218
327
  ## 🚀 快速开始
219
328
 
@@ -264,6 +373,11 @@ console.log(data.weapons);
264
373
  console.log(data.equipment.helmets);
265
374
  ```
266
375
 
376
+ ### 场景 5 · 我是 AI 用户
377
+
378
+ 配置 MCP Server(见 [MCP Server](#mcp) 段),然后对 AI 说:
379
+ > "帮我抽一套三角洲配装"
380
+
267
381
  ---
268
382
 
269
383
  <a id="concepts"></a>
@@ -301,6 +415,8 @@ console.log(data.equipment.helmets);
301
415
 
302
416
  > 💡 **提示**:所有以 `defaultEngine` 形式导出的函数,等价于先 `createEngine()` 再调用。想自定义行为用 `createEngine`。
303
417
 
418
+ > 📖 **完整 API**:见 [Wiki](https://github.com/Zhoyi011/delta-force-core/wiki) 或 [llms-full.txt](./llms-full.txt)。
419
+
304
420
  <a id="api-engine"></a>
305
421
  ### 引擎(Engine)
306
422
 
@@ -662,16 +778,17 @@ interface Ammo {
662
778
  import { AMMO } from 'delta-force-core';
663
779
  ```
664
780
 
665
- **当前口径**(19 种):
781
+ **当前口径**(21 种):
666
782
 
667
783
  | 手枪 / 霰弹 | 中间威力 | 全威力 | 其它 |
668
784
  |---|---|---|---|
669
785
  | `.357 Magnum` | `5.45x39mm` | `7.62x51mm` | `4.6x30mm` |
670
786
  | `.45 ACP` | `5.56x45mm` | `7.62x54mm` | `.300 Blackout` |
671
- | `.58 AE` | `5.7x28mm` | `12.7x55mm` | `箭矢` |
672
- | `12 Gauge` | `5.8x42mm` | | `45-70 Govt` |
673
- | `9x19mm` | `6.8x51mm` | | |
674
- | `9x39mm` | `7.62x39mm` | | |
787
+ | `.50 AE` | `5.7x28mm` | `12.7x55mm` | `箭矢` |
788
+ | `.338` | `5.8x42mm` | `12.7x99mm` | `45-70 Govt` |
789
+ | `12 Gauge` | `6.8x51mm` | | |
790
+ | `9x19mm` | `7.62x39mm` | | |
791
+ | `9x39mm` | | | |
675
792
 
676
793
  ---
677
794
 
@@ -683,7 +800,7 @@ import { AMMO } from 'delta-force-core';
683
800
  ```json
684
801
  {
685
802
  "$schema": "https://raw.githubusercontent.com/delta-force-core/schema/main/v1.json",
686
- "version": "0.2.0",
803
+ "version": "0.4.0",
687
804
  "generatedAt": "2026-10-14T00:34:01.102Z",
688
805
  "operators": [...],
689
806
  "weapons": [...],
@@ -697,6 +814,7 @@ import { AMMO } from 'delta-force-core';
697
814
  - 🐍 非 JS 环境(如 Python 脚本)直接消费
698
815
  - 🌐 CDN 直接 fetch(`https://unpkg.com/delta-force-core/index.json`)
699
816
  - 📊 数据 diff 检查
817
+ - 🧠 AI 直接读数据
700
818
 
701
819
  ```js
702
820
  // ESM
@@ -723,6 +841,10 @@ const data = await res.json();
723
841
  | **Bun** | `bun add delta-force-core` |
724
842
  | **Python** | 读 `index.json` |
725
843
  | **Discord.js** | 见下方示例 |
844
+ | **Claude Desktop** | MCP Server |
845
+ | **Cursor** | MCP Server |
846
+ | **Cline / Continue.dev** | MCP Server |
847
+ | **AI Studio / ChatGPT** | 读 `llms.txt` 或 fetch `index.json` |
726
848
 
727
849
  ### Discord.js 示例
728
850
 
@@ -750,6 +872,19 @@ client.on(Events.InteractionCreate, async (interaction) => {
750
872
  });
751
873
  ```
752
874
 
875
+ ### Claude Desktop / Cursor MCP 配置
876
+
877
+ ```json
878
+ {
879
+ "mcpServers": {
880
+ "delta-force": {
881
+ "command": "npx",
882
+ "args": ["-y", "-p", "delta-force-core", "delta-force-mcp"]
883
+ }
884
+ }
885
+ }
886
+ ```
887
+
753
888
  ---
754
889
 
755
890
  <a id="contributing"></a>
@@ -869,14 +1004,19 @@ delta-force-core/
869
1004
  ├─ tsconfig.json
870
1005
  ├─ README.md
871
1006
  ├─ README.en.md
1007
+ ├─ llms.txt ← AI 索引
1008
+ ├─ llms-full.txt ← AI 全文
872
1009
  ├─ LICENSE
873
1010
  ├─ CONTRIBUTING.md
874
1011
  ├─ index.json ← 构建产物
1012
+ ├─ bin/
1013
+ │ └─ mcp.js ← MCP CLI 入口
875
1014
  ├─ scripts/
876
1015
  │ └─ emit-json.mjs ← 生成 index.json
877
1016
  ├─ src/
878
1017
  │ ├─ types.ts ← 所有类型定义
879
1018
  │ ├─ engine.ts ← 引擎(createEngine + 全部方法)
1019
+ │ ├─ mcp.ts ← MCP Server 逻辑
880
1020
  │ ├─ index.ts ← 主入口
881
1021
  │ └─ data/
882
1022
  │ ├─ index.ts ← 数据统一导出
@@ -884,6 +1024,8 @@ delta-force-core/
884
1024
  │ ├─ weapons.ts ← 武器数据
885
1025
  │ ├─ equipment.ts ← 装备数据
886
1026
  │ └─ ammo.ts ← 子弹数据
1027
+ ├─ assets/
1028
+ │ └─ weapons/ ← 武器图片
887
1029
  └─ .github/
888
1030
  └─ workflows/ ← CI / 自动发布
889
1031
  ```
@@ -894,17 +1036,18 @@ delta-force-core/
894
1036
  npm run build # 编译 + 生成 index.json
895
1037
  npm run dev # 开发模式(watch)
896
1038
  npm run emit-json # 只生成 index.json
1039
+ npm run mcp # 启动 MCP Server
897
1040
  ```
898
1041
 
899
1042
  ### 发布到 npm
900
1043
 
901
- ```bash
902
- # 1. 更新版本号
903
- npm version patch # 或 minor / major
1044
+ **已配置 GitHub Actions 自动发布**:
904
1045
 
905
- # 2. 发布(会自动跑 prepublishOnly → npm run build)
906
- npm publish
907
- ```
1046
+ - `feat:` 前缀 → minor bump
1047
+ - `fix:` / `data:` / `refactor:` / `perf:` → patch bump
1048
+ - `feat!:` 或 `BREAKING CHANGE` → major bump
1049
+
1050
+ 发布用 **OIDC Trusted Publisher**(无需 token),带 **Provenance 签名**。
908
1051
 
909
1052
  ---
910
1053
 
@@ -919,10 +1062,11 @@ npm publish
919
1062
  </tr>
920
1063
  <tr><td>✅ 已完成</td><td>干员 / 武器 / 装备 / 子弹</td><td>v0.1</td></tr>
921
1064
  <tr><td>✅ 已完成</td><td>引擎 + 用户覆盖层(quality / alias / tag)</td><td>v0.2</td></tr>
922
- <tr><td>🔄 进行中</td><td>完整 README + 文档</td><td>v0.2.x</td></tr>
923
- <tr><td>📋 计划中</td><td>配件系统(槽位 / 兼容关系)</td><td>v0.3</td></tr>
924
- <tr><td>📋 计划中</td><td>子弹细分(1~6 弹,伤害 / 穿透)</td><td>v0.3</td></tr>
925
- <tr><td>📋 计划中</td><td>图片资源(干员 / 武器 / 装备)</td><td>v0.4</td></tr>
1065
+ <tr><td>✅ 已完成</td><td>完整 README + Wiki + AI 文档</td><td>v0.3</td></tr>
1066
+ <tr><td>✅ 已完成</td><td>MCP Server(AI 客户端集成)</td><td>v0.4</td></tr>
1067
+ <tr><td>📋 计划中</td><td>配件系统(槽位 / 兼容关系)</td><td>v0.5</td></tr>
1068
+ <tr><td>📋 计划中</td><td>子弹细分(1~6 弹,伤害 / 穿透)</td><td>v0.5</td></tr>
1069
+ <tr><td>📋 计划中</td><td>图片资源(干员 / 武器 / 装备)</td><td>v0.6</td></tr>
926
1070
  <tr><td>💭 考虑中</td><td>多语言(English / 日本語)</td><td>v1.0</td></tr>
927
1071
  </table>
928
1072
 
@@ -1000,24 +1144,40 @@ const data = require('delta-force-core/index.json');
1000
1144
  </details>
1001
1145
 
1002
1146
  <details>
1003
- <summary><b>Q7: 怎么自己部署一份 <code>index.json</code>?</b></summary>
1147
+ <summary><b>Q7: 什么是 MCP?怎么用?</b></summary>
1004
1148
 
1005
- ```bash
1006
- # fork 仓库 → 改数据 → 构建
1007
- npm run build
1008
- # dist/ 里就是最新数据,index.json 在根目录
1009
- ```
1149
+ **MCP(Model Context Protocol)** 是 AI 客户端的"工具调用协议"。
1010
1150
 
1011
- 也可以直接用 npm 包自带的:
1151
+ 配置后,Claude Desktop / Cursor / Cline 可以**直接调用** `delta-force-core` 的工具:
1012
1152
 
1153
+ ```json
1154
+ {
1155
+ "mcpServers": {
1156
+ "delta-force": {
1157
+ "command": "npx",
1158
+ "args": ["-y", "-p", "delta-force-core", "delta-force-mcp"]
1159
+ }
1160
+ }
1161
+ }
1013
1162
  ```
1014
- https://unpkg.com/delta-force-core/index.json
1015
- ```
1163
+
1164
+ 然后对 AI 说:"帮我抽一套三角洲配装" → AI **直接调用**你的工具。
1165
+
1166
+ </details>
1167
+
1168
+ <details>
1169
+ <summary><b>Q8: 怎么让 AI 用我的库?</b></summary>
1170
+
1171
+ **三种方式**:
1172
+
1173
+ 1. **MCP**(推荐):配置 MCP Server → AI 直接调用
1174
+ 2. **AI 读文档**:让 AI 读 [Wiki](https://github.com/Zhoyi011/delta-force-core/wiki) 或 [llms.txt](./llms.txt)
1175
+ 3. **AI 读数据**:让 AI fetch `https://unpkg.com/delta-force-core/index.json`
1016
1176
 
1017
1177
  </details>
1018
1178
 
1019
1179
  <details>
1020
- <summary><b>Q8: 怎么贡献数据修正?</b></summary>
1180
+ <summary><b>Q9: 怎么贡献数据修正?</b></summary>
1021
1181
 
1022
1182
  1. Fork 仓库
1023
1183
  2. 改 `src/data/*.ts`
@@ -1043,6 +1203,7 @@ https://unpkg.com/delta-force-core/index.json
1043
1203
  - 感谢所有为三角洲行动数据整理做出贡献的玩家社区
1044
1204
  - 感谢 [Shields.io](https://shields.io/) 提供徽章服务
1045
1205
  - 感谢 [unpkg](https://unpkg.com/) / [esm.sh](https://esm.sh/) 提供 CDN
1206
+ - 感谢 [Anthropic MCP](https://modelcontextprotocol.io/) 提供 AI 工具协议
1046
1207
 
1047
1208
  ---
1048
1209
 
@@ -1 +1 @@
1
- {"version":3,"file":"weapons.d.ts","sourceRoot":"","sources":["../../src/data/weapons.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAKlD,eAAO,MAAM,OAAO,EAAE,cAAc,EA4InC,CAAC"}
1
+ {"version":3,"file":"weapons.d.ts","sourceRoot":"","sources":["../../src/data/weapons.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAKlD,eAAO,MAAM,OAAO,EAAE,cAAc,EA4InC,CAAC"}
@@ -5,6 +5,8 @@
5
5
  // · 新增武器:在对应分类的 weapons 数组里追加一行
6
6
  // · 官方数据里没有 quality —— 品质由用户层评估(见 engine.ts)
7
7
  // · image:图片 URL,格式为 assets/weapons/<id>.png
8
+ // · baseDamage / armorDamage:裸枪伤害 / 护甲伤害
9
+ // · pelletCount:弹丸数(仅霰弹枪)
8
10
  // =====================================================
9
11
  /** 图片 URL 前缀(GitHub Raw) */
10
12
  const IMG = 'https://raw.githubusercontent.com/Zhoyi011/delta-force-core/main/assets/weapons';
@@ -15,30 +17,30 @@ export const WEAPONS = [
15
17
  {
16
18
  category: '突击步枪',
17
19
  weapons: [
18
- { id: 'm4a1', name: 'M4A1突击步枪', caliber: '5.56x45mm', allowNormal: true, image: `${IMG}/m4a1.png` },
19
- { id: 'k416', name: 'K416突击步枪', caliber: '5.56x45mm', allowNormal: true, image: `${IMG}/k416.png` },
20
- { id: 'akm', name: 'AKM突击步枪', caliber: '7.62x39mm', allowNormal: true, image: `${IMG}/akm.png` },
21
- { id: 'qbz95_1', name: 'QBZ-95-1突击步枪', caliber: '5.8x42mm', allowNormal: true, image: `${IMG}/qbz95_1.png` },
22
- { id: 'as_val', name: 'AS Val「巨浪」突击步枪', caliber: '9x39mm', allowNormal: true, image: `${IMG}/as_val.png` },
23
- { id: 'tenglong', name: '腾龙突击步枪(QBZ-191)', caliber: '5.8x42mm', allowNormal: true, image: `${IMG}/tenglong.png` },
24
- { id: 'm7', name: 'M7战斗步枪', caliber: '6.8x51mm', allowNormal: true, image: `${IMG}/m7.png` },
25
- { id: 'scar_h', name: 'SCAR-H战斗步枪', caliber: '7.62x51mm', allowNormal: true, image: `${IMG}/scar_h.png` },
26
- { id: 'g3', name: 'G3战斗步枪', caliber: '7.62x51mm', allowNormal: true, image: `${IMG}/g3.png` },
27
- { id: 'ak12', name: 'AK-12突击步枪', caliber: '5.45x39mm', allowNormal: true, image: `${IMG}/ak12.png` },
28
- { id: 'aug', name: 'AUG突击步枪', caliber: '5.56x45mm', allowNormal: true, image: `${IMG}/aug.png` },
29
- { id: 'sg552', name: 'SG552突击步枪', caliber: '5.56x45mm', allowNormal: true, image: `${IMG}/sg552.png` },
30
- { id: 'm16a4', name: 'M16A4突击步枪', caliber: '5.56x45mm', allowNormal: true, image: `${IMG}/m16a4.png` },
31
- { id: 'car15', name: 'CAR-15突击步枪', caliber: '5.56x45mm', allowNormal: true, image: `${IMG}/car15.png` },
32
- { id: 'aks74u', name: 'AKS-74U突击步枪', caliber: '5.45x39mm', allowNormal: true, image: `${IMG}/aks74u.png` },
33
- { id: 'k437', name: 'K437突击步枪', caliber: '5.56x45mm', allowNormal: true, image: `${IMG}/k437.png` },
34
- { id: 'ptr32', name: 'PTR-32突击步枪', caliber: '7.62x39mm', allowNormal: true, image: `${IMG}/ptr32.png` },
35
- { id: 'ash12', name: 'ASh-12战斗步枪', caliber: '12.7x55mm', allowNormal: true, image: `${IMG}/ash12.png` },
36
- { id: 'kc17', name: 'KC17突击步枪', caliber: '5.56x45mm', allowNormal: true, image: `${IMG}/kc17.png` },
37
- { id: 'mk47', name: 'MK47突击步枪', caliber: '7.62x39mm', allowNormal: true, image: `${IMG}/mk47.png` },
38
- { id: 'mcx_lt', name: 'MCX LT突击步枪', caliber: '.300 Blackout', allowNormal: true, image: `${IMG}/mcx_lt.png` },
39
- { id: 'ar57', name: 'AR-57突击步枪', caliber: '5.7x28mm', allowNormal: true, image: `${IMG}/ar57.png` },
40
- { id: 'rm277', name: 'RM277突击步枪', caliber: '6.8x51mm', allowNormal: true, image: `${IMG}/rm277.png` },
41
- { id: 'mdr', name: 'MDR突击步枪', caliber: '5.56x45mm', allowNormal: true, image: `${IMG}/mdr.png` },
20
+ { id: 'm4a1', name: 'M4A1突击步枪', caliber: '5.56x45mm', baseDamage: 31, armorDamage: 33, allowNormal: true, image: `${IMG}/m4a1.png` },
21
+ { id: 'k416', name: 'K416突击步枪', caliber: '5.56x45mm', baseDamage: 31, armorDamage: 35, allowNormal: true, image: `${IMG}/k416.png` },
22
+ { id: 'akm', name: 'AKM突击步枪', caliber: '7.62x39mm', baseDamage: 40, armorDamage: 42, allowNormal: true, image: `${IMG}/akm.png` },
23
+ { id: 'qbz95_1', name: 'QBZ-95-1突击步枪', caliber: '5.8x42mm', baseDamage: 28, armorDamage: 42, allowNormal: true, image: `${IMG}/qbz95_1.png` },
24
+ { id: 'as_val', name: 'AS Val「巨浪」突击步枪', caliber: '9x39mm', baseDamage: 28, armorDamage: 44, allowNormal: true, image: `${IMG}/as_val.png` },
25
+ { id: 'tenglong', name: '腾龙突击步枪(QBZ-191)', caliber: '5.8x42mm', baseDamage: 35, armorDamage: 38, allowNormal: true, image: `${IMG}/tenglong.png` },
26
+ { id: 'm7', name: 'M7战斗步枪', caliber: '6.8x51mm', baseDamage: 37, armorDamage: 40, allowNormal: true, image: `${IMG}/m7.png` },
27
+ { id: 'scar_h', name: 'SCAR-H战斗步枪', caliber: '7.62x51mm', baseDamage: 40, armorDamage: 41, allowNormal: true, image: `${IMG}/scar_h.png` },
28
+ { id: 'g3', name: 'G3战斗步枪', caliber: '7.62x51mm', baseDamage: 39, armorDamage: 42, allowNormal: true, image: `${IMG}/g3.png` },
29
+ { id: 'ak12', name: 'AK-12突击步枪', caliber: '5.45x39mm', baseDamage: 30, armorDamage: 42, allowNormal: true, image: `${IMG}/ak12.png` },
30
+ { id: 'aug', name: 'AUG突击步枪', caliber: '5.56x45mm', baseDamage: 32, armorDamage: 35, allowNormal: true, image: `${IMG}/aug.png` },
31
+ { id: 'sg552', name: 'SG552突击步枪', caliber: '5.56x45mm', baseDamage: 25, armorDamage: 34, allowNormal: true, image: `${IMG}/sg552.png` },
32
+ { id: 'm16a4', name: 'M16A4突击步枪', caliber: '5.56x45mm', baseDamage: 33, armorDamage: 39, allowNormal: true, image: `${IMG}/m16a4.png` },
33
+ { id: 'car15', name: 'CAR-15突击步枪', caliber: '5.56x45mm', baseDamage: 27, armorDamage: 32, allowNormal: true, image: `${IMG}/car15.png` },
34
+ { id: 'aks74u', name: 'AKS-74U突击步枪', caliber: '5.45x39mm', baseDamage: 34, armorDamage: 36, allowNormal: true, image: `${IMG}/aks74u.png` },
35
+ { id: 'k437', name: 'K437突击步枪', caliber: '5.56x45mm', baseDamage: 36, armorDamage: 32, allowNormal: true, image: `${IMG}/k437.png` },
36
+ { id: 'ptr32', name: 'PTR-32突击步枪', caliber: '7.62x39mm', baseDamage: 36, armorDamage: 37, allowNormal: true, image: `${IMG}/ptr32.png` },
37
+ { id: 'ash12', name: 'ASh-12战斗步枪', caliber: '12.7x55mm', baseDamage: 56, armorDamage: 55, allowNormal: true, image: `${IMG}/ash12.png` },
38
+ { id: 'kc17', name: 'KC17突击步枪', caliber: '5.56x45mm', baseDamage: 32, armorDamage: 48, allowNormal: true, image: `${IMG}/kc17.png` },
39
+ { id: 'mk47', name: 'MK47突击步枪', caliber: '7.62x39mm', baseDamage: 42, armorDamage: 46, allowNormal: true, image: `${IMG}/mk47.png` },
40
+ { id: 'mcx_lt', name: 'MCX LT突击步枪', caliber: '.300 Blackout', baseDamage: 35, armorDamage: 26, allowNormal: true, image: `${IMG}/mcx_lt.png` },
41
+ { id: 'ar57', name: 'AR-57突击步枪', caliber: '5.7x28mm', baseDamage: 30, armorDamage: 31, allowNormal: true, image: `${IMG}/ar57.png` },
42
+ { id: 'rm277', name: 'RM277突击步枪', caliber: '6.8x51mm', baseDamage: 41, armorDamage: 42, allowNormal: true, image: `${IMG}/rm277.png` },
43
+ { id: 'mdr', name: 'MDR突击步枪', caliber: '5.56x45mm', baseDamage: 41, armorDamage: 43, allowNormal: true, image: `${IMG}/mdr.png` },
42
44
  ],
43
45
  },
44
46
  // ---------------------------------------------------
@@ -47,18 +49,18 @@ export const WEAPONS = [
47
49
  {
48
50
  category: '冲锋枪',
49
51
  weapons: [
50
- { id: 'uzi', name: 'UZI冲锋枪', caliber: '9x19mm', allowNormal: true, image: `${IMG}/uzi.png` },
51
- { id: 'bizon', name: '野牛冲锋枪', caliber: '9x19mm', allowNormal: true, image: `${IMG}/bizon.png` },
52
- { id: 'vityaz', name: '勇士冲锋枪', caliber: '9x19mm', allowNormal: true, image: `${IMG}/vityaz.png` },
53
- { id: 'mp5', name: 'MP5冲锋枪', caliber: '9x19mm', allowNormal: true, image: `${IMG}/mp5.png` },
54
- { id: 'smg45', name: 'SMG-45冲锋枪', caliber: '.45 ACP', allowNormal: true, image: `${IMG}/smg45.png` },
55
- { id: 'sr3m', name: 'SR-3M冲锋枪', caliber: '9x39mm', allowNormal: true, image: `${IMG}/sr3m.png` },
56
- { id: 'p90', name: 'P90冲锋枪', caliber: '5.7x28mm', allowNormal: true, image: `${IMG}/p90.png` },
57
- { id: 'mp7', name: 'MP7冲锋枪', caliber: '4.6x30mm', allowNormal: true, image: `${IMG}/mp7.png` },
58
- { id: 'vector', name: 'Vector冲锋枪', caliber: '.45 ACP', allowNormal: true, image: `${IMG}/vector.png` },
59
- { id: 'qcq171', name: 'QCQ171冲锋枪(二〇式)', caliber: '9x19mm', allowNormal: true, image: `${IMG}/qcq171.png` },
60
- { id: 'mk4', name: 'MK4冲锋枪', caliber: '9x19mm', allowNormal: true, image: `${IMG}/mk4.png` },
61
- { id: 'thompson', name: '汤姆逊冲锋枪', caliber: '.45 ACP', allowNormal: true, image: `${IMG}/thompson.png` },
52
+ { id: 'uzi', name: 'UZI冲锋枪', caliber: '9x19mm', baseDamage: 28, armorDamage: 35, allowNormal: true, image: `${IMG}/uzi.png` },
53
+ { id: 'bizon', name: '野牛冲锋枪', caliber: '9x19mm', baseDamage: 32, armorDamage: 35, allowNormal: true, image: `${IMG}/bizon.png` },
54
+ { id: 'vityaz', name: '勇士冲锋枪', caliber: '9x19mm', baseDamage: 36, armorDamage: 35, allowNormal: true, image: `${IMG}/vityaz.png` },
55
+ { id: 'mp5', name: 'MP5冲锋枪', caliber: '9x19mm', baseDamage: 30, armorDamage: 32, allowNormal: true, image: `${IMG}/mp5.png` },
56
+ { id: 'smg45', name: 'SMG-45冲锋枪', caliber: '.45 ACP', baseDamage: 35, armorDamage: 40, allowNormal: true, image: `${IMG}/smg45.png` },
57
+ { id: 'sr3m', name: 'SR-3M冲锋枪', caliber: '9x39mm', baseDamage: 36, armorDamage: 48, allowNormal: true, image: `${IMG}/sr3m.png` },
58
+ { id: 'p90', name: 'P90冲锋枪', caliber: '5.7x28mm', baseDamage: 32, armorDamage: 35, allowNormal: true, image: `${IMG}/p90.png` },
59
+ { id: 'mp7', name: 'MP7冲锋枪', caliber: '4.6x30mm', baseDamage: 32, armorDamage: 28, allowNormal: true, image: `${IMG}/mp7.png` },
60
+ { id: 'vector', name: 'Vector冲锋枪', caliber: '.45 ACP', baseDamage: 32, armorDamage: 28, allowNormal: true, image: `${IMG}/vector.png` },
61
+ { id: 'qcq171', name: 'QCQ171冲锋枪(二〇式)', caliber: '9x19mm', baseDamage: 36, armorDamage: 33, allowNormal: true, image: `${IMG}/qcq171.png` },
62
+ { id: 'mk4', name: 'MK4冲锋枪', caliber: '9x19mm', baseDamage: 34, armorDamage: 30, allowNormal: true, image: `${IMG}/mk4.png` },
63
+ { id: 'thompson', name: '汤姆逊冲锋枪', caliber: '.45 ACP', baseDamage: 34, armorDamage: 36, allowNormal: true, image: `${IMG}/thompson.png` },
62
64
  ],
63
65
  },
64
66
  // ---------------------------------------------------
@@ -67,16 +69,16 @@ export const WEAPONS = [
67
69
  {
68
70
  category: '精确射手步枪',
69
71
  weapons: [
70
- { id: 'sr9', name: 'SR9射手步枪', caliber: '7.62x51mm', allowNormal: true, image: `${IMG}/sr9.png` },
71
- { id: 'mini14', name: 'Mini-14射手步枪', caliber: '5.56x45mm', allowNormal: true, image: `${IMG}/mini14.png` },
72
- { id: 'm14', name: 'M14战斗射手步枪', caliber: '7.62x51mm', allowNormal: true, image: `${IMG}/m14.png` },
73
- { id: 'sks', name: 'SKS射手步枪', caliber: '7.62x39mm', allowNormal: true, image: `${IMG}/sks.png` },
74
- { id: 'psg1', name: 'PSG-1射手步枪', caliber: '7.62x51mm', allowNormal: true, image: `${IMG}/psg1.png` },
75
- { id: 'vss', name: 'VSS射手步枪', caliber: '9x39mm', allowNormal: true, image: `${IMG}/vss.png` },
76
- { id: 'svd', name: 'SVD狙击步枪', caliber: '7.62x54mm', allowNormal: true, image: `${IMG}/svd.png` },
77
- { id: 'sr25', name: 'SR-25射手步枪', caliber: '7.62x51mm', allowNormal: true, image: `${IMG}/sr25.png` },
78
- { id: 'marlin', name: '马林杠杆式步枪', caliber: '45-70 Govt', allowNormal: true, image: `${IMG}/marlin.png` },
79
- { id: 'svch', name: 'SVCH射手步枪', caliber: '7.62x54mm', allowNormal: true, image: `${IMG}/svch.png` },
72
+ { id: 'sr9', name: 'SR9射手步枪', caliber: '7.62x51mm', baseDamage: 50, armorDamage: 55, allowNormal: true, image: `${IMG}/sr9.png` },
73
+ { id: 'mini14', name: 'Mini-14射手步枪', caliber: '5.56x45mm', baseDamage: 34, armorDamage: 38, allowNormal: true, image: `${IMG}/mini14.png` },
74
+ { id: 'm14', name: 'M14战斗射手步枪', caliber: '7.62x51mm', baseDamage: 39, armorDamage: 41, allowNormal: true, image: `${IMG}/m14.png` },
75
+ { id: 'sks', name: 'SKS射手步枪', caliber: '7.62x39mm', baseDamage: 48, armorDamage: 49, allowNormal: true, image: `${IMG}/sks.png` },
76
+ { id: 'psg1', name: 'PSG-1射手步枪', caliber: '7.62x51mm', baseDamage: 50, armorDamage: 55, allowNormal: true, image: `${IMG}/psg1.png` },
77
+ { id: 'vss', name: 'VSS射手步枪', caliber: '9x39mm', baseDamage: 40, armorDamage: 48, allowNormal: true, image: `${IMG}/vss.png` },
78
+ { id: 'svd', name: 'SVD狙击步枪', caliber: '7.62x54mm', baseDamage: 56, armorDamage: 56, allowNormal: true, image: `${IMG}/svd.png` },
79
+ { id: 'sr25', name: 'SR-25射手步枪', caliber: '7.62x51mm', baseDamage: 50, armorDamage: 56, allowNormal: true, image: `${IMG}/sr25.png` },
80
+ { id: 'marlin', name: '马林杠杆式步枪', caliber: '45-70 Govt', baseDamage: 70, armorDamage: 25, allowNormal: true, image: `${IMG}/marlin.png` },
81
+ { id: 'svch', name: 'SVCH射手步枪', caliber: '7.62x54mm', baseDamage: 47, armorDamage: 46, allowNormal: true, image: `${IMG}/svch.png` },
80
82
  ],
81
83
  },
82
84
  // ---------------------------------------------------
@@ -85,11 +87,11 @@ export const WEAPONS = [
85
87
  {
86
88
  category: '狙击步枪',
87
89
  weapons: [
88
- { id: 'sv98', name: 'SV-98狙击步枪', caliber: '7.62x54mm', allowNormal: true, image: `${IMG}/sv98.png` },
89
- { id: 'r93', name: 'R93狙击步枪', caliber: '7.62x51mm', allowNormal: true, image: `${IMG}/r93.png` },
90
- { id: 'm700', name: 'M700狙击步枪', caliber: '7.62x51mm', allowNormal: true, image: `${IMG}/m700.png` },
91
- { id: 'awm', name: 'AWM重型狙击步枪', caliber: '.338', allowNormal: false, image: `${IMG}/awm.png` },
92
- { id: 'm82', name: 'M82重型狙击步枪', caliber: '12.7x99mm', allowNormal: false, image: `${IMG}/m82.png` },
90
+ { id: 'sv98', name: 'SV-98狙击步枪', caliber: '7.62x54mm', baseDamage: 60, armorDamage: 58, allowNormal: true, image: `${IMG}/sv98.png` },
91
+ { id: 'r93', name: 'R93狙击步枪', caliber: '7.62x51mm', baseDamage: 61, armorDamage: 58, allowNormal: true, image: `${IMG}/r93.png` },
92
+ { id: 'm700', name: 'M700狙击步枪', caliber: '7.62x51mm', baseDamage: 61, armorDamage: 58, allowNormal: true, image: `${IMG}/m700.png` },
93
+ { id: 'awm', name: 'AWM重型狙击步枪', caliber: '.338', baseDamage: 100, armorDamage: 10, allowNormal: false, image: `${IMG}/awm.png` },
94
+ { id: 'm82', name: 'M82重型狙击步枪', caliber: '12.7x99mm', baseDamage: 100, armorDamage: 20, allowNormal: false, image: `${IMG}/m82.png` },
93
95
  ],
94
96
  },
95
97
  // ---------------------------------------------------
@@ -98,10 +100,10 @@ export const WEAPONS = [
98
100
  {
99
101
  category: '轻机枪',
100
102
  weapons: [
101
- { id: 'm249', name: 'M249轻机枪', caliber: '5.56x45mm', allowNormal: true, image: `${IMG}/m249.png` },
102
- { id: 'pkm', name: 'PKM通用机枪', caliber: '7.62x54mm', allowNormal: true, image: `${IMG}/pkm.png` },
103
- { id: 'qjb201', name: 'QJB-201轻机枪', caliber: '5.8x42mm', allowNormal: true, image: `${IMG}/qjb201.png` },
104
- { id: 'm250', name: 'M250通用机枪', caliber: '6.8x51mm', allowNormal: false, image: `${IMG}/m250.png` },
103
+ { id: 'm249', name: 'M249轻机枪', caliber: '5.56x45mm', baseDamage: 30, armorDamage: 38, allowNormal: true, image: `${IMG}/m249.png` },
104
+ { id: 'pkm', name: 'PKM通用机枪', caliber: '7.62x54mm', baseDamage: 25, armorDamage: 42, allowNormal: true, image: `${IMG}/pkm.png` },
105
+ { id: 'qjb201', name: 'QJB-201轻机枪', caliber: '5.8x42mm', baseDamage: 32, armorDamage: 38, allowNormal: true, image: `${IMG}/qjb201.png` },
106
+ { id: 'm250', name: 'M250通用机枪', caliber: '6.8x51mm', baseDamage: 55, armorDamage: 53, allowNormal: false, image: `${IMG}/m250.png` },
105
107
  ],
106
108
  },
107
109
  // ---------------------------------------------------
@@ -110,11 +112,11 @@ export const WEAPONS = [
110
112
  {
111
113
  category: '霰弹枪',
112
114
  weapons: [
113
- { id: 'm870', name: 'M870霰弹枪', caliber: '12 Gauge', allowNormal: true, image: `${IMG}/m870.png` },
114
- { id: 'm1014', name: 'M1014半自动霰弹枪', caliber: '12 Gauge', allowNormal: true, image: `${IMG}/m1014.png` },
115
- { id: 's12k', name: 'S12K连发霰弹枪', caliber: '12 Gauge', allowNormal: true, image: `${IMG}/s12k.png` },
116
- { id: 'double_barrel_725', name: '725双管霰弹枪', caliber: '12 Gauge', allowNormal: true, image: `${IMG}/double_barrel_725.png` },
117
- { id: 'fs12', name: 'FS12霰弹枪', caliber: '12 Gauge', allowNormal: true, image: `${IMG}/fs12.png` },
115
+ { id: 'm870', name: 'M870霰弹枪', caliber: '12 Gauge', baseDamage: 17, armorDamage: 16, pelletCount: 8, allowNormal: true, image: `${IMG}/m870.png` },
116
+ { id: 'm1014', name: 'M1014半自动霰弹枪', caliber: '12 Gauge', baseDamage: 14, armorDamage: 16, pelletCount: 8, allowNormal: true, image: `${IMG}/m1014.png` },
117
+ { id: 's12k', name: 'S12K连发霰弹枪', caliber: '12 Gauge', baseDamage: 13, armorDamage: 16, pelletCount: 8, allowNormal: true, image: `${IMG}/s12k.png` },
118
+ { id: 'double_barrel_725', name: '725双管霰弹枪', caliber: '12 Gauge', baseDamage: 17, armorDamage: 18, pelletCount: 8, allowNormal: true, image: `${IMG}/double_barrel_725.png` },
119
+ { id: 'fs12', name: 'FS12霰弹枪', caliber: '12 Gauge', baseDamage: 16, armorDamage: 16, pelletCount: 8, allowNormal: true, image: `${IMG}/fs12.png` },
118
120
  ],
119
121
  },
120
122
  // ---------------------------------------------------
@@ -123,13 +125,13 @@ export const WEAPONS = [
123
125
  {
124
126
  category: '手枪',
125
127
  weapons: [
126
- { id: 'g17', name: 'G17手枪', caliber: '9x19mm', allowNormal: true, image: `${IMG}/g17.png` },
127
- { id: 'qsz92g', name: 'QSZ92G手枪', caliber: '9x19mm', allowNormal: true, image: `${IMG}/qsz92g.png` },
128
- { id: 'desert_eagle', name: '沙漠之鹰', caliber: '.50 AE', allowNormal: true, image: `${IMG}/desert_eagle.png` },
129
- { id: '93r', name: '93R手枪', caliber: '9x19mm', allowNormal: true, image: `${IMG}/93r.png` },
130
- { id: 'g18', name: 'G18手枪', caliber: '9x19mm', allowNormal: true, image: `${IMG}/g18.png` },
131
- { id: 'revolver_357', name: '.357左轮手枪', caliber: '.357 Magnum', allowNormal: true, image: `${IMG}/revolver_357.png` },
132
- { id: 'm1911', name: 'M1911手枪', caliber: '.45 ACP', allowNormal: true, image: `${IMG}/m1911.png` },
128
+ { id: 'g17', name: 'G17手枪', caliber: '9x19mm', baseDamage: 27, armorDamage: 25, allowNormal: true, image: `${IMG}/g17.png` },
129
+ { id: 'qsz92g', name: 'QSZ92G手枪', caliber: '9x19mm', baseDamage: 32, armorDamage: 32, allowNormal: true, image: `${IMG}/qsz92g.png` },
130
+ { id: 'desert_eagle', name: '沙漠之鹰', caliber: '.50 AE', baseDamage: 56, armorDamage: 53, allowNormal: true, image: `${IMG}/desert_eagle.png` },
131
+ { id: '93r', name: '93R手枪', caliber: '9x19mm', baseDamage: 34, armorDamage: 32, allowNormal: true, image: `${IMG}/93r.png` },
132
+ { id: 'g18', name: 'G18手枪', caliber: '9x19mm', baseDamage: 23, armorDamage: 16, allowNormal: true, image: `${IMG}/g18.png` },
133
+ { id: 'revolver_357', name: '.357左轮手枪', caliber: '.357 Magnum', baseDamage: 56, armorDamage: 39, allowNormal: true, image: `${IMG}/revolver_357.png` },
134
+ { id: 'm1911', name: 'M1911手枪', caliber: '.45 ACP', baseDamage: 40, armorDamage: 30, allowNormal: true, image: `${IMG}/m1911.png` },
133
135
  ],
134
136
  },
135
137
  // ---------------------------------------------------
@@ -138,7 +140,7 @@ export const WEAPONS = [
138
140
  {
139
141
  category: '特殊武器',
140
142
  weapons: [
141
- { id: 'compound_bow', name: '战术复合弓', caliber: '箭矢', allowNormal: true, image: `${IMG}/compound_bow.png` },
143
+ { id: 'compound_bow', name: '战术复合弓', caliber: '箭矢', baseDamage: 90, armorDamage: 65, allowNormal: true, image: `${IMG}/compound_bow.png` },
142
144
  ],
143
145
  },
144
146
  ];