diff --git a/Dockerfile b/Dockerfile index a988b8bb..c36da824 100644 --- a/Dockerfile +++ b/Dockerfile @@ -32,6 +32,7 @@ ENV APP_NO_MASTERY_RANK_UP_COOLDOWN=false ENV APP_NO_VENDOR_PURCHASE_LIMITS=true ENV APP_NO_DEATH_MARKS=false ENV APP_NO_KIM_COOLDOWNS=false +ENV APP_SYNDICATE_MISSIONS_REPEATABLE=false ENV APP_INSTANT_FINISH_RIVEN_CHALLENGE=false ENV APP_INSTANT_RESOURCE_EXTRACTOR_DRONES=false ENV APP_NO_RESOURCE_EXTRACTOR_DRONES_DAMAGE=false diff --git a/config.json.example b/config.json.example index 19d1d170..d9585902 100644 --- a/config.json.example +++ b/config.json.example @@ -38,6 +38,7 @@ "noVendorPurchaseLimits": true, "noDeathMarks": false, "noKimCooldowns": false, + "syndicateMissionsRepeatable": false, "instantFinishRivenChallenge": false, "instantResourceExtractorDrones": false, "noResourceExtractorDronesDamage": false, diff --git a/docker-compose.yml b/docker-compose.yml index 55539ba3..544dec95 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -39,6 +39,7 @@ services: # APP_NO_VENDOR_PURCHASE_LIMITS: true # APP_NO_DEATH_MARKS: false # APP_NO_KIM_COOLDOWNS: false + # APP_SYNDICATE_MISSIONS_REPEATABLE: false # APP_INSTANT_FINISH_RIVEN_CHALLENGE: false # APP_INSTANT_RESOURCE_EXTRACTOR_DRONES: false # APP_NO_RESOURCE_EXTRACTOR_DRONES_DAMAGE: false diff --git a/src/services/configService.ts b/src/services/configService.ts index 2157546a..6a42481b 100644 --- a/src/services/configService.ts +++ b/src/services/configService.ts @@ -44,6 +44,7 @@ interface IConfig { noVendorPurchaseLimits?: boolean; noDeathMarks?: boolean; noKimCooldowns?: boolean; + syndicateMissionsRepeatable?: boolean; instantFinishRivenChallenge?: boolean; instantResourceExtractorDrones?: boolean; noResourceExtractorDronesDamage?: boolean; diff --git a/src/services/missionInventoryUpdateService.ts b/src/services/missionInventoryUpdateService.ts index 12aa3f53..32a2899c 100644 --- a/src/services/missionInventoryUpdateService.ts +++ b/src/services/missionInventoryUpdateService.ts @@ -445,7 +445,9 @@ export const addMissionInventoryUpdates = async ( }); break; case "SyndicateId": { - inventory.CompletedSyndicates.push(value); + if (!config.syndicateMissionsRepeatable) { + inventory.CompletedSyndicates.push(value); + } break; } case "SortieId": { diff --git a/static/webui/index.html b/static/webui/index.html index 15a00158..1b42793e 100644 --- a/static/webui/index.html +++ b/static/webui/index.html @@ -674,6 +674,10 @@ +
+ + +
diff --git a/static/webui/translations/de.js b/static/webui/translations/de.js index f8ca4d7b..eb721391 100644 --- a/static/webui/translations/de.js +++ b/static/webui/translations/de.js @@ -151,6 +151,7 @@ dict = { cheats_noVendorPurchaseLimits: `Keine Kaufbeschränkungen bei Händlern`, cheats_noDeathMarks: `Keine Todesmarkierungen`, cheats_noKimCooldowns: `Keine Wartezeit bei KIM`, + cheats_syndicateMissionsRepeatable: `Syndikat-Missionen wiederholbar`, cheats_instantFinishRivenChallenge: `Riven-Mod Herausforderung sofort abschließen`, cheats_instantResourceExtractorDrones: `Sofortige Ressourcen-Extraktor-Drohnen`, cheats_noResourceExtractorDronesDamage: `Kein Schaden für Ressourcen-Extraktor-Drohnen`, diff --git a/static/webui/translations/en.js b/static/webui/translations/en.js index 6191ac71..cd718917 100644 --- a/static/webui/translations/en.js +++ b/static/webui/translations/en.js @@ -150,6 +150,7 @@ dict = { cheats_noVendorPurchaseLimits: `No Vendor Purchase Limits`, cheats_noDeathMarks: `No Death Marks`, cheats_noKimCooldowns: `No KIM Cooldowns`, + cheats_syndicateMissionsRepeatable: `Syndicate Missions Repeatable`, cheats_instantFinishRivenChallenge: `Instant Finish Riven Challenge`, cheats_instantResourceExtractorDrones: `Instant Resource Extractor Drones`, cheats_noResourceExtractorDronesDamage: `No Resource Extractor Drones Damage`, diff --git a/static/webui/translations/es.js b/static/webui/translations/es.js index 8522ab22..80db0dbf 100644 --- a/static/webui/translations/es.js +++ b/static/webui/translations/es.js @@ -151,6 +151,7 @@ dict = { cheats_noVendorPurchaseLimits: `Sin límite de compras de vendedores`, cheats_noDeathMarks: `Sin marcas de muerte`, cheats_noKimCooldowns: `Sin tiempo de espera para conversaciones KIM`, + cheats_syndicateMissionsRepeatable: `[UNTRANSLATED] Syndicate Missions Repeatable`, cheats_instantFinishRivenChallenge: `Terminar desafío de agrietado inmediatamente`, cheats_instantResourceExtractorDrones: `Drones de extracción de recursos instantáneos`, cheats_noResourceExtractorDronesDamage: `Sin daño a los drones extractores de recursos`, diff --git a/static/webui/translations/fr.js b/static/webui/translations/fr.js index d9773d4c..6c91356c 100644 --- a/static/webui/translations/fr.js +++ b/static/webui/translations/fr.js @@ -151,6 +151,7 @@ dict = { cheats_noVendorPurchaseLimits: `Aucune limite d'achat chez les PNJ`, cheats_noDeathMarks: `Aucune marque d'assassin`, cheats_noKimCooldowns: `Aucun cooldown sur le KIM`, + cheats_syndicateMissionsRepeatable: `[UNTRANSLATED] Syndicate Missions Repeatable`, cheats_instantFinishRivenChallenge: `[UNTRANSLATED] Instant Finish Riven Challenge`, cheats_instantResourceExtractorDrones: `Ressources de drones d'extraction instantannées`, cheats_noResourceExtractorDronesDamage: `Aucun dégâts aux drones d'extraction de resources`, diff --git a/static/webui/translations/ru.js b/static/webui/translations/ru.js index ccc1101a..445c519a 100644 --- a/static/webui/translations/ru.js +++ b/static/webui/translations/ru.js @@ -151,6 +151,7 @@ dict = { cheats_noVendorPurchaseLimits: `Отсутствие лимитов на покупки у вендоров`, cheats_noDeathMarks: `Без меток сметри`, cheats_noKimCooldowns: `Чаты KIM без кулдауна`, + cheats_syndicateMissionsRepeatable: `[UNTRANSLATED] Syndicate Missions Repeatable`, cheats_instantFinishRivenChallenge: `[UNTRANSLATED] Instant Finish Riven Challenge`, cheats_instantResourceExtractorDrones: `Мгновенные Экстракторы Ресурсов`, cheats_noResourceExtractorDronesDamage: `Без урона по дронам-сборщикам`, diff --git a/static/webui/translations/zh.js b/static/webui/translations/zh.js index 16d931f0..5b38f847 100644 --- a/static/webui/translations/zh.js +++ b/static/webui/translations/zh.js @@ -151,6 +151,7 @@ dict = { cheats_noVendorPurchaseLimits: `[UNTRANSLATED] No Vendor Purchase Limits`, cheats_noDeathMarks: `[UNTRANSLATED] No Death Marks`, cheats_noKimCooldowns: `[UNTRANSLATED] No KIM Cooldowns`, + cheats_syndicateMissionsRepeatable: `[UNTRANSLATED] Syndicate Missions Repeatable`, cheats_instantFinishRivenChallenge: `[UNTRANSLATED] Instant Finish Riven Challenge`, cheats_instantResourceExtractorDrones: `即时资源采集无人机`, cheats_noResourceExtractorDronesDamage: `[UNTRANSLATED] No Resource Extractor Drones Damage`,