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)