koishi-plugin-ggcevo-game 1.4.50 → 1.4.52

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.
@@ -7,6 +7,7 @@ export interface BattleStatistics {
7
7
  skillsAdded: string[];
8
8
  skillsRemoved: string[];
9
9
  skillStacksChanged: number;
10
+ skillStatusChanged: number;
10
11
  statusLayersChanged: number;
11
12
  radiationLayersChange: number;
12
13
  coldLayersChange: number;
@@ -412,6 +413,76 @@ export declare const BattleEffectProcessor: {
412
413
  } | null;
413
414
  reductionSuccess: boolean;
414
415
  } | null;
416
+ /**
417
+ * 毒性唾液处理(叠层减伤)
418
+ * 效果:受击时增加1层「毒性唾液」(上限20层),每层提供5%减伤
419
+ */
420
+ handleToxicSaliva: (targetBoss: any) => {
421
+ nerfMultiplier: number;
422
+ messages: string[];
423
+ targetUpdates: {
424
+ name: string;
425
+ updates: Partial<BattleStatistics>;
426
+ } | null;
427
+ } | null;
428
+ /**
429
+ * 剧毒狂暴处理(低生命额外减伤和叠层)
430
+ * 效果:生命值≤50%时,受击额外获得1层「毒性唾液」且受到的伤害降低50%
431
+ */
432
+ handleToxicFrenzy: (targetBoss: any) => {
433
+ nerfMultiplier: number;
434
+ messages: string[];
435
+ targetUpdates: {
436
+ name: string;
437
+ updates: Partial<BattleStatistics>;
438
+ } | null;
439
+ } | null;
440
+ /**
441
+ * 毒气波处理(概率获得多层层数)
442
+ * 效果:受击时有20%概率额外获得5层「毒性唾液」
443
+ */
444
+ handleToxicGasWave: (targetBoss: any) => {
445
+ messages: string[];
446
+ targetUpdates: {
447
+ name: string;
448
+ updates: Partial<BattleStatistics>;
449
+ } | null;
450
+ } | null;
451
+ /**
452
+ * 淬毒撕咬处理(层数治疗效果)
453
+ * 效果:根据毒性唾液层数,在受击时回复生命值
454
+ */
455
+ handlePoisonedBite: (targetBoss: any) => {
456
+ messages: string[];
457
+ targetUpdates: {
458
+ name: string;
459
+ updates: Partial<BattleStatistics>;
460
+ } | null;
461
+ } | null;
462
+ /**
463
+ * 酸蚀池处理(循环抗性)
464
+ * 效果:受击时按顺序循环选择三种酸池(1->2->3->1),提供特定武器类型减伤和增伤
465
+ */
466
+ handleAcidPool: (targetBoss: any, weaponData: any, enhanced: boolean) => {
467
+ nerfMultiplier: number;
468
+ buffMultiplier: number;
469
+ messages: string[];
470
+ targetUpdates: {
471
+ name: string;
472
+ updates: Partial<BattleStatistics>;
473
+ } | null;
474
+ };
475
+ /**
476
+ * 剧毒突袭处理
477
+ * 效果:毒性唾液≥20层时,消耗所有层数并使强化下5次触发的「酸蚀池」
478
+ */
479
+ handleToxicAssault: (targetBoss: any) => {
480
+ messages: string[];
481
+ targetUpdates: {
482
+ name: string;
483
+ updates: Partial<BattleStatistics>;
484
+ } | null;
485
+ } | null;
415
486
  };
