mirror of
https://github.com/LmeSzinc/StarRailCopilot.git
synced 2024-11-16 06:25:24 +00:00
Dev: Extract dungeons with plane_id
This commit is contained in:
parent
1e79353294
commit
39ac8831df
@ -1,7 +1,6 @@
|
||||
import itertools
|
||||
import os
|
||||
import re
|
||||
import typing as t
|
||||
from collections import defaultdict
|
||||
from functools import cache
|
||||
from hashlib import md5
|
||||
@ -13,19 +12,6 @@ from module.exception import ScriptError
|
||||
from module.logger import logger
|
||||
|
||||
|
||||
def dungeon_name(name: str) -> str:
|
||||
name = text_to_variable(name)
|
||||
name = re.sub('Bud_of_(Memories|Aether|Treasures)', r'Calyx_Golden_\1', name)
|
||||
name = re.sub('Bud_of_(.*)', r'Calyx_Crimson_\1', name).replace('Calyx_Crimson_Calyx_Crimson_', 'Calyx_Crimson_')
|
||||
name = re.sub('Shape_of_(.*)', r'Stagnant_Shadow_\1', name)
|
||||
name = re.sub('Path_of_(.*)', r'Cavern_of_Corrosion_Path_of_\1', name)
|
||||
if name in ['Destruction_Beginning', 'End_of_the_Eternal_Freeze', 'Divine_Seed', 'Borehole_Planet_Old_Crater']:
|
||||
name = f'Echo_of_War_{name}'
|
||||
if name in ['The_Swarm_Disaster', 'Gold_and_Gears']:
|
||||
name = f'Simulated_Universe_{name}'
|
||||
return name
|
||||
|
||||
|
||||
def blessing_name(name: str) -> str:
|
||||
name = text_to_variable(name)
|
||||
name = re.sub(r'^\d', lambda match: f"_{match.group(0)}", name)
|
||||
@ -56,31 +42,6 @@ class KeywordExtract:
|
||||
self.text_map['cn'] = TextMap('chs')
|
||||
self.keywords_id: list[int] = []
|
||||
|
||||
def iter_guide(self) -> t.Iterable[int]:
|
||||
file = os.path.join(TextMap.DATA_FOLDER, './ExcelOutput/GameplayGuideData.json')
|
||||
# visited = set()
|
||||
temp_save = ""
|
||||
for data in read_file(file).values():
|
||||
hash_ = deep_get(data, keys='Name.Hash')
|
||||
_, name = self.find_keyword(hash_, lang='cn')
|
||||
if '永屹之城遗秘' in name: # load after all forgotten hall to make sure the same order in Game UI
|
||||
temp_save = hash_
|
||||
continue
|
||||
if '忘却之庭' in name:
|
||||
continue
|
||||
# if name in visited:
|
||||
# continue
|
||||
# visited.add(name)
|
||||
yield hash_
|
||||
yield temp_save
|
||||
# Consider rogue DLC as a dungeon
|
||||
yield '寰宇蝗灾'
|
||||
yield '黄金与机械'
|
||||
# 'Memory of Chaos' is not a real dungeon, but represents a group
|
||||
yield '混沌回忆'
|
||||
yield '天艟求仙迷航录'
|
||||
yield '永屹之城遗秘'
|
||||
|
||||
def find_keyword(self, keyword, lang) -> tuple[int, str]:
|
||||
"""
|
||||
Args:
|
||||
@ -602,9 +563,8 @@ class KeywordExtract:
|
||||
self.load_keywords(['领取', '追踪'])
|
||||
self.write_keywords(keyword_class='BattlePassQuestState',
|
||||
output_file='./tasks/battle_pass/keywords/quest_state.py')
|
||||
self.load_keywords(list(self.iter_guide()))
|
||||
self.write_keywords(keyword_class='DungeonList', output_file='./tasks/dungeon/keywords/dungeon.py',
|
||||
text_convert=dungeon_name)
|
||||
from dev_tools.keywords.dungeon_list import GenerateDungeonList
|
||||
GenerateDungeonList()()
|
||||
self.load_keywords(['进入', '传送', '追踪'])
|
||||
self.write_keywords(keyword_class='DungeonEntrance', output_file='./tasks/dungeon/keywords/dungeon_entrance.py')
|
||||
self.generate_shadow_with_characters()
|
||||
|
74
dev_tools/keywords/dungeon_list.py
Normal file
74
dev_tools/keywords/dungeon_list.py
Normal file
@ -0,0 +1,74 @@
|
||||
import re
|
||||
import typing as t
|
||||
|
||||
from dev_tools.keywords.base import GenerateKeyword, text_to_variable
|
||||
from module.base.decorator import cached_property
|
||||
from module.config.utils import deep_get
|
||||
|
||||
|
||||
def dungeon_name(name: str) -> str:
|
||||
name = text_to_variable(name)
|
||||
name = re.sub('Bud_of_(Memories|Aether|Treasures)', r'Calyx_Golden_\1', name)
|
||||
name = re.sub('Bud_of_(.*)', r'Calyx_Crimson_\1', name).replace('Calyx_Crimson_Calyx_Crimson_', 'Calyx_Crimson_')
|
||||
name = re.sub('Shape_of_(.*)', r'Stagnant_Shadow_\1', name)
|
||||
name = re.sub('Path_of_(.*)', r'Cavern_of_Corrosion_Path_of_\1', name)
|
||||
if name in ['Destruction_Beginning', 'End_of_the_Eternal_Freeze', 'Divine_Seed', 'Borehole_Planet_Old_Crater']:
|
||||
name = f'Echo_of_War_{name}'
|
||||
if name in ['The_Swarm_Disaster', 'Gold_and_Gears']:
|
||||
name = f'Simulated_Universe_{name}'
|
||||
return name
|
||||
|
||||
|
||||
class GenerateDungeonList(GenerateKeyword):
|
||||
output_file = './tasks/dungeon/keywords/dungeon.py'
|
||||
|
||||
@cached_property
|
||||
def data(self):
|
||||
return self.read_file('./ExcelOutput/GameplayGuideData.json')
|
||||
|
||||
def iter_keywords(self) -> t.Iterable[dict]:
|
||||
for keyword in self.iter_dungeon():
|
||||
if isinstance(keyword, str):
|
||||
yield dict(
|
||||
text_id=self.find_keyword(keyword, lang='cn')[0],
|
||||
plane_id=-1,
|
||||
)
|
||||
else:
|
||||
yield keyword
|
||||
|
||||
def iter_dungeon(self):
|
||||
temp_save = ""
|
||||
for data in self.data.values():
|
||||
text_id = deep_get(data, keys='Name.Hash')
|
||||
plane_id = deep_get(data, 'MapEntranceID', 0)
|
||||
_, name = self.find_keyword(text_id, lang='cn')
|
||||
if '永屹之城遗秘' in name: # load after all forgotten hall to make sure the same order in Game UI
|
||||
temp_save = text_id
|
||||
continue
|
||||
if '忘却之庭' in name:
|
||||
continue
|
||||
yield dict(
|
||||
text_id=text_id,
|
||||
plane_id=plane_id,
|
||||
)
|
||||
if temp_save:
|
||||
yield temp_save
|
||||
# Consider rogue DLC as a dungeon
|
||||
yield '寰宇蝗灾'
|
||||
yield '黄金与机械'
|
||||
# 'Memory of Chaos' is not a real dungeon, but represents a group
|
||||
yield '混沌回忆'
|
||||
yield '天艟求仙迷航录'
|
||||
yield '永屹之城遗秘'
|
||||
|
||||
def convert_name(self, text: str, keyword: dict) -> str:
|
||||
text = super().convert_name(text, keyword=keyword)
|
||||
text = dungeon_name(text)
|
||||
|
||||
# Add plane suffix
|
||||
from tasks.map.keywords import MapPlane
|
||||
|
||||
if text.startswith('Calyx_Crimson'):
|
||||
plane = MapPlane.find_plane_id(keyword['plane_id'])
|
||||
text = f'{text}_{plane.name}'
|
||||
return text
|
@ -66,11 +66,17 @@ class ConfigGenerator:
|
||||
from tasks.dungeon.keywords import DungeonList
|
||||
option_add(
|
||||
keys='Dungeon.Name.option',
|
||||
options=[dungeon.name for dungeon in DungeonList.instances.values() if dungeon.is_daily_dungeon])
|
||||
options=[dungeon.name for dungeon in DungeonList.instances.values() if dungeon.is_Calyx_Golden] \
|
||||
+ [dungeon.name for dungeon in DungeonList.instances.values() if dungeon.is_Calyx_Crimson] \
|
||||
+ [dungeon.name for dungeon in DungeonList.instances.values() if dungeon.is_Stagnant_Shadow] \
|
||||
+ [dungeon.name for dungeon in DungeonList.instances.values() if dungeon.is_Cavern_of_Corrosion]
|
||||
)
|
||||
# Double events
|
||||
option_add(
|
||||
keys='Dungeon.NameAtDoubleCalyx.option',
|
||||
options=[dungeon.name for dungeon in DungeonList.instances.values() if dungeon.is_Calyx])
|
||||
options=[dungeon.name for dungeon in DungeonList.instances.values() if dungeon.is_Calyx_Golden] \
|
||||
+ [dungeon.name for dungeon in DungeonList.instances.values() if dungeon.is_Calyx_Crimson]
|
||||
)
|
||||
option_add(
|
||||
keys='Dungeon.NameAtDoubleRelic.option',
|
||||
options=[dungeon.name for dungeon in DungeonList.instances.values() if dungeon.is_Cavern_of_Corrosion])
|
||||
@ -407,9 +413,9 @@ class ConfigGenerator:
|
||||
deep_set(new, keys=['AchievableQuest', quest.name, option], value=value)
|
||||
|
||||
# Echo of War
|
||||
from tasks.map.keywords import MapWorld
|
||||
dungeons = [d for d in DungeonList.instances.values() if d.is_Echo_of_War]
|
||||
for world, dungeon in zip(MapWorld.instances.values(), dungeons):
|
||||
for dungeon in dungeons:
|
||||
world = dungeon.plane.world
|
||||
world_name = world.__getattribute__(ingame_lang)
|
||||
dungeon_name = dungeon.__getattribute__(ingame_lang)
|
||||
value = f'{dungeon_name} ({world_name})'
|
||||
|
@ -20,6 +20,17 @@ class DungeonTab(Keyword):
|
||||
class DungeonList(Keyword):
|
||||
instances: ClassVar = {}
|
||||
|
||||
plane_id: int
|
||||
|
||||
@cached_property
|
||||
def plane(self):
|
||||
"""
|
||||
Returns:
|
||||
MapPlane: MapPlane object or None
|
||||
"""
|
||||
from tasks.map.keywords import MapPlane
|
||||
return MapPlane.find_plane_id(self.plane_id)
|
||||
|
||||
@cached_property
|
||||
def is_Calyx_Golden(self):
|
||||
return 'Calyx_Golden' in self.name
|
||||
|
@ -3,435 +3,603 @@ from .classes import DungeonList
|
||||
# This file was auto-generated, do not modify it manually. To generate:
|
||||
# ``` python -m dev_tools.keyword_extract ```
|
||||
|
||||
Calyx_Golden_Memories = DungeonList(
|
||||
Calyx_Golden_Memories_Jarilo_VI = DungeonList(
|
||||
id=1,
|
||||
name='Calyx_Golden_Memories',
|
||||
cn='回忆之蕾•拟造花萼(金)',
|
||||
cht='回憶之蕾•擬造花萼(金)',
|
||||
en='Bud of Memories',
|
||||
jp='疑似花萼(金)・回憶の蕾',
|
||||
es='Flor de los recuerdos',
|
||||
name='Calyx_Golden_Memories_Jarilo_VI',
|
||||
cn='回忆之蕾•雅利洛-Ⅵ',
|
||||
cht='回憶之蕾•雅利洛-Ⅵ',
|
||||
en='Bud of Memories (Jarilo-VI)',
|
||||
jp='回憶の蕾・ヤリーロ-VI',
|
||||
es='Flor de los recuerdos (Jarilo-VI)',
|
||||
plane_id=2010101,
|
||||
)
|
||||
Calyx_Golden_Aether = DungeonList(
|
||||
Calyx_Golden_Aether_Jarilo_VI = DungeonList(
|
||||
id=2,
|
||||
name='Calyx_Golden_Aether',
|
||||
cn='以太之蕾•拟造花萼(金)',
|
||||
cht='乙太之蕾•擬造花萼(金)',
|
||||
en='Bud of Aether',
|
||||
jp='疑似花萼(金)・エーテルの蕾',
|
||||
es='Flor de éter',
|
||||
name='Calyx_Golden_Aether_Jarilo_VI',
|
||||
cn='以太之蕾•雅利洛-Ⅵ',
|
||||
cht='乙太之蕾•雅利洛-Ⅵ',
|
||||
en='Bud of Aether (Jarilo-VI)',
|
||||
jp='エーテルの蕾・ヤリーロ-VI',
|
||||
es='Flor de éter (Jarilo-VI)',
|
||||
plane_id=2011101,
|
||||
)
|
||||
Calyx_Golden_Treasures = DungeonList(
|
||||
Calyx_Golden_Treasures_Jarilo_VI = DungeonList(
|
||||
id=3,
|
||||
name='Calyx_Golden_Treasures',
|
||||
cn='藏珍之蕾•拟造花萼(金)',
|
||||
cht='藏珍之蕾•擬造花萼(金)',
|
||||
en='Bud of Treasures',
|
||||
jp='疑似花萼(金)・秘蔵の蕾',
|
||||
es='Flor de tesoros',
|
||||
name='Calyx_Golden_Treasures_Jarilo_VI',
|
||||
cn='藏珍之蕾•雅利洛-Ⅵ',
|
||||
cht='藏珍之蕾•雅利洛-Ⅵ',
|
||||
en='Bud of Treasures (Jarilo-VI)',
|
||||
jp='秘蔵の蕾・ヤリーロ-VI',
|
||||
es='Flor de tesoros (Jarilo-VI)',
|
||||
plane_id=2012101,
|
||||
)
|
||||
Calyx_Crimson_Destruction = DungeonList(
|
||||
Calyx_Crimson_Destruction_Herta_StorageZone = DungeonList(
|
||||
id=4,
|
||||
name='Calyx_Crimson_Destruction',
|
||||
name='Calyx_Crimson_Destruction_Herta_StorageZone',
|
||||
cn='毁灭之蕾•拟造花萼(赤)',
|
||||
cht='毀滅之蕾•擬造花萼(赤)',
|
||||
en='Bud of Destruction',
|
||||
jp='疑似花萼(赤)・壊滅の蕾',
|
||||
es='Flor de la Destrucción',
|
||||
plane_id=2000201,
|
||||
)
|
||||
Calyx_Crimson_Preservation = DungeonList(
|
||||
Calyx_Crimson_Preservation_Herta_SupplyZone = DungeonList(
|
||||
id=5,
|
||||
name='Calyx_Crimson_Preservation',
|
||||
name='Calyx_Crimson_Preservation_Herta_SupplyZone',
|
||||
cn='存护之蕾•拟造花萼(赤)',
|
||||
cht='存護之蕾•擬造花萼(赤)',
|
||||
en='Bud of Preservation',
|
||||
jp='疑似花萼(赤)・存護の蕾',
|
||||
es='Flor de la Conservación',
|
||||
plane_id=2000301,
|
||||
)
|
||||
Calyx_Crimson_The_Hunt = DungeonList(
|
||||
Calyx_Crimson_The_Hunt_Jarilo_OutlyingSnowPlains = DungeonList(
|
||||
id=6,
|
||||
name='Calyx_Crimson_The_Hunt',
|
||||
name='Calyx_Crimson_The_Hunt_Jarilo_OutlyingSnowPlains',
|
||||
cn='巡猎之蕾•拟造花萼(赤)',
|
||||
cht='巡獵之蕾•擬造花萼(赤)',
|
||||
en='Bud of The Hunt',
|
||||
jp='疑似花萼(赤)・巡狩の蕾',
|
||||
es='Flor de la Cacería',
|
||||
plane_id=2010101,
|
||||
)
|
||||
Calyx_Crimson_Abundance = DungeonList(
|
||||
Calyx_Crimson_Abundance_Jarilo_BackwaterPass = DungeonList(
|
||||
id=7,
|
||||
name='Calyx_Crimson_Abundance',
|
||||
name='Calyx_Crimson_Abundance_Jarilo_BackwaterPass',
|
||||
cn='丰饶之蕾•拟造花萼(赤)',
|
||||
cht='豐饒之蕾•擬造花萼(赤)',
|
||||
en='Bud of Abundance',
|
||||
jp='疑似花萼(赤)・豊穣の蕾',
|
||||
es='Flor de la Abundancia',
|
||||
plane_id=2011101,
|
||||
)
|
||||
Calyx_Crimson_Erudition = DungeonList(
|
||||
Calyx_Crimson_Erudition_Jarilo_RivetTown = DungeonList(
|
||||
id=8,
|
||||
name='Calyx_Crimson_Erudition',
|
||||
name='Calyx_Crimson_Erudition_Jarilo_RivetTown',
|
||||
cn='智识之蕾•拟造花萼(赤)',
|
||||
cht='智識之蕾•擬造花萼(赤)',
|
||||
en='Bud of Erudition',
|
||||
jp='疑似花萼(赤)・知恵の蕾',
|
||||
es='Flor de la Erudición',
|
||||
plane_id=2012201,
|
||||
)
|
||||
Calyx_Crimson_Harmony = DungeonList(
|
||||
Calyx_Crimson_Harmony_Jarilo_RobotSettlement = DungeonList(
|
||||
id=9,
|
||||
name='Calyx_Crimson_Harmony',
|
||||
name='Calyx_Crimson_Harmony_Jarilo_RobotSettlement',
|
||||
cn='同谐之蕾•拟造花萼(赤)',
|
||||
cht='同諧之蕾•擬造花萼(赤)',
|
||||
en='Bud of Harmony',
|
||||
jp='疑似花萼(赤)・調和の蕾',
|
||||
es='Flor de la Armonía',
|
||||
plane_id=2012301,
|
||||
)
|
||||
Calyx_Crimson_Nihility = DungeonList(
|
||||
Calyx_Crimson_Nihility_Jarilo_GreatMine = DungeonList(
|
||||
id=10,
|
||||
name='Calyx_Crimson_Nihility',
|
||||
name='Calyx_Crimson_Nihility_Jarilo_GreatMine',
|
||||
cn='虚无之蕾•拟造花萼(赤)',
|
||||
cht='虛無之蕾•擬造花萼(赤)',
|
||||
en='Bud of Nihility',
|
||||
jp='疑似花萼(赤)・虚無の蕾',
|
||||
es='Flor de la Nihilidad',
|
||||
plane_id=2012101,
|
||||
)
|
||||
Calyx_Golden_Memories_The_Xianzhou_Luofu = DungeonList(
|
||||
id=11,
|
||||
name='Calyx_Golden_Memories_The_Xianzhou_Luofu',
|
||||
cn='回忆之蕾•仙舟「罗浮」',
|
||||
cht='回憶之蕾•仙舟「羅浮」',
|
||||
en='Bud of Memories (The Xianzhou Luofu)',
|
||||
jp='回憶の蕾・仙舟「羅浮」',
|
||||
es='Flor de los recuerdos (El Luofu de Xianzhou)',
|
||||
plane_id=2021101,
|
||||
)
|
||||
Calyx_Golden_Aether_The_Xianzhou_Luofu = DungeonList(
|
||||
id=12,
|
||||
name='Calyx_Golden_Aether_The_Xianzhou_Luofu',
|
||||
cn='以太之蕾•仙舟「罗浮」',
|
||||
cht='乙太之蕾•仙舟「羅浮」',
|
||||
en='Bud of Aether (The Xianzhou Luofu)',
|
||||
jp='エーテルの蕾・仙舟「羅浮」',
|
||||
es='Flor de éter (El Luofu de Xianzhou)',
|
||||
plane_id=2022101,
|
||||
)
|
||||
Calyx_Golden_Treasures_The_Xianzhou_Luofu = DungeonList(
|
||||
id=13,
|
||||
name='Calyx_Golden_Treasures_The_Xianzhou_Luofu',
|
||||
cn='藏珍之蕾•仙舟「罗浮」',
|
||||
cht='藏珍之蕾•仙舟「羅浮」',
|
||||
en='Bud of Treasures (The Xianzhou Luofu)',
|
||||
jp='秘蔵の蕾・仙舟「羅浮」',
|
||||
es='Flor de tesoros (El Luofu de Xianzhou)',
|
||||
plane_id=2022201,
|
||||
)
|
||||
Calyx_Golden_Memories_Penacony = DungeonList(
|
||||
id=14,
|
||||
name='Calyx_Golden_Memories_Penacony',
|
||||
cn='回忆之蕾•匹诺康尼',
|
||||
cht='回憶之蕾•匹諾康尼',
|
||||
en='Bud of Memories (Penacony)',
|
||||
jp='回憶の蕾・ピノコニー',
|
||||
es='Flor de los recuerdos (Colonipenal)',
|
||||
plane_id=2031301,
|
||||
)
|
||||
Calyx_Golden_Aether_Penacony = DungeonList(
|
||||
id=15,
|
||||
name='Calyx_Golden_Aether_Penacony',
|
||||
cn='以太之蕾•匹诺康尼',
|
||||
cht='乙太之蕾•匹諾康尼',
|
||||
en='Bud of Aether (Penacony)',
|
||||
jp='エーテルの蕾・ピノコニー',
|
||||
es='Flor de éter (Colonipenal)',
|
||||
plane_id=2031201,
|
||||
)
|
||||
Calyx_Golden_Treasures_Penacony = DungeonList(
|
||||
id=16,
|
||||
name='Calyx_Golden_Treasures_Penacony',
|
||||
cn='藏珍之蕾•匹诺康尼',
|
||||
cht='藏珍之蕾•匹諾康尼',
|
||||
en='Bud of Treasures (Penacony)',
|
||||
jp='秘蔵の蕾・ピノコニー',
|
||||
es='Flor de tesoros (Colonipenal)',
|
||||
plane_id=2031101,
|
||||
)
|
||||
Calyx_Crimson_Nihility_Luofu_AlchemyCommission = DungeonList(
|
||||
id=17,
|
||||
name='Calyx_Crimson_Nihility_Luofu_AlchemyCommission',
|
||||
cn='虚无之蕾•拟造花萼(赤)',
|
||||
cht='虛無之蕾•擬造花萼(赤)',
|
||||
en='Bud of Nihility',
|
||||
jp='疑似花萼(赤)・虚無の蕾',
|
||||
es='Flor de la Nihilidad',
|
||||
plane_id=2023101,
|
||||
)
|
||||
Calyx_Crimson_Destruction_Luofu_ScalegorgeWaterscape = DungeonList(
|
||||
id=18,
|
||||
name='Calyx_Crimson_Destruction_Luofu_ScalegorgeWaterscape',
|
||||
cn='毁灭之蕾•拟造花萼(赤)',
|
||||
cht='毀滅之蕾•擬造花萼(赤)',
|
||||
en='Bud of Destruction',
|
||||
jp='疑似花萼(赤)・壊滅の蕾',
|
||||
es='Flor de la Destrucción',
|
||||
plane_id=2023201,
|
||||
)
|
||||
Calyx_Crimson_Harmony_Penacony_TheReverieDreamscape = DungeonList(
|
||||
id=19,
|
||||
name='Calyx_Crimson_Harmony_Penacony_TheReverieDreamscape',
|
||||
cn='同谐之蕾•拟造花萼(赤)',
|
||||
cht='同諧之蕾•擬造花萼(赤)',
|
||||
en='Bud of Harmony',
|
||||
jp='疑似花萼(赤)・調和の蕾',
|
||||
es='Flor de la Armonía',
|
||||
plane_id=2031101,
|
||||
)
|
||||
Stagnant_Shadow_Quanta = DungeonList(
|
||||
id=11,
|
||||
id=20,
|
||||
name='Stagnant_Shadow_Quanta',
|
||||
cn='空海之形•凝滞虚影',
|
||||
cht='空海之形•凝滯虛影',
|
||||
en='Shape of Quanta',
|
||||
jp='凝結虚影・虚海の形',
|
||||
es='Forma del cuanto',
|
||||
plane_id=2000101,
|
||||
)
|
||||
Stagnant_Shadow_Gust = DungeonList(
|
||||
id=12,
|
||||
id=21,
|
||||
name='Stagnant_Shadow_Gust',
|
||||
cn='巽风之形•凝滞虚影',
|
||||
cht='巽風之形•凝滯虛影',
|
||||
en='Shape of Gust',
|
||||
jp='凝結虚影・薫風の形',
|
||||
es='Forma del aire',
|
||||
plane_id=2012201,
|
||||
)
|
||||
Stagnant_Shadow_Fulmination = DungeonList(
|
||||
id=13,
|
||||
id=22,
|
||||
name='Stagnant_Shadow_Fulmination',
|
||||
cn='鸣雷之形•凝滞虚影',
|
||||
cht='鳴雷之形•凝滯虛影',
|
||||
en='Shape of Fulmination',
|
||||
jp='凝結虚影・鳴雷の形',
|
||||
es='Forma del trueno',
|
||||
plane_id=2013201,
|
||||
)
|
||||
Stagnant_Shadow_Blaze = DungeonList(
|
||||
id=14,
|
||||
id=23,
|
||||
name='Stagnant_Shadow_Blaze',
|
||||
cn='炎华之形•凝滞虚影',
|
||||
cht='炎華之形•凝滯虛影',
|
||||
en='Shape of Blaze',
|
||||
jp='凝結虚影・炎華の形',
|
||||
es='Forma de las llamas',
|
||||
plane_id=2013101,
|
||||
)
|
||||
Stagnant_Shadow_Spike = DungeonList(
|
||||
id=15,
|
||||
id=24,
|
||||
name='Stagnant_Shadow_Spike',
|
||||
cn='锋芒之形•凝滞虚影',
|
||||
cht='鋒芒之形•凝滯虛影',
|
||||
en='Shape of Spike',
|
||||
jp='凝結虚影・切先の形',
|
||||
es='Forma afilada',
|
||||
plane_id=2012101,
|
||||
)
|
||||
Stagnant_Shadow_Rime = DungeonList(
|
||||
id=16,
|
||||
id=25,
|
||||
name='Stagnant_Shadow_Rime',
|
||||
cn='霜晶之形•凝滞虚影',
|
||||
cht='霜晶之形•凝滯虛影',
|
||||
en='Shape of Rime',
|
||||
jp='凝結虚影・霜晶の形',
|
||||
es='Forma de la escarcha',
|
||||
plane_id=2013201,
|
||||
)
|
||||
Stagnant_Shadow_Mirage = DungeonList(
|
||||
id=17,
|
||||
id=26,
|
||||
name='Stagnant_Shadow_Mirage',
|
||||
cn='幻光之形•凝滞虚影',
|
||||
cht='幻光之形•凝滯虛影',
|
||||
en='Shape of Mirage',
|
||||
jp='凝結虚影・幻光の形',
|
||||
es='Forma del espejismo',
|
||||
plane_id=2011101,
|
||||
)
|
||||
Stagnant_Shadow_Icicle = DungeonList(
|
||||
id=18,
|
||||
id=27,
|
||||
name='Stagnant_Shadow_Icicle',
|
||||
cn='冰棱之形•凝滞虚影',
|
||||
cht='冰稜之形•凝滯虛影',
|
||||
en='Shape of Icicle',
|
||||
jp='凝結虚影・氷柱の形',
|
||||
es='Forma del témpano',
|
||||
plane_id=2021101,
|
||||
)
|
||||
Stagnant_Shadow_Doom = DungeonList(
|
||||
id=19,
|
||||
id=28,
|
||||
name='Stagnant_Shadow_Doom',
|
||||
cn='震厄之形•凝滞虚影',
|
||||
cht='震厄之形•凝滯虛影',
|
||||
en='Shape of Doom',
|
||||
jp='凝結虚影・震厄の形',
|
||||
es='Forma de la perdición',
|
||||
plane_id=2021201,
|
||||
)
|
||||
Stagnant_Shadow_Puppetry = DungeonList(
|
||||
id=20,
|
||||
id=29,
|
||||
name='Stagnant_Shadow_Puppetry',
|
||||
cn='偃偶之形•凝滞虚影',
|
||||
cht='偃偶之形•凝滯虛影',
|
||||
en='Shape of Puppetry',
|
||||
jp='凝結虚影・傀儡の形',
|
||||
es='Forma de las marionetas',
|
||||
plane_id=2022201,
|
||||
)
|
||||
Stagnant_Shadow_Abomination = DungeonList(
|
||||
id=21,
|
||||
id=30,
|
||||
name='Stagnant_Shadow_Abomination',
|
||||
cn='孽兽之形•凝滞虚影',
|
||||
cht='孽獸之形•凝滯虛影',
|
||||
en='Shape of Abomination',
|
||||
jp='凝結虚影・厄獣の形',
|
||||
es='Forma de la abominación',
|
||||
plane_id=2023201,
|
||||
)
|
||||
Stagnant_Shadow_Scorch = DungeonList(
|
||||
id=22,
|
||||
id=31,
|
||||
name='Stagnant_Shadow_Scorch',
|
||||
cn='燔灼之形•凝滞虚影',
|
||||
cht='燔灼之形•凝滯虛影',
|
||||
en='Shape of Scorch',
|
||||
jp='凝結虚影・燔灼の形',
|
||||
es='Forma abrasada',
|
||||
plane_id=2012101,
|
||||
)
|
||||
Stagnant_Shadow_Celestial = DungeonList(
|
||||
id=23,
|
||||
id=32,
|
||||
name='Stagnant_Shadow_Celestial',
|
||||
cn='天人之形•凝滞虚影',
|
||||
cht='天人之形•凝滯虛影',
|
||||
en='Shape of Celestial',
|
||||
jp='凝結虚影・天人の形',
|
||||
es='Forma de lo celestial',
|
||||
plane_id=2023101,
|
||||
)
|
||||
Stagnant_Shadow_Perdition = DungeonList(
|
||||
id=24,
|
||||
id=33,
|
||||
name='Stagnant_Shadow_Perdition',
|
||||
cn='幽府之形•凝滞虚影',
|
||||
cht='幽府之形•凝滯虛影',
|
||||
en='Shape of Perdition',
|
||||
jp='凝結虚影・幽府の形',
|
||||
es='Forma del aislamiento',
|
||||
plane_id=2022301,
|
||||
)
|
||||
Stagnant_Shadow_Nectar = DungeonList(
|
||||
id=34,
|
||||
name='Stagnant_Shadow_Nectar',
|
||||
cn='冰酿之形•凝滞虚影',
|
||||
cht='冰釀之形•凝滯虛影',
|
||||
en='Shape of Nectar',
|
||||
jp='凝結虚影・氷醸の形',
|
||||
es='Forma del néctar',
|
||||
plane_id=2031101,
|
||||
)
|
||||
Stagnant_Shadow_Roast = DungeonList(
|
||||
id=35,
|
||||
name='Stagnant_Shadow_Roast',
|
||||
cn='焦炙之形•凝滞虚影',
|
||||
cht='焦炙之形•凝滯虛影',
|
||||
en='Shape of Roast',
|
||||
jp='凝結虚影・焦灼の形',
|
||||
es='Forma del agostamiento',
|
||||
plane_id=2031301,
|
||||
)
|
||||
Cavern_of_Corrosion_Path_of_Gelid_Wind = DungeonList(
|
||||
id=25,
|
||||
id=36,
|
||||
name='Cavern_of_Corrosion_Path_of_Gelid_Wind',
|
||||
cn='霜风之径•侵蚀隧洞',
|
||||
cht='霜風之徑•侵蝕隧洞',
|
||||
en='Path of Gelid Wind',
|
||||
jp='侵蝕トンネル・霜風の路',
|
||||
es='Senda del viento gélido',
|
||||
plane_id=2000201,
|
||||
)
|
||||
Cavern_of_Corrosion_Path_of_Jabbing_Punch = DungeonList(
|
||||
id=26,
|
||||
id=37,
|
||||
name='Cavern_of_Corrosion_Path_of_Jabbing_Punch',
|
||||
cn='迅拳之径•侵蚀隧洞',
|
||||
cht='迅拳之徑•侵蝕隧洞',
|
||||
en='Path of Jabbing Punch',
|
||||
jp='侵蝕トンネル・迅拳の路',
|
||||
es='Senda de los puños rápidos',
|
||||
plane_id=2013101,
|
||||
)
|
||||
Cavern_of_Corrosion_Path_of_Drifting = DungeonList(
|
||||
id=27,
|
||||
id=38,
|
||||
name='Cavern_of_Corrosion_Path_of_Drifting',
|
||||
cn='漂泊之径•侵蚀隧洞',
|
||||
cht='漂泊之徑•侵蝕隧洞',
|
||||
en='Path of Drifting',
|
||||
jp='侵蝕トンネル・漂泊の路',
|
||||
es='Senda de la deriva',
|
||||
plane_id=2013201,
|
||||
)
|
||||
Cavern_of_Corrosion_Path_of_Providence = DungeonList(
|
||||
id=28,
|
||||
id=39,
|
||||
name='Cavern_of_Corrosion_Path_of_Providence',
|
||||
cn='睿治之径•侵蚀隧洞',
|
||||
cht='睿治之徑•侵蝕隧洞',
|
||||
en='Path of Providence',
|
||||
jp='侵蝕トンネル・睿治の路',
|
||||
es='Senda de la providencia',
|
||||
plane_id=2013401,
|
||||
)
|
||||
Cavern_of_Corrosion_Path_of_Holy_Hymn = DungeonList(
|
||||
id=29,
|
||||
id=40,
|
||||
name='Cavern_of_Corrosion_Path_of_Holy_Hymn',
|
||||
cn='圣颂之径•侵蚀隧洞',
|
||||
cht='聖頌之徑•侵蝕隧洞',
|
||||
en='Path of Holy Hymn',
|
||||
jp='侵蝕トンネル・聖頌の路',
|
||||
es='Senda del himno sagrado',
|
||||
plane_id=2021101,
|
||||
)
|
||||
Cavern_of_Corrosion_Path_of_Conflagration = DungeonList(
|
||||
id=30,
|
||||
id=41,
|
||||
name='Cavern_of_Corrosion_Path_of_Conflagration',
|
||||
cn='野焰之径•侵蚀隧洞',
|
||||
cht='野焰之徑•侵蝕隧洞',
|
||||
en='Path of Conflagration',
|
||||
jp='侵蝕トンネル・野焔の路',
|
||||
es='Senda de la conflagración',
|
||||
plane_id=2021201,
|
||||
)
|
||||
Cavern_of_Corrosion_Path_of_Elixir_Seekers = DungeonList(
|
||||
id=31,
|
||||
id=42,
|
||||
name='Cavern_of_Corrosion_Path_of_Elixir_Seekers',
|
||||
cn='药使之径•侵蚀隧洞',
|
||||
cht='藥使之徑•侵蝕隧洞',
|
||||
en='Path of Elixir Seekers',
|
||||
jp='侵蝕トンネル・薬使の路',
|
||||
es='Senda de los elixires',
|
||||
plane_id=2023101,
|
||||
)
|
||||
Cavern_of_Corrosion_Path_of_Darkness = DungeonList(
|
||||
id=32,
|
||||
id=43,
|
||||
name='Cavern_of_Corrosion_Path_of_Darkness',
|
||||
cn='幽冥之径•侵蚀隧洞',
|
||||
cht='幽冥之徑•侵蝕隧洞',
|
||||
en='Path of Darkness',
|
||||
jp='侵蝕トンネル・幽冥の路',
|
||||
es='Senda de la oscuridad',
|
||||
plane_id=2022301,
|
||||
)
|
||||
Cavern_of_Corrosion_Path_of_Dreamdive = DungeonList(
|
||||
id=44,
|
||||
name='Cavern_of_Corrosion_Path_of_Dreamdive',
|
||||
cn='梦潜之径•侵蚀隧洞',
|
||||
cht='夢潛之徑•侵蝕隧洞',
|
||||
en='Path of Dreamdive',
|
||||
jp='侵蝕トンネル・夢潜の路',
|
||||
es='Senda de los sueños',
|
||||
plane_id=2031101,
|
||||
)
|
||||
Echo_of_War_Destruction_Beginning = DungeonList(
|
||||
id=33,
|
||||
id=45,
|
||||
name='Echo_of_War_Destruction_Beginning',
|
||||
cn='毁灭的开端•历战余响',
|
||||
cht='毀滅的開端•歷戰餘響',
|
||||
en="Destruction's Beginning",
|
||||
jp='歴戦余韻・壊滅の始まり',
|
||||
es='El principio de la Destrucción',
|
||||
plane_id=2000301,
|
||||
)
|
||||
Echo_of_War_End_of_the_Eternal_Freeze = DungeonList(
|
||||
id=34,
|
||||
id=46,
|
||||
name='Echo_of_War_End_of_the_Eternal_Freeze',
|
||||
cn='寒潮的落幕•历战余响',
|
||||
cht='寒潮的落幕•歷戰餘響',
|
||||
en='End of the Eternal Freeze',
|
||||
jp='歴戦余韻・寒波の幕切れ',
|
||||
es='El fin del Hielo Eterno',
|
||||
plane_id=2013401,
|
||||
)
|
||||
Echo_of_War_Divine_Seed = DungeonList(
|
||||
id=35,
|
||||
id=47,
|
||||
name='Echo_of_War_Divine_Seed',
|
||||
cn='不死的神实•历战余响',
|
||||
cht='不死的神實•歷戰餘響',
|
||||
en='Divine Seed',
|
||||
jp='歴戦余韻・不死の神実',
|
||||
es='Semilla divina',
|
||||
plane_id=2023201,
|
||||
)
|
||||
Echo_of_War_Borehole_Planet_Old_Crater = DungeonList(
|
||||
id=36,
|
||||
id=48,
|
||||
name='Echo_of_War_Borehole_Planet_Old_Crater',
|
||||
cn='蛀星的旧靥•历战余响',
|
||||
cht='蛀星的舊靨•歷戰餘響',
|
||||
en="Borehole Planet's Old Crater",
|
||||
jp='歴戦余韻・星を蝕む往日の面影',
|
||||
es='Cráter del planeta devorado',
|
||||
plane_id=2000401,
|
||||
)
|
||||
Simulated_Universe_World_1 = DungeonList(
|
||||
id=37,
|
||||
id=49,
|
||||
name='Simulated_Universe_World_1',
|
||||
cn='第一世界•模拟宇宙',
|
||||
cht='第一世界•模擬宇宙',
|
||||
en='Simulated Universe: World 1',
|
||||
jp='第一世界・模擬宇宙',
|
||||
es='Mundo 1',
|
||||
plane_id=100000104,
|
||||
)
|
||||
Simulated_Universe_World_3 = DungeonList(
|
||||
id=38,
|
||||
id=50,
|
||||
name='Simulated_Universe_World_3',
|
||||
cn='第三世界•模拟宇宙',
|
||||
cht='第三世界•模擬宇宙',
|
||||
en='Simulated Universe: World 3',
|
||||
jp='第三世界・模擬宇宙',
|
||||
es='Mundo 3',
|
||||
plane_id=100000104,
|
||||
)
|
||||
Simulated_Universe_World_4 = DungeonList(
|
||||
id=39,
|
||||
id=51,
|
||||
name='Simulated_Universe_World_4',
|
||||
cn='第四世界•模拟宇宙',
|
||||
cht='第四世界•模擬宇宙',
|
||||
en='Simulated Universe: World 4',
|
||||
jp='第四世界・模擬宇宙',
|
||||
es='Mundo 4',
|
||||
plane_id=100000104,
|
||||
)
|
||||
Simulated_Universe_World_5 = DungeonList(
|
||||
id=40,
|
||||
id=52,
|
||||
name='Simulated_Universe_World_5',
|
||||
cn='第五世界•模拟宇宙',
|
||||
cht='第五世界•模擬宇宙',
|
||||
en='Simulated Universe: World 5',
|
||||
jp='第五世界・模擬宇宙',
|
||||
es='Mundo 5',
|
||||
plane_id=100000104,
|
||||
)
|
||||
Simulated_Universe_World_6 = DungeonList(
|
||||
id=41,
|
||||
id=53,
|
||||
name='Simulated_Universe_World_6',
|
||||
cn='第六世界•模拟宇宙',
|
||||
cht='第六世界•模擬宇宙',
|
||||
en='Simulated Universe: World 6',
|
||||
jp='第六世界・模擬宇宙',
|
||||
es='Mundo 6',
|
||||
plane_id=100000104,
|
||||
)
|
||||
Simulated_Universe_World_7 = DungeonList(
|
||||
id=42,
|
||||
id=54,
|
||||
name='Simulated_Universe_World_7',
|
||||
cn='第七世界•模拟宇宙',
|
||||
cht='第七世界•模擬宇宙',
|
||||
en='Simulated Universe: World 7',
|
||||
jp='第七世界・模擬宇宙',
|
||||
es='Mundo 7',
|
||||
plane_id=100000104,
|
||||
)
|
||||
Simulated_Universe_World_8 = DungeonList(
|
||||
id=43,
|
||||
id=55,
|
||||
name='Simulated_Universe_World_8',
|
||||
cn='第八世界•模拟宇宙',
|
||||
cht='第八世界•模擬宇宙',
|
||||
en='Simulated Universe: World 8',
|
||||
jp='第八世界・模擬宇宙',
|
||||
es='Mundo 8',
|
||||
plane_id=100000104,
|
||||
)
|
||||
Simulated_Universe_The_Swarm_Disaster = DungeonList(
|
||||
id=44,
|
||||
id=56,
|
||||
name='Simulated_Universe_The_Swarm_Disaster',
|
||||
cn='寰宇蝗灾',
|
||||
cht='寰宇蝗災',
|
||||
en='The Swarm Disaster',
|
||||
jp='宇宙の蝗害',
|
||||
es='La Plaga',
|
||||
plane_id=-1,
|
||||
)
|
||||
Simulated_Universe_Gold_and_Gears = DungeonList(
|
||||
id=45,
|
||||
id=57,
|
||||
name='Simulated_Universe_Gold_and_Gears',
|
||||
cn='黄金与机械',
|
||||
cht='黃金與機械',
|
||||
en='Gold and Gears',
|
||||
jp='黄金と機械',
|
||||
es='Oro y maquinaria',
|
||||
plane_id=-1,
|
||||
)
|
||||
Memory_of_Chaos = DungeonList(
|
||||
id=46,
|
||||
id=58,
|
||||
name='Memory_of_Chaos',
|
||||
cn='混沌回忆',
|
||||
cht='混沌回憶',
|
||||
en='Memory of Chaos',
|
||||
jp='混沌の記憶',
|
||||
es='Evocación caótica',
|
||||
plane_id=-1,
|
||||
)
|
||||
The_Voyage_of_Navis_Astriger = DungeonList(
|
||||
id=47,
|
||||
id=59,
|
||||
name='The_Voyage_of_Navis_Astriger',
|
||||
cn='天艟求仙迷航录',
|
||||
cht='天艟求仙迷航錄',
|
||||
en='The Voyage of Navis Astriger',
|
||||
jp='天艟求仙放浪記',
|
||||
es='El viaje de las naves astriger',
|
||||
plane_id=-1,
|
||||
)
|
||||
The_Last_Vestiges_of_Towering_Citadel = DungeonList(
|
||||
id=48,
|
||||
id=60,
|
||||
name='The_Last_Vestiges_of_Towering_Citadel',
|
||||
cn='永屹之城遗秘',
|
||||
cht='永屹之城遺秘',
|
||||
en='The Last Vestiges of Towering Citadel',
|
||||
jp='永屹の城の秘密',
|
||||
es='Herencia de la Ciudadela Imponente',
|
||||
plane_id=-1,
|
||||
)
|
||||
|
@ -114,11 +114,11 @@ Stagnant_Shadow_Scorch = DungeonDetailed(
|
||||
Stagnant_Shadow_Celestial = DungeonDetailed(
|
||||
id=13,
|
||||
name='Stagnant_Shadow_Celestial',
|
||||
cn='角色晋阶材料:风(刃 / 藿藿)',
|
||||
cht='角色晉階材料:風(刃 / 藿藿)',
|
||||
en='Ascension: Wind (Blade / Huohuo)',
|
||||
jp='キャラクター昇格素材:風(刃 / フォフォ)',
|
||||
es='Ascension: Viento (Blade / Huohuo)',
|
||||
cn='角色晋阶材料:风(刃 / 藿藿 / 黑天鹅)',
|
||||
cht='角色晉階材料:風(刃 / 藿藿 / 黑天鵝)',
|
||||
en='Ascension: Wind (Blade / Huohuo / Black Swan)',
|
||||
jp='キャラクター昇格素材:風(刃 / フォフォ / ブラックスワン)',
|
||||
es='Ascension: Viento (Blade / Huohuo / Cisne Negro)',
|
||||
)
|
||||
Stagnant_Shadow_Perdition = DungeonDetailed(
|
||||
id=14,
|
||||
@ -129,3 +129,21 @@ Stagnant_Shadow_Perdition = DungeonDetailed(
|
||||
jp='キャラクター昇格素材:物理(寒鴉 / アルジェンティ)',
|
||||
es='Ascension: Físico (Hanya / Argenti)',
|
||||
)
|
||||
Stagnant_Shadow_Nectar = DungeonDetailed(
|
||||
id=15,
|
||||
name='Stagnant_Shadow_Nectar',
|
||||
cn='角色晋阶材料:冰(米沙)',
|
||||
cht='角色晉階材料:冰(米沙)',
|
||||
en='Ascension: Ice (Misha)',
|
||||
jp='キャラクター昇格素材:氷(ミーシャ)',
|
||||
es='Ascension: Hielo (Misha)',
|
||||
)
|
||||
Stagnant_Shadow_Roast = DungeonDetailed(
|
||||
id=16,
|
||||
name='Stagnant_Shadow_Roast',
|
||||
cn='角色晋阶材料:量子(花火)',
|
||||
cht='角色晉階材料:量子(花火)',
|
||||
en='Ascension: Quantum (Sparkle)',
|
||||
jp='キャラクター昇格素材:量子(花火)',
|
||||
es='Ascension: Cuántico (Sparkle)',
|
||||
)
|
||||
|
Loading…
Reference in New Issue
Block a user