From 181dc7dda3ae8b93eefe0d3bd10f94e61f23ac45 Mon Sep 17 00:00:00 2001
From: Brandon Rodriguez <brodriguez8774@gmail.com>
Date: Tue, 28 Jul 2020 11:08:31 -0400
Subject: [PATCH] Small tweaks to make filter generally more usable

---
 main.py                                | 13 +++-
 resources/data/value_dictionary.py     |  7 +-
 resources/parsers/currency.py          | 38 +++++++----
 resources/parsers/flasks.py            |  6 +-
 resources/parsers/gems.py              |  6 +-
 resources/parsers/jewels.py            |  2 +-
 resources/parsers/maps.py              | 16 ++---
 resources/parsers/other.py             | 49 +++++++-------
 resources/parsers/table_of_contents.py |  4 +-
 resources/parsers/templates.py         | 89 +++++++++++++++-----------
 10 files changed, 134 insertions(+), 96 deletions(-)

diff --git a/main.py b/main.py
index 414ae6c..8eb7c7a 100644
--- a/main.py
+++ b/main.py
@@ -138,8 +138,17 @@ def generate_filter(args ,test_mode=False):
                 filter_file.write(' {0}'.format(arg))
             else:
                 filter_file.write(' "{0}"'.format(arg))
-        filter_file.write('\n#\n')
-
+        filter_file.write('\n#\n#\n')
+
+        filter_file.write('# Sounds:\n')
+        filter_file.write('    1 - Unique\n')
+        filter_file.write('    2 - Quest Items\n')
+        filter_file.write('    4 - League/Special Item\n')
+        filter_file.write('    5 - Influenced Item\n')
+        filter_file.write('    6 - High Slot Item\n')
+        filter_file.write('    9 - Cards\n')
+        filter_file.write('    10 - Rare Currency\n')
+        filter_file.write('    13 - Map\n')
         filter_file.write('#\n#\n')
 
         if not test_mode:
