koishi-plugin-ggcevo-game 1.5.12 → 1.5.14
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/BattleEffectProcessor.d.ts +1 -3
- package/lib/index.js +91 -49
- package/lib/weapons.d.ts +6 -0
- package/package.json +1 -1
|
@@ -580,7 +580,7 @@ export declare const BattleEffectProcessor: {
|
|
|
580
580
|
fusionExplosionTriggered: boolean;
|
|
581
581
|
messages: string[];
|
|
582
582
|
};
|
|
583
|
-
handleBurnEffect: (targetBoss: any, weaponName: string) => {
|
|
583
|
+
handleBurnEffect: (targetBoss: any, weaponName: string, equippedWeapon: any) => {
|
|
584
584
|
messages: string[];
|
|
585
585
|
targetUpdates: {
|
|
586
586
|
name: string;
|
|
@@ -660,6 +660,4 @@ export declare function applyPassiveEffects(targetBoss: any, activeBosses: any[]
|
|
|
660
660
|
burnLayerAdded: boolean;
|
|
661
661
|
drainFactor: number;
|
|
662
662
|
reductionAmount: number;
|
|
663
|
-
isLethal: boolean;
|
|
664
|
-
revivalTriggered: boolean;
|
|
665
663
|
};
|
package/lib/index.js
CHANGED
|
@@ -41,7 +41,7 @@ var weaponConfig = {
|
|
|
41
41
|
// 每点护甲减伤1点伤害
|
|
42
42
|
description: "标准配置武器,中距离作战利器",
|
|
43
43
|
specialeffect: "",
|
|
44
|
-
price:
|
|
44
|
+
price: 100,
|
|
45
45
|
redCrystalCost: 1,
|
|
46
46
|
isantiair: true,
|
|
47
47
|
tagEffects: {
|
|
@@ -71,7 +71,7 @@ var weaponConfig = {
|
|
|
71
71
|
damage: 23,
|
|
72
72
|
armorDamageReduction: 0.25,
|
|
73
73
|
description: "基于热能的强大武器,烧烬一切",
|
|
74
|
-
specialeffect: "攻击时为目标附加[燃烧]效果,每层使目标受到火焰伤害时额外造成
|
|
74
|
+
specialeffect: "攻击时为目标附加1层[燃烧]效果,每层使目标受到火焰伤害时额外造成2点伤害(至多额外造成100点伤害)",
|
|
75
75
|
price: 450,
|
|
76
76
|
redCrystalCost: 4,
|
|
77
77
|
isantiair: false,
|
|
@@ -366,7 +366,7 @@ var weaponConfig = {
|
|
|
366
366
|
damage: 90,
|
|
367
367
|
armorDamageReduction: 0,
|
|
368
368
|
description: "这是传说中的武器",
|
|
369
|
-
specialeffect: "攻击时为目标附加[燃烧]效果,每层使目标受到火焰伤害时额外造成
|
|
369
|
+
specialeffect: "攻击时为目标附加2层[燃烧]效果,每层使目标受到火焰伤害时额外造成2点伤害(至多额外造成100点伤害)",
|
|
370
370
|
price: 6400,
|
|
371
371
|
redCrystalCost: 200,
|
|
372
372
|
isantiair: false,
|
|
@@ -489,7 +489,7 @@ var modConfig = {
|
|
|
489
489
|
},
|
|
490
490
|
"助燃核心": {
|
|
491
491
|
cost: 2550,
|
|
492
|
-
effect: "对[惧热]目标改为造成300%伤害,对[生物]目标改为造成200
|
|
492
|
+
effect: "对[惧热]目标改为造成300%伤害,对[生物]目标改为造成200%伤害;攻击时每1点护甲改为增加0.5点伤害;双倍叠加[燃烧]层数",
|
|
493
493
|
exclusiveTo: "焚烧枪",
|
|
494
494
|
isExclusive: true
|
|
495
495
|
},
|
|
@@ -537,9 +537,15 @@ var modConfig = {
|
|
|
537
537
|
},
|
|
538
538
|
"氮气压缩核心": {
|
|
539
539
|
cost: 2e3,
|
|
540
|
-
effect: "双倍叠加[寒冷]
|
|
540
|
+
effect: "双倍叠加[寒冷]层数;攻击时每1点护甲改为减少0点伤害",
|
|
541
541
|
exclusiveTo: "零度之下",
|
|
542
542
|
isExclusive: true
|
|
543
|
+
},
|
|
544
|
+
"轻型电源节点": {
|
|
545
|
+
cost: 1250,
|
|
546
|
+
effect: "伤害提高40%;攻击时每1点护甲改为减少0点伤害",
|
|
547
|
+
exclusiveTo: "等离子切割机",
|
|
548
|
+
isExclusive: true
|
|
543
549
|
}
|
|
544
550
|
};
|
|
545
551
|
|
|
@@ -1232,7 +1238,7 @@ var bossPool = [
|
|
|
1232
1238
|
main: {
|
|
1233
1239
|
name: "异齿猛兽首领",
|
|
1234
1240
|
type: "主宰",
|
|
1235
|
-
maxHP:
|
|
1241
|
+
maxHP: 25e3,
|
|
1236
1242
|
maxShield: 0,
|
|
1237
1243
|
maxEnergy: 0,
|
|
1238
1244
|
armor: 25,
|
|
@@ -1245,7 +1251,7 @@ var bossPool = [
|
|
|
1245
1251
|
{
|
|
1246
1252
|
name: "异齿猛兽",
|
|
1247
1253
|
type: "子代",
|
|
1248
|
-
maxHP:
|
|
1254
|
+
maxHP: 7500,
|
|
1249
1255
|
maxShield: 0,
|
|
1250
1256
|
maxEnergy: 0,
|
|
1251
1257
|
armor: 20,
|
|
@@ -1261,7 +1267,7 @@ var bossPool = [
|
|
|
1261
1267
|
main: {
|
|
1262
1268
|
name: "寒冰王蛇",
|
|
1263
1269
|
type: "主宰",
|
|
1264
|
-
maxHP:
|
|
1270
|
+
maxHP: 25e3,
|
|
1265
1271
|
maxShield: 0,
|
|
1266
1272
|
maxEnergy: 0,
|
|
1267
1273
|
armor: 6,
|
|
@@ -1274,7 +1280,7 @@ var bossPool = [
|
|
|
1274
1280
|
{
|
|
1275
1281
|
name: "冰蛇",
|
|
1276
1282
|
type: "子代",
|
|
1277
|
-
maxHP:
|
|
1283
|
+
maxHP: 7500,
|
|
1278
1284
|
maxShield: 0,
|
|
1279
1285
|
maxEnergy: 0,
|
|
1280
1286
|
armor: 4,
|
|
@@ -3755,22 +3761,32 @@ var BattleEffectProcessor = {
|
|
|
3755
3761
|
return null;
|
|
3756
3762
|
}, "handleFusionCannonEffect"),
|
|
3757
3763
|
// 在 BattleEffectProcessor 对象中添加以下函数
|
|
3758
|
-
handleBurnEffect: /* @__PURE__ */ __name(function(targetBoss, weaponName) {
|
|
3764
|
+
handleBurnEffect: /* @__PURE__ */ __name(function(targetBoss, weaponName, equippedWeapon) {
|
|
3759
3765
|
const messages = [];
|
|
3760
3766
|
let burnLayerAdded = false;
|
|
3761
3767
|
const isBurnWeapon = weaponName === "焚烧枪" || weaponName === "龙息霰弹枪";
|
|
3762
3768
|
if (!isBurnWeapon) {
|
|
3763
3769
|
return null;
|
|
3764
3770
|
}
|
|
3771
|
+
let burnLayers = 1;
|
|
3772
|
+
if (weaponName === "龙息霰弹枪") {
|
|
3773
|
+
burnLayers = 2;
|
|
3774
|
+
}
|
|
3775
|
+
if (equippedWeapon && equippedWeapon.installedMods?.includes("助燃核心")) {
|
|
3776
|
+
burnLayers = 2;
|
|
3777
|
+
}
|
|
3765
3778
|
const targetUpdates = {
|
|
3766
3779
|
name: targetBoss.name,
|
|
3767
3780
|
updates: {
|
|
3768
|
-
burnLayersChanged:
|
|
3769
|
-
//
|
|
3781
|
+
burnLayersChanged: burnLayers
|
|
3782
|
+
// 动态燃烧层数
|
|
3770
3783
|
}
|
|
3771
3784
|
};
|
|
3772
3785
|
burnLayerAdded = true;
|
|
3773
|
-
|
|
3786
|
+
let effectMessage = `🔥 【${weaponName}】武器效果:目标获得${burnLayers}层「燃烧」`;
|
|
3787
|
+
if (burnLayers > 1) {
|
|
3788
|
+
}
|
|
3789
|
+
messages.push(effectMessage);
|
|
3774
3790
|
return {
|
|
3775
3791
|
messages,
|
|
3776
3792
|
targetUpdates,
|
|
@@ -4145,7 +4161,7 @@ function applyPassiveEffects(targetBoss, activeBosses, weaponName, damage, hasCr
|
|
|
4145
4161
|
if (fusionEffect) {
|
|
4146
4162
|
messages.push(...fusionEffect.messages);
|
|
4147
4163
|
}
|
|
4148
|
-
const burnEffectResult = BattleEffectProcessor.handleBurnEffect(targetBoss, weaponName);
|
|
4164
|
+
const burnEffectResult = BattleEffectProcessor.handleBurnEffect(targetBoss, weaponName, equippedWeapon);
|
|
4149
4165
|
if (burnEffectResult) {
|
|
4150
4166
|
messages.push(...burnEffectResult.messages);
|
|
4151
4167
|
if (burnEffectResult.targetUpdates) {
|
|
@@ -4266,26 +4282,6 @@ function applyPassiveEffects(targetBoss, activeBosses, weaponName, damage, hasCr
|
|
|
4266
4282
|
totalBuffMultiplier += acidPoolResult.buffMultiplier;
|
|
4267
4283
|
}
|
|
4268
4284
|
}
|
|
4269
|
-
const healingEffects = [
|
|
4270
|
-
{ effect: BattleEffectProcessor.handleFrostRegeneration, args: [targetBoss, activeBosses, maxStatsForTarget] },
|
|
4271
|
-
{ effect: BattleEffectProcessor.handleFrostAura, args: [targetBoss, activeBosses] },
|
|
4272
|
-
{ effect: BattleEffectProcessor.handleSentryGun, args: [targetBoss, activeBosses] },
|
|
4273
|
-
{ effect: BattleEffectProcessor.handleMoldGrowth, args: [targetBoss, activeBosses] },
|
|
4274
|
-
{ effect: BattleEffectProcessor.handleElectricShockwave, args: [targetBoss] },
|
|
4275
|
-
{ effect: BattleEffectProcessor.handlePulse, args: [targetBoss, activeBosses] },
|
|
4276
|
-
{ effect: BattleEffectProcessor.handleFeeding, args: [targetBoss] },
|
|
4277
|
-
{ effect: BattleEffectProcessor.handleBurningBurrow, args: [targetBoss] },
|
|
4278
|
-
{ effect: BattleEffectProcessor.handleBombardmentGuide, args: [targetBoss] },
|
|
4279
|
-
{ effect: BattleEffectProcessor.handleOverdriveShield, args: [targetBoss, activeBosses] },
|
|
4280
|
-
// 6. 淬毒撕咬
|
|
4281
|
-
{ effect: BattleEffectProcessor.handlePoisonedBite, args: [targetBoss] },
|
|
4282
|
-
{ effect: BattleEffectProcessor.handleHealingSwarm, args: [targetBoss, activeBosses] },
|
|
4283
|
-
{ effect: BattleEffectProcessor.handleBurrowAmbush, args: [targetBoss, activeBosses] },
|
|
4284
|
-
{ effect: BattleEffectProcessor.handleAcceleratedDifferentiation, args: [targetBoss] }
|
|
4285
|
-
];
|
|
4286
|
-
for (const effectItem of healingEffects) {
|
|
4287
|
-
processEffect(effectItem.effect, ...effectItem.args);
|
|
4288
|
-
}
|
|
4289
4285
|
const burningSlimeResult = BattleEffectProcessor.handleBurningSlime(targetBoss, weaponName);
|
|
4290
4286
|
if (burningSlimeResult) {
|
|
4291
4287
|
messages.push(...burningSlimeResult.messages);
|
|
@@ -4371,7 +4367,8 @@ function applyPassiveEffects(targetBoss, activeBosses, weaponName, damage, hasCr
|
|
|
4371
4367
|
finalDamage *= 2;
|
|
4372
4368
|
}
|
|
4373
4369
|
if (weaponName === "焚烧枪" || weaponName === "龙息霰弹枪") {
|
|
4374
|
-
const
|
|
4370
|
+
const currentBurnLayers = Math.min(targetBoss?.burnLayers || 0, 50);
|
|
4371
|
+
const burnDamage = currentBurnLayers * 2;
|
|
4375
4372
|
if (burnDamage > 0) {
|
|
4376
4373
|
messages.push(`🔥 【燃烧】效果造成额外${burnDamage}点伤害`);
|
|
4377
4374
|
}
|
|
@@ -4389,12 +4386,40 @@ function applyPassiveEffects(targetBoss, activeBosses, weaponName, damage, hasCr
|
|
|
4389
4386
|
if (careerData?.career === "猩红杀手" && weaponName === "侦察步枪") {
|
|
4390
4387
|
armorDamageReduction = 1;
|
|
4391
4388
|
}
|
|
4389
|
+
if (equippedWeapon.installedMods?.includes("氮气压缩核心")) {
|
|
4390
|
+
armorDamageReduction = 0;
|
|
4391
|
+
}
|
|
4392
|
+
if (equippedWeapon.installedMods?.includes("轻型电源节点")) {
|
|
4393
|
+
armorDamageReduction = 0;
|
|
4394
|
+
}
|
|
4392
4395
|
armor += targetBoss.armor - targetBoss.radiationLayers * 0.05;
|
|
4393
4396
|
const armorReduction = armorDamageReduction * armor;
|
|
4394
4397
|
if (armorReduction !== 0) {
|
|
4395
4398
|
messages.push(`护甲减伤: ${armorReduction.toFixed(2)}点`);
|
|
4396
4399
|
}
|
|
4397
4400
|
finalDamage = Math.max(Math.round(finalDamage - armorReduction), 1);
|
|
4401
|
+
if (finalDamage < targetBoss.HP) {
|
|
4402
|
+
const healingEffects = [
|
|
4403
|
+
{ effect: BattleEffectProcessor.handleFrostRegeneration, args: [targetBoss, activeBosses, maxStatsForTarget] },
|
|
4404
|
+
{ effect: BattleEffectProcessor.handleFrostAura, args: [targetBoss, activeBosses] },
|
|
4405
|
+
{ effect: BattleEffectProcessor.handleSentryGun, args: [targetBoss, activeBosses] },
|
|
4406
|
+
{ effect: BattleEffectProcessor.handleMoldGrowth, args: [targetBoss, activeBosses] },
|
|
4407
|
+
{ effect: BattleEffectProcessor.handleElectricShockwave, args: [targetBoss] },
|
|
4408
|
+
{ effect: BattleEffectProcessor.handlePulse, args: [targetBoss, activeBosses] },
|
|
4409
|
+
{ effect: BattleEffectProcessor.handleFeeding, args: [targetBoss] },
|
|
4410
|
+
{ effect: BattleEffectProcessor.handleBurningBurrow, args: [targetBoss] },
|
|
4411
|
+
{ effect: BattleEffectProcessor.handleBombardmentGuide, args: [targetBoss] },
|
|
4412
|
+
{ effect: BattleEffectProcessor.handleOverdriveShield, args: [targetBoss, activeBosses] },
|
|
4413
|
+
// 6. 淬毒撕咬
|
|
4414
|
+
{ effect: BattleEffectProcessor.handlePoisonedBite, args: [targetBoss] },
|
|
4415
|
+
{ effect: BattleEffectProcessor.handleHealingSwarm, args: [targetBoss, activeBosses] },
|
|
4416
|
+
{ effect: BattleEffectProcessor.handleBurrowAmbush, args: [targetBoss, activeBosses] },
|
|
4417
|
+
{ effect: BattleEffectProcessor.handleAcceleratedDifferentiation, args: [targetBoss] }
|
|
4418
|
+
];
|
|
4419
|
+
for (const effectItem of healingEffects) {
|
|
4420
|
+
processEffect(effectItem.effect, ...effectItem.args);
|
|
4421
|
+
}
|
|
4422
|
+
}
|
|
4398
4423
|
const frostEvolutionResult = BattleEffectProcessor.handleFrostEvolution(
|
|
4399
4424
|
targetBoss,
|
|
4400
4425
|
weaponName,
|
|
@@ -4478,9 +4503,7 @@ function applyPassiveEffects(targetBoss, activeBosses, weaponName, damage, hasCr
|
|
|
4478
4503
|
burnLayerAdded,
|
|
4479
4504
|
// 新增燃烧叠加标记
|
|
4480
4505
|
drainFactor,
|
|
4481
|
-
reductionAmount
|
|
4482
|
-
isLethal,
|
|
4483
|
-
revivalTriggered
|
|
4506
|
+
reductionAmount
|
|
4484
4507
|
};
|
|
4485
4508
|
}
|
|
4486
4509
|
__name(applyPassiveEffects, "applyPassiveEffects");
|
|
@@ -4995,10 +5018,14 @@ var ggcevoUpdates = [
|
|
|
4995
5018
|
`.trim()
|
|
4996
5019
|
},
|
|
4997
5020
|
{
|
|
4998
|
-
version: "1.5.
|
|
4999
|
-
time: "2025-07-
|
|
5021
|
+
version: "1.5.14",
|
|
5022
|
+
time: "2025-07-03",
|
|
5000
5023
|
content: `
|
|
5001
|
-
-
|
|
5024
|
+
- 增强了专属模块:助燃核心和氮气压缩核心
|
|
5025
|
+
- 新增了专属模块:轻型电源节点
|
|
5026
|
+
- 增强了传奇武器:龙息霰弹枪
|
|
5027
|
+
- 修改了[燃烧]机制
|
|
5028
|
+
- 修改了回血技能逻辑,现在攻击造成致命伤害时不再触发回血技能
|
|
5002
5029
|
`.trim()
|
|
5003
5030
|
}
|
|
5004
5031
|
];
|
|
@@ -5836,6 +5863,10 @@ function calculateModifiers(equippedWeapon, weaponName) {
|
|
|
5836
5863
|
totalModAdd += 0.4;
|
|
5837
5864
|
modMessages.push(`🛠️ 【裂甲核心】:伤害+40%`);
|
|
5838
5865
|
}
|
|
5866
|
+
if (equippedWeapon.installedMods?.includes("轻型电源节点") && weaponName === modConfig["轻型电源节点"]?.exclusiveTo) {
|
|
5867
|
+
totalModAdd += 0.4;
|
|
5868
|
+
modMessages.push(`🛠️ 【轻型电源节点】:伤害+40%`);
|
|
5869
|
+
}
|
|
5839
5870
|
if (equippedWeapon.installedMods?.includes("微型聚变核心")) {
|
|
5840
5871
|
const currentCombo = equippedWeapon?.comboCount || 0;
|
|
5841
5872
|
const maxStacks = 6;
|
|
@@ -6131,7 +6162,6 @@ async function handleBossDefeatRewards(ctx, targetBoss) {
|
|
|
6131
6162
|
}
|
|
6132
6163
|
__name(handleBossDefeatRewards, "handleBossDefeatRewards");
|
|
6133
6164
|
async function handlePrimaryAttack(ctx, session, handle, config, equippedWeapon, targetBoss, activeBosses, weaponName, careerData) {
|
|
6134
|
-
let currentHP = 0;
|
|
6135
6165
|
const damageResult = await calculateTotalDamage(ctx, session, config, equippedWeapon, targetBoss, careerData);
|
|
6136
6166
|
const ignoreReduction = await handleIgnoreReductionEffects(ctx, handle, weaponName, targetBoss);
|
|
6137
6167
|
const EffectProcessor = applyPassiveEffects(targetBoss, activeBosses, weaponName, damageResult.damage, damageResult.hasCrit, ignoreReduction.ignoreRate, careerData, equippedWeapon);
|
|
@@ -6143,10 +6173,8 @@ async function handlePrimaryAttack(ctx, session, handle, config, equippedWeapon,
|
|
|
6143
6173
|
}
|
|
6144
6174
|
}
|
|
6145
6175
|
const [currentboss] = await ctx.database.get("ggcevo_boss", { name: targetBoss.name });
|
|
6146
|
-
const
|
|
6147
|
-
|
|
6148
|
-
currentHP = currentboss.HP;
|
|
6149
|
-
}
|
|
6176
|
+
const currentHP = currentboss.HP;
|
|
6177
|
+
const isDefeated = currentHP <= 0;
|
|
6150
6178
|
return {
|
|
6151
6179
|
initialDamage,
|
|
6152
6180
|
currentHP,
|
|
@@ -6227,7 +6255,14 @@ async function handleScatterAttack(ctx, session, handle, config, equippedWeapon,
|
|
|
6227
6255
|
taskUpdates.push({ taskId: 6, count: 1 });
|
|
6228
6256
|
}
|
|
6229
6257
|
if (EffectProcessor.burnLayerAdded) {
|
|
6230
|
-
|
|
6258
|
+
let burnLayers = 1;
|
|
6259
|
+
if (weaponName === "龙息霰弹枪") {
|
|
6260
|
+
burnLayers = 2;
|
|
6261
|
+
}
|
|
6262
|
+
if (equippedWeapon.installedMods?.includes("助燃核心")) {
|
|
6263
|
+
burnLayers *= 2;
|
|
6264
|
+
}
|
|
6265
|
+
taskUpdates.push({ taskId: 7, count: burnLayers });
|
|
6231
6266
|
}
|
|
6232
6267
|
const isDead = currentHP <= 0;
|
|
6233
6268
|
scatterEffectMessages.push(...EffectProcessor.messages.map((m) => ` 对 ${secondaryTarget.name} ${m}`));
|
|
@@ -8646,7 +8681,7 @@ ${protectionList}
|
|
|
8646
8681
|
bonusEffects.push(
|
|
8647
8682
|
`▸ 💻 计算机专家特权:`,
|
|
8648
8683
|
` - 主动PK胜率+10%(最高可至100%)`,
|
|
8649
|
-
` - 每日挑战次数+3
|
|
8684
|
+
` - 每日挑战次数+3`
|
|
8650
8685
|
);
|
|
8651
8686
|
}
|
|
8652
8687
|
if (targetCareer.group === "人类联盟" && isWin) {
|
|
@@ -9405,7 +9440,14 @@ ${validTypes.join("、")}`;
|
|
|
9405
9440
|
taskUpdates.push({ taskId: 6, count: 1 });
|
|
9406
9441
|
}
|
|
9407
9442
|
if (primaryAttackResult.burnLayerAdded) {
|
|
9408
|
-
|
|
9443
|
+
let burnLayers = 1;
|
|
9444
|
+
if (weaponName === "龙息霰弹枪") {
|
|
9445
|
+
burnLayers = 2;
|
|
9446
|
+
}
|
|
9447
|
+
if (equippedWeapon.installedMods?.includes("助燃核心")) {
|
|
9448
|
+
burnLayers *= 2;
|
|
9449
|
+
}
|
|
9450
|
+
taskUpdates.push({ taskId: 7, count: burnLayers });
|
|
9409
9451
|
}
|
|
9410
9452
|
if (scatterResult && scatterResult.taskUpdates) {
|
|
9411
9453
|
scatterResult.taskUpdates.forEach((update) => {
|
package/lib/weapons.d.ts
CHANGED