From 738415f10a854cb3c3e3df3e790fdaead71941d6 Mon Sep 17 00:00:00 2001 From: azakhi Date: Sun, 12 Aug 2018 11:15:45 +0300 Subject: [PATCH] Add ElderMap block type --- .../BackgroundColorBlockItem.cs | 2 +- .../BlockItemTypes/BaseTypeBlockItem.cs | 2 +- .../BlockItemTypes/BorderColorBlockItem.cs | 2 +- .../BlockItemTypes/ClassBlockItem.cs | 2 +- .../BlockItemTypes/DropLevelBlockItem.cs | 2 +- .../BlockItemTypes/ElderMapBlockItem.cs | 23 +++++++++++++++++++ .../BlockItemTypes/FontSizeBlockItem.cs | 2 +- .../BlockItemTypes/GemLevelBlockItem.cs | 2 +- .../BlockItemTypes/HasExplicitModBlockItem.cs | 2 +- .../BlockItemTypes/HeightBlockItem.cs | 2 +- .../BlockItemTypes/ItemLevelBlockItem.cs | 2 +- .../PositionalSoundBlockItem.cs | 2 +- .../BlockItemTypes/RarityBlockItem.cs | 2 +- .../BlockItemTypes/SocketGroupBlockItem.cs | 2 +- .../BlockItemTypes/SoundBlockItem.cs | 2 +- .../BlockItemTypes/StackSizeBlockItem.cs | 2 +- .../BlockItemTypes/TextColorBlockItem.cs | 2 +- .../BlockItemTypes/WidthBlockItem.cs | 2 +- .../Filtration.ObjectModel.csproj | 1 + .../Services/TestItemFilterBlockTranslator.cs | 23 +++++++++++++++++++ .../Services/ItemFilterBlockTranslator.cs | 5 ++++ .../ViewModels/ItemFilterBlockViewModel.cs | 1 + 22 files changed, 70 insertions(+), 17 deletions(-) create mode 100644 Filtration.ObjectModel/BlockItemTypes/ElderMapBlockItem.cs diff --git a/Filtration.ObjectModel/BlockItemTypes/BackgroundColorBlockItem.cs b/Filtration.ObjectModel/BlockItemTypes/BackgroundColorBlockItem.cs index 2e4bacd..3f3ea11 100644 --- a/Filtration.ObjectModel/BlockItemTypes/BackgroundColorBlockItem.cs +++ b/Filtration.ObjectModel/BlockItemTypes/BackgroundColorBlockItem.cs @@ -16,6 +16,6 @@ namespace Filtration.ObjectModel.BlockItemTypes public override string PrefixText => "SetBackgroundColor"; public override int MaximumAllowed => 1; public override string DisplayHeading => "Background Color"; - public override int SortOrder => 21; + public override int SortOrder => 22; } } diff --git a/Filtration.ObjectModel/BlockItemTypes/BaseTypeBlockItem.cs b/Filtration.ObjectModel/BlockItemTypes/BaseTypeBlockItem.cs index 3eb1bf0..e51188b 100644 --- a/Filtration.ObjectModel/BlockItemTypes/BaseTypeBlockItem.cs +++ b/Filtration.ObjectModel/BlockItemTypes/BaseTypeBlockItem.cs @@ -33,6 +33,6 @@ namespace Filtration.ObjectModel.BlockItemTypes public override Color SummaryBackgroundColor => Colors.MediumTurquoise; public override Color SummaryTextColor => Colors.Black; - public override int SortOrder => 18; + public override int SortOrder => 19; } } diff --git a/Filtration.ObjectModel/BlockItemTypes/BorderColorBlockItem.cs b/Filtration.ObjectModel/BlockItemTypes/BorderColorBlockItem.cs index d308521..842e37b 100644 --- a/Filtration.ObjectModel/BlockItemTypes/BorderColorBlockItem.cs +++ b/Filtration.ObjectModel/BlockItemTypes/BorderColorBlockItem.cs @@ -16,6 +16,6 @@ namespace Filtration.ObjectModel.BlockItemTypes public override string PrefixText => "SetBorderColor"; public override int MaximumAllowed => 1; public override string DisplayHeading => "Border Color"; - public override int SortOrder => 22; + public override int SortOrder => 23; } } diff --git a/Filtration.ObjectModel/BlockItemTypes/ClassBlockItem.cs b/Filtration.ObjectModel/BlockItemTypes/ClassBlockItem.cs index ef5d250..e46882c 100644 --- a/Filtration.ObjectModel/BlockItemTypes/ClassBlockItem.cs +++ b/Filtration.ObjectModel/BlockItemTypes/ClassBlockItem.cs @@ -33,6 +33,6 @@ namespace Filtration.ObjectModel.BlockItemTypes public override Color SummaryBackgroundColor => Colors.MediumSeaGreen; public override Color SummaryTextColor => Colors.White; - public override int SortOrder => 17; + public override int SortOrder => 18; } } diff --git a/Filtration.ObjectModel/BlockItemTypes/DropLevelBlockItem.cs b/Filtration.ObjectModel/BlockItemTypes/DropLevelBlockItem.cs index a9f77c7..a53108c 100644 --- a/Filtration.ObjectModel/BlockItemTypes/DropLevelBlockItem.cs +++ b/Filtration.ObjectModel/BlockItemTypes/DropLevelBlockItem.cs @@ -21,7 +21,7 @@ namespace Filtration.ObjectModel.BlockItemTypes public override string SummaryText => "Drop Level " + FilterPredicate; public override Color SummaryBackgroundColor => Colors.DodgerBlue; public override Color SummaryTextColor => Colors.White; - public override int SortOrder => 13; + public override int SortOrder => 14; public override int Minimum => 0; public override int Maximum => 100; } diff --git a/Filtration.ObjectModel/BlockItemTypes/ElderMapBlockItem.cs b/Filtration.ObjectModel/BlockItemTypes/ElderMapBlockItem.cs new file mode 100644 index 0000000..a98cf6a --- /dev/null +++ b/Filtration.ObjectModel/BlockItemTypes/ElderMapBlockItem.cs @@ -0,0 +1,23 @@ +using System.Windows.Media; +using Filtration.ObjectModel.BlockItemBaseTypes; + +namespace Filtration.ObjectModel.BlockItemTypes +{ + public sealed class ElderMapBlockItem : BooleanBlockItem + { + public ElderMapBlockItem() + { + } + + public ElderMapBlockItem(bool booleanValue) : base(booleanValue) + { + } + + public override string PrefixText => "ElderMap"; + public override string DisplayHeading => "Elder Map"; + public override Color SummaryBackgroundColor => Colors.DarkGoldenrod; + public override Color SummaryTextColor => Colors.White; + public override int SortOrder => 9; + + } +} diff --git a/Filtration.ObjectModel/BlockItemTypes/FontSizeBlockItem.cs b/Filtration.ObjectModel/BlockItemTypes/FontSizeBlockItem.cs index dcd47bf..2e3d9e0 100644 --- a/Filtration.ObjectModel/BlockItemTypes/FontSizeBlockItem.cs +++ b/Filtration.ObjectModel/BlockItemTypes/FontSizeBlockItem.cs @@ -16,7 +16,7 @@ namespace Filtration.ObjectModel.BlockItemTypes public override string PrefixText => "SetFontSize"; public override int MaximumAllowed => 1; public override string DisplayHeading => "Font Size"; - public override int SortOrder => 23; + public override int SortOrder => 24; public override int Minimum => 11; public override int Maximum => 45; } diff --git a/Filtration.ObjectModel/BlockItemTypes/GemLevelBlockItem.cs b/Filtration.ObjectModel/BlockItemTypes/GemLevelBlockItem.cs index 50f3f6e..35bc632 100644 --- a/Filtration.ObjectModel/BlockItemTypes/GemLevelBlockItem.cs +++ b/Filtration.ObjectModel/BlockItemTypes/GemLevelBlockItem.cs @@ -21,7 +21,7 @@ namespace Filtration.ObjectModel.BlockItemTypes public override string SummaryText => "Gem Level " + FilterPredicate; public override Color SummaryBackgroundColor => Colors.DarkSlateGray; public override Color SummaryTextColor => Colors.White; - public override int SortOrder => 14; + public override int SortOrder => 15; public override int Minimum => 0; public override int Maximum => 40; } diff --git a/Filtration.ObjectModel/BlockItemTypes/HasExplicitModBlockItem.cs b/Filtration.ObjectModel/BlockItemTypes/HasExplicitModBlockItem.cs index 363c571..9070f73 100644 --- a/Filtration.ObjectModel/BlockItemTypes/HasExplicitModBlockItem.cs +++ b/Filtration.ObjectModel/BlockItemTypes/HasExplicitModBlockItem.cs @@ -33,6 +33,6 @@ namespace Filtration.ObjectModel.BlockItemTypes public override Color SummaryBackgroundColor => Colors.MidnightBlue; public override Color SummaryTextColor => Colors.White; - public override int SortOrder => 19; + public override int SortOrder => 20; } } diff --git a/Filtration.ObjectModel/BlockItemTypes/HeightBlockItem.cs b/Filtration.ObjectModel/BlockItemTypes/HeightBlockItem.cs index cd06ae0..2f16a13 100644 --- a/Filtration.ObjectModel/BlockItemTypes/HeightBlockItem.cs +++ b/Filtration.ObjectModel/BlockItemTypes/HeightBlockItem.cs @@ -21,7 +21,7 @@ namespace Filtration.ObjectModel.BlockItemTypes public override string SummaryText => "Height " + FilterPredicate; public override Color SummaryBackgroundColor => Colors.LightBlue; public override Color SummaryTextColor => Colors.Black; - public override int SortOrder => 10; + public override int SortOrder => 11; public override int Minimum => 0; public override int Maximum => 6; } diff --git a/Filtration.ObjectModel/BlockItemTypes/ItemLevelBlockItem.cs b/Filtration.ObjectModel/BlockItemTypes/ItemLevelBlockItem.cs index ace3d69..638d6d2 100644 --- a/Filtration.ObjectModel/BlockItemTypes/ItemLevelBlockItem.cs +++ b/Filtration.ObjectModel/BlockItemTypes/ItemLevelBlockItem.cs @@ -20,7 +20,7 @@ namespace Filtration.ObjectModel.BlockItemTypes public override string SummaryText => "Item Level " + FilterPredicate; public override Color SummaryBackgroundColor => Colors.DarkSlateGray; public override Color SummaryTextColor => Colors.White; - public override int SortOrder => 12; + public override int SortOrder => 13; public override int Minimum => 0; public override int Maximum => 100; } diff --git a/Filtration.ObjectModel/BlockItemTypes/PositionalSoundBlockItem.cs b/Filtration.ObjectModel/BlockItemTypes/PositionalSoundBlockItem.cs index bccabb5..8c60200 100644 --- a/Filtration.ObjectModel/BlockItemTypes/PositionalSoundBlockItem.cs +++ b/Filtration.ObjectModel/BlockItemTypes/PositionalSoundBlockItem.cs @@ -17,6 +17,6 @@ namespace Filtration.ObjectModel.BlockItemTypes public override string PrefixText => "PlayAlertSoundPositional"; public override int MaximumAllowed => 1; public override string DisplayHeading => "Play Positional Alert Sound"; - public override int SortOrder => 25; + public override int SortOrder => 26; } } diff --git a/Filtration.ObjectModel/BlockItemTypes/RarityBlockItem.cs b/Filtration.ObjectModel/BlockItemTypes/RarityBlockItem.cs index eb9203a..da72e69 100644 --- a/Filtration.ObjectModel/BlockItemTypes/RarityBlockItem.cs +++ b/Filtration.ObjectModel/BlockItemTypes/RarityBlockItem.cs @@ -30,7 +30,7 @@ namespace Filtration.ObjectModel.BlockItemTypes ((ItemRarity) FilterPredicate.PredicateOperand).GetAttributeDescription(); public override Color SummaryBackgroundColor => Colors.LightCoral; public override Color SummaryTextColor => Colors.White; - public override int SortOrder => 16; + public override int SortOrder => 17; public override int Minimum => 0; public override int Maximum => (int)ItemRarity.Unique; } diff --git a/Filtration.ObjectModel/BlockItemTypes/SocketGroupBlockItem.cs b/Filtration.ObjectModel/BlockItemTypes/SocketGroupBlockItem.cs index 932d264..d654f34 100644 --- a/Filtration.ObjectModel/BlockItemTypes/SocketGroupBlockItem.cs +++ b/Filtration.ObjectModel/BlockItemTypes/SocketGroupBlockItem.cs @@ -39,7 +39,7 @@ namespace Filtration.ObjectModel.BlockItemTypes public override Color SummaryBackgroundColor => Colors.GhostWhite; public override Color SummaryTextColor => Colors.Black; - public override int SortOrder => 9; + public override int SortOrder => 10; private SocketColor StringToSocketColor(char socketColorString) { diff --git a/Filtration.ObjectModel/BlockItemTypes/SoundBlockItem.cs b/Filtration.ObjectModel/BlockItemTypes/SoundBlockItem.cs index bd1776f..4642047 100644 --- a/Filtration.ObjectModel/BlockItemTypes/SoundBlockItem.cs +++ b/Filtration.ObjectModel/BlockItemTypes/SoundBlockItem.cs @@ -17,6 +17,6 @@ namespace Filtration.ObjectModel.BlockItemTypes public override string PrefixText => "PlayAlertSound"; public override int MaximumAllowed => 1; public override string DisplayHeading => "Play Alert Sound"; - public override int SortOrder => 24; + public override int SortOrder => 25; } } diff --git a/Filtration.ObjectModel/BlockItemTypes/StackSizeBlockItem.cs b/Filtration.ObjectModel/BlockItemTypes/StackSizeBlockItem.cs index dc36b76..9b15ea1 100644 --- a/Filtration.ObjectModel/BlockItemTypes/StackSizeBlockItem.cs +++ b/Filtration.ObjectModel/BlockItemTypes/StackSizeBlockItem.cs @@ -21,7 +21,7 @@ namespace Filtration.ObjectModel.BlockItemTypes public override string SummaryText => "Stack Size " + FilterPredicate; public override Color SummaryBackgroundColor => Colors.DarkSlateGray; public override Color SummaryTextColor => Colors.White; - public override int SortOrder => 15; + public override int SortOrder => 16; public override int Minimum => 0; public override int Maximum => 1000; } diff --git a/Filtration.ObjectModel/BlockItemTypes/TextColorBlockItem.cs b/Filtration.ObjectModel/BlockItemTypes/TextColorBlockItem.cs index 2b7cc5d..3ac02c5 100644 --- a/Filtration.ObjectModel/BlockItemTypes/TextColorBlockItem.cs +++ b/Filtration.ObjectModel/BlockItemTypes/TextColorBlockItem.cs @@ -16,6 +16,6 @@ namespace Filtration.ObjectModel.BlockItemTypes public override string PrefixText => "SetTextColor"; public override int MaximumAllowed => 1; public override string DisplayHeading => "Text Color"; - public override int SortOrder => 20; + public override int SortOrder => 21; } } diff --git a/Filtration.ObjectModel/BlockItemTypes/WidthBlockItem.cs b/Filtration.ObjectModel/BlockItemTypes/WidthBlockItem.cs index b646547..0bb960d 100644 --- a/Filtration.ObjectModel/BlockItemTypes/WidthBlockItem.cs +++ b/Filtration.ObjectModel/BlockItemTypes/WidthBlockItem.cs @@ -21,7 +21,7 @@ namespace Filtration.ObjectModel.BlockItemTypes public override string SummaryText => "Width " + FilterPredicate; public override Color SummaryBackgroundColor => Colors.MediumPurple; public override Color SummaryTextColor => Colors.White; - public override int SortOrder => 11; + public override int SortOrder => 12; public override int Minimum => 0; public override int Maximum => 2; } diff --git a/Filtration.ObjectModel/Filtration.ObjectModel.csproj b/Filtration.ObjectModel/Filtration.ObjectModel.csproj index 81baa3b..72601b3 100644 --- a/Filtration.ObjectModel/Filtration.ObjectModel.csproj +++ b/Filtration.ObjectModel/Filtration.ObjectModel.csproj @@ -61,6 +61,7 @@ + diff --git a/Filtration.Parser.Tests/Services/TestItemFilterBlockTranslator.cs b/Filtration.Parser.Tests/Services/TestItemFilterBlockTranslator.cs index 70e5d06..2b73cd3 100644 --- a/Filtration.Parser.Tests/Services/TestItemFilterBlockTranslator.cs +++ b/Filtration.Parser.Tests/Services/TestItemFilterBlockTranslator.cs @@ -422,6 +422,23 @@ namespace Filtration.Parser.Tests.Services Assert.IsFalse(blockItem.BooleanValue); } + [Test] + public void TranslateStringToItemFilterBlock_ElderMap_ReturnsCorrectObject() + { + // Arrange + var inputString = "Show" + Environment.NewLine + + " ElderMap false"; + + // Act + var result = _testUtility.Translator.TranslateStringToItemFilterBlock(inputString, _testUtility.MockItemFilterScript); + + // Assert + + Assert.AreEqual(1, result.BlockItems.Count(b => b is ElderMapBlockItem)); + var blockItem = result.BlockItems.OfType().First(); + Assert.IsFalse(blockItem.BooleanValue); + } + [Test] public void TranslateStringToItemFilterBlock_Identified_ReturnsCorrectObject() { @@ -877,6 +894,7 @@ namespace Filtration.Parser.Tests.Services " ElderItem true" + Environment.NewLine + " ShaperItem False" + Environment.NewLine + " ShapedMap TRUE" + Environment.NewLine + + " ElderMap False" + Environment.NewLine + @" Class ""My Item Class"" AnotherClass ""AndAnotherClass""" + Environment.NewLine + @" BaseType MyBaseType ""Another BaseType""" + Environment.NewLine + @" HasExplicitMod MyMod ""Another Mod""" + Environment.NewLine + @@ -915,6 +933,9 @@ namespace Filtration.Parser.Tests.Services var shapedMapBlockItem = result.BlockItems.OfType().First(); Assert.IsTrue(shapedMapBlockItem.BooleanValue); + var elderMapBlockItem = result.BlockItems.OfType().First(); + Assert.IsFalse(elderMapBlockItem.BooleanValue); + var dropLevelblockItem = result.BlockItems.OfType().First(); Assert.AreEqual(FilterPredicateOperator.LessThan, dropLevelblockItem.FilterPredicate.PredicateOperator); Assert.AreEqual(70, dropLevelblockItem.FilterPredicate.PredicateOperand); @@ -1823,6 +1844,7 @@ namespace Filtration.Parser.Tests.Services " ElderItem True" + Environment.NewLine + " ShaperItem False" + Environment.NewLine + " ShapedMap True" + Environment.NewLine + + " ElderMap True" + Environment.NewLine + " Height <= 6" + Environment.NewLine + " Height >= 2" + Environment.NewLine + " Width = 3" + Environment.NewLine + @@ -1881,6 +1903,7 @@ namespace Filtration.Parser.Tests.Services _testUtility.TestBlock.BlockItems.Add(new ElderItemBlockItem(true)); _testUtility.TestBlock.BlockItems.Add(new ShaperItemBlockItem(false)); _testUtility.TestBlock.BlockItems.Add(new ShapedMapBlockItem(true)); + _testUtility.TestBlock.BlockItems.Add(new ElderMapBlockItem(true)); // Act var result = _testUtility.Translator.TranslateItemFilterBlockToString(_testUtility.TestBlock); diff --git a/Filtration.Parser/Services/ItemFilterBlockTranslator.cs b/Filtration.Parser/Services/ItemFilterBlockTranslator.cs index 5e30f47..81b4b17 100644 --- a/Filtration.Parser/Services/ItemFilterBlockTranslator.cs +++ b/Filtration.Parser/Services/ItemFilterBlockTranslator.cs @@ -281,6 +281,11 @@ namespace Filtration.Parser.Services AddStringListItemToBlockItems(block, trimmedLine); break; } + case "ElderMap": + { + AddBooleanItemToBlockItems(block, trimmedLine); + break; + } } } diff --git a/Filtration/ViewModels/ItemFilterBlockViewModel.cs b/Filtration/ViewModels/ItemFilterBlockViewModel.cs index 396190d..7aaca8e 100644 --- a/Filtration/ViewModels/ItemFilterBlockViewModel.cs +++ b/Filtration/ViewModels/ItemFilterBlockViewModel.cs @@ -160,6 +160,7 @@ namespace Filtration.ViewModels typeof (ElderItemBlockItem), typeof (ShaperItemBlockItem), typeof (ShapedMapBlockItem), + typeof (ElderMapBlockItem), typeof (GemLevelBlockItem), typeof (StackSizeBlockItem), typeof (HasExplicitModBlockItem)