返回提交历史
Modified
src/controllers/custom/getItemListsController.ts
+14
-9
Modified
static/webui/script.js
+9
-4
Modified
static/webui/translations/en.js
+1
-0
Modified
static/webui/translations/ru.js
+1
-0
XFEstudio/SpaceNinjaServer
feat(webui): acquire flawed mods & imposters via add mods (#1040)
Closes #1033 Reviewed-on: https://onlyg.it/OpenWF/SpaceNinjaServer/pulls/1040
9267c992
代码差异
4 个文件
+25
-13
@@ -20,6 +20,7 @@ interface ListedItem {
20
20
name: string;
21
21
fusionLimit?: number;
22
22
exalted?: string[];
23
badReason?: "starter" | "frivolous" | "notraw";
23
24
}
24
25
25
26
const getItemListsController: RequestHandler = (req, response) => {
@@ -132,16 +133,20 @@ const getItemListsController: RequestHandler = (req, response) => {
132
133
}
133
134
134
135
res.mods = [];
135
const badItems: Record<string, boolean> = {};
136
136
for (const [uniqueName, upgrade] of Object.entries(ExportUpgrades)) {
137
res.mods.push({
137
const mod: ListedItem = {
138
138
uniqueName,
139
139
name: getString(upgrade.name, lang),
140
140
fusionLimit: upgrade.fusionLimit
141
});
142
if (upgrade.isStarter || upgrade.isFrivolous || upgrade.upgradeEntries) {
143
badItems[uniqueName] = true;
141
};
142
if (upgrade.isStarter) {
143
mod.badReason = "starter";
144
} else if (upgrade.isFrivolous) {
145
mod.badReason = "frivolous";
146
} else if (upgrade.upgradeEntries) {
147
mod.badReason = "notraw";
144
148
}
149
res.mods.push(mod);
145
150
}
146
151
for (const [uniqueName, upgrade] of Object.entries(ExportAvionics)) {
147
152
res.mods.push({
@@ -151,13 +156,14 @@ const getItemListsController: RequestHandler = (req, response) => {
151
156
});
152
157
}
153
158
for (const [uniqueName, arcane] of Object.entries(ExportArcanes)) {
154
res.mods.push({
159
const mod: ListedItem = {
155
160
uniqueName,
156
161
name: getString(arcane.name, lang)
157
});
162
};
158
163
if (arcane.isFrivolous) {
159
badItems[uniqueName] = true;
164
mod.badReason = "frivolous";
160
165
}
166
res.mods.push(mod);
161
167
}
162
168
for (const [uniqueName, syndicate] of Object.entries(ExportSyndicates)) {
163
169
res.Syndicates.push({
@@ -167,7 +173,6 @@ const getItemListsController: RequestHandler = (req, response) => {
167
173
}
168
174
169
175
response.json({
170
badItems,
171
176
archonCrystalUpgrades,
172
177
uniqueLevelCaps: ExportMisc.uniqueLevelCaps,
173
178
...res
@@ -207,11 +207,16 @@ function fetchItemList() {
207
207
document.getElementById("changeSyndicate").appendChild(option);
208
208
itemMap[item.uniqueName] = { ...item, type };
209
209
});
210
} else if (type != "badItems") {
210
} else {
211
211
items.forEach(item => {
212
if (item.uniqueName in data.badItems) {
213
item.name += " " + loc("code_badItem");
214
} else if (item.uniqueName.substr(0, 18) != "/Lotus/Types/Game/") {
212
if ("badReason" in item) {
213
if (item.badReason == "starter") {
214
item.name = loc("code_starter").split("|MOD|").join(item.name);
215
} else {
216
item.name += " " + loc("code_badItem");
217
}
218
}
219
if (item.uniqueName.substr(0, 18) != "/Lotus/Types/Game/" && item.badReason != "notraw") {
215
220
const option = document.createElement("option");
216
221
option.setAttribute("data-key", item.uniqueName);
217
222
option.value = item.name;
@@ -18,6 +18,7 @@ dict = {
18
18
code_kDrive: `K-Drive`,
19
19
code_legendaryCore: `Legendary Core`,
20
20
code_traumaticPeculiar: `Traumatic Peculiar`,
21
code_starter: `|MOD| (Flawed)`,
21
22
code_badItem: `(Imposter)`,
22
23
code_maxRank: `Max Rank`,
23
24
code_rename: `Rename`,
@@ -19,6 +19,7 @@ dict = {
19
19
code_kDrive: `К-Драйв`,
20
20
code_legendaryCore: `Легендарное ядро`,
21
21
code_traumaticPeculiar: `Травмирующая Странность`,
22
code_starter: `[UNTRANSLATED] |MOD| (Flawed)`,
22
23
code_badItem: `(Самозванец)`,
23
24
code_maxRank: `Максимальный ранг`,
24
25
code_rename: `Переименовать`,