koishi-plugin-ggcevo-game 1.5.0 → 1.5.2

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.
@@ -586,6 +586,56 @@ export declare const BattleEffectProcessor: {
586
586
  } | null;
587
587
  burnLayerAdded: boolean;
588
588
  } | null;
589
+ handleGeneMutation: (targetBoss: any) => {
590
+ messages: string[];
591
+ targetUpdates: {
592
+ name: string;
593
+ updates: Partial<BattleStatistics>;
594
+ } | null;
595
+ tempMark: boolean;
596
+ } | null;
597
+ handleRedundancyOptimization: (targetBoss: any, weaponName: string) => {
598
+ isImmune: boolean;
599
+ messages: string[];
600
+ targetUpdates: {
601
+ name: string;
602
+ updates: Partial<BattleStatistics>;
603
+ } | null;
604
+ } | null;
605
+ handleEnvironmentalAdaptation: (targetBoss: any, weaponName: string) => {
606
+ isImmune: boolean;
607
+ messages: string[];
608
+ targetUpdates: {
609
+ name: string;
610
+ updates: Partial<BattleStatistics>;
611
+ } | null;
612
+ } | null;
613
+ handleAcceleratedDifferentiation: (targetBoss: any) => {
614
+ messages: string[];
615
+ targetUpdates: {
616
+ name: string;
617
+ updates: Partial<BattleStatistics>;
618
+ } | null;
619
+ } | null;
620
+ handleEnduranceEnhancement: (targetBoss: any) => {
621
+ messages: string[];
622
+ nerfMultiplier: number;
623
+ } | null;
624
+ handleThickenedCarapace: (targetBoss: any) => {
625
+ nerfMultiplier: number;
626
+ messages: string[];
627
+ } | null;
628
+ handleAcceleratedMetabolism: (targetBoss: any) => {
629
+ messages: string[];
630
+ targetUpdates: {
631
+ name: string;
632
+ updates: Partial<BattleStatistics>;
633
+ } | null;
634
+ } | null;
635
+ handleBiologicalSignatureImitation: (targetBoss: any) => {
636
+ isImmune: boolean;
637
+ messages: string[];
638
+ } | null;
589
639
  };
