diff --git a/Filtration.Tests/Filtration.Tests.csproj b/Filtration.Tests/Filtration.Tests.csproj index d623069..3eaad95 100644 --- a/Filtration.Tests/Filtration.Tests.csproj +++ b/Filtration.Tests/Filtration.Tests.csproj @@ -1,121 +1,120 @@ -<?xml version="1.0" encoding="utf-8"?> -<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> - <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" /> - <PropertyGroup> - <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> - <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform> - <ProjectGuid>{E0693972-72C5-4E05-A9C5-A5943E4015C6}</ProjectGuid> - <OutputType>Library</OutputType> - <AppDesignerFolder>Properties</AppDesignerFolder> - <RootNamespace>Filtration.Tests</RootNamespace> - <AssemblyName>Filtration.Tests</AssemblyName> - <TargetFrameworkVersion>v4.6.1</TargetFrameworkVersion> - <FileAlignment>512</FileAlignment> - <TargetFrameworkProfile /> - </PropertyGroup> - <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' "> - <DebugSymbols>true</DebugSymbols> - <DebugType>full</DebugType> - <Optimize>false</Optimize> - <OutputPath>bin\Debug\</OutputPath> - <DefineConstants>DEBUG;TRACE</DefineConstants> - <ErrorReport>prompt</ErrorReport> - <WarningLevel>4</WarningLevel> - </PropertyGroup> - <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' "> - <DebugType>pdbonly</DebugType> - <Optimize>true</Optimize> - <OutputPath>bin\Release\</OutputPath> - <DefineConstants>TRACE</DefineConstants> - <ErrorReport>prompt</ErrorReport> - <WarningLevel>4</WarningLevel> - </PropertyGroup> - <ItemGroup> - <Reference Include="Castle.Core, Version=3.3.0.0, Culture=neutral, PublicKeyToken=407dd0808d44fbdc, processorArchitecture=MSIL"> - <HintPath>..\packages\Castle.Core.3.3.3\lib\net45\Castle.Core.dll</HintPath> - <Private>True</Private> - </Reference> - <Reference Include="FluentAssertions, Version=4.19.2.0, Culture=neutral, PublicKeyToken=33f2691a05b67b6a, processorArchitecture=MSIL"> - <HintPath>..\packages\FluentAssertions.4.19.2\lib\net45\FluentAssertions.dll</HintPath> - </Reference> - <Reference Include="FluentAssertions.Core, Version=4.19.2.0, Culture=neutral, PublicKeyToken=33f2691a05b67b6a, processorArchitecture=MSIL"> - <HintPath>..\packages\FluentAssertions.4.19.2\lib\net45\FluentAssertions.Core.dll</HintPath> - </Reference> - <Reference Include="Moq, Version=4.5.30.0, Culture=neutral, PublicKeyToken=69f491c39445e920, processorArchitecture=MSIL"> - <HintPath>..\packages\Moq.4.5.30\lib\net45\Moq.dll</HintPath> - </Reference> - <Reference Include="nunit.framework, Version=3.6.1.0, Culture=neutral, PublicKeyToken=2638cd05610744eb, processorArchitecture=MSIL"> - <HintPath>..\packages\NUnit.3.6.1\lib\net45\nunit.framework.dll</HintPath> - </Reference> - <Reference Include="PresentationCore" /> - <Reference Include="System" /> - <Reference Include="System.Core" /> - <Reference Include="System.Xml.Linq" /> - <Reference Include="System.Data.DataSetExtensions" /> - <Reference Include="Microsoft.CSharp" /> - <Reference Include="System.Data" /> - <Reference Include="System.Xml" /> - </ItemGroup> - <ItemGroup> - <Compile Include="Properties\AssemblyInfo.cs" /> - <Compile Include="Properties\Resources.Designer.cs"> - <AutoGen>True</AutoGen> - <DesignTime>True</DesignTime> - <DependentUpon>Resources.resx</DependentUpon> - </Compile> - <Compile Include="Repositories\TestItemFilterScriptRepository.cs" /> - <Compile Include="Services\TestHTTPService.cs" /> - <Compile Include="Services\TestItemFilterPersistenceService.cs" /> - <Compile Include="Services\TestStaticDataService.cs" /> - <Compile Include="Services\TestUpdateService.cs" /> - </ItemGroup> - <ItemGroup> - <None Include="app.config" /> - <None Include="packages.config" /> - </ItemGroup> - <ItemGroup> - <Folder Include="Models\" /> - <Folder Include="Resources\" /> - <Folder Include="Translators\" /> - <Folder Include="ViewModels\" /> - </ItemGroup> - <ItemGroup> - <ProjectReference Include="..\Filtration.Common\Filtration.Common.csproj"> - <Project>{8cb44f28-2956-4c2a-9314-72727262edd4}</Project> - <Name>Filtration.Common</Name> - </ProjectReference> - <ProjectReference Include="..\Filtration.Interface\Filtration.Interface.csproj"> - <Project>{0f333344-7695-47b2-b0e6-172e4de74819}</Project> - <Name>Filtration.Interface</Name> - </ProjectReference> - <ProjectReference Include="..\Filtration.ObjectModel\Filtration.ObjectModel.csproj"> - <Project>{4aac3beb-1dc1-483e-9d11-0e9334e80227}</Project> - <Name>Filtration.ObjectModel</Name> - </ProjectReference> - <ProjectReference Include="..\Filtration.Parser.Interface\Filtration.Parser.Interface.csproj"> - <Project>{46383F20-02DF-48B4-B092-9088FA4ACD5A}</Project> - <Name>Filtration.Parser.Interface</Name> - </ProjectReference> - <ProjectReference Include="..\Filtration\Filtration.csproj"> - <Project>{55e0a34c-e039-43d7-a024-a4045401cdda}</Project> - <Name>Filtration</Name> - </ProjectReference> - </ItemGroup> - <ItemGroup> - <EmbeddedResource Include="Properties\Resources.resx"> - <Generator>ResXFileCodeGenerator</Generator> - <LastGenOutput>Resources.Designer.cs</LastGenOutput> - </EmbeddedResource> - </ItemGroup> - <ItemGroup> - <Service Include="{82A7F48D-3B50-4B1E-B82E-3ADA8210C358}" /> - </ItemGroup> - <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" /> +<?xml version="1.0" encoding="utf-8"?> +<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" /> + <PropertyGroup> + <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> + <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform> + <ProjectGuid>{E0693972-72C5-4E05-A9C5-A5943E4015C6}</ProjectGuid> + <OutputType>Library</OutputType> + <AppDesignerFolder>Properties</AppDesignerFolder> + <RootNamespace>Filtration.Tests</RootNamespace> + <AssemblyName>Filtration.Tests</AssemblyName> + <TargetFrameworkVersion>v4.6.1</TargetFrameworkVersion> + <FileAlignment>512</FileAlignment> + <TargetFrameworkProfile /> + </PropertyGroup> + <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' "> + <DebugSymbols>true</DebugSymbols> + <DebugType>full</DebugType> + <Optimize>false</Optimize> + <OutputPath>bin\Debug\</OutputPath> + <DefineConstants>DEBUG;TRACE</DefineConstants> + <ErrorReport>prompt</ErrorReport> + <WarningLevel>4</WarningLevel> + </PropertyGroup> + <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' "> + <DebugType>pdbonly</DebugType> + <Optimize>true</Optimize> + <OutputPath>bin\Release\</OutputPath> + <DefineConstants>TRACE</DefineConstants> + <ErrorReport>prompt</ErrorReport> + <WarningLevel>4</WarningLevel> + </PropertyGroup> + <ItemGroup> + <Reference Include="Castle.Core, Version=3.3.0.0, Culture=neutral, PublicKeyToken=407dd0808d44fbdc, processorArchitecture=MSIL"> + <HintPath>..\packages\Castle.Core.3.3.3\lib\net45\Castle.Core.dll</HintPath> + <Private>True</Private> + </Reference> + <Reference Include="FluentAssertions, Version=4.19.2.0, Culture=neutral, PublicKeyToken=33f2691a05b67b6a, processorArchitecture=MSIL"> + <HintPath>..\packages\FluentAssertions.4.19.2\lib\net45\FluentAssertions.dll</HintPath> + </Reference> + <Reference Include="FluentAssertions.Core, Version=4.19.2.0, Culture=neutral, PublicKeyToken=33f2691a05b67b6a, processorArchitecture=MSIL"> + <HintPath>..\packages\FluentAssertions.4.19.2\lib\net45\FluentAssertions.Core.dll</HintPath> + </Reference> + <Reference Include="Moq, Version=4.5.30.0, Culture=neutral, PublicKeyToken=69f491c39445e920, processorArchitecture=MSIL"> + <HintPath>..\packages\Moq.4.5.30\lib\net45\Moq.dll</HintPath> + </Reference> + <Reference Include="nunit.framework, Version=3.6.1.0, Culture=neutral, PublicKeyToken=2638cd05610744eb, processorArchitecture=MSIL"> + <HintPath>..\packages\NUnit.3.6.1\lib\net45\nunit.framework.dll</HintPath> + </Reference> + <Reference Include="PresentationCore" /> + <Reference Include="System" /> + <Reference Include="System.Core" /> + <Reference Include="System.Xml.Linq" /> + <Reference Include="System.Data.DataSetExtensions" /> + <Reference Include="Microsoft.CSharp" /> + <Reference Include="System.Data" /> + <Reference Include="System.Xml" /> + </ItemGroup> + <ItemGroup> + <Compile Include="Properties\AssemblyInfo.cs" /> + <Compile Include="Properties\Resources.Designer.cs"> + <AutoGen>True</AutoGen> + <DesignTime>True</DesignTime> + <DependentUpon>Resources.resx</DependentUpon> + </Compile> + <Compile Include="Repositories\TestItemFilterScriptRepository.cs" /> + <Compile Include="Services\TestHTTPService.cs" /> + <Compile Include="Services\TestItemFilterPersistenceService.cs" /> + <Compile Include="Services\TestUpdateService.cs" /> + </ItemGroup> + <ItemGroup> + <None Include="app.config" /> + <None Include="packages.config" /> + </ItemGroup> + <ItemGroup> + <Folder Include="Models\" /> + <Folder Include="Resources\" /> + <Folder Include="Translators\" /> + <Folder Include="ViewModels\" /> + </ItemGroup> + <ItemGroup> + <ProjectReference Include="..\Filtration.Common\Filtration.Common.csproj"> + <Project>{8cb44f28-2956-4c2a-9314-72727262edd4}</Project> + <Name>Filtration.Common</Name> + </ProjectReference> + <ProjectReference Include="..\Filtration.Interface\Filtration.Interface.csproj"> + <Project>{0f333344-7695-47b2-b0e6-172e4de74819}</Project> + <Name>Filtration.Interface</Name> + </ProjectReference> + <ProjectReference Include="..\Filtration.ObjectModel\Filtration.ObjectModel.csproj"> + <Project>{4aac3beb-1dc1-483e-9d11-0e9334e80227}</Project> + <Name>Filtration.ObjectModel</Name> + </ProjectReference> + <ProjectReference Include="..\Filtration.Parser.Interface\Filtration.Parser.Interface.csproj"> + <Project>{46383F20-02DF-48B4-B092-9088FA4ACD5A}</Project> + <Name>Filtration.Parser.Interface</Name> + </ProjectReference> + <ProjectReference Include="..\Filtration\Filtration.csproj"> + <Project>{55e0a34c-e039-43d7-a024-a4045401cdda}</Project> + <Name>Filtration</Name> + </ProjectReference> + </ItemGroup> + <ItemGroup> + <EmbeddedResource Include="Properties\Resources.resx"> + <Generator>ResXFileCodeGenerator</Generator> + <LastGenOutput>Resources.Designer.cs</LastGenOutput> + </EmbeddedResource> + </ItemGroup> + <ItemGroup> + <Service Include="{82A7F48D-3B50-4B1E-B82E-3ADA8210C358}" /> + </ItemGroup> + <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" /> <!-- To modify your build process, add your task inside one of the targets below and uncomment it. Other similar extension points exist, see Microsoft.Common.targets. <Target Name="BeforeBuild"> </Target> <Target Name="AfterBuild"> </Target> - --> + --> </Project> \ No newline at end of file diff --git a/Filtration.Tests/Services/TestStaticDataService.cs b/Filtration.Tests/Services/TestStaticDataService.cs deleted file mode 100644 index e1ddb3f..0000000 --- a/Filtration.Tests/Services/TestStaticDataService.cs +++ /dev/null @@ -1,44 +0,0 @@ -using Filtration.Common.Services; -using Filtration.Services; -using Moq; -using NUnit.Framework; - -namespace Filtration.Tests.Services -{ - [TestFixture] - public class TestStaticDataService - { - [Test] - public void Constructor_CallsFileSystemService() - { - // Arrange - - var mockFileSystemService = new Mock<IFileSystemService>(); - mockFileSystemService.Setup(f => f.ReadFileAsString(It.IsAny<string>())).Returns("TestResult").Verifiable(); - - var service = new StaticDataService(mockFileSystemService.Object); - - // Act - - // Assert - mockFileSystemService.Verify(); - } - - [Ignore("Integration Test")] - [Test] - public void Constructor_ReadsFromFileCorrectly() - { - // Arrange - - var fileSystemService = new FileSystemService(); - - var service = new StaticDataService(fileSystemService); - - // Act - - // Assert - - } - - } -} diff --git a/Filtration/Filtration.csproj b/Filtration/Filtration.csproj index 0c360f3..ad6f4ae 100644 --- a/Filtration/Filtration.csproj +++ b/Filtration/Filtration.csproj @@ -438,6 +438,7 @@ <DependentUpon>Settings.settings</DependentUpon> <DesignTimeSharedInput>True</DesignTimeSharedInput> </Compile> + <EmbeddedResource Include="Resources\ItemMods.txt" /> <Resource Include="Resources\loading_spinner.gif" /> <EmbeddedResource Include="Properties\Resources.resx"> <Generator>ResXFileCodeGenerator</Generator> diff --git a/Filtration/Properties/Resources.Designer.cs b/Filtration/Properties/Resources.Designer.cs index 94cfe04..a7da90f 100644 --- a/Filtration/Properties/Resources.Designer.cs +++ b/Filtration/Properties/Resources.Designer.cs @@ -225,34 +225,36 @@ namespace Filtration.Properties { } /// <summary> - /// Looks up a localized string similar to A Mother's Parting Gift - ///Abandoned Wealth - ///Aberrant Fossil - ///Abyssal Axe - ///Abyssal Cry - ///Abyssal Sceptre - ///Academy Map - ///Acid Lakes Map - ///Added Chaos Damage Support - ///Added Cold Damage Support - ///Added Fire Damage Support - ///Added Lightning Damage Support - ///Additional Accuracy Support - ///Aetheric Fossil - ///Agate Amulet - ///Albino Rhoa Feather - ///Alchemy Shard - ///Alder Spiked Shield - ///Alira's Amulet - ///Alleyways Map - ///Allflame - ///Alloyed Spiked Shield - ///Alteration Shard - ///Amber Amulet - ///Ambush Boots - ///Ambush Leaguestone - ///Ambush Mitts - ///Ambus [rest of string was truncated]";. + /// Looks up a localized string similar to A Mother's Parting Gift + ///Abandoned Wealth + ///Aberrant Fossil + ///Abyssal Axe + ///Abyssal Cry + ///Abyssal Sceptre + ///Academy Map + ///Acid Lakes Map + ///Added Chaos Damage Support + ///Added Cold Damage Support + ///Added Fire Damage Support + ///Added Lightning Damage Support + ///Additional Accuracy Support + ///Aetheric Fossil + ///Agate Amulet + ///Albino Rhoa Feather + ///Alchemy Shard + ///Alder Spiked Shield + ///Alira's Amulet + ///Alleyways Map + ///Allflame + ///Alloyed Spiked Shield + ///Alteration Shard + ///Amber Amulet + ///Ambush Boots + ///Ambush Leaguestone + ///Ambush Mitts + ///Ambusher + ///Amethyst Flask + ///Amethyst [rest of string was truncated]";. /// </summary> internal static string ItemBaseTypes { get { @@ -261,49 +263,53 @@ namespace Filtration.Properties { } /// <summary> - /// Looks up a localized string similar to Abyss Jewel - ///Active Skill Gems - ///Amulets - ///Axe - ///Belts - ///Body Armours - ///Boots - ///Bows - ///Claws - ///Currency - ///Daggers - ///Delve Socketable Currency - ///Divination Card - ///Fishing Rods - ///Flasks - ///Gems - ///Gloves - ///Helmets - ///Hybrid Flasks - ///Incursion Item - ///Jewel - ///Labyrinth Item - ///Labyrinth Map Item - ///Labyrinth Trinket - ///Large Relics - ///Leaguestone - ///Life Flasks - ///Mace - ///Mana Flasks - ///Map Fragments - ///Maps - ///Misc Map Items - ///One Hand Axes - ///One Hand Maces - ///One Hand Swords - ///Pantheon Soul - ///Piece - ///Quest Items - ///Quivers - ///Rings - ///Sceptres - ///Shields - ///Stackable [rest of string was truncated]";. + /// Looks up a localized string similar to Abyss Jewel + ///Active Skill Gems + ///Amulets + ///Axe + ///Belts + ///Body Armours + ///Boots + ///Bows + ///Claws + ///Currency + ///Daggers + ///Delve Socketable Currency + ///Divination Card + ///Fishing Rods + ///Flasks + ///Gems + ///Gloves + ///Helmets + ///Hybrid Flasks + ///Incursion Item + ///Jewel + ///Labyrinth Item + ///Labyrinth Map Item + ///Labyrinth Trinket + ///Large Relics + ///Leaguestone + ///Life Flasks + ///Mace + ///Mana Flasks + ///Map Fragments + ///Maps + ///Misc Map Items + ///One Hand Axes + ///One Hand Maces + ///One Hand Swords + ///Pantheon Soul + ///Piece + ///Quest Items + ///Quivers + ///Rings + ///Sceptres + ///Shields + ///Stackable Currency + ///Staves + ///Support Skill Gems + ///Sword + ///T [rest of string was truncated]";. /// </summary> internal static string ItemClasses { get { @@ -311,6 +317,71 @@ namespace Filtration.Properties { } } + /// <summary> + /// Looks up a localized string similar to Abbot's + ///Abhorrent + ///Acrobat's + ///Adept's + ///Agile + ///Alchemist's + ///Alluring + ///Alpine + ///Ample + ///Anarchic + ///Anarchist's + ///Annealed + ///Antagonist's + ///Apprentice's + ///Aqua + ///Archmage's + ///Arcing + ///Arctic + ///Armadillo's + ///Arming + ///Armoured + ///Athlete's + ///Avalanching + ///Avenger's + ///Azure + ///Bandit's + ///Barbed + ///Battlemage's + ///Beating + ///Beautiful + ///Beetle's + ///Beryl + ///Betrayer's + ///Bipedal + ///Biting + ///Bitter + ///Blasting + ///Blazing + ///Blistering + ///Bloodthirsty + ///Blue + ///Blunt + ///Blurred + ///Boggart's + ///Bolting + ///Brawler's + ///Breathtaking + ///Brinerot + ///Brutal + ///Bubbling + ///Burning + ///Burnished + ///Butterfly's + ///Buttressed + ///Buzzing + ///Calming + ///Capric [rest of string was truncated]";. + /// </summary> + internal static string ItemMods { + get { + return ResourceManager.GetString("ItemMods", resourceCulture); + } + } + /// <summary> /// Looks up a localized resource of type System.IO.UnmanagedMemoryStream similar to System.IO.MemoryStream. /// </summary> diff --git a/Filtration/Properties/Resources.resx b/Filtration/Properties/Resources.resx index 801da09..d07f3f7 100644 --- a/Filtration/Properties/Resources.resx +++ b/Filtration/Properties/Resources.resx @@ -208,4 +208,7 @@ <data name="ItemClasses" type="System.Resources.ResXFileRef, System.Windows.Forms"> <value>..\Resources\ItemClasses.txt;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;Windows-1252</value> </data> + <data name="ItemMods" type="System.Resources.ResXFileRef, System.Windows.Forms"> + <value>..\Resources\ItemMods.txt;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;Windows-1252</value> + </data> </root> \ No newline at end of file diff --git a/Filtration/Resources/ItemMods.txt b/Filtration/Resources/ItemMods.txt new file mode 100644 index 0000000..0a5f600 --- /dev/null +++ b/Filtration/Resources/ItemMods.txt @@ -0,0 +1,783 @@ +Abbot's +Abhorrent +Acrobat's +Adept's +Agile +Alchemist's +Alluring +Alpine +Ample +Anarchic +Anarchist's +Annealed +Antagonist's +Apprentice's +Aqua +Archmage's +Arcing +Arctic +Armadillo's +Arming +Armoured +Athlete's +Avalanching +Avenger's +Azure +Bandit's +Barbed +Battlemage's +Beating +Beautiful +Beetle's +Beryl +Betrayer's +Bipedal +Biting +Bitter +Blasting +Blazing +Blistering +Bloodthirsty +Blue +Blunt +Blurred +Boggart's +Bolting +Brawler's +Breathtaking +Brinerot +Brutal +Bubbling +Burning +Burnished +Butterfly's +Buttressed +Buzzing +Calming +Capricious +Captivating +Carapaced +Carved +Caster's +Catalysed +Catalyzing +Caustic +Cauterising +Cautious +Ceremonial +Cerulean +Chaining +Chalybeous +Champion's +Chanter's +Chaotic +Charged +Charging +Cheetah's +Chemist's +Chilled +Chilling +Citaqualotl's +Cleaving +Clouded +Cobalt +Combatant's +Conflagrating +Conqueror's +Corrupted +Coursing +Crab's +Crackling +Cremating +Crocodile's +Cruel +Cryomancer's +Cryomantic +Crystalline +Dancer's +Darkened +Dauntless +Dazzling +Deadly +Deafening +Deceiver's +Deflecting +Degenerative +Demonic +Devastating +Dictator's +Discharging +Dissipating +Djinn's +Dragon's +Dragonfly's +Duelist's +Eldritch +Electrocuting +Electromantic +Elephant's +Emanant +Emperor's +Empowered +Empowering +Encased +Energetic +Energising +Enlightened +Entombing +Enveloped +Ephemeral +Esh's +Ethereal +Evanescent +Evasive +Exarch's +Exemplary +Experimenter's +Exuberant +Fawn's +Fearless +Feasting +Fecund +Fencer's +Fencing +Feral +Fevered +Fierce +Filigree +Flame Spinner's +Flaming +Flanking +Flaring +Flawless +Flea's +Fleet +Fletcher's +Fortified +Freezing +Frigid +Frost Weaver's +Frosted +Frozen +Fuelling +Gazelle's +Gentian +Ghost's +Girded +Glaciated +Gladiator's +Gleaming +Glimmering +Glinting +Glittering +Glowing +Glyphic +Gremlin's +Grounded +Guatelitzi's +Hailing +Hale +Halting +Harming +Harmonic +Haunting +Healthy +Heated +Heavy +Hellion's +Hero's +Hexproof +Hexwarded +Hissing +Honed +Humming +Hummingbird's +Ibex's +Icy +Illusion's +Illusory +Impenetrable +Impervious +Impregnable +Incandescent +Incanter's +Incinerating +Incombustible +Incorporeal +Inculcated +Indomitable +Infernal +Infixed +Infused +Infusing +Ingrained +Inspirational +Inspired +Inspiring +Instilled +Interpermeated +Interpolated +Ionising +Jagged +Jinxing +Journeyman's +Judging +Lacquered +Lamprey's +Lava Caller's +Layered +Leadership +Legend's +Lethal +Lich's +Lively +Lobstered +Lunar +Mage's +Magician's +Magmatic +Magpie's +Malicious +Malignant +Mammoth's +Master's +Matatl's +Mazarine +Mercenary's +Merciless +Mirage's +Mirrored +Molten +Monk's +Mosquito's +Moth's +Multifarious +Mutewind +Muttering +Naga's +Nautilus's +Necromancer's +Nightmare's +Nihilist's +Occultist's +Opalescent +Otherworldly +Overlord's +Overpowering +Oyster's +Panicked +Paragon's +Parched +Parrying +Perandus' +Perpetual +Phantasm's +Phased +Piercing +Pirate's +Pixie's +Plated +Polar +Polished +Prime +Prior's +Professor's +Protective +Pulsing +Puncturing +Punishing +Pyroclastic +Pyromantic +Quintessential +Radiating +Ram's +Rapturous +Razor-sharp +Reanimator's +Reaver's +Recovering +Redblade +Reinforced +Remora's +Resistant +Resolute +Resonant +Resonating +Resplendent +Rhino's +Ribbed +Ripping +Robust +Rotund +Runic +Runner's +Rupturing +Sabotage +Sanguine +Sapphire +Sapping +Saturated +Savage +Scholar's +Scintillating +Scorching +Scrapper's +Screaming +Searing +Seething +Seraphim's +Serene +Serrated +Shade's +Shadowy +Shaman's +Sharpened +Sharpshooter's +Shielding +Shimmering +Shining +Shocking +Shrieking +Sinister +Sizzling +Skeletal +Slicing +Slithering +Smiting +Smoking +Smouldering +Snapping +Snowy +Solar +Soldier's +Sorcerer's +Sparking +Spectre's +Spiny +Spirited +Splitting +Sprinter's +Squire's +Stallion's +Stalwart +Stout +Striking +Strong-Willed +Studded +Subterranean +Summoner's +Sundering +Surgeon's +Surging +Tacati's +Tainted +Technical +Tempered +Tempest King's +Thaumaturgist's +The Shaper's +Thickened +Thirsty +Thorny +Thunder Lord's +Thundering +Thwarting +Titan's +Topotante's +Trapping +Tul's +Turncoat's +Twinned +Tyrannical +Unassailable +Undead +Unfaltering +Unleashed +Unreal +Unstoppable +Unwavering +Unworldly +Urchin's +Vaal +Vampire's +Vaporous +Vicious +Victor's +Vigorous +Vile +Virile +Vivacious +Vivid +Volcanic +Volleying +Wailing +Warding +Warlock's +Warrior's +Wasp's +Weaponmaster's +Weeping +Whispering +Wicked +Winterbringer's +Wizard's +Wraith's +Wright's +Xopec's +Xoph's +Youthful +Zaffre +Zana's +of Absorption +of Abuse +of Acclaim +of Acclimatisation +of Accuracy +of Adamantite Skin +of Adaptation +of Adaption +of Adrenaline +of Amassment +of Anger +of Animation +of Annihilation +of Archaeology +of Archery +of Arcing +of Ashes +of Athletics +of Authority +of Balance +of Bameth +of Banishing +of Banishment +of Berserking +of Blasting +of Bleeding +of Blinding +of Bliss +of Bloodlines +of Burning +of Calamity +of Calm +of Celebration +of Champions +of Chilling +of Cinders +of Citaqualotl +of Coals +of Collecting +of Collision +of Combat +of Combusting +of Commanders +of Confidence +of Conflagrating +of Congealment +of Consumption +of Corundum Skin +of Crafting +of Craving +of Cunning +of Curing +of Dampening +of Darting +of Dazing +of Deadliness +of Delaying +of Demolishing +of Desecration +of Destruction +of Dexterity +of Disaster +of Discharge +of Dishonour +of Distraction +of Dousing +of Drought +of Ease +of Efficiency +of Elation +of Electricity +of Elemental Weakness +of Embers +of Enchanting +of Endurance +of Enfeeblement +of Entropy +of Ephij +of Euphoria +of Eviction +of Excavation +of Excitement +of Exile +of Expertise +of Exposure +of Expulsion +of Extinguishing +of Exuberance +of Fame +of Fending +of Ferocity +of Finesse +of Flames +of Flight +of Floe +of Focus +of Fog +of Fortitude +of Fracturing +of Freezing +of Frenzy +of Fury +of Gathering +of Giants +of Glaciation +of Gluttony +of Grandmastery +of Grounding +of Guarding +of Guatelitzi +of Haast +of Haemophilia +of Harm +of Havoc +of Haze +of Heat +of Hemomancy +of Hindering +of Hoarding +of Hordes +of Ice +of Immolation +of Impact +of Impotence +of Incision +of Infamy +of Instinct +of Insulating +of Insulation +of Intelligence +of Intercepting +of Ire +of Iron Skin +of Joy +of Legerdemain +of Light +of Lightning +of Lioneye +of Longevity +of Malevolence +of Malice +of Maneuvering +of Marshalling +of Mastery +of Matatl +of Menace +of Mending +of Miring +of Momentum +of Mysticism +of Needling +of Nimbleness +of Nirvana +of Nourishment +of Numbing +of Onslaught +of Opportunity +of Orchestration +of Order +of Osmosis +of Overflowing +of Penetrating +of Phasing +of Piercing +of Plunder +of Poisoning +of Potency +of Power +of Praxis +of Precision +of Preparation +of Prestidigitation +of Propulsion +of Puhuarte +of Radiance +of Rage +of Raiding +of Rallying +of Readiness +of Recovery +of Refilling +of Reflexes +of Regrowth +of Rejuvenation +of Rending +of Renown +of Resilience +of Resistance +of Restoration +of Retaliation +of Righteousness +of Rime +of Ruin +of Runes +of Rupturing +of Rust +of Savouring +of Shaping +of Shelter +of Shining +of Shocking +of Sin +of Sipping +of Skill +of Skirmishing +of Slamming +of Sleet +of Smothering +of Snow +of Soaring +of Sortilege +of Sparks +of Spellcraft +of Spirit +of Staggering +of Stasis +of Static +of Staunching +of Steadiness +of Steel Skin +of Stifling +of Stinging +of Stone Skin +of Strength +of Stunning +of Success +of Tacati +of Talent +of Taunting +of Temporal Chains +of Thick Skin +of Tolerance +of Toughness +of Training +of Triumph +of Tzteosh +of Unholy Might +of Unmaking +of Unwavering +of Vampirism +of Variegation +of Venom +of Vibrance +of Victory +of Vivaciousness +of Voltage +of Vulnerability +of Walling +of Warding +of Warming +of Weaponcraft +of Weight +of Wounding +of Zeal +of the Apocalypse +of the Apt +of the Assassin +of the Augur +of the Bear +of the Beast +of the Blur +of the Boxer +of the Brawler +of the Brute +of the Cloud +of the Clouds +of the Combatant +of the Comet +of the Crystal +of the Deadeye +of the Dragon +of the Drake +of the Elder +of the Elements +of the Falcon +of the Fox +of the Furnace +of the Galaxy +of the Gale +of the Genius +of the Gladiator +of the Gods +of the Godslayer +of the Goliath +of the Gorilla +of the Guardian +of the Hearth +of the Heavens +of the Hydra +of the Ice +of the Inferno +of the Infinite +of the Inquisitor +of the Inuit +of the Jaguar +of the Kaleidoscope +of the Kiln +of the Leopard +of the Leviathan +of the Lightning +of the Lion +of the Lizard +of the Lost +of the Lynx +of the Maelstrom +of the Magma +of the Marksman +of the Meteor +of the Mongoose +of the Multiverse +of the Newt +of the Panther +of the Penguin +of the Phantom +of the Philosopher +of the Phoenix +of the Polar Bear +of the Polymath +of the Prism +of the Prodigy +of the Pugilist +of the Pupil +of the Raider +of the Rainbow +of the Ranger +of the Sage +of the Salamander +of the Savant +of the Seal +of the Sky +of the Slayer +of the Sniper +of the Span +of the Squall +of the Starfish +of the Storm +of the Student +of the Tempest +of the Thunderhead +of the Titan +of the Troll +of the Underground +of the Universe +of the Virtuoso +of the Volcano +of the Wall +of the Walrus +of the Whelpling +of the Wind +of the Worthy +of the Wrestler +of the Yeti +of the Zephyr \ No newline at end of file diff --git a/Filtration/Services/StaticDataService.cs b/Filtration/Services/StaticDataService.cs index 8beb406..356e331 100644 --- a/Filtration/Services/StaticDataService.cs +++ b/Filtration/Services/StaticDataService.cs @@ -10,6 +10,7 @@ namespace Filtration.Services { IEnumerable<string> ItemBaseTypes { get; } IEnumerable<string> ItemClasses { get; } + IEnumerable<string> ItemMods { get; } } internal class StaticDataService : IStaticDataService @@ -23,10 +24,13 @@ namespace Filtration.Services public IEnumerable<string> ItemClasses { get; private set; } + public IEnumerable<string> ItemMods { 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(); } } } diff --git a/Filtration/UserControls/BlockItemControl.xaml b/Filtration/UserControls/BlockItemControl.xaml index e9c0ebf..6b04616 100644 --- a/Filtration/UserControls/BlockItemControl.xaml +++ b/Filtration/UserControls/BlockItemControl.xaml @@ -78,7 +78,7 @@ <!-- Explicit Mods Template --> <DataTemplate DataType="{x:Type blockItemTypes:HasExplicitModBlockItem}"> - <userControls:EditableListBoxControl Margin="5,5,5,5" ItemsSource="{Binding Items}" /> + <userControls:EditableListBoxControl Margin="5,5,5,5" ItemsSource="{Binding Items}" AutoCompleteItemsSource="{Binding ElementName=TopLevelGrid, Path=DataContext.AutocompleteItemMods}" /> </DataTemplate> <!-- Socket Groups Template --> diff --git a/Filtration/ViewModels/ItemFilterBlockViewModel.cs b/Filtration/ViewModels/ItemFilterBlockViewModel.cs index 8d87c52..211f6d1 100644 --- a/Filtration/ViewModels/ItemFilterBlockViewModel.cs +++ b/Filtration/ViewModels/ItemFilterBlockViewModel.cs @@ -162,6 +162,8 @@ namespace Filtration.ViewModels public IEnumerable<string> AutoCompleteItemBaseTypes => _staticDataService.ItemBaseTypes; + public IEnumerable<string> AutocompleteItemMods => _staticDataService.ItemMods; + public List<Type> BlockItemTypesAvailable => new List<Type> { typeof (ItemLevelBlockItem), @@ -352,7 +354,7 @@ namespace Filtration.ViewModels var replaceColorsWindow = new ReplaceColorsWindow { DataContext = _replaceColorsViewModel }; replaceColorsWindow.ShowDialog(); } - + private bool AddBlockItemAllowed(Type type) { var blockItem = (IItemFilterBlockItem)Activator.CreateInstance(type); @@ -636,7 +638,7 @@ namespace Filtration.ViewModels BlockGroups = new ObservableCollection<ItemFilterBlockGroup>(groupList); BlockGroupSuggestions = new ObservableCollection<string>(); - + foreach(var child in topGroup.ChildGroups) { if(!child.IsLeafNode) @@ -644,7 +646,7 @@ namespace Filtration.ViewModels BlockGroupSuggestions.Add(child.GroupName); } } - + RaisePropertyChanged(nameof(BlockGroups)); RaisePropertyChanged(nameof(BlockGroupSuggestions)); }