koishi-plugin-ggcevo-game 1.3.67 → 1.3.69
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/index.js +69 -5
- package/package.json +1 -1
package/lib/index.js
CHANGED
|
@@ -550,6 +550,12 @@ function apply(ctx, config) {
|
|
|
550
550
|
effect: "攻击目标后,若有存活的其他异形,则对其造成50%的武器基础伤害",
|
|
551
551
|
exclusiveTo: "碎骨步枪",
|
|
552
552
|
isExclusive: true
|
|
553
|
+
},
|
|
554
|
+
"金刚石瞄准镜": {
|
|
555
|
+
cost: 1750,
|
|
556
|
+
effect: "对轻甲目标改为造成100%伤害,对重甲目标改为造成80%伤害",
|
|
557
|
+
exclusiveTo: "侦察步枪",
|
|
558
|
+
isExclusive: true
|
|
553
559
|
}
|
|
554
560
|
};
|
|
555
561
|
const wishConfig = {
|
|
@@ -733,7 +739,7 @@ function apply(ctx, config) {
|
|
|
733
739
|
},
|
|
734
740
|
"腐蚀胆汁": {
|
|
735
741
|
effect: 0,
|
|
736
|
-
description: "当“胆汁”达到10层后,下一次受到攻击将治愈所有存活异形1000
|
|
742
|
+
description: "当“胆汁”达到10层后,下一次受到攻击将治愈所有存活异形1000点血量并清空层数"
|
|
737
743
|
},
|
|
738
744
|
"火焰吐息": {
|
|
739
745
|
effect: 0,
|
|
@@ -742,6 +748,14 @@ function apply(ctx, config) {
|
|
|
742
748
|
"太阳耀斑": {
|
|
743
749
|
effect: 0,
|
|
744
750
|
description: "当所有子代阵亡后,自身将移除“惧寒”标签和“孤立无援”并且免疫寒冷伤害"
|
|
751
|
+
},
|
|
752
|
+
"燃烧潜地": {
|
|
753
|
+
effect: 0,
|
|
754
|
+
description: "血量降低到10%以下时触发,回复自身50%的最大生命值(触发后移除)"
|
|
755
|
+
},
|
|
756
|
+
"炼狱爆弹": {
|
|
757
|
+
effect: 0,
|
|
758
|
+
description: "每拥有一层“胆汁”,受到的伤害-5%; 若有存活的子代,则每层“胆汁”使受到的伤害额外-5%"
|
|
745
759
|
}
|
|
746
760
|
};
|
|
747
761
|
const defineBoss = /* @__PURE__ */ __name((config2) => config2, "defineBoss");
|
|
@@ -904,7 +918,7 @@ function apply(ctx, config) {
|
|
|
904
918
|
maxHP: 2e4,
|
|
905
919
|
energy: 0,
|
|
906
920
|
tags: asBossTags(["重甲", "生物", "惧寒", "重型", "异形"]),
|
|
907
|
-
passive: asPassives(["火焰异形", "庞兽狂暴", "灼烧粘液", "火焰吐息", "太阳耀斑"])
|
|
921
|
+
passive: asPassives(["火焰异形", "庞兽狂暴", "灼烧粘液", "炼狱爆弹", "火焰吐息", "太阳耀斑"])
|
|
908
922
|
},
|
|
909
923
|
minions: [
|
|
910
924
|
{
|
|
@@ -913,7 +927,7 @@ function apply(ctx, config) {
|
|
|
913
927
|
maxHP: 5e3,
|
|
914
928
|
energy: 0,
|
|
915
929
|
tags: asBossTags(["重甲", "生物", "惧寒", "异形"]),
|
|
916
|
-
passive: asPassives(["弱化形态", "火焰异形", "灼烧粘液", "腐蚀胆汁"])
|
|
930
|
+
passive: asPassives(["弱化形态", "火焰异形", "灼烧粘液", "腐蚀胆汁", "燃烧潜地"])
|
|
917
931
|
}
|
|
918
932
|
]
|
|
919
933
|
})
|
|
@@ -1312,7 +1326,9 @@ function apply(ctx, config) {
|
|
|
1312
1326
|
const MOD_EFFECTS = [
|
|
1313
1327
|
{ mod: "裂甲核心", tag: "重甲", value: 1.5 },
|
|
1314
1328
|
{ mod: "助燃核心", tag: "惧热", value: 3 },
|
|
1315
|
-
{ mod: "助燃核心", tag: "生物", value: 2 }
|
|
1329
|
+
{ mod: "助燃核心", tag: "生物", value: 2 },
|
|
1330
|
+
{ mod: "金刚石瞄准镜", tag: "轻甲", value: 1 },
|
|
1331
|
+
{ mod: "金刚石瞄准镜", tag: "重甲", value: 0.8 }
|
|
1316
1332
|
];
|
|
1317
1333
|
let totalAdditive = 0;
|
|
1318
1334
|
for (const tag of tags) {
|
|
@@ -1945,7 +1961,7 @@ function apply(ctx, config) {
|
|
|
1945
1961
|
{ name: targetBoss.name },
|
|
1946
1962
|
{ Vulnerability: newLayers }
|
|
1947
1963
|
);
|
|
1948
|
-
if (newLayers === maxLayers
|
|
1964
|
+
if (newLayers === maxLayers) {
|
|
1949
1965
|
messages.push(`☢️ 【辐射】效果达到上限(10层)`);
|
|
1950
1966
|
} else {
|
|
1951
1967
|
const layerIncrease = newLayers - currentLayers;
|
|
@@ -2434,6 +2450,43 @@ function apply(ctx, config) {
|
|
|
2434
2450
|
bileStacks
|
|
2435
2451
|
};
|
|
2436
2452
|
}, "handleBileIgnition"),
|
|
2453
|
+
// 燃烧潜地处理函数
|
|
2454
|
+
handleBurningBurrow: /* @__PURE__ */ __name(async function(ctx2, targetBoss, currentHP, maxHP) {
|
|
2455
|
+
if (!targetBoss.skills.includes("燃烧潜地") || currentHP <= 0 || // 确保血量大于0
|
|
2456
|
+
currentHP / maxHP > 0.1) {
|
|
2457
|
+
return null;
|
|
2458
|
+
}
|
|
2459
|
+
const healAmount = Math.floor(maxHP * 0.5);
|
|
2460
|
+
const updatedHP = Math.min(currentHP + healAmount, maxHP);
|
|
2461
|
+
return {
|
|
2462
|
+
updatedHP,
|
|
2463
|
+
messages: [`🔥 【燃烧潜地】生效:回复50%最大生命值(+${healAmount}HP)`],
|
|
2464
|
+
skillUpdates: [{
|
|
2465
|
+
name: targetBoss.name,
|
|
2466
|
+
remove: ["燃烧潜地"]
|
|
2467
|
+
}]
|
|
2468
|
+
};
|
|
2469
|
+
}, "handleBurningBurrow"),
|
|
2470
|
+
// 修改后的炼狱爆弹处理函数(不再使用 async/await)
|
|
2471
|
+
handleHellfireBomb: /* @__PURE__ */ __name(function(targetBoss, activeBosses) {
|
|
2472
|
+
if (!targetBoss.skills.includes("炼狱爆弹")) return null;
|
|
2473
|
+
const bileStacks = targetBoss.Skillcountpoints || 0;
|
|
2474
|
+
if (bileStacks < 1) return null;
|
|
2475
|
+
const hasLivingMinions = activeBosses.some(
|
|
2476
|
+
(boss) => boss.groupId === targetBoss.groupId && boss.type === "子代" && boss.HP > 0
|
|
2477
|
+
);
|
|
2478
|
+
const baseReductionPerStack = 0.05;
|
|
2479
|
+
const bonusReductionPerStack = hasLivingMinions ? 0.05 : 0;
|
|
2480
|
+
const totalReductionPerStack = baseReductionPerStack + bonusReductionPerStack;
|
|
2481
|
+
const reduction = bileStacks * totalReductionPerStack;
|
|
2482
|
+
const messageParts = [
|
|
2483
|
+
`💣 【炼狱爆弹】生效:当前${bileStacks}层胆汁,受到的伤害-${(reduction * 100).toFixed(0)}%`
|
|
2484
|
+
];
|
|
2485
|
+
return {
|
|
2486
|
+
damageMultiplier: -reduction,
|
|
2487
|
+
messages: messageParts
|
|
2488
|
+
};
|
|
2489
|
+
}, "handleHellfireBomb"),
|
|
2437
2490
|
// 统一处理被动技能
|
|
2438
2491
|
handlePassives: /* @__PURE__ */ __name(async function(ctx2, targetBoss, initialDamage, currentHP, maxHP, weaponName, weaponData, activeBosses, bossGroup) {
|
|
2439
2492
|
let messages = [];
|
|
@@ -2535,6 +2588,11 @@ function apply(ctx, config) {
|
|
|
2535
2588
|
totalMultiplier += giantRageResult.damageMultiplier;
|
|
2536
2589
|
messages.push(...giantRageResult.messages);
|
|
2537
2590
|
}
|
|
2591
|
+
const hellfireBombResult = this.handleHellfireBomb(targetBoss, activeBosses);
|
|
2592
|
+
if (hellfireBombResult) {
|
|
2593
|
+
totalMultiplier += hellfireBombResult.damageMultiplier;
|
|
2594
|
+
messages.push(...hellfireBombResult.messages);
|
|
2595
|
+
}
|
|
2538
2596
|
const radiationCalc = this.calculateRadiationDamage(targetBoss);
|
|
2539
2597
|
if (radiationCalc) {
|
|
2540
2598
|
totalMultiplier += radiationCalc.damageMultiplier;
|
|
@@ -2587,6 +2645,12 @@ function apply(ctx, config) {
|
|
|
2587
2645
|
messages.push(...frostRecoveryResult.messages);
|
|
2588
2646
|
skillUpdates.push(...frostRecoveryResult.skillUpdates);
|
|
2589
2647
|
}
|
|
2648
|
+
const burningBurrowResult = await this.handleBurningBurrow(ctx2, targetBoss, currentHP, maxHP);
|
|
2649
|
+
if (burningBurrowResult) {
|
|
2650
|
+
currentHP = burningBurrowResult.updatedHP;
|
|
2651
|
+
messages.push(...burningBurrowResult.messages);
|
|
2652
|
+
skillUpdates.push(...burningBurrowResult.skillUpdates);
|
|
2653
|
+
}
|
|
2590
2654
|
const moldResult = await this.handleMoldGrowth(ctx2, targetBoss, bossGroup);
|
|
2591
2655
|
if (moldResult) {
|
|
2592
2656
|
messages.push(...moldResult.messages);
|