koishi-plugin-ggcevo-game 1.4.28 → 1.4.29

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.
@@ -39,7 +39,7 @@ export declare const bossPool: readonly [{
39
39
  maxHP: number;
40
40
  energy: number;
41
41
  tags: ("重甲" | "生物" | "惧热" | "异形" | "重型")[];
42
- passive: ("冰霜进化" | "冰霜环绕")[];
42
+ passive: ("冰霜环绕" | "冰霜进化")[];
43
43
  };
44
44
  minions: {
45
45
  name: string;
@@ -47,7 +47,7 @@ export declare const bossPool: readonly [{
47
47
  maxHP: number;
48
48
  energy: number;
49
49
  tags: ("生物" | "惧热" | "异形")[];
50
- passive: ("弱化形态" | "冰霜回复" | "冰霜进化")[];
50
+ passive: ("冰霜回复" | "弱化形态" | "冰霜进化")[];
51
51
  }[];
52
52
  }, {
53
53
  main: {
@@ -129,11 +129,11 @@ export declare const passiveConfig: {
129
129
  };
130
130
  readonly 腐蚀胆汁: {
131
131
  readonly effect: 0;
132
- readonly description: "当“胆汁”达到10层后,下一次受到攻击将治愈所有存活异形1000点血量并清空层数";
132
+ readonly description: "当“胆汁”达到10层后,下一次受到攻击将回复所有存活异形1000点血量并清空层数";
133
133
  };
134
134
  readonly 火焰吐息: {
135
135
  readonly effect: 0;
136
- readonly description: "当“胆汁”达到20层后,下一次攻击将治愈所有存活异形50%的最大生命值并清空层数";
136
+ readonly description: "当“胆汁”达到20层后,下一次攻击将回复所有存活异形50%的最大生命值并清空层数";
137
137
  };
138
138
  readonly 太阳耀斑: {
139
139
  readonly effect: 0;
@@ -173,11 +173,11 @@ export declare const passiveConfig: {
173
173
  };
174
174
  readonly 宇宙能量: {
175
175
  readonly effect: 0;
176
- readonly description: "受到攻击时回复与该攻击伤害等额的“能量”; 若“能量”已满,则回复与该攻击伤害等额的血量";
176
+ readonly description: "受到攻击时回复与该攻击伤害等额的“能量”; 若“能量”已满,则回复溢出伤害值的血量";
177
177
  };
178
178
  readonly 复苏: {
179
179
  readonly effect: 0;
180
- readonly description: "受到致命伤害时,免于死亡,快速回复自身100%的最大生命值和100%的“能量”,并且获得“灵能构造炉”技能(触发后移除)";
180
+ readonly description: "受到致命伤害时,免于死亡,快速回复自身50%的最大生命值和100%的“能量”,并且获得“灵能构造炉”技能(触发后移除)";
181
181
  };
182
182
  readonly 光影之刃: {
183
183
  readonly effect: 0;
@@ -197,11 +197,11 @@ export declare const passiveConfig: {
197
197
  };
198
198
  readonly 灵能构造炉: {
199
199
  readonly effect: 0;
200
- readonly description: "受到攻击后,有5%的概率会随机获得以下4个技能之一(天启超载护盾,塌缩脉冲,地毯式轰炸,轰炸引导)";
200
+ readonly description: "受到攻击后,有1%的概率会随机获得以下4个技能之一(天启超载护盾,塌缩脉冲,地毯式轰炸,轰炸引导)";
201
201
  };
202
202
  readonly 天启超载护盾: {
203
203
  readonly effect: 0;
204
- readonly description: "受到伤害后,有10%的概率回复所有存活异形X点血量(X为“光影之刃”层数 x 50)";
204
+ readonly description: "受到伤害后,有5%的概率回复所有存活异形X点血量(X为“光影之刃”层数 x 10)";
205
205
  };
206
206
  readonly 塌缩脉冲: {
207
207
  readonly effect: 0;
@@ -209,10 +209,10 @@ export declare const passiveConfig: {
209
209
  };
210
210
  readonly 地毯式轰炸: {
211
211
  readonly effect: 0;
212
- readonly description: "我心中的怒火胜过千万个太阳!移除自身的“孤立无援”,并使受到的伤害-50%";
212
+ readonly description: "我心中的怒火胜过千万个太阳!移除自身的“孤立无援”,并使受到的伤害-100%";
213
213
  };
214
214
  readonly 轰炸引导: {
215
215
  readonly effect: 0;
216
- readonly description: "受到伤害后,有10%的概率概率回复自身X点“能量”(X为“光影之刃”层数 x 100)";
216
+ readonly description: "受到伤害后,有10%的概率概率回复自身X点“能量”(X为“光影之刃”层数 x 50)";
217
217
  };
218
218
  };
@@ -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<{
@@ -182,8 +182,9 @@ export declare const PassiveHandler: {
182
182
  handlePulseDisruptor: (ctx: Context, targetBoss: any, weaponName: string) => Promise<{
183
183
  messages: string[];
184
184
  }>;
185
- handleStellarWind: (ctx: Context, targetBoss: any, initialDamage: number, maxHP: number, activeBosses: any[], bossGroup: BossPoolItem) => Promise<{
185
+ handleStellarWind: (ctx: Context, targetBoss: any, initialDamage: number, currentHP: number, maxHP: number, activeBosses: any[], bossGroup: BossPoolItem) => Promise<{
186
186
  messages: string[];
187
+ updatedHP: number;
187
188
  }>;
188
189
  handlePsychicFrenzy: (targetBoss: any, currentHP: number, maxHP: number) => {
189
190
  damageMultiplier: number;
@@ -212,8 +213,9 @@ export declare const PassiveHandler: {
212
213
  handleConstructor: (ctx: Context, targetBoss: any) => Promise<{
213
214
  messages: string[];
214
215
  }>;
215
- handleTyrsShield: (ctx: Context, targetBoss: any, activeBosses: any[], bossGroup: BossPoolItem) => Promise<{
216
+ handleTyrsShield: (ctx: Context, targetBoss: any, currentHP: number, activeBosses: any[], bossGroup: BossPoolItem) => Promise<{
216
217
  messages: string[];
218
+ updatedHP: number;
217
219
  }>;
218
220
  handleCollapsePulse: (ctx: Context, targetBoss: any) => Promise<{
219
221
  messages: string[];
package/lib/index.js CHANGED
@@ -237,7 +237,7 @@ var weaponConfig = {
237
237
  category: "能量武器",
238
238
  damage: 32,
239
239
  description: "一种原型能量武器,能够发射强大的脉冲",
240
- specialeffect: "攻击减少目标2层技能计数",
240
+ specialeffect: "攻击使目标的技能层数减少2",
241
241
  price: 1500,
242
242
  redCrystalCost: 15,
243
243
  isantiair: true,
@@ -250,7 +250,7 @@ var weaponConfig = {
250
250
  damage: 88,
251
251
  description: "一件传奇武器",
252
252
  specialeffect: "",
253
- price: 7500,
253
+ price: 6400,
254
254
  redCrystalCost: 150,
255
255
  isantiair: true,
256
256
  tagEffects: {
@@ -266,7 +266,7 @@ var weaponConfig = {
266
266
  damage: 70,
267
267
  description: "一件传奇武器",
268
268
  specialeffect: "攻击暴击率+80%",
269
- price: 7500,
269
+ price: 6400,
270
270
  redCrystalCost: 150,
271
271
  isantiair: true,
272
272
  tagEffects: {
@@ -280,7 +280,7 @@ var weaponConfig = {
280
280
  damage: 80,
281
281
  description: "这是传说中的武器",
282
282
  specialeffect: "",
283
- price: 7500,
283
+ price: 6400,
284
284
  redCrystalCost: 150,
285
285
  isantiair: false,
286
286
  tagEffects: {
@@ -295,7 +295,7 @@ var weaponConfig = {
295
295
  damage: 120,
296
296
  description: "一件传奇武器",
297
297
  specialeffect: "",
298
- price: 7500,
298
+ price: 6400,
299
299
  redCrystalCost: 150,
300
300
  isantiair: true,
301
301
  tagEffects: {
@@ -309,7 +309,7 @@ var weaponConfig = {
309
309
  damage: 100,
310
310
  description: "优雅而独特的武器",
311
311
  specialeffect: "无视目标100%的减伤效果",
312
- price: 7500,
312
+ price: 6400,
313
313
  redCrystalCost: 150,
314
314
  isantiair: false,
315
315
  tagEffects: {}
@@ -321,7 +321,7 @@ var weaponConfig = {
321
321
  damage: 100,
322
322
  description: "一件传奇武器",
323
323
  specialeffect: "攻击消耗目标500点能量",
324
- price: 7500,
324
+ price: 6400,
325
325
  redCrystalCost: 150,
326
326
  isantiair: true,
327
327
  tagEffects: {
@@ -335,7 +335,7 @@ var weaponConfig = {
335
335
  damage: 60,
336
336
  description: "一件传奇武器",
337
337
  specialeffect: "攻击无视目标80%的减伤效果",
338
- price: 7500,
338
+ price: 6400,
339
339
  redCrystalCost: 150,
340
340
  isantiair: true,
341
341
  tagEffects: {
@@ -349,7 +349,7 @@ var weaponConfig = {
349
349
  damage: 90,
350
350
  description: "一件传奇武器",
351
351
  specialeffect: "",
352
- price: 7500,
352
+ price: 6400,
353
353
  redCrystalCost: 150,
354
354
  isantiair: true,
355
355
  tagEffects: {
@@ -553,10 +553,10 @@ var spaceStationCrewConfig = [
553
553
  },
554
554
  {
555
555
  professionName: "武器中士",
556
- effect: "攻击伤害+15%; 购买武器(非传奇)享有20%的折扣",
556
+ effect: "攻击伤害+15%; 购买武器享有50%的折扣",
557
557
  requirements: "当期伤害榜累计造成100及以上伤害",
558
558
  Jobtransfer: true,
559
- costcoins: 2e3
559
+ costcoins: 3e3
560
560
  },
561
561
  {
562
562
  professionName: "医疗专家",
@@ -1387,11 +1387,11 @@ var passiveConfig = {
1387
1387
  },
1388
1388
  "腐蚀胆汁": {
1389
1389
  effect: 0,
1390
- description: "当“胆汁”达到10层后,下一次受到攻击将治愈所有存活异形1000点血量并清空层数"
1390
+ description: "当“胆汁”达到10层后,下一次受到攻击将回复所有存活异形1000点血量并清空层数"
1391
1391
  },
1392
1392
  "火焰吐息": {
1393
1393
  effect: 0,
1394
- description: "当“胆汁”达到20层后,下一次攻击将治愈所有存活异形50%的最大生命值并清空层数"
1394
+ description: "当“胆汁”达到20层后,下一次攻击将回复所有存活异形50%的最大生命值并清空层数"
1395
1395
  },
1396
1396
  "太阳耀斑": {
1397
1397
  effect: 0,
@@ -1431,11 +1431,11 @@ var passiveConfig = {
1431
1431
  },
1432
1432
  "宇宙能量": {
1433
1433
  effect: 0,
1434
- description: "受到攻击时回复与该攻击伤害等额的“能量”; 若“能量”已满,则回复与该攻击伤害等额的血量"
1434
+ description: "受到攻击时回复与该攻击伤害等额的“能量”; 若“能量”已满,则回复溢出伤害值的血量"
1435
1435
  },
1436
1436
  "复苏": {
1437
1437
  effect: 0,
1438
- description: "受到致命伤害时,免于死亡,快速回复自身100%的最大生命值和100%的“能量”,并且获得“灵能构造炉”技能(触发后移除)"
1438
+ description: "受到致命伤害时,免于死亡,快速回复自身50%的最大生命值和100%的“能量”,并且获得“灵能构造炉”技能(触发后移除)"
1439
1439
  },
1440
1440
  "光影之刃": {
1441
1441
  effect: 0,
@@ -1455,11 +1455,11 @@ var passiveConfig = {
1455
1455
  },
1456
1456
  "灵能构造炉": {
1457
1457
  effect: 0,
1458
- description: "受到攻击后,有5%的概率会随机获得以下4个技能之一(天启超载护盾,塌缩脉冲,地毯式轰炸,轰炸引导)"
1458
+ description: "受到攻击后,有1%的概率会随机获得以下4个技能之一(天启超载护盾,塌缩脉冲,地毯式轰炸,轰炸引导)"
1459
1459
  },
1460
1460
  "天启超载护盾": {
1461
1461
  effect: 0,
1462
- description: "受到伤害后,有10%的概率回复所有存活异形X点血量(X为“光影之刃”层数 x 50)"
1462
+ description: "受到伤害后,有5%的概率回复所有存活异形X点血量(X为“光影之刃”层数 x 10)"
1463
1463
  },
1464
1464
  "塌缩脉冲": {
1465
1465
  effect: 0,
@@ -1467,11 +1467,11 @@ var passiveConfig = {
1467
1467
  },
1468
1468
  "地毯式轰炸": {
1469
1469
  effect: 0,
1470
- description: "我心中的怒火胜过千万个太阳!移除自身的“孤立无援”,并使受到的伤害-50%"
1470
+ description: "我心中的怒火胜过千万个太阳!移除自身的“孤立无援”,并使受到的伤害-100%"
1471
1471
  },
1472
1472
  "轰炸引导": {
1473
1473
  effect: 0,
1474
- description: "受到伤害后,有10%的概率概率回复自身X点“能量”(X为“光影之刃”层数 x 100)"
1474
+ description: "受到伤害后,有10%的概率概率回复自身X点“能量”(X为“光影之刃”层数 x 50)"
1475
1475
  }
1476
1476
  };
1477
1477
 
@@ -2019,13 +2019,7 @@ async function applyItemEffect(ctx, session, handle, itemConfig2, target) {
2019
2019
  );
2020
2020
  return {
2021
2021
  success: true,
2022
- message: `成功使用${itemName},使${target}的技能层数减少${reducedAmount}层(当前:${newCount}层)。`
2023
- };
2024
- }
2025
- if (itemConfig2.id === 3 || itemConfig2.id === 5) {
2026
- return {
2027
- success: false,
2028
- message: `此物品无法使用。`
2022
+ message: `成功使用${itemName},使${target}的技能层数减少10层`
2029
2023
  };
2030
2024
  }
2031
2025
  if (itemConfig2.id === 4) {
@@ -2049,7 +2043,7 @@ async function applyItemEffect(ctx, session, handle, itemConfig2, target) {
2049
2043
  );
2050
2044
  return {
2051
2045
  success: true,
2052
- message: `成功使用${itemName},消耗${target}500点能量。`
2046
+ message: `成功使用${itemName},消耗${target}500点能量`
2053
2047
  };
2054
2048
  }
2055
2049
  return {
@@ -3072,7 +3066,7 @@ var PassiveHandler = {
3072
3066
  { Skillcountpoints: 0 }
3073
3067
  );
3074
3068
  const messages = [
3075
- `🟢 【腐蚀胆汁】生效:消耗10层"胆汁",治愈所有存活异形`
3069
+ `🟢 【腐蚀胆汁】生效:消耗10层"胆汁",治疗所有存活异形`
3076
3070
  ];
3077
3071
  const updates = [];
3078
3072
  let updatedHP = currentHP;
@@ -3113,7 +3107,7 @@ var PassiveHandler = {
3113
3107
  { Skillcountpoints: 0 }
3114
3108
  );
3115
3109
  const messages = [
3116
- `🐲 【火焰吐息】生效:消耗20层"胆汁",治愈所有存活异形50%的最大生命值`
3110
+ `🐲 【火焰吐息】生效:消耗20层"胆汁",治疗所有存活异形50%的最大生命值`
3117
3111
  ];
3118
3112
  const updates = [];
3119
3113
  let updatedHP = currentHP;
@@ -3389,7 +3383,7 @@ var PassiveHandler = {
3389
3383
  };
3390
3384
  }, "handlePulseDisruptor"),
3391
3385
  // === 星界之风 ===
3392
- handleStellarWind: /* @__PURE__ */ __name(async (ctx, targetBoss, initialDamage, maxHP, activeBosses, bossGroup) => {
3386
+ handleStellarWind: /* @__PURE__ */ __name(async (ctx, targetBoss, initialDamage, currentHP, maxHP, activeBosses, bossGroup) => {
3393
3387
  if (!targetBoss.skills.includes("星界之风") || initialDamage === 0) return null;
3394
3388
  let baseChance = 5;
3395
3389
  const hasPsychicFrenzy = targetBoss.skills.includes("心灵狂热");
@@ -3425,7 +3419,7 @@ var PassiveHandler = {
3425
3419
  if (hasPsychicFrenzy && isInFrenzy) {
3426
3420
  }
3427
3421
  await Promise.all(updates);
3428
- return { messages };
3422
+ return { messages, updatedHP: currentHP + 200 };
3429
3423
  }
3430
3424
  return null;
3431
3425
  }, "handleStellarWind"),
@@ -3454,7 +3448,7 @@ var PassiveHandler = {
3454
3448
  let healAmount = 0;
3455
3449
  let messages = [];
3456
3450
  if (energyToAdd > 0) {
3457
- messages.push(`🌌 获得${energyToAdd}点能量`);
3451
+ messages.push(`获得${energyToAdd}点能量`);
3458
3452
  }
3459
3453
  if (newEnergy >= maxEnergy) {
3460
3454
  const overflow = initialDamage - energyToAdd;
@@ -3462,7 +3456,7 @@ var PassiveHandler = {
3462
3456
  const maxHP = PassiveHandler.getMemberConfig(targetBoss.name, bossGroup)?.maxHP || 0;
3463
3457
  if (maxHP > 0) {
3464
3458
  healAmount = Math.min(overflow, maxHP - targetBoss.HP);
3465
- messages.push(`💫 能量溢出回复${healAmount}点生命值`);
3459
+ messages.push(`能量溢出回复${healAmount}点生命值`);
3466
3460
  }
3467
3461
  }
3468
3462
  }
@@ -3527,30 +3521,23 @@ var PassiveHandler = {
3527
3521
  const lightbladeStacks = targetBoss.Skillcountpoints || 0;
3528
3522
  let reduction = 0;
3529
3523
  let increase = 0;
3530
- const effectParts = [];
3531
- if (currentEnergy >= maxEnergy * 0.3) {
3532
- const baseReduction = lightbladeStacks * 0.05;
3533
- reduction += baseReduction;
3534
- effectParts.push(`能量≥30%:减伤${(baseReduction * 100).toFixed(0)}%`);
3535
- if (currentEnergy >= maxEnergy * 0.6) {
3536
- const bonusReduction = lightbladeStacks * 0.05;
3537
- reduction += bonusReduction;
3538
- effectParts.push(`能量≥60%:额外减伤${(bonusReduction * 100).toFixed(0)}%`);
3539
- }
3540
- }
3524
+ const messages = [];
3541
3525
  if (currentEnergy <= maxEnergy * 0.1) {
3542
3526
  increase = lightbladeStacks * 0.05;
3543
- effectParts.push(`能量≤10%:增伤${(increase * 100).toFixed(0)}%`);
3527
+ messages.push(`能量≤10%:受到的伤害+${(increase * 100).toFixed(0)}%`);
3528
+ } else if (currentEnergy >= maxEnergy * 0.6) {
3529
+ reduction = lightbladeStacks * 0.1;
3530
+ messages.push(`能量≥60%:受到的伤害-${(reduction * 100).toFixed(0)}%`);
3531
+ } else if (currentEnergy >= maxEnergy * 0.3) {
3532
+ reduction = lightbladeStacks * 0.05;
3533
+ messages.push(`能量≥30%:受到的伤害-${(reduction * 100).toFixed(0)}%`);
3544
3534
  }
3545
3535
  if (reduction > 0 || increase > 0) {
3546
- const effectDescription = effectParts.join(",");
3547
3536
  return {
3548
3537
  reduction,
3549
- // 返沪减伤系数(正值)
3550
3538
  increase,
3551
- // 返沪增伤系数(正值)
3552
3539
  messages: [
3553
- `🚀 【超视距穿梭】生效:${effectDescription}(当前${lightbladeStacks}层光影之刃)`
3540
+ `🚀 【超视距穿梭】生效:${messages.join(" | ")} (当前${lightbladeStacks}层光影之刃)`
3554
3541
  ]
3555
3542
  };
3556
3543
  }
@@ -3559,7 +3546,7 @@ var PassiveHandler = {
3559
3546
  // === 复苏 ===
3560
3547
  handleRevival: /* @__PURE__ */ __name(async function(ctx, targetBoss, currentHP, maxHP) {
3561
3548
  if (!targetBoss.skills.includes("复苏") || currentHP > 0) return null;
3562
- const updatedHP = maxHP;
3549
+ const updatedHP = maxHP * 0.5;
3563
3550
  const maxEnergy = 1e3;
3564
3551
  let newSkills = targetBoss.skills;
3565
3552
  if (!newSkills.includes("灵能构造炉")) {
@@ -3578,7 +3565,7 @@ var PassiveHandler = {
3578
3565
  return {
3579
3566
  updatedHP,
3580
3567
  messages: [
3581
- `🔥 【复苏】生效:免于死亡,回复自身100%的最大生命值和100%的“能量”,并且获得新技能【灵能构造炉】`
3568
+ `🔥 【复苏】生效:免于死亡,回复自身50%的最大生命值和100%的“能量”,并且获得新技能【灵能构造炉】`
3582
3569
  ]
3583
3570
  };
3584
3571
  }, "handleRevival"),
@@ -3604,7 +3591,7 @@ var PassiveHandler = {
3604
3591
  if (targetBoss.skills.includes("闪电冲锋")) {
3605
3592
  lightbladeStacks = targetBoss.Skillcountpoints || 0;
3606
3593
  }
3607
- const totalChance = 5 + lightbladeStacks;
3594
+ const totalChance = 1 + lightbladeStacks;
3608
3595
  if (Math.random() * 100 < totalChance) {
3609
3596
  const availableSkills = allSkills.filter(
3610
3597
  (skill) => !targetBoss.skills.includes(skill)
@@ -3626,16 +3613,16 @@ var PassiveHandler = {
3626
3613
  return null;
3627
3614
  }, "handleConstructor"),
3628
3615
  // 修改后 - 移除了层数清零操作
3629
- handleTyrsShield: /* @__PURE__ */ __name(async function(ctx, targetBoss, activeBosses, bossGroup) {
3616
+ handleTyrsShield: /* @__PURE__ */ __name(async function(ctx, targetBoss, currentHP, activeBosses, bossGroup) {
3630
3617
  if (!targetBoss.skills.includes("天启超载护盾")) return null;
3631
3618
  const lightbladeStacks = targetBoss.Skillcountpoints || 0;
3632
3619
  if (lightbladeStacks === 0) return null;
3633
- const triggerChance = 10;
3620
+ const triggerChance = 5;
3634
3621
  if (Math.random() * 100 < triggerChance) {
3635
3622
  const groupMembers = activeBosses.filter(
3636
3623
  (b) => b.groupId === targetBoss.groupId && b.HP > 0
3637
3624
  );
3638
- const healAmount = lightbladeStacks * 50;
3625
+ const healAmount = lightbladeStacks * 10;
3639
3626
  const updates = [];
3640
3627
  const messages = [`🛡️ 【天启超载护盾】生效:治疗所有存活异形`];
3641
3628
  for (const member of groupMembers) {
@@ -3656,7 +3643,8 @@ var PassiveHandler = {
3656
3643
  }
3657
3644
  await Promise.all(updates);
3658
3645
  return {
3659
- messages
3646
+ messages,
3647
+ updatedHP: currentHP + healAmount
3660
3648
  // 不再清除层数
3661
3649
  };
3662
3650
  }
@@ -3698,8 +3686,8 @@ var PassiveHandler = {
3698
3686
  messages.push(`🔥 【地毯式轰炸】生效:移除“孤立无援”`);
3699
3687
  } else {
3700
3688
  }
3701
- damageMultiplier = -0.5;
3702
- messages.push(`🔥 【地毯式轰炸】生效:我心中的怒火胜过千万个太阳!受到的伤害-50%`);
3689
+ damageMultiplier = -1;
3690
+ messages.push(`🔥 【地毯式轰炸】生效:我心中的怒火胜过千万个太阳!受到的伤害-100%`);
3703
3691
  }
3704
3692
  return {
3705
3693
  messages,
@@ -3713,7 +3701,7 @@ var PassiveHandler = {
3713
3701
  if (lightbladeStacks === 0) return null;
3714
3702
  const triggerChance = 10;
3715
3703
  if (Math.random() * 100 < triggerChance) {
3716
- const energyGain = lightbladeStacks * 100;
3704
+ const energyGain = lightbladeStacks * 50;
3717
3705
  const maxEnergy = 1e3;
3718
3706
  const currentEnergy = targetBoss.energy || 0;
3719
3707
  const newEnergy = Math.min(currentEnergy + energyGain, maxEnergy);
@@ -4024,12 +4012,14 @@ var PassiveHandler = {
4024
4012
  }
4025
4013
  }
4026
4014
  }
4027
- const stellarWindResult = await this.handleStellarWind(ctx, targetBoss, initialDamage, maxHP, activeBosses, bossGroup);
4015
+ const stellarWindResult = await this.handleStellarWind(ctx, targetBoss, initialDamage, currentHP, maxHP, activeBosses, bossGroup);
4028
4016
  if (stellarWindResult) {
4017
+ currentHP = stellarWindResult.updatedHP;
4029
4018
  messages.push(...stellarWindResult.messages);
4030
4019
  }
4031
- const shieldResult = await this.handleTyrsShield(ctx, targetBoss, activeBosses, bossGroup);
4020
+ const shieldResult = await this.handleTyrsShield(ctx, targetBoss, currentHP, activeBosses, bossGroup);
4032
4021
  if (shieldResult) {
4022
+ currentHP = shieldResult.updatedHP;
4033
4023
  messages.push(...shieldResult.messages);
4034
4024
  }
4035
4025
  const survivalResult = this.handleSurvivalInstinct(targetBoss, currentHP, maxHP);
@@ -6611,11 +6601,8 @@ ${items.join("、")}
6611
6601
  const handle = `${profile.regionId}-S2-${profile.realmId}-${profile.profileId}`;
6612
6602
  const [careerData] = await ctx.database.get("ggcevo_careers", { handle });
6613
6603
  const discountDetails = [];
6614
- let totalDiscount = 0;
6615
6604
  if (careerData?.career === "武器中士") {
6616
- const weaponSpecialistDiscount = 20;
6617
- totalDiscount += weaponSpecialistDiscount;
6618
- discountDetails.push(`▸ 🎖️ 武器中士职业:${weaponSpecialistDiscount}%折扣`);
6605
+ discountDetails.push(`▸ 🎖️ 武器中士职业:50%折扣`);
6619
6606
  }
6620
6607
  const activeWish = await ctx.database.get("ggcevo_Wish_Record", {
6621
6608
  handle,
@@ -6625,11 +6612,8 @@ ${items.join("、")}
6625
6612
  isused: false
6626
6613
  }).then((records) => records[0]);
6627
6614
  if (activeWish) {
6628
- const grasshopperDiscount = 20;
6629
- totalDiscount += grasshopperDiscount;
6630
- discountDetails.push(`▸ 🦗 蚱蜢优购祈愿:${grasshopperDiscount}%折扣`);
6615
+ discountDetails.push(`▸ 🦗 蚱蜢优购祈愿:20%折扣`);
6631
6616
  }
6632
- totalDiscount = Math.min(totalDiscount, 100);
6633
6617
  const categoryStats = Object.values(weaponConfig).filter((weapon) => weapon.price !== 0).reduce((stats, weapon) => {
6634
6618
  stats[weapon.category] = (stats[weapon.category] || 0) + 1;
6635
6619
  return stats;
@@ -6638,8 +6622,8 @@ ${items.join("、")}
6638
6622
  return [
6639
6623
  "🏪 咕咕武器库分类 🏪",
6640
6624
  '使用 "武器库 分类名称" 查看详细列表',
6641
- totalDiscount > 0 && `💰 折扣明细:
6642
- ${discountDetails.length ? `${discountDetails.join("\n")}` : ""}`,
6625
+ discountDetails.length > 0 && `💰 折扣明细:
6626
+ ${discountDetails.join("\n")}`,
6643
6627
  "====================",
6644
6628
  ...Object.entries(categoryStats).map(([catName, count]) => `▸ ${catName} (${count}种)`),
6645
6629
  "===================="
@@ -6649,12 +6633,19 @@ ${discountDetails.length ? `${discountDetails.join("\n")}` : ""}`,
6649
6633
  return `无效武器分类,可用分类:
6650
6634
  ${Object.keys(categoryStats).join("、")}`;
6651
6635
  }
6652
- const isLegendaryCategory = category === "传奇武器";
6653
6636
  const items = Object.entries(weaponConfig).filter(([_, config2]) => config2.category === category && config2.price !== 0).map(([name2, config2]) => {
6654
- const shouldApplyDiscount = !isLegendaryCategory && config2.category !== "传奇武器";
6655
- const displayPrice = shouldApplyDiscount ? Math.floor(config2.price * (100 - totalDiscount) / 100) : config2.price;
6656
- const showOriginalPrice = shouldApplyDiscount && totalDiscount > 0;
6657
- const priceDisplay = showOriginalPrice ? `${displayPrice}金币 (原价${config2.price})` : `${displayPrice}金币`;
6637
+ let applicableDiscount = 0;
6638
+ if (careerData?.career === "武器中士") {
6639
+ applicableDiscount += 50;
6640
+ }
6641
+ if (config2.category !== "传奇武器" && activeWish) {
6642
+ applicableDiscount += 20;
6643
+ }
6644
+ let priceDisplay = `${config2.price}金币`;
6645
+ if (applicableDiscount > 0) {
6646
+ const discountedPrice = Math.floor(config2.price * (100 - applicableDiscount) / 100);
6647
+ priceDisplay = `${discountedPrice}金币 (原价${config2.price})`;
6648
+ }
6658
6649
  let tagEffectsDesc = "▸ 无特殊加成效果";
6659
6650
  if (config2.tagEffects && Object.keys(config2.tagEffects).length > 0) {
6660
6651
  tagEffectsDesc = Object.entries(config2.tagEffects).map(([tag, multiplier]) => `▸ 对${tag}目标造成${(multiplier * 100).toFixed(0)}%伤害`).join("\n");
@@ -6672,16 +6663,13 @@ ${Object.keys(categoryStats).join("、")}`;
6672
6663
  "------------------"
6673
6664
  ].filter(Boolean).join("\n");
6674
6665
  });
6675
- const permissionNotice = isLegendaryCategory ? '⚠️ 注意:购买传奇武器需要"传奇武器购买权限"' : null;
6676
- const discountInfo = totalDiscount > 0 && !isLegendaryCategory ? `💰 折扣明细:
6677
- ${discountDetails.length ? `${discountDetails.join("\n")}` : ""}` : null;
6666
+ const permissionNotice = category === "传奇武器" ? "⚠️ 购买传奇武器要求:人类联盟阵营+武器系统5级+情报副官/武器中士职业+传奇武器购买权限" : null;
6678
6667
  return [
6679
6668
  `🏪 咕咕武器库 - ${category} 🏪`,
6680
6669
  '使用"购买 武器名称"指令进行购买',
6670
+ discountDetails.length > 0 ? `💰 折扣明细:
6671
+ ${discountDetails.join("\n")}` : "",
6681
6672
  permissionNotice,
6682
- // 新增权限提示
6683
- discountInfo,
6684
- // 原有折扣信息
6685
6673
  "====================",
6686
6674
  ...items,
6687
6675
  items.length === 0 ? "⚠️ 该分类下暂无可用武器" : ""
@@ -6777,39 +6765,35 @@ ${validTypes.join("、")}`;
6777
6765
  let totalDiscount = 0;
6778
6766
  let discountDetails = [];
6779
6767
  let activeWish = null;
6780
- if (!isLegendaryWeapon) {
6781
- if (isWeapon) {
6782
- activeWish = await ctx.database.get("ggcevo_Wish_Record", {
6783
- handle,
6784
- wishname: "蚱蜢优购",
6785
- startTime: { $lte: /* @__PURE__ */ new Date() },
6786
- endTime: { $gte: /* @__PURE__ */ new Date() },
6787
- isused: false
6788
- }).then((records) => records[0] || null);
6789
- if (activeWish) {
6790
- const wishDiscount = 20;
6791
- totalDiscount += wishDiscount;
6792
- discountDetails.push(`🦗 蚱蜢优购祈愿:${wishDiscount}%折扣`);
6793
- }
6794
- }
6795
- if (isWeapon && careerData?.career === "武器中士") {
6796
- const specialistDiscount = 20;
6797
- totalDiscount += specialistDiscount;
6798
- discountDetails.push(`🎖️ 武器中士职业:${specialistDiscount}%折扣`);
6768
+ if (isWeapon && careerData?.career === "武器中士") {
6769
+ const specialistDiscount = 50;
6770
+ totalDiscount += specialistDiscount;
6771
+ discountDetails.push(`🎖️ 武器中士职业:${specialistDiscount}%折扣`);
6772
+ }
6773
+ if (!isLegendaryWeapon && isWeapon) {
6774
+ activeWish = await ctx.database.get("ggcevo_Wish_Record", {
6775
+ handle,
6776
+ wishname: "蚱蜢优购",
6777
+ startTime: { $lte: /* @__PURE__ */ new Date() },
6778
+ endTime: { $gte: /* @__PURE__ */ new Date() },
6779
+ isused: false
6780
+ }).then((records) => records[0] || null);
6781
+ if (activeWish) {
6782
+ const wishDiscount = 20;
6783
+ totalDiscount += wishDiscount;
6784
+ discountDetails.push(`🦗 蚱蜢优购祈愿:${wishDiscount}%折扣`);
6799
6785
  }
6800
- totalDiscount = Math.min(totalDiscount, 100);
6801
6786
  }
6787
+ totalDiscount = Math.min(totalDiscount, 100);
6802
6788
  let actualPrice = config2.price;
6803
- if (!isLegendaryWeapon && totalDiscount > 0) {
6789
+ if (totalDiscount > 0) {
6804
6790
  actualPrice = Math.floor(config2.price * (100 - totalDiscount) / 100);
6805
6791
  actualPrice = Math.max(actualPrice, 1);
6806
6792
  }
6807
6793
  if ((signInfo?.totalRewards || 0) < actualPrice) {
6808
6794
  let priceInfo = `需要 ${actualPrice} 金币`;
6809
6795
  if (discountDetails.length > 0) {
6810
- priceInfo += `(原价${config2.price})`;
6811
- } else if (isLegendaryWeapon) {
6812
- priceInfo = `需要 ${actualPrice} 金币 (传奇武器无折扣)`;
6796
+ priceInfo += ` (原价${config2.price})`;
6813
6797
  }
6814
6798
  return `❌ 金币不足,${priceInfo}`;
6815
6799
  }
@@ -6864,20 +6848,18 @@ ${validTypes.join("、")}`;
6864
6848
  });
6865
6849
  let message = `✅ 成功购买${isWeapon ? "武器" : "物品"}「${item}」
6866
6850
  `;
6867
- if (isLegendaryWeapon) {
6851
+ if (discountDetails.length > 0) {
6852
+ message += `花费 ${actualPrice} 金币 (原价${config2.price} 金币)`;
6853
+ message += `
6854
+ 💰 折扣明细:
6855
+ ▸ ${discountDetails.join("\n▸ ")}`;
6856
+ } else {
6868
6857
  message += `花费 ${actualPrice} 金币`;
6858
+ }
6859
+ if (isLegendaryWeapon) {
6869
6860
  const [permissions] = await ctx.database.get("ggcevo_purchasepermissions", { handle });
6870
6861
  message += `
6871
6862
  扣除 1 次传奇武器购买权限,剩余次数:${permissions?.legendarypermissions || 0}`;
6872
- } else {
6873
- if (discountDetails.length > 0) {
6874
- message += `花费 ${actualPrice} 金币 (原价${config2.price} 金币)`;
6875
- message += `
6876
- 💰 折扣明细:
6877
- ▸ ${discountDetails.join("\n▸ ")}`;
6878
- } else {
6879
- message += `花费 ${actualPrice} 金币`;
6880
- }
6881
6863
  }
6882
6864
  if (isWeapon) {
6883
6865
  if (isAutoEquipped) {
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.28",
4
+ "version": "1.4.29",
5
5
  "main": "lib/index.js",
6
6
  "typings": "lib/index.d.ts",
7
7
  "files": [