From 1f1311a8324ef95d656ba8619ccbcbc90e9f1c48 Mon Sep 17 00:00:00 2001
From: Brandon Rodriguez <brodriguez8774@gmail.com>
Date: Wed, 7 Aug 2024 22:39:27 -0400
Subject: [PATCH] Add more values added in past leagues

---
 resources/parsers/currency.py  |  27 ++++---
 resources/parsers/flasks.py    |  22 ++++++
 resources/parsers/maps.py      |  17 +++++
 resources/parsers/other.py     | 133 +++++++++++++++++++++++++++++++++
 resources/parsers/templates.py |  78 ++++++++++++++++---
 5 files changed, 258 insertions(+), 19 deletions(-)

diff --git a/resources/parsers/currency.py b/resources/parsers/currency.py
index bac1bba..32fba48 100644
--- a/resources/parsers/currency.py
+++ b/resources/parsers/currency.py
@@ -35,7 +35,7 @@ class CurrencyParser():
 
         self.general_currency()
         self.league_specific()
-        self.labyrinth_items()
+        self.quest_like_items()
         self.currency_catchall()
 
     def general_currency(self):
@@ -194,11 +194,6 @@ class CurrencyParser():
         self.filter_file.write('\n')
 
         # Settlers of Kalguur.
-        self.template.special_item(
-            description='Kalguur Currency',
-            class_text="Stackable Currency",
-            base_text='Gold',
-        )
         self.template.special_item(
             description='Kalguur Runes',
             base_text=[
@@ -223,7 +218,7 @@ class CurrencyParser():
         # Heist.
         self.template.special_item(
             description='Heist Classes',
-            class_text=["Heist Cloaks", "Heist Brooches", "Heist Gear", "Heist Tools"]
+            class_text=["Heist Cloaks", "Heist Brooches", "Heist Gear", "Heist Tools", "Heist Target"]
         )
         self.template.special_item(
             description='Heist Bases',
@@ -385,15 +380,15 @@ class CurrencyParser():
             base_text=["Deregulation Scroll", "Electroshock Scroll", "Fragmentation Scroll", "Haemocombustion Scroll", "Specularity Scroll", "Time-light Scroll", "Imprint", "Unshaping Orb"],
         )
 
-    def labyrinth_items(self):
+    def quest_like_items(self):
         """
-        Handling for labyrinth-specific items.
+        Handling for quest-like items.
         """
         self.parse_subnum += 1
 
         self.filter_file.write('\n')
         self.filter_file.write('# ---------------------------------- #\n')
-        self.filter_file.write('# --- [{0}.{1}] - Labyrinth Items --- #\n'.format(self.parse_num, str(self.parse_subnum).zfill(2)))
+        self.filter_file.write('# --- [{0}.{1}] - Quest-like Items --- #\n'.format(self.parse_num, str(self.parse_subnum).zfill(2)))
         self.filter_file.write('# ---------------------------------- #\n')
         self.filter_file.write('\n')
 
@@ -409,6 +404,18 @@ class CurrencyParser():
             base_text=['Key', 'Offering to the Goddess', 'Divine Vessel']
         )
 
+        # Labyrinth classes.
+        self.template.special_item(
+            description='Quest-like Classes',
+            class_text=["Incursion Items"]
+        )
+
+        # Labyrinth base types.
+        self.template.special_item(
+            description='Quest-like Bases',
+            base_text=["Maven's"]
+        )
+
     def currency_catchall(self):
         """
         Catch-all for general currency.
diff --git a/resources/parsers/flasks.py b/resources/parsers/flasks.py
index f8746d1..3188423 100644
--- a/resources/parsers/flasks.py
+++ b/resources/parsers/flasks.py
@@ -40,6 +40,7 @@ class FlaskParser():
         if self.hybrid_flasks:
             self.show_hybrid_flasks()
         self.show_utility_flasks()
+        self.show_tinctures()
 
     def parse_flask(self, flask):
         """
@@ -208,3 +209,24 @@ class FlaskParser():
             for flask in json_data:
                 # Parse item.
                 self.parse_flask(flask)
+
+    def show_tinctures(self):
+        """
+        Handling for tinctures.
+        """
+
+        self.parse_subnum += 1
+
+        self.filter_file.write('\n')
+        self.filter_file.write('# ---------------------------- #\n')
+        self.filter_file.write('# --- [{0}.{1}] - Tinctures --- #\n'.format(self.parse_num, str(self.parse_subnum).zfill(2)))
+        self.filter_file.write('# ---------------------------- #\n')
+        self.filter_file.write('\n')
+
+        self.template.common_item(
+            base_text="Tincture",
+            minimap_size=2,
+            minimap_color=display_dict['minimap_color_flasks'],
+            minimap_shape=display_dict['minimap_icon_flasks'],
+            playeffect=display_dict['minimap_color_flasks'],
+        )
diff --git a/resources/parsers/maps.py b/resources/parsers/maps.py
index 61108c3..127e591 100644
--- a/resources/parsers/maps.py
+++ b/resources/parsers/maps.py
@@ -90,6 +90,23 @@ class MapParser():
             playeffect=display_dict['minimap_color_maps'],
         )
 
