koishi-plugin-ggcevo-game 1.4.14 → 1.4.16
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/boss/passivehandler.d.ts +3 -3
- package/lib/index.js +35 -27
- package/lib/weapons.d.ts +0 -1
- package/package.json +1 -1
|
@@ -38,7 +38,7 @@ export declare const PassiveHandler: {
|
|
|
38
38
|
messages: string[];
|
|
39
39
|
skillUpdates: {
|
|
40
40
|
name: any;
|
|
41
|
-
remove: ("
|
|
41
|
+
remove: ("冰霜环绕" | "寒霜地狱" | "冰霜回复" | "弱化形态" | "异形甲壳" | "孤立无援" | "冰霜进化" | "应激甲壳I" | "应激甲壳II" | "求生本能I" | "求生本能II" | "冷适应" | "感染空间站" | "病毒云" | "霉菌滋生" | "岗哨机枪" | "结构装甲" | "吸血唾液" | "进食" | "嗜血狂暴" | "吐血" | "电能导体" | "超导体" | "能量虹吸" | "能源虹吸" | "电能立场" | "电能冲击波" | "脉冲" | "能量黑洞" | "火焰异形" | "庞兽狂暴" | "灼烧粘液" | "腐蚀胆汁" | "火焰吐息" | "太阳耀斑" | "燃烧潜地" | "炼狱爆弹" | "猎手异形" | "狂暴" | "伪装" | "致命一击")[];
|
|
42
42
|
}[];
|
|
43
43
|
};
|
|
44
44
|
handleInfectedStation: (ctx: Context, targetBoss: any) => Promise<{
|
|
@@ -151,7 +151,7 @@ export declare const PassiveHandler: {
|
|
|
151
151
|
damageMultiplier: number;
|
|
152
152
|
messages: string[];
|
|
153
153
|
};
|
|
154
|
-
handleHunterAlien: (
|
|
154
|
+
handleHunterAlien: (targetBoss: any, weaponName: string, activeBosses: any[]) => Promise<{
|
|
155
155
|
immune: boolean;
|
|
156
156
|
messages: string[];
|
|
157
157
|
damageMultiplier?: undefined;
|
|
@@ -181,7 +181,7 @@ export declare const PassiveHandler: {
|
|
|
181
181
|
handlePulseDisruptor: (ctx: Context, targetBoss: any, weaponName: string) => Promise<{
|
|
182
182
|
messages: string[];
|
|
183
183
|
}>;
|
|
184
|
-
handlePassives: (ctx: Context, handle: string, targetBoss: any, initialDamage: number, currentHP: number, maxHP: number, weaponName: string, weaponData: any,
|
|
184
|
+
handlePassives: (ctx: Context, handle: string, targetBoss: any, initialDamage: number, currentHP: number, maxHP: number, weaponName: string, weaponData: any, bossGroup: any) => Promise<{
|
|
185
185
|
currentHP: any;
|
|
186
186
|
messages: any;
|
|
187
187
|
skillUpdates: any[];
|
package/lib/index.js
CHANGED
|
@@ -211,7 +211,6 @@ var weaponConfig = {
|
|
|
211
211
|
isantiair: true,
|
|
212
212
|
tagEffects: {
|
|
213
213
|
"护盾": 2,
|
|
214
|
-
"轻甲": 0.5,
|
|
215
214
|
"重甲": 0.2
|
|
216
215
|
}
|
|
217
216
|
},
|
|
@@ -625,7 +624,7 @@ var syndicatePirateConfig = [
|
|
|
625
624
|
},
|
|
626
625
|
{
|
|
627
626
|
professionName: "猩红杀手",
|
|
628
|
-
effect: "
|
|
627
|
+
effect: "“侦察步枪”攻击伤害+15%; 使用“侦察步枪”攻击时无视目标20%的减伤效果; 解锁DSR-55反器材步枪(传奇)购买权限",
|
|
629
628
|
requirements: "“侦察步枪”武器等级≥3级",
|
|
630
629
|
Jobtransfer: true,
|
|
631
630
|
costredcrystal: 30
|
|
@@ -2838,7 +2837,7 @@ var PassiveHandler = {
|
|
|
2838
2837
|
{ name: targetBoss.name },
|
|
2839
2838
|
{ energy: newEnergy }
|
|
2840
2839
|
);
|
|
2841
|
-
messages.push(`⚡
|
|
2840
|
+
messages.push(`⚡ 【弧焊枪】武器效果:消耗目标200点能量`);
|
|
2842
2841
|
} else {
|
|
2843
2842
|
return null;
|
|
2844
2843
|
}
|
|
@@ -2859,7 +2858,7 @@ var PassiveHandler = {
|
|
|
2859
2858
|
{ energy: newEnergy }
|
|
2860
2859
|
);
|
|
2861
2860
|
targetBoss.energy = newEnergy;
|
|
2862
|
-
messages.push(`⚡ 【DG-3
|
|
2861
|
+
messages.push(`⚡ 【DG-3电弧步枪】武器效果:消耗目标${drainAmount}点能量`);
|
|
2863
2862
|
return { drainAmount };
|
|
2864
2863
|
}, "handleArcRifleEffect"),
|
|
2865
2864
|
// 庞兽狂暴处理(血量低于50%时减伤)
|
|
@@ -3119,7 +3118,7 @@ var PassiveHandler = {
|
|
|
3119
3118
|
};
|
|
3120
3119
|
}, "handleHellfireBomb"),
|
|
3121
3120
|
// 猎手异形处理(Hunter Alien)
|
|
3122
|
-
handleHunterAlien: /* @__PURE__ */ __name(async function(
|
|
3121
|
+
handleHunterAlien: /* @__PURE__ */ __name(async function(targetBoss, weaponName, activeBosses) {
|
|
3123
3122
|
if (!targetBoss.skills.includes("猎手异形")) return null;
|
|
3124
3123
|
if (weaponName === "焚烧枪" || weaponName === "零度之下") {
|
|
3125
3124
|
return {
|
|
@@ -3127,7 +3126,6 @@ var PassiveHandler = {
|
|
|
3127
3126
|
messages: [`🛡️ 【猎手异形】生效:免疫${weaponName === "焚烧枪" ? "火焰" : "寒冷"}伤害`]
|
|
3128
3127
|
};
|
|
3129
3128
|
}
|
|
3130
|
-
const activeBosses = await ctx.database.get("ggcevo_boss", { isActive: true });
|
|
3131
3129
|
const otherAlive = activeBosses.some(
|
|
3132
3130
|
(boss) => boss.groupId === targetBoss.groupId && boss.name !== targetBoss.name && boss.HP > 0
|
|
3133
3131
|
);
|
|
@@ -3145,7 +3143,7 @@ var PassiveHandler = {
|
|
|
3145
3143
|
if (currentHP / maxHP < 0.5) {
|
|
3146
3144
|
return {
|
|
3147
3145
|
damageMultiplier: -0.5,
|
|
3148
|
-
messages: [
|
|
3146
|
+
messages: [`🔥 【狂暴】生效:血量低于50%,受到的伤害-50%`]
|
|
3149
3147
|
};
|
|
3150
3148
|
}
|
|
3151
3149
|
return null;
|
|
@@ -3201,16 +3199,16 @@ var PassiveHandler = {
|
|
|
3201
3199
|
let messages = [];
|
|
3202
3200
|
if (weaponName === "光剑") {
|
|
3203
3201
|
ignoreEffects.push(1);
|
|
3204
|
-
messages.push(`⚔️
|
|
3202
|
+
messages.push(`⚔️ 【光剑】武器效果:无视目标100%减伤效果`);
|
|
3205
3203
|
} else if (weaponName === "M4AE脉冲步枪") {
|
|
3206
3204
|
ignoreEffects.push(0.8);
|
|
3207
|
-
messages.push(`🔫 【M4AE
|
|
3205
|
+
messages.push(`🔫 【M4AE脉冲步枪】武器效果:无视目标80%减伤效果`);
|
|
3208
3206
|
}
|
|
3209
3207
|
if (weaponName !== "光剑" && weaponName !== "M4AE脉冲步枪") {
|
|
3210
3208
|
const particleEffect = PassiveHandler.handleParticlePhaseEffect(targetBoss, weaponName);
|
|
3211
3209
|
if (particleEffect > 0) {
|
|
3212
3210
|
ignoreEffects.push(particleEffect);
|
|
3213
|
-
messages.push(`⚡
|
|
3211
|
+
messages.push(`⚡ 【粒子相位枪】武器效果:无视护盾目标${particleEffect * 100}%减伤效果`);
|
|
3214
3212
|
}
|
|
3215
3213
|
const weaponConfigData = weaponConfig[weaponName];
|
|
3216
3214
|
if (weaponConfigData) {
|
|
@@ -3239,9 +3237,14 @@ var PassiveHandler = {
|
|
|
3239
3237
|
ignoreEffects.push(radarEffect);
|
|
3240
3238
|
messages.push(`🛰️ 【雷达面罩】生效:无视目标${radarEffect * 100}%减伤效果`);
|
|
3241
3239
|
}
|
|
3240
|
+
if (careerData?.career === "猩红杀手" && weaponName === "侦察步枪") {
|
|
3241
|
+
const scarletEffect = 0.2;
|
|
3242
|
+
ignoreEffects.push(scarletEffect);
|
|
3243
|
+
messages.push(`🎯 【猩红杀手】职业效果:无视目标${scarletEffect * 100}%减伤效果`);
|
|
3244
|
+
}
|
|
3242
3245
|
}
|
|
3243
3246
|
} catch (error) {
|
|
3244
|
-
console.error("
|
|
3247
|
+
console.error("出错:", error);
|
|
3245
3248
|
}
|
|
3246
3249
|
if (ignoreEffects.length === 0) {
|
|
3247
3250
|
return null;
|
|
@@ -3270,12 +3273,12 @@ var PassiveHandler = {
|
|
|
3270
3273
|
targetBoss.Skillcountpoints = newCount;
|
|
3271
3274
|
return {
|
|
3272
3275
|
messages: [
|
|
3273
|
-
`⚡
|
|
3276
|
+
`⚡ 【脉冲扰乱枪】武器效果:减少${targetBoss.name} 2层技能计数(当前${newCount}层)`
|
|
3274
3277
|
]
|
|
3275
3278
|
};
|
|
3276
3279
|
}, "handlePulseDisruptor"),
|
|
3277
3280
|
// 修改后的伤害处理函数
|
|
3278
|
-
handlePassives: /* @__PURE__ */ __name(async function(ctx, handle, targetBoss, initialDamage, currentHP, maxHP, weaponName, weaponData,
|
|
3281
|
+
handlePassives: /* @__PURE__ */ __name(async function(ctx, handle, targetBoss, initialDamage, currentHP, maxHP, weaponName, weaponData, bossGroup) {
|
|
3279
3282
|
let messages = [];
|
|
3280
3283
|
let skillUpdates = [];
|
|
3281
3284
|
let buffMultiplier = 0;
|
|
@@ -3283,6 +3286,7 @@ var PassiveHandler = {
|
|
|
3283
3286
|
let radiationApplied = false;
|
|
3284
3287
|
let freezing = false;
|
|
3285
3288
|
let bileStacks = 0;
|
|
3289
|
+
const activeBosses = await ctx.database.get("ggcevo_boss", { isActive: true });
|
|
3286
3290
|
const solarFlareResult = await this.handleSolarFlare(ctx, targetBoss, weaponName);
|
|
3287
3291
|
if (solarFlareResult.immune) {
|
|
3288
3292
|
return {
|
|
@@ -3347,7 +3351,7 @@ var PassiveHandler = {
|
|
|
3347
3351
|
initialDamage: 0
|
|
3348
3352
|
};
|
|
3349
3353
|
}
|
|
3350
|
-
const hunterImmune = await this.handleHunterAlien(
|
|
3354
|
+
const hunterImmune = await this.handleHunterAlien(targetBoss, weaponName, activeBosses);
|
|
3351
3355
|
if (hunterImmune?.immune) {
|
|
3352
3356
|
return {
|
|
3353
3357
|
currentHP: targetBoss.HP,
|
|
@@ -3817,7 +3821,6 @@ async function handlePrimaryAttack(ctx, session, config, handle, equippedWeapon,
|
|
|
3817
3821
|
maxHP,
|
|
3818
3822
|
weaponName,
|
|
3819
3823
|
weaponData,
|
|
3820
|
-
activeBosses,
|
|
3821
3824
|
bossGroup
|
|
3822
3825
|
);
|
|
3823
3826
|
const currentHP = passiveResult.currentHP;
|
|
@@ -3872,7 +3875,6 @@ async function handleScatterAttack(ctx, session, config, handle, equippedWeapon,
|
|
|
3872
3875
|
getBossMaxHP(secondaryTarget.name),
|
|
3873
3876
|
weaponName,
|
|
3874
3877
|
weaponData,
|
|
3875
|
-
secondaryTargets,
|
|
3876
3878
|
bossGroup
|
|
3877
3879
|
);
|
|
3878
3880
|
const actualDamage = Math.min(passiveResult.initialDamage, secondaryTarget.HP);
|
|
@@ -6112,14 +6114,16 @@ ${Object.keys(categoryStats).join("、")}`;
|
|
|
6112
6114
|
"------------------"
|
|
6113
6115
|
].filter(Boolean).join("\n");
|
|
6114
6116
|
});
|
|
6115
|
-
const
|
|
6116
|
-
const discountInfo =
|
|
6117
|
+
const permissionNotice = isLegendaryCategory ? '⚠️ 注意:购买传奇武器需要"传奇武器购买权限"' : null;
|
|
6118
|
+
const discountInfo = totalDiscount > 0 && !isLegendaryCategory ? `💰 当前折扣:
|
|
6117
6119
|
${discountDetails.length ? `${discountDetails.join("\n")}` : ""}` : null;
|
|
6118
6120
|
return [
|
|
6119
6121
|
`🏪 咕咕武器库 - ${category} 🏪`,
|
|
6120
6122
|
'使用"购买 武器名称"指令进行购买',
|
|
6123
|
+
permissionNotice,
|
|
6124
|
+
// 新增权限提示
|
|
6121
6125
|
discountInfo,
|
|
6122
|
-
//
|
|
6126
|
+
// 原有折扣信息
|
|
6123
6127
|
"====================",
|
|
6124
6128
|
...items,
|
|
6125
6129
|
items.length === 0 ? "⚠️ 该分类下暂无可用武器" : ""
|
|
@@ -6413,7 +6417,7 @@ ${validTypes.join("、")}`;
|
|
|
6413
6417
|
}
|
|
6414
6418
|
return `❌ 未找到 "${target}" 对应的武器或科技(科技仅限人类联盟阵营升级)`;
|
|
6415
6419
|
});
|
|
6416
|
-
ctx.command("ggcevo/改装 <weapon> [mod]", "安装武器模块").action(async ({ session }, weapon, mod) => {
|
|
6420
|
+
ctx.command("ggcevo/改装 <weapon> [mod]", "安装武器模块").alias("改造").action(async ({ session }, weapon, mod) => {
|
|
6417
6421
|
const [profile] = await ctx.database.get("sc2arcade_player", { userId: session.userId });
|
|
6418
6422
|
if (!profile) return "🔒 需要先绑定游戏句柄。";
|
|
6419
6423
|
const handle = `${profile.regionId}-S2-${profile.realmId}-${profile.profileId}`;
|
|
@@ -7282,10 +7286,10 @@ ${validTypes.join("、")}`;
|
|
|
7282
7286
|
if (!category) {
|
|
7283
7287
|
const discountLines = [];
|
|
7284
7288
|
if (isComputerExpert) {
|
|
7285
|
-
discountLines.push("💻
|
|
7289
|
+
discountLines.push("💻 计算机专家职业:设备工具类物品50%折扣");
|
|
7286
7290
|
}
|
|
7287
7291
|
if (isSaboteur) {
|
|
7288
|
-
discountLines.push("💣
|
|
7292
|
+
discountLines.push("💣 破坏者职业:爆破物类物品50%折扣");
|
|
7289
7293
|
}
|
|
7290
7294
|
return [
|
|
7291
7295
|
"🏴 辛迪加黑市 🏴",
|
|
@@ -7301,6 +7305,8 @@ ${validTypes.join("、")}`;
|
|
|
7301
7305
|
}
|
|
7302
7306
|
const normalizedCategory = Object.keys(categoryStats).find((c) => c === category);
|
|
7303
7307
|
if (!normalizedCategory) return `无效分类,可用:${Object.keys(categoryStats).join("、")}`;
|
|
7308
|
+
const isLegendaryCategory = normalizedCategory === "传奇武器";
|
|
7309
|
+
const legendaryNotice = isLegendaryCategory ? "⚠️ 注意:购买传奇武器需要对应的辛迪加海盗职业权限" : null;
|
|
7304
7310
|
const items = [
|
|
7305
7311
|
...Object.entries(weaponConfig).filter(
|
|
7306
7312
|
([_, config2]) => config2.category === normalizedCategory && config2.redCrystalCost > 0
|
|
@@ -7368,17 +7374,19 @@ ${validTypes.join("、")}`;
|
|
|
7368
7374
|
if (isSaboteur && normalizedCategory === "爆破物") {
|
|
7369
7375
|
discountInfo = [
|
|
7370
7376
|
"💰 当前折扣:",
|
|
7371
|
-
"💣
|
|
7377
|
+
"💣 破坏者职业:爆破物类物品50%折扣"
|
|
7372
7378
|
];
|
|
7373
7379
|
} else if (isComputerExpert && normalizedCategory === "设备工具") {
|
|
7374
7380
|
discountInfo = [
|
|
7375
7381
|
"💰 当前折扣:",
|
|
7376
|
-
"💻
|
|
7382
|
+
"💻 计算机专家职业:设备工具类物品50%折扣"
|
|
7377
7383
|
];
|
|
7378
7384
|
}
|
|
7379
7385
|
return [
|
|
7380
7386
|
`🏴 辛迪加黑市 - ${normalizedCategory} 🏴`,
|
|
7381
7387
|
'使用"订购 物品名称"进行购买(仅消耗红晶)',
|
|
7388
|
+
legendaryNotice,
|
|
7389
|
+
// 新增传奇武器权限提示
|
|
7382
7390
|
...discountInfo,
|
|
7383
7391
|
"====================",
|
|
7384
7392
|
...items
|
|
@@ -7479,10 +7487,10 @@ ${validTypes.join("、")}`;
|
|
|
7479
7487
|
const buildResponse = /* @__PURE__ */ __name(async () => {
|
|
7480
7488
|
const discountLines = [];
|
|
7481
7489
|
if (isSaboteurDiscount) {
|
|
7482
|
-
discountLines.push("💣
|
|
7490
|
+
discountLines.push("💣 破坏者职业:爆破物类物品50%折扣");
|
|
7483
7491
|
}
|
|
7484
7492
|
if (isComputerExpertDiscount) {
|
|
7485
|
-
discountLines.push("💻
|
|
7493
|
+
discountLines.push("💻 计算机专家职业:设备工具类物品50%折扣");
|
|
7486
7494
|
}
|
|
7487
7495
|
const priceInfo = [
|
|
7488
7496
|
`消耗红晶:${finalCost}${discountApplied ? ` (原价${originalPrice})` : ""}`
|
|
@@ -7752,7 +7760,7 @@ ${Spacestationtechnology.map((t) => t.techname).join("、")}`;
|
|
|
7752
7760
|
}
|
|
7753
7761
|
reportLines.push(rewardLine);
|
|
7754
7762
|
if (tech.level >= 3) {
|
|
7755
|
-
reportLines.push(
|
|
7763
|
+
reportLines.push(`⚙️ 采掘系统科技Lv.${tech.level}(矿骡):+${multiplier * 100}%金币`);
|
|
7756
7764
|
}
|
|
7757
7765
|
reportLines.push(`🏆 历史总挖矿收益:${record.totalMined + total}金币`);
|
|
7758
7766
|
reportLines.push("💡 已自动开始下一轮挖矿");
|
package/lib/weapons.d.ts
CHANGED