Dev: Extract item keywords

This commit is contained in:
LmeSzinc 2024-05-11 18:21:28 +08:00
parent 56af575a5a
commit f05148fcf8
14 changed files with 1822 additions and 3 deletions

View File

@ -576,6 +576,8 @@ class KeywordExtract:
self.load_keywords(['养成材料', '光锥', '遗器', '其他材料', '消耗品', '任务', '贵重物']) self.load_keywords(['养成材料', '光锥', '遗器', '其他材料', '消耗品', '任务', '贵重物'])
self.write_keywords(keyword_class='ItemTab', text_convert=lambda name: name.replace(' ', ''), self.write_keywords(keyword_class='ItemTab', text_convert=lambda name: name.replace(' ', ''),
output_file='./tasks/item/keywords/tab.py') output_file='./tasks/item/keywords/tab.py')
from dev_tools.keywords.item import generate_items
generate_items()
self.generate_rogue_buff() self.generate_rogue_buff()
self.load_keywords(['已强化']) self.load_keywords(['已强化'])
self.write_keywords(keyword_class='RogueEnhancement', output_file='./tasks/rogue/keywords/enhancement.py') self.write_keywords(keyword_class='RogueEnhancement', output_file='./tasks/rogue/keywords/enhancement.py')

View File

@ -159,6 +159,7 @@ class GenerateKeyword:
base = self.keyword_format.copy() base = self.keyword_format.copy()
text_id = keyword.pop('text_id') text_id = keyword.pop('text_id')
if text_id is None: if text_id is None:
logger.warning(f'Empty text_id in {keyword}')
return return
# id # id
self.keyword_index += 1 self.keyword_index += 1
@ -191,3 +192,20 @@ class GenerateKeyword:
def __call__(self, *args, **kwargs): def __call__(self, *args, **kwargs):
self.generate() self.generate()
class ShareData(GenerateKeyword):
@cached_property
def GameplayGuideData(self):
return self.read_file('./ExcelOutput/GameplayGuideData.json')
@cached_property
def MappingInfo(self):
return self.read_file('./ExcelOutput/MappingInfo.json')
@cached_property
def ItemConfig(self):
return self.read_file('./ExcelOutput/ItemConfig.json')
SHARE_DATA = ShareData()

View File

@ -1,7 +1,7 @@
import re import re
import typing as t import typing as t
from dev_tools.keywords.base import GenerateKeyword, text_to_variable from dev_tools.keywords.base import GenerateKeyword, SHARE_DATA, text_to_variable
from module.base.decorator import cached_property from module.base.decorator import cached_property
from module.config.utils import deep_get from module.config.utils import deep_get
@ -26,13 +26,14 @@ class GenerateDungeonList(GenerateKeyword):
@cached_property @cached_property
def data(self): def data(self):
return self.read_file('./ExcelOutput/GameplayGuideData.json') return SHARE_DATA.GameplayGuideData
def iter_keywords(self) -> t.Iterable[dict]: def iter_keywords(self) -> t.Iterable[dict]:
for keyword in self.iter_dungeon(): for keyword in self.iter_dungeon():
if isinstance(keyword, str): if isinstance(keyword, str):
yield dict( yield dict(
text_id=self.find_keyword(keyword, lang='cn')[0], text_id=self.find_keyword(keyword, lang='cn')[0],
dungeon_id=-1,
plane_id=-1, plane_id=-1,
) )
else: else:
@ -41,6 +42,7 @@ class GenerateDungeonList(GenerateKeyword):
def iter_dungeon(self): def iter_dungeon(self):
temp_save = "" temp_save = ""
for data in self.data.values(): for data in self.data.values():
dungeon_id = data.get('ID', 0)
text_id = deep_get(data, keys='Name.Hash') text_id = deep_get(data, keys='Name.Hash')
plane_id = deep_get(data, 'MapEntranceID', 0) plane_id = deep_get(data, 'MapEntranceID', 0)
_, name = self.find_keyword(text_id, lang='cn') _, name = self.find_keyword(text_id, lang='cn')
@ -51,6 +53,7 @@ class GenerateDungeonList(GenerateKeyword):
continue continue
yield dict( yield dict(
text_id=text_id, text_id=text_id,
dungeon_id=dungeon_id,
plane_id=plane_id, plane_id=plane_id,
) )
if temp_save: if temp_save:

109
dev_tools/keywords/item.py Normal file
View File

@ -0,0 +1,109 @@
import typing as t
from dev_tools.keywords.base import GenerateKeyword, SHARE_DATA
from module.base.decorator import cached_property
from module.config.utils import deep_get
class GenerateItemBase(GenerateKeyword):
purpose_type = []
def iter_items(self) -> t.Iterable[dict]:
for data in SHARE_DATA.ItemConfig.values():
item_id = data.get('ID', 0)
text_id = deep_get(data, keys='ItemName.Hash')
subtype = data.get('ItemSubType', 0)
rarity = data.get('Rarity', 0)
purpose = data.get('PurposeType', 0)
item_group = data.get('ItemGroup', 0)
yield dict(
text_id=text_id,
rarity=rarity,
item_id=item_id,
item_group=item_group,
dungeon_id=-1,
subtype=subtype,
purpose=purpose,
)
def iter_keywords(self) -> t.Iterable[dict]:
for data in self.iter_items():
if data['subtype'] == 'Material' and data['purpose'] in self.purpose_type:
data['dungeon_id'] = self.dict_itemid_to_dungeonid.get(data['item_id'], -1)
yield data
def iter_rows(self) -> t.Iterable[dict]:
for data in super().iter_rows():
data.pop('subtype')
data.pop('purpose')
yield data
@cached_property
def dict_itemid_to_dungeonid(self):
"""
MappingInfo is like
dungeon_id:
dungeon_level:
data
"""
dic = {}
for level_data in SHARE_DATA.MappingInfo.values():
# Use the highest level
# And must contain:
# "Type": "FARM_ENTRANCE",
# "FarmType": "COCOON",
for dungeon_data in level_data.values():
if dungeon_data.get('Type') != 'FARM_ENTRANCE':
continue
# parse
dungeon_id = dungeon_data.get('ID', 0)
for item_data in dungeon_data.get('DisplayItemList', []):
item_id = item_data.get('ItemID', 0)
if item_id < 100:
continue
dic.setdefault(item_id, dungeon_id)
return dic
class GenerateItemCurrency(GenerateItemBase):
output_file = './tasks/planner/keywords/item_currency.py'
def iter_keywords(self) -> t.Iterable[dict]:
for data in self.iter_items():
if data['subtype'] == 'Virtual' and data['item_id'] < 100:
yield data
class GenerateItemExp(GenerateItemBase):
output_file = './tasks/planner/keywords/item_exp.py'
purpose_type = [1, 5, 6]
class GenerateItemAscension(GenerateItemBase):
output_file = './tasks/planner/keywords/item_ascension.py'
purpose_type = [2]
class GenerateItemTrace(GenerateItemBase):
output_file = './tasks/planner/keywords/item_trace.py'
purpose_type = [3]
class GenerateItemWeekly(GenerateItemBase):
output_file = './tasks/planner/keywords/item_weekly.py'
purpose_type = [4]
class GenerateItemCalyx(GenerateItemBase):
output_file = './tasks/planner/keywords/item_calyx.py'
purpose_type = [7]
def generate_items():
GenerateItemCurrency()()
GenerateItemExp()()
GenerateItemAscension()()
GenerateItemTrace()()
GenerateItemWeekly()()
GenerateItemCalyx()()

View File

@ -20,6 +20,7 @@ class DungeonTab(Keyword):
class DungeonList(Keyword): class DungeonList(Keyword):
instances: ClassVar = {} instances: ClassVar = {}
dungeon_id: int
plane_id: int plane_id: int
@cached_property @cached_property
@ -183,6 +184,20 @@ class DungeonList(Keyword):
else: else:
return '' return ''
@classmethod
def find_dungeon_id(cls, dungeon_id):
"""
Args:
dungeon_id:
Returns:
DungeonList: DungeonList object or None
"""
for instance in cls.instances.values():
if instance.dungeon_id == dungeon_id:
return instance
return None
@classmethod @classmethod
def find_dungeon_by_string(cls, cn='', en='', **kwargs): def find_dungeon_by_string(cls, cn='', en='', **kwargs):
""" """
@ -225,7 +240,6 @@ class DungeonList(Keyword):
return None return None
@dataclass(repr=False) @dataclass(repr=False)
class DungeonEntrance(Keyword): class DungeonEntrance(Keyword):
instances: ClassVar = {} instances: ClassVar = {}

View File

@ -11,6 +11,7 @@ Calyx_Golden_Memories_Jarilo_VI = DungeonList(
en='Bud of Memories (Jarilo-Ⅵ)', en='Bud of Memories (Jarilo-Ⅵ)',
jp='回憶の蕾・ヤリーロ-Ⅵ', jp='回憶の蕾・ヤリーロ-Ⅵ',
es='Flor de los recuerdos (Jarilo-Ⅵ)', es='Flor de los recuerdos (Jarilo-Ⅵ)',
dungeon_id=1001,
plane_id=2010101, plane_id=2010101,
) )
Calyx_Golden_Aether_Jarilo_VI = DungeonList( Calyx_Golden_Aether_Jarilo_VI = DungeonList(
@ -21,6 +22,7 @@ Calyx_Golden_Aether_Jarilo_VI = DungeonList(
en='Bud of Aether (Jarilo-Ⅵ)', en='Bud of Aether (Jarilo-Ⅵ)',
jp='エーテルの蕾・ヤリーロ-Ⅵ', jp='エーテルの蕾・ヤリーロ-Ⅵ',
es='Flor de éter (Jarilo-Ⅵ)', es='Flor de éter (Jarilo-Ⅵ)',
dungeon_id=1002,
plane_id=2011101, plane_id=2011101,
) )
Calyx_Golden_Treasures_Jarilo_VI = DungeonList( Calyx_Golden_Treasures_Jarilo_VI = DungeonList(
@ -31,6 +33,7 @@ Calyx_Golden_Treasures_Jarilo_VI = DungeonList(
en='Bud of Treasures (Jarilo-Ⅵ)', en='Bud of Treasures (Jarilo-Ⅵ)',
jp='秘蔵の蕾・ヤリーロ-Ⅵ', jp='秘蔵の蕾・ヤリーロ-Ⅵ',
es='Flor de tesoros (Jarilo-Ⅵ)', es='Flor de tesoros (Jarilo-Ⅵ)',
dungeon_id=1003,
plane_id=2012101, plane_id=2012101,
) )
Calyx_Golden_Memories_The_Xianzhou_Luofu = DungeonList( Calyx_Golden_Memories_The_Xianzhou_Luofu = DungeonList(
@ -41,6 +44,7 @@ Calyx_Golden_Memories_The_Xianzhou_Luofu = DungeonList(
en='Bud of Memories (The Xianzhou Luofu)', en='Bud of Memories (The Xianzhou Luofu)',
jp='回憶の蕾・仙舟「羅浮」', jp='回憶の蕾・仙舟「羅浮」',
es='Flor de los recuerdos (El Luofu de Xianzhou)', es='Flor de los recuerdos (El Luofu de Xianzhou)',
dungeon_id=1011,
plane_id=2021101, plane_id=2021101,
) )
Calyx_Golden_Aether_The_Xianzhou_Luofu = DungeonList( Calyx_Golden_Aether_The_Xianzhou_Luofu = DungeonList(
@ -51,6 +55,7 @@ Calyx_Golden_Aether_The_Xianzhou_Luofu = DungeonList(
en='Bud of Aether (The Xianzhou Luofu)', en='Bud of Aether (The Xianzhou Luofu)',
jp='エーテルの蕾・仙舟「羅浮」', jp='エーテルの蕾・仙舟「羅浮」',
es='Flor de éter (El Luofu de Xianzhou)', es='Flor de éter (El Luofu de Xianzhou)',
dungeon_id=1012,
plane_id=2022101, plane_id=2022101,
) )
Calyx_Golden_Treasures_The_Xianzhou_Luofu = DungeonList( Calyx_Golden_Treasures_The_Xianzhou_Luofu = DungeonList(
@ -61,6 +66,7 @@ Calyx_Golden_Treasures_The_Xianzhou_Luofu = DungeonList(
en='Bud of Treasures (The Xianzhou Luofu)', en='Bud of Treasures (The Xianzhou Luofu)',
jp='秘蔵の蕾・仙舟「羅浮」', jp='秘蔵の蕾・仙舟「羅浮」',
es='Flor de tesoros (El Luofu de Xianzhou)', es='Flor de tesoros (El Luofu de Xianzhou)',
dungeon_id=1013,
plane_id=2022201, plane_id=2022201,
) )
Calyx_Golden_Memories_Penacony = DungeonList( Calyx_Golden_Memories_Penacony = DungeonList(
@ -71,6 +77,7 @@ Calyx_Golden_Memories_Penacony = DungeonList(
en='Bud of Memories (Penacony)', en='Bud of Memories (Penacony)',
jp='回憶の蕾・ピノコニー', jp='回憶の蕾・ピノコニー',
es='Flor de los recuerdos (Colonipenal)', es='Flor de los recuerdos (Colonipenal)',
dungeon_id=1014,
plane_id=2031301, plane_id=2031301,
) )
Calyx_Golden_Aether_Penacony = DungeonList( Calyx_Golden_Aether_Penacony = DungeonList(
@ -81,6 +88,7 @@ Calyx_Golden_Aether_Penacony = DungeonList(
en='Bud of Aether (Penacony)', en='Bud of Aether (Penacony)',
jp='エーテルの蕾・ピノコニー', jp='エーテルの蕾・ピノコニー',
es='Flor de éter (Colonipenal)', es='Flor de éter (Colonipenal)',
dungeon_id=1015,
plane_id=2031201, plane_id=2031201,
) )
Calyx_Golden_Treasures_Penacony = DungeonList( Calyx_Golden_Treasures_Penacony = DungeonList(
@ -91,6 +99,7 @@ Calyx_Golden_Treasures_Penacony = DungeonList(
en='Bud of Treasures (Penacony)', en='Bud of Treasures (Penacony)',
jp='秘蔵の蕾・ピノコニー', jp='秘蔵の蕾・ピノコニー',
es='Flor de tesoros (Colonipenal)', es='Flor de tesoros (Colonipenal)',
dungeon_id=1016,
plane_id=2031101, plane_id=2031101,
) )
Calyx_Crimson_Destruction_Herta_StorageZone = DungeonList( Calyx_Crimson_Destruction_Herta_StorageZone = DungeonList(
@ -101,6 +110,7 @@ Calyx_Crimson_Destruction_Herta_StorageZone = DungeonList(
en='Calyx (Crimson): Bud of Destruction', en='Calyx (Crimson): Bud of Destruction',
jp='疑似花萼(赤)・壊滅の蕾', jp='疑似花萼(赤)・壊滅の蕾',
es='Flor de la Destrucción', es='Flor de la Destrucción',
dungeon_id=1004,
plane_id=2000201, plane_id=2000201,
) )
Calyx_Crimson_Destruction_Luofu_ScalegorgeWaterscape = DungeonList( Calyx_Crimson_Destruction_Luofu_ScalegorgeWaterscape = DungeonList(
@ -111,6 +121,7 @@ Calyx_Crimson_Destruction_Luofu_ScalegorgeWaterscape = DungeonList(
en='Calyx (Crimson): Bud of Destruction', en='Calyx (Crimson): Bud of Destruction',
jp='疑似花萼(赤)・壊滅の蕾', jp='疑似花萼(赤)・壊滅の蕾',
es='Flor de la Destrucción', es='Flor de la Destrucción',
dungeon_id=1018,
plane_id=2023201, plane_id=2023201,
) )
Calyx_Crimson_Preservation_Herta_SupplyZone = DungeonList( Calyx_Crimson_Preservation_Herta_SupplyZone = DungeonList(
@ -121,6 +132,7 @@ Calyx_Crimson_Preservation_Herta_SupplyZone = DungeonList(
en='Calyx (Crimson): Bud of Preservation', en='Calyx (Crimson): Bud of Preservation',
jp='疑似花萼(赤)・存護の蕾', jp='疑似花萼(赤)・存護の蕾',
es='Flor de la Conservación', es='Flor de la Conservación',
dungeon_id=1005,
plane_id=2000301, plane_id=2000301,
) )
Calyx_Crimson_Preservation_Penacony_ClockStudiosThemePark = DungeonList( Calyx_Crimson_Preservation_Penacony_ClockStudiosThemePark = DungeonList(
@ -131,6 +143,7 @@ Calyx_Crimson_Preservation_Penacony_ClockStudiosThemePark = DungeonList(
en='Calyx (Crimson): Bud of Preservation', en='Calyx (Crimson): Bud of Preservation',
jp='疑似花萼(赤)・存護の蕾', jp='疑似花萼(赤)・存護の蕾',
es='Flor de la Conservación', es='Flor de la Conservación',
dungeon_id=1020,
plane_id=2032101, plane_id=2032101,
) )
Calyx_Crimson_The_Hunt_Jarilo_OutlyingSnowPlains = DungeonList( Calyx_Crimson_The_Hunt_Jarilo_OutlyingSnowPlains = DungeonList(
@ -141,6 +154,7 @@ Calyx_Crimson_The_Hunt_Jarilo_OutlyingSnowPlains = DungeonList(
en='Calyx (Crimson): Bud of The Hunt', en='Calyx (Crimson): Bud of The Hunt',
jp='疑似花萼(赤)・巡狩の蕾', jp='疑似花萼(赤)・巡狩の蕾',
es='Flor de la Cacería', es='Flor de la Cacería',
dungeon_id=1006,
plane_id=2010101, plane_id=2010101,
) )
Calyx_Crimson_The_Hunt_Penacony_SoulGladScorchsandAuditionVenue = DungeonList( Calyx_Crimson_The_Hunt_Penacony_SoulGladScorchsandAuditionVenue = DungeonList(
@ -151,6 +165,7 @@ Calyx_Crimson_The_Hunt_Penacony_SoulGladScorchsandAuditionVenue = DungeonList(
en='Calyx (Crimson): Bud of The Hunt', en='Calyx (Crimson): Bud of The Hunt',
jp='疑似花萼(赤)・巡狩の蕾', jp='疑似花萼(赤)・巡狩の蕾',
es='Cáliz (carmesí): Flor de la Cacería', es='Cáliz (carmesí): Flor de la Cacería',
dungeon_id=1022,
plane_id=2033101, plane_id=2033101,
) )
Calyx_Crimson_Abundance_Jarilo_BackwaterPass = DungeonList( Calyx_Crimson_Abundance_Jarilo_BackwaterPass = DungeonList(
@ -161,6 +176,7 @@ Calyx_Crimson_Abundance_Jarilo_BackwaterPass = DungeonList(
en='Calyx (Crimson): Bud of Abundance', en='Calyx (Crimson): Bud of Abundance',
jp='疑似花萼(赤)・豊穣の蕾', jp='疑似花萼(赤)・豊穣の蕾',
es='Flor de la Abundancia', es='Flor de la Abundancia',
dungeon_id=1007,
plane_id=2011101, plane_id=2011101,
) )
Calyx_Crimson_Abundance_Luofu_FyxestrollGarden = DungeonList( Calyx_Crimson_Abundance_Luofu_FyxestrollGarden = DungeonList(
@ -171,6 +187,7 @@ Calyx_Crimson_Abundance_Luofu_FyxestrollGarden = DungeonList(
en='Calyx (Crimson): Bud of Abundance', en='Calyx (Crimson): Bud of Abundance',
jp='疑似花萼(赤)・豊穣の蕾', jp='疑似花萼(赤)・豊穣の蕾',
es='Flor de la Abundancia', es='Flor de la Abundancia',
dungeon_id=1021,
plane_id=2022301, plane_id=2022301,
) )
Calyx_Crimson_Erudition_Jarilo_RivetTown = DungeonList( Calyx_Crimson_Erudition_Jarilo_RivetTown = DungeonList(
@ -181,6 +198,7 @@ Calyx_Crimson_Erudition_Jarilo_RivetTown = DungeonList(
en='Calyx (Crimson): Bud of Erudition', en='Calyx (Crimson): Bud of Erudition',
jp='疑似花萼(赤)・知恵の蕾', jp='疑似花萼(赤)・知恵の蕾',
es='Flor de la Erudición', es='Flor de la Erudición',
dungeon_id=1008,
plane_id=2012201, plane_id=2012201,
) )
Calyx_Crimson_Harmony_Jarilo_RobotSettlement = DungeonList( Calyx_Crimson_Harmony_Jarilo_RobotSettlement = DungeonList(
@ -191,6 +209,7 @@ Calyx_Crimson_Harmony_Jarilo_RobotSettlement = DungeonList(
en='Calyx (Crimson): Bud of Harmony', en='Calyx (Crimson): Bud of Harmony',
jp='疑似花萼(赤)・調和の蕾', jp='疑似花萼(赤)・調和の蕾',
es='Flor de la Armonía', es='Flor de la Armonía',
dungeon_id=1009,
plane_id=2012301, plane_id=2012301,
) )
Calyx_Crimson_Harmony_Penacony_TheReverieDreamscape = DungeonList( Calyx_Crimson_Harmony_Penacony_TheReverieDreamscape = DungeonList(
@ -201,6 +220,7 @@ Calyx_Crimson_Harmony_Penacony_TheReverieDreamscape = DungeonList(
en='Calyx (Crimson): Bud of Harmony', en='Calyx (Crimson): Bud of Harmony',
jp='疑似花萼(赤)・調和の蕾', jp='疑似花萼(赤)・調和の蕾',
es='Flor de la Armonía', es='Flor de la Armonía',
dungeon_id=1019,
plane_id=2031101, plane_id=2031101,
) )
Calyx_Crimson_Nihility_Jarilo_GreatMine = DungeonList( Calyx_Crimson_Nihility_Jarilo_GreatMine = DungeonList(
@ -211,6 +231,7 @@ Calyx_Crimson_Nihility_Jarilo_GreatMine = DungeonList(
en='Calyx (Crimson): Bud of Nihility', en='Calyx (Crimson): Bud of Nihility',
jp='疑似花萼(赤)・虚無の蕾', jp='疑似花萼(赤)・虚無の蕾',
es='Flor de la Nihilidad', es='Flor de la Nihilidad',
dungeon_id=1010,
plane_id=2012101, plane_id=2012101,
) )
Calyx_Crimson_Nihility_Luofu_AlchemyCommission = DungeonList( Calyx_Crimson_Nihility_Luofu_AlchemyCommission = DungeonList(
@ -221,6 +242,7 @@ Calyx_Crimson_Nihility_Luofu_AlchemyCommission = DungeonList(
en='Calyx (Crimson): Bud of Nihility', en='Calyx (Crimson): Bud of Nihility',
jp='疑似花萼(赤)・虚無の蕾', jp='疑似花萼(赤)・虚無の蕾',
es='Flor de la Nihilidad', es='Flor de la Nihilidad',
dungeon_id=1017,
plane_id=2023101, plane_id=2023101,
) )
Stagnant_Shadow_Quanta = DungeonList( Stagnant_Shadow_Quanta = DungeonList(
@ -231,6 +253,7 @@ Stagnant_Shadow_Quanta = DungeonList(
en='Stagnant Shadow: Shape of Quanta', en='Stagnant Shadow: Shape of Quanta',
jp='凝結虚影・虚海の形', jp='凝結虚影・虚海の形',
es='Forma del cuanto', es='Forma del cuanto',
dungeon_id=1101,
plane_id=2000101, plane_id=2000101,
) )
Stagnant_Shadow_Gust = DungeonList( Stagnant_Shadow_Gust = DungeonList(
@ -241,6 +264,7 @@ Stagnant_Shadow_Gust = DungeonList(
en='Stagnant Shadow: Shape of Gust', en='Stagnant Shadow: Shape of Gust',
jp='凝結虚影・薫風の形', jp='凝結虚影・薫風の形',
es='Forma del aire', es='Forma del aire',
dungeon_id=1102,
plane_id=2012201, plane_id=2012201,
) )
Stagnant_Shadow_Fulmination = DungeonList( Stagnant_Shadow_Fulmination = DungeonList(
@ -251,6 +275,7 @@ Stagnant_Shadow_Fulmination = DungeonList(
en='Stagnant Shadow: Shape of Fulmination', en='Stagnant Shadow: Shape of Fulmination',
jp='凝結虚影・鳴雷の形', jp='凝結虚影・鳴雷の形',
es='Forma del trueno', es='Forma del trueno',
dungeon_id=1103,
plane_id=2013201, plane_id=2013201,
) )
Stagnant_Shadow_Blaze = DungeonList( Stagnant_Shadow_Blaze = DungeonList(
@ -261,6 +286,7 @@ Stagnant_Shadow_Blaze = DungeonList(
en='Stagnant Shadow: Shape of Blaze', en='Stagnant Shadow: Shape of Blaze',
jp='凝結虚影・炎華の形', jp='凝結虚影・炎華の形',
es='Forma de las llamas', es='Forma de las llamas',
dungeon_id=1104,
plane_id=2013101, plane_id=2013101,
) )
Stagnant_Shadow_Spike = DungeonList( Stagnant_Shadow_Spike = DungeonList(
@ -271,6 +297,7 @@ Stagnant_Shadow_Spike = DungeonList(
en='Stagnant Shadow: Shape of Spike', en='Stagnant Shadow: Shape of Spike',
jp='凝結虚影・切先の形', jp='凝結虚影・切先の形',
es='Forma afilada', es='Forma afilada',
dungeon_id=1105,
plane_id=2012101, plane_id=2012101,
) )
Stagnant_Shadow_Rime = DungeonList( Stagnant_Shadow_Rime = DungeonList(
@ -281,6 +308,7 @@ Stagnant_Shadow_Rime = DungeonList(
en='Stagnant Shadow: Shape of Rime', en='Stagnant Shadow: Shape of Rime',
jp='凝結虚影・霜晶の形', jp='凝結虚影・霜晶の形',
es='Forma de la escarcha', es='Forma de la escarcha',
dungeon_id=1106,
plane_id=2013201, plane_id=2013201,
) )
Stagnant_Shadow_Mirage = DungeonList( Stagnant_Shadow_Mirage = DungeonList(
@ -291,6 +319,7 @@ Stagnant_Shadow_Mirage = DungeonList(
en='Stagnant Shadow: Shape of Mirage', en='Stagnant Shadow: Shape of Mirage',
jp='凝結虚影・幻光の形', jp='凝結虚影・幻光の形',
es='Forma del espejismo', es='Forma del espejismo',
dungeon_id=1107,
plane_id=2011101, plane_id=2011101,
) )
Stagnant_Shadow_Icicle = DungeonList( Stagnant_Shadow_Icicle = DungeonList(
@ -301,6 +330,7 @@ Stagnant_Shadow_Icicle = DungeonList(
en='Stagnant Shadow: Shape of Icicle', en='Stagnant Shadow: Shape of Icicle',
jp='凝結虚影・氷柱の形', jp='凝結虚影・氷柱の形',
es='Forma del témpano', es='Forma del témpano',
dungeon_id=1108,
plane_id=2021101, plane_id=2021101,
) )
Stagnant_Shadow_Doom = DungeonList( Stagnant_Shadow_Doom = DungeonList(
@ -311,6 +341,7 @@ Stagnant_Shadow_Doom = DungeonList(
en='Stagnant Shadow: Shape of Doom', en='Stagnant Shadow: Shape of Doom',
jp='凝結虚影・震厄の形', jp='凝結虚影・震厄の形',
es='Forma de la perdición', es='Forma de la perdición',
dungeon_id=1109,
plane_id=2021201, plane_id=2021201,
) )
Stagnant_Shadow_Puppetry = DungeonList( Stagnant_Shadow_Puppetry = DungeonList(
@ -321,6 +352,7 @@ Stagnant_Shadow_Puppetry = DungeonList(
en='Stagnant Shadow: Shape of Puppetry', en='Stagnant Shadow: Shape of Puppetry',
jp='凝結虚影・傀儡の形', jp='凝結虚影・傀儡の形',
es='Forma de las marionetas', es='Forma de las marionetas',
dungeon_id=1110,
plane_id=2022201, plane_id=2022201,
) )
Stagnant_Shadow_Abomination = DungeonList( Stagnant_Shadow_Abomination = DungeonList(
@ -331,6 +363,7 @@ Stagnant_Shadow_Abomination = DungeonList(
en='Stagnant Shadow: Shape of Abomination', en='Stagnant Shadow: Shape of Abomination',
jp='凝結虚影・厄獣の形', jp='凝結虚影・厄獣の形',
es='Forma de la abominación', es='Forma de la abominación',
dungeon_id=1111,
plane_id=2023201, plane_id=2023201,
) )
Stagnant_Shadow_Scorch = DungeonList( Stagnant_Shadow_Scorch = DungeonList(
@ -341,6 +374,7 @@ Stagnant_Shadow_Scorch = DungeonList(
en='Stagnant Shadow: Shape of Scorch', en='Stagnant Shadow: Shape of Scorch',
jp='凝結虚影・燔灼の形', jp='凝結虚影・燔灼の形',
es='Forma abrasada', es='Forma abrasada',
dungeon_id=1112,
plane_id=2012101, plane_id=2012101,
) )
Stagnant_Shadow_Celestial = DungeonList( Stagnant_Shadow_Celestial = DungeonList(
@ -351,6 +385,7 @@ Stagnant_Shadow_Celestial = DungeonList(
en='Stagnant Shadow: Shape of Celestial', en='Stagnant Shadow: Shape of Celestial',
jp='凝結虚影・天人の形', jp='凝結虚影・天人の形',
es='Forma de lo celestial', es='Forma de lo celestial',
dungeon_id=1113,
plane_id=2023101, plane_id=2023101,
) )
Stagnant_Shadow_Perdition = DungeonList( Stagnant_Shadow_Perdition = DungeonList(
@ -361,6 +396,7 @@ Stagnant_Shadow_Perdition = DungeonList(
en='Stagnant Shadow: Shape of Perdition', en='Stagnant Shadow: Shape of Perdition',
jp='凝結虚影・幽府の形', jp='凝結虚影・幽府の形',
es='Forma del aislamiento', es='Forma del aislamiento',
dungeon_id=1114,
plane_id=2022301, plane_id=2022301,
) )
Stagnant_Shadow_Nectar = DungeonList( Stagnant_Shadow_Nectar = DungeonList(
@ -371,6 +407,7 @@ Stagnant_Shadow_Nectar = DungeonList(
en='Stagnant Shadow: Shape of Nectar', en='Stagnant Shadow: Shape of Nectar',
jp='凝結虚影・氷醸の形', jp='凝結虚影・氷醸の形',
es='Forma del néctar', es='Forma del néctar',
dungeon_id=1115,
plane_id=2031101, plane_id=2031101,
) )
Stagnant_Shadow_Roast = DungeonList( Stagnant_Shadow_Roast = DungeonList(
@ -381,6 +418,7 @@ Stagnant_Shadow_Roast = DungeonList(
en='Stagnant Shadow: Shape of Roast', en='Stagnant Shadow: Shape of Roast',
jp='凝結虚影・焦灼の形', jp='凝結虚影・焦灼の形',
es='Forma del agostamiento', es='Forma del agostamiento',
dungeon_id=1116,
plane_id=2031301, plane_id=2031301,
) )
Stagnant_Shadow_Ire = DungeonList( Stagnant_Shadow_Ire = DungeonList(
@ -391,6 +429,7 @@ Stagnant_Shadow_Ire = DungeonList(
en='Stagnant Shadow: Shape of Ire', en='Stagnant Shadow: Shape of Ire',
jp='凝結虚影・憤怒の形', jp='凝結虚影・憤怒の形',
es='Forma de la ira', es='Forma de la ira',
dungeon_id=1117,
plane_id=2032201, plane_id=2032201,
) )
Stagnant_Shadow_Duty = DungeonList( Stagnant_Shadow_Duty = DungeonList(
@ -401,6 +440,7 @@ Stagnant_Shadow_Duty = DungeonList(
en='Stagnant Shadow: Shape of Duty', en='Stagnant Shadow: Shape of Duty',
jp='凝結虚影・職掌の形', jp='凝結虚影・職掌の形',
es='Sombra paralizada: Forma del deber', es='Sombra paralizada: Forma del deber',
dungeon_id=1118,
plane_id=2032101, plane_id=2032101,
) )
Cavern_of_Corrosion_Path_of_Gelid_Wind = DungeonList( Cavern_of_Corrosion_Path_of_Gelid_Wind = DungeonList(
@ -411,6 +451,7 @@ Cavern_of_Corrosion_Path_of_Gelid_Wind = DungeonList(
en='Cavern of Corrosion: Path of Gelid Wind', en='Cavern of Corrosion: Path of Gelid Wind',
jp='侵蝕トンネル・霜風の路', jp='侵蝕トンネル・霜風の路',
es='Senda del viento gélido', es='Senda del viento gélido',
dungeon_id=1201,
plane_id=2000201, plane_id=2000201,
) )
Cavern_of_Corrosion_Path_of_Jabbing_Punch = DungeonList( Cavern_of_Corrosion_Path_of_Jabbing_Punch = DungeonList(
@ -421,6 +462,7 @@ Cavern_of_Corrosion_Path_of_Jabbing_Punch = DungeonList(
en='Cavern of Corrosion: Path of Jabbing Punch', en='Cavern of Corrosion: Path of Jabbing Punch',
jp='侵蝕トンネル・迅拳の路', jp='侵蝕トンネル・迅拳の路',
es='Senda de los puños rápidos', es='Senda de los puños rápidos',
dungeon_id=1202,
plane_id=2013101, plane_id=2013101,
) )
Cavern_of_Corrosion_Path_of_Drifting = DungeonList( Cavern_of_Corrosion_Path_of_Drifting = DungeonList(
@ -431,6 +473,7 @@ Cavern_of_Corrosion_Path_of_Drifting = DungeonList(
en='Cavern of Corrosion: Path of Drifting', en='Cavern of Corrosion: Path of Drifting',
jp='侵蝕トンネル・漂泊の路', jp='侵蝕トンネル・漂泊の路',
es='Senda de la deriva', es='Senda de la deriva',
dungeon_id=1203,
plane_id=2013201, plane_id=2013201,
) )
Cavern_of_Corrosion_Path_of_Providence = DungeonList( Cavern_of_Corrosion_Path_of_Providence = DungeonList(
@ -441,6 +484,7 @@ Cavern_of_Corrosion_Path_of_Providence = DungeonList(
en='Cavern of Corrosion: Path of Providence', en='Cavern of Corrosion: Path of Providence',
jp='侵蝕トンネル・睿治の路', jp='侵蝕トンネル・睿治の路',
es='Senda de la providencia', es='Senda de la providencia',
dungeon_id=1204,
plane_id=2013401, plane_id=2013401,
) )
Cavern_of_Corrosion_Path_of_Holy_Hymn = DungeonList( Cavern_of_Corrosion_Path_of_Holy_Hymn = DungeonList(
@ -451,6 +495,7 @@ Cavern_of_Corrosion_Path_of_Holy_Hymn = DungeonList(
en='Cavern of Corrosion: Path of Holy Hymn', en='Cavern of Corrosion: Path of Holy Hymn',
jp='侵蝕トンネル・聖頌の路', jp='侵蝕トンネル・聖頌の路',
es='Senda del himno sagrado', es='Senda del himno sagrado',
dungeon_id=1205,
plane_id=2021101, plane_id=2021101,
) )
Cavern_of_Corrosion_Path_of_Conflagration = DungeonList( Cavern_of_Corrosion_Path_of_Conflagration = DungeonList(
@ -461,6 +506,7 @@ Cavern_of_Corrosion_Path_of_Conflagration = DungeonList(
en='Cavern of Corrosion: Path of Conflagration', en='Cavern of Corrosion: Path of Conflagration',
jp='侵蝕トンネル・野焔の路', jp='侵蝕トンネル・野焔の路',
es='Senda de la conflagración', es='Senda de la conflagración',
dungeon_id=1206,
plane_id=2021201, plane_id=2021201,
) )
Cavern_of_Corrosion_Path_of_Elixir_Seekers = DungeonList( Cavern_of_Corrosion_Path_of_Elixir_Seekers = DungeonList(
@ -471,6 +517,7 @@ Cavern_of_Corrosion_Path_of_Elixir_Seekers = DungeonList(
en='Cavern of Corrosion: Path of Elixir Seekers', en='Cavern of Corrosion: Path of Elixir Seekers',
jp='侵蝕トンネル・薬使の路', jp='侵蝕トンネル・薬使の路',
es='Senda de los elixires', es='Senda de los elixires',
dungeon_id=1207,
plane_id=2023101, plane_id=2023101,
) )
Cavern_of_Corrosion_Path_of_Darkness = DungeonList( Cavern_of_Corrosion_Path_of_Darkness = DungeonList(
@ -481,6 +528,7 @@ Cavern_of_Corrosion_Path_of_Darkness = DungeonList(
en='Cavern of Corrosion: Path of Darkness', en='Cavern of Corrosion: Path of Darkness',
jp='侵蝕トンネル・幽冥の路', jp='侵蝕トンネル・幽冥の路',
es='Senda de la oscuridad', es='Senda de la oscuridad',
dungeon_id=1208,
plane_id=2022301, plane_id=2022301,
) )
Cavern_of_Corrosion_Path_of_Dreamdive = DungeonList( Cavern_of_Corrosion_Path_of_Dreamdive = DungeonList(
@ -491,6 +539,7 @@ Cavern_of_Corrosion_Path_of_Dreamdive = DungeonList(
en='Cavern of Corrosion: Path of Dreamdive', en='Cavern of Corrosion: Path of Dreamdive',
jp='侵蝕トンネル・夢潜の路', jp='侵蝕トンネル・夢潜の路',
es='Senda de los sueños', es='Senda de los sueños',
dungeon_id=1209,
plane_id=2031101, plane_id=2031101,
) )
Echo_of_War_Destruction_Beginning = DungeonList( Echo_of_War_Destruction_Beginning = DungeonList(
@ -501,6 +550,7 @@ Echo_of_War_Destruction_Beginning = DungeonList(
en="Echo of War: Destruction's Beginning", en="Echo of War: Destruction's Beginning",
jp='歴戦余韻・壊滅の始まり', jp='歴戦余韻・壊滅の始まり',
es='El principio de la Destrucción', es='El principio de la Destrucción',
dungeon_id=1301,
plane_id=2000301, plane_id=2000301,
) )
Echo_of_War_End_of_the_Eternal_Freeze = DungeonList( Echo_of_War_End_of_the_Eternal_Freeze = DungeonList(
@ -511,6 +561,7 @@ Echo_of_War_End_of_the_Eternal_Freeze = DungeonList(
en='Echo of War: End of the Eternal Freeze', en='Echo of War: End of the Eternal Freeze',
jp='歴戦余韻・寒波の幕切れ', jp='歴戦余韻・寒波の幕切れ',
es='El fin del Hielo Eterno', es='El fin del Hielo Eterno',
dungeon_id=1302,
plane_id=2013401, plane_id=2013401,
) )
Echo_of_War_Divine_Seed = DungeonList( Echo_of_War_Divine_Seed = DungeonList(
@ -521,6 +572,7 @@ Echo_of_War_Divine_Seed = DungeonList(
en='Echo of War: Divine Seed', en='Echo of War: Divine Seed',
jp='歴戦余韻・不死の神実', jp='歴戦余韻・不死の神実',
es='Semilla divina', es='Semilla divina',
dungeon_id=1303,
plane_id=2023201, plane_id=2023201,
) )
Echo_of_War_Borehole_Planet_Old_Crater = DungeonList( Echo_of_War_Borehole_Planet_Old_Crater = DungeonList(
@ -531,6 +583,7 @@ Echo_of_War_Borehole_Planet_Old_Crater = DungeonList(
en="Echo of War: Borehole Planet's Old Crater", en="Echo of War: Borehole Planet's Old Crater",
jp='歴戦余韻・星を蝕む往日の面影', jp='歴戦余韻・星を蝕む往日の面影',
es='Cráter del planeta devorado', es='Cráter del planeta devorado',
dungeon_id=1304,
plane_id=2000401, plane_id=2000401,
) )
Echo_of_War_Salutations_of_Ashen_Dreams = DungeonList( Echo_of_War_Salutations_of_Ashen_Dreams = DungeonList(
@ -541,6 +594,7 @@ Echo_of_War_Salutations_of_Ashen_Dreams = DungeonList(
en='Echo of War: Salutations of Ashen Dreams', en='Echo of War: Salutations of Ashen Dreams',
jp='歴戦余韻・現世の夢の礼賛', jp='歴戦余韻・現世の夢の礼賛',
es='Ecos de la guerra: Tributo del sueño ceniciento', es='Ecos de la guerra: Tributo del sueño ceniciento',
dungeon_id=1305,
plane_id=2033201, plane_id=2033201,
) )
Simulated_Universe_World_1 = DungeonList( Simulated_Universe_World_1 = DungeonList(
@ -551,6 +605,7 @@ Simulated_Universe_World_1 = DungeonList(
en='Simulated Universe: World 1', en='Simulated Universe: World 1',
jp='第一世界・模擬宇宙', jp='第一世界・模擬宇宙',
es='Mundo 1', es='Mundo 1',
dungeon_id=110,
plane_id=100000104, plane_id=100000104,
) )
Simulated_Universe_World_3 = DungeonList( Simulated_Universe_World_3 = DungeonList(
@ -561,6 +616,7 @@ Simulated_Universe_World_3 = DungeonList(
en='Simulated Universe: World 3', en='Simulated Universe: World 3',
jp='第三世界・模擬宇宙', jp='第三世界・模擬宇宙',
es='Mundo 3', es='Mundo 3',
dungeon_id=130,
plane_id=100000104, plane_id=100000104,
) )
Simulated_Universe_World_4 = DungeonList( Simulated_Universe_World_4 = DungeonList(
@ -571,6 +627,7 @@ Simulated_Universe_World_4 = DungeonList(
en='Simulated Universe: World 4', en='Simulated Universe: World 4',
jp='第四世界・模擬宇宙', jp='第四世界・模擬宇宙',
es='Mundo 4', es='Mundo 4',
dungeon_id=140,
plane_id=100000104, plane_id=100000104,
) )
Simulated_Universe_World_5 = DungeonList( Simulated_Universe_World_5 = DungeonList(
@ -581,6 +638,7 @@ Simulated_Universe_World_5 = DungeonList(
en='Simulated Universe: World 5', en='Simulated Universe: World 5',
jp='第五世界・模擬宇宙', jp='第五世界・模擬宇宙',
es='Mundo 5', es='Mundo 5',
dungeon_id=150,
plane_id=100000104, plane_id=100000104,
) )
Simulated_Universe_World_6 = DungeonList( Simulated_Universe_World_6 = DungeonList(
@ -591,6 +649,7 @@ Simulated_Universe_World_6 = DungeonList(
en='Simulated Universe: World 6', en='Simulated Universe: World 6',
jp='第六世界・模擬宇宙', jp='第六世界・模擬宇宙',
es='Mundo 6', es='Mundo 6',
dungeon_id=160,
plane_id=100000104, plane_id=100000104,
) )
Simulated_Universe_World_7 = DungeonList( Simulated_Universe_World_7 = DungeonList(
@ -601,6 +660,7 @@ Simulated_Universe_World_7 = DungeonList(
en='Simulated Universe: World 7', en='Simulated Universe: World 7',
jp='第七世界・模擬宇宙', jp='第七世界・模擬宇宙',
es='Mundo 7', es='Mundo 7',
dungeon_id=170,
plane_id=100000104, plane_id=100000104,
) )
Simulated_Universe_World_8 = DungeonList( Simulated_Universe_World_8 = DungeonList(
@ -611,6 +671,7 @@ Simulated_Universe_World_8 = DungeonList(
en='Simulated Universe: World 8', en='Simulated Universe: World 8',
jp='第八世界・模擬宇宙', jp='第八世界・模擬宇宙',
es='Mundo 8', es='Mundo 8',
dungeon_id=180,
plane_id=100000104, plane_id=100000104,
) )
Simulated_Universe_World_9 = DungeonList( Simulated_Universe_World_9 = DungeonList(
@ -621,6 +682,7 @@ Simulated_Universe_World_9 = DungeonList(
en='Simulated Universe: World 9', en='Simulated Universe: World 9',
jp='第九世界・模擬宇宙', jp='第九世界・模擬宇宙',
es='Mundo 9', es='Mundo 9',
dungeon_id=190,
plane_id=100000104, plane_id=100000104,
) )
Simulated_Universe_The_Swarm_Disaster = DungeonList( Simulated_Universe_The_Swarm_Disaster = DungeonList(
@ -631,6 +693,7 @@ Simulated_Universe_The_Swarm_Disaster = DungeonList(
en='The Swarm Disaster', en='The Swarm Disaster',
jp='宇宙の蝗害', jp='宇宙の蝗害',
es='La Plaga', es='La Plaga',
dungeon_id=-1,
plane_id=-1, plane_id=-1,
) )
Simulated_Universe_Gold_and_Gears = DungeonList( Simulated_Universe_Gold_and_Gears = DungeonList(
@ -641,6 +704,7 @@ Simulated_Universe_Gold_and_Gears = DungeonList(
en='Gold and Gears', en='Gold and Gears',
jp='黄金と機械', jp='黄金と機械',
es='Oro y maquinaria', es='Oro y maquinaria',
dungeon_id=-1,
plane_id=-1, plane_id=-1,
) )
Memory_of_Chaos = DungeonList( Memory_of_Chaos = DungeonList(
@ -651,6 +715,7 @@ Memory_of_Chaos = DungeonList(
en='Memory of Chaos', en='Memory of Chaos',
jp='混沌の記憶', jp='混沌の記憶',
es='Evocación caótica', es='Evocación caótica',
dungeon_id=-1,
plane_id=-1, plane_id=-1,
) )
The_Voyage_of_Navis_Astriger = DungeonList( The_Voyage_of_Navis_Astriger = DungeonList(
@ -661,6 +726,7 @@ The_Voyage_of_Navis_Astriger = DungeonList(
en='The Voyage of Navis Astriger', en='The Voyage of Navis Astriger',
jp='天艟求仙放浪記', jp='天艟求仙放浪記',
es='El viaje de las naves astriger', es='El viaje de las naves astriger',
dungeon_id=-1,
plane_id=-1, plane_id=-1,
) )
The_Last_Vestiges_of_Towering_Citadel = DungeonList( The_Last_Vestiges_of_Towering_Citadel = DungeonList(
@ -671,5 +737,6 @@ The_Last_Vestiges_of_Towering_Citadel = DungeonList(
en='The Last Vestiges of Towering Citadel', en='The Last Vestiges of Towering Citadel',
jp='永屹の城の秘密', jp='永屹の城の秘密',
es='Herencia de la Ciudadela Imponente', es='Herencia de la Ciudadela Imponente',
dungeon_id=-1,
plane_id=-1, plane_id=-1,
) )

View File

@ -0,0 +1,9 @@
import tasks.planner.keywords.item_ascension as KEYWORDS_ITEM_ASCENSION
import tasks.planner.keywords.item_calyx as KEYWORDS_ITEM_CALYX
import tasks.planner.keywords.item_currency as KEYWORDS_ITEM_CURRENCY
import tasks.planner.keywords.item_exp as KEYWORDS_ITEM_EXP
import tasks.planner.keywords.item_trace as KEYWORDS_ITEM_TRACE
import tasks.planner.keywords.item_weekly as KEYWORDS_ITEM_WEEKLY
from tasks.planner.keywords.classes import ItemAscension, ItemCalyx, ItemCurrency, ItemExp, ItemTrace, ItemWeekly
ITEM_CLASSES = [ItemAscension, ItemCalyx, ItemCurrency, ItemExp, ItemTrace, ItemWeekly]

View File

@ -0,0 +1,59 @@
from dataclasses import dataclass
from functools import cached_property
from typing import ClassVar
from module.ocr.keyword import Keyword
@dataclass(repr=False)
class ItemBase(Keyword):
instances: ClassVar = {}
rarity: str
item_id: int
item_group: int
dungeon_id: int
@cached_property
def dungeon(self):
"""
Dungeon that drops this item
Returns:
DungeonList: DungeonList object or None
"""
if self.dungeon_id > 0:
from tasks.dungeon.keywords.classes import DungeonList
return DungeonList.find_dungeon_id(self.dungeon_id)
else:
return None
@dataclass(repr=False)
class ItemAscension(ItemBase):
instances: ClassVar = {}
@dataclass(repr=False)
class ItemCalyx(ItemBase):
instances: ClassVar = {}
@dataclass(repr=False)
class ItemCurrency(ItemBase):
instances: ClassVar = {}
@dataclass(repr=False)
class ItemExp(ItemBase):
instances: ClassVar = {}
@dataclass(repr=False)
class ItemTrace(ItemBase):
instances: ClassVar = {}
@dataclass(repr=False)
class ItemWeekly(ItemBase):
instances: ClassVar = {}

View File

@ -0,0 +1,252 @@
from .classes import ItemAscension
# This file was auto-generated, do not modify it manually. To generate:
# ``` python -m dev_tools.keyword_extract ```
Enigmatic_Ectostella = ItemAscension(
id=1,
name='Enigmatic_Ectostella',
cn='深邃的星外质',
cht='深邃的星外質',
en='Enigmatic Ectostella',
jp='深邃な星外物質',
es='Ectoestela profunda',
rarity='VeryRare',
item_id=110400,
item_group=1100,
dungeon_id=-1,
)
Broken_Teeth_of_Iron_Wolf = ItemAscension(
id=2,
name='Broken_Teeth_of_Iron_Wolf',
cn='铁狼碎齿',
cht='鐵狼碎齒',
en='Broken Teeth of Iron Wolf',
jp='鉄狼の砕けた刃',
es='Dientes rotos del huargo férreo',
rarity='VeryRare',
item_id=110401,
item_group=1100,
dungeon_id=1105,
)
Endotherm_Chitin = ItemAscension(
id=3,
name='Endotherm_Chitin',
cn='恒温晶壳',
cht='恆溫晶殼',
en='Endotherm Chitin',
jp='恒温晶殻',
es='Quitina endoterma',
rarity='VeryRare',
item_id=110402,
item_group=1100,
dungeon_id=1104,
)
Horn_of_Snow = ItemAscension(
id=4,
name='Horn_of_Snow',
cn='风雪之角',
cht='風雪之角',
en='Horn of Snow',
jp='吹雪の角',
es='Cuerno de nieve',
rarity='VeryRare',
item_id=110403,
item_group=1100,
dungeon_id=1106,
)
Lightning_Crown_of_the_Past_Shadow = ItemAscension(
id=5,
name='Lightning_Crown_of_the_Past_Shadow',
cn='往日之影的雷冠',
cht='往日之影的雷冠',
en='Lightning Crown of the Past Shadow',
jp='過去の影の雷冠',
es='Corona de rayos de la sombra del pasado',
rarity='VeryRare',
item_id=110404,
item_group=1100,
dungeon_id=1103,
)
Storm_Eye = ItemAscension(
id=6,
name='Storm_Eye',
cn='暴风之眼',
cht='暴風之眼',
en='Storm Eye',
jp='暴風の眼',
es='Ojo del vendaval',
rarity='VeryRare',
item_id=110405,
item_group=1100,
dungeon_id=1102,
)
Void_Cast_Iron = ItemAscension(
id=7,
name='Void_Cast_Iron',
cn='虚幻铸铁',
cht='虛幻鑄鐵',
en='Void Cast Iron',
jp='虚幻鋳鉄',
es='Hierro forjado del Vacío',
rarity='VeryRare',
item_id=110406,
item_group=1100,
dungeon_id=1101,
)
Golden_Crown_of_the_Past_Shadow = ItemAscension(
id=8,
name='Golden_Crown_of_the_Past_Shadow',
cn='往日之影的金饰',
cht='往日之影的金飾',
en='Golden Crown of the Past Shadow',
jp='過去の影の金装飾',
es='Corona dorada de la sombra del pasado',
rarity='VeryRare',
item_id=110407,
item_group=1100,
dungeon_id=1107,
)
Netherworld_Token = ItemAscension(
id=9,
name='Netherworld_Token',
cn='幽府通令',
cht='幽府通令',
en='Netherworld Token',
jp='幽府通令',
es='Pase del inframundo',
rarity='VeryRare',
item_id=110411,
item_group=1100,
dungeon_id=1114,
)
Searing_Steel_Blade = ItemAscension(
id=10,
name='Searing_Steel_Blade',
cn='过热钢刃',
cht='過熱鋼刃',
en='Searing Steel Blade',
jp='灼熱の鋼刃',
es='Hoja de acero sobrecalentado',
rarity='VeryRare',
item_id=110412,
item_group=1100,
dungeon_id=1112,
)
Gelid_Chitin = ItemAscension(
id=11,
name='Gelid_Chitin',
cn='苦寒晶壳',
cht='苦寒晶殼',
en='Gelid Chitin',
jp='苦寒晶殻',
es='Quitina gélida',
rarity='VeryRare',
item_id=110413,
item_group=1100,
dungeon_id=1108,
)
Shape_Shifter_Lightning_Staff = ItemAscension(
id=12,
name='Shape_Shifter_Lightning_Staff',
cn='炼形者雷枝',
cht='煉形者雷枝',
en="Shape Shifter's Lightning Staff",
jp='鍛錬者の雷枝',
es='Báculo del Cambiaformas',
rarity='VeryRare',
item_id=110414,
item_group=1100,
dungeon_id=1109,
)
Ascendant_Debris = ItemAscension(
id=13,
name='Ascendant_Debris',
cn='天人遗垢',
cht='天人遺垢',
en='Ascendant Debris',
jp='天人の残穢',
es='Vestigios elevados',
rarity='VeryRare',
item_id=110415,
item_group=1100,
dungeon_id=1113,
)
Nail_of_the_Ape = ItemAscension(
id=14,
name='Nail_of_the_Ape',
cn='苍猿之钉',
cht='蒼猿之釘',
en='Nail of the Ape',
jp='蒼猿の釘',
es='Clavo del simio',
rarity='VeryRare',
item_id=110416,
item_group=1100,
dungeon_id=1111,
)
Suppressing_Edict = ItemAscension(
id=15,
name='Suppressing_Edict',
cn='镇灵敕符',
cht='鎮靈敕符',
en='Suppressing Edict',
jp='霊鎮めの勅符',
es='Edicto de la contención',
rarity='VeryRare',
item_id=110417,
item_group=1100,
dungeon_id=1110,
)
IPC_Work_Permit = ItemAscension(
id=16,
name='IPC_Work_Permit',
cn='星际和平工作证',
cht='星際和平工作證',
en='IPC Work Permit',
jp='スターピース社員証',
es='Permiso de trabajo de la Corporación',
rarity='VeryRare',
item_id=110421,
item_group=1100,
dungeon_id=1118,
)
Raging_Heart = ItemAscension(
id=17,
name='Raging_Heart',
cn='忿火之心',
cht='忿火之心',
en='Raging Heart',
jp='憤怒の心',
es='Corazón ardiente',
rarity='VeryRare',
item_id=110422,
item_group=1100,
dungeon_id=1117,
)
Dream_Fridge = ItemAscension(
id=18,
name='Dream_Fridge',
cn='冷藏梦箱',
cht='冷藏夢箱',
en='Dream Fridge',
jp='夢の冷蔵庫',
es='Nevera de sueños',
rarity='VeryRare',
item_id=110423,
item_group=1100,
dungeon_id=1115,
)
Dream_Flamer = ItemAscension(
id=19,
name='Dream_Flamer',
cn='炙梦喷枪',
cht='炙夢噴槍',
en='Dream Flamer',
jp='夢を炙るトーチバーナー',
es='Soplete de ensueño',
rarity='VeryRare',
item_id=110426,
item_group=1100,
dungeon_id=1116,
)

View File

@ -0,0 +1,317 @@
from .classes import ItemCalyx
# This file was auto-generated, do not modify it manually. To generate:
# ``` python -m dev_tools.keyword_extract ```
Extinguished_Core = ItemCalyx(
id=1,
name='Extinguished_Core',
cn='熄灭原核',
cht='熄滅原核',
en='Extinguished Core',
jp='消滅した原核',
es='Núcleo apagado',
rarity='NotNormal',
item_id=111001,
item_group=1401,
dungeon_id=1011,
)
Glimmering_Core = ItemCalyx(
id=2,
name='Glimmering_Core',
cn='微光原核',
cht='微光原核',
en='Glimmering Core',
jp='微かに光る原核',
es='Núcleo reluciente',
rarity='Rare',
item_id=111002,
item_group=1401,
dungeon_id=-1,
)
Squirming_Core = ItemCalyx(
id=3,
name='Squirming_Core',
cn='蠢动原核',
cht='蠢動原核',
en='Squirming Core',
jp='脈動する原核',
es='Núcleo serpenteante',
rarity='VeryRare',
item_id=111003,
item_group=1401,
dungeon_id=-1,
)
Thief_Instinct = ItemCalyx(
id=4,
name='Thief_Instinct',
cn='掠夺的本能',
cht='掠奪的本能',
en="Thief's Instinct",
jp='略奪の本能',
es='Instinto del ladrón',
rarity='NotNormal',
item_id=111011,
item_group=1402,
dungeon_id=1001,
)
Usurper_Scheme = ItemCalyx(
id=5,
name='Usurper_Scheme',
cn='篡改的野心',
cht='篡改的野心',
en="Usurper's Scheme",
jp='改ざんの野心',
es='Ambición distorsionada',
rarity='Rare',
item_id=111012,
item_group=1402,
dungeon_id=-1,
)
Conqueror_Will = ItemCalyx(
id=6,
name='Conqueror_Will',
cn='践踏的意志',
cht='踐踏的意志',
en="Conqueror's Will",
jp='踏みにじる意志',
es='Voluntad de conquista',
rarity='VeryRare',
item_id=111013,
item_group=1402,
dungeon_id=-1,
)
Silvermane_Badge = ItemCalyx(
id=7,
name='Silvermane_Badge',
cn='铁卫扣饰',
cht='鐵衛扣飾',
en='Silvermane Badge',
jp='シルバーメインの釦',
es='Pin del guardia',
rarity='NotNormal',
item_id=112001,
item_group=1403,
dungeon_id=1001,
)
Silvermane_Insignia = ItemCalyx(
id=8,
name='Silvermane_Insignia',
cn='铁卫军徽',
cht='鐵衛軍徽',
en='Silvermane Insignia',
jp='シルバーメインの記章',
es='Insignia del guardia',
rarity='Rare',
item_id=112002,
item_group=1403,
dungeon_id=-1,
)
Silvermane_Medal = ItemCalyx(
id=9,
name='Silvermane_Medal',
cn='铁卫勋章',
cht='鐵衛勳章',
en='Silvermane Medal',
jp='シルバーメインの勲章',
es='Medalla del guardia',
rarity='VeryRare',
item_id=112003,
item_group=1403,
dungeon_id=-1,
)
Ancient_Part = ItemCalyx(
id=10,
name='Ancient_Part',
cn='古代零件',
cht='古代零件',
en='Ancient Part',
jp='古代パーツ',
es='Componente antiguo',
rarity='NotNormal',
item_id=112011,
item_group=1404,
dungeon_id=1001,
)
Ancient_Spindle = ItemCalyx(
id=11,
name='Ancient_Spindle',
cn='古代转轴',
cht='古代轉軸',
en='Ancient Spindle',
jp='古代シャフト',
es='Eje antiguo',
rarity='Rare',
item_id=112012,
item_group=1404,
dungeon_id=-1,
)
Ancient_Engine = ItemCalyx(
id=12,
name='Ancient_Engine',
cn='古代引擎',
cht='古代引擎',
en='Ancient Engine',
jp='古代エンジン',
es='Motor antiguo',
rarity='VeryRare',
item_id=112013,
item_group=1404,
dungeon_id=-1,
)
Immortal_Scionette = ItemCalyx(
id=13,
name='Immortal_Scionette',
cn='永寿幼芽',
cht='永壽幼芽',
en='Immortal Scionette',
jp='永寿の萌芽',
es='Brote verde inmortal',
rarity='NotNormal',
item_id=113001,
item_group=1405,
dungeon_id=1011,
)
Immortal_Aeroblossom = ItemCalyx(
id=14,
name='Immortal_Aeroblossom',
cn='永寿天华',
cht='永壽天華',
en='Immortal Aeroblossom',
jp='永寿の天華',
es='Flor etérea inmortal',
rarity='Rare',
item_id=113002,
item_group=1405,
dungeon_id=-1,
)
Immortal_Lumintwig = ItemCalyx(
id=15,
name='Immortal_Lumintwig',
cn='永寿荣枝',
cht='永壽榮枝',
en='Immortal Lumintwig',
jp='永寿の栄枝',
es='Rama gloriosa inmortal',
rarity='VeryRare',
item_id=113003,
item_group=1405,
dungeon_id=-1,
)
Artifex_Module = ItemCalyx(
id=16,
name='Artifex_Module',
cn='工造机杼',
cht='工造機杼',
en="Artifex's Module",
jp='工造機関',
es='Componente artificial mecánico',
rarity='NotNormal',
item_id=113011,
item_group=1406,
dungeon_id=1011,
)
Artifex_Cogwheel = ItemCalyx(
id=17,
name='Artifex_Cogwheel',
cn='工造迴轮',
cht='工造迴輪',
en="Artifex's Cogwheel",
jp='工造迴輪',
es='Engranaje cilíndrico mecánico',
rarity='Rare',
item_id=113012,
item_group=1406,
dungeon_id=-1,
)
Artifex_Gyreheart = ItemCalyx(
id=18,
name='Artifex_Gyreheart',
cn='工造浑心',
cht='工造渾心',
en="Artifex's Gyreheart",
jp='工造渾心',
es='Corazón armonioso mecánico',
rarity='VeryRare',
item_id=113013,
item_group=1406,
dungeon_id=-1,
)
Dream_Collection_Component = ItemCalyx(
id=19,
name='Dream_Collection_Component',
cn='蓄梦元件',
cht='蓄夢元件',
en='Dream Collection Component',
jp='ドリームコレクションパーツ',
es='Componente del acumulador de sueños',
rarity='NotNormal',
item_id=114001,
item_group=1407,
dungeon_id=1014,
)
Dream_Flow_Valve = ItemCalyx(
id=20,
name='Dream_Flow_Valve',
cn='流梦阀门',
cht='流夢閥門',
en='Dream Flow Valve',
jp='ドリームフローバルブ',
es='Válvula del flujo de sueños',
rarity='Rare',
item_id=114002,
item_group=1407,
dungeon_id=-1,
)
Dream_Making_Engine = ItemCalyx(
id=21,
name='Dream_Making_Engine',
cn='造梦马达',
cht='造夢馬達',
en='Dream Making Engine',
jp='ドリームメイキングモーター',
es='Motor creasueños',
rarity='VeryRare',
item_id=114003,
item_group=1407,
dungeon_id=-1,
)
Tatters_of_Thought = ItemCalyx(
id=22,
name='Tatters_of_Thought',
cn='思绪末屑',
cht='思緒末屑',
en='Tatters of Thought',
jp='思考の粉末',
es='Jirones de pensamientos',
rarity='NotNormal',
item_id=114011,
item_group=1408,
dungeon_id=1014,
)
Fragments_of_Impression = ItemCalyx(
id=23,
name='Fragments_of_Impression',
cn='印象残晶',
cht='印象殘晶',
en='Fragments of Impression',
jp='印象の残晶',
es='Fragmento de impresiones',
rarity='Rare',
item_id=114012,
item_group=1408,
dungeon_id=-1,
)
Shards_of_Desires = ItemCalyx(
id=24,
name='Shards_of_Desires',
cn='欲念碎镜',
cht='欲念碎鏡',
en='Shards of Desires',
jp='砕けた欲望の鏡',
es='Fragmento de deseos',
rarity='VeryRare',
item_id=114013,
item_group=1408,
dungeon_id=-1,
)

View File

@ -0,0 +1,226 @@
from .classes import ItemCurrency
# This file was auto-generated, do not modify it manually. To generate:
# ``` python -m dev_tools.keyword_extract ```
Stellar_Jade = ItemCurrency(
id=1,
name='Stellar_Jade',
cn='星琼',
cht='星瓊',
en='Stellar Jade',
jp='星玉',
es='Jade estelar',
rarity='SuperRare',
item_id=1,
item_group=0,
dungeon_id=-1,
)
Credit = ItemCurrency(
id=2,
name='Credit',
cn='信用点',
cht='信用點',
en='Credit',
jp='信用ポイント',
es='Crédito',
rarity='Rare',
item_id=2,
item_group=0,
dungeon_id=-1,
)
Oneiric_Shard = ItemCurrency(
id=3,
name='Oneiric_Shard',
cn='古老梦华',
cht='古老夢華',
en='Oneiric Shard',
jp='往日の夢華',
es='Esquirla onírica',
rarity='SuperRare',
item_id=3,
item_group=0,
dungeon_id=-1,
)
Trailblaze_Power = ItemCurrency(
id=4,
name='Trailblaze_Power',
cn='开拓力',
cht='開拓力',
en='Trailblaze Power',
jp='開拓力',
es='Poder trazacaminos',
rarity='VeryRare',
item_id=11,
item_group=0,
dungeon_id=-1,
)
Reserved_Trailblaze_Power = ItemCurrency(
id=5,
name='Reserved_Trailblaze_Power',
cn='后备开拓力',
cht='後備開拓力',
en='Reserved Trailblaze Power',
jp='予備開拓力',
es='Poder trazacaminos de reserva',
rarity='VeryRare',
item_id=12,
item_group=0,
dungeon_id=-1,
)
EXP = ItemCurrency(
id=6,
name='EXP',
cn='经验',
cht='經驗',
en='EXP',
jp='経験',
es='EXP',
rarity='Rare',
item_id=21,
item_group=0,
dungeon_id=-1,
)
Trailblaze_EXP = ItemCurrency(
id=7,
name='Trailblaze_EXP',
cn='里程',
cht='里程',
en='Trailblaze EXP',
jp='マイレージ',
es='EXP trazacaminos',
rarity='Rare',
item_id=22,
item_group=0,
dungeon_id=-1,
)
Activity = ItemCurrency(
id=8,
name='Activity',
cn='活跃度',
cht='活躍度',
en='Activity',
jp='アクティブ度',
es='Actividad',
rarity='Rare',
item_id=23,
item_group=0,
dungeon_id=-1,
)
Trailblaze_Timer = ItemCurrency(
id=9,
name='Trailblaze_Timer',
cn='开拓进行时',
cht='開拓進行時',
en='Trailblaze Timer',
jp='開拓進行計',
es='Trazascopio',
rarity='SuperRare',
item_id=24,
item_group=0,
dungeon_id=-1,
)
The_Returning_Trail = ItemCurrency(
id=10,
name='The_Returning_Trail',
cn='归程轨迹',
cht='歸程軌跡',
en='The Returning Trail',
jp='帰還の軌跡',
es='Trayectoria de regreso',
rarity='Rare',
item_id=25,
item_group=0,
dungeon_id=-1,
)
Cosmic_Fragment = ItemCurrency(
id=11,
name='Cosmic_Fragment',
cn='宇宙碎片',
cht='宇宙碎片',
en='Cosmic Fragment',
jp='宇宙の欠片',
es='Fragmentos cósmicos',
rarity='Rare',
item_id=31,
item_group=0,
dungeon_id=-1,
)
Ability_Point = ItemCurrency(
id=12,
name='Ability_Point',
cn='技能点',
cht='技能點',
en='Ability Point',
jp='アビリティポイント',
es='Punto de habilidad',
rarity='Rare',
item_id=32,
item_group=0,
dungeon_id=-1,
)
Immersifier = ItemCurrency(
id=13,
name='Immersifier',
cn='沉浸器',
cht='沉浸器',
en='Immersifier',
jp='没入器',
es='Inmersor',
rarity='VeryRare',
item_id=33,
item_group=0,
dungeon_id=-1,
)
Achievement_Points = ItemCurrency(
id=14,
name='Achievement_Points',
cn='成就点数',
cht='成就點數',
en='Achievement Points',
jp='アチーブメントポイント',
es='Puntos de logro',
rarity='Rare',
item_id=41,
item_group=0,
dungeon_id=-1,
)
The_Nameless_EXP = ItemCurrency(
id=15,
name='The_Nameless_EXP',
cn='无名客的经验',
cht='無名客的經驗',
en='The Nameless EXP',
jp='ナナシビトの経験',
es='EXP anónima',
rarity='Rare',
item_id=51,
item_group=0,
dungeon_id=-1,
)
The_Nameless_EXP = ItemCurrency(
id=16,
name='The_Nameless_EXP',
cn='无名客的经验',
cht='無名客的經驗',
en='The Nameless EXP',
jp='ナナシビトの経験',
es='EXP anónima',
rarity='Rare',
item_id=52,
item_group=0,
dungeon_id=-1,
)
Development_Fund = ItemCurrency(
id=17,
name='Development_Fund',
cn='发展资金',
cht='發展資金',
en='Development Fund',
jp='発展資金',
es='Fondos de desarrollo',
rarity='Rare',
item_id=53,
item_group=0,
dungeon_id=-1,
)

View File

@ -0,0 +1,135 @@
from .classes import ItemExp
# This file was auto-generated, do not modify it manually. To generate:
# ``` python -m dev_tools.keyword_extract ```
Travel_Encounters = ItemExp(
id=1,
name='Travel_Encounters',
cn='旅情见闻',
cht='旅情見聞',
en='Travel Encounters',
jp='旅の見聞',
es='Noticias del viaje',
rarity='NotNormal',
item_id=211,
item_group=1010,
dungeon_id=1001,
)
Adventure_Log = ItemExp(
id=2,
name='Adventure_Log',
cn='冒险记录',
cht='冒險紀錄',
en='Adventure Log',
jp='冒険記録',
es='Registro de aventuras',
rarity='Rare',
item_id=212,
item_group=1010,
dungeon_id=1001,
)
Traveler_Guide = ItemExp(
id=3,
name='Traveler_Guide',
cn='漫游指南',
cht='漫遊指南',
en="Traveler's Guide",
jp='漫遊指南',
es='Guía del espíritu viajero',
rarity='VeryRare',
item_id=213,
item_group=1010,
dungeon_id=1001,
)
Sparse_Aether = ItemExp(
id=4,
name='Sparse_Aether',
cn='稀薄以太',
cht='稀薄乙太',
en='Sparse Aether',
jp='希薄なエーテル',
es='Éter disperso',
rarity='NotNormal',
item_id=221,
item_group=1020,
dungeon_id=1002,
)
Condensed_Aether = ItemExp(
id=5,
name='Condensed_Aether',
cn='凝缩以太',
cht='凝縮乙太',
en='Condensed Aether',
jp='濃縮エーテル',
es='Éter condensado',
rarity='Rare',
item_id=222,
item_group=1020,
dungeon_id=1002,
)
Refined_Aether = ItemExp(
id=6,
name='Refined_Aether',
cn='提纯以太',
cht='精煉乙太',
en='Refined Aether',
jp='精製エーテル',
es='Éter refinado',
rarity='VeryRare',
item_id=223,
item_group=1020,
dungeon_id=1002,
)
Lost_Lightdust = ItemExp(
id=7,
name='Lost_Lightdust',
cn='遗失光尘',
cht='遺失光塵',
en='Lost Lightdust',
jp='遺失光塵',
es='Polvo luminoso perdido',
rarity='NotNormal',
item_id=231,
item_group=1030,
dungeon_id=-1,
)
Lost_Gold_Fragment = ItemExp(
id=8,
name='Lost_Gold_Fragment',
cn='遗失碎金',
cht='遺失碎金',
en='Lost Gold Fragment',
jp='遺失砕金',
es='Fragmento dorado perdido',
rarity='Rare',
item_id=232,
item_group=1030,
dungeon_id=-1,
)
Lost_Crystal = ItemExp(
id=9,
name='Lost_Crystal',
cn='遗失晶块',
cht='遺失晶塊',
en='Lost Crystal',
jp='遺失晶塊',
es='Cristal perdido',
rarity='VeryRare',
item_id=233,
item_group=1030,
dungeon_id=-1,
)
Lost_Essence = ItemExp(
id=10,
name='Lost_Essence',
cn='遗失精粹',
cht='遺失精粹',
en='Lost Essence',
jp='遺失精華',
es='Esencia perdida',
rarity='SuperRare',
item_id=234,
item_group=1030,
dungeon_id=-1,
)

View File

@ -0,0 +1,525 @@
from .classes import ItemTrace
# This file was auto-generated, do not modify it manually. To generate:
# ``` python -m dev_tools.keyword_extract ```
Tears_of_Dreams = ItemTrace(
id=1,
name='Tears_of_Dreams',
cn='梦之珠泪',
cht='夢之珠淚',
en='Tears of Dreams',
jp='夢の涙',
es='Lágrima de los sueños',
rarity='VeryRare',
item_id=110101,
item_group=1200,
dungeon_id=-1,
)
Shattered_Blade = ItemTrace(
id=2,
name='Shattered_Blade',
cn='破碎残刃',
cht='破碎殘刃',
en='Shattered Blade',
jp='破砕の刃切',
es='Espada rota',
rarity='NotNormal',
item_id=110111,
item_group=1201,
dungeon_id=1004,
)
Lifeless_Blade = ItemTrace(
id=3,
name='Lifeless_Blade',
cn='无生残刃',
cht='無生殘刃',
en='Lifeless Blade',
jp='無生の刃切',
es='Espada inerte',
rarity='Rare',
item_id=110112,
item_group=1201,
dungeon_id=1004,
)
Worldbreaker_Blade = ItemTrace(
id=4,
name='Worldbreaker_Blade',
cn='净世残刃',
cht='淨世殘刃',
en='Worldbreaker Blade',
jp='浄世の刃切',
es='Espada rompemundos',
rarity='VeryRare',
item_id=110113,
item_group=1201,
dungeon_id=1004,
)
Arrow_of_the_Beast_Hunter = ItemTrace(
id=5,
name='Arrow_of_the_Beast_Hunter',
cn='猎兽之矢',
cht='獵獸之矢',
en='Arrow of the Beast Hunter',
jp='狩獣の矢',
es='Flecha del cazabestias',
rarity='NotNormal',
item_id=110121,
item_group=1202,
dungeon_id=1006,
)
Arrow_of_the_Demon_Slayer = ItemTrace(
id=6,
name='Arrow_of_the_Demon_Slayer',
cn='屠魔之矢',
cht='屠魔之矢',
en='Arrow of the Demon Slayer',
jp='屠魔の矢',
es='Flecha del matademonios',
rarity='Rare',
item_id=110122,
item_group=1202,
dungeon_id=1006,
)
Arrow_of_the_Starchaser = ItemTrace(
id=7,
name='Arrow_of_the_Starchaser',
cn='逐星之矢',
cht='逐星之矢',
en='Arrow of the Starchaser',
jp='逐星の矢',
es='Flecha del persigueestrellas',
rarity='VeryRare',
item_id=110123,
item_group=1202,
dungeon_id=1006,
)
Key_of_Inspiration = ItemTrace(
id=8,
name='Key_of_Inspiration',
cn='灵感之钥',
cht='靈感之鑰',
en='Key of Inspiration',
jp='着想のカギ',
es='Llave de la inspiración',
rarity='NotNormal',
item_id=110131,
item_group=1203,
dungeon_id=1008,
)
Key_of_Knowledge = ItemTrace(
id=9,
name='Key_of_Knowledge',
cn='启迪之钥',
cht='啟迪之鑰',
en='Key of Knowledge',
jp='啓発のカギ',
es='Llave del conocimiento',
rarity='Rare',
item_id=110132,
item_group=1203,
dungeon_id=1008,
)
Key_of_Wisdom = ItemTrace(
id=10,
name='Key_of_Wisdom',
cn='智识之钥',
cht='智識之鑰',
en='Key of Wisdom',
jp='叡智のカギ',
es='Llave de la sabiduría',
rarity='VeryRare',
item_id=110133,
item_group=1203,
dungeon_id=1008,
)
Endurance_of_Bronze = ItemTrace(
id=11,
name='Endurance_of_Bronze',
cn='青铜的执着',
cht='青銅的執著',
en='Endurance of Bronze',
jp='青銅の執着',
es='Persistencia del bronce',
rarity='NotNormal',
item_id=110141,
item_group=1204,
dungeon_id=1005,
)
Oath_of_Steel = ItemTrace(
id=12,
name='Oath_of_Steel',
cn='寒铁的誓言',
cht='寒鐵的誓言',
en='Oath of Steel',
jp='寒鉄の誓い',
es='Juramento de acero',
rarity='Rare',
item_id=110142,
item_group=1204,
dungeon_id=1005,
)
Safeguard_of_Amber = ItemTrace(
id=13,
name='Safeguard_of_Amber',
cn='琥珀的坚守',
cht='琥珀的堅守',
en='Safeguard of Amber',
jp='琥珀の堅守',
es='Custodia de ámbar',
rarity='VeryRare',
item_id=110143,
item_group=1204,
dungeon_id=1005,
)
Obsidian_of_Dread = ItemTrace(
id=14,
name='Obsidian_of_Dread',
cn='黯淡黑曜',
cht='黯淡黑曜',
en='Obsidian of Dread',
jp='黯淡な黒曜',
es='Obsidiana lúgubre',
rarity='NotNormal',
item_id=110151,
item_group=1205,
dungeon_id=1010,
)
Obsidian_of_Desolation = ItemTrace(
id=15,
name='Obsidian_of_Desolation',
cn='虚空黑曜',
cht='虛空黑曜',
en='Obsidian of Desolation',
jp='虚空の黒曜',
es='Obsidiana del vacío',
rarity='Rare',
item_id=110152,
item_group=1205,
dungeon_id=1010,
)
Obsidian_of_Obsession = ItemTrace(
id=16,
name='Obsidian_of_Obsession',
cn='沉沦黑曜',
cht='沉淪黑曜',
en='Obsidian of Obsession',
jp='沈淪せし黒曜',
es='Obsidiana de la obsesión',
rarity='VeryRare',
item_id=110153,
item_group=1205,
dungeon_id=1010,
)
Harmonic_Tune = ItemTrace(
id=17,
name='Harmonic_Tune',
cn='谐乐小调',
cht='諧樂小調',
en='Harmonic Tune',
jp='調和のハーモニー',
es='Melodía armónica',
rarity='NotNormal',
item_id=110161,
item_group=1206,
dungeon_id=1009,
)
Ancestral_Hymn = ItemTrace(
id=18,
name='Ancestral_Hymn',
cn='家族颂歌',
cht='家族頌歌',
en='Ancestral Hymn',
jp='ファミリー賛歌',
es='Himno del acervo',
rarity='Rare',
item_id=110162,
item_group=1206,
dungeon_id=1009,
)
Stellaris_Symphony = ItemTrace(
id=19,
name='Stellaris_Symphony',
cn='群星乐章',
cht='群星樂章',
en='Stellaris Symphony',
jp='群星の楽章',
es='Opus Stellaris',
rarity='VeryRare',
item_id=110163,
item_group=1206,
dungeon_id=1009,
)
Seed_of_Abundance = ItemTrace(
id=20,
name='Seed_of_Abundance',
cn='丰饶之种',
cht='豐饒之種',
en='Seed of Abundance',
jp='豊穣の種',
es='Semilla de la abundancia',
rarity='NotNormal',
item_id=110171,
item_group=1207,
dungeon_id=1007,
)
Sprout_of_Life = ItemTrace(
id=21,
name='Sprout_of_Life',
cn='生命之芽',
cht='生命之芽',
en='Sprout of Life',
jp='生命の芽',
es='Brote de la vida',
rarity='Rare',
item_id=110172,
item_group=1207,
dungeon_id=1007,
)
Flower_of_Eternity = ItemTrace(
id=22,
name='Flower_of_Eternity',
cn='永恒之花',
cht='永恆之花',
en='Flower of Eternity',
jp='永久の花',
es='Flor de la eternidad',
rarity='VeryRare',
item_id=110173,
item_group=1207,
dungeon_id=1007,
)
Borisin_Teeth = ItemTrace(
id=23,
name='Borisin_Teeth',
cn='步离犬牙',
cht='步離犬牙',
en='Borisin Teeth',
jp='歩離の犬牙',
es='Canino de borisin',
rarity='NotNormal',
item_id=110181,
item_group=1211,
dungeon_id=1018,
)
Lupitoxin_Sawteeth = ItemTrace(
id=24,
name='Lupitoxin_Sawteeth',
cn='狼毒锯牙',
cht='狼毒鋸牙',
en='Lupitoxin Sawteeth',
jp='狼毒の牙',
es='Diente serrado con lupitoxina',
rarity='Rare',
item_id=110182,
item_group=1211,
dungeon_id=1018,
)
Moon_Madness_Fang = ItemTrace(
id=25,
name='Moon_Madness_Fang',
cn='月狂獠牙',
cht='月狂獠牙',
en='Moon Madness Fang',
jp='月狂いの凶牙',
es='Colmillo de la locura lunar',
rarity='VeryRare',
item_id=110183,
item_group=1211,
dungeon_id=1018,
)
Meteoric_Bullet = ItemTrace(
id=26,
name='Meteoric_Bullet',
cn='陨铁弹丸',
cht='隕鐵彈丸',
en='Meteoric Bullet',
jp='隕鉄の弾丸',
es='Perdigón meteórico',
rarity='NotNormal',
item_id=110191,
item_group=1212,
dungeon_id=1022,
)
Destined_Expiration = ItemTrace(
id=27,
name='Destined_Expiration',
cn='命定死因',
cht='命定死因',
en='Destined Expiration',
jp='定められた死因',
es='Deceso predestinado',
rarity='Rare',
item_id=110192,
item_group=1212,
dungeon_id=1022,
)
Countertemporal_Shot = ItemTrace(
id=28,
name='Countertemporal_Shot',
cn='逆时一击',
cht='逆時一擊',
en='Countertemporal Shot',
jp='時に抗う一撃',
es='Disparo antitemporal',
rarity='VeryRare',
item_id=110193,
item_group=1212,
dungeon_id=1022,
)
Scattered_Stardust = ItemTrace(
id=29,
name='Scattered_Stardust',
cn='散逸星砂',
cht='散逸星砂',
en='Scattered Stardust',
jp='散らばった星の砂',
es='Polvo estelar disperso',
rarity='NotNormal',
item_id=110211,
item_group=1214,
dungeon_id=1020,
)
Crystal_Meteorites = ItemTrace(
id=30,
name='Crystal_Meteorites',
cn='流星棱晶',
cht='流星稜晶',
en='Crystal Meteorites',
jp='流星プリズム',
es='Meteoritos de cristal',
rarity='Rare',
item_id=110212,
item_group=1214,
dungeon_id=1020,
)
Divine_Amber = ItemTrace(
id=31,
name='Divine_Amber',
cn='神体琥珀',
cht='神體琥珀',
en='Divine Amber',
jp='聖なる琥珀',
es='Ámbar divino',
rarity='VeryRare',
item_id=110213,
item_group=1214,
dungeon_id=1020,
)
Fiery_Spirit = ItemTrace(
id=32,
name='Fiery_Spirit',
cn='炽情之灵',
cht='熾情之靈',
en='Fiery Spirit',
jp='熾烈の霊',
es='Espíritu ardiente',
rarity='NotNormal',
item_id=110221,
item_group=1215,
dungeon_id=1017,
)
Starfire_Essence = ItemTrace(
id=33,
name='Starfire_Essence',
cn='星火之精',
cht='星火之精',
en='Starfire Essence',
jp='星火の精',
es='Esencia de fuego estelar',
rarity='Rare',
item_id=110222,
item_group=1215,
dungeon_id=1017,
)
Heaven_Incinerator = ItemTrace(
id=34,
name='Heaven_Incinerator',
cn='焚天之魔',
cht='焚天之魔',
en='Heaven Incinerator',
jp='焼天の魔',
es='Incinerador divino',
rarity='VeryRare',
item_id=110223,
item_group=1215,
dungeon_id=1017,
)
Firmament_Note = ItemTrace(
id=35,
name='Firmament_Note',
cn='云际音符',
cht='雲際音符',
en='Firmament Note',
jp='雲端の音符',
es='Nota del firmamento',
rarity='NotNormal',
item_id=110231,
item_group=1216,
dungeon_id=1019,
)
Celestial_Section = ItemTrace(
id=36,
name='Celestial_Section',
cn='空际小节',
cht='空際小節',
en='Celestial Section',
jp='空際の小節',
es='Compás celestial',
rarity='Rare',
item_id=110232,
item_group=1216,
dungeon_id=1019,
)
Heavenly_Melody = ItemTrace(
id=37,
name='Heavenly_Melody',
cn='天外乐章',
cht='天外樂章',
en='Heavenly Melody',
jp='天外の楽章',
es='Movimiento celestial',
rarity='VeryRare',
item_id=110233,
item_group=1216,
dungeon_id=1019,
)
Alien_Tree_Seed = ItemTrace(
id=38,
name='Alien_Tree_Seed',
cn='异木种籽',
cht='異木種籽',
en='Alien Tree Seed',
jp='珍木の種',
es='Semilla del árbol extraño',
rarity='NotNormal',
item_id=110241,
item_group=1217,
dungeon_id=1021,
)
Nourishing_Honey = ItemTrace(
id=39,
name='Nourishing_Honey',
cn='滋长花蜜',
cht='滋長花蜜',
en='Nourishing Honey',
jp='育みの蜜',
es='Miel nutricia',
rarity='Rare',
item_id=110242,
item_group=1217,
dungeon_id=1021,
)
Myriad_Fruit = ItemTrace(
id=40,
name='Myriad_Fruit',
cn='万相果实',
cht='萬相果實',
en='Myriad Fruit',
jp='森羅の果実',
es='Fruta del sinfín',
rarity='VeryRare',
item_id=110243,
item_group=1217,
dungeon_id=1021,
)

View File

@ -0,0 +1,83 @@
from .classes import ItemWeekly
# This file was auto-generated, do not modify it manually. To generate:
# ``` python -m dev_tools.keyword_extract ```
Tracks_of_Destiny = ItemWeekly(
id=1,
name='Tracks_of_Destiny',
cn='命运的足迹',
cht='命運的足跡',
en='Tracks of Destiny',
jp='運命の足跡',
es='Huellas del destino',
rarity='SuperRare',
item_id=241,
item_group=1300,
dungeon_id=-1,
)
Destroyer_Final_Road = ItemWeekly(
id=2,
name='Destroyer_Final_Road',
cn='毁灭者的末路',
cht='毀滅者的末路',
en="Destroyer's Final Road",
jp='壊滅者の末路',
es='Senda final del destructor',
rarity='VeryRare',
item_id=110501,
item_group=1310,
dungeon_id=1301,
)
Guardian_Lament = ItemWeekly(
id=3,
name='Guardian_Lament',
cn='守护者的悲愿',
cht='守護者的悲願',
en="Guardian's Lament",
jp='守護者の悲願',
es='Lamento de la Guardiana',
rarity='VeryRare',
item_id=110502,
item_group=1310,
dungeon_id=1302,
)
Regret_of_Infinite_Ochema = ItemWeekly(
id=4,
name='Regret_of_Infinite_Ochema',
cn='无穷假身的遗恨',
cht='無窮假身的遺恨',
en='Regret of Infinite Ochema',
jp='無窮なる仮身の遺恨',
es='Arrepentimiento del eterno vehículo del alma',
rarity='VeryRare',
item_id=110503,
item_group=1310,
dungeon_id=1303,
)
Past_Evils_of_the_Borehole_Planet_Disaster = ItemWeekly(
id=5,
name='Past_Evils_of_the_Borehole_Planet_Disaster',
cn='蛀星孕灾的旧恶',
cht='蛀星孕災的舊惡',
en='Past Evils of the Borehole Planet Disaster',
jp='星を蝕む古の悪',
es='Agravios pasados de la catástrofe devoraplanetas',
rarity='VeryRare',
item_id=110504,
item_group=1310,
dungeon_id=1304,
)
Lost_Echo_of_the_Shared_Wish = ItemWeekly(
id=6,
name='Lost_Echo_of_the_Shared_Wish',
cn='同愿的遗音',
cht='同願的遺音',
en='Lost Echo of the Shared Wish',
jp='同願の遺音',
es='Eco perdido del deseo compartido',
rarity='VeryRare',
item_id=110505,
item_group=1310,
dungeon_id=1305,
)