koishi-plugin-ggcevo-game 1.4.20 → 1.4.22
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 +41 -44
- package/lib/weapons.d.ts +1 -0
- package/lib/wish.d.ts +1 -1
- package/package.json +1 -1
package/lib/index.js
CHANGED
|
@@ -137,6 +137,7 @@ var weaponConfig = {
|
|
|
137
137
|
redCrystalCost: 10,
|
|
138
138
|
isantiair: true,
|
|
139
139
|
tagEffects: {
|
|
140
|
+
"轻甲": 0.5,
|
|
140
141
|
"重甲": 0.2
|
|
141
142
|
}
|
|
142
143
|
},
|
|
@@ -144,9 +145,9 @@ var weaponConfig = {
|
|
|
144
145
|
id: 8,
|
|
145
146
|
type: "热能武器",
|
|
146
147
|
category: "热能武器",
|
|
147
|
-
damage:
|
|
148
|
+
damage: 22,
|
|
148
149
|
description: "喷射稳定的液氮恒流,对长时间接触者造成致命的损伤",
|
|
149
|
-
specialeffect: "攻击使目标叠加“寒冷”层数,每层使其受到的伤害+5%(
|
|
150
|
+
specialeffect: "攻击使目标叠加“寒冷”层数,每层使其受到的伤害+2.5%(至多+50%)",
|
|
150
151
|
price: 775,
|
|
151
152
|
redCrystalCost: 10,
|
|
152
153
|
isantiair: false,
|
|
@@ -174,9 +175,9 @@ var weaponConfig = {
|
|
|
174
175
|
id: 10,
|
|
175
176
|
type: "热能武器",
|
|
176
177
|
category: "热能武器",
|
|
177
|
-
damage:
|
|
178
|
+
damage: 24,
|
|
178
179
|
description: "一种高度危险性的武器,设计用辐射照射并伤害敌人",
|
|
179
|
-
specialeffect: "攻击使生物目标(无机械标签)叠加“辐射”层数,每层使其受到的伤害+5%(
|
|
180
|
+
specialeffect: "攻击使生物目标(无机械标签)叠加“辐射”层数,每层使其受到的伤害+2.5%(至多+50%)",
|
|
180
181
|
price: 825,
|
|
181
182
|
redCrystalCost: 10,
|
|
182
183
|
isantiair: true,
|
|
@@ -1434,7 +1435,7 @@ var wishConfig = {
|
|
|
1434
1435
|
},
|
|
1435
1436
|
{
|
|
1436
1437
|
name: "精灵双倍",
|
|
1437
|
-
effect: "
|
|
1438
|
+
effect: "下一次击败主宰时可获得双倍的金币和咕咕币奖励"
|
|
1438
1439
|
},
|
|
1439
1440
|
{
|
|
1440
1441
|
name: "喵喵财源",
|
|
@@ -2059,8 +2060,8 @@ async function handleTechUpgrade(ctx, handle, target) {
|
|
|
2059
2060
|
costInfo,
|
|
2060
2061
|
...discountInfo,
|
|
2061
2062
|
// 折扣信息
|
|
2062
|
-
`📝
|
|
2063
|
-
`💼
|
|
2063
|
+
`📝 基础效果:${levelData.description}`,
|
|
2064
|
+
`💼 职业效果:${levelData.careerBonus}`,
|
|
2064
2065
|
...permissionMessage
|
|
2065
2066
|
// 权限解锁信息
|
|
2066
2067
|
].filter(Boolean).join("\n");
|
|
@@ -6267,13 +6268,13 @@ ${validTypes.join("、")}`;
|
|
|
6267
6268
|
if (activeWish) {
|
|
6268
6269
|
const wishDiscount = 20;
|
|
6269
6270
|
totalDiscount += wishDiscount;
|
|
6270
|
-
discountDetails.push(
|
|
6271
|
+
discountDetails.push(`🦗 蚱蜢优购祈愿:${wishDiscount}%折扣`);
|
|
6271
6272
|
}
|
|
6272
6273
|
}
|
|
6273
6274
|
if (isWeapon && careerData?.career === "武器中士") {
|
|
6274
6275
|
const specialistDiscount = 20;
|
|
6275
6276
|
totalDiscount += specialistDiscount;
|
|
6276
|
-
discountDetails.push(
|
|
6277
|
+
discountDetails.push(`🎖️ 武器中士职业:${specialistDiscount}%折扣`);
|
|
6277
6278
|
}
|
|
6278
6279
|
totalDiscount = Math.min(totalDiscount, 100);
|
|
6279
6280
|
}
|
|
@@ -7878,67 +7879,63 @@ ${Spacestationtechnology.map((t) => t.techname).join("、")}`;
|
|
|
7878
7879
|
handle,
|
|
7879
7880
|
taskId: taskConfig.id
|
|
7880
7881
|
});
|
|
7881
|
-
if (!taskData) return `⚠️
|
|
7882
|
+
if (!taskData) return `⚠️ 任务进度不足!无法完成"${taskName}"任务`;
|
|
7882
7883
|
if (taskData.progress < taskConfig.target) {
|
|
7883
7884
|
return `⚠️ 任务进度不足!当前进度:${taskData.progress}/${taskConfig.target}`;
|
|
7884
7885
|
}
|
|
7885
|
-
const newProgress = taskData.progress - taskConfig.target;
|
|
7886
|
-
const newCompletions = taskData.Completions + 1;
|
|
7887
7886
|
const [careerData] = await ctx.database.get("ggcevo_careers", { handle });
|
|
7888
7887
|
const [systemFirmwareTech] = await ctx.database.get("ggcevo_tech", { handle, techId: 5 }).catch(() => [{ level: 0 }]);
|
|
7889
7888
|
const techLevel = Math.min(systemFirmwareTech?.level || 0, 5);
|
|
7890
|
-
|
|
7891
|
-
|
|
7892
|
-
|
|
7889
|
+
const completableTimes = Math.floor(taskData.progress / taskConfig.target);
|
|
7890
|
+
const remainingProgress = taskData.progress % taskConfig.target;
|
|
7891
|
+
const newCompletions = taskData.Completions + completableTimes;
|
|
7892
|
+
const baseTotal = taskConfig.price * completableTimes;
|
|
7893
|
+
let baseBonus = 0;
|
|
7893
7894
|
if (techLevel > 0) {
|
|
7894
|
-
|
|
7895
|
-
const careerBonus = careerData?.group === "人类联盟" && ["舰长", "情报副官"].includes(careerData?.career) ? [0, 10, 20, 30, 40, 50][techLevel] : 0;
|
|
7896
|
-
bonusPercent = Math.max(normalBonus, careerBonus);
|
|
7897
|
-
}
|
|
7898
|
-
if (careerData?.group === "人类联盟" && careerData.career === "舰长") {
|
|
7899
|
-
bonusPercent += 50;
|
|
7900
|
-
}
|
|
7901
|
-
if (bonusPercent > 0) {
|
|
7902
|
-
actualReward = Math.round(baseReward * (1 + bonusPercent / 100));
|
|
7895
|
+
baseBonus = careerData?.group === "人类联盟" && ["舰长", "情报副官"].includes(careerData?.career) ? [0, 10, 20, 30, 40, 50][techLevel] : [0, 5, 10, 15, 20, 25][techLevel];
|
|
7903
7896
|
}
|
|
7897
|
+
const captainBonus = careerData?.group === "人类联盟" && careerData.career === "舰长" ? 50 : 0;
|
|
7898
|
+
const totalBonus = baseBonus + captainBonus;
|
|
7899
|
+
const totalReward = totalBonus > 0 ? Math.round(baseTotal * (1 + totalBonus / 100)) : baseTotal;
|
|
7904
7900
|
await ctx.database.set("ggcevo_task", {
|
|
7905
7901
|
handle,
|
|
7906
7902
|
taskId: taskConfig.id
|
|
7907
7903
|
}, {
|
|
7908
|
-
progress:
|
|
7904
|
+
progress: remainingProgress,
|
|
7909
7905
|
Completions: newCompletions
|
|
7910
7906
|
});
|
|
7911
7907
|
const [signData] = await ctx.database.get("ggcevo_sign", { handle });
|
|
7908
|
+
const newTotalRewards = (signData?.totalRewards || 0) + totalReward;
|
|
7912
7909
|
await ctx.database.upsert("ggcevo_sign", [{
|
|
7913
7910
|
handle,
|
|
7914
|
-
totalRewards:
|
|
7911
|
+
totalRewards: newTotalRewards
|
|
7915
7912
|
}], ["handle"]);
|
|
7916
|
-
const [updatedSignData] = await ctx.database.get("ggcevo_sign", { handle });
|
|
7917
7913
|
const response = [
|
|
7918
|
-
`🎉
|
|
7914
|
+
`🎉 成功完成【${taskName}】任务!`
|
|
7919
7915
|
];
|
|
7920
|
-
if (
|
|
7921
|
-
response.push(
|
|
7916
|
+
if (totalBonus > 0) {
|
|
7917
|
+
response.push(`💰 获得总奖励:${totalReward}金币 (基础值: ${baseTotal}金币)`);
|
|
7922
7918
|
} else {
|
|
7923
|
-
response.push(
|
|
7919
|
+
response.push(`💰 获得总奖励:${totalReward}金币`);
|
|
7924
7920
|
}
|
|
7925
|
-
if (
|
|
7926
|
-
let bonusType = "";
|
|
7927
|
-
if (careerData?.group === "人类联盟" && ["舰长", "情报副官"].includes(careerData.career)) {
|
|
7928
|
-
bonusType = "(职业专属加成)";
|
|
7929
|
-
} else {
|
|
7930
|
-
bonusType = "(普通加成)";
|
|
7931
|
-
}
|
|
7921
|
+
if (totalBonus > 0) {
|
|
7932
7922
|
response.push(`⚡ 加成效果:`);
|
|
7933
|
-
|
|
7923
|
+
if (baseBonus > 0) {
|
|
7924
|
+
response.push(`▸ ⚙️ 关键系统固件Lv.${techLevel}: +${baseBonus}%金币`);
|
|
7925
|
+
}
|
|
7926
|
+
if (captainBonus > 0) {
|
|
7927
|
+
response.push(`▸ 🚀 舰长职业: +${captainBonus}%金币`);
|
|
7928
|
+
}
|
|
7934
7929
|
}
|
|
7935
7930
|
response.push(
|
|
7936
|
-
|
|
7937
|
-
|
|
7938
|
-
`当前拥有金币:${updatedSignData.totalRewards}`
|
|
7931
|
+
`📊 累计完成次数: ${newCompletions}次`,
|
|
7932
|
+
`⚙️ 剩余进度点数: ${remainingProgress}/${taskConfig.target}`
|
|
7939
7933
|
);
|
|
7940
|
-
if (
|
|
7941
|
-
response.push(`💡
|
|
7934
|
+
if (remainingProgress > 0) {
|
|
7935
|
+
response.push(`💡 剩余进度可完成 ${Math.floor(remainingProgress / taskConfig.target)} 次`);
|
|
7936
|
+
}
|
|
7937
|
+
if (completableTimes > 1) {
|
|
7938
|
+
response.push(`💡 成功完成${completableTimes}次任务,已发放全部奖励`);
|
|
7942
7939
|
}
|
|
7943
7940
|
return response.join("\n");
|
|
7944
7941
|
} catch (error) {
|
package/lib/weapons.d.ts
CHANGED
package/lib/wish.d.ts
CHANGED
|
@@ -20,7 +20,7 @@ export declare const wishConfig: {
|
|
|
20
20
|
readonly effect: "获得基于武器等级的伤害加成(0级为10%,每等级增加10%)";
|
|
21
21
|
}, {
|
|
22
22
|
readonly name: "精灵双倍";
|
|
23
|
-
readonly effect: "
|
|
23
|
+
readonly effect: "下一次击败主宰时可获得双倍的金币和咕咕币奖励";
|
|
24
24
|
}, {
|
|
25
25
|
readonly name: "喵喵财源";
|
|
26
26
|
readonly effect: "签到获得双倍的金币和咕咕币";
|