590
640
  /**
591
641
  * 统一处理所有被动效果(包含伤害修正、免疫检查、状态更新等)
package/lib/index.js CHANGED
@@ -1600,12 +1600,12 @@ var bossPool = [
1600
1600
  main: {
1601
1601
  name: "坏兄弟",
1602
1602
  type: "主宰",
1603
- maxHP: 2e4,
1603
+ maxHP: 25e3,
1604
1604
  maxShield: 0,
1605
1605
  maxEnergy: 1e3,
1606
1606
  armor: 3,
1607
1607
  shieldArmor: 0,
1608
- maxStacks: 20,
1608
+ maxStacks: 100,
1609
1609
  tags: ["生物", "异形"],
1610
1610
  passive: ["基因变异"]
1611
1611
  },
@@ -3737,7 +3737,260 @@ var BattleEffectProcessor = {
3737
3737
  targetUpdates,
3738
3738
  burnLayerAdded
3739
3739
  };
3740
- }, "handleBurnEffect")
3740
+ }, "handleBurnEffect"),
3741
+ // 基因变异处理函数
3742
+ handleGeneMutation: /* @__PURE__ */ __name(function(targetBoss) {
3743
+ const messages = [];
3744
+ let targetUpdates = null;
3745
+ let tempMark = false;
3746
+ if (!targetBoss.skills.includes("基因变异")) {
3747
+ return null;
3748
+ }
3749
+ tempMark = true;
3750
+ const currentStatusLayers = targetBoss.statusLayers || 0;
3751
+ targetUpdates = {
3752
+ name: targetBoss.name,
3753
+ updates: {
3754
+ statusLayersChanged: 1,
3755
+ // statusLayers +1
3756
+ skillStacksChanged: 1
3757
+ // skillStacks +1
3758
+ }
3759
+ };
3760
+ messages.push(`🧬 【基因变异】生效:获得1层「基因变异」`);
3761
+ const energyGain = 100;
3762
+ targetUpdates.updates.energyChange = energyGain;
3763
+ messages.push(`🧬 【基因变异】生效:回复${energyGain}点能量`);
3764
+ if ((currentStatusLayers + 1) % 3 === 0) {
3765
+ const geneSkills = targetBoss.skills.filter((skill) => [
3766
+ "优化冗余片段",
3767
+ "开天眼",
3768
+ "环境适应",
3769
+ "加快分化",
3770
+ "耐力强化",
3771
+ "稳定DNA",
3772
+ "增厚甲壳",
3773
+ "质粒增殖",
3774
+ "加速代谢",
3775
+ "组织增生",
3776
+ "模仿生物签名"
3777
+ ].includes(skill));
3778
+ const geneSkillCount = geneSkills.length;
3779
+ if (geneSkillCount >= 4) {
3780
+ targetUpdates.updates.statusLayersChanged = -(currentStatusLayers + 1);
3781
+ targetUpdates.updates.skillsRemoved = [...geneSkills];
3782
+ messages.push(`🧬 【基因变异】触发:移除所有基因技能`);
3783
+ } else {
3784
+ const availableSkills = [
3785
+ "优化冗余片段",
3786
+ "开天眼",
3787
+ "环境适应",
3788
+ "加快分化",
3789
+ "耐力强化",
3790
+ "稳定DNA",
3791
+ "增厚甲壳",
3792
+ "质粒增殖",
3793
+ "加速代谢",
3794
+ "组织增生",
3795
+ "模仿生物签名"
3796
+ ].filter((skill) => !targetBoss.skills.includes(skill));
3797
+ if (availableSkills.length > 0) {
3798
+ const randomIndex = Math.floor(Math.random() * availableSkills.length);
3799
+ const newSkill = availableSkills[randomIndex];
3800
+ const updates = targetUpdates.updates;
3801
+ updates.skillsAdded = updates.skillsAdded || [];
3802
+ updates.skillsAdded.push(newSkill);
3803
+ messages.push(`🧬 【基因变异】触发:获得基因技能「${newSkill}」`);
3804
+ }
3805
+ }
3806
+ }
3807
+ return {
3808
+ messages,
3809
+ targetUpdates,
3810
+ tempMark
3811
+ };
3812
+ }, "handleGeneMutation"),
3813
+ // 优化冗余片段处理(免疫辐射伤害)
3814
+ handleRedundancyOptimization: /* @__PURE__ */ __name(function(targetBoss, weaponName) {
3815
+ const messages = [];
3816
+ if (!targetBoss.skills.includes("优化冗余片段")) {
3817
+ return null;
3818
+ }
3819
+ const isRadiationDamage = weaponName === "伽马枪";
3820
+ if (!isRadiationDamage) {
3821
+ return null;
3822
+ }
3823
+ if (targetBoss.radiationLayers > 0) {
3824
+ const updates = {
3825
+ radiationLayersChange: -(targetBoss.radiationLayers + 2)
3826
+ };
3827
+ return {
3828
+ isImmune: true,
3829
+ messages: [`🧬 【优化冗余片段】生效:免疫辐射伤害并清空所有辐射层数`],
3830
+ targetUpdates: {
3831
+ name: targetBoss.name,
3832
+ updates
3833
+ }
3834
+ };
3835
+ }
3836
+ return {
3837
+ isImmune: true,
3838
+ messages: [`🧬 【优化冗余片段】生效:免疫辐射伤害`],
3839
+ targetUpdates: null
3840
+ };
3841
+ }, "handleRedundancyOptimization"),
3842
+ // 环境适应处理(免疫火焰和寒冷伤害,任意攻击都会清空寒冷/燃烧层数)
3843
+ handleEnvironmentalAdaptation: /* @__PURE__ */ __name(function(targetBoss, weaponName) {
3844
+ const messages = [];
3845
+ if (!targetBoss.skills.includes("环境适应")) {
3846
+ return null;
3847
+ }
3848
+ const isFireDamage = weaponName === "焚烧枪";
3849
+ const isColdDamage = weaponName === "零度之下";
3850
+ const updates = {};
3851
+ let clearMessage = "";
3852
+ if (targetBoss.burnLayers > 0) {
3853
+ updates.burnLayersChanged = -(targetBoss.burnLayers + 1);
3854
+ clearMessage += `清空所有燃烧层数`;
3855
+ }
3856
+ if (targetBoss.coldLayers > 0) {
3857
+ updates.coldLayersChange = -(targetBoss.coldLayers + 1);
3858
+ if (clearMessage) clearMessage += "和";
3859
+ clearMessage += `清空所有寒冷层数`;
3860
+ }
3861
+ let isImmune = false;
3862
+ let immuneMessage = "";
3863
+ if (isFireDamage || isColdDamage) {
3864
+ isImmune = true;
3865
+ immuneMessage = `免疫${isFireDamage ? "火焰" : "寒冷"}伤害`;
3866
+ }
3867
+ let fullMessage = `🧬 【环境适应】生效:`;
3868
+ if (immuneMessage && clearMessage) {
3869
+ fullMessage += `${immuneMessage}并${clearMessage}`;
3870
+ } else if (immuneMessage) {
3871
+ fullMessage += immuneMessage;
3872
+ } else if (clearMessage) {
3873
+ fullMessage += clearMessage;
3874
+ } else {
3875
+ return null;
3876
+ }
3877
+ return {
3878
+ isImmune,
3879
+ messages: [fullMessage],
3880
+ targetUpdates: Object.keys(updates).length > 0 ? {
3881
+ name: targetBoss.name,
3882
+ updates
3883
+ } : null
3884
+ };
3885
+ }, "handleEnvironmentalAdaptation"),
3886
+ // 加快分化处理(回复生命值)
3887
+ handleAcceleratedDifferentiation: /* @__PURE__ */ __name(function(targetBoss) {
3888
+ if (!targetBoss.skills.includes("加快分化")) {
3889
+ return null;
3890
+ }
3891
+ const geneStacks = targetBoss.skillStacks || 0;
3892
+ if (geneStacks === 0) {
3893
+ return null;
3894
+ }
3895
+ const healAmount = geneStacks * 10;
3896
+ return {
3897
+ messages: [`🧬 【加快分化】生效:回复${healAmount}点生命值`],
3898
+ targetUpdates: {
3899
+ name: targetBoss.name,
3900
+ updates: {
3901
+ hpChange: healAmount
3902
+ }
3903
+ }
3904
+ };
3905
+ }, "handleAcceleratedDifferentiation"),
3906
+ // 耐力强化处理(能量回复和减伤)
3907
+ handleEnduranceEnhancement: /* @__PURE__ */ __name(function(targetBoss) {
3908
+ if (!targetBoss.skills.includes("耐力强化")) {
3909
+ return null;
3910
+ }
3911
+ const messages = [];
3912
+ let nerfMultiplier = 0;
3913
+ const currentEnergy = targetBoss.energy || 0;
3914
+ const maxEnergy = getMaxEnergyByName(targetBoss.name);
3915
+ const energyPercent = maxEnergy > 0 ? currentEnergy / maxEnergy : 0;
3916
+ if (energyPercent >= 0.8) {
3917
+ nerfMultiplier = 0.8;
3918
+ messages.push(`🧬 【耐力强化】生效:能量≥80%,受到的伤害-80%`);
3919
+ } else if (energyPercent >= 0.5) {
3920
+ nerfMultiplier = 0.5;
3921
+ messages.push(`🧬 【耐力强化】生效:能量≥50%,受到的伤害-50%`);
3922
+ } else if (energyPercent >= 0.3) {
3923
+ nerfMultiplier = 0.3;
3924
+ messages.push(`🧬 【耐力强化】生效:能量≥30%,受到的伤害-30%`);
3925
+ }
3926
+ return {
3927
+ messages,
3928
+ nerfMultiplier
3929
+ };
3930
+ }, "handleEnduranceEnhancement"),
3931
+ // 增厚甲壳处理(减伤)
3932
+ handleThickenedCarapace: /* @__PURE__ */ __name(function(targetBoss) {
3933
+ if (!targetBoss.skills.includes("增厚甲壳")) {
3934
+ return null;
3935
+ }
3936
+ const geneStacks = targetBoss.skillStacks || 0;
3937
+ const nerfMultiplier = geneStacks * 0.05;
3938
+ if (nerfMultiplier === 0) {
3939
+ return null;
3940
+ }
3941
+ return {
3942
+ nerfMultiplier,
3943
+ messages: [`🧬 【增厚甲壳】生效:受到的伤害-${(nerfMultiplier * 100).toFixed(0)}%`]
3944
+ };
3945
+ }, "handleThickenedCarapace"),
3946
+ // 加速代谢处理(额外增加基因变异层数)
3947
+ handleAcceleratedMetabolism: /* @__PURE__ */ __name(function(targetBoss) {
3948
+ if (!targetBoss.skills.includes("加速代谢")) {
3949
+ return null;
3950
+ }
3951
+ const geneSkillsCount = targetBoss.skills.filter((skill) => [
3952
+ "优化冗余片段",
3953
+ "开天眼",
3954
+ "环境适应",
3955
+ "加快分化",
3956
+ "耐力强化",
3957
+ "稳定DNA",
3958
+ "增厚甲壳",
3959
+ "质粒增殖",
3960
+ "加速代谢",
3961
+ "组织增生",
3962
+ "模仿生物签名"
3963
+ ].includes(skill)).length;
3964
+ if (geneSkillsCount > 0) {
3965
+ return {
3966
+ messages: [`🧬 【加速代谢】生效:当前拥有${geneSkillsCount}个基因技能,额外增加${geneSkillsCount}层基因变异`],
3967
+ targetUpdates: {
3968
+ name: targetBoss.name,
3969
+ updates: {
3970
+ skillStacksChanged: geneSkillsCount
3971
+ }
3972
+ }
3973
+ };
3974
+ }
3975
+ return null;
3976
+ }, "handleAcceleratedMetabolism"),
3977
+ // 模仿生物签名处理(概率免疫伤害)
3978
+ handleBiologicalSignatureImitation: /* @__PURE__ */ __name(function(targetBoss) {
3979
+ if (!targetBoss.skills.includes("模仿生物签名")) {
3980
+ return null;
3981
+ }
3982
+ const geneStacks = targetBoss.skillStacks || 0;
3983
+ const baseChance = 0.05;
3984
+ const stackBonus = geneStacks * 0.01;
3985
+ const totalChance = Math.min(baseChance + stackBonus, 0.99);
3986
+ if (Math.random() < totalChance) {
3987
+ return {
3988
+ isImmune: true,
3989
+ messages: [`🧬 【模仿生物签名】生效:${(totalChance * 100).toFixed(1)}%概率免疫本次伤害`]
3990
+ };
3991
+ }
3992
+ return null;
3993
+ }, "handleBiologicalSignatureImitation")
3741
3994
  };
