koishi-plugin-ggcevo-game 1.3.44 → 1.3.46
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 +25 -17
- package/package.json +1 -1
package/lib/index.js
CHANGED
|
@@ -708,7 +708,7 @@ function apply(ctx, config) {
|
|
|
708
708
|
},
|
|
709
709
|
"脉冲": {
|
|
710
710
|
effect: 0,
|
|
711
|
-
description: "当“能量”≥
|
|
711
|
+
description: "当“能量”≥10%的时候,每次受到攻击有60%的概率回复所有存活的异形100点血量; 每拥有一层“寒冷”则降低5%的概率"
|
|
712
712
|
},
|
|
713
713
|
"能量黑洞": {
|
|
714
714
|
effect: 0,
|
|
@@ -1190,7 +1190,7 @@ function apply(ctx, config) {
|
|
|
1190
1190
|
"零度之下": {
|
|
1191
1191
|
id: 2,
|
|
1192
1192
|
type: "可重复任务",
|
|
1193
|
-
description: "
|
|
1193
|
+
description: "利用【零度之下】武器对异形目标造成寒冷伤害",
|
|
1194
1194
|
target: 2,
|
|
1195
1195
|
price: 100,
|
|
1196
1196
|
redCrystalCost: 0,
|
|
@@ -2075,7 +2075,7 @@ function apply(ctx, config) {
|
|
|
2075
2075
|
const currentEnergy = targetBoss.energy || 0;
|
|
2076
2076
|
const currentFreezing = targetBoss.freezing || 0;
|
|
2077
2077
|
const maxEnergy = 1e3;
|
|
2078
|
-
if (currentEnergy < maxEnergy * 0.
|
|
2078
|
+
if (currentEnergy < maxEnergy * 0.1) {
|
|
2079
2079
|
return null;
|
|
2080
2080
|
}
|
|
2081
2081
|
let triggerChance = 60 - currentFreezing * 5;
|
|
@@ -2092,7 +2092,7 @@ function apply(ctx, config) {
|
|
|
2092
2092
|
const memberConfig = this.getMemberConfig(member.name, bossGroup);
|
|
2093
2093
|
if (!memberConfig) continue;
|
|
2094
2094
|
const maxHP = memberConfig.maxHP;
|
|
2095
|
-
const healAmount = member.type === "主宰" ?
|
|
2095
|
+
const healAmount = member.type === "主宰" ? 100 : 100;
|
|
2096
2096
|
const newHP = Math.min(member.HP + healAmount, maxHP);
|
|
2097
2097
|
const actualHeal = newHP - member.HP;
|
|
2098
2098
|
updates.push(
|
|
@@ -2134,7 +2134,7 @@ function apply(ctx, config) {
|
|
|
2134
2134
|
{ name: targetBoss.name },
|
|
2135
2135
|
{ energy: newEnergy }
|
|
2136
2136
|
);
|
|
2137
|
-
messages.push(`⚡
|
|
2137
|
+
messages.push(`⚡ 【弧焊枪】触发特效:消耗目标${energyDrain}点能量`);
|
|
2138
2138
|
} else {
|
|
2139
2139
|
return null;
|
|
2140
2140
|
}
|
|
@@ -2150,7 +2150,7 @@ function apply(ctx, config) {
|
|
|
2150
2150
|
const effectiveReduction = originalReduction * 0.5;
|
|
2151
2151
|
const reducedMultiplier = -effectiveReduction;
|
|
2152
2152
|
messages.push(
|
|
2153
|
-
`⚡
|
|
2153
|
+
`⚡ 【粒子相位枪】触发特效:护盾目标减伤效果减半`,
|
|
2154
2154
|
`原减伤:${Math.round(originalReduction * 100)}% → 实际减伤:${Math.round(effectiveReduction * 100)}%`
|
|
2155
2155
|
);
|
|
2156
2156
|
return {
|
|
@@ -2168,10 +2168,6 @@ function apply(ctx, config) {
|
|
|
2168
2168
|
let totalMultiplier = 0;
|
|
2169
2169
|
let radiationApplied = false;
|
|
2170
2170
|
let freezing = false;
|
|
2171
|
-
const arcResult = await this.handleArcWelderEffect(ctx2, targetBoss, weaponName);
|
|
2172
|
-
if (arcResult) {
|
|
2173
|
-
messages.push(...arcResult.messages);
|
|
2174
|
-
}
|
|
2175
2171
|
const frostEvoResult = this.handleFrostEvolution(targetBoss, weaponName, initialDamage, maxHP);
|
|
2176
2172
|
if (frostEvoResult) {
|
|
2177
2173
|
return {
|
|
@@ -2263,7 +2259,14 @@ function apply(ctx, config) {
|
|
|
2263
2259
|
finalDamage = Math.max(finalDamage, 1);
|
|
2264
2260
|
currentHP = targetBoss.HP - finalDamage;
|
|
2265
2261
|
if (currentHP <= 0 && !targetBoss.skills.includes("求生本能I") && !targetBoss.skills.includes("求生本能II")) {
|
|
2266
|
-
return {
|
|
2262
|
+
return {
|
|
2263
|
+
currentHP,
|
|
2264
|
+
messages,
|
|
2265
|
+
skillUpdates,
|
|
2266
|
+
initialDamage: finalDamage,
|
|
2267
|
+
radiationApplied,
|
|
2268
|
+
freezing
|
|
2269
|
+
};
|
|
2267
2270
|
}
|
|
2268
2271
|
const frostSurroundResult = await this.handleFrostSurround(ctx2, targetBoss, currentHP, maxHP);
|
|
2269
2272
|
if (frostSurroundResult) {
|
|
@@ -2313,6 +2316,10 @@ function apply(ctx, config) {
|
|
|
2313
2316
|
if (tagChangeResult) {
|
|
2314
2317
|
messages.push(...tagChangeResult.messages);
|
|
2315
2318
|
}
|
|
2319
|
+
const arcResult = await this.handleArcWelderEffect(ctx2, targetBoss, weaponName);
|
|
2320
|
+
if (arcResult) {
|
|
2321
|
+
messages.push(...arcResult.messages);
|
|
2322
|
+
}
|
|
2316
2323
|
const shockwaveResult = await this.handleEnergyShockwave(ctx2, targetBoss);
|
|
2317
2324
|
if (shockwaveResult) {
|
|
2318
2325
|
messages.push(...shockwaveResult.messages);
|
|
@@ -5112,18 +5119,18 @@ ${validTypes.join("、")}`;
|
|
|
5112
5119
|
const existingEntries = await ctx.database.get("ggcevo_blacklist", { handle });
|
|
5113
5120
|
if (existingEntries.length > 0) return "⛔ 您已被列入黑名单";
|
|
5114
5121
|
const weaponId = weaponConfig[weapon]?.id;
|
|
5115
|
-
if (!weaponId) return "❌
|
|
5122
|
+
if (!weaponId) return "❌ 请输入“拆卸 武器名称 模块名称”\n注意:专属模块返还50%金币,通用模块返还80%金币";
|
|
5116
5123
|
const modInfo = modConfig[mod];
|
|
5117
|
-
if (!modInfo) return "❌
|
|
5124
|
+
if (!modInfo) return "❌ 请输入“拆卸 武器名称 模块名称”\n注意:专属模块返还50%金币,通用模块返还80%金币";
|
|
5118
5125
|
const refundRate = modInfo.isExclusive ? 0.5 : 0.8;
|
|
5119
5126
|
const refundType = modInfo.isExclusive ? "专属模块返还50%" : "通用模块返还80%";
|
|
5120
5127
|
const [equipment] = await ctx.database.get("ggcevo_equipment", {
|
|
5121
5128
|
handle,
|
|
5122
5129
|
weaponId
|
|
5123
5130
|
});
|
|
5124
|
-
if (!equipment) return "❌
|
|
5131
|
+
if (!equipment) return "❌ 您尚未获得该武器。";
|
|
5125
5132
|
if (!equipment.installedMods.includes(mod)) {
|
|
5126
|
-
return `❌ 该武器未安装${mod}
|
|
5133
|
+
return `❌ 该武器未安装${mod}模块。`;
|
|
5127
5134
|
}
|
|
5128
5135
|
const refund = Math.floor(modInfo.cost * refundRate);
|
|
5129
5136
|
const newMods = equipment.installedMods.filter((m) => m !== mod);
|
|
@@ -5134,9 +5141,10 @@ ${validTypes.join("、")}`;
|
|
|
5134
5141
|
);
|
|
5135
5142
|
const [signInfo] = await ctx.database.get("ggcevo_sign", { handle });
|
|
5136
5143
|
const newBalance = (signInfo?.totalRewards || 0) + refund;
|
|
5137
|
-
await ctx.database.
|
|
5144
|
+
await ctx.database.upsert("ggcevo_sign", [{
|
|
5145
|
+
handle,
|
|
5138
5146
|
totalRewards: newBalance
|
|
5139
|
-
});
|
|
5147
|
+
}], ["handle"]);
|
|
5140
5148
|
return [
|
|
5141
5149
|
`✅ 已从 ${weapon} 拆卸 ${mod} 模块`,
|
|
5142
5150
|
`返还金币:${refund} (原价${modInfo.cost},${refundType})`,
|