koishi-plugin-ggcevo-game 1.4.14 → 1.4.16

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.
@@ -38,7 +38,7 @@ export declare const PassiveHandler: {
38
38
  messages: string[];
39
39
  skillUpdates: {
40
40
  name: any;
41
- remove: ("弱化形态" | "异形甲壳" | "孤立无援" | "冰霜回复" | "冰霜进化" | "冰霜环绕" | "寒霜地狱" | "应激甲壳I" | "应激甲壳II" | "求生本能I" | "求生本能II" | "冷适应" | "感染空间站" | "病毒云" | "霉菌滋生" | "岗哨机枪" | "结构装甲" | "吸血唾液" | "进食" | "嗜血狂暴" | "吐血" | "电能导体" | "超导体" | "能量虹吸" | "能源虹吸" | "电能立场" | "电能冲击波" | "脉冲" | "能量黑洞" | "火焰异形" | "庞兽狂暴" | "灼烧粘液" | "腐蚀胆汁" | "火焰吐息" | "太阳耀斑" | "燃烧潜地" | "炼狱爆弹" | "猎手异形" | "狂暴" | "伪装" | "致命一击")[];
41
+ remove: ("冰霜环绕" | "寒霜地狱" | "冰霜回复" | "弱化形态" | "异形甲壳" | "孤立无援" | "冰霜进化" | "应激甲壳I" | "应激甲壳II" | "求生本能I" | "求生本能II" | "冷适应" | "感染空间站" | "病毒云" | "霉菌滋生" | "岗哨机枪" | "结构装甲" | "吸血唾液" | "进食" | "嗜血狂暴" | "吐血" | "电能导体" | "超导体" | "能量虹吸" | "能源虹吸" | "电能立场" | "电能冲击波" | "脉冲" | "能量黑洞" | "火焰异形" | "庞兽狂暴" | "灼烧粘液" | "腐蚀胆汁" | "火焰吐息" | "太阳耀斑" | "燃烧潜地" | "炼狱爆弹" | "猎手异形" | "狂暴" | "伪装" | "致命一击")[];
42
42
  }[];
43
43
  };
