diff --git a/data_source/game_data.py b/data_source/game_data.py index 2e068ff..abcd2ba 100644 --- a/data_source/game_data.py +++ b/data_source/game_data.py @@ -422,6 +422,7 @@ def populate_traitstones(self): 'name': rune['name'], 'troop_ids': [], 'class_ids': [], + 'kingdom_ids': [], 'total_amount': rune['amount'], } if 'ClassCode' in traits: @@ -432,9 +433,12 @@ def populate_traitstones(self): else: self.troops[traits['Troop']]['traitstones'] = runes self.traitstones[rune['name']]['troop_ids'].append(traits['Troop']) + for kingdom_id, runes in self.user_data['pEconomyModel']['Explore_RunePerKingdom'].items(): + for rune_id in runes: + rune_name = self.get_rune_name_from_id(rune_id) + self.traitstones[rune_name]['kingdom_ids'].append(kingdom_id) - @staticmethod - def extract_runes(runes): + def extract_runes(self, runes): result = {} for trait in runes: for rune in trait: @@ -444,8 +448,11 @@ def extract_runes(runes): else: result[rune_id] = { 'id': rune['Id'], - 'name': f'[RUNE{rune["Id"]:02d}_NAME]', + 'name': self.get_rune_name_from_id(rune['Id']), 'amount': rune['Required'], } - return list(result.values()) + + @staticmethod + def get_rune_name_from_id(rune_id): + return f'[RUNE{rune_id:02d}_NAME]' diff --git a/team_expando.py b/team_expando.py index a3c2a27..2a6be32 100644 --- a/team_expando.py +++ b/team_expando.py @@ -531,9 +531,17 @@ def translate_traitstone(self, traitstone, lang): classes.append([_(self.classes[class_id]['name'], lang), amount]) traitstone['classes'] = classes + kingdoms = [] + for kingdom_id in traitstone['kingdom_ids']: + kingdoms.append(_(self.kingdoms[int(kingdom_id)]['name'], lang)) + if not traitstone['kingdom_ids']: + kingdoms.append(_('[ALL_KINGDOMS]', lang)) + traitstone['kingdoms'] = kingdoms + traitstone['name'] = _(traitstone['name'], lang) traitstone['troops_title'] = _('[TROOPS]', lang) traitstone['classes_title'] = _('[CLASS]', lang) + traitstone['kingdoms_title'] = _('[KINGDOMS]', lang) def translate_spell(self, spell_id, lang): spell = self.spells[spell_id] diff --git a/templates/traitstone.jinja b/templates/traitstone.jinja index d76f4c3..f559d15 100644 --- a/templates/traitstone.jinja +++ b/templates/traitstone.jinja @@ -1,3 +1,5 @@ +{% if kingdoms %}{{ traitstone.kingdoms_title }} +{{ kingdoms }}{% endif %} {% if troops %}{{ traitstone.troops | length }} {{ traitstone.troops_title }} {{ troops }}{% endif %} {% if classes %}{{ traitstone.classes | length }} {{ traitstone.classes_title }} diff --git a/views.py b/views.py index 66a2853..26ef15f 100644 --- a/views.py +++ b/views.py @@ -98,7 +98,10 @@ def render_traitstone(self, traitstone, shortened): troops = self.trim_text_to_length(", ".join(sorted(troop_list)), 900, ',', ', ...') class_list = ['{0} ({1})'.format(*_class) for _class in traitstone['classes']] classes = self.trim_text_to_length(", ".join(sorted(class_list)), 900, ',', ', ...') - return self.render_embed(e, 'traitstone.jinja', traitstone=traitstone, troops=troops, classes=classes) + kingdom_list = [k for k in traitstone['kingdoms']] + kingdoms = self.trim_text_to_length(", ".join(sorted(kingdom_list)), 900, ',', ', ...') + return self.render_embed(e, 'traitstone.jinja', + traitstone=traitstone, troops=troops, classes=classes, kingdoms=kingdoms) def render_talent(self, tree, shortened): e = discord.Embed(color=self.WHITE)