koishi-plugin-ggcevo-game 1.6.66 → 1.6.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.
@@ -585,7 +585,7 @@ export declare const BattleEffectProcessor: {
585
585
  fusionExplosionTriggered: boolean;
586
586
  messages: string[];
587
587
  };
588
- handleBurnEffect: (targetBoss: any, weaponName: string, equippedWeapon: any) => {
588
+ handleBurnEffect: (targetBoss: any, weaponName: string, equippedWeapon: any, isImmuneFire: boolean) => {
589
589
  messages: string[];
590
590
  targetUpdates: {
591
591
  name: string;
package/lib/index.js CHANGED
@@ -3950,9 +3950,12 @@ var BattleEffectProcessor = {
3950
3950
  return null;
3951
3951
  }, "handleFusionCannonEffect"),
3952
3952
  // 在 BattleEffectProcessor 对象中添加以下函数
3953
- handleBurnEffect: /* @__PURE__ */ __name(function(targetBoss, weaponName, equippedWeapon) {
3953
+ handleBurnEffect: /* @__PURE__ */ __name(function(targetBoss, weaponName, equippedWeapon, isImmuneFire) {
3954
3954
  const messages = [];
3955
3955
  let burnLayerAdded = false;
3956
+ if (isImmuneFire) {
3957
+ return null;
3958
+ }
3956
3959
  const isBurnWeapon = weaponName === "焚烧枪" || weaponName === "龙息霰弹枪";
3957
3960
  if (!isBurnWeapon) {
3958
3961
  return null;
@@ -4413,7 +4416,7 @@ function applyPassiveEffects(targetBoss, activeBosses, weaponName, damage, hasCr
4413
4416
  if (fusionEffect) {
4414
4417
  messages.push(...fusionEffect.messages);
4415
4418
  }
4416
- const burnEffectResult = BattleEffectProcessor.handleBurnEffect(targetBoss, weaponName, equippedWeapon);
4419
+ const burnEffectResult = BattleEffectProcessor.handleBurnEffect(targetBoss, weaponName, equippedWeapon, isImmuneFire);
4417
4420
  if (burnEffectResult) {
4418
4421
  messages.push(...burnEffectResult.messages);
4419
4422
  if (burnEffectResult.targetUpdates) {
@@ -5770,8 +5773,7 @@ async function applyItemEffect(ctx, session, handle, itemConfig2, target) {
5770
5773
  if (itemConfig2.id === 1) {
5771
5774
  return {
5772
5775
  success: false,
5773
- message: "暂时被禁用了。",
5774
- isDefeated: false
5776
+ message: "暂时被禁用了。"
5775
5777
  };
5776
5778
  const activeSentry = await ctx.database.get("ggcevo_boss", {
5777
5779
  name: "空间站哨枪塔",
@@ -5779,8 +5781,7 @@ async function applyItemEffect(ctx, session, handle, itemConfig2, target) {
5779
5781
  });
5780
5782
  if (!activeSentry.length) return {
5781
5783
  success: false,
5782
- message: "⚠️ 目标「空间站哨枪塔」未存活",
5783
- isDefeated: false
5784
+ message: "⚠️ 目标「空间站哨枪塔」未存活"
5784
5785
  };
5785
5786
  const [SentryTower] = await ctx.database.get("ggcevo_boss", {
5786
5787
  name: "空间站哨枪塔",
@@ -5809,15 +5810,13 @@ async function applyItemEffect(ctx, session, handle, itemConfig2, target) {
5809
5810
  });
5810
5811
  return {
5811
5812
  success: true,
5812
- message: `成功引爆${itemName},对空间站哨枪塔造成${damageValue}点伤害,获得等额金币。`,
5813
- isDefeated: false
5813
+ message: `成功引爆${itemName},对空间站哨枪塔造成${damageValue}点伤害,获得等额金币。`
5814
5814
  };
5815
5815
  }
5816
5816
  if (itemConfig2.id === 2) {
5817
5817
  if (!target) return {
5818
5818
  success: false,
5819
- message: "您未选择合适的目标。",
5820
- isDefeated: false
5819
+ message: "您未选择合适的目标。"
5821
5820
  };
5822
5821
  const [targetboss] = await ctx.database.get("ggcevo_boss", {
5823
5822
  name: target,
@@ -5825,29 +5824,25 @@ async function applyItemEffect(ctx, session, handle, itemConfig2, target) {
5825
5824
  });
5826
5825
  if (!targetboss) return {
5827
5826
  success: false,
5828
- message: "无法找到指定的目标。",
5829
- isDefeated: false
5827
+ message: "无法找到指定的目标。"
5830
5828
  };
5831
5829
  if (targetboss.skills.includes("开天眼")) {
5832
5830
  return {
5833
5831
  success: false,
5834
- message: `目标免疫闪光弹,无法使用此物品。`,
5835
- isDefeated: false
5832
+ message: `目标免疫闪光弹,无法使用此物品。`
5836
5833
  };
5837
5834
  }
5838
5835
  if (targetboss.tags.includes("建筑") || targetboss.tags.includes("重型") || targetboss.skills.includes("开天眼")) {
5839
5836
  return {
5840
5837
  success: false,
5841
- message: `目标${target}拥有"${targetboss.tags.includes("建筑") ? "建筑" : "重型"}"标签,无法使用此物品。`,
5842
- isDefeated: false
5838
+ message: `目标${target}拥有"${targetboss.tags.includes("建筑") ? "建筑" : "重型"}"标签,无法使用此物品。`
5843
5839
  };
5844
5840
  }
5845
5841
  const currentCount = targetboss?.skillStacks || 0;
5846
5842
  if (currentCount <= 0) {
5847
5843
  return {
5848
5844
  success: false,
5849
- message: `目标${target}的技能层数已为0,无需使用此物品。`,
5850
- isDefeated: false
5845
+ message: `目标${target}的技能层数已为0,无需使用此物品。`
5851
5846
  };
5852
5847
  }
5853
5848
  const newCount = Math.max(0, currentCount - 10);
@@ -5859,15 +5854,13 @@ async function applyItemEffect(ctx, session, handle, itemConfig2, target) {
5859
5854
  );
5860
5855
  return {
5861
5856
  success: true,
5862
- message: `成功使用${itemName},使${target}的技能层数减少10层`,
5863
- isDefeated: false
5857
+ message: `成功使用${itemName},使${target}的技能层数减少10层`
5864
5858
  };
5865
5859
  }
5866
5860
  if (itemConfig2.id === 4) {
5867
5861
  if (!target) return {
5868
5862
  success: false,
5869
- message: "您未选择合适的目标。",
5870
- isDefeated: false
5863
+ message: "您未选择合适的目标。"
5871
5864
  };
5872
5865
  const [targetboss] = await ctx.database.get("ggcevo_boss", {
5873
5866
  name: target,
@@ -5876,14 +5869,12 @@ async function applyItemEffect(ctx, session, handle, itemConfig2, target) {
5876
5869
  if (targetboss.skills.includes("质粒增殖")) {
5877
5870
  return {
5878
5871
  success: false,
5879
- message: `目标免疫脉冲手雷,无法使用此物品。`,
5880
- isDefeated: false
5872
+ message: `目标免疫脉冲手雷,无法使用此物品。`
5881
5873
  };
5882
5874
  }
5883
5875
  if (!targetboss || targetboss?.energy === 0) return {
5884
5876
  success: false,
5885
- message: "您无法对没有能量的目标使用。",
5886
- isDefeated: false
5877
+ message: "您无法对没有能量的目标使用。"
5887
5878
  };
5888
5879
  await ctx.database.set(
5889
5880
  "ggcevo_boss",
@@ -5893,15 +5884,13 @@ async function applyItemEffect(ctx, session, handle, itemConfig2, target) {
5893
5884
  );
5894
5885
  return {
5895
5886
  success: true,
5896
- message: `成功使用${itemName},消耗${target}500点能量`,
5897
- isDefeated: false
5887
+ message: `成功使用${itemName},消耗${target}500点能量`
5898
5888
  };
5899
5889
  }
5900
5890
  if (itemConfig2.id === 9) {
5901
5891
  if (!target) return {
5902
5892
  success: false,
5903
- message: "使用燃烧弹需要指定目标。",
5904
- isDefeated: false
5893
+ message: "使用燃烧弹需要指定目标。"
5905
5894
  };
5906
5895
  const [targetBoss] = await ctx.database.get("ggcevo_boss", {
5907
5896
  name: target,
@@ -5909,15 +5898,13 @@ async function applyItemEffect(ctx, session, handle, itemConfig2, target) {
5909
5898
  });
5910
5899
  if (!targetBoss) return {
5911
5900
  success: false,
5912
- message: `目标「${target}」未存活或不存在。`,
5913
- isDefeated: false
5901
+ message: `目标「${target}」未存活或不存在。`
5914
5902
  };
5915
5903
  const aerialTargets = ["吸血蝙蝠首领", "吸血蝙蝠", "猛毒异兽", "剧毒蝙蝠"];
5916
5904
  if (aerialTargets.includes(targetBoss.name)) {
5917
5905
  return {
5918
5906
  success: false,
5919
- message: "无法对空中目标使用。",
5920
- isDefeated: false
5907
+ message: "无法对空中目标使用。"
5921
5908
  };
5922
5909
  }
5923
5910
  const immuneSkills = ["猎手异形", "环境适应"];
@@ -5926,8 +5913,7 @@ async function applyItemEffect(ctx, session, handle, itemConfig2, target) {
5926
5913
  );
5927
5914
  if (isImmune) return {
5928
5915
  success: false,
5929
- message: `目标「${target}」免疫燃烧效果。`,
5930
- isDefeated: false
5916
+ message: `目标「${target}」免疫燃烧效果。`
5931
5917
  };
5932
5918
  const baseLayers = 5;
5933
5919
  let bonusLayers = 0;
@@ -5954,15 +5940,13 @@ async function applyItemEffect(ctx, session, handle, itemConfig2, target) {
5954
5940
  const careerBonusMsg = playerCareer === "纵火狂" ? `(纵火狂使用莫洛托夫燃烧弹的效果提高100%)` : "";
5955
5941
  return {
5956
5942
  success: true,
5957
- message: `成功使用${itemName},目标「${target}」的燃烧层数增加${totalLayers}层${careerBonusMsg}`,
5958
- isDefeated: false
5943
+ message: `成功使用${itemName},目标「${target}」的燃烧层数增加${totalLayers}层${careerBonusMsg}`
5959
5944
  };
5960
5945
  }
5961
5946
  if (itemConfig2.id === 10) {
5962
5947
  if (!target) return {
5963
5948
  success: false,
5964
- message: "使用铝热炸弹需要指定目标。",
5965
- isDefeated: false
5949
+ message: "使用铝热炸弹需要指定目标。"
5966
5950
  };
5967
5951
  const [targetBoss] = await ctx.database.get("ggcevo_boss", {
5968
5952
  name: target,
@@ -5970,22 +5954,19 @@ async function applyItemEffect(ctx, session, handle, itemConfig2, target) {
5970
5954
  });
5971
5955
  if (!targetBoss) return {
5972
5956
  success: false,
5973
- message: `目标「${target}」未存活或不存在。`,
5974
- isDefeated: false
5957
+ message: `目标「${target}」未存活或不存在。`
5975
5958
  };
5976
5959
  const aerialTargets = ["吸血蝙蝠首领", "吸血蝙蝠", "猛毒异兽", "剧毒蝙蝠"];
5977
5960
  if (aerialTargets.includes(targetBoss.name)) {
5978
5961
  return {
5979
5962
  success: false,
5980
- message: "无法对空中目标使用。",
5981
- isDefeated: false
5963
+ message: "无法对空中目标使用。"
5982
5964
  };
5983
5965
  }
5984
5966
  if (targetBoss.HP === 1) {
5985
5967
  return {
5986
5968
  success: false,
5987
- message: `目标「${target}」血量已是1点,无法使用${itemName}。`,
5988
- isDefeated: false
5969
+ message: `目标「${target}」血量已是1点,无法使用${itemName}。`
5989
5970
  };
5990
5971
  }
5991
5972
  let baseDamage = 100;
@@ -6020,22 +6001,18 @@ async function applyItemEffect(ctx, session, handle, itemConfig2, target) {
6020
6001
  const lowHpMsg = newHP === 1 ? ",目标血量已降至1点" : "";
6021
6002
  return {
6022
6003
  success: true,
6023
- message: `成功使用${itemName},对${isBuilding ? "建筑目标" : "目标"}「${target}」造成${actualDamage}点伤害${lowHpMsg}${careerBonusMsg}`,
6024
- isDefeated: false
6025
- // 永远不会消灭目标
6004
+ message: `成功使用${itemName},对${isBuilding ? "建筑目标" : "目标"}「${target}」造成${actualDamage}点伤害${lowHpMsg}${careerBonusMsg}`
6026
6005
  };
6027
6006
  }
6028
6007
  return {
6029
6008
  success: false,
6030
- message: `${itemName} 无法使用。`,
6031
- isDefeated: false
6009
+ message: `${itemName} 无法使用。`
6032
6010
  };
6033
6011
  } catch (error) {
6034
6012
  console.error("物品效果处理失败:", error);
6035
6013
  return {
6036
6014
  success: false,
6037
- message: "⚠️ 物品效果处理异常,已回滚操作。",
6038
- isDefeated: false
6015
+ message: "⚠️ 物品效果处理异常,已回滚操作。"
6039
6016
  };
6040
6017
  }
6041
6018
  }
@@ -11506,25 +11483,11 @@ ${discountReason}` : "",
11506
11483
  { handle, itemId: targetItem.itemId },
11507
11484
  { quantity: newQuantity }
11508
11485
  );
11509
- const allDeadTargets = [];
11510
- if (effectResult.isDefeated) {
11511
- allDeadTargets.push(target);
11512
- }
11513
- const deathResults = await handleDeathTargets(ctx, allDeadTargets, session.username, handle);
11514
- bossEventBroadcast = deathResults.bossBroadcast;
11515
- cleanerRewardBroadcast = deathResults.cleanerBroadcast;
11516
11486
  await session.send(
11517
11487
  `✅ 成功使用 ${itemNameConfirmed}
11518
11488
  剩余数量:${newQuantity}
11519
11489
  触发效果:${effectResult.message}`
11520
11490
  );
11521
- const groupId = [...config.groupId];
11522
- await handleBroadcasts(
11523
- ctx,
11524
- groupId,
11525
- bossEventBroadcast,
11526
- cleanerRewardBroadcast
11527
- );
11528
11491
  } catch (error) {
11529
11492
  ctx.logger("GGCEVO").error(error);
11530
11493
  return "⚠️ 物品使用失败,请联系管理员";
@@ -11609,7 +11572,7 @@ ${Spacestationtechnology.map((t) => t.techname).join("、")}`;
11609
11572
  let itemBonusRate = 0;
11610
11573
  let miningRobotBonus = 0;
11611
11574
  const miningItem = warehouseItems.find((item) => item.itemId === 8);
11612
- if (miningItem) {
11575
+ if (miningItem && career.group === "辛迪加海盗") {
11613
11576
  miningRobotBonus = (10 + miningItem.bonus) / 100;
11614
11577
  itemBonusRate += miningRobotBonus;
11615
11578
  }
package/lib/utils.d.ts CHANGED
@@ -15,7 +15,6 @@ export declare function calculateTotalPower(ctx: Context, config: Config, handle
15
15
  export declare function applyItemEffect(ctx: Context, session: any, handle: string, itemConfig: any, target?: string): Promise<{
16
16
  success: boolean;
17
17
  message: string;
18
- isDefeated: boolean;
19
18
  }>;
20
19
  export declare function handleTechUpgrade(ctx: Context, handle: string, target: string): Promise<string>;
21
20
  export declare function handleWeaponUpgrade(ctx: Context, handle: string, target: string): Promise<string>;
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.6.66",
4
+ "version": "1.6.68",
5
5
  "main": "lib/index.js",
6
6
  "typings": "lib/index.d.ts",
7
7
  "files": [