koishi-plugin-ggcevo-game 1.4.49 → 1.4.51

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.
package/lib/index.js CHANGED
@@ -235,7 +235,7 @@ var weaponConfig = {
235
235
  id: 14,
236
236
  type: "能量武器",
237
237
  category: "能量武器",
238
- damage: 32,
238
+ damage: 35,
239
239
  description: "一种原型能量武器,能够发射强大的脉冲",
240
240
  specialeffect: "攻击使目标的技能层数减少2层",
241
241
  price: 1500,
@@ -243,6 +243,48 @@ var weaponConfig = {
243
243
  isantiair: true,
244
244
  tagEffects: {}
245
245
  },
246
+ "MK79榴弹发射器": {
247
+ id: 15,
248
+ type: "热能武器",
249
+ category: "热能武器",
250
+ damage: 50,
251
+ description: "发射非常坚固的专属榴弹,对具有坚固防御的目标几乎没有效果",
252
+ specialeffect: "",
253
+ price: 2e3,
254
+ redCrystalCost: 20,
255
+ isantiair: true,
256
+ tagEffects: {
257
+ "重甲": 1.5,
258
+ "轻甲": 0.8,
259
+ "护盾": 0.8
260
+ }
261
+ },
262
+ "EC13电浆步枪": {
263
+ id: 16,
264
+ type: "能量武器",
265
+ category: "能量武器",
266
+ damage: 64,
267
+ description: "用于解决高生命值目标的次时代武器",
268
+ specialeffect: "",
269
+ price: 1750,
270
+ redCrystalCost: 20,
271
+ isantiair: true,
272
+ tagEffects: {
273
+ "护盾": 0.5
274
+ }
275
+ },
276
+ "聚变磁轨枪": {
277
+ id: 17,
278
+ type: "能量武器",
279
+ category: "能量武器",
280
+ damage: 70,
281
+ description: "一种原型能量武器,能够发射强大的脉冲",
282
+ specialeffect: "",
283
+ price: 1550,
284
+ redCrystalCost: 20,
285
+ isantiair: true,
286
+ tagEffects: {}
287
+ },
246
288
  "外星电浆": {
247
289
  id: 101,
248
290
  type: "能量武器",
@@ -251,7 +293,7 @@ var weaponConfig = {
251
293
  description: "一件传奇武器",
252
294
  specialeffect: "",
253
295
  price: 6400,
254
- redCrystalCost: 150,
296
+ redCrystalCost: 200,
255
297
  isantiair: true,
256
298
  tagEffects: {
257
299
  "生物": 2,
@@ -267,7 +309,7 @@ var weaponConfig = {
267
309
  description: "一件传奇武器",
268
310
  specialeffect: "攻击暴击率+80%",
269
311
  price: 6400,
270
- redCrystalCost: 150,
312
+ redCrystalCost: 200,
271
313
  isantiair: true,
272
314
  tagEffects: {
273
315
  "重甲": 1.5
@@ -281,7 +323,7 @@ var weaponConfig = {
281
323
  description: "这是传说中的武器",
282
324
  specialeffect: "",
283
325
  price: 6400,
284
- redCrystalCost: 150,
326
+ redCrystalCost: 200,
285
327
  isantiair: false,
286
328
  tagEffects: {
287
329
  "轻甲": 1.5,
@@ -296,7 +338,7 @@ var weaponConfig = {
296
338
  description: "一件传奇武器",
297
339
  specialeffect: "",
298
340
  price: 6400,
299
- redCrystalCost: 150,
341
+ redCrystalCost: 200,
300
342
  isantiair: true,
301
343
  tagEffects: {
302
344
  "重甲": 1.2
@@ -310,7 +352,7 @@ var weaponConfig = {
310
352
  description: "优雅而独特的武器",
311
353
  specialeffect: "无视目标100%的减伤效果",
312
354
  price: 6400,
313
- redCrystalCost: 150,
355
+ redCrystalCost: 200,
314
356
  isantiair: false,
315
357
  tagEffects: {}
316
358
  },
@@ -322,7 +364,7 @@ var weaponConfig = {
322
364
  description: "一件传奇武器",
323
365
  specialeffect: "攻击消耗目标500点能量",
324
366
  price: 6400,
325
- redCrystalCost: 150,
367
+ redCrystalCost: 200,
326
368
  isantiair: true,
327
369
  tagEffects: {
328
370
  "机械": 1.5
@@ -336,7 +378,7 @@ var weaponConfig = {
336
378
  description: "一件传奇武器",
337
379
  specialeffect: "攻击无视目标80%的减伤效果",
338
380
  price: 6400,
339
- redCrystalCost: 150,
381
+ redCrystalCost: 200,
340
382
  isantiair: true,
341
383
  tagEffects: {
342
384
  "重甲": 2
@@ -350,7 +392,7 @@ var weaponConfig = {
350
392
  description: "一件传奇武器",
351
393
  specialeffect: "",
352
394
  price: 6400,
353
- redCrystalCost: 150,
395
+ redCrystalCost: 200,
354
396
  isantiair: true,
355
397
  tagEffects: {
356
398
  "建筑": 2,
@@ -604,7 +646,7 @@ var spaceStationCrewConfig = [
604
646
  var syndicatePirateConfig = [
605
647
  {
606
648
  professionName: "能量武器专家",
607
- effect: "能量武器攻击伤害+20%; 解锁MK-4激光步枪(传奇)购买权限",
649
+ effect: "能量武器攻击伤害+20%; 购买MK-4激光步枪(传奇)享有50%的折扣",
608
650
  requirements: "至少拥有一把3级及以上等级的能量武器",
609
651
  Jobtransfer: true,
610
652
  costredcrystal: 30
@@ -618,21 +660,21 @@ var syndicatePirateConfig = [
618
660
  },
619
661
  {
620
662
  professionName: "枪手",
621
- effect: "武器等级上限为7级; 升级武器享有10%的折扣; 解锁M4AE脉冲步枪(传奇)购买权限",
663
+ effect: "武器等级上限为7级; 升级武器享有10%的折扣; 购买M4AE脉冲步枪(传奇)享有50%的折扣",
622
664
  requirements: "至少拥有一把6级及以上等级的武器",
623
665
  Jobtransfer: true,
624
666
  costredcrystal: 35
625
667
  },
626
668
  {
627
669
  professionName: "猩红杀手",
628
- effect: "“侦察步枪”攻击伤害+15%; 使用“侦察步枪”攻击时无视目标20%的减伤效果; 解锁DSR-55反器材步枪(传奇)购买权限",
670
+ effect: "“侦察步枪”攻击伤害+15%; 使用“侦察步枪”攻击时无视目标20%的减伤效果; 购买DSR-55反器材步枪(传奇)享有50%的折扣",
629
671
  requirements: "“侦察步枪”武器等级≥3级",
630
672
  Jobtransfer: true,
631
673
  costredcrystal: 30
632
674
  },
633
675
  {
634
676
  professionName: "纵火狂",
635
- effect: "热能武器攻击伤害+20%; 解锁龙息霰弹枪(传奇)购买权限",
677
+ effect: "热能武器攻击伤害+20%; 购买龙息霰弹枪(传奇)享有50%的折扣",
636
678
  requirements: "至少拥有一把3级及以上等级的热能武器",
637
679
  Jobtransfer: true,
638
680
  costredcrystal: 30
@@ -4078,6 +4120,12 @@ function formatTime(date) {
4078
4120
  });
4079
4121
  }
4080
4122
  __name(formatTime, "formatTime");
4123
+ var legendaryDiscounts = {
4124
+ "MK-4激光步枪": ["能量武器专家"],
4125
+ "DSR-55反器材步枪": ["猩红杀手"],
4126
+ "龙息霰弹枪": ["纵火狂"],
4127
+ "M4AE脉冲步枪": ["枪手"]
4128
+ };
4081
4129
 
4082
4130
  // src/boss/damagecalculation.ts
4083
4131
  async function calculateTotalDamage(ctx, session, config, equippedWeapon, targetBoss) {
@@ -7572,8 +7620,8 @@ ${validTypes.join("、")}`;
7572
7620
  const layerDisplay = layerInfo.length > 0 ? `📊 层数状态: ${layerInfo.join(" | ")}` : "";
7573
7621
  return [
7574
7622
  `🎯 使用武器 ${weaponName} 攻击 ${dummyBoss.name}`,
7575
- `❤️ 假人血量:${dummyBoss.HP}`,
7576
- `⚡ 假人能量:${dummyBoss.energy}`,
7623
+ `❤️ 假人血量:${dummyBoss.HP}/10000`,
7624
+ `⚡ 假人能量:${dummyBoss.energy}/1000`,
7577
7625
  options.tags?.length && `🏷️ 模拟标签:${tags.join(", ")}`,
7578
7626
  options.passives?.length && `✨ 模拟被动:${passives.join(", ")}`,
7579
7627
  layerDisplay,
@@ -7591,9 +7639,8 @@ ${testResult.ignoreMessage.map((m) => `▸ ${m}`).join("\n")}`
7591
7639
  ${testResult.passiveMessages.map((m) => `▸ ${m}`).join("\n")}`
7592
7640
  ] : [],
7593
7641
  `📊 理论伤害值:${testResult.initialDamage}${testResult.hasCrit ? "(✨ 暴击)" : ""}`,
7594
- "💡 提示:可添加标签(-t)、被动(-p)、血量(-l)、能量(-e)",
7595
- "💡 层数选项:技能层数(-s)、辐射层数(-r)、寒冷层数(-c)、状态层数(-a)",
7596
- `ℹ️ 测试假人最大血量:10000 | 最大能量:1000 | 最大层数:100`
7642
+ "💡 参数添加:可添加标签(-t)、被动(-p)、血量(-l)、能量(-e)",
7643
+ "💡 层数选项:技能层数(-s)、辐射层数(-r)、寒冷层数(-c)、状态层数(-a)"
7597
7644
  ].filter((line) => line).join("\n");
7598
7645
  } finally {
7599
7646
  Object.keys("测试假人").forEach((key) => delete battleStatsMap[key]);
@@ -7910,7 +7957,7 @@ ${testResult.passiveMessages.map((m) => `▸ ${m}`).join("\n")}`
7910
7957
  return `您输入的是错误的阵营名称,请选择有效阵营:${validFactions.join(" / ")}`;
7911
7958
  }
7912
7959
  const [existing] = await ctx.database.get("ggcevo_careers", { handle });
7913
- if (existing) {
7960
+ if (existing.group === "人类联盟" || existing.group === "辛迪加海盗") {
7914
7961
  return `你已经加入${existing.group}阵营,当前职业:${existing.career}`;
7915
7962
  }
7916
7963
  const [signData] = await ctx.database.get("ggcevo_sign", { handle });
@@ -7927,15 +7974,13 @@ ${testResult.passiveMessages.map((m) => `▸ ${m}`).join("\n")}`
7927
7974
  handle,
7928
7975
  totalRewards: signData?.totalRewards - 1e3
7929
7976
  }], ["handle"]);
7930
- await ctx.database.create("ggcevo_careers", {
7977
+ await ctx.database.upsert("ggcevo_careers", [{
7931
7978
  handle,
7932
7979
  group: "人类联盟",
7933
7980
  career: "联盟新兵",
7934
- redcrystal: 0,
7935
7981
  date: /* @__PURE__ */ new Date()
7936
- });
7982
+ }], ["handle"]);
7937
7983
  } else if (faction === "辛迪加海盗") {
7938
- const [pkData] = await ctx.database.get("ggcevo_pk", { handle });
7939
7984
  if (userCoins < 2e3) {
7940
7985
  return `加入辛迪加海盗需要缴纳2000金币,您当前拥有${userCoins}金币`;
7941
7986
  }
@@ -7946,13 +7991,13 @@ ${testResult.passiveMessages.map((m) => `▸ ${m}`).join("\n")}`
7946
7991
  handle,
7947
7992
  totalRewards: signData?.totalRewards - 2e3
7948
7993
  }], ["handle"]);
7949
- await ctx.database.create("ggcevo_careers", {
7994
+ await ctx.database.upsert("ggcevo_careers", [{
7950
7995
  handle,
7951
7996
  group: "辛迪加海盗",
7952
7997
  career: "辛迪加炮灰新兵",
7953
- redcrystal: 5,
7998
+ redcrystal: (existing?.redcrystal || 0) + 5,
7954
7999
  date: /* @__PURE__ */ new Date()
7955
- });
8000
+ }], ["handle"]);
7956
8001
  }
7957
8002
  return `花费了${faction === "人类联盟" ? "1000金币" : "2000金币"}成功加入${faction}!${faction === "人类联盟" ? "" : "获得5枚红晶,"}初始职业:${faction === "人类联盟" ? "联盟新兵" : "辛迪加炮灰新兵"}`;
7958
8003
  } catch (err) {
@@ -8168,8 +8213,22 @@ ${testResult.passiveMessages.map((m) => `▸ ${m}`).join("\n")}`
8168
8213
  if (!careerData || careerData.group !== "辛迪加海盗") {
8169
8214
  return "🚫 该功能需要【辛迪加海盗】阵营权限";
8170
8215
  }
8171
- const isComputerExpert = careerData.career === "计算机专家";
8172
- const isSaboteur = careerData.career === "破坏者";
8216
+ const currentCareer = careerData.career;
8217
+ const discountProfessions = {
8218
+ "计算机专家": ["设备工具"],
8219
+ "破坏者": ["爆破物"]
8220
+ };
8221
+ Object.keys(legendaryDiscounts).forEach((item) => {
8222
+ if (legendaryDiscounts[item].includes(currentCareer)) {
8223
+ const category2 = weaponConfig[item]?.category;
8224
+ if (category2 && !discountProfessions[currentCareer]?.includes(category2)) {
8225
+ discountProfessions[currentCareer] = [
8226
+ ...discountProfessions[currentCareer] || [],
8227
+ category2
8228
+ ];
8229
+ }
8230
+ }
8231
+ });
8173
8232
  const categoryStats = {};
8174
8233
  Object.values(weaponConfig).filter((config2) => config2.redCrystalCost > 0).forEach((weapon) => {
8175
8234
  categoryStats[weapon.category] = (categoryStats[weapon.category] || 0) + 1;
@@ -8179,17 +8238,16 @@ ${testResult.passiveMessages.map((m) => `▸ ${m}`).join("\n")}`
8179
8238
  });
8180
8239
  if (!category) {
8181
8240
  const discountLines = [];
8182
- if (isComputerExpert) {
8183
- discountLines.push("▸ 💻 计算机专家职业:设备工具类物品50%折扣");
8184
- }
8185
- if (isSaboteur) {
8186
- discountLines.push("▸ 💣 破坏者职业:爆破物类物品50%折扣");
8187
- }
8241
+ Object.entries(discountProfessions).forEach(([profession, categories]) => {
8242
+ categories.forEach((cat) => {
8243
+ discountLines.push(`▸ ${profession}:${cat}类50%折扣`);
8244
+ });
8245
+ });
8188
8246
  return [
8189
8247
  "🏴 辛迪加黑市 🏴",
8190
8248
  '使用 "黑市 分类名称" 查看详细信息',
8191
8249
  discountLines.length ? [
8192
- "💰 折扣明细:",
8250
+ "💰 专属折扣职业:",
8193
8251
  ...discountLines
8194
8252
  ].join("\n") : "",
8195
8253
  "====================",
@@ -8199,18 +8257,29 @@ ${testResult.passiveMessages.map((m) => `▸ ${m}`).join("\n")}`
8199
8257
  }
8200
8258
  const normalizedCategory = Object.keys(categoryStats).find((c) => c === category);
8201
8259
  if (!normalizedCategory) return `无效分类,可用:${Object.keys(categoryStats).join("、")}`;
8202
- const isLegendaryCategory = normalizedCategory === "传奇武器";
8203
- const legendaryNotice = isLegendaryCategory ? "⚠️ 注意:购买传奇武器需要对应的辛迪加海盗职业权限" : null;
8204
8260
  const items = [
8205
8261
  ...Object.entries(weaponConfig).filter(
8206
8262
  ([_, config2]) => config2.category === normalizedCategory && config2.redCrystalCost > 0
8207
8263
  ).map(([name2, config2]) => {
8264
+ let discountPrice = null;
8265
+ let discountProfession = null;
8266
+ if (legendaryDiscounts[name2]?.includes(currentCareer)) {
8267
+ discountPrice = Math.floor(config2.redCrystalCost * 0.5);
8268
+ discountProfession = currentCareer;
8269
+ }
8208
8270
  const infoBlocks = [
8209
8271
  `【${name2}】`,
8210
8272
  `武器类型:${config2.type}`,
8211
- `基础伤害:${config2.damage}`,
8212
- `订购价:${config2.redCrystalCost}红晶`
8273
+ `基础伤害:${config2.damage}`
8213
8274
  ];
8275
+ if (discountPrice) {
8276
+ infoBlocks.push(
8277
+ `订购价:${discountPrice}红晶 (原价${config2.redCrystalCost})`,
8278
+ `折扣:${discountProfession}专属50%折扣`
8279
+ );
8280
+ } else {
8281
+ infoBlocks.push(`订购价:${config2.redCrystalCost}红晶`);
8282
+ }
8214
8283
  if (config2.specialeffect) {
8215
8284
  infoBlocks.push(`特殊效果:${config2.specialeffect}`);
8216
8285
  }
@@ -8228,26 +8297,23 @@ ${testResult.passiveMessages.map((m) => `▸ ${m}`).join("\n")}`
8228
8297
  ...Object.entries(SyndicatedItems).filter(
8229
8298
  ([_, item]) => item.type === normalizedCategory && item.redCrystalCost > 0
8230
8299
  ).map(([name2, item]) => {
8231
- let finalPrice = item.redCrystalCost;
8232
- let discountApplied = false;
8233
- let discountType = "";
8234
- if (isSaboteur && normalizedCategory === "爆破物") {
8235
- finalPrice = Math.floor(item.redCrystalCost * 0.5);
8236
- discountApplied = true;
8237
- discountType = "破坏者";
8238
- } else if (isComputerExpert && normalizedCategory === "设备工具") {
8239
- finalPrice = Math.floor(item.redCrystalCost * 0.5);
8240
- discountApplied = true;
8241
- discountType = "计算机专家";
8300
+ let discountPrice = null;
8301
+ let discountReason = null;
8302
+ if (currentCareer === "破坏者" && normalizedCategory === "爆破物") {
8303
+ discountPrice = Math.floor(item.redCrystalCost * 0.5);
8304
+ discountReason = "破坏者";
8305
+ } else if (currentCareer === "计算机专家" && normalizedCategory === "设备工具") {
8306
+ discountPrice = Math.floor(item.redCrystalCost * 0.5);
8307
+ discountReason = "计算机专家";
8242
8308
  }
8243
8309
  const infoBlocks = [
8244
8310
  `【${name2}】`,
8245
8311
  `物品类型:${item.type}`
8246
8312
  ];
8247
- if (discountApplied) {
8313
+ if (discountPrice) {
8248
8314
  infoBlocks.push(
8249
- `订购价:${finalPrice}红晶 (原价${item.redCrystalCost})`,
8250
- `折扣:${discountType}专属50%折扣`
8315
+ `订购价:${discountPrice}红晶 (原价${item.redCrystalCost})`,
8316
+ `折扣:${discountReason}专属50%折扣`
8251
8317
  );
8252
8318
  } else {
8253
8319
  infoBlocks.push(
@@ -8256,7 +8322,6 @@ ${testResult.passiveMessages.map((m) => `▸ ${m}`).join("\n")}`
8256
8322
  }
8257
8323
  infoBlocks.push(
8258
8324
  `条件:${item.condition}`,
8259
- // 新增的条件字段
8260
8325
  `特殊效果:${item.effects}`,
8261
8326
  `描述:${item.description}`,
8262
8327
  "------------------"
@@ -8264,23 +8329,29 @@ ${testResult.passiveMessages.map((m) => `▸ ${m}`).join("\n")}`
8264
8329
  return infoBlocks.join("\n");
8265
8330
  })
8266
8331
  ];
8267
- let discountInfo = [];
8268
- if (isSaboteur && normalizedCategory === "爆破物") {
8269
- discountInfo = [
8270
- "💰 折扣明细:",
8271
- "▸ 💣 破坏者职业:爆破物类物品50%折扣"
8272
- ];
8273
- } else if (isComputerExpert && normalizedCategory === "设备工具") {
8274
- discountInfo = [
8332
+ const discountInfo = [];
8333
+ if (normalizedCategory === "传奇武器") {
8334
+ const availableDiscounts = [];
8335
+ Object.entries(legendaryDiscounts).forEach(([weapon, professions]) => {
8336
+ if (professions.includes(currentCareer)) {
8337
+ availableDiscounts.push(`${weapon}(${currentCareer}专属50%折扣)`);
8338
+ }
8339
+ });
8340
+ if (availableDiscounts.length) {
8341
+ discountInfo.push(
8342
+ "💰 传奇武器职业折扣:",
8343
+ `▸ ${availableDiscounts.join("\n▸ ")}`
8344
+ );
8345
+ }
8346
+ } else if (currentCareer === "破坏者" && normalizedCategory === "爆破物" || currentCareer === "计算机专家" && normalizedCategory === "设备工具") {
8347
+ discountInfo.push(
8275
8348
  "💰 折扣明细:",
8276
- "▸ 💻 计算机专家职业:设备工具类物品50%折扣"
8277
- ];
8349
+ `▸ ${currentCareer}职业:${normalizedCategory}类50%折扣`
8350
+ );
8278
8351
  }
8279
8352
  return [
8280
8353
  `🏴 辛迪加黑市 - ${normalizedCategory} 🏴`,
8281
8354
  '使用"订购 物品名称"进行购买(仅消耗红晶)',
8282
- legendaryNotice,
8283
- // 新增传奇武器权限提示
8284
8355
  ...discountInfo,
8285
8356
  "====================",
8286
8357
  ...items
@@ -8303,34 +8374,22 @@ ${testResult.passiveMessages.map((m) => `▸ ${m}`).join("\n")}`
8303
8374
  if (!isWeapon && !isSyndicatedItem) return "❌ 无效物品名称";
8304
8375
  const itemConfig2 = isWeapon ? weaponConfig[item] : SyndicatedItems[item];
8305
8376
  if (!itemConfig2.redCrystalCost) return "⛔ 该物品不可订购";
8306
- const isLegendaryWeapon = isWeapon && itemConfig2.category === "传奇武器";
8307
- if (isLegendaryWeapon) {
8308
- if (item === "MK-4激光步枪" && careerData.career !== "能量武器专家") {
8309
- return "❌ 购买MK-4激光步枪需要【能量武器专家】职业。";
8310
- } else if (item === "DSR-55反器材步枪" && careerData.career !== "猩红杀手") {
8311
- return "❌ 购买DSR-55反器材步枪需要【猩红杀手】职业。";
8312
- } else if (item === "龙息霰弹枪" && careerData.career !== "纵火狂") {
8313
- return "❌ 购买龙息霰弹枪需要【纵火狂】职业。";
8314
- } else if (item === "M4AE脉冲步枪" && careerData.career !== "枪手") {
8315
- return "❌ 购买M4AE脉冲步枪需要【枪手】职业。";
8316
- } else if (item !== "MK-4激光步枪" && item !== "DSR-55反器材步枪" && item !== "龙息霰弹枪" && item !== "M4AE脉冲步枪") {
8317
- return "❌ 未知的传奇武器或未开放购买权限";
8318
- }
8319
- }
8320
- let isComputerExpertDiscount = false;
8321
- let isSaboteurDiscount = false;
8377
+ let discountApplied = false;
8378
+ let discountReason = "";
8322
8379
  let originalPrice = itemConfig2.redCrystalCost;
8323
8380
  let finalCost = originalPrice;
8324
- let discountApplied = false;
8325
8381
  if (!isWeapon && itemConfig2.type === "爆破物" && careerData.career === "破坏者") {
8326
8382
  finalCost = Math.floor(originalPrice * 0.5);
8327
- isSaboteurDiscount = true;
8328
8383
  discountApplied = true;
8329
- }
8330
- if (!isWeapon && itemConfig2.type === "设备工具" && careerData.career === "计算机专家") {
8384
+ discountReason = "破坏者职业:爆破物类物品50%折扣";
8385
+ } else if (!isWeapon && itemConfig2.type === "设备工具" && careerData.career === "计算机专家") {
8331
8386
  finalCost = Math.floor(originalPrice * 0.5);
8332
- isComputerExpertDiscount = true;
8333
8387
  discountApplied = true;
8388
+ discountReason = "计算机专家职业:设备工具类物品50%折扣";
8389
+ } else if (isWeapon && itemConfig2.category === "传奇武器" && legendaryDiscounts[item]?.includes(careerData.career)) {
8390
+ finalCost = Math.floor(originalPrice * 0.5);
8391
+ discountApplied = true;
8392
+ discountReason = `${careerData.career}职业:购买${item}享受50%折扣`;
8334
8393
  }
8335
8394
  if ((careerData.redcrystal || 0) < finalCost) {
8336
8395
  const discountMessage = discountApplied ? `(原价${originalPrice})` : "";
@@ -8380,12 +8439,6 @@ ${testResult.passiveMessages.map((m) => `▸ ${m}`).join("\n")}`
8380
8439
  });
8381
8440
  const buildResponse = /* @__PURE__ */ __name(async () => {
8382
8441
  const discountLines = [];
8383
- if (isSaboteurDiscount) {
8384
- discountLines.push("💣 破坏者职业:爆破物类物品50%折扣");
8385
- }
8386
- if (isComputerExpertDiscount) {
8387
- discountLines.push("💻 计算机专家职业:设备工具类物品50%折扣");
8388
- }
8389
8442
  const priceInfo = [
8390
8443
  `消耗红晶:${finalCost}${discountApplied ? ` (原价${originalPrice})` : ""}`
8391
8444
  ];
@@ -8394,8 +8447,7 @@ ${testResult.passiveMessages.map((m) => `▸ ${m}`).join("\n")}`
8394
8447
  return [
8395
8448
  `✅ 成功订购【${item}】!`,
8396
8449
  ...priceInfo,
8397
- discountLines.length ? `💰 折扣明细:
8398
- ▸ ${discountLines.join("\n▸ ")}` : "",
8450
+ discountApplied ? `💰 折扣明细:${discountReason}` : "",
8399
8451
  `装备状态:${equippedStatus}`,
8400
8452
  '输入 "武器仓库" 管理武器'
8401
8453
  ].filter(Boolean).join("\n");
@@ -8407,8 +8459,8 @@ ${testResult.passiveMessages.map((m) => `▸ ${m}`).join("\n")}`
8407
8459
  return [
8408
8460
  `✅ 成功订购【${item}】x1!`,
8409
8461
  ...priceInfo,
8410
- discountLines.length ? `💰 折扣明细:
8411
- ${discountLines.join("\n▸ ")}` : "",
8462
+ discountApplied ? `💰 折扣明细:
8463
+ ${discountReason}` : "",
8412
8464
  `当前库存:${currentStock}件`,
8413
8465
  '输入 "仓库" 查看所有物品'
8414
8466
  ].filter(Boolean).join("\n");
@@ -8855,7 +8907,7 @@ ${Spacestationtechnology.map((t) => t.techname).join("、")}`;
8855
8907
  return "购买过程中发生错误,请稍后再试";
8856
8908
  }
8857
8909
  });
8858
- ctx.command("ggcevo/打开军械库防爆门").action(async (argv) => {
8910
+ ctx.command("ggcevo/开启军械库防爆门").alias("打开军械库防爆门").action(async (argv) => {
8859
8911
  const session = argv.session;
8860
8912
  const [profile] = await ctx.database.get("sc2arcade_player", { userId: session.userId });
8861
8913
  if (!profile) return "🔒 请先绑定游戏句柄。";
@@ -8898,7 +8950,7 @@ ${Spacestationtechnology.map((t) => t.techname).join("、")}`;
8898
8950
  }]);
8899
8951
  });
8900
8952
  return [
8901
- `🎉 军械库防爆门已打开!`,
8953
+ `🎉 军械库防爆门已开启!`,
8902
8954
  `✨ 您获得了传奇武器:${awardedWeapon.name}`,
8903
8955
  `🔧 武器类型:${awardedWeapon.type}`,
8904
8956
  `⚔️ 基础伤害:${awardedWeapon.damage}`,
package/lib/utils.d.ts CHANGED
@@ -23,3 +23,9 @@ export declare function generateUpgradePriceList(ctx: Context, handle: string):
23
23
  export declare function getRankInfo(ctx: Context, config: Config, handle: string): Promise<string>;
24
24
  export declare function isWithinProtection(protections: PKProtection[]): boolean;
25
25
  export declare function formatTime(date: Date): string;
26
+ export declare const legendaryDiscounts: {
27
+ 'MK-4\u6FC0\u5149\u6B65\u67AA': string[];
28
+ 'DSR-55\u53CD\u5668\u6750\u6B65\u67AA': string[];
29
+ 龙息霰弹枪: string[];
30
+ M4AE脉冲步枪: string[];
31
+ };
package/lib/weapons.d.ts CHANGED
@@ -208,6 +208,48 @@ export declare const weaponConfig: {
208
208
  isantiair: boolean;
209
209
  tagEffects: {};
210
210
  };
211
+ MK79榴弹发射器: {
212
+ id: number;
213
+ type: string;
214
+ category: string;
215
+ damage: number;
216
+ description: string;
217
+ specialeffect: string;
218
+ price: number;
219
+ redCrystalCost: number;
220
+ isantiair: boolean;
221
+ tagEffects: {
222
+ 重甲: number;
223
+ 轻甲: number;
224
+ 护盾: number;
225
+ };
226
+ };
227
+ EC13电浆步枪: {
228
+ id: number;
229
+ type: string;
230
+ category: string;
231
+ damage: number;
232
+ description: string;
233
+ specialeffect: string;
234
+ price: number;
235
+ redCrystalCost: number;
236
+ isantiair: boolean;
237
+ tagEffects: {
238
+ 护盾: number;
239
+ };
240
+ };
241
+ 聚变磁轨枪: {
242
+ id: number;
243
+ type: string;
244
+ category: string;
245
+ damage: number;
246
+ description: string;
247
+ specialeffect: string;
248
+ price: number;
249
+ redCrystalCost: number;
250
+ isantiair: boolean;
251
+ tagEffects: {};
252
+ };
211
253
  外星电浆: {
212
254
  id: number;
213
255
  type: 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.4.49",
4
+ "version": "1.4.51",
5
5
  "main": "lib/index.js",
6
6
  "typings": "lib/index.d.ts",
7
7
  "files": [