diff --git a/resources/data/value_dictionary.py b/resources/data/value_dictionary.py
index f140a1e..1cbfeed 100644
--- a/resources/data/value_dictionary.py
+++ b/resources/data/value_dictionary.py
@@ -33,12 +33,15 @@ display_dict = {
     'standard_background': '25 25 25',
     'dark_grey_background': '75 75 75',
     'unique_background': '66 30 30',
-    'currency_border': '255 215 0',
+    'normal_border': '140 140 140',
+    'notable_border': '200 200 200',
+    'rare_currency_border': '255 215 0',
     'currency_orb_border': '0 0 0',
     'league_border': '128 0 128',
     'card_border': '14 186 255',
 
-    'normal_text': '200 200 200',
+    'normal_text': '140 140 140',
+    'notable_text': '200 200 200',
     'uncommon_text': '136 136 255',
     'rare_text': '255 255 119',
     'unique_text': '175 96 37',
diff --git a/resources/parsers/currency.py b/resources/parsers/currency.py
index 64c2bed..d2b345f 100644
--- a/resources/parsers/currency.py
+++ b/resources/parsers/currency.py
@@ -122,13 +122,14 @@ class CurrencyParser():
             base_text='Orb of Alchemy',
             font_size=display_dict['rare_font_size'],
             minimap_size=1,
-            sound='ShAlchemy 175',
+            sound='ShAlchemy 250',
         )
 
         # Divination Cards.
         self.template.card_item(
             description='Divination Cards',
-            base_text=['Card', 'Stacked Deck']
+            class_text='Currency',
+            base_text=['Stacked Deck'],
         )
         self.template.card_item(
             class_text=['Divination Card'],
@@ -136,26 +137,35 @@ class CurrencyParser():
 
         # Misc important currency.
         self.template.rare_currency(
-            description='Misc important currency',
+            description='Misc Important Currency',
             base_text=[
-                'Gemcutter\'s Prism', 'Cartographer\'s Chisel', 'Orb of Scouring', 'Orb of Regret', 'Silver Coin',
-                'Eternal Orb', 'Master Cartographer\'s Seal', 'Albino Rhoa Feather',
+                'Cartographer\'s Chisel', 'Orb of Scouring', 'Orb of Regret', 'Silver Coin',
+                'Eternal Orb', 'Master Cartographer\'s Seal', 'Albino Rhoa Feather', 'Orb of Chance',
             ],
             font_size=display_dict['uncommon_font_size'],
             minimap_size=2,
-            sound='4 175',
+            sound='5 175',
         )
 
-        # Low level important currency.
+        # Misc low importance currency.
         self.template.rare_currency(
-            description='Low level important currency',
+            description='Misc Low Importance Currency - Low Level',
             base_text=[
-                'Orb of Alteration', 'Chromatic Orb', 'Jeweller\'s Orb', 'Armourer\'s Scrap', 'Blacksmith\'s Whetstone',
-                'Glassblower\'s Bauble', 'Orb of Chance',
+                'Orb of Alteration', 'Orb of Augmentation',
+                'Chromatic Orb', 'Jeweller\'s Orb',
+                'Armourer\'s Scrap', 'Blacksmith\'s Whetstone', 'Glassblower\'s Bauble', 'Gemcutter\'s Prism',
+            ],
+            area_level='<= 49',
+            font_size=display_dict['default_font_size'],
+        )
+
+        self.template.notable_item(
+            description='Misc Low Importance Currency',
+            base_text=[
+                'Chromatic Orb', 'Jeweller\'s Orb',
+                'Armourer\'s Scrap', 'Blacksmith\'s Whetstone', 'Glassblower\'s Bauble', 'Gemcutter\'s Prism',
             ],
             font_size=display_dict['default_font_size'],
-            minimap_size=2,
-            sound=None,
         )
 
     def league_specific(self):
@@ -231,7 +241,7 @@ class CurrencyParser():
             base_text='Stone of Passage',
             font_size=display_dict['unique_font_size'],
             minimap_size=0,
-            sound='4 250'
+            sound='4 300'
         )
         self.template.special_item(
             description='Harbringer',
@@ -359,7 +369,7 @@ class PostEquipment_CurrencyParser():
         self.filter_file.write('# Alternatively, sell any combination of items (of the same quality type) that sum up to 40% quality.\n')
         self.filter_file.write('\n')
 
-        self.template.currency_recipe_quality(
+        self.template.notable_item(
             quality=20,
         )
 
diff --git a/resources/parsers/flasks.py b/resources/parsers/flasks.py
index 5636590..6314b7d 100644
--- a/resources/parsers/flasks.py
+++ b/resources/parsers/flasks.py
@@ -98,7 +98,7 @@ class FlaskParser():
         self.filter_file.write('\n')
 
         # High quality between 15 and 20%.
-        self.template.currency_recipe_quality(
+        self.template.notable_item(
             description='High quality gems [15 - 20]%',
             class_text=['Life Flasks', 'Mana Flasks', 'Hybrid Flasks', 'Utility Flasks', 'Critical Utility Flasks'],
             quality='>= 15',
@@ -110,7 +110,7 @@ class FlaskParser():
         )
 
         # High quality between 10 and 15%.
-        self.template.currency_recipe_quality(
+        self.template.notable_item(
             description='High quality gems [10 - 15]%',
             class_text=['Life Flasks', 'Mana Flasks', 'Hybrid Flasks', 'Utility Flasks', 'Critical Utility Flasks'],
             quality='>= 10',
@@ -122,7 +122,7 @@ class FlaskParser():
         )
 
         # High quality between 5 and 10%.
-        self.template.currency_recipe_quality(
+        self.template.notable_item(
             description='High quality gems [10 - 15]%',
             class_text=['Life Flasks', 'Mana Flasks', 'Hybrid Flasks', 'Utility Flasks', 'Critical Utility Flasks'],
             quality='>= 10',
diff --git a/resources/parsers/gems.py b/resources/parsers/gems.py
index cb059d1..f7481ac 100644
--- a/resources/parsers/gems.py
+++ b/resources/parsers/gems.py
@@ -70,7 +70,7 @@ class GemParser():
         self.filter_file.write('\n')
 
         # High quality between 15 and 20%.
-        self.template.currency_recipe_quality(
+        self.template.notable_item(
             description='High quality gems [15 - 20]%',
             class_text='Gem',
             quality='>= 15',
@@ -78,7 +78,7 @@ class GemParser():
         )
 
         # High quality between 10 and 15%.
-        self.template.currency_recipe_quality(
+        self.template.notable_item(
             description='High quality gems [10 - 15]%',
             class_text='Gem',
             quality='>= 10',
@@ -86,7 +86,7 @@ class GemParser():
         )
 
         # High quality between 5 and 10%.
-        self.template.currency_recipe_quality(
+        self.template.notable_item(
             description='High quality gems [5 - 10]%',
             class_text='Gem',
             quality='>= 5',
diff --git a/resources/parsers/jewels.py b/resources/parsers/jewels.py
index 099d06b..1dfbed5 100644
--- a/resources/parsers/jewels.py
+++ b/resources/parsers/jewels.py
@@ -83,5 +83,5 @@ class JewelParser():
             base_text='Cluster Jewel',
             minimap_size=0,
             minimap_shape=display_dict['minimap_icon_jewel'],
-            sound='4 250',
+            sound='4 300',
         )
diff --git a/resources/parsers/maps.py b/resources/parsers/maps.py
index 9315702..9b380e9 100644
--- a/resources/parsers/maps.py
+++ b/resources/parsers/maps.py
@@ -40,7 +40,7 @@ class MapParser():
         Generates filtering for all map types.
         """
         # High quality maps.
-        self.template.common_item(
+        self.template.notable_item(
             description='High Quality Maps',
             class_text='Map',
             quality='>= 10',
@@ -48,12 +48,12 @@ class MapParser():
             minimap_size=1,
             minimap_color=display_dict['minimap_color_maps'],
             minimap_shape=display_dict['minimap_icon_maps'],
-            sound='3 175',
+            sound='13 250',
             playeffect=display_dict['minimap_color_maps'],
         )
 
         # High tier maps.
-        self.template.common_item(
+        self.template.notable_item(
             description='High Tier Maps',
             class_text='Map',
             map_tier='>= 11',
@@ -61,12 +61,12 @@ class MapParser():
             minimap_size=0,
             minimap_color=display_dict['minimap_color_maps'],
             minimap_shape=display_dict['minimap_icon_maps'],
-            sound='3 175',
+            sound='13 250',
             playeffect=display_dict['minimap_color_maps'],
         )
 
         # Medium tier maps.
-        self.template.common_item(
+        self.template.notable_item(
             description='Medium Tier Maps',
             class_text='Map',
             map_tier='>= 6',
@@ -74,18 +74,18 @@ class MapParser():
             minimap_size=1,
             minimap_color=display_dict['minimap_color_maps'],
             minimap_shape=display_dict['minimap_icon_maps'],
-            sound='3 175',
+            sound='13 225',
             playeffect=display_dict['minimap_color_maps'],
         )
 
         # Low tier maps.
-        self.template.common_item(
+        self.template.notable_item(
             description='Low Tier Maps',
             class_text=['Map', 'Map Fragments', 'Misc Map Items'],
             font_size=display_dict['default_font_size'],
             minimap_size=1,
             minimap_color=display_dict['minimap_color_maps'],
             minimap_shape=display_dict['minimap_icon_maps'],
-            sound='3 175',
+            sound='13 200',
             playeffect=display_dict['minimap_color_maps'],
         )
diff --git a/resources/parsers/other.py b/resources/parsers/other.py
index e2fac26..decdfaf 100644
--- a/resources/parsers/other.py
+++ b/resources/parsers/other.py
@@ -34,7 +34,7 @@ class QuestItemParser():
         self.filter_file.write('\n')
 
         self.template.quest_item(
-            class_text=['Quest', 'Quest Items']
+            class_text=['Quest', 'Quest Items'],
         )
 
 
@@ -70,7 +70,7 @@ class UniqueParser():
             description='Unique Tier Maps',
             class_text='Map',
             minimap_shape=display_dict['minimap_icon_maps'],
-            sound='3 200',
+            sound='13 200',
         )
 
         # General Unique Items.
@@ -118,9 +118,9 @@ class NotableGearParser():
         self.filter_file.write('\n')
 
         self.filter_file.write('\n')
-        self.filter_file.write('# --------------------------------------- #\n')
-        self.filter_file.write('# --- [{0}.{1}.01] - 6-Link Slot Items --- #\n'.format(self.parse_num, parse_subnum))
-        self.filter_file.write('# --------------------------------------- #\n')
+        self.filter_file.write('# ---------------------------------- #\n')
+        self.filter_file.write('# --- [{0}.{1}.01] - 6-Link Items --- #\n'.format(self.parse_num, parse_subnum))
+        self.filter_file.write('# ---------------------------------- #\n')
         self.filter_file.write('\n')
 
         self.template.rare_item(
@@ -129,7 +129,7 @@ class NotableGearParser():
             minimap_size=0,
             minimap_color=display_dict['minimap_color_notable'],
             minimap_shape=display_dict['minimap_icon_slots'],
-            sound='1 300',
+            sound='6 300',
             playeffect=display_dict['minimap_color_notable'],
         )
         self.template.uncommon_item(
@@ -138,7 +138,7 @@ class NotableGearParser():
             minimap_size=0,
             minimap_color=display_dict['minimap_color_notable'],
             minimap_shape=display_dict['minimap_icon_slots'],
-            sound='1 300',
+            sound='6 300',
             playeffect=display_dict['minimap_color_notable'],
         )
         self.template.common_item(
@@ -147,41 +147,41 @@ class NotableGearParser():
             minimap_size=0,
             minimap_color=display_dict['minimap_color_notable'],
             minimap_shape=display_dict['minimap_icon_slots'],
-            sound='1 300',
+            sound='6 300',
             playeffect=display_dict['minimap_color_notable'],
         )
 
         self.filter_file.write('\n')
-        self.filter_file.write('# --------------------------------------- #\n')
-        self.filter_file.write('# --- [{0}.{1}.02] - 5-Link Slot Items --- #\n'.format(self.parse_num, parse_subnum))
-        self.filter_file.write('# --------------------------------------- #\n')
+        self.filter_file.write('# ---------------------------------- #\n')
+        self.filter_file.write('# --- [{0}.{1}.02] - 5-Link Items --- #\n'.format(self.parse_num, parse_subnum))
+        self.filter_file.write('# ---------------------------------- #\n')
         self.filter_file.write('\n')
 
         self.template.rare_item(
             linked_sockets='5',
-            font_size=display_dict['rare_font_size'],
+            font_size=display_dict['unique_font_size'],
             minimap_size=1,
             minimap_color=display_dict['minimap_color_notable'],
             minimap_shape=display_dict['minimap_icon_slots'],
-            sound='1 300',
+            sound='6 225',
             playeffect=display_dict['minimap_color_notable'],
         )
         self.template.uncommon_item(
             linked_sockets='5',
-            font_size=display_dict['rare_font_size'],
+            font_size=display_dict['unique_font_size'],
             minimap_size=1,
             minimap_color=display_dict['minimap_color_notable'],
             minimap_shape=display_dict['minimap_icon_slots'],
-            sound='1 200',
+            sound='6 225',
             playeffect=display_dict['minimap_color_notable'],
         )
         self.template.common_item(
             linked_sockets='5',
-            font_size=display_dict['rare_font_size'],
+            font_size=display_dict['unique_font_size'],
             minimap_size=1,
             minimap_color=display_dict['minimap_color_notable'],
             minimap_shape=display_dict['minimap_icon_slots'],
-            sound='1 200',
+            sound='6 225',
             playeffect=display_dict['minimap_color_notable'],
         )
 
@@ -193,27 +193,30 @@ class NotableGearParser():
 
         self.template.rare_item(
             sockets='6',
-            font_size=display_dict['rare_font_size'],
+            font_size=display_dict['unique_font_size'],
             minimap_size=2,
             minimap_color=display_dict['minimap_color_notable'],
             minimap_shape=display_dict['minimap_icon_slots'],
             playeffect=display_dict['minimap_color_notable'],
+            sound='6 175',
         )
         self.template.uncommon_item(
             sockets='6',
-            font_size=display_dict['rare_font_size'],
+            font_size=display_dict['unique_font_size'],
             minimap_size=2,
             minimap_color=display_dict['minimap_color_notable'],
             minimap_shape=display_dict['minimap_icon_slots'],
             playeffect=display_dict['minimap_color_notable'],
+            sound='6 175',
         )
         self.template.common_item(
             sockets='6',
-            font_size=display_dict['rare_font_size'],
+            font_size=display_dict['unique_font_size'],
             minimap_size=2,
             minimap_color=display_dict['minimap_color_notable'],
             minimap_shape=display_dict['minimap_icon_slots'],
             playeffect=display_dict['minimap_color_notable'],
+            sound='6 175',
         )
 
     def parse_influence(self):
@@ -230,7 +233,7 @@ class NotableGearParser():
             minimap_size=0,
             minimap_color=display_dict['minimap_color_notable'],
             minimap_shape=display_dict['minimap_icon_influenced'],
-            sound='1 300',
+            sound='5 300',
             playeffect=display_dict['minimap_color_notable'],
         )
         self.template.uncommon_item(
@@ -238,7 +241,7 @@ class NotableGearParser():
             minimap_size=0,
             minimap_color=display_dict['minimap_color_notable'],
             minimap_shape=display_dict['minimap_icon_influenced'],
-            sound='1 300',
+            sound='5 300',
             playeffect=display_dict['minimap_color_notable'],
         )
         self.template.common_item(
@@ -246,7 +249,7 @@ class NotableGearParser():
             minimap_size=0,
             minimap_color=display_dict['minimap_color_notable'],
             minimap_shape=display_dict['minimap_icon_influenced'],
-            sound='1 300',
+            sound='5 300',
             playeffect=display_dict['minimap_color_notable'],
         )
 
diff --git a/resources/parsers/table_of_contents.py b/resources/parsers/table_of_contents.py
index 47bebce..d61d16a 100644
--- a/resources/parsers/table_of_contents.py
+++ b/resources/parsers/table_of_contents.py
@@ -93,8 +93,8 @@ class TableOfContentsGenerator():
         parse_num += 1
         self.filter_file.write('# [{0}] - Notable Gear\n'.format(str(parse_num).zfill(3)))
         self.filter_file.write('# [{0}.01] - High Slot Items\n'.format(str(parse_num).zfill(3)))
-        self.filter_file.write('# [{0}.01.01] - 6-Link Slot Items\n'.format(str(parse_num).zfill(3)))
-        self.filter_file.write('# [{0}.01.02] - 5-Link Slot Items\n'.format(str(parse_num).zfill(3)))
+        self.filter_file.write('# [{0}.01.01] - 6-Link Items\n'.format(str(parse_num).zfill(3)))
+        self.filter_file.write('# [{0}.01.02] - 5-Link Items\n'.format(str(parse_num).zfill(3)))
         self.filter_file.write('# [{0}.01.03] - 6 Slot Items\n'.format(str(parse_num).zfill(3)))
         self.filter_file.write('# [{0}.02] - Influenced Items\n'.format(str(parse_num).zfill(3)))
         self.filter_file.write('# [{0}.03] - Veiled Items\n'.format(str(parse_num).zfill(3)))
diff --git a/resources/parsers/templates.py b/resources/parsers/templates.py
index ec34d02..2a305b4 100644
--- a/resources/parsers/templates.py
+++ b/resources/parsers/templates.py
@@ -24,7 +24,7 @@ class FilterTemplates():
 
     def unique_item(self, *args,
             description='Unique Type', class_text=None, base_text=None,
-            quality=None,
+            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,
@@ -38,7 +38,7 @@ class FilterTemplates():
         """
         self.base.write_rule(
             description=description, class_text=class_text, base_text=base_text,
-            rarity='Unique', quality=quality,
+            area_level=area_level, item_level=item_level, rarity='Unique', quality=quality,
             linked_sockets=linked_sockets, socket_group=socket_group, sockets=sockets,
             height=height, width=width,
             has_influence=has_influence, map_tier=map_tier,
@@ -50,20 +50,20 @@ class FilterTemplates():
 
     def rare_item(self, *args,
             description='Rare Type', class_text=None, base_text=None,
-            item_level=None, quality=None,
+            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,
             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,
-            sound=None, playeffect=None):
+            sound='None', playeffect=None):
         """
         General filtering template for rare items.
         """
         self.base.write_rule(
             description=description, class_text=class_text, base_text=base_text,
-            item_level=item_level, rarity='Rare', quality=quality,
+            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,
@@ -75,20 +75,20 @@ class FilterTemplates():
 
     def uncommon_item(self, *args,
             description='Magic Type', class_text=None, base_text=None,
-            item_level=None, quality=None,
+            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,
             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,
-            sound=None, playeffect=None):
+            sound='None', playeffect=None):
         """
         General filtering template for magic/uncommon items.
         """
         self.base.write_rule(
             description=description, class_text=class_text, base_text=base_text,
-            item_level=item_level, rarity='Magic', quality=quality,
+            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,
@@ -98,22 +98,22 @@ class FilterTemplates():
             sound=sound, playeffect=playeffect,
         )
 
-    def common_item(self, *args,
-            description='Common Type', class_text=None, base_text=None,
-            item_level=None, quality=None,
+    def notable_item(self, *args,
+            description=None, class_text=None, base_text=None,
+            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,
-            background_color=display_dict['standard_background'], border_color=display_dict['normal'],
-            text_color=display_dict['normal_text'], font_size=display_dict['default_font_size'],
+            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,
-            sound=None, playeffect=None):
+            sound='None', playeffect=None):
         """
-        General filtering template for common/normal items.
+        General filtering template for notable common/normal items.
         """
         self.base.write_rule(
             description=description, class_text=class_text, base_text=base_text,
-            item_level=item_level, quality=quality,
+            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,
@@ -123,36 +123,45 @@ class FilterTemplates():
             sound=sound, playeffect=playeffect,
         )
 
-    def rare_currency(self, *args,
-            description=None, class_text=None, base_text=None,
-            background_color=display_dict['standard_background'], border_color=display_dict['currency_border'],
-            text_color=display_dict['currency_text'], font_size=display_dict['rare_font_size'],
-            minimap_size=0, minimap_color=display_dict['minimap_color_currency'],
-            minimap_shape=display_dict['minimap_icon_currency'],
-            sound='4 175', playeffect=display_dict['minimap_color_currency']):
+    def common_item(self, *args,
+            description='Common Type', class_text=None, base_text=None,
+            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,
+            background_color=display_dict['standard_background'], border_color=display_dict['normal_border'],
+            text_color=display_dict['normal_text'], font_size=display_dict['default_font_size'],
+            minimap_size=None, minimap_color=None, minimap_shape=None,
+            sound='None', playeffect=None):
         """
-        Template for rarer currency items.
+        General filtering template for common/normal items.
         """
         self.base.write_rule(
             description=description, class_text=class_text, base_text=base_text,
+            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,
             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,
             sound=sound, playeffect=playeffect,
         )
 
-    def currency_recipe_quality(self, *args,
+    def rare_currency(self, *args,
             description=None, class_text=None, base_text=None,
-            quality=None,
-            background_color=display_dict['standard_background'], border_color=display_dict['normal'],
-            text_color=display_dict['text'], font_size=display_dict['min_font_size'],
-            minimap_size=None, minimap_color=None, minimap_shape=None,
-            sound=None, playeffect=None):
+            area_level=None,
+            background_color=display_dict['standard_background'], border_color=display_dict['rare_currency_border'],
+            text_color=display_dict['currency_text'], font_size=display_dict['rare_font_size'],
+            minimap_size=0, minimap_color=display_dict['minimap_color_currency'],
+            minimap_shape=display_dict['minimap_icon_currency'],
+            sound='10 250', playeffect=display_dict['minimap_color_currency']):
         """
-        Template for quality currency recipe items.
+        Template for rarer currency items.
         """
         self.base.write_rule(
-            description=description, class_text=class_text, base_text=base_text,  quality=quality,
+            description=description, class_text=class_text, base_text=base_text,
+            area_level=area_level,
             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,
@@ -168,7 +177,7 @@ class FilterTemplates():
             border_color=display_dict['currency_orb_border'],
             text_color='{0} 50'.format(display_dict['text']), font_size=display_dict['min_font_size'],
             minimap_size=None, minimap_color=None, minimap_shape=None,
-            sound=None, playeffect=None):
+            sound='None', playeffect=None):
         """
         Template for high level currency recipe items.
         """
@@ -192,7 +201,7 @@ class FilterTemplates():
             text_color='{0} 50'.format(display_dict['text']),
             font_size=display_dict['min_font_size'],
             minimap_size=None, minimap_color=None, minimap_shape=None,
-            sound=None, playeffect=None):
+            sound='None', playeffect=None):
         """
         Template for low level currency recipe items.
         """
@@ -212,7 +221,7 @@ class FilterTemplates():
             background_color=display_dict['standard_background'], border_color=display_dict['card_border'],
             text_color=display_dict['card_text'], font_size=display_dict['default_font_size'],
             minimap_size=None, minimap_color=None, minimap_shape=None,
-            sound='9 175', playeffect=None):
+            sound='9 225', playeffect=None):
         """
         Because cards vary so much in purpose and usefulness, they get their own template.
         """
@@ -231,7 +240,7 @@ class FilterTemplates():
             text_color=display_dict['league_text'], font_size=display_dict['rare_font_size'],
             minimap_size=1, minimap_color=display_dict['minimap_color_special'],
             minimap_shape=display_dict['minimap_icon_special'],
-            sound='4 175', playeffect=display_dict['minimap_color_special']):
+            sound='4 250', playeffect=display_dict['minimap_color_special']):
         """
         Template for various special items, mostly consisting of league items.
         """
@@ -249,7 +258,7 @@ class FilterTemplates():
             background_color=display_dict['standard_background'], border_color=display_dict['quest'],
             text_color=display_dict['quest'], font_size=display_dict['important_font_size'],
             minimap_size=None, minimap_color=None, minimap_shape=None,
-            sound=None, playeffect=None):
+            sound='2 300', playeffect=None):
         """
         Template for quest items.
         """
