koishi-plugin-ggcevo-game 1.5.16 → 1.5.18

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.
@@ -84,6 +84,7 @@ export declare const BattleEffectProcessor: {
84
84
  } | null;
85
85
  handleFrostEvolution: (targetBoss: any, weaponName: string, damage: number) => {
86
86
  isImmune: boolean;
87
+ immuneCold: boolean;
87
88
  messages: string[];
88
89
  targetUpdates: {
89
90
  name: string;
@@ -118,6 +119,7 @@ export declare const BattleEffectProcessor: {
118
119
  } | null;
119
120
  handleColdAdaptation: (targetBoss: any, weaponName: string) => {
120
121
  isImmune: boolean;
122
+ immuneCold: boolean;
121
123
  messages: string[];
122
124
  targetUpdates: {
123
125
  name: string;
@@ -262,6 +264,7 @@ export declare const BattleEffectProcessor: {
262
264
  } | null;
263
265
  handleSolarFlare: (targetBoss: any, weaponName: string, activeBosses: any[]) => {
264
266
  isImmune: boolean;
267
+ immuneCold: boolean;
265
268
  messages: string[];
266
269
  targetUpdates: {
267
270
  name: string;
@@ -284,6 +287,8 @@ export declare const BattleEffectProcessor: {
284
287
  buffMultiplier: number;
285
288
  nerfMultiplier: number;
286
289
  isImmune: boolean;
290
+ immuneCold: boolean;
291
+ immuneFire: boolean;
287
292
  messages: string[];
288
293
  };
289
294
  handleRampage: (targetBoss: any) => {
@@ -403,7 +408,7 @@ export declare const BattleEffectProcessor: {
403
408
  armorReduction: number;
404
409
  layerAdded: boolean;
405
410
  } | null;
406
- handleColdEffect: (targetBoss: any, weaponName: string, equippedWeapon: any) => {
411
+ handleColdEffect: (targetBoss: any, weaponName: string, equippedWeapon: any, isImmuneCold: boolean) => {
407
412
  messages: string[];
408
413
  targetUpdates: {
409
414
  name: string;
@@ -606,6 +611,8 @@ export declare const BattleEffectProcessor: {
606
611
  } | null;
607
612
  handleEnvironmentalAdaptation: (targetBoss: any, weaponName: string) => {
608
613
  isImmune: boolean;
614
+ immuneCold: boolean;
615
+ immuneFire: boolean;
609
616
  messages: string[];
610
617
  targetUpdates: {
611
618
  name: string;
package/lib/index.js CHANGED
@@ -781,7 +781,7 @@ var syndicatePirateConfig = [
781
781
  },
782
782
  {
783
783
  professionName: "计算机专家",
784
- effect: "黑市订购设备工具类享有50%折扣; 主动发起的PK胜率提高10%; 每日主动PK次数增加3次;被动PK失败时有50%的概率不损失金币",
784
+ effect: "黑市订购设备工具类享有50%折扣; 主动发起的PK胜率提高10%; 每日主动PK次数增加3",
785
785
  requirements: "仓库中至少拥有一个黑市订购的设备工具类物品",
786
786
  Jobtransfer: true,
787
787
  costredcrystal: 30
@@ -1922,6 +1922,7 @@ var BattleEffectProcessor = {
1922
1922
  return null;
1923
1923
  }
1924
1924
  isImmune = true;
1925
+ const immuneCold = true;
1925
1926
  const healAmount = damage;
1926
1927
  const targetUpdates = {
1927
1928
  name: targetBoss.name,
@@ -1933,6 +1934,8 @@ var BattleEffectProcessor = {
1933
1934
  messages.push(`❄️ 【冰霜进化】生效:免疫寒冷伤害并回复${healAmount}点生命值`);
1934
1935
  return {
1935
1936
  isImmune,
1937
+ immuneCold,
1938
+ // 新增的免疫寒冷标记
1936
1939
  messages,
1937
1940
  targetUpdates
1938
1941
  };
@@ -2029,21 +2032,36 @@ var BattleEffectProcessor = {
2029
2032
  }
2030
2033
  };
2031
2034
  }, "handleSurvivalInstinctII"),
2032
- // PassiveHandler 对象中添加冷适应技能的处理函数
2035
+ // 冷适应处理 - 新增immuneCold标记,并在免疫时清除寒冷层数
2033
2036
  handleColdAdaptation: /* @__PURE__ */ __name(function(targetBoss, weaponName) {
2034
2037
  const messages = [];
2035
2038
  let isImmune = false;
2039
+ let immuneCold = false;
2036
2040
  let targetUpdates = null;
2037
2041
  if (!targetBoss.skills.includes("冷适应")) {
2038
2042
  return null;
2039
2043
  }
2040
2044
  const currentLayers = targetBoss.statusLayers || 0;
2041
2045
  const hasFearHeatTag = targetBoss.tags.includes("惧热") || false;
2046
+ const currentColdLayers = targetBoss.coldLayers || 0;
2042
2047
  if (hasFearHeatTag && weaponName === "零度之下") {
2043
2048
  isImmune = true;
2044
- messages.push(`🧊 【冷适应】生效:免疫寒冷伤害`);
2049
+ immuneCold = true;
2050
+ if (currentColdLayers > 0) {
2051
+ if (!targetUpdates) {
2052
+ targetUpdates = {
2053
+ name: targetBoss.name,
2054
+ updates: {}
2055
+ };
2056
+ }
2057
+ targetUpdates.updates.coldLayersChange = -(currentColdLayers + 2);
2058
+ messages.push(`🌬️ 【冷适应】生效:清除全部寒冷效果`);
2059
+ }
2060
+ messages.push(`🌬️ 【冷适应】生效:免疫寒冷伤害`);
2045
2061
  return {
2046
2062
  isImmune,
2063
+ immuneCold,
2064
+ // 返回新增的免疫标记
2047
2065
  messages,
2048
2066
  targetUpdates
2049
2067
  };
@@ -2057,14 +2075,16 @@ var BattleEffectProcessor = {
2057
2075
  // 层数+1
2058
2076
  }
2059
2077
  };
2060
- messages.push(`❄️ 【冷适应】叠层:当前${newLayers}/10次寒冷伤害`);
2078
+ messages.push(`🌬️ 【冷适应】叠层:当前${newLayers}/10次寒冷伤害`);
2061
2079
  if (newLayers >= 10) {
2062
2080
  targetUpdates.updates.tagsAdded = ["惧热"];
2063
- messages.push(`🧊 【冷适应】生效:获得「惧热」标签并免疫寒冷伤害`);
2081
+ messages.push(`🔥 【冷适应】生效:获得「惧热」标签并免疫寒冷伤害`);
2064
2082
  }
2065
2083
  }
2066
2084
  return {
2067
2085
  isImmune,
2086
+ immuneCold,
2087
+ // 返回新增的免疫标记
2068
2088
  messages,
2069
2089
  targetUpdates
2070
2090
  };
@@ -2621,6 +2641,7 @@ var BattleEffectProcessor = {
2621
2641
  handleSolarFlare: /* @__PURE__ */ __name(function(targetBoss, weaponName, activeBosses) {
2622
2642
  const messages = [];
2623
2643
  let isImmune = false;
2644
+ let immuneCold = false;
2624
2645
  let targetUpdates = null;
2625
2646
  if (!targetBoss.skills.includes("太阳耀斑")) {
2626
2647
  return null;
@@ -2632,22 +2653,32 @@ var BattleEffectProcessor = {
2632
2653
  if (hasLivingOffspring) {
2633
2654
  return null;
2634
2655
  }
2656
+ const currentColdLayers = targetBoss.coldLayers || 0;
2657
+ let updates = {};
2635
2658
  if (hasFearColdTag) {
2636
- targetUpdates = {
2637
- name: targetBoss.name,
2638
- updates: {
2639
- tagsRemoved: ["惧寒"]
2640
- }
2641
- };
2659
+ updates.tagsRemoved = ["惧寒"];
2642
2660
  messages.push(`☀️ 【太阳耀斑】触发:移除「惧寒」标签`);
2643
2661
  }
2644
2662
  const isColdWeapon = weaponName === "零度之下";
2645
2663
  if (isColdWeapon) {
2646
2664
  isImmune = true;
2665
+ immuneCold = true;
2647
2666
  messages.push(`☀️ 【太阳耀斑】生效:免疫寒冷伤害`);
2667
+ if (currentColdLayers > 0) {
2668
+ updates.coldLayersChange = -(currentColdLayers + 2);
2669
+ messages.push(`☀️ 【太阳耀斑】生效:清除全部寒冷效果`);
2670
+ }
2671
+ }
2672
+ if (Object.keys(updates).length > 0) {
2673
+ targetUpdates = {
2674
+ name: targetBoss.name,
2675
+ updates
2676
+ };
2648
2677
  }
2649
2678
  return {
2650
2679
  isImmune,
2680
+ immuneCold,
2681
+ // 返回新增的免疫标记
2651
2682
  messages,
2652
2683
  targetUpdates,
2653
2684
  tempMark: true
@@ -2714,6 +2745,8 @@ var BattleEffectProcessor = {
2714
2745
  let buffMultiplier = 0;
2715
2746
  let nerfMultiplier = 0;
2716
2747
  let isImmune = false;
2748
+ let immuneCold = false;
2749
+ let immuneFire = false;
2717
2750
  if (!targetBoss.skills.includes("猎手异形")) {
2718
2751
  return null;
2719
2752
  }
@@ -2721,6 +2754,11 @@ var BattleEffectProcessor = {
2721
2754
  const isColdDamage = weaponName === "零度之下";
2722
2755
  if (isFireDamage || isColdDamage) {
2723
2756
  isImmune = true;
2757
+ if (isFireDamage) {
2758
+ immuneFire = true;
2759
+ } else if (isColdDamage) {
2760
+ immuneCold = true;
2761
+ }
2724
2762
  messages.push(`🦖 【猎手异形】生效:免疫${isFireDamage ? "火焰" : "寒冷"}伤害`);
2725
2763
  }
2726
2764
  const otherLivingAliens = activeBosses.filter(
@@ -2737,6 +2775,10 @@ var BattleEffectProcessor = {
2737
2775
  buffMultiplier,
2738
2776
  nerfMultiplier,
2739
2777
  isImmune,
2778
+ immuneCold,
2779
+ // 新增返回标记
2780
+ immuneFire,
2781
+ // 新增返回标记
2740
2782
  messages
2741
2783
  };
2742
2784
  }, "handleHunterAlien"),
@@ -3176,7 +3218,13 @@ var BattleEffectProcessor = {
3176
3218
  };
3177
3219
  }, "handleRadiationEffect"),
3178
3220
  // 统一的寒冷效果处理函数
3179
- handleColdEffect: /* @__PURE__ */ __name(function(targetBoss, weaponName, equippedWeapon) {
3221
+ handleColdEffect: /* @__PURE__ */ __name(function(targetBoss, weaponName, equippedWeapon, isImmuneCold) {
3222
+ if (isImmuneCold) {
3223
+ return null;
3224
+ }
3225
+ if (targetBoss.skills.includes("冰霜进化") || targetBoss.skills.includes("猎手异形")) {
3226
+ return null;
3227
+ }
3180
3228
  const messages = [];
3181
3229
  let layerAdded = false;
3182
3230
  const currentLayers = targetBoss.coldLayers || 0;
@@ -3900,41 +3948,50 @@ var BattleEffectProcessor = {
3900
3948
  // 环境适应处理(免疫火焰和寒冷伤害,任意攻击都会清空寒冷/燃烧层数)
3901
3949
  handleEnvironmentalAdaptation: /* @__PURE__ */ __name(function(targetBoss, weaponName) {
3902
3950
  const messages = [];
3951
+ let immuneCold = false;
3952
+ let immuneFire = false;
3903
3953
  if (!targetBoss.skills.includes("环境适应")) {
3904
3954
  return null;
3905
3955
  }
3906
3956
  const isFireDamage = weaponName === "焚烧枪";
3907
3957
  const isColdDamage = weaponName === "零度之下";
3908
3958
  const updates = {};
3909
- let clearMessage = "";
3959
+ let clearMessageParts = [];
3910
3960
  if (targetBoss.burnLayers > 0) {
3911
- updates.burnLayersChanged = -(targetBoss.burnLayers + 1);
3912
- clearMessage += `清空所有燃烧层数`;
3961
+ updates.burnLayersChanged = -(targetBoss.burnLayers + 2);
3962
+ clearMessageParts.push(`清空全部燃烧效果`);
3913
3963
  }
3914
3964
  if (targetBoss.coldLayers > 0) {
3915
- updates.coldLayersChange = -(targetBoss.coldLayers + 1);
3916
- if (clearMessage) clearMessage += "和";
3917
- clearMessage += `清空所有寒冷层数`;
3965
+ updates.coldLayersChange = -(targetBoss.coldLayers + 2);
3966
+ clearMessageParts.push(`清空全部寒冷效果`);
3918
3967
  }
3919
3968
  let isImmune = false;
3920
- let immuneMessage = "";
3921
- if (isFireDamage || isColdDamage) {
3969
+ if (isFireDamage) {
3922
3970
  isImmune = true;
3923
- immuneMessage = `免疫${isFireDamage ? "火焰" : "寒冷"}伤害`;
3971
+ immuneFire = true;
3972
+ }
3973
+ if (isColdDamage) {
3974
+ isImmune = true;
3975
+ immuneCold = true;
3924
3976
  }
3925
3977
  let fullMessage = `🧬 【环境适应】生效:`;
3926
- if (immuneMessage && clearMessage) {
3927
- fullMessage += `${immuneMessage}并${clearMessage}`;
3978
+ let immuneMessage = "";
3979
+ if (isImmune) {
3980
+ immuneMessage = `免疫${isFireDamage ? "火焰" : isColdDamage ? "寒冷" : ""}伤害`;
3981
+ }
3982
+ if (clearMessageParts.length > 0) {
3983
+ fullMessage += `${immuneMessage ? immuneMessage + "并" : ""}${clearMessageParts.join("和")}`;
3928
3984
  } else if (immuneMessage) {
3929
3985
  fullMessage += immuneMessage;
3930
- } else if (clearMessage) {
3931
- fullMessage += clearMessage;
3932
3986
  } else {
3933
3987
  return null;
3934
3988
  }
3989
+ messages.push(fullMessage);
3935
3990
  return {
3936
3991
  isImmune,
3937
- messages: [fullMessage],
3992
+ immuneCold,
3993
+ immuneFire,
3994
+ messages,
3938
3995
  targetUpdates: Object.keys(updates).length > 0 ? {
3939
3996
  name: targetBoss.name,
3940
3997
  updates
@@ -4068,6 +4125,8 @@ function applyPassiveEffects(targetBoss, activeBosses, weaponName, damage, hasCr
4068
4125
  let burnLayerAdded = false;
4069
4126
  let drainFactor = 0;
4070
4127
  let reductionAmount = 0;
4128
+ let isImmuneCold = false;
4129
+ let isImmuneFire = false;
4071
4130
  const weaponData = weaponConfig[weaponName] || { type: "" };
4072
4131
  let doubleAstralWind = false;
4073
4132
  let isolatedImmunityMark = false;
@@ -4141,11 +4200,16 @@ function applyPassiveEffects(targetBoss, activeBosses, weaponName, damage, hasCr
4141
4200
  const allImmuneEffects = [...coldImmuneEffects, ...fireImmuneEffects, ...chanceImmuneEffects, ...conditionImmuneEffects];
4142
4201
  for (const immuneEffect of allImmuneEffects) {
4143
4202
  const result = processEffect(immuneEffect.effect, ...immuneEffect.args);
4144
- if (result?.isImmune) immune = true;
4203
+ if (result) {
4204
+ isImmuneCold = isImmuneCold || result.immuneCold === true;
4205
+ isImmuneFire = isImmuneFire || result.immuneFire === true;
4206
+ if (result.isImmune) immune = true;
4207
+ }
4145
4208
  }
4146
4209
  const solarFlareResult = BattleEffectProcessor.handleSolarFlare(targetBoss, weaponName, activeBosses);
4147
4210
  if (solarFlareResult) {
4148
4211
  isolatedImmunityMark = solarFlareResult.tempMark || false;
4212
+ isImmuneCold = isImmuneCold || solarFlareResult.immuneCold === true;
4149
4213
  if (solarFlareResult.isImmune) immune = true;
4150
4214
  messages.push(...solarFlareResult.messages);
4151
4215
  if (solarFlareResult.targetUpdates) {
@@ -4330,7 +4394,7 @@ function applyPassiveEffects(targetBoss, activeBosses, weaponName, damage, hasCr
4330
4394
  }
4331
4395
  radiationLayerAdded = radiationResult.layerAdded;
4332
4396
  }
4333
- const coldResult = BattleEffectProcessor.handleColdEffect(targetBoss, weaponName, equippedWeapon);
4397
+ const coldResult = BattleEffectProcessor.handleColdEffect(targetBoss, weaponName, equippedWeapon, isImmuneCold);
4334
4398
  if (coldResult) {
4335
4399
  messages.push(...coldResult.messages);
4336
4400
  if (coldResult.buffMultiplier) {
@@ -4559,7 +4623,7 @@ var passiveConfig = {
4559
4623
  derivedSkills: []
4560
4624
  },
4561
4625
  "冷适应": {
4562
- description: "累计承受10次寒冷伤害后,获得「惧热」标签并永久免疫寒冷伤害",
4626
+ description: "累计承受10次寒冷伤害后,获得「惧热」标签,免疫寒冷伤害并清空自身寒冷层数",
4563
4627
  belong: ["莽兽", "狂暴畸变体", "剧毒畸变体"],
4564
4628
  derivedSkills: []
4565
4629
  },
@@ -4669,7 +4733,7 @@ var passiveConfig = {
4669
4733
  derivedSkills: []
4670
4734
  },
4671
4735
  "太阳耀斑": {
4672
- description: "所有子代阵亡后,移除惧寒标签和孤立无援状态,并永久免疫寒冷伤害",
4736
+ description: "所有子代阵亡后,移除惧寒标签和孤立无援状态,免疫寒冷伤害并清空自身寒冷层数",
4673
4737
  belong: ["烈焰庞兽"],
4674
4738
  derivedSkills: []
4675
4739
  },
@@ -4684,7 +4748,7 @@ var passiveConfig = {
4684
4748
  derivedSkills: []
4685
4749
  },
4686
4750
  "猎手异形": {
4687
- description: "存在其他存活异形时伤害降低20%,无其他存活异形时伤害提高20%;免疫火焰及寒冷伤害",
4751
+ description: "存在其他存活异形时伤害降低20%,无其他存活异形时伤害提高20%;免疫火焰伤害及寒冷伤害",
4688
4752
  belong: ["狂猎猛禽首领", "狂猎猛禽1", "狂猎猛禽2"],
4689
4753
  derivedSkills: []
4690
4754
  },
@@ -4856,7 +4920,7 @@ var passiveConfig = {
4856
4920
  derivedSkills: []
4857
4921
  },
4858
4922
  "环境适应": {
4859
- description: "免疫火焰伤害和寒冷伤害;清空自身的寒冷层数和燃烧层数",
4923
+ description: "免疫火焰伤害和寒冷伤害;清空自身寒冷层数和燃烧层数",
4860
4924
  belong: [],
4861
4925
  derivedSkills: []
4862
4926
  },
@@ -5030,6 +5094,21 @@ var ggcevoUpdates = [
5030
5094
  - 修改了[燃烧]机制
5031
5095
  - 修改了回血技能逻辑,现在攻击造成致命伤害时不再触发回血技能
5032
5096
  `.trim()
5097
+ },
5098
+ {
5099
+ version: "1.5.17",
5100
+ time: "2025-07-03",
5101
+ content: `
5102
+ - 删除计算机能力:被动PK失败时有50%的概率不损失金币
5103
+ `.trim()
5104
+ },
5105
+ {
5106
+ version: "1.5.18",
5107
+ time: "2025-07-03",
5108
+ content: `
5109
+ - 修改了寒冷机制,现在拥有免疫寒冷伤害的技能可以免疫获得寒冷层数
5110
+ - 增强了部分免疫寒冷伤害的技能,使其可以清空自身寒冷层数
5111
+ `.trim()
5033
5112
  }
5034
5113
  ];
5035
5114
  function compareVersions(a, b) {
@@ -8580,8 +8659,6 @@ ${protectionList}
8580
8659
  let computerExpertProtection = false;
8581
8660
  if (isWin && targetCareer?.career === "计算机专家") {
8582
8661
  if (Math.random() < 0.5) {
8583
- computerExpertProtection = true;
8584
- goldTransfer = 0;
8585
8662
  }
8586
8663
  }
8587
8664
  let hornEffect = false;
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.5.16",
4
+ "version": "1.5.18",
5
5
  "main": "lib/index.js",
6
6
  "typings": "lib/index.d.ts",
7
7
  "files": [