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.
Files changed (2) hide show
  1. package/lib/index.js +60 -5
  2. 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 && currentLayers < 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);
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.3.66",
4
+ "version": "1.3.68",
5
5
  "main": "lib/index.js",
6
6
  "typings": "lib/index.d.ts",
7
7
  "files": [