Merge pull request #446 from LmeSzinc/dev

Bug fix
This commit is contained in:
LmeSzinc 2024-05-08 21:17:04 +08:00 committed by GitHub
commit 423d5351de
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
29 changed files with 576 additions and 379 deletions

BIN
assets/character/Robin.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.4 KiB

After

Width:  |  Height:  |  Size: 6.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 93 KiB

After

Width:  |  Height:  |  Size: 92 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.2 KiB

After

Width:  |  Height:  |  Size: 7.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

After

Width:  |  Height:  |  Size: 16 KiB

View File

@ -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'[(),#"?!&%*]|</?\w+>', '', text)
# text = re.sub(r'[#_]?\d+(_times?)?', '', text)
text = re.sub(r'<color=#?\w+>', '', text)

View File

@ -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'])
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:

View File

@ -456,6 +456,7 @@
"Natasha",
"Pela",
"Qingque",
"Robin",
"RuanMei",
"Sampo",
"Seele",
@ -1371,6 +1372,7 @@
"Natasha",
"Pela",
"Qingque",
"Robin",
"RuanMei",
"Sampo",
"Seele",

View File

@ -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 = {}

View File

@ -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)

View File

@ -470,6 +470,7 @@
"Natasha": "Natasha",
"Pela": "Pela",
"Qingque": "Qingque",
"Robin": "Robin",
"RuanMei": "Ruan Mei",
"Sampo": "Sampo",
"Seele": "Seele",

View File

@ -470,6 +470,7 @@
"Natasha": "Natasha",
"Pela": "Pela",
"Qingque": "Qingque",
"Robin": "Robin",
"RuanMei": "Ruan Mei",
"Sampo": "Sampo",
"Seele": "Seele",

View File

@ -470,6 +470,7 @@
"Natasha": "ナターシャ",
"Pela": "ペラ",
"Qingque": "青雀",
"Robin": "ロビン",
"RuanMei": "ルアン・メェイ",
"Sampo": "サンポ",
"Seele": "ゼーレ",

View File

@ -470,6 +470,7 @@
"Natasha": "娜塔莎",
"Pela": "佩拉",
"Qingque": "青雀",
"Robin": "知更鸟",
"RuanMei": "阮•梅",
"Sampo": "桑博",
"Seele": "希儿",

View File

@ -470,6 +470,7 @@
"Natasha": "娜塔莎",
"Pela": "佩拉",
"Qingque": "青雀",
"Robin": "知更鳥",
"RuanMei": "阮•梅",
"Sampo": "桑博",
"Seele": "希兒",

View File

@ -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):

View File

@ -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
"""

View File

@ -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 |

View File

@ -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",

View File

@ -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,

View File

@ -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',
)

View File

@ -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='馭空',

View File

@ -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),
),

View File

@ -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='永屹之城遺秘',

View File

@ -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)',
)

View File

@ -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,
)

View File

@ -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 12 star Blessing',
jp='★12の祝福を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 13 star Blessing',
jp='★13の祝福を1個購入する',
es='Compra 1 bendición de 1-3 estrellas.',
)

View File

@ -37,7 +37,6 @@ class Rogue(RouteLoader, RogueEntry):
self.config.task_call('Dungeon')
self.config.task_stop()
while 1:
# Run
success = self.rogue_once()
@ -59,9 +58,14 @@ class Rogue(RouteLoader, RogueEntry):
self.config.task_call('BattlePass')
self.config.task_stop()
# End
if not success:
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)
break
if __name__ == '__main__':

View File

@ -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