diff --git a/assets/character/Robin.png b/assets/character/Robin.png new file mode 100644 index 000000000..17046c663 Binary files /dev/null and b/assets/character/Robin.png differ diff --git a/assets/share/combat/support/COMBAT_SUPPORT_LIST.png b/assets/share/combat/support/COMBAT_SUPPORT_LIST.png index 9917bea76..f728912e2 100644 Binary files a/assets/share/combat/support/COMBAT_SUPPORT_LIST.png and b/assets/share/combat/support/COMBAT_SUPPORT_LIST.png differ diff --git a/assets/share/combat/support/COMBAT_SUPPORT_LIST_GRID.png b/assets/share/combat/support/COMBAT_SUPPORT_LIST_GRID.png index a9839d371..d9d6f7597 100644 Binary files a/assets/share/combat/support/COMBAT_SUPPORT_LIST_GRID.png and b/assets/share/combat/support/COMBAT_SUPPORT_LIST_GRID.png differ diff --git a/assets/share/combat/support/COMBAT_SUPPORT_LIST_SCROLL.png b/assets/share/combat/support/COMBAT_SUPPORT_LIST_SCROLL.png index 1e4779af3..8e7040fec 100644 Binary files a/assets/share/combat/support/COMBAT_SUPPORT_LIST_SCROLL.png and b/assets/share/combat/support/COMBAT_SUPPORT_LIST_SCROLL.png differ diff --git a/assets/share/combat/support/SUPPORT_SELECTED.SEARCH.png b/assets/share/combat/support/SUPPORT_SELECTED.SEARCH.png index 10a1f29b5..b7966bf7c 100644 Binary files a/assets/share/combat/support/SUPPORT_SELECTED.SEARCH.png and b/assets/share/combat/support/SUPPORT_SELECTED.SEARCH.png differ diff --git a/dev_tools/keywords/base.py b/dev_tools/keywords/base.py index e44f0ac61..f9c147b3f 100644 --- a/dev_tools/keywords/base.py +++ b/dev_tools/keywords/base.py @@ -63,7 +63,8 @@ class TextMap: def text_to_variable(text): text = re.sub("'s |s' ", '_', text) - text = re.sub(r'[ \-—:\'/•.]+', '_', text) + text = re.sub(r'[ \-—–:\'/•.™]+', '_', text) + text = re.sub(r'[█]+', '', text) text = re.sub(r'[(),#"?!&%*]|', '', text) # text = re.sub(r'[#_]?\d+(_times?)?', '', text) text = re.sub(r'', '', text) diff --git a/dev_tools/keywords/dungeon_list.py b/dev_tools/keywords/dungeon_list.py index d18451619..35221f9da 100644 --- a/dev_tools/keywords/dungeon_list.py +++ b/dev_tools/keywords/dungeon_list.py @@ -16,6 +16,8 @@ def dungeon_name(name: str) -> str: name = f'Echo_of_War_{name}' if name in ['The_Swarm_Disaster', 'Gold_and_Gears']: name = f'Simulated_Universe_{name}' + name = name.replace('Stagnant_Shadow_Stagnant_Shadow', 'Stagnant_Shadow') + name = name.replace('Cavern_of_Corrosion_Cavern_of_Corrosion', 'Cavern_of_Corrosion') return name @@ -70,7 +72,10 @@ class GenerateDungeonList(GenerateKeyword): if text.startswith('Calyx_Crimson'): plane = MapPlane.find_plane_id(keyword['plane_id']) - text = f'{text}_{plane.name}' + if plane is not None: + text = f'{text}_{plane.name}' + else: + text = f'{text}_unknown_plane' return text def convert_keyword(self, text: str, lang: str) -> str: diff --git a/module/config/argument/args.json b/module/config/argument/args.json index 7e5fc8b74..fdf6bbc68 100644 --- a/module/config/argument/args.json +++ b/module/config/argument/args.json @@ -456,6 +456,7 @@ "Natasha", "Pela", "Qingque", + "Robin", "RuanMei", "Sampo", "Seele", @@ -1371,6 +1372,7 @@ "Natasha", "Pela", "Qingque", + "Robin", "RuanMei", "Sampo", "Seele", diff --git a/module/config/config_generated.py b/module/config/config_generated.py index 54781a597..bd2a1f641 100644 --- a/module/config/config_generated.py +++ b/module/config/config_generated.py @@ -59,7 +59,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, Bronya, Clara, DanHeng, DanHengImbibitorLunae, DrRatio, FuXuan, Gallagher, Gepard, Guinaifen, Hanya, Herta, Himeko, Hook, Huohuo, JingYuan, Jingliu, Kafka, Luka, Luocha, Lynx, March7th, Misha, Natasha, Pela, Qingque, RuanMei, Sampo, Seele, Serval, SilverWolf, Sparkle, Sushang, Tingyun, TopazNumby, TrailblazerDestruction, TrailblazerPreservation, Welt, Xueyi, Yanqing, Yukong + DungeonSupport_Character = 'FirstCharacter' # FirstCharacter, Acheron, Argenti, Arlan, Asta, Aventurine, Bailu, BlackSwan, Blade, Bronya, Clara, DanHeng, DanHengImbibitorLunae, DrRatio, FuXuan, Gallagher, Gepard, Guinaifen, Hanya, Herta, Himeko, Hook, Huohuo, JingYuan, Jingliu, Kafka, Luka, Luocha, Lynx, March7th, Misha, Natasha, Pela, Qingque, Robin, RuanMei, Sampo, Seele, Serval, SilverWolf, Sparkle, Sushang, Tingyun, TopazNumby, TrailblazerDestruction, TrailblazerPreservation, Welt, Xueyi, Yanqing, Yukong # Group `DungeonStorage` DungeonStorage_TrailblazePower = {} diff --git a/module/config/config_updater.py b/module/config/config_updater.py index b5e9c8e13..b0c85c473 100644 --- a/module/config/config_updater.py +++ b/module/config/config_updater.py @@ -100,7 +100,7 @@ class ConfigGenerator: options=[dungeon.name for dungeon in DungeonList.instances.values() if dungeon.is_Echo_of_War]) # Insert characters from tasks.character.keywords import CharacterList - unsupported_characters = [] + unsupported_characters = ["Boothill", "TrailblazerHarmony"] characters = [character.name for character in CharacterList.instances.values() if character.name not in unsupported_characters] option_add(keys='DungeonSupport.Character.option', options=characters) diff --git a/module/config/i18n/en-US.json b/module/config/i18n/en-US.json index 4639d1ff6..8097ae3d7 100644 --- a/module/config/i18n/en-US.json +++ b/module/config/i18n/en-US.json @@ -470,6 +470,7 @@ "Natasha": "Natasha", "Pela": "Pela", "Qingque": "Qingque", + "Robin": "Robin", "RuanMei": "Ruan Mei", "Sampo": "Sampo", "Seele": "Seele", diff --git a/module/config/i18n/es-ES.json b/module/config/i18n/es-ES.json index d3c378f0c..4be840c8a 100644 --- a/module/config/i18n/es-ES.json +++ b/module/config/i18n/es-ES.json @@ -470,6 +470,7 @@ "Natasha": "Natasha", "Pela": "Pela", "Qingque": "Qingque", + "Robin": "Robin", "RuanMei": "Ruan Mei", "Sampo": "Sampo", "Seele": "Seele", diff --git a/module/config/i18n/ja-JP.json b/module/config/i18n/ja-JP.json index 00da6dd94..68d47cc78 100644 --- a/module/config/i18n/ja-JP.json +++ b/module/config/i18n/ja-JP.json @@ -470,6 +470,7 @@ "Natasha": "ナターシャ", "Pela": "ペラ", "Qingque": "青雀", + "Robin": "ロビン", "RuanMei": "ルアン・メェイ", "Sampo": "サンポ", "Seele": "ゼーレ", diff --git a/module/config/i18n/zh-CN.json b/module/config/i18n/zh-CN.json index e93f56d34..46ec76f7a 100644 --- a/module/config/i18n/zh-CN.json +++ b/module/config/i18n/zh-CN.json @@ -470,6 +470,7 @@ "Natasha": "娜塔莎", "Pela": "佩拉", "Qingque": "青雀", + "Robin": "知更鸟", "RuanMei": "阮•梅", "Sampo": "桑博", "Seele": "希儿", diff --git a/module/config/i18n/zh-TW.json b/module/config/i18n/zh-TW.json index 75d160610..c8522459b 100644 --- a/module/config/i18n/zh-TW.json +++ b/module/config/i18n/zh-TW.json @@ -470,6 +470,7 @@ "Natasha": "娜塔莎", "Pela": "佩拉", "Qingque": "青雀", + "Robin": "知更鳥", "RuanMei": "阮•梅", "Sampo": "桑博", "Seele": "希兒", diff --git a/module/ocr/keyword.py b/module/ocr/keyword.py index 3593b1d46..82fcdf369 100644 --- a/module/ocr/keyword.py +++ b/module/ocr/keyword.py @@ -7,7 +7,7 @@ import module.config.server as server from module.exception import ScriptError # ord('.') = 65294 -REGEX_PUNCTUATION = re.compile(r'[ ,..\'"“”,。…::;;!!??·・•●〇°*※\-—-/\\\n\t()\[\]()「」『』【】《》[]]') +REGEX_PUNCTUATION = re.compile(r'[ ,..\'"“”,。…::;;!!??·・•●〇°*※\-—–-/\\\n\t()\[\]()「」『』【】《》[]]') def parse_name(n): diff --git a/route/rogue/Occurrence/Jarilo_BackwaterPass_F1.py b/route/rogue/Occurrence/Jarilo_BackwaterPass_F1.py index 35d322a9b..75fd8c9d6 100644 --- a/route/rogue/Occurrence/Jarilo_BackwaterPass_F1.py +++ b/route/rogue/Occurrence/Jarilo_BackwaterPass_F1.py @@ -67,3 +67,35 @@ class Route(RouteBase): self.clear_item(item) self.clear_event(event) # ===== End of generated waypoints ===== + + def Jarilo_BackwaterPass_F1_X611Y761(self): + """ + | Waypoint | Position | Direction | Rotation | + | -------- | ------------------------- | --------- | -------- | + | spawn | Waypoint((613.3, 755.7)), | 319.8 | 318 | + | item | Waypoint((603.0, 734.6)), | 342.6 | 343 | + | event | Waypoint((586.8, 724.7)), | 318.0 | 315 | + | exit_ | Waypoint((576.9, 728.6)), | 126.2 | 304 | + | exit1 | Waypoint((567.0, 732.7)), | 311.8 | 306 | + | exit2 | Waypoint((576.2, 722.0)), | 308.1 | 306 | + """ + self.map_init(plane=Jarilo_BackwaterPass, floor="F1", position=(611.4, 761.2)) + self.register_domain_exit( + Waypoint((576.9, 728.6)), end_rotation=304, + left_door=Waypoint((567.0, 732.7)), right_door=Waypoint((576.2, 722.0))) + item = Waypoint((603.0, 734.6)) + event = Waypoint((586.8, 724.7)) + + self.clear_item(item) + self.clear_event(event) + # ===== End of generated waypoints ===== + # Best 3 predictions: [ + # ('Occurrence_Jarilo_BackwaterPass_F1_X613Y755', 0.203, (611.4, 761.2)), + # ('Occurrence_Herta_SupplyZone_F2Rogue_X397Y223', 0.148, (381.4, 207.5)), + # ('Occurrence_Herta_SupplyZone_F2Rogue_X397Y227', 0.148, (381.4, 207.5)) + # ] + """ + Notes + Jarilo_BackwaterPass_F1_X611Y761 is the same as Jarilo_BackwaterPass_F1_X613Y755 + but for wrong spawn point detected + """ diff --git a/route/rogue/Occurrence/Jarilo_SilvermaneGuardRestrictedZone_F1.py b/route/rogue/Occurrence/Jarilo_SilvermaneGuardRestrictedZone_F1.py index 53bd2c1ea..3e91c22c6 100644 --- a/route/rogue/Occurrence/Jarilo_SilvermaneGuardRestrictedZone_F1.py +++ b/route/rogue/Occurrence/Jarilo_SilvermaneGuardRestrictedZone_F1.py @@ -49,6 +49,38 @@ class Route(RouteBase): self.clear_event(event) # ===== End of generated waypoints ===== + def Jarilo_SilvermaneGuardRestrictedZone_F1_X435Y233(self): + """ + | Waypoint | Position | Direction | Rotation | + | -------- | ------------------------- | --------- | -------- | + | spawn | Waypoint((439.3, 237.1)), | 354.1 | 348 | + | item | Waypoint((440.8, 215.2)), | 15.6 | 11 | + | event | Waypoint((434.8, 192.4)), | 355.9 | 359 | + | exit_ | Waypoint((428.6, 190.4)), | 76.4 | 338 | + | exit1 | Waypoint((416.8, 184.4)), | 337.5 | 334 | + | exit2 | Waypoint((428.8, 180.4)), | 339.1 | 336 | + """ + self.map_init(plane=Jarilo_SilvermaneGuardRestrictedZone, floor="F1", position=(435.5, 233.5)) + self.register_domain_exit( + Waypoint((428.6, 190.4)), end_rotation=338, + left_door=Waypoint((416.8, 184.4)), right_door=Waypoint((428.8, 180.4))) + item = Waypoint((440.8, 215.2)) + event = Waypoint((434.8, 192.4)) + + self.clear_item(item) + self.clear_event(event) + # ===== End of generated waypoints ===== + # Best 3 predictions: [ + # ('Occurrence_Jarilo_SilvermaneGuardRestrictedZone_F1_X439Y237', 0.194, (435.5, 233.5)), + # ('Occurrence_Luofu_ScalegorgeWaterscape_F1_X619Y387', 0.118, (593.5, 412.0)), + # ('Occurrence_Luofu_Cloudford_F1_X244Y951', 0.098, (193.8, 931.7)) + # ] + """ + Notes + Jarilo_SilvermaneGuardRestrictedZone_F1_X435Y233 is the same as Jarilo_SilvermaneGuardRestrictedZone_F1_X439Y237 + but for wrong spawn point detected + """ + def Jarilo_SilvermaneGuardRestrictedZone_F1_X509Y541(self): """ | Waypoint | Position | Direction | Rotation | diff --git a/route/rogue/route.json b/route/rogue/route.json index 11a629cd0..2987b3112 100644 --- a/route/rogue/route.json +++ b/route/rogue/route.json @@ -1594,6 +1594,17 @@ ], "domain": "Occurrence" }, + { + "name": "Occurrence_Jarilo_BackwaterPass_F1_X611Y761", + "route": "route.rogue.Occurrence.Jarilo_BackwaterPass_F1:Jarilo_BackwaterPass_F1_X611Y761", + "plane": "Jarilo_BackwaterPass", + "floor": "F1", + "position": [ + 611.4, + 761.2 + ], + "domain": "Occurrence" + }, { "name": "Occurrence_Jarilo_CorridorofFadingEchoes_F1_X236Y903", "route": "route.rogue.Occurrence.Jarilo_CorridorofFadingEchoes_F1:Jarilo_CorridorofFadingEchoes_F1_X236Y903", @@ -1715,6 +1726,17 @@ ], "domain": "Occurrence" }, + { + "name": "Occurrence_Jarilo_SilvermaneGuardRestrictedZone_F1_X435Y233", + "route": "route.rogue.Occurrence.Jarilo_SilvermaneGuardRestrictedZone_F1:Jarilo_SilvermaneGuardRestrictedZone_F1_X435Y233", + "plane": "Jarilo_SilvermaneGuardRestrictedZone", + "floor": "F1", + "position": [ + 435.5, + 233.5 + ], + "domain": "Occurrence" + }, { "name": "Occurrence_Jarilo_SilvermaneGuardRestrictedZone_F1_X509Y541", "route": "route.rogue.Occurrence.Jarilo_SilvermaneGuardRestrictedZone_F1:Jarilo_SilvermaneGuardRestrictedZone_F1_X509Y541", diff --git a/tasks/assignment/keywords/__init__.py b/tasks/assignment/keywords/__init__.py index ab95755a7..eec743922 100644 --- a/tasks/assignment/keywords/__init__.py +++ b/tasks/assignment/keywords/__init__.py @@ -31,30 +31,30 @@ KEYWORDS_ASSIGNMENT_GROUP.Synthesis_Materials.entries = ( KEYWORDS_ASSIGNMENT_ENTRY.Scalpel_and_Screwdriver, ) KEYWORDS_ASSIGNMENT_EVENT_GROUP.Space_Station_Task_Force.entries = ( - KEYWORDS_ASSIGNMENT_EVENT_ENTRY.Repulsion_Bridge_Errors, - KEYWORDS_ASSIGNMENT_EVENT_ENTRY.Meal_Delivery_Robot_Check_Up, - KEYWORDS_ASSIGNMENT_EVENT_ENTRY.Noise_Complaint, - KEYWORDS_ASSIGNMENT_EVENT_ENTRY.Interior_Temperature_Modulator, - KEYWORDS_ASSIGNMENT_EVENT_ENTRY.Researcher_Health_Reports, - KEYWORDS_ASSIGNMENT_EVENT_ENTRY.Confidential_Investigation, - KEYWORDS_ASSIGNMENT_EVENT_ENTRY.Borrowed_Equipment, - KEYWORDS_ASSIGNMENT_EVENT_ENTRY.Booking_System, - KEYWORDS_ASSIGNMENT_EVENT_ENTRY.Non_Digital_Documents, - KEYWORDS_ASSIGNMENT_EVENT_ENTRY.Drip_Feed_Errors, - KEYWORDS_ASSIGNMENT_EVENT_ENTRY.Pet_Movement_Route_Planning, - KEYWORDS_ASSIGNMENT_EVENT_ENTRY.Food_Improvement_Plan, - KEYWORDS_ASSIGNMENT_EVENT_ENTRY.Curio_Distribution, - KEYWORDS_ASSIGNMENT_EVENT_ENTRY.Super_Urgent_Waiting_Online, - KEYWORDS_ASSIGNMENT_EVENT_ENTRY.Ventilation_Problem, - KEYWORDS_ASSIGNMENT_EVENT_ENTRY.Unstable_Connection, - KEYWORDS_ASSIGNMENT_EVENT_ENTRY.Chronology_Checks, - KEYWORDS_ASSIGNMENT_EVENT_ENTRY.Supply_Chain_Management, - KEYWORDS_ASSIGNMENT_EVENT_ENTRY.Malicious_Occupation_of_Public_Space, - KEYWORDS_ASSIGNMENT_EVENT_ENTRY.Uniform_Material, - KEYWORDS_ASSIGNMENT_EVENT_ENTRY.Virus_Re_creation_Report, - KEYWORDS_ASSIGNMENT_EVENT_ENTRY.Abnormal_Signal, - KEYWORDS_ASSIGNMENT_EVENT_ENTRY.Flexible_Working_Approval, - KEYWORDS_ASSIGNMENT_EVENT_ENTRY.Lighting_Issue, + KEYWORDS_ASSIGNMENT_EVENT_ENTRY.Activate_Genetic_Samples, + KEYWORDS_ASSIGNMENT_EVENT_ENTRY.Reproduce_Experimental_Data, + KEYWORDS_ASSIGNMENT_EVENT_ENTRY.Burned_Warehouse, + KEYWORDS_ASSIGNMENT_EVENT_ENTRY.Car_Thief, + KEYWORDS_ASSIGNMENT_EVENT_ENTRY.Synesthesia_Beacon_Function_Iteration, + KEYWORDS_ASSIGNMENT_EVENT_ENTRY.Hunters_Wanted_No_Newbies_Please, + KEYWORDS_ASSIGNMENT_EVENT_ENTRY.Peaceful_Life_for_Good_People, + KEYWORDS_ASSIGNMENT_EVENT_ENTRY.Closed_Beta_Test_Recruitment, + KEYWORDS_ASSIGNMENT_EVENT_ENTRY.Protect_Digital_Exhibits, + KEYWORDS_ASSIGNMENT_EVENT_ENTRY.Final_Survivor, + KEYWORDS_ASSIGNMENT_EVENT_ENTRY.Water_Pollution_Control, + KEYWORDS_ASSIGNMENT_EVENT_ENTRY.Hook_Line_and_Sinker, + KEYWORDS_ASSIGNMENT_EVENT_ENTRY.Investigation_Order_Boothill, + KEYWORDS_ASSIGNMENT_EVENT_ENTRY.Volunteers_Wanted, + KEYWORDS_ASSIGNMENT_EVENT_ENTRY.Burn_Treatment, + KEYWORDS_ASSIGNMENT_EVENT_ENTRY.I_Want_to_Speak_to_Your_Manager, + KEYWORDS_ASSIGNMENT_EVENT_ENTRY.Licensed_Product_Damage_Assessment, + KEYWORDS_ASSIGNMENT_EVENT_ENTRY.Annoying_Flies, + KEYWORDS_ASSIGNMENT_EVENT_ENTRY.Urgent_Protection_Services, + KEYWORDS_ASSIGNMENT_EVENT_ENTRY.A_Dream_Is_Born, + KEYWORDS_ASSIGNMENT_EVENT_ENTRY.Wanted_Boothill, + KEYWORDS_ASSIGNMENT_EVENT_ENTRY.Casual_Cowboy, + KEYWORDS_ASSIGNMENT_EVENT_ENTRY.Dangerous_Journey, + KEYWORDS_ASSIGNMENT_EVENT_ENTRY.Crossing_the_Fire_Line, ) for group in ( KEYWORDS_ASSIGNMENT_GROUP.Character_Materials, diff --git a/tasks/assignment/keywords/event_entry.py b/tasks/assignment/keywords/event_entry.py index d6dec29c9..9dd113804 100644 --- a/tasks/assignment/keywords/event_entry.py +++ b/tasks/assignment/keywords/event_entry.py @@ -3,219 +3,219 @@ from .classes import AssignmentEventEntry # This file was auto-generated, do not modify it manually. To generate: # ``` python -m dev_tools.keyword_extract ``` -Repulsion_Bridge_Errors = AssignmentEventEntry( +Activate_Genetic_Samples = AssignmentEventEntry( id=1, - name='Repulsion_Bridge_Errors', - cn='斥力桥报错', - cht='斥力橋錯誤', - en='Repulsion Bridge Errors', - jp='斥力ブリッジエラー', - es='Reporte de error del puente de rechazo', + name='Activate_Genetic_Samples', + cn='激活基因样本', + cht='激發基因樣本', + en='Activate Genetic Samples', + jp='遺伝子サンプルの活性化', + es='Activación de muestras genéticas', ) -Meal_Delivery_Robot_Check_Up = AssignmentEventEntry( +Reproduce_Experimental_Data = AssignmentEventEntry( id=2, - name='Meal_Delivery_Robot_Check_Up', - cn='送餐机器人检修', - cht='送餐機器人檢修', - en='Meal-Delivery Robot Check-Up', - jp='配膳ロボット点検修理', - es='Mantenimiento de los robots de reparto de comida', + name='Reproduce_Experimental_Data', + cn='复现实验数据', + cht='重現實驗數據', + en='Reproduce Experimental Data', + jp='実験データの復元', + es='Recreación de datos experimentales', ) -Noise_Complaint = AssignmentEventEntry( +Burned_Warehouse = AssignmentEventEntry( id=3, - name='Noise_Complaint', - cn='噪音投诉问题', - cht='噪音投訴問題', - en='Noise Complaint', - jp='騒音苦情問題', - es='Quejas por ruidos', + name='Burned_Warehouse', + cn='仓库被烧', + cht='倉庫被燒', + en='Burned Warehouse', + jp='燃えた倉庫', + es='Almacén incinerado', ) -Interior_Temperature_Modulator = AssignmentEventEntry( +Car_Thief = AssignmentEventEntry( id=4, - name='Interior_Temperature_Modulator', - cn='室内温度调节器', - cht='室內溫度調節器', - en='Interior Temperature Modulator', - jp='室内温度調節器', - es='Regulador de temperatura ambiental', + name='Car_Thief', + cn='███的偷车贼!', + cht='███的偷車賊!', + en='███████ Car Thief!', + jp='███の車泥棒!', + es='¡████ ladrón de autos!', ) -Researcher_Health_Reports = AssignmentEventEntry( +Synesthesia_Beacon_Function_Iteration = AssignmentEventEntry( id=5, - name='Researcher_Health_Reports', - cn='科员的体检报告', - cht='組員的體檢報告', - en="Researchers' Health Reports", - jp='スタッフの健康診断報告', - es='Informe médico de los investigadores', + name='Synesthesia_Beacon_Function_Iteration', + cn='联觉信标功能迭代', + cht='聯覺信標功能更新', + en='Synesthesia Beacon Function Iteration', + jp='共感覚ビーコン機能アップデート', + es='Iteración de funciones de la baliza sinestésica', ) -Confidential_Investigation = AssignmentEventEntry( +Hunters_Wanted_No_Newbies_Please = AssignmentEventEntry( id=6, - name='Confidential_Investigation', - cn='秘密调查行动', - cht='秘密調查行動', - en='Confidential Investigation', - jp='秘密裏の調査', - es='Investigación encubierta', + name='Hunters_Wanted_No_Newbies_Please', + cn='来猎人,菜鸟勿扰', + cht='來獵人,菜鳥勿擾', + en='Hunters Wanted, No Newbies Please', + jp='プロハンター歓迎、初心者お断り', + es='Se necesitan cazadores. Novatos abstenerse', ) -Borrowed_Equipment = AssignmentEventEntry( +Peaceful_Life_for_Good_People = AssignmentEventEntry( id=7, - name='Borrowed_Equipment', - cn='实验器械借用', - cht='實驗器械借用', - en='Borrowed Equipment', - jp='実験機器借用', - es='Préstamo de instrumentos de laboratorio', + name='Peaceful_Life_for_Good_People', + cn='好人一生平安', + cht='好人一生平安', + en='Peaceful Life for Good People', + jp='善人は一生安泰', + es='Vida pacífica para la gente de bien', ) -Booking_System = AssignmentEventEntry( +Closed_Beta_Test_Recruitment = AssignmentEventEntry( id=8, - name='Booking_System', - cn='会议室预约系统', - cht='會議室預約系統', - en='Booking System', - jp='会議室予約システム', - es='Sistema de reserva de las salas de reuniones', + name='Closed_Beta_Test_Recruitment', + cn='征集内测玩家', + cht='徵求封測玩家', + en='Closed Beta Test Recruitment', + jp='テスター募集', + es='Reclutamiento para beta cerrada', ) -Non_Digital_Documents = AssignmentEventEntry( +Protect_Digital_Exhibits = AssignmentEventEntry( id=9, - name='Non_Digital_Documents', - cn='非电子版文件', - cht='非電子版文件', - en='Non-Digital Documents', - jp='非デジタル版ファイル', - es='Documentos no electrónicos', + name='Protect_Digital_Exhibits', + cn='保护数字展品', + cht='保護數位展品', + en='Protect Digital Exhibits', + jp='デジタル展示品を守れ', + es='Protección de objetos de exposición digitales', ) -Drip_Feed_Errors = AssignmentEventEntry( +Final_Survivor = AssignmentEventEntry( id=10, - name='Drip_Feed_Errors', - cn='液滴系统报错', - cht='液滴系統錯誤', - en='Drip-Feed Errors', - jp='水やりシステムエラー', - es='Reporte de error del sistema de goteo', + name='Final_Survivor', + cn='最后的生还者', + cht='最後的生還者', + en='Final Survivor', + jp='最後の生還者', + es='Última superviviente', ) -Pet_Movement_Route_Planning = AssignmentEventEntry( +Water_Pollution_Control = AssignmentEventEntry( id=11, - name='Pet_Movement_Route_Planning', - cn='宠物行动路线规划', - cht='寵物行動路線規劃', - en='Pet Movement Route Planning', - jp='ペットの行動ルート規制', - es='Planificación de las rutas de paseo de mascotas', + name='Water_Pollution_Control', + cn='水域排污', + cht='水域排汙', + en='Water Pollution Control', + jp='水質汚染', + es='Control de contaminación acuática', ) -Food_Improvement_Plan = AssignmentEventEntry( +Hook_Line_and_Sinker = AssignmentEventEntry( id=12, - name='Food_Improvement_Plan', - cn='餐饮优化方案', - cht='餐飲改良方案', - en='Food Improvement Plan', - jp='飲食優良化法案', - es='Programa de mejora de comida', + name='Hook_Line_and_Sinker', + cn='愿者上钩', + cht='願者上鉤', + en='Hook, Line, and Sinker', + jp='いずれ捕まる', + es='Quien muerde el anzuelo es porque quiere', ) -Curio_Distribution = AssignmentEventEntry( +Investigation_Order_Boothill = AssignmentEventEntry( id=13, - name='Curio_Distribution', - cn='奇物借用问题', - cht='奇物借用問題', - en='Curio Distribution', - jp='奇物借用問題', - es='Problemas con el préstamo de objetos raros', + name='Investigation_Order_Boothill', + cn='追查令:波提欧', + cht='追查令:波提歐', + en='Investigation Order: Boothill', + jp='調査命令:ブートヒル', + es='Orden de investigación: Boothill', ) -Super_Urgent_Waiting_Online = AssignmentEventEntry( +Volunteers_Wanted = AssignmentEventEntry( id=14, - name='Super_Urgent_Waiting_Online', - cn='来活人很急在线等', - cht='急,線上等', - en='Super Urgent, Waiting Online', - jp='緊急助っ人求むオンラインにて待つ', - es='Muy urgente, esperando en línea', + name='Volunteers_Wanted', + cn='寻找志愿者', + cht='尋找志向者', + en='Volunteers Wanted', + jp='ボランティアを探せ', + es='Se necesitan voluntarios', ) -Ventilation_Problem = AssignmentEventEntry( +Burn_Treatment = AssignmentEventEntry( id=15, - name='Ventilation_Problem', - cn='空气流通问题', - cht='空氣流通問題', - en='Ventilation Problem', - jp='換気問題', - es='Problemas con la circulación del aire', + name='Burn_Treatment', + cn='烧伤治疗', + cht='燒傷治療', + en='Burn Treatment', + jp='火傷の治療', + es='Tratamiento cauterizador', ) -Unstable_Connection = AssignmentEventEntry( +I_Want_to_Speak_to_Your_Manager = AssignmentEventEntry( id=16, - name='Unstable_Connection', - cn='连接不稳定问题', - cht='連線不穩定問題', - en='Unstable Connection', - jp='接続不安定問題', - es='Conexión inestable', + name='I_Want_to_Speak_to_Your_Manager', + cn='去把你们经理喊过来', + cht='叫你們經理出來', + en='I Want to Speak to Your Manager', + jp='責任者を呼べ', + es='Quiero hablar con su gerente', ) -Chronology_Checks = AssignmentEventEntry( +Licensed_Product_Damage_Assessment = AssignmentEventEntry( id=17, - name='Chronology_Checks', - cn='编年史校对', - cht='編年史校對', - en='Chronology Checks', - jp='編年史校正', - es='Corrección de registros', + name='Licensed_Product_Damage_Assessment', + cn='授权产品定损', + cht='授權產品損失鑑定', + en='Licensed Product Damage Assessment', + jp='ライセンス製品の損失額評価', + es='Evaluación de pérdidas de productos autorizados', ) -Supply_Chain_Management = AssignmentEventEntry( +Annoying_Flies = AssignmentEventEntry( id=18, - name='Supply_Chain_Management', - cn='物流供应链管理', - cht='物流供應鏈管理', - en='Supply Chain Management', - jp='物流供給路線管理', - es='Gestión de pedidos', + name='Annoying_Flies', + cn='烦人的苍蝇', + cht='煩人的蒼蠅', + en='Annoying Flies', + jp='鬱陶しいハエ', + es='Moscas molestas', ) -Malicious_Occupation_of_Public_Space = AssignmentEventEntry( +Urgent_Protection_Services = AssignmentEventEntry( id=19, - name='Malicious_Occupation_of_Public_Space', - cn='公共区域被恶意侵占', - cht='公共區域被惡意侵佔', - en='Malicious Occupation of Public Space', - jp='公共区域の悪意による独占', - es='Invasión de espacios públicos', + name='Urgent_Protection_Services', + cn='紧急护卫', + cht='緊急護衛', + en='Urgent Protection Services', + jp='緊急護衛', + es='Se necesita protección urgente', ) -Uniform_Material = AssignmentEventEntry( +A_Dream_Is_Born = AssignmentEventEntry( id=20, - name='Uniform_Material', - cn='科室服装面料', - cht='科室服裝材質', - en='Uniform Material', - jp='スタッフ制服の素材', - es='Material del uniforme', + name='A_Dream_Is_Born', + cn='星梦起航', + cht='星夢啟航', + en='A Dream Is Born', + jp='星の夢の門出', + es='Ha nacido una estrella', ) -Virus_Re_creation_Report = AssignmentEventEntry( +Wanted_Boothill = AssignmentEventEntry( id=21, - name='Virus_Re_creation_Report', - cn='病毒溯源报告', - cht='病毒溯源報告', - en='Virus Re-creation Report', - jp='ウイルス根源報告', - es='Informe de rastreo de virus', + name='Wanted_Boothill', + cn='通缉令:波提欧', + cht='通緝令:波提歐', + en='Wanted: Boothill', + jp='指名手配:ブートヒル', + es='Se busca: Boothill', ) -Abnormal_Signal = AssignmentEventEntry( +Casual_Cowboy = AssignmentEventEntry( id=22, - name='Abnormal_Signal', - cn='舱段信号异常', - cht='艙段訊號異常', - en='Abnormal Signal', - jp='部分の信号異常', - es='Mala señal en las cabinas', + name='Casual_Cowboy', + cn='牛仔不忙', + cht='牛仔不忙', + en='Casual Cowboy', + jp='暇を持て余したカウボーイ', + es='Vaquero ocioso', ) -Flexible_Working_Approval = AssignmentEventEntry( +Dangerous_Journey = AssignmentEventEntry( id=23, - name='Flexible_Working_Approval', - cn='轮休审批流程', - cht='輪休審批流程', - en='Flexible Working Approval', - jp='交代休み審査フロー', - es='Aprobación de días de descanso', + name='Dangerous_Journey', + cn='危险之旅', + cht='危險之旅', + en='Dangerous Journey', + jp='危険な旅', + es='Viaje peligroso', ) -Lighting_Issue = AssignmentEventEntry( +Crossing_the_Fire_Line = AssignmentEventEntry( id=24, - name='Lighting_Issue', - cn='灯光照明问题', - cht='燈光照明問題', - en='Lighting Issue', - jp='照明の色問題', - es='Problemas de iluminación', + name='Crossing_the_Fire_Line', + cn='穿越火线', + cht='穿越火線', + en='Crossing the Fire Line', + jp='クロスファイア', + es='Cruzando la línea de fuego', ) diff --git a/tasks/character/keywords/character_list.py b/tasks/character/keywords/character_list.py index fefdb2a7e..f65273e05 100644 --- a/tasks/character/keywords/character_list.py +++ b/tasks/character/keywords/character_list.py @@ -75,8 +75,17 @@ Blade = CharacterList( jp='刃', es='Blade', ) -Bronya = CharacterList( +Boothill = CharacterList( id=9, + name='Boothill', + cn='波提欧', + cht='波提歐', + en='Boothill', + jp='ブートヒル', + es='Boothill', +) +Bronya = CharacterList( + id=10, name='Bronya', cn='布洛妮娅', cht='布洛妮婭', @@ -85,7 +94,7 @@ Bronya = CharacterList( es='Bronya', ) Clara = CharacterList( - id=10, + id=11, name='Clara', cn='克拉拉', cht='克拉拉', @@ -94,7 +103,7 @@ Clara = CharacterList( es='Clara', ) DanHeng = CharacterList( - id=11, + id=12, name='DanHeng', cn='丹恒', cht='丹恆', @@ -103,7 +112,7 @@ DanHeng = CharacterList( es='Dan Heng', ) DanHengImbibitorLunae = CharacterList( - id=12, + id=13, name='DanHengImbibitorLunae', cn='丹恒•饮月', cht='丹恆•飲月', @@ -112,7 +121,7 @@ DanHengImbibitorLunae = CharacterList( es='Dan Heng - Imbibitor Lunae', ) DrRatio = CharacterList( - id=13, + id=14, name='DrRatio', cn='真理医生', cht='真理醫生', @@ -121,7 +130,7 @@ DrRatio = CharacterList( es='Dr. Ratio', ) FuXuan = CharacterList( - id=14, + id=15, name='FuXuan', cn='符玄', cht='符玄', @@ -130,7 +139,7 @@ FuXuan = CharacterList( es='Fu Xuan', ) Gallagher = CharacterList( - id=15, + id=16, name='Gallagher', cn='加拉赫', cht='加拉赫', @@ -139,7 +148,7 @@ Gallagher = CharacterList( es='Gallagher', ) Gepard = CharacterList( - id=16, + id=17, name='Gepard', cn='杰帕德', cht='傑帕德', @@ -148,7 +157,7 @@ Gepard = CharacterList( es='Gepard', ) Guinaifen = CharacterList( - id=17, + id=18, name='Guinaifen', cn='桂乃芬', cht='桂乃芬', @@ -157,7 +166,7 @@ Guinaifen = CharacterList( es='Guinaifen', ) Hanya = CharacterList( - id=18, + id=19, name='Hanya', cn='寒鸦', cht='寒鴉', @@ -166,7 +175,7 @@ Hanya = CharacterList( es='Hanya', ) Herta = CharacterList( - id=19, + id=20, name='Herta', cn='黑塔', cht='黑塔', @@ -175,7 +184,7 @@ Herta = CharacterList( es='Herta', ) Himeko = CharacterList( - id=20, + id=21, name='Himeko', cn='姬子', cht='姬子', @@ -184,7 +193,7 @@ Himeko = CharacterList( es='Himeko', ) Hook = CharacterList( - id=21, + id=22, name='Hook', cn='虎克', cht='虎克', @@ -193,7 +202,7 @@ Hook = CharacterList( es='Hook', ) Huohuo = CharacterList( - id=22, + id=23, name='Huohuo', cn='藿藿', cht='藿藿', @@ -202,7 +211,7 @@ Huohuo = CharacterList( es='Huohuo', ) JingYuan = CharacterList( - id=23, + id=24, name='JingYuan', cn='景元', cht='景元', @@ -211,7 +220,7 @@ JingYuan = CharacterList( es='Jing Yuan', ) Jingliu = CharacterList( - id=24, + id=25, name='Jingliu', cn='镜流', cht='鏡流', @@ -220,7 +229,7 @@ Jingliu = CharacterList( es='Jingliu', ) Kafka = CharacterList( - id=25, + id=26, name='Kafka', cn='卡芙卡', cht='卡芙卡', @@ -229,7 +238,7 @@ Kafka = CharacterList( es='Kafka', ) Luka = CharacterList( - id=26, + id=27, name='Luka', cn='卢卡', cht='盧卡', @@ -238,7 +247,7 @@ Luka = CharacterList( es='Luka', ) Luocha = CharacterList( - id=27, + id=28, name='Luocha', cn='罗刹', cht='羅剎', @@ -247,7 +256,7 @@ Luocha = CharacterList( es='Luocha', ) Lynx = CharacterList( - id=28, + id=29, name='Lynx', cn='玲可', cht='玲可', @@ -256,7 +265,7 @@ Lynx = CharacterList( es='Lynx', ) March7th = CharacterList( - id=29, + id=30, name='March7th', cn='三月七', cht='三月七', @@ -265,7 +274,7 @@ March7th = CharacterList( es='Siete de Marzo', ) Misha = CharacterList( - id=30, + id=31, name='Misha', cn='米沙', cht='米沙', @@ -274,7 +283,7 @@ Misha = CharacterList( es='Misha', ) Natasha = CharacterList( - id=31, + id=32, name='Natasha', cn='娜塔莎', cht='娜塔莎', @@ -283,7 +292,7 @@ Natasha = CharacterList( es='Natasha', ) Pela = CharacterList( - id=32, + id=33, name='Pela', cn='佩拉', cht='佩拉', @@ -292,7 +301,7 @@ Pela = CharacterList( es='Pela', ) Qingque = CharacterList( - id=33, + id=34, name='Qingque', cn='青雀', cht='青雀', @@ -300,8 +309,17 @@ Qingque = CharacterList( jp='青雀', es='Qingque', ) +Robin = CharacterList( + id=35, + name='Robin', + cn='知更鸟', + cht='知更鳥', + en='Robin', + jp='ロビン', + es='Robin', +) RuanMei = CharacterList( - id=34, + id=36, name='RuanMei', cn='阮•梅', cht='阮•梅', @@ -310,7 +328,7 @@ RuanMei = CharacterList( es='Ruan Mei', ) Sampo = CharacterList( - id=35, + id=37, name='Sampo', cn='桑博', cht='桑博', @@ -319,7 +337,7 @@ Sampo = CharacterList( es='Sampo', ) Seele = CharacterList( - id=36, + id=38, name='Seele', cn='希儿', cht='希兒', @@ -328,7 +346,7 @@ Seele = CharacterList( es='Seele', ) Serval = CharacterList( - id=37, + id=39, name='Serval', cn='希露瓦', cht='希露瓦', @@ -337,7 +355,7 @@ Serval = CharacterList( es='Serval', ) SilverWolf = CharacterList( - id=38, + id=40, name='SilverWolf', cn='银狼', cht='銀狼', @@ -346,7 +364,7 @@ SilverWolf = CharacterList( es='Silver Wolf', ) Sparkle = CharacterList( - id=39, + id=41, name='Sparkle', cn='花火', cht='花火', @@ -355,7 +373,7 @@ Sparkle = CharacterList( es='Sparkle', ) Sushang = CharacterList( - id=40, + id=42, name='Sushang', cn='素裳', cht='素裳', @@ -364,7 +382,7 @@ Sushang = CharacterList( es='Sushang', ) Tingyun = CharacterList( - id=41, + id=43, name='Tingyun', cn='停云', cht='停雲', @@ -373,7 +391,7 @@ Tingyun = CharacterList( es='Tingyun', ) TopazNumby = CharacterList( - id=42, + id=44, name='TopazNumby', cn='托帕&账账', cht='托帕&帳帳', @@ -382,7 +400,7 @@ TopazNumby = CharacterList( es='Topaz y Conti', ) TrailblazerDestruction = CharacterList( - id=43, + id=45, name='TrailblazerDestruction', cn='Trailblazer•毁灭', cht='Trailblazer•毀滅', @@ -390,8 +408,17 @@ TrailblazerDestruction = CharacterList( jp='Trailblazer・壊滅', es='Trailblazer: Destrucción', ) +TrailblazerHarmony = CharacterList( + id=46, + name='TrailblazerHarmony', + cn='Trailblazer•同谐', + cht='Trailblazer•同諧', + en='Trailblazer: Harmony', + jp='Trailblazer・調和', + es='Trailblazer: Armonía', +) TrailblazerPreservation = CharacterList( - id=44, + id=47, name='TrailblazerPreservation', cn='Trailblazer•存护', cht='Trailblazer•存護', @@ -400,7 +427,7 @@ TrailblazerPreservation = CharacterList( es='Trailblazer: Conservación', ) Welt = CharacterList( - id=45, + id=48, name='Welt', cn='瓦尔特', cht='瓦爾特', @@ -409,7 +436,7 @@ Welt = CharacterList( es='Welt', ) Xueyi = CharacterList( - id=46, + id=49, name='Xueyi', cn='雪衣', cht='雪衣', @@ -418,7 +445,7 @@ Xueyi = CharacterList( es='Xueyi', ) Yanqing = CharacterList( - id=47, + id=50, name='Yanqing', cn='彦卿', cht='彥卿', @@ -427,7 +454,7 @@ Yanqing = CharacterList( es='Yanqing', ) Yukong = CharacterList( - id=48, + id=51, name='Yukong', cn='驭空', cht='馭空', diff --git a/tasks/combat/assets/assets_combat_support.py b/tasks/combat/assets/assets_combat_support.py index 10dc25671..0eb09775a 100644 --- a/tasks/combat/assets/assets_combat_support.py +++ b/tasks/combat/assets/assets_combat_support.py @@ -17,30 +17,30 @@ COMBAT_SUPPORT_LIST = ButtonWrapper( name='COMBAT_SUPPORT_LIST', share=Button( file='./assets/share/combat/support/COMBAT_SUPPORT_LIST.png', - area=(67, 645, 93, 669), - search=(47, 625, 113, 689), - color=(204, 205, 205), - button=(67, 645, 93, 669), + area=(39, 645, 65, 669), + search=(19, 625, 85, 689), + color=(204, 206, 206), + button=(39, 645, 65, 669), ), ) COMBAT_SUPPORT_LIST_GRID = ButtonWrapper( name='COMBAT_SUPPORT_LIST_GRID', share=Button( file='./assets/share/combat/support/COMBAT_SUPPORT_LIST_GRID.png', - area=(64, 158, 155, 627), - search=(44, 138, 175, 647), - color=(117, 107, 124), - button=(64, 158, 155, 627), + area=(36, 148, 128, 629), + search=(16, 128, 148, 649), + color=(135, 124, 133), + button=(36, 148, 128, 629), ), ) COMBAT_SUPPORT_LIST_SCROLL = ButtonWrapper( name='COMBAT_SUPPORT_LIST_SCROLL', share=Button( file='./assets/share/combat/support/COMBAT_SUPPORT_LIST_SCROLL.png', - area=(448, 156, 452, 592), - search=(428, 136, 472, 612), - color=(130, 133, 153), - button=(448, 156, 452, 592), + area=(472, 162, 476, 598), + search=(452, 142, 496, 618), + color=(150, 151, 166), + button=(472, 162, 476, 598), ), ) COMBAT_SUPPORT_SELECTED = ButtonWrapper( @@ -59,28 +59,28 @@ SUPPORT_SELECTED = ButtonWrapper( Button( file='./assets/share/combat/support/SUPPORT_SELECTED.png', area=(54, 202, 60, 220), - search=(40, 146, 68, 628), + search=(15, 148, 45, 629), color=(125, 126, 131), button=(54, 202, 60, 220), ), Button( file='./assets/share/combat/support/SUPPORT_SELECTED.2.png', area=(53, 547, 59, 565), - search=(40, 146, 68, 628), + search=(15, 148, 45, 629), color=(144, 146, 147), button=(53, 547, 59, 565), ), Button( file='./assets/share/combat/support/SUPPORT_SELECTED.3.png', area=(54, 432, 61, 450), - search=(40, 146, 68, 628), + search=(15, 148, 45, 629), color=(139, 139, 141), button=(54, 432, 61, 450), ), Button( file='./assets/share/combat/support/SUPPORT_SELECTED.4.png', area=(52, 417, 59, 435), - search=(40, 146, 68, 628), + search=(15, 148, 45, 629), color=(140, 138, 145), button=(52, 417, 59, 435), ), diff --git a/tasks/dungeon/keywords/dungeon.py b/tasks/dungeon/keywords/dungeon.py index 35ee6a29a..c4301cba0 100644 --- a/tasks/dungeon/keywords/dungeon.py +++ b/tasks/dungeon/keywords/dungeon.py @@ -98,7 +98,7 @@ Calyx_Crimson_Destruction_Herta_StorageZone = DungeonList( name='Calyx_Crimson_Destruction_Herta_StorageZone', cn='毁灭之蕾•拟造花萼(赤)', cht='毀滅之蕾•擬造花萼(赤)', - en='Bud of Destruction', + en='Calyx (Crimson): Bud of Destruction', jp='疑似花萼(赤)・壊滅の蕾', es='Flor de la Destrucción', plane_id=2000201, @@ -108,7 +108,7 @@ Calyx_Crimson_Destruction_Luofu_ScalegorgeWaterscape = DungeonList( name='Calyx_Crimson_Destruction_Luofu_ScalegorgeWaterscape', cn='毁灭之蕾•拟造花萼(赤)', cht='毀滅之蕾•擬造花萼(赤)', - en='Bud of Destruction', + en='Calyx (Crimson): Bud of Destruction', jp='疑似花萼(赤)・壊滅の蕾', es='Flor de la Destrucción', plane_id=2023201, @@ -118,7 +118,7 @@ Calyx_Crimson_Preservation_Herta_SupplyZone = DungeonList( name='Calyx_Crimson_Preservation_Herta_SupplyZone', cn='存护之蕾•拟造花萼(赤)', cht='存護之蕾•擬造花萼(赤)', - en='Bud of Preservation', + en='Calyx (Crimson): Bud of Preservation', jp='疑似花萼(赤)・存護の蕾', es='Flor de la Conservación', plane_id=2000301, @@ -128,7 +128,7 @@ Calyx_Crimson_Preservation_Penacony_ClockStudiosThemePark = DungeonList( name='Calyx_Crimson_Preservation_Penacony_ClockStudiosThemePark', cn='存护之蕾•拟造花萼(赤)', cht='存護之蕾•擬造花萼(赤)', - en='Bud of Preservation', + en='Calyx (Crimson): Bud of Preservation', jp='疑似花萼(赤)・存護の蕾', es='Flor de la Conservación', plane_id=2032101, @@ -138,383 +138,413 @@ Calyx_Crimson_The_Hunt_Jarilo_OutlyingSnowPlains = DungeonList( name='Calyx_Crimson_The_Hunt_Jarilo_OutlyingSnowPlains', cn='巡猎之蕾•拟造花萼(赤)', cht='巡獵之蕾•擬造花萼(赤)', - en='Bud of The Hunt', + en='Calyx (Crimson): Bud of The Hunt', jp='疑似花萼(赤)・巡狩の蕾', es='Flor de la Cacería', plane_id=2010101, ) -Calyx_Crimson_Abundance_Jarilo_BackwaterPass = DungeonList( +Calyx_Crimson_The_Hunt_Penacony_SoulGladScorchsandAuditionVenue = DungeonList( id=15, + name='Calyx_Crimson_The_Hunt_Penacony_SoulGladScorchsandAuditionVenue', + cn='巡猎之蕾•拟造花萼(赤)', + cht='巡獵之蕾•擬造花萼(赤)', + en='Calyx (Crimson): Bud of The Hunt', + jp='疑似花萼(赤)・巡狩の蕾', + es='Cáliz (carmesí): Flor de la Cacería', + plane_id=2033101, +) +Calyx_Crimson_Abundance_Jarilo_BackwaterPass = DungeonList( + id=16, name='Calyx_Crimson_Abundance_Jarilo_BackwaterPass', cn='丰饶之蕾•拟造花萼(赤)', cht='豐饒之蕾•擬造花萼(赤)', - en='Bud of Abundance', + en='Calyx (Crimson): Bud of Abundance', jp='疑似花萼(赤)・豊穣の蕾', es='Flor de la Abundancia', plane_id=2011101, ) Calyx_Crimson_Abundance_Luofu_FyxestrollGarden = DungeonList( - id=16, + id=17, name='Calyx_Crimson_Abundance_Luofu_FyxestrollGarden', cn='丰饶之蕾•拟造花萼(赤)', cht='豐饒之蕾•擬造花萼(赤)', - en='Bud of Abundance', + en='Calyx (Crimson): Bud of Abundance', jp='疑似花萼(赤)・豊穣の蕾', es='Flor de la Abundancia', plane_id=2022301, ) Calyx_Crimson_Erudition_Jarilo_RivetTown = DungeonList( - id=17, + id=18, name='Calyx_Crimson_Erudition_Jarilo_RivetTown', cn='智识之蕾•拟造花萼(赤)', cht='智識之蕾•擬造花萼(赤)', - en='Bud of Erudition', + en='Calyx (Crimson): Bud of Erudition', jp='疑似花萼(赤)・知恵の蕾', es='Flor de la Erudición', plane_id=2012201, ) Calyx_Crimson_Harmony_Jarilo_RobotSettlement = DungeonList( - id=18, + id=19, name='Calyx_Crimson_Harmony_Jarilo_RobotSettlement', cn='同谐之蕾•拟造花萼(赤)', cht='同諧之蕾•擬造花萼(赤)', - en='Bud of Harmony', + en='Calyx (Crimson): Bud of Harmony', jp='疑似花萼(赤)・調和の蕾', es='Flor de la Armonía', plane_id=2012301, ) Calyx_Crimson_Harmony_Penacony_TheReverieDreamscape = DungeonList( - id=19, + id=20, name='Calyx_Crimson_Harmony_Penacony_TheReverieDreamscape', cn='同谐之蕾•拟造花萼(赤)', cht='同諧之蕾•擬造花萼(赤)', - en='Bud of Harmony', + en='Calyx (Crimson): Bud of Harmony', jp='疑似花萼(赤)・調和の蕾', es='Flor de la Armonía', plane_id=2031101, ) Calyx_Crimson_Nihility_Jarilo_GreatMine = DungeonList( - id=20, + id=21, name='Calyx_Crimson_Nihility_Jarilo_GreatMine', cn='虚无之蕾•拟造花萼(赤)', cht='虛無之蕾•擬造花萼(赤)', - en='Bud of Nihility', + en='Calyx (Crimson): Bud of Nihility', jp='疑似花萼(赤)・虚無の蕾', es='Flor de la Nihilidad', plane_id=2012101, ) Calyx_Crimson_Nihility_Luofu_AlchemyCommission = DungeonList( - id=21, + id=22, name='Calyx_Crimson_Nihility_Luofu_AlchemyCommission', cn='虚无之蕾•拟造花萼(赤)', cht='虛無之蕾•擬造花萼(赤)', - en='Bud of Nihility', + en='Calyx (Crimson): Bud of Nihility', jp='疑似花萼(赤)・虚無の蕾', es='Flor de la Nihilidad', plane_id=2023101, ) Stagnant_Shadow_Quanta = DungeonList( - id=22, + id=23, name='Stagnant_Shadow_Quanta', cn='空海之形•凝滞虚影', cht='空海之形•凝滯虛影', - en='Shape of Quanta', + en='Stagnant Shadow: Shape of Quanta', jp='凝結虚影・虚海の形', es='Forma del cuanto', plane_id=2000101, ) Stagnant_Shadow_Gust = DungeonList( - id=23, + id=24, name='Stagnant_Shadow_Gust', cn='巽风之形•凝滞虚影', cht='巽風之形•凝滯虛影', - en='Shape of Gust', + en='Stagnant Shadow: Shape of Gust', jp='凝結虚影・薫風の形', es='Forma del aire', plane_id=2012201, ) Stagnant_Shadow_Fulmination = DungeonList( - id=24, + id=25, name='Stagnant_Shadow_Fulmination', cn='鸣雷之形•凝滞虚影', cht='鳴雷之形•凝滯虛影', - en='Shape of Fulmination', + en='Stagnant Shadow: Shape of Fulmination', jp='凝結虚影・鳴雷の形', es='Forma del trueno', plane_id=2013201, ) Stagnant_Shadow_Blaze = DungeonList( - id=25, + id=26, name='Stagnant_Shadow_Blaze', cn='炎华之形•凝滞虚影', cht='炎華之形•凝滯虛影', - en='Shape of Blaze', + en='Stagnant Shadow: Shape of Blaze', jp='凝結虚影・炎華の形', es='Forma de las llamas', plane_id=2013101, ) Stagnant_Shadow_Spike = DungeonList( - id=26, + id=27, name='Stagnant_Shadow_Spike', cn='锋芒之形•凝滞虚影', cht='鋒芒之形•凝滯虛影', - en='Shape of Spike', + en='Stagnant Shadow: Shape of Spike', jp='凝結虚影・切先の形', es='Forma afilada', plane_id=2012101, ) Stagnant_Shadow_Rime = DungeonList( - id=27, + id=28, name='Stagnant_Shadow_Rime', cn='霜晶之形•凝滞虚影', cht='霜晶之形•凝滯虛影', - en='Shape of Rime', + en='Stagnant Shadow: Shape of Rime', jp='凝結虚影・霜晶の形', es='Forma de la escarcha', plane_id=2013201, ) Stagnant_Shadow_Mirage = DungeonList( - id=28, + id=29, name='Stagnant_Shadow_Mirage', cn='幻光之形•凝滞虚影', cht='幻光之形•凝滯虛影', - en='Shape of Mirage', + en='Stagnant Shadow: Shape of Mirage', jp='凝結虚影・幻光の形', es='Forma del espejismo', plane_id=2011101, ) Stagnant_Shadow_Icicle = DungeonList( - id=29, + id=30, name='Stagnant_Shadow_Icicle', cn='冰棱之形•凝滞虚影', cht='冰稜之形•凝滯虛影', - en='Shape of Icicle', + en='Stagnant Shadow: Shape of Icicle', jp='凝結虚影・氷柱の形', es='Forma del témpano', plane_id=2021101, ) Stagnant_Shadow_Doom = DungeonList( - id=30, + id=31, name='Stagnant_Shadow_Doom', cn='震厄之形•凝滞虚影', cht='震厄之形•凝滯虛影', - en='Shape of Doom', + en='Stagnant Shadow: Shape of Doom', jp='凝結虚影・震厄の形', es='Forma de la perdición', plane_id=2021201, ) Stagnant_Shadow_Puppetry = DungeonList( - id=31, + id=32, name='Stagnant_Shadow_Puppetry', cn='偃偶之形•凝滞虚影', cht='偃偶之形•凝滯虛影', - en='Shape of Puppetry', + en='Stagnant Shadow: Shape of Puppetry', jp='凝結虚影・傀儡の形', es='Forma de las marionetas', plane_id=2022201, ) Stagnant_Shadow_Abomination = DungeonList( - id=32, + id=33, name='Stagnant_Shadow_Abomination', cn='孽兽之形•凝滞虚影', cht='孽獸之形•凝滯虛影', - en='Shape of Abomination', + en='Stagnant Shadow: Shape of Abomination', jp='凝結虚影・厄獣の形', es='Forma de la abominación', plane_id=2023201, ) Stagnant_Shadow_Scorch = DungeonList( - id=33, + id=34, name='Stagnant_Shadow_Scorch', cn='燔灼之形•凝滞虚影', cht='燔灼之形•凝滯虛影', - en='Shape of Scorch', + en='Stagnant Shadow: Shape of Scorch', jp='凝結虚影・燔灼の形', es='Forma abrasada', plane_id=2012101, ) Stagnant_Shadow_Celestial = DungeonList( - id=34, + id=35, name='Stagnant_Shadow_Celestial', cn='天人之形•凝滞虚影', cht='天人之形•凝滯虛影', - en='Shape of Celestial', + en='Stagnant Shadow: Shape of Celestial', jp='凝結虚影・天人の形', es='Forma de lo celestial', plane_id=2023101, ) Stagnant_Shadow_Perdition = DungeonList( - id=35, + id=36, name='Stagnant_Shadow_Perdition', cn='幽府之形•凝滞虚影', cht='幽府之形•凝滯虛影', - en='Shape of Perdition', + en='Stagnant Shadow: Shape of Perdition', jp='凝結虚影・幽府の形', es='Forma del aislamiento', plane_id=2022301, ) Stagnant_Shadow_Nectar = DungeonList( - id=36, + id=37, name='Stagnant_Shadow_Nectar', cn='冰酿之形•凝滞虚影', cht='冰釀之形•凝滯虛影', - en='Shape of Nectar', + en='Stagnant Shadow: Shape of Nectar', jp='凝結虚影・氷醸の形', es='Forma del néctar', plane_id=2031101, ) Stagnant_Shadow_Roast = DungeonList( - id=37, + id=38, name='Stagnant_Shadow_Roast', cn='焦炙之形•凝滞虚影', cht='焦炙之形•凝滯虛影', - en='Shape of Roast', + en='Stagnant Shadow: Shape of Roast', jp='凝結虚影・焦灼の形', es='Forma del agostamiento', plane_id=2031301, ) Stagnant_Shadow_Ire = DungeonList( - id=38, + id=39, name='Stagnant_Shadow_Ire', cn='嗔怒之形•凝滞虚影', cht='嗔怒之形•凝滯虛影', - en='Shape of Ire', + en='Stagnant Shadow: Shape of Ire', jp='凝結虚影・憤怒の形', es='Forma de la ira', plane_id=2032201, ) +Stagnant_Shadow_Duty = DungeonList( + id=40, + name='Stagnant_Shadow_Duty', + cn='职司之形•凝滞虚影', + cht='職司之形•凝滯虛影', + en='Stagnant Shadow: Shape of Duty', + jp='凝結虚影・職掌の形', + es='Sombra paralizada: Forma del deber', + plane_id=2032101, +) Cavern_of_Corrosion_Path_of_Gelid_Wind = DungeonList( - id=39, + id=41, name='Cavern_of_Corrosion_Path_of_Gelid_Wind', cn='霜风之径•侵蚀隧洞', cht='霜風之徑•侵蝕隧洞', - en='Path of Gelid Wind', + en='Cavern of Corrosion: Path of Gelid Wind', jp='侵蝕トンネル・霜風の路', es='Senda del viento gélido', plane_id=2000201, ) Cavern_of_Corrosion_Path_of_Jabbing_Punch = DungeonList( - id=40, + id=42, name='Cavern_of_Corrosion_Path_of_Jabbing_Punch', cn='迅拳之径•侵蚀隧洞', cht='迅拳之徑•侵蝕隧洞', - en='Path of Jabbing Punch', + en='Cavern of Corrosion: Path of Jabbing Punch', jp='侵蝕トンネル・迅拳の路', es='Senda de los puños rápidos', plane_id=2013101, ) Cavern_of_Corrosion_Path_of_Drifting = DungeonList( - id=41, + id=43, name='Cavern_of_Corrosion_Path_of_Drifting', cn='漂泊之径•侵蚀隧洞', cht='漂泊之徑•侵蝕隧洞', - en='Path of Drifting', + en='Cavern of Corrosion: Path of Drifting', jp='侵蝕トンネル・漂泊の路', es='Senda de la deriva', plane_id=2013201, ) Cavern_of_Corrosion_Path_of_Providence = DungeonList( - id=42, + id=44, name='Cavern_of_Corrosion_Path_of_Providence', cn='睿治之径•侵蚀隧洞', cht='睿治之徑•侵蝕隧洞', - en='Path of Providence', + en='Cavern of Corrosion: Path of Providence', jp='侵蝕トンネル・睿治の路', es='Senda de la providencia', plane_id=2013401, ) Cavern_of_Corrosion_Path_of_Holy_Hymn = DungeonList( - id=43, + id=45, name='Cavern_of_Corrosion_Path_of_Holy_Hymn', cn='圣颂之径•侵蚀隧洞', cht='聖頌之徑•侵蝕隧洞', - en='Path of Holy Hymn', + en='Cavern of Corrosion: Path of Holy Hymn', jp='侵蝕トンネル・聖頌の路', es='Senda del himno sagrado', plane_id=2021101, ) Cavern_of_Corrosion_Path_of_Conflagration = DungeonList( - id=44, + id=46, name='Cavern_of_Corrosion_Path_of_Conflagration', cn='野焰之径•侵蚀隧洞', cht='野焰之徑•侵蝕隧洞', - en='Path of Conflagration', + en='Cavern of Corrosion: Path of Conflagration', jp='侵蝕トンネル・野焔の路', es='Senda de la conflagración', plane_id=2021201, ) Cavern_of_Corrosion_Path_of_Elixir_Seekers = DungeonList( - id=45, + id=47, name='Cavern_of_Corrosion_Path_of_Elixir_Seekers', cn='药使之径•侵蚀隧洞', cht='藥使之徑•侵蝕隧洞', - en='Path of Elixir Seekers', + en='Cavern of Corrosion: Path of Elixir Seekers', jp='侵蝕トンネル・薬使の路', es='Senda de los elixires', plane_id=2023101, ) Cavern_of_Corrosion_Path_of_Darkness = DungeonList( - id=46, + id=48, name='Cavern_of_Corrosion_Path_of_Darkness', cn='幽冥之径•侵蚀隧洞', cht='幽冥之徑•侵蝕隧洞', - en='Path of Darkness', + en='Cavern of Corrosion: Path of Darkness', jp='侵蝕トンネル・幽冥の路', es='Senda de la oscuridad', plane_id=2022301, ) Cavern_of_Corrosion_Path_of_Dreamdive = DungeonList( - id=47, + id=49, name='Cavern_of_Corrosion_Path_of_Dreamdive', cn='梦潜之径•侵蚀隧洞', cht='夢潛之徑•侵蝕隧洞', - en='Path of Dreamdive', + en='Cavern of Corrosion: Path of Dreamdive', jp='侵蝕トンネル・夢潜の路', es='Senda de los sueños', plane_id=2031101, ) Echo_of_War_Destruction_Beginning = DungeonList( - id=48, + id=50, name='Echo_of_War_Destruction_Beginning', cn='毁灭的开端•历战余响', cht='毀滅的開端•歷戰餘響', - en="Destruction's Beginning", + en="Echo of War: Destruction's Beginning", jp='歴戦余韻・壊滅の始まり', es='El principio de la Destrucción', plane_id=2000301, ) Echo_of_War_End_of_the_Eternal_Freeze = DungeonList( - id=49, + id=51, name='Echo_of_War_End_of_the_Eternal_Freeze', cn='寒潮的落幕•历战余响', cht='寒潮的落幕•歷戰餘響', - en='End of the Eternal Freeze', + en='Echo of War: End of the Eternal Freeze', jp='歴戦余韻・寒波の幕切れ', es='El fin del Hielo Eterno', plane_id=2013401, ) Echo_of_War_Divine_Seed = DungeonList( - id=50, + id=52, name='Echo_of_War_Divine_Seed', cn='不死的神实•历战余响', cht='不死的神實•歷戰餘響', - en='Divine Seed', + en='Echo of War: Divine Seed', jp='歴戦余韻・不死の神実', es='Semilla divina', plane_id=2023201, ) Echo_of_War_Borehole_Planet_Old_Crater = DungeonList( - id=51, + id=53, name='Echo_of_War_Borehole_Planet_Old_Crater', cn='蛀星的旧靥•历战余响', cht='蛀星的舊靨•歷戰餘響', - en="Borehole Planet's Old Crater", + en="Echo of War: Borehole Planet's Old Crater", jp='歴戦余韻・星を蝕む往日の面影', es='Cráter del planeta devorado', plane_id=2000401, ) +Echo_of_War_Salutations_of_Ashen_Dreams = DungeonList( + id=54, + name='Echo_of_War_Salutations_of_Ashen_Dreams', + cn='尘梦的赞礼•历战余响', + cht='塵夢的讚禮•歷戰餘響', + en='Echo of War: Salutations of Ashen Dreams', + jp='歴戦余韻・現世の夢の礼賛', + es='Ecos de la guerra: Tributo del sueño ceniciento', + plane_id=2033201, +) Simulated_Universe_World_1 = DungeonList( - id=52, + id=55, name='Simulated_Universe_World_1', cn='第一世界•模拟宇宙', cht='第一世界•模擬宇宙', @@ -524,7 +554,7 @@ Simulated_Universe_World_1 = DungeonList( plane_id=100000104, ) Simulated_Universe_World_3 = DungeonList( - id=53, + id=56, name='Simulated_Universe_World_3', cn='第三世界•模拟宇宙', cht='第三世界•模擬宇宙', @@ -534,7 +564,7 @@ Simulated_Universe_World_3 = DungeonList( plane_id=100000104, ) Simulated_Universe_World_4 = DungeonList( - id=54, + id=57, name='Simulated_Universe_World_4', cn='第四世界•模拟宇宙', cht='第四世界•模擬宇宙', @@ -544,7 +574,7 @@ Simulated_Universe_World_4 = DungeonList( plane_id=100000104, ) Simulated_Universe_World_5 = DungeonList( - id=55, + id=58, name='Simulated_Universe_World_5', cn='第五世界•模拟宇宙', cht='第五世界•模擬宇宙', @@ -554,7 +584,7 @@ Simulated_Universe_World_5 = DungeonList( plane_id=100000104, ) Simulated_Universe_World_6 = DungeonList( - id=56, + id=59, name='Simulated_Universe_World_6', cn='第六世界•模拟宇宙', cht='第六世界•模擬宇宙', @@ -564,7 +594,7 @@ Simulated_Universe_World_6 = DungeonList( plane_id=100000104, ) Simulated_Universe_World_7 = DungeonList( - id=57, + id=60, name='Simulated_Universe_World_7', cn='第七世界•模拟宇宙', cht='第七世界•模擬宇宙', @@ -574,7 +604,7 @@ Simulated_Universe_World_7 = DungeonList( plane_id=100000104, ) Simulated_Universe_World_8 = DungeonList( - id=58, + id=61, name='Simulated_Universe_World_8', cn='第八世界•模拟宇宙', cht='第八世界•模擬宇宙', @@ -584,7 +614,7 @@ Simulated_Universe_World_8 = DungeonList( plane_id=100000104, ) Simulated_Universe_World_9 = DungeonList( - id=59, + id=62, name='Simulated_Universe_World_9', cn='第九世界•模拟宇宙', cht='第九世界•模擬宇宙', @@ -594,7 +624,7 @@ Simulated_Universe_World_9 = DungeonList( plane_id=100000104, ) Simulated_Universe_The_Swarm_Disaster = DungeonList( - id=60, + id=63, name='Simulated_Universe_The_Swarm_Disaster', cn='寰宇蝗灾', cht='寰宇蝗災', @@ -604,7 +634,7 @@ Simulated_Universe_The_Swarm_Disaster = DungeonList( plane_id=-1, ) Simulated_Universe_Gold_and_Gears = DungeonList( - id=61, + id=64, name='Simulated_Universe_Gold_and_Gears', cn='黄金与机械', cht='黃金與機械', @@ -614,7 +644,7 @@ Simulated_Universe_Gold_and_Gears = DungeonList( plane_id=-1, ) Memory_of_Chaos = DungeonList( - id=62, + id=65, name='Memory_of_Chaos', cn='混沌回忆', cht='混沌回憶', @@ -624,7 +654,7 @@ Memory_of_Chaos = DungeonList( plane_id=-1, ) The_Voyage_of_Navis_Astriger = DungeonList( - id=63, + id=66, name='The_Voyage_of_Navis_Astriger', cn='天艟求仙迷航录', cht='天艟求仙迷航錄', @@ -634,7 +664,7 @@ The_Voyage_of_Navis_Astriger = DungeonList( plane_id=-1, ) The_Last_Vestiges_of_Towering_Citadel = DungeonList( - id=64, + id=67, 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 4258f6e68..a81442fd5 100644 --- a/tasks/dungeon/keywords/dungeon_detailed.py +++ b/tasks/dungeon/keywords/dungeon_detailed.py @@ -156,3 +156,12 @@ Stagnant_Shadow_Ire = DungeonDetailed( jp='キャラクター昇格素材:炎(ギャラガー)', es='Ascension: Fuego (Gallagher)', ) +Stagnant_Shadow_Duty = DungeonDetailed( + id=18, + name='Stagnant_Shadow_Duty', + cn='角色晋阶材料:物理(波提欧 / 知更鸟)', + cht='角色晉階材料:物理(波提歐 / 知更鳥)', + en='Ascension: Physical (Boothill / Robin)', + jp='キャラクター昇格素材:物理(ブートヒル / ロビン)', + es='Ascension: Físico (Boothill / Robin)', +) diff --git a/tasks/map/keywords/plane.py b/tasks/map/keywords/plane.py index b77c5adc6..bca8da0b5 100644 --- a/tasks/map/keywords/plane.py +++ b/tasks/map/keywords/plane.py @@ -487,3 +487,36 @@ Penacony_ClockStudiosThemePark = MapPlane( world_id=3, plane_id=2032101, ) +Penacony_DreamfluxReef = MapPlane( + id=45, + name='Penacony_DreamfluxReef', + cn='流梦礁', + cht='流夢礁', + en='Dreamflux Reef', + jp='ドリームリーフ', + es='Arrecife Flujosueño', + world_id=3, + plane_id=1030401, +) +Penacony_SoulGladScorchsandAuditionVenue = MapPlane( + id=46, + name='Penacony_SoulGladScorchsandAuditionVenue', + cn='苏乐达™热砂海选会场', + cht='蘇樂達™熱砂海選會場', + en='SoulGlad™ Scorchsand Audition Venue', + jp='スラーダ™熱砂オーディション会場', + es='Recinto de las Audiciones FelizAlma™ en la Arena Ardiente', + world_id=3, + plane_id=2033101, +) +Penacony_PenaconyGrandTheater = MapPlane( + id=47, + name='Penacony_PenaconyGrandTheater', + cn='匹诺康尼大剧院', + cht='匹諾康尼大劇院', + en='Penacony Grand Theater', + jp='ピノコニー大劇場', + es='Gran Teatro de Colonipenal', + world_id=3, + plane_id=2033201, +) diff --git a/tasks/rogue/keywords/event_option.py b/tasks/rogue/keywords/event_option.py index f391cec2c..4400d553d 100644 --- a/tasks/rogue/keywords/event_option.py +++ b/tasks/rogue/keywords/event_option.py @@ -162,7 +162,7 @@ Jim_Hulk_collection = RogueEventOption( cn='杰姆·哈克的藏品。', cht='傑姆•哈克的收藏。', en="Jim Hulk's collection.", - jp='ジェム・ハックの所蔵品', + jp='ジャック・ハックの所蔵品', es='Colección de Jim Hulk.', ) Walk_away = RogueEventOption( @@ -1097,7 +1097,7 @@ Hurry_and_delete_the_Cyclic_Demon_Lord_life_algorithm = RogueEventOption( name='Hurry_and_delete_the_Cyclic_Demon_Lord_life_algorithm', cn='抓紧时间,删除周期性魔王的生命方程。', cht='把握時間,刪除週期性魔王的生命方程式。', - en="Hurry and delete the Cyclic Demon Lord's life algorithm", + en="Hurry and delete the Cyclic Demon Lord's life algorithm.", jp='事態は一刻を争う、周期性魔王の生命方程式を削除する', es='Date prisa y borra el algoritmo vital del Rey Demonio Cíclico.', ) @@ -1187,7 +1187,7 @@ Purchase_a_1_2_star_Blessing = RogueEventOption( name='Purchase_a_1_2_star_Blessing', cn='购买1个1-2星祝福', cht='購買1個一至二星祝福', - en='Purchase a 1-2 star Blessing', + en='Purchase a 1–2 star Blessing', jp='★1~2の祝福を1個購入する', es='Compra 1 bendición de 1-2 estrellas.', ) @@ -1196,7 +1196,7 @@ Purchase_a_1_3_star_Blessing = RogueEventOption( name='Purchase_a_1_3_star_Blessing', cn='购买1个1-3星祝福', cht='購買1個一至三星祝福', - en='Purchase a 1-3 star Blessing', + en='Purchase a 1–3 star Blessing', jp='★1~3の祝福を1個購入する', es='Compra 1 bendición de 1-3 estrellas.', ) diff --git a/tasks/rogue/rogue.py b/tasks/rogue/rogue.py index 7635b25b8..5e2f56750 100644 --- a/tasks/rogue/rogue.py +++ b/tasks/rogue/rogue.py @@ -37,31 +37,35 @@ class Rogue(RouteLoader, RogueEntry): self.config.task_call('Dungeon') self.config.task_stop() - while 1: - # Run - success = self.rogue_once() + # Run + success = self.rogue_once() - # Scheduler - with self.config.multi_set(): - # Task switched - if self.config.task_switched(): + # Scheduler + with self.config.multi_set(): + # Task switched + if self.config.task_switched(): + self.config.task_stop() + # Archived daily quest + if success: + quests = self.config.stored.DailyQuest.load_quests() + if KEYWORDS_DAILY_QUEST.Complete_Simulated_Universe_1_times in quests: + logger.info('Achieve daily quest Complete_Simulated_Universe_1_times') + self.config.task_call('DailyQuest') self.config.task_stop() - # Archived daily quest - if success: - quests = self.config.stored.DailyQuest.load_quests() - if KEYWORDS_DAILY_QUEST.Complete_Simulated_Universe_1_times in quests: - logger.info('Achieve daily quest Complete_Simulated_Universe_1_times') - self.config.task_call('DailyQuest') - self.config.task_stop() - quests = self.config.stored.BattlePassWeeklyQuest.load_quests() - if KEYWORDS_BATTLE_PASS_QUEST.Complete_Simulated_Universe_1_times in quests: - logger.info('Achieve battle pass quest Complete_Simulated_Universe_1_times') - self.config.task_call('BattlePass') - self.config.task_stop() - # End - if not success: - self.config.task_delay(server_update=True) - break + quests = self.config.stored.BattlePassWeeklyQuest.load_quests() + if KEYWORDS_BATTLE_PASS_QUEST.Complete_Simulated_Universe_1_times in quests: + logger.info('Achieve battle pass quest Complete_Simulated_Universe_1_times') + self.config.task_call('BattlePass') + self.config.task_stop() + # End + if success: + logger.info('Rogue run success') + # Call rogue itself, so multiple rogue runs are considered as separated tasks + # which won't trigger failure count >= 3 when clearing 100 elites + self.config.task_call('Rogue') + else: + logger.info('Rogue run failed') + self.config.task_delay(server_update=True) if __name__ == '__main__': diff --git a/tasks/rogue/route/base.py b/tasks/rogue/route/base.py index d41522075..6137166b3 100644 --- a/tasks/rogue/route/base.py +++ b/tasks/rogue/route/base.py @@ -33,7 +33,8 @@ class RouteBase(RouteBase_, RogueExit, RogueEvent, RogueReward): return False def combat_execute(self, expected_end=None): - return super().combat_execute(expected_end=self.combat_expected_end) + super().combat_execute(expected_end=self.combat_expected_end) + self.clear_blessing() def walk_additional(self) -> bool: if self.handle_blessing_popup(): @@ -126,12 +127,6 @@ class RouteBase(RouteBase_, RogueExit, RogueEvent, RogueReward): if self.handle_event_option(): continue - def _goto(self, *args, **kwargs): - result = super()._goto(*args, **kwargs) - if 'enemy' in result: - self.clear_blessing() - return result - def wait_until_minimap_stabled(self): logger.info('Wait until minimap stabled') radius = self.minimap.MINIMAP_RADIUS