XFE Git
XFE Studio Git
Git 首页 全局搜索
XFE 主站 文档 NuGet

SpaceNinjaServer

A simple server for a small space ninja game

公开
关注 0 Fork 1 Star 0
返回提交历史

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
Sainan <63328889+Sainan@users.noreply.github.com>
提交于

代码差异

1 个文件 +8 -4
Modified src/services/worldStateService.ts +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(),