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