+        # Misc map items.
+        self.template.notable_item(
+            description='Misc map Item Classes',
+            class_text=[
+                "Vault Keys", "Chronicle of Atzoatl", "Inscribed Ultimatum", "Mirrored Tablet", "Primeval Remnant",
+                "Primordial Remnant",
+            ],
+            font_size=display_dict['rare_font_size'],
+        )
+        self.template.notable_item(
+            description='Misc map Item Bases',
+            class_text=[
+                "Reliquary Key", "Misc Map Items",
+            ],
+            font_size=display_dict['rare_font_size'],
+        )
+
         # Map-like items.
         self.template.notable_item(
             description='Map-like Item Classes',
diff --git a/resources/parsers/other.py b/resources/parsers/other.py
index 3255fe4..99f7179 100644
--- a/resources/parsers/other.py
+++ b/resources/parsers/other.py
@@ -234,7 +234,9 @@ class NotableGearParser():
         self.filter_file.write('# ----------------------------------- #\n')
         self.filter_file.write('\n')
 
+        # General map influence types.
         self.template.rare_item(
+            description='Map-Influenced Types',
             has_influence=['Shaper', 'Elder', 'Crusader', 'Hunter', 'Redeemer', 'Warlord'],
             minimap_size=0,
             minimap_color=display_dict['minimap_color_notable'],
@@ -243,6 +245,7 @@ class NotableGearParser():
             playeffect=display_dict['minimap_color_notable'],
         )
         self.template.uncommon_item(
+            description='Map-Influenced Types',
             has_influence=['Shaper', 'Elder', 'Crusader', 'Hunter', 'Redeemer', 'Warlord'],
             minimap_size=0,
             minimap_color=display_dict['minimap_color_notable'],
@@ -251,6 +254,7 @@ class NotableGearParser():
             playeffect=display_dict['minimap_color_notable'],
         )
         self.template.common_item(
+            description='Map-Influenced Types',
             has_influence=['Shaper', 'Elder', 'Crusader', 'Hunter', 'Redeemer', 'Warlord'],
             minimap_size=0,
             minimap_color=display_dict['minimap_color_notable'],
@@ -259,6 +263,122 @@ class NotableGearParser():
             playeffect=display_dict['minimap_color_notable'],
         )
 
+        # Fractured types.
+        self.template.rare_item(
+            description='Fractured Influence Types',
+            is_fractured=True,
+            minimap_size=0,
+            minimap_color=display_dict['minimap_color_notable'],
+            minimap_shape=display_dict['minimap_icon_influenced'],
+            sound='5 300',
+            playeffect=display_dict['minimap_color_notable'],
+        )
+        self.template.uncommon_item(
+            description='Fractured Influence Types',
+            is_fractured=True,
+            minimap_size=0,
+            minimap_color=display_dict['minimap_color_notable'],
+            minimap_shape=display_dict['minimap_icon_influenced'],
+            sound='5 300',
+            playeffect=display_dict['minimap_color_notable'],
+        )
+        self.template.common_item(
+            description='Fractured Influence Types',
+            is_fractured=True,
+            minimap_size=0,
+            minimap_color=display_dict['minimap_color_notable'],
+            minimap_shape=display_dict['minimap_icon_influenced'],
+            sound='5 300',
+            playeffect=display_dict['minimap_color_notable'],
+        )
+
+        # Synthesized types.
+        self.template.rare_item(
+            description='Synthesis Influence Types',
+            is_synthesized=True,
+            minimap_size=0,
+            minimap_color=display_dict['minimap_color_notable'],
+            minimap_shape=display_dict['minimap_icon_influenced'],
+            sound='5 300',
+            playeffect=display_dict['minimap_color_notable'],
+        )
+        self.template.uncommon_item(
+            description='Synthesis Influence Types',
+            is_synthesized=True,
+            minimap_size=0,
+            minimap_color=display_dict['minimap_color_notable'],
+            minimap_shape=display_dict['minimap_icon_influenced'],
+            sound='5 300',
+            playeffect=display_dict['minimap_color_notable'],
+        )
+        self.template.common_item(
+            description='Synthesis Influence Types',
+            is_synthesized=True,
+            minimap_size=0,
+            minimap_color=display_dict['minimap_color_notable'],
+            minimap_shape=display_dict['minimap_icon_influenced'],
+            sound='5 300',
+            playeffect=display_dict['minimap_color_notable'],
+        )
+
+        # Mirrored types.
+        self.template.rare_item(
+            description='Mirror Types',
+            is_mirrored=True,
+            minimap_size=0,
+            minimap_color=display_dict['minimap_color_notable'],
+            minimap_shape=display_dict['minimap_icon_influenced'],
+            sound='5 300',
+            playeffect=display_dict['minimap_color_notable'],
+        )
+        self.template.uncommon_item(
+            description='Mirror Types',
+            is_mirrored=True,
+            minimap_size=0,
+            minimap_color=display_dict['minimap_color_notable'],
+            minimap_shape=display_dict['minimap_icon_influenced'],
+            sound='5 300',
+            playeffect=display_dict['minimap_color_notable'],
+        )
+        self.template.common_item(
+            description='Mirror Types',
+            is_mirrored=True,
+            minimap_size=0,
+            minimap_color=display_dict['minimap_color_notable'],
+            minimap_shape=display_dict['minimap_icon_influenced'],
+            sound='5 300',
+            playeffect=display_dict['minimap_color_notable'],
+        )
+
+        # Replica types.
+        self.template.rare_item(
+            description='Replica Types',
+            is_replica=True,
+            minimap_size=0,
+            minimap_color=display_dict['minimap_color_notable'],
+            minimap_shape=display_dict['minimap_icon_influenced'],
+            sound='5 300',
+            playeffect=display_dict['minimap_color_notable'],
+        )
+        self.template.uncommon_item(
+            description='Replica Types',
+            is_replica=True,
+            minimap_size=0,
+            minimap_color=display_dict['minimap_color_notable'],
+            minimap_shape=display_dict['minimap_icon_influenced'],
+            sound='5 300',
+            playeffect=display_dict['minimap_color_notable'],
+        )
+        self.template.common_item(
+            description='Replica Types',
+            is_replica=True,
+            minimap_size=0,
+            minimap_color=display_dict['minimap_color_notable'],
+            minimap_shape=display_dict['minimap_icon_influenced'],
+            sound='5 300',
+            playeffect=display_dict['minimap_color_notable'],
+        )
+
     def parse_veiled_items(self):
         """
         Handling for betrayal league veiled items.
@@ -310,4 +430,17 @@ class FinalParser():
         self.filter_file.write('# ======================================= #\n')
         self.filter_file.write('\n')
 
+        # Hide any gear that has not yet been parsed.
+        self.template.hidden_item(
+            description='Hide remaining gear that has not yet been parsed.',
+            base_text=["Helmets", "Body Armours", "Gloves", "Boots", "Ring", "Belt", "Amulet"]
+        )
+
+        # Kalguur gold currency.
+        # Set here so that it will not accidentally make gear with text "gold" special.
+        self.template.special_item(
+            base_text='Gold',
+        )
+
+        # Hide everything else that has not yet been parsed.
         self.template.hidden_item(description='Hide everything else of little to no value')
diff --git a/resources/parsers/templates.py b/resources/parsers/templates.py
index 9166eb5..dc7c431 100644
--- a/resources/parsers/templates.py
+++ b/resources/parsers/templates.py
@@ -53,7 +53,12 @@ class FilterTemplates():
             area_level=None, item_level=None, quality=None,
             linked_sockets=None, socket_group=None, sockets=None,
             height=None, width=None,
-            has_influence=None, map_tier=None,
+            has_influence=None,
+            is_fractured=None,
+            is_synthesized=None,
+            is_mirrored=None,
+            is_replica=None,
+            map_tier=None,
             background_color=display_dict['standard_background'], border_color=display_dict['rare'],
             text_color=display_dict['rare_text'], font_size=display_dict['rare_font_size'],
             minimap_size=None, minimap_color=None, minimap_shape=None,
@@ -66,7 +71,12 @@ class FilterTemplates():
             area_level=area_level, item_level=item_level, rarity='Rare', quality=quality,
             linked_sockets=linked_sockets, socket_group=socket_group, sockets=sockets,
             height=height, width=width,
-            has_influence=has_influence, map_tier=map_tier,
+            has_influence=has_influence,
+            is_fractured=is_fractured,
+            is_synthesized=is_synthesized,
+            is_mirrored=is_mirrored,
+            is_replica=is_replica,
+            map_tier=map_tier,
             background_color=background_color, border_color=border_color,
             text_color=text_color, font_size=font_size,
             minimap_size=minimap_size, minimap_color=minimap_color, minimap_shape=minimap_shape,
@@ -78,7 +88,12 @@ class FilterTemplates():
             area_level=None, item_level=None, quality=None,
             linked_sockets=None, socket_group=None, sockets=None,
             height=None, width=None,
-            has_influence=None, map_tier=None,
+            has_influence=None,
+            is_fractured=None,
+            is_synthesized=None,
+            is_mirrored=None,
+            is_replica=None,
+            map_tier=None,
             background_color=display_dict['standard_background'], border_color=display_dict['uncommon'],
             text_color=display_dict['uncommon_text'], font_size=display_dict['uncommon_font_size'],
             minimap_size=None, minimap_color=None, minimap_shape=None,
@@ -91,7 +106,12 @@ class FilterTemplates():
             area_level= area_level, item_level=item_level, rarity='Magic', quality=quality,
             linked_sockets=linked_sockets, socket_group=socket_group, sockets=sockets,
             height=height, width=width,
-            has_influence=has_influence, map_tier=map_tier,
+            has_influence=has_influence,
+            is_fractured=is_fractured,
+            is_synthesized=is_synthesized,
+            is_mirrored=is_mirrored,
+            is_replica=is_replica,
+            map_tier=map_tier,
             background_color=background_color, border_color=border_color,
             text_color=text_color, font_size=font_size,
             minimap_size=minimap_size, minimap_color=minimap_color, minimap_shape=minimap_shape,
@@ -103,7 +123,12 @@ class FilterTemplates():
             area_level=None, item_level=None, quality=None,
             linked_sockets=None, socket_group=None, sockets=None,
             height=None, width=None,
-            has_influence=None, map_tier=None,
+            has_influence=None,
+            is_fractured=None,
+            is_synthesized=None,
+            is_mirrored=None,
+            is_replica=None,
+            map_tier=None,
             background_color=display_dict['standard_background'], border_color=display_dict['notable_border'],
             text_color=display_dict['notable_text'], font_size=display_dict['default_font_size'],
             minimap_size=None, minimap_color=None, minimap_shape=None,
@@ -116,7 +141,12 @@ class FilterTemplates():
             area_level=area_level, item_level=item_level, quality=quality,
             linked_sockets=linked_sockets, socket_group=socket_group, sockets=sockets,
             height=height, width=width,
-            has_influence=has_influence, map_tier=map_tier,
+            has_influence=has_influence,
+            is_fractured=is_fractured,
+            is_synthesized=is_synthesized,
+            is_mirrored=is_mirrored,
+            is_replica=is_replica,
+            map_tier=map_tier,
             background_color=background_color, border_color=border_color,
             text_color=text_color, font_size=font_size,
             minimap_size=minimap_size, minimap_color=minimap_color, minimap_shape=minimap_shape,
@@ -128,7 +158,12 @@ class FilterTemplates():
             area_level=None, item_level=None, quality=None,
             linked_sockets=None, socket_group=None, sockets=None,
             height=None, width=None,
-            has_influence=None, map_tier=None,
+            has_influence=None,
+            is_fractured=None,
+            is_synthesized=None,
+            is_mirrored=None,
+            is_replica=None,
+            map_tier=None,
             background_color=display_dict['standard_background'], border_color=None,
             text_color=display_dict['normal_text'], font_size=display_dict['default_font_size'],
             minimap_size=None, minimap_color=None, minimap_shape=None,
@@ -141,7 +176,12 @@ class FilterTemplates():
             area_level=area_level, item_level=item_level, quality=quality,
             linked_sockets=linked_sockets, socket_group=socket_group, sockets=sockets,
             height=height, width=width,
-            has_influence=has_influence, map_tier=map_tier,
+            has_influence=has_influence,
+            is_fractured=is_fractured,
+            is_synthesized=is_synthesized,
+            is_mirrored=is_mirrored,
+            is_replica=is_replica,
+            map_tier=map_tier,
             background_color=background_color, border_color=border_color,
             text_color=text_color, font_size=font_size,
             minimap_size=minimap_size, minimap_color=minimap_color, minimap_shape=minimap_shape,
@@ -298,7 +338,13 @@ class BaseTemplate():
             area_level=None, item_level=None, rarity=None, quality=None,
             linked_sockets=None, socket_group=None, sockets=None,
             height=None, width=None,
-            has_mod=None, has_influence=None, map_tier=None,
+            has_mod=None,
+            has_influence=None,
+            is_fractured=None,
+            is_synthesized=None,
+            is_mirrored=None,
+            is_replica=None,
+            map_tier=None,
             background_color=None, border_color=None,
             text_color=None, font_size=None,
             minimap_size=None, minimap_color=None, minimap_shape=None,
@@ -370,6 +416,14 @@ class BaseTemplate():
             self.filter_file.write('    HasExplicitMod {0}\n'.format(self._format_item_text(has_mod)))
         if has_influence is not None:
             self.filter_file.write('    HasInfluence {0}\n'.format(self._format_item_text(has_influence)))
+        if is_fractured is not None:
+            self.filter_file.write('    FracturedItem {0}\n'.format(self._format_item_text(is_fractured)))
+        if is_synthesized is not None:
+            self.filter_file.write('    SynthesisedItem {0}\n'.format(self._format_item_text(is_synthesized)))
+        if is_mirrored is not None:
+            self.filter_file.write('    Mirrored {0}\n'.format(self._format_item_text(is_mirrored)))
+        if is_replica is not None:
+            self.filter_file.write('    Replica {0}\n'.format(self._format_item_text(is_replica)))
         if map_tier is not None:
             self.filter_file.write('    MapTier {0}\n'.format(str(map_tier).strip()))
 
@@ -417,6 +471,7 @@ class BaseTemplate():
 
             # Return formatted set.
             return formatted_text
+
         elif isinstance(item_text, str):
             # Strip possible outer whitespace.
             item_text = item_text.strip()
@@ -431,6 +486,11 @@ class BaseTemplate():
 
             # Return formatted item.
             return item_text
+
+        elif item_text is True or item_text is False:
+            # Is literal boolean. Can set as normal string, no quotes.
+            return str(item_text)
+
         else:
             # Item is neither set or string.
             raise TypeError('Passed item must be either set (list/tuple) or string value.')
-- 
GitLab