koishi-plugin-ggcevo-game 1.5.27 → 1.5.29
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 +127 -207
- package/package.json +1 -1
package/lib/index.js
CHANGED
|
@@ -580,7 +580,7 @@ var SyndicatedItems = {
|
|
|
580
580
|
type: "设备工具",
|
|
581
581
|
description: "一个小型辛迪加机器人,可以破坏电子银行账户",
|
|
582
582
|
price: 0,
|
|
583
|
-
redCrystalCost:
|
|
583
|
+
redCrystalCost: 60,
|
|
584
584
|
condition: "辛迪加海盗阵营",
|
|
585
585
|
effects: "每日签到金币奖励+50%"
|
|
586
586
|
},
|
|
@@ -625,7 +625,7 @@ var SyndicatedItems = {
|
|
|
625
625
|
type: "设备工具",
|
|
626
626
|
description: "建造机器人,用于自动采集太空矿物",
|
|
627
627
|
price: 0,
|
|
628
|
-
redCrystalCost:
|
|
628
|
+
redCrystalCost: 30,
|
|
629
629
|
condition: "辛迪加海盗阵营",
|
|
630
630
|
effects: "挖矿收益提高10%;可使用红晶升级(每次升级提高5%-10%,最多提高100%)"
|
|
631
631
|
}
|
|
@@ -1029,32 +1029,32 @@ var Spacestationtechnology = [
|
|
|
1029
1029
|
{
|
|
1030
1030
|
level: 1,
|
|
1031
1031
|
cost: 500,
|
|
1032
|
-
description: "提高挖矿效率,获得的收益提高
|
|
1033
|
-
careerBonus: "挖矿的收益额外提高
|
|
1032
|
+
description: "提高挖矿效率,获得的收益提高10%",
|
|
1033
|
+
careerBonus: "挖矿的收益额外提高10%"
|
|
1034
1034
|
},
|
|
1035
1035
|
{
|
|
1036
1036
|
level: 2,
|
|
1037
1037
|
cost: 1750,
|
|
1038
|
-
description: "提高挖矿效率,获得的收益提高
|
|
1039
|
-
careerBonus: "挖矿的收益额外提高
|
|
1038
|
+
description: "提高挖矿效率,获得的收益提高20%",
|
|
1039
|
+
careerBonus: "挖矿的收益额外提高20%"
|
|
1040
1040
|
},
|
|
1041
1041
|
{
|
|
1042
1042
|
level: 3,
|
|
1043
1043
|
cost: 2950,
|
|
1044
|
-
description: "提高挖矿效率,获得的收益提高
|
|
1045
|
-
careerBonus: "挖矿的收益额外提高
|
|
1044
|
+
description: "提高挖矿效率,获得的收益提高30%",
|
|
1045
|
+
careerBonus: "挖矿的收益额外提高30%"
|
|
1046
1046
|
},
|
|
1047
1047
|
{
|
|
1048
1048
|
level: 4,
|
|
1049
1049
|
cost: 4250,
|
|
1050
|
-
description: "提高挖矿效率,获得的收益提高
|
|
1051
|
-
careerBonus: "挖矿的收益额外提高
|
|
1050
|
+
description: "提高挖矿效率,获得的收益提高40%",
|
|
1051
|
+
careerBonus: "挖矿的收益额外提高40%"
|
|
1052
1052
|
},
|
|
1053
1053
|
{
|
|
1054
1054
|
level: 5,
|
|
1055
1055
|
cost: 5375,
|
|
1056
|
-
description: "提高挖矿效率,获得的收益提高
|
|
1057
|
-
careerBonus: "挖矿的收益额外提高
|
|
1056
|
+
description: "提高挖矿效率,获得的收益提高50%",
|
|
1057
|
+
careerBonus: "挖矿的收益额外提高50%,并且单次挖矿时间上限增加至48小时"
|
|
1058
1058
|
}
|
|
1059
1059
|
]
|
|
1060
1060
|
},
|
|
@@ -1166,32 +1166,32 @@ var Spacestationtechnology = [
|
|
|
1166
1166
|
{
|
|
1167
1167
|
level: 1,
|
|
1168
1168
|
cost: 500,
|
|
1169
|
-
description: "升级空间站关键系统,完成任务奖励+
|
|
1170
|
-
careerBonus: "完成任务奖励额外+
|
|
1169
|
+
description: "升级空间站关键系统,完成任务奖励+10%",
|
|
1170
|
+
careerBonus: "完成任务奖励额外+10%"
|
|
1171
1171
|
},
|
|
1172
1172
|
{
|
|
1173
1173
|
level: 2,
|
|
1174
1174
|
cost: 1250,
|
|
1175
|
-
description: "升级空间站关键系统,完成任务奖励+
|
|
1176
|
-
careerBonus: "完成任务奖励额外+
|
|
1175
|
+
description: "升级空间站关键系统,完成任务奖励+20%",
|
|
1176
|
+
careerBonus: "完成任务奖励额外+20%"
|
|
1177
1177
|
},
|
|
1178
1178
|
{
|
|
1179
1179
|
level: 3,
|
|
1180
1180
|
cost: 2250,
|
|
1181
|
-
description: "升级空间站关键系统,完成任务奖励+
|
|
1182
|
-
careerBonus: "完成任务奖励额外+
|
|
1181
|
+
description: "升级空间站关键系统,完成任务奖励+30%",
|
|
1182
|
+
careerBonus: "完成任务奖励额外+30%"
|
|
1183
1183
|
},
|
|
1184
1184
|
{
|
|
1185
1185
|
level: 4,
|
|
1186
1186
|
cost: 2950,
|
|
1187
|
-
description: "升级空间站关键系统,完成任务奖励+
|
|
1188
|
-
careerBonus: "完成任务奖励额外+
|
|
1187
|
+
description: "升级空间站关键系统,完成任务奖励+40%",
|
|
1188
|
+
careerBonus: "完成任务奖励额外+40%"
|
|
1189
1189
|
},
|
|
1190
1190
|
{
|
|
1191
1191
|
level: 5,
|
|
1192
1192
|
cost: 3550,
|
|
1193
|
-
description: "升级空间站关键系统,完成任务奖励+
|
|
1194
|
-
careerBonus: "完成任务奖励额外+
|
|
1193
|
+
description: "升级空间站关键系统,完成任务奖励+50%",
|
|
1194
|
+
careerBonus: "完成任务奖励额外+50%"
|
|
1195
1195
|
}
|
|
1196
1196
|
]
|
|
1197
1197
|
},
|
|
@@ -1205,32 +1205,32 @@ var Spacestationtechnology = [
|
|
|
1205
1205
|
{
|
|
1206
1206
|
level: 1,
|
|
1207
1207
|
cost: 500,
|
|
1208
|
-
description: "升级空间站聚变反应堆控制,探索的金币收益提高
|
|
1209
|
-
careerBonus: "探索的金币收益额外提高
|
|
1208
|
+
description: "升级空间站聚变反应堆控制,探索的金币收益提高10%",
|
|
1209
|
+
careerBonus: "探索的金币收益额外提高10%"
|
|
1210
1210
|
},
|
|
1211
1211
|
{
|
|
1212
1212
|
level: 2,
|
|
1213
1213
|
cost: 1450,
|
|
1214
|
-
description: "升级空间站聚变反应堆控制,探索的金币收益提高
|
|
1215
|
-
careerBonus: "探索的金币收益额外提高
|
|
1214
|
+
description: "升级空间站聚变反应堆控制,探索的金币收益提高20%",
|
|
1215
|
+
careerBonus: "探索的金币收益额外提高20%"
|
|
1216
1216
|
},
|
|
1217
1217
|
{
|
|
1218
1218
|
level: 3,
|
|
1219
|
-
cost:
|
|
1220
|
-
description: "升级空间站聚变反应堆控制,探索的金币收益提高
|
|
1221
|
-
careerBonus: "探索的金币收益额外提高
|
|
1219
|
+
cost: 2950,
|
|
1220
|
+
description: "升级空间站聚变反应堆控制,探索的金币收益提高30%",
|
|
1221
|
+
careerBonus: "探索的金币收益额外提高30%"
|
|
1222
1222
|
},
|
|
1223
1223
|
{
|
|
1224
1224
|
level: 4,
|
|
1225
|
-
cost:
|
|
1226
|
-
description: "升级空间站聚变反应堆控制,探索的金币收益提高
|
|
1227
|
-
careerBonus: "探索的金币收益额外提高
|
|
1225
|
+
cost: 4250,
|
|
1226
|
+
description: "升级空间站聚变反应堆控制,探索的金币收益提高40%",
|
|
1227
|
+
careerBonus: "探索的金币收益额外提高40%"
|
|
1228
1228
|
},
|
|
1229
1229
|
{
|
|
1230
1230
|
level: 5,
|
|
1231
|
-
cost:
|
|
1232
|
-
description: "升级空间站聚变反应堆控制,探索的金币收益提高
|
|
1233
|
-
careerBonus: "探索的金币收益额外提高
|
|
1231
|
+
cost: 5350,
|
|
1232
|
+
description: "升级空间站聚变反应堆控制,探索的金币收益提高50%",
|
|
1233
|
+
careerBonus: "探索的金币收益额外提高50%"
|
|
1234
1234
|
}
|
|
1235
1235
|
]
|
|
1236
1236
|
}
|
|
@@ -1239,7 +1239,7 @@ var itemupgrades = [
|
|
|
1239
1239
|
{
|
|
1240
1240
|
id: 1,
|
|
1241
1241
|
name: "自动采掘机器人",
|
|
1242
|
-
upgradeCostBase:
|
|
1242
|
+
upgradeCostBase: 10,
|
|
1243
1243
|
// 升级基础成本
|
|
1244
1244
|
minUpgrade: 5,
|
|
1245
1245
|
// 每次升级最小提升
|
|
@@ -6916,14 +6916,14 @@ var spaceship = {
|
|
|
6916
6916
|
miningbonus: 10,
|
|
6917
6917
|
explorebonus: 0,
|
|
6918
6918
|
effect: "",
|
|
6919
|
-
price:
|
|
6919
|
+
price: 500
|
|
6920
6920
|
},
|
|
6921
6921
|
"TX-12S隐形巡洋舰": {
|
|
6922
6922
|
id: 2,
|
|
6923
6923
|
description: "TX-12S是标准星际巡洋舰的改型",
|
|
6924
6924
|
miningbonus: 10,
|
|
6925
6925
|
explorebonus: 10,
|
|
6926
|
-
effect: "探索的成功率提高20
|
|
6926
|
+
effect: "探索的成功率提高20%;探索时不会被掠夺",
|
|
6927
6927
|
price: 1500
|
|
6928
6928
|
},
|
|
6929
6929
|
"TX-12A突击巡洋舰": {
|
|
@@ -6931,15 +6931,15 @@ var spaceship = {
|
|
|
6931
6931
|
description: "TX-12S是标准星际巡洋舰的改型",
|
|
6932
6932
|
miningbonus: 0,
|
|
6933
6933
|
explorebonus: 20,
|
|
6934
|
-
effect: "探索发生掠夺的概率提高
|
|
6934
|
+
effect: "探索发生掠夺的概率提高10%;掠夺的成功率提高10%",
|
|
6935
6935
|
price: 2e3
|
|
6936
6936
|
},
|
|
6937
6937
|
"庞兽号歼星舰": {
|
|
6938
6938
|
id: 4,
|
|
6939
6939
|
description: "巨兽级歼星舰的小型化版本",
|
|
6940
6940
|
miningbonus: 0,
|
|
6941
|
-
explorebonus:
|
|
6942
|
-
effect: "探索发生掠夺的概率提高
|
|
6941
|
+
explorebonus: 30,
|
|
6942
|
+
effect: "探索发生掠夺的概率提高30%;掠夺的成功率提高30%",
|
|
6943
6943
|
price: 6e3
|
|
6944
6944
|
}
|
|
6945
6945
|
};
|
|
@@ -7610,14 +7610,8 @@ ${itemDetails.join("\n")}`;
|
|
|
7610
7610
|
else if (monthlyDays === 21) baseTickets = 6;
|
|
7611
7611
|
else if (monthlyDays === 28) baseTickets = 7;
|
|
7612
7612
|
else baseTickets = 3;
|
|
7613
|
-
|
|
7613
|
+
const basePoints = getRandomInt(50, 100);
|
|
7614
7614
|
const [careerData] = await ctx.database.get("ggcevo_careers", { handle });
|
|
7615
|
-
let basePoints;
|
|
7616
|
-
if (monthlyDays < 7) basePoints = getRandomInt(20, 40);
|
|
7617
|
-
else if (monthlyDays < 14) basePoints = getRandomInt(40, 60);
|
|
7618
|
-
else if (monthlyDays < 21) basePoints = getRandomInt(60, 80);
|
|
7619
|
-
else if (monthlyDays < 28) basePoints = getRandomInt(80, 100);
|
|
7620
|
-
else basePoints = getRandomInt(100, 200);
|
|
7621
7615
|
if (careerData?.group === "人类联盟") {
|
|
7622
7616
|
totalBonus += 0.2;
|
|
7623
7617
|
messages.push("🏛️ 人类联盟阵营:+20%金币");
|
|
@@ -7629,6 +7623,8 @@ ${itemDetails.join("\n")}`;
|
|
|
7629
7623
|
messages.push("💎 CRED-17生效:+50%金币");
|
|
7630
7624
|
}
|
|
7631
7625
|
}
|
|
7626
|
+
let baseFinalPoints = Math.round(basePoints * (1 + totalBonus));
|
|
7627
|
+
let baseFinalTickets = baseTickets;
|
|
7632
7628
|
const [meowEffect] = await ctx.database.get("ggcevo_wish", {
|
|
7633
7629
|
handle,
|
|
7634
7630
|
wishname: "喵喵财源",
|
|
@@ -7636,12 +7632,13 @@ ${itemDetails.join("\n")}`;
|
|
|
7636
7632
|
endTime: { $gte: now },
|
|
7637
7633
|
isused: false
|
|
7638
7634
|
});
|
|
7635
|
+
let multiplier = 1;
|
|
7639
7636
|
if (meowEffect) {
|
|
7640
|
-
|
|
7641
|
-
|
|
7642
|
-
messages.push("🐾 喵喵财源祈愿:金币+100%,咕咕币+100%");
|
|
7637
|
+
multiplier = 2;
|
|
7638
|
+
messages.push("🐾 喵喵财源祈愿:金币×2,咕咕币×2");
|
|
7643
7639
|
}
|
|
7644
|
-
const finalPoints = Math.round(
|
|
7640
|
+
const finalPoints = Math.round(baseFinalPoints * multiplier);
|
|
7641
|
+
const finalTickets = Math.round(baseFinalTickets * multiplier);
|
|
7645
7642
|
let redCrystal = 0;
|
|
7646
7643
|
if (careerData?.group === "辛迪加海盗" && careerData.career === "辛迪加财务经理") {
|
|
7647
7644
|
if (monthlyDays < 7) redCrystal = 1;
|
|
@@ -7671,7 +7668,7 @@ ${itemDetails.join("\n")}`;
|
|
|
7671
7668
|
await ctx.database.upsert("ggcevo_backpack", [{
|
|
7672
7669
|
handle,
|
|
7673
7670
|
itemId: 1,
|
|
7674
|
-
quantity: (backpack?.quantity || 0) +
|
|
7671
|
+
quantity: (backpack?.quantity || 0) + finalTickets
|
|
7675
7672
|
}]);
|
|
7676
7673
|
if (redCrystal > 0) {
|
|
7677
7674
|
await ctx.database.upsert("ggcevo_careers", [{
|
|
@@ -7687,14 +7684,12 @@ ${itemDetails.join("\n")}`;
|
|
|
7687
7684
|
▸ ${messages.join("\n▸ ")}`;
|
|
7688
7685
|
}
|
|
7689
7686
|
let coinMessage = `💰 金币 x ${finalPoints}`;
|
|
7690
|
-
if (totalBonus > 0) {
|
|
7691
|
-
coinMessage += ` (基础值:${basePoints}
|
|
7687
|
+
if (totalBonus > 0 || multiplier > 1) {
|
|
7688
|
+
coinMessage += ` (基础值:${basePoints}金币)`;
|
|
7692
7689
|
}
|
|
7693
|
-
let ticketMessage
|
|
7694
|
-
if (
|
|
7695
|
-
ticketMessage
|
|
7696
|
-
} else {
|
|
7697
|
-
ticketMessage = `🪙 咕咕币 x ${tickets}`;
|
|
7690
|
+
let ticketMessage = `🪙 咕咕币 x ${finalTickets}`;
|
|
7691
|
+
if (multiplier > 1) {
|
|
7692
|
+
ticketMessage += ` (基础值:${baseTickets}枚,财源后:${finalTickets}枚)`;
|
|
7698
7693
|
}
|
|
7699
7694
|
return `签到成功!本月累计签到${monthlyDays}天,获得:
|
|
7700
7695
|
${coinMessage}
|
|
@@ -10926,9 +10921,6 @@ ${Spacestationtechnology.map((t) => t.techname).join("、")}`;
|
|
|
10926
10921
|
return "⛔ 您已被列入黑名单。";
|
|
10927
10922
|
}
|
|
10928
10923
|
const [career] = await ctx.database.get("ggcevo_careers", { handle });
|
|
10929
|
-
const allowedGroups = ["人类联盟", "辛迪加海盗"];
|
|
10930
|
-
if (!allowedGroups.includes(career.group)) {
|
|
10931
|
-
}
|
|
10932
10924
|
const [tech] = await ctx.database.get("ggcevo_tech", { handle, techId: 1 });
|
|
10933
10925
|
const techLevel = tech?.level || 0;
|
|
10934
10926
|
const warehouseItems = await ctx.database.get("ggcevo_warehouse", { handle });
|
|
@@ -10948,7 +10940,7 @@ ${Spacestationtechnology.map((t) => t.techname).join("、")}`;
|
|
|
10948
10940
|
totalMined: 0
|
|
10949
10941
|
// 初始化总收益
|
|
10950
10942
|
});
|
|
10951
|
-
return "⛏️ 首次挖矿作业已开始,请至少等待1小时后才可收获。\n提示:基础收益为每半小时
|
|
10943
|
+
return "⛏️ 首次挖矿作业已开始,请至少等待1小时后才可收获。\n提示:基础收益为每半小时4枚金币";
|
|
10952
10944
|
}
|
|
10953
10945
|
const nowtime = /* @__PURE__ */ new Date();
|
|
10954
10946
|
const chinaStart = record.startTime;
|
|
@@ -10963,25 +10955,25 @@ ${Spacestationtechnology.map((t) => t.techname).join("、")}`;
|
|
|
10963
10955
|
`⏱️ 当前时间:${nowtime.toLocaleString("zh-CN", { hour12: false })}`,
|
|
10964
10956
|
`⏳ 还需等待:${remaining}分钟`,
|
|
10965
10957
|
`💡 提示:本轮挖矿1小时后才可收获并自动开始下一轮挖矿
|
|
10966
|
-
基础收益为每半小时
|
|
10958
|
+
基础收益为每半小时4枚金币`
|
|
10967
10959
|
].join("\n");
|
|
10968
10960
|
}
|
|
10969
10961
|
let halfHours = Math.floor(duration / 30);
|
|
10970
|
-
let base = halfHours *
|
|
10962
|
+
let base = halfHours * 4;
|
|
10971
10963
|
const maxHalfHours = career.group === "人类联盟" && techLevel === 5 ? 96 : 48;
|
|
10972
10964
|
halfHours = Math.min(halfHours, maxHalfHours);
|
|
10973
|
-
base = Math.
|
|
10965
|
+
base = Math.min(base, maxHalfHours * 4);
|
|
10974
10966
|
let techBonusRate = 0;
|
|
10975
10967
|
let careerBonusRate = 0;
|
|
10976
10968
|
let shipBonusRate = 0;
|
|
10977
10969
|
let minerBonusRate = 0;
|
|
10978
10970
|
if (career.group === "人类联盟") {
|
|
10979
|
-
const baseTechRates = [0, 0.
|
|
10980
|
-
techBonusRate =
|
|
10971
|
+
const baseTechRates = [0, 0.1, 0.2, 0.3, 0.4, 0.5];
|
|
10972
|
+
techBonusRate = baseTechRates[Math.min(techLevel, 5)];
|
|
10981
10973
|
const techCareers = ["深空矿工", "情报副官"];
|
|
10982
10974
|
if (techCareers.includes(career.career)) {
|
|
10983
10975
|
const careerBonusRates = [0, 0.1, 0.2, 0.3, 0.4, 0.5];
|
|
10984
|
-
careerBonusRate =
|
|
10976
|
+
careerBonusRate = careerBonusRates[Math.min(techLevel, 5)];
|
|
10985
10977
|
}
|
|
10986
10978
|
}
|
|
10987
10979
|
if (career.career === "深空矿工") {
|
|
@@ -11006,7 +10998,7 @@ ${Spacestationtechnology.map((t) => t.techname).join("、")}`;
|
|
|
11006
10998
|
shipBonusRate = allowedShips[shipName];
|
|
11007
10999
|
}
|
|
11008
11000
|
}
|
|
11009
|
-
const totalBonusRate =
|
|
11001
|
+
const totalBonusRate = techBonusRate + careerBonusRate + shipBonusRate + itemBonusRate + minerBonusRate;
|
|
11010
11002
|
const total = Math.round(base * (1 + totalBonusRate));
|
|
11011
11003
|
await ctx.database.withTransaction(async () => {
|
|
11012
11004
|
await ctx.database.upsert("ggcevo_sign", [{
|
|
@@ -11038,16 +11030,15 @@ ${Spacestationtechnology.map((t) => t.techname).join("、")}`;
|
|
|
11038
11030
|
rewardLine += ` (基础值:${base}金币)`;
|
|
11039
11031
|
}
|
|
11040
11032
|
reportLines.push(rewardLine);
|
|
11041
|
-
const
|
|
11033
|
+
const techCareerBonus = techBonusRate + careerBonusRate;
|
|
11034
|
+
const hasTechCareerBonus = techCareerBonus > 0;
|
|
11042
11035
|
const hasShipBonus = shipBonusRate > 0;
|
|
11043
11036
|
const hasItemBonus = itemBonusRate > 0;
|
|
11044
11037
|
const hasMinerBonus = minerBonusRate > 0;
|
|
11045
|
-
if (
|
|
11038
|
+
if (hasTechCareerBonus || hasShipBonus || hasItemBonus || hasMinerBonus) {
|
|
11046
11039
|
reportLines.push(`⚡ 加成效果:`);
|
|
11047
|
-
if (
|
|
11048
|
-
|
|
11049
|
-
let bonusDesc = `⚙️ 采掘系统科技Lv.${techLevel}:+${(bonusRate * 100).toFixed(0)}%金币`;
|
|
11050
|
-
reportLines.push(`▸ ${bonusDesc}`);
|
|
11040
|
+
if (hasTechCareerBonus) {
|
|
11041
|
+
reportLines.push(`▸ ⚙️ 科技加成Lv.${techLevel}:+${(techCareerBonus * 100).toFixed(0)}%金币`);
|
|
11051
11042
|
}
|
|
11052
11043
|
if (hasShipBonus) {
|
|
11053
11044
|
reportLines.push(`▸ 🚀 ${shipName}:+${(shipBonusRate * 100).toFixed(0)}%金币`);
|
|
@@ -11063,7 +11054,7 @@ ${Spacestationtechnology.map((t) => t.techname).join("、")}`;
|
|
|
11063
11054
|
}
|
|
11064
11055
|
}
|
|
11065
11056
|
reportLines.push(`🏆 历史总挖矿收益:${record.totalMined + total}金币`);
|
|
11066
|
-
reportLines.push("💡 已自动开始下一轮挖矿\n基础收益为每半小时
|
|
11057
|
+
reportLines.push("💡 已自动开始下一轮挖矿\n基础收益为每半小时4枚金币");
|
|
11067
11058
|
return reportLines.join("\n");
|
|
11068
11059
|
});
|
|
11069
11060
|
ctx.command("ggcevo/任务 [name]").usage('输入"任务"查看所有任务列表,或"任务 任务名称"查看详细任务信息').action(async ({ session }, name2) => {
|
|
@@ -11150,7 +11141,7 @@ ${Spacestationtechnology.map((t) => t.techname).join("、")}`;
|
|
|
11150
11141
|
const baseTotal = taskConfig.price * completableTimes;
|
|
11151
11142
|
let baseBonus = 0;
|
|
11152
11143
|
if (techLevel > 0) {
|
|
11153
|
-
baseBonus = careerData?.group === "人类联盟" && ["舰长", "情报副官"].includes(careerData?.career) ? [0,
|
|
11144
|
+
baseBonus = careerData?.group === "人类联盟" && ["舰长", "情报副官"].includes(careerData?.career) ? [0, 20, 40, 60, 50, 100][techLevel] : [0, 10, 20, 30, 40, 50][techLevel];
|
|
11154
11145
|
}
|
|
11155
11146
|
const captainBonus = careerData?.group === "人类联盟" && careerData.career === "舰长" ? 50 : 0;
|
|
11156
11147
|
const totalBonus = baseBonus + captainBonus;
|
|
@@ -11436,20 +11427,31 @@ ${Spacestationtechnology.map((t) => t.techname).join("、")}`;
|
|
|
11436
11427
|
const careerCoinBonus = careerName === "总工程师" ? 50 : 0;
|
|
11437
11428
|
const [shipRecord] = await ctx.database.get("ggcevo_spaceship", { handle });
|
|
11438
11429
|
let shipBonus = 0;
|
|
11439
|
-
let shipEffect = "";
|
|
11440
11430
|
let plunderRateBonus = 0;
|
|
11441
|
-
let
|
|
11431
|
+
let isBehemoth = false;
|
|
11432
|
+
let isStealthShip = false;
|
|
11433
|
+
let stealthShipEffectAdded = false;
|
|
11442
11434
|
if (shipRecord) {
|
|
11443
11435
|
const ship = Object.values(spaceship).find((s) => s.id === shipRecord.id);
|
|
11444
11436
|
if (ship) {
|
|
11445
|
-
|
|
11446
|
-
|
|
11447
|
-
|
|
11448
|
-
|
|
11449
|
-
|
|
11450
|
-
|
|
11451
|
-
|
|
11437
|
+
switch (ship.id) {
|
|
11438
|
+
case 2:
|
|
11439
|
+
shipBonus = 10;
|
|
11440
|
+
isStealthShip = true;
|
|
11441
|
+
break;
|
|
11442
|
+
case 3:
|
|
11443
|
+
shipBonus = 20;
|
|
11444
|
+
plunderRateBonus = 20;
|
|
11445
|
+
break;
|
|
11446
|
+
case 4:
|
|
11447
|
+
shipBonus = 30;
|
|
11448
|
+
plunderRateBonus = 30;
|
|
11449
|
+
isBehemoth = true;
|
|
11450
|
+
break;
|
|
11451
|
+
default:
|
|
11452
|
+
shipBonus = ship.explorebonus || 0;
|
|
11452
11453
|
}
|
|
11454
|
+
if (ship.id === 2) stealthShipEffectAdded = true;
|
|
11453
11455
|
}
|
|
11454
11456
|
}
|
|
11455
11457
|
const [techReactor] = await ctx.database.get("ggcevo_tech", { handle, techId: 6 });
|
|
@@ -11457,15 +11459,11 @@ ${Spacestationtechnology.map((t) => t.techname).join("、")}`;
|
|
|
11457
11459
|
let techBonusRate = 0;
|
|
11458
11460
|
let careerBonusRate = 0;
|
|
11459
11461
|
if (career.group === "人类联盟" && techLevel > 0) {
|
|
11460
|
-
const baseRates = [0, 0.
|
|
11462
|
+
const baseRates = [0, 0.1, 0.2, 0.3, 0.4, 0.5];
|
|
11461
11463
|
techBonusRate = baseRates[techLevel];
|
|
11462
11464
|
const specialCareers = ["总工程师", "情报副官"];
|
|
11463
|
-
if (specialCareers.includes(careerName))
|
|
11464
|
-
careerBonusRate = baseRates[techLevel];
|
|
11465
|
-
}
|
|
11465
|
+
if (specialCareers.includes(careerName)) careerBonusRate = baseRates[techLevel];
|
|
11466
11466
|
}
|
|
11467
|
-
const totalTechBonusRate = techBonusRate + careerBonusRate;
|
|
11468
|
-
const techBonusPercent = totalTechBonusRate * 100;
|
|
11469
11467
|
const [record] = await ctx.database.get("ggcevo_explore", { handle });
|
|
11470
11468
|
const now = /* @__PURE__ */ new Date();
|
|
11471
11469
|
if (record && record.status === "探索中") {
|
|
@@ -11483,52 +11481,22 @@ ${Spacestationtechnology.map((t) => t.techname).join("、")}`;
|
|
|
11483
11481
|
const returnsIncrement = (record.returns || 0) + 1;
|
|
11484
11482
|
const galaxyData2 = galaxy[record.galaxy];
|
|
11485
11483
|
let successRate = galaxyData2.success;
|
|
11486
|
-
if (career.group === "人类联盟" && record.galaxy === "联盟星系")
|
|
11487
|
-
|
|
11488
|
-
|
|
11489
|
-
successRate += 0.1;
|
|
11490
|
-
}
|
|
11484
|
+
if (career.group === "人类联盟" && record.galaxy === "联盟星系") successRate += 0.1;
|
|
11485
|
+
else if (career.group === "辛迪加海盗" && record.galaxy === "辛迪加星系") successRate += 0.1;
|
|
11486
|
+
if (stealthShipEffectAdded) successRate += 0.2;
|
|
11491
11487
|
successRate = Math.min(successRate, 1);
|
|
11492
|
-
const isSuccess = Math.random() < successRate;
|
|
11493
11488
|
let baseCoinReward = Math.floor(Math.random() * 51) + 50;
|
|
11494
|
-
const baseCoinBeforeBonus = baseCoinReward;
|
|
11495
11489
|
baseCoinReward = Math.floor(baseCoinReward * galaxyData2.bonus);
|
|
11496
|
-
|
|
11497
|
-
let totalBonus = 0;
|
|
11498
|
-
const bonusEffects = [];
|
|
11499
|
-
if (galaxyData2.bonus > 1) {
|
|
11500
|
-
bonusEffects.push(`星系金币加成:+${bonusPercent2}%`);
|
|
11501
|
-
}
|
|
11502
|
-
if (shipBonus !== 0) {
|
|
11503
|
-
totalBonus += shipBonus;
|
|
11504
|
-
bonusEffects.push(`飞船:金币收益+${shipBonus}%`);
|
|
11505
|
-
}
|
|
11506
|
-
if (record.plunderbonus) {
|
|
11507
|
-
totalBonus += record.plunderbonus;
|
|
11508
|
-
bonusEffects.push(`掠夺事件:${record.plunderbonus > 0 ? "+" : ""}${record.plunderbonus}%`);
|
|
11509
|
-
}
|
|
11510
|
-
totalBonus += techBonusPercent;
|
|
11511
|
-
if (totalTechBonusRate > 0) {
|
|
11512
|
-
const careerDesc = careerBonusRate > 0 ? ` (${careerName})` : "";
|
|
11513
|
-
bonusEffects.push(`⚙️ 反应堆科技Lv.${techLevel}:金币收益+${techBonusPercent.toFixed(0)}%${careerDesc}`);
|
|
11514
|
-
}
|
|
11515
|
-
if (careerCoinBonus > 0) {
|
|
11516
|
-
totalBonus += careerCoinBonus;
|
|
11517
|
-
bonusEffects.push(`⚙️ ${careerName}职业:金币收益+${careerCoinBonus}%`);
|
|
11518
|
-
}
|
|
11490
|
+
let totalBonus = shipBonus + (record.plunderbonus || 0) + (techBonusRate + careerBonusRate) * 100 + careerCoinBonus;
|
|
11519
11491
|
let finalCoin = baseCoinReward * (1 + totalBonus / 100);
|
|
11520
|
-
|
|
11521
|
-
|
|
11522
|
-
bonusEffects.push("探索失败:奖励-50%");
|
|
11523
|
-
}
|
|
11492
|
+
const isSuccess = Math.random() < successRate;
|
|
11493
|
+
if (!isSuccess) finalCoin *= 0.5;
|
|
11524
11494
|
finalCoin = Math.floor(finalCoin);
|
|
11525
11495
|
const [signRecord] = await ctx.database.get("ggcevo_sign", { handle });
|
|
11526
11496
|
let newTotalRewards = finalCoin;
|
|
11527
11497
|
if (signRecord) {
|
|
11528
|
-
newTotalRewards
|
|
11529
|
-
await ctx.database.set("ggcevo_sign", { handle }, {
|
|
11530
|
-
totalRewards: newTotalRewards
|
|
11531
|
-
});
|
|
11498
|
+
newTotalRewards += signRecord.totalRewards;
|
|
11499
|
+
await ctx.database.set("ggcevo_sign", { handle }, { totalRewards: newTotalRewards });
|
|
11532
11500
|
} else {
|
|
11533
11501
|
await ctx.database.create("ggcevo_sign", {
|
|
11534
11502
|
handle,
|
|
@@ -11553,9 +11521,7 @@ ${Spacestationtechnology.map((t) => t.techname).join("、")}`;
|
|
|
11553
11521
|
await ctx.database.set("ggcevo_warehouse", {
|
|
11554
11522
|
handle,
|
|
11555
11523
|
itemId: item.id
|
|
11556
|
-
}, {
|
|
11557
|
-
quantity: existing.quantity + 1
|
|
11558
|
-
});
|
|
11524
|
+
}, { quantity: existing.quantity + 1 });
|
|
11559
11525
|
} else {
|
|
11560
11526
|
await ctx.database.create("ggcevo_warehouse", {
|
|
11561
11527
|
handle,
|
|
@@ -11574,33 +11540,15 @@ ${Spacestationtechnology.map((t) => t.techname).join("、")}`;
|
|
|
11574
11540
|
galaxy: null,
|
|
11575
11541
|
returns: returnsIncrement,
|
|
11576
11542
|
plunderbonus: 0
|
|
11577
|
-
// 重置加成
|
|
11578
11543
|
});
|
|
11579
|
-
let resultMessage = isSuccess ? "🎉 探索成功!" : "⚠️ 探索失败!";
|
|
11580
|
-
let coinDisplay = `💰金币 +${finalCoin}`;
|
|
11581
|
-
if (totalBonus !== 0 || !isSuccess) {
|
|
11582
|
-
let baseInfo = `基础 ${baseCoinBeforeBonus}`;
|
|
11583
|
-
if (galaxyData2.bonus > 1) {
|
|
11584
|
-
baseInfo += ` → ${baseCoinReward}(+${bonusPercent2}%)`;
|
|
11585
|
-
}
|
|
11586
|
-
coinDisplay += ` (${baseInfo})`;
|
|
11587
|
-
}
|
|
11588
|
-
let rewardMessage = coinDisplay;
|
|
11589
|
-
if (itemRewards.length > 0) {
|
|
11590
|
-
rewardMessage += `
|
|
11591
|
-
📦 获得:${itemRewards.join("、")}`;
|
|
11592
|
-
}
|
|
11593
|
-
if (bonusEffects.length > 0) {
|
|
11594
|
-
rewardMessage += `
|
|
11595
|
-
⚡ 加成效果:${bonusEffects.join(",")}`;
|
|
11596
|
-
}
|
|
11597
11544
|
return [
|
|
11598
|
-
|
|
11545
|
+
isSuccess ? "🎉 探索成功!" : "⚠️ 探索失败!",
|
|
11599
11546
|
`🌌 星系:${record.galaxy}`,
|
|
11600
11547
|
`🔮 实际成功率:${(successRate * 100).toFixed(1)}%`,
|
|
11601
11548
|
`🏆 已探索次数:${returnsIncrement}`,
|
|
11602
11549
|
"--------------------------------",
|
|
11603
|
-
|
|
11550
|
+
`💰 金币 +${finalCoin}`,
|
|
11551
|
+
...itemRewards.length > 0 ? [`📦 获得:${itemRewards.join("、")}`] : [],
|
|
11604
11552
|
"💡 已自动结束探索任务"
|
|
11605
11553
|
].join("\n");
|
|
11606
11554
|
}
|
|
@@ -11608,11 +11556,11 @@ ${Spacestationtechnology.map((t) => t.techname).join("、")}`;
|
|
|
11608
11556
|
if (!galaxyName) {
|
|
11609
11557
|
const exploreOptions = [];
|
|
11610
11558
|
for (const [name3, info] of Object.entries(galaxy)) {
|
|
11611
|
-
const
|
|
11559
|
+
const bonusPercent = Math.round((info.bonus - 1) * 100);
|
|
11612
11560
|
exploreOptions.push([
|
|
11613
11561
|
`【${name3}】`,
|
|
11614
11562
|
`- 成功率:${(info.success * 100).toFixed(0)}%`,
|
|
11615
|
-
`- 金币加成:${
|
|
11563
|
+
`- 金币加成:${bonusPercent > 0 ? "+" : ""}${bonusPercent}%`,
|
|
11616
11564
|
`- 可获得:${info.available}`,
|
|
11617
11565
|
`- 特殊效果:${info.effect}`
|
|
11618
11566
|
].join("\n"));
|
|
@@ -11631,27 +11579,34 @@ ${Spacestationtechnology.map((t) => t.techname).join("、")}`;
|
|
|
11631
11579
|
const actualPlunderRate = basePlunderRate + plunderRateBonus / 100;
|
|
11632
11580
|
const canPlunder = Math.random() < actualPlunderRate;
|
|
11633
11581
|
if (canPlunder) {
|
|
11634
|
-
|
|
11582
|
+
let otherPlayers = await ctx.database.get("ggcevo_explore", {
|
|
11635
11583
|
galaxy: galaxyName,
|
|
11636
11584
|
status: "探索中",
|
|
11637
11585
|
handle: { $ne: handle },
|
|
11638
|
-
// 排除自己
|
|
11639
11586
|
plunderbonus: { $gte: 0 }
|
|
11640
|
-
// 只选择plunderbonus>=0的玩家
|
|
11641
11587
|
});
|
|
11588
|
+
if (otherPlayers.length > 0) {
|
|
11589
|
+
const nonStealthPlayers = [];
|
|
11590
|
+
for (const player of otherPlayers) {
|
|
11591
|
+
const [playerShip] = await ctx.database.get("ggcevo_spaceship", { handle: player.handle });
|
|
11592
|
+
if (!playerShip || playerShip.id !== 2) {
|
|
11593
|
+
nonStealthPlayers.push(player);
|
|
11594
|
+
}
|
|
11595
|
+
}
|
|
11596
|
+
otherPlayers = nonStealthPlayers;
|
|
11597
|
+
}
|
|
11642
11598
|
if (otherPlayers.length > 0) {
|
|
11643
11599
|
const target = otherPlayers[Math.floor(Math.random() * otherPlayers.length)];
|
|
11644
11600
|
await session.send(`❗ 您在探索过程中发现了【${target.name}】的飞船,是否掠夺?(30秒内输入"是"来进行掠夺)`);
|
|
11645
11601
|
const response = await session.prompt(3e4);
|
|
11646
11602
|
if (response === "是") {
|
|
11647
|
-
|
|
11603
|
+
let baseSuccessRate = 0.5;
|
|
11604
|
+
if (isBehemoth) baseSuccessRate += 0.3;
|
|
11605
|
+
if (shipRecord?.id === 3) baseSuccessRate += 0.1;
|
|
11606
|
+
const success = Math.random() < baseSuccessRate;
|
|
11648
11607
|
let playerBonus, targetBonus;
|
|
11649
11608
|
if (success) {
|
|
11650
|
-
|
|
11651
|
-
if (plunderBonusEffect > 0) {
|
|
11652
|
-
baseReward += plunderBonusEffect;
|
|
11653
|
-
}
|
|
11654
|
-
playerBonus = baseReward;
|
|
11609
|
+
playerBonus = 20;
|
|
11655
11610
|
targetBonus = -20;
|
|
11656
11611
|
} else {
|
|
11657
11612
|
playerBonus = -20;
|
|
@@ -11664,12 +11619,9 @@ ${Spacestationtechnology.map((t) => t.techname).join("、")}`;
|
|
|
11664
11619
|
galaxy: galaxyName,
|
|
11665
11620
|
returns: record?.returns || 0,
|
|
11666
11621
|
plunderbonus: playerBonus,
|
|
11667
|
-
// 掠夺者加成值
|
|
11668
11622
|
status: "探索中"
|
|
11669
11623
|
}], ["handle"]);
|
|
11670
|
-
const [targetRecord] = await ctx.database.get("ggcevo_explore", {
|
|
11671
|
-
handle: target.handle
|
|
11672
|
-
});
|
|
11624
|
+
const [targetRecord] = await ctx.database.get("ggcevo_explore", { handle: target.handle });
|
|
11673
11625
|
await ctx.database.set("ggcevo_explore", { handle: target.handle }, {
|
|
11674
11626
|
plunderbonus: (targetRecord.plunderbonus || 0) + targetBonus
|
|
11675
11627
|
});
|
|
@@ -11687,49 +11639,17 @@ ${Spacestationtechnology.map((t) => t.techname).join("、")}`;
|
|
|
11687
11639
|
status: "探索中"
|
|
11688
11640
|
}], ["handle"]);
|
|
11689
11641
|
const galaxyData = galaxy[galaxyName];
|
|
11690
|
-
let bonusInfo = [];
|
|
11691
|
-
const bonusPercent = Math.round((galaxyData.bonus - 1) * 100);
|
|
11692
|
-
if (bonusPercent > 0) {
|
|
11693
|
-
bonusInfo.push(`💰 星系金币加成:+${bonusPercent}%`);
|
|
11694
|
-
}
|
|
11695
|
-
if (career.group === "人类联盟" && galaxyName === "联盟星系") {
|
|
11696
|
-
bonusInfo.push("人类联盟阵营:成功率+10%");
|
|
11697
|
-
} else if (career.group === "辛迪加海盗" && galaxyName === "辛迪加星系") {
|
|
11698
|
-
bonusInfo.push("辛迪加海盗阵营:成功率+10%");
|
|
11699
|
-
}
|
|
11700
|
-
if (shipBonus > 0) {
|
|
11701
|
-
bonusInfo.push(`飞船:金币收益+${shipBonus}%`);
|
|
11702
|
-
}
|
|
11703
|
-
if (shipEffect) {
|
|
11704
|
-
bonusInfo.push(`飞船效果:${shipEffect}`);
|
|
11705
|
-
}
|
|
11706
|
-
if (plunderRateBonus > 0) {
|
|
11707
|
-
bonusInfo.push(`🗡️ 掠夺概率提升:+${plunderRateBonus}%`);
|
|
11708
|
-
}
|
|
11709
|
-
if (plunderBonusEffect > 0) {
|
|
11710
|
-
bonusInfo.push(`💰 掠夺收益加成:+${plunderBonusEffect}%`);
|
|
11711
|
-
}
|
|
11712
|
-
if (totalTechBonusRate > 0) {
|
|
11713
|
-
const careerDesc = careerBonusRate > 0 ? ` (${careerName})` : "";
|
|
11714
|
-
bonusInfo.push(`⚙️ 反应堆科技Lv.${techLevel}:金币收益+${techBonusPercent.toFixed(0)}%${careerDesc}`);
|
|
11715
|
-
}
|
|
11716
|
-
if (careerCoinBonus > 0) {
|
|
11717
|
-
bonusInfo.push(`🧑🚀 ${careerName}职业:金币收益+${careerCoinBonus}%`);
|
|
11718
|
-
}
|
|
11719
11642
|
let estimatedRate = galaxyData.success;
|
|
11720
11643
|
if (career.group === "人类联盟" && galaxyName === "联盟星系") estimatedRate += 0.1;
|
|
11721
11644
|
if (career.group === "辛迪加海盗" && galaxyName === "辛迪加星系") estimatedRate += 0.1;
|
|
11645
|
+
if (isStealthShip) estimatedRate += 0.2;
|
|
11722
11646
|
estimatedRate = Math.min(estimatedRate, 1) * 100;
|
|
11723
11647
|
return [
|
|
11724
11648
|
`🚀 开始探索 ${galaxyName}`,
|
|
11725
11649
|
`⏱️ 开始时间:${(/* @__PURE__ */ new Date()).toLocaleString("zh-CN", { hour12: false })}`,
|
|
11726
11650
|
`⏳ 持续时间:12小时`,
|
|
11727
11651
|
`📊 预计成功率:${estimatedRate.toFixed(0)}%`,
|
|
11728
|
-
|
|
11729
|
-
...bonusInfo.length ? bonusInfo.map((info) => `⭐ ${info}`) : ["⭐ 无加成效果"],
|
|
11730
|
-
`🏆 可获得:${galaxyData.available}`,
|
|
11731
|
-
`✨ 星系效果:${galaxyData.effect}`,
|
|
11732
|
-
"💡 探索完成后将获得奖励,可持续进行探索任务"
|
|
11652
|
+
"💡 探索完成后将自动获得奖励"
|
|
11733
11653
|
].join("\n");
|
|
11734
11654
|
});
|
|
11735
11655
|
const shipIdToName = {};
|
|
@@ -11742,8 +11662,8 @@ ${Spacestationtechnology.map((t) => t.techname).join("、")}`;
|
|
|
11742
11662
|
return [
|
|
11743
11663
|
`【${name2}】`,
|
|
11744
11664
|
`- 价格: ${ship.price}金币`,
|
|
11745
|
-
`- 探索加成: +${ship.explorebonus}
|
|
11746
|
-
`- 挖矿加成: +${ship.miningbonus}
|
|
11665
|
+
`- 探索加成: +${ship.explorebonus}%金币`,
|
|
11666
|
+
`- 挖矿加成: +${ship.miningbonus}%金币`,
|
|
11747
11667
|
`- 特殊效果: ${ship.effect || "无"}`
|
|
11748
11668
|
].join("\n");
|
|
11749
11669
|
});
|