3742
3995
  function applyPassiveEffects(targetBoss, activeBosses, weaponName, damage, hasCrit, ignoreRate, careerData, equippedWeapon) {
3743
3996
  const messages = [];
@@ -3795,6 +4048,16 @@ function applyPassiveEffects(targetBoss, activeBosses, weaponName, damage, hasCr
3795
4048
  }
3796
4049
  ];
3797
4050
  const fireImmuneEffects = [];
4051
+ const conditionImmuneEffects = [
4052
+ {
4053
+ effect: BattleEffectProcessor.handleRedundancyOptimization,
4054
+ args: [targetBoss, weaponName]
4055
+ },
4056
+ {
4057
+ effect: BattleEffectProcessor.handleEnvironmentalAdaptation,
4058
+ args: [targetBoss, weaponName]
4059
+ }
4060
+ ];
3798
4061
  const chanceImmuneEffects = [
3799
4062
  {
3800
4063
  effect: BattleEffectProcessor.handleDeadlyHit,
@@ -3807,9 +4070,13 @@ function applyPassiveEffects(targetBoss, activeBosses, weaponName, damage, hasCr
3807
4070
  {
3808
4071
  effect: BattleEffectProcessor.handleAncientOmen,
3809
4072
  args: [targetBoss, weaponData]
4073
+ },
4074
+ {
4075
+ effect: BattleEffectProcessor.handleBiologicalSignatureImitation,
4076
+ args: [targetBoss]
3810
4077
  }
3811
4078
  ];
3812
- const allImmuneEffects = [...coldImmuneEffects, ...fireImmuneEffects, ...chanceImmuneEffects];
4079
+ const allImmuneEffects = [...coldImmuneEffects, ...fireImmuneEffects, ...chanceImmuneEffects, ...conditionImmuneEffects];
3813
4080
  for (const immuneEffect of allImmuneEffects) {
3814
4081
  const result = processEffect(immuneEffect.effect, ...immuneEffect.args);
3815
4082
  if (result?.isImmune) immune = true;
@@ -3851,6 +4118,14 @@ function applyPassiveEffects(targetBoss, activeBosses, weaponName, damage, hasCr
3851
4118
  }
3852
4119
  messages.push(...carpetBombResult.messages);
3853
4120
  }
4121
+ const geneMutationResult = BattleEffectProcessor.handleGeneMutation(targetBoss);
4122
+ if (geneMutationResult) {
4123
+ messages.push(...geneMutationResult.messages);
4124
+ if (geneMutationResult.targetUpdates) {
4125
+ updateStatsByName(geneMutationResult.targetUpdates.name, geneMutationResult.targetUpdates.updates);
4126
+ }
4127
+ isolatedImmunityMark = geneMutationResult.tempMark;
4128
+ }
3854
4129
  const damageAdjustEffects = [
3855
4130
  // 单参数效果
3856
4131
  { effect: BattleEffectProcessor.handleWeakForm, args: [targetBoss] },
@@ -3878,7 +4153,10 @@ function applyPassiveEffects(targetBoss, activeBosses, weaponName, damage, hasCr
3878
4153
  { effect: BattleEffectProcessor.handleHunterAlien, args: [targetBoss, activeBosses, weaponName] },
3879
4154
  { effect: BattleEffectProcessor.handleHiveMind, args: [targetBoss, activeBosses] },
3880
4155
  { effect: BattleEffectProcessor.handleReleasePheromones, args: [targetBoss] },
3881
- { effect: BattleEffectProcessor.handleWeakeningSpit, args: [targetBoss, activeBosses] }
4156
+ { effect: BattleEffectProcessor.handleWeakeningSpit, args: [targetBoss, activeBosses] },
4157
+ { effect: BattleEffectProcessor.handleThickenedCarapace, args: [targetBoss] },
4158
+ { effect: BattleEffectProcessor.handleEnduranceEnhancement, args: [targetBoss] },
4159
+ { effect: BattleEffectProcessor.handleAcceleratedMetabolism, args: [targetBoss] }
3882
4160
  ];
3883
4161
  for (const effectItem of damageAdjustEffects) {
3884
4162
  const result = processEffect(effectItem.effect, ...effectItem.args);
@@ -3959,7 +4237,8 @@ function applyPassiveEffects(targetBoss, activeBosses, weaponName, damage, hasCr
3959
4237
  // 6. 淬毒撕咬
3960
4238
  { effect: BattleEffectProcessor.handlePoisonedBite, args: [targetBoss] },
3961
4239
  { effect: BattleEffectProcessor.handleHealingSwarm, args: [targetBoss, activeBosses] },
3962
- { effect: BattleEffectProcessor.handleBurrowAmbush, args: [targetBoss, activeBosses] }
4240
+ { effect: BattleEffectProcessor.handleBurrowAmbush, args: [targetBoss, activeBosses] },
4241
+ { effect: BattleEffectProcessor.handleAcceleratedDifferentiation, args: [targetBoss] }
3963
4242
  ];
3964
4243
  for (const effectItem of healingEffects) {
3965
4244
  processEffect(effectItem.effect, ...effectItem.args);
@@ -4053,11 +4332,19 @@ function applyPassiveEffects(targetBoss, activeBosses, weaponName, damage, hasCr
4053
4332
  }
4054
4333
  finalDamage += burnDamage;
4055
4334
  }
4335
+ if (targetBoss.skills && targetBoss.skills.includes("组织增生")) {
4336
+ const geneMutationStacks = targetBoss?.skillStacks || 0;
4337
+ const armorBonus = geneMutationStacks;
4338
+ armor += armorBonus;
4339
+ if (armorBonus > 0) {
4340
+ messages.push(`【组织增生】生效:临时增加${armorBonus}点护甲`);
4341
+ }
4342
+ }
4056
4343
  let armorDamageReduction = weaponData.armorDamageReduction || 0;
4057
4344
  if (careerData?.career === "猩红杀手" && weaponName === "侦察步枪") {
4058
4345
  armorDamageReduction = 1;
4059
4346
  }
4060
- armor = targetBoss.armor - targetBoss.radiationLayers * 0.05;
4347
+ armor += targetBoss.armor - targetBoss.radiationLayers * 0.05;
4061
4348
  const armorReduction = armorDamageReduction * armor;
4062
4349
  if (armorReduction !== 0) {
4063
4350
  messages.push(`护甲减伤: ${armorReduction.toFixed(2)}点`);
@@ -4467,7 +4754,7 @@ var passiveConfig = {
4467
4754
  derivedSkills: []
4468
4755
  },
4469
4756
  "基因变异": {
4470
- description: "移除孤立无援状态;每次受击叠加1层「基因变异」;每受击3次随机获得1个基因技能,累计获得4个基因后再次触发则移除全部基因技能",
4757
+ description: "移除孤立无援状态;每次受击叠加1层「基因变异」(上限100层);每次受击回复100点能量;每受击3次随机获得1个基因技能,累计获得4个基因后再次触发则移除全部基因技能",
4471
4758
  belong: ["坏兄弟"],
4472
4759
  derivedSkills: [
4473
4760
  "优化冗余片段",
@@ -4519,17 +4806,17 @@ var passiveConfig = {
4519
4806
  derivedSkills: []
4520
4807
  },
4521
4808
  "质粒增殖": {
4522
- description: "每次受击回复100点能量;免疫脉冲手雷",
4809
+ description: "免疫脉冲手雷",
4523
4810
  belong: [],
4524
4811
  derivedSkills: []
4525
4812
  },
4526
4813
  "加速代谢": {
4527
- description: "每次受击叠加X层「基因变异」(X为当前拥有的技能数量)",
4814
+ description: "每次受击叠加X层「基因变异」(X为当前拥有的基因技能数量)",
4528
4815
  belong: [],
4529
4816
  derivedSkills: []
4530
4817
  },
4531
4818
  "组织增生": {
4532
- description: "每层「基因变异」使护甲值提高1点",
4819
+ description: "每层「基因变异」使护甲值临时提高1点",
4533
4820
  belong: [],
4534
4821
  derivedSkills: []
4535
4822
  },
@@ -4899,7 +5186,13 @@ async function applyItemEffect(ctx, session, handle, itemConfig2, target) {
4899
5186
  success: false,
4900
5187
  message: "无法找到指定的目标。"
4901
5188
  };
4902
- if (targetboss.tags.includes("建筑") || targetboss.tags.includes("重型")) {
5189
+ if (targetboss.skills.includes("开天眼")) {
5190
+ return {
5191
+ success: false,
5192
+ message: `目标免疫闪光弹,无法使用此物品。`
5193
+ };
5194
+ }
5195
+ if (targetboss.tags.includes("建筑") || targetboss.tags.includes("重型") || targetboss.skills.includes("开天眼")) {
4903
5196
  return {
4904
5197
  success: false,
4905
5198
  message: `目标${target}拥有"${targetboss.tags.includes("建筑") ? "建筑" : "重型"}"标签,无法使用此物品。`
@@ -4933,6 +5226,12 @@ async function applyItemEffect(ctx, session, handle, itemConfig2, target) {
4933
5226
  name: target,
4934
5227
  isActive: true
4935
5228
  });
5229
+ if (targetboss.skills.includes("质粒增殖")) {
5230
+ return {
5231
+ success: false,
5232
+ message: `目标免疫脉冲手雷,无法使用此物品。`
5233
+ };
5234
+ }
4936
5235
  if (!targetboss || targetboss?.energy === 0) return {
4937
5236
  success: false,
4938
5237
  message: "您无法对没有能量的目标使用。"
@@ -5309,11 +5608,17 @@ async function calculateTotalDamage(ctx, session, config, equippedWeapon, target
5309
5608
  const levelBonusRate = isLegendary ? 0.05 : 0.1;
5310
5609
  const baseDamage = weaponData.damage * (1 + levelBonusRate * equippedWeapon.level);
5311
5610
  effectMessage.push(`🔫 ${weaponName} Lv.${equippedWeapon.level}:基础伤害${baseDamage.toFixed(1)}`);
5312
- const tagAdditive = await calculateTagMultiplier(weaponData, finalTags, equippedWeapon);
5313
- const tagMultiplier = 1 + tagAdditive;
5314
- if (tagAdditive !== 0) {
5315
- const sign = tagAdditive >= 0 ? "+" : "";
5316
- effectMessage.push(`📌 标签加成:攻击伤害${sign}${Math.round(tagAdditive * 100)}%`);
5611
+ let tagMultiplier = 1;
5612
+ let tagAdditive = 0;
5613
+ if (targetBoss.skills && targetBoss.skills.includes("稳定DNA")) {
5614
+ effectMessage.push(`🧬 稳定DNA:目标免疫标签伤害加成`);
5615
+ } else {
5616
+ tagAdditive = await calculateTagMultiplier(weaponData, finalTags, equippedWeapon);
5617
+ tagMultiplier = 1 + tagAdditive;
5618
+ if (tagAdditive !== 0) {
5619
+ const sign = tagAdditive >= 0 ? "+" : "";
5620
+ effectMessage.push(`📌 标签加成:攻击伤害${sign}${Math.round(tagAdditive * 100)}%`);
5621
+ }
5317
5622
  }
5318
5623
  const { totalModAdd, modMessages } = calculateModifiers(equippedWeapon, weaponName);
5319
5624
  effectMessage.push(...modMessages);
@@ -9123,7 +9428,7 @@ ${testResult.passiveMessages.map((m) => `▸ ${m}`).join("\n")}`
9123
9428
  } else {
9124
9429
  result.push("➤ 无");
9125
9430
  }
9126
- const countingSkill = mainBoss.skills?.find((s) => ["岗哨机枪", "吸血唾液", "灼烧粘液", "光影之刃", "毒性唾液"].includes(s));
9431
+ const countingSkill = mainBoss.skills?.find((s) => ["岗哨机枪", "吸血唾液", "灼烧粘液", "光影之刃", "毒性唾液", "基因变异"].includes(s));
9127
9432
  if (countingSkill) {
9128
9433
  result.push(`📈 ${countingSkill}:${mainBoss.skillStacks}层`);
9129
9434
  }
@@ -9190,7 +9495,7 @@ ${testResult.passiveMessages.map((m) => `▸ ${m}`).join("\n")}`
9190
9495
  } else {
9191
9496
  minionInfo.push("➤ 无");
9192
9497
  }
9193
- const minionCountingSkill = minion.skills?.find((s) => ["岗哨机枪", "吸血唾液", "灼烧粘液", "光影之刃", "毒性唾液"].includes(s));
9498
+ const minionCountingSkill = minion.skills?.find((s) => ["岗哨机枪", "吸血唾液", "灼烧粘液", "光影之刃", "毒性唾液", "基因变异"].includes(s));
9194
9499
  if (minionCountingSkill) {
9195
9500
  minionInfo.push(`📈 ${minionCountingSkill}:${minion.skillStacks}层`);
9196
9501
  }
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.5.0",
4
+ "version": "1.5.2",
5
5
  "main": "lib/index.js",
6
6
  "typings": "lib/index.d.ts",
7
7
  "files": [