koishi-plugin-ggcevo-game 1.4.95 → 1.5.0
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 +78 -20
- package/lib/update.d.ts +6 -0
- package/package.json +1 -1
package/lib/index.js
CHANGED
|
@@ -652,7 +652,7 @@ var spaceStationCrewConfig = [
|
|
|
652
652
|
},
|
|
653
653
|
{
|
|
654
654
|
professionName: "警卫长",
|
|
655
|
-
effect: "攻击伤害+5%,攻击获得的金币+
|
|
655
|
+
effect: "攻击伤害+5%,攻击获得的金币+75%",
|
|
656
656
|
requirements: "当期伤害榜前二十名;职业为警卫员下士",
|
|
657
657
|
Jobtransfer: true,
|
|
658
658
|
costcoins: 3e3
|
|
@@ -674,9 +674,9 @@ var spaceStationCrewConfig = [
|
|
|
674
674
|
{
|
|
675
675
|
professionName: "情报副官",
|
|
676
676
|
effect: "升级空间站科技享有10%的折扣",
|
|
677
|
-
requirements: "至少一个空间站科技等级≥
|
|
677
|
+
requirements: "至少一个空间站科技等级≥5级",
|
|
678
678
|
Jobtransfer: true,
|
|
679
|
-
costcoins:
|
|
679
|
+
costcoins: 3e3
|
|
680
680
|
},
|
|
681
681
|
{
|
|
682
682
|
professionName: "总工程师",
|
|
@@ -852,10 +852,10 @@ async function checkTransferRequirements(ctx, handle, profession) {
|
|
|
852
852
|
}
|
|
853
853
|
case "情报副官":
|
|
854
854
|
const techs = await ctx.database.get("ggcevo_tech", { handle });
|
|
855
|
-
const hasValidTech = techs.some((t) => t.level >=
|
|
855
|
+
const hasValidTech = techs.some((t) => t.level >= 5);
|
|
856
856
|
return {
|
|
857
857
|
success: hasValidTech,
|
|
858
|
-
message: hasValidTech ? "" : "需要至少一个空间站科技等级≥
|
|
858
|
+
message: hasValidTech ? "" : "需要至少一个空间站科技等级≥5级"
|
|
859
859
|
};
|
|
860
860
|
case "能量武器专家":
|
|
861
861
|
const hasEnergyWeapon = weapons.some((weapon) => {
|
|
@@ -1037,8 +1037,8 @@ var Spacestationtechnology = [
|
|
|
1037
1037
|
{
|
|
1038
1038
|
level: 5,
|
|
1039
1039
|
cost: 4650,
|
|
1040
|
-
description: "提升空间站武器等级,升级武器享有25
|
|
1041
|
-
careerBonus: "升级武器额外享有25%的折扣;
|
|
1040
|
+
description: "提升空间站武器等级,升级武器享有25%的折扣; 解锁传奇武器购买权限1次",
|
|
1041
|
+
careerBonus: "升级武器额外享有25%的折扣; 解锁全部传奇武器购买权限(仅限武器中士)"
|
|
1042
1042
|
}
|
|
1043
1043
|
]
|
|
1044
1044
|
},
|
|
@@ -4590,6 +4590,34 @@ var wishConfig = {
|
|
|
4590
4590
|
]
|
|
4591
4591
|
};
|
|
4592
4592
|
|
|
4593
|
+
// src/update.ts
|
|
4594
|
+
var ggcevoUpdates = [
|
|
4595
|
+
{
|
|
4596
|
+
version: "1.5.0",
|
|
4597
|
+
time: "2025-06-27",
|
|
4598
|
+
content: `
|
|
4599
|
+
- 回调“伽马辐射”任务奖励为50金币
|
|
4600
|
+
- 修改武器系统科技
|
|
4601
|
+
- 提高人类联盟情报副官转职门槛
|
|
4602
|
+
- 削弱人类联盟警卫长攻击奖励为+75%
|
|
4603
|
+
- 新增“技能”指令用于查询各异形的技能列表
|
|
4604
|
+
`.trim()
|
|
4605
|
+
}
|
|
4606
|
+
];
|
|
4607
|
+
function compareVersions(a, b) {
|
|
4608
|
+
const aParts = a.split(".").map(Number);
|
|
4609
|
+
const bParts = b.split(".").map(Number);
|
|
4610
|
+
for (let i = 0; i < Math.max(aParts.length, bParts.length); i++) {
|
|
4611
|
+
const aVal = aParts[i] || 0;
|
|
4612
|
+
const bVal = bParts[i] || 0;
|
|
4613
|
+
if (aVal !== bVal) {
|
|
4614
|
+
return bVal - aVal;
|
|
4615
|
+
}
|
|
4616
|
+
}
|
|
4617
|
+
return 0;
|
|
4618
|
+
}
|
|
4619
|
+
__name(compareVersions, "compareVersions");
|
|
4620
|
+
|
|
4593
4621
|
// src/utils.ts
|
|
4594
4622
|
async function gachaWithPity(ctx, handle) {
|
|
4595
4623
|
const [record] = await ctx.database.get("ggcevo_records", { handle });
|
|
@@ -5863,8 +5891,8 @@ async function calculateRewards(ctx, handle, totalDamage) {
|
|
|
5863
5891
|
careerMultiplier = 50;
|
|
5864
5892
|
careerMessage = "🛡️ 警卫员下士职业:+50%金币";
|
|
5865
5893
|
} else if (career === "警卫长") {
|
|
5866
|
-
careerMultiplier =
|
|
5867
|
-
careerMessage = "🛡️ 警卫长职业:+
|
|
5894
|
+
careerMultiplier = 75;
|
|
5895
|
+
careerMessage = "🛡️ 警卫长职业:+75%金币";
|
|
5868
5896
|
}
|
|
5869
5897
|
const totalBonusPercent = careerMultiplier + techBonusPercent;
|
|
5870
5898
|
const totalBonusFactor = 1 + totalBonusPercent / 100;
|
|
@@ -8254,7 +8282,7 @@ ${Object.keys(categoryStats).join("、")}`;
|
|
|
8254
8282
|
"------------------"
|
|
8255
8283
|
].filter(Boolean).join("\n");
|
|
8256
8284
|
});
|
|
8257
|
-
const permissionNotice = category === "传奇武器" ? "⚠️ 购买传奇武器要求:人类联盟阵营+武器系统5
|
|
8285
|
+
const permissionNotice = category === "传奇武器" ? "⚠️ 购买传奇武器要求:人类联盟阵营+武器系统5级+传奇武器购买权限" : null;
|
|
8258
8286
|
return [
|
|
8259
8287
|
`🏪 咕咕武器库 - ${category} 🏪`,
|
|
8260
8288
|
'使用"购买 武器名称"指令进行购买',
|
|
@@ -8334,21 +8362,21 @@ ${validTypes.join("、")}`;
|
|
|
8334
8362
|
if (existingWeapon.length > 0) return `❌ 您已经拥有${item},无法重复购买`;
|
|
8335
8363
|
}
|
|
8336
8364
|
if (isLegendaryWeapon) {
|
|
8337
|
-
const [permissions] = await ctx.database.get("ggcevo_permissions", { handle });
|
|
8338
|
-
if (!permissions || permissions.legendarypermissions <= 0) {
|
|
8339
|
-
return '❌ 购买传奇武器需要"传奇武器购买权限",您当前没有购买权限。';
|
|
8340
|
-
}
|
|
8341
8365
|
const [careerData2] = await ctx.database.get("ggcevo_careers", { handle });
|
|
8342
8366
|
const [weaponTech] = await ctx.database.get("ggcevo_tech", { handle, techId: 2 });
|
|
8367
|
+
const weaponSystemLevel = weaponTech?.level || 0;
|
|
8343
8368
|
if (!careerData2 || careerData2.group !== "人类联盟") {
|
|
8344
8369
|
return '❌ 购买传奇武器需要在"人类联盟"阵营。';
|
|
8345
8370
|
}
|
|
8346
|
-
const weaponSystemLevel = weaponTech?.level || 0;
|
|
8347
8371
|
if (weaponSystemLevel < 5) {
|
|
8348
8372
|
return `❌ 购买传奇武器需要将武器系统升级到5级(当前等级:${weaponSystemLevel})。`;
|
|
8349
8373
|
}
|
|
8350
|
-
|
|
8351
|
-
|
|
8374
|
+
const isWeaponSpecialist = careerData2?.career === "武器中士";
|
|
8375
|
+
if (!isWeaponSpecialist) {
|
|
8376
|
+
const [permissions] = await ctx.database.get("ggcevo_permissions", { handle });
|
|
8377
|
+
if (!permissions || permissions.legendarypermissions <= 0) {
|
|
8378
|
+
return '❌ 购买传奇武器需要"传奇武器购买权限",您当前没有购买权限。';
|
|
8379
|
+
}
|
|
8352
8380
|
}
|
|
8353
8381
|
}
|
|
8354
8382
|
const [signInfo] = await ctx.database.get("ggcevo_sign", { handle });
|
|
@@ -8398,7 +8426,7 @@ ${validTypes.join("、")}`;
|
|
|
8398
8426
|
isused: true
|
|
8399
8427
|
});
|
|
8400
8428
|
}
|
|
8401
|
-
if (isLegendaryWeapon) {
|
|
8429
|
+
if (isLegendaryWeapon && careerData?.career !== "武器中士") {
|
|
8402
8430
|
const [permissionRecord] = await ctx.database.get("ggcevo_permissions", { handle });
|
|
8403
8431
|
if (!permissionRecord || permissionRecord.legendarypermissions <= 0) {
|
|
8404
8432
|
throw new Error("传奇武器购买权限不足");
|
|
@@ -8450,9 +8478,14 @@ ${validTypes.join("、")}`;
|
|
|
8450
8478
|
message += `花费 ${actualPrice} 金币`;
|
|
8451
8479
|
}
|
|
8452
8480
|
if (isLegendaryWeapon) {
|
|
8453
|
-
|
|
8454
|
-
|
|
8481
|
+
if (careerData?.career !== "武器中士") {
|
|
8482
|
+
const [permissions] = await ctx.database.get("ggcevo_permissions", { handle });
|
|
8483
|
+
message += `
|
|
8455
8484
|
扣除 1 次传奇武器购买权限,剩余次数:${permissions?.legendarypermissions || 0}`;
|
|
8485
|
+
} else {
|
|
8486
|
+
message += `
|
|
8487
|
+
【武器中士特权】本次购买未消耗传奇武器权限`;
|
|
8488
|
+
}
|
|
8456
8489
|
}
|
|
8457
8490
|
if (isWeapon) {
|
|
8458
8491
|
if (isAutoEquipped) {
|
|
@@ -10480,6 +10513,31 @@ ${Spacestationtechnology.map((t) => t.techname).join("、")}`;
|
|
|
10480
10513
|
`注:部分技能可触发衍生技能,最多显示二级衍生技能`
|
|
10481
10514
|
].join("\n");
|
|
10482
10515
|
});
|
|
10516
|
+
ctx.command("ggcevo/咕咕更新").action(async ({ session }) => {
|
|
10517
|
+
try {
|
|
10518
|
+
const latestUpdates = [...ggcevoUpdates].sort((a, b) => compareVersions(a.version, b.version)).slice(0, 3);
|
|
10519
|
+
if (latestUpdates.length === 0) {
|
|
10520
|
+
return "🛑 暂无更新记录";
|
|
10521
|
+
}
|
|
10522
|
+
let message = "🕊️ 咕咕之战版本更新内容:\n\n";
|
|
10523
|
+
for (const update of latestUpdates) {
|
|
10524
|
+
message += `🔹【版本 v${update.version} | ${update.time}】
|
|
10525
|
+
`;
|
|
10526
|
+
message += `${update.content}
|
|
10527
|
+
|
|
10528
|
+
`;
|
|
10529
|
+
}
|
|
10530
|
+
const latestVersion = latestUpdates[0].version;
|
|
10531
|
+
message += `✅ 当前最新版本:v${latestVersion}
|
|
10532
|
+
`;
|
|
10533
|
+
message += "输入「ggcevo」查看全部指令\n";
|
|
10534
|
+
message += "输入「ggcevo/武器库」查看可购买武器";
|
|
10535
|
+
return message;
|
|
10536
|
+
} catch (error) {
|
|
10537
|
+
ctx.logger.error("咕咕更新指令出错:", error);
|
|
10538
|
+
return "🛠️ 系统维护中,请稍后再试";
|
|
10539
|
+
}
|
|
10540
|
+
});
|
|
10483
10541
|
}
|
|
10484
10542
|
__name(apply, "apply");
|
|
10485
10543
|
// Annotate the CommonJS export names for ESM import in node:
|
package/lib/update.d.ts
ADDED