416
487
  /**
417
488
  * 统一处理所有被动效果(包含伤害修正、免疫检查、状态更新等)
@@ -203,4 +203,28 @@ export declare const passiveConfig: {
203
203
  type: string;
204
204
  description: string;
205
205
  };
206
+ 毒性唾液: {
207
+ type: string;
208
+ description: string;
209
+ };
210
+ 剧毒狂暴: {
211
+ type: string;
212
+ description: string;
213
+ };
214
+ 毒气波: {
215
+ type: string;
216
+ description: string;
217
+ };
218
+ 淬毒撕咬: {
219
+ type: string;
220
+ description: string;
221
+ };
222
+ 酸蚀池: {
223
+ type: string;
224
+ description: string;
225
+ };
226
+ 剧毒突袭: {
227
+ type: string;
228
+ description: string;
229
+ };
206
230
  };
package/lib/database.d.ts CHANGED
@@ -130,6 +130,7 @@ export interface BossInfo {
130
130
  tags: string[];
131
131
  skills: string[];
132
132
  skillStacks: number;
133
+ skillStatus: number;
133
134
  statusLayers: number;
134
135
  radiationLayers: number;
135
136
  coldLayers: number;
package/lib/index.js CHANGED
@@ -235,7 +235,7 @@ var weaponConfig = {
235
235
  id: 14,
236
236
  type: "能量武器",
237
237
  category: "能量武器",
238
- damage: 32,
238
+ damage: 35,
239
239
  description: "一种原型能量武器,能够发射强大的脉冲",
240
240
  specialeffect: "攻击使目标的技能层数减少2层",
241
241
  price: 1500,
@@ -243,6 +243,50 @@ var weaponConfig = {
243
243
  isantiair: true,
244
244
  tagEffects: {}
245
245
  },
246
+ "MK79榴弹发射器": {
247
+ id: 15,
248
+ type: "热能武器",
249
+ category: "热能武器",
250
+ damage: 50,
251
+ description: "发射非常坚固的专属榴弹,对具有坚固防御的目标几乎没有效果",
252
+ specialeffect: "",
253
+ price: 2e3,
254
+ redCrystalCost: 20,
255
+ isantiair: true,
256
+ tagEffects: {
257
+ "重甲": 1.5,
258
+ "轻甲": 0.8,
259
+ "护盾": 0.8
260
+ }
261
+ },
262
+ "EC13电浆步枪": {
263
+ id: 16,
264
+ type: "能量武器",
265
+ category: "能量武器",
266
+ damage: 64,
267
+ description: "用于解决高生命值目标的次时代武器,擅长对付护盾耗尽或没有护甲的敌人",
268
+ specialeffect: "",
269
+ price: 1750,
270
+ redCrystalCost: 20,
271
+ isantiair: true,
272
+ tagEffects: {
273
+ "生物": 1.5,
274
+ "护盾": 0.5,
275
+ "重甲": 0.5
276
+ }
277
+ },
278
+ "聚变磁轨枪": {
279
+ id: 17,
280
+ type: "能量武器",
281
+ category: "能量武器",
282
+ damage: 70,
283
+ description: "一种实验性的超级武器,能造成巨大的伤害",
284
+ specialeffect: "",
285
+ price: 1550,
286
+ redCrystalCost: 20,
287
+ isantiair: true,
288
+ tagEffects: {}
289
+ },
246
290
  "外星电浆": {
247
291
  id: 101,
248
292
  type: "能量武器",
@@ -284,15 +328,15 @@ var weaponConfig = {
284
328
  redCrystalCost: 200,
285
329
  isantiair: false,
286
330
  tagEffects: {
287
- "轻甲": 1.5,
288
- "惧热": 1.5
331
+ "惧热": 2,
332
+ "轻甲": 1.5
289
333
  }
290
334
  },
291
335
  "DSR-55反器材步枪": {
292
336
  id: 104,
293
337
  type: "实弹武器",
294
338
  category: "传奇武器",
295
- damage: 120,
339
+ damage: 130,
296
340
  description: "一件传奇武器",
297
341
  specialeffect: "",
298
342
  price: 6400,
@@ -1267,6 +1311,27 @@ var bossPool = [
1267
1311
  passive: ["弱化形态", "心灵狂热", "星界之风"]
1268
1312
  }
1269
1313
  ]
1314
+ },
1315
+ {
1316
+ id: 10,
1317
+ main: {
1318
+ name: "猛毒异兽",
1319
+ type: "主宰",
1320
+ maxHP: 2e4,
1321
+ maxEnergy: 0,
1322
+ tags: ["生物", "异形"],
1323
+ passive: ["毒性唾液", "剧毒狂暴", "毒气波", "淬毒撕咬", "酸蚀池", "剧毒突袭"]
1324
+ },
1325
+ minions: [
1326
+ {
1327
+ name: "剧毒蝙蝠",
1328
+ type: "子代",
1329
+ maxHP: 5e3,
1330
+ maxEnergy: 0,
1331
+ tags: ["生物", "异形"],
1332
+ passive: ["弱化形态", "毒性唾液", "毒气波", "淬毒撕咬", "酸蚀池"]
1333
+ }
1334
+ ]
1270
1335
  }
1271
1336
  ];
1272
1337
 
@@ -1283,6 +1348,7 @@ function updateStatsByName(name2, updates) {
1283
1348
  skillsAdded: [],
1284
1349
  skillsRemoved: [],
1285
1350
  skillStacksChanged: 0,
1351
+ skillStatusChanged: 0,
1286
1352
  statusLayersChanged: 0,
1287
1353
  radiationLayersChange: 0,
1288
1354
  coldLayersChange: 0,
@@ -1295,6 +1361,7 @@ function updateStatsByName(name2, updates) {
1295
1361
  hpChange: existing.hpChange + (updates.hpChange ?? 0),
1296
1362
  energyChange: existing.energyChange + (updates.energyChange ?? 0),
1297
1363
  skillStacksChanged: existing.skillStacksChanged + (updates.skillStacksChanged ?? 0),
1364
+ skillStatusChanged: existing.skillStatusChanged + (updates.skillStatusChanged ?? 0),
1298
1365
  statusLayersChanged: existing.statusLayersChanged + (updates.statusLayersChanged ?? 0),
1299
1366
  radiationLayersChange: existing.radiationLayersChange + (updates.radiationLayersChange ?? 0),
1300
1367
  coldLayersChange: existing.coldLayersChange + (updates.coldLayersChange ?? 0),
@@ -2843,7 +2910,252 @@ var BattleEffectProcessor = {
2843
2910
  targetUpdates,
2844
2911
  reductionSuccess
2845
2912
  };
2846
- }, "handleWeaponLayerReduction")
2913
+ }, "handleWeaponLayerReduction"),
2914
+ /**
2915
+ * 毒性唾液处理(叠层减伤)
2916
+ * 效果:受击时增加1层「毒性唾液」(上限20层),每层提供5%减伤
2917
+ */
2918
+ handleToxicSaliva: /* @__PURE__ */ __name(function(targetBoss) {
2919
+ const messages = [];
2920
+ let targetUpdates = null;
2921
+ let nerfMultiplier = 0;
2922
+ if (!targetBoss.skills.includes("毒性唾液")) {
2923
+ return null;
2924
+ }
2925
+ const currentStacks = targetBoss.skillStacks || 0;
2926
+ const maxStacks = 20;
2927
+ messages.push(`🧪 【毒性唾液】生效:当前${currentStacks}层,使受到的伤害-${(nerfMultiplier * 100).toFixed(0)}%`);
2928
+ nerfMultiplier = currentStacks * 0.05;
2929
+ let newStacks = currentStacks;
2930
+ if (currentStacks < maxStacks) {
2931
+ newStacks = currentStacks + 1;
2932
+ targetUpdates = {
2933
+ name: targetBoss.name,
2934
+ updates: {
2935
+ skillStacksChanged: 1
2936
+ // 层数+1
2937
+ }
2938
+ };
2939
+ messages.push(`🧪 【毒性唾液】生效:获得一层「毒性唾液」`);
2940
+ } else {
2941
+ }
2942
+ return {
2943
+ nerfMultiplier,
2944
+ messages,
2945
+ targetUpdates
2946
+ };
2947
+ }, "handleToxicSaliva"),
2948
+ /**
2949
+ * 剧毒狂暴处理(低生命额外减伤和叠层)
2950
+ * 效果:生命值≤50%时,受击额外获得1层「毒性唾液」且受到的伤害降低50%
2951
+ */
2952
+ handleToxicFrenzy: /* @__PURE__ */ __name(function(targetBoss) {
2953
+ const messages = [];
2954
+ let targetUpdates = null;
2955
+ let nerfMultiplier = 0;
2956
+ if (!targetBoss.skills.includes("剧毒狂暴")) {
2957
+ return null;
2958
+ }
2959
+ const maxHP = getMaxHPByName(targetBoss.name);
2960
+ const currentHP = targetBoss.HP;
2961
+ const hpPercent = currentHP / maxHP;
2962
+ if (hpPercent > 0.5) {
2963
+ return null;
2964
+ }
2965
+ const currentStacks = targetBoss.skillStacks || 0;
2966
+ const maxStacks = 19;
2967
+ nerfMultiplier = 0.5;
2968
+ messages.push(`💥 【剧毒狂暴】生效:生命值≤50%,受到的伤害额外降低50%`);
2969
+ if (currentStacks < maxStacks) {
2970
+ targetUpdates = {
2971
+ name: targetBoss.name,
2972
+ updates: {
2973
+ skillStacksChanged: 1
2974
+ // 额外叠加1层
2975
+ }
2976
+ };
2977
+ messages.push(`💥 【剧毒狂暴】生效:额外获得1层「毒性唾液」`);
2978
+ }
2979
+ return {
2980
+ nerfMultiplier,
2981
+ messages,
2982
+ targetUpdates
2983
+ };
2984
+ }, "handleToxicFrenzy"),
2985
+ /**
2986
+ * 毒气波处理(概率获得多层层数)
2987
+ * 效果:受击时有20%概率额外获得5层「毒性唾液」
2988
+ */
2989
+ handleToxicGasWave: /* @__PURE__ */ __name(function(targetBoss) {
2990
+ const messages = [];
2991
+ let targetUpdates = null;
2992
+ if (!targetBoss.skills.includes("毒气波")) {
2993
+ return null;
2994
+ }
2995
+ if (Math.random() >= 0.2) {
2996
+ return null;
2997
+ }
2998
+ const currentStacks = targetBoss.skillStacks || 0;
2999
+ const maxStacks = 20;
3000
+ const addAmount = Math.min(5, maxStacks - currentStacks);
3001
+ if (addAmount <= 0) {
3002
+ return null;
3003
+ }
3004
+ targetUpdates = {
3005
+ name: targetBoss.name,
3006
+ updates: {
3007
+ skillStacksChanged: addAmount
3008
+ }
3009
+ };
3010
+ messages.push(`🌫️ 【毒气波】触发:20%概率获得5层「毒性唾液」`);
3011
+ return {
3012
+ messages,
3013
+ targetUpdates
3014
+ };
3015
+ }, "handleToxicGasWave"),
3016
+ /**
3017
+ * 淬毒撕咬处理(层数治疗效果)
3018
+ * 效果:根据毒性唾液层数,在受击时回复生命值
3019
+ */
3020
+ handlePoisonedBite: /* @__PURE__ */ __name(function(targetBoss) {
3021
+ const messages = [];
3022
+ let targetUpdates = null;
3023
+ if (!targetBoss.skills.includes("淬毒撕咬")) {
3024
+ return null;
3025
+ }
3026
+ const currentStacks = targetBoss.skillStacks || 0;
3027
+ let healAmount = 0;
3028
+ if (currentStacks >= 15) {
3029
+ healAmount = 150;
3030
+ } else if (currentStacks >= 10) {
3031
+ healAmount = 100;
3032
+ } else if (currentStacks >= 5) {
3033
+ healAmount = 50;
3034
+ }
3035
+ if (healAmount === 0) {
3036
+ return null;
3037
+ }
3038
+ targetUpdates = {
3039
+ name: targetBoss.name,
3040
+ updates: {
3041
+ hpChange: healAmount
3042
+ // 回复生命值
3043
+ }
3044
+ };
3045
+ messages.push(`🦷 【淬毒撕咬】触发:回复${healAmount}点生命值`);
3046
+ return {
3047
+ messages,
3048
+ targetUpdates
3049
+ };
3050
+ }, "handlePoisonedBite"),
3051
+ /**
3052
+ * 酸蚀池处理(循环抗性)
3053
+ * 效果:受击时按顺序循环选择三种酸池(1->2->3->1),提供特定武器类型减伤和增伤
3054
+ */
3055
+ handleAcidPool: /* @__PURE__ */ __name(function(targetBoss, weaponData, enhanced) {
3056
+ const messages = [];
3057
+ let nerfMultiplier = 0;
3058
+ let buffMultiplier = 0;
3059
+ let targetUpdates = null;
3060
+ let nextAcidType = 0;
3061
+ const weaponType = weaponData.type;
3062
+ if (!targetBoss.skills.includes("酸蚀池")) {
3063
+ return { nerfMultiplier, buffMultiplier, messages, targetUpdates };
3064
+ }
3065
+ let acidType = targetBoss.skillStatus || 0;
3066
+ if (acidType === 0) {
3067
+ acidType = 1;
3068
+ }
3069
+ if (acidType === 3) {
3070
+ nextAcidType = -2;
3071
+ } else if (targetBoss.skillStatus === 0) {
3072
+ nextAcidType = 2;
3073
+ } else {
3074
+ nextAcidType = 1;
3075
+ }
3076
+ targetUpdates = {
3077
+ name: targetBoss.name,
3078
+ updates: {
3079
+ skillStatusChanged: nextAcidType
3080
+ // 存储下次使用的酸池类型
3081
+ }
3082
+ };
3083
+ let acidName = "";
3084
+ let resistType = "";
3085
+ let vulnerableType = "";
3086
+ switch (acidType) {
3087
+ case 1:
3088
+ acidName = "脓蚀酸池";
3089
+ resistType = "实弹武器";
3090
+ vulnerableType = "能量武器";
3091
+ break;
3092
+ case 2:
3093
+ acidName = "蚀骨酸池";
3094
+ resistType = "能量武器";
3095
+ vulnerableType = "热能武器";
3096
+ break;
3097
+ case 3:
3098
+ acidName = "焦熔酸池";
3099
+ resistType = "热能武器";
3100
+ vulnerableType = "实弹武器";
3101
+ break;
3102
+ }
3103
+ messages.push(`🛢️ 【酸蚀池】本次触发:${acidName}`);
3104
+ if (enhanced) {
3105
+ if (weaponType === resistType) {
3106
+ nerfMultiplier = 1;
3107
+ messages.push(`💪 【酸蚀池·强化】生效:受到${resistType}伤害-100%`);
3108
+ } else if (weaponType === vulnerableType) {
3109
+ messages.push(`💪 【酸蚀池·强化】生效:${vulnerableType}增伤效果被移除`);
3110
+ }
3111
+ } else {
3112
+ if (weaponType === resistType) {
3113
+ nerfMultiplier = 0.8;
3114
+ messages.push(`🛢️ 【酸蚀池】生效:受到${resistType}伤害-80%`);
3115
+ } else if (weaponType === vulnerableType) {
3116
+ buffMultiplier = 0.5;
3117
+ messages.push(`🛢️ 【酸蚀池】生效:受到${vulnerableType}伤害+50%`);
3118
+ }
3119
+ }
3120
+ return {
3121
+ nerfMultiplier,
3122
+ buffMultiplier,
3123
+ messages,
3124
+ targetUpdates
3125
+ };
3126
+ }, "handleAcidPool"),
3127
+ /**
3128
+ * 剧毒突袭处理
3129
+ * 效果:毒性唾液≥20层时,消耗所有层数并使强化下5次触发的「酸蚀池」
3130
+ */
3131
+ handleToxicAssault: /* @__PURE__ */ __name(function(targetBoss) {
3132
+ const messages = [];
3133
+ let targetUpdates = null;
3134
+ if (!targetBoss.skills.includes("剧毒突袭")) {
3135
+ return null;
3136
+ }
3137
+ const currentStacks = targetBoss.skillStacks || 0;
3138
+ if (currentStacks < 20) {
3139
+ return null;
3140
+ }
3141
+ const currentAssaultCount = targetBoss.statusLayers || 0;
3142
+ const addAssaultCount = 5;
3143
+ targetUpdates = {
3144
+ name: targetBoss.name,
3145
+ updates: {
3146
+ skillStacksChanged: -currentStacks,
3147
+ // 清空毒性唾液层数
3148
+ statusLayersChanged: addAssaultCount
3149
+ // 增加强化次数
3150
+ }
3151
+ };
3152
+ const newAssaultCount = currentAssaultCount + addAssaultCount;
3153
+ messages.push(`💣 【剧毒突袭】触发:消耗20层毒性唾液,强化下${newAssaultCount}次「酸蚀池」`);
3154
+ return {
3155
+ messages,
3156
+ targetUpdates
3157
+ };
3158
+ }, "handleToxicAssault")
2847
3159
  };
