返回提交历史
Modified
src/services/worldStateService.ts
+8
-4
XFEstudio/SpaceNinjaServer
fix: allow fissure nodes to be reused for expired fissures (#4287)
Reviewed-on: https://onlyg.it/OpenWF/SpaceNinjaServer/pulls/4287 Co-authored-by: Sainan <63328889+Sainan@users.noreply.github.com> Co-committed-by: Sainan <63328889+Sainan@users.noreply.github.com>
0e75ad43
代码差异
1 个文件
+8
-4
@@ -5073,7 +5073,9 @@ const updateFissures = async (): Promise<void> => {
5073
5073
VoidT6Hard: 0
5074
5074
};
5075
5075
for (const fissure of fissures) {
5076
activeNodes.add(fissure.Node);
5076
if (fissure.Expiry.getTime() > Date.now()) {
5077
activeNodes.add(fissure.Node);
5078
}
5077
5079
5078
5080
const key = fissure.Modifier + (fissure.Hard ? "Hard" : "");
5079
5081
tierToFurthestExpiry[key] = Math.max(tierToFurthestExpiry[key], fissure.Expiry.getTime());
@@ -5083,6 +5085,7 @@ const updateFissures = async (): Promise<void> => {
5083
5085
for (const [tier, expiry] of Object.entries(tierToFurthestExpiry)) {
5084
5086
if (expiry < deadline) {
5085
5087
const numFissures = getRandomInt(1, 3);
5088
logger.trace(`${tier} fissures expire soon, generating ${numFissures} new ones`);
5086
5089
for (let i = 0; i != numFissures; ++i) {
5087
5090
const modifier = tier.replace("Hard", "") as
5088
5091
| "VoidT1"
@@ -5091,10 +5094,11 @@ const updateFissures = async (): Promise<void> => {
5091
5094
| "VoidT4"
5092
5095
| "VoidT5"
5093
5096
| "VoidT6";
5094
let node: string;
5095
do {
5097
let node: string = getRandomElement(fissureMissions[modifier])!;
5098
while (activeNodes.has(node)) {
5099
logger.trace(`tried to use ${node} for a fissure, but it's already in use`);
5096
5100
node = getRandomElement(fissureMissions[modifier])!;
5097
} while (activeNodes.has(node));
5101
}
5098
5102
activeNodes.add(node);
5099
5103
await Fissure.insertOne({
5100
5104
Activation: new Date(),