diff --git a/Filtration.ObjectModel/BlockItemTypes/AnyEnchantmentBlockItem.cs b/Filtration.ObjectModel/BlockItemTypes/AnyEnchantmentBlockItem.cs
new file mode 100644
index 0000000..cf3659d
--- /dev/null
+++ b/Filtration.ObjectModel/BlockItemTypes/AnyEnchantmentBlockItem.cs
@@ -0,0 +1,23 @@
+using System.Windows.Media;
+using Filtration.ObjectModel.BlockItemBaseTypes;
+using Filtration.ObjectModel.Enums;
+
+namespace Filtration.ObjectModel.BlockItemTypes
+{
+ public sealed class AnyEnchantmentBlockItem : BooleanBlockItem
+ {
+ public AnyEnchantmentBlockItem()
+ {
+ }
+
+ public AnyEnchantmentBlockItem(bool booleanValue) : base(booleanValue)
+ {
+ }
+
+ public override string PrefixText => "AnyEnchantment";
+ public override string DisplayHeading => "Any Enchantment";
+ public override Color SummaryBackgroundColor => Colors.YellowGreen;
+ public override Color SummaryTextColor => Colors.Black;
+ public override BlockItemOrdering SortOrder => BlockItemOrdering.AnyEnchantment;
+ }
+}
diff --git a/Filtration.ObjectModel/BlockItemTypes/FracturedItemBlockItem.cs b/Filtration.ObjectModel/BlockItemTypes/FracturedItemBlockItem.cs
new file mode 100644
index 0000000..b64bba6
--- /dev/null
+++ b/Filtration.ObjectModel/BlockItemTypes/FracturedItemBlockItem.cs
@@ -0,0 +1,23 @@
+using System.Windows.Media;
+using Filtration.ObjectModel.BlockItemBaseTypes;
+using Filtration.ObjectModel.Enums;
+
+namespace Filtration.ObjectModel.BlockItemTypes
+{
+ public sealed class FracturedItemBlockItem : BooleanBlockItem
+ {
+ public FracturedItemBlockItem()
+ {
+ }
+
+ public FracturedItemBlockItem(bool booleanValue) : base(booleanValue)
+ {
+ }
+
+ public override string PrefixText => "FracturedItem";
+ public override string DisplayHeading => "Fractured Item";
+ public override Color SummaryBackgroundColor => Colors.Salmon;
+ public override Color SummaryTextColor => Colors.Black;
+ public override BlockItemOrdering SortOrder => BlockItemOrdering.FracturedItem;
+ }
+}
diff --git a/Filtration.ObjectModel/BlockItemTypes/HasEnchantmentBlockItem.cs b/Filtration.ObjectModel/BlockItemTypes/HasEnchantmentBlockItem.cs
new file mode 100644
index 0000000..3f4a897
--- /dev/null
+++ b/Filtration.ObjectModel/BlockItemTypes/HasEnchantmentBlockItem.cs
@@ -0,0 +1,39 @@
+using System.Linq;
+using System.Windows.Media;
+using Filtration.ObjectModel.BlockItemBaseTypes;
+using Filtration.ObjectModel.Enums;
+
+namespace Filtration.ObjectModel.BlockItemTypes
+{
+ public class HasEnchantmentBlockItem : StringListBlockItem
+ {
+ public override string PrefixText => "HasEnchantment";
+ public override int MaximumAllowed => 1;
+ public override string DisplayHeading => "Has Enchantment";
+
+ public override string SummaryText
+ {
+ get
+ {
+ if (Items.Count > 0 && Items.Count < 4)
+ {
+ return "Enchantments: " +
+ Items.Aggregate(string.Empty, (current, i) => current + i + ", ").TrimEnd(' ').TrimEnd(',');
+ }
+ if (Items.Count >= 4)
+ {
+ var remaining = Items.Count - 3;
+ return "Enchantments: " + Items.Take(3)
+ .Aggregate(string.Empty, (current, i) => current + i + ", ")
+ .TrimEnd(' ')
+ .TrimEnd(',') + " (+" + remaining + " more)";
+ }
+ return "Enchantments: (none)";
+ }
+ }
+
+ public override Color SummaryBackgroundColor => Colors.PaleGreen;
+ public override Color SummaryTextColor => Colors.Black;
+ public override BlockItemOrdering SortOrder => BlockItemOrdering.HasEnchantment;
+ }
+}
diff --git a/Filtration.ObjectModel/BlockItemTypes/SynthesisedItemBlockItem.cs b/Filtration.ObjectModel/BlockItemTypes/SynthesisedItemBlockItem.cs
new file mode 100644
index 0000000..4407a93
--- /dev/null
+++ b/Filtration.ObjectModel/BlockItemTypes/SynthesisedItemBlockItem.cs
@@ -0,0 +1,23 @@
+using System.Windows.Media;
+using Filtration.ObjectModel.BlockItemBaseTypes;
+using Filtration.ObjectModel.Enums;
+
+namespace Filtration.ObjectModel.BlockItemTypes
+{
+ public sealed class SynthesisedItemBlockItem : BooleanBlockItem
+ {
+ public SynthesisedItemBlockItem()
+ {
+ }
+
+ public SynthesisedItemBlockItem(bool booleanValue) : base(booleanValue)
+ {
+ }
+
+ public override string PrefixText => "SynthesisedItem";
+ public override string DisplayHeading => "Synthesised Item";
+ public override Color SummaryBackgroundColor => Colors.Salmon;
+ public override Color SummaryTextColor => Colors.Black;
+ public override BlockItemOrdering SortOrder => BlockItemOrdering.SynthesisedItem;
+ }
+}
diff --git a/Filtration.ObjectModel/Enums/BlockItemOrdering.cs b/Filtration.ObjectModel/Enums/BlockItemOrdering.cs
index a9fcd08..a9ec310 100644
--- a/Filtration.ObjectModel/Enums/BlockItemOrdering.cs
+++ b/Filtration.ObjectModel/Enums/BlockItemOrdering.cs
@@ -12,6 +12,9 @@ namespace Filtration.ObjectModel.Enums
Corrupted,
ElderItem,
ShaperItem,
+ SynthesisedItem,
+ FracturedItem,
+ AnyEnchantment,
MapTier,
ShapedMap,
ElderMap,
@@ -27,6 +30,7 @@ namespace Filtration.ObjectModel.Enums
BaseType,
Prophecy,
HasExplicitMod,
+ HasEnchantment,
SetTextColor,
SetBackgroundColor,
SetBorderColor,
diff --git a/Filtration.ObjectModel/Filtration.ObjectModel.csproj b/Filtration.ObjectModel/Filtration.ObjectModel.csproj
index 04b58ef..b6fd981 100644
--- a/Filtration.ObjectModel/Filtration.ObjectModel.csproj
+++ b/Filtration.ObjectModel/Filtration.ObjectModel.csproj
@@ -81,8 +81,11 @@
+
+
+
@@ -95,6 +98,7 @@
+
diff --git a/Filtration.Parser/Services/ItemFilterBlockTranslator.cs b/Filtration.Parser/Services/ItemFilterBlockTranslator.cs
index 21d8d8c..372e766 100644
--- a/Filtration.Parser/Services/ItemFilterBlockTranslator.cs
+++ b/Filtration.Parser/Services/ItemFilterBlockTranslator.cs
@@ -184,6 +184,21 @@ namespace Filtration.Parser.Services
AddBooleanItemToBlockItems(block, trimmedLine);
break;
}
+ case "SynthesisedItem":
+ {
+ AddBooleanItemToBlockItems(block, trimmedLine);
+ break;
+ }
+ case "FracturedItem":
+ {
+ AddBooleanItemToBlockItems(block, trimmedLine);
+ break;
+ }
+ case "AnyEnchantment":
+ {
+ AddBooleanItemToBlockItems(block, trimmedLine);
+ break;
+ }
case "ShapedMap":
{
AddBooleanItemToBlockItems(block, trimmedLine);
@@ -317,6 +332,11 @@ namespace Filtration.Parser.Services
AddStringListItemToBlockItems(block, trimmedLine);
break;
}
+ case "HasEnchantment":
+ {
+ AddStringListItemToBlockItems(block, trimmedLine);
+ break;
+ }
case "ElderMap":
{
AddBooleanItemToBlockItems(block, trimmedLine);
diff --git a/Filtration/Filtration.csproj b/Filtration/Filtration.csproj
index cd85216..24ea0ba 100644
--- a/Filtration/Filtration.csproj
+++ b/Filtration/Filtration.csproj
@@ -463,6 +463,7 @@
Settings.settings
True
+
diff --git a/Filtration/Properties/Resources.Designer.cs b/Filtration/Properties/Resources.Designer.cs
index 2ac594b..013aaa0 100644
--- a/Filtration/Properties/Resources.Designer.cs
+++ b/Filtration/Properties/Resources.Designer.cs
@@ -388,7 +388,18 @@ namespace Filtration.Properties {
return ResourceManager.GetString("Prophecies", resourceCulture);
}
}
-
+
+ ///
+ /// Looks up a localized string similar to Enchantment Decree of Force.
+ ///
+ internal static string Enchantments
+ {
+ get
+ {
+ return ResourceManager.GetString("Enchantments", resourceCulture);
+ }
+ }
+
///
/// Looks up a localized resource of type System.IO.UnmanagedMemoryStream similar to System.IO.MemoryStream.
///
diff --git a/Filtration/Properties/Resources.resx b/Filtration/Properties/Resources.resx
index 89e5bc4..87f7089 100644
--- a/Filtration/Properties/Resources.resx
+++ b/Filtration/Properties/Resources.resx
@@ -214,4 +214,7 @@
..\Resources\Prophecies.txt;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;Windows-1252
+
+ ..\Resources\Enchantments.txt;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;Windows-1252
+
\ No newline at end of file
diff --git a/Filtration/Resources/Enchantments.txt b/Filtration/Resources/Enchantments.txt
new file mode 100644
index 0000000..c9e3ed4
--- /dev/null
+++ b/Filtration/Resources/Enchantments.txt
@@ -0,0 +1 @@
+Enchantment Decree of Force
\ No newline at end of file
diff --git a/Filtration/Resources/ItemBaseTypes.txt b/Filtration/Resources/ItemBaseTypes.txt
index adf0281..018f155 100644
--- a/Filtration/Resources/ItemBaseTypes.txt
+++ b/Filtration/Resources/ItemBaseTypes.txt
@@ -22,6 +22,7 @@ Alira's Amulet
Alleyways Map
Allflame
Alloyed Spiked Shield
+Alone in the Darkness
Alteration Shard
Amber Amulet
Ambush Boots
@@ -76,6 +77,7 @@ Armageddon Brand
Arming Axe
Armourer's Scrap
Armoury Map
+Arrogance of the Vaal
Arsenal Map
Ashen Wood Map
Ashscale Talisman
@@ -96,6 +98,7 @@ Avian Twins Talisman
Awl
Baleful Gem
Ball Lightning
+Bane
Bane of the Loyal
Barbed Club
Barbute Helmet
@@ -172,6 +175,7 @@ Bone Offering
Bone Spirit Shield
Bonechill Support
Bonespire Talisman
+Boon of Justice
Boon of the First Ones
Boot Blade
Boot Knife
@@ -389,6 +393,7 @@ Dagger Axe
Damage on Full Life Support
Dark Forest Map
Dark Pact
+Dark Temptation
Darkwood Sceptre
Deadhand Talisman
Deadly Ailments Support
@@ -450,6 +455,7 @@ Diamond Ring
Dig Map
Discharge
Discipline
+Divine Ire
Divine Life Flask
Divine Mana Flask
Divine Orb
@@ -510,6 +516,7 @@ Enchanted Fossil
Encrusted Fossil
Endurance Charge on Melee Stun Support
Enduring Cry
+Energy Leech Support
Enfeeble
Engineer's Orb
Engineer's Shard
@@ -820,7 +827,9 @@ Infernal Axe
Infernal Blow
Infernal Sword
Infested Valley Map
+Infused Channelling Support
Innervate Support
+Intensify Support
Invasion Leaguestone
Inya's Key
Iron Circlet
@@ -949,6 +958,7 @@ Majestic Plate
Malachai's Entrails
Malachai's Heart
Malachai's Lungs
+Malevolence
Malformation Map
Maligaro's Map
Maligaro's Spike
@@ -1009,6 +1019,7 @@ Molten Shell
Molten Strike
Monkey Paw Talisman
Monkey Twins Talisman
+Monochrome
Moon Orb
Moon Staff
Moon Temple Map
@@ -1183,6 +1194,7 @@ Prophet Crown
Prosperity
Puncture
Punishment
+Purifying Flame
Purity of Elements
Purity of Fire
Purity of Ice
@@ -1295,6 +1307,7 @@ Saint's Hauberk
Saintly Chainmail
Sallet
Sambar Sceptre
+Sambodhi's Vow
Samite Gloves
Samite Helmet
Samite Slippers
@@ -1357,6 +1370,7 @@ Serpentscale Gauntlets
Serrated Arrow Quiver
Serrated Foil
Serrated Fossil
+Seven Years Bad Luck
Shabby Jerkin
Shackled Boots
Shadow Axe
@@ -1457,6 +1471,7 @@ Soldier Helmet
Soldier's Brigandine
Sorcerer Boots
Sorcerer Gloves
+Soulrend
Sovereign Spiked Shield
Spark
Sparkling Claw
@@ -1628,6 +1643,7 @@ The Garish Power
The Gemcutter
The Gentleman
The Gladiator
+The Golden Era
The Hale Heart
The Harvester
The Hermit
@@ -1642,19 +1658,24 @@ The Inventor
The Iron Bard
The Jester
The Jeweller's Boon
+The Journey
The King's Blade
The King's Heart
+The Landing
The Last One Standing
The Lich
The Life Thief
The Lion
The Lord in Black
+The Lord of Celebration
The Lover
The Lunaris Priestess
+The Mad King
The Master
The Master Artisan
The Mayor
The Mercenary
+The Messenger
The Metalsmith's Gift
The Nurse
The Oath
@@ -1684,6 +1705,7 @@ The Samurai's Eye
The Scarred Meadow
The Scavenger
The Scholar
+The Seeker
The Sephirot
The Shaper's Key
The Shaper's Realm
@@ -1800,6 +1822,7 @@ Underground River Map
Underground Sea Map
Undying Flesh Talisman
Unearth
+Unleash Support
Unset Ring
Unshaping Orb
Ursine Pelt
@@ -1924,6 +1947,7 @@ Warlord's Mark
Waste Pool Map
Wasteland Map
Waterways Map
+Wave of Conviction
Waxed Garb
Wealth and Power
Weeping Essence
@@ -1978,4 +2002,5 @@ Yriel's Key
Zealot Boots
Zealot Gloves
Zealot Helmet
+Zealotry
Zodiac Leather
\ No newline at end of file
diff --git a/Filtration/Services/StaticDataService.cs b/Filtration/Services/StaticDataService.cs
index 5591306..1e73f42 100644
--- a/Filtration/Services/StaticDataService.cs
+++ b/Filtration/Services/StaticDataService.cs
@@ -12,6 +12,7 @@ namespace Filtration.Services
IEnumerable ItemClasses { get; }
IEnumerable ItemMods { get; }
IEnumerable Prophecies { get; }
+ IEnumerable Enchantments { get; }
}
internal class StaticDataService : IStaticDataService
@@ -29,12 +30,15 @@ namespace Filtration.Services
public IEnumerable Prophecies { get; private set; }
+ public IEnumerable Enchantments { get; private set; }
+
private void PopulateStaticData()
{
ItemBaseTypes = new LineReader(() => new StringReader(Resources.ItemBaseTypes)).ToList();
ItemClasses = new LineReader(() => new StringReader(Resources.ItemClasses)).ToList();
ItemMods = new LineReader(() => new StringReader(Resources.ItemMods)).ToList();
Prophecies = new LineReader(() => new StringReader(Resources.Prophecies)).ToList();
+ Enchantments = new LineReader(() => new StringReader(Resources.Enchantments)).ToList();
}
}
}
diff --git a/Filtration/UserControls/BlockItemControl.xaml b/Filtration/UserControls/BlockItemControl.xaml
index 5be1988..f6d77e6 100644
--- a/Filtration/UserControls/BlockItemControl.xaml
+++ b/Filtration/UserControls/BlockItemControl.xaml
@@ -87,6 +87,11 @@
+
+
+
+
+
diff --git a/Filtration/ViewModels/DesignTime/DesignTimeItemFilterBlockViewModel.cs b/Filtration/ViewModels/DesignTime/DesignTimeItemFilterBlockViewModel.cs
index 817a01d..47f9c90 100644
--- a/Filtration/ViewModels/DesignTime/DesignTimeItemFilterBlockViewModel.cs
+++ b/Filtration/ViewModels/DesignTime/DesignTimeItemFilterBlockViewModel.cs
@@ -131,12 +131,16 @@ namespace Filtration.ViewModels.DesignTime
typeof (CorruptedBlockItem),
typeof (ElderItemBlockItem),
typeof (ShaperItemBlockItem),
+ typeof (SynthesisedItemBlockItem),
+ typeof (FracturedItemBlockItem),
+ typeof (AnyEnchantmentBlockItem),
typeof (MapTierBlockItem),
typeof (ShapedMapBlockItem),
typeof (ElderMapBlockItem),
typeof (GemLevelBlockItem),
typeof (StackSizeBlockItem),
- typeof (HasExplicitModBlockItem)
+ typeof (HasExplicitModBlockItem),
+ typeof (HasEnchantmentBlockItem)
};
public List AudioVisualBlockItemTypesAvailable { get; }
public Color DisplayTextColor => Colors.Red;
diff --git a/Filtration/ViewModels/ItemFilterBlockViewModel.cs b/Filtration/ViewModels/ItemFilterBlockViewModel.cs
index 7c8053b..32fc0de 100644
--- a/Filtration/ViewModels/ItemFilterBlockViewModel.cs
+++ b/Filtration/ViewModels/ItemFilterBlockViewModel.cs
@@ -208,6 +208,8 @@ namespace Filtration.ViewModels
public IEnumerable AutocompleteItemMods => _staticDataService.ItemMods;
+ public IEnumerable AutocompleteEnchantments => _staticDataService.Enchantments;
+
public List BlockItemTypesAvailable => new List
{
typeof (ItemLevelBlockItem),
@@ -226,12 +228,16 @@ namespace Filtration.ViewModels
typeof (CorruptedBlockItem),
typeof (ElderItemBlockItem),
typeof (ShaperItemBlockItem),
+ typeof (SynthesisedItemBlockItem),
+ typeof (FracturedItemBlockItem),
+ typeof (AnyEnchantmentBlockItem),
typeof (MapTierBlockItem),
typeof (ShapedMapBlockItem),
typeof (ElderMapBlockItem),
typeof (GemLevelBlockItem),
typeof (StackSizeBlockItem),
- typeof (HasExplicitModBlockItem)
+ typeof (HasExplicitModBlockItem),
+ typeof (HasEnchantmentBlockItem)
};
public List AudioVisualBlockItemTypesAvailable => new List