44
44
  handleInfectedStation: (ctx: Context, targetBoss: any) => Promise<{
@@ -151,7 +151,7 @@ export declare const PassiveHandler: {
151
151
  damageMultiplier: number;
152
152
  messages: string[];
153
153
  };
154
- handleHunterAlien: (ctx: Context, targetBoss: any, weaponName: string) => Promise<{
154
+ handleHunterAlien: (targetBoss: any, weaponName: string, activeBosses: any[]) => Promise<{
155
155
  immune: boolean;
156
156
  messages: string[];
157
157
  damageMultiplier?: undefined;
@@ -181,7 +181,7 @@ export declare const PassiveHandler: {
181
181
  handlePulseDisruptor: (ctx: Context, targetBoss: any, weaponName: string) => Promise<{
182
182
  messages: string[];
183
183
  }>;
184
- handlePassives: (ctx: Context, handle: string, targetBoss: any, initialDamage: number, currentHP: number, maxHP: number, weaponName: string, weaponData: any, activeBosses: any[], bossGroup: any) => Promise<{
184
+ handlePassives: (ctx: Context, handle: string, targetBoss: any, initialDamage: number, currentHP: number, maxHP: number, weaponName: string, weaponData: any, bossGroup: any) => Promise<{
185
185
  currentHP: any;
186
186
  messages: any;
187
187
  skillUpdates: any[];
package/lib/index.js CHANGED
@@ -211,7 +211,6 @@ var weaponConfig = {
211
211
  isantiair: true,
212
212
  tagEffects: {
213
213
  "护盾": 2,
214
- "轻甲": 0.5,
215
214
  "重甲": 0.2
216
215
  }
217
216
  },
@@ -625,7 +624,7 @@ var syndicatePirateConfig = [
625
624
  },
626
625
  {
627
626
  professionName: "猩红杀手",
628
- effect: "使用“侦察步枪”造成的伤害+15%; 解锁DSR-55反器材步枪(传奇)购买权限",
627
+ effect: "“侦察步枪”攻击伤害+15%; 使用“侦察步枪”攻击时无视目标20%的减伤效果; 解锁DSR-55反器材步枪(传奇)购买权限",
629
628
  requirements: "“侦察步枪”武器等级≥3级",
630
629
  Jobtransfer: true,
631
630
  costredcrystal: 30
@@ -2838,7 +2837,7 @@ var PassiveHandler = {
2838
2837
  { name: targetBoss.name },
2839
2838
  { energy: newEnergy }
2840
2839
  );
2841
- messages.push(`⚡ 【弧焊枪】触发特效:消耗目标200点能量`);
2840
+ messages.push(`⚡ 【弧焊枪】武器效果:消耗目标200点能量`);
2842
2841
  } else {
2843
2842
  return null;
2844
2843
  }
@@ -2859,7 +2858,7 @@ var PassiveHandler = {
2859
2858
  { energy: newEnergy }
2860
2859
  );
2861
2860
  targetBoss.energy = newEnergy;
2862
- messages.push(`⚡ 【DG-3电弧步枪】生效:消耗目标${drainAmount}点能量`);
2861
+ messages.push(`⚡ 【DG-3电弧步枪】武器效果:消耗目标${drainAmount}点能量`);
2863
2862
  return { drainAmount };
2864
2863
  }, "handleArcRifleEffect"),
2865
2864
  // 庞兽狂暴处理(血量低于50%时减伤)
@@ -3119,7 +3118,7 @@ var PassiveHandler = {
3119
3118
  };
3120
3119
  }, "handleHellfireBomb"),
3121
3120
  // 猎手异形处理(Hunter Alien)
3122
- handleHunterAlien: /* @__PURE__ */ __name(async function(ctx, targetBoss, weaponName) {
3121
+ handleHunterAlien: /* @__PURE__ */ __name(async function(targetBoss, weaponName, activeBosses) {
3123
3122
  if (!targetBoss.skills.includes("猎手异形")) return null;
3124
3123
  if (weaponName === "焚烧枪" || weaponName === "零度之下") {
3125
3124
  return {
@@ -3127,7 +3126,6 @@ var PassiveHandler = {
3127
3126
  messages: [`🛡️ 【猎手异形】生效:免疫${weaponName === "焚烧枪" ? "火焰" : "寒冷"}伤害`]
3128
3127
  };
3129
3128
  }
3130
- const activeBosses = await ctx.database.get("ggcevo_boss", { isActive: true });
3131
3129
  const otherAlive = activeBosses.some(
3132
3130
  (boss) => boss.groupId === targetBoss.groupId && boss.name !== targetBoss.name && boss.HP > 0
3133
3131
  );
@@ -3145,7 +3143,7 @@ var PassiveHandler = {
3145
3143
  if (currentHP / maxHP < 0.5) {
3146
3144
  return {
3147
3145
  damageMultiplier: -0.5,
3148
- messages: [`😠 【狂暴】生效:血量低于50%,受到的伤害-50%`]
3146
+ messages: [`🔥 【狂暴】生效:血量低于50%,受到的伤害-50%`]
3149
3147
  };
3150
3148
  }
3151
3149
  return null;
@@ -3201,16 +3199,16 @@ var PassiveHandler = {
3201
3199
  let messages = [];
3202
3200
  if (weaponName === "光剑") {
3203
3201
  ignoreEffects.push(1);
3204
- messages.push(`⚔️ 【光剑】特效:无视目标100%减伤效果`);
3202
+ messages.push(`⚔️ 【光剑】武器效果:无视目标100%减伤效果`);
3205
3203
  } else if (weaponName === "M4AE脉冲步枪") {
3206
3204
  ignoreEffects.push(0.8);
3207
- messages.push(`🔫 【M4AE脉冲步枪】特效:无视目标80%减伤效果`);
3205
+ messages.push(`🔫 【M4AE脉冲步枪】武器效果:无视目标80%减伤效果`);
3208
3206
  }
3209
3207
  if (weaponName !== "光剑" && weaponName !== "M4AE脉冲步枪") {
3210
3208
  const particleEffect = PassiveHandler.handleParticlePhaseEffect(targetBoss, weaponName);
3211
3209
  if (particleEffect > 0) {
3212
3210
  ignoreEffects.push(particleEffect);
3213
- messages.push(`⚡ 【粒子相位枪】特效:无视护盾目标${particleEffect * 100}%减伤效果`);
3211
+ messages.push(`⚡ 【粒子相位枪】武器效果:无视护盾目标${particleEffect * 100}%减伤效果`);
3214
3212
  }
3215
3213
  const weaponConfigData = weaponConfig[weaponName];
3216
3214
  if (weaponConfigData) {
@@ -3239,9 +3237,14 @@ var PassiveHandler = {
3239
3237
  ignoreEffects.push(radarEffect);
3240
3238
  messages.push(`🛰️ 【雷达面罩】生效:无视目标${radarEffect * 100}%减伤效果`);
3241
3239
  }
3240
+ if (careerData?.career === "猩红杀手" && weaponName === "侦察步枪") {
3241
+ const scarletEffect = 0.2;
3242
+ ignoreEffects.push(scarletEffect);
3243
+ messages.push(`🎯 【猩红杀手】职业效果:无视目标${scarletEffect * 100}%减伤效果`);
3244
+ }
3242
3245
  }
3243
3246
  } catch (error) {
3244
- console.error("检查雷达面罩效果时出错:", error);
3247
+ console.error("出错:", error);
3245
3248
  }
3246
3249
  if (ignoreEffects.length === 0) {
3247
3250
  return null;
@@ -3270,12 +3273,12 @@ var PassiveHandler = {
3270
3273
  targetBoss.Skillcountpoints = newCount;
3271
3274
  return {
3272
3275
  messages: [
3273
- `⚡ 【脉冲扰乱枪】特效:减少${targetBoss.name} 2层技能计数(当前${newCount}层)`
3276
+ `⚡ 【脉冲扰乱枪】武器效果:减少${targetBoss.name} 2层技能计数(当前${newCount}层)`
3274
3277
  ]
3275
3278
  };
3276
3279
  }, "handlePulseDisruptor"),
3277
3280
  // 修改后的伤害处理函数
3278
- handlePassives: /* @__PURE__ */ __name(async function(ctx, handle, targetBoss, initialDamage, currentHP, maxHP, weaponName, weaponData, activeBosses, bossGroup) {
3281
+ handlePassives: /* @__PURE__ */ __name(async function(ctx, handle, targetBoss, initialDamage, currentHP, maxHP, weaponName, weaponData, bossGroup) {
3279
3282
  let messages = [];
3280
3283
  let skillUpdates = [];
3281
3284
  let buffMultiplier = 0;
@@ -3283,6 +3286,7 @@ var PassiveHandler = {
3283
3286
  let radiationApplied = false;
3284
3287
  let freezing = false;
3285
3288
  let bileStacks = 0;
3289
+ const activeBosses = await ctx.database.get("ggcevo_boss", { isActive: true });
3286
3290
  const solarFlareResult = await this.handleSolarFlare(ctx, targetBoss, weaponName);
3287
3291
  if (solarFlareResult.immune) {
3288
3292
  return {
@@ -3347,7 +3351,7 @@ var PassiveHandler = {
3347
3351
  initialDamage: 0
3348
3352
  };
3349
3353
  }
3350
- const hunterImmune = await this.handleHunterAlien(ctx, targetBoss, weaponName);
3354
+ const hunterImmune = await this.handleHunterAlien(targetBoss, weaponName, activeBosses);
3351
3355
  if (hunterImmune?.immune) {
3352
3356
  return {
3353
3357
  currentHP: targetBoss.HP,
@@ -3817,7 +3821,6 @@ async function handlePrimaryAttack(ctx, session, config, handle, equippedWeapon,
3817
3821
  maxHP,
3818
3822
  weaponName,
3819
3823
  weaponData,
3820
- activeBosses,
3821
3824
  bossGroup
3822
3825
  );
3823
3826
  const currentHP = passiveResult.currentHP;
@@ -3872,7 +3875,6 @@ async function handleScatterAttack(ctx, session, config, handle, equippedWeapon,
3872
3875
  getBossMaxHP(secondaryTarget.name),
3873
3876
  weaponName,
3874
3877
  weaponData,
3875
- secondaryTargets,
3876
3878
  bossGroup
3877
3879
  );
3878
3880
  const actualDamage = Math.min(passiveResult.initialDamage, secondaryTarget.HP);
@@ -6112,14 +6114,16 @@ ${Object.keys(categoryStats).join("、")}`;
6112
6114
  "------------------"
6113
6115
  ].filter(Boolean).join("\n");
6114
6116
  });
6115
- const shouldShowDiscountInfo = totalDiscount > 0 && !isLegendaryCategory;
6116
- const discountInfo = shouldShowDiscountInfo ? `💰 当前折扣:
6117
+ const permissionNotice = isLegendaryCategory ? '⚠️ 注意:购买传奇武器需要"传奇武器购买权限"' : null;
6118
+ const discountInfo = totalDiscount > 0 && !isLegendaryCategory ? `💰 当前折扣:
6117
6119
  ${discountDetails.length ? `${discountDetails.join("\n")}` : ""}` : null;
6118
6120
  return [
6119
6121
  `🏪 咕咕武器库 - ${category} 🏪`,
6120
6122
  '使用"购买 武器名称"指令进行购买',
6123
+ permissionNotice,
6124
+ // 新增权限提示
6121
6125
  discountInfo,
6122
- // 传奇武器分类时不显示此信息
6126
+ // 原有折扣信息
6123
6127
  "====================",
6124
6128
  ...items,
6125
6129
  items.length === 0 ? "⚠️ 该分类下暂无可用武器" : ""
@@ -6413,7 +6417,7 @@ ${validTypes.join("、")}`;
6413
6417
  }
6414
6418
  return `❌ 未找到 "${target}" 对应的武器或科技(科技仅限人类联盟阵营升级)`;
6415
6419
  });
6416
- ctx.command("ggcevo/改装 <weapon> [mod]", "安装武器模块").action(async ({ session }, weapon, mod) => {
6420
+ ctx.command("ggcevo/改装 <weapon> [mod]", "安装武器模块").alias("改造").action(async ({ session }, weapon, mod) => {
6417
6421
  const [profile] = await ctx.database.get("sc2arcade_player", { userId: session.userId });
6418
6422
  if (!profile) return "🔒 需要先绑定游戏句柄。";
6419
6423
  const handle = `${profile.regionId}-S2-${profile.realmId}-${profile.profileId}`;
@@ -7282,10 +7286,10 @@ ${validTypes.join("、")}`;
7282
7286
  if (!category) {
7283
7287
  const discountLines = [];
7284
7288
  if (isComputerExpert) {
7285
- discountLines.push("💻 计算机专家:设备工具类物品50%折扣");
7289
+ discountLines.push("💻 计算机专家职业:设备工具类物品50%折扣");
7286
7290
  }
7287
7291
  if (isSaboteur) {
7288
- discountLines.push("💣 破坏者:爆破物类物品50%折扣");
7292
+ discountLines.push("💣 破坏者职业:爆破物类物品50%折扣");
7289
7293
  }
7290
7294
  return [
7291
7295
  "🏴 辛迪加黑市 🏴",
@@ -7301,6 +7305,8 @@ ${validTypes.join("、")}`;
7301
7305
  }
7302
7306
  const normalizedCategory = Object.keys(categoryStats).find((c) => c === category);
7303
7307
  if (!normalizedCategory) return `无效分类,可用:${Object.keys(categoryStats).join("、")}`;
7308
+ const isLegendaryCategory = normalizedCategory === "传奇武器";
7309
+ const legendaryNotice = isLegendaryCategory ? "⚠️ 注意:购买传奇武器需要对应的辛迪加海盗职业权限" : null;
7304
7310
  const items = [
7305
7311
  ...Object.entries(weaponConfig).filter(
7306
7312
  ([_, config2]) => config2.category === normalizedCategory && config2.redCrystalCost > 0
@@ -7368,17 +7374,19 @@ ${validTypes.join("、")}`;
7368
7374
  if (isSaboteur && normalizedCategory === "爆破物") {
7369
7375
  discountInfo = [
7370
7376
  "💰 当前折扣:",
7371
- "💣 破坏者:爆破物类物品50%折扣"
7377
+ "💣 破坏者职业:爆破物类物品50%折扣"
7372
7378
  ];
7373
7379
  } else if (isComputerExpert && normalizedCategory === "设备工具") {
7374
7380
  discountInfo = [
7375
7381
  "💰 当前折扣:",
7376
- "💻 计算机专家:设备工具类物品50%折扣"
7382
+ "💻 计算机专家职业:设备工具类物品50%折扣"
7377
7383
  ];
7378
7384
  }
7379
7385
  return [
7380
7386
  `🏴 辛迪加黑市 - ${normalizedCategory} 🏴`,
7381
7387
  '使用"订购 物品名称"进行购买(仅消耗红晶)',
7388
+ legendaryNotice,
7389
+ // 新增传奇武器权限提示
7382
7390
  ...discountInfo,
7383
7391
  "====================",
7384
7392
  ...items
@@ -7479,10 +7487,10 @@ ${validTypes.join("、")}`;
7479
7487
  const buildResponse = /* @__PURE__ */ __name(async () => {
7480
7488
  const discountLines = [];
7481
7489
  if (isSaboteurDiscount) {
7482
- discountLines.push("💣 破坏者:爆破物类物品50%折扣");
7490
+ discountLines.push("💣 破坏者职业:爆破物类物品50%折扣");
7483
7491
  }
7484
7492
  if (isComputerExpertDiscount) {
7485
- discountLines.push("💻 计算机专家:设备工具类物品50%折扣");
7493
+ discountLines.push("💻 计算机专家职业:设备工具类物品50%折扣");
7486
7494
  }
7487
7495
  const priceInfo = [
7488
7496
  `消耗红晶:${finalCost}${discountApplied ? ` (原价${originalPrice})` : ""}`
@@ -7752,7 +7760,7 @@ ${Spacestationtechnology.map((t) => t.techname).join("、")}`;
7752
7760
  }
7753
7761
  reportLines.push(rewardLine);
7754
7762
  if (tech.level >= 3) {
7755
- reportLines.push(`🔧 采掘系统科技Lv.${tech.level}(矿骡):+${multiplier * 100}%金币`);
7763
+ reportLines.push(`⚙️ 采掘系统科技Lv.${tech.level}(矿骡):+${multiplier * 100}%金币`);
7756
7764
  }
7757
7765
  reportLines.push(`🏆 历史总挖矿收益:${record.totalMined + total}金币`);
7758
7766
  reportLines.push("💡 已自动开始下一轮挖矿");
package/lib/weapons.d.ts CHANGED
@@ -176,7 +176,6 @@ export declare const weaponConfig: {
176
176
  isantiair: boolean;
177
177
  tagEffects: {
178
178
  护盾: number;
179
- 轻甲: number;
180
179
  重甲: number;
181
180
  };
182
181
  };
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.4.14",
4
+ "version": "1.4.16",
5
5
  "main": "lib/index.js",
6
6
  "typings": "lib/index.d.ts",
7
7
  "files": [