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

feat: Reset Sortie & Archon Hunt Completion Import Sample (#4377)

- Some people seem to be interested having a feature like this, to be able to redo them in order to get another reward - Import fixes for Sortie related stuff Reviewed-on: https://onlyg.it/OpenWF/SpaceNinjaServer/pulls/4377 Reviewed-by: Sainan <63328889+sainan@users.noreply.github.com> Co-authored-by: Animan8000 <187183497+Veniman8000@users.noreply.github.com> Co-committed-by: Animan8000 <187183497+Veniman8000@users.noreply.github.com>

7bf72ccb
Animan8000 <187183497+Veniman8000@users.noreply.github.com>
提交于

代码差异

10 个文件 +28 -0
Modified src/services/importService.ts +15 -0
@@ -16,6 +16,8 @@ import type {
16 16 IFocusLoadoutClient,
17 17 IFocusLoadoutDatabase,
18 18 IInventoryClient,
19 ILastSortieRewardClient,
20 ILastSortieRewardDatabase,
19 21 INemesisClient,
20 22 INemesisDatabase,
21 23 IRecentVendorPurchaseClient,
@@ -267,6 +269,13 @@ const convertPendingRecipe = (client: IPendingRecipeClient): IPendingRecipeDatab
267 269 };
268 270 };
269 271
272 const convertLastSortieReward = (client: ILastSortieRewardClient): ILastSortieRewardDatabase => {
273 return {
274 ...client,
275 SortieId: new Types.ObjectId(fromOid(client.SortieId))
276 };
277 };
278
270 279 const convertNemesisBase = (client: INemesisBaseClient): INemesisBaseDatabase => {
271 280 return {
272 281 ...client,
@@ -428,6 +437,7 @@ export const importInventory = (db: TInventoryDatabaseDocument, client: Partial<
428 437 "NodeIntrosCompleted",
429 438 "CompletedAlerts",
430 439 "CompletedSyndicates",
440 "CompletedSorties",
431 441 "DeathMarks",
432 442 "UsedDailyDeals",
433 443 "Wishlist",
@@ -544,6 +554,11 @@ export const importInventory = (db: TInventoryDatabaseDocument, client: Partial<
544 554 if (client.CompletedJobChains !== undefined) {
545 555 db.CompletedJobChains = client.CompletedJobChains;
546 556 }
557 for (const key of ["LastSortieReward", "LastLiteSortieReward"] as const) {
558 if (client[key] !== undefined) {
559 db[key] = client[key].map(convertLastSortieReward);
560 }
561 }
547 562 if (client.Nemesis !== undefined) {
548 563 db.Nemesis = convertNemesis(client.Nemesis);
549 564 }
Modified static/webui/index.html +1 -0
@@ -1826,6 +1826,7 @@
1826 1826 <li><a href="#" onclick="event.preventDefault();setImportSample('maxFocus1');" data-loc="import_samples_maxFocus" data-loc-replace="1.0"></a></li>
1827 1827 <li><a href="#" onclick="event.preventDefault();setImportSample('accolades');" data-loc="import_samples_accolades"></a></li>
1828 1828 <li><a href="#" onclick="event.preventDefault();setImportSample('maxStratos');" data-loc="import_samples_maxStratos"></a></li>
1829 <li><a href="#" onclick="event.preventDefault();setImportSample('resetSortieCompletion');" data-loc="import_samples_resetSortieCompletion"></a></li>
1829 1830 <li><a href="#" onclick="event.preventDefault();setImportSample('clearWishlist');" data-loc="import_samples_clearWishlist"></a></li>
1830 1831 <li><a href="#" onclick="event.preventDefault();setImportSample('clearLocPins');" data-loc="import_samples_clearLocPins"></a></li>
1831 1832 <li><a href="#" onclick="event.preventDefault();setImportSample('eidolonLocPins');" data-loc="import_samples_eidolonLocPins"></a></li>
Modified static/webui/script.importSamples.js +5 -0
@@ -806,6 +806,11 @@ window.importSamples = {
806 806 maxStratos: {
807 807 BountyScore: 39
808 808 },
809 resetSortieCompletion: {
810 CompletedSorties: [],
811 LastSortieReward: [],
812 LastLiteSortieReward: []
813 },
809 814 clearWishlist: {
810 815 Wishlist: []
811 816 },
Modified static/webui/translations/de.js +1 -0
@@ -410,6 +410,7 @@ dict = {
410 410 import_samples_maxFocus: `Alle Fokus-Schulen maximiert (Fokus |VAL|)`,
411 411 import_samples_accolades: `Auszeichnungen & Council Chat Zugang`,
412 412 import_samples_maxStratos: `Max. Rang-Symbol für Stratos Emblem`,
413 import_samples_resetSortieCompletion: `Einsatz- & Archon Jagd-Abschluss zurücksetzen`,
413 414 import_samples_clearWishlist: `Wunschliste leeren`,
414 415 import_samples_clearLocPins: `Lok-Pins leeren`,
415 416 import_samples_eidolonLocPins: `Eidolon Jagd Lok-Pins`,
Modified static/webui/translations/en.js +1 -0
@@ -409,6 +409,7 @@ dict = {
409 409 import_samples_maxFocus: `All Focus Schools Maxed Out (Focus |VAL|)`,
410 410 import_samples_accolades: `Accolades & Council Chat Access`,
411 411 import_samples_maxStratos: `Max Rank Stratos Emblem Icon`,
412 import_samples_resetSortieCompletion: `Reset Sortie & Archon Hunt Completion`,
412 413 import_samples_clearWishlist: `Clear Wishlist`,
413 414 import_samples_clearLocPins: `Clear Loc-Pins`,
414 415 import_samples_eidolonLocPins: `Eidolon Hunt Loc-Pins`,
Modified static/webui/translations/es.js +1 -0
@@ -410,6 +410,7 @@ dict = {
410 410 import_samples_maxFocus: `[UNTRANSLATED] All Focus Schools Maxed Out (Focus |VAL|)`,
411 411 import_samples_accolades: `[UNTRANSLATED] Accolades & Council Chat Access`,
412 412 import_samples_maxStratos: `[UNTRANSLATED] Max Rank Stratos Emblem Icon`,
413 import_samples_resetSortieCompletion: `[UNTRANSLATED] Reset Sortie & Archon Hunt Completion`,
413 414 import_samples_clearWishlist: `[UNTRANSLATED] Clear Wishlist`,
414 415 import_samples_clearLocPins: `[UNTRANSLATED] Clear Loc-Pins`,
415 416 import_samples_eidolonLocPins: `[UNTRANSLATED] Eidolon Hunt Loc-Pins`,
Modified static/webui/translations/fr.js +1 -0
@@ -410,6 +410,7 @@ dict = {
410 410 import_samples_maxFocus: `Maxer toutes les écoles de focus (Focus |VAL|)`,
411 411 import_samples_accolades: `Accolades et accès au tchat Design Council`,
412 412 import_samples_maxStratos: `Badge Stratos rang max`,
413 import_samples_resetSortieCompletion: `[UNTRANSLATED] Reset Sortie & Archon Hunt Completion`,
413 414 import_samples_clearWishlist: `Effacer la liste de souhaits`,
414 415 import_samples_clearLocPins: `Effacer les loc-pins`,
415 416 import_samples_eidolonLocPins: `Loc-pins pour la chasse d'Eidolon`,
Modified static/webui/translations/ru.js +1 -0
@@ -410,6 +410,7 @@ dict = {
410 410 import_samples_maxFocus: `Все школы Фокуса макс. уровня (Фокус |VAL|)`,
411 411 import_samples_accolades: `Акколады и доступ к чату Совета`,
412 412 import_samples_maxStratos: `Максимальный ранг значка Стратос`,
413 import_samples_resetSortieCompletion: `[UNTRANSLATED] Reset Sortie & Archon Hunt Completion`,
413 414 import_samples_clearWishlist: `Очистить список желаний`,
414 415 import_samples_clearLocPins: `Очистить местные указатели`,
415 416 import_samples_eidolonLocPins: `Местные указатели для Охоты на Эйдолонов`,
Modified static/webui/translations/uk.js +1 -0
@@ -410,6 +410,7 @@ dict = {
410 410 import_samples_maxFocus: `Всі школи Фокусу макс. рівня (Фокус |VAL|)`,
411 411 import_samples_accolades: `Нагороди та доступ до чату Ради`,
412 412 import_samples_maxStratos: `Максимальний рівень відзнаки Страта`,
413 import_samples_resetSortieCompletion: `[UNTRANSLATED] Reset Sortie & Archon Hunt Completion`,
413 414 import_samples_clearWishlist: `Очистити список бажаного`,
414 415 import_samples_clearLocPins: `[UNTRANSLATED] Clear Loc-Pins`,
415 416 import_samples_eidolonLocPins: `[UNTRANSLATED] Eidolon Hunt Loc-Pins`,
Modified static/webui/translations/zh.js +1 -0
@@ -410,6 +410,7 @@ dict = {
410 410 import_samples_maxFocus: `全专精学派满级 (专精|VAL|版本)`,
411 411 import_samples_accolades: `荣誉与议会聊天权限`,
412 412 import_samples_maxStratos: `最大 Stratos Emblem Icon等级`,
413 import_samples_resetSortieCompletion: `[UNTRANSLATED] Reset Sortie & Archon Hunt Completion`,
413 414 import_samples_clearWishlist: `清空心愿单`,
414 415 import_samples_clearLocPins: `清空定位信标`,
415 416 import_samples_eidolonLocPins: `夜灵狩猎定位信标`,