From 29b0ebaf9447d3863336e4ffdb0b0791786633d2 Mon Sep 17 00:00:00 2001 From: LmeSzinc <37934724+LmeSzinc@users.noreply.github.com> Date: Wed, 15 Jan 2025 22:36:57 +0800 Subject: [PATCH 1/6] Upd: Keywords in 3.0 --- config/template.json | 1 + dev_tools/keyword_extract.py | 2 +- dev_tools/keywords/base.py | 20 +- dev_tools/keywords/dungeon_list.py | 1 + dev_tools/keywords/item.py | 17 +- dev_tools/keywords/map_plane.py | 108 +++- module/config/argument/args.json | 37 +- module/config/argument/stored.json | 11 + module/config/config_generated.py | 17 +- module/config/config_updater.py | 8 +- module/config/i18n/en-US.json | 37 +- module/config/i18n/es-ES.json | 61 +- module/config/i18n/ja-JP.json | 37 +- module/config/i18n/zh-CN.json | 39 +- module/config/i18n/zh-TW.json | 39 +- module/config/stored/stored_generated.py | 1 + tasks/assignment/keywords/entry.py | 18 + tasks/assignment/keywords/entry_detailed.py | 18 + tasks/assignment/keywords/event_entry.py | 2 +- tasks/assignment/keywords/group.py | 2 +- tasks/character/keywords/character_list.py | 153 +++-- tasks/character/keywords/height.py | 2 + tasks/dungeon/keywords/dungeon.py | 156 ++--- tasks/dungeon/keywords/dungeon_detailed.py | 20 +- tasks/map/keywords/plane.py | 55 ++ tasks/planner/keywords/item_ascension.py | 4 +- tasks/planner/keywords/item_calyx.py | 2 +- tasks/planner/keywords/item_currency.py | 2 +- tasks/planner/keywords/item_trace.py | 39 ++ tasks/planner/keywords/item_valuable.py | 26 +- tasks/rogue/keywords/bonus.py | 45 ++ tasks/rogue/keywords/curio.py | 602 +------------------- 32 files changed, 766 insertions(+), 816 deletions(-) diff --git a/config/template.json b/config/template.json index 97a367f15..72490a2fc 100644 --- a/config/template.json +++ b/config/template.json @@ -84,6 +84,7 @@ "Item_Heaven_Incinerator": {}, "Item_Heavenly_Melody": {}, "Item_Myriad_Fruit": {}, + "Item_Flower_of_Alaya": {}, "Item_Tracks_of_Destiny": {}, "Item_Destroyer_Final_Road": {}, "Item_Guardian_Lament": {}, diff --git a/dev_tools/keyword_extract.py b/dev_tools/keyword_extract.py index 449b37ed9..256ed241e 100644 --- a/dev_tools/keyword_extract.py +++ b/dev_tools/keyword_extract.py @@ -579,5 +579,5 @@ def generate(self): if __name__ == '__main__': - TextMap.DATA_FOLDER = '../DanhengServer-Resources' + TextMap.DATA_FOLDER = '../turnbasedgamedata' KeywordExtract().generate() diff --git a/dev_tools/keywords/base.py b/dev_tools/keywords/base.py index 6fcd397ac..d39fb9c1a 100644 --- a/dev_tools/keywords/base.py +++ b/dev_tools/keywords/base.py @@ -26,7 +26,12 @@ def data(self) -> dict[int, str]: if not os.path.exists(TextMap.DATA_FOLDER): logger.critical('`TextMap.DATA_FOLDER` does not exist, please set it to your path to StarRailData') exit(1) - file = os.path.join(TextMap.DATA_FOLDER, 'TextMap', f'TextMap{self.lang.upper()}.json') + + if self.lang == 'cn': + lang = 'chs' + else: + lang = self.lang + file = os.path.join(TextMap.DATA_FOLDER, 'TextMap', f'TextMap{lang.upper()}.json') data = {} for id_, text in read_file(file).items(): text = text.replace('\u00A0', '') @@ -69,7 +74,7 @@ def text_to_variable(text): # text = re.sub(r'[#_]?\d+(_times?)?', '', text) text = re.sub(r'', '', text) text = re.sub(r'^\d+', '', text) - text = text.replace('é', 'e') + text = replace_non_ascii(text) return text.strip('_') @@ -88,6 +93,13 @@ def replace_templates(text: str) -> str: return text +def replace_non_ascii(text: str) -> str: + text = text.replace('ī', 'i') + text = text.replace('é', 'e') + text = text.replace('Ā', 'A') + return text + + class GenerateKeyword: text_map: dict[str, TextMap] = {lang: TextMap(lang) for lang in UI_LANGUAGES} @@ -160,7 +172,9 @@ def convert_name(self, text: str, keyword: dict) -> str: return text_to_variable(replace_templates(text)) def convert_keyword(self, text: str, lang: str) -> str: - return replace_templates(text) + text = replace_templates(text) + text = replace_non_ascii(text) + return text def iter_rows(self) -> t.Iterable[dict]: for keyword in self.iter_keywords(): diff --git a/dev_tools/keywords/dungeon_list.py b/dev_tools/keywords/dungeon_list.py index 93403a078..6fd6ee04d 100644 --- a/dev_tools/keywords/dungeon_list.py +++ b/dev_tools/keywords/dungeon_list.py @@ -109,6 +109,7 @@ def iter_rows(self) -> t.Iterable[dict]: 'Calyx_Crimson_Erudition', 'Calyx_Crimson_Harmony', 'Calyx_Crimson_Nihility', + 'Calyx_Crimson_Remembrance', ] for keyword in order: condition = lambda x: x['name'].startswith(keyword) diff --git a/dev_tools/keywords/item.py b/dev_tools/keywords/item.py index b6e6068fb..a98dbeacf 100644 --- a/dev_tools/keywords/item.py +++ b/dev_tools/keywords/item.py @@ -114,6 +114,10 @@ class GenerateItemCalyx(GenerateItemBase): output_file = './tasks/planner/keywords/item_calyx.py' purpose_type = [7] + # Not available at 3.0 + # TODO: Delete this at next game patch + blacklist = [115001, 115002, 115003] + def iter_keywords(self) -> t.Iterable[dict]: items = list(super().iter_keywords()) @@ -136,10 +140,19 @@ class GenerateItemValuable(GenerateItemBase): purpose_type = [10] def iter_keywords(self) -> t.Iterable[dict]: + data = {} for row in super().iter_keywords(): - # 自塑尘脂 - if row['item_id'] not in [236]: + # 自塑尘脂, 遂愿尘脂, 变量骰子 + if row['item_id'] not in [236, 237, 238]: continue + data[row['item_id']] = row + + # 遂愿尘脂 first + try: + yield data.pop(237) + except KeyError: + pass + for row in data.values(): yield row diff --git a/dev_tools/keywords/map_plane.py b/dev_tools/keywords/map_plane.py index 598248fb3..e846b1f7c 100644 --- a/dev_tools/keywords/map_plane.py +++ b/dev_tools/keywords/map_plane.py @@ -1,6 +1,6 @@ import typing as t -from dev_tools.keywords.base import GenerateKeyword +from dev_tools.keywords.base import GenerateKeyword, TextMap from module.base.decorator import cached_property from module.config.utils import deep_get @@ -9,15 +9,61 @@ class GenerateMapPlane(GenerateKeyword): output_file = './tasks/map/keywords/plane.py' @cached_property - def data(self): + def AreaMapConfig(self): return self.read_file('./ExcelOutput/AreaMapConfig.json') - def iter_planes(self) -> t.Iterable[dict]: - for data in self.data: + @cached_property + def NavMapTab(self): + rows = self.read_file('./ExcelOutput/NavMapTab.json') + data = {} + for row in rows: + plane_id = int(deep_get(row, 'ID', 0)) + data[plane_id] = row + return data + + @cached_property + def MazePlane(self): + rows = self.read_file('./ExcelOutput/MazePlane.json') + data = {} + for row in rows: + floors = deep_get(row, 'FloorIDList', []) + if floors and len(floors) == 1: + plane_id = floors[0] + else: + plane_id = int(deep_get(row, 'StartFloorID', 0)) + data[plane_id] = row + return data + + def iter_planes_v20(self) -> t.Iterable[dict]: + dic_hardcoded_text = { + # 观景车厢 + 1000001: 1731188599, + # 客房车厢 + 1000002: 2134473126, + # 派对车厢 + 1000003: 1905536184, + # 金人巷 + 1020204: 1146019185, + } + for data in self.AreaMapConfig: plane_id = int(deep_get(data, 'ID', 0)) world_id = int(str(plane_id)[-5]) sort_id = int(deep_get(data, 'MenuSortID', 0)) text_id = deep_get(data, 'Name.Hash') + + if plane_id <= 1000000: + continue + + # Redirect to names in MapPlane + try: + p = plane_id // 10 * 100 + plane_id % 10 + maze_data = self.MazePlane[p] + text_id = deep_get(maze_data, ['PlaneName', 'Hash'], default=0) + # text = self.find_keyword(text_id, lang='cn')[1] + # print(world_id, maze_data, plane_id, text_id, text) + except KeyError: + # print(world_id, plane_id, text_id) + text_id = dic_hardcoded_text.get(plane_id, text_id) yield dict( text_id=text_id, world_id=world_id, @@ -25,13 +71,55 @@ def iter_planes(self) -> t.Iterable[dict]: sort_id=sort_id, ) + def iter_planes_v30(self) -> t.Iterable[dict]: + for data in self.MazePlane.values(): + plane_type = deep_get(data, ['PlaneType'], default='') + if plane_type not in ['Town', 'Maze', 'Train']: + continue + plane_id = deep_get(data, ['StartFloorID'], default=0) + text_id = deep_get(data, ['PlaneName', 'Hash'], default=0) + text = self.find_keyword(text_id, lang='cn')[1] + # {TEXTJOIN#87} + if 'TEXTJOIN#' in text: + continue + if plane_id <= 10000000: + continue + + world_id = deep_get(data, ['WorldID'], default=-1) + if world_id >= 100: + world_id = int(world_id // 100) - 1 + try: + sort_id = self.NavMapTab[plane_id]['SortID'] + except KeyError: + # print(world_id, plane_id, text_id, text) + continue + + # 20331001 -> 2033101 + plane_id = int(plane_id // 10 + plane_id % 10) + yield dict( + text_id=text_id, + world_id=world_id, + plane_id=plane_id, + sort_id=sort_id, + ) + + def iter_planes(self): + rows = {} + for data in self.iter_planes_v20(): + rows[data['plane_id']] = data + for data in self.iter_planes_v30(): + rows.setdefault(data['plane_id'], data) + for data in rows.values(): + yield data + def iter_keywords(self) -> t.Iterable[dict]: """ - 1010201 - ^^ floor + 20123001 + ^^^ floor ^^ plane ^ world """ + def to_id(name): return self.find_keyword(name, lang='cn')[0] @@ -80,3 +168,11 @@ def convert_name(self, text: str, keyword: dict) -> str: def convert_keyword(self, text: str, lang: str) -> str: text = text.replace('™', '') return super().convert_keyword(text, lang=lang) + + +if __name__ == '__main__': + import os + + os.chdir(os.path.join(os.path.dirname(__file__), '../../')) + TextMap.DATA_FOLDER = '../turnbasedgamedata' + self = GenerateMapPlane() diff --git a/module/config/argument/args.json b/module/config/argument/args.json index 5049c60ec..bba6beea5 100644 --- a/module/config/argument/args.json +++ b/module/config/argument/args.json @@ -453,6 +453,12 @@ "display": "display", "stored": "StoredPlanner" }, + "Item_Flower_of_Alaya": { + "type": "planner", + "value": {}, + "display": "display", + "stored": "StoredPlanner" + }, "Item_Tracks_of_Destiny": { "type": "planner", "value": {}, @@ -572,6 +578,7 @@ "Calyx_Crimson_Harmony_Penacony_TheReverieDreamscape", "Calyx_Crimson_Nihility_Jarilo_GreatMine", "Calyx_Crimson_Nihility_Luofu_AlchemyCommission", + "Calyx_Crimson_Remembrance_Special_StrifeRuinsCastrumKremnos", "Stagnant_Shadow_Spike", "Stagnant_Shadow_Perdition", "Stagnant_Shadow_Duty", @@ -593,6 +600,7 @@ "Stagnant_Shadow_Mirage", "Stagnant_Shadow_Puppetry", "Stagnant_Shadow_Timbre", + "Cavern_of_Corrosion_Path_of_Aria", "Cavern_of_Corrosion_Path_of_Uncertainty", "Cavern_of_Corrosion_Path_of_Cavalier", "Cavern_of_Corrosion_Path_of_Dreamdive", @@ -632,13 +640,15 @@ "Calyx_Crimson_Harmony_Jarilo_RobotSettlement", "Calyx_Crimson_Harmony_Penacony_TheReverieDreamscape", "Calyx_Crimson_Nihility_Jarilo_GreatMine", - "Calyx_Crimson_Nihility_Luofu_AlchemyCommission" + "Calyx_Crimson_Nihility_Luofu_AlchemyCommission", + "Calyx_Crimson_Remembrance_Special_StrifeRuinsCastrumKremnos" ] }, "NameAtDoubleRelic": { "type": "select", "value": "Cavern_of_Corrosion_Path_of_Providence", "option": [ + "Cavern_of_Corrosion_Path_of_Aria", "Cavern_of_Corrosion_Path_of_Uncertainty", "Cavern_of_Corrosion_Path_of_Cavalier", "Cavern_of_Corrosion_Path_of_Dreamdive", @@ -683,6 +693,7 @@ "option": [ "FirstCharacter", "Acheron", + "Aglaea", "Argenti", "Arlan", "Asta", @@ -734,11 +745,13 @@ "Sparkle", "Sunday", "Sushang", + "TheHerta", "Tingyun", "TopazNumby", "TrailblazerDestruction", "TrailblazerHarmony", "TrailblazerPreservation", + "TrailblazerRemembrance", "Welt", "Xueyi", "Yanqing", @@ -886,6 +899,7 @@ "option": [ "FirstCharacter", "Acheron", + "Aglaea", "Argenti", "Arlan", "Asta", @@ -937,11 +951,13 @@ "Sparkle", "Sunday", "Sushang", + "TheHerta", "Tingyun", "TopazNumby", "TrailblazerDestruction", "TrailblazerHarmony", "TrailblazerPreservation", + "TrailblazerRemembrance", "Welt", "Xueyi", "Yanqing", @@ -1154,7 +1170,9 @@ "Spring_of_Life", "Fragments_of_Illusory_Dreams", "The_Blossom_in_the_Storm", - "Abandoned_and_Insulted" + "Abandoned_and_Insulted", + "Record_of_Expeditions", + "Work_and_Days" ] }, "Name_2": { @@ -1179,7 +1197,9 @@ "Spring_of_Life", "Fragments_of_Illusory_Dreams", "The_Blossom_in_the_Storm", - "Abandoned_and_Insulted" + "Abandoned_and_Insulted", + "Record_of_Expeditions", + "Work_and_Days" ] }, "Name_3": { @@ -1204,7 +1224,9 @@ "Spring_of_Life", "Fragments_of_Illusory_Dreams", "The_Blossom_in_the_Storm", - "Abandoned_and_Insulted" + "Abandoned_and_Insulted", + "Record_of_Expeditions", + "Work_and_Days" ] }, "Name_4": { @@ -1229,7 +1251,9 @@ "Spring_of_Life", "Fragments_of_Illusory_Dreams", "The_Blossom_in_the_Storm", - "Abandoned_and_Insulted" + "Abandoned_and_Insulted", + "Record_of_Expeditions", + "Work_and_Days" ] }, "Duration": { @@ -1427,6 +1451,7 @@ "option": [ "FirstCharacter", "Acheron", + "Aglaea", "Argenti", "Arlan", "Asta", @@ -1478,11 +1503,13 @@ "Sparkle", "Sunday", "Sushang", + "TheHerta", "Tingyun", "TopazNumby", "TrailblazerDestruction", "TrailblazerHarmony", "TrailblazerPreservation", + "TrailblazerRemembrance", "Welt", "Xueyi", "Yanqing", diff --git a/module/config/argument/stored.json b/module/config/argument/stored.json index 5deedba68..5d4fe94f4 100644 --- a/module/config/argument/stored.json +++ b/module/config/argument/stored.json @@ -541,6 +541,17 @@ "order": 0, "color": "#777777" }, + "Item_Flower_of_Alaya": { + "name": "Item_Flower_of_Alaya", + "path": "Dungeon.Planner.Item_Flower_of_Alaya", + "i18n": "Planner.Item_Flower_of_Alaya.name", + "stored": "StoredPlanner", + "attrs": { + "time": "2020-01-01 00:00:00" + }, + "order": 0, + "color": "#777777" + }, "Item_Tracks_of_Destiny": { "name": "Item_Tracks_of_Destiny", "path": "Dungeon.Planner.Item_Tracks_of_Destiny", diff --git a/module/config/config_generated.py b/module/config/config_generated.py index c541e5a65..f6e3bb636 100644 --- a/module/config/config_generated.py +++ b/module/config/config_generated.py @@ -42,9 +42,9 @@ class GeneratedConfig: Optimization_WhenTaskQueueEmpty = 'goto_main' # stay_there, goto_main, close_game # Group `Dungeon` - Dungeon_Name = 'Calyx_Golden_Treasures_Jarilo_VI' # Calyx_Golden_Memories_Penacony, Calyx_Golden_Memories_The_Xianzhou_Luofu, Calyx_Golden_Memories_Jarilo_VI, Calyx_Golden_Aether_Penacony, Calyx_Golden_Aether_The_Xianzhou_Luofu, Calyx_Golden_Aether_Jarilo_VI, Calyx_Golden_Treasures_Penacony, Calyx_Golden_Treasures_The_Xianzhou_Luofu, Calyx_Golden_Treasures_Jarilo_VI, Calyx_Crimson_Destruction_Herta_StorageZone, Calyx_Crimson_Destruction_Luofu_ScalegorgeWaterscape, Calyx_Crimson_Preservation_Herta_SupplyZone, Calyx_Crimson_Preservation_Penacony_ClockStudiosThemePark, Calyx_Crimson_The_Hunt_Jarilo_OutlyingSnowPlains, Calyx_Crimson_The_Hunt_Penacony_SoulGladScorchsandAuditionVenue, Calyx_Crimson_Abundance_Jarilo_BackwaterPass, Calyx_Crimson_Abundance_Luofu_FyxestrollGarden, Calyx_Crimson_Erudition_Jarilo_RivetTown, Calyx_Crimson_Erudition_Penacony_PenaconyGrandTheater, Calyx_Crimson_Harmony_Jarilo_RobotSettlement, Calyx_Crimson_Harmony_Penacony_TheReverieDreamscape, Calyx_Crimson_Nihility_Jarilo_GreatMine, Calyx_Crimson_Nihility_Luofu_AlchemyCommission, Stagnant_Shadow_Spike, Stagnant_Shadow_Perdition, Stagnant_Shadow_Duty, Stagnant_Shadow_Blaze, Stagnant_Shadow_Scorch, Stagnant_Shadow_Ire, Stagnant_Shadow_Rime, Stagnant_Shadow_Icicle, Stagnant_Shadow_Nectar, Stagnant_Shadow_Fulmination, Stagnant_Shadow_Doom, Stagnant_Shadow_Mechwolf, Stagnant_Shadow_Gust, Stagnant_Shadow_Celestial, Stagnant_Shadow_Gloam, Stagnant_Shadow_Quanta, Stagnant_Shadow_Abomination, Stagnant_Shadow_Roast, Stagnant_Shadow_Mirage, Stagnant_Shadow_Puppetry, Stagnant_Shadow_Timbre, Cavern_of_Corrosion_Path_of_Uncertainty, Cavern_of_Corrosion_Path_of_Cavalier, Cavern_of_Corrosion_Path_of_Dreamdive, Cavern_of_Corrosion_Path_of_Darkness, Cavern_of_Corrosion_Path_of_Elixir_Seekers, Cavern_of_Corrosion_Path_of_Conflagration, Cavern_of_Corrosion_Path_of_Holy_Hymn, Cavern_of_Corrosion_Path_of_Providence, Cavern_of_Corrosion_Path_of_Drifting, Cavern_of_Corrosion_Path_of_Jabbing_Punch, Cavern_of_Corrosion_Path_of_Gelid_Wind - Dungeon_NameAtDoubleCalyx = 'Calyx_Golden_Treasures_Jarilo_VI' # Calyx_Golden_Memories_Penacony, Calyx_Golden_Memories_The_Xianzhou_Luofu, Calyx_Golden_Memories_Jarilo_VI, Calyx_Golden_Aether_Penacony, Calyx_Golden_Aether_The_Xianzhou_Luofu, Calyx_Golden_Aether_Jarilo_VI, Calyx_Golden_Treasures_Penacony, Calyx_Golden_Treasures_The_Xianzhou_Luofu, Calyx_Golden_Treasures_Jarilo_VI, Calyx_Crimson_Destruction_Herta_StorageZone, Calyx_Crimson_Destruction_Luofu_ScalegorgeWaterscape, Calyx_Crimson_Preservation_Herta_SupplyZone, Calyx_Crimson_Preservation_Penacony_ClockStudiosThemePark, Calyx_Crimson_The_Hunt_Jarilo_OutlyingSnowPlains, Calyx_Crimson_The_Hunt_Penacony_SoulGladScorchsandAuditionVenue, Calyx_Crimson_Abundance_Jarilo_BackwaterPass, Calyx_Crimson_Abundance_Luofu_FyxestrollGarden, Calyx_Crimson_Erudition_Jarilo_RivetTown, Calyx_Crimson_Erudition_Penacony_PenaconyGrandTheater, Calyx_Crimson_Harmony_Jarilo_RobotSettlement, Calyx_Crimson_Harmony_Penacony_TheReverieDreamscape, Calyx_Crimson_Nihility_Jarilo_GreatMine, Calyx_Crimson_Nihility_Luofu_AlchemyCommission - Dungeon_NameAtDoubleRelic = 'Cavern_of_Corrosion_Path_of_Providence' # Cavern_of_Corrosion_Path_of_Uncertainty, Cavern_of_Corrosion_Path_of_Cavalier, Cavern_of_Corrosion_Path_of_Dreamdive, Cavern_of_Corrosion_Path_of_Darkness, Cavern_of_Corrosion_Path_of_Elixir_Seekers, Cavern_of_Corrosion_Path_of_Conflagration, Cavern_of_Corrosion_Path_of_Holy_Hymn, Cavern_of_Corrosion_Path_of_Providence, Cavern_of_Corrosion_Path_of_Drifting, Cavern_of_Corrosion_Path_of_Jabbing_Punch, Cavern_of_Corrosion_Path_of_Gelid_Wind + Dungeon_Name = 'Calyx_Golden_Treasures_Jarilo_VI' # Calyx_Golden_Memories_Penacony, Calyx_Golden_Memories_The_Xianzhou_Luofu, Calyx_Golden_Memories_Jarilo_VI, Calyx_Golden_Aether_Penacony, Calyx_Golden_Aether_The_Xianzhou_Luofu, Calyx_Golden_Aether_Jarilo_VI, Calyx_Golden_Treasures_Penacony, Calyx_Golden_Treasures_The_Xianzhou_Luofu, Calyx_Golden_Treasures_Jarilo_VI, Calyx_Crimson_Destruction_Herta_StorageZone, Calyx_Crimson_Destruction_Luofu_ScalegorgeWaterscape, Calyx_Crimson_Preservation_Herta_SupplyZone, Calyx_Crimson_Preservation_Penacony_ClockStudiosThemePark, Calyx_Crimson_The_Hunt_Jarilo_OutlyingSnowPlains, Calyx_Crimson_The_Hunt_Penacony_SoulGladScorchsandAuditionVenue, Calyx_Crimson_Abundance_Jarilo_BackwaterPass, Calyx_Crimson_Abundance_Luofu_FyxestrollGarden, Calyx_Crimson_Erudition_Jarilo_RivetTown, Calyx_Crimson_Erudition_Penacony_PenaconyGrandTheater, Calyx_Crimson_Harmony_Jarilo_RobotSettlement, Calyx_Crimson_Harmony_Penacony_TheReverieDreamscape, Calyx_Crimson_Nihility_Jarilo_GreatMine, Calyx_Crimson_Nihility_Luofu_AlchemyCommission, Calyx_Crimson_Remembrance_Special_StrifeRuinsCastrumKremnos, Stagnant_Shadow_Spike, Stagnant_Shadow_Perdition, Stagnant_Shadow_Duty, Stagnant_Shadow_Blaze, Stagnant_Shadow_Scorch, Stagnant_Shadow_Ire, Stagnant_Shadow_Rime, Stagnant_Shadow_Icicle, Stagnant_Shadow_Nectar, Stagnant_Shadow_Fulmination, Stagnant_Shadow_Doom, Stagnant_Shadow_Mechwolf, Stagnant_Shadow_Gust, Stagnant_Shadow_Celestial, Stagnant_Shadow_Gloam, Stagnant_Shadow_Quanta, Stagnant_Shadow_Abomination, Stagnant_Shadow_Roast, Stagnant_Shadow_Mirage, Stagnant_Shadow_Puppetry, Stagnant_Shadow_Timbre, Cavern_of_Corrosion_Path_of_Aria, Cavern_of_Corrosion_Path_of_Uncertainty, Cavern_of_Corrosion_Path_of_Cavalier, Cavern_of_Corrosion_Path_of_Dreamdive, Cavern_of_Corrosion_Path_of_Darkness, Cavern_of_Corrosion_Path_of_Elixir_Seekers, Cavern_of_Corrosion_Path_of_Conflagration, Cavern_of_Corrosion_Path_of_Holy_Hymn, Cavern_of_Corrosion_Path_of_Providence, Cavern_of_Corrosion_Path_of_Drifting, Cavern_of_Corrosion_Path_of_Jabbing_Punch, Cavern_of_Corrosion_Path_of_Gelid_Wind + Dungeon_NameAtDoubleCalyx = 'Calyx_Golden_Treasures_Jarilo_VI' # Calyx_Golden_Memories_Penacony, Calyx_Golden_Memories_The_Xianzhou_Luofu, Calyx_Golden_Memories_Jarilo_VI, Calyx_Golden_Aether_Penacony, Calyx_Golden_Aether_The_Xianzhou_Luofu, Calyx_Golden_Aether_Jarilo_VI, Calyx_Golden_Treasures_Penacony, Calyx_Golden_Treasures_The_Xianzhou_Luofu, Calyx_Golden_Treasures_Jarilo_VI, Calyx_Crimson_Destruction_Herta_StorageZone, Calyx_Crimson_Destruction_Luofu_ScalegorgeWaterscape, Calyx_Crimson_Preservation_Herta_SupplyZone, Calyx_Crimson_Preservation_Penacony_ClockStudiosThemePark, Calyx_Crimson_The_Hunt_Jarilo_OutlyingSnowPlains, Calyx_Crimson_The_Hunt_Penacony_SoulGladScorchsandAuditionVenue, Calyx_Crimson_Abundance_Jarilo_BackwaterPass, Calyx_Crimson_Abundance_Luofu_FyxestrollGarden, Calyx_Crimson_Erudition_Jarilo_RivetTown, Calyx_Crimson_Erudition_Penacony_PenaconyGrandTheater, Calyx_Crimson_Harmony_Jarilo_RobotSettlement, Calyx_Crimson_Harmony_Penacony_TheReverieDreamscape, Calyx_Crimson_Nihility_Jarilo_GreatMine, Calyx_Crimson_Nihility_Luofu_AlchemyCommission, Calyx_Crimson_Remembrance_Special_StrifeRuinsCastrumKremnos + Dungeon_NameAtDoubleRelic = 'Cavern_of_Corrosion_Path_of_Providence' # Cavern_of_Corrosion_Path_of_Aria, Cavern_of_Corrosion_Path_of_Uncertainty, Cavern_of_Corrosion_Path_of_Cavalier, Cavern_of_Corrosion_Path_of_Dreamdive, Cavern_of_Corrosion_Path_of_Darkness, Cavern_of_Corrosion_Path_of_Elixir_Seekers, Cavern_of_Corrosion_Path_of_Conflagration, Cavern_of_Corrosion_Path_of_Holy_Hymn, Cavern_of_Corrosion_Path_of_Providence, Cavern_of_Corrosion_Path_of_Drifting, Cavern_of_Corrosion_Path_of_Jabbing_Punch, Cavern_of_Corrosion_Path_of_Gelid_Wind Dungeon_Team = 1 # 1, 2, 3, 4, 5, 6, 7, 8, 9 # Group `TrailblazePower` @@ -54,7 +54,7 @@ class GeneratedConfig: # Group `DungeonSupport` DungeonSupport_Use = 'when_daily' # always_use, when_daily, do_not_use - DungeonSupport_Character = 'FirstCharacter' # FirstCharacter, Acheron, Argenti, Arlan, Asta, Aventurine, Bailu, BlackSwan, Blade, Boothill, Bronya, Clara, DanHeng, DanHengImbibitorLunae, DrRatio, Feixiao, Firefly, FuXuan, Fugue, Gallagher, Gepard, Guinaifen, Hanya, Herta, Himeko, Hook, Huohuo, Jade, Jiaoqiu, JingYuan, Jingliu, Kafka, Lingsha, Luka, Luocha, Lynx, March7thPreservation, March7thTheHunt, Misha, Moze, Natasha, Pela, Qingque, Rappa, Robin, RuanMei, Sampo, Seele, Serval, SilverWolf, Sparkle, Sunday, Sushang, Tingyun, TopazNumby, TrailblazerDestruction, TrailblazerHarmony, TrailblazerPreservation, Welt, Xueyi, Yanqing, Yukong, Yunli + DungeonSupport_Character = 'FirstCharacter' # FirstCharacter, Acheron, Aglaea, Argenti, Arlan, Asta, Aventurine, Bailu, BlackSwan, Blade, Boothill, Bronya, Clara, DanHeng, DanHengImbibitorLunae, DrRatio, Feixiao, Firefly, FuXuan, Fugue, Gallagher, Gepard, Guinaifen, Hanya, Herta, Himeko, Hook, Huohuo, Jade, Jiaoqiu, JingYuan, Jingliu, Kafka, Lingsha, Luka, Luocha, Lynx, March7thPreservation, March7thTheHunt, Misha, Moze, Natasha, Pela, Qingque, Rappa, Robin, RuanMei, Sampo, Seele, Serval, SilverWolf, Sparkle, Sunday, Sushang, TheHerta, Tingyun, TopazNumby, TrailblazerDestruction, TrailblazerHarmony, TrailblazerPreservation, TrailblazerRemembrance, Welt, Xueyi, Yanqing, Yukong, Yunli # Group `DungeonStorage` DungeonStorage_TrailblazePower = {} @@ -109,6 +109,7 @@ class GeneratedConfig: Planner_Item_Heaven_Incinerator = {} Planner_Item_Heavenly_Melody = {} Planner_Item_Myriad_Fruit = {} + Planner_Item_Flower_of_Alaya = {} Planner_Item_Tracks_of_Destiny = {} Planner_Item_Destroyer_Final_Road = {} Planner_Item_Guardian_Lament = {} @@ -146,10 +147,10 @@ class GeneratedConfig: BattlePassStorage_BattlePassQuestTrailblazePower = {} # Group `Assignment` - Assignment_Name_1 = 'Nameless_Land_Nameless_People' # Tranquility_of_Vimala_bhumi, A_Startling_Night_Terror, Fire_Lord_Inflames_Blades_of_War, Root_Out_the_Turpitude, Born_to_Obey, Winter_Soldiers, Destruction_of_the_Destroyer, Nine_Billion_Names, Akashic_Records, Nameless_Land_Nameless_People, The_Invisible_Hand, Scalpel_and_Screwdriver, The_Wages_of_Humanity, Legend_of_the_Puppet_Master, The_Land_of_Gold, Spring_of_Life, Fragments_of_Illusory_Dreams, The_Blossom_in_the_Storm, Abandoned_and_Insulted - Assignment_Name_2 = 'Akashic_Records' # Tranquility_of_Vimala_bhumi, A_Startling_Night_Terror, Fire_Lord_Inflames_Blades_of_War, Root_Out_the_Turpitude, Born_to_Obey, Winter_Soldiers, Destruction_of_the_Destroyer, Nine_Billion_Names, Akashic_Records, Nameless_Land_Nameless_People, The_Invisible_Hand, Scalpel_and_Screwdriver, The_Wages_of_Humanity, Legend_of_the_Puppet_Master, The_Land_of_Gold, Spring_of_Life, Fragments_of_Illusory_Dreams, The_Blossom_in_the_Storm, Abandoned_and_Insulted - Assignment_Name_3 = 'The_Invisible_Hand' # Tranquility_of_Vimala_bhumi, A_Startling_Night_Terror, Fire_Lord_Inflames_Blades_of_War, Root_Out_the_Turpitude, Born_to_Obey, Winter_Soldiers, Destruction_of_the_Destroyer, Nine_Billion_Names, Akashic_Records, Nameless_Land_Nameless_People, The_Invisible_Hand, Scalpel_and_Screwdriver, The_Wages_of_Humanity, Legend_of_the_Puppet_Master, The_Land_of_Gold, Spring_of_Life, Fragments_of_Illusory_Dreams, The_Blossom_in_the_Storm, Abandoned_and_Insulted - Assignment_Name_4 = 'Nine_Billion_Names' # Tranquility_of_Vimala_bhumi, A_Startling_Night_Terror, Fire_Lord_Inflames_Blades_of_War, Root_Out_the_Turpitude, Born_to_Obey, Winter_Soldiers, Destruction_of_the_Destroyer, Nine_Billion_Names, Akashic_Records, Nameless_Land_Nameless_People, The_Invisible_Hand, Scalpel_and_Screwdriver, The_Wages_of_Humanity, Legend_of_the_Puppet_Master, The_Land_of_Gold, Spring_of_Life, Fragments_of_Illusory_Dreams, The_Blossom_in_the_Storm, Abandoned_and_Insulted + Assignment_Name_1 = 'Nameless_Land_Nameless_People' # Tranquility_of_Vimala_bhumi, A_Startling_Night_Terror, Fire_Lord_Inflames_Blades_of_War, Root_Out_the_Turpitude, Born_to_Obey, Winter_Soldiers, Destruction_of_the_Destroyer, Nine_Billion_Names, Akashic_Records, Nameless_Land_Nameless_People, The_Invisible_Hand, Scalpel_and_Screwdriver, The_Wages_of_Humanity, Legend_of_the_Puppet_Master, The_Land_of_Gold, Spring_of_Life, Fragments_of_Illusory_Dreams, The_Blossom_in_the_Storm, Abandoned_and_Insulted, Record_of_Expeditions, Work_and_Days + Assignment_Name_2 = 'Akashic_Records' # Tranquility_of_Vimala_bhumi, A_Startling_Night_Terror, Fire_Lord_Inflames_Blades_of_War, Root_Out_the_Turpitude, Born_to_Obey, Winter_Soldiers, Destruction_of_the_Destroyer, Nine_Billion_Names, Akashic_Records, Nameless_Land_Nameless_People, The_Invisible_Hand, Scalpel_and_Screwdriver, The_Wages_of_Humanity, Legend_of_the_Puppet_Master, The_Land_of_Gold, Spring_of_Life, Fragments_of_Illusory_Dreams, The_Blossom_in_the_Storm, Abandoned_and_Insulted, Record_of_Expeditions, Work_and_Days + Assignment_Name_3 = 'The_Invisible_Hand' # Tranquility_of_Vimala_bhumi, A_Startling_Night_Terror, Fire_Lord_Inflames_Blades_of_War, Root_Out_the_Turpitude, Born_to_Obey, Winter_Soldiers, Destruction_of_the_Destroyer, Nine_Billion_Names, Akashic_Records, Nameless_Land_Nameless_People, The_Invisible_Hand, Scalpel_and_Screwdriver, The_Wages_of_Humanity, Legend_of_the_Puppet_Master, The_Land_of_Gold, Spring_of_Life, Fragments_of_Illusory_Dreams, The_Blossom_in_the_Storm, Abandoned_and_Insulted, Record_of_Expeditions, Work_and_Days + Assignment_Name_4 = 'Nine_Billion_Names' # Tranquility_of_Vimala_bhumi, A_Startling_Night_Terror, Fire_Lord_Inflames_Blades_of_War, Root_Out_the_Turpitude, Born_to_Obey, Winter_Soldiers, Destruction_of_the_Destroyer, Nine_Billion_Names, Akashic_Records, Nameless_Land_Nameless_People, The_Invisible_Hand, Scalpel_and_Screwdriver, The_Wages_of_Humanity, Legend_of_the_Puppet_Master, The_Land_of_Gold, Spring_of_Life, Fragments_of_Illusory_Dreams, The_Blossom_in_the_Storm, Abandoned_and_Insulted, Record_of_Expeditions, Work_and_Days Assignment_Duration = 20 # 4, 8, 12, 20 Assignment_Event = True Assignment_Assignment = {} diff --git a/module/config/config_updater.py b/module/config/config_updater.py index 4e259398e..8bde871d1 100644 --- a/module/config/config_updater.py +++ b/module/config/config_updater.py @@ -72,7 +72,7 @@ def option_add(keys, options): # calyx_crimson from tasks.rogue.keywords import KEYWORDS_ROGUE_PATH as Path order = [Path.Destruction, Path.Preservation, Path.The_Hunt, Path.Abundance, - Path.Erudition, Path.Harmony, Path.Nihility] + Path.Erudition, Path.Harmony, Path.Nihility, Path.Remembrance] calyx_crimson = [] for path in order: calyx_crimson += [dungeon.name for dungeon in DungeonList.instances.values() @@ -112,6 +112,8 @@ def option_add(keys, options): # Insert planner items from tasks.planner.keywords.classes import ItemBase for item in ItemBase.instances.values(): + if item.is_ItemValuable: + continue base = item.group_base deep_set(raw, keys=['Planner', f'Item_{base.name}'], value={ 'stored': 'StoredPlanner', @@ -424,7 +426,7 @@ def deep_load(keys, default=True, words=('name', 'help')): value=i18n_treasure[ingame_lang].format(dungeon=dungeon_name, world=world_name)) if dungeon.is_Calyx_Crimson: plane = dungeon.plane.__getattribute__(ingame_lang) - plane = re.sub('[「」]', '', plane) + 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)) @@ -498,6 +500,8 @@ def update_dungeon_names(keys): for item in ItemBase.instances.values(): item: ItemBase = item name = f'Item_{item.name}' + if item.is_ItemValuable: + continue if item.is_ItemCurrency or item.name == 'Tracks_of_Destiny': i18n = item.__getattribute__(ingame_lang) elif item.is_ItemExp and item.is_group_base: diff --git a/module/config/i18n/en-US.json b/module/config/i18n/en-US.json index 5fc7a5c86..6955979f8 100644 --- a/module/config/i18n/en-US.json +++ b/module/config/i18n/en-US.json @@ -266,6 +266,7 @@ "Calyx_Crimson_Harmony_Penacony_TheReverieDreamscape": "Trace: Harmony (The Reverie (Dreamscape))", "Calyx_Crimson_Nihility_Jarilo_GreatMine": "Trace: Nihility (Great Mine)", "Calyx_Crimson_Nihility_Luofu_AlchemyCommission": "Trace: Nihility (Alchemy Commission)", + "Calyx_Crimson_Remembrance_Special_StrifeRuinsCastrumKremnos": "Trace: Remembrance (Strife Ruins Castrum Kremnos)", "Stagnant_Shadow_Spike": "Ascension: Physical (Natasha / Clara / Luka / Sushang)", "Stagnant_Shadow_Perdition": "Ascension: Physical (Hanya / Argenti)", "Stagnant_Shadow_Duty": "Ascension: Physical (Boothill / Robin / Yunli)", @@ -274,10 +275,10 @@ "Stagnant_Shadow_Ire": "Ascension: Fire (Firefly / Gallagher / Jiaoqiu / Lingsha)", "Stagnant_Shadow_Rime": "Ascension: Ice (March 7th / Herta / Gepard / Pela)", "Stagnant_Shadow_Icicle": "Ascension: Ice (Yanqing / Jingliu / Ruan Mei)", - "Stagnant_Shadow_Nectar": "Ascension: Ice (Misha)", + "Stagnant_Shadow_Nectar": "Ascension: Ice (Misha / The Herta)", "Stagnant_Shadow_Fulmination": "Ascension: Lightning (Arlan / Serval / Tingyun / Bailu)", "Stagnant_Shadow_Doom": "Ascension: Lightning (Kafka / Jing Yuan / Acheron)", - "Stagnant_Shadow_Mechwolf": "Ascension: Lightning (Moze)", + "Stagnant_Shadow_Mechwolf": "Ascension: Lightning (Moze / Aglaea)", "Stagnant_Shadow_Gust": "Ascension: Wind (Dan Heng / Bronya / Sampo)", "Stagnant_Shadow_Celestial": "Ascension: Wind (Blade / Huohuo / Black Swan)", "Stagnant_Shadow_Gloam": "Ascension: Wind (Feixiao)", @@ -287,6 +288,7 @@ "Stagnant_Shadow_Mirage": "Ascension: Imaginary (Welt / Luocha / Yukong)", "Stagnant_Shadow_Puppetry": "Ascension: Imaginary (Dan Heng • Imbibitor Lunae / Aventurine / Dr. Ratio)", "Stagnant_Shadow_Timbre": "Ascension: Imaginary (Sunday / Rappa)", + "Cavern_of_Corrosion_Path_of_Aria": "Cavern_of_Corrosion_Path_of_Aria (Path of Aria)", "Cavern_of_Corrosion_Path_of_Uncertainty": "Cavern_of_Corrosion_Path_of_Uncertainty (Path of Uncertainty)", "Cavern_of_Corrosion_Path_of_Cavalier": "Relics: Super Break Set & Pursuit Ultimate Set (Path of Cavalier)", "Cavern_of_Corrosion_Path_of_Dreamdive": "Relics: Debuff Set & Break Effect Set (Path of Dreamdive)", @@ -324,11 +326,13 @@ "Calyx_Crimson_Harmony_Jarilo_RobotSettlement": "Trace: Harmony (Robot Settlement)", "Calyx_Crimson_Harmony_Penacony_TheReverieDreamscape": "Trace: Harmony (The Reverie (Dreamscape))", "Calyx_Crimson_Nihility_Jarilo_GreatMine": "Trace: Nihility (Great Mine)", - "Calyx_Crimson_Nihility_Luofu_AlchemyCommission": "Trace: Nihility (Alchemy Commission)" + "Calyx_Crimson_Nihility_Luofu_AlchemyCommission": "Trace: Nihility (Alchemy Commission)", + "Calyx_Crimson_Remembrance_Special_StrifeRuinsCastrumKremnos": "Trace: Remembrance (Strife Ruins Castrum Kremnos)" }, "NameAtDoubleRelic": { "name": "At Double Relic Event, choose dungeon", "help": "Return to the default dungeon settings after double times exhausted", + "Cavern_of_Corrosion_Path_of_Aria": "Cavern_of_Corrosion_Path_of_Aria (Path of Aria)", "Cavern_of_Corrosion_Path_of_Uncertainty": "Cavern_of_Corrosion_Path_of_Uncertainty (Path of Uncertainty)", "Cavern_of_Corrosion_Path_of_Cavalier": "Relics: Super Break Set & Pursuit Ultimate Set (Path of Cavalier)", "Cavern_of_Corrosion_Path_of_Dreamdive": "Relics: Debuff Set & Break Effect Set (Path of Dreamdive)", @@ -390,6 +394,7 @@ "help": "Select a friend support character, if not found, select the default (first) role\nSupport character should not be the same as the character in the team, recommended to prioritize friends.", "FirstCharacter": "First Character", "Acheron": "Acheron", + "Aglaea": "Aglaea", "Argenti": "Argenti", "Arlan": "Arlan", "Asta": "Asta", @@ -441,11 +446,13 @@ "Sparkle": "Sparkle", "Sunday": "Sunday", "Sushang": "Sushang", + "TheHerta": "The Herta", "Tingyun": "Tingyun", "TopazNumby": "Topaz & Numby", "TrailblazerDestruction": "Trailblazer Destruction", "TrailblazerHarmony": "Trailblazer Harmony", "TrailblazerPreservation": "Trailblazer Preservation", + "TrailblazerRemembrance": "TrailblazerRemembrance", "Welt": "Welt", "Xueyi": "Xueyi", "Yanqing": "Yanqing", @@ -587,11 +594,11 @@ "help": "" }, "Item_Dream_Fridge": { - "name": "Ascension: Ice (Misha)", + "name": "Ascension: Ice (Misha / The Herta)", "help": "" }, "Item_Nail_of_the_Beast_Coffin": { - "name": "Ascension: Lightning (Moze)", + "name": "Ascension: Lightning (Moze / Aglaea)", "help": "" }, "Item_A_Glass_of_the_Besotted_Era": { @@ -662,6 +669,10 @@ "name": "Trace: Abundance (Fyxestroll Garden)", "help": "" }, + "Item_Flower_of_Alaya": { + "name": "Trace: Remembrance (Strife Ruins Castrum Kremnos)", + "help": "" + }, "Item_Tracks_of_Destiny": { "name": "Tracks of Destiny", "help": "" @@ -838,7 +849,9 @@ "Spring_of_Life": "Solid Water & Virtual Particle (Spring of Life)", "Fragments_of_Illusory_Dreams": "Tranquility & Broken Dreams (Fragments of Illusory Dreams)", "The_Blossom_in_the_Storm": "Gaseous Liquid & Seed (The Blossom in the Storm)", - "Abandoned_and_Insulted": "Phlogiston & Metal (Abandoned and Insulted)" + "Abandoned_and_Insulted": "Phlogiston & Metal (Abandoned and Insulted)", + "Record_of_Expeditions": "Fear-Stomped Flesh (Record of Expeditions)", + "Work_and_Days": "Distinctive Tattered Feather & Bough of Thought (Work and Days)" }, "Name_2": { "name": "Assignment 2 Preference", @@ -861,7 +874,9 @@ "Spring_of_Life": "Solid Water & Virtual Particle (Spring of Life)", "Fragments_of_Illusory_Dreams": "Tranquility & Broken Dreams (Fragments of Illusory Dreams)", "The_Blossom_in_the_Storm": "Gaseous Liquid & Seed (The Blossom in the Storm)", - "Abandoned_and_Insulted": "Phlogiston & Metal (Abandoned and Insulted)" + "Abandoned_and_Insulted": "Phlogiston & Metal (Abandoned and Insulted)", + "Record_of_Expeditions": "Fear-Stomped Flesh (Record of Expeditions)", + "Work_and_Days": "Distinctive Tattered Feather & Bough of Thought (Work and Days)" }, "Name_3": { "name": "Assignment 3 Preference", @@ -884,7 +899,9 @@ "Spring_of_Life": "Solid Water & Virtual Particle (Spring of Life)", "Fragments_of_Illusory_Dreams": "Tranquility & Broken Dreams (Fragments of Illusory Dreams)", "The_Blossom_in_the_Storm": "Gaseous Liquid & Seed (The Blossom in the Storm)", - "Abandoned_and_Insulted": "Phlogiston & Metal (Abandoned and Insulted)" + "Abandoned_and_Insulted": "Phlogiston & Metal (Abandoned and Insulted)", + "Record_of_Expeditions": "Fear-Stomped Flesh (Record of Expeditions)", + "Work_and_Days": "Distinctive Tattered Feather & Bough of Thought (Work and Days)" }, "Name_4": { "name": "Assignment 4 Preference", @@ -907,7 +924,9 @@ "Spring_of_Life": "Solid Water & Virtual Particle (Spring of Life)", "Fragments_of_Illusory_Dreams": "Tranquility & Broken Dreams (Fragments of Illusory Dreams)", "The_Blossom_in_the_Storm": "Gaseous Liquid & Seed (The Blossom in the Storm)", - "Abandoned_and_Insulted": "Phlogiston & Metal (Abandoned and Insulted)" + "Abandoned_and_Insulted": "Phlogiston & Metal (Abandoned and Insulted)", + "Record_of_Expeditions": "Fear-Stomped Flesh (Record of Expeditions)", + "Work_and_Days": "Distinctive Tattered Feather & Bough of Thought (Work and Days)" }, "Duration": { "name": "Dispatch Duration", diff --git a/module/config/i18n/es-ES.json b/module/config/i18n/es-ES.json index 1874c2afb..c0d57c3c9 100644 --- a/module/config/i18n/es-ES.json +++ b/module/config/i18n/es-ES.json @@ -246,9 +246,9 @@ "Calyx_Golden_Memories_Penacony": "Material: EXP de personaje (Flor de los recuerdos, Colonipenal)", "Calyx_Golden_Memories_The_Xianzhou_Luofu": "Material: EXP de personaje (Flor de los recuerdos, El Luofu de Xianzhou)", "Calyx_Golden_Memories_Jarilo_VI": "Material: EXP de personaje (Flor de los recuerdos, Jarilo-VI)", - "Calyx_Golden_Aether_Penacony": "Material: EXP de conos de luz (Flor de éter)", - "Calyx_Golden_Aether_The_Xianzhou_Luofu": "Material: EXP de conos de luz (Flor de éter)", - "Calyx_Golden_Aether_Jarilo_VI": "Material: EXP de conos de luz (Flor de éter)", + "Calyx_Golden_Aether_Penacony": "Material: EXP de conos de luz (Flor de eter)", + "Calyx_Golden_Aether_The_Xianzhou_Luofu": "Material: EXP de conos de luz (Flor de eter)", + "Calyx_Golden_Aether_Jarilo_VI": "Material: EXP de conos de luz (Flor de eter)", "Calyx_Golden_Treasures_Penacony": "Material: Créditos (Flor de tesoros)", "Calyx_Golden_Treasures_The_Xianzhou_Luofu": "Material: Créditos (Flor de tesoros)", "Calyx_Golden_Treasures_Jarilo_VI": "Material: Créditos (Flor de tesoros)", @@ -266,6 +266,7 @@ "Calyx_Crimson_Harmony_Penacony_TheReverieDreamscape": "Rastros: Armonía (Hotel Fantasía (paisaje onírico))", "Calyx_Crimson_Nihility_Jarilo_GreatMine": "Rastros: Nihilidad (Mina principal)", "Calyx_Crimson_Nihility_Luofu_AlchemyCommission": "Rastros: Nihilidad (Comisión de Alquimia)", + "Calyx_Crimson_Remembrance_Special_StrifeRuinsCastrumKremnos": "Rastros: Reminiscencia (Castrum Kremnos, Ruinas del Conflicto)", "Stagnant_Shadow_Spike": "Ascension: Físico (Natasha / Clara / Luka / Sushang)", "Stagnant_Shadow_Perdition": "Ascension: Físico (Hanya / Argenti)", "Stagnant_Shadow_Duty": "Ascension: Físico (Boothill / Robin / Yunli)", @@ -274,10 +275,10 @@ "Stagnant_Shadow_Ire": "Ascension: Fuego (Luciérnaga / Gallagher / Jiaoqiu / Lingsha)", "Stagnant_Shadow_Rime": "Ascension: Hielo (Siete de Marzo / Herta / Gepard / Pela)", "Stagnant_Shadow_Icicle": "Ascension: Hielo (Yanqing / Jingliu / Ruan Mei)", - "Stagnant_Shadow_Nectar": "Ascension: Hielo (Misha)", + "Stagnant_Shadow_Nectar": "Ascension: Hielo (Misha / Sra. Herta)", "Stagnant_Shadow_Fulmination": "Ascension: Rayo (Arlan / Serval / Tingyun / Bailu)", "Stagnant_Shadow_Doom": "Ascension: Rayo (Kafka / Jing Yuan / Acheron)", - "Stagnant_Shadow_Mechwolf": "Ascension: Rayo (Moze)", + "Stagnant_Shadow_Mechwolf": "Ascension: Rayo (Moze / Aglaea)", "Stagnant_Shadow_Gust": "Ascension: Viento (Dan Heng / Bronya / Sampo)", "Stagnant_Shadow_Celestial": "Ascension: Viento (Blade / Huohuo / Cisne Negro)", "Stagnant_Shadow_Gloam": "Ascension: Viento (Feixiao)", @@ -287,6 +288,7 @@ "Stagnant_Shadow_Mirage": "Ascension: Imaginario (Welt / Luocha / Yukong)", "Stagnant_Shadow_Puppetry": "Ascension: Imaginario (Dan Heng - Imbibitor Lunae / Aventurino / Dr. Ratio)", "Stagnant_Shadow_Timbre": "Ascension: Imaginario (Sunday / Rappa)", + "Cavern_of_Corrosion_Path_of_Aria": "Cavern_of_Corrosion_Path_of_Aria (Senda de la canción)", "Cavern_of_Corrosion_Path_of_Uncertainty": "Cavern_of_Corrosion_Path_of_Uncertainty (Senda de la incertidumbre)", "Cavern_of_Corrosion_Path_of_Cavalier": "Artefactos: Ultrarruptura y Adicional de Definitiva (Caverna de la corrosión: Senda del caballero) (Senda del caballero)", "Cavern_of_Corrosion_Path_of_Dreamdive": "Artefactos: Debuff y Efecto de Ruptura (Senda de los sueños)", @@ -297,7 +299,7 @@ "Cavern_of_Corrosion_Path_of_Providence": "Artefactos: Guardia de la nieve y Cuántico (Senda de al providencia) (Senda de la providencia)", "Cavern_of_Corrosion_Path_of_Drifting": "Artefactos: Curación y Pistolera de la espiga silvestre (Senda de la deriva)", "Cavern_of_Corrosion_Path_of_Jabbing_Punch": "Artefactos: Físico y Efecto de Ruptura (Senda de los puños rápidos)", - "Cavern_of_Corrosion_Path_of_Gelid_Wind": "Artefactos: Hielo y Viento (Senda del viento gélido)" + "Cavern_of_Corrosion_Path_of_Gelid_Wind": "Artefactos: Hielo y Viento (Senda del viento gélido) (Senda del viento gelido)" }, "NameAtDoubleCalyx": { "name": "En los eventos de x2 de Cáliz", @@ -305,9 +307,9 @@ "Calyx_Golden_Memories_Penacony": "Material: EXP de personaje (Flor de los recuerdos, Colonipenal)", "Calyx_Golden_Memories_The_Xianzhou_Luofu": "Material: EXP de personaje (Flor de los recuerdos, El Luofu de Xianzhou)", "Calyx_Golden_Memories_Jarilo_VI": "Material: EXP de personaje (Flor de los recuerdos, Jarilo-VI)", - "Calyx_Golden_Aether_Penacony": "Material: EXP de conos de luz (Flor de éter)", - "Calyx_Golden_Aether_The_Xianzhou_Luofu": "Material: EXP de conos de luz (Flor de éter)", - "Calyx_Golden_Aether_Jarilo_VI": "Material: EXP de conos de luz (Flor de éter)", + "Calyx_Golden_Aether_Penacony": "Material: EXP de conos de luz (Flor de eter)", + "Calyx_Golden_Aether_The_Xianzhou_Luofu": "Material: EXP de conos de luz (Flor de eter)", + "Calyx_Golden_Aether_Jarilo_VI": "Material: EXP de conos de luz (Flor de eter)", "Calyx_Golden_Treasures_Penacony": "Material: Créditos (Flor de tesoros)", "Calyx_Golden_Treasures_The_Xianzhou_Luofu": "Material: Créditos (Flor de tesoros)", "Calyx_Golden_Treasures_Jarilo_VI": "Material: Créditos (Flor de tesoros)", @@ -324,11 +326,13 @@ "Calyx_Crimson_Harmony_Jarilo_RobotSettlement": "Rastros: Armonía (Asentamiento robot)", "Calyx_Crimson_Harmony_Penacony_TheReverieDreamscape": "Rastros: Armonía (Hotel Fantasía (paisaje onírico))", "Calyx_Crimson_Nihility_Jarilo_GreatMine": "Rastros: Nihilidad (Mina principal)", - "Calyx_Crimson_Nihility_Luofu_AlchemyCommission": "Rastros: Nihilidad (Comisión de Alquimia)" + "Calyx_Crimson_Nihility_Luofu_AlchemyCommission": "Rastros: Nihilidad (Comisión de Alquimia)", + "Calyx_Crimson_Remembrance_Special_StrifeRuinsCastrumKremnos": "Rastros: Reminiscencia (Castrum Kremnos, Ruinas del Conflicto)" }, "NameAtDoubleRelic": { "name": "En los eventos de x2 de Caverna de la corrosión", "help": "Se volverán a los ajustes predeterminados una vez se acaben los intentos del evento", + "Cavern_of_Corrosion_Path_of_Aria": "Cavern_of_Corrosion_Path_of_Aria (Senda de la canción)", "Cavern_of_Corrosion_Path_of_Uncertainty": "Cavern_of_Corrosion_Path_of_Uncertainty (Senda de la incertidumbre)", "Cavern_of_Corrosion_Path_of_Cavalier": "Artefactos: Ultrarruptura y Adicional de Definitiva (Caverna de la corrosión: Senda del caballero) (Senda del caballero)", "Cavern_of_Corrosion_Path_of_Dreamdive": "Artefactos: Debuff y Efecto de Ruptura (Senda de los sueños)", @@ -339,7 +343,7 @@ "Cavern_of_Corrosion_Path_of_Providence": "Artefactos: Guardia de la nieve y Cuántico (Senda de al providencia) (Senda de la providencia)", "Cavern_of_Corrosion_Path_of_Drifting": "Artefactos: Curación y Pistolera de la espiga silvestre (Senda de la deriva)", "Cavern_of_Corrosion_Path_of_Jabbing_Punch": "Artefactos: Físico y Efecto de Ruptura (Senda de los puños rápidos)", - "Cavern_of_Corrosion_Path_of_Gelid_Wind": "Artefactos: Hielo y Viento (Senda del viento gélido)" + "Cavern_of_Corrosion_Path_of_Gelid_Wind": "Artefactos: Hielo y Viento (Senda del viento gélido) (Senda del viento gelido)" }, "Team": { "name": "Equipo de mazmorra", @@ -390,6 +394,7 @@ "help": "Selecciona qué personaje de apoyo de un amigo se usará. Si no se encuentra, se seleccionará al predeterminado.\nEl personaje de apoyo no debe ser el mismo que el personaje del equipo, se recomienda priorizar a los amigos.", "FirstCharacter": "Primer personaje", "Acheron": "Acheron", + "Aglaea": "Aglaea", "Argenti": "Argenti", "Arlan": "Arlan", "Asta": "Asta", @@ -404,7 +409,7 @@ "DanHengImbibitorLunae": "Dan Heng - Imbibitor Lunae", "DrRatio": "Dr. Ratio", "Feixiao": "Feixiao", - "Firefly": "Luciérnaga", + "Firefly": "Luciernaga", "FuXuan": "Fu Xuan", "Fugue": "Fugue", "Gallagher": "Gallagher", @@ -424,7 +429,7 @@ "Luka": "Luka", "Luocha": "Luocha", "Lynx": "Lynx", - "March7thPreservation": "Siete de Marzo: Conservación", + "March7thPreservation": "Siete de Marzo (Conservación)", "March7thTheHunt": "Siete de Marzo: Cacería", "Misha": "Misha", "Moze": "Moze", @@ -441,11 +446,13 @@ "Sparkle": "Sparkle", "Sunday": "Sunday", "Sushang": "Sushang", + "TheHerta": "Sra. Herta", "Tingyun": "Tingyun", "TopazNumby": "Topaz y Conti", "TrailblazerDestruction": "Trailblazer de Destrucción", "TrailblazerHarmony": "Trailblazer de Armonía", "TrailblazerPreservation": "Trailblazer de Conservación", + "TrailblazerRemembrance": "TrailblazerRemembrance", "Welt": "Welt", "Xueyi": "Xueyi", "Yanqing": "Yanqing", @@ -503,7 +510,7 @@ "help": "Progreso general del planificador de personajes" }, "Item_Credit": { - "name": "Crédito", + "name": "Credito", "help": "" }, "Item_Trailblaze_EXP": { @@ -587,11 +594,11 @@ "help": "" }, "Item_Dream_Fridge": { - "name": "Ascension: Hielo (Misha)", + "name": "Ascension: Hielo (Misha / Sra. Herta)", "help": "" }, "Item_Nail_of_the_Beast_Coffin": { - "name": "Ascension: Rayo (Moze)", + "name": "Ascension: Rayo (Moze / Aglaea)", "help": "" }, "Item_A_Glass_of_the_Besotted_Era": { @@ -662,6 +669,10 @@ "name": "Rastros: Abundancia (Jardín del Sosiego)", "help": "" }, + "Item_Flower_of_Alaya": { + "name": "Rastros: Reminiscencia (Castrum Kremnos, Ruinas del Conflicto)", + "help": "" + }, "Item_Tracks_of_Destiny": { "name": "Huellas del destino", "help": "" @@ -838,7 +849,9 @@ "Spring_of_Life": "Agua sólida & Partícula virtual (La fuente de la vida)", "Fragments_of_Illusory_Dreams": "Tranquilidad & Sueños rotos (Fragmentos de sueños ilusorios)", "The_Blossom_in_the_Storm": "Líquido gaseoso & Semilla (Flores en la tormenta)", - "Abandoned_and_Insulted": "Flogisto & Metal (Abandonado e insultado)" + "Abandoned_and_Insulted": "Flogisto & Metal (Abandonado e insultado)", + "Record_of_Expeditions": "Carne pisoteada del miedo (Diario de expedición)", + "Work_and_Days": "Pluma del despertar & Rama del pensamiento (Trabajo y tiempo)" }, "Name_2": { "name": "Preferencia de Encargo 2", @@ -861,7 +874,9 @@ "Spring_of_Life": "Agua sólida & Partícula virtual (La fuente de la vida)", "Fragments_of_Illusory_Dreams": "Tranquilidad & Sueños rotos (Fragmentos de sueños ilusorios)", "The_Blossom_in_the_Storm": "Líquido gaseoso & Semilla (Flores en la tormenta)", - "Abandoned_and_Insulted": "Flogisto & Metal (Abandonado e insultado)" + "Abandoned_and_Insulted": "Flogisto & Metal (Abandonado e insultado)", + "Record_of_Expeditions": "Carne pisoteada del miedo (Diario de expedición)", + "Work_and_Days": "Pluma del despertar & Rama del pensamiento (Trabajo y tiempo)" }, "Name_3": { "name": "Preferencia de Encargo 3", @@ -884,7 +899,9 @@ "Spring_of_Life": "Agua sólida & Partícula virtual (La fuente de la vida)", "Fragments_of_Illusory_Dreams": "Tranquilidad & Sueños rotos (Fragmentos de sueños ilusorios)", "The_Blossom_in_the_Storm": "Líquido gaseoso & Semilla (Flores en la tormenta)", - "Abandoned_and_Insulted": "Flogisto & Metal (Abandonado e insultado)" + "Abandoned_and_Insulted": "Flogisto & Metal (Abandonado e insultado)", + "Record_of_Expeditions": "Carne pisoteada del miedo (Diario de expedición)", + "Work_and_Days": "Pluma del despertar & Rama del pensamiento (Trabajo y tiempo)" }, "Name_4": { "name": "Preferencia de Encargo 4", @@ -907,7 +924,9 @@ "Spring_of_Life": "Agua sólida & Partícula virtual (La fuente de la vida)", "Fragments_of_Illusory_Dreams": "Tranquilidad & Sueños rotos (Fragmentos de sueños ilusorios)", "The_Blossom_in_the_Storm": "Líquido gaseoso & Semilla (Flores en la tormenta)", - "Abandoned_and_Insulted": "Flogisto & Metal (Abandonado e insultado)" + "Abandoned_and_Insulted": "Flogisto & Metal (Abandonado e insultado)", + "Record_of_Expeditions": "Carne pisoteada del miedo (Diario de expedición)", + "Work_and_Days": "Pluma del despertar & Rama del pensamiento (Trabajo y tiempo)" }, "Duration": { "name": "Duración del encargo", @@ -1080,7 +1099,7 @@ "Dungeon": { "name": "Nombre de la Mazmorra", "help": "", - "Divergent_Universe_Famished_Worker": "Divergent_Universe_Famished_Worker (Obrero famélico)", + "Divergent_Universe_Famished_Worker": "Divergent_Universe_Famished_Worker (Obrero famélico) (Obrero famelico)", "Divergent_Universe_Eternal_Comedy": " (Comedia eterna)", "Divergent_Universe_To_Sweet_Dreams": " (Hasta los dulces sueños)", "Divergent_Universe_Pouring_Blades": " (Lluvia de espadas)", diff --git a/module/config/i18n/ja-JP.json b/module/config/i18n/ja-JP.json index 5184a3e35..399426ece 100644 --- a/module/config/i18n/ja-JP.json +++ b/module/config/i18n/ja-JP.json @@ -266,6 +266,7 @@ "Calyx_Crimson_Harmony_Penacony_TheReverieDreamscape": "軌跡素材:調和(ホテル・レバリー-夢境)", "Calyx_Crimson_Nihility_Jarilo_GreatMine": "軌跡素材:虚無(大鉱区)", "Calyx_Crimson_Nihility_Luofu_AlchemyCommission": "軌跡素材:虚無(丹鼎司)", + "Calyx_Crimson_Remembrance_Special_StrifeRuinsCastrumKremnos": "軌跡素材:記憶(紛争の廃墟クレムノス)", "Stagnant_Shadow_Spike": "キャラクター昇格素材:物理(ナターシャ / クラーラ / ルカ / 素裳)", "Stagnant_Shadow_Perdition": "キャラクター昇格素材:物理(寒鴉 / アルジェンティ)", "Stagnant_Shadow_Duty": "キャラクター昇格素材:物理(ブートヒル / ロビン / 雲璃)", @@ -274,10 +275,10 @@ "Stagnant_Shadow_Ire": "キャラクター昇格素材:炎(ホタル / ギャラガー / 椒丘 / 霊砂)", "Stagnant_Shadow_Rime": "キャラクター昇格素材:氷(三月なのか / ヘルタ / ジェパード / ペラ)", "Stagnant_Shadow_Icicle": "キャラクター昇格素材:氷(彦卿 / 鏡流 / ルアン・メェイ)", - "Stagnant_Shadow_Nectar": "キャラクター昇格素材:氷(ミーシャ)", + "Stagnant_Shadow_Nectar": "キャラクター昇格素材:氷(ミーシャ / マダム・ヘルタ)", "Stagnant_Shadow_Fulmination": "キャラクター昇格素材:雷(アーラン / セーバル / 停雲 / 白露)", "Stagnant_Shadow_Doom": "キャラクター昇格素材:雷(カフカ / 景元 / 黄泉)", - "Stagnant_Shadow_Mechwolf": "キャラクター昇格素材:雷(モゼ)", + "Stagnant_Shadow_Mechwolf": "キャラクター昇格素材:雷(モゼ / アグライア)", "Stagnant_Shadow_Gust": "キャラクター昇格素材:風(丹恒 / ブローニャ / サンポ)", "Stagnant_Shadow_Celestial": "キャラクター昇格素材:風(刃 / フォフォ / ブラックスワン)", "Stagnant_Shadow_Gloam": "キャラクター昇格素材:風(飛霄)", @@ -287,6 +288,7 @@ "Stagnant_Shadow_Mirage": "キャラクター昇格素材:虚数(ヴェルト / 羅刹 / 御空)", "Stagnant_Shadow_Puppetry": "キャラクター昇格素材:虚数(丹恒・飲月 / アベンチュリン / Dr.レイシオ)", "Stagnant_Shadow_Timbre": "キャラクター昇格素材:虚数(サンデー / 乱破)", + "Cavern_of_Corrosion_Path_of_Aria": "Cavern_of_Corrosion_Path_of_Aria(弦歌の路)", "Cavern_of_Corrosion_Path_of_Uncertainty": "Cavern_of_Corrosion_Path_of_Uncertainty(迷識の路)", "Cavern_of_Corrosion_Path_of_Cavalier": "侵蝕トンネル・勇騎の路(勇騎の路)", "Cavern_of_Corrosion_Path_of_Dreamdive": "侵蝕トンネル・夢潜の路(夢潜の路)", @@ -324,11 +326,13 @@ "Calyx_Crimson_Harmony_Jarilo_RobotSettlement": "軌跡素材:調和(機械集落)", "Calyx_Crimson_Harmony_Penacony_TheReverieDreamscape": "軌跡素材:調和(ホテル・レバリー-夢境)", "Calyx_Crimson_Nihility_Jarilo_GreatMine": "軌跡素材:虚無(大鉱区)", - "Calyx_Crimson_Nihility_Luofu_AlchemyCommission": "軌跡素材:虚無(丹鼎司)" + "Calyx_Crimson_Nihility_Luofu_AlchemyCommission": "軌跡素材:虚無(丹鼎司)", + "Calyx_Crimson_Remembrance_Special_StrifeRuinsCastrumKremnos": "軌跡素材:記憶(紛争の廃墟クレムノス)" }, "NameAtDoubleRelic": { "name": "Dungeon.NameAtDoubleRelic.name", "help": "Dungeon.NameAtDoubleRelic.help", + "Cavern_of_Corrosion_Path_of_Aria": "Cavern_of_Corrosion_Path_of_Aria(弦歌の路)", "Cavern_of_Corrosion_Path_of_Uncertainty": "Cavern_of_Corrosion_Path_of_Uncertainty(迷識の路)", "Cavern_of_Corrosion_Path_of_Cavalier": "侵蝕トンネル・勇騎の路(勇騎の路)", "Cavern_of_Corrosion_Path_of_Dreamdive": "侵蝕トンネル・夢潜の路(夢潜の路)", @@ -390,6 +394,7 @@ "help": "DungeonSupport.Character.help", "FirstCharacter": "FirstCharacter", "Acheron": "黄泉", + "Aglaea": "アグライア", "Argenti": "アルジェンティ", "Arlan": "アーラン", "Asta": "アスター", @@ -441,11 +446,13 @@ "Sparkle": "花火", "Sunday": "サンデー", "Sushang": "素裳", + "TheHerta": "マダム・ヘルタ", "Tingyun": "停雲", "TopazNumby": "トパーズ&カブ", "TrailblazerDestruction": "開拓者・壊滅", "TrailblazerHarmony": "開拓者・調和", "TrailblazerPreservation": "開拓者・存護", + "TrailblazerRemembrance": "TrailblazerRemembrance", "Welt": "ヴェルト", "Xueyi": "雪衣", "Yanqing": "彦卿", @@ -587,11 +594,11 @@ "help": "" }, "Item_Dream_Fridge": { - "name": "キャラクター昇格素材:氷(ミーシャ)", + "name": "キャラクター昇格素材:氷(ミーシャ / マダム・ヘルタ)", "help": "" }, "Item_Nail_of_the_Beast_Coffin": { - "name": "キャラクター昇格素材:雷(モゼ)", + "name": "キャラクター昇格素材:雷(モゼ / アグライア)", "help": "" }, "Item_A_Glass_of_the_Besotted_Era": { @@ -662,6 +669,10 @@ "name": "軌跡素材:豊穣(綏園)", "help": "" }, + "Item_Flower_of_Alaya": { + "name": "軌跡素材:記憶(紛争の廃墟クレムノス)", + "help": "" + }, "Item_Tracks_of_Destiny": { "name": "運命の足跡", "help": "" @@ -838,7 +849,9 @@ "Spring_of_Life": "固形純水 & 仮想粒子(生命の泉)", "Fragments_of_Illusory_Dreams": "安逸 & 砕けた夢(幻夢の残片)", "The_Blossom_in_the_Storm": "気態流体 & 種子(嵐の中で咲き誇る花)", - "Abandoned_and_Insulted": "燃素 & 金属(捨てられしものと傷つけられしもの)" + "Abandoned_and_Insulted": "燃素 & 金属(捨てられしものと傷つけられしもの)", + "Record_of_Expeditions": "恐怖は血肉を踏み潰す(遠征記)", + "Work_and_Days": "鮮やかな残羽 & 思惟の枝(仕事と日々)" }, "Name_2": { "name": "依頼 2", @@ -861,7 +874,9 @@ "Spring_of_Life": "固形純水 & 仮想粒子(生命の泉)", "Fragments_of_Illusory_Dreams": "安逸 & 砕けた夢(幻夢の残片)", "The_Blossom_in_the_Storm": "気態流体 & 種子(嵐の中で咲き誇る花)", - "Abandoned_and_Insulted": "燃素 & 金属(捨てられしものと傷つけられしもの)" + "Abandoned_and_Insulted": "燃素 & 金属(捨てられしものと傷つけられしもの)", + "Record_of_Expeditions": "恐怖は血肉を踏み潰す(遠征記)", + "Work_and_Days": "鮮やかな残羽 & 思惟の枝(仕事と日々)" }, "Name_3": { "name": "依頼 3", @@ -884,7 +899,9 @@ "Spring_of_Life": "固形純水 & 仮想粒子(生命の泉)", "Fragments_of_Illusory_Dreams": "安逸 & 砕けた夢(幻夢の残片)", "The_Blossom_in_the_Storm": "気態流体 & 種子(嵐の中で咲き誇る花)", - "Abandoned_and_Insulted": "燃素 & 金属(捨てられしものと傷つけられしもの)" + "Abandoned_and_Insulted": "燃素 & 金属(捨てられしものと傷つけられしもの)", + "Record_of_Expeditions": "恐怖は血肉を踏み潰す(遠征記)", + "Work_and_Days": "鮮やかな残羽 & 思惟の枝(仕事と日々)" }, "Name_4": { "name": "依頼 4", @@ -907,7 +924,9 @@ "Spring_of_Life": "固形純水 & 仮想粒子(生命の泉)", "Fragments_of_Illusory_Dreams": "安逸 & 砕けた夢(幻夢の残片)", "The_Blossom_in_the_Storm": "気態流体 & 種子(嵐の中で咲き誇る花)", - "Abandoned_and_Insulted": "燃素 & 金属(捨てられしものと傷つけられしもの)" + "Abandoned_and_Insulted": "燃素 & 金属(捨てられしものと傷つけられしもの)", + "Record_of_Expeditions": "恐怖は血肉を踏み潰す(遠征記)", + "Work_and_Days": "鮮やかな残羽 & 思惟の枝(仕事と日々)" }, "Duration": { "name": "派遣時間", diff --git a/module/config/i18n/zh-CN.json b/module/config/i18n/zh-CN.json index f85440da8..af6090138 100644 --- a/module/config/i18n/zh-CN.json +++ b/module/config/i18n/zh-CN.json @@ -266,6 +266,7 @@ "Calyx_Crimson_Harmony_Penacony_TheReverieDreamscape": "行迹材料:同谐(白日梦酒店-梦境)", "Calyx_Crimson_Nihility_Jarilo_GreatMine": "行迹材料:虚无(大矿区)", "Calyx_Crimson_Nihility_Luofu_AlchemyCommission": "行迹材料:虚无(丹鼎司)", + "Calyx_Crimson_Remembrance_Special_StrifeRuinsCastrumKremnos": "行迹材料:记忆(纷争荒墟悬锋城)", "Stagnant_Shadow_Spike": "角色晋阶材料:物理(娜塔莎 / 克拉拉 / 卢卡 / 素裳)", "Stagnant_Shadow_Perdition": "角色晋阶材料:物理(寒鸦 / 银枝)", "Stagnant_Shadow_Duty": "角色晋阶材料:物理(波提欧 / 知更鸟 / 云璃)", @@ -274,10 +275,10 @@ "Stagnant_Shadow_Ire": "角色晋阶材料:火(流萤 / 加拉赫 / 椒丘 / 灵砂)", "Stagnant_Shadow_Rime": "角色晋阶材料:冰(三月七 / 黑塔 / 杰帕德 / 佩拉)", "Stagnant_Shadow_Icicle": "角色晋阶材料:冰(彦卿 / 镜流 / 阮•梅)", - "Stagnant_Shadow_Nectar": "角色晋阶材料:冰(米沙)", + "Stagnant_Shadow_Nectar": "角色晋阶材料:冰(米沙 / 大黑塔)", "Stagnant_Shadow_Fulmination": "角色晋阶材料:雷(阿兰 / 希露瓦 / 停云 / 白露)", "Stagnant_Shadow_Doom": "角色晋阶材料:雷(卡芙卡 / 景元 / 黄泉)", - "Stagnant_Shadow_Mechwolf": "角色晋阶材料:雷(貊泽)", + "Stagnant_Shadow_Mechwolf": "角色晋阶材料:雷(貊泽 / 阿格莱雅)", "Stagnant_Shadow_Gust": "角色晋阶材料:风(丹恒 / 布洛妮娅 / 桑博)", "Stagnant_Shadow_Celestial": "角色晋阶材料:风(刃 / 藿藿 / 黑天鹅)", "Stagnant_Shadow_Gloam": "角色晋阶材料:风(飞霄)", @@ -287,6 +288,7 @@ "Stagnant_Shadow_Mirage": "角色晋阶材料:虚数(瓦尔特 / 罗刹 / 驭空)", "Stagnant_Shadow_Puppetry": "角色晋阶材料:虚数(丹恒•饮月 / 砂金 / 真理医生)", "Stagnant_Shadow_Timbre": "角色晋阶材料:虚数(星期日 / 乱破)", + "Cavern_of_Corrosion_Path_of_Aria": "Cavern_of_Corrosion_Path_of_Aria(弦歌之径)", "Cavern_of_Corrosion_Path_of_Uncertainty": "Cavern_of_Corrosion_Path_of_Uncertainty(迷识之径)", "Cavern_of_Corrosion_Path_of_Cavalier": "遗器:超击破套+终追套(勇骑之径)", "Cavern_of_Corrosion_Path_of_Dreamdive": "遗器:负面套+击破套(梦潜之径)", @@ -324,11 +326,13 @@ "Calyx_Crimson_Harmony_Jarilo_RobotSettlement": "行迹材料:同谐(机械聚落)", "Calyx_Crimson_Harmony_Penacony_TheReverieDreamscape": "行迹材料:同谐(白日梦酒店-梦境)", "Calyx_Crimson_Nihility_Jarilo_GreatMine": "行迹材料:虚无(大矿区)", - "Calyx_Crimson_Nihility_Luofu_AlchemyCommission": "行迹材料:虚无(丹鼎司)" + "Calyx_Crimson_Nihility_Luofu_AlchemyCommission": "行迹材料:虚无(丹鼎司)", + "Calyx_Crimson_Remembrance_Special_StrifeRuinsCastrumKremnos": "行迹材料:记忆(纷争荒墟悬锋城)" }, "NameAtDoubleRelic": { "name": "有遗器活动时,选择副本", "help": "次数耗尽后回退到默认打本设置", + "Cavern_of_Corrosion_Path_of_Aria": "Cavern_of_Corrosion_Path_of_Aria(弦歌之径)", "Cavern_of_Corrosion_Path_of_Uncertainty": "Cavern_of_Corrosion_Path_of_Uncertainty(迷识之径)", "Cavern_of_Corrosion_Path_of_Cavalier": "遗器:超击破套+终追套(勇骑之径)", "Cavern_of_Corrosion_Path_of_Dreamdive": "遗器:负面套+击破套(梦潜之径)", @@ -390,6 +394,7 @@ "help": "选择好友支援角色,未找到则选择默认(第一个)角色\n支援角色不要与队伍中的角色重复,建议置顶好友角色", "FirstCharacter": "支援列表第一个角色", "Acheron": "黄泉", + "Aglaea": "阿格莱雅", "Argenti": "银枝", "Arlan": "阿兰", "Asta": "艾丝妲", @@ -441,11 +446,13 @@ "Sparkle": "花火", "Sunday": "星期日", "Sushang": "素裳", + "TheHerta": "大黑塔", "Tingyun": "停云", "TopazNumby": "托帕&账账", "TrailblazerDestruction": "开拓者•毁灭", "TrailblazerHarmony": "开拓者•同谐", "TrailblazerPreservation": "开拓者•存护", + "TrailblazerRemembrance": "TrailblazerRemembrance", "Welt": "瓦尔特", "Xueyi": "雪衣", "Yanqing": "彦卿", @@ -587,11 +594,11 @@ "help": "" }, "Item_Dream_Fridge": { - "name": "角色晋阶材料:冰(米沙)", + "name": "角色晋阶材料:冰(米沙 / 大黑塔)", "help": "" }, "Item_Nail_of_the_Beast_Coffin": { - "name": "角色晋阶材料:雷(貊泽)", + "name": "角色晋阶材料:雷(貊泽 / 阿格莱雅)", "help": "" }, "Item_A_Glass_of_the_Besotted_Era": { @@ -662,6 +669,10 @@ "name": "行迹材料:丰饶(绥园)", "help": "" }, + "Item_Flower_of_Alaya": { + "name": "行迹材料:记忆(纷争荒墟悬锋城)", + "help": "" + }, "Item_Tracks_of_Destiny": { "name": "命运的足迹", "help": "" @@ -838,7 +849,9 @@ "Spring_of_Life": "固态净水 & 虚粒子(生命之泉)", "Fragments_of_Illusory_Dreams": "安逸 & 碎梦(幻梦的残片)", "The_Blossom_in_the_Storm": "气态流体 & 种子(风暴中怒放的花)", - "Abandoned_and_Insulted": "燃素 & 金属(被废弃与损害的)" + "Abandoned_and_Insulted": "燃素 & 金属(被废弃与损害的)", + "Record_of_Expeditions": "恐惧踏碎血肉(远征记)", + "Work_and_Days": "醒目残翎 & 思维枝椁(工作与时日)" }, "Name_2": { "name": "第2个委托选择", @@ -861,7 +874,9 @@ "Spring_of_Life": "固态净水 & 虚粒子(生命之泉)", "Fragments_of_Illusory_Dreams": "安逸 & 碎梦(幻梦的残片)", "The_Blossom_in_the_Storm": "气态流体 & 种子(风暴中怒放的花)", - "Abandoned_and_Insulted": "燃素 & 金属(被废弃与损害的)" + "Abandoned_and_Insulted": "燃素 & 金属(被废弃与损害的)", + "Record_of_Expeditions": "恐惧踏碎血肉(远征记)", + "Work_and_Days": "醒目残翎 & 思维枝椁(工作与时日)" }, "Name_3": { "name": "第3个委托选择", @@ -884,7 +899,9 @@ "Spring_of_Life": "固态净水 & 虚粒子(生命之泉)", "Fragments_of_Illusory_Dreams": "安逸 & 碎梦(幻梦的残片)", "The_Blossom_in_the_Storm": "气态流体 & 种子(风暴中怒放的花)", - "Abandoned_and_Insulted": "燃素 & 金属(被废弃与损害的)" + "Abandoned_and_Insulted": "燃素 & 金属(被废弃与损害的)", + "Record_of_Expeditions": "恐惧踏碎血肉(远征记)", + "Work_and_Days": "醒目残翎 & 思维枝椁(工作与时日)" }, "Name_4": { "name": "第4个委托选择", @@ -907,7 +924,9 @@ "Spring_of_Life": "固态净水 & 虚粒子(生命之泉)", "Fragments_of_Illusory_Dreams": "安逸 & 碎梦(幻梦的残片)", "The_Blossom_in_the_Storm": "气态流体 & 种子(风暴中怒放的花)", - "Abandoned_and_Insulted": "燃素 & 金属(被废弃与损害的)" + "Abandoned_and_Insulted": "燃素 & 金属(被废弃与损害的)", + "Record_of_Expeditions": "恐惧踏碎血肉(远征记)", + "Work_and_Days": "醒目残翎 & 思维枝椁(工作与时日)" }, "Duration": { "name": "派遣时长", @@ -1237,4 +1256,4 @@ "Clear": "清除" } } -} +} \ No newline at end of file diff --git a/module/config/i18n/zh-TW.json b/module/config/i18n/zh-TW.json index ceb7f1695..ad4f671f1 100644 --- a/module/config/i18n/zh-TW.json +++ b/module/config/i18n/zh-TW.json @@ -266,6 +266,7 @@ "Calyx_Crimson_Harmony_Penacony_TheReverieDreamscape": "行跡材料:同諧(白日夢飯店-夢境)", "Calyx_Crimson_Nihility_Jarilo_GreatMine": "行跡材料:虛無(大礦區)", "Calyx_Crimson_Nihility_Luofu_AlchemyCommission": "行跡材料:虛無(丹鼎司)", + "Calyx_Crimson_Remembrance_Special_StrifeRuinsCastrumKremnos": "行跡材料:記憶(紛爭荒墟懸鋒城)", "Stagnant_Shadow_Spike": "角色晉階材料:物理(娜塔莎 / 克拉拉 / 盧卡 / 素裳)", "Stagnant_Shadow_Perdition": "角色晉階材料:物理(寒鴉 / 銀枝)", "Stagnant_Shadow_Duty": "角色晉階材料:物理(波提歐 / 知更鳥 / 雲璃)", @@ -274,10 +275,10 @@ "Stagnant_Shadow_Ire": "角色晉階材料:火(流螢 / 加拉赫 / 椒丘 / 靈砂)", "Stagnant_Shadow_Rime": "角色晉階材料:冰(三月七 / 黑塔 / 傑帕德 / 佩拉)", "Stagnant_Shadow_Icicle": "角色晉階材料:冰(彥卿 / 鏡流 / 阮•梅)", - "Stagnant_Shadow_Nectar": "角色晉階材料:冰(米沙)", + "Stagnant_Shadow_Nectar": "角色晉階材料:冰(米沙 / 大黑塔)", "Stagnant_Shadow_Fulmination": "角色晉階材料:雷(阿蘭 / 希露瓦 / 停雲 / 白露)", "Stagnant_Shadow_Doom": "角色晉階材料:雷(卡芙卡 / 景元 / 黃泉)", - "Stagnant_Shadow_Mechwolf": "角色晉階材料:雷(貊澤)", + "Stagnant_Shadow_Mechwolf": "角色晉階材料:雷(貊澤 / 阿格萊雅)", "Stagnant_Shadow_Gust": "角色晉階材料:風(丹恆 / 布洛妮婭 / 桑博)", "Stagnant_Shadow_Celestial": "角色晉階材料:風(刃 / 藿藿 / 黑天鵝)", "Stagnant_Shadow_Gloam": "角色晉階材料:風(飛霄)", @@ -287,6 +288,7 @@ "Stagnant_Shadow_Mirage": "角色晉階材料:虛數(瓦爾特 / 羅剎 / 馭空)", "Stagnant_Shadow_Puppetry": "角色晉階材料:虛數(丹恆•飲月 / 砂金 / 真理醫生)", "Stagnant_Shadow_Timbre": "角色晉階材料:虛數(星期日 / 亂破)", + "Cavern_of_Corrosion_Path_of_Aria": "Cavern_of_Corrosion_Path_of_Aria(絃歌之徑)", "Cavern_of_Corrosion_Path_of_Uncertainty": "Cavern_of_Corrosion_Path_of_Uncertainty(迷識之徑)", "Cavern_of_Corrosion_Path_of_Cavalier": "遺器:超擊破套+終追套(勇騎之徑)", "Cavern_of_Corrosion_Path_of_Dreamdive": "遺器:負面套+擊破套((夢潛之徑)", @@ -324,11 +326,13 @@ "Calyx_Crimson_Harmony_Jarilo_RobotSettlement": "行跡材料:同諧(機械聚落)", "Calyx_Crimson_Harmony_Penacony_TheReverieDreamscape": "行跡材料:同諧(白日夢飯店-夢境)", "Calyx_Crimson_Nihility_Jarilo_GreatMine": "行跡材料:虛無(大礦區)", - "Calyx_Crimson_Nihility_Luofu_AlchemyCommission": "行跡材料:虛無(丹鼎司)" + "Calyx_Crimson_Nihility_Luofu_AlchemyCommission": "行跡材料:虛無(丹鼎司)", + "Calyx_Crimson_Remembrance_Special_StrifeRuinsCastrumKremnos": "行跡材料:記憶(紛爭荒墟懸鋒城)" }, "NameAtDoubleRelic": { "name": "有遺器活動時,選擇副本", "help": "次數耗儘後回退到默認打本設定", + "Cavern_of_Corrosion_Path_of_Aria": "Cavern_of_Corrosion_Path_of_Aria(絃歌之徑)", "Cavern_of_Corrosion_Path_of_Uncertainty": "Cavern_of_Corrosion_Path_of_Uncertainty(迷識之徑)", "Cavern_of_Corrosion_Path_of_Cavalier": "遺器:超擊破套+終追套(勇騎之徑)", "Cavern_of_Corrosion_Path_of_Dreamdive": "遺器:負面套+擊破套((夢潛之徑)", @@ -390,6 +394,7 @@ "help": "選擇好友支援角色,未找到則選擇默認(第一個)角色\n支援角色不要與隊伍中的角色重複,建議置頂好友角色", "FirstCharacter": "支援列表第一個角色", "Acheron": "黃泉", + "Aglaea": "阿格萊雅", "Argenti": "銀枝", "Arlan": "阿蘭", "Asta": "艾絲妲", @@ -441,11 +446,13 @@ "Sparkle": "花火", "Sunday": "星期日", "Sushang": "素裳", + "TheHerta": "大黑塔", "Tingyun": "停雲", "TopazNumby": "托帕&帳帳", "TrailblazerDestruction": "開拓者•毀滅", "TrailblazerHarmony": "開拓者•同諧", "TrailblazerPreservation": "開拓者•存護", + "TrailblazerRemembrance": "TrailblazerRemembrance", "Welt": "瓦爾特", "Xueyi": "雪衣", "Yanqing": "彥卿", @@ -587,11 +594,11 @@ "help": "" }, "Item_Dream_Fridge": { - "name": "角色晉階材料:冰(米沙)", + "name": "角色晉階材料:冰(米沙 / 大黑塔)", "help": "" }, "Item_Nail_of_the_Beast_Coffin": { - "name": "角色晉階材料:雷(貊澤)", + "name": "角色晉階材料:雷(貊澤 / 阿格萊雅)", "help": "" }, "Item_A_Glass_of_the_Besotted_Era": { @@ -662,6 +669,10 @@ "name": "行跡材料:豐饒(綏園)", "help": "" }, + "Item_Flower_of_Alaya": { + "name": "行跡材料:記憶(紛爭荒墟懸鋒城)", + "help": "" + }, "Item_Tracks_of_Destiny": { "name": "命運的足跡", "help": "" @@ -838,7 +849,9 @@ "Spring_of_Life": "固態淨水 & 虛粒子(生命之泉)", "Fragments_of_Illusory_Dreams": "安逸 & 碎夢(幻夢的殘片)", "The_Blossom_in_the_Storm": "氣態流體 & 種子(風暴中怒放的花)", - "Abandoned_and_Insulted": "燃素 & 金屬(被廢棄與損害的)" + "Abandoned_and_Insulted": "燃素 & 金屬(被廢棄與損害的)", + "Record_of_Expeditions": "恐懼踏碎血肉(遠征記)", + "Work_and_Days": "醒目殘翎 & 思維枝槨(工作與時日)" }, "Name_2": { "name": "第2個委託選擇", @@ -861,7 +874,9 @@ "Spring_of_Life": "固態淨水 & 虛粒子(生命之泉)", "Fragments_of_Illusory_Dreams": "安逸 & 碎夢(幻夢的殘片)", "The_Blossom_in_the_Storm": "氣態流體 & 種子(風暴中怒放的花)", - "Abandoned_and_Insulted": "燃素 & 金屬(被廢棄與損害的)" + "Abandoned_and_Insulted": "燃素 & 金屬(被廢棄與損害的)", + "Record_of_Expeditions": "恐懼踏碎血肉(遠征記)", + "Work_and_Days": "醒目殘翎 & 思維枝槨(工作與時日)" }, "Name_3": { "name": "第3個委託選擇", @@ -884,7 +899,9 @@ "Spring_of_Life": "固態淨水 & 虛粒子(生命之泉)", "Fragments_of_Illusory_Dreams": "安逸 & 碎夢(幻夢的殘片)", "The_Blossom_in_the_Storm": "氣態流體 & 種子(風暴中怒放的花)", - "Abandoned_and_Insulted": "燃素 & 金屬(被廢棄與損害的)" + "Abandoned_and_Insulted": "燃素 & 金屬(被廢棄與損害的)", + "Record_of_Expeditions": "恐懼踏碎血肉(遠征記)", + "Work_and_Days": "醒目殘翎 & 思維枝槨(工作與時日)" }, "Name_4": { "name": "第4個委託選擇", @@ -907,7 +924,9 @@ "Spring_of_Life": "固態淨水 & 虛粒子(生命之泉)", "Fragments_of_Illusory_Dreams": "安逸 & 碎夢(幻夢的殘片)", "The_Blossom_in_the_Storm": "氣態流體 & 種子(風暴中怒放的花)", - "Abandoned_and_Insulted": "燃素 & 金屬(被廢棄與損害的)" + "Abandoned_and_Insulted": "燃素 & 金屬(被廢棄與損害的)", + "Record_of_Expeditions": "恐懼踏碎血肉(遠征記)", + "Work_and_Days": "醒目殘翎 & 思維枝槨(工作與時日)" }, "Duration": { "name": "派遣時間", @@ -1237,4 +1256,4 @@ "Clear": "清除" } } -} +} \ No newline at end of file diff --git a/module/config/stored/stored_generated.py b/module/config/stored/stored_generated.py index 8075a3d97..00c87bb5a 100644 --- a/module/config/stored/stored_generated.py +++ b/module/config/stored/stored_generated.py @@ -74,6 +74,7 @@ class StoredGenerated: Item_Heaven_Incinerator = StoredPlanner("Dungeon.Planner.Item_Heaven_Incinerator") Item_Heavenly_Melody = StoredPlanner("Dungeon.Planner.Item_Heavenly_Melody") Item_Myriad_Fruit = StoredPlanner("Dungeon.Planner.Item_Myriad_Fruit") + Item_Flower_of_Alaya = StoredPlanner("Dungeon.Planner.Item_Flower_of_Alaya") Item_Tracks_of_Destiny = StoredPlanner("Dungeon.Planner.Item_Tracks_of_Destiny") Item_Destroyer_Final_Road = StoredPlanner("Dungeon.Planner.Item_Destroyer_Final_Road") Item_Guardian_Lament = StoredPlanner("Dungeon.Planner.Item_Guardian_Lament") diff --git a/tasks/assignment/keywords/entry.py b/tasks/assignment/keywords/entry.py index 49fc7f34b..22fd4c394 100644 --- a/tasks/assignment/keywords/entry.py +++ b/tasks/assignment/keywords/entry.py @@ -174,3 +174,21 @@ jp='捨てられしものと傷つけられしもの', es='Abandonado e insultado', ) +Record_of_Expeditions = AssignmentEntry( + id=20, + name='Record_of_Expeditions', + cn='远征记', + cht='遠征記', + en='Record of Expeditions', + jp='遠征記', + es='Diario de expedición', +) +Work_and_Days = AssignmentEntry( + id=21, + name='Work_and_Days', + cn='工作与时日', + cht='工作與時日', + en='Work and Days', + jp='仕事と日々', + es='Trabajo y tiempo', +) diff --git a/tasks/assignment/keywords/entry_detailed.py b/tasks/assignment/keywords/entry_detailed.py index f295f67e7..361842e1c 100644 --- a/tasks/assignment/keywords/entry_detailed.py +++ b/tasks/assignment/keywords/entry_detailed.py @@ -174,3 +174,21 @@ jp='燃素 & 金属(捨てられしものと傷つけられしもの)', es='Flogisto & Metal (Abandonado e insultado)', ) +Record_of_Expeditions = AssignmentEntryDetailed( + id=20, + name='Record_of_Expeditions', + cn='恐惧踏碎血肉(远征记)', + cht='恐懼踏碎血肉(遠征記)', + en='Fear-Stomped Flesh (Record of Expeditions)', + jp='恐怖は血肉を踏み潰す(遠征記)', + es='Carne pisoteada del miedo (Diario de expedición)', +) +Work_and_Days = AssignmentEntryDetailed( + id=21, + name='Work_and_Days', + cn='醒目残翎 & 思维枝椁(工作与时日)', + cht='醒目殘翎 & 思維枝槨(工作與時日)', + en='Distinctive Tattered Feather & Bough of Thought (Work and Days)', + jp='鮮やかな残羽 & 思惟の枝(仕事と日々)', + es='Pluma del despertar & Rama del pensamiento (Trabajo y tiempo)', +) diff --git a/tasks/assignment/keywords/event_entry.py b/tasks/assignment/keywords/event_entry.py index 2a9e3ee9a..9a6ee776e 100644 --- a/tasks/assignment/keywords/event_entry.py +++ b/tasks/assignment/keywords/event_entry.py @@ -10,7 +10,7 @@ cht='解析基因樣本', en='Analyzing Genetic Samples', jp='遺伝子サンプル解析', - es='Análisis de muestras genéticas', + es='Análisis de muestras geneticas', ) Ranger_Online_Looking_for_Group = AssignmentEventEntry( id=2, diff --git a/tasks/assignment/keywords/group.py b/tasks/assignment/keywords/group.py index 212416d7d..37b9f43f9 100644 --- a/tasks/assignment/keywords/group.py +++ b/tasks/assignment/keywords/group.py @@ -19,7 +19,7 @@ cht='經驗素材/信用點', en='EXP Materials/Credits', jp='経験値素材/信用ポイント', - es='Materiales de EXP/créditos', + es='Materiales de EXP/creditos', ) Synthesis_Materials = AssignmentGroup( id=3, diff --git a/tasks/character/keywords/character_list.py b/tasks/character/keywords/character_list.py index ccc1900e3..f00c49e22 100644 --- a/tasks/character/keywords/character_list.py +++ b/tasks/character/keywords/character_list.py @@ -12,8 +12,17 @@ jp='黄泉', es='Acheron', ) -Argenti = CharacterList( +Aglaea = CharacterList( id=2, + name='Aglaea', + cn='阿格莱雅', + cht='阿格萊雅', + en='Aglaea', + jp='アグライア', + es='Aglaea', +) +Argenti = CharacterList( + id=3, name='Argenti', cn='银枝', cht='銀枝', @@ -22,7 +31,7 @@ es='Argenti', ) Arlan = CharacterList( - id=3, + id=4, name='Arlan', cn='阿兰', cht='阿蘭', @@ -31,7 +40,7 @@ es='Arlan', ) Asta = CharacterList( - id=4, + id=5, name='Asta', cn='艾丝妲', cht='艾絲妲', @@ -40,7 +49,7 @@ es='Asta', ) Aventurine = CharacterList( - id=5, + id=6, name='Aventurine', cn='砂金', cht='砂金', @@ -49,7 +58,7 @@ es='Aventurino', ) Bailu = CharacterList( - id=6, + id=7, name='Bailu', cn='白露', cht='白露', @@ -58,7 +67,7 @@ es='Bailu', ) BlackSwan = CharacterList( - id=7, + id=8, name='BlackSwan', cn='黑天鹅', cht='黑天鵝', @@ -67,7 +76,7 @@ es='Cisne Negro', ) Blade = CharacterList( - id=8, + id=9, name='Blade', cn='刃', cht='刃', @@ -76,7 +85,7 @@ es='Blade', ) Boothill = CharacterList( - id=9, + id=10, name='Boothill', cn='波提欧', cht='波提歐', @@ -85,7 +94,7 @@ es='Boothill', ) Bronya = CharacterList( - id=10, + id=11, name='Bronya', cn='布洛妮娅', cht='布洛妮婭', @@ -94,7 +103,7 @@ es='Bronya', ) Clara = CharacterList( - id=11, + id=12, name='Clara', cn='克拉拉', cht='克拉拉', @@ -103,7 +112,7 @@ es='Clara', ) DanHeng = CharacterList( - id=12, + id=13, name='DanHeng', cn='丹恒', cht='丹恆', @@ -112,7 +121,7 @@ es='Dan Heng', ) DanHengImbibitorLunae = CharacterList( - id=13, + id=14, name='DanHengImbibitorLunae', cn='丹恒•饮月', cht='丹恆•飲月', @@ -121,7 +130,7 @@ es='Dan Heng - Imbibitor Lunae', ) DrRatio = CharacterList( - id=14, + id=15, name='DrRatio', cn='真理医生', cht='真理醫生', @@ -130,7 +139,7 @@ es='Dr. Ratio', ) Feixiao = CharacterList( - id=15, + id=16, name='Feixiao', cn='飞霄', cht='飛霄', @@ -139,16 +148,16 @@ es='Feixiao', ) Firefly = CharacterList( - id=16, + id=17, name='Firefly', cn='流萤', cht='流螢', en='Firefly', jp='ホタル', - es='Luciérnaga', + es='Luciernaga', ) FuXuan = CharacterList( - id=17, + id=18, name='FuXuan', cn='符玄', cht='符玄', @@ -157,7 +166,7 @@ es='Fu Xuan', ) Fugue = CharacterList( - id=18, + id=19, name='Fugue', cn='忘归人', cht='忘歸人', @@ -166,7 +175,7 @@ es='Fugue', ) Gallagher = CharacterList( - id=19, + id=20, name='Gallagher', cn='加拉赫', cht='加拉赫', @@ -175,7 +184,7 @@ es='Gallagher', ) Gepard = CharacterList( - id=20, + id=21, name='Gepard', cn='杰帕德', cht='傑帕德', @@ -184,7 +193,7 @@ es='Gepard', ) Guinaifen = CharacterList( - id=21, + id=22, name='Guinaifen', cn='桂乃芬', cht='桂乃芬', @@ -193,7 +202,7 @@ es='Guinaifen', ) Hanya = CharacterList( - id=22, + id=23, name='Hanya', cn='寒鸦', cht='寒鴉', @@ -202,7 +211,7 @@ es='Hanya', ) Herta = CharacterList( - id=23, + id=24, name='Herta', cn='黑塔', cht='黑塔', @@ -211,7 +220,7 @@ es='Herta', ) Himeko = CharacterList( - id=24, + id=25, name='Himeko', cn='姬子', cht='姬子', @@ -220,7 +229,7 @@ es='Himeko', ) Hook = CharacterList( - id=25, + id=26, name='Hook', cn='虎克', cht='虎克', @@ -229,7 +238,7 @@ es='Hook', ) Huohuo = CharacterList( - id=26, + id=27, name='Huohuo', cn='藿藿', cht='藿藿', @@ -238,7 +247,7 @@ es='Huohuo', ) Jade = CharacterList( - id=27, + id=28, name='Jade', cn='翡翠', cht='翡翠', @@ -247,7 +256,7 @@ es='Jade', ) Jiaoqiu = CharacterList( - id=28, + id=29, name='Jiaoqiu', cn='椒丘', cht='椒丘', @@ -256,7 +265,7 @@ es='Jiaoqiu', ) JingYuan = CharacterList( - id=29, + id=30, name='JingYuan', cn='景元', cht='景元', @@ -265,7 +274,7 @@ es='Jing Yuan', ) Jingliu = CharacterList( - id=30, + id=31, name='Jingliu', cn='镜流', cht='鏡流', @@ -274,7 +283,7 @@ es='Jingliu', ) Kafka = CharacterList( - id=31, + id=32, name='Kafka', cn='卡芙卡', cht='卡芙卡', @@ -283,7 +292,7 @@ es='Kafka', ) Lingsha = CharacterList( - id=32, + id=33, name='Lingsha', cn='灵砂', cht='靈砂', @@ -292,7 +301,7 @@ es='Lingsha', ) Luka = CharacterList( - id=33, + id=34, name='Luka', cn='卢卡', cht='盧卡', @@ -301,7 +310,7 @@ es='Luka', ) Luocha = CharacterList( - id=34, + id=35, name='Luocha', cn='罗刹', cht='羅剎', @@ -310,7 +319,7 @@ es='Luocha', ) Lynx = CharacterList( - id=35, + id=36, name='Lynx', cn='玲可', cht='玲可', @@ -319,16 +328,16 @@ es='Lynx', ) March7thPreservation = CharacterList( - id=36, + id=37, name='March7thPreservation', cn='三月七•存护', cht='三月七•存護', en='March 7th: Preservation', jp='三月なのか・存護', - es='Siete de Marzo: Conservación', + es='Siete de Marzo (Conservación)', ) March7thTheHunt = CharacterList( - id=37, + id=38, name='March7thTheHunt', cn='三月七•巡猎', cht='三月七•巡獵', @@ -337,7 +346,7 @@ es='Siete de Marzo: Cacería', ) Misha = CharacterList( - id=38, + id=39, name='Misha', cn='米沙', cht='米沙', @@ -346,7 +355,7 @@ es='Misha', ) Moze = CharacterList( - id=39, + id=40, name='Moze', cn='貊泽', cht='貊澤', @@ -355,7 +364,7 @@ es='Moze', ) Natasha = CharacterList( - id=40, + id=41, name='Natasha', cn='娜塔莎', cht='娜塔莎', @@ -364,7 +373,7 @@ es='Natasha', ) Pela = CharacterList( - id=41, + id=42, name='Pela', cn='佩拉', cht='佩拉', @@ -373,7 +382,7 @@ es='Pela', ) Qingque = CharacterList( - id=42, + id=43, name='Qingque', cn='青雀', cht='青雀', @@ -382,7 +391,7 @@ es='Qingque', ) Rappa = CharacterList( - id=43, + id=44, name='Rappa', cn='乱破', cht='亂破', @@ -391,7 +400,7 @@ es='Rappa', ) Robin = CharacterList( - id=44, + id=45, name='Robin', cn='知更鸟', cht='知更鳥', @@ -400,7 +409,7 @@ es='Robin', ) RuanMei = CharacterList( - id=45, + id=46, name='RuanMei', cn='阮•梅', cht='阮•梅', @@ -409,7 +418,7 @@ es='Ruan Mei', ) Sampo = CharacterList( - id=46, + id=47, name='Sampo', cn='桑博', cht='桑博', @@ -418,7 +427,7 @@ es='Sampo', ) Seele = CharacterList( - id=47, + id=48, name='Seele', cn='希儿', cht='希兒', @@ -427,7 +436,7 @@ es='Seele', ) Serval = CharacterList( - id=48, + id=49, name='Serval', cn='希露瓦', cht='希露瓦', @@ -436,7 +445,7 @@ es='Serval', ) SilverWolf = CharacterList( - id=49, + id=50, name='SilverWolf', cn='银狼', cht='銀狼', @@ -445,7 +454,7 @@ es='Silver Wolf', ) Sparkle = CharacterList( - id=50, + id=51, name='Sparkle', cn='花火', cht='花火', @@ -454,7 +463,7 @@ es='Sparkle', ) Sunday = CharacterList( - id=51, + id=52, name='Sunday', cn='星期日', cht='星期日', @@ -463,7 +472,7 @@ es='Sunday', ) Sushang = CharacterList( - id=52, + id=53, name='Sushang', cn='素裳', cht='素裳', @@ -471,8 +480,17 @@ jp='素裳', es='Sushang', ) +TheHerta = CharacterList( + id=54, + name='TheHerta', + cn='大黑塔', + cht='大黑塔', + en='The Herta', + jp='マダム・ヘルタ', + es='Sra. Herta', +) Tingyun = CharacterList( - id=53, + id=55, name='Tingyun', cn='停云', cht='停雲', @@ -481,7 +499,7 @@ es='Tingyun', ) TopazNumby = CharacterList( - id=54, + id=56, name='TopazNumby', cn='托帕&账账', cht='托帕&帳帳', @@ -490,7 +508,7 @@ es='Topaz y Conti', ) TrailblazerDestruction = CharacterList( - id=55, + id=57, name='TrailblazerDestruction', cn='Trailblazer•毁灭', cht='Trailblazer•毀滅', @@ -499,7 +517,7 @@ es='Trailblazer: Destrucción', ) TrailblazerHarmony = CharacterList( - id=56, + id=58, name='TrailblazerHarmony', cn='Trailblazer•同谐', cht='Trailblazer•同諧', @@ -508,7 +526,7 @@ es='Trailblazer: Armonía', ) TrailblazerPreservation = CharacterList( - id=57, + id=59, name='TrailblazerPreservation', cn='Trailblazer•存护', cht='Trailblazer•存護', @@ -516,8 +534,17 @@ jp='Trailblazer・存護', es='Trailblazer: Conservación', ) +TrailblazerRemembrance = CharacterList( + id=60, + name='TrailblazerRemembrance', + cn='Trailblazer•记忆', + cht='Trailblazer•記憶', + en='Trailblazer: Remembrance', + jp='Trailblazer・記憶', + es='Trailblazer (Reminiscencia)', +) Welt = CharacterList( - id=58, + id=61, name='Welt', cn='瓦尔特', cht='瓦爾特', @@ -526,7 +553,7 @@ es='Welt', ) Xueyi = CharacterList( - id=59, + id=62, name='Xueyi', cn='雪衣', cht='雪衣', @@ -535,7 +562,7 @@ es='Xueyi', ) Yanqing = CharacterList( - id=60, + id=63, name='Yanqing', cn='彦卿', cht='彥卿', @@ -544,7 +571,7 @@ es='Yanqing', ) Yukong = CharacterList( - id=61, + id=64, name='Yukong', cn='驭空', cht='馭空', @@ -553,7 +580,7 @@ es='Yukong', ) Yunli = CharacterList( - id=62, + id=65, name='Yunli', cn='云璃', cht='雲璃', diff --git a/tasks/character/keywords/height.py b/tasks/character/keywords/height.py index 09ffba961..62fec2e80 100644 --- a/tasks/character/keywords/height.py +++ b/tasks/character/keywords/height.py @@ -31,6 +31,7 @@ 'Lingsha': 'Maid', 'Rappa': 'Maid', 'Fugue': 'Maid', + 'TheHerta': 'Maid', 'Himeko': 'Lady', 'Serval': 'Lady', 'Natasha': 'Lady', @@ -41,6 +42,7 @@ 'Acheron': 'Lady', 'Jade': 'Lady', 'Feixiao': 'Lady', + 'Aglaea': 'Lady', 'DanHeng': 'Lad', 'Luka': 'Lad', 'DanHengImbibitorLunae': 'Lad', diff --git a/tasks/dungeon/keywords/dungeon.py b/tasks/dungeon/keywords/dungeon.py index 9b58fce42..7221f801c 100644 --- a/tasks/dungeon/keywords/dungeon.py +++ b/tasks/dungeon/keywords/dungeon.py @@ -21,7 +21,7 @@ cht='乙太之蕾', en='Bud of Aether', jp='エーテルの蕾', - es='Flor de éter', + es='Flor de eter', dungeon_id=1015, plane_id=2031201, ) @@ -54,7 +54,7 @@ cht='乙太之蕾', en='Bud of Aether', jp='エーテルの蕾', - es='Flor de éter', + es='Flor de eter', dungeon_id=1012, plane_id=2022101, ) @@ -87,7 +87,7 @@ cht='乙太之蕾', en='Bud of Aether', jp='エーテルの蕾', - es='Flor de éter', + es='Flor de eter', dungeon_id=1002, plane_id=2011101, ) @@ -256,8 +256,19 @@ dungeon_id=1017, plane_id=2023101, ) -Stagnant_Shadow_Quanta = DungeonList( +Calyx_Crimson_Remembrance_Special_StrifeRuinsCastrumKremnos = DungeonList( id=24, + name='Calyx_Crimson_Remembrance_Special_StrifeRuinsCastrumKremnos', + cn='记忆之蕾', + cht='記憶之蕾', + en='Bud of Remembrance', + jp='記憶の蕾', + es='Flor de la Reminiscencia', + dungeon_id=1024, + plane_id=2041101, +) +Stagnant_Shadow_Quanta = DungeonList( + id=25, name='Stagnant_Shadow_Quanta', cn='空海之形', cht='空海之形', @@ -268,7 +279,7 @@ plane_id=2000101, ) Stagnant_Shadow_Gust = DungeonList( - id=25, + id=26, name='Stagnant_Shadow_Gust', cn='巽风之形', cht='巽風之形', @@ -279,7 +290,7 @@ plane_id=2012201, ) Stagnant_Shadow_Fulmination = DungeonList( - id=26, + id=27, name='Stagnant_Shadow_Fulmination', cn='鸣雷之形', cht='鳴雷之形', @@ -290,7 +301,7 @@ plane_id=2013201, ) Stagnant_Shadow_Blaze = DungeonList( - id=27, + id=28, name='Stagnant_Shadow_Blaze', cn='炎华之形', cht='炎華之形', @@ -301,7 +312,7 @@ plane_id=2013101, ) Stagnant_Shadow_Spike = DungeonList( - id=28, + id=29, name='Stagnant_Shadow_Spike', cn='锋芒之形', cht='鋒芒之形', @@ -312,7 +323,7 @@ plane_id=2012101, ) Stagnant_Shadow_Rime = DungeonList( - id=29, + id=30, name='Stagnant_Shadow_Rime', cn='霜晶之形', cht='霜晶之形', @@ -323,7 +334,7 @@ plane_id=2013201, ) Stagnant_Shadow_Mirage = DungeonList( - id=30, + id=31, name='Stagnant_Shadow_Mirage', cn='幻光之形', cht='幻光之形', @@ -334,18 +345,18 @@ plane_id=2011101, ) Stagnant_Shadow_Icicle = DungeonList( - id=31, + id=32, name='Stagnant_Shadow_Icicle', cn='冰棱之形', cht='冰稜之形', en='Shape of Icicle', jp='氷柱の形', - es='Forma del témpano', + es='Forma del tempano', dungeon_id=1108, plane_id=2021101, ) Stagnant_Shadow_Doom = DungeonList( - id=32, + id=33, name='Stagnant_Shadow_Doom', cn='震厄之形', cht='震厄之形', @@ -356,7 +367,7 @@ plane_id=2021201, ) Stagnant_Shadow_Puppetry = DungeonList( - id=33, + id=34, name='Stagnant_Shadow_Puppetry', cn='偃偶之形', cht='偃偶之形', @@ -367,7 +378,7 @@ plane_id=2022201, ) Stagnant_Shadow_Abomination = DungeonList( - id=34, + id=35, name='Stagnant_Shadow_Abomination', cn='孽兽之形', cht='孽獸之形', @@ -378,7 +389,7 @@ plane_id=2023201, ) Stagnant_Shadow_Scorch = DungeonList( - id=35, + id=36, name='Stagnant_Shadow_Scorch', cn='燔灼之形', cht='燔灼之形', @@ -389,7 +400,7 @@ plane_id=2012101, ) Stagnant_Shadow_Celestial = DungeonList( - id=36, + id=37, name='Stagnant_Shadow_Celestial', cn='天人之形', cht='天人之形', @@ -400,7 +411,7 @@ plane_id=2023101, ) Stagnant_Shadow_Perdition = DungeonList( - id=37, + id=38, name='Stagnant_Shadow_Perdition', cn='幽府之形', cht='幽府之形', @@ -411,18 +422,18 @@ plane_id=2022301, ) Stagnant_Shadow_Nectar = DungeonList( - id=38, + id=39, name='Stagnant_Shadow_Nectar', cn='冰酿之形', cht='冰釀之形', en='Shape of Nectar', jp='氷醸の形', - es='Forma del néctar', + es='Forma del nectar', dungeon_id=1115, plane_id=2031101, ) Stagnant_Shadow_Roast = DungeonList( - id=39, + id=40, name='Stagnant_Shadow_Roast', cn='焦炙之形', cht='焦炙之形', @@ -433,7 +444,7 @@ plane_id=2031301, ) Stagnant_Shadow_Ire = DungeonList( - id=40, + id=41, name='Stagnant_Shadow_Ire', cn='嗔怒之形', cht='嗔怒之形', @@ -444,7 +455,7 @@ plane_id=2032201, ) Stagnant_Shadow_Duty = DungeonList( - id=41, + id=42, name='Stagnant_Shadow_Duty', cn='职司之形', cht='職司之形', @@ -455,7 +466,7 @@ plane_id=2032101, ) Stagnant_Shadow_Timbre = DungeonList( - id=42, + id=43, name='Stagnant_Shadow_Timbre', cn='弦音之形', cht='絃音之形', @@ -466,7 +477,7 @@ plane_id=2033201, ) Stagnant_Shadow_Mechwolf = DungeonList( - id=43, + id=44, name='Stagnant_Shadow_Mechwolf', cn='机狼之形', cht='機狼之形', @@ -477,7 +488,7 @@ plane_id=2024101, ) Stagnant_Shadow_Gloam = DungeonList( - id=44, + id=45, name='Stagnant_Shadow_Gloam', cn='今宵之形', cht='今宵之形', @@ -487,8 +498,19 @@ dungeon_id=1121, plane_id=2033201, ) +Cavern_of_Corrosion_Path_of_Aria = DungeonList( + id=46, + name='Cavern_of_Corrosion_Path_of_Aria', + cn='弦歌之径', + cht='絃歌之徑', + en='Path of Aria', + jp='弦歌の路', + es='Senda de la canción', + dungeon_id=1212, + plane_id=2041301, +) Cavern_of_Corrosion_Path_of_Uncertainty = DungeonList( - id=45, + id=47, name='Cavern_of_Corrosion_Path_of_Uncertainty', cn='迷识之径', cht='迷識之徑', @@ -499,7 +521,7 @@ plane_id=2024101, ) Cavern_of_Corrosion_Path_of_Cavalier = DungeonList( - id=46, + id=48, name='Cavern_of_Corrosion_Path_of_Cavalier', cn='勇骑之径', cht='勇騎之徑', @@ -510,7 +532,7 @@ plane_id=2033201, ) Cavern_of_Corrosion_Path_of_Dreamdive = DungeonList( - id=47, + id=49, name='Cavern_of_Corrosion_Path_of_Dreamdive', cn='梦潜之径', cht='夢潛之徑', @@ -521,7 +543,7 @@ plane_id=2031101, ) Cavern_of_Corrosion_Path_of_Darkness = DungeonList( - id=48, + id=50, name='Cavern_of_Corrosion_Path_of_Darkness', cn='幽冥之径', cht='幽冥之徑', @@ -532,7 +554,7 @@ plane_id=2022301, ) Cavern_of_Corrosion_Path_of_Elixir_Seekers = DungeonList( - id=49, + id=51, name='Cavern_of_Corrosion_Path_of_Elixir_Seekers', cn='药使之径', cht='藥使之徑', @@ -543,7 +565,7 @@ plane_id=2023101, ) Cavern_of_Corrosion_Path_of_Conflagration = DungeonList( - id=50, + id=52, name='Cavern_of_Corrosion_Path_of_Conflagration', cn='野焰之径', cht='野焰之徑', @@ -554,7 +576,7 @@ plane_id=2021201, ) Cavern_of_Corrosion_Path_of_Holy_Hymn = DungeonList( - id=51, + id=53, name='Cavern_of_Corrosion_Path_of_Holy_Hymn', cn='圣颂之径', cht='聖頌之徑', @@ -565,7 +587,7 @@ plane_id=2021101, ) Cavern_of_Corrosion_Path_of_Providence = DungeonList( - id=52, + id=54, name='Cavern_of_Corrosion_Path_of_Providence', cn='睿治之径', cht='睿治之徑', @@ -576,7 +598,7 @@ plane_id=2013401, ) Cavern_of_Corrosion_Path_of_Drifting = DungeonList( - id=53, + id=55, name='Cavern_of_Corrosion_Path_of_Drifting', cn='漂泊之径', cht='漂泊之徑', @@ -587,7 +609,7 @@ plane_id=2013201, ) Cavern_of_Corrosion_Path_of_Jabbing_Punch = DungeonList( - id=54, + id=56, name='Cavern_of_Corrosion_Path_of_Jabbing_Punch', cn='迅拳之径', cht='迅拳之徑', @@ -598,18 +620,18 @@ plane_id=2013101, ) Cavern_of_Corrosion_Path_of_Gelid_Wind = DungeonList( - id=55, + id=57, name='Cavern_of_Corrosion_Path_of_Gelid_Wind', cn='霜风之径', cht='霜風之徑', en='Path of Gelid Wind', jp='霜風の路', - es='Senda del viento gélido', + es='Senda del viento gelido', dungeon_id=1201, plane_id=2000201, ) Echo_of_War_Inner_Beast_Battlefield = DungeonList( - id=56, + id=58, name='Echo_of_War_Inner_Beast_Battlefield', cn='心兽的战场•历战余响', cht='心獸的戰場•歷戰餘響', @@ -620,7 +642,7 @@ plane_id=2024201, ) Echo_of_War_Salutations_of_Ashen_Dreams = DungeonList( - id=57, + id=59, name='Echo_of_War_Salutations_of_Ashen_Dreams', cn='尘梦的赞礼•历战余响', cht='塵夢的讚禮•歷戰餘響', @@ -631,7 +653,7 @@ plane_id=2033201, ) Echo_of_War_Borehole_Planet_Old_Crater = DungeonList( - id=58, + id=60, name='Echo_of_War_Borehole_Planet_Old_Crater', cn='蛀星的旧靥•历战余响', cht='蛀星的舊靨•歷戰餘響', @@ -642,7 +664,7 @@ plane_id=2000401, ) Echo_of_War_Divine_Seed = DungeonList( - id=59, + id=61, name='Echo_of_War_Divine_Seed', cn='不死的神实•历战余响', cht='不死的神實•歷戰餘響', @@ -653,7 +675,7 @@ plane_id=2023201, ) Echo_of_War_End_of_the_Eternal_Freeze = DungeonList( - id=60, + id=62, name='Echo_of_War_End_of_the_Eternal_Freeze', cn='寒潮的落幕•历战余响', cht='寒潮的落幕•歷戰餘響', @@ -664,7 +686,7 @@ plane_id=2013401, ) Echo_of_War_Destruction_Beginning = DungeonList( - id=61, + id=63, name='Echo_of_War_Destruction_Beginning', cn='毁灭的开端•历战余响', cht='毀滅的開端•歷戰餘響', @@ -675,7 +697,7 @@ plane_id=2000301, ) Simulated_Universe_World_1 = DungeonList( - id=62, + id=64, name='Simulated_Universe_World_1', cn='第一世界', cht='第一世界', @@ -686,7 +708,7 @@ plane_id=100000104, ) Simulated_Universe_World_3 = DungeonList( - id=63, + id=65, name='Simulated_Universe_World_3', cn='第三世界', cht='第三世界', @@ -697,7 +719,7 @@ plane_id=100000104, ) Simulated_Universe_World_4 = DungeonList( - id=64, + id=66, name='Simulated_Universe_World_4', cn='第四世界', cht='第四世界', @@ -708,7 +730,7 @@ plane_id=100000104, ) Simulated_Universe_World_5 = DungeonList( - id=65, + id=67, name='Simulated_Universe_World_5', cn='第五世界', cht='第五世界', @@ -719,7 +741,7 @@ plane_id=100000104, ) Simulated_Universe_World_6 = DungeonList( - id=66, + id=68, name='Simulated_Universe_World_6', cn='第六世界', cht='第六世界', @@ -730,7 +752,7 @@ plane_id=100000104, ) Simulated_Universe_World_7 = DungeonList( - id=67, + id=69, name='Simulated_Universe_World_7', cn='第七世界', cht='第七世界', @@ -741,7 +763,7 @@ plane_id=100000104, ) Simulated_Universe_World_8 = DungeonList( - id=68, + id=70, name='Simulated_Universe_World_8', cn='第八世界', cht='第八世界', @@ -752,7 +774,7 @@ plane_id=100000104, ) Simulated_Universe_World_9 = DungeonList( - id=69, + id=71, name='Simulated_Universe_World_9', cn='第九世界', cht='第九世界', @@ -763,18 +785,18 @@ plane_id=100000104, ) Divergent_Universe_Famished_Worker = DungeonList( - id=70, + id=72, name='Divergent_Universe_Famished_Worker', cn='蠹役饥肠', cht='蠹役飢腸', en='Famished Worker', jp='飢えた虫卒', - es='Obrero famélico', + es='Obrero famelico', dungeon_id=310, plane_id=0, ) Divergent_Universe_Eternal_Comedy = DungeonList( - id=71, + id=73, name='Divergent_Universe_Eternal_Comedy', cn='永恒笑剧', cht='永恆笑劇', @@ -785,7 +807,7 @@ plane_id=0, ) Divergent_Universe_To_Sweet_Dreams = DungeonList( - id=72, + id=74, name='Divergent_Universe_To_Sweet_Dreams', cn='伴你入眠', cht='伴你入眠', @@ -796,7 +818,7 @@ plane_id=0, ) Divergent_Universe_Pouring_Blades = DungeonList( - id=73, + id=75, name='Divergent_Universe_Pouring_Blades', cn='天剑如雨', cht='天劍如雨', @@ -807,7 +829,7 @@ plane_id=0, ) Divergent_Universe_Fruit_of_Evil = DungeonList( - id=74, + id=76, name='Divergent_Universe_Fruit_of_Evil', cn='孽果盘生', cht='孽果盤生', @@ -818,7 +840,7 @@ plane_id=0, ) Divergent_Universe_Permafrost = DungeonList( - id=75, + id=77, name='Divergent_Universe_Permafrost', cn='百年冻土', cht='百年凍土', @@ -829,7 +851,7 @@ plane_id=0, ) Divergent_Universe_Gentle_Words = DungeonList( - id=76, + id=78, name='Divergent_Universe_Gentle_Words', cn='温柔话语', cht='溫柔話語', @@ -840,7 +862,7 @@ plane_id=0, ) Divergent_Universe_Smelted_Heart = DungeonList( - id=77, + id=79, name='Divergent_Universe_Smelted_Heart', cn='浴火钢心', cht='浴火鋼心', @@ -851,7 +873,7 @@ plane_id=0, ) Divergent_Universe_Untoppled_Walls = DungeonList( - id=78, + id=80, name='Divergent_Universe_Untoppled_Walls', cn='坚城不倒', cht='堅城不倒', @@ -862,7 +884,7 @@ plane_id=0, ) Simulated_Universe_The_Swarm_Disaster = DungeonList( - id=79, + id=81, name='Simulated_Universe_The_Swarm_Disaster', cn='寰宇蝗灾', cht='寰宇蝗災', @@ -873,7 +895,7 @@ plane_id=-1, ) Simulated_Universe_Gold_and_Gears = DungeonList( - id=80, + id=82, name='Simulated_Universe_Gold_and_Gears', cn='黄金与机械', cht='黃金與機械', @@ -884,7 +906,7 @@ plane_id=-1, ) Memory_of_Chaos = DungeonList( - id=81, + id=83, name='Memory_of_Chaos', cn='混沌回忆', cht='混沌回憶', @@ -895,7 +917,7 @@ plane_id=-1, ) The_Voyage_of_Navis_Astriger = DungeonList( - id=82, + id=84, name='The_Voyage_of_Navis_Astriger', cn='天艟求仙迷航录', cht='天艟求仙迷航錄', @@ -906,7 +928,7 @@ plane_id=-1, ) The_Last_Vestiges_of_Towering_Citadel = DungeonList( - id=83, + id=85, name='The_Last_Vestiges_of_Towering_Citadel', cn='永屹之城遗秘', cht='永屹之城遺秘', diff --git a/tasks/dungeon/keywords/dungeon_detailed.py b/tasks/dungeon/keywords/dungeon_detailed.py index 3388a5fc7..67eacc221 100644 --- a/tasks/dungeon/keywords/dungeon_detailed.py +++ b/tasks/dungeon/keywords/dungeon_detailed.py @@ -132,11 +132,11 @@ Stagnant_Shadow_Nectar = DungeonDetailed( id=15, name='Stagnant_Shadow_Nectar', - cn='角色晋阶材料:冰(米沙)', - cht='角色晉階材料:冰(米沙)', - en='Ascension: Ice (Misha)', - jp='キャラクター昇格素材:氷(ミーシャ)', - es='Ascension: Hielo (Misha)', + cn='角色晋阶材料:冰(米沙 / 大黑塔)', + cht='角色晉階材料:冰(米沙 / 大黑塔)', + en='Ascension: Ice (Misha / The Herta)', + jp='キャラクター昇格素材:氷(ミーシャ / マダム・ヘルタ)', + es='Ascension: Hielo (Misha / Sra. Herta)', ) Stagnant_Shadow_Roast = DungeonDetailed( id=16, @@ -177,11 +177,11 @@ Stagnant_Shadow_Mechwolf = DungeonDetailed( id=20, name='Stagnant_Shadow_Mechwolf', - cn='角色晋阶材料:雷(貊泽)', - cht='角色晉階材料:雷(貊澤)', - en='Ascension: Lightning (Moze)', - jp='キャラクター昇格素材:雷(モゼ)', - es='Ascension: Rayo (Moze)', + cn='角色晋阶材料:雷(貊泽 / 阿格莱雅)', + cht='角色晉階材料:雷(貊澤 / 阿格萊雅)', + en='Ascension: Lightning (Moze / Aglaea)', + jp='キャラクター昇格素材:雷(モゼ / アグライア)', + es='Ascension: Rayo (Moze / Aglaea)', ) Stagnant_Shadow_Gloam = DungeonDetailed( id=21, diff --git a/tasks/map/keywords/plane.py b/tasks/map/keywords/plane.py index 2c39f8daa..b8f0a1d39 100644 --- a/tasks/map/keywords/plane.py +++ b/tasks/map/keywords/plane.py @@ -619,3 +619,58 @@ world_id=3, plane_id=1030601, ) +Special_EternalHolyCityOkhema = MapPlane( + id=58, + name='Special_EternalHolyCityOkhema', + cn='「永恒圣城」奥赫玛', + cht='「永恆聖城」奧赫瑪', + en='"Eternal Holy City" Okhema', + jp='「永遠の聖都」オクヘイマ', + es='Oqueima, ciudad sagrada eterna', + world_id=4, + plane_id=1040101, +) +Special_VortexofGenesis = MapPlane( + id=59, + name='Special_VortexofGenesis', + cn='创世涡心', + cht='創世渦心', + en='Vortex of Genesis', + jp='創世の渦心', + es='Vórtice de la Creación', + world_id=4, + plane_id=1040201, +) +Special_StrifeRuinsCastrumKremnos = MapPlane( + id=60, + name='Special_StrifeRuinsCastrumKremnos', + cn='「纷争荒墟」悬锋城', + cht='「紛爭荒墟」懸鋒城', + en='"Strife Ruins" Castrum Kremnos', + jp='「紛争の廃墟」クレムノス', + es='Castrum Kremnos, Ruinas del Conflicto', + world_id=4, + plane_id=2041101, +) +Special_BloodbathedBattlefrontCastrumKremnos = MapPlane( + id=61, + name='Special_BloodbathedBattlefrontCastrumKremnos', + cn='「浴血战端」悬锋城', + cht='「浴血戰端」懸鋒城', + en='"Bloodbathed Battlefront" Castrum Kremnos', + jp='「血染めの戦端」クレムノス', + es='Castrum Kremnos, Frente sangriento', + world_id=4, + plane_id=2041301, +) +Special_AbyssofFateJanusopolis = MapPlane( + id=62, + name='Special_AbyssofFateJanusopolis', + cn='「命运重渊」雅努萨波利斯', + cht='「命運重淵」雅努薩波利斯', + en='"Abyss of Fate" Janusopolis', + jp='「運命の深淵」ヤヌサポリス', + es='Janópolis, Abismo del Destino', + world_id=4, + plane_id=2041201, +) diff --git a/tasks/planner/keywords/item_ascension.py b/tasks/planner/keywords/item_ascension.py index 4359b1f69..0cfcee851 100644 --- a/tasks/planner/keywords/item_ascension.py +++ b/tasks/planner/keywords/item_ascension.py @@ -10,7 +10,7 @@ cht='鐵狼碎齒', en='Broken Teeth of Iron Wolf', jp='鉄狼の砕けた刃', - es='Dientes rotos del huargo férreo', + es='Dientes rotos del huargo ferreo', rarity='VeryRare', item_id=110401, item_group=1100, @@ -127,7 +127,7 @@ cht='苦寒晶殼', en='Gelid Chitin', jp='苦寒晶殻', - es='Quitina gélida', + es='Quitina gelida', rarity='VeryRare', item_id=110413, item_group=1100, diff --git a/tasks/planner/keywords/item_calyx.py b/tasks/planner/keywords/item_calyx.py index be2208de8..a1a207cc6 100644 --- a/tasks/planner/keywords/item_calyx.py +++ b/tasks/planner/keywords/item_calyx.py @@ -179,7 +179,7 @@ cht='永壽天華', en='Immortal Aeroblossom', jp='永寿の天華', - es='Flor etérea inmortal', + es='Flor eterea inmortal', rarity='Rare', item_id=113002, item_group=1405, diff --git a/tasks/planner/keywords/item_currency.py b/tasks/planner/keywords/item_currency.py index e5c28fbf1..139b824f0 100644 --- a/tasks/planner/keywords/item_currency.py +++ b/tasks/planner/keywords/item_currency.py @@ -10,7 +10,7 @@ cht='信用點', en='Credit', jp='信用ポイント', - es='Crédito', + es='Credito', rarity='Rare', item_id=2, item_group=0, diff --git a/tasks/planner/keywords/item_trace.py b/tasks/planner/keywords/item_trace.py index 1f809f237..0ca09aa43 100644 --- a/tasks/planner/keywords/item_trace.py +++ b/tasks/planner/keywords/item_trace.py @@ -549,3 +549,42 @@ item_group=1217, dungeon_id=1021, ) +Bija_of_Consciousness = ItemTrace( + id=43, + name='Bija_of_Consciousness', + cn='思量的种', + cht='思量的種', + en='Bija of Consciousness', + jp='イの種', + es='Semilla de la reflexión', + rarity='NotNormal', + item_id=110251, + item_group=1218, + dungeon_id=1024, +) +Seedling_of_Manas = ItemTrace( + id=44, + name='Seedling_of_Manas', + cn='末那芽苗', + cht='末那芽苗', + en='Seedling of Manas', + jp='マナの苗', + es='Brote de manas', + rarity='Rare', + item_id=110252, + item_group=1218, + dungeon_id=1024, +) +Flower_of_Alaya = ItemTrace( + id=45, + name='Flower_of_Alaya', + cn='阿赖耶华', + cht='阿賴耶華', + en='Flower of Alaya', + jp='アラヤの花', + es='Alayawah', + rarity='VeryRare', + item_id=110253, + item_group=1218, + dungeon_id=1024, +) diff --git a/tasks/planner/keywords/item_valuable.py b/tasks/planner/keywords/item_valuable.py index 5d24bf30f..0426ff667 100644 --- a/tasks/planner/keywords/item_valuable.py +++ b/tasks/planner/keywords/item_valuable.py @@ -3,21 +3,21 @@ # This file was auto-generated, do not modify it manually. To generate: # ``` python -m dev_tools.keyword_extract ``` -Wishful_Resign = ItemValuable( +Wishful_Resin = ItemValuable( id=1, - name='Wishful_Resign', + name='Wishful_Resin', cn='遂愿尘脂', - cht='', - en='Wishful Resign', - jp='', - es='', + cht='遂願塵脂', + en='Wishful Resin', + jp='遂願樹脂', + es='Resina de los deseos', rarity='SuperRare', - item_id=235, + item_id=237, item_group=0, dungeon_id=-1, ) Self_Modeling_Resin = ItemValuable( - id=1, + id=2, name='Self_Modeling_Resin', cn='自塑尘脂', cht='自塑塵脂', @@ -30,15 +30,15 @@ dungeon_id=-1, ) Variable_Dice = ItemValuable( - id=1, + id=3, name='Variable_Dice', cn='变量骰子', - cht='', + cht='變量骰子', en='Variable Dice', - jp='', - es='', + jp='変数サイコロ', + es='Dado variable', rarity='SuperRare', - item_id=237, + item_id=238, item_group=0, dungeon_id=-1, ) diff --git a/tasks/rogue/keywords/bonus.py b/tasks/rogue/keywords/bonus.py index f9c3abc22..c879dc51e 100644 --- a/tasks/rogue/keywords/bonus.py +++ b/tasks/rogue/keywords/bonus.py @@ -318,3 +318,48 @@ jp='沈黙の孔', es='Agujero de la quietud', ) +Water_Mirrored_Moon = RogueBonus( + id=36, + name='Water_Mirrored_Moon', + cn='水中月', + cht='水中月', + en='Water-Mirrored Moon', + jp='水鏡の月', + es='Luna en el agua', +) +Stardust = RogueBonus( + id=37, + name='Stardust', + cn='星之尘', + cht='星之塵', + en='Stardust', + jp='星の塵', + es='Polvo estelar', +) +Praisesong = RogueBonus( + id=38, + name='Praisesong', + cn='赞美诗', + cht='讚美詩', + en='Praisesong', + jp='賛美歌', + es='Alabanza', +) +Data_Hole = RogueBonus( + id=39, + name='Data_Hole', + cn='数据孔', + cht='資料孔', + en='Data Hole', + jp='ポート', + es='Agujero de datos', +) +Butterfly_Adores_Flower = RogueBonus( + id=40, + name='Butterfly_Adores_Flower', + cn='蝶恋花', + cht='蝶戀花', + en='Butterfly Adores Flower', + jp='蝶恋花', + es='Amor floral de mariposa', +) diff --git a/tasks/rogue/keywords/curio.py b/tasks/rogue/keywords/curio.py index ea3f7bb7a..be3c4f35e 100644 --- a/tasks/rogue/keywords/curio.py +++ b/tasks/rogue/keywords/curio.py @@ -903,579 +903,39 @@ jp='言語の復活', es='Resurrección del lenguaje', ) -Rubert_Empire_Mechanical_Lever = RogueCurio( +Warping_Compound_Eye_Decrypted = RogueCurio( id=101, - name='Rubert_Empire_Mechanical_Lever', - cn='鲁珀特帝国机械杠杆', - cht='魯珀特帝國機械槓桿', - en='Rubert Empire Mechanical Lever', - jp='ルパート帝国の機械型槓桿', - es='Palanca mecánica del imperio de Rupert', -) -Rubert_Empire_Mechanical_Piston = RogueCurio( + name='Warping_Compound_Eye_Decrypted', + cn='跃迁复眼(破解版)', + cht='躍遷複眼(破解版)', + en='Warping Compound Eye (Decrypted)', + jp='跳躍複眼(クラック版)', + es='Ojo compuesto luminoso (versión pirateada)', +) +Dimension_Reduction_Dice_Decrypted = RogueCurio( id=102, - name='Rubert_Empire_Mechanical_Piston', - cn='鲁珀特帝国机械活塞', - cht='魯珀特帝國機械活塞', - en='Rubert Empire Mechanical Piston', - jp='ルパート帝国の機械喞子', - es='Pistón mecánico del imperio de Rupert', -) -Self_Consciousness_Relaxation = RogueCurio( + name='Dimension_Reduction_Dice_Decrypted', + cn='降维骰子(破解版)', + cht='降維骰子(破解版)', + en='Dimension Reduction Dice (Decrypted)', + jp='次元削減ダイス(クラック版)', + es='Dado de la reducción dimensional (versión pirateada)', +) +Wish_Upon_a_Star_Decrypted = RogueCurio( id=103, - name='Self_Consciousness_Relaxation', - cn='自我意识的舒张压', - cht='自我意識的舒張壓', - en='Self-Consciousness Relaxation', - jp='自己意識の最低血圧', - es='Palpitación de la propia conciencia', -) -Shatterbone_Blade = RogueCurio( + name='Wish_Upon_a_Star_Decrypted', + cn='许愿星(破解版)', + cht='許願星(破解版)', + en='Wish Upon a Star (Decrypted)', + jp='願い星(クラック版)', + es='Estrella de los deseos (versión pirateada)', +) +Memory_Cycle_Decrypted = RogueCurio( id=104, - name='Shatterbone_Blade', - cn='断骨剑', - cht='斷骨劍', - en='Shatterbone Blade', - jp='断骨剣', - es='Espada de hueso roto', -) -Temporary_Stake = RogueCurio( - id=105, - name='Temporary_Stake', - cn='临时赌资', - cht='臨時賭資', - en='Temporary Stake', - jp='臨時の種銭', - es='Apuesta temporal', -) -Struggling_Color = RogueCurio( - id=106, - name='Struggling_Color', - cn='挣扎的色彩', - cht='掙扎的色彩', - en='Struggling Color', - jp='葛藤する色彩', - es='Color en apuros', -) -Celesticomet_Alloy = RogueCurio( - id=107, - name='Celesticomet_Alloy', - cn='天彗合金', - cht='天彗合金', - en='Celesticomet Alloy', - jp='天彗合金', - es='Aleación celesticometa', -) -Celesticomet_Alloy_Type_I = RogueCurio( - id=108, - name='Celesticomet_Alloy_Type_I', - cn='天彗合金Ⅰ型', - cht='天彗合金Ⅰ型', - en='Celesticomet Alloy Type-I', - jp='天彗合金I型', - es='Aleación celesticometa tipo I', -) -Punklordian_Regards = RogueCurio( - id=109, - name='Punklordian_Regards', - cn='朋克洛德问候', - cht='龐克洛德問候', - en='Punklordian Regards', - jp='パンクロードの挨拶', - es='Saludos de Punklorde', -) -Joyous_Incense = RogueCurio( - id=110, - name='Joyous_Incense', - cn='喜乐熏香', - cht='喜樂薰香', - en='Joyous Incense', - jp='喜びの香り', - es='Incienso jovial', -) -Celesticomet_Alloy_Type_II = RogueCurio( - id=111, - name='Celesticomet_Alloy_Type_II', - cn='天彗合金Ⅱ型', - cht='天彗合金Ⅱ型', - en='Celesticomet Alloy Type-II', - jp='天彗合金II型', - es='Aleación celesticometa tipo II', -) -Tawot_Cards = RogueCurio( - id=112, - name='Tawot_Cards', - cn='塔奥牌', - cht='塔奧牌', - en='Tawot Cards', - jp='タオットカード', - es='Cartas de Tawot', -) -Memory_Cycle = RogueCurio( - id=113, - name='Memory_Cycle', - cn='记忆轮', - cht='記憶輪', - en='Memory Cycle', - jp='記憶のルーレット', - es='Ciclo de recuerdos', -) -Plaguenest = RogueCurio( - id=114, - name='Plaguenest', - cn='瘟疫巢都', - cht='瘟疫巢都', - en='Plaguenest', - jp='疫病の巣', - es='Colmena infestada', -) -Rubert_Empire_Difference_Machine = RogueCurio( - id=115, - name='Rubert_Empire_Difference_Machine', - cn='鲁珀特帝国差分机', - cht='魯珀特帝國差分機', - en='Rubert Empire Difference Machine', - jp='ルパート帝国の階差機関', - es='Diferenciador del imperio de Rupert', -) -Reunion_With_Death = RogueCurio( - id=116, - name='Reunion_With_Death', - cn='与死重逢', - cht='與死重逢', - en='Reunion With Death', - jp='死との再会', - es='Reunión con la muerte', -) -Talot_Doll = RogueCurio( - id=117, - name='Talot_Doll', - cn='塔洛特玩偶', - cht='塔洛特玩偶', - en='Talot Doll', - jp='タロート人形', - es='Muñeco talot', -) -Celesticomet_Alloy_Type_III = RogueCurio( - id=118, - name='Celesticomet_Alloy_Type_III', - cn='天彗合金Ⅲ型', - cht='天彗合金Ⅲ型', - en='Celesticomet Alloy Type-III', - jp='天彗合金III型', - es='Aleación celesticometa tipo III', -) -Absolute_Failure_Prescription = RogueCurio( - id=119, - name='Absolute_Failure_Prescription', - cn='绝对失败处方', - cht='絕對失敗處方', - en='Absolute Failure Prescription', - jp='絶対的失敗の処方箋', - es='Receta de fracaso absoluto', -) -Excess_Nutrition = RogueCurio( - id=120, - name='Excess_Nutrition', - cn='营养过剩', - cht='營養過剩', - en='Excess Nutrition', - jp='栄養過多', - es='Nutrición excesiva', -) -Dignity_and_Passion = RogueCurio( - id=121, - name='Dignity_and_Passion', - cn='尊严与热忱', - cht='尊嚴與熱忱', - en='Dignity and Passion', - jp='尊厳と熱意', - es='Dignidad y pasión', -) -Cumulous_Steak = RogueCurio( - id=122, - name='Cumulous_Steak', - cn='云间肉排', - cht='雲間肉排', - en='Cumulous Steak', - jp='雲間ステーキ', - es='Filete nubloso', -) -Lapispeaker_Flakes = RogueCurio( - id=123, - name='Lapispeaker_Flakes', - cn='石语者结片', - cht='石語者結片', - en="Lapispeakers' Flakes", - jp='ストーンウィスパーの情報片', - es='Escamas de parlalíticos', -) -Revitalization_310 = RogueCurio( - id=124, - name='Revitalization_310', - cn='醒觉-310', - cht='醒覺-310', - en='Revitalization-310', - jp='アウェイク-310', - es='Revitalización-310', -) -Dreamdive_Can = RogueCurio( - id=125, - name='Dreamdive_Can', - cn='入梦罐', - cht='入夢罐', - en='Dreamdive Can', - jp='ドリーム缶', - es='Lata de inmersión onírica', -) -Parallel_Universe_Walkie_Talkie = RogueCurio( - id=126, - name='Parallel_Universe_Walkie_Talkie', - cn='平行宇宙对讲机', - cht='平行宇宙對講機', - en='Parallel Universe Walkie-Talkie', - jp='パラレル宇宙トランシーバー', - es='Intercomunicador de universos paralelos', -) -Most_Raucous = RogueCurio( - id=127, - name='Most_Raucous', - cn='喧哗上等', - cht='喧譁上等', - en='Most Raucous', - jp='喧嘩上等', - es='Bullicio de primera', -) -Delicious_Marimo_Candy = RogueCurio( - id=128, - name='Delicious_Marimo_Candy', - cn='美味球藻糖', - cht='美味球藻糖', - en='Delicious Marimo Candy', - jp='おいしいマリモキャンディー', - es='Caramelo de marimo delicioso', -) -First_Journey = RogueCurio( - id=129, - name='First_Journey', - cn='首次旅程', - cht='首次旅程', - en='First Journey', - jp='初めての旅', - es='Primer viaje', -) -Divine_Visage = RogueCurio( - id=130, - name='Divine_Visage', - cn='神圣容颜', - cht='神聖容顏', - en='Divine Visage', - jp='神聖な容姿', - es='Semblante divino', -) -Geniu_Confusion = RogueCurio( - id=131, - name='Geniu_Confusion', - cn='天才的迷茫时间', - cht='天才的迷茫時間', - en="Genius' Confusion", - jp='天才の迷いの時間', - es='Confusión de genio', -) -Bud_in_the_Wind = RogueCurio( - id=132, - name='Bud_in_the_Wind', - cn='风中花蕾', - cht='風中花蕾', - en='Bud in the Wind', - jp='風の中の花蕾', - es='Flor en el viento', -) -Road_to_Comets = RogueCurio( - id=133, - name='Road_to_Comets', - cn='通向彗星之路', - cht='通向彗星之路', - en='Road to Comets', - jp='彗星への道', - es='Camino hacia los cometas', -) -Ten_Light_Year_Foresight = RogueCurio( - id=134, - name='Ten_Light_Year_Foresight', - cn='十光年不晚', - cht='十光年不晚', - en="Ten Light-Years' Foresight", - jp='十光年滞らず', - es='Diez años luz sin retraso', -) -Silent_Song = RogueCurio( - id=135, - name='Silent_Song', - cn='静谧的歌声', - cht='靜謐的歌聲', - en='Silent Song', - jp='静謐の歌声', - es='Canción silenciosa', -) -Mock_Crimson_Moon = RogueCurio( - id=136, - name='Mock_Crimson_Moon', - cn='拟赤月', - cht='擬赤月', - en='Mock Crimson Moon', - jp='擬似紅月', - es='Luna carmesí emulada', -) -Chance_Jailbreak = RogueCurio( - id=137, - name='Chance_Jailbreak', - cn='偶有越狱', - cht='偶有越獄', - en='Chance Jailbreak', - jp='脱獄の機会', - es='Fuga fortuita', -) -Converse_of_Entropy = RogueCurio( - id=138, - name='Converse_of_Entropy', - cn='熵的逆命题', - cht='熵的逆命題', - en='Converse of Entropy', - jp='エントロピーの逆転', - es='Lo opuesto a la entropía', -) -End_of_an_Altruist = RogueCurio( - id=139, - name='End_of_an_Altruist', - cn='利他者的末路', - cht='利他者的末路', - en='End of an Altruist', - jp='利他主義者の末路', - es='El fin de una altruista', -) -Dreams_0110 = RogueCurio( - id=140, - name='Dreams_0110', - cn='有梦-0110', - cht='有夢-0110', - en='Dreams — 0110', - jp='夢-0110', - es='Sueños — 0110', -) -Punklordian_Balance = RogueCurio( - id=141, - name='Punklordian_Balance', - cn='朋克洛德平衡', - cht='龐克洛德平衡', - en='Punklordian Balance', - jp='パンクロードのバランス', - es='Equilibrio punklordiano', -) -Ashes_to_Ashes_Dust_to_Dust = RogueCurio( - id=142, - name='Ashes_to_Ashes_Dust_to_Dust', - cn='化作尘泥', - cht='化作塵泥', - en='Ashes to Ashes, Dust to Dust', - jp='塵と化す', - es='De la tierra vienes y a la tierra volverás', -) -Pineapple = RogueCurio( - id=143, - name='Pineapple', - cn='菠萝', - cht='鳳梨', - en='Pineapple', - jp='パイナップル', - es='Piña', -) -Written_in_Water = RogueCurio( - id=144, - name='Written_in_Water', - cn='水上书', - cht='水上書', - en='Written in Water', - jp='水上の書', - es='Escrito en agua', -) -Do_as_the_Locals_Do = RogueCurio( - id=145, - name='Do_as_the_Locals_Do', - cn='入乡随俗', - cht='入鄉隨俗', - en='Do as the Locals Do', - jp='郷に入っては郷に従え', - es='Donde fueres, haz lo que vieres', -) -Green_Fingers = RogueCurio( - id=146, - name='Green_Fingers', - cn='埋点土', - cht='埋點土', - en='Green Fingers', - jp='土少々', - es='Crecer en macetas', -) -Unknown_Lost_Property = RogueCurio( - id=147, - name='Unknown_Lost_Property', - cn='无主失物', - cht='無主失物', - en='Unknown Lost Property', - jp='主なき遺失物', - es='Objeto perdido desconocido', -) -Super_Overlord_Spinning_Top = RogueCurio( - id=148, - name='Super_Overlord_Spinning_Top', - cn='超霸王陀螺', - cht='超霸王陀螺', - en='Super Overlord Spinning Top', - jp='超覇王コマ', - es='Peonza "Señor Supremo"', -) -By_Any_Means_Necessary = RogueCurio( - id=149, - name='By_Any_Means_Necessary', - cn='虚高一丈', - cht='虛高一丈', - en='By Any Means Necessary', - jp='虚構強化', - es='A toda costa', -) -Old_Skin = RogueCurio( - id=150, - name='Old_Skin', - cn='旧皮囊', - cht='舊皮囊', - en='Old Skin', - jp='かつての肉体', - es='Cambio de piel', -) -Ancient_Communications = RogueCurio( - id=151, - name='Ancient_Communications', - cn='古老通讯', - cht='古老通訊', - en='Ancient Communications', - jp='昔の通信手段', - es='Comunicación ancestral', -) -Tangible_Luck = RogueCurio( - id=152, - name='Tangible_Luck', - cn='有形幸运', - cht='有形幸運', - en='Tangible Luck', - jp='幸運の形', - es='Suerte tangible', -) -Road_of_Prayers = RogueCurio( - id=153, - name='Road_of_Prayers', - cn='祈祷之路', - cht='祈禱之路', - en='Road of Prayers', - jp='祈りの道', - es='Camino de plegarias', -) -Automated_Experience = RogueCurio( - id=154, - name='Automated_Experience', - cn='自动化体验', - cht='自動化體驗', - en='Automated Experience', - jp='オートメーション', - es='Experiencia automatizada', -) -High_Calorie_Diet = RogueCurio( - id=155, - name='High_Calorie_Diet', - cn='高热饮食', - cht='高熱飲食', - en='High-Calorie Diet', - jp='高カロリー食', - es='Dieta calórica', -) -Peace_Box = RogueCurio( - id=156, - name='Peace_Box', - cn='和平箱', - cht='和平箱', - en='Peace Box', - jp='平和の箱', - es='Caja de paz', -) -The_Story_Presently = RogueCurio( - id=157, - name='The_Story_Presently', - cn='故事的现在时', - cht='故事的現在時', - en='The Story Presently', - jp='物語の現在', - es='La historia actual', -) -Genius_Society_Dangerous_Gossip = RogueCurio( - id=158, - name='Genius_Society_Dangerous_Gossip', - cn='天才俱乐部危险八卦', - cht='天才俱樂部危險八卦', - en="Genius Society's Dangerous Gossip", - jp='天才クラブの危険な噂', - es='Chisme peligroso del Círculo de Genios', -) -Hero_Triumphant_Return = RogueCurio( - id=159, - name='Hero_Triumphant_Return', - cn='英雄凯旋', - cht='英雄凱旋', - en="Hero's Triumphant Return", - jp='英雄の凱旋', - es='Regreso triunfante del héroe', -) -Unmanned_Comms = RogueCurio( - id=160, - name='Unmanned_Comms', - cn='无人通讯', - cht='無人通訊', - en='Unmanned Comms', - jp='応答なき通信', - es='Comunicaciones no tripuladas', -) -Doomsday_Compound_Eye_Early_Access_Version = RogueCurio( - id=161, - name='Doomsday_Compound_Eye_Early_Access_Version', - cn='末日复眼•先行版', - cht='末日複眼•首發版', - en='Doomsday Compound Eye — Early Access Version', - jp='終末の複眼・先行版', - es='Ojo del fin del mundo (versión de acceso anticipado)', -) -Towat_Cards = RogueCurio( - id=162, - name='Towat_Cards', - cn='奥塔牌', - cht='奧塔牌', - en='Towat Cards', - jp='オトッタカード', - es='Cartas de Towat', -) -High_Calorie_Diet_Decrypted = RogueCurio( - id=163, - name='High_Calorie_Diet_Decrypted', - cn='高热饮食(破解版)', - cht='高熱飲食(破解版)', - en='High-Calorie Diet (Decrypted)', - jp='高カロリー食(クラック版)', - es='Dieta calórica (versión pirateada)', -) -Unmanned_Comms_Decrypted = RogueCurio( - id=164, - name='Unmanned_Comms_Decrypted', - cn='无人通讯(破解版)', - cht='無人通訊(破解版)', - en='Unmanned Comms (Decrypted)', - jp='応答なき通信(クラック版)', - es='Comunicaciones no tripuladas (versión pirateada)', + name='Memory_Cycle_Decrypted', + cn='记忆轮(破解版)', + cht='記憶輪(破解版)', + en='Memory Cycle (Decrypted)', + jp='記憶のルーレット(クラック版)', + es='Ciclo de recuerdos (versión pirateada)', ) From 193f65e7a099d4648e40f78ebb2ddad54bce12c5 Mon Sep 17 00:00:00 2001 From: LmeSzinc <37934724+LmeSzinc@users.noreply.github.com> Date: Wed, 15 Jan 2025 22:47:04 +0800 Subject: [PATCH 2/6] Upd: Remove checks of early access dungeons as early access no longer exists after 3.0 --- tasks/dungeon/ui/llist.py | 53 ++++++--------------------------------- 1 file changed, 7 insertions(+), 46 deletions(-) diff --git a/tasks/dungeon/ui/llist.py b/tasks/dungeon/ui/llist.py index e7687e167..e4fc353df 100644 --- a/tasks/dungeon/ui/llist.py +++ b/tasks/dungeon/ui/llist.py @@ -11,7 +11,7 @@ from module.base.utils import area_center, area_limit, area_offset, color_similarity_2d, crop, image_size from module.logger import logger from module.ocr.ocr import Ocr, OcrResultButton -from module.ocr.utils import merge_result_button, split_and_pair_button_attr, split_and_pair_buttons +from module.ocr.utils import merge_result_button, split_and_pair_button_attr from module.ui.draggable_list import DraggableList from module.ui.switch import Switch from tasks.base.page import page_guide @@ -151,7 +151,6 @@ def _match_result(self, *args, **kwargs): class DraggableDungeonList(DraggableList): teleports: list[OcrResultButton] = [] navigates: list[OcrResultButton] = [] - early_access: list[OcrResultButton] = [] # target_dungeon: Dungeon attribute to use map planes to predict dungeons only. target_dungeon = None @@ -165,11 +164,10 @@ def wait_bottom_appear(self, main: "DungeonUIList", skip_first_screenshot=True): """ return main.dungeon_list_wait_list_end(skip_first_screenshot=skip_first_screenshot) - def load_rows(self, main: ModuleBase, allow_early_access=False): + def load_rows(self, main: ModuleBase): """ Args: main: - allow_early_access: True to allow dungeons that are in temporarily early access during events """ relative_area = (0, -40, 1280, 120) @@ -183,47 +181,20 @@ def create_ocr_class(*args, **kwargs): self.ocr_class = create_ocr_class super().load_rows(main=main) - # Check early access dungeons - buttons = DUNGEON_LIST.cur_buttons.copy() - for name, button in split_and_pair_buttons( - DUNGEON_LIST.cur_buttons, - split_func=lambda x: x != KEYWORDS_DUNGEON_ENTRANCE.Enter, - relative_area=relative_area - ): - logger.warning(f'Early access dungeon: {name}') - buttons.remove(name) - buttons.remove(button) - - # Remove early access dungeons - if not allow_early_access: - DUNGEON_LIST.cur_buttons = buttons - # From super.load_rows(), re-calculate indexes - indexes = [self.keyword2index(row.matched_keyword) - for row in self.cur_buttons] - indexes = [index for index in indexes if index] - - if not indexes: - logger.warning(f'No valid rows loaded into {self}') - return - - self.cur_min = min(indexes) - self.cur_max = max(indexes) - logger.attr(self.name, f'{self.cur_min} - {self.cur_max}') - # Replace dungeon.button with teleport self.teleports = list(split_and_pair_button_attr( self.cur_buttons, split_func=lambda x: x != KEYWORDS_DUNGEON_ENTRANCE.Teleport, relative_area=relative_area )) - self.navigates = list(split_and_pair_button_attr( + self.teleports += list(split_and_pair_button_attr( self.cur_buttons, - split_func=lambda x: x != KEYWORDS_DUNGEON_ENTRANCE.Navigate, + split_func=lambda x: x != KEYWORDS_DUNGEON_ENTRANCE.Enter, relative_area=relative_area )) - self.early_access = list(split_and_pair_button_attr( + self.navigates = list(split_and_pair_button_attr( self.cur_buttons, - split_func=lambda x: x != KEYWORDS_DUNGEON_ENTRANCE.Enter, + split_func=lambda x: x != KEYWORDS_DUNGEON_ENTRANCE.Navigate, relative_area=relative_area )) @@ -234,9 +205,6 @@ def create_ocr_class(*args, **kwargs): class DungeonUIList(UI): - # Whether current dungeon is an early access - # Value set in dungeon_insight() - dungeon_is_early_access = False def _dungeon_list_reset(self): """ @@ -315,7 +283,6 @@ def _dungeon_insight_index(self, dungeon: DungeonList): # Predict dungeon by plane name in calyxes where dungeons share the same names DUNGEON_LIST.target_dungeon = dungeon DUNGEON_LIST.check_row_order = True - self.dungeon_is_early_access = False # Insight dungeon DUNGEON_LIST.insight_row(dungeon, main=self) @@ -359,7 +326,6 @@ def _dungeon_insight_sort(self, dungeon: DungeonList): DUNGEON_LIST.search_button = OCR_DUNGEON_NAME DUNGEON_LIST.target_dungeon = dungeon DUNGEON_LIST.check_row_order = False - self.dungeon_is_early_access = False for _ in range(3): visited = set() @@ -368,16 +334,11 @@ def _dungeon_insight_sort(self, dungeon: DungeonList): while 1: visited_count = len(visited) # Load - DUNGEON_LIST.load_rows(main=self, allow_early_access=True) + DUNGEON_LIST.load_rows(main=self) for entrance in DUNGEON_LIST.teleports: if entrance.matched_keyword == dungeon: logger.info(f'Found dungeon {dungeon}') return True - for entrance in DUNGEON_LIST.early_access: - if entrance.matched_keyword == dungeon: - logger.info(f'Found early access dungeon {dungeon}') - self.dungeon_is_early_access = True - return True for entrance in DUNGEON_LIST.navigates: if entrance.matched_keyword == dungeon: logger.error(f'Trying to enter dungeon {dungeon}, but teleport is not unlocked') From ece2c1d769fb1a35a2af08d44ec1bf20b69499d3 Mon Sep 17 00:00:00 2001 From: LmeSzinc <37934724+LmeSzinc@users.noreply.github.com> Date: Wed, 15 Jan 2025 23:01:57 +0800 Subject: [PATCH 3/6] Fix: Always do combat_exit() after battle as 3.0 dungeons exits at COMBAT_PREPARE --- tasks/combat/combat.py | 5 ++++- tasks/dungeon/dungeon.py | 12 ++++-------- 2 files changed, 8 insertions(+), 9 deletions(-) diff --git a/tasks/combat/combat.py b/tasks/combat/combat.py index 37bcb2eac..8000dc5a7 100644 --- a/tasks/combat/combat.py +++ b/tasks/combat/combat.py @@ -1,6 +1,7 @@ from module.base.decorator import run_once from module.exception import RequestHumanTakeover from module.logger import logger +from tasks.base.page import page_guide from tasks.combat.assets.assets_combat_finish import COMBAT_AGAIN, COMBAT_EXIT from tasks.combat.assets.assets_combat_interact import DUNGEON_COMBAT_INTERACT from tasks.combat.assets.assets_combat_prepare import COMBAT_PREPARE @@ -383,6 +384,8 @@ def combat_exit(self, skip_first_screenshot=True): continue if self.handle_get_light_cone(): continue + if self.handle_ui_close(page_guide.check_button, interval=5): + continue def is_trailblaze_power_exhausted(self) -> bool: flag = self.config.stored.TrailblazePower.value < self.combat_wave_cost @@ -409,7 +412,7 @@ def combat(self, team: int = 1, wave_limit: int = 0, support_character: str = No in: COMBAT_PREPARE or page_main with DUNGEON_COMBAT_INTERACT out: page_main - or COMBAT_PREPARE if it is an early access dungeon + or COMBAT_PREPARE """ if not skip_first_screenshot: self.device.screenshot() diff --git a/tasks/dungeon/dungeon.py b/tasks/dungeon/dungeon.py index 89682f2da..d4e584ab5 100644 --- a/tasks/dungeon/dungeon.py +++ b/tasks/dungeon/dungeon.py @@ -179,6 +179,7 @@ def _dungeon_run(self, dungeon: DungeonList, team: int = None, wave_limit: int = # Check trailblaze power, this may stop current task if self.is_trailblaze_power_exhausted(): + self.combat_exit() # Scheduler self.delay_dungeon_task(dungeon) self.check_synthesize() @@ -204,7 +205,6 @@ def dungeon_run( in: Any out: page_main """ - self.dungeon_is_early_access = False require = self.require_compulsory_support() if require and self.support_once: logger.info('Run once with support') @@ -217,25 +217,21 @@ def dungeon_run( wave_limit -= 1 count += self._dungeon_run(dungeon=dungeon, team=team, wave_limit=wave_limit, support_character=support_character, skip_ui_switch=True) - # Early access dungeon ends at COMBAT_PREPARE - if self.dungeon_is_early_access: - self.combat_exit() + self.combat_exit() return count elif require and not self.support_once: # Run with support all the way count = self._dungeon_run(dungeon=dungeon, team=team, wave_limit=0, support_character=self.config.DungeonSupport_Character) - if self.dungeon_is_early_access: - self.combat_exit() + self.combat_exit() return count else: # Normal run count = self._dungeon_run(dungeon=dungeon, team=team, wave_limit=wave_limit, support_character=support_character) - if self.dungeon_is_early_access: - self.combat_exit() + self.combat_exit() return count def update_double_event_record(self): From 386ed2c9c16eaa4121af891b8c55b19a987b3f21 Mon Sep 17 00:00:00 2001 From: LmeSzinc <37934724+LmeSzinc@users.noreply.github.com> Date: Wed, 15 Jan 2025 23:04:35 +0800 Subject: [PATCH 4/6] Fix: Handle wrong OCR result 73/3001+) --- tasks/combat/stamina_status.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/tasks/combat/stamina_status.py b/tasks/combat/stamina_status.py index 2a0b787f5..881521b6b 100644 --- a/tasks/combat/stamina_status.py +++ b/tasks/combat/stamina_status.py @@ -21,7 +21,9 @@ def after_process(self, result): # 0*0/24 -> 0/240 result = re.sub(r'24$', '240', result) # * 50/2401+) + # 73/3001+) result = result.replace('/2401', '/240') + result = result.replace('/3001', '/240') return result From 73eba62de5cf3b67fd553db699cc213615fec8eb Mon Sep 17 00:00:00 2001 From: LmeSzinc <37934724+LmeSzinc@users.noreply.github.com> Date: Wed, 15 Jan 2025 23:09:00 +0800 Subject: [PATCH 5/6] Fix: Add retry on _get_battle_pass_level() --- tasks/battle_pass/battle_pass.py | 20 +++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) diff --git a/tasks/battle_pass/battle_pass.py b/tasks/battle_pass/battle_pass.py index 03b1758a8..40edf8405 100644 --- a/tasks/battle_pass/battle_pass.py +++ b/tasks/battle_pass/battle_pass.py @@ -250,9 +250,23 @@ def _claim_rewards(self, skip_first_screenshot=True): if self.handle_reward(): continue - def _get_battle_pass_level(self) -> int: - digit = Digit(OCR_LEVEL) - return digit.ocr_single_line(self.device.image) + def _get_battle_pass_level(self, skip_first_screenshot=True) -> int: + timeout = Timer(1.5, count=3).start() + ocr = Digit(OCR_LEVEL) + while 1: + if skip_first_screenshot: + skip_first_screenshot = False + else: + self.device.screenshot() + + level = ocr.ocr_single_line(self.device.image) + if level > 0: + return level + if timeout.reached(): + logger.warning('_get_battle_pass_level timeout') + break + + return 0 def _get_battle_pass_end(self) -> datetime.datetime: remain = Duration(OCR_REMAINING_TIME).ocr_single_line(self.device.image) From 4bb6899f571f106b39ab467304e0c06be2a4c343 Mon Sep 17 00:00:00 2001 From: LmeSzinc <37934724+LmeSzinc@users.noreply.github.com> Date: Wed, 15 Jan 2025 23:11:31 +0800 Subject: [PATCH 6/6] Fix: Handle wrong OCR result 73/3001+) --- tasks/combat/stamina_status.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tasks/combat/stamina_status.py b/tasks/combat/stamina_status.py index 881521b6b..87e44e2dd 100644 --- a/tasks/combat/stamina_status.py +++ b/tasks/combat/stamina_status.py @@ -23,7 +23,7 @@ def after_process(self, result): # * 50/2401+) # 73/3001+) result = result.replace('/2401', '/240') - result = result.replace('/3001', '/240') + result = result.replace('/3001', '/300') return result