koishi-plugin-ggcevo-game 1.4.13 → 1.4.15

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<{
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
  },
@@ -427,7 +426,8 @@ var SyndicatedItems = {
427
426
  description: "一种小型的机械装置,用于吸收空间站能量并进行爆破",
428
427
  price: 0,
429
428
  redCrystalCost: 30,
430
- effects: "当主宰为“空间站感染虫”时才能使用,对“空间站哨枪塔”造成其当前血量值的伤害(获得等同于伤害值的金币)"
429
+ condition: "空间站哨枪塔存活",
430
+ effects: "对空间站哨枪塔造成其当前血量值的伤害(获得等同于伤害值的金币)"
431
431
  },
432
432
  "闪光弹": {
433
433
  id: 2,
@@ -435,7 +435,8 @@ var SyndicatedItems = {
435
435
  description: "非致命军用炸药",
436
436
  price: 75,
437
437
  redCrystalCost: 0,
438
- effects: "对目标使用后,重置其技能计数(无法对重型和建筑目标使用)"
438
+ condition: "目标无建筑标签和重型标签",
439
+ effects: "重置目标的技能计数"
439
440
  },
440
441
  "CRED-17": {
441
442
  id: 3,
@@ -443,7 +444,8 @@ var SyndicatedItems = {
443
444
  description: "一个小型辛迪加机器人,可以破坏电子银行账户",
444
445
  price: 0,
445
446
  redCrystalCost: 60,
446
- effects: "此物品存放于仓库自动生效(阵营必须为辛迪加海盗)。每日签到金币奖励+50%,每有一名人类联盟玩家额外增加1%(至多额外增加50%)"
447
+ condition: "辛迪加海盗阵营",
448
+ effects: "每日签到金币奖励+50%,每有一名人类联盟玩家额外增加1%(至多额外增加50%)"
447
449
  },
448
450
  "脉冲手雷": {
449
451
  id: 4,
@@ -451,7 +453,8 @@ var SyndicatedItems = {
451
453
  description: "电磁脉冲干扰机械目标和灵能目标",
452
454
  price: 75,
453
455
  redCrystalCost: 0,
454
- effects: "对目标使用后,消耗其500点能量"
456
+ condition: "目标拥有能量",
457
+ effects: "消耗目标500点能量"
455
458
  },
456
459
  "MP3播放器": {
457
460
  id: 5,
@@ -459,7 +462,8 @@ var SyndicatedItems = {
459
462
  description: "这是一款未来派音乐设备",
460
463
  price: 0,
461
464
  redCrystalCost: 10,
462
- effects: "此物品存放于仓库自动生效(阵营必须为辛迪加海盗)。主动发起的PK对战结果为失败时上交给对方的金币-50%"
465
+ condition: "辛迪加海盗阵营",
466
+ effects: "主动发起的PK对战结果为失败时上交给对方的金币-50%"
463
467
  },
464
468
  "雷达面罩": {
465
469
  id: 6,
@@ -467,7 +471,8 @@ var SyndicatedItems = {
467
471
  description: "一个复杂的雷达面罩,用于远距离侦察或探测隐藏单位",
468
472
  price: 0,
469
473
  redCrystalCost: 25,
470
- effects: "此物品存放于仓库自动生效(阵营必须为辛迪加海盗)。使用武器攻击时,无视目标10%的减伤效果"
474
+ condition: "辛迪加海盗阵营",
475
+ effects: "使用武器攻击时,无视目标10%的减伤效果"
471
476
  },
472
477
  "气喇叭": {
473
478
  id: 7,
@@ -475,7 +480,8 @@ var SyndicatedItems = {
475
480
  description: "气喇叭一直被用于展示纯粹的勇气",
476
481
  price: 0,
477
482
  redCrystalCost: 30,
478
- effects: "此物品存放于仓库自动生效(阵营必须为辛迪加海盗)。主动发起的PK对战结果为胜利时将获得辛迪加海盗总部发放的等额金币作为奖励"
483
+ condition: "辛迪加海盗阵营",
484
+ effects: "主动发起的PK对战结果为胜利时将获得辛迪加海盗总部发放的等额抢夺金币作为奖励"
479
485
  }
480
486
  };
481
487
  var initDefaultItems = {
@@ -618,7 +624,7 @@ var syndicatePirateConfig = [
618
624
  },
619
625
  {
620
626
  professionName: "猩红杀手",
621
- effect: "使用“侦察步枪”造成的伤害+15%; 解锁DSR-55反器材步枪(传奇)购买权限",
627
+ effect: "“侦察步枪”攻击伤害+15%; 使用“侦察步枪”攻击时无视目标20%的减伤效果; 解锁DSR-55反器材步枪(传奇)购买权限",
622
628
  requirements: "“侦察步枪”武器等级≥3级",
623
629
  Jobtransfer: true,
624
630
  costredcrystal: 30
@@ -2831,7 +2837,7 @@ var PassiveHandler = {
2831
2837
  { name: targetBoss.name },
2832
2838
  { energy: newEnergy }
2833
2839
  );
2834
- messages.push(`⚡ 【弧焊枪】触发特效:消耗目标200点能量`);
2840
+ messages.push(`⚡ 【弧焊枪】武器效果:消耗目标200点能量`);
2835
2841
  } else {
2836
2842
  return null;
2837
2843
  }
@@ -2852,7 +2858,7 @@ var PassiveHandler = {
2852
2858
  { energy: newEnergy }
2853
2859
  );
2854
2860
  targetBoss.energy = newEnergy;
2855
- messages.push(`⚡ 【DG-3电弧步枪】生效:消耗目标${drainAmount}点能量`);
2861
+ messages.push(`⚡ 【DG-3电弧步枪】武器效果:消耗目标${drainAmount}点能量`);
2856
2862
  return { drainAmount };
2857
2863
  }, "handleArcRifleEffect"),
2858
2864
  // 庞兽狂暴处理(血量低于50%时减伤)
@@ -3194,16 +3200,16 @@ var PassiveHandler = {
3194
3200
  let messages = [];
3195
3201
  if (weaponName === "光剑") {
3196
3202
  ignoreEffects.push(1);
3197
- messages.push(`⚔️ 【光剑】特效:无视目标100%减伤效果`);
3203
+ messages.push(`⚔️ 【光剑】武器效果:无视目标100%减伤效果`);
3198
3204
  } else if (weaponName === "M4AE脉冲步枪") {
3199
3205
  ignoreEffects.push(0.8);
3200
- messages.push(`🔫 【M4AE脉冲步枪】特效:无视目标80%减伤效果`);
3206
+ messages.push(`🔫 【M4AE脉冲步枪】武器效果:无视目标80%减伤效果`);
3201
3207
  }
3202
3208
  if (weaponName !== "光剑" && weaponName !== "M4AE脉冲步枪") {
3203
3209
  const particleEffect = PassiveHandler.handleParticlePhaseEffect(targetBoss, weaponName);
3204
3210
  if (particleEffect > 0) {
3205
3211
  ignoreEffects.push(particleEffect);
3206
- messages.push(`⚡ 【粒子相位枪】特效:无视护盾目标${particleEffect * 100}%减伤效果`);
3212
+ messages.push(`⚡ 【粒子相位枪】武器效果:无视护盾目标${particleEffect * 100}%减伤效果`);
3207
3213
  }
3208
3214
  const weaponConfigData = weaponConfig[weaponName];
3209
3215
  if (weaponConfigData) {
@@ -3232,9 +3238,14 @@ var PassiveHandler = {
3232
3238
  ignoreEffects.push(radarEffect);
3233
3239
  messages.push(`🛰️ 【雷达面罩】生效:无视目标${radarEffect * 100}%减伤效果`);
3234
3240
  }
3241
+ if (careerData?.career === "猩红杀手" && weaponName === "侦察步枪") {
3242
+ const scarletEffect = 0.2;
3243
+ ignoreEffects.push(scarletEffect);
3244
+ messages.push(`🎯 【猩红杀手】职业效果:无视目标${scarletEffect * 100}%减伤效果`);
3245
+ }
3235
3246
  }
3236
3247
  } catch (error) {
3237
- console.error("检查雷达面罩效果时出错:", error);
3248
+ console.error("出错:", error);
3238
3249
  }
3239
3250
  if (ignoreEffects.length === 0) {
3240
3251
  return null;
@@ -3263,7 +3274,7 @@ var PassiveHandler = {
3263
3274
  targetBoss.Skillcountpoints = newCount;
3264
3275
  return {
3265
3276
  messages: [
3266
- `⚡ 【脉冲扰乱枪】特效:减少${targetBoss.name} 2层技能计数(当前${newCount}层)`
3277
+ `⚡ 【脉冲扰乱枪】武器效果:减少${targetBoss.name} 2层技能计数(当前${newCount}层)`
3267
3278
  ]
3268
3279
  };
3269
3280
  }, "handlePulseDisruptor"),
@@ -4783,8 +4794,9 @@ ${itemDetails.join("\n")}`;
4783
4794
  const humanPlayersCount = await ctx.database.select("ggcevo_careers").where({ group: "人类联盟" }).execute((row) => import_koishi.$.count(row.handle));
4784
4795
  const additionalBonus = Math.min(humanPlayersCount, 50);
4785
4796
  const credBonus = 0.5 + additionalBonus / 100;
4797
+ const totalBonusPercent = Math.round(credBonus * 100);
4786
4798
  totalBonus += credBonus;
4787
- messages.push(`💎 CRED-17生效:+50%金币 (额外+${additionalBonus}%金币)`);
4799
+ messages.push(`💎 CRED-17生效:+${totalBonusPercent}%金币`);
4788
4800
  }
4789
4801
  }
4790
4802
  const [meowEffect] = await ctx.database.get("ggcevo_Wish_Record", {
@@ -6104,14 +6116,16 @@ ${Object.keys(categoryStats).join("、")}`;
6104
6116
  "------------------"
6105
6117
  ].filter(Boolean).join("\n");
6106
6118
  });
6107
- const shouldShowDiscountInfo = totalDiscount > 0 && !isLegendaryCategory;
6108
- const discountInfo = shouldShowDiscountInfo ? `💰 当前折扣:
6119
+ const permissionNotice = isLegendaryCategory ? '⚠️ 注意:购买传奇武器需要"传奇武器购买权限"' : null;
6120
+ const discountInfo = totalDiscount > 0 && !isLegendaryCategory ? `💰 当前折扣:
6109
6121
  ${discountDetails.length ? `${discountDetails.join("\n")}` : ""}` : null;
6110
6122
  return [
6111
6123
  `🏪 咕咕武器库 - ${category} 🏪`,
6112
6124
  '使用"购买 武器名称"指令进行购买',
6125
+ permissionNotice,
6126
+ // 新增权限提示
6113
6127
  discountInfo,
6114
- // 传奇武器分类时不显示此信息
6128
+ // 原有折扣信息
6115
6129
  "====================",
6116
6130
  ...items,
6117
6131
  items.length === 0 ? "⚠️ 该分类下暂无可用武器" : ""
@@ -6141,15 +6155,21 @@ ${discountDetails.length ? `${discountDetails.join("\n")}` : ""}` : null;
6141
6155
  return `无效分类,可用类型:
6142
6156
  ${validTypes.join("、")}`;
6143
6157
  }
6144
- const items = filteredItems.filter((item) => item.type === type).map((item) => [
6145
- `${Object.keys(SyndicatedItems).find((k) => SyndicatedItems[k] === item)}`,
6146
- // 获取物品名称
6147
- `类型:${item.type}`,
6148
- `价格:${item.price}金币`,
6149
- `效果:${item.effects}`,
6150
- `描述:${item.description}`,
6151
- "------------------"
6152
- ].join("\n"));
6158
+ const items = filteredItems.filter((item) => item.type === type).map((item) => {
6159
+ const itemName = Object.keys(SyndicatedItems).find((k) => SyndicatedItems[k] === item);
6160
+ const itemDetails = [
6161
+ `名称:${itemName}`,
6162
+ `类型:${item.type}`,
6163
+ `价格:${item.price}金币`,
6164
+ `条件:${item.condition}`,
6165
+ // 新增的条件字段
6166
+ `效果:${item.effects}`,
6167
+ // 效果字段保持不变
6168
+ `描述:${item.description}`,
6169
+ "------------------"
6170
+ ];
6171
+ return itemDetails.join("\n");
6172
+ });
6153
6173
  return [
6154
6174
  `💣 爆破装备库 - ${type} 💣`,
6155
6175
  "使用“购买 物品名称”指令进行购买",
@@ -6399,7 +6419,7 @@ ${validTypes.join("、")}`;
6399
6419
  }
6400
6420
  return `❌ 未找到 "${target}" 对应的武器或科技(科技仅限人类联盟阵营升级)`;
6401
6421
  });
6402
- ctx.command("ggcevo/改装 <weapon> [mod]", "安装武器模块").action(async ({ session }, weapon, mod) => {
6422
+ ctx.command("ggcevo/改装 <weapon> [mod]", "安装武器模块").alias("改造").action(async ({ session }, weapon, mod) => {
6403
6423
  const [profile] = await ctx.database.get("sc2arcade_player", { userId: session.userId });
6404
6424
  if (!profile) return "🔒 需要先绑定游戏句柄。";
6405
6425
  const handle = `${profile.regionId}-S2-${profile.realmId}-${profile.profileId}`;
@@ -7268,10 +7288,10 @@ ${validTypes.join("、")}`;
7268
7288
  if (!category) {
7269
7289
  const discountLines = [];
7270
7290
  if (isComputerExpert) {
7271
- discountLines.push("💻 计算机专家:设备工具类物品50%折扣");
7291
+ discountLines.push("💻 计算机专家职业:设备工具类物品50%折扣");
7272
7292
  }
7273
7293
  if (isSaboteur) {
7274
- discountLines.push("💣 破坏者:爆破物类物品50%折扣");
7294
+ discountLines.push("💣 破坏者职业:爆破物类物品50%折扣");
7275
7295
  }
7276
7296
  return [
7277
7297
  "🏴 辛迪加黑市 🏴",
@@ -7287,6 +7307,8 @@ ${validTypes.join("、")}`;
7287
7307
  }
7288
7308
  const normalizedCategory = Object.keys(categoryStats).find((c) => c === category);
7289
7309
  if (!normalizedCategory) return `无效分类,可用:${Object.keys(categoryStats).join("、")}`;
7310
+ const isLegendaryCategory = normalizedCategory === "传奇武器";
7311
+ const legendaryNotice = isLegendaryCategory ? "⚠️ 注意:购买传奇武器需要对应的辛迪加海盗职业权限" : null;
7290
7312
  const items = [
7291
7313
  ...Object.entries(weaponConfig).filter(
7292
7314
  ([_, config2]) => config2.category === normalizedCategory && config2.redCrystalCost > 0
@@ -7341,6 +7363,8 @@ ${validTypes.join("、")}`;
7341
7363
  );
7342
7364
  }
7343
7365
  infoBlocks.push(
7366
+ `条件:${item.condition}`,
7367
+ // 新增的条件字段
7344
7368
  `特殊效果:${item.effects}`,
7345
7369
  `描述:${item.description}`,
7346
7370
  "------------------"
@@ -7352,17 +7376,19 @@ ${validTypes.join("、")}`;
7352
7376
  if (isSaboteur && normalizedCategory === "爆破物") {
7353
7377
  discountInfo = [
7354
7378
  "💰 当前折扣:",
7355
- "💣 破坏者:爆破物类物品50%折扣"
7379
+ "💣 破坏者职业:爆破物类物品50%折扣"
7356
7380
  ];
7357
7381
  } else if (isComputerExpert && normalizedCategory === "设备工具") {
7358
7382
  discountInfo = [
7359
7383
  "💰 当前折扣:",
7360
- "💻 计算机专家:设备工具类物品50%折扣"
7384
+ "💻 计算机专家职业:设备工具类物品50%折扣"
7361
7385
  ];
7362
7386
  }
7363
7387
  return [
7364
7388
  `🏴 辛迪加黑市 - ${normalizedCategory} 🏴`,
7365
7389
  '使用"订购 物品名称"进行购买(仅消耗红晶)',
7390
+ legendaryNotice,
7391
+ // 新增传奇武器权限提示
7366
7392
  ...discountInfo,
7367
7393
  "====================",
7368
7394
  ...items
@@ -7463,10 +7489,10 @@ ${validTypes.join("、")}`;
7463
7489
  const buildResponse = /* @__PURE__ */ __name(async () => {
7464
7490
  const discountLines = [];
7465
7491
  if (isSaboteurDiscount) {
7466
- discountLines.push("💣 破坏者:爆破物类物品50%折扣");
7492
+ discountLines.push("💣 破坏者职业:爆破物类物品50%折扣");
7467
7493
  }
7468
7494
  if (isComputerExpertDiscount) {
7469
- discountLines.push("💻 计算机专家:设备工具类物品50%折扣");
7495
+ discountLines.push("💻 计算机专家职业:设备工具类物品50%折扣");
7470
7496
  }
7471
7497
  const priceInfo = [
7472
7498
  `消耗红晶:${finalCost}${discountApplied ? ` (原价${originalPrice})` : ""}`
@@ -7621,9 +7647,8 @@ ${Spacestationtechnology.map((t) => t.techname).join("、")}`;
7621
7647
  return [
7622
7648
  `✦ 等级 ${romanNumerals[level.level]}`,
7623
7649
  costDesc,
7624
- // 修改后的价格显示
7625
7650
  `▸ 基础效果:${level.description}`,
7626
- `💼 ${level.careerBonus}`,
7651
+ `▸ 职业效果:${level.careerBonus}`,
7627
7652
  "------------------"
7628
7653
  ].join("\n");
7629
7654
  });
@@ -7637,9 +7662,10 @@ ${Spacestationtechnology.map((t) => t.techname).join("、")}`;
7637
7662
  return [
7638
7663
  `🛠️ ${tech.techname} 科技详情 🛠️`,
7639
7664
  `最大可升级等级:${romanNumerals[tech.maxLevel]}`,
7665
+ `适用职业:${tech.careerNames.join("、")}`,
7666
+ // 适用职业移动到最顶部
7640
7667
  '使用 "升级 科技名称" 进行升级',
7641
7668
  ...discountInfo,
7642
- // 插入折扣信息
7643
7669
  "====================",
7644
7670
  ...techDetails
7645
7671
  ].filter(Boolean).join("\n");
@@ -7736,7 +7762,7 @@ ${Spacestationtechnology.map((t) => t.techname).join("、")}`;
7736
7762
  }
7737
7763
  reportLines.push(rewardLine);
7738
7764
  if (tech.level >= 3) {
7739
- reportLines.push(`🔧 采掘系统科技Lv.${tech.level}(矿骡):+${multiplier * 100}%金币`);
7765
+ reportLines.push(`⚙️ 采掘系统科技Lv.${tech.level}(矿骡):+${multiplier * 100}%金币`);
7740
7766
  }
7741
7767
  reportLines.push(`🏆 历史总挖矿收益:${record.totalMined + total}金币`);
7742
7768
  reportLines.push("💡 已自动开始下一轮挖矿");
package/lib/items.d.ts CHANGED
@@ -5,6 +5,7 @@ export declare const SyndicatedItems: {
5
5
  description: string;
6
6
  price: number;
7
7
  redCrystalCost: number;
8
+ condition: string;
8
9
  effects: string;
9
10
  };
10
11
  闪光弹: {
@@ -13,6 +14,7 @@ export declare const SyndicatedItems: {
13
14
  description: string;
14
15
  price: number;
15
16
  redCrystalCost: number;
17
+ condition: string;
16
18
  effects: string;
17
19
  };
18
20
  'CRED-17': {
@@ -21,6 +23,7 @@ export declare const SyndicatedItems: {
21
23
  description: string;
22
24
  price: number;
23
25
  redCrystalCost: number;
26
+ condition: string;
24
27
  effects: string;
25
28
  };
26
29
  脉冲手雷: {
@@ -29,6 +32,7 @@ export declare const SyndicatedItems: {
29
32
  description: string;
30
33
  price: number;
31
34
  redCrystalCost: number;
35
+ condition: string;
32
36
  effects: string;
33
37
  };
34
38
  MP3播放器: {
@@ -37,6 +41,7 @@ export declare const SyndicatedItems: {
37
41
  description: string;
38
42
  price: number;
39
43
  redCrystalCost: number;
44
+ condition: string;
40
45
  effects: string;
41
46
  };
42
47
  雷达面罩: {
@@ -45,6 +50,7 @@ export declare const SyndicatedItems: {
45
50
  description: string;
46
51
  price: number;
47
52
  redCrystalCost: number;
53
+ condition: string;
48
54
  effects: string;
49
55
  };
50
56
  气喇叭: {
@@ -53,6 +59,7 @@ export declare const SyndicatedItems: {
53
59
  description: string;
54
60
  price: number;
55
61
  redCrystalCost: number;
62
+ condition: string;
56
63
  effects: string;
57
64
  };
58
65
  };
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.13",
4
+ "version": "1.4.15",
5
5
  "main": "lib/index.js",
6
6
  "typings": "lib/index.d.ts",
7
7
  "files": [