2848
3160
  function applyPassiveEffects(targetBoss, activeBosses, weaponName, damage, ignoreRate) {
2849
3161
  const messages = [];
@@ -2939,6 +3251,10 @@ function applyPassiveEffects(targetBoss, activeBosses, weaponName, damage, ignor
2939
3251
  { effect: BattleEffectProcessor.handleVomit, args: [targetBoss] },
2940
3252
  { effect: BattleEffectProcessor.handleRampage, args: [targetBoss] },
2941
3253
  { effect: BattleEffectProcessor.handleHyperRangeShift, args: [targetBoss] },
3254
+ // 1. 毒性唾液
3255
+ { effect: BattleEffectProcessor.handleToxicSaliva, args: [targetBoss] },
3256
+ // 2. 剧毒狂暴
3257
+ { effect: BattleEffectProcessor.handleToxicFrenzy, args: [targetBoss] },
2942
3258
  // 双参数效果
2943
3259
  { effect: BattleEffectProcessor.handleStructuralArmor, args: [targetBoss, weaponData] },
2944
3260
  { effect: BattleEffectProcessor.handleDisguise, args: [targetBoss, weaponName] },
@@ -2968,7 +3284,9 @@ function applyPassiveEffects(targetBoss, activeBosses, weaponName, damage, ignor
2968
3284
  { effect: BattleEffectProcessor.handleVampireSaliva, args: [targetBoss] },
2969
3285
  { effect: BattleEffectProcessor.handleBloodlust, args: [targetBoss] },
2970
3286
  { effect: BattleEffectProcessor.handleBladeOfLight, args: [targetBoss] },
2971
- { effect: BattleEffectProcessor.handleCollapsingPulse, args: [targetBoss] }
3287
+ { effect: BattleEffectProcessor.handleCollapsingPulse, args: [targetBoss] },
3288
+ // 3. 毒气波
3289
+ { effect: BattleEffectProcessor.handleToxicGasWave, args: [targetBoss] }
2972
3290
  ];
2973
3291
  for (const effectItem of layerDependentEffects) {
2974
3292
  const result = processEffect(effectItem.effect, ...effectItem.args);
@@ -2978,11 +3296,37 @@ function applyPassiveEffects(targetBoss, activeBosses, weaponName, damage, ignor
2978
3296
  }
2979
3297
  }
2980
3298
  const stateChangeEffects = [
2981
- { effect: BattleEffectProcessor.handleSuperconductor, args: [targetBoss] }
3299
+ { effect: BattleEffectProcessor.handleSuperconductor, args: [targetBoss] },
3300
+ // 4. 剧毒突袭
3301
+ { effect: BattleEffectProcessor.handleToxicAssault, args: [targetBoss] }
2982
3302
  ];
2983
3303
  for (const effectItem of stateChangeEffects) {
2984
3304
  processEffect(effectItem.effect, ...effectItem.args);
2985
3305
  }
3306
+ let isEnhanced = false;
3307
+ if (targetBoss.statusLayers > 0) {
3308
+ isEnhanced = true;
3309
+ updateStatsByName(targetBoss.name, {
3310
+ statusLayersChanged: -1
3311
+ });
3312
+ }
3313
+ const acidPoolResult = BattleEffectProcessor.handleAcidPool(
3314
+ targetBoss,
3315
+ weaponData,
3316
+ isEnhanced
3317
+ );
3318
+ if (acidPoolResult) {
3319
+ messages.push(...acidPoolResult.messages);
3320
+ if (acidPoolResult.targetUpdates) {
3321
+ updateStatsByName(acidPoolResult.targetUpdates.name, acidPoolResult.targetUpdates.updates);
3322
+ }
3323
+ if (acidPoolResult.nerfMultiplier) {
3324
+ totalNerfMultiplier += acidPoolResult.nerfMultiplier;
3325
+ }
3326
+ if (acidPoolResult.buffMultiplier) {
3327
+ totalBuffMultiplier += acidPoolResult.buffMultiplier;
3328
+ }
3329
+ }
2986
3330
  const healingEffects = [
2987
3331
  { effect: BattleEffectProcessor.handleFrostRegeneration, args: [targetBoss, activeBosses, maxStatsMap] },
2988
3332
  { effect: BattleEffectProcessor.handleFrostAura, args: [targetBoss, activeBosses] },
@@ -2993,7 +3337,9 @@ function applyPassiveEffects(targetBoss, activeBosses, weaponName, damage, ignor
2993
3337
  { effect: BattleEffectProcessor.handleFeeding, args: [targetBoss] },
2994
3338
  { effect: BattleEffectProcessor.handleBurningBurrow, args: [targetBoss] },
2995
3339
  { effect: BattleEffectProcessor.handleBombardmentGuide, args: [targetBoss] },
2996
- { effect: BattleEffectProcessor.handleOverdriveShield, args: [targetBoss, activeBosses] }
3340
+ { effect: BattleEffectProcessor.handleOverdriveShield, args: [targetBoss, activeBosses] },
3341
+ // 6. 淬毒撕咬
3342
+ { effect: BattleEffectProcessor.handlePoisonedBite, args: [targetBoss] }
2997
3343
  ];
2998
3344
  for (const effectItem of healingEffects) {
2999
3345
  processEffect(effectItem.effect, ...effectItem.args);
@@ -3163,208 +3509,232 @@ __name(applyPassiveEffects, "applyPassiveEffects");
3163
3509
  // src/boss/passive.ts
3164
3510
  var passiveConfig = {
3165
3511
  "弱化形态": {
3166
- type: "伤害增减(负面)",
3512
+ type: "伤害易伤",
3167
3513
  description: "子代防御脆弱,受到的伤害提高10%"
3168
3514
  },
3169
3515
  "异形甲壳": {
3170
- type: "伤害增减(正面)",
3516
+ type: "伤害减免",
3171
3517
  description: "受到的伤害降低20%"
3172
3518
  },
3173
3519
  "冰霜回复": {
3174
- type: "生存强化(生命回复)",
3520
+ type: "濒死治疗(移除)",
3175
3521
  description: "生命值≤30%时,立即回复自身40%最大生命值,并为所有其他存活异形回复10%最大生命值(生效后移除)"
3176
3522
  },
3177
3523
  "冰霜进化": {
3178
- type: "状态免疫(寒冷伤害免疫)",
3524
+ type: "元素转换",
3179
3525
  description: "免疫寒冷伤害,受到寒冷攻击时回复等量生命值"
3180
3526
  },
3181
3527
  "冰霜环绕": {
3182
- type: "生存强化(生命回复+群体增益)",
3528
+ type: "濒死治疗+技能赋予(移除)",
3183
3529
  description: "生命值≤30%时,立即回复自身45%最大生命值,并使所有存活异形获得「寒霜地狱」技能(生效后移除)"
3184
3530
  },
3185
3531
  "寒霜地狱": {
3186
- type: "伤害增减(正面)",
3532
+ type: "伤害减免",
3187
3533
  description: "受到的伤害降低30%"
3188
3534
  },
3189
3535
  "应激甲壳I": {
3190
- type: "伤害增减(正面)",
3536
+ type: "伤害减免",
3191
3537
  description: "受到的伤害降低20%"
3192
3538
  },
3193
3539
  "应激甲壳II": {
3194
- type: "伤害增减(正面)",
3540
+ type: "伤害减免",
3195
3541
  description: "受到的伤害降低25%"
3196
3542
  },
3197
3543
  "求生本能I": {
3198
- type: "生存强化(生命回复)",
3544
+ type: "濒死治疗(移除)",
3199
3545
  description: "濒死时立即回复自身30%最大生命值(生效后移除)"
3200
3546
  },
3201
3547
  "求生本能II": {
3202
- type: "生存强化(生命回复)",
3548
+ type: "濒死治疗(移除)",
3203
3549
  description: "濒死时立即回复自身50%最大生命值(生效后移除)"
3204
3550
  },
3205
3551
  "冷适应": {
3206
- type: "状态免疫(寒冷伤害免疫)",
3552
+ type: "元素免疫+标签转化",
3207
3553
  description: "累计承受10次寒冷伤害后,获得「惧热」标签并永久免疫寒冷伤害"
3208
3554
  },
3209
3555
  "感染空间站": {
3210
- type: "伤害增减(正面)",
3556
+ type: "条件减伤",
3211
3557
  description: "当空间站哨枪塔存活时,自身受到的伤害降低50%"
3212
3558
  },
3213
3559
  "病毒云": {
3214
- type: "伤害增减(正面)",
3560
+ type: "伤害减免",
3215
3561
  description: "受到的伤害降低10%"
3216
3562
  },
3217
3563
  "霉菌滋生": {
3218
- type: "生存强化(生命回复)",
3564
+ type: "建筑治疗",
3219
3565
  description: "受击后,若空间站哨枪塔存活,为其回复1%最大生命值"
3220
3566
  },
3221
3567
  "岗哨机枪": {
3222
- type: "生存强化(生命回复)",
3568
+ type: "群体治疗",
3223
3569
  description: "每累计承受10次攻击,为所有其他存活异形回复10%最大生命值"
3224
3570
  },
3225
3571
  "结构装甲": {
3226
- type: "伤害增减(正面)",
3572
+ type: "元素抗性",
3227
3573
  description: "受实弹/能量武器伤害降低20%,受热能武器伤害降低40%"
3228
3574
  },
3229
3575
  "吸血唾液": {
3230
- type: "伤害增减(正面)",
3576
+ type: "叠层减伤",
3231
3577
  description: "受击获得1层「吸血唾液」(上限20层),每层使受到的伤害降低5%"
3232
3578
  },
3233
3579
  "进食": {
3234
- type: "生存强化(生命回复)",
3580
+ type: "叠层转化(治疗)",
3235
3581
  description: "「吸血唾液」≥20层时,下次受击消耗所有层数并回复自身20%最大生命值"
3236
3582
  },
3237
3583
  "嗜血狂暴": {
3238
- type: "伤害增减(正面)",
3584
+ type: "狂怒机制",
3239
3585
  description: "生命值≤50%时,受击额外获得1层「吸血唾液」且受到的伤害降低20%"
3240
3586
  },
3241
3587
  "吐血": {
3242
- type: "伤害增减(负面)",
3588
+ type: "叠层惩罚",
3243
3589
  description: "无「吸血唾液」层数时,受到的伤害提高20%"
3244
3590
  },
3245
3591
  "超导体": {
3246
- type: "状态转换(护盾→重甲)",
3592
+ type: "标签转换",
3247
3593
  description: "生命值≤10%时,护盾标签永久转换为重甲标签"
3248
3594
  },
3249
3595
  "能量虹吸": {
3250
- type: "伤害增减(正面)",
3596
+ type: "血线减伤",
3251
3597
  description: "生命值≥70%时伤害降低40%,30%-70%时伤害降低20%"
3252
3598
  },
3253
3599
  "能源虹吸": {
3254
- type: "伤害增减(正面)",
3600
+ type: "能量减伤",
3255
3601
  description: "能量值≥80%时伤害降低50%,50%-80%时伤害降低30%"
3256
3602
  },
3257
3603
  "电能立场": {
3258
- type: "状态免疫(伤害免疫)",
3604
+ type: "概率免疫",
3259
3605
  description: "能量值≥30%时,55%概率免疫非热能伤害(每层寒冷降低5%触发概率)"
3260
3606
  },
3261
3607
  "电能冲击波": {
3262
- type: "生存强化(能量回复)",
3608
+ type: "受击回能",
3263
3609
  description: "受击后回复100点能量"
3264
3610
  },
3265
3611
  "脉冲": {
3266
- type: "生存强化(生命回复)",
3612
+ type: "概率群体治疗",
3267
3613
  description: "能量值≥30%时,60%概率为所有存活异形回复100点生命(每层寒冷降低5%触发概率)"
3268
3614
  },
3269
3615
  "能量黑洞": {
3270
- type: "伤害增减(正面)",
3616
+ type: "环境减伤",
3271
3617
  description: "存在能量黑洞时,受到的伤害降低20%"
3272
3618
  },
3273
3619
  "火焰异形": {
3274
- type: "状态免疫(火焰伤害免疫)",
3620
+ type: "元素转换",
3275
3621
  description: "免疫火焰伤害,受到火焰攻击时回复等量生命值"
3276
3622
  },
3277
3623
  "庞兽狂暴": {
3278
- type: "伤害增减(正面)",
3624
+ type: "半血减伤",
3279
3625
  description: "生命值≤50%时,受到的伤害降低50%"
3280
3626
  },
3281
3627
  "灼烧粘液": {
3282
- type: "生存强化(生命回复)",
3628
+ type: "叠层治疗",
3283
3629
  description: "受击获得1层「灼烧粘液」;受火焰攻击时消耗所有层数并回复(层数×10)点生命"
3284
3630
  },
3285
3631
  "腐蚀胆汁": {
3286
- type: "生存强化(生命回复)",
3632
+ type: "叠层转化(群体治疗)",
3287
3633
  description: "「灼烧粘液」≥10层时,下次受击消耗所有层数并为所有存活异形回复1000点生命"
3288
3634
  },
3289
3635
  "火焰吐息": {
3290
- type: "生存强化(生命回复)",
3636
+ type: "叠层转化(群体治疗)",
3291
3637
  description: "「灼烧粘液」≥20层时,下次攻击消耗所有层数并为所有存活异形回复20%最大生命值"
3292
3638
  },
3293
3639
  "太阳耀斑": {
3294
- type: "状态移除+状态免疫(寒冷伤害免疫)",
3640
+ type: "净化机制",
3295
3641
  description: "所有子代阵亡后,移除惧寒标签和孤立无援状态,并永久免疫寒冷伤害"
3296
3642
  },
3297
3643
  "燃烧潜地": {
3298
- type: "生存强化(生命回复)",
3644
+ type: "濒死治疗(移除)",
3299
3645
  description: "生命值≤10%时立即回复50%最大生命值(生效后移除)"
3300
3646
  },
3301
3647
  "炼狱爆弹": {
3302
- type: "伤害增减(正面)",
3648
+ type: "叠层减伤+联动作战",
3303
3649
  description: "每层「灼烧粘液」使受到的伤害降低5%,存活子代存在时每层额外降低5%"
3304
3650
  },
3305
3651
  "猎手异形": {
3306
- type: "伤害增减(条件性)+状态免疫(火焰/寒冷伤害免疫)",
3652
+ type: "团队联动",
3307
3653
  description: "存在其他存活异形时伤害降低20%,无其他存活异形时伤害提高20%;免疫火焰及寒冷伤害"
3308
3654
  },
3309
3655
  "狂暴": {
3310
- type: "伤害增减(正面)",
3656
+ type: "半血减伤",
3311
3657
  description: "生命值≤50%时,受到的伤害降低50%"
3312
3658
  },
3313
3659
  "伪装": {
3314
- type: "伤害增减(正面)",
3660
+ type: "动态抗性",
3315
3661
  description: "受击记录伤害来源武器名称,下次被同名武器攻击时伤害降低80%"
3316
3662
  },
3317
3663
  "致命一击": {
3318
- type: "状态免疫(伤害免疫)",
3664
+ type: "概率免疫",
3319
3665
  description: "受击时5%概率免疫该次伤害"
3320
3666
  },
3321
3667
  "星界之风": {
3322
- type: "生存强化(生命回复)",
3668
+ type: "概率群体治疗",
3323
3669
  description: "受击时5%概率为所有存活异形回复200点生命"
3324
3670
  },
3325
3671
  "心灵狂热": {
3326
- type: "伤害增减(正面)",
3672
+ type: "半血强化",
3327
3673
  description: "生命值<50%时伤害降低20%且「星界之风」触发概率翻倍"
3328
3674
  },
3329
3675
  "宇宙能量": {
3330
- type: "生存强化(能量/生命回复)",
3676
+ type: "能量转化",
3331
3677
  description: "受击回复等量能量值,能量溢出时转换为生命回复"
3332
3678
  },
3333
3679
  "复苏": {
3334
- type: "生存强化(生命/能量回复)",
3680
+ type: "濒死重生(移除)",
3335
3681
  description: "免疫致命伤害,回复60%最大生命与100%能量值,并获得「灵能构造炉」技能(生效后移除)"
3336
3682
  },
3337
3683
  "光影之刃": {
3338
- type: "状态叠加(层数叠加)",
3684
+ type: "叠层机制",
3339
3685
  description: "受击获得1层「光影之刃」(上限50层)"
3340
3686
  },
3341
3687
  "远古预兆": {
3342
- type: "状态免疫(伤害免疫)+状态增强(触发概率提升)",
3688
+ type: "层数强化",
3343
3689
  description: "受击时1%概率免疫非热能伤害并回复100点能量,每层「光影之刃」使触发概率提升0.5%"
3344
3690
  },
3345
3691
  "超视距穿梭": {
3346
- type: "伤害增减(条件性)",
3692
+ type: "动态减伤",
3347
3693
  description: "能量≥60%时每层「光影之刃」使伤害降低10%,30%-60%时每层降低5%,能量≤10%时每层提高5%"
3348
3694
  },
3349
3695
  "灵能构造炉": {
3350
- type: "状态获得(技能获得)",
3696
+ type: "技能获取",
3351
3697
  description: "受击时5%概率随机获得以下技能之一:天启超载护盾/塌缩脉冲/地毯式轰炸/轰炸引导"
3352
3698
  },
3353
3699
  "天启超载护盾": {
3354
- type: "生存强化(生命回复)",
3700
+ type: "叠层转化(群体治疗)",
3355
3701
  description: "受击时10%概率触发,消耗当前「光影之刃」层数的一半(向下取整),并为所有存活异形回复(消耗层数×10)点生命"
3356
3702
  },
3357
3703
  "塌缩脉冲": {
3358
- type: "状态叠加(层数叠加)",
3704
+ type: "叠层加速",
3359
3705
  description: "受击后额外获得1层「光影之刃」"
3360
3706
  },
3361
3707
  "地毯式轰炸": {
3362
- type: "状态移除+伤害增减(正面)",
3708
+ type: "状态净化",
3363
3709
  description: "移除孤立无援状态,受到的伤害降低80%"
3364
3710
  },
3365
3711
  "轰炸引导": {
3366
- type: "生存强化(能量回复)",
3712
+ type: "叠层转化(能量)",
3367
3713
  description: "受击时10%概率触发,消耗当前「光影之刃」层数的一半(向下取整),并回复(消耗层数×10)点能量"
3714
+ },
3715
+ "毒性唾液": {
3716
+ type: "叠层减伤",
3717
+ description: "受击获得1层「毒性唾液」(上限20层),每层使受到的伤害降低5%"
3718
+ },
3719
+ "剧毒狂暴": {
3720
+ type: "狂怒机制",
3721
+ description: "生命值≤50%时,受击额外获得1层「吸血唾液」且受到的伤害降低50%"
3722
+ },
3723
+ "毒气波": {
3724
+ type: "概率叠层",
3725
+ description: "受击时,有20%概率获得5层「毒性唾液」"
3726
+ },
3727
+ "淬毒撕咬": {
3728
+ type: "层数治疗",
3729
+ description: "「毒性唾液」≥5层时,受击会回复50点生命值;「毒性唾液」≥10层时,受击会回复100点生命值;「毒性唾液」≥15层时,受击会回复150点生命值"
3730
+ },
3731
+ "酸蚀池": {
3732
+ type: "随机抗性",
3733
+ description: "每次受击将会从3种酸液中随机选择一种释放(脓蚀酸池:受到实弹武器伤害降低80%,受到能量武器伤害提高50%;蚀骨酸池:受到能量武器伤害降低80%,受到热能武器伤害提高50%;焦熔酸池:受到热能武器的伤害降低80%,受到实弹武器伤害提高50%)"
3734
+ },
3735
+ "剧毒突袭": {
3736
+ type: "强化效果",
3737
+ description: "「毒性唾液」≥20层时,受击消耗所有层数并使强化下5次触发的「酸蚀池」"
3368
3738
  }
3369
3739
  };
3370
3740
 
@@ -4744,6 +5114,9 @@ async function updateDatabaseWithStats(ctx, stats) {
4744
5114
  if (stats.skillStacksChanged !== 0) {
4745
5115
  updateData.skillStacks = Math.max(0, boss.skillStacks + stats.skillStacksChanged);
4746
5116
  }
5117
+ if (stats.skillStatusChanged !== 0) {
5118
+ updateData.skillStatus = Math.max(0, boss.skillStatus + stats.skillStatusChanged);
5119
+ }
4747
5120
  if (stats.statusLayersChanged !== 0) {
4748
5121
  updateData.statusLayers = Math.max(0, boss.statusLayers + stats.statusLayersChanged);
4749
5122
  }
@@ -5047,6 +5420,8 @@ function apply(ctx, config) {
5047
5420
  tags: "list",
5048
5421
  skills: "list",
5049
5422
  skillStacks: "unsigned",
5423
+ skillStatus: "unsigned",
5424
+ // 新增:表示技能当前的状态值
5050
5425
  statusLayers: "unsigned",
5051
5426
  radiationLayers: "unsigned",
5052
5427
  coldLayers: "unsigned",
package/lib/weapons.d.ts CHANGED
@@ -208,6 +208,50 @@ export declare const weaponConfig: {
208
208
  isantiair: boolean;
209
209
  tagEffects: {};
210
210
  };
211
+ MK79榴弹发射器: {
212
+ id: number;
213
+ type: string;
214
+ category: string;
215
+ damage: number;
216
+ description: string;
217
+ specialeffect: string;
218
+ price: number;
219
+ redCrystalCost: number;
220
+ isantiair: boolean;
221
+ tagEffects: {
222
+ 重甲: number;
223
+ 轻甲: number;
224
+ 护盾: number;
225
+ };
226
+ };
227
+ EC13电浆步枪: {
228
+ id: number;
229
+ type: string;
230
+ category: string;
231
+ damage: number;
232
+ description: string;
233
+ specialeffect: string;
234
+ price: number;
235
+ redCrystalCost: number;
236
+ isantiair: boolean;
237
+ tagEffects: {
238
+ 生物: number;
239
+ 护盾: number;
240
+ 重甲: number;
241
+ };
242
+ };
243
+ 聚变磁轨枪: {
244
+ id: number;
245
+ type: string;
246
+ category: string;
247
+ damage: number;
248
+ description: string;
249
+ specialeffect: string;
250
+ price: number;
251
+ redCrystalCost: number;
252
+ isantiair: boolean;
253
+ tagEffects: {};
254
+ };
211
255
  外星电浆: {
212
256
  id: number;
213
257
  type: string;
@@ -249,8 +293,8 @@ export declare const weaponConfig: {
249
293
  redCrystalCost: number;
250
294
  isantiair: boolean;
251
295
  tagEffects: {
252
- 轻甲: number;
253
296
  惧热: number;
297
+ 轻甲: number;
254
298
  };
255
299
  };
256
300
  'DSR-55\u53CD\u5668\u6750\u6B65\u67AA': {
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "koishi-plugin-ggcevo-game",
3
3
  "description": "《星际争霸2》咕咕虫-evolved地图的专属游戏助手插件,集成天梯排行、抽奖系统、签到福利、兑换商城等丰富功能。",
4
- "version": "1.4.50",
4
+ "version": "1.4.52",
5
5
  "main": "lib/index.js",
6
6
  "typings": "lib/index.d.ts",
7
7
  "files": [