@@ -286,7 +295,7 @@ class BaseTemplate():
 
     def write_rule(self, *args,
             description=None, show_item=True, class_text=None, base_text=None,
-            item_level=None, rarity=None, quality=None,
+            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,
@@ -304,6 +313,8 @@ class BaseTemplate():
         :param show_item: Boolean indicating if filter should show or hide matching items. Defaults to show.
         :param class_text: The "Class" text for rule. If not present, then base_text should be present.
         :param base_text: The "BaseType" text for rule. If not present, then class_text should be present.
+        :param area_level: Rule selector based on level of current area. Helps with dynamic filtering on level for
+                            anything without an item level (such as currency).
         :param item_level: Rule selector based on level item was generated at.
         :param rarity: Rule selector based on rarity of item.
         :param quality: Rule selector based on quality of item.
@@ -337,6 +348,8 @@ class BaseTemplate():
             self.filter_file.write('    Class {0}\n'.format(self._format_item_text(class_text)))
         if base_text is not None:
             self.filter_file.write('    BaseType {0}\n'.format(self._format_item_text(base_text)))
+        if area_level is not None:
+            self.filter_file.write('    AreaLevel {0}\n'.format(str(area_level).strip()))
         if item_level is not None:
             self.filter_file.write('    ItemLevel {0}\n'.format(str(item_level).strip()))
         if rarity is not None:
-- 
GitLab