koishi-plugin-ggcevo-game 1.4.51 → 1.4.53

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
@@ -264,13 +264,15 @@ var weaponConfig = {
264
264
  type: "能量武器",
265
265
  category: "能量武器",
266
266
  damage: 64,
267
- description: "用于解决高生命值目标的次时代武器",
267
+ description: "用于解决高生命值目标的次时代武器,擅长对付护盾耗尽或没有护甲的敌人",
268
268
  specialeffect: "",
269
269
  price: 1750,
270
270
  redCrystalCost: 20,
271
271
  isantiair: true,
272
272
  tagEffects: {
273
- "护盾": 0.5
273
+ "生物": 1.5,
274
+ "护盾": 0.5,
275
+ "重甲": 0.5
274
276
  }
275
277
  },
276
278
  "聚变磁轨枪": {
@@ -278,7 +280,7 @@ var weaponConfig = {
278
280
  type: "能量武器",
279
281
  category: "能量武器",
280
282
  damage: 70,
281
- description: "一种原型能量武器,能够发射强大的脉冲",
283
+ description: "一种实验性的超级武器,能造成巨大的伤害",
282
284
  specialeffect: "",
283
285
  price: 1550,
284
286
  redCrystalCost: 20,
@@ -326,15 +328,15 @@ var weaponConfig = {
326
328
  redCrystalCost: 200,
327
329
  isantiair: false,
328
330
  tagEffects: {
329
- "轻甲": 1.5,
330
- "惧热": 1.5
331
+ "惧热": 2,
332
+ "轻甲": 1.5
331
333
  }
332
334
  },
333
335
  "DSR-55反器材步枪": {
334
336
  id: 104,
335
337
  type: "实弹武器",
336
338
  category: "传奇武器",
337
- damage: 120,
339
+ damage: 130,
338
340
  description: "一件传奇武器",
339
341
  specialeffect: "",
340
342
  price: 6400,
@@ -1309,6 +1311,27 @@ var bossPool = [
1309
1311
  passive: ["弱化形态", "心灵狂热", "星界之风"]
1310
1312
  }
1311
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
+ ]
1312
1335
  }
1313
1336
  ];
1314
1337
 
@@ -1325,6 +1348,7 @@ function updateStatsByName(name2, updates) {
1325
1348
  skillsAdded: [],
1326
1349
  skillsRemoved: [],
1327
1350
  skillStacksChanged: 0,
1351
+ skillStatusChanged: 0,
1328
1352
  statusLayersChanged: 0,
1329
1353
  radiationLayersChange: 0,
1330
1354
  coldLayersChange: 0,
@@ -1337,6 +1361,7 @@ function updateStatsByName(name2, updates) {
1337
1361
  hpChange: existing.hpChange + (updates.hpChange ?? 0),
1338
1362
  energyChange: existing.energyChange + (updates.energyChange ?? 0),
1339
1363
  skillStacksChanged: existing.skillStacksChanged + (updates.skillStacksChanged ?? 0),
1364
+ skillStatusChanged: existing.skillStatusChanged + (updates.skillStatusChanged ?? 0),
1340
1365
  statusLayersChanged: existing.statusLayersChanged + (updates.statusLayersChanged ?? 0),
1341
1366
  radiationLayersChange: existing.radiationLayersChange + (updates.radiationLayersChange ?? 0),
1342
1367
  coldLayersChange: existing.coldLayersChange + (updates.coldLayersChange ?? 0),
@@ -2885,7 +2910,252 @@ var BattleEffectProcessor = {
2885
2910
  targetUpdates,
2886
2911
  reductionSuccess
2887
2912
  };
2888
- }, "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")
2889
3159
  };
