返回提交历史
Modified
src/services/worldStateService.ts
+28
-5
Modified
src/types/worldStateTypes.ts
+7
-0
Added
static/fixed_responses/worldState/sortieTilesets.json
+175
-0
XFEstudio/XFESpaceNinjaServer
chore: provide tileset for sortie missions (#1793)
Closes #1788 Reviewed-on: https://onlyg.it/OpenWF/SpaceNinjaServer/pulls/1793 Co-authored-by: Sainan <63328889+Sainan@users.noreply.github.com> Co-committed-by: Sainan <63328889+Sainan@users.noreply.github.com>
d6750cd8
代码差异
3 个文件
+210
-5
@@ -1,10 +1,18 @@
1
1
import staticWorldState from "@/static/fixed_responses/worldState/worldState.json";
2
import sortieTilesets from "@/static/fixed_responses/worldState/sortieTilesets.json";
2
3
import { buildConfig } from "@/src/services/buildConfigService";
3
4
import { unixTimesInMs } from "@/src/constants/timeConstants";
4
5
import { config } from "@/src/services/configService";
5
6
import { CRng } from "@/src/services/rngService";
6
7
import { eMissionType, ExportNightwave, ExportRegions } from "warframe-public-export-plus";
7
import { ICalendarDay, ICalendarSeason, ILiteSortie, ISeasonChallenge, IWorldState } from "../types/worldStateTypes";
8
import {
9
ICalendarDay,
10
ICalendarSeason,
11
ILiteSortie,
12
ISeasonChallenge,
13
ISortieMission,
14
IWorldState
15
} from "../types/worldStateTypes";
8
16
9
17
const sortieBosses = [
10
18
"SORTIE_BOSS_HYENA",
@@ -277,7 +285,7 @@ const pushSortieIfRelevant = (worldState: IWorldState, day: number): void => {
277
285
}
278
286
}
279
287
280
const selectedNodes: { missionType: string; modifierType: string; node: string }[] = [];
288
const selectedNodes: ISortieMission[] = [];
281
289
const missionTypes = new Set();
282
290
283
291
for (let i = 0; i < 3; i++) {
@@ -298,11 +306,21 @@ const pushSortieIfRelevant = (worldState: IWorldState, day: number): void => {
298
306
const modifierType = rng.randomElement(filteredModifiers);
299
307
300
308
if (boss == "SORTIE_BOSS_PHORID") {
301
selectedNodes.push({ missionType: "MT_ASSASSINATION", modifierType, node });
309
selectedNodes.push({
310
missionType: "MT_ASSASSINATION",
311
modifierType,
312
node,
313
tileset: sortieTilesets[node as keyof typeof sortieTilesets]
314
});
302
315
nodes.splice(randomIndex, 1);
303
316
continue;
304
317
} else if (sortieBossNode[boss]) {
305
selectedNodes.push({ missionType: "MT_ASSASSINATION", modifierType, node: sortieBossNode[boss] });
318
selectedNodes.push({
319
missionType: "MT_ASSASSINATION",
320
modifierType,
321
node: sortieBossNode[boss],
322
tileset: sortieTilesets[sortieBossNode[boss] as keyof typeof sortieTilesets]
323
});
306
324
continue;
307
325
}
308
326
}
@@ -321,7 +339,12 @@ const pushSortieIfRelevant = (worldState: IWorldState, day: number): void => {
321
339
322
340
const modifierType = rng.randomElement(filteredModifiers);
323
341
324
selectedNodes.push({ missionType, modifierType, node });
342
selectedNodes.push({
343
missionType,
344
modifierType,
345
node,
346
tileset: sortieTilesets[node as keyof typeof sortieTilesets]
347
});
325
348
nodes.splice(randomIndex, 1);
326
349
missionTypes.add(missionType);
327
350
}
@@ -97,6 +97,13 @@ export interface ISortie {
97
97
}[];
98
98
}
99
99
100
export interface ISortieMission {
101
missionType: string;
102
modifierType: string;
103
node: string;
104
tileset: string;
105
}
106
100
107
export interface ILiteSortie {
101
108
_id: IOid;
102
109
Activation: IMongoDate;
@@ -0,0 +1,175 @@
1
{
2
"SettlementNode1": "CorpusShipTileset",
3
"SettlementNode11": "CorpusShipTileset",
4
"SettlementNode12": "CorpusShipTileset",
5
"SettlementNode14": "CorpusShipTileset",
6
"SettlementNode15": "CorpusShipTileset",
7
"SettlementNode2": "CorpusShipTileset",
8
"SettlementNode20": "CorpusShipTileset",
9
"SettlementNode3": "CorpusShipTileset",
10
"SolNode1": "CorpusOutpostTileset",
11
"SolNode10": "CorpusGasCityTileset",
12
"SolNode100": "CorpusGasCityTileset",
13
"SolNode101": "CorpusOutpostTileset",
14
"SolNode102": "CorpusShipTileset",
15
"SolNode103": "GrineerAsteroidTileset",
16
"SolNode104": "CorpusShipTileset",
17
"SolNode105": "GrineerOceanTilesetAnywhere",
18
"SolNode106": "GrineerSettlementTileset",
19
"SolNode107": "CorpusOutpostTileset",
20
"SolNode108": "GrineerAsteroidTileset",
21
"SolNode109": "CorpusOutpostTileset",
22
"SolNode11": "GrineerSettlementTileset",
23
"SolNode113": "GrineerSettlementTileset",
24
"SolNode118": "CorpusShipTileset",
25
"SolNode119": "GrineerAsteroidTileset",
26
"SolNode12": "GrineerAsteroidTileset",
27
"SolNode121": "CorpusGasCityTileset",
28
"SolNode122": "GrineerOceanTileset",
29
"SolNode123": "CorpusShipTileset",
30
"SolNode125": "CorpusGasCityTileset",
31
"SolNode126": "CorpusGasCityTileset",
32
"SolNode127": "CorpusShipTileset",
33
"SolNode128": "CorpusOutpostTileset",
34
"SolNode130": "GrineerAsteroidTileset",
35
"SolNode131": "GrineerShipyardsTileset",
36
"SolNode132": "GrineerShipyardsTileset",
37
"SolNode135": "GrineerGalleonTileset",
38
"SolNode137": "GrineerShipyardsTileset",
39
"SolNode138": "GrineerShipyardsTileset",
40
"SolNode139": "GrineerShipyardsTileset",
41
"SolNode14": "CorpusIcePlanetTilesetCaves",
42
"SolNode140": "GrineerShipyardsTileset",
43
"SolNode141": "GrineerShipyardsTileset",
44
"SolNode144": "GrineerShipyardsTileset",
45
"SolNode146": "GrineerAsteroidTileset",
46
"SolNode147": "GrineerShipyardsTileset",
47
"SolNode149": "GrineerShipyardsTileset",
48
"SolNode15": "GrineerGalleonTileset",
49
"SolNode16": "GrineerSettlementTileset",
50
"SolNode162": "InfestedCorpusShipTileset",
51
"SolNode164": "InfestedCorpusShipTileset",
52
"SolNode166": "InfestedCorpusShipTileset",
53
"SolNode17": "CorpusShipTileset",
54
"SolNode171": "InfestedCorpusShipTileset",
55
"SolNode172": "CorpusShipTileset",
56
"SolNode173": "InfestedCorpusShipTileset",
57
"SolNode175": "InfestedCorpusShipTileset",
58
"SolNode177": "GrineerGalleonTileset",
59
"SolNode18": "GrineerAsteroidTileset",
60
"SolNode181": "GrineerAsteroidTileset",
61
"SolNode184": "GrineerGalleonTileset",
62
"SolNode185": "GrineerGalleonTileset",
63
"SolNode187": "GrineerAsteroidTileset",
64
"SolNode188": "GrineerGalleonTileset",
65
"SolNode189": "GrineerGalleonTileset",
66
"SolNode19": "GrineerAsteroidTileset",
67
"SolNode191": "GrineerShipyardsTileset",
68
"SolNode193": "GrineerAsteroidTileset",
69
"SolNode195": "GrineerGalleonTileset",
70
"SolNode196": "GrineerGalleonTileset",
71
"SolNode2": "CorpusOutpostTileset",
72
"SolNode20": "GrineerGalleonTileset",
73
"SolNode203": "CorpusIcePlanetTileset",
74
"SolNode205": "CorpusIcePlanetTileset",
75
"SolNode209": "CorpusIcePlanetTileset",
76
"SolNode21": "CorpusOutpostTileset",
77
"SolNode210": "CorpusIcePlanetTileset",
78
"SolNode211": "CorpusIcePlanetTileset",
79
"SolNode212": "CorpusIcePlanetTileset",
80
"SolNode214": "CorpusIcePlanetTileset",
81
"SolNode215": "CorpusShipTileset",
82
"SolNode216": "CorpusIcePlanetTileset",
83
"SolNode217": "CorpusIcePlanetTileset",
84
"SolNode22": "CorpusOutpostTileset",
85
"SolNode220": "CorpusIcePlanetTileset",
86
"SolNode223": "GrineerAsteroidTileset",
87
"SolNode224": "GrineerGalleonTileset",
88
"SolNode225": "GrineerGalleonTileset",
89
"SolNode226": "GrineerGalleonTileset",
90
"SolNode228": "EidolonTileset",
91
"SolNode23": "CorpusShipTileset",
92
"SolNode24": "GrineerForestTileset",
93
"SolNode25": "CorpusGasCityTileset",
94
"SolNode26": "GrineerForestTileset",
95
"SolNode30": "GrineerSettlementTileset",
96
"SolNode300": "OrokinMoonTilesetGrineer",
97
"SolNode301": "OrokinMoonTilesetGrineer",
98
"SolNode302": "OrokinMoonTilesetCorpus",
99
"SolNode304": "OrokinMoonTilesetCorpus",
100
"SolNode305": "OrokinMoonTilesetGrineer",
101
"SolNode306": "OrokinMoonTilesetCorpus",
102
"SolNode307": "OrokinMoonTilesetCorpus",
103
"SolNode308": "OrokinMoonTilesetCorpus",
104
"SolNode31": "GrineerGalleonTileset",
105
"SolNode32": "GrineerGalleonTileset",
106
"SolNode36": "GrineerSettlementTileset",
107
"SolNode38": "CorpusOutpostTileset",
108
"SolNode39": "GrineerForestTileset",
109
"SolNode4": "CorpusShipTileset",
110
"SolNode400": "OrokinVoidTileset",
111
"SolNode401": "OrokinVoidTileset",
112
"SolNode402": "OrokinVoidTileset",
113
"SolNode403": "OrokinVoidTileset",
114
"SolNode404": "OrokinVoidTileset",
115
"SolNode405": "OrokinVoidTileset",
116
"SolNode406": "OrokinVoidTileset",
117
"SolNode407": "OrokinVoidTileset",
118
"SolNode408": "OrokinVoidTileset",
119
"SolNode409": "OrokinVoidTileset",
120
"SolNode41": "GrineerSettlementTileset",
121
"SolNode410": "OrokinVoidTileset",
122
"SolNode412": "OrokinVoidTileset",
123
"SolNode42": "GrineerGalleonTileset",
124
"SolNode43": "CorpusOutpostTileset",
125
"SolNode45": "GrineerSettlementTileset",
126
"SolNode46": "GrineerSettlementTileset",
127
"SolNode48": "CorpusOutpostTileset",
128
"SolNode49": "CorpusShipTileset",
129
"SolNode50": "GrineerAsteroidTileset",
130
"SolNode51": "CorpusOutpostTileset",
131
"SolNode53": "CorpusGasCityTileset",
132
"SolNode56": "CorpusShipTileset",
133
"SolNode57": "CorpusOutpostTileset",
134
"SolNode58": "GrineerSettlementTileset",
135
"SolNode59": "GrineerForestTileset",
136
"SolNode6": "CorpusOutpostTileset",
137
"SolNode61": "CorpusShipTileset",
138
"SolNode62": "CorpusIcePlanetTilesetCaves",
139
"SolNode64": "GrineerOceanTileset",
140
"SolNode66": "CorpusOutpostTileset",
141
"SolNode67": "GrineerAsteroidTileset",
142
"SolNode68": "GrineerGalleonTileset",
143
"SolNode70": "GrineerGalleonTileset",
144
"SolNode706": "OrokinDerelictTileset",
145
"SolNode707": "OrokinDerelictTileset",
146
"SolNode708": "OrokinDerelictTileset",
147
"SolNode709": "OrokinDerelictTileset",
148
"SolNode710": "OrokinDerelictTileset",
149
"SolNode711": "OrokinDerelictTileset",
150
"SolNode712": "OrokinDerelictTileset",
151
"SolNode713": "OrokinDerelictTileset",
152
"SolNode72": "CorpusOutpostTileset",
153
"SolNode73": "CorpusGasCityTileset",
154
"SolNode74": "CorpusGasCityTileset",
155
"SolNode741": "GrineerFortressTileset",
156
"SolNode742": "GrineerFortressTileset",
157
"SolNode743": "GrineerFortressTileset",
158
"SolNode744": "GrineerFortressTileset",
159
"SolNode745": "GrineerFortressTileset",
160
"SolNode746": "GrineerFortressTileset",
161
"SolNode747": "GrineerFortressTileset",
162
"SolNode748": "GrineerFortressTileset",
163
"SolNode75": "GrineerForestTileset",
164
"SolNode76": "CorpusShipTileset",
165
"SolNode78": "CorpusShipTileset",
166
"SolNode79": "GrineerForestTileset",
167
"SolNode81": "CorpusShipTileset",
168
"SolNode82": "GrineerGalleonTileset",
169
"SolNode84": "CorpusIcePlanetTilesetCaves",
170
"SolNode88": "CorpusShipTileset",
171
"SolNode93": "GrineerAsteroidTileset",
172
"SolNode96": "GrineerGalleonTileset",
173
"SolNode97": "CorpusGasCityTileset",
174
"SolNode99": "GrineerSettlementTileset"
175
}