From 09acc8f0766542d6645340885055943ff2c69a8e Mon Sep 17 00:00:00 2001 From: LmeSzinc <37934724+LmeSzinc@users.noreply.github.com> Date: Mon, 1 Jul 2024 22:18:58 +0800 Subject: [PATCH] Add: GUI option of Ornament --- config/template.json | 18 ++++ module/config/argument/args.json | 137 +++++++++++++++++++++++++++ module/config/argument/argument.yaml | 17 ++++ module/config/argument/menu.json | 3 +- module/config/argument/task.yaml | 4 + module/config/config_generated.py | 6 ++ module/config/config_updater.py | 21 +++- module/config/i18n/en-US.json | 46 ++++++++- module/config/i18n/es-ES.json | 44 ++++++++- module/config/i18n/ja-JP.json | 36 +++++++ module/config/i18n/zh-CN.json | 40 +++++++- module/config/i18n/zh-TW.json | 42 +++++++- 12 files changed, 395 insertions(+), 19 deletions(-) diff --git a/config/template.json b/config/template.json index efb5b222d..20d8dccad 100644 --- a/config/template.json +++ b/config/template.json @@ -264,6 +264,24 @@ "DebugMode": false } }, + "Ornament": { + "Scheduler": { + "Enable": false, + "NextRun": "2020-01-01 00:00:00", + "Command": "Ornament", + "ServerUpdate": "04:00" + }, + "Ornament": { + "Dungeon": "Divergent_Universe_Eternal_Comedy", + "UseImmersifier": true, + "DoubleEvent": true, + "UseStamina": false + }, + "DungeonSupport": { + "Use": "when_daily", + "Character": "FirstCharacter" + } + }, "Daemon": { "Daemon": { "Enable": true, diff --git a/module/config/argument/args.json b/module/config/argument/args.json index 993559321..d1946f162 100644 --- a/module/config/argument/args.json +++ b/module/config/argument/args.json @@ -1790,6 +1790,143 @@ } } }, + "Ornament": { + "Scheduler": { + "Enable": { + "type": "checkbox", + "value": false, + "option": [ + true, + false + ] + }, + "NextRun": { + "type": "datetime", + "value": "2020-01-01 00:00:00", + "validate": "datetime" + }, + "Command": { + "type": "input", + "value": "Ornament", + "display": "hide" + }, + "ServerUpdate": { + "type": "input", + "value": "04:00", + "display": "hide" + } + }, + "Ornament": { + "Dungeon": { + "type": "select", + "value": "Divergent_Universe_Eternal_Comedy", + "option": [ + "Divergent_Universe_Eternal_Comedy", + "Divergent_Universe_To_Sweet_Dreams", + "Divergent_Universe_Pouring_Blades", + "Divergent_Universe_Fruit_of_Evil", + "Divergent_Universe_Permafrost", + "Divergent_Universe_Gentle_Words", + "Divergent_Universe_Smelted_Heart", + "Divergent_Universe_Untoppled_Walls" + ] + }, + "UseImmersifier": { + "type": "state", + "value": true, + "option": [ + true + ], + "option_bold": [ + true + ] + }, + "DoubleEvent": { + "type": "state", + "value": true, + "option": [ + true + ], + "option_bold": [ + true + ] + }, + "UseStamina": { + "type": "checkbox", + "value": false + } + }, + "DungeonSupport": { + "Use": { + "type": "select", + "value": "when_daily", + "option": [ + "always_use", + "when_daily", + "do_not_use" + ] + }, + "Character": { + "type": "select", + "value": "FirstCharacter", + "option": [ + "FirstCharacter", + "Acheron", + "Argenti", + "Arlan", + "Asta", + "Aventurine", + "Bailu", + "BlackSwan", + "Blade", + "Boothill", + "Bronya", + "Clara", + "DanHeng", + "DanHengImbibitorLunae", + "DrRatio", + "Firefly", + "FuXuan", + "Gallagher", + "Gepard", + "Guinaifen", + "Hanya", + "Herta", + "Himeko", + "Hook", + "Huohuo", + "JingYuan", + "Jingliu", + "Kafka", + "Luka", + "Luocha", + "Lynx", + "March7th", + "Misha", + "Natasha", + "Pela", + "Qingque", + "Robin", + "RuanMei", + "Sampo", + "Seele", + "Serval", + "SilverWolf", + "Sparkle", + "Sushang", + "Tingyun", + "TopazNumby", + "TrailblazerDestruction", + "TrailblazerHarmony", + "TrailblazerPreservation", + "Welt", + "Xueyi", + "Yanqing", + "Yukong" + ] + } + } + }, "Daemon": { "Daemon": { "Enable": { diff --git a/module/config/argument/argument.yaml b/module/config/argument/argument.yaml index 1a7052d33..7d217a1f5 100644 --- a/module/config/argument/argument.yaml +++ b/module/config/argument/argument.yaml @@ -285,6 +285,23 @@ RogueBlessing: RogueDebug: DebugMode: false +Ornament: + Dungeon: + value: Divergent_Universe_Eternal_Comedy + # OrnamentExtraction will be injected in config updater + option: [ ] + UseImmersifier: + type: state + value: true + option: [ true, ] + option_bold: [ true, ] + DoubleEvent: + type: state + value: true + option: [ true, ] + option_bold: [ true, ] + UseStamina: false + # ==================== Tool ==================== Daemon: diff --git a/module/config/argument/menu.json b/module/config/argument/menu.json index 43ff195a6..81e6c68fa 100644 --- a/module/config/argument/menu.json +++ b/module/config/argument/menu.json @@ -24,7 +24,8 @@ "page": "setting", "tasks": [ "Weekly", - "Rogue" + "Rogue", + "Ornament" ] }, "Tool": { diff --git a/module/config/argument/task.yaml b/module/config/argument/task.yaml index 80cfb4dda..293d135e0 100644 --- a/module/config/argument/task.yaml +++ b/module/config/argument/task.yaml @@ -61,6 +61,10 @@ Weekly: - RogueWorld - RogueBlessing - RogueDebug + Ornament: + - Scheduler + - Ornament + - DungeonSupport # ==================== Tool ==================== diff --git a/module/config/config_generated.py b/module/config/config_generated.py index 27dc6367e..ebb709122 100644 --- a/module/config/config_generated.py +++ b/module/config/config_generated.py @@ -202,6 +202,12 @@ class GeneratedConfig: # Group `RogueDebug` RogueDebug_DebugMode = False + # Group `Ornament` + Ornament_Dungeon = 'Divergent_Universe_Eternal_Comedy' # Divergent_Universe_Eternal_Comedy, Divergent_Universe_To_Sweet_Dreams, Divergent_Universe_Pouring_Blades, Divergent_Universe_Fruit_of_Evil, Divergent_Universe_Permafrost, Divergent_Universe_Gentle_Words, Divergent_Universe_Smelted_Heart, Divergent_Universe_Untoppled_Walls + Ornament_UseImmersifier = True # True + Ornament_DoubleEvent = True # True + Ornament_UseStamina = False + # Group `Daemon` Daemon_Enable = True # True Daemon_AimClicker = 'do_not_click' # item_enemy, item, enemy, do_not_click diff --git a/module/config/config_updater.py b/module/config/config_updater.py index 6de81c39b..96922eba2 100644 --- a/module/config/config_updater.py +++ b/module/config/config_updater.py @@ -95,6 +95,9 @@ class ConfigGenerator: option_add( keys='Weekly.Name.option', options=[dungeon.name for dungeon in DungeonList.instances.values() if dungeon.is_Echo_of_War]) + # OrnamentExtraction + ornament = [dungeon.name for dungeon in DungeonList.instances.values() if dungeon.is_Ornament_Extraction] + option_add(keys='Ornament.Dungeon.option', options=ornament) # Insert characters from tasks.character.keywords import CharacterList unsupported_characters = ["Jade"] @@ -415,12 +418,8 @@ class ConfigGenerator: from tasks.dungeon.keywords import DungeonList, DungeonDetailed for dungeon in DungeonList.instances.values(): dungeon: DungeonList = dungeon - if not dungeon.plane: - continue dungeon_name = dungeon.__getattribute__(ingame_lang) dungeon_name = re.sub('[「」]', '', dungeon_name) - plane = dungeon.plane.__getattribute__(ingame_lang) - plane = re.sub('[「」]', '', plane) if dungeon.is_Calyx_Golden_Memories: deep_set(new, keys=['Dungeon', 'Name', dungeon.name], value=i18n_memories[ingame_lang].format(dungeon=dungeon_name)) @@ -431,6 +430,8 @@ class ConfigGenerator: deep_set(new, keys=['Dungeon', 'Name', dungeon.name], value=i18n_treasure[ingame_lang].format(dungeon=dungeon_name)) if dungeon.is_Calyx_Crimson: + plane = dungeon.plane.__getattribute__(ingame_lang) + plane = re.sub('[「」]', '', plane) path = dungeon.Calyx_Crimson_Path.__getattribute__(ingame_lang) deep_set(new, keys=['Dungeon', 'Name', dungeon.name], value=i18n_crimson[ingame_lang].format(path=path, plane=plane)) @@ -439,6 +440,18 @@ class ConfigGenerator: suffix = i18n_relic[ingame_lang].format(dungeon=dungeon_name).replace('Cavern of Corrosion: ', '') if not value.endswith(suffix): deep_set(new, keys=['Dungeon', 'Name', dungeon.name], value=f'{value}{suffix}') + if dungeon.is_Ornament_Extraction: + value = deep_get(new, keys=['Ornament', 'Dungeon', dungeon.name], default='') + suffix = i18n_relic[ingame_lang].format(dungeon=dungeon_name) + suffix = re.sub( + r'(•差分宇宙' + r'|Divergent Universe: ' + r'|階差宇宙・' + r'|: Universo Diferenciado' + r'|Universo Diferenciado: ' + r')', '', suffix) + if not value.endswith(suffix): + deep_set(new, keys=['Ornament', 'Dungeon', dungeon.name], value=f'{value}{suffix}') # Stagnant shadows with character names for dungeon in DungeonDetailed.instances.values(): diff --git a/module/config/i18n/en-US.json b/module/config/i18n/en-US.json index 0c5dd1271..4210ec046 100644 --- a/module/config/i18n/en-US.json +++ b/module/config/i18n/en-US.json @@ -58,6 +58,10 @@ "name": "Simulated Universe", "help": "" }, + "Ornament": { + "name": "Ornament", + "help": "The followings must be satisfied:\n1. Manually clear Divergent Universe once this week and have a save file.\n2. Enter the dungeon once on current device to have dungeon team saved." + }, "Daemon": { "name": "Dialogue Clicker", "help": "" @@ -1121,11 +1125,11 @@ "occurrence": "Prefer Occurrence" }, "UseImmersifier": { - "name": "Claim Planers Using Immersifiers", + "name": "Claim Planars Using Immersifiers", "help": "" }, "DoubleEvent": { - "name": "Participate in Double Planer Event", + "name": "Participate in Double Planar Event", "help": "" }, "WeeklyFarming": { @@ -1133,11 +1137,11 @@ "help": "" }, "UseStamina": { - "name": "Farm Planers Using Trailblase Power", - "help": "Task \"Dungeon\" will no longer run, and all trailblaze power will be used first to claim immersion rewards, except for double events." + "name": "Farm Planars Using Trailblaze Power", + "help": "Prioritize trailblaze power to farm planar ornaments, only taking priority over character planner" }, "SimulatedUniverseFarm": { - "name": "Progress of elite boss farmed", + "name": "Elites/bosses Farmed", "help": "" } }, @@ -1194,6 +1198,38 @@ "help": "No stop conditions, no error handling, stop when encountering an error. Please report errors according to the doc: https://github.com/LmeSzinc/StarRailCopilot/wiki/RogueMap_cn" } }, + "Ornament": { + "_info": { + "name": "Ornament Extraction Settings", + "help": "" + }, + "Dungeon": { + "name": "Dungeon Name", + "help": "", + "Divergent_Universe_Eternal_Comedy": "Running Wolves & Kalpagni Lantern (Eternal Comedy)", + "Divergent_Universe_To_Sweet_Dreams": "Sigonia & Izumo Gensei (To Sweet Dreams)", + "Divergent_Universe_Pouring_Blades": "Firmament & Penacony (Pouring Blades)", + "Divergent_Universe_Fruit_of_Evil": "Rutilant Arena & Broken Keel (Fruit of Evil)", + "Divergent_Universe_Permafrost": "Belobog & Salsotto (Permafrost)", + "Divergent_Universe_Gentle_Words": "Commercial Enterprise & Differentiator (Gentle Words)", + "Divergent_Universe_Smelted_Heart": "Banditry & Vonwacq (Smelted Heart)", + "Divergent_Universe_Untoppled_Walls": "Space Station & Ageless (Untoppled Walls)" + }, + "UseImmersifier": { + "name": "Claim Planars Using Immersifiers", + "help": "", + "True": "Enabled" + }, + "DoubleEvent": { + "name": "Participate in Double Planar Event", + "help": "", + "True": "Enabled" + }, + "UseStamina": { + "name": "Farm Planars Using Trailblaze Power", + "help": "Prioritize trailblaze power to farm planar ornaments, taking priority over character planner and simulated universe" + } + }, "Daemon": { "_info": { "name": "Dialogue Clicker", diff --git a/module/config/i18n/es-ES.json b/module/config/i18n/es-ES.json index faa680bbe..18e0cb0ec 100644 --- a/module/config/i18n/es-ES.json +++ b/module/config/i18n/es-ES.json @@ -58,6 +58,10 @@ "name": "Universo Simulado", "help": "" }, + "Ornament": { + "name": "Ornamentos", + "help": "Se deben cumplir los siguientes requisitos:\n1. Borre manualmente Universo Diferenciado una vez esta semana y tenga un archivo guardado.\n2. Ingrese a la mazmorra una vez en el dispositivo actual para guardar el equipo de la mazmorra." + }, "Daemon": { "name": "Clic de diálogo", "help": "" @@ -1121,11 +1125,11 @@ "occurrence": "Prefiero Evento" }, "UseImmersifier": { - "name": "Reclamar de planers mediante inmersor", + "name": "Reclamar de planars mediante inmersor", "help": "" }, "DoubleEvent": { - "name": "Participa en doble planer evento", + "name": "Participa en doble planar evento", "help": "" }, "WeeklyFarming": { @@ -1133,8 +1137,8 @@ "help": "" }, "UseStamina": { - "name": "Reclamar de planers mediante poder trazacaminos", - "help": "La tarea de mazmorra ya no se ejecutará y todo el poder trazacaminos se usará primero para reclamar recompensas de inmersión, excepto para eventos dobles" + "name": "Reclamar de planars mediante poder trazacaminos", + "help": "Prioriza el poder trazacaminos para cultivar planar ornaments, teniendo prioridad solo sobre el planificador de personajes." }, "SimulatedUniverseFarm": { "name": "Progreso de élites derrotadas", @@ -1194,6 +1198,38 @@ "help": "Sin condiciones de parada, sin manejo de errores, deténgase cuando encuentre un error. Informe el error de acuerdo con el documento: https://github.com/LmeSzinc/StarRailCopilot/wiki/RogueMap_cn" } }, + "Ornament": { + "_info": { + "name": "Ajustes de ornamentos extracción", + "help": "" + }, + "Dungeon": { + "name": "Nombre de la Mazmorra", + "help": "", + "Divergent_Universe_Eternal_Comedy": " (Comedia eterna)", + "Divergent_Universe_To_Sweet_Dreams": " (Hasta los dulces sueños)", + "Divergent_Universe_Pouring_Blades": " (Lluvia de espadas)", + "Divergent_Universe_Fruit_of_Evil": " (Fruta del desastre)", + "Divergent_Universe_Permafrost": " (Permafrost)", + "Divergent_Universe_Gentle_Words": " (Palabras amables)", + "Divergent_Universe_Smelted_Heart": " (Corazón de fundición)", + "Divergent_Universe_Untoppled_Walls": " (Muros inquebrantables)" + }, + "UseImmersifier": { + "name": "Reclamar de planars mediante inmersor", + "help": "", + "True": "Activado" + }, + "DoubleEvent": { + "name": "Participa en doble planar evento", + "help": "", + "True": "Activado" + }, + "UseStamina": { + "name": "Reclamar de planars mediante poder trazacaminos", + "help": "Prioriza el poder trazacaminos para cultivar planar ornamentos, teniendo prioridad sobre el planificador de personajes y el universo simulado." + } + }, "Daemon": { "_info": { "name": "Clic de diálogo", diff --git a/module/config/i18n/ja-JP.json b/module/config/i18n/ja-JP.json index c951429aa..52cd0cb66 100644 --- a/module/config/i18n/ja-JP.json +++ b/module/config/i18n/ja-JP.json @@ -58,6 +58,10 @@ "name": "Task.Rogue.name", "help": "Task.Rogue.help" }, + "Ornament": { + "name": "Task.Ornament.name", + "help": "Task.Ornament.help" + }, "Daemon": { "name": "Task.Daemon.name", "help": "Task.Daemon.help" @@ -1194,6 +1198,38 @@ "help": "RogueDebug.DebugMode.help" } }, + "Ornament": { + "_info": { + "name": "Ornament._info.name", + "help": "Ornament._info.help" + }, + "Dungeon": { + "name": "Ornament.Dungeon.name", + "help": "Ornament.Dungeon.help", + "Divergent_Universe_Eternal_Comedy": "(永遠の喜劇)", + "Divergent_Universe_To_Sweet_Dreams": "(寄り添い眠る)", + "Divergent_Universe_Pouring_Blades": "(剣の雨)", + "Divergent_Universe_Fruit_of_Evil": "(渦巻く罪)", + "Divergent_Universe_Permafrost": "(永久凍土)", + "Divergent_Universe_Gentle_Words": "(優しい言葉)", + "Divergent_Universe_Smelted_Heart": "(鋼の意志)", + "Divergent_Universe_Untoppled_Walls": "(不動の砦)" + }, + "UseImmersifier": { + "name": "Ornament.UseImmersifier.name", + "help": "Ornament.UseImmersifier.help", + "True": "True" + }, + "DoubleEvent": { + "name": "Ornament.DoubleEvent.name", + "help": "Ornament.DoubleEvent.help", + "True": "True" + }, + "UseStamina": { + "name": "Ornament.UseStamina.name", + "help": "Ornament.UseStamina.help" + } + }, "Daemon": { "_info": { "name": "Daemon._info.name", diff --git a/module/config/i18n/zh-CN.json b/module/config/i18n/zh-CN.json index 8a88b780c..7df14bdb3 100644 --- a/module/config/i18n/zh-CN.json +++ b/module/config/i18n/zh-CN.json @@ -58,6 +58,10 @@ "name": "模拟宇宙", "help": "" }, + "Ornament": { + "name": "饰品提取", + "help": "运行 \"饰品提取\" 任务需要:\n1. 每周事先手动通关差分宇宙一次并保存存档\n2. 在当前设备进入过副本一次,有保存的编队" + }, "Daemon": { "name": "剧情连点器", "help": "" @@ -1125,7 +1129,7 @@ "help": "" }, "DoubleEvent": { - "name": "参与双倍内圈仪器活动", + "name": "参与双倍内圈遗器活动", "help": "" }, "WeeklyFarming": { @@ -1134,7 +1138,7 @@ }, "UseStamina": { "name": "使用开拓力刷内圈遗器", - "help": "每日副本任务将不再打本,所有开拓力将优先被用于领取浸器奖励,双倍活动时除外" + "help": "优先将体力用于刷内圈遗器,仅优先于养成规划" }, "SimulatedUniverseFarm": { "name": "刷精英怪进度", @@ -1194,6 +1198,38 @@ "help": "无停止条件,无异常处理,遇错误即停止,请按文档上报异常:https://github.com/LmeSzinc/StarRailCopilot/wiki/RogueMap_cn" } }, + "Ornament": { + "_info": { + "name": "饰品提取设置", + "help": "" + }, + "Dungeon": { + "name": "副本名称", + "help": "", + "Divergent_Universe_Eternal_Comedy": "奔狼+火宫(永恒笑剧)", + "Divergent_Universe_To_Sweet_Dreams": "茨冈尼亚+出云神国(伴你入眠)", + "Divergent_Universe_Pouring_Blades": "苍穹+匹诺康尼(天剑如雨)", + "Divergent_Universe_Fruit_of_Evil": "繁星+龙骨(孽果盘生)", + "Divergent_Universe_Permafrost": "贝洛伯格+萨尔索图(百年冻土)", + "Divergent_Universe_Gentle_Words": "商业公司+差分(温柔话语)", + "Divergent_Universe_Smelted_Heart": "盗贼+翁瓦克(浴火钢心)", + "Divergent_Universe_Untoppled_Walls": "太空+仙舟(坚城不倒)" + }, + "UseImmersifier": { + "name": "使用沉浸器领取遗器", + "help": "", + "True": "已启用" + }, + "DoubleEvent": { + "name": "参与双倍内圈仪器活动", + "help": "", + "True": "已启用" + }, + "UseStamina": { + "name": "使用开拓力刷内圈遗器", + "help": "优先将体力用于刷内圈遗器,优先于模拟宇宙和养成规划" + } + }, "Daemon": { "_info": { "name": "剧情连点器", diff --git a/module/config/i18n/zh-TW.json b/module/config/i18n/zh-TW.json index 8e4a69861..5009af9ef 100644 --- a/module/config/i18n/zh-TW.json +++ b/module/config/i18n/zh-TW.json @@ -58,6 +58,10 @@ "name": "模擬宇宙", "help": "" }, + "Ornament": { + "name": "飾品提取", + "help": "運行 \"飾品提取\" 任務需要:\n1. 每週事先手動通關差分宇宙一次並保存檔案\n2. 在當前設備進入過副本一次,有保存的編隊" + }, "Daemon": { "name": "劇情連點器", "help": "" @@ -1125,7 +1129,7 @@ "help": "" }, "DoubleEvent": { - "name": "參與雙倍內圈儀器活動", + "name": "參與雙倍內圈遺器活動", "help": "" }, "WeeklyFarming": { @@ -1133,8 +1137,8 @@ "help": "" }, "UseStamina": { - "name": "用開拓力農遺器", - "help": "每日副本任務將不再打本,所有開拓力將優先被用於領取浸器獎勵,雙倍活動時除外" + "name": "用開拓力農內圈遺器", + "help": "優先將體力用於農內圈遺器,僅優先於養成規劃" }, "SimulatedUniverseFarm": { "name": "農精英怪進度", @@ -1194,6 +1198,38 @@ "help": "無停止條件,無異常處理,遇錯誤即停止,請依檔案回報異常:https://github.com/LmeSzinc/StarRailCopilot/wiki/RogueMap_cn" } }, + "Ornament": { + "_info": { + "name": "飾品提取設定", + "help": "" + }, + "Dungeon": { + "name": "副本名稱", + "help": "", + "Divergent_Universe_Eternal_Comedy": "奔狼+火宮(永恆笑劇)", + "Divergent_Universe_To_Sweet_Dreams": "茨岡尼亞+出雲神國(伴你入眠)", + "Divergent_Universe_Pouring_Blades": "天空+匹諾康尼(天劍如雨)", + "Divergent_Universe_Fruit_of_Evil": "繁星+龍骨(孽果盤生)", + "Divergent_Universe_Permafrost": "貝洛伯格+薩爾索圖(百年凍土)", + "Divergent_Universe_Gentle_Words": "商業公司+差分(溫柔話語)", + "Divergent_Universe_Smelted_Heart": "盜賊+翁瓦克(浴火鋼心)", + "Divergent_Universe_Untoppled_Walls": "太空+仙舟(堅城不倒)" + }, + "UseImmersifier": { + "name": "使用沉浸器領取遺器", + "help": "", + "True": "已啟用" + }, + "DoubleEvent": { + "name": "參與雙倍內圈儀器活動", + "help": "", + "True": "已啟用" + }, + "UseStamina": { + "name": "參與雙倍內圈遺器活動", + "help": "優先將體力用於農內圈遺器,優先於模擬宇宙和養成規劃" + } + }, "Daemon": { "_info": { "name": "劇情連點器",