koishi-plugin-ggcevo-game 1.3.35 → 1.3.36
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.d.ts +2 -0
- package/lib/index.js +300 -5
- package/package.json +1 -1
package/lib/index.d.ts
CHANGED
package/lib/index.js
CHANGED
|
@@ -228,6 +228,8 @@ function apply(ctx, config) {
|
|
|
228
228
|
// 明确数组元素类型
|
|
229
229
|
Skillcountpoints: "unsigned",
|
|
230
230
|
Vulnerability: "unsigned",
|
|
231
|
+
freezing: "unsigned",
|
|
232
|
+
energy: "unsigned",
|
|
231
233
|
groupId: "unsigned",
|
|
232
234
|
isActive: "boolean",
|
|
233
235
|
respawnTime: "timestamp"
|
|
@@ -656,6 +658,38 @@ function apply(ctx, config) {
|
|
|
656
658
|
"辐射": {
|
|
657
659
|
effect: 0,
|
|
658
660
|
description: "受到伽马枪攻击时会积累辐射层数,每层使受到的伤害增加1%(至多增加100%)"
|
|
661
|
+
},
|
|
662
|
+
"电能导体": {
|
|
663
|
+
effect: 0,
|
|
664
|
+
description: "当血量降低到10%以下时,“护盾”标签变为“重甲”标签; 受到寒冷伤害时,会叠加一层“寒冷”(至多10层)"
|
|
665
|
+
},
|
|
666
|
+
"超导体": {
|
|
667
|
+
effect: 0,
|
|
668
|
+
description: "当血量降低到5%以下时,“护盾”标签变为“重甲”标签; 受到寒冷伤害时,会叠加一层“寒冷”(至多10层)"
|
|
669
|
+
},
|
|
670
|
+
"能量虹吸": {
|
|
671
|
+
effect: 0,
|
|
672
|
+
description: "当血量大于70%的时候,受到的伤害-40%; 当血量大于30%的时候,受到的伤害-20%"
|
|
673
|
+
},
|
|
674
|
+
"电能立场": {
|
|
675
|
+
effect: 0,
|
|
676
|
+
description: "当“能量”大于10%的时候,每次受到攻击有55%的概率消耗10%的“能量”免疫此次伤害(无法免疫寒冷伤害); 每拥有一层“寒冷”则降低5%的概率"
|
|
677
|
+
},
|
|
678
|
+
"电能冲击波": {
|
|
679
|
+
effect: 0,
|
|
680
|
+
description: "每次受到攻击时,自身回复100点“能量”"
|
|
681
|
+
},
|
|
682
|
+
"能源虹吸": {
|
|
683
|
+
effect: 0,
|
|
684
|
+
description: "拥有独特的“能量”机制。当“能量”大于80%的时候,受到的伤害-50%; 当“能量”大于50%的时候,受到的伤害-30%"
|
|
685
|
+
},
|
|
686
|
+
"脉冲": {
|
|
687
|
+
effect: 0,
|
|
688
|
+
description: "当“能量”大于80%的时候,每次受到攻击有60%的概率回复所有异形100点HP; 每拥有一层“寒冷”则降低5%的概率"
|
|
689
|
+
},
|
|
690
|
+
"能量黑洞": {
|
|
691
|
+
effect: 0,
|
|
692
|
+
description: "存在“能量黑洞”,受到的伤害-10%; 每拥有一层“寒冷”,受到的伤害+5%"
|
|
659
693
|
}
|
|
660
694
|
};
|
|
661
695
|
const defineBoss = /* @__PURE__ */ __name((config2) => config2, "defineBoss");
|
|
@@ -666,6 +700,7 @@ function apply(ctx, config) {
|
|
|
666
700
|
name: "异齿猛兽首领",
|
|
667
701
|
type: "主宰",
|
|
668
702
|
maxHP: 15e3,
|
|
703
|
+
energy: 0,
|
|
669
704
|
tags: asBossTags(["重甲", "生物", "异形"]),
|
|
670
705
|
passive: asPassives(["异形甲壳"])
|
|
671
706
|
},
|
|
@@ -674,6 +709,7 @@ function apply(ctx, config) {
|
|
|
674
709
|
name: "异齿猛兽",
|
|
675
710
|
type: "子代",
|
|
676
711
|
maxHP: 5e3,
|
|
712
|
+
energy: 0,
|
|
677
713
|
tags: asBossTags(["重甲", "生物", "重型", "异形"]),
|
|
678
714
|
passive: asPassives(["弱化形态", "异形甲壳"])
|
|
679
715
|
}
|
|
@@ -685,6 +721,7 @@ function apply(ctx, config) {
|
|
|
685
721
|
name: "寒冰王蛇",
|
|
686
722
|
type: "主宰",
|
|
687
723
|
maxHP: 15e3,
|
|
724
|
+
energy: 0,
|
|
688
725
|
tags: asBossTags(["重甲", "生物", "惧热", "重型", "异形"]),
|
|
689
726
|
passive: asPassives(["冰霜环绕", "冰霜进化"])
|
|
690
727
|
},
|
|
@@ -693,6 +730,7 @@ function apply(ctx, config) {
|
|
|
693
730
|
name: "冰蛇",
|
|
694
731
|
type: "子代",
|
|
695
732
|
maxHP: 5e3,
|
|
733
|
+
energy: 0,
|
|
696
734
|
tags: asBossTags(["生物", "惧热", "异形"]),
|
|
697
735
|
passive: asPassives(["弱化形态", "冰霜回复", "冰霜进化"])
|
|
698
736
|
}
|
|
@@ -704,6 +742,7 @@ function apply(ctx, config) {
|
|
|
704
742
|
name: "莽兽",
|
|
705
743
|
type: "主宰",
|
|
706
744
|
maxHP: 12e3,
|
|
745
|
+
energy: 0,
|
|
707
746
|
tags: asBossTags(["重甲", "生物", "重型", "异形"]),
|
|
708
747
|
passive: asPassives(["应激甲壳II", "求生本能II", "冷适应"])
|
|
709
748
|
},
|
|
@@ -712,6 +751,7 @@ function apply(ctx, config) {
|
|
|
712
751
|
name: "狂暴畸变体",
|
|
713
752
|
type: "子代",
|
|
714
753
|
maxHP: 4e3,
|
|
754
|
+
energy: 0,
|
|
715
755
|
tags: asBossTags(["重甲", "生物", "重型", "异形"]),
|
|
716
756
|
passive: asPassives(["弱化形态", "应激甲壳I", "求生本能I", "冷适应"])
|
|
717
757
|
},
|
|
@@ -719,6 +759,7 @@ function apply(ctx, config) {
|
|
|
719
759
|
name: "剧毒畸变体",
|
|
720
760
|
type: "子代",
|
|
721
761
|
maxHP: 4e3,
|
|
762
|
+
energy: 0,
|
|
722
763
|
tags: asBossTags(["重甲", "生物", "重型", "异形"]),
|
|
723
764
|
passive: asPassives(["弱化形态", "应激甲壳I", "求生本能I", "冷适应"])
|
|
724
765
|
}
|
|
@@ -730,6 +771,7 @@ function apply(ctx, config) {
|
|
|
730
771
|
name: "空间站感染虫",
|
|
731
772
|
type: "主宰",
|
|
732
773
|
maxHP: 1e4,
|
|
774
|
+
energy: 0,
|
|
733
775
|
tags: asBossTags(["重甲", "生物", "机械", "异形"]),
|
|
734
776
|
passive: asPassives(["感染空间站", "病毒云", "霉菌滋生"])
|
|
735
777
|
},
|
|
@@ -738,6 +780,7 @@ function apply(ctx, config) {
|
|
|
738
780
|
name: "机械感染虫",
|
|
739
781
|
type: "子代",
|
|
740
782
|
maxHP: 3e3,
|
|
783
|
+
energy: 0,
|
|
741
784
|
tags: asBossTags(["重甲", "生物", "机械", "异形"]),
|
|
742
785
|
passive: asPassives(["弱化形态", "病毒云", "霉菌滋生"])
|
|
743
786
|
},
|
|
@@ -745,6 +788,7 @@ function apply(ctx, config) {
|
|
|
745
788
|
name: "空间站哨枪塔",
|
|
746
789
|
type: "子代",
|
|
747
790
|
maxHP: 5e3,
|
|
791
|
+
energy: 0,
|
|
748
792
|
tags: asBossTags(["重甲", "机械", "建筑"]),
|
|
749
793
|
passive: asPassives(["岗哨机枪", "结构装甲"])
|
|
750
794
|
}
|
|
@@ -756,6 +800,7 @@ function apply(ctx, config) {
|
|
|
756
800
|
name: "吸血蝙蝠首领",
|
|
757
801
|
type: "主宰",
|
|
758
802
|
maxHP: 12e3,
|
|
803
|
+
energy: 0,
|
|
759
804
|
tags: asBossTags(["生物", "异形"]),
|
|
760
805
|
passive: asPassives(["吸血唾液", "进食", "吐血", "嗜血狂暴"])
|
|
761
806
|
},
|
|
@@ -764,10 +809,40 @@ function apply(ctx, config) {
|
|
|
764
809
|
name: "吸血蝙蝠",
|
|
765
810
|
type: "子代",
|
|
766
811
|
maxHP: 4e3,
|
|
812
|
+
energy: 0,
|
|
767
813
|
tags: asBossTags(["生物", "异形"]),
|
|
768
814
|
passive: asPassives(["弱化形态", "吸血唾液", "进食", "吐血"])
|
|
769
815
|
}
|
|
770
816
|
]
|
|
817
|
+
}),
|
|
818
|
+
defineBoss({
|
|
819
|
+
main: {
|
|
820
|
+
id: 6,
|
|
821
|
+
name: "亚电主宰者",
|
|
822
|
+
type: "主宰",
|
|
823
|
+
maxHP: 2e4,
|
|
824
|
+
energy: 1e3,
|
|
825
|
+
tags: asBossTags(["护盾", "灵能", "重型", "异形"]),
|
|
826
|
+
passive: asPassives(["超导体", "电能冲击波", "电能立场", "能源虹吸", "脉冲", "能量黑洞"])
|
|
827
|
+
},
|
|
828
|
+
minions: [
|
|
829
|
+
{
|
|
830
|
+
name: "亚电能者",
|
|
831
|
+
type: "子代",
|
|
832
|
+
maxHP: 6e3,
|
|
833
|
+
energy: 0,
|
|
834
|
+
tags: asBossTags(["护盾", "灵能", "异形"]),
|
|
835
|
+
passive: asPassives(["弱化形态", "超导体", "能量虹吸", "能量黑洞"])
|
|
836
|
+
},
|
|
837
|
+
{
|
|
838
|
+
name: "电能者",
|
|
839
|
+
type: "子代",
|
|
840
|
+
maxHP: 3e3,
|
|
841
|
+
energy: 0,
|
|
842
|
+
tags: asBossTags(["护盾", "灵能", "异形"]),
|
|
843
|
+
passive: asPassives(["弱化形态", "电能导体", "能量虹吸", "能量黑洞"])
|
|
844
|
+
}
|
|
845
|
+
]
|
|
771
846
|
})
|
|
772
847
|
];
|
|
773
848
|
const spaceStationCrewConfig = [
|
|
@@ -870,7 +945,7 @@ function apply(ctx, config) {
|
|
|
870
945
|
{
|
|
871
946
|
professionName: "猩红杀手",
|
|
872
947
|
effect: "使用“侦察步枪”造成的伤害+15%; 解锁DSR-55反器材步枪(传奇)购买权限",
|
|
873
|
-
requirements: "“侦察步枪”武器等级≥3",
|
|
948
|
+
requirements: "“侦察步枪”武器等级≥3级",
|
|
874
949
|
Jobtransfer: true,
|
|
875
950
|
costcoins: 0,
|
|
876
951
|
costredcrystal: 30
|
|
@@ -1773,6 +1848,183 @@ function apply(ctx, config) {
|
|
|
1773
1848
|
messages: radiationLayers > 0 ? [`☢️ 【辐射】生效:当前${radiationLayers}层辐射,受到的伤害+${radiationLayers}%`] : []
|
|
1774
1849
|
};
|
|
1775
1850
|
}, "calculateRadiationDamage"),
|
|
1851
|
+
// === 电能相关被动处理 ===
|
|
1852
|
+
// 处理寒冷伤害叠加(电能导体/超导体)
|
|
1853
|
+
handleFreezingStack: /* @__PURE__ */ __name(async (ctx2, targetBoss, weaponName) => {
|
|
1854
|
+
if (weaponName !== "零度之下" || !(targetBoss.skills.includes("电能导体") || targetBoss.skills.includes("超导体"))) {
|
|
1855
|
+
return null;
|
|
1856
|
+
}
|
|
1857
|
+
const currentFreezing = targetBoss.freezing || 0;
|
|
1858
|
+
if (currentFreezing < 10) {
|
|
1859
|
+
const newFreezing = currentFreezing + 1;
|
|
1860
|
+
await ctx2.database.set(
|
|
1861
|
+
"ggcevo_boss",
|
|
1862
|
+
{ name: targetBoss.name },
|
|
1863
|
+
{ freezing: newFreezing }
|
|
1864
|
+
);
|
|
1865
|
+
return {
|
|
1866
|
+
messages: [`❄️ ${targetBoss.name} 获得一层"寒冷"(当前 ${newFreezing}层)`]
|
|
1867
|
+
};
|
|
1868
|
+
}
|
|
1869
|
+
return null;
|
|
1870
|
+
}, "handleFreezingStack"),
|
|
1871
|
+
// 处理导体标签变化(血量低时护盾->重甲)
|
|
1872
|
+
handleConductorTagChange: /* @__PURE__ */ __name(async (ctx2, targetBoss, currentHP, maxHP) => {
|
|
1873
|
+
const triggerThreshold = targetBoss.skills.includes("超导体") ? 0.05 : 0.1;
|
|
1874
|
+
const isBelowThreshold = currentHP <= maxHP * triggerThreshold;
|
|
1875
|
+
const hasShieldTag = targetBoss.tags.includes("护盾");
|
|
1876
|
+
const alreadyHeavyArmor = targetBoss.tags.includes("重甲");
|
|
1877
|
+
if (!targetBoss.skills.includes("超导体") || !targetBoss.skills.includes("电能导体")) return null;
|
|
1878
|
+
if (isBelowThreshold && hasShieldTag && !alreadyHeavyArmor) {
|
|
1879
|
+
const newTags = [
|
|
1880
|
+
...targetBoss.tags.filter((tag) => tag !== "护盾"),
|
|
1881
|
+
"重甲"
|
|
1882
|
+
];
|
|
1883
|
+
await ctx2.database.set(
|
|
1884
|
+
"ggcevo_boss",
|
|
1885
|
+
{ name: targetBoss.name },
|
|
1886
|
+
{ tags: newTags }
|
|
1887
|
+
);
|
|
1888
|
+
return {
|
|
1889
|
+
messages: [`⚡ 【${targetBoss.skills.includes("超导体") ? "超导体" : "电能导体"}】生效:护盾崩溃,标签变更为「重甲」`]
|
|
1890
|
+
};
|
|
1891
|
+
}
|
|
1892
|
+
return null;
|
|
1893
|
+
}, "handleConductorTagChange"),
|
|
1894
|
+
// 处理能量虹吸减伤(基于血量)
|
|
1895
|
+
handleEnergySiphon: /* @__PURE__ */ __name((targetBoss, currentHP, maxHP) => {
|
|
1896
|
+
if (!targetBoss.skills.includes("能量虹吸")) return null;
|
|
1897
|
+
let reduction = 0;
|
|
1898
|
+
if (currentHP > maxHP * 0.7) {
|
|
1899
|
+
reduction = 0.4;
|
|
1900
|
+
} else if (currentHP > maxHP * 0.3) {
|
|
1901
|
+
reduction = 0.2;
|
|
1902
|
+
}
|
|
1903
|
+
if (reduction > 0) {
|
|
1904
|
+
return {
|
|
1905
|
+
damageMultiplier: -reduction,
|
|
1906
|
+
messages: [`🔋 【能量虹吸】生效:血量${currentHP > maxHP * 0.7 ? ">70%" : ">30%"},受到的伤害-${reduction * 100}%`]
|
|
1907
|
+
};
|
|
1908
|
+
}
|
|
1909
|
+
return null;
|
|
1910
|
+
}, "handleEnergySiphon"),
|
|
1911
|
+
// 处理电能冲击波(受击回复能量)
|
|
1912
|
+
handleEnergyShockwave: /* @__PURE__ */ __name(async (ctx2, targetBoss) => {
|
|
1913
|
+
if (!targetBoss.skills.includes("电能冲击波")) return null;
|
|
1914
|
+
const energyGain = 100;
|
|
1915
|
+
const currentEnergy = targetBoss.energy || 0;
|
|
1916
|
+
const newEnergy = Math.min(currentEnergy + energyGain, 1e3);
|
|
1917
|
+
await ctx2.database.set(
|
|
1918
|
+
"ggcevo_boss",
|
|
1919
|
+
{ name: targetBoss.name },
|
|
1920
|
+
{ energy: newEnergy }
|
|
1921
|
+
);
|
|
1922
|
+
const actualGain = newEnergy - currentEnergy;
|
|
1923
|
+
return {
|
|
1924
|
+
messages: [
|
|
1925
|
+
`⚡ 【电能冲击波】生效:${actualGain > 0 ? `回复${actualGain}点能量` : "能量已达上限"}`,
|
|
1926
|
+
`当前能量: ${newEnergy}/${1e3}`
|
|
1927
|
+
].filter(Boolean)
|
|
1928
|
+
};
|
|
1929
|
+
}, "handleEnergyShockwave"),
|
|
1930
|
+
// 处理能源虹吸减伤(基于能量)
|
|
1931
|
+
handlePowerSiphon: /* @__PURE__ */ __name((targetBoss) => {
|
|
1932
|
+
if (!targetBoss.skills.includes("能源虹吸")) return null;
|
|
1933
|
+
const currentEnergy = targetBoss.energy || 0;
|
|
1934
|
+
let reduction = 0;
|
|
1935
|
+
if (currentEnergy >= 800) {
|
|
1936
|
+
reduction = 0.5;
|
|
1937
|
+
} else if (currentEnergy >= 500) {
|
|
1938
|
+
reduction = 0.3;
|
|
1939
|
+
}
|
|
1940
|
+
if (reduction > 0) {
|
|
1941
|
+
return {
|
|
1942
|
+
damageMultiplier: -reduction,
|
|
1943
|
+
messages: [`🔋 【能源虹吸】生效:能量${currentEnergy > 800 ? ">80%" : ">50%"},受到的伤害-${reduction * 100}%`]
|
|
1944
|
+
};
|
|
1945
|
+
}
|
|
1946
|
+
return null;
|
|
1947
|
+
}, "handlePowerSiphon"),
|
|
1948
|
+
// 处理能量黑洞减伤(基础减伤 + 寒冷增伤)
|
|
1949
|
+
handleEnergyBlackhole: /* @__PURE__ */ __name((targetBoss) => {
|
|
1950
|
+
if (!targetBoss.skills.includes("能量黑洞")) return null;
|
|
1951
|
+
const currentFreezing = targetBoss.freezing || 0;
|
|
1952
|
+
const baseReduction = 0.1;
|
|
1953
|
+
const freezingBonus = currentFreezing * 0.05;
|
|
1954
|
+
return {
|
|
1955
|
+
damageMultiplier: -baseReduction + freezingBonus,
|
|
1956
|
+
messages: [
|
|
1957
|
+
`🌀 【能量黑洞】生效:基础减伤10%`,
|
|
1958
|
+
currentFreezing > 0 ? `❄️ 寒冷(${currentFreezing}层)使受到的伤害+${freezingBonus * 100}%` : ""
|
|
1959
|
+
].filter(Boolean)
|
|
1960
|
+
};
|
|
1961
|
+
}, "handleEnergyBlackhole"),
|
|
1962
|
+
// 处理电能立场(概率免疫伤害)
|
|
1963
|
+
handleEnergyField: /* @__PURE__ */ __name(async function(ctx2, targetBoss, weaponName, initialDamage) {
|
|
1964
|
+
if (!targetBoss.skills.includes("电能立场") || initialDamage === 0 || weaponName === "零度之下") {
|
|
1965
|
+
return null;
|
|
1966
|
+
}
|
|
1967
|
+
const currentEnergy = targetBoss.energy || 0;
|
|
1968
|
+
const currentFreezing = targetBoss.freezing || 0;
|
|
1969
|
+
let immuneChance = 55 - currentFreezing * 5;
|
|
1970
|
+
immuneChance = Math.max(immuneChance, 5);
|
|
1971
|
+
if (currentEnergy < 100) {
|
|
1972
|
+
return null;
|
|
1973
|
+
}
|
|
1974
|
+
const roll = Math.random() * 100;
|
|
1975
|
+
if (roll <= immuneChance) {
|
|
1976
|
+
return {
|
|
1977
|
+
immune: true,
|
|
1978
|
+
messages: [
|
|
1979
|
+
`🛡️ 【电能立场】生效:成功免疫伤害!`
|
|
1980
|
+
]
|
|
1981
|
+
};
|
|
1982
|
+
}
|
|
1983
|
+
return null;
|
|
1984
|
+
}, "handleEnergyField"),
|
|
1985
|
+
// 处理脉冲效果(概率治疗全体异形)
|
|
1986
|
+
handlePulse: /* @__PURE__ */ __name(async function(ctx2, targetBoss, activeBosses) {
|
|
1987
|
+
if (!targetBoss.skills.includes("脉冲")) return null;
|
|
1988
|
+
const currentEnergy = targetBoss.energy || 0;
|
|
1989
|
+
const currentFreezing = targetBoss.freezing || 0;
|
|
1990
|
+
if (currentEnergy < 80) {
|
|
1991
|
+
return null;
|
|
1992
|
+
}
|
|
1993
|
+
let triggerChance = 60 - currentFreezing * 5;
|
|
1994
|
+
triggerChance = Math.max(triggerChance, 5);
|
|
1995
|
+
const roll = Math.random() * 100;
|
|
1996
|
+
if (roll <= triggerChance) {
|
|
1997
|
+
const groupMembers = activeBosses.filter(
|
|
1998
|
+
(b) => b.groupId === targetBoss.groupId && b.HP > 0 && b.name !== targetBoss.name
|
|
1999
|
+
// 不包括自己
|
|
2000
|
+
);
|
|
2001
|
+
const updates = [];
|
|
2002
|
+
const healMessages = [];
|
|
2003
|
+
groupMembers.forEach((member) => {
|
|
2004
|
+
const healAmount = member.type === "主宰" ? 100 : 100;
|
|
2005
|
+
const newHP = Math.min(member.HP + healAmount, member.maxHP);
|
|
2006
|
+
updates.push(
|
|
2007
|
+
ctx2.database.set(
|
|
2008
|
+
"ggcevo_boss",
|
|
2009
|
+
{ name: member.name },
|
|
2010
|
+
{ HP: newHP }
|
|
2011
|
+
)
|
|
2012
|
+
);
|
|
2013
|
+
healMessages.push(`${member.name}+${healAmount}HP`);
|
|
2014
|
+
});
|
|
2015
|
+
if (groupMembers.length > 0) {
|
|
2016
|
+
await Promise.all(updates);
|
|
2017
|
+
return {
|
|
2018
|
+
messages: [
|
|
2019
|
+
`❤️ 【脉冲】生效:治疗全体异形!(概率:${triggerChance.toFixed(1)}%)`,
|
|
2020
|
+
...healMessages
|
|
2021
|
+
]
|
|
2022
|
+
};
|
|
2023
|
+
}
|
|
2024
|
+
return null;
|
|
2025
|
+
}
|
|
2026
|
+
return null;
|
|
2027
|
+
}, "handlePulse"),
|
|
1776
2028
|
// 统一处理被动技能
|
|
1777
2029
|
handlePassives: /* @__PURE__ */ __name(async function(ctx2, targetBoss, initialDamage, currentHP, maxHP, weaponName, weaponData, activeBosses, bossGroup) {
|
|
1778
2030
|
let messages = [];
|
|
@@ -1797,6 +2049,18 @@ function apply(ctx, config) {
|
|
|
1797
2049
|
initialDamage: 0
|
|
1798
2050
|
};
|
|
1799
2051
|
}
|
|
2052
|
+
const fieldResult = await this.handleEnergyField(ctx2, targetBoss, weaponName, initialDamage);
|
|
2053
|
+
if (fieldResult) {
|
|
2054
|
+
messages.push(...fieldResult.messages);
|
|
2055
|
+
if (fieldResult.immune) {
|
|
2056
|
+
return {
|
|
2057
|
+
currentHP: targetBoss.HP,
|
|
2058
|
+
messages,
|
|
2059
|
+
skillUpdates,
|
|
2060
|
+
initialDamage: 0
|
|
2061
|
+
};
|
|
2062
|
+
}
|
|
2063
|
+
}
|
|
1800
2064
|
targetBoss.skills.forEach((skill) => {
|
|
1801
2065
|
const config2 = passiveConfig[skill];
|
|
1802
2066
|
if (config2 && config2.effect !== void 0 && config2.effect !== 0) {
|
|
@@ -1820,6 +2084,21 @@ function apply(ctx, config) {
|
|
|
1820
2084
|
totalMultiplier += bloodEffect.damageMultiplier;
|
|
1821
2085
|
messages.push(...bloodEffect.messages);
|
|
1822
2086
|
}
|
|
2087
|
+
const siphonResult = this.handleEnergySiphon(targetBoss, currentHP, maxHP);
|
|
2088
|
+
if (siphonResult) {
|
|
2089
|
+
totalMultiplier += siphonResult.damageMultiplier;
|
|
2090
|
+
messages.push(...siphonResult.messages);
|
|
2091
|
+
}
|
|
2092
|
+
const powerSiphonResult = this.handlePowerSiphon(targetBoss);
|
|
2093
|
+
if (powerSiphonResult) {
|
|
2094
|
+
totalMultiplier += powerSiphonResult.damageMultiplier;
|
|
2095
|
+
messages.push(...powerSiphonResult.messages);
|
|
2096
|
+
}
|
|
2097
|
+
const blackholeResult = this.handleEnergyBlackhole(targetBoss);
|
|
2098
|
+
if (blackholeResult) {
|
|
2099
|
+
totalMultiplier += blackholeResult.damageMultiplier;
|
|
2100
|
+
messages.push(...blackholeResult.messages);
|
|
2101
|
+
}
|
|
1823
2102
|
const radiationCalc = this.calculateRadiationDamage(targetBoss);
|
|
1824
2103
|
if (radiationCalc) {
|
|
1825
2104
|
totalMultiplier += radiationCalc.damageMultiplier;
|
|
@@ -1858,6 +2137,10 @@ function apply(ctx, config) {
|
|
|
1858
2137
|
messages.push(...survivalResult.messages);
|
|
1859
2138
|
skillUpdates.push(...survivalResult.skillUpdates);
|
|
1860
2139
|
}
|
|
2140
|
+
const pulseResult = await this.handlePulse(ctx2, targetBoss, activeBosses);
|
|
2141
|
+
if (pulseResult) {
|
|
2142
|
+
messages.push(...pulseResult.messages);
|
|
2143
|
+
}
|
|
1861
2144
|
const coldAdaptResult = await this.handleColdAdaptation(ctx2, targetBoss, weaponName);
|
|
1862
2145
|
if (coldAdaptResult) {
|
|
1863
2146
|
messages.push(...coldAdaptResult.messages);
|
|
@@ -1871,6 +2154,18 @@ function apply(ctx, config) {
|
|
|
1871
2154
|
if (sentryResult) {
|
|
1872
2155
|
messages.push(...sentryResult.messages);
|
|
1873
2156
|
}
|
|
2157
|
+
const freezingStackResult = await this.handleFreezingStack(ctx2, targetBoss, weaponName);
|
|
2158
|
+
if (freezingStackResult) {
|
|
2159
|
+
messages.push(...freezingStackResult.messages);
|
|
2160
|
+
}
|
|
2161
|
+
const tagChangeResult = await this.handleConductorTagChange(ctx2, targetBoss, currentHP, maxHP);
|
|
2162
|
+
if (tagChangeResult) {
|
|
2163
|
+
messages.push(...tagChangeResult.messages);
|
|
2164
|
+
}
|
|
2165
|
+
const shockwaveResult = await this.handleEnergyShockwave(ctx2, targetBoss);
|
|
2166
|
+
if (shockwaveResult) {
|
|
2167
|
+
messages.push(...shockwaveResult.messages);
|
|
2168
|
+
}
|
|
1874
2169
|
const gammaRadResult = await this.handleGammaRadiation(ctx2, targetBoss, weaponName);
|
|
1875
2170
|
if (gammaRadResult) {
|
|
1876
2171
|
messages.push(...gammaRadResult.messages);
|
|
@@ -2132,7 +2427,7 @@ function apply(ctx, config) {
|
|
|
2132
2427
|
const scoutRifle = weapons.find((weapon) => weapon.weaponId === 7);
|
|
2133
2428
|
return {
|
|
2134
2429
|
success: !!scoutRifle,
|
|
2135
|
-
message: scoutRifle ? "" : "需要“侦察步枪”武器等级≥3"
|
|
2430
|
+
message: scoutRifle ? "" : "需要“侦察步枪”武器等级≥3级"
|
|
2136
2431
|
};
|
|
2137
2432
|
}
|
|
2138
2433
|
;
|
|
@@ -4090,7 +4385,7 @@ ${items.join("、")}
|
|
|
4090
4385
|
discountDetails.push(`武器系统 Lv${techLevel}:${techDiscount}%`);
|
|
4091
4386
|
}
|
|
4092
4387
|
if (grasshopperDiscount > 0) {
|
|
4093
|
-
discountDetails.push(
|
|
4388
|
+
discountDetails.push(`蚱蜢优购:${grasshopperDiscount}%`);
|
|
4094
4389
|
}
|
|
4095
4390
|
const typeStats = Object.values(weaponConfig).filter((weapon) => weapon.price !== 0).reduce((stats, weapon) => {
|
|
4096
4391
|
stats[weapon.type] = (stats[weapon.type] || 0) + 1;
|
|
@@ -5676,7 +5971,7 @@ ${Spacestationtechnology.map((t) => t.techname).join("、")}`;
|
|
|
5676
5971
|
startTime: /* @__PURE__ */ new Date()
|
|
5677
5972
|
// 记录当前时间为开始时间
|
|
5678
5973
|
});
|
|
5679
|
-
return "⛏️ 首次挖矿作业已开始,请至少等待1
|
|
5974
|
+
return "⛏️ 首次挖矿作业已开始,请至少等待1小时后才可收获。\n提示:基础收益为每半小时6枚金币";
|
|
5680
5975
|
}
|
|
5681
5976
|
const nowtime = /* @__PURE__ */ new Date();
|
|
5682
5977
|
const chinaStart = convertUTCtoChinaTime(record.startTime);
|
|
@@ -5743,7 +6038,7 @@ ${Spacestationtechnology.map((t) => t.techname).join("、")}`;
|
|
|
5743
6038
|
}
|
|
5744
6039
|
reportLines.push(rewardLine);
|
|
5745
6040
|
if (tech.level >= 3) {
|
|
5746
|
-
reportLines.push(`🔧
|
|
6041
|
+
reportLines.push(`🔧 采掘系统 Lv.${tech.level}:金币+${multiplier * 100}%`);
|
|
5747
6042
|
}
|
|
5748
6043
|
reportLines.push("💡 已自动开始下一轮挖矿");
|
|
5749
6044
|
return reportLines.join("\n");
|