2890
3160
  function applyPassiveEffects(targetBoss, activeBosses, weaponName, damage, ignoreRate) {
2891
3161
  const messages = [];
@@ -2981,6 +3251,10 @@ function applyPassiveEffects(targetBoss, activeBosses, weaponName, damage, ignor
2981
3251
  { effect: BattleEffectProcessor.handleVomit, args: [targetBoss] },
2982
3252
  { effect: BattleEffectProcessor.handleRampage, args: [targetBoss] },
2983
3253
  { effect: BattleEffectProcessor.handleHyperRangeShift, args: [targetBoss] },
3254
+ // 1. 毒性唾液
3255
+ { effect: BattleEffectProcessor.handleToxicSaliva, args: [targetBoss] },
3256
+ // 2. 剧毒狂暴
3257
+ { effect: BattleEffectProcessor.handleToxicFrenzy, args: [targetBoss] },
2984
3258
  // 双参数效果
2985
3259
  { effect: BattleEffectProcessor.handleStructuralArmor, args: [targetBoss, weaponData] },
2986
3260
  { effect: BattleEffectProcessor.handleDisguise, args: [targetBoss, weaponName] },
@@ -3010,7 +3284,9 @@ function applyPassiveEffects(targetBoss, activeBosses, weaponName, damage, ignor
3010
3284
  { effect: BattleEffectProcessor.handleVampireSaliva, args: [targetBoss] },
3011
3285
  { effect: BattleEffectProcessor.handleBloodlust, args: [targetBoss] },
3012
3286
  { effect: BattleEffectProcessor.handleBladeOfLight, args: [targetBoss] },
3013
- { effect: BattleEffectProcessor.handleCollapsingPulse, args: [targetBoss] }
3287
+ { effect: BattleEffectProcessor.handleCollapsingPulse, args: [targetBoss] },
3288
+ // 3. 毒气波
3289
+ { effect: BattleEffectProcessor.handleToxicGasWave, args: [targetBoss] }
3014
3290
  ];
3015
3291
  for (const effectItem of layerDependentEffects) {
3016
3292
  const result = processEffect(effectItem.effect, ...effectItem.args);
@@ -3020,11 +3296,37 @@ function applyPassiveEffects(targetBoss, activeBosses, weaponName, damage, ignor
3020
3296
  }
3021
3297
  }
3022
3298
  const stateChangeEffects = [
3023
- { effect: BattleEffectProcessor.handleSuperconductor, args: [targetBoss] }
3299
+ { effect: BattleEffectProcessor.handleSuperconductor, args: [targetBoss] },
3300
+ // 4. 剧毒突袭
3301
+ { effect: BattleEffectProcessor.handleToxicAssault, args: [targetBoss] }
3024
3302
  ];
3025
3303
  for (const effectItem of stateChangeEffects) {
3026
3304
  processEffect(effectItem.effect, ...effectItem.args);
3027
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
+ }
3028
3330
  const healingEffects = [
3029
3331
  { effect: BattleEffectProcessor.handleFrostRegeneration, args: [targetBoss, activeBosses, maxStatsMap] },
3030
3332
  { effect: BattleEffectProcessor.handleFrostAura, args: [targetBoss, activeBosses] },
@@ -3035,7 +3337,9 @@ function applyPassiveEffects(targetBoss, activeBosses, weaponName, damage, ignor
3035
3337
  { effect: BattleEffectProcessor.handleFeeding, args: [targetBoss] },
3036
3338
  { effect: BattleEffectProcessor.handleBurningBurrow, args: [targetBoss] },
3037
3339
  { effect: BattleEffectProcessor.handleBombardmentGuide, args: [targetBoss] },
3038
- { effect: BattleEffectProcessor.handleOverdriveShield, args: [targetBoss, activeBosses] }
3340
+ { effect: BattleEffectProcessor.handleOverdriveShield, args: [targetBoss, activeBosses] },
3341
+ // 6. 淬毒撕咬
3342
+ { effect: BattleEffectProcessor.handlePoisonedBite, args: [targetBoss] }
3039
3343
  ];
3040
3344
  for (const effectItem of healingEffects) {
3041
3345
  processEffect(effectItem.effect, ...effectItem.args);
@@ -3205,208 +3509,232 @@ __name(applyPassiveEffects, "applyPassiveEffects");
3205
3509
  // src/boss/passive.ts
3206
3510
  var passiveConfig = {
3207
3511
  "弱化形态": {
3208
- type: "伤害增减(负面)",
3512
+ type: "伤害易伤",
3209
3513
  description: "子代防御脆弱,受到的伤害提高10%"
3210
3514
  },
3211
3515
  "异形甲壳": {
3212
- type: "伤害增减(正面)",
3516
+ type: "伤害减免",
3213
3517
  description: "受到的伤害降低20%"
3214
3518
  },
3215
3519
  "冰霜回复": {
3216
- type: "生存强化(生命回复)",
3520
+ type: "濒死治疗(移除)",
3217
3521
  description: "生命值≤30%时,立即回复自身40%最大生命值,并为所有其他存活异形回复10%最大生命值(生效后移除)"
3218
3522
  },
3219
3523
  "冰霜进化": {
3220
- type: "状态免疫(寒冷伤害免疫)",
3524
+ type: "元素转换",
3221
3525
  description: "免疫寒冷伤害,受到寒冷攻击时回复等量生命值"
3222
3526
  },
3223
3527
  "冰霜环绕": {
3224
- type: "生存强化(生命回复+群体增益)",
3528
+ type: "濒死治疗+技能赋予(移除)",
3225
3529
  description: "生命值≤30%时,立即回复自身45%最大生命值,并使所有存活异形获得「寒霜地狱」技能(生效后移除)"
3226
3530
  },
3227
3531
  "寒霜地狱": {
3228
- type: "伤害增减(正面)",
3532
+ type: "伤害减免",
3229
3533
  description: "受到的伤害降低30%"
3230
3534
  },
3231
3535
  "应激甲壳I": {
3232
- type: "伤害增减(正面)",
3536
+ type: "伤害减免",
3233
3537
  description: "受到的伤害降低20%"
3234
3538
  },
3235
3539
  "应激甲壳II": {
3236
- type: "伤害增减(正面)",
3540
+ type: "伤害减免",
3237
3541
  description: "受到的伤害降低25%"
3238
3542
  },
3239
3543
  "求生本能I": {
3240
- type: "生存强化(生命回复)",
3544
+ type: "濒死治疗(移除)",
3241
3545
  description: "濒死时立即回复自身30%最大生命值(生效后移除)"
3242
3546
  },
3243
3547
  "求生本能II": {
3244
- type: "生存强化(生命回复)",
3548
+ type: "濒死治疗(移除)",
3245
3549
  description: "濒死时立即回复自身50%最大生命值(生效后移除)"
3246
3550
  },
3247
3551
  "冷适应": {
3248
- type: "状态免疫(寒冷伤害免疫)",
3552
+ type: "元素免疫+标签转化",
3249
3553
  description: "累计承受10次寒冷伤害后,获得「惧热」标签并永久免疫寒冷伤害"
3250
3554
  },
3251
3555
  "感染空间站": {
3252
- type: "伤害增减(正面)",
3556
+ type: "条件减伤",
3253
3557
  description: "当空间站哨枪塔存活时,自身受到的伤害降低50%"
3254
3558
  },
3255
3559
  "病毒云": {
3256
- type: "伤害增减(正面)",
3560
+ type: "伤害减免",
3257
3561
  description: "受到的伤害降低10%"
3258
3562
  },
3259
3563
  "霉菌滋生": {
3260
- type: "生存强化(生命回复)",
3564
+ type: "建筑治疗",
3261
3565
  description: "受击后,若空间站哨枪塔存活,为其回复1%最大生命值"
3262
3566
  },
3263
3567
  "岗哨机枪": {
3264
- type: "生存强化(生命回复)",
3568
+ type: "群体治疗",
3265
3569
  description: "每累计承受10次攻击,为所有其他存活异形回复10%最大生命值"
3266
3570
  },
3267
3571
  "结构装甲": {
3268
- type: "伤害增减(正面)",
3572
+ type: "元素抗性",
3269
3573
  description: "受实弹/能量武器伤害降低20%,受热能武器伤害降低40%"
3270
3574
  },
3271
3575
  "吸血唾液": {
3272
- type: "伤害增减(正面)",
3576
+ type: "叠层减伤",
3273
3577
  description: "受击获得1层「吸血唾液」(上限20层),每层使受到的伤害降低5%"
3274
3578
  },
3275
3579
  "进食": {
3276
- type: "生存强化(生命回复)",
3580
+ type: "叠层转化(治疗)",
3277
3581
  description: "「吸血唾液」≥20层时,下次受击消耗所有层数并回复自身20%最大生命值"
3278
3582
  },
3279
3583
  "嗜血狂暴": {
3280
- type: "伤害增减(正面)",
3584
+ type: "狂怒机制",
3281
3585
  description: "生命值≤50%时,受击额外获得1层「吸血唾液」且受到的伤害降低20%"
3282
3586
  },
3283
3587
  "吐血": {
3284
- type: "伤害增减(负面)",
3588
+ type: "叠层惩罚",
3285
3589
  description: "无「吸血唾液」层数时,受到的伤害提高20%"
3286
3590
  },
3287
3591
  "超导体": {
3288
- type: "状态转换(护盾→重甲)",
3592
+ type: "标签转换",
3289
3593
  description: "生命值≤10%时,护盾标签永久转换为重甲标签"
3290
3594
  },
3291
3595
  "能量虹吸": {
3292
- type: "伤害增减(正面)",
3596
+ type: "血线减伤",
3293
3597
  description: "生命值≥70%时伤害降低40%,30%-70%时伤害降低20%"
3294
3598
  },
3295
3599
  "能源虹吸": {
3296
- type: "伤害增减(正面)",
3600
+ type: "能量减伤",
3297
3601
  description: "能量值≥80%时伤害降低50%,50%-80%时伤害降低30%"
3298
3602
  },
3299
3603
  "电能立场": {
3300
- type: "状态免疫(伤害免疫)",
3604
+ type: "概率免疫",
3301
3605
  description: "能量值≥30%时,55%概率免疫非热能伤害(每层寒冷降低5%触发概率)"
3302
3606
  },
3303
3607
  "电能冲击波": {
3304
- type: "生存强化(能量回复)",
3608
+ type: "受击回能",
3305
3609
  description: "受击后回复100点能量"
3306
3610
  },
3307
3611
  "脉冲": {
3308
- type: "生存强化(生命回复)",
3612
+ type: "概率群体治疗",
3309
3613
  description: "能量值≥30%时,60%概率为所有存活异形回复100点生命(每层寒冷降低5%触发概率)"
3310
3614
  },
3311
3615
  "能量黑洞": {
3312
- type: "伤害增减(正面)",
3616
+ type: "环境减伤",
3313
3617
  description: "存在能量黑洞时,受到的伤害降低20%"
3314
3618
  },
3315
3619
  "火焰异形": {
3316
- type: "状态免疫(火焰伤害免疫)",
3620
+ type: "元素转换",
3317
3621
  description: "免疫火焰伤害,受到火焰攻击时回复等量生命值"
3318
3622
  },
3319
3623
  "庞兽狂暴": {
3320
- type: "伤害增减(正面)",
3624
+ type: "半血减伤",
3321
3625
  description: "生命值≤50%时,受到的伤害降低50%"
3322
3626
  },
3323
3627
  "灼烧粘液": {
3324
- type: "生存强化(生命回复)",
3628
+ type: "叠层治疗",
3325
3629
  description: "受击获得1层「灼烧粘液」;受火焰攻击时消耗所有层数并回复(层数×10)点生命"
3326
3630
  },
3327
3631
  "腐蚀胆汁": {
3328
- type: "生存强化(生命回复)",
3632
+ type: "叠层转化(群体治疗)",
3329
3633
  description: "「灼烧粘液」≥10层时,下次受击消耗所有层数并为所有存活异形回复1000点生命"
3330
3634
  },
3331
3635
  "火焰吐息": {
3332
- type: "生存强化(生命回复)",
3636
+ type: "叠层转化(群体治疗)",
3333
3637
  description: "「灼烧粘液」≥20层时,下次攻击消耗所有层数并为所有存活异形回复20%最大生命值"
3334
3638
  },
3335
3639
  "太阳耀斑": {
3336
- type: "状态移除+状态免疫(寒冷伤害免疫)",
3640
+ type: "净化机制",
3337
3641
  description: "所有子代阵亡后,移除惧寒标签和孤立无援状态,并永久免疫寒冷伤害"
3338
3642
  },
3339
3643
  "燃烧潜地": {
3340
- type: "生存强化(生命回复)",
3644
+ type: "濒死治疗(移除)",
3341
3645
  description: "生命值≤10%时立即回复50%最大生命值(生效后移除)"
3342
3646
  },
3343
3647
  "炼狱爆弹": {
3344
- type: "伤害增减(正面)",
3648
+ type: "叠层减伤+联动作战",
3345
3649
  description: "每层「灼烧粘液」使受到的伤害降低5%,存活子代存在时每层额外降低5%"
3346
3650
  },
3347
3651
  "猎手异形": {
3348
- type: "伤害增减(条件性)+状态免疫(火焰/寒冷伤害免疫)",
3652
+ type: "团队联动",
3349
3653
  description: "存在其他存活异形时伤害降低20%,无其他存活异形时伤害提高20%;免疫火焰及寒冷伤害"
3350
3654
  },
3351
3655
  "狂暴": {
3352
- type: "伤害增减(正面)",
3656
+ type: "半血减伤",
3353
3657
  description: "生命值≤50%时,受到的伤害降低50%"
3354
3658
  },
3355
3659
  "伪装": {
3356
- type: "伤害增减(正面)",
3660
+ type: "动态抗性",
3357
3661
  description: "受击记录伤害来源武器名称,下次被同名武器攻击时伤害降低80%"
3358
3662
  },
3359
3663
  "致命一击": {
3360
- type: "状态免疫(伤害免疫)",
3664
+ type: "概率免疫",
3361
3665
  description: "受击时5%概率免疫该次伤害"
3362
3666
  },
3363
3667
  "星界之风": {
3364
- type: "生存强化(生命回复)",
3668
+ type: "概率群体治疗",
3365
3669
  description: "受击时5%概率为所有存活异形回复200点生命"
3366
3670
  },
3367
3671
  "心灵狂热": {
3368
- type: "伤害增减(正面)",
3672
+ type: "半血强化",
3369
3673
  description: "生命值<50%时伤害降低20%且「星界之风」触发概率翻倍"
3370
3674
  },
3371
3675
  "宇宙能量": {
3372
- type: "生存强化(能量/生命回复)",
3676
+ type: "能量转化",
3373
3677
  description: "受击回复等量能量值,能量溢出时转换为生命回复"
3374
3678
  },
3375
3679
  "复苏": {
3376
- type: "生存强化(生命/能量回复)",
3680
+ type: "濒死重生(移除)",
3377
3681
  description: "免疫致命伤害,回复60%最大生命与100%能量值,并获得「灵能构造炉」技能(生效后移除)"
3378
3682
  },
3379
3683
  "光影之刃": {
3380
- type: "状态叠加(层数叠加)",
3684
+ type: "叠层机制",
3381
3685
  description: "受击获得1层「光影之刃」(上限50层)"
3382
3686
  },
3383
3687
  "远古预兆": {
3384
- type: "状态免疫(伤害免疫)+状态增强(触发概率提升)",
3688
+ type: "层数强化",
3385
3689
  description: "受击时1%概率免疫非热能伤害并回复100点能量,每层「光影之刃」使触发概率提升0.5%"
3386
3690
  },
3387
3691
  "超视距穿梭": {
3388
- type: "伤害增减(条件性)",
3692
+ type: "动态减伤",
3389
3693
  description: "能量≥60%时每层「光影之刃」使伤害降低10%,30%-60%时每层降低5%,能量≤10%时每层提高5%"
3390
3694
  },
3391
3695
  "灵能构造炉": {
3392
- type: "状态获得(技能获得)",
3696
+ type: "技能获取",
3393
3697
  description: "受击时5%概率随机获得以下技能之一:天启超载护盾/塌缩脉冲/地毯式轰炸/轰炸引导"
3394
3698
  },
3395
3699
  "天启超载护盾": {
3396
- type: "生存强化(生命回复)",
3700
+ type: "叠层转化(群体治疗)",
3397
3701
  description: "受击时10%概率触发,消耗当前「光影之刃」层数的一半(向下取整),并为所有存活异形回复(消耗层数×10)点生命"
3398
3702
  },
3399
3703
  "塌缩脉冲": {
3400
- type: "状态叠加(层数叠加)",
3704
+ type: "叠层加速",
3401
3705
  description: "受击后额外获得1层「光影之刃」"
3402
3706
  },
3403
3707
  "地毯式轰炸": {
3404
- type: "状态移除+伤害增减(正面)",
3708
+ type: "状态净化",
3405
3709
  description: "移除孤立无援状态,受到的伤害降低80%"
3406
3710
  },
3407
3711
  "轰炸引导": {
3408
- type: "生存强化(能量回复)",
3712
+ type: "叠层转化(能量)",
3409
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次触发的「酸蚀池」"
3410
3738
  }
3411
3739
  };
3412
3740
 
@@ -4786,6 +5114,9 @@ async function updateDatabaseWithStats(ctx, stats) {
4786
5114
  if (stats.skillStacksChanged !== 0) {
4787
5115
  updateData.skillStacks = Math.max(0, boss.skillStacks + stats.skillStacksChanged);
4788
5116
  }
5117
+ if (stats.skillStatusChanged !== 0) {
5118
+ updateData.skillStatus = Math.max(0, boss.skillStatus + stats.skillStatusChanged);
5119
+ }
4789
5120
  if (stats.statusLayersChanged !== 0) {
4790
5121
  updateData.statusLayers = Math.max(0, boss.statusLayers + stats.statusLayersChanged);
4791
5122
  }
@@ -5089,6 +5420,8 @@ function apply(ctx, config) {
5089
5420
  tags: "list",
5090
5421
  skills: "list",
5091
5422
  skillStacks: "unsigned",
5423
+ skillStatus: "unsigned",
5424
+ // 新增:表示技能当前的状态值
5092
5425
  statusLayers: "unsigned",
5093
5426
  radiationLayers: "unsigned",
5094
5427
  coldLayers: "unsigned",
package/lib/weapons.d.ts CHANGED
@@ -235,7 +235,9 @@ export declare const weaponConfig: {
235
235
  redCrystalCost: number;
236
236
  isantiair: boolean;
237
237
  tagEffects: {
238
+ 生物: number;
238
239
  护盾: number;
240
+ 重甲: number;
239
241
  };
240
242
  };
241
243
  聚变磁轨枪: {
@@ -291,8 +293,8 @@ export declare const weaponConfig: {
291
293
  redCrystalCost: number;
292
294
  isantiair: boolean;
293
295
  tagEffects: {
294
- 轻甲: number;
295
296
  惧热: number;
297
+ 轻甲: number;
296
298
  };
297
299
  };
298
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.51",
4
+ "version": "1.4.53",
5
5
  "main": "lib/index.js",
6
6
  "typings": "lib/index.d.ts",
7
7
  "files": [