koishi-plugin-ggcevo-game 1.4.87 → 1.4.89
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 +10 -0
- package/lib/boss/attackhandling.d.ts +1 -0
- package/lib/database.d.ts +1 -0
- package/lib/index.js +75 -15
- package/lib/tasks.d.ts +9 -1
- package/package.json +1 -1
|
@@ -12,6 +12,7 @@ export interface BattleStatistics {
|
|
|
12
12
|
statusLayersChanged: number;
|
|
13
13
|
radiationLayersChange: number;
|
|
14
14
|
coldLayersChange: number;
|
|
15
|
+
burnLayersChanged: number;
|
|
15
16
|
lastWeaponName: string;
|
|
16
17
|
}
|
|
17
18
|
export declare const battleStatsMap: Record<string, BattleStatistics>;
|
|
@@ -577,6 +578,14 @@ export declare const BattleEffectProcessor: {
|
|
|
577
578
|
fusionExplosionTriggered: boolean;
|
|
578
579
|
messages: string[];
|
|
579
580
|
};
|
|
581
|
+
handleBurnEffect: (targetBoss: any, weaponName: string) => {
|
|
582
|
+
messages: string[];
|
|
583
|
+
targetUpdates: {
|
|
584
|
+
name: string;
|
|
585
|
+
updates: Partial<BattleStatistics>;
|
|
586
|
+
} | null;
|
|
587
|
+
burnLayerAdded: boolean;
|
|
588
|
+
} | null;
|
|
580
589
|
};
|
|
581
590
|
/**
|
|
582
591
|
* 统一处理所有被动效果(包含伤害修正、免疫检查、状态更新等)
|
|
@@ -596,4 +605,5 @@ export declare function applyPassiveEffects(targetBoss: any, activeBosses: any[]
|
|
|
596
605
|
bileDetonationTrigger: boolean;
|
|
597
606
|
spawnNewBossMarks: string[];
|
|
598
607
|
pulseGrenadeTriggered: boolean;
|
|
608
|
+
burnLayerAdded: boolean;
|
|
599
609
|
};
|
|
@@ -14,6 +14,7 @@ export declare function handlePrimaryAttack(ctx: Context, session: any, handle:
|
|
|
14
14
|
pulseApplied: boolean;
|
|
15
15
|
arcApplied: boolean;
|
|
16
16
|
pulseGrenadeTriggered: boolean;
|
|
17
|
+
burnLayerAdded: boolean;
|
|
17
18
|
}>;
|
|
18
19
|
export declare function handleScatterAttack(ctx: Context, session: any, handle: string, config: Config, equippedWeapon: any, targetBoss: any, weaponName: string, activeBosses: any[], careerData: any): Promise<{
|
|
19
20
|
scatterEffectMessages: string[];
|
package/lib/database.d.ts
CHANGED
package/lib/index.js
CHANGED
|
@@ -71,7 +71,7 @@ var weaponConfig = {
|
|
|
71
71
|
damage: 23,
|
|
72
72
|
armorDamageReduction: 0.25,
|
|
73
73
|
description: "基于热能的强大武器,烧烬一切",
|
|
74
|
-
specialeffect: "",
|
|
74
|
+
specialeffect: "攻击时为目标附加[燃烧]效果,每层使目标受到火焰伤害时额外造成5点伤害(至多额外造成100点伤害)",
|
|
75
75
|
price: 450,
|
|
76
76
|
redCrystalCost: 4,
|
|
77
77
|
isantiair: false,
|
|
@@ -363,10 +363,10 @@ var weaponConfig = {
|
|
|
363
363
|
id: 103,
|
|
364
364
|
type: "实弹武器",
|
|
365
365
|
category: "传奇武器",
|
|
366
|
-
damage:
|
|
366
|
+
damage: 90,
|
|
367
367
|
armorDamageReduction: 0,
|
|
368
368
|
description: "这是传说中的武器",
|
|
369
|
-
specialeffect: "",
|
|
369
|
+
specialeffect: "攻击时为目标附加[燃烧]效果,每层使目标受到火焰伤害时额外造成5点伤害(至多额外造成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: "对[惧热]
|
|
492
|
+
effect: "对[惧热]目标改为造成300%伤害,对[生物]目标改为造成200%伤害",
|
|
493
493
|
exclusiveTo: "焚烧枪",
|
|
494
494
|
isExclusive: true
|
|
495
495
|
},
|
|
@@ -641,7 +641,7 @@ var spaceStationCrewConfig = [
|
|
|
641
641
|
{
|
|
642
642
|
professionName: "警卫长",
|
|
643
643
|
effect: "攻击伤害+5%,攻击获得的金币+100%",
|
|
644
|
-
requirements: "
|
|
644
|
+
requirements: "当期伤害榜前二十名;职业为警卫员下士",
|
|
645
645
|
Jobtransfer: true,
|
|
646
646
|
costcoins: 3e3
|
|
647
647
|
},
|
|
@@ -719,7 +719,7 @@ var syndicatePirateConfig = [
|
|
|
719
719
|
},
|
|
720
720
|
{
|
|
721
721
|
professionName: "猩红杀手",
|
|
722
|
-
effect: "“侦察步枪”攻击伤害+15%; 使用“侦察步枪”攻击时每1
|
|
722
|
+
effect: "“侦察步枪”攻击伤害+15%; 使用“侦察步枪”攻击时每1点护甲改为减少1点伤害; 购买DSR-55反器材步枪(传奇)享有50%的折扣",
|
|
723
723
|
requirements: "“侦察步枪”武器等级≥3级",
|
|
724
724
|
Jobtransfer: true,
|
|
725
725
|
costredcrystal: 30
|
|
@@ -740,7 +740,7 @@ var syndicatePirateConfig = [
|
|
|
740
740
|
},
|
|
741
741
|
{
|
|
742
742
|
professionName: "计算机专家",
|
|
743
|
-
effect: "黑市订购设备工具类享有50%折扣; 被动应战的PK
|
|
743
|
+
effect: "黑市订购设备工具类享有50%折扣; 被动应战的PK对战结果为失败时,不会损失金币;每日获得3枚红晶(前日每被PK一次,红晶数量-1,下限为1)",
|
|
744
744
|
requirements: "仓库中至少拥有一个黑市订购的设备工具类物品",
|
|
745
745
|
Jobtransfer: true,
|
|
746
746
|
costredcrystal: 30
|
|
@@ -768,7 +768,7 @@ var syndicatePirateConfig = [
|
|
|
768
768
|
},
|
|
769
769
|
{
|
|
770
770
|
professionName: "征募官",
|
|
771
|
-
effect: "",
|
|
771
|
+
effect: "购买DG-3电弧步枪(传奇)享有50%的折扣",
|
|
772
772
|
requirements: "",
|
|
773
773
|
Jobtransfer: false,
|
|
774
774
|
costredcrystal: 10
|
|
@@ -1156,9 +1156,17 @@ var Tasklist = {
|
|
|
1156
1156
|
id: 6,
|
|
1157
1157
|
type: "可重复任务",
|
|
1158
1158
|
target: 1,
|
|
1159
|
-
price:
|
|
1159
|
+
price: 200,
|
|
1160
1160
|
redCrystalCost: 0,
|
|
1161
1161
|
condition: "使用【M4AE脉冲步枪】攻击目标并成功削减其护甲"
|
|
1162
|
+
},
|
|
1163
|
+
"烈火燎原": {
|
|
1164
|
+
id: 7,
|
|
1165
|
+
type: "可重复任务",
|
|
1166
|
+
target: 1,
|
|
1167
|
+
price: 50,
|
|
1168
|
+
redCrystalCost: 0,
|
|
1169
|
+
condition: "使用【焚烧枪】或【龙息霰弹枪】攻击目标并成功增加其燃烧层数"
|
|
1162
1170
|
}
|
|
1163
1171
|
};
|
|
1164
1172
|
|
|
@@ -1576,6 +1584,7 @@ function updateStatsByName(name2, updates) {
|
|
|
1576
1584
|
statusLayersChanged: 0,
|
|
1577
1585
|
radiationLayersChange: 0,
|
|
1578
1586
|
coldLayersChange: 0,
|
|
1587
|
+
burnLayersChanged: 0,
|
|
1579
1588
|
lastWeaponName: ""
|
|
1580
1589
|
};
|
|
1581
1590
|
battleStatsMap[name2] = {
|
|
@@ -1590,6 +1599,7 @@ function updateStatsByName(name2, updates) {
|
|
|
1590
1599
|
radiationLayersChange: existing.radiationLayersChange + (updates.radiationLayersChange ?? 0),
|
|
1591
1600
|
coldLayersChange: existing.coldLayersChange + (updates.coldLayersChange ?? 0),
|
|
1592
1601
|
armorChange: existing.armorChange + (updates.armorChange ?? 0),
|
|
1602
|
+
burnLayersChanged: existing.burnLayersChanged + (updates.burnLayersChanged ?? 0),
|
|
1593
1603
|
// 数组类型:合并(新增内容追加到现有数组)
|
|
1594
1604
|
tagsAdded: [...existing.tagsAdded, ...updates.tagsAdded ?? []],
|
|
1595
1605
|
tagsRemoved: [...existing.tagsRemoved, ...updates.tagsRemoved ?? []],
|
|
@@ -3657,7 +3667,30 @@ var BattleEffectProcessor = {
|
|
|
3657
3667
|
};
|
|
3658
3668
|
}
|
|
3659
3669
|
return null;
|
|
3660
|
-
}, "handleFusionCannonEffect")
|
|
3670
|
+
}, "handleFusionCannonEffect"),
|
|
3671
|
+
// 在 BattleEffectProcessor 对象中添加以下函数
|
|
3672
|
+
handleBurnEffect: /* @__PURE__ */ __name(function(targetBoss, weaponName) {
|
|
3673
|
+
const messages = [];
|
|
3674
|
+
let burnLayerAdded = false;
|
|
3675
|
+
const isBurnWeapon = weaponName === "焚烧枪" || weaponName === "龙息霰弹枪";
|
|
3676
|
+
if (!isBurnWeapon) {
|
|
3677
|
+
return null;
|
|
3678
|
+
}
|
|
3679
|
+
const targetUpdates = {
|
|
3680
|
+
name: targetBoss.name,
|
|
3681
|
+
updates: {
|
|
3682
|
+
burnLayersChanged: 1
|
|
3683
|
+
// 燃烧层数+1
|
|
3684
|
+
}
|
|
3685
|
+
};
|
|
3686
|
+
burnLayerAdded = true;
|
|
3687
|
+
messages.push(`🔥 【${weaponName}】武器效果:目标获得1层「燃烧」`);
|
|
3688
|
+
return {
|
|
3689
|
+
messages,
|
|
3690
|
+
targetUpdates,
|
|
3691
|
+
burnLayerAdded
|
|
3692
|
+
};
|
|
3693
|
+
}, "handleBurnEffect")
|
|
3661
3694
|
};
|
|
3662
3695
|
function applyPassiveEffects(targetBoss, activeBosses, weaponName, damage, hasCrit, ignoreRate, careerData, equippedWeapon) {
|
|
3663
3696
|
const messages = [];
|
|
@@ -3672,6 +3705,7 @@ function applyPassiveEffects(targetBoss, activeBosses, weaponName, damage, hasCr
|
|
|
3672
3705
|
let spawnNewBossMarks = [];
|
|
3673
3706
|
let armor = 0;
|
|
3674
3707
|
let pulseGrenadeTriggered = false;
|
|
3708
|
+
let burnLayerAdded = false;
|
|
3675
3709
|
const weaponData = weaponConfig[weaponName] || { type: "" };
|
|
3676
3710
|
let doubleAstralWind = false;
|
|
3677
3711
|
let isolatedImmunityMark = false;
|
|
@@ -3754,6 +3788,14 @@ function applyPassiveEffects(targetBoss, activeBosses, weaponName, damage, hasCr
|
|
|
3754
3788
|
if (fusionEffect) {
|
|
3755
3789
|
messages.push(...fusionEffect.messages);
|
|
3756
3790
|
}
|
|
3791
|
+
const burnEffectResult = BattleEffectProcessor.handleBurnEffect(targetBoss, weaponName);
|
|
3792
|
+
if (burnEffectResult) {
|
|
3793
|
+
messages.push(...burnEffectResult.messages);
|
|
3794
|
+
if (burnEffectResult.targetUpdates) {
|
|
3795
|
+
updateStatsByName(burnEffectResult.targetUpdates.name, burnEffectResult.targetUpdates.updates);
|
|
3796
|
+
}
|
|
3797
|
+
burnLayerAdded = burnEffectResult.burnLayerAdded;
|
|
3798
|
+
}
|
|
3757
3799
|
const carpetBombResult = BattleEffectProcessor.handleCarpetBombing(targetBoss);
|
|
3758
3800
|
if (carpetBombResult) {
|
|
3759
3801
|
isolatedImmunityMark = carpetBombResult.tempMark || false;
|
|
@@ -3957,6 +3999,13 @@ function applyPassiveEffects(targetBoss, activeBosses, weaponName, damage, hasCr
|
|
|
3957
3999
|
if (hasCrit) {
|
|
3958
4000
|
finalDamage *= 2;
|
|
3959
4001
|
}
|
|
4002
|
+
if (weaponName === "焚烧枪" || weaponName === "龙息霰弹枪") {
|
|
4003
|
+
const burnDamage = (targetBoss?.burnLayers || 0) * 5;
|
|
4004
|
+
if (burnDamage > 0) {
|
|
4005
|
+
messages.push(`🔥 【燃烧】效果造成额外${burnDamage}点伤害`);
|
|
4006
|
+
}
|
|
4007
|
+
finalDamage += burnDamage;
|
|
4008
|
+
}
|
|
3960
4009
|
let armorDamageReduction = weaponData.armorDamageReduction || 0;
|
|
3961
4010
|
if (careerData?.career === "猩红杀手" && weaponName === "侦察步枪") {
|
|
3962
4011
|
armorDamageReduction = 1;
|
|
@@ -4046,7 +4095,9 @@ function applyPassiveEffects(targetBoss, activeBosses, weaponName, damage, hasCr
|
|
|
4046
4095
|
bileDetonationTrigger,
|
|
4047
4096
|
spawnNewBossMarks,
|
|
4048
4097
|
// +++ 新增生成标记 +++
|
|
4049
|
-
pulseGrenadeTriggered
|
|
4098
|
+
pulseGrenadeTriggered,
|
|
4099
|
+
burnLayerAdded
|
|
4100
|
+
// 新增燃烧叠加标记
|
|
4050
4101
|
};
|
|
4051
4102
|
}
|
|
4052
4103
|
__name(applyPassiveEffects, "applyPassiveEffects");
|
|
@@ -5033,7 +5084,7 @@ var legendaryDiscounts = {
|
|
|
5033
5084
|
"M4AE脉冲步枪": ["枪手"],
|
|
5034
5085
|
"DSR-55反器材步枪": ["猩红杀手"],
|
|
5035
5086
|
"龙息霰弹枪": ["纵火狂"],
|
|
5036
|
-
"DG-3电弧步枪": ["
|
|
5087
|
+
"DG-3电弧步枪": ["征募官"],
|
|
5037
5088
|
"光剑": ["指挥官"],
|
|
5038
5089
|
"外星电浆": ["装甲兵"],
|
|
5039
5090
|
"核聚变重炮": ["破坏者"]
|
|
@@ -5434,7 +5485,8 @@ async function handlePrimaryAttack(ctx, session, handle, config, equippedWeapon,
|
|
|
5434
5485
|
bileStacks: EffectProcessor.bileDetonationTrigger,
|
|
5435
5486
|
pulseApplied: EffectProcessor.layerReduced,
|
|
5436
5487
|
arcApplied: EffectProcessor.energyDrained,
|
|
5437
|
-
pulseGrenadeTriggered: EffectProcessor.pulseGrenadeTriggered
|
|
5488
|
+
pulseGrenadeTriggered: EffectProcessor.pulseGrenadeTriggered,
|
|
5489
|
+
burnLayerAdded: EffectProcessor.burnLayerAdded
|
|
5438
5490
|
};
|
|
5439
5491
|
}
|
|
5440
5492
|
__name(handlePrimaryAttack, "handlePrimaryAttack");
|
|
@@ -5493,6 +5545,9 @@ async function handleScatterAttack(ctx, session, handle, config, equippedWeapon,
|
|
|
5493
5545
|
if (EffectProcessor.pulseGrenadeTriggered) {
|
|
5494
5546
|
taskUpdates.push({ taskId: 6, count: 1 });
|
|
5495
5547
|
}
|
|
5548
|
+
if (EffectProcessor.burnLayerAdded) {
|
|
5549
|
+
taskUpdates.push({ taskId: 7, count: 1 });
|
|
5550
|
+
}
|
|
5496
5551
|
const isDead = currentHP <= 0;
|
|
5497
5552
|
scatterEffectMessages.push(...EffectProcessor.messages.map((m) => ` 对 ${secondaryTarget.name} ${m}`));
|
|
5498
5553
|
if (isDead) {
|
|
@@ -5739,6 +5794,9 @@ async function updateDatabaseWithStats(ctx, stats) {
|
|
|
5739
5794
|
if (stats.coldLayersChange !== 0) {
|
|
5740
5795
|
updateData.coldLayers = Math.max(0, boss.coldLayers + stats.coldLayersChange);
|
|
5741
5796
|
}
|
|
5797
|
+
if (stats.burnLayersChanged !== 0) {
|
|
5798
|
+
updateData.burnLayers = Math.max(0, boss.burnLayers + stats.burnLayersChanged);
|
|
5799
|
+
}
|
|
5742
5800
|
if (stats.tagsAdded.length > 0 || stats.tagsRemoved.length > 0) {
|
|
5743
5801
|
updateData.tags = [
|
|
5744
5802
|
...boss.tags.filter((tag) => !stats.tagsRemoved.includes(tag)),
|
|
@@ -6078,10 +6136,10 @@ function apply(ctx, config) {
|
|
|
6078
6136
|
skills: "list",
|
|
6079
6137
|
skillStacks: "unsigned",
|
|
6080
6138
|
skillStatus: "unsigned",
|
|
6081
|
-
// 新增:表示技能当前的状态值
|
|
6082
6139
|
statusLayers: "unsigned",
|
|
6083
6140
|
radiationLayers: "unsigned",
|
|
6084
6141
|
coldLayers: "unsigned",
|
|
6142
|
+
burnLayers: "unsigned",
|
|
6085
6143
|
lastWeaponName: "string",
|
|
6086
6144
|
isActive: "boolean",
|
|
6087
6145
|
respawnTime: "timestamp"
|
|
@@ -8558,6 +8616,9 @@ ${validTypes.join("、")}`;
|
|
|
8558
8616
|
if (primaryAttackResult.pulseGrenadeTriggered) {
|
|
8559
8617
|
taskUpdates.push({ taskId: 6, count: 1 });
|
|
8560
8618
|
}
|
|
8619
|
+
if (primaryAttackResult.burnLayerAdded) {
|
|
8620
|
+
taskUpdates.push({ taskId: 7, count: 1 });
|
|
8621
|
+
}
|
|
8561
8622
|
if (scatterResult && scatterResult.taskUpdates) {
|
|
8562
8623
|
scatterResult.taskUpdates.forEach((update) => {
|
|
8563
8624
|
taskUpdates.push(update);
|
|
@@ -10071,7 +10132,6 @@ ${Spacestationtechnology.map((t) => t.techname).join("、")}`;
|
|
|
10071
10132
|
`✨ 您获得了传奇武器:${awardedWeapon.name}`,
|
|
10072
10133
|
`🔧 武器类型:${awardedWeapon.type}`,
|
|
10073
10134
|
`⚔️ 基础伤害:${awardedWeapon.damage}`,
|
|
10074
|
-
`🔮 特殊效果:${awardedWeapon.specialeffect || "无"}`,
|
|
10075
10135
|
`📖 描述:${awardedWeapon.description}`
|
|
10076
10136
|
].join("\n");
|
|
10077
10137
|
});
|
package/lib/tasks.d.ts
CHANGED
|
@@ -43,8 +43,16 @@ export declare const Tasklist: {
|
|
|
43
43
|
readonly id: 6;
|
|
44
44
|
readonly type: "可重复任务";
|
|
45
45
|
readonly target: 1;
|
|
46
|
-
readonly price:
|
|
46
|
+
readonly price: 200;
|
|
47
47
|
readonly redCrystalCost: 0;
|
|
48
48
|
readonly condition: "使用【M4AE脉冲步枪】攻击目标并成功削减其护甲";
|
|
49
49
|
};
|
|
50
|
+
readonly 烈火燎原: {
|
|
51
|
+
readonly id: 7;
|
|
52
|
+
readonly type: "可重复任务";
|
|
53
|
+
readonly target: 1;
|
|
54
|
+
readonly price: 50;
|
|
55
|
+
readonly redCrystalCost: 0;
|
|
56
|
+
readonly condition: "使用【焚烧枪】或【龙息霰弹枪】攻击目标并成功增加其燃烧层数";
|
|
57
|
+
};
|
|
50
58
|
};
|