koishi-plugin-ggcevo-game 1.5.10 → 1.5.12
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 +3 -1
- package/lib/index.js +48 -17
- package/lib/weapons.d.ts +6 -0
- package/package.json +1 -1
|
@@ -403,7 +403,7 @@ export declare const BattleEffectProcessor: {
|
|
|
403
403
|
armorReduction: number;
|
|
404
404
|
layerAdded: boolean;
|
|
405
405
|
} | null;
|
|
406
|
-
handleColdEffect: (targetBoss: any, weaponName: string) => {
|
|
406
|
+
handleColdEffect: (targetBoss: any, weaponName: string, equippedWeapon: any) => {
|
|
407
407
|
messages: string[];
|
|
408
408
|
targetUpdates: {
|
|
409
409
|
name: string;
|
|
@@ -660,4 +660,6 @@ export declare function applyPassiveEffects(targetBoss: any, activeBosses: any[]
|
|
|
660
660
|
burnLayerAdded: boolean;
|
|
661
661
|
drainFactor: number;
|
|
662
662
|
reductionAmount: number;
|
|
663
|
+
isLethal: boolean;
|
|
664
|
+
revivalTriggered: boolean;
|
|
663
665
|
};
|
package/lib/index.js
CHANGED
|
@@ -534,6 +534,12 @@ var modConfig = {
|
|
|
534
534
|
effect: "攻击消耗目标双倍能量值",
|
|
535
535
|
exclusiveTo: "弧焊枪",
|
|
536
536
|
isExclusive: true
|
|
537
|
+
},
|
|
538
|
+
"氮气压缩核心": {
|
|
539
|
+
cost: 2e3,
|
|
540
|
+
effect: "双倍叠加[寒冷]层数",
|
|
541
|
+
exclusiveTo: "零度之下",
|
|
542
|
+
isExclusive: true
|
|
537
543
|
}
|
|
538
544
|
};
|
|
539
545
|
|
|
@@ -1226,7 +1232,7 @@ var bossPool = [
|
|
|
1226
1232
|
main: {
|
|
1227
1233
|
name: "异齿猛兽首领",
|
|
1228
1234
|
type: "主宰",
|
|
1229
|
-
maxHP:
|
|
1235
|
+
maxHP: 2e4,
|
|
1230
1236
|
maxShield: 0,
|
|
1231
1237
|
maxEnergy: 0,
|
|
1232
1238
|
armor: 25,
|
|
@@ -1239,7 +1245,7 @@ var bossPool = [
|
|
|
1239
1245
|
{
|
|
1240
1246
|
name: "异齿猛兽",
|
|
1241
1247
|
type: "子代",
|
|
1242
|
-
maxHP:
|
|
1248
|
+
maxHP: 1e4,
|
|
1243
1249
|
maxShield: 0,
|
|
1244
1250
|
maxEnergy: 0,
|
|
1245
1251
|
armor: 20,
|
|
@@ -1255,7 +1261,7 @@ var bossPool = [
|
|
|
1255
1261
|
main: {
|
|
1256
1262
|
name: "寒冰王蛇",
|
|
1257
1263
|
type: "主宰",
|
|
1258
|
-
maxHP:
|
|
1264
|
+
maxHP: 2e4,
|
|
1259
1265
|
maxShield: 0,
|
|
1260
1266
|
maxEnergy: 0,
|
|
1261
1267
|
armor: 6,
|
|
@@ -1786,7 +1792,7 @@ var BattleEffectProcessor = {
|
|
|
1786
1792
|
}, "handleAlienShell"),
|
|
1787
1793
|
// 孤立无援处理(活跃Boss中仅自己时增伤20%)
|
|
1788
1794
|
handleIsolated: /* @__PURE__ */ __name(function(targetBoss, activeBosses, tempMark) {
|
|
1789
|
-
if (tempMark || targetBoss
|
|
1795
|
+
if (tempMark || targetBoss?.testTag) {
|
|
1790
1796
|
return null;
|
|
1791
1797
|
}
|
|
1792
1798
|
const isIsolated = activeBosses.length === 1 && // 活跃Boss仅1个
|
|
@@ -3161,7 +3167,7 @@ var BattleEffectProcessor = {
|
|
|
3161
3167
|
};
|
|
3162
3168
|
}, "handleRadiationEffect"),
|
|
3163
3169
|
// 统一的寒冷效果处理函数
|
|
3164
|
-
handleColdEffect: /* @__PURE__ */ __name(function(targetBoss, weaponName) {
|
|
3170
|
+
handleColdEffect: /* @__PURE__ */ __name(function(targetBoss, weaponName, equippedWeapon) {
|
|
3165
3171
|
const messages = [];
|
|
3166
3172
|
let layerAdded = false;
|
|
3167
3173
|
const currentLayers = targetBoss.coldLayers || 0;
|
|
@@ -3173,16 +3179,18 @@ var BattleEffectProcessor = {
|
|
|
3173
3179
|
}
|
|
3174
3180
|
}
|
|
3175
3181
|
let targetUpdates = null;
|
|
3182
|
+
let layerIncrement = 0;
|
|
3176
3183
|
if (weaponName === "零度之下") {
|
|
3184
|
+
const hasNitrogenCore = equippedWeapon.installedMods?.includes("氮气压缩核心");
|
|
3185
|
+
layerIncrement = hasNitrogenCore ? 2 : 1;
|
|
3177
3186
|
targetUpdates = {
|
|
3178
3187
|
name: targetBoss.name,
|
|
3179
3188
|
updates: {
|
|
3180
|
-
coldLayersChange:
|
|
3181
|
-
//
|
|
3189
|
+
coldLayersChange: layerIncrement
|
|
3190
|
+
// 使用计算后的增量
|
|
3182
3191
|
}
|
|
3183
3192
|
};
|
|
3184
|
-
|
|
3185
|
-
messages.push(`❄️【零度之下】武器效果: 获得1层「寒冷」`);
|
|
3193
|
+
messages.push(`❄️【零度之下】武器效果:获得${layerIncrement}层「寒冷」`);
|
|
3186
3194
|
layerAdded = true;
|
|
3187
3195
|
}
|
|
3188
3196
|
return {
|
|
@@ -3190,7 +3198,6 @@ var BattleEffectProcessor = {
|
|
|
3190
3198
|
targetUpdates,
|
|
3191
3199
|
buffMultiplier,
|
|
3192
3200
|
layerAdded
|
|
3193
|
-
// 返回层数增加标记
|
|
3194
3201
|
};
|
|
3195
3202
|
}, "handleColdEffect"),
|
|
3196
3203
|
// 统一的武器能量消耗处理函数(已添加模组检测)
|
|
@@ -4324,7 +4331,7 @@ function applyPassiveEffects(targetBoss, activeBosses, weaponName, damage, hasCr
|
|
|
4324
4331
|
}
|
|
4325
4332
|
radiationLayerAdded = radiationResult.layerAdded;
|
|
4326
4333
|
}
|
|
4327
|
-
const coldResult = BattleEffectProcessor.handleColdEffect(targetBoss, weaponName);
|
|
4334
|
+
const coldResult = BattleEffectProcessor.handleColdEffect(targetBoss, weaponName, equippedWeapon);
|
|
4328
4335
|
if (coldResult) {
|
|
4329
4336
|
messages.push(...coldResult.messages);
|
|
4330
4337
|
if (coldResult.buffMultiplier) {
|
|
@@ -4471,7 +4478,9 @@ function applyPassiveEffects(targetBoss, activeBosses, weaponName, damage, hasCr
|
|
|
4471
4478
|
burnLayerAdded,
|
|
4472
4479
|
// 新增燃烧叠加标记
|
|
4473
4480
|
drainFactor,
|
|
4474
|
-
reductionAmount
|
|
4481
|
+
reductionAmount,
|
|
4482
|
+
isLethal,
|
|
4483
|
+
revivalTriggered
|
|
4475
4484
|
};
|
|
4476
4485
|
}
|
|
4477
4486
|
__name(applyPassiveEffects, "applyPassiveEffects");
|
|
@@ -4977,6 +4986,20 @@ var ggcevoUpdates = [
|
|
|
4977
4986
|
content: `
|
|
4978
4987
|
- 新增攻击假人指令可自定义假人名称
|
|
4979
4988
|
`.trim()
|
|
4989
|
+
},
|
|
4990
|
+
{
|
|
4991
|
+
version: "1.5.11",
|
|
4992
|
+
time: "2025-07-02",
|
|
4993
|
+
content: `
|
|
4994
|
+
- 新增专属改装:氮气压缩核心
|
|
4995
|
+
`.trim()
|
|
4996
|
+
},
|
|
4997
|
+
{
|
|
4998
|
+
version: "1.5.12",
|
|
4999
|
+
time: "2025-07-02",
|
|
5000
|
+
content: `
|
|
5001
|
+
- 现在所有异形受到致命伤害后,若无复活技能,则会直接死亡
|
|
5002
|
+
`.trim()
|
|
4980
5003
|
}
|
|
4981
5004
|
];
|
|
4982
5005
|
function compareVersions(a, b) {
|
|
@@ -6108,6 +6131,7 @@ async function handleBossDefeatRewards(ctx, targetBoss) {
|
|
|
6108
6131
|
}
|
|
6109
6132
|
__name(handleBossDefeatRewards, "handleBossDefeatRewards");
|
|
6110
6133
|
async function handlePrimaryAttack(ctx, session, handle, config, equippedWeapon, targetBoss, activeBosses, weaponName, careerData) {
|
|
6134
|
+
let currentHP = 0;
|
|
6111
6135
|
const damageResult = await calculateTotalDamage(ctx, session, config, equippedWeapon, targetBoss, careerData);
|
|
6112
6136
|
const ignoreReduction = await handleIgnoreReductionEffects(ctx, handle, weaponName, targetBoss);
|
|
6113
6137
|
const EffectProcessor = applyPassiveEffects(targetBoss, activeBosses, weaponName, damageResult.damage, damageResult.hasCrit, ignoreReduction.ignoreRate, careerData, equippedWeapon);
|
|
@@ -6119,8 +6143,10 @@ async function handlePrimaryAttack(ctx, session, handle, config, equippedWeapon,
|
|
|
6119
6143
|
}
|
|
6120
6144
|
}
|
|
6121
6145
|
const [currentboss] = await ctx.database.get("ggcevo_boss", { name: targetBoss.name });
|
|
6122
|
-
const
|
|
6123
|
-
|
|
6146
|
+
const isDefeated = EffectProcessor.isLethal && !EffectProcessor.revivalTriggered;
|
|
6147
|
+
if (!isDefeated) {
|
|
6148
|
+
currentHP = currentboss.HP;
|
|
6149
|
+
}
|
|
6124
6150
|
return {
|
|
6125
6151
|
initialDamage,
|
|
6126
6152
|
currentHP,
|
|
@@ -6184,7 +6210,9 @@ async function handleScatterAttack(ctx, session, handle, config, equippedWeapon,
|
|
|
6184
6210
|
taskUpdates.push({ taskId: 1, count });
|
|
6185
6211
|
}
|
|
6186
6212
|
if (EffectProcessor.coldLayerAdded) {
|
|
6187
|
-
|
|
6213
|
+
const hasNitrogenCore = equippedWeapon.installedMods?.includes("氮气压缩核心");
|
|
6214
|
+
const count = hasNitrogenCore ? 2 : 1;
|
|
6215
|
+
taskUpdates.push({ taskId: 2, count });
|
|
6188
6216
|
}
|
|
6189
6217
|
if (EffectProcessor.bileDetonationTrigger) {
|
|
6190
6218
|
taskUpdates.push({ taskId: 3, count: 1 });
|
|
@@ -9360,7 +9388,9 @@ ${validTypes.join("、")}`;
|
|
|
9360
9388
|
taskUpdates.push({ taskId: 1, count });
|
|
9361
9389
|
}
|
|
9362
9390
|
if (primaryAttackResult.freezing) {
|
|
9363
|
-
|
|
9391
|
+
const hasNitrogenCore = equippedWeapon.installedMods?.includes("氮气压缩核心");
|
|
9392
|
+
const count = hasNitrogenCore ? 2 : 1;
|
|
9393
|
+
taskUpdates.push({ taskId: 2, count });
|
|
9364
9394
|
}
|
|
9365
9395
|
if (primaryAttackResult.bileStacks) {
|
|
9366
9396
|
taskUpdates.push({ taskId: 3, count: 1 });
|
|
@@ -9486,7 +9516,8 @@ ${validTypes.join("、")}`;
|
|
|
9486
9516
|
energy,
|
|
9487
9517
|
armor,
|
|
9488
9518
|
isActive: true,
|
|
9489
|
-
lastWeaponName: ""
|
|
9519
|
+
lastWeaponName: "",
|
|
9520
|
+
testTag: true
|
|
9490
9521
|
};
|
|
9491
9522
|
const activeBosses = [dummyBoss];
|
|
9492
9523
|
const weaponConfigEntry = Object.entries(weaponConfig).find(([_, c]) => c.id === equippedWeapon.weaponId);
|
package/lib/weapons.d.ts
CHANGED