koishi-plugin-ggcevo-game 1.4.61 → 1.4.63
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/lib/boss/BattleEffectProcessor.d.ts +22 -10
- package/lib/boss/boss.d.ts +6 -0
- package/lib/boss/damagecalculation.d.ts +1 -2
- package/lib/index.js +399 -278
- package/lib/tasks.d.ts +6 -11
- package/lib/weapons.d.ts +60 -15
- package/package.json +1 -1
package/lib/index.js
CHANGED
|
@@ -37,10 +37,12 @@ var weaponConfig = {
|
|
|
37
37
|
type: "实弹武器",
|
|
38
38
|
category: "实弹武器",
|
|
39
39
|
damage: 10,
|
|
40
|
+
armorDamageReduction: 1,
|
|
41
|
+
// 每点护甲减伤1点伤害
|
|
40
42
|
description: "标准配置武器,中距离作战利器",
|
|
41
43
|
specialeffect: "",
|
|
42
44
|
price: 100,
|
|
43
|
-
redCrystalCost:
|
|
45
|
+
redCrystalCost: 1,
|
|
44
46
|
isantiair: true,
|
|
45
47
|
tagEffects: {
|
|
46
48
|
"轻甲": 1.5
|
|
@@ -52,15 +54,14 @@ var weaponConfig = {
|
|
|
52
54
|
type: "能量武器",
|
|
53
55
|
category: "能量武器",
|
|
54
56
|
damage: 23,
|
|
57
|
+
armorDamageReduction: 0,
|
|
55
58
|
description: "先进激光武器,远距离精准打击",
|
|
56
59
|
specialeffect: "",
|
|
57
60
|
price: 300,
|
|
58
|
-
redCrystalCost:
|
|
61
|
+
redCrystalCost: 3,
|
|
59
62
|
isantiair: true,
|
|
60
63
|
tagEffects: {
|
|
61
|
-
"重甲": 1.5
|
|
62
|
-
// 对重甲目标造成150%伤害
|
|
63
|
-
"护盾": 0.5
|
|
64
|
+
"重甲": 1.5
|
|
64
65
|
}
|
|
65
66
|
},
|
|
66
67
|
"焚烧枪": {
|
|
@@ -68,14 +69,15 @@ var weaponConfig = {
|
|
|
68
69
|
type: "热能武器",
|
|
69
70
|
category: "热能武器",
|
|
70
71
|
damage: 20,
|
|
72
|
+
armorDamageReduction: 0.25,
|
|
71
73
|
description: "基于热能的强大武器,烧烬一切",
|
|
72
74
|
specialeffect: "",
|
|
73
75
|
price: 450,
|
|
74
|
-
redCrystalCost:
|
|
76
|
+
redCrystalCost: 4,
|
|
75
77
|
isantiair: false,
|
|
76
78
|
tagEffects: {
|
|
77
|
-
"惧热":
|
|
78
|
-
"生物": 1.
|
|
79
|
+
"惧热": 1.5,
|
|
80
|
+
"生物": 1.2,
|
|
79
81
|
"护盾": 0.5
|
|
80
82
|
}
|
|
81
83
|
},
|
|
@@ -84,25 +86,26 @@ var weaponConfig = {
|
|
|
84
86
|
type: "能量武器",
|
|
85
87
|
category: "能量武器",
|
|
86
88
|
damage: 28,
|
|
89
|
+
armorDamageReduction: 0,
|
|
87
90
|
description: "由激光步枪改良而来,高效的对重甲武器",
|
|
88
91
|
specialeffect: "",
|
|
89
92
|
price: 850,
|
|
90
|
-
redCrystalCost:
|
|
93
|
+
redCrystalCost: 8,
|
|
91
94
|
isantiair: true,
|
|
92
95
|
tagEffects: {
|
|
93
|
-
"重甲": 1.
|
|
94
|
-
"护盾": 0.2
|
|
96
|
+
"重甲": 1.75
|
|
95
97
|
}
|
|
96
98
|
},
|
|
97
99
|
"等离子切割机": {
|
|
98
100
|
id: 5,
|
|
99
101
|
type: "实弹武器",
|
|
100
102
|
category: "实弹武器",
|
|
101
|
-
damage:
|
|
103
|
+
damage: 20,
|
|
104
|
+
armorDamageReduction: 1,
|
|
102
105
|
description: "一种改造后的采矿切割机,有效对抗重甲目标",
|
|
103
106
|
specialeffect: "",
|
|
104
107
|
price: 150,
|
|
105
|
-
redCrystalCost:
|
|
108
|
+
redCrystalCost: 1,
|
|
106
109
|
isantiair: true,
|
|
107
110
|
tagEffects: {
|
|
108
111
|
"建筑": 2,
|
|
@@ -114,44 +117,45 @@ var weaponConfig = {
|
|
|
114
117
|
id: 6,
|
|
115
118
|
type: "实弹武器",
|
|
116
119
|
category: "实弹武器",
|
|
117
|
-
damage:
|
|
120
|
+
damage: 48,
|
|
121
|
+
armorDamageReduction: 4,
|
|
118
122
|
description: "近距离攻击武器,专为遭遇战设计使用",
|
|
119
123
|
specialeffect: "",
|
|
120
124
|
price: 325,
|
|
121
|
-
redCrystalCost:
|
|
125
|
+
redCrystalCost: 3,
|
|
122
126
|
isantiair: false,
|
|
123
127
|
tagEffects: {
|
|
124
|
-
"轻甲":
|
|
125
|
-
"重甲": 0.5
|
|
128
|
+
"轻甲": 1.5
|
|
126
129
|
}
|
|
127
130
|
},
|
|
128
131
|
"侦察步枪": {
|
|
129
132
|
id: 7,
|
|
130
133
|
type: "实弹武器",
|
|
131
134
|
category: "实弹武器",
|
|
132
|
-
damage:
|
|
135
|
+
damage: 60,
|
|
136
|
+
armorDamageReduction: 3,
|
|
133
137
|
description: "用于隐秘射击的最佳武器,但是无法穿透护甲",
|
|
134
138
|
specialeffect: "",
|
|
135
139
|
price: 550,
|
|
136
|
-
redCrystalCost:
|
|
140
|
+
redCrystalCost: 5,
|
|
137
141
|
isantiair: true,
|
|
138
|
-
tagEffects: {
|
|
139
|
-
"重甲": 0.2
|
|
140
|
-
}
|
|
142
|
+
tagEffects: {}
|
|
141
143
|
},
|
|
142
144
|
"零度之下": {
|
|
143
145
|
id: 8,
|
|
144
146
|
type: "热能武器",
|
|
145
147
|
category: "热能武器",
|
|
146
148
|
damage: 22,
|
|
149
|
+
armorDamageReduction: 1,
|
|
147
150
|
description: "喷射稳定的液氮恒流,对长时间接触者造成致命的损伤",
|
|
148
151
|
specialeffect: "攻击使目标叠加“寒冷”层数,每层使其受到的伤害+2.5%(至多+50%)",
|
|
149
152
|
price: 775,
|
|
150
|
-
redCrystalCost:
|
|
153
|
+
redCrystalCost: 7,
|
|
151
154
|
isantiair: false,
|
|
152
155
|
tagEffects: {
|
|
153
156
|
"惧寒": 2,
|
|
154
|
-
"灵能": 1.5
|
|
157
|
+
"灵能": 1.5,
|
|
158
|
+
"护盾": 0.5
|
|
155
159
|
}
|
|
156
160
|
},
|
|
157
161
|
"弧焊枪": {
|
|
@@ -159,10 +163,11 @@ var weaponConfig = {
|
|
|
159
163
|
type: "能量武器",
|
|
160
164
|
category: "能量武器",
|
|
161
165
|
damage: 25,
|
|
166
|
+
armorDamageReduction: 0.5,
|
|
162
167
|
description: "一种经过改造的电动工具,可对近距离的目标放出高压电",
|
|
163
168
|
specialeffect: "攻击消耗目标200点能量",
|
|
164
169
|
price: 750,
|
|
165
|
-
redCrystalCost:
|
|
170
|
+
redCrystalCost: 7,
|
|
166
171
|
isantiair: true,
|
|
167
172
|
tagEffects: {
|
|
168
173
|
"机械": 2,
|
|
@@ -174,13 +179,15 @@ var weaponConfig = {
|
|
|
174
179
|
type: "热能武器",
|
|
175
180
|
category: "热能武器",
|
|
176
181
|
damage: 24,
|
|
182
|
+
armorDamageReduction: 0.75,
|
|
177
183
|
description: "一种高度危险性的武器,设计用辐射照射并伤害敌人",
|
|
178
184
|
specialeffect: "攻击使生物目标(无机械标签)叠加“辐射”层数,每层使其受到的伤害+2.5%(至多+50%)",
|
|
179
185
|
price: 825,
|
|
180
|
-
redCrystalCost:
|
|
186
|
+
redCrystalCost: 8,
|
|
181
187
|
isantiair: true,
|
|
182
188
|
tagEffects: {
|
|
183
189
|
"生物": 1.5,
|
|
190
|
+
"护盾": 0.5,
|
|
184
191
|
"机械": 0.2
|
|
185
192
|
}
|
|
186
193
|
},
|
|
@@ -189,10 +196,11 @@ var weaponConfig = {
|
|
|
189
196
|
type: "能量武器",
|
|
190
197
|
category: "能量武器",
|
|
191
198
|
damage: 30,
|
|
199
|
+
armorDamageReduction: 0,
|
|
192
200
|
description: "激光步枪的变种,采用折射技术升级",
|
|
193
201
|
specialeffect: "拥有“散射”效果,对其他目标造成50%的伤害",
|
|
194
202
|
price: 1450,
|
|
195
|
-
redCrystalCost:
|
|
203
|
+
redCrystalCost: 14,
|
|
196
204
|
isantiair: true,
|
|
197
205
|
tagEffects: {
|
|
198
206
|
"灵能": 1.2
|
|
@@ -203,14 +211,14 @@ var weaponConfig = {
|
|
|
203
211
|
type: "能量武器",
|
|
204
212
|
category: "能量武器",
|
|
205
213
|
damage: 30,
|
|
214
|
+
armorDamageReduction: 0.75,
|
|
206
215
|
description: "面对护盾目标而开发的武器",
|
|
207
216
|
specialeffect: "攻击无视护盾目标50%的减伤效果",
|
|
208
217
|
price: 1050,
|
|
209
|
-
redCrystalCost:
|
|
218
|
+
redCrystalCost: 10,
|
|
210
219
|
isantiair: true,
|
|
211
220
|
tagEffects: {
|
|
212
|
-
"护盾": 1.8
|
|
213
|
-
"重甲": 0.2
|
|
221
|
+
"护盾": 1.8
|
|
214
222
|
}
|
|
215
223
|
},
|
|
216
224
|
"动力钻头": {
|
|
@@ -218,10 +226,11 @@ var weaponConfig = {
|
|
|
218
226
|
type: "实弹武器",
|
|
219
227
|
category: "实弹武器",
|
|
220
228
|
damage: 30,
|
|
229
|
+
armorDamageReduction: 0.5,
|
|
221
230
|
description: "这种强大的钻头是由那些想把矿工SCV上的大螺丝用作武器的人创造的",
|
|
222
231
|
specialeffect: "",
|
|
223
232
|
price: 1e3,
|
|
224
|
-
redCrystalCost:
|
|
233
|
+
redCrystalCost: 10,
|
|
225
234
|
isantiair: true,
|
|
226
235
|
tagEffects: {
|
|
227
236
|
"建筑": 2,
|
|
@@ -233,7 +242,8 @@ var weaponConfig = {
|
|
|
233
242
|
id: 14,
|
|
234
243
|
type: "能量武器",
|
|
235
244
|
category: "能量武器",
|
|
236
|
-
damage:
|
|
245
|
+
damage: 40,
|
|
246
|
+
armorDamageReduction: 1,
|
|
237
247
|
description: "一种原型能量武器,能够发射强大的脉冲",
|
|
238
248
|
specialeffect: "攻击使目标的技能层数减少2层",
|
|
239
249
|
price: 1500,
|
|
@@ -246,6 +256,7 @@ var weaponConfig = {
|
|
|
246
256
|
type: "热能武器",
|
|
247
257
|
category: "热能武器",
|
|
248
258
|
damage: 50,
|
|
259
|
+
armorDamageReduction: 0.5,
|
|
249
260
|
description: "发射非常坚固的专属榴弹,对具有坚固防御的目标几乎没有效果",
|
|
250
261
|
specialeffect: "",
|
|
251
262
|
price: 2e3,
|
|
@@ -261,16 +272,16 @@ var weaponConfig = {
|
|
|
261
272
|
id: 16,
|
|
262
273
|
type: "能量武器",
|
|
263
274
|
category: "能量武器",
|
|
264
|
-
damage:
|
|
275
|
+
damage: 64,
|
|
276
|
+
armorDamageReduction: 4,
|
|
265
277
|
description: "用于解决高生命值目标的次时代武器,擅长对付护盾耗尽或没有护甲的敌人",
|
|
266
278
|
specialeffect: "",
|
|
267
279
|
price: 1750,
|
|
268
|
-
redCrystalCost:
|
|
280
|
+
redCrystalCost: 17,
|
|
269
281
|
isantiair: true,
|
|
270
282
|
tagEffects: {
|
|
271
283
|
"生物": 1.5,
|
|
272
|
-
"护盾": 0.
|
|
273
|
-
"重甲": 0.2
|
|
284
|
+
"护盾": 0.5
|
|
274
285
|
}
|
|
275
286
|
},
|
|
276
287
|
"聚变磁轨枪": {
|
|
@@ -278,18 +289,52 @@ var weaponConfig = {
|
|
|
278
289
|
type: "能量武器",
|
|
279
290
|
category: "能量武器",
|
|
280
291
|
damage: 58,
|
|
292
|
+
armorDamageReduction: 0,
|
|
281
293
|
description: "一种实验性的超级武器,能造成巨大的伤害",
|
|
282
294
|
specialeffect: "",
|
|
283
295
|
price: 1550,
|
|
284
|
-
redCrystalCost:
|
|
296
|
+
redCrystalCost: 15,
|
|
285
297
|
isantiair: true,
|
|
286
298
|
tagEffects: {}
|
|
287
299
|
},
|
|
300
|
+
"M134轮转机枪": {
|
|
301
|
+
id: 18,
|
|
302
|
+
type: "实弹武器",
|
|
303
|
+
category: "实弹武器",
|
|
304
|
+
damage: 50,
|
|
305
|
+
armorDamageReduction: 0.1,
|
|
306
|
+
description: "二十一世纪的武器,经过修改以减少后坐力并提高远程精度",
|
|
307
|
+
specialeffect: "",
|
|
308
|
+
price: 2e3,
|
|
309
|
+
redCrystalCost: 20,
|
|
310
|
+
isantiair: true,
|
|
311
|
+
tagEffects: {
|
|
312
|
+
"轻甲": 1.5
|
|
313
|
+
}
|
|
314
|
+
},
|
|
315
|
+
"星灼灵焰炮": {
|
|
316
|
+
id: 19,
|
|
317
|
+
type: "能量武器",
|
|
318
|
+
category: "能量武器",
|
|
319
|
+
damage: 35,
|
|
320
|
+
armorDamageReduction: 1,
|
|
321
|
+
description: "这是在一位高级灵能者的帮助下,解析灵能力量制作出的高科技武器",
|
|
322
|
+
specialeffect: "",
|
|
323
|
+
price: 1550,
|
|
324
|
+
redCrystalCost: 15,
|
|
325
|
+
isantiair: true,
|
|
326
|
+
tagEffects: {
|
|
327
|
+
"机械": 2,
|
|
328
|
+
"建筑": 2,
|
|
329
|
+
"异形": 2
|
|
330
|
+
}
|
|
331
|
+
},
|
|
288
332
|
"外星电浆": {
|
|
289
333
|
id: 101,
|
|
290
334
|
type: "能量武器",
|
|
291
335
|
category: "传奇武器",
|
|
292
336
|
damage: 88,
|
|
337
|
+
armorDamageReduction: 3,
|
|
293
338
|
description: "一件传奇武器",
|
|
294
339
|
specialeffect: "",
|
|
295
340
|
price: 6400,
|
|
@@ -297,8 +342,7 @@ var weaponConfig = {
|
|
|
297
342
|
isantiair: true,
|
|
298
343
|
tagEffects: {
|
|
299
344
|
"生物": 2,
|
|
300
|
-
"护盾": 0.5
|
|
301
|
-
"重甲": 0.5
|
|
345
|
+
"护盾": 0.5
|
|
302
346
|
}
|
|
303
347
|
},
|
|
304
348
|
"MK-4激光步枪": {
|
|
@@ -306,8 +350,9 @@ var weaponConfig = {
|
|
|
306
350
|
type: "能量武器",
|
|
307
351
|
category: "传奇武器",
|
|
308
352
|
damage: 70,
|
|
353
|
+
armorDamageReduction: -1,
|
|
309
354
|
description: "一件传奇武器",
|
|
310
|
-
specialeffect: "
|
|
355
|
+
specialeffect: "暴击率+80%",
|
|
311
356
|
price: 6400,
|
|
312
357
|
redCrystalCost: 200,
|
|
313
358
|
isantiair: true,
|
|
@@ -320,6 +365,7 @@ var weaponConfig = {
|
|
|
320
365
|
type: "实弹武器",
|
|
321
366
|
category: "传奇武器",
|
|
322
367
|
damage: 80,
|
|
368
|
+
armorDamageReduction: 0,
|
|
323
369
|
description: "这是传说中的武器",
|
|
324
370
|
specialeffect: "",
|
|
325
371
|
price: 6400,
|
|
@@ -334,7 +380,8 @@ var weaponConfig = {
|
|
|
334
380
|
id: 104,
|
|
335
381
|
type: "实弹武器",
|
|
336
382
|
category: "传奇武器",
|
|
337
|
-
damage:
|
|
383
|
+
damage: 125,
|
|
384
|
+
armorDamageReduction: -2,
|
|
338
385
|
description: "一件传奇武器",
|
|
339
386
|
specialeffect: "",
|
|
340
387
|
price: 6400,
|
|
@@ -349,6 +396,7 @@ var weaponConfig = {
|
|
|
349
396
|
type: "能量武器",
|
|
350
397
|
category: "传奇武器",
|
|
351
398
|
damage: 100,
|
|
399
|
+
armorDamageReduction: 0,
|
|
352
400
|
description: "优雅而独特的武器",
|
|
353
401
|
specialeffect: "无视目标100%的减伤效果",
|
|
354
402
|
price: 6400,
|
|
@@ -361,6 +409,7 @@ var weaponConfig = {
|
|
|
361
409
|
type: "能量武器",
|
|
362
410
|
category: "传奇武器",
|
|
363
411
|
damage: 100,
|
|
412
|
+
armorDamageReduction: 1,
|
|
364
413
|
description: "一件传奇武器",
|
|
365
414
|
specialeffect: "攻击消耗目标500点能量",
|
|
366
415
|
price: 6400,
|
|
@@ -375,6 +424,7 @@ var weaponConfig = {
|
|
|
375
424
|
type: "能量武器",
|
|
376
425
|
category: "传奇武器",
|
|
377
426
|
damage: 60,
|
|
427
|
+
armorDamageReduction: 0,
|
|
378
428
|
description: "一件传奇武器",
|
|
379
429
|
specialeffect: "攻击无视目标80%的减伤效果",
|
|
380
430
|
price: 6400,
|
|
@@ -389,6 +439,7 @@ var weaponConfig = {
|
|
|
389
439
|
type: "能量武器",
|
|
390
440
|
category: "传奇武器",
|
|
391
441
|
damage: 90,
|
|
442
|
+
armorDamageReduction: 0,
|
|
392
443
|
description: "一件传奇武器",
|
|
393
444
|
specialeffect: "",
|
|
394
445
|
price: 6400,
|
|
@@ -415,47 +466,41 @@ var modConfig = {
|
|
|
415
466
|
isExclusive: false
|
|
416
467
|
},
|
|
417
468
|
"破甲模块": {
|
|
418
|
-
cost:
|
|
419
|
-
effect: "攻击无视目标
|
|
469
|
+
cost: 1250,
|
|
470
|
+
effect: "攻击无视目标15%的减伤效果",
|
|
420
471
|
exclusiveTo: "",
|
|
421
472
|
isExclusive: false
|
|
422
473
|
},
|
|
423
474
|
// 新增专属模块
|
|
424
475
|
"裂甲核心": {
|
|
425
476
|
cost: 750,
|
|
426
|
-
effect: "
|
|
477
|
+
effect: "攻击伤害+40%,攻击无视目标的40%减伤效果",
|
|
427
478
|
exclusiveTo: "高斯步枪",
|
|
428
479
|
// 指定专属武器
|
|
429
480
|
isExclusive: true
|
|
430
481
|
// 标记为专属模块
|
|
431
482
|
},
|
|
432
483
|
"棱镜超载核心": {
|
|
433
|
-
cost:
|
|
484
|
+
cost: 3050,
|
|
434
485
|
effect: "暴击率+80%",
|
|
435
486
|
exclusiveTo: "激光步枪",
|
|
436
487
|
isExclusive: true
|
|
437
488
|
},
|
|
438
489
|
"助燃核心": {
|
|
439
490
|
cost: 2550,
|
|
440
|
-
effect: "对惧热目标改为造成300
|
|
491
|
+
effect: "对惧热目标改为造成300%伤害,对生物目标改为造成200%伤害",
|
|
441
492
|
exclusiveTo: "焚烧枪",
|
|
442
493
|
isExclusive: true
|
|
443
494
|
},
|
|
444
495
|
"光束曲射晶片": {
|
|
445
496
|
cost: 2750,
|
|
446
|
-
effect: "
|
|
447
|
-
exclusiveTo: "碎骨步枪",
|
|
448
|
-
isExclusive: true
|
|
449
|
-
},
|
|
450
|
-
"护盾崩解核心": {
|
|
451
|
-
cost: 1250,
|
|
452
|
-
effect: "对护盾目标改为造成80%伤害",
|
|
497
|
+
effect: "攻击时造成散射,只能对其他目标造成50%的伤害",
|
|
453
498
|
exclusiveTo: "碎骨步枪",
|
|
454
499
|
isExclusive: true
|
|
455
500
|
},
|
|
456
501
|
"金刚石瞄准镜": {
|
|
457
|
-
cost:
|
|
458
|
-
effect: "
|
|
502
|
+
cost: 2250,
|
|
503
|
+
effect: "无视目标50%的减伤效果",
|
|
459
504
|
exclusiveTo: "侦察步枪",
|
|
460
505
|
isExclusive: true
|
|
461
506
|
},
|
|
@@ -673,7 +718,7 @@ var syndicatePirateConfig = [
|
|
|
673
718
|
},
|
|
674
719
|
{
|
|
675
720
|
professionName: "猩红杀手",
|
|
676
|
-
effect: "“侦察步枪”攻击伤害+15%;
|
|
721
|
+
effect: "“侦察步枪”攻击伤害+15%; 使用“侦察步枪”攻击时每1点护甲减少0点伤害; 购买DSR-55反器材步枪(传奇)享有50%的折扣",
|
|
677
722
|
requirements: "“侦察步枪”武器等级≥3级",
|
|
678
723
|
Jobtransfer: true,
|
|
679
724
|
costredcrystal: 30
|
|
@@ -1057,47 +1102,42 @@ var Tasklist = {
|
|
|
1057
1102
|
"伽马辐射": {
|
|
1058
1103
|
id: 1,
|
|
1059
1104
|
type: "可重复任务",
|
|
1060
|
-
description: "利用【伽马枪】武器对目标造成辐射伤害",
|
|
1061
1105
|
target: 1,
|
|
1062
1106
|
price: 50,
|
|
1063
1107
|
redCrystalCost: 0,
|
|
1064
|
-
condition: "
|
|
1108
|
+
condition: "使用【伽马枪】攻击目标并成功增加其辐射层数"
|
|
1065
1109
|
},
|
|
1066
1110
|
"绝对零度": {
|
|
1067
1111
|
id: 2,
|
|
1068
1112
|
type: "可重复任务",
|
|
1069
|
-
description: "利用【零度之下】武器对目标造成寒冷伤害",
|
|
1070
1113
|
target: 1,
|
|
1071
1114
|
price: 50,
|
|
1072
1115
|
redCrystalCost: 0,
|
|
1073
|
-
condition: "
|
|
1116
|
+
condition: "使用【零度之下】攻击目标并成功增加其寒冷层数"
|
|
1074
1117
|
},
|
|
1075
1118
|
"胆汁引爆": {
|
|
1076
1119
|
id: 3,
|
|
1077
1120
|
type: "可重复任务",
|
|
1078
|
-
description: "利用【焚烧枪】武器引爆目标的胆汁",
|
|
1079
1121
|
target: 1,
|
|
1080
1122
|
price: 200,
|
|
1081
1123
|
redCrystalCost: 0,
|
|
1082
|
-
condition: "
|
|
1124
|
+
condition: "使用【焚烧枪】攻击目标并成功引爆其≥10层的胆汁"
|
|
1083
1125
|
},
|
|
1084
1126
|
"脉冲干扰": {
|
|
1085
1127
|
id: 4,
|
|
1086
1128
|
type: "可重复任务",
|
|
1087
|
-
description: "利用【脉冲扰乱枪】武器干扰目标的技能释放",
|
|
1088
1129
|
target: 1,
|
|
1089
1130
|
price: 75,
|
|
1090
1131
|
redCrystalCost: 0,
|
|
1091
|
-
condition: "
|
|
1132
|
+
condition: "使用【脉冲扰乱枪】攻击目标并成功减少其技能层数"
|
|
1092
1133
|
},
|
|
1093
|
-
"
|
|
1134
|
+
"能量消耗": {
|
|
1094
1135
|
id: 5,
|
|
1095
1136
|
type: "可重复任务",
|
|
1096
|
-
description: "利用【弧焊枪】武器消耗目标的能量",
|
|
1097
1137
|
target: 1,
|
|
1098
1138
|
price: 75,
|
|
1099
1139
|
redCrystalCost: 0,
|
|
1100
|
-
condition: "
|
|
1140
|
+
condition: "使用【弧焊枪】或【DG-3电弧步枪】攻击目标并成功消耗其能量"
|
|
1101
1141
|
}
|
|
1102
1142
|
};
|
|
1103
1143
|
|
|
@@ -1109,7 +1149,10 @@ var bossPool = [
|
|
|
1109
1149
|
name: "异齿猛兽首领",
|
|
1110
1150
|
type: "主宰",
|
|
1111
1151
|
maxHP: 15e3,
|
|
1152
|
+
maxShield: 5e3,
|
|
1112
1153
|
maxEnergy: 0,
|
|
1154
|
+
armor: 9,
|
|
1155
|
+
shieldArmor: 25,
|
|
1113
1156
|
maxStacks: 0,
|
|
1114
1157
|
tags: ["重甲", "生物", "异形"],
|
|
1115
1158
|
passive: ["异形甲壳"]
|
|
@@ -1119,7 +1162,10 @@ var bossPool = [
|
|
|
1119
1162
|
name: "异齿猛兽",
|
|
1120
1163
|
type: "子代",
|
|
1121
1164
|
maxHP: 5e3,
|
|
1165
|
+
maxShield: 1e3,
|
|
1122
1166
|
maxEnergy: 0,
|
|
1167
|
+
armor: 6,
|
|
1168
|
+
shieldArmor: 20,
|
|
1123
1169
|
maxStacks: 0,
|
|
1124
1170
|
tags: ["重甲", "生物", "重型", "异形"],
|
|
1125
1171
|
passive: ["弱化形态", "异形甲壳"]
|
|
@@ -1132,7 +1178,10 @@ var bossPool = [
|
|
|
1132
1178
|
name: "寒冰王蛇",
|
|
1133
1179
|
type: "主宰",
|
|
1134
1180
|
maxHP: 15e3,
|
|
1181
|
+
maxShield: 0,
|
|
1135
1182
|
maxEnergy: 0,
|
|
1183
|
+
armor: 6,
|
|
1184
|
+
shieldArmor: 0,
|
|
1136
1185
|
maxStacks: 0,
|
|
1137
1186
|
tags: ["重甲", "生物", "惧热", "重型", "异形"],
|
|
1138
1187
|
passive: ["冰霜环绕", "冰霜进化"]
|
|
@@ -1142,7 +1191,10 @@ var bossPool = [
|
|
|
1142
1191
|
name: "冰蛇",
|
|
1143
1192
|
type: "子代",
|
|
1144
1193
|
maxHP: 5e3,
|
|
1194
|
+
maxShield: 0,
|
|
1145
1195
|
maxEnergy: 0,
|
|
1196
|
+
armor: 4,
|
|
1197
|
+
shieldArmor: 0,
|
|
1146
1198
|
maxStacks: 0,
|
|
1147
1199
|
tags: ["生物", "惧热", "异形"],
|
|
1148
1200
|
passive: ["弱化形态", "冰霜回复", "冰霜进化"]
|
|
@@ -1155,7 +1207,10 @@ var bossPool = [
|
|
|
1155
1207
|
name: "莽兽",
|
|
1156
1208
|
type: "主宰",
|
|
1157
1209
|
maxHP: 12e3,
|
|
1210
|
+
maxShield: 0,
|
|
1158
1211
|
maxEnergy: 0,
|
|
1212
|
+
armor: 8,
|
|
1213
|
+
shieldArmor: 0,
|
|
1159
1214
|
maxStacks: 0,
|
|
1160
1215
|
tags: ["重甲", "生物", "重型", "异形"],
|
|
1161
1216
|
passive: ["应激甲壳II", "求生本能II", "冷适应"]
|
|
@@ -1165,18 +1220,24 @@ var bossPool = [
|
|
|
1165
1220
|
name: "狂暴畸变体",
|
|
1166
1221
|
type: "子代",
|
|
1167
1222
|
maxHP: 4e3,
|
|
1223
|
+
maxShield: 0,
|
|
1168
1224
|
maxEnergy: 0,
|
|
1225
|
+
armor: 5,
|
|
1226
|
+
shieldArmor: 0,
|
|
1169
1227
|
maxStacks: 0,
|
|
1170
|
-
tags: ["重甲", "生物", "重型", "异形"],
|
|
1228
|
+
tags: ["重甲", "生物", "重型", "极地", "异形"],
|
|
1171
1229
|
passive: ["弱化形态", "应激甲壳I", "求生本能I", "冷适应"]
|
|
1172
1230
|
},
|
|
1173
1231
|
{
|
|
1174
1232
|
name: "剧毒畸变体",
|
|
1175
1233
|
type: "子代",
|
|
1176
1234
|
maxHP: 4e3,
|
|
1235
|
+
maxShield: 0,
|
|
1177
1236
|
maxEnergy: 0,
|
|
1237
|
+
armor: 7,
|
|
1238
|
+
shieldArmor: 0,
|
|
1178
1239
|
maxStacks: 0,
|
|
1179
|
-
tags: ["重甲", "生物", "重型", "异形"],
|
|
1240
|
+
tags: ["重甲", "生物", "重型", "极地", "异形"],
|
|
1180
1241
|
passive: ["弱化形态", "应激甲壳I", "求生本能I", "冷适应"]
|
|
1181
1242
|
}
|
|
1182
1243
|
]
|
|
@@ -1187,7 +1248,10 @@ var bossPool = [
|
|
|
1187
1248
|
name: "空间站感染虫",
|
|
1188
1249
|
type: "主宰",
|
|
1189
1250
|
maxHP: 1e4,
|
|
1251
|
+
maxShield: 0,
|
|
1190
1252
|
maxEnergy: 0,
|
|
1253
|
+
armor: 5,
|
|
1254
|
+
shieldArmor: 0,
|
|
1191
1255
|
maxStacks: 0,
|
|
1192
1256
|
tags: ["重甲", "生物", "机械", "异形"],
|
|
1193
1257
|
passive: ["感染空间站", "病毒云", "霉菌滋生"]
|
|
@@ -1197,7 +1261,10 @@ var bossPool = [
|
|
|
1197
1261
|
name: "机械感染虫",
|
|
1198
1262
|
type: "子代",
|
|
1199
1263
|
maxHP: 3e3,
|
|
1264
|
+
maxShield: 0,
|
|
1200
1265
|
maxEnergy: 0,
|
|
1266
|
+
armor: 4,
|
|
1267
|
+
shieldArmor: 0,
|
|
1201
1268
|
maxStacks: 0,
|
|
1202
1269
|
tags: ["重甲", "生物", "机械", "异形"],
|
|
1203
1270
|
passive: ["弱化形态", "病毒云", "霉菌滋生"]
|
|
@@ -1206,7 +1273,10 @@ var bossPool = [
|
|
|
1206
1273
|
name: "空间站哨枪塔",
|
|
1207
1274
|
type: "子代",
|
|
1208
1275
|
maxHP: 5e3,
|
|
1276
|
+
maxShield: 0,
|
|
1209
1277
|
maxEnergy: 0,
|
|
1278
|
+
armor: 6.5,
|
|
1279
|
+
shieldArmor: 0,
|
|
1210
1280
|
maxStacks: 10,
|
|
1211
1281
|
tags: ["重甲", "机械", "建筑"],
|
|
1212
1282
|
passive: ["岗哨机枪", "结构装甲"]
|
|
@@ -1219,7 +1289,10 @@ var bossPool = [
|
|
|
1219
1289
|
name: "吸血蝙蝠首领",
|
|
1220
1290
|
type: "主宰",
|
|
1221
1291
|
maxHP: 12e3,
|
|
1292
|
+
maxShield: 0,
|
|
1222
1293
|
maxEnergy: 0,
|
|
1294
|
+
armor: 2.5,
|
|
1295
|
+
shieldArmor: 0,
|
|
1223
1296
|
maxStacks: 20,
|
|
1224
1297
|
tags: ["生物", "异形"],
|
|
1225
1298
|
passive: ["吸血唾液", "进食", "吐血", "嗜血狂暴"]
|
|
@@ -1229,7 +1302,10 @@ var bossPool = [
|
|
|
1229
1302
|
name: "吸血蝙蝠",
|
|
1230
1303
|
type: "子代",
|
|
1231
1304
|
maxHP: 4e3,
|
|
1305
|
+
maxShield: 0,
|
|
1232
1306
|
maxEnergy: 0,
|
|
1307
|
+
armor: 2.5,
|
|
1308
|
+
shieldArmor: 0,
|
|
1233
1309
|
maxStacks: 20,
|
|
1234
1310
|
tags: ["生物", "异形"],
|
|
1235
1311
|
passive: ["弱化形态", "吸血唾液", "进食", "吐血"]
|
|
@@ -1241,20 +1317,26 @@ var bossPool = [
|
|
|
1241
1317
|
main: {
|
|
1242
1318
|
name: "亚电主宰者",
|
|
1243
1319
|
type: "主宰",
|
|
1244
|
-
maxHP:
|
|
1320
|
+
maxHP: 2e3,
|
|
1321
|
+
maxShield: 2e4,
|
|
1245
1322
|
maxEnergy: 1e3,
|
|
1323
|
+
armor: 0,
|
|
1324
|
+
shieldArmor: 4,
|
|
1246
1325
|
maxStacks: 0,
|
|
1247
|
-
tags: ["
|
|
1326
|
+
tags: ["重甲", "灵能", "重型", "异形"],
|
|
1248
1327
|
passive: ["超导体", "能源虹吸", "电能冲击波", "电能立场", "脉冲", "能量黑洞"]
|
|
1249
1328
|
},
|
|
1250
1329
|
minions: [
|
|
1251
1330
|
{
|
|
1252
1331
|
name: "亚电能者",
|
|
1253
1332
|
type: "子代",
|
|
1254
|
-
maxHP:
|
|
1333
|
+
maxHP: 1e3,
|
|
1334
|
+
maxShield: 5e3,
|
|
1255
1335
|
maxEnergy: 0,
|
|
1336
|
+
armor: 1,
|
|
1337
|
+
shieldArmor: 4,
|
|
1256
1338
|
maxStacks: 0,
|
|
1257
|
-
tags: ["
|
|
1339
|
+
tags: ["重甲", "灵能", "异形"],
|
|
1258
1340
|
passive: ["弱化形态", "超导体", "能源虹吸", "能量黑洞"]
|
|
1259
1341
|
}
|
|
1260
1342
|
]
|
|
@@ -1264,8 +1346,11 @@ var bossPool = [
|
|
|
1264
1346
|
main: {
|
|
1265
1347
|
name: "烈焰庞兽",
|
|
1266
1348
|
type: "主宰",
|
|
1267
|
-
maxHP:
|
|
1349
|
+
maxHP: 15e3,
|
|
1350
|
+
maxShield: 5e3,
|
|
1268
1351
|
maxEnergy: 0,
|
|
1352
|
+
armor: 5,
|
|
1353
|
+
shieldArmor: 20,
|
|
1269
1354
|
maxStacks: 20,
|
|
1270
1355
|
tags: ["重甲", "生物", "惧寒", "重型", "异形"],
|
|
1271
1356
|
passive: ["火焰异形", "庞兽狂暴", "灼烧粘液", "炼狱爆弹", "火焰吐息", "太阳耀斑"]
|
|
@@ -1275,7 +1360,10 @@ var bossPool = [
|
|
|
1275
1360
|
name: "火焰甲虫",
|
|
1276
1361
|
type: "子代",
|
|
1277
1362
|
maxHP: 5e3,
|
|
1363
|
+
maxShield: 1e3,
|
|
1278
1364
|
maxEnergy: 0,
|
|
1365
|
+
armor: 5,
|
|
1366
|
+
shieldArmor: 15,
|
|
1279
1367
|
maxStacks: 20,
|
|
1280
1368
|
tags: ["重甲", "生物", "惧寒", "异形"],
|
|
1281
1369
|
passive: ["弱化形态", "火焰异形", "灼烧粘液", "腐蚀胆汁", "燃烧潜地"]
|
|
@@ -1288,7 +1376,10 @@ var bossPool = [
|
|
|
1288
1376
|
name: "狂猎猛禽首领",
|
|
1289
1377
|
type: "主宰",
|
|
1290
1378
|
maxHP: 2e4,
|
|
1379
|
+
maxShield: 0,
|
|
1291
1380
|
maxEnergy: 0,
|
|
1381
|
+
armor: 3,
|
|
1382
|
+
shieldArmor: 0,
|
|
1292
1383
|
maxStacks: 0,
|
|
1293
1384
|
tags: ["生物", "异形"],
|
|
1294
1385
|
passive: ["猎手异形", "致命一击", "狂暴", "伪装"]
|
|
@@ -1298,7 +1389,10 @@ var bossPool = [
|
|
|
1298
1389
|
name: "狂猎猛禽1",
|
|
1299
1390
|
type: "子代",
|
|
1300
1391
|
maxHP: 5e3,
|
|
1392
|
+
maxShield: 0,
|
|
1301
1393
|
maxEnergy: 0,
|
|
1394
|
+
armor: 2.5,
|
|
1395
|
+
shieldArmor: 0,
|
|
1302
1396
|
maxStacks: 0,
|
|
1303
1397
|
tags: ["生物", "异形"],
|
|
1304
1398
|
passive: ["弱化形态", "猎手异形", "狂暴", "伪装"]
|
|
@@ -1307,7 +1401,10 @@ var bossPool = [
|
|
|
1307
1401
|
name: "狂猎猛禽2",
|
|
1308
1402
|
type: "子代",
|
|
1309
1403
|
maxHP: 5e3,
|
|
1404
|
+
maxShield: 0,
|
|
1310
1405
|
maxEnergy: 0,
|
|
1406
|
+
armor: 2.5,
|
|
1407
|
+
shieldArmor: 0,
|
|
1311
1408
|
maxStacks: 0,
|
|
1312
1409
|
tags: ["生物", "异形"],
|
|
1313
1410
|
passive: ["弱化形态", "猎手异形", "狂暴", "伪装"]
|
|
@@ -1320,9 +1417,12 @@ var bossPool = [
|
|
|
1320
1417
|
name: "宇宙界主",
|
|
1321
1418
|
type: "主宰",
|
|
1322
1419
|
maxHP: 2e4,
|
|
1420
|
+
maxShield: 2e3,
|
|
1323
1421
|
maxEnergy: 1e3,
|
|
1422
|
+
armor: 2,
|
|
1423
|
+
shieldArmor: 0,
|
|
1324
1424
|
maxStacks: 50,
|
|
1325
|
-
tags: ["重甲", "
|
|
1425
|
+
tags: ["重甲", "生物", "灵能", "异形"],
|
|
1326
1426
|
passive: ["宇宙能量", "复苏", "光影之刃", "远古预兆", "星界之风", "超视距穿梭"]
|
|
1327
1427
|
},
|
|
1328
1428
|
minions: [
|
|
@@ -1330,9 +1430,12 @@ var bossPool = [
|
|
|
1330
1430
|
name: "宇宙战将",
|
|
1331
1431
|
type: "子代",
|
|
1332
1432
|
maxHP: 5e3,
|
|
1433
|
+
maxShield: 500,
|
|
1333
1434
|
maxEnergy: 0,
|
|
1435
|
+
armor: 1,
|
|
1436
|
+
shieldArmor: 0,
|
|
1334
1437
|
maxStacks: 0,
|
|
1335
|
-
tags: ["重甲", "
|
|
1438
|
+
tags: ["重甲", "生物", "灵能", "异形"],
|
|
1336
1439
|
passive: ["弱化形态", "心灵狂热", "星界之风"]
|
|
1337
1440
|
}
|
|
1338
1441
|
]
|
|
@@ -1343,7 +1446,10 @@ var bossPool = [
|
|
|
1343
1446
|
name: "猛毒异兽",
|
|
1344
1447
|
type: "主宰",
|
|
1345
1448
|
maxHP: 2e4,
|
|
1449
|
+
maxShield: 0,
|
|
1346
1450
|
maxEnergy: 0,
|
|
1451
|
+
armor: 4,
|
|
1452
|
+
shieldArmor: 0,
|
|
1347
1453
|
maxStacks: 20,
|
|
1348
1454
|
tags: ["生物", "异形"],
|
|
1349
1455
|
passive: ["毒性唾液", "剧毒狂暴", "毒气波", "淬毒撕咬", "酸蚀池", "剧毒突袭"]
|
|
@@ -1353,7 +1459,10 @@ var bossPool = [
|
|
|
1353
1459
|
name: "剧毒蝙蝠",
|
|
1354
1460
|
type: "子代",
|
|
1355
1461
|
maxHP: 5e3,
|
|
1462
|
+
maxShield: 0,
|
|
1356
1463
|
maxEnergy: 0,
|
|
1464
|
+
armor: 3,
|
|
1465
|
+
shieldArmor: 0,
|
|
1357
1466
|
maxStacks: 20,
|
|
1358
1467
|
tags: ["轻甲", "生物", "异形"],
|
|
1359
1468
|
passive: ["弱化形态", "毒性唾液", "毒气波", "淬毒撕咬", "酸蚀池"]
|
|
@@ -1453,6 +1562,39 @@ function getMaxStacksByName(bossName) {
|
|
|
1453
1562
|
return void 0;
|
|
1454
1563
|
}
|
|
1455
1564
|
__name(getMaxStacksByName, "getMaxStacksByName");
|
|
1565
|
+
function getMaxShieldByName(bossName) {
|
|
1566
|
+
if (bossName === "测试假人") return 0;
|
|
1567
|
+
for (const boss of bossPool) {
|
|
1568
|
+
if (boss.main.name === bossName) return boss.main.maxShield;
|
|
1569
|
+
for (const minion of boss.minions) {
|
|
1570
|
+
if (minion.name === bossName) return minion.maxShield;
|
|
1571
|
+
}
|
|
1572
|
+
}
|
|
1573
|
+
return void 0;
|
|
1574
|
+
}
|
|
1575
|
+
__name(getMaxShieldByName, "getMaxShieldByName");
|
|
1576
|
+
function getArmorByName(bossName) {
|
|
1577
|
+
if (bossName === "测试假人") return 0;
|
|
1578
|
+
for (const boss of bossPool) {
|
|
1579
|
+
if (boss.main.name === bossName) return boss.main.armor;
|
|
1580
|
+
for (const minion of boss.minions) {
|
|
1581
|
+
if (minion.name === bossName) return minion.armor;
|
|
1582
|
+
}
|
|
1583
|
+
}
|
|
1584
|
+
return void 0;
|
|
1585
|
+
}
|
|
1586
|
+
__name(getArmorByName, "getArmorByName");
|
|
1587
|
+
function getShieldArmorByName(bossName) {
|
|
1588
|
+
if (bossName === "测试假人") return 0;
|
|
1589
|
+
for (const boss of bossPool) {
|
|
1590
|
+
if (boss.main.name === bossName) return boss.main.shieldArmor;
|
|
1591
|
+
for (const minion of boss.minions) {
|
|
1592
|
+
if (minion.name === bossName) return minion.shieldArmor;
|
|
1593
|
+
}
|
|
1594
|
+
}
|
|
1595
|
+
return void 0;
|
|
1596
|
+
}
|
|
1597
|
+
__name(getShieldArmorByName, "getShieldArmorByName");
|
|
1456
1598
|
var BattleEffectProcessor = {
|
|
1457
1599
|
// 弱化形态
|
|
1458
1600
|
handleWeakForm: /* @__PURE__ */ __name(function(targetBoss) {
|
|
@@ -1497,13 +1639,13 @@ var BattleEffectProcessor = {
|
|
|
1497
1639
|
}
|
|
1498
1640
|
return null;
|
|
1499
1641
|
}, "handleIsolated"),
|
|
1500
|
-
handleFrostRegeneration: /* @__PURE__ */ __name(function(targetBoss, activeBosses,
|
|
1642
|
+
handleFrostRegeneration: /* @__PURE__ */ __name(function(targetBoss, activeBosses, maxStatsForTarget) {
|
|
1501
1643
|
const messages = [];
|
|
1502
1644
|
const otherUpdates = [];
|
|
1503
1645
|
if (!targetBoss.skills.includes("冰霜回复")) {
|
|
1504
1646
|
return null;
|
|
1505
1647
|
}
|
|
1506
|
-
const targetMaxHP =
|
|
1648
|
+
const targetMaxHP = maxStatsForTarget.maxHP;
|
|
1507
1649
|
const currentHP = targetBoss.HP;
|
|
1508
1650
|
if (currentHP > targetMaxHP * 0.3) {
|
|
1509
1651
|
return null;
|
|
@@ -1521,7 +1663,7 @@ var BattleEffectProcessor = {
|
|
|
1521
1663
|
);
|
|
1522
1664
|
otherSurvivingBosses.forEach((otherBoss) => {
|
|
1523
1665
|
const otherName = otherBoss.name;
|
|
1524
|
-
const otherMaxHP =
|
|
1666
|
+
const otherMaxHP = maxStatsForTarget.maxHP;
|
|
1525
1667
|
const otherHealAmount = Math.round(otherMaxHP * 0.1);
|
|
1526
1668
|
otherUpdates.push({
|
|
1527
1669
|
name: otherName,
|
|
@@ -2831,7 +2973,7 @@ var BattleEffectProcessor = {
|
|
|
2831
2973
|
const effectiveLayers = Math.min(currentLayers, 20);
|
|
2832
2974
|
const buffMultiplier = effectiveLayers * 0.025;
|
|
2833
2975
|
if (effectiveLayers > 0) {
|
|
2834
|
-
messages.push(`☢️ 【辐射】:当前${currentLayers}层,受到的伤害+${(effectiveLayers * 2.5).toFixed(1)}
|
|
2976
|
+
messages.push(`☢️ 【辐射】:当前${currentLayers}层,受到的伤害+${(effectiveLayers * 2.5).toFixed(1)}%`);
|
|
2835
2977
|
if (currentLayers > 20) {
|
|
2836
2978
|
}
|
|
2837
2979
|
}
|
|
@@ -2866,7 +3008,7 @@ var BattleEffectProcessor = {
|
|
|
2866
3008
|
const effectiveLayers = Math.min(currentLayers, 20);
|
|
2867
3009
|
const buffMultiplier = effectiveLayers * 0.025;
|
|
2868
3010
|
if (effectiveLayers > 0) {
|
|
2869
|
-
messages.push(`❄️ 【寒冷】:当前${currentLayers}层,受到的伤害+${(effectiveLayers * 2.5).toFixed(1)}
|
|
3011
|
+
messages.push(`❄️ 【寒冷】:当前${currentLayers}层,受到的伤害+${(effectiveLayers * 2.5).toFixed(1)}%`);
|
|
2870
3012
|
if (currentLayers > 20) {
|
|
2871
3013
|
}
|
|
2872
3014
|
}
|
|
@@ -2892,12 +3034,12 @@ var BattleEffectProcessor = {
|
|
|
2892
3034
|
};
|
|
2893
3035
|
}, "handleColdEffect"),
|
|
2894
3036
|
// 统一的武器能量消耗处理函数
|
|
2895
|
-
handleWeaponEnergyDrain: /* @__PURE__ */ __name(function(targetBoss, weaponName,
|
|
3037
|
+
handleWeaponEnergyDrain: /* @__PURE__ */ __name(function(targetBoss, weaponName, maxStatsForTarget) {
|
|
2896
3038
|
const weaponEnergyDrain = {
|
|
2897
3039
|
"弧焊枪": 200,
|
|
2898
3040
|
"DG-3电弧步枪": 500
|
|
2899
3041
|
};
|
|
2900
|
-
const targetmaxEnergy =
|
|
3042
|
+
const targetmaxEnergy = maxStatsForTarget.maxEnergy;
|
|
2901
3043
|
const drainValue = weaponEnergyDrain[weaponName];
|
|
2902
3044
|
if (!drainValue || targetmaxEnergy === 0) {
|
|
2903
3045
|
return null;
|
|
@@ -2925,13 +3067,14 @@ var BattleEffectProcessor = {
|
|
|
2925
3067
|
};
|
|
2926
3068
|
}, "handleWeaponEnergyDrain"),
|
|
2927
3069
|
// 统一的武器层数减少处理函数
|
|
2928
|
-
handleWeaponLayerReduction: /* @__PURE__ */ __name(function(targetBoss, weaponName) {
|
|
3070
|
+
handleWeaponLayerReduction: /* @__PURE__ */ __name(function(targetBoss, weaponName, maxStatsForTarget) {
|
|
2929
3071
|
const weaponLayerReduction = {
|
|
2930
3072
|
"脉冲扰乱枪": 2
|
|
2931
3073
|
// 可以在这里添加其他武器及其减少层数
|
|
2932
3074
|
};
|
|
3075
|
+
const maxStacks = maxStatsForTarget.maxStacks;
|
|
2933
3076
|
const reductionAmount = weaponLayerReduction[weaponName];
|
|
2934
|
-
if (!reductionAmount) {
|
|
3077
|
+
if (!reductionAmount || maxStacks === 0) {
|
|
2935
3078
|
return null;
|
|
2936
3079
|
}
|
|
2937
3080
|
const messages = [];
|
|
@@ -3139,7 +3282,7 @@ var BattleEffectProcessor = {
|
|
|
3139
3282
|
vulnerableType = "实弹武器";
|
|
3140
3283
|
break;
|
|
3141
3284
|
}
|
|
3142
|
-
messages.push(`🛢️
|
|
3285
|
+
messages.push(`🛢️ 本次攻击触发的【酸蚀池】:${acidName}`);
|
|
3143
3286
|
if (enhanced) {
|
|
3144
3287
|
if (weaponType === resistType) {
|
|
3145
3288
|
nerfMultiplier = 1;
|
|
@@ -3149,8 +3292,8 @@ var BattleEffectProcessor = {
|
|
|
3149
3292
|
}
|
|
3150
3293
|
} else {
|
|
3151
3294
|
if (weaponType === resistType) {
|
|
3152
|
-
nerfMultiplier = 0.
|
|
3153
|
-
messages.push(`🛢️ 【酸蚀池】生效:受到${resistType}伤害-
|
|
3295
|
+
nerfMultiplier = 0.5;
|
|
3296
|
+
messages.push(`🛢️ 【酸蚀池】生效:受到${resistType}伤害-50%`);
|
|
3154
3297
|
} else if (weaponType === vulnerableType) {
|
|
3155
3298
|
buffMultiplier = 0.5;
|
|
3156
3299
|
messages.push(`🛢️ 【酸蚀池】生效:受到${vulnerableType}伤害+50%`);
|
|
@@ -3196,7 +3339,7 @@ var BattleEffectProcessor = {
|
|
|
3196
3339
|
};
|
|
3197
3340
|
}, "handleToxicAssault")
|
|
3198
3341
|
};
|
|
3199
|
-
function applyPassiveEffects(targetBoss, activeBosses, weaponName, damage, ignoreRate) {
|
|
3342
|
+
function applyPassiveEffects(targetBoss, activeBosses, weaponName, damage, hasCrit, ignoreRate) {
|
|
3200
3343
|
const messages = [];
|
|
3201
3344
|
let immune = false;
|
|
3202
3345
|
let totalBuffMultiplier = 0;
|
|
@@ -3229,7 +3372,11 @@ function applyPassiveEffects(targetBoss, activeBosses, weaponName, damage, ignor
|
|
|
3229
3372
|
if (!maxStatsMap[boss.name]) {
|
|
3230
3373
|
maxStatsMap[boss.name] = {
|
|
3231
3374
|
maxHP: getMaxHPByName(boss.name) || 0,
|
|
3232
|
-
maxEnergy: getMaxEnergyByName(boss.name) || 0
|
|
3375
|
+
maxEnergy: getMaxEnergyByName(boss.name) || 0,
|
|
3376
|
+
maxStacks: getMaxStacksByName(boss.name) || 0,
|
|
3377
|
+
maxShield: getMaxShieldByName(boss.name) || 0,
|
|
3378
|
+
armor: getArmorByName(boss.name) || 0,
|
|
3379
|
+
shieldArmor: getShieldArmorByName(boss.name) || 0
|
|
3233
3380
|
};
|
|
3234
3381
|
}
|
|
3235
3382
|
}
|
|
@@ -3367,7 +3514,7 @@ function applyPassiveEffects(targetBoss, activeBosses, weaponName, damage, ignor
|
|
|
3367
3514
|
}
|
|
3368
3515
|
}
|
|
3369
3516
|
const healingEffects = [
|
|
3370
|
-
{ effect: BattleEffectProcessor.handleFrostRegeneration, args: [targetBoss, activeBosses,
|
|
3517
|
+
{ effect: BattleEffectProcessor.handleFrostRegeneration, args: [targetBoss, activeBosses, maxStatsForTarget] },
|
|
3371
3518
|
{ effect: BattleEffectProcessor.handleFrostAura, args: [targetBoss, activeBosses] },
|
|
3372
3519
|
{ effect: BattleEffectProcessor.handleSentryGun, args: [targetBoss, activeBosses] },
|
|
3373
3520
|
{ effect: BattleEffectProcessor.handleMoldGrowth, args: [targetBoss, activeBosses] },
|
|
@@ -3442,7 +3589,7 @@ function applyPassiveEffects(targetBoss, activeBosses, weaponName, damage, ignor
|
|
|
3442
3589
|
}
|
|
3443
3590
|
coldLayerAdded = coldResult.layerAdded;
|
|
3444
3591
|
}
|
|
3445
|
-
const energyDrainResult = BattleEffectProcessor.handleWeaponEnergyDrain(targetBoss, weaponName,
|
|
3592
|
+
const energyDrainResult = BattleEffectProcessor.handleWeaponEnergyDrain(targetBoss, weaponName, maxStatsForTarget);
|
|
3446
3593
|
if (energyDrainResult) {
|
|
3447
3594
|
messages.push(...energyDrainResult.messages);
|
|
3448
3595
|
if (energyDrainResult.targetUpdates) {
|
|
@@ -3450,7 +3597,7 @@ function applyPassiveEffects(targetBoss, activeBosses, weaponName, damage, ignor
|
|
|
3450
3597
|
}
|
|
3451
3598
|
energyDrained = energyDrainResult.success || false;
|
|
3452
3599
|
}
|
|
3453
|
-
const layerReduceResult = BattleEffectProcessor.handleWeaponLayerReduction(targetBoss, weaponName);
|
|
3600
|
+
const layerReduceResult = BattleEffectProcessor.handleWeaponLayerReduction(targetBoss, weaponName, maxStatsForTarget);
|
|
3454
3601
|
if (layerReduceResult) {
|
|
3455
3602
|
messages.push(...layerReduceResult.messages);
|
|
3456
3603
|
if (layerReduceResult.targetUpdates) {
|
|
@@ -3462,6 +3609,9 @@ function applyPassiveEffects(targetBoss, activeBosses, weaponName, damage, ignor
|
|
|
3462
3609
|
let adjustedNerfMultiplier = totalNerfMultiplier * (1 - ignoreRate);
|
|
3463
3610
|
const damageMultiplier = 1 + totalBuffMultiplier - adjustedNerfMultiplier;
|
|
3464
3611
|
finalDamage = Math.max(1, Math.round(damage * damageMultiplier));
|
|
3612
|
+
if (hasCrit) {
|
|
3613
|
+
finalDamage *= 2;
|
|
3614
|
+
}
|
|
3465
3615
|
const frostEvolutionResult = BattleEffectProcessor.handleFrostEvolution(
|
|
3466
3616
|
targetBoss,
|
|
3467
3617
|
weaponName,
|
|
@@ -3475,7 +3625,6 @@ function applyPassiveEffects(targetBoss, activeBosses, weaponName, damage, ignor
|
|
|
3475
3625
|
}
|
|
3476
3626
|
if (frostEvolutionResult.isImmune) {
|
|
3477
3627
|
immune = true;
|
|
3478
|
-
finalDamage = 0;
|
|
3479
3628
|
}
|
|
3480
3629
|
}
|
|
3481
3630
|
const flameAlienResult = BattleEffectProcessor.handleFlameAlien(
|
|
@@ -3491,7 +3640,6 @@ function applyPassiveEffects(targetBoss, activeBosses, weaponName, damage, ignor
|
|
|
3491
3640
|
}
|
|
3492
3641
|
if (flameAlienResult.isImmune) {
|
|
3493
3642
|
immune = true;
|
|
3494
|
-
finalDamage = 0;
|
|
3495
3643
|
}
|
|
3496
3644
|
}
|
|
3497
3645
|
const cosmicEnergyResult = BattleEffectProcessor.handleCosmicEnergy(
|
|
@@ -3757,7 +3905,7 @@ var passiveConfig = {
|
|
|
3757
3905
|
},
|
|
3758
3906
|
"剧毒狂暴": {
|
|
3759
3907
|
type: "狂怒机制",
|
|
3760
|
-
description: "生命值≤50%时,受击额外获得1
|
|
3908
|
+
description: "生命值≤50%时,受击额外获得1层「毒性唾液」且受到的伤害降低20%"
|
|
3761
3909
|
},
|
|
3762
3910
|
"毒气波": {
|
|
3763
3911
|
type: "概率叠层",
|
|
@@ -3769,7 +3917,7 @@ var passiveConfig = {
|
|
|
3769
3917
|
},
|
|
3770
3918
|
"酸蚀池": {
|
|
3771
3919
|
type: "随机抗性",
|
|
3772
|
-
description: "每次受击将会从3种酸液中顺序选择一种释放(脓蚀酸池:受到实弹武器伤害降低
|
|
3920
|
+
description: "每次受击将会从3种酸液中顺序选择一种释放(脓蚀酸池:受到实弹武器伤害降低50%,受到能量武器伤害提高50%;蚀骨酸池:受到能量武器伤害降低50%,受到热能武器伤害提高50%;焦熔酸池:受到热能武器的伤害降低50%,受到实弹武器伤害提高50%)"
|
|
3773
3921
|
},
|
|
3774
3922
|
"剧毒突袭": {
|
|
3775
3923
|
type: "强化效果",
|
|
@@ -4500,42 +4648,45 @@ var legendaryDiscounts = {
|
|
|
4500
4648
|
async function calculateTotalDamage(ctx, session, config, equippedWeapon, targetBoss) {
|
|
4501
4649
|
let effectMessage = [];
|
|
4502
4650
|
const finalTags = targetBoss.tags || [];
|
|
4651
|
+
let armorDamageReduction = 0;
|
|
4503
4652
|
const [profile] = await ctx.database.get("sc2arcade_player", { userId: session.userId });
|
|
4504
4653
|
const { regionId, realmId, profileId } = profile;
|
|
4505
4654
|
const handle = `${regionId}-S2-${realmId}-${profileId}`;
|
|
4506
4655
|
const weaponConfigEntry = Object.entries(weaponConfig).find(([_, c]) => c.id === equippedWeapon.weaponId);
|
|
4507
4656
|
const [weaponName, weaponData] = weaponConfigEntry;
|
|
4657
|
+
const [careerData] = await ctx.database.get("ggcevo_careers", { handle });
|
|
4658
|
+
armorDamageReduction = weaponData.armorDamageReduction || 0;
|
|
4659
|
+
if (careerData.career === "猩红杀手" && weaponName === "侦察步枪") {
|
|
4660
|
+
armorDamageReduction = 0;
|
|
4661
|
+
}
|
|
4662
|
+
const armorReduction = armorDamageReduction * getArmorByName(targetBoss.name);
|
|
4663
|
+
const initialDamage = Math.max(weaponData.damage - armorReduction, 1);
|
|
4508
4664
|
const isLegendary = weaponData.category === "传奇武器";
|
|
4509
4665
|
const levelBonusRate = isLegendary ? 0.05 : 0.1;
|
|
4510
|
-
const baseDamage =
|
|
4511
|
-
|
|
4512
|
-
effectMessage.push(`🔫 ${weaponName} Lv.${equippedWeapon.level}:基础伤害+${bonusPercent}%` + (isLegendary ? "(传奇武器)" : ""));
|
|
4513
|
-
let totalAdditive = 0;
|
|
4666
|
+
const baseDamage = initialDamage * (1 + levelBonusRate * equippedWeapon.level);
|
|
4667
|
+
effectMessage.push(`🔫 ${weaponName} Lv.${equippedWeapon.level}:基础伤害${Math.round(baseDamage)}`);
|
|
4514
4668
|
const tagAdditive = await calculateTagMultiplier(weaponData, finalTags, equippedWeapon);
|
|
4515
|
-
|
|
4516
|
-
|
|
4517
|
-
|
|
4518
|
-
|
|
4519
|
-
|
|
4520
|
-
);
|
|
4521
|
-
totalAdditive += totalModAdd;
|
|
4669
|
+
const tagMultiplier = 1 + tagAdditive;
|
|
4670
|
+
if (tagAdditive !== 0) {
|
|
4671
|
+
const sign = tagAdditive >= 0 ? "+" : "";
|
|
4672
|
+
effectMessage.push(`📌 标签加成:攻击伤害${sign}${Math.round(tagAdditive * 100)}%`);
|
|
4673
|
+
}
|
|
4674
|
+
const { totalModAdd, modMessages } = calculateModifiers(equippedWeapon, weaponName);
|
|
4522
4675
|
effectMessage.push(...modMessages);
|
|
4523
|
-
const
|
|
4524
|
-
|
|
4525
|
-
if (
|
|
4526
|
-
const
|
|
4527
|
-
|
|
4528
|
-
if (wishAdditive.message) effectMessage.push(wishAdditive.message);
|
|
4676
|
+
const modMultiplier = 1 + totalModAdd;
|
|
4677
|
+
const careerAddResult = await calculateCareerAdditive(ctx, handle, weaponData.type, weaponData.id, careerData);
|
|
4678
|
+
if (careerAddResult.message) effectMessage.push(careerAddResult.message);
|
|
4679
|
+
const wishAddResult = await calculateWishAdditive(ctx, handle, equippedWeapon);
|
|
4680
|
+
if (wishAddResult.message) effectMessage.push(wishAddResult.message);
|
|
4529
4681
|
const [rankRecord] = await ctx.database.get("ggcevo_rank", { handle, rankseason: config.rankseason });
|
|
4530
4682
|
const rankAddResult = calculateRankAdditive(rankRecord);
|
|
4531
|
-
|
|
4532
|
-
|
|
4533
|
-
|
|
4534
|
-
|
|
4535
|
-
|
|
4536
|
-
|
|
4537
|
-
|
|
4538
|
-
}
|
|
4683
|
+
if (rankAddResult.message) effectMessage.push(rankAddResult.message);
|
|
4684
|
+
const otherAdditive = careerAddResult.value + wishAddResult.value + rankAddResult.value;
|
|
4685
|
+
const otherMultiplier = 1 + otherAdditive;
|
|
4686
|
+
let finalDamage = baseDamage * tagMultiplier * modMultiplier * otherMultiplier;
|
|
4687
|
+
const { hasCrit, critSources } = await calculateCrit(ctx, handle, equippedWeapon, weaponName);
|
|
4688
|
+
effectMessage.push(...critSources);
|
|
4689
|
+
finalDamage = Math.max(finalDamage, 1);
|
|
4539
4690
|
return {
|
|
4540
4691
|
damage: Math.round(finalDamage),
|
|
4541
4692
|
hasCrit,
|
|
@@ -4543,23 +4694,42 @@ async function calculateTotalDamage(ctx, session, config, equippedWeapon, target
|
|
|
4543
4694
|
};
|
|
4544
4695
|
}
|
|
4545
4696
|
__name(calculateTotalDamage, "calculateTotalDamage");
|
|
4546
|
-
async function
|
|
4547
|
-
|
|
4697
|
+
async function calculateCrit(ctx, handle, equippedWeapon, weaponName) {
|
|
4698
|
+
let critRate = 0;
|
|
4699
|
+
const critSources = [];
|
|
4700
|
+
if (equippedWeapon.installedMods?.includes("棱镜水晶")) {
|
|
4701
|
+
critRate += 20;
|
|
4702
|
+
critSources.push("🔼 棱镜水晶:暴击率+20%");
|
|
4703
|
+
}
|
|
4704
|
+
if (equippedWeapon.installedMods?.includes("棱镜超载核心") && modConfig["棱镜超载核心"]?.exclusiveTo === weaponName) {
|
|
4705
|
+
critRate += 80;
|
|
4706
|
+
critSources.push("🔼 棱镜超载核心:暴击率+80%");
|
|
4707
|
+
}
|
|
4708
|
+
const [critRhythm] = await ctx.database.get("ggcevo_wish", {
|
|
4548
4709
|
handle,
|
|
4549
4710
|
wishname: "暴击韵律",
|
|
4550
4711
|
startTime: { $lte: /* @__PURE__ */ new Date() },
|
|
4551
4712
|
endTime: { $gte: /* @__PURE__ */ new Date() }
|
|
4552
4713
|
});
|
|
4553
|
-
|
|
4714
|
+
if (critRhythm) {
|
|
4715
|
+
critRate += 20;
|
|
4716
|
+
critSources.push("🎵 暴击韵律祈愿:暴击率+20%");
|
|
4717
|
+
}
|
|
4718
|
+
if (weaponName === "MK-4激光步枪") {
|
|
4719
|
+
critRate += 80;
|
|
4720
|
+
critSources.push("🔫 MK-4激光步枪:暴击率+80%");
|
|
4721
|
+
}
|
|
4722
|
+
critSources.push(`📊 本次攻击总暴击率:${critRate}%`);
|
|
4723
|
+
return {
|
|
4724
|
+
hasCrit: Math.random() * 100 < critRate,
|
|
4725
|
+
critSources
|
|
4726
|
+
};
|
|
4554
4727
|
}
|
|
4555
|
-
__name(
|
|
4728
|
+
__name(calculateCrit, "calculateCrit");
|
|
4556
4729
|
async function calculateTagMultiplier(weaponData, tags, equippedWeapon) {
|
|
4557
4730
|
const MOD_EFFECTS = [
|
|
4558
|
-
{ mod: "裂甲核心", tag: "重甲", value: 1.5 },
|
|
4559
4731
|
{ mod: "助燃核心", tag: "惧热", value: 3 },
|
|
4560
|
-
{ mod: "助燃核心", tag: "生物", value: 2 }
|
|
4561
|
-
{ mod: "金刚石瞄准镜", tag: "重甲", value: 0.8 },
|
|
4562
|
-
{ mod: "护盾崩解核心", tag: "护盾", value: 0.8 }
|
|
4732
|
+
{ mod: "助燃核心", tag: "生物", value: 2 }
|
|
4563
4733
|
];
|
|
4564
4734
|
let totalAdditive = 0;
|
|
4565
4735
|
for (const tag of tags) {
|
|
@@ -4572,77 +4742,33 @@ async function calculateTagMultiplier(weaponData, tags, equippedWeapon) {
|
|
|
4572
4742
|
return totalAdditive;
|
|
4573
4743
|
}
|
|
4574
4744
|
__name(calculateTagMultiplier, "calculateTagMultiplier");
|
|
4575
|
-
function calculateModifiers(equippedWeapon, weaponName
|
|
4745
|
+
function calculateModifiers(equippedWeapon, weaponName) {
|
|
4576
4746
|
let totalModAdd = 0;
|
|
4577
|
-
let hasCrit = false;
|
|
4578
4747
|
const modMessages = [];
|
|
4579
|
-
|
|
4580
|
-
|
|
4581
|
-
|
|
4582
|
-
let weaponCrit = 0;
|
|
4583
|
-
if (weaponName === "MK-4激光步枪") {
|
|
4584
|
-
weaponCrit = 80;
|
|
4585
|
-
modMessages.push(`🔫 【MK-4激光步枪】武器效果:暴击率+${weaponCrit}%`);
|
|
4586
|
-
}
|
|
4587
|
-
equippedWeapon.installedMods.forEach((mod) => {
|
|
4588
|
-
if (mod === "动能增幅") {
|
|
4589
|
-
totalModAdd += 0.2;
|
|
4590
|
-
modMessages.push(`🛠️ 【动能增幅】生效:攻击伤害+20%`);
|
|
4591
|
-
}
|
|
4592
|
-
if (mod === "裂甲核心" && weaponName === modConfig[mod].exclusiveTo) {
|
|
4593
|
-
totalModAdd += 0.4;
|
|
4594
|
-
modMessages.push(`🛠️ 【裂甲核心】生效:攻击伤害+40%`);
|
|
4595
|
-
}
|
|
4596
|
-
if (mod === "棱镜水晶") {
|
|
4597
|
-
crystalCrit = 20;
|
|
4598
|
-
modMessages.push(`🛠️ 【棱镜水晶】生效:暴击率+20%`);
|
|
4599
|
-
}
|
|
4600
|
-
if (mod === "棱镜超载核心" && weaponName === modConfig[mod].exclusiveTo) {
|
|
4601
|
-
overloadCrit = 80;
|
|
4602
|
-
modMessages.push(`🛠️ 【棱镜超载核心】生效:暴击率+80%`);
|
|
4603
|
-
}
|
|
4604
|
-
if (mod === "微型聚变核心") {
|
|
4605
|
-
const currentCombo = equippedWeapon?.comboCount || 0;
|
|
4606
|
-
const maxStacks = 6;
|
|
4607
|
-
const bonusPerCombo = 0.075;
|
|
4608
|
-
const effectiveStacks = Math.min(currentCombo, maxStacks);
|
|
4609
|
-
const bonusDamage = effectiveStacks * bonusPerCombo;
|
|
4610
|
-
totalModAdd += bonusDamage;
|
|
4611
|
-
if (currentCombo > 0) {
|
|
4612
|
-
modMessages.push(
|
|
4613
|
-
`🛠️ 【微型聚变核心】生效:攻击伤害+${(bonusDamage * 100).toFixed(0)}%` + (effectiveStacks < currentCombo ? `(已达上限45%)` : "")
|
|
4614
|
-
);
|
|
4615
|
-
}
|
|
4616
|
-
}
|
|
4617
|
-
});
|
|
4618
|
-
rhythmCrit = hasCritRhythm ? 20 : 0;
|
|
4619
|
-
if (hasCritRhythm) {
|
|
4620
|
-
modMessages.push(`🎵 暴击韵律祈愿:暴击率+20%`);
|
|
4748
|
+
if (equippedWeapon.installedMods?.includes("动能增幅")) {
|
|
4749
|
+
totalModAdd += 0.2;
|
|
4750
|
+
modMessages.push(`🛠️ 【动能增幅】:伤害加成+20%`);
|
|
4621
4751
|
}
|
|
4622
|
-
|
|
4623
|
-
|
|
4624
|
-
|
|
4625
|
-
100
|
|
4626
|
-
);
|
|
4627
|
-
if (totalCritRate > 0) {
|
|
4752
|
+
if (equippedWeapon.installedMods?.includes("裂甲核心") && weaponName === modConfig["裂甲核心"]?.exclusiveTo) {
|
|
4753
|
+
totalModAdd += 0.4;
|
|
4754
|
+
modMessages.push(`🛠️ 【裂甲核心】:伤害加成+40%`);
|
|
4628
4755
|
}
|
|
4629
|
-
if (
|
|
4630
|
-
const
|
|
4631
|
-
|
|
4632
|
-
|
|
4633
|
-
|
|
4634
|
-
|
|
4756
|
+
if (equippedWeapon.installedMods?.includes("微型聚变核心")) {
|
|
4757
|
+
const currentCombo = equippedWeapon?.comboCount || 0;
|
|
4758
|
+
const maxStacks = 6;
|
|
4759
|
+
const bonusPerCombo = 0.075;
|
|
4760
|
+
const effectiveStacks = Math.min(currentCombo, maxStacks);
|
|
4761
|
+
const bonusDamage = effectiveStacks * bonusPerCombo;
|
|
4762
|
+
totalModAdd += bonusDamage;
|
|
4763
|
+
modMessages.push(`🛠️ 【微型聚变核心】:连击加成+${(bonusDamage * 100).toFixed(0)}%`);
|
|
4635
4764
|
}
|
|
4636
4765
|
return {
|
|
4637
4766
|
totalModAdd,
|
|
4638
|
-
hasCrit,
|
|
4639
4767
|
modMessages
|
|
4640
|
-
// 返回模块消息数组
|
|
4641
4768
|
};
|
|
4642
4769
|
}
|
|
4643
4770
|
__name(calculateModifiers, "calculateModifiers");
|
|
4644
|
-
async function calculateCareerAdditive(ctx, handle, weaponType, weaponId) {
|
|
4645
|
-
const [careerData] = await ctx.database.get("ggcevo_careers", { handle });
|
|
4771
|
+
async function calculateCareerAdditive(ctx, handle, weaponType, weaponId, careerData) {
|
|
4646
4772
|
let value = 0;
|
|
4647
4773
|
let message = "";
|
|
4648
4774
|
if (careerData?.career === "警卫长") {
|
|
@@ -4698,15 +4824,6 @@ async function calculateWishAdditive(ctx, handle, weapon) {
|
|
|
4698
4824
|
value += levelBonus;
|
|
4699
4825
|
messages.push(`🗡️ 悲鸣之锋祈愿:攻击伤害+${Math.round(levelBonus * 100)}%`);
|
|
4700
4826
|
}
|
|
4701
|
-
const [critRhythm] = await ctx.database.get("ggcevo_wish", {
|
|
4702
|
-
handle,
|
|
4703
|
-
wishname: "暴击韵律",
|
|
4704
|
-
startTime: { $lte: /* @__PURE__ */ new Date() },
|
|
4705
|
-
endTime: { $gte: /* @__PURE__ */ new Date() }
|
|
4706
|
-
});
|
|
4707
|
-
if (critRhythm) {
|
|
4708
|
-
messages.push("🎵 暴击韵律祈愿:攻击暴击率+20%");
|
|
4709
|
-
}
|
|
4710
4827
|
return {
|
|
4711
4828
|
value,
|
|
4712
4829
|
message: messages.join(",")
|
|
@@ -4880,7 +4997,7 @@ __name(handleBossDefeatRewards, "handleBossDefeatRewards");
|
|
|
4880
4997
|
async function handlePrimaryAttack(ctx, session, handle, config, equippedWeapon, targetBoss, activeBosses, weaponName) {
|
|
4881
4998
|
const damageResult = await calculateTotalDamage(ctx, session, config, equippedWeapon, targetBoss);
|
|
4882
4999
|
const ignoreReduction = await handleIgnoreReductionEffects(ctx, handle, weaponName, targetBoss);
|
|
4883
|
-
const EffectProcessor = applyPassiveEffects(targetBoss, activeBosses, weaponName, damageResult.damage, ignoreReduction.ignoreRate);
|
|
5000
|
+
const EffectProcessor = applyPassiveEffects(targetBoss, activeBosses, weaponName, damageResult.damage, damageResult.hasCrit, ignoreReduction.ignoreRate);
|
|
4884
5001
|
const initialDamage = EffectProcessor.finalDamage;
|
|
4885
5002
|
await saveAndClearStats(ctx);
|
|
4886
5003
|
const [currentboss] = await ctx.database.get("ggcevo_boss", { name: targetBoss.name });
|
|
@@ -4926,7 +5043,7 @@ async function handleScatterAttack(ctx, session, handle, config, equippedWeapon,
|
|
|
4926
5043
|
);
|
|
4927
5044
|
const secondaryDamage = Math.round(damageResult.damage * scatterRatio);
|
|
4928
5045
|
const ignoreReduction = await handleIgnoreReductionEffects(ctx, handle, weaponName, secondaryTarget);
|
|
4929
|
-
const EffectProcessor = applyPassiveEffects(secondaryTarget, activeBosses, weaponName, secondaryDamage, ignoreReduction.ignoreRate);
|
|
5046
|
+
const EffectProcessor = applyPassiveEffects(secondaryTarget, activeBosses, weaponName, secondaryDamage, damageResult.hasCrit, ignoreReduction.ignoreRate);
|
|
4930
5047
|
const actualDamage = EffectProcessor.finalDamage;
|
|
4931
5048
|
await saveAndClearStats(ctx);
|
|
4932
5049
|
const [currentboss] = await ctx.database.get("ggcevo_boss", { name: secondaryTarget.name });
|
|
@@ -5169,11 +5286,11 @@ async function updateDatabaseWithStats(ctx, stats) {
|
|
|
5169
5286
|
updateData.energy = Math.max(0, Math.min(maxEnergy, newEnergy));
|
|
5170
5287
|
}
|
|
5171
5288
|
if (stats.skillStacksChanged !== 0) {
|
|
5172
|
-
|
|
5289
|
+
const newStacks = boss.skillStacks + stats.skillStacksChanged;
|
|
5290
|
+
updateData.skillStacks = Math.max(0, Math.min(maxStacks, newStacks));
|
|
5173
5291
|
}
|
|
5174
5292
|
if (stats.skillStatusChanged !== 0) {
|
|
5175
|
-
|
|
5176
|
-
updateData.skillStatus = Math.max(0, Math.min(maxStacks, newStatus));
|
|
5293
|
+
updateData.skillStatus = Math.max(0, boss.skillStatus + stats.skillStatusChanged);
|
|
5177
5294
|
}
|
|
5178
5295
|
if (stats.statusLayersChanged !== 0) {
|
|
5179
5296
|
updateData.statusLayers = Math.max(0, boss.statusLayers + stats.statusLayersChanged);
|
|
@@ -5235,9 +5352,18 @@ async function handleIgnoreReductionEffects(ctx, handle, weaponName, targetBoss)
|
|
|
5235
5352
|
handle,
|
|
5236
5353
|
equipped: true
|
|
5237
5354
|
});
|
|
5238
|
-
if (equippedWeapon?.installedMods
|
|
5239
|
-
|
|
5240
|
-
|
|
5355
|
+
if (!equippedWeapon?.installedMods) return;
|
|
5356
|
+
if (equippedWeapon.installedMods.includes("破甲模块")) {
|
|
5357
|
+
ignoreEffects.push(0.15);
|
|
5358
|
+
messages.push(`⚡ 【破甲模块】生效:无视15%减伤效果`);
|
|
5359
|
+
}
|
|
5360
|
+
if (weaponName === "高斯步枪" && equippedWeapon.installedMods.includes("裂甲核心")) {
|
|
5361
|
+
ignoreEffects.push(0.4);
|
|
5362
|
+
messages.push(`💥 【裂甲核心】生效:无视40%减伤效果`);
|
|
5363
|
+
}
|
|
5364
|
+
if (weaponName === "侦察步枪" && equippedWeapon.installedMods.includes("金刚石瞄准镜")) {
|
|
5365
|
+
ignoreEffects.push(0.4);
|
|
5366
|
+
messages.push(`💥 【金刚石瞄准镜】生效:无视50%减伤效果`);
|
|
5241
5367
|
}
|
|
5242
5368
|
}, "handlePiercingMod");
|
|
5243
5369
|
handleWeaponEffect();
|
|
@@ -5273,7 +5399,7 @@ __name(handleIgnoreReductionEffects, "handleIgnoreReductionEffects");
|
|
|
5273
5399
|
async function testAttackFunction(ctx, session, handle, config, equippedWeapon, targetBoss, activeBosses, weaponName) {
|
|
5274
5400
|
const damageResult = await calculateTotalDamage(ctx, session, config, equippedWeapon, targetBoss);
|
|
5275
5401
|
const ignoreReduction = await handleIgnoreReductionEffects(ctx, handle, weaponName, targetBoss);
|
|
5276
|
-
const EffectProcessor = applyPassiveEffects(targetBoss, activeBosses, weaponName, damageResult.damage, ignoreReduction.ignoreRate);
|
|
5402
|
+
const EffectProcessor = applyPassiveEffects(targetBoss, activeBosses, weaponName, damageResult.damage, damageResult.hasCrit, ignoreReduction.ignoreRate);
|
|
5277
5403
|
const initialDamage = EffectProcessor.finalDamage;
|
|
5278
5404
|
return {
|
|
5279
5405
|
initialDamage,
|
|
@@ -7328,12 +7454,23 @@ ${Object.keys(categoryStats).join("、")}`;
|
|
|
7328
7454
|
tagEffectsDesc = Object.entries(config2.tagEffects).map(([tag, multiplier]) => `▸ 对${tag}目标造成${(multiplier * 100).toFixed(0)}%伤害`).join("\n");
|
|
7329
7455
|
}
|
|
7330
7456
|
const specialEffect = config2.specialeffect ? `特殊效果:${config2.specialeffect}` : "";
|
|
7457
|
+
const armorDamageDesc = (() => {
|
|
7458
|
+
if (config2.armorDamageReduction === 0) {
|
|
7459
|
+
return `护甲减伤:0`;
|
|
7460
|
+
} else if (config2.armorDamageReduction > 0) {
|
|
7461
|
+
return `护甲减伤:${config2.armorDamageReduction}(每点护甲扣除${config2.armorDamageReduction}点伤害)`;
|
|
7462
|
+
} else {
|
|
7463
|
+
return `护甲减伤:${config2.armorDamageReduction}(每点护甲增加${Math.abs(config2.armorDamageReduction)}点伤害)`;
|
|
7464
|
+
}
|
|
7465
|
+
})();
|
|
7331
7466
|
return [
|
|
7332
7467
|
`【${name2}】`,
|
|
7333
7468
|
`武器类型:${config2.type}`,
|
|
7334
7469
|
`基础伤害:${config2.damage}`,
|
|
7470
|
+
armorDamageDesc,
|
|
7471
|
+
// 添加这里
|
|
7335
7472
|
`价格:${priceDisplay}`,
|
|
7336
|
-
|
|
7473
|
+
config2.specialeffect && `特殊效果:${config2.specialeffect}`,
|
|
7337
7474
|
"特性:",
|
|
7338
7475
|
tagEffectsDesc,
|
|
7339
7476
|
`描述:${config2.description}`,
|
|
@@ -7571,7 +7708,8 @@ ${validTypes.join("、")}`;
|
|
|
7571
7708
|
const mods = w.installedMods.map((m) => m).join(" | ") || "无";
|
|
7572
7709
|
return [
|
|
7573
7710
|
`${statusIcon} ${weaponName} ${typeTag} ${statusText}`,
|
|
7574
|
-
`等级:Lv.${w.level} | 改装槽:${w.modificationSlots}
|
|
7711
|
+
`等级:Lv.${w.level} | 改装槽:${w.modificationSlots}`,
|
|
7712
|
+
`基础伤害:${damageFormatted}`,
|
|
7575
7713
|
`改装:${mods}`
|
|
7576
7714
|
].join("\n");
|
|
7577
7715
|
}));
|
|
@@ -7647,20 +7785,36 @@ ${validTypes.join("、")}`;
|
|
|
7647
7785
|
const handle = `${profile.regionId}-S2-${profile.realmId}-${profile.profileId}`;
|
|
7648
7786
|
const existingEntries = await ctx.database.get("ggcevo_blacklist", { handle });
|
|
7649
7787
|
if (existingEntries.length > 0) return "⛔ 您已被列入黑名单。";
|
|
7650
|
-
const
|
|
7788
|
+
const [techData] = await ctx.database.get("ggcevo_tech", { handle, techId: 3 }).catch(() => [{ level: 0 }]);
|
|
7789
|
+
const [careerData] = await ctx.database.get("ggcevo_careers", { handle });
|
|
7790
|
+
const techLevel = techData?.level || 0;
|
|
7791
|
+
const isCareerMatch = ["武器中士", "情报副官"].includes(careerData?.career);
|
|
7792
|
+
const calculateDiscountRate = /* @__PURE__ */ __name((isExclusive) => {
|
|
7793
|
+
if (isExclusive) {
|
|
7794
|
+
if (techLevel >= 2) {
|
|
7795
|
+
const baseDiscount = 5;
|
|
7796
|
+
const careerDiscount = isCareerMatch ? 10 : 0;
|
|
7797
|
+
return Math.max(baseDiscount, careerDiscount);
|
|
7798
|
+
}
|
|
7799
|
+
return 0;
|
|
7800
|
+
} else {
|
|
7801
|
+
if (techLevel >= 1) {
|
|
7802
|
+
const baseDiscount = 5;
|
|
7803
|
+
const careerDiscount = isCareerMatch ? 10 : 0;
|
|
7804
|
+
return Math.max(baseDiscount, careerDiscount);
|
|
7805
|
+
}
|
|
7806
|
+
return 0;
|
|
7807
|
+
}
|
|
7808
|
+
}, "calculateDiscountRate");
|
|
7651
7809
|
const processModInstallation = /* @__PURE__ */ __name(async () => {
|
|
7652
7810
|
const modInfo = modConfig[mod];
|
|
7653
|
-
if (!modInfo) return "无效模块名称。";
|
|
7811
|
+
if (!modInfo) return "❌ 无效模块名称。";
|
|
7654
7812
|
if (!weapon || !weaponConfig[weapon]?.id) {
|
|
7655
7813
|
const validWeapons = Object.keys(weaponConfig).filter((k) => weaponConfig[k].id);
|
|
7656
7814
|
return `❌ 无效武器名称。可选武器:${validWeapons.join("、")}`;
|
|
7657
7815
|
}
|
|
7658
7816
|
const weaponId = weaponConfig[weapon].id;
|
|
7659
|
-
const [equipment] = await ctx.database.get("ggcevo_weapons", {
|
|
7660
|
-
handle,
|
|
7661
|
-
weaponId
|
|
7662
|
-
// 使用已验证的weaponId
|
|
7663
|
-
});
|
|
7817
|
+
const [equipment] = await ctx.database.get("ggcevo_weapons", { handle, weaponId });
|
|
7664
7818
|
if (!equipment) {
|
|
7665
7819
|
return `❌ 尚未获得【${weapon}】或武器名称错误`;
|
|
7666
7820
|
}
|
|
@@ -7675,32 +7829,15 @@ ${validTypes.join("、")}`;
|
|
|
7675
7829
|
if (equipment.installedMods.includes(mod)) {
|
|
7676
7830
|
return "❌ 已安装相同模块。";
|
|
7677
7831
|
}
|
|
7678
|
-
const
|
|
7679
|
-
const [careerData] = await ctx.database.get("ggcevo_careers", { handle });
|
|
7680
|
-
const techLevel = techData?.level || 0;
|
|
7681
|
-
const isCareerMatch = Spacestationtechnology.find((t) => t.techId === 3).careerNames.includes(careerData?.career);
|
|
7682
|
-
let discountRate = 0;
|
|
7683
|
-
if (careerData?.group === "人类联盟") {
|
|
7684
|
-
if (modInfo.isExclusive) {
|
|
7685
|
-
if (techLevel >= 2) {
|
|
7686
|
-
const baseDiscount = 5;
|
|
7687
|
-
const careerDiscount = 10;
|
|
7688
|
-
discountRate = Math.max(baseDiscount, careerDiscount);
|
|
7689
|
-
}
|
|
7690
|
-
} else {
|
|
7691
|
-
const baseDiscount = 5;
|
|
7692
|
-
const careerDiscount = 10;
|
|
7693
|
-
discountRate = Math.max(baseDiscount, careerDiscount);
|
|
7694
|
-
}
|
|
7695
|
-
}
|
|
7832
|
+
const discountRate = calculateDiscountRate(modInfo.isExclusive);
|
|
7696
7833
|
const actualCost = Math.floor(modInfo.cost * (1 - discountRate / 100));
|
|
7697
7834
|
const [signInfo] = await ctx.database.get("ggcevo_sign", { handle });
|
|
7698
7835
|
if ((signInfo?.totalRewards || 0) < actualCost) {
|
|
7699
|
-
return
|
|
7836
|
+
return `❌ 改装需要 ${actualCost} 金币,当前持有:${signInfo?.totalRewards || 0}`;
|
|
7700
7837
|
}
|
|
7701
7838
|
await ctx.database.set(
|
|
7702
7839
|
"ggcevo_weapons",
|
|
7703
|
-
{ handle, weaponId
|
|
7840
|
+
{ handle, weaponId },
|
|
7704
7841
|
{ installedMods: [...equipment.installedMods, mod] }
|
|
7705
7842
|
);
|
|
7706
7843
|
await ctx.database.set("ggcevo_sign", { handle }, {
|
|
@@ -7709,41 +7846,28 @@ ${validTypes.join("、")}`;
|
|
|
7709
7846
|
return [
|
|
7710
7847
|
`✅ ${weapon} 成功安装 ${mod}!`,
|
|
7711
7848
|
`花费金币:${actualCost}${discountRate > 0 ? ` (原价${modInfo.cost})` : ""}`,
|
|
7712
|
-
discountRate > 0 &&
|
|
7713
|
-
"💰 折扣明细:",
|
|
7714
|
-
`▸ ⚙️ 武器升级平台Lv.${techLevel}:${discountRate}%折扣`
|
|
7715
|
-
].join("\n"),
|
|
7849
|
+
discountRate > 0 && `💰 折扣明细:${discountRate}% (⚙️ Lv.${techLevel})`,
|
|
7716
7850
|
`改装槽:${equipment.installedMods.length + 1}/${equipment.modificationSlots}`
|
|
7717
7851
|
].filter(Boolean).join("\n");
|
|
7718
7852
|
}, "processModInstallation");
|
|
7719
7853
|
const showModList = /* @__PURE__ */ __name(async () => {
|
|
7720
|
-
const
|
|
7721
|
-
|
|
7722
|
-
|
|
7723
|
-
|
|
7724
|
-
|
|
7725
|
-
|
|
7726
|
-
|
|
7727
|
-
|
|
7728
|
-
|
|
7729
|
-
|
|
7730
|
-
|
|
7731
|
-
|
|
7732
|
-
|
|
7733
|
-
|
|
7734
|
-
|
|
7735
|
-
|
|
7736
|
-
|
|
7737
|
-
`效果:${config2.effect}`,
|
|
7738
|
-
"------------------"
|
|
7739
|
-
].filter(Boolean).join("\n");
|
|
7740
|
-
}, "formatMod");
|
|
7741
|
-
const baseUniversalDiscount = [5, 10][techLevel - 1] || 0;
|
|
7742
|
-
const careerUniversalDiscount = techLevel >= 1 && isCareerMatch ? [10, 20][techLevel - 1] : 0;
|
|
7743
|
-
const universalDiscountRate = Math.max(baseUniversalDiscount, careerUniversalDiscount);
|
|
7744
|
-
const exclusiveDiscountRate = techLevel >= 2 && isCareerMatch ? 10 : 0;
|
|
7745
|
-
if (isValidWeapon) {
|
|
7746
|
-
const exclusiveMods = Object.entries(modConfig).filter(([_, m]) => m.isExclusive && m.exclusiveTo === weapon).map(([name2, cfg]) => formatMod(name2, cfg));
|
|
7854
|
+
const buildModList = /* @__PURE__ */ __name((isExclusive) => {
|
|
7855
|
+
const mods = Object.entries(modConfig).filter(([_, m]) => m.isExclusive === isExclusive).map(([name2, cfg]) => {
|
|
7856
|
+
const discountRate = calculateDiscountRate(cfg.isExclusive);
|
|
7857
|
+
const actualPrice = Math.floor(cfg.cost * (1 - discountRate / 100));
|
|
7858
|
+
return [
|
|
7859
|
+
`【${name2}】${cfg.isExclusive ? ` (专属:${cfg.exclusiveTo})` : ""}`,
|
|
7860
|
+
`价格:${actualPrice}金币${discountRate > 0 ? ` (原价${cfg.cost})` : ""}`,
|
|
7861
|
+
`效果:${cfg.effect}`,
|
|
7862
|
+
"------------------"
|
|
7863
|
+
].join("\n");
|
|
7864
|
+
});
|
|
7865
|
+
if (mods.length === 0) return "该类别暂无可用模块";
|
|
7866
|
+
return mods.join("\n");
|
|
7867
|
+
}, "buildModList");
|
|
7868
|
+
const universalDiscountRate = calculateDiscountRate(false);
|
|
7869
|
+
const exclusiveDiscountRate = calculateDiscountRate(true);
|
|
7870
|
+
if (weapon && weaponConfig[weapon]?.id) {
|
|
7747
7871
|
return [
|
|
7748
7872
|
`🛠️ ${weapon} 专属模块 🛠️`,
|
|
7749
7873
|
"使用「改装 武器名称 模块名称」安装",
|
|
@@ -7751,10 +7875,9 @@ ${validTypes.join("、")}`;
|
|
|
7751
7875
|
exclusiveDiscountRate > 0 && `💰 当前专属模块折扣:
|
|
7752
7876
|
▸ ⚙️ 武器升级平台Lv.${techLevel}:${exclusiveDiscountRate}%折扣`,
|
|
7753
7877
|
"====================",
|
|
7754
|
-
|
|
7878
|
+
buildModList(true)
|
|
7755
7879
|
].filter(Boolean).join("\n");
|
|
7756
7880
|
} else {
|
|
7757
|
-
const universalMods = Object.entries(modConfig).filter(([_, m]) => !m.isExclusive).map(([name2, cfg]) => formatMod(name2, cfg));
|
|
7758
7881
|
return [
|
|
7759
7882
|
"🛠️ 通用武器模块 🛠️",
|
|
7760
7883
|
"使用「改装 武器名称 模块名称」安装通用模块",
|
|
@@ -7762,7 +7885,7 @@ ${validTypes.join("、")}`;
|
|
|
7762
7885
|
universalDiscountRate > 0 && `💰 当前通用模块折扣:
|
|
7763
7886
|
▸ ⚙️ 武器升级平台Lv.${techLevel}:${universalDiscountRate}%折扣`,
|
|
7764
7887
|
"====================",
|
|
7765
|
-
|
|
7888
|
+
buildModList(false)
|
|
7766
7889
|
].filter(Boolean).join("\n");
|
|
7767
7890
|
}
|
|
7768
7891
|
}, "showModList");
|
|
@@ -8100,6 +8223,7 @@ ${testResult.passiveMessages.map((m) => `▸ ${m}`).join("\n")}`
|
|
|
8100
8223
|
if (bossGroup.main.maxEnergy > 0) {
|
|
8101
8224
|
result.push(`⚡ 能量:${mainBoss.energy}/1000`);
|
|
8102
8225
|
}
|
|
8226
|
+
result.push(`🛡️ 护甲:${bossGroup.main.armor || 0}`);
|
|
8103
8227
|
result.push(`🏷️ 标签:${mainBoss.tags?.join("、") || "无"}`);
|
|
8104
8228
|
if (mainBoss.radiationLayers > 0) {
|
|
8105
8229
|
result.push(`☢️ 辐射:${mainBoss.radiationLayers}层`);
|
|
@@ -8136,7 +8260,7 @@ ${testResult.passiveMessages.map((m) => `▸ ${m}`).join("\n")}`
|
|
|
8136
8260
|
default:
|
|
8137
8261
|
acidText = "未知状态";
|
|
8138
8262
|
}
|
|
8139
|
-
result.push(`🧪
|
|
8263
|
+
result.push(`🧪 当前酸蚀池:${acidText}`);
|
|
8140
8264
|
}
|
|
8141
8265
|
if (mainBoss.lastWeaponName) {
|
|
8142
8266
|
result.push(`🎭 记录武器:${mainBoss.lastWeaponName}`);
|
|
@@ -8154,6 +8278,7 @@ ${testResult.passiveMessages.map((m) => `▸ ${m}`).join("\n")}`
|
|
|
8154
8278
|
if (minionConfig && minionConfig.maxEnergy > 0) {
|
|
8155
8279
|
minionInfo.push(`⚡ 能量:${minion.energy}/1000`);
|
|
8156
8280
|
}
|
|
8281
|
+
minionInfo.push(`🛡️ 护甲:${minionConfig?.armor || 0}`);
|
|
8157
8282
|
minionInfo.push(`🏷️ 标签:${minion.tags?.join("、") || "无"}`);
|
|
8158
8283
|
if (minion.radiationLayers > 0) {
|
|
8159
8284
|
minionInfo.push(`☢️ 辐射:${minion.radiationLayers}层`);
|
|
@@ -8190,7 +8315,7 @@ ${testResult.passiveMessages.map((m) => `▸ ${m}`).join("\n")}`
|
|
|
8190
8315
|
default:
|
|
8191
8316
|
acidText = "未知状态";
|
|
8192
8317
|
}
|
|
8193
|
-
minionInfo.push(`🧪
|
|
8318
|
+
minionInfo.push(`🧪 当前酸蚀池:${acidText}`);
|
|
8194
8319
|
}
|
|
8195
8320
|
if (minion.lastWeaponName) {
|
|
8196
8321
|
minionInfo.push(`🎭 记录武器:${minion.lastWeaponName}`);
|
|
@@ -8408,7 +8533,7 @@ ${testResult.passiveMessages.map((m) => `▸ ${m}`).join("\n")}`
|
|
|
8408
8533
|
return `您输入的是错误的阵营名称,请选择有效阵营:${validFactions.join(" / ")}`;
|
|
8409
8534
|
}
|
|
8410
8535
|
const [existing] = await ctx.database.get("ggcevo_careers", { handle });
|
|
8411
|
-
if (existing
|
|
8536
|
+
if (existing?.group === "人类联盟" || existing?.group === "辛迪加海盗") {
|
|
8412
8537
|
return `你已经加入${existing.group}阵营,当前职业:${existing.career}`;
|
|
8413
8538
|
}
|
|
8414
8539
|
const [signData] = await ctx.database.get("ggcevo_sign", { handle });
|
|
@@ -9180,7 +9305,6 @@ ${Spacestationtechnology.map((t) => t.techname).join("、")}`;
|
|
|
9180
9305
|
taskList.push([
|
|
9181
9306
|
`▸ 【${taskName}】`,
|
|
9182
9307
|
`类型: ${task2.type}`,
|
|
9183
|
-
`目标: ${task2.target}次`,
|
|
9184
9308
|
`奖励: ${task2.price}金币`,
|
|
9185
9309
|
`进度: ${completionStatus}/${task2.target}`,
|
|
9186
9310
|
"------------------"
|
|
@@ -9213,9 +9337,6 @@ ${Spacestationtechnology.map((t) => t.techname).join("、")}`;
|
|
|
9213
9337
|
`当前进度: ${progress}/${task.target}`,
|
|
9214
9338
|
`累计完成: ${completions}次`,
|
|
9215
9339
|
"------------------",
|
|
9216
|
-
"任务描述:",
|
|
9217
|
-
task.description,
|
|
9218
|
-
"------------------",
|
|
9219
9340
|
"完成条件:",
|
|
9220
9341
|
task.condition,
|
|
9221
9342
|
"====================",
|