koishi-plugin-ggcevo-game 1.5.17 → 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.
- package/lib/boss/BattleEffectProcessor.d.ts +8 -1
- package/lib/index.js +104 -32
- package/package.json +1 -1
|
@@ -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
|
@@ -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
|
-
//
|
|
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
|
-
|
|
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(
|
|
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
|
-
|
|
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
|
|
3959
|
+
let clearMessageParts = [];
|
|
3910
3960
|
if (targetBoss.burnLayers > 0) {
|
|
3911
|
-
updates.burnLayersChanged = -(targetBoss.burnLayers +
|
|
3912
|
-
|
|
3961
|
+
updates.burnLayersChanged = -(targetBoss.burnLayers + 2);
|
|
3962
|
+
clearMessageParts.push(`清空全部燃烧效果`);
|
|
3913
3963
|
}
|
|
3914
3964
|
if (targetBoss.coldLayers > 0) {
|
|
3915
|
-
updates.coldLayersChange = -(targetBoss.coldLayers +
|
|
3916
|
-
|
|
3917
|
-
clearMessage += `清空所有寒冷层数`;
|
|
3965
|
+
updates.coldLayersChange = -(targetBoss.coldLayers + 2);
|
|
3966
|
+
clearMessageParts.push(`清空全部寒冷效果`);
|
|
3918
3967
|
}
|
|
3919
3968
|
let isImmune = false;
|
|
3920
|
-
|
|
3921
|
-
if (isFireDamage || isColdDamage) {
|
|
3969
|
+
if (isFireDamage) {
|
|
3922
3970
|
isImmune = true;
|
|
3923
|
-
|
|
3971
|
+
immuneFire = true;
|
|
3972
|
+
}
|
|
3973
|
+
if (isColdDamage) {
|
|
3974
|
+
isImmune = true;
|
|
3975
|
+
immuneCold = true;
|
|
3924
3976
|
}
|
|
3925
3977
|
let fullMessage = `🧬 【环境适应】生效:`;
|
|
3926
|
-
|
|
3927
|
-
|
|
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
|
-
|
|
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
|
|
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
|
},
|
|
@@ -5032,11 +5096,19 @@ var ggcevoUpdates = [
|
|
|
5032
5096
|
`.trim()
|
|
5033
5097
|
},
|
|
5034
5098
|
{
|
|
5035
|
-
version: "1.5.
|
|
5099
|
+
version: "1.5.17",
|
|
5036
5100
|
time: "2025-07-03",
|
|
5037
5101
|
content: `
|
|
5038
5102
|
- 删除计算机能力:被动PK失败时有50%的概率不损失金币
|
|
5039
5103
|
`.trim()
|
|
5104
|
+
},
|
|
5105
|
+
{
|
|
5106
|
+
version: "1.5.18",
|
|
5107
|
+
time: "2025-07-03",
|
|
5108
|
+
content: `
|
|
5109
|
+
- 修改了寒冷机制,现在拥有免疫寒冷伤害的技能可以免疫获得寒冷层数
|
|
5110
|
+
- 增强了部分免疫寒冷伤害的技能,使其可以清空自身寒冷层数
|
|
5111
|
+
`.trim()
|
|
5040
5112
|
}
|
|
5041
5113
|
];
|
|
5042
5114
|
function compareVersions(a, b) {
|