koishi-plugin-ggcevo-game 1.3.66 → 1.3.68
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 +60 -5
- package/package.json +1 -1
package/lib/index.js
CHANGED
|
@@ -733,7 +733,7 @@ function apply(ctx, config) {
|
|
|
733
733
|
},
|
|
734
734
|
"腐蚀胆汁": {
|
|
735
735
|
effect: 0,
|
|
736
|
-
description: "当“胆汁”达到10层后,下一次受到攻击将治愈所有存活异形1000
|
|
736
|
+
description: "当“胆汁”达到10层后,下一次受到攻击将治愈所有存活异形1000点血量并清空层数"
|
|
737
737
|
},
|
|
738
738
|
"火焰吐息": {
|
|
739
739
|
effect: 0,
|
|
@@ -742,6 +742,14 @@ function apply(ctx, config) {
|
|
|
742
742
|
"太阳耀斑": {
|
|
743
743
|
effect: 0,
|
|
744
744
|
description: "当所有子代阵亡后,自身将移除“惧寒”标签和“孤立无援”并且免疫寒冷伤害"
|
|
745
|
+
},
|
|
746
|
+
"燃烧潜地": {
|
|
747
|
+
effect: 0,
|
|
748
|
+
description: "血量降低到10%以下时触发,回复自身50%的最大生命值(触发后移除)"
|
|
749
|
+
},
|
|
750
|
+
"炼狱爆弹": {
|
|
751
|
+
effect: 0,
|
|
752
|
+
description: "每拥有一层“胆汁”,受到的伤害-5%; 若有存活的子代,则每层“胆汁”使受到的伤害额外-5%"
|
|
745
753
|
}
|
|
746
754
|
};
|
|
747
755
|
const defineBoss = /* @__PURE__ */ __name((config2) => config2, "defineBoss");
|
|
@@ -904,7 +912,7 @@ function apply(ctx, config) {
|
|
|
904
912
|
maxHP: 2e4,
|
|
905
913
|
energy: 0,
|
|
906
914
|
tags: asBossTags(["重甲", "生物", "惧寒", "重型", "异形"]),
|
|
907
|
-
passive: asPassives(["火焰异形", "庞兽狂暴", "灼烧粘液", "火焰吐息", "太阳耀斑"])
|
|
915
|
+
passive: asPassives(["火焰异形", "庞兽狂暴", "灼烧粘液", "炼狱爆弹", "火焰吐息", "太阳耀斑"])
|
|
908
916
|
},
|
|
909
917
|
minions: [
|
|
910
918
|
{
|
|
@@ -913,7 +921,7 @@ function apply(ctx, config) {
|
|
|
913
921
|
maxHP: 5e3,
|
|
914
922
|
energy: 0,
|
|
915
923
|
tags: asBossTags(["重甲", "生物", "惧寒", "异形"]),
|
|
916
|
-
passive: asPassives(["弱化形态", "火焰异形", "灼烧粘液", "腐蚀胆汁"])
|
|
924
|
+
passive: asPassives(["弱化形态", "火焰异形", "灼烧粘液", "腐蚀胆汁", "燃烧潜地"])
|
|
917
925
|
}
|
|
918
926
|
]
|
|
919
927
|
})
|
|
@@ -1945,7 +1953,7 @@ function apply(ctx, config) {
|
|
|
1945
1953
|
{ name: targetBoss.name },
|
|
1946
1954
|
{ Vulnerability: newLayers }
|
|
1947
1955
|
);
|
|
1948
|
-
if (newLayers === maxLayers
|
|
1956
|
+
if (newLayers === maxLayers) {
|
|
1949
1957
|
messages.push(`☢️ 【辐射】效果达到上限(10层)`);
|
|
1950
1958
|
} else {
|
|
1951
1959
|
const layerIncrease = newLayers - currentLayers;
|
|
@@ -2434,6 +2442,43 @@ function apply(ctx, config) {
|
|
|
2434
2442
|
bileStacks
|
|
2435
2443
|
};
|
|
2436
2444
|
}, "handleBileIgnition"),
|
|
2445
|
+
// 燃烧潜地处理函数
|
|
2446
|
+
handleBurningBurrow: /* @__PURE__ */ __name(async function(ctx2, targetBoss, currentHP, maxHP) {
|
|
2447
|
+
if (!targetBoss.skills.includes("燃烧潜地") || currentHP <= 0 || // 确保血量大于0
|
|
2448
|
+
currentHP / maxHP > 0.1) {
|
|
2449
|
+
return null;
|
|
2450
|
+
}
|
|
2451
|
+
const healAmount = Math.floor(maxHP * 0.5);
|
|
2452
|
+
const updatedHP = Math.min(currentHP + healAmount, maxHP);
|
|
2453
|
+
return {
|
|
2454
|
+
updatedHP,
|
|
2455
|
+
messages: [`🔥 【燃烧潜地】生效:回复50%最大生命值(+${healAmount}HP)`],
|
|
2456
|
+
skillUpdates: [{
|
|
2457
|
+
name: targetBoss.name,
|
|
2458
|
+
remove: ["燃烧潜地"]
|
|
2459
|
+
}]
|
|
2460
|
+
};
|
|
2461
|
+
}, "handleBurningBurrow"),
|
|
2462
|
+
// 修改后的炼狱爆弹处理函数(不再使用 async/await)
|
|
2463
|
+
handleHellfireBomb: /* @__PURE__ */ __name(function(targetBoss, activeBosses) {
|
|
2464
|
+
if (!targetBoss.skills.includes("炼狱爆弹")) return null;
|
|
2465
|
+
const bileStacks = targetBoss.Skillcountpoints || 0;
|
|
2466
|
+
if (bileStacks < 1) return null;
|
|
2467
|
+
const hasLivingMinions = activeBosses.some(
|
|
2468
|
+
(boss) => boss.groupId === targetBoss.groupId && boss.type === "子代" && boss.HP > 0
|
|
2469
|
+
);
|
|
2470
|
+
const baseReductionPerStack = 0.05;
|
|
2471
|
+
const bonusReductionPerStack = hasLivingMinions ? 0.05 : 0;
|
|
2472
|
+
const totalReductionPerStack = baseReductionPerStack + bonusReductionPerStack;
|
|
2473
|
+
const reduction = bileStacks * totalReductionPerStack;
|
|
2474
|
+
const messageParts = [
|
|
2475
|
+
`💣 【炼狱爆弹】生效:当前${bileStacks}层胆汁,受到的伤害-${(reduction * 100).toFixed(0)}%`
|
|
2476
|
+
];
|
|
2477
|
+
return {
|
|
2478
|
+
damageMultiplier: -reduction,
|
|
2479
|
+
messages: messageParts
|
|
2480
|
+
};
|
|
2481
|
+
}, "handleHellfireBomb"),
|
|
2437
2482
|
// 统一处理被动技能
|
|
2438
2483
|
handlePassives: /* @__PURE__ */ __name(async function(ctx2, targetBoss, initialDamage, currentHP, maxHP, weaponName, weaponData, activeBosses, bossGroup) {
|
|
2439
2484
|
let messages = [];
|
|
@@ -2535,6 +2580,11 @@ function apply(ctx, config) {
|
|
|
2535
2580
|
totalMultiplier += giantRageResult.damageMultiplier;
|
|
2536
2581
|
messages.push(...giantRageResult.messages);
|
|
2537
2582
|
}
|
|
2583
|
+
const hellfireBombResult = this.handleHellfireBomb(targetBoss, activeBosses);
|
|
2584
|
+
if (hellfireBombResult) {
|
|
2585
|
+
totalMultiplier += hellfireBombResult.damageMultiplier;
|
|
2586
|
+
messages.push(...hellfireBombResult.messages);
|
|
2587
|
+
}
|
|
2538
2588
|
const radiationCalc = this.calculateRadiationDamage(targetBoss);
|
|
2539
2589
|
if (radiationCalc) {
|
|
2540
2590
|
totalMultiplier += radiationCalc.damageMultiplier;
|
|
@@ -2587,6 +2637,12 @@ function apply(ctx, config) {
|
|
|
2587
2637
|
messages.push(...frostRecoveryResult.messages);
|
|
2588
2638
|
skillUpdates.push(...frostRecoveryResult.skillUpdates);
|
|
2589
2639
|
}
|
|
2640
|
+
const burningBurrowResult = await this.handleBurningBurrow(ctx2, targetBoss, currentHP, maxHP);
|
|
2641
|
+
if (burningBurrowResult) {
|
|
2642
|
+
currentHP = burningBurrowResult.updatedHP;
|
|
2643
|
+
messages.push(...burningBurrowResult.messages);
|
|
2644
|
+
skillUpdates.push(...burningBurrowResult.skillUpdates);
|
|
2645
|
+
}
|
|
2590
2646
|
const moldResult = await this.handleMoldGrowth(ctx2, targetBoss, bossGroup);
|
|
2591
2647
|
if (moldResult) {
|
|
2592
2648
|
messages.push(...moldResult.messages);
|
|
@@ -2656,7 +2712,6 @@ function apply(ctx, config) {
|
|
|
2656
2712
|
const gammaRadResult = await this.handleGammaRadiation(ctx2, targetBoss, weaponName);
|
|
2657
2713
|
if (gammaRadResult) {
|
|
2658
2714
|
messages.push(...gammaRadResult.messages);
|
|
2659
|
-
skillUpdates.push(...gammaRadResult.skillUpdates);
|
|
2660
2715
|
radiationApplied = gammaRadResult.radiationApplied;
|
|
2661
2716
|
}
|
|
2662
2717
|
const bileStackResult = await this.handleBileStacking(ctx2, targetBoss, skipBileStacking);
|