koishi-plugin-ggcevo-game 1.4.86 → 1.4.88

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.
@@ -12,6 +12,7 @@ export interface BattleStatistics {
12
12
  statusLayersChanged: number;
13
13
  radiationLayersChange: number;
14
14
  coldLayersChange: number;
15
+ burnLayersChanged: number;
15
16
  lastWeaponName: string;
16
17
  }
17
18
  export declare const battleStatsMap: Record<string, BattleStatistics>;
@@ -577,6 +578,14 @@ export declare const BattleEffectProcessor: {
577
578
  fusionExplosionTriggered: boolean;
578
579
  messages: string[];
579
580
  };
581
+ handleBurnEffect: (targetBoss: any, weaponName: string) => {
582
+ messages: string[];
583
+ targetUpdates: {
584
+ name: string;
585
+ updates: Partial<BattleStatistics>;
586
+ } | null;
587
+ burnLayerAdded: boolean;
588
+ } | null;
580
589
  };
581
590
  /**
582
591
  * 统一处理所有被动效果(包含伤害修正、免疫检查、状态更新等)
@@ -596,4 +605,5 @@ export declare function applyPassiveEffects(targetBoss: any, activeBosses: any[]
596
605
  bileDetonationTrigger: boolean;
597
606
  spawnNewBossMarks: string[];
598
607
  pulseGrenadeTriggered: boolean;
608
+ burnLayerAdded: boolean;
599
609
  };
@@ -14,6 +14,7 @@ export declare function handlePrimaryAttack(ctx: Context, session: any, handle:
14
14
  pulseApplied: boolean;
15
15
  arcApplied: boolean;
16
16
  pulseGrenadeTriggered: boolean;
17
+ burnLayerAdded: boolean;
17
18
  }>;
18
19
  export declare function handleScatterAttack(ctx: Context, session: any, handle: string, config: Config, equippedWeapon: any, targetBoss: any, weaponName: string, activeBosses: any[], careerData: any): Promise<{
19
20
  scatterEffectMessages: string[];
package/lib/database.d.ts CHANGED
@@ -138,6 +138,7 @@ export interface BossInfo {
138
138
  statusLayers: number;
139
139
  radiationLayers: number;
140
140
  coldLayers: number;
141
+ burnLayers: number;
141
142
  lastWeaponName: string;
142
143
  isActive: boolean;
143
144
  respawnTime: Date;
package/lib/index.js CHANGED
@@ -71,7 +71,7 @@ var weaponConfig = {
71
71
  damage: 23,
72
72
  armorDamageReduction: 0.25,
73
73
  description: "基于热能的强大武器,烧烬一切",
74
- specialeffect: "",
74
+ specialeffect: "攻击时为目标附加[燃烧]效果,每层使目标受到火焰伤害时额外造成5点伤害(至多额外造成100点伤害)",
75
75
  price: 450,
76
76
  redCrystalCost: 4,
77
77
  isantiair: false,
@@ -254,7 +254,7 @@ var weaponConfig = {
254
254
  id: 15,
255
255
  type: "热能武器",
256
256
  category: "热能武器",
257
- damage: 50,
257
+ damage: 60,
258
258
  armorDamageReduction: 0.5,
259
259
  description: "发射非常坚固的专属榴弹,对具有坚固防御的目标几乎没有效果",
260
260
  specialeffect: "",
@@ -300,7 +300,7 @@ var weaponConfig = {
300
300
  id: 18,
301
301
  type: "实弹武器",
302
302
  category: "实弹武器",
303
- damage: 50,
303
+ damage: 70,
304
304
  armorDamageReduction: 0.1,
305
305
  description: "二十一世纪的武器,经过修改以减少后坐力并提高远程精度",
306
306
  specialeffect: "",
@@ -363,10 +363,10 @@ var weaponConfig = {
363
363
  id: 103,
364
364
  type: "实弹武器",
365
365
  category: "传奇武器",
366
- damage: 80,
366
+ damage: 90,
367
367
  armorDamageReduction: 0,
368
368
  description: "这是传说中的武器",
369
- specialeffect: "",
369
+ specialeffect: "攻击时为目标附加[燃烧]效果,每层使目标受到火焰伤害时额外造成5点伤害(至多额外造成100点伤害)",
370
370
  price: 6400,
371
371
  redCrystalCost: 200,
372
372
  isantiair: false,
@@ -740,7 +740,7 @@ var syndicatePirateConfig = [
740
740
  },
741
741
  {
742
742
  professionName: "计算机专家",
743
- effect: "黑市订购设备工具类享有50%折扣; 被动应战的PK对战结果为失败时,不会损失金币;购买DG-3电弧步枪(传奇)享有50%的折扣",
743
+ effect: "黑市订购设备工具类享有50%折扣; 被动应战的PK对战结果为失败时,不会损失金币;每日获得3枚红晶(前日每被PK一次,红晶数量-1,下限为1)",
744
744
  requirements: "仓库中至少拥有一个黑市订购的设备工具类物品",
745
745
  Jobtransfer: true,
746
746
  costredcrystal: 30
@@ -768,7 +768,7 @@ var syndicatePirateConfig = [
768
768
  },
769
769
  {
770
770
  professionName: "征募官",
771
- effect: "",
771
+ effect: "购买DG-3电弧步枪(传奇)享有50%的折扣",
772
772
  requirements: "",
773
773
  Jobtransfer: false,
774
774
  costredcrystal: 10
@@ -1156,9 +1156,17 @@ var Tasklist = {
1156
1156
  id: 6,
1157
1157
  type: "可重复任务",
1158
1158
  target: 1,
1159
- price: 150,
1159
+ price: 200,
1160
1160
  redCrystalCost: 0,
1161
1161
  condition: "使用【M4AE脉冲步枪】攻击目标并成功削减其护甲"
1162
+ },
1163
+ "烈火燎原": {
1164
+ id: 7,
1165
+ type: "可重复任务",
1166
+ target: 1,
1167
+ price: 50,
1168
+ redCrystalCost: 0,
1169
+ condition: "使用【焚烧枪】或【龙息霰弹枪】攻击目标并成功增加其燃烧层数"
1162
1170
  }
1163
1171
  };
1164
1172
 
@@ -1576,6 +1584,7 @@ function updateStatsByName(name2, updates) {
1576
1584
  statusLayersChanged: 0,
1577
1585
  radiationLayersChange: 0,
1578
1586
  coldLayersChange: 0,
1587
+ burnLayersChanged: 0,
1579
1588
  lastWeaponName: ""
1580
1589
  };
1581
1590
  battleStatsMap[name2] = {
@@ -1590,6 +1599,7 @@ function updateStatsByName(name2, updates) {
1590
1599
  radiationLayersChange: existing.radiationLayersChange + (updates.radiationLayersChange ?? 0),
1591
1600
  coldLayersChange: existing.coldLayersChange + (updates.coldLayersChange ?? 0),
1592
1601
  armorChange: existing.armorChange + (updates.armorChange ?? 0),
1602
+ burnLayersChanged: existing.burnLayersChanged + (updates.burnLayersChanged ?? 0),
1593
1603
  // 数组类型:合并(新增内容追加到现有数组)
1594
1604
  tagsAdded: [...existing.tagsAdded, ...updates.tagsAdded ?? []],
1595
1605
  tagsRemoved: [...existing.tagsRemoved, ...updates.tagsRemoved ?? []],
@@ -3657,7 +3667,30 @@ var BattleEffectProcessor = {
3657
3667
  };
3658
3668
  }
3659
3669
  return null;
3660
- }, "handleFusionCannonEffect")
3670
+ }, "handleFusionCannonEffect"),
3671
+ // 在 BattleEffectProcessor 对象中添加以下函数
3672
+ handleBurnEffect: /* @__PURE__ */ __name(function(targetBoss, weaponName) {
3673
+ const messages = [];
3674
+ let burnLayerAdded = false;
3675
+ const isBurnWeapon = weaponName === "焚烧枪" || weaponName === "龙息霰弹枪";
3676
+ if (!isBurnWeapon) {
3677
+ return null;
3678
+ }
3679
+ const targetUpdates = {
3680
+ name: targetBoss.name,
3681
+ updates: {
3682
+ burnLayersChanged: 1
3683
+ // 燃烧层数+1
3684
+ }
3685
+ };
3686
+ burnLayerAdded = true;
3687
+ messages.push(`🔥 【${weaponName}】武器效果:目标获得1层「燃烧」`);
3688
+ return {
3689
+ messages,
3690
+ targetUpdates,
3691
+ burnLayerAdded
3692
+ };
3693
+ }, "handleBurnEffect")
3661
3694
  };
3662
3695
  function applyPassiveEffects(targetBoss, activeBosses, weaponName, damage, hasCrit, ignoreRate, careerData, equippedWeapon) {
3663
3696
  const messages = [];
@@ -3672,6 +3705,7 @@ function applyPassiveEffects(targetBoss, activeBosses, weaponName, damage, hasCr
3672
3705
  let spawnNewBossMarks = [];
3673
3706
  let armor = 0;
3674
3707
  let pulseGrenadeTriggered = false;
3708
+ let burnLayerAdded = false;
3675
3709
  const weaponData = weaponConfig[weaponName] || { type: "" };
3676
3710
  let doubleAstralWind = false;
3677
3711
  let isolatedImmunityMark = false;
@@ -3754,6 +3788,14 @@ function applyPassiveEffects(targetBoss, activeBosses, weaponName, damage, hasCr
3754
3788
  if (fusionEffect) {
3755
3789
  messages.push(...fusionEffect.messages);
3756
3790
  }
3791
+ const burnEffectResult = BattleEffectProcessor.handleBurnEffect(targetBoss, weaponName);
3792
+ if (burnEffectResult) {
3793
+ messages.push(...burnEffectResult.messages);
3794
+ if (burnEffectResult.targetUpdates) {
3795
+ updateStatsByName(burnEffectResult.targetUpdates.name, burnEffectResult.targetUpdates.updates);
3796
+ }
3797
+ burnLayerAdded = burnEffectResult.burnLayerAdded;
3798
+ }
3757
3799
  const carpetBombResult = BattleEffectProcessor.handleCarpetBombing(targetBoss);
3758
3800
  if (carpetBombResult) {
3759
3801
  isolatedImmunityMark = carpetBombResult.tempMark || false;
@@ -3957,6 +3999,11 @@ function applyPassiveEffects(targetBoss, activeBosses, weaponName, damage, hasCr
3957
3999
  if (hasCrit) {
3958
4000
  finalDamage *= 2;
3959
4001
  }
4002
+ const burnDamage = (targetBoss?.burnLayers || 0) * 5;
4003
+ if (burnDamage > 0) {
4004
+ messages.push(`🔥 【燃烧】效果造成额外${burnDamage}点伤害`);
4005
+ }
4006
+ finalDamage += burnDamage;
3960
4007
  let armorDamageReduction = weaponData.armorDamageReduction || 0;
3961
4008
  if (careerData?.career === "猩红杀手" && weaponName === "侦察步枪") {
3962
4009
  armorDamageReduction = 1;
@@ -4046,7 +4093,9 @@ function applyPassiveEffects(targetBoss, activeBosses, weaponName, damage, hasCr
4046
4093
  bileDetonationTrigger,
4047
4094
  spawnNewBossMarks,
4048
4095
  // +++ 新增生成标记 +++
4049
- pulseGrenadeTriggered
4096
+ pulseGrenadeTriggered,
4097
+ burnLayerAdded
4098
+ // 新增燃烧叠加标记
4050
4099
  };
4051
4100
  }
4052
4101
  __name(applyPassiveEffects, "applyPassiveEffects");
@@ -5434,7 +5483,8 @@ async function handlePrimaryAttack(ctx, session, handle, config, equippedWeapon,
5434
5483
  bileStacks: EffectProcessor.bileDetonationTrigger,
5435
5484
  pulseApplied: EffectProcessor.layerReduced,
5436
5485
  arcApplied: EffectProcessor.energyDrained,
5437
- pulseGrenadeTriggered: EffectProcessor.pulseGrenadeTriggered
5486
+ pulseGrenadeTriggered: EffectProcessor.pulseGrenadeTriggered,
5487
+ burnLayerAdded: EffectProcessor.burnLayerAdded
5438
5488
  };
5439
5489
  }
5440
5490
  __name(handlePrimaryAttack, "handlePrimaryAttack");
@@ -5493,6 +5543,9 @@ async function handleScatterAttack(ctx, session, handle, config, equippedWeapon,
5493
5543
  if (EffectProcessor.pulseGrenadeTriggered) {
5494
5544
  taskUpdates.push({ taskId: 6, count: 1 });
5495
5545
  }
5546
+ if (EffectProcessor.burnLayerAdded) {
5547
+ taskUpdates.push({ taskId: 7, count: 1 });
5548
+ }
5496
5549
  const isDead = currentHP <= 0;
5497
5550
  scatterEffectMessages.push(...EffectProcessor.messages.map((m) => ` 对 ${secondaryTarget.name} ${m}`));
5498
5551
  if (isDead) {
@@ -5739,6 +5792,9 @@ async function updateDatabaseWithStats(ctx, stats) {
5739
5792
  if (stats.coldLayersChange !== 0) {
5740
5793
  updateData.coldLayers = Math.max(0, boss.coldLayers + stats.coldLayersChange);
5741
5794
  }
5795
+ if (stats.burnLayersChanged !== 0) {
5796
+ updateData.burnLayers = Math.max(0, boss.burnLayers + stats.burnLayersChanged);
5797
+ }
5742
5798
  if (stats.tagsAdded.length > 0 || stats.tagsRemoved.length > 0) {
5743
5799
  updateData.tags = [
5744
5800
  ...boss.tags.filter((tag) => !stats.tagsRemoved.includes(tag)),
@@ -6078,10 +6134,10 @@ function apply(ctx, config) {
6078
6134
  skills: "list",
6079
6135
  skillStacks: "unsigned",
6080
6136
  skillStatus: "unsigned",
6081
- // 新增:表示技能当前的状态值
6082
6137
  statusLayers: "unsigned",
6083
6138
  radiationLayers: "unsigned",
6084
6139
  coldLayers: "unsigned",
6140
+ burnLayers: "unsigned",
6085
6141
  lastWeaponName: "string",
6086
6142
  isActive: "boolean",
6087
6143
  respawnTime: "timestamp"
@@ -8558,6 +8614,9 @@ ${validTypes.join("、")}`;
8558
8614
  if (primaryAttackResult.pulseGrenadeTriggered) {
8559
8615
  taskUpdates.push({ taskId: 6, count: 1 });
8560
8616
  }
8617
+ if (primaryAttackResult.burnLayerAdded) {
8618
+ taskUpdates.push({ taskId: 7, count: 1 });
8619
+ }
8561
8620
  if (scatterResult && scatterResult.taskUpdates) {
8562
8621
  scatterResult.taskUpdates.forEach((update) => {
8563
8622
  taskUpdates.push(update);
@@ -10071,7 +10130,6 @@ ${Spacestationtechnology.map((t) => t.techname).join("、")}`;
10071
10130
  `✨ 您获得了传奇武器:${awardedWeapon.name}`,
10072
10131
  `🔧 武器类型:${awardedWeapon.type}`,
10073
10132
  `⚔️ 基础伤害:${awardedWeapon.damage}`,
10074
- `🔮 特殊效果:${awardedWeapon.specialeffect || "无"}`,
10075
10133
  `📖 描述:${awardedWeapon.description}`
10076
10134
  ].join("\n");
10077
10135
  });
package/lib/tasks.d.ts CHANGED
@@ -43,8 +43,16 @@ export declare const Tasklist: {
43
43
  readonly id: 6;
44
44
  readonly type: "可重复任务";
45
45
  readonly target: 1;
46
- readonly price: 150;
46
+ readonly price: 200;
47
47
  readonly redCrystalCost: 0;
48
48
  readonly condition: "使用【M4AE脉冲步枪】攻击目标并成功削减其护甲";
49
49
  };
50
+ readonly 烈火燎原: {
51
+ readonly id: 7;
52
+ readonly type: "可重复任务";
53
+ readonly target: 1;
54
+ readonly price: 50;
55
+ readonly redCrystalCost: 0;
56
+ readonly condition: "使用【焚烧枪】或【龙息霰弹枪】攻击目标并成功增加其燃烧层数";
57
+ };
50
58
  };
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.86",
4
+ "version": "1.4.88",
5
5
  "main": "lib/index.js",
6
6
  "typings": "lib/index.d.ts",
7
7
  "files": [