@@ -67,9 +67,10 @@ def __init__(self, template: Template, is_dsx: bool):
6767 screen_name = template .compute_value ('common' , 'screen_name' )
6868 self .screen_name = screen_name .strip ('"' ) if screen_name is not None else None
6969
70- self .equipment_type = 'armor' if template .is_descendant_of ('armor' ) else None
70+ self .equipment_type = 'armor' if template .is_descendant_of ('armor' ) else 'weapon' if template .is_descendant_of ('weapon' ) else None
71+ self .weapon_kind = 'melee' if template .is_descendant_of ('weapon_melee' ) else 'ranged' if template .is_descendant_of ('weapon_ranged' ) else None
7172
72- self .world_level , self .armor_type , self .rarity , self .material , self .tn_stance = self .parse_template_name (self .template_name )
73+ self .world_level , self .armor_type , self .weapon_type , self . rarity , self .material , self .tn_stance = self .parse_template_name (self .template_name )
7374
7475 variant_sections = get_pcontent_variants (template )
7576 self .variants = [s .header for s in variant_sections ]
@@ -150,9 +151,14 @@ def parse_template_name(cls, template_name: str):
150151 world_level = None
151152 if name_parts [0 ].lower () in ['2w' , '3w' ]:
152153 world_level = name_parts .pop (0 ).lower ()
154+
153155 armor_type = None
154156 if name_parts [0 ] in ['bd' , 'he' , 'bo' , 'gl' , 'sh' ]:
155157 armor_type = name_parts .pop (0 )
158+ weapon_type = None
159+ if name_parts [0 ] in ['ax' , 'bw' , 'cb' , 'dg' , 'hm' , 'mc' , 'st' , 'sd' , 'ss' ]:
160+ weapon_type = name_parts .pop (0 )
161+
156162 rarity = None
157163 if name_parts [0 ] in ['ra' , 'un' ]:
158164 rarity = name_parts .pop (0 )
@@ -173,21 +179,21 @@ def parse_template_name(cls, template_name: str):
173179 print (f'wtf helmet { template_name } ' )
174180
175181 material = None
176- if armor_type != 'sh' :
182+ if armor_type is not None and armor_type != 'sh' :
177183 if name_parts [0 ] in ['le' , 'bl' , 'sl' , 'ro' , 'ba' , 'br' , 'fp' , 'pl' , 'ch' , 'sc' , 'bp' ]:
178184 material = name_parts .pop (0 )
179185 else :
180186 print (f'wtf material { template_name } ' )
181187
182188 stance = None
183- if armor_type != 'sh' :
189+ if armor_type is not None and armor_type != 'sh' :
184190 is_fighter = 'f' in name_parts
185191 is_ranger = 'r' in name_parts
186192 is_mage = 'm' in name_parts
187193 if is_fighter + is_ranger + is_mage == 1 :
188194 stance = 'f' if is_fighter else 'r' if is_ranger else 'm' if is_mage else None
189195
190- return world_level , armor_type , rarity , material , stance
196+ return world_level , armor_type , weapon_type , rarity , material , stance
191197
192198 @classmethod
193199 def get_equip_requirement_stat (cls , template : Template ):
@@ -217,7 +223,7 @@ def load_dsx_armor_template_names(bits: Bits) -> list[str]:
217223def load_armor_templates (bits : Bits ) -> tuple [list [str ], list [Template ]]:
218224 dsx_armor_template_names = load_dsx_armor_template_names (bits )
219225 armor_templates = list (bits .templates .get_leaf_templates ('armor' ).values ())
220- # armor_templates.extend(bits.templates.get_leaf_templates('weapon').values())
226+ armor_templates .extend (bits .templates .get_leaf_templates ('weapon' ).values ())
221227 return dsx_armor_template_names , armor_templates
222228
223229
0 commit comments