koishi-plugin-ggcevo-game 1.6.6 → 1.6.8
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/database.d.ts +1 -1
- package/lib/index.js +49 -45
- package/lib/tasks.d.ts +4 -4
- package/package.json +1 -1
package/lib/database.d.ts
CHANGED
package/lib/index.js
CHANGED
|
@@ -625,7 +625,7 @@ var SyndicatedItems = {
|
|
|
625
625
|
type: "设备工具",
|
|
626
626
|
description: "建造机器人,用于自动采集太空矿物",
|
|
627
627
|
price: 0,
|
|
628
|
-
redCrystalCost:
|
|
628
|
+
redCrystalCost: 20,
|
|
629
629
|
condition: "辛迪加海盗阵营",
|
|
630
630
|
effects: "挖矿获得的金币收益提高10%;可使用红晶升级"
|
|
631
631
|
}
|
|
@@ -1242,7 +1242,7 @@ var itemupgrades = [
|
|
|
1242
1242
|
// 升级基础成本
|
|
1243
1243
|
minUpgrade: 5,
|
|
1244
1244
|
// 每次升级最小提升
|
|
1245
|
-
maxUpgrade:
|
|
1245
|
+
maxUpgrade: 15,
|
|
1246
1246
|
// 每次升级最大提升
|
|
1247
1247
|
maxBonus: 90
|
|
1248
1248
|
// 总提升上限
|
|
@@ -1251,7 +1251,7 @@ var itemupgrades = [
|
|
|
1251
1251
|
name: "CRED-17",
|
|
1252
1252
|
upgradeCostBase: 10,
|
|
1253
1253
|
minUpgrade: 5,
|
|
1254
|
-
maxUpgrade:
|
|
1254
|
+
maxUpgrade: 15,
|
|
1255
1255
|
maxBonus: 50
|
|
1256
1256
|
}
|
|
1257
1257
|
];
|
|
@@ -1270,7 +1270,7 @@ var Tasklist = {
|
|
|
1270
1270
|
id: 2,
|
|
1271
1271
|
type: "可重复任务",
|
|
1272
1272
|
target: 1,
|
|
1273
|
-
price:
|
|
1273
|
+
price: 75,
|
|
1274
1274
|
redCrystalCost: 0,
|
|
1275
1275
|
condition: "使用【零度之下】攻击目标并成功增加其1层[寒冷]"
|
|
1276
1276
|
},
|
|
@@ -1286,7 +1286,7 @@ var Tasklist = {
|
|
|
1286
1286
|
id: 4,
|
|
1287
1287
|
type: "可重复任务",
|
|
1288
1288
|
target: 1,
|
|
1289
|
-
price:
|
|
1289
|
+
price: 45,
|
|
1290
1290
|
redCrystalCost: 0,
|
|
1291
1291
|
condition: "使用【脉冲扰乱枪】攻击目标并成功减少其1层技能层数"
|
|
1292
1292
|
},
|
|
@@ -1302,7 +1302,7 @@ var Tasklist = {
|
|
|
1302
1302
|
id: 6,
|
|
1303
1303
|
type: "可重复任务",
|
|
1304
1304
|
target: 1,
|
|
1305
|
-
price:
|
|
1305
|
+
price: 80,
|
|
1306
1306
|
redCrystalCost: 0,
|
|
1307
1307
|
condition: "使用【M4AE脉冲步枪】或【动力钻头】攻击目标并成功削减其0.1护甲"
|
|
1308
1308
|
},
|
|
@@ -1310,7 +1310,7 @@ var Tasklist = {
|
|
|
1310
1310
|
id: 7,
|
|
1311
1311
|
type: "可重复任务",
|
|
1312
1312
|
target: 1,
|
|
1313
|
-
price:
|
|
1313
|
+
price: 40,
|
|
1314
1314
|
redCrystalCost: 0,
|
|
1315
1315
|
condition: "使用【焚烧枪】或【龙息霰弹枪】攻击目标并成功增加其1层[燃烧]"
|
|
1316
1316
|
}
|
|
@@ -1773,9 +1773,6 @@ function updateStatsByName(name2, updates) {
|
|
|
1773
1773
|
}
|
|
1774
1774
|
__name(updateStatsByName, "updateStatsByName");
|
|
1775
1775
|
function getMaxHPByName(bossName) {
|
|
1776
|
-
if (bossName === "测试假人") {
|
|
1777
|
-
return 1e6;
|
|
1778
|
-
}
|
|
1779
1776
|
for (const boss of bossPool) {
|
|
1780
1777
|
if (boss.main.name === bossName) {
|
|
1781
1778
|
return boss.main.maxHP;
|
|
@@ -1786,13 +1783,10 @@ function getMaxHPByName(bossName) {
|
|
|
1786
1783
|
}
|
|
1787
1784
|
}
|
|
1788
1785
|
}
|
|
1789
|
-
return
|
|
1786
|
+
return 1e4;
|
|
1790
1787
|
}
|
|
1791
1788
|
__name(getMaxHPByName, "getMaxHPByName");
|
|
1792
1789
|
function getMaxEnergyByName(bossName) {
|
|
1793
|
-
if (bossName === "测试假人") {
|
|
1794
|
-
return 1e3;
|
|
1795
|
-
}
|
|
1796
1790
|
for (const boss of bossPool) {
|
|
1797
1791
|
if (boss.main.name === bossName) {
|
|
1798
1792
|
return boss.main.maxEnergy;
|
|
@@ -1803,13 +1797,10 @@ function getMaxEnergyByName(bossName) {
|
|
|
1803
1797
|
}
|
|
1804
1798
|
}
|
|
1805
1799
|
}
|
|
1806
|
-
return
|
|
1800
|
+
return 1e4;
|
|
1807
1801
|
}
|
|
1808
1802
|
__name(getMaxEnergyByName, "getMaxEnergyByName");
|
|
1809
1803
|
function getMaxStacksByName(bossName) {
|
|
1810
|
-
if (bossName === "测试假人") {
|
|
1811
|
-
return 100;
|
|
1812
|
-
}
|
|
1813
1804
|
for (const boss of bossPool) {
|
|
1814
1805
|
if (boss.main.name === bossName) {
|
|
1815
1806
|
return boss.main.maxStacks;
|
|
@@ -1820,40 +1811,37 @@ function getMaxStacksByName(bossName) {
|
|
|
1820
1811
|
}
|
|
1821
1812
|
}
|
|
1822
1813
|
}
|
|
1823
|
-
return
|
|
1814
|
+
return 0;
|
|
1824
1815
|
}
|
|
1825
1816
|
__name(getMaxStacksByName, "getMaxStacksByName");
|
|
1826
1817
|
function getMaxShieldByName(bossName) {
|
|
1827
|
-
if (bossName === "测试假人") return 0;
|
|
1828
1818
|
for (const boss of bossPool) {
|
|
1829
1819
|
if (boss.main.name === bossName) return boss.main.maxShield;
|
|
1830
1820
|
for (const minion of boss.minions) {
|
|
1831
1821
|
if (minion.name === bossName) return minion.maxShield;
|
|
1832
1822
|
}
|
|
1833
1823
|
}
|
|
1834
|
-
return
|
|
1824
|
+
return 0;
|
|
1835
1825
|
}
|
|
1836
1826
|
__name(getMaxShieldByName, "getMaxShieldByName");
|
|
1837
1827
|
function getArmorByName(bossName) {
|
|
1838
|
-
if (bossName === "测试假人") return 0;
|
|
1839
1828
|
for (const boss of bossPool) {
|
|
1840
1829
|
if (boss.main.name === bossName) return boss.main.armor;
|
|
1841
1830
|
for (const minion of boss.minions) {
|
|
1842
1831
|
if (minion.name === bossName) return minion.armor;
|
|
1843
1832
|
}
|
|
1844
1833
|
}
|
|
1845
|
-
return
|
|
1834
|
+
return 0;
|
|
1846
1835
|
}
|
|
1847
1836
|
__name(getArmorByName, "getArmorByName");
|
|
1848
1837
|
function getShieldArmorByName(bossName) {
|
|
1849
|
-
if (bossName === "测试假人") return 0;
|
|
1850
1838
|
for (const boss of bossPool) {
|
|
1851
1839
|
if (boss.main.name === bossName) return boss.main.shieldArmor;
|
|
1852
1840
|
for (const minion of boss.minions) {
|
|
1853
1841
|
if (minion.name === bossName) return minion.shieldArmor;
|
|
1854
1842
|
}
|
|
1855
1843
|
}
|
|
1856
|
-
return
|
|
1844
|
+
return 0;
|
|
1857
1845
|
}
|
|
1858
1846
|
__name(getShieldArmorByName, "getShieldArmorByName");
|
|
1859
1847
|
var BattleEffectProcessor = {
|
|
@@ -3866,7 +3854,7 @@ var BattleEffectProcessor = {
|
|
|
3866
3854
|
let targetUpdates = null;
|
|
3867
3855
|
let pulseGrenadeTriggered = false;
|
|
3868
3856
|
if (weaponName === "M4AE脉冲步枪") {
|
|
3869
|
-
const armorReduction =
|
|
3857
|
+
const armorReduction = 2;
|
|
3870
3858
|
targetUpdates = {
|
|
3871
3859
|
name: targetBoss.name,
|
|
3872
3860
|
updates: { armorChange: armorReduction }
|
|
@@ -3879,7 +3867,7 @@ var BattleEffectProcessor = {
|
|
|
3879
3867
|
} else if (weaponName === "动力钻头" && equippedWeapon.installedMods?.includes("强力钻刺核心")) {
|
|
3880
3868
|
targetUpdates = {
|
|
3881
3869
|
name: targetBoss.name,
|
|
3882
|
-
updates: { armorChange:
|
|
3870
|
+
updates: { armorChange: 1 }
|
|
3883
3871
|
};
|
|
3884
3872
|
messages.push(`⚡ 【强力钻刺核心】触发:动力钻头穿透装甲,削减目标0.1点护甲值`);
|
|
3885
3873
|
} else {
|
|
@@ -4583,10 +4571,14 @@ function applyPassiveEffects(targetBoss, activeBosses, weaponName, damage, hasCr
|
|
|
4583
4571
|
if (equippedWeapon.installedMods?.includes("强力钻刺核心")) {
|
|
4584
4572
|
armorDamageReduction = 0.2;
|
|
4585
4573
|
}
|
|
4586
|
-
armor += targetBoss.
|
|
4574
|
+
armor += getArmorByName(targetBoss.name) - targetBoss.radiationLayers * 0.05 - targetBoss.armorReductionLayers * 0.1;
|
|
4587
4575
|
const armorReduction = armorDamageReduction * armor;
|
|
4588
4576
|
if (armorReduction !== 0) {
|
|
4589
|
-
|
|
4577
|
+
if (armorReduction > 0) {
|
|
4578
|
+
messages.push(`护甲减伤: ${armorReduction.toFixed(2)}点`);
|
|
4579
|
+
} else {
|
|
4580
|
+
messages.push(`护甲增伤: ${Math.abs(armorReduction).toFixed(2)}点`);
|
|
4581
|
+
}
|
|
4590
4582
|
}
|
|
4591
4583
|
finalDamage = Math.max(Math.round(finalDamage - armorReduction), 1);
|
|
4592
4584
|
if (finalDamage < targetBoss.HP) {
|
|
@@ -5297,6 +5289,15 @@ var ggcevoUpdates = [
|
|
|
5297
5289
|
- 黑市订购逻辑已修改,现在无法重复订购已有的设备工具类物品
|
|
5298
5290
|
- 新增探索星系“陨石星系”
|
|
5299
5291
|
`.trim()
|
|
5292
|
+
},
|
|
5293
|
+
{
|
|
5294
|
+
version: "1.6.8",
|
|
5295
|
+
time: "2025-07-09",
|
|
5296
|
+
content: `
|
|
5297
|
+
- 增强DG-3电弧步枪的散射伤害系数至50%
|
|
5298
|
+
- 提高“绝对零度”和“脉冲干扰”任务金币奖励,降低“破甲先锋”和“烈火燎原”任务金币奖励
|
|
5299
|
+
- 提高“自动采掘机器人”和“CRED-17”每次升级区间至5%-15%
|
|
5300
|
+
`.trim()
|
|
5300
5301
|
}
|
|
5301
5302
|
];
|
|
5302
5303
|
function compareVersions(a, b) {
|
|
@@ -5470,7 +5471,6 @@ async function activateNextBossGroup(ctx, currentBossId = null) {
|
|
|
5470
5471
|
// 新增标签字段
|
|
5471
5472
|
skills: [...nextBossGroup.main.passive],
|
|
5472
5473
|
energy: nextBossGroup.main.maxEnergy,
|
|
5473
|
-
armor: nextBossGroup.main.armor,
|
|
5474
5474
|
groupId: nextBossGroup.id,
|
|
5475
5475
|
isActive: true,
|
|
5476
5476
|
respawnTime: /* @__PURE__ */ new Date()
|
|
@@ -5484,7 +5484,6 @@ async function activateNextBossGroup(ctx, currentBossId = null) {
|
|
|
5484
5484
|
// 新增标签字段
|
|
5485
5485
|
skills: [...minion.passive],
|
|
5486
5486
|
energy: minion.maxEnergy,
|
|
5487
|
-
armor: minion.armor,
|
|
5488
5487
|
groupId: nextBossGroup.id,
|
|
5489
5488
|
isActive: true,
|
|
5490
5489
|
respawnTime: /* @__PURE__ */ new Date()
|
|
@@ -6780,8 +6779,8 @@ async function updateDatabaseWithStats(ctx, stats) {
|
|
|
6780
6779
|
updateData.energy = Math.max(0, Math.min(maxEnergy, newEnergy));
|
|
6781
6780
|
}
|
|
6782
6781
|
if (stats.armorChange !== 0) {
|
|
6783
|
-
const newarmor = boss.
|
|
6784
|
-
updateData.
|
|
6782
|
+
const newarmor = boss.armorReductionLayers + stats.armorChange;
|
|
6783
|
+
updateData.armorReductionLayers = newarmor;
|
|
6785
6784
|
}
|
|
6786
6785
|
if (stats.skillStacksChanged !== 0) {
|
|
6787
6786
|
const newStacks = boss.skillStacks + stats.skillStacksChanged;
|
|
@@ -7196,7 +7195,7 @@ function apply(ctx, config) {
|
|
|
7196
7195
|
type: "string",
|
|
7197
7196
|
HP: "unsigned",
|
|
7198
7197
|
energy: "unsigned",
|
|
7199
|
-
|
|
7198
|
+
armorReductionLayers: "unsigned",
|
|
7200
7199
|
tags: "list",
|
|
7201
7200
|
skills: "list",
|
|
7202
7201
|
skillStacks: "unsigned",
|
|
@@ -9962,7 +9961,7 @@ ${testResult.passiveMessages.map((m) => `▸ ${m}`).join("\n")}`
|
|
|
9962
9961
|
if (bossGroup.main.maxEnergy > 0) {
|
|
9963
9962
|
result.push(`⚡ 能量:${mainBoss.energy}/1000`);
|
|
9964
9963
|
}
|
|
9965
|
-
result.push(`🛡️ 护甲:${
|
|
9964
|
+
result.push(`🛡️ 护甲:${bossGroup.main.armor || 0}`);
|
|
9966
9965
|
result.push(`🏷️ 标签:${mainBoss.tags?.join("、") || "无"}`);
|
|
9967
9966
|
if (mainBoss.radiationLayers > 0) {
|
|
9968
9967
|
result.push(`☢️ 辐射:${mainBoss.radiationLayers}层`);
|
|
@@ -10029,7 +10028,7 @@ ${testResult.passiveMessages.map((m) => `▸ ${m}`).join("\n")}`
|
|
|
10029
10028
|
if (minionConfig && minionConfig.maxEnergy > 0) {
|
|
10030
10029
|
minionInfo.push(`⚡ 能量:${minion.energy}/1000`);
|
|
10031
10030
|
}
|
|
10032
|
-
minionInfo.push(`🛡️ 护甲:${
|
|
10031
|
+
minionInfo.push(`🛡️ 护甲:${minionConfig?.armor || 0}`);
|
|
10033
10032
|
minionInfo.push(`🏷️ 标签:${minion.tags?.join("、") || "无"}`);
|
|
10034
10033
|
if (minion.radiationLayers > 0) {
|
|
10035
10034
|
minionInfo.push(`☢️ 辐射:${minion.radiationLayers}层`);
|
|
@@ -10105,7 +10104,6 @@ ${testResult.passiveMessages.map((m) => `▸ ${m}`).join("\n")}`
|
|
|
10105
10104
|
tags: bossConfig.main.tags,
|
|
10106
10105
|
skills: [...bossConfig.main.passive],
|
|
10107
10106
|
energy: bossConfig.main.maxEnergy,
|
|
10108
|
-
armor: bossConfig.main.armor,
|
|
10109
10107
|
groupId: groupid,
|
|
10110
10108
|
isActive: true,
|
|
10111
10109
|
respawnTime: /* @__PURE__ */ new Date()
|
|
@@ -10122,7 +10120,6 @@ ${testResult.passiveMessages.map((m) => `▸ ${m}`).join("\n")}`
|
|
|
10122
10120
|
tags: minion.tags,
|
|
10123
10121
|
skills: [...minion.passive],
|
|
10124
10122
|
energy: minion.maxEnergy,
|
|
10125
|
-
armor: minion.armor,
|
|
10126
10123
|
groupId: groupid,
|
|
10127
10124
|
isActive: true,
|
|
10128
10125
|
respawnTime: /* @__PURE__ */ new Date()
|
|
@@ -11675,7 +11672,9 @@ ${Spacestationtechnology.map((t) => t.techname).join("、")}`;
|
|
|
11675
11672
|
const explorers = await ctx.database.get("ggcevo_explore", {
|
|
11676
11673
|
galaxy: galaxyName,
|
|
11677
11674
|
status: "探索中",
|
|
11678
|
-
handle: { $ne: handle }
|
|
11675
|
+
handle: { $ne: handle },
|
|
11676
|
+
plunderbonus: { $gte: 0 }
|
|
11677
|
+
// 新增条件:掠夺收益大于等于0
|
|
11679
11678
|
});
|
|
11680
11679
|
if (explorers.length > 0) {
|
|
11681
11680
|
const shipHandles = explorers.map((e) => e.handle);
|
|
@@ -11780,7 +11779,6 @@ ${Spacestationtechnology.map((t) => t.techname).join("、")}`;
|
|
|
11780
11779
|
...shipList.map((ship) => `▸ ${ship}`),
|
|
11781
11780
|
"\n🛒 购买指令:购买飞船 [飞船名称]",
|
|
11782
11781
|
"例如:购买飞船 TX-12S隐形巡洋舰",
|
|
11783
|
-
"\n📡 查询您当前的飞船:飞船信息",
|
|
11784
11782
|
'\n💡 提示:购买飞船后使用"飞船信息"查看您的飞船'
|
|
11785
11783
|
].join("\n");
|
|
11786
11784
|
});
|
|
@@ -11904,7 +11902,9 @@ ${Spacestationtechnology.map((t) => t.techname).join("、")}`;
|
|
|
11904
11902
|
currentBonus: item.bonus,
|
|
11905
11903
|
maxBonus: upgradeConfig2.maxBonus,
|
|
11906
11904
|
cost: actualCost,
|
|
11907
|
-
discount: isCommander ? `(原价: ${baseCost} 红晶)` : ""
|
|
11905
|
+
discount: isCommander ? `(原价: ${baseCost} 红晶)` : "",
|
|
11906
|
+
// 新增: 存储升级区间信息
|
|
11907
|
+
upgradeRange: `${upgradeConfig2.minUpgrade}%~${upgradeConfig2.maxUpgrade}%`
|
|
11908
11908
|
});
|
|
11909
11909
|
}
|
|
11910
11910
|
if (upgradableItems.length === 0) {
|
|
@@ -11920,12 +11920,16 @@ ${Spacestationtechnology.map((t) => t.techname).join("、")}`;
|
|
|
11920
11920
|
const msgLines = [
|
|
11921
11921
|
"💎 可升级物品列表",
|
|
11922
11922
|
...discountNotice2,
|
|
11923
|
-
// 在列表下方第一行添加折扣明细
|
|
11924
11923
|
"====================",
|
|
11924
|
+
// 修改这里: 在物品信息中增加升级区间显示
|
|
11925
11925
|
...upgradableItems.map((item) => {
|
|
11926
|
-
return
|
|
11927
|
-
|
|
11928
|
-
|
|
11926
|
+
return [
|
|
11927
|
+
`▸ ${item.name}:`,
|
|
11928
|
+
` 当前升级加成: ${item.currentBonus}% / ${item.maxBonus}%`,
|
|
11929
|
+
` 每次升级提升: ${item.upgradeRange}`,
|
|
11930
|
+
// 新增行
|
|
11931
|
+
` 升级消耗: ${item.cost} 红晶 ${item.discount}`
|
|
11932
|
+
].join("\n");
|
|
11929
11933
|
}),
|
|
11930
11934
|
"====================",
|
|
11931
11935
|
`使用"升级物品 物品名称"进行升级`
|
package/lib/tasks.d.ts
CHANGED
|
@@ -11,7 +11,7 @@ export declare const Tasklist: {
|
|
|
11
11
|
readonly id: 2;
|
|
12
12
|
readonly type: "可重复任务";
|
|
13
13
|
readonly target: 1;
|
|
14
|
-
readonly price:
|
|
14
|
+
readonly price: 75;
|
|
15
15
|
readonly redCrystalCost: 0;
|
|
16
16
|
readonly condition: "使用【零度之下】攻击目标并成功增加其1层[寒冷]";
|
|
17
17
|
};
|
|
@@ -27,7 +27,7 @@ export declare const Tasklist: {
|
|
|
27
27
|
readonly id: 4;
|
|
28
28
|
readonly type: "可重复任务";
|
|
29
29
|
readonly target: 1;
|
|
30
|
-
readonly price:
|
|
30
|
+
readonly price: 45;
|
|
31
31
|
readonly redCrystalCost: 0;
|
|
32
32
|
readonly condition: "使用【脉冲扰乱枪】攻击目标并成功减少其1层技能层数";
|
|
33
33
|
};
|
|
@@ -43,7 +43,7 @@ export declare const Tasklist: {
|
|
|
43
43
|
readonly id: 6;
|
|
44
44
|
readonly type: "可重复任务";
|
|
45
45
|
readonly target: 1;
|
|
46
|
-
readonly price:
|
|
46
|
+
readonly price: 80;
|
|
47
47
|
readonly redCrystalCost: 0;
|
|
48
48
|
readonly condition: "使用【M4AE脉冲步枪】或【动力钻头】攻击目标并成功削减其0.1护甲";
|
|
49
49
|
};
|
|
@@ -51,7 +51,7 @@ export declare const Tasklist: {
|
|
|
51
51
|
readonly id: 7;
|
|
52
52
|
readonly type: "可重复任务";
|
|
53
53
|
readonly target: 1;
|
|
54
|
-
readonly price:
|
|
54
|
+
readonly price: 40;
|
|
55
55
|
readonly redCrystalCost: 0;
|
|
56
56
|
readonly condition: "使用【焚烧枪】或【龙息霰弹枪】攻击目标并成功增加其1层[燃烧]";
|
|
57
57
|
};
|