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

XFESpaceNinjaServer

A simple server for a small space ninja game

公开
关注 0 Fork 0 Star 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
Sainan <63328889+Sainan@users.noreply.github.com>
提交于

代码差异

3 个文件 +210 -5
Modified src/services/worldStateService.ts +28 -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 }
Modified src/types/worldStateTypes.ts +7 -0
@@ -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;
Added static/fixed_responses/worldState/sortieTilesets.json +175 -0
@@ -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 }