Merge 2c4096ff2c37a464e861462934b787d356df1ddf into 52fc1f6bbc9d20fcd52e3ac6fee86c2a85b628e5
This commit is contained in:
commit
42af920026
@ -66,6 +66,9 @@
|
|||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<None Include="packages.config" />
|
<None Include="packages.config" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<Service Include="{82A7F48D-3B50-4B1E-B82E-3ADA8210C358}" />
|
||||||
|
</ItemGroup>
|
||||||
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
||||||
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
|
<!-- 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.
|
Other similar extension points exist, see Microsoft.Common.targets.
|
||||||
|
@ -16,6 +16,6 @@ namespace Filtration.ObjectModel.BlockItemTypes
|
|||||||
public override string PrefixText => "SetBackgroundColor";
|
public override string PrefixText => "SetBackgroundColor";
|
||||||
public override int MaximumAllowed => 1;
|
public override int MaximumAllowed => 1;
|
||||||
public override string DisplayHeading => "Background Color";
|
public override string DisplayHeading => "Background Color";
|
||||||
public override int SortOrder => 18;
|
public override int SortOrder => 22;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -33,6 +33,6 @@ namespace Filtration.ObjectModel.BlockItemTypes
|
|||||||
|
|
||||||
public override Color SummaryBackgroundColor => Colors.MediumTurquoise;
|
public override Color SummaryBackgroundColor => Colors.MediumTurquoise;
|
||||||
public override Color SummaryTextColor => Colors.Black;
|
public override Color SummaryTextColor => Colors.Black;
|
||||||
public override int SortOrder => 16;
|
public override int SortOrder => 19;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -16,6 +16,6 @@ namespace Filtration.ObjectModel.BlockItemTypes
|
|||||||
public override string PrefixText => "SetBorderColor";
|
public override string PrefixText => "SetBorderColor";
|
||||||
public override int MaximumAllowed => 1;
|
public override int MaximumAllowed => 1;
|
||||||
public override string DisplayHeading => "Border Color";
|
public override string DisplayHeading => "Border Color";
|
||||||
public override int SortOrder => 19;
|
public override int SortOrder => 23;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -33,6 +33,6 @@ namespace Filtration.ObjectModel.BlockItemTypes
|
|||||||
|
|
||||||
public override Color SummaryBackgroundColor => Colors.MediumSeaGreen;
|
public override Color SummaryBackgroundColor => Colors.MediumSeaGreen;
|
||||||
public override Color SummaryTextColor => Colors.White;
|
public override Color SummaryTextColor => Colors.White;
|
||||||
public override int SortOrder => 15;
|
public override int SortOrder => 18;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -0,0 +1,23 @@
|
|||||||
|
using System.Windows.Media;
|
||||||
|
using Filtration.ObjectModel.BlockItemBaseTypes;
|
||||||
|
|
||||||
|
namespace Filtration.ObjectModel.BlockItemTypes
|
||||||
|
{
|
||||||
|
public sealed class DisableDropSoundBlockItem : BooleanBlockItem, IAudioVisualBlockItem
|
||||||
|
{
|
||||||
|
public DisableDropSoundBlockItem()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
public DisableDropSoundBlockItem(bool booleanValue) : base(booleanValue)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
public override string PrefixText => "DisableDropSound";
|
||||||
|
public override string DisplayHeading => "Disable Drop Sound";
|
||||||
|
public override Color SummaryBackgroundColor => Colors.Transparent;
|
||||||
|
public override Color SummaryTextColor => Colors.Transparent;
|
||||||
|
public override int SortOrder => 27;
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
@ -21,7 +21,7 @@ namespace Filtration.ObjectModel.BlockItemTypes
|
|||||||
public override string SummaryText => "Drop Level " + FilterPredicate;
|
public override string SummaryText => "Drop Level " + FilterPredicate;
|
||||||
public override Color SummaryBackgroundColor => Colors.DodgerBlue;
|
public override Color SummaryBackgroundColor => Colors.DodgerBlue;
|
||||||
public override Color SummaryTextColor => Colors.White;
|
public override Color SummaryTextColor => Colors.White;
|
||||||
public override int SortOrder => 13;
|
public override int SortOrder => 14;
|
||||||
public override int Minimum => 0;
|
public override int Minimum => 0;
|
||||||
public override int Maximum => 100;
|
public override int Maximum => 100;
|
||||||
}
|
}
|
||||||
|
23
Filtration.ObjectModel/BlockItemTypes/ElderMapBlockItem.cs
Normal file
23
Filtration.ObjectModel/BlockItemTypes/ElderMapBlockItem.cs
Normal file
@ -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;
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
@ -16,7 +16,7 @@ namespace Filtration.ObjectModel.BlockItemTypes
|
|||||||
public override string PrefixText => "SetFontSize";
|
public override string PrefixText => "SetFontSize";
|
||||||
public override int MaximumAllowed => 1;
|
public override int MaximumAllowed => 1;
|
||||||
public override string DisplayHeading => "Font Size";
|
public override string DisplayHeading => "Font Size";
|
||||||
public override int SortOrder => 20;
|
public override int SortOrder => 24;
|
||||||
public override int Minimum => 11;
|
public override int Minimum => 11;
|
||||||
public override int Maximum => 45;
|
public override int Maximum => 45;
|
||||||
}
|
}
|
||||||
|
28
Filtration.ObjectModel/BlockItemTypes/GemLevelBlockItem.cs
Normal file
28
Filtration.ObjectModel/BlockItemTypes/GemLevelBlockItem.cs
Normal file
@ -0,0 +1,28 @@
|
|||||||
|
using System.Windows.Media;
|
||||||
|
using Filtration.ObjectModel.BlockItemBaseTypes;
|
||||||
|
using Filtration.ObjectModel.Enums;
|
||||||
|
|
||||||
|
namespace Filtration.ObjectModel.BlockItemTypes
|
||||||
|
{
|
||||||
|
public class GemLevelBlockItem : NumericFilterPredicateBlockItem
|
||||||
|
{
|
||||||
|
public GemLevelBlockItem()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
public GemLevelBlockItem(FilterPredicateOperator predicateOperator, int predicateOperand)
|
||||||
|
: base(predicateOperator, predicateOperand)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
public override string PrefixText => "GemLevel";
|
||||||
|
public override int MaximumAllowed => 2;
|
||||||
|
public override string DisplayHeading => "Gem Level";
|
||||||
|
public override string SummaryText => "Gem Level " + FilterPredicate;
|
||||||
|
public override Color SummaryBackgroundColor => Colors.DarkSlateGray;
|
||||||
|
public override Color SummaryTextColor => Colors.White;
|
||||||
|
public override int SortOrder => 15;
|
||||||
|
public override int Minimum => 0;
|
||||||
|
public override int Maximum => 40;
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,38 @@
|
|||||||
|
using System.Linq;
|
||||||
|
using System.Windows.Media;
|
||||||
|
using Filtration.ObjectModel.BlockItemBaseTypes;
|
||||||
|
|
||||||
|
namespace Filtration.ObjectModel.BlockItemTypes
|
||||||
|
{
|
||||||
|
public class HasExplicitModBlockItem : StringListBlockItem
|
||||||
|
{
|
||||||
|
public override string PrefixText => "HasExplicitMod";
|
||||||
|
public override int MaximumAllowed => 1;
|
||||||
|
public override string DisplayHeading => "Has Explicit Mod";
|
||||||
|
|
||||||
|
public override string SummaryText
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
if (Items.Count > 0 && Items.Count < 4)
|
||||||
|
{
|
||||||
|
return "Item Explicit Mods: " +
|
||||||
|
Items.Aggregate(string.Empty, (current, i) => current + i + ", ").TrimEnd(' ').TrimEnd(',');
|
||||||
|
}
|
||||||
|
if (Items.Count >= 4)
|
||||||
|
{
|
||||||
|
var remaining = Items.Count - 3;
|
||||||
|
return "Item Explicit Mods: " + Items.Take(3)
|
||||||
|
.Aggregate(string.Empty, (current, i) => current + i + ", ")
|
||||||
|
.TrimEnd(' ')
|
||||||
|
.TrimEnd(',') + " (+" + remaining + " more)";
|
||||||
|
}
|
||||||
|
return "Item Explicit Mods: (none)";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public override Color SummaryBackgroundColor => Colors.MidnightBlue;
|
||||||
|
public override Color SummaryTextColor => Colors.White;
|
||||||
|
public override int SortOrder => 20;
|
||||||
|
}
|
||||||
|
}
|
@ -21,7 +21,7 @@ namespace Filtration.ObjectModel.BlockItemTypes
|
|||||||
public override string SummaryText => "Height " + FilterPredicate;
|
public override string SummaryText => "Height " + FilterPredicate;
|
||||||
public override Color SummaryBackgroundColor => Colors.LightBlue;
|
public override Color SummaryBackgroundColor => Colors.LightBlue;
|
||||||
public override Color SummaryTextColor => Colors.Black;
|
public override Color SummaryTextColor => Colors.Black;
|
||||||
public override int SortOrder => 10;
|
public override int SortOrder => 11;
|
||||||
public override int Minimum => 0;
|
public override int Minimum => 0;
|
||||||
public override int Maximum => 6;
|
public override int Maximum => 6;
|
||||||
}
|
}
|
||||||
|
@ -20,7 +20,7 @@ namespace Filtration.ObjectModel.BlockItemTypes
|
|||||||
public override string SummaryText => "Item Level " + FilterPredicate;
|
public override string SummaryText => "Item Level " + FilterPredicate;
|
||||||
public override Color SummaryBackgroundColor => Colors.DarkSlateGray;
|
public override Color SummaryBackgroundColor => Colors.DarkSlateGray;
|
||||||
public override Color SummaryTextColor => Colors.White;
|
public override Color SummaryTextColor => Colors.White;
|
||||||
public override int SortOrder => 12;
|
public override int SortOrder => 13;
|
||||||
public override int Minimum => 0;
|
public override int Minimum => 0;
|
||||||
public override int Maximum => 100;
|
public override int Maximum => 100;
|
||||||
}
|
}
|
||||||
|
@ -17,6 +17,6 @@ namespace Filtration.ObjectModel.BlockItemTypes
|
|||||||
public override string PrefixText => "PlayAlertSoundPositional";
|
public override string PrefixText => "PlayAlertSoundPositional";
|
||||||
public override int MaximumAllowed => 1;
|
public override int MaximumAllowed => 1;
|
||||||
public override string DisplayHeading => "Play Positional Alert Sound";
|
public override string DisplayHeading => "Play Positional Alert Sound";
|
||||||
public override int SortOrder => 22;
|
public override int SortOrder => 26;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -30,7 +30,7 @@ namespace Filtration.ObjectModel.BlockItemTypes
|
|||||||
((ItemRarity) FilterPredicate.PredicateOperand).GetAttributeDescription();
|
((ItemRarity) FilterPredicate.PredicateOperand).GetAttributeDescription();
|
||||||
public override Color SummaryBackgroundColor => Colors.LightCoral;
|
public override Color SummaryBackgroundColor => Colors.LightCoral;
|
||||||
public override Color SummaryTextColor => Colors.White;
|
public override Color SummaryTextColor => Colors.White;
|
||||||
public override int SortOrder => 14;
|
public override int SortOrder => 17;
|
||||||
public override int Minimum => 0;
|
public override int Minimum => 0;
|
||||||
public override int Maximum => (int)ItemRarity.Unique;
|
public override int Maximum => (int)ItemRarity.Unique;
|
||||||
}
|
}
|
||||||
|
@ -39,7 +39,7 @@ namespace Filtration.ObjectModel.BlockItemTypes
|
|||||||
|
|
||||||
public override Color SummaryBackgroundColor => Colors.GhostWhite;
|
public override Color SummaryBackgroundColor => Colors.GhostWhite;
|
||||||
public override Color SummaryTextColor => Colors.Black;
|
public override Color SummaryTextColor => Colors.Black;
|
||||||
public override int SortOrder => 9;
|
public override int SortOrder => 10;
|
||||||
|
|
||||||
private SocketColor StringToSocketColor(char socketColorString)
|
private SocketColor StringToSocketColor(char socketColorString)
|
||||||
{
|
{
|
||||||
|
@ -17,6 +17,6 @@ namespace Filtration.ObjectModel.BlockItemTypes
|
|||||||
public override string PrefixText => "PlayAlertSound";
|
public override string PrefixText => "PlayAlertSound";
|
||||||
public override int MaximumAllowed => 1;
|
public override int MaximumAllowed => 1;
|
||||||
public override string DisplayHeading => "Play Alert Sound";
|
public override string DisplayHeading => "Play Alert Sound";
|
||||||
public override int SortOrder => 21;
|
public override int SortOrder => 25;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
28
Filtration.ObjectModel/BlockItemTypes/StackSizeBlockItem.cs
Normal file
28
Filtration.ObjectModel/BlockItemTypes/StackSizeBlockItem.cs
Normal file
@ -0,0 +1,28 @@
|
|||||||
|
using System.Windows.Media;
|
||||||
|
using Filtration.ObjectModel.BlockItemBaseTypes;
|
||||||
|
using Filtration.ObjectModel.Enums;
|
||||||
|
|
||||||
|
namespace Filtration.ObjectModel.BlockItemTypes
|
||||||
|
{
|
||||||
|
public class StackSizeBlockItem : NumericFilterPredicateBlockItem
|
||||||
|
{
|
||||||
|
public StackSizeBlockItem()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
public StackSizeBlockItem(FilterPredicateOperator predicateOperator, int predicateOperand)
|
||||||
|
: base(predicateOperator, predicateOperand)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
public override string PrefixText => "StackSize";
|
||||||
|
public override int MaximumAllowed => 2;
|
||||||
|
public override string DisplayHeading => "Stack Size";
|
||||||
|
public override string SummaryText => "Stack Size " + FilterPredicate;
|
||||||
|
public override Color SummaryBackgroundColor => Colors.DarkSlateGray;
|
||||||
|
public override Color SummaryTextColor => Colors.White;
|
||||||
|
public override int SortOrder => 16;
|
||||||
|
public override int Minimum => 0;
|
||||||
|
public override int Maximum => 1000;
|
||||||
|
}
|
||||||
|
}
|
@ -16,6 +16,6 @@ namespace Filtration.ObjectModel.BlockItemTypes
|
|||||||
public override string PrefixText => "SetTextColor";
|
public override string PrefixText => "SetTextColor";
|
||||||
public override int MaximumAllowed => 1;
|
public override int MaximumAllowed => 1;
|
||||||
public override string DisplayHeading => "Text Color";
|
public override string DisplayHeading => "Text Color";
|
||||||
public override int SortOrder => 17;
|
public override int SortOrder => 21;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -21,7 +21,7 @@ namespace Filtration.ObjectModel.BlockItemTypes
|
|||||||
public override string SummaryText => "Width " + FilterPredicate;
|
public override string SummaryText => "Width " + FilterPredicate;
|
||||||
public override Color SummaryBackgroundColor => Colors.MediumPurple;
|
public override Color SummaryBackgroundColor => Colors.MediumPurple;
|
||||||
public override Color SummaryTextColor => Colors.White;
|
public override Color SummaryTextColor => Colors.White;
|
||||||
public override int SortOrder => 11;
|
public override int SortOrder => 12;
|
||||||
public override int Minimum => 0;
|
public override int Minimum => 0;
|
||||||
public override int Maximum => 2;
|
public override int Maximum => 2;
|
||||||
}
|
}
|
||||||
|
@ -61,6 +61,10 @@
|
|||||||
<Compile Include="BlockItemTypes\BaseTypeBlockItem.cs" />
|
<Compile Include="BlockItemTypes\BaseTypeBlockItem.cs" />
|
||||||
<Compile Include="BlockItemTypes\BorderColorBlockItem.cs" />
|
<Compile Include="BlockItemTypes\BorderColorBlockItem.cs" />
|
||||||
<Compile Include="BlockItemTypes\ClassBlockItem.cs" />
|
<Compile Include="BlockItemTypes\ClassBlockItem.cs" />
|
||||||
|
<Compile Include="BlockItemTypes\DisableDropSoundBlockItem.cs" />
|
||||||
|
<Compile Include="BlockItemTypes\ElderMapBlockItem.cs" />
|
||||||
|
<Compile Include="BlockItemTypes\GemLevelBlockItem.cs" />
|
||||||
|
<Compile Include="BlockItemTypes\HasExplicitModBlockItem.cs" />
|
||||||
<Compile Include="BlockItemTypes\ShapedMapBlockItem.cs" />
|
<Compile Include="BlockItemTypes\ShapedMapBlockItem.cs" />
|
||||||
<Compile Include="BlockItemTypes\ShaperItemBlockItem.cs" />
|
<Compile Include="BlockItemTypes\ShaperItemBlockItem.cs" />
|
||||||
<Compile Include="BlockItemTypes\ElderItemBlockItem.cs" />
|
<Compile Include="BlockItemTypes\ElderItemBlockItem.cs" />
|
||||||
@ -77,6 +81,7 @@
|
|||||||
<Compile Include="BlockItemTypes\SocketsBlockItem.cs" />
|
<Compile Include="BlockItemTypes\SocketsBlockItem.cs" />
|
||||||
<Compile Include="BlockItemTypes\PositionalSoundBlockItem.cs" />
|
<Compile Include="BlockItemTypes\PositionalSoundBlockItem.cs" />
|
||||||
<Compile Include="BlockItemTypes\SoundBlockItem.cs" />
|
<Compile Include="BlockItemTypes\SoundBlockItem.cs" />
|
||||||
|
<Compile Include="BlockItemTypes\StackSizeBlockItem.cs" />
|
||||||
<Compile Include="BlockItemTypes\TextColorBlockItem.cs" />
|
<Compile Include="BlockItemTypes\TextColorBlockItem.cs" />
|
||||||
<Compile Include="BlockItemTypes\WidthBlockItem.cs" />
|
<Compile Include="BlockItemTypes\WidthBlockItem.cs" />
|
||||||
<Compile Include="Commands\CommandManager.cs" />
|
<Compile Include="Commands\CommandManager.cs" />
|
||||||
|
@ -318,6 +318,42 @@ namespace Filtration.Parser.Tests.Services
|
|||||||
Assert.AreEqual(FilterPredicateOperator.Equal, blockItem.FilterPredicate.PredicateOperator);
|
Assert.AreEqual(FilterPredicateOperator.Equal, blockItem.FilterPredicate.PredicateOperator);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[Test]
|
||||||
|
public void TranslateStringToItemFilterBlock_GemLevel_ReturnsCorrectObject()
|
||||||
|
{
|
||||||
|
// Arrange
|
||||||
|
var inputString = "Show" + Environment.NewLine +
|
||||||
|
" GemLevel = 20";
|
||||||
|
|
||||||
|
// Act
|
||||||
|
var result = _testUtility.Translator.TranslateStringToItemFilterBlock(inputString, _testUtility.MockItemFilterScript);
|
||||||
|
|
||||||
|
// Assert
|
||||||
|
|
||||||
|
Assert.AreEqual(1, result.BlockItems.Count(b => b is GemLevelBlockItem));
|
||||||
|
var blockItem = result.BlockItems.OfType<GemLevelBlockItem>().First();
|
||||||
|
Assert.AreEqual(20, blockItem.FilterPredicate.PredicateOperand);
|
||||||
|
Assert.AreEqual(FilterPredicateOperator.Equal, blockItem.FilterPredicate.PredicateOperator);
|
||||||
|
}
|
||||||
|
|
||||||
|
[Test]
|
||||||
|
public void TranslateStringToItemFilterBlock_StackSize_ReturnsCorrectObject()
|
||||||
|
{
|
||||||
|
// Arrange
|
||||||
|
var inputString = "Show" + Environment.NewLine +
|
||||||
|
" StackSize > 5";
|
||||||
|
|
||||||
|
// Act
|
||||||
|
var result = _testUtility.Translator.TranslateStringToItemFilterBlock(inputString, _testUtility.MockItemFilterScript);
|
||||||
|
|
||||||
|
// Assert
|
||||||
|
|
||||||
|
Assert.AreEqual(1, result.BlockItems.Count(b => b is StackSizeBlockItem));
|
||||||
|
var blockItem = result.BlockItems.OfType<StackSizeBlockItem>().First();
|
||||||
|
Assert.AreEqual(5, blockItem.FilterPredicate.PredicateOperand);
|
||||||
|
Assert.AreEqual(FilterPredicateOperator.GreaterThan, blockItem.FilterPredicate.PredicateOperator);
|
||||||
|
}
|
||||||
|
|
||||||
[Test]
|
[Test]
|
||||||
public void TranslateStringToItemFilterBlock_Corrupted_ReturnsCorrectObject()
|
public void TranslateStringToItemFilterBlock_Corrupted_ReturnsCorrectObject()
|
||||||
{
|
{
|
||||||
@ -386,6 +422,23 @@ namespace Filtration.Parser.Tests.Services
|
|||||||
Assert.IsFalse(blockItem.BooleanValue);
|
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<ElderMapBlockItem>().First();
|
||||||
|
Assert.IsFalse(blockItem.BooleanValue);
|
||||||
|
}
|
||||||
|
|
||||||
[Test]
|
[Test]
|
||||||
public void TranslateStringToItemFilterBlock_Identified_ReturnsCorrectObject()
|
public void TranslateStringToItemFilterBlock_Identified_ReturnsCorrectObject()
|
||||||
{
|
{
|
||||||
@ -494,6 +547,25 @@ namespace Filtration.Parser.Tests.Services
|
|||||||
Assert.Contains("Test BaseType 2", blockItem.Items);
|
Assert.Contains("Test BaseType 2", blockItem.Items);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[Test]
|
||||||
|
public void TranslateStringToItemFilterBlock_HasExplicitMod_ReturnsCorrectObject()
|
||||||
|
{
|
||||||
|
// Arrange
|
||||||
|
var inputString = "Show" + Environment.NewLine +
|
||||||
|
@" HasExplicitMod ""Test Mod 1"" ""TestOneWordModInQuotes"" TestOneWordModNotInQuotes ""Test Mod 2""";
|
||||||
|
|
||||||
|
// Act
|
||||||
|
var result = _testUtility.Translator.TranslateStringToItemFilterBlock(inputString, _testUtility.MockItemFilterScript);
|
||||||
|
|
||||||
|
// Assert
|
||||||
|
Assert.AreEqual(1, result.BlockItems.Count(b => b is HasExplicitModBlockItem));
|
||||||
|
var blockItem = result.BlockItems.OfType<HasExplicitModBlockItem>().First();
|
||||||
|
Assert.Contains("Test Mod 1", blockItem.Items);
|
||||||
|
Assert.Contains("TestOneWordModInQuotes", blockItem.Items);
|
||||||
|
Assert.Contains("TestOneWordModNotInQuotes", blockItem.Items);
|
||||||
|
Assert.Contains("Test Mod 2", blockItem.Items);
|
||||||
|
}
|
||||||
|
|
||||||
[Test]
|
[Test]
|
||||||
public void TranslateStringToItemFilterBlock_Sockets_ReturnsCorrectObject()
|
public void TranslateStringToItemFilterBlock_Sockets_ReturnsCorrectObject()
|
||||||
{
|
{
|
||||||
@ -803,6 +875,23 @@ namespace Filtration.Parser.Tests.Services
|
|||||||
Assert.AreEqual(95, blockItem.SecondValue);
|
Assert.AreEqual(95, blockItem.SecondValue);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[Test]
|
||||||
|
public void TranslateStringToItemFilterBlock_DisableDropSound_ReturnsCorrectObject()
|
||||||
|
{
|
||||||
|
// Arrange
|
||||||
|
var inputString = "Show" + Environment.NewLine +
|
||||||
|
" DisableDropSound True";
|
||||||
|
|
||||||
|
// Act
|
||||||
|
var result = _testUtility.Translator.TranslateStringToItemFilterBlock(inputString, _testUtility.MockItemFilterScript);
|
||||||
|
|
||||||
|
// Assert
|
||||||
|
|
||||||
|
Assert.AreEqual(1, result.BlockItems.Count(b => b is DisableDropSoundBlockItem));
|
||||||
|
var blockItem = result.BlockItems.OfType<DisableDropSoundBlockItem>().First();
|
||||||
|
Assert.IsTrue(blockItem.BooleanValue);
|
||||||
|
}
|
||||||
|
|
||||||
[Test]
|
[Test]
|
||||||
public void TranslateStringToItemFilterBlock_Everything_ReturnsCorrectObject()
|
public void TranslateStringToItemFilterBlock_Everything_ReturnsCorrectObject()
|
||||||
{
|
{
|
||||||
@ -813,6 +902,8 @@ namespace Filtration.Parser.Tests.Services
|
|||||||
"Show" + Environment.NewLine +
|
"Show" + Environment.NewLine +
|
||||||
" ItemLevel >= 50" + Environment.NewLine +
|
" ItemLevel >= 50" + Environment.NewLine +
|
||||||
" DropLevel < 70" + Environment.NewLine +
|
" DropLevel < 70" + Environment.NewLine +
|
||||||
|
" GemLevel = 20" + Environment.NewLine +
|
||||||
|
" StackSize > 2" + Environment.NewLine +
|
||||||
" Quality = 15" + Environment.NewLine +
|
" Quality = 15" + Environment.NewLine +
|
||||||
" Rarity <= Unique" + Environment.NewLine +
|
" Rarity <= Unique" + Environment.NewLine +
|
||||||
" Identified True" + Environment.NewLine +
|
" Identified True" + Environment.NewLine +
|
||||||
@ -820,8 +911,10 @@ namespace Filtration.Parser.Tests.Services
|
|||||||
" ElderItem true" + Environment.NewLine +
|
" ElderItem true" + Environment.NewLine +
|
||||||
" ShaperItem False" + Environment.NewLine +
|
" ShaperItem False" + Environment.NewLine +
|
||||||
" ShapedMap TRUE" + Environment.NewLine +
|
" ShapedMap TRUE" + Environment.NewLine +
|
||||||
|
" ElderMap False" + Environment.NewLine +
|
||||||
@" Class ""My Item Class"" AnotherClass ""AndAnotherClass""" + Environment.NewLine +
|
@" Class ""My Item Class"" AnotherClass ""AndAnotherClass""" + Environment.NewLine +
|
||||||
@" BaseType MyBaseType ""Another BaseType""" + Environment.NewLine +
|
@" BaseType MyBaseType ""Another BaseType""" + Environment.NewLine +
|
||||||
|
@" HasExplicitMod MyMod ""Another Mod""" + Environment.NewLine +
|
||||||
" JunkLine Let's ignore this one!" + Environment.NewLine +
|
" JunkLine Let's ignore this one!" + Environment.NewLine +
|
||||||
" #Quality Commented out quality line" + Environment.NewLine +
|
" #Quality Commented out quality line" + Environment.NewLine +
|
||||||
" Sockets >= 3" + Environment.NewLine +
|
" Sockets >= 3" + Environment.NewLine +
|
||||||
@ -831,7 +924,8 @@ namespace Filtration.Parser.Tests.Services
|
|||||||
" SetBackgroundColor 255 100 5" + Environment.NewLine +
|
" SetBackgroundColor 255 100 5" + Environment.NewLine +
|
||||||
" SetBorderColor 0 0 0" + Environment.NewLine +
|
" SetBorderColor 0 0 0" + Environment.NewLine +
|
||||||
" SetFontSize 50" + Environment.NewLine +
|
" SetFontSize 50" + Environment.NewLine +
|
||||||
" PlayAlertSound 3" + Environment.NewLine;
|
" PlayAlertSound 3" + Environment.NewLine +
|
||||||
|
" DisableDropSound False" + Environment.NewLine;
|
||||||
|
|
||||||
// Act
|
// Act
|
||||||
var result = _testUtility.Translator.TranslateStringToItemFilterBlock(inputString, _testUtility.MockItemFilterScript);
|
var result = _testUtility.Translator.TranslateStringToItemFilterBlock(inputString, _testUtility.MockItemFilterScript);
|
||||||
@ -857,10 +951,21 @@ namespace Filtration.Parser.Tests.Services
|
|||||||
var shapedMapBlockItem = result.BlockItems.OfType<ShapedMapBlockItem>().First();
|
var shapedMapBlockItem = result.BlockItems.OfType<ShapedMapBlockItem>().First();
|
||||||
Assert.IsTrue(shapedMapBlockItem.BooleanValue);
|
Assert.IsTrue(shapedMapBlockItem.BooleanValue);
|
||||||
|
|
||||||
|
var elderMapBlockItem = result.BlockItems.OfType<ElderMapBlockItem>().First();
|
||||||
|
Assert.IsFalse(elderMapBlockItem.BooleanValue);
|
||||||
|
|
||||||
var dropLevelblockItem = result.BlockItems.OfType<DropLevelBlockItem>().First();
|
var dropLevelblockItem = result.BlockItems.OfType<DropLevelBlockItem>().First();
|
||||||
Assert.AreEqual(FilterPredicateOperator.LessThan, dropLevelblockItem.FilterPredicate.PredicateOperator);
|
Assert.AreEqual(FilterPredicateOperator.LessThan, dropLevelblockItem.FilterPredicate.PredicateOperator);
|
||||||
Assert.AreEqual(70, dropLevelblockItem.FilterPredicate.PredicateOperand);
|
Assert.AreEqual(70, dropLevelblockItem.FilterPredicate.PredicateOperand);
|
||||||
|
|
||||||
|
var gemLevelBlockItem = result.BlockItems.OfType<GemLevelBlockItem>().First();
|
||||||
|
Assert.AreEqual(FilterPredicateOperator.Equal, gemLevelBlockItem.FilterPredicate.PredicateOperator);
|
||||||
|
Assert.AreEqual(20, gemLevelBlockItem.FilterPredicate.PredicateOperand);
|
||||||
|
|
||||||
|
var stackSizeBlockItem = result.BlockItems.OfType<StackSizeBlockItem>().First();
|
||||||
|
Assert.AreEqual(FilterPredicateOperator.GreaterThan, stackSizeBlockItem.FilterPredicate.PredicateOperator);
|
||||||
|
Assert.AreEqual(2, stackSizeBlockItem.FilterPredicate.PredicateOperand);
|
||||||
|
|
||||||
var qualityblockItem = result.BlockItems.OfType<QualityBlockItem>().First();
|
var qualityblockItem = result.BlockItems.OfType<QualityBlockItem>().First();
|
||||||
Assert.AreEqual(FilterPredicateOperator.Equal, qualityblockItem.FilterPredicate.PredicateOperator);
|
Assert.AreEqual(FilterPredicateOperator.Equal, qualityblockItem.FilterPredicate.PredicateOperator);
|
||||||
Assert.AreEqual(15, qualityblockItem.FilterPredicate.PredicateOperand);
|
Assert.AreEqual(15, qualityblockItem.FilterPredicate.PredicateOperand);
|
||||||
@ -880,6 +985,11 @@ namespace Filtration.Parser.Tests.Services
|
|||||||
Assert.Contains("MyBaseType", baseTypeblockItem.Items);
|
Assert.Contains("MyBaseType", baseTypeblockItem.Items);
|
||||||
Assert.Contains("Another BaseType", baseTypeblockItem.Items);
|
Assert.Contains("Another BaseType", baseTypeblockItem.Items);
|
||||||
|
|
||||||
|
var hasExplicitModBlockItem = result.BlockItems.OfType<HasExplicitModBlockItem>().First();
|
||||||
|
Assert.AreEqual(2, hasExplicitModBlockItem.Items.Count);
|
||||||
|
Assert.Contains("MyMod", hasExplicitModBlockItem.Items);
|
||||||
|
Assert.Contains("Another Mod", hasExplicitModBlockItem.Items);
|
||||||
|
|
||||||
var socketsblockItem = result.BlockItems.OfType<SocketsBlockItem>().First();
|
var socketsblockItem = result.BlockItems.OfType<SocketsBlockItem>().First();
|
||||||
Assert.AreEqual(FilterPredicateOperator.GreaterThanOrEqual, socketsblockItem.FilterPredicate.PredicateOperator);
|
Assert.AreEqual(FilterPredicateOperator.GreaterThanOrEqual, socketsblockItem.FilterPredicate.PredicateOperator);
|
||||||
Assert.AreEqual(3, socketsblockItem.FilterPredicate.PredicateOperand);
|
Assert.AreEqual(3, socketsblockItem.FilterPredicate.PredicateOperand);
|
||||||
@ -917,6 +1027,9 @@ namespace Filtration.Parser.Tests.Services
|
|||||||
var soundblockItem = result.BlockItems.OfType<SoundBlockItem>().First();
|
var soundblockItem = result.BlockItems.OfType<SoundBlockItem>().First();
|
||||||
Assert.AreEqual("3", soundblockItem.Value);
|
Assert.AreEqual("3", soundblockItem.Value);
|
||||||
Assert.AreEqual(79, soundblockItem.SecondValue);
|
Assert.AreEqual(79, soundblockItem.SecondValue);
|
||||||
|
|
||||||
|
var disableDropSoundBlockItem = result.BlockItems.OfType<DisableDropSoundBlockItem>().First();
|
||||||
|
Assert.IsFalse(disableDropSoundBlockItem.BooleanValue);
|
||||||
}
|
}
|
||||||
|
|
||||||
[Test]
|
[Test]
|
||||||
@ -1334,6 +1447,38 @@ namespace Filtration.Parser.Tests.Services
|
|||||||
Assert.AreEqual(expectedResult, result);
|
Assert.AreEqual(expectedResult, result);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[Test]
|
||||||
|
public void TranslateItemFilterBlockToString_GemLevel_ReturnsCorrectString()
|
||||||
|
{
|
||||||
|
// Arrange
|
||||||
|
var expectedResult = "Show" + Environment.NewLine +
|
||||||
|
" GemLevel <= 15";
|
||||||
|
|
||||||
|
_testUtility.TestBlock.BlockItems.Add(new GemLevelBlockItem(FilterPredicateOperator.LessThanOrEqual, 15));
|
||||||
|
|
||||||
|
// Act
|
||||||
|
var result = _testUtility.Translator.TranslateItemFilterBlockToString(_testUtility.TestBlock);
|
||||||
|
|
||||||
|
// Assert
|
||||||
|
Assert.AreEqual(expectedResult, result);
|
||||||
|
}
|
||||||
|
|
||||||
|
[Test]
|
||||||
|
public void TranslateItemFilterBlockToString_StackSize_ReturnsCorrectString()
|
||||||
|
{
|
||||||
|
// Arrange
|
||||||
|
var expectedResult = "Show" + Environment.NewLine +
|
||||||
|
" StackSize = 5";
|
||||||
|
|
||||||
|
_testUtility.TestBlock.BlockItems.Add(new StackSizeBlockItem(FilterPredicateOperator.Equal, 5));
|
||||||
|
|
||||||
|
// Act
|
||||||
|
var result = _testUtility.Translator.TranslateItemFilterBlockToString(_testUtility.TestBlock);
|
||||||
|
|
||||||
|
// Assert
|
||||||
|
Assert.AreEqual(expectedResult, result);
|
||||||
|
}
|
||||||
|
|
||||||
[Test]
|
[Test]
|
||||||
public void TranslateItemFilterBlockToString_Quality_ReturnsCorrectString()
|
public void TranslateItemFilterBlockToString_Quality_ReturnsCorrectString()
|
||||||
{
|
{
|
||||||
@ -1425,6 +1570,26 @@ namespace Filtration.Parser.Tests.Services
|
|||||||
Assert.AreEqual(expectedResult, result);
|
Assert.AreEqual(expectedResult, result);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[Test]
|
||||||
|
public void TranslateItemFilterBlockToString_HasExplicitMod_ReturnsCorrectString()
|
||||||
|
{
|
||||||
|
// Arrange
|
||||||
|
var expectedResult = "Show" + Environment.NewLine +
|
||||||
|
" HasExplicitMod \"Test Mod\" \"Another Mod\" \"Yet Another Mod\"";
|
||||||
|
|
||||||
|
var hasExplicitModBlockItem = new HasExplicitModBlockItem();
|
||||||
|
hasExplicitModBlockItem.Items.Add("Test Mod");
|
||||||
|
hasExplicitModBlockItem.Items.Add("Another Mod");
|
||||||
|
hasExplicitModBlockItem.Items.Add("Yet Another Mod");
|
||||||
|
_testUtility.TestBlock.BlockItems.Add(hasExplicitModBlockItem);
|
||||||
|
|
||||||
|
// Act
|
||||||
|
var result = _testUtility.Translator.TranslateItemFilterBlockToString(_testUtility.TestBlock);
|
||||||
|
|
||||||
|
// Assert
|
||||||
|
Assert.AreEqual(expectedResult, result);
|
||||||
|
}
|
||||||
|
|
||||||
[Test]
|
[Test]
|
||||||
public void TranslateItemFilterBlockToString_Sockets_ReturnsCorrectString()
|
public void TranslateItemFilterBlockToString_Sockets_ReturnsCorrectString()
|
||||||
{
|
{
|
||||||
@ -1700,20 +1865,25 @@ namespace Filtration.Parser.Tests.Services
|
|||||||
" ElderItem True" + Environment.NewLine +
|
" ElderItem True" + Environment.NewLine +
|
||||||
" ShaperItem False" + Environment.NewLine +
|
" ShaperItem False" + Environment.NewLine +
|
||||||
" ShapedMap True" + Environment.NewLine +
|
" ShapedMap True" + Environment.NewLine +
|
||||||
|
" ElderMap True" + Environment.NewLine +
|
||||||
" Height <= 6" + Environment.NewLine +
|
" Height <= 6" + Environment.NewLine +
|
||||||
" Height >= 2" + Environment.NewLine +
|
" Height >= 2" + Environment.NewLine +
|
||||||
" Width = 3" + Environment.NewLine +
|
" Width = 3" + Environment.NewLine +
|
||||||
" ItemLevel > 70" + Environment.NewLine +
|
" ItemLevel > 70" + Environment.NewLine +
|
||||||
" ItemLevel <= 85" + Environment.NewLine +
|
" ItemLevel <= 85" + Environment.NewLine +
|
||||||
" DropLevel > 56" + Environment.NewLine +
|
" DropLevel > 56" + Environment.NewLine +
|
||||||
|
" GemLevel < 15" + Environment.NewLine +
|
||||||
|
" StackSize >= 4" + Environment.NewLine +
|
||||||
" Rarity = Unique" + Environment.NewLine +
|
" Rarity = Unique" + Environment.NewLine +
|
||||||
" Class \"Body Armour\" \"Gloves\" \"Belt\" \"Two Hand Axes\"" + Environment.NewLine +
|
" Class \"Body Armour\" \"Gloves\" \"Belt\" \"Two Hand Axes\"" + Environment.NewLine +
|
||||||
" BaseType \"Greater Life Flask\" \"Simple Robe\" \"Full Wyrmscale\"" + Environment.NewLine +
|
" BaseType \"Greater Life Flask\" \"Simple Robe\" \"Full Wyrmscale\"" + Environment.NewLine +
|
||||||
|
" HasExplicitMod \"Guatelitzi's\" \"of Tacati\" \"Tyrannical\"" + Environment.NewLine +
|
||||||
" SetTextColor 255 89 0 56" + Environment.NewLine +
|
" SetTextColor 255 89 0 56" + Environment.NewLine +
|
||||||
" SetBackgroundColor 0 0 0" + Environment.NewLine +
|
" SetBackgroundColor 0 0 0" + Environment.NewLine +
|
||||||
" SetBorderColor 255 1 254" + Environment.NewLine +
|
" SetBorderColor 255 1 254" + Environment.NewLine +
|
||||||
" SetFontSize 50" + Environment.NewLine +
|
" SetFontSize 50" + Environment.NewLine +
|
||||||
" PlayAlertSound 6 90";
|
" PlayAlertSound 6 90" + Environment.NewLine +
|
||||||
|
" DisableDropSound True";
|
||||||
|
|
||||||
_testUtility.TestBlock.BlockItems.Add(new ActionBlockItem(BlockAction.Show));
|
_testUtility.TestBlock.BlockItems.Add(new ActionBlockItem(BlockAction.Show));
|
||||||
_testUtility.TestBlock.BlockItems.Add(new IdentifiedBlockItem(true));
|
_testUtility.TestBlock.BlockItems.Add(new IdentifiedBlockItem(true));
|
||||||
@ -1722,6 +1892,8 @@ namespace Filtration.Parser.Tests.Services
|
|||||||
_testUtility.TestBlock.BlockItems.Add(new ItemLevelBlockItem(FilterPredicateOperator.GreaterThan, 70));
|
_testUtility.TestBlock.BlockItems.Add(new ItemLevelBlockItem(FilterPredicateOperator.GreaterThan, 70));
|
||||||
_testUtility.TestBlock.BlockItems.Add(new ItemLevelBlockItem(FilterPredicateOperator.LessThanOrEqual, 85));
|
_testUtility.TestBlock.BlockItems.Add(new ItemLevelBlockItem(FilterPredicateOperator.LessThanOrEqual, 85));
|
||||||
_testUtility.TestBlock.BlockItems.Add(new DropLevelBlockItem(FilterPredicateOperator.GreaterThan, 56));
|
_testUtility.TestBlock.BlockItems.Add(new DropLevelBlockItem(FilterPredicateOperator.GreaterThan, 56));
|
||||||
|
_testUtility.TestBlock.BlockItems.Add(new GemLevelBlockItem(FilterPredicateOperator.LessThan, 15));
|
||||||
|
_testUtility.TestBlock.BlockItems.Add(new StackSizeBlockItem(FilterPredicateOperator.GreaterThanOrEqual, 4));
|
||||||
_testUtility.TestBlock.BlockItems.Add(new QualityBlockItem(FilterPredicateOperator.GreaterThan, 2));
|
_testUtility.TestBlock.BlockItems.Add(new QualityBlockItem(FilterPredicateOperator.GreaterThan, 2));
|
||||||
_testUtility.TestBlock.BlockItems.Add(new RarityBlockItem(FilterPredicateOperator.Equal, (int)ItemRarity.Unique));
|
_testUtility.TestBlock.BlockItems.Add(new RarityBlockItem(FilterPredicateOperator.Equal, (int)ItemRarity.Unique));
|
||||||
var classItemblockItem = new ClassBlockItem();
|
var classItemblockItem = new ClassBlockItem();
|
||||||
@ -1735,6 +1907,11 @@ namespace Filtration.Parser.Tests.Services
|
|||||||
baseTypeItemblockItem.Items.Add("Simple Robe");
|
baseTypeItemblockItem.Items.Add("Simple Robe");
|
||||||
baseTypeItemblockItem.Items.Add("Full Wyrmscale");
|
baseTypeItemblockItem.Items.Add("Full Wyrmscale");
|
||||||
_testUtility.TestBlock.BlockItems.Add(baseTypeItemblockItem);
|
_testUtility.TestBlock.BlockItems.Add(baseTypeItemblockItem);
|
||||||
|
var hasExplicitModBlockItem = new HasExplicitModBlockItem();
|
||||||
|
hasExplicitModBlockItem.Items.Add("Guatelitzi's");
|
||||||
|
hasExplicitModBlockItem.Items.Add("of Tacati");
|
||||||
|
hasExplicitModBlockItem.Items.Add("Tyrannical");
|
||||||
|
_testUtility.TestBlock.BlockItems.Add(hasExplicitModBlockItem);
|
||||||
_testUtility.TestBlock.BlockItems.Add(new SocketsBlockItem(FilterPredicateOperator.LessThanOrEqual, 6));
|
_testUtility.TestBlock.BlockItems.Add(new SocketsBlockItem(FilterPredicateOperator.LessThanOrEqual, 6));
|
||||||
_testUtility.TestBlock.BlockItems.Add(new LinkedSocketsBlockItem(FilterPredicateOperator.GreaterThanOrEqual, 4));
|
_testUtility.TestBlock.BlockItems.Add(new LinkedSocketsBlockItem(FilterPredicateOperator.GreaterThanOrEqual, 4));
|
||||||
_testUtility.TestBlock.BlockItems.Add(new WidthBlockItem(FilterPredicateOperator.Equal, 3));
|
_testUtility.TestBlock.BlockItems.Add(new WidthBlockItem(FilterPredicateOperator.Equal, 3));
|
||||||
@ -1748,6 +1925,8 @@ namespace Filtration.Parser.Tests.Services
|
|||||||
_testUtility.TestBlock.BlockItems.Add(new ElderItemBlockItem(true));
|
_testUtility.TestBlock.BlockItems.Add(new ElderItemBlockItem(true));
|
||||||
_testUtility.TestBlock.BlockItems.Add(new ShaperItemBlockItem(false));
|
_testUtility.TestBlock.BlockItems.Add(new ShaperItemBlockItem(false));
|
||||||
_testUtility.TestBlock.BlockItems.Add(new ShapedMapBlockItem(true));
|
_testUtility.TestBlock.BlockItems.Add(new ShapedMapBlockItem(true));
|
||||||
|
_testUtility.TestBlock.BlockItems.Add(new ElderMapBlockItem(true));
|
||||||
|
_testUtility.TestBlock.BlockItems.Add(new DisableDropSoundBlockItem(true));
|
||||||
|
|
||||||
// Act
|
// Act
|
||||||
var result = _testUtility.Translator.TranslateItemFilterBlockToString(_testUtility.TestBlock);
|
var result = _testUtility.Translator.TranslateItemFilterBlockToString(_testUtility.TestBlock);
|
||||||
|
@ -155,7 +155,7 @@ namespace Filtration.Parser.Tests.Services
|
|||||||
script.ItemFilterBlocks.Add(block1);
|
script.ItemFilterBlocks.Add(block1);
|
||||||
script.ItemFilterBlocks.Add(block2);
|
script.ItemFilterBlocks.Add(block2);
|
||||||
|
|
||||||
var expectedOutput = "# Script edited with Filtration - https://github.com/ben-wallis/Filtration" + Environment.NewLine +
|
var expectedOutput = "# Script edited with Filtration - https://github.com/ben-wallis/Filtration" + Environment.NewLine + Environment.NewLine +
|
||||||
"# Test Filter 1" + Environment.NewLine +
|
"# Test Filter 1" + Environment.NewLine +
|
||||||
"Show" + Environment.NewLine +
|
"Show" + Environment.NewLine +
|
||||||
" ItemLevel > 5" + Environment.NewLine +
|
" ItemLevel > 5" + Environment.NewLine +
|
||||||
|
@ -266,6 +266,34 @@ namespace Filtration.Parser.Services
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
case "GemLevel":
|
||||||
|
{
|
||||||
|
AddNumericFilterPredicateItemToBlockItems<GemLevelBlockItem>(block, trimmedLine);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case "StackSize":
|
||||||
|
{
|
||||||
|
AddNumericFilterPredicateItemToBlockItems<StackSizeBlockItem>(block, trimmedLine);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case "HasExplicitMod":
|
||||||
|
{
|
||||||
|
AddStringListItemToBlockItems<HasExplicitModBlockItem>(block, trimmedLine);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case "ElderMap":
|
||||||
|
{
|
||||||
|
AddBooleanItemToBlockItems<ElderMapBlockItem>(block, trimmedLine);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case "DisableDropSound":
|
||||||
|
{
|
||||||
|
// Only ever use the last DisableDropSound item encountered as multiples aren't valid.
|
||||||
|
RemoveExistingBlockItemsOfType<DisableDropSoundBlockItem>(block);
|
||||||
|
|
||||||
|
AddBooleanItemToBlockItems<DisableDropSoundBlockItem>(block, trimmedLine);
|
||||||
|
break;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -251,8 +251,8 @@ namespace Filtration.Parser.Services
|
|||||||
outputString += "# " + line + Environment.NewLine;
|
outputString += "# " + line + Environment.NewLine;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
outputString += Environment.NewLine;
|
|
||||||
}
|
}
|
||||||
|
outputString += Environment.NewLine;
|
||||||
|
|
||||||
// ReSharper disable once LoopCanBeConvertedToQuery
|
// ReSharper disable once LoopCanBeConvertedToQuery
|
||||||
foreach (var block in script.ItemFilterBlocks)
|
foreach (var block in script.ItemFilterBlocks)
|
||||||
|
@ -107,6 +107,9 @@
|
|||||||
<LastGenOutput>Resources.Designer.cs</LastGenOutput>
|
<LastGenOutput>Resources.Designer.cs</LastGenOutput>
|
||||||
</EmbeddedResource>
|
</EmbeddedResource>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<Service Include="{82A7F48D-3B50-4B1E-B82E-3ADA8210C358}" />
|
||||||
|
</ItemGroup>
|
||||||
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
||||||
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
|
<!-- 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.
|
Other similar extension points exist, see Microsoft.Common.targets.
|
||||||
|
@ -73,6 +73,9 @@
|
|||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<None Include="packages.config" />
|
<None Include="packages.config" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<Service Include="{82A7F48D-3B50-4B1E-B82E-3ADA8210C358}" />
|
||||||
|
</ItemGroup>
|
||||||
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
||||||
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
|
<!-- 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.
|
Other similar extension points exist, see Microsoft.Common.targets.
|
||||||
|
@ -114,6 +114,7 @@ Bear Trap
|
|||||||
Behemoth Mace
|
Behemoth Mace
|
||||||
Belfry Map
|
Belfry Map
|
||||||
Bestel's Manuscript
|
Bestel's Manuscript
|
||||||
|
Bestiary Orb
|
||||||
Beyond Leaguestone
|
Beyond Leaguestone
|
||||||
Binding Shard
|
Binding Shard
|
||||||
Birth of the Three
|
Birth of the Three
|
||||||
@ -131,6 +132,7 @@ Blast Rain
|
|||||||
Blessed Orb
|
Blessed Orb
|
||||||
Blessing of Chayula
|
Blessing of Chayula
|
||||||
Blessing of Esh
|
Blessing of Esh
|
||||||
|
Blessing of God
|
||||||
Blessing of Tul
|
Blessing of Tul
|
||||||
Blessing of Uul-Netol
|
Blessing of Uul-Netol
|
||||||
Blessing of Xoph
|
Blessing of Xoph
|
||||||
@ -244,6 +246,7 @@ Chaos Orb
|
|||||||
Chaos Shard
|
Chaos Shard
|
||||||
Chaotic Disposition
|
Chaotic Disposition
|
||||||
Charged Dash
|
Charged Dash
|
||||||
|
Charged Traps Support
|
||||||
Chateau Map
|
Chateau Map
|
||||||
Chayula's Breachstone
|
Chayula's Breachstone
|
||||||
Chest Splitter
|
Chest Splitter
|
||||||
@ -492,6 +495,7 @@ Exalted Orb
|
|||||||
Exalted Shard
|
Exalted Shard
|
||||||
Excavation Map
|
Excavation Map
|
||||||
Explosive Arrow
|
Explosive Arrow
|
||||||
|
Explosive Trap
|
||||||
Exquisite Blade
|
Exquisite Blade
|
||||||
Exquisite Leather
|
Exquisite Leather
|
||||||
Eye Gouger
|
Eye Gouger
|
||||||
@ -531,8 +535,10 @@ Flame Dash
|
|||||||
Flame Surge
|
Flame Surge
|
||||||
Flame Totem
|
Flame Totem
|
||||||
Flameblast
|
Flameblast
|
||||||
|
Flamethrower Trap
|
||||||
Flammability
|
Flammability
|
||||||
Flanged Mace
|
Flanged Mace
|
||||||
|
Flashpowder Keg
|
||||||
Flaying Knife
|
Flaying Knife
|
||||||
Flesh Offering
|
Flesh Offering
|
||||||
Fleshripper
|
Fleshripper
|
||||||
@ -540,6 +546,7 @@ Flicker Strike
|
|||||||
Flooded Mine Map
|
Flooded Mine Map
|
||||||
Fluted Bascinet
|
Fluted Bascinet
|
||||||
Footman Sword
|
Footman Sword
|
||||||
|
Forbidden Power
|
||||||
Forge of the Phoenix Map
|
Forge of the Phoenix Map
|
||||||
Fork Support
|
Fork Support
|
||||||
Fortify Support
|
Fortify Support
|
||||||
@ -654,6 +661,7 @@ Harbinger's Orb
|
|||||||
Harbinger's Shard
|
Harbinger's Shard
|
||||||
Harlequin Mask
|
Harlequin Mask
|
||||||
Harmonic Spirit Shield
|
Harmonic Spirit Shield
|
||||||
|
Harmony of Souls
|
||||||
Harpy Rapier
|
Harpy Rapier
|
||||||
Haste
|
Haste
|
||||||
Hatred
|
Hatred
|
||||||
@ -705,6 +713,7 @@ Ignite Proliferation Support
|
|||||||
Imbued Wand
|
Imbued Wand
|
||||||
Immolate Support
|
Immolate Support
|
||||||
Immortal Call
|
Immortal Call
|
||||||
|
Immortal Resolve
|
||||||
Imp Dagger
|
Imp Dagger
|
||||||
Imperial Bow
|
Imperial Bow
|
||||||
Imperial Buckler
|
Imperial Buckler
|
||||||
@ -712,6 +721,7 @@ Imperial Claw
|
|||||||
Imperial Maul
|
Imperial Maul
|
||||||
Imperial Skean
|
Imperial Skean
|
||||||
Imperial Staff
|
Imperial Staff
|
||||||
|
Imprinted Bestiary Orb
|
||||||
Incinerate
|
Incinerate
|
||||||
Increased Area of Effect Support
|
Increased Area of Effect Support
|
||||||
Increased Critical Damage Support
|
Increased Critical Damage Support
|
||||||
@ -813,6 +823,7 @@ Light Quiver
|
|||||||
Lighthouse Map
|
Lighthouse Map
|
||||||
Lightning Arrow
|
Lightning Arrow
|
||||||
Lightning Penetration Support
|
Lightning Penetration Support
|
||||||
|
Lightning Spire Trap
|
||||||
Lightning Strike
|
Lightning Strike
|
||||||
Lightning Tendrils
|
Lightning Tendrils
|
||||||
Lightning Trap
|
Lightning Trap
|
||||||
@ -923,6 +934,7 @@ Muttering Essence of Woe
|
|||||||
Nailed Fist
|
Nailed Fist
|
||||||
Necromancer Circlet
|
Necromancer Circlet
|
||||||
Necromancer Silks
|
Necromancer Silks
|
||||||
|
Necromancy Net
|
||||||
Necropolis Map
|
Necropolis Map
|
||||||
Nemesis Leaguestone
|
Nemesis Leaguestone
|
||||||
Nightmare Bascinet
|
Nightmare Bascinet
|
||||||
@ -983,6 +995,7 @@ Penetrating Arrow Quiver
|
|||||||
Peninsula Map
|
Peninsula Map
|
||||||
Perandus Coin
|
Perandus Coin
|
||||||
Perandus Leaguestone
|
Perandus Leaguestone
|
||||||
|
Perfection
|
||||||
Pernarch
|
Pernarch
|
||||||
Petrified Club
|
Petrified Club
|
||||||
Phantasmagoria Map
|
Phantasmagoria Map
|
||||||
@ -1082,7 +1095,10 @@ Regal Orb
|
|||||||
Regal Shard
|
Regal Shard
|
||||||
Regicide Mask
|
Regicide Mask
|
||||||
Reinforced Greaves
|
Reinforced Greaves
|
||||||
|
Reinforced Iron Net
|
||||||
Reinforced Kite Shield
|
Reinforced Kite Shield
|
||||||
|
Reinforced Rope Net
|
||||||
|
Reinforced Steel Net
|
||||||
Reinforced Tower Shield
|
Reinforced Tower Shield
|
||||||
Rejuvenation Totem
|
Rejuvenation Totem
|
||||||
Relic Chambers Map
|
Relic Chambers Map
|
||||||
@ -1185,6 +1201,7 @@ Scroll of Wisdom
|
|||||||
Searching Eye Jewel
|
Searching Eye Jewel
|
||||||
Searing Bond
|
Searing Bond
|
||||||
Secutor Helm
|
Secutor Helm
|
||||||
|
Seismic Trap
|
||||||
Sekhem
|
Sekhem
|
||||||
Sekhema Feather
|
Sekhema Feather
|
||||||
Sentinel Jacket
|
Sentinel Jacket
|
||||||
@ -1264,8 +1281,12 @@ Silver Coin
|
|||||||
Silver Flask
|
Silver Flask
|
||||||
Silver Key
|
Silver Key
|
||||||
Silver Locket
|
Silver Locket
|
||||||
|
Simple Iron Net
|
||||||
Simple Robe
|
Simple Robe
|
||||||
|
Simple Rope Net
|
||||||
|
Simple Steel Net
|
||||||
Sinner Tricorne
|
Sinner Tricorne
|
||||||
|
Siphoning Trap
|
||||||
Skean
|
Skean
|
||||||
Skinning Knife
|
Skinning Knife
|
||||||
Slaughter Knife
|
Slaughter Knife
|
||||||
@ -1292,6 +1313,7 @@ Sovereign Spiked Shield
|
|||||||
Spark
|
Spark
|
||||||
Sparkling Claw
|
Sparkling Claw
|
||||||
Spectral Axe
|
Spectral Axe
|
||||||
|
Spectral Shield Throw
|
||||||
Spectral Sword
|
Spectral Sword
|
||||||
Spectral Throw
|
Spectral Throw
|
||||||
Spell Cascade Support
|
Spell Cascade Support
|
||||||
@ -1341,6 +1363,7 @@ Stibnite Flask
|
|||||||
Stiletto
|
Stiletto
|
||||||
Stone Axe
|
Stone Axe
|
||||||
Stone Hammer
|
Stone Hammer
|
||||||
|
Stone of Passage
|
||||||
Storm Barrier Support
|
Storm Barrier Support
|
||||||
Storm Blade
|
Storm Blade
|
||||||
Storm Burst
|
Storm Burst
|
||||||
@ -1349,6 +1372,9 @@ Strand Map
|
|||||||
Strapped Boots
|
Strapped Boots
|
||||||
Strapped Leather
|
Strapped Leather
|
||||||
Strapped Mitts
|
Strapped Mitts
|
||||||
|
Strong Iron Net
|
||||||
|
Strong Rope Net
|
||||||
|
Strong Steel Net
|
||||||
Struck by Lightning
|
Struck by Lightning
|
||||||
Studded Belt
|
Studded Belt
|
||||||
Studded Round Shield
|
Studded Round Shield
|
||||||
@ -1361,6 +1387,7 @@ Summon Chaos Golem
|
|||||||
Summon Flame Golem
|
Summon Flame Golem
|
||||||
Summon Ice Golem
|
Summon Ice Golem
|
||||||
Summon Lightning Golem
|
Summon Lightning Golem
|
||||||
|
Summon Phantasm on Kill Support
|
||||||
Summon Raging Spirit
|
Summon Raging Spirit
|
||||||
Summon Skeleton
|
Summon Skeleton
|
||||||
Summon Stone Golem
|
Summon Stone Golem
|
||||||
@ -1377,6 +1404,7 @@ Talisman Leaguestone
|
|||||||
Talon Axe
|
Talon Axe
|
||||||
Tarnished Spirit Shield
|
Tarnished Spirit Shield
|
||||||
Teak Round Shield
|
Teak Round Shield
|
||||||
|
Tectonic Slam
|
||||||
Tempered Foil
|
Tempered Foil
|
||||||
Tempest Leaguestone
|
Tempest Leaguestone
|
||||||
Tempest Shield
|
Tempest Shield
|
||||||
@ -1386,17 +1414,22 @@ Tenderizer
|
|||||||
Terrace Map
|
Terrace Map
|
||||||
Terror Claw
|
Terror Claw
|
||||||
Terror Maul
|
Terror Maul
|
||||||
|
Thaumaturgical Net
|
||||||
Thaumetic Emblem
|
Thaumetic Emblem
|
||||||
Thaumetic Sulphite
|
Thaumetic Sulphite
|
||||||
|
The Admirer
|
||||||
The Aesthete
|
The Aesthete
|
||||||
The Arena Champion
|
The Arena Champion
|
||||||
|
The Army of Blood
|
||||||
The Artist
|
The Artist
|
||||||
The Avenger
|
The Avenger
|
||||||
The Battle Born
|
The Battle Born
|
||||||
|
The Beast
|
||||||
The Betrayal
|
The Betrayal
|
||||||
The Black Flag
|
The Black Flag
|
||||||
The Blazing Fire
|
The Blazing Fire
|
||||||
The Body
|
The Body
|
||||||
|
The Breach
|
||||||
The Brittle Emperor
|
The Brittle Emperor
|
||||||
The Calling
|
The Calling
|
||||||
The Carrion Crow
|
The Carrion Crow
|
||||||
@ -1404,18 +1437,23 @@ The Cartographer
|
|||||||
The Cataclysm
|
The Cataclysm
|
||||||
The Catalyst
|
The Catalyst
|
||||||
The Celestial Justicar
|
The Celestial Justicar
|
||||||
|
The Celestial Stone
|
||||||
The Chains that Bind
|
The Chains that Bind
|
||||||
The Coming Storm
|
The Coming Storm
|
||||||
The Conduit
|
The Conduit
|
||||||
The Cursed King
|
The Cursed King
|
||||||
The Dapper Prodigy
|
The Dapper Prodigy
|
||||||
The Dark Mage
|
The Dark Mage
|
||||||
|
The Darkest Dream
|
||||||
|
The Deceiver
|
||||||
The Demoness
|
The Demoness
|
||||||
The Devastator
|
The Devastator
|
||||||
The Doctor
|
The Doctor
|
||||||
The Doppelganger
|
The Doppelganger
|
||||||
The Dragon
|
The Dragon
|
||||||
The Dragon's Heart
|
The Dragon's Heart
|
||||||
|
The Dreamer
|
||||||
|
The Dreamland
|
||||||
The Drunken Aristocrat
|
The Drunken Aristocrat
|
||||||
The Encroaching Darkness
|
The Encroaching Darkness
|
||||||
The Endurance
|
The Endurance
|
||||||
@ -1425,6 +1463,7 @@ The Explorer
|
|||||||
The Eye of Desire
|
The Eye of Desire
|
||||||
The Eye of Fury
|
The Eye of Fury
|
||||||
The Eye of the Dragon
|
The Eye of the Dragon
|
||||||
|
The Fathomless Depths
|
||||||
The Feast
|
The Feast
|
||||||
The Fiend
|
The Fiend
|
||||||
The Fletcher
|
The Fletcher
|
||||||
@ -1437,6 +1476,7 @@ The Garish Power
|
|||||||
The Gemcutter
|
The Gemcutter
|
||||||
The Gentleman
|
The Gentleman
|
||||||
The Gladiator
|
The Gladiator
|
||||||
|
The Hale Heart
|
||||||
The Harvester
|
The Harvester
|
||||||
The Hermit
|
The Hermit
|
||||||
The Hoarder
|
The Hoarder
|
||||||
@ -1444,8 +1484,11 @@ The Hunger
|
|||||||
The Immortal
|
The Immortal
|
||||||
The Incantation
|
The Incantation
|
||||||
The Inoculated
|
The Inoculated
|
||||||
|
The Insatiable
|
||||||
The Inventor
|
The Inventor
|
||||||
|
The Iron Bard
|
||||||
The Jester
|
The Jester
|
||||||
|
The Jeweller's Boon
|
||||||
The King's Blade
|
The King's Blade
|
||||||
The King's Heart
|
The King's Heart
|
||||||
The Last One Standing
|
The Last One Standing
|
||||||
@ -1454,9 +1497,12 @@ The Lion
|
|||||||
The Lord in Black
|
The Lord in Black
|
||||||
The Lover
|
The Lover
|
||||||
The Lunaris Priestess
|
The Lunaris Priestess
|
||||||
|
The Master
|
||||||
|
The Mayor
|
||||||
The Mercenary
|
The Mercenary
|
||||||
The Metalsmith's Gift
|
The Metalsmith's Gift
|
||||||
The Oath
|
The Oath
|
||||||
|
The Obscured
|
||||||
The Offering
|
The Offering
|
||||||
The One With All
|
The One With All
|
||||||
The Opulent
|
The Opulent
|
||||||
@ -1466,17 +1512,22 @@ The Penitent
|
|||||||
The Poet
|
The Poet
|
||||||
The Polymath
|
The Polymath
|
||||||
The Porcupine
|
The Porcupine
|
||||||
|
The Professor
|
||||||
|
The Puzzle
|
||||||
The Queen
|
The Queen
|
||||||
The Rabid Rhoa
|
The Rabid Rhoa
|
||||||
The Realm
|
The Realm
|
||||||
The Risk
|
The Risk
|
||||||
|
The Rite of Elements
|
||||||
The Road to Power
|
The Road to Power
|
||||||
The Ruthless Ceinture
|
The Ruthless Ceinture
|
||||||
The Saint's Treasure
|
The Saint's Treasure
|
||||||
|
The Samurai's Eye
|
||||||
The Scarred Meadow
|
The Scarred Meadow
|
||||||
The Scavenger
|
The Scavenger
|
||||||
The Scholar
|
The Scholar
|
||||||
The Sephirot
|
The Sephirot
|
||||||
|
The Shaper's Key
|
||||||
The Sigil
|
The Sigil
|
||||||
The Siren
|
The Siren
|
||||||
The Soul
|
The Soul
|
||||||
@ -1490,6 +1541,7 @@ The Sun
|
|||||||
The Surgeon
|
The Surgeon
|
||||||
The Surveyor
|
The Surveyor
|
||||||
The Survivalist
|
The Survivalist
|
||||||
|
The Sword King's Salute
|
||||||
The Teardrop
|
The Teardrop
|
||||||
The Thaumaturgist
|
The Thaumaturgist
|
||||||
The Throne
|
The Throne
|
||||||
@ -1498,6 +1550,8 @@ The Traitor
|
|||||||
The Trial
|
The Trial
|
||||||
The Twins
|
The Twins
|
||||||
The Tyrant
|
The Tyrant
|
||||||
|
The Undaunted
|
||||||
|
The Undisputed
|
||||||
The Union
|
The Union
|
||||||
The Valkyrie
|
The Valkyrie
|
||||||
The Valley of Steel Boxes
|
The Valley of Steel Boxes
|
||||||
@ -1509,10 +1563,12 @@ The Warlord
|
|||||||
The Watcher
|
The Watcher
|
||||||
The Web
|
The Web
|
||||||
The Wind
|
The Wind
|
||||||
|
The Witch
|
||||||
The Wolf
|
The Wolf
|
||||||
The Wolf's Shadow
|
The Wolf's Shadow
|
||||||
The Wolven King's Bite
|
The Wolven King's Bite
|
||||||
The Wolverine
|
The Wolverine
|
||||||
|
The World Eater
|
||||||
The Wrath
|
The Wrath
|
||||||
The Wretched
|
The Wretched
|
||||||
Thicket Bow
|
Thicket Bow
|
||||||
@ -1523,6 +1579,7 @@ Thorn Rapier
|
|||||||
Three Faces in the Dark
|
Three Faces in the Dark
|
||||||
Three Hands Talisman
|
Three Hands Talisman
|
||||||
Three Rat Talisman
|
Three Rat Talisman
|
||||||
|
Three Voices
|
||||||
Thresher Claw
|
Thresher Claw
|
||||||
Throat Stabber
|
Throat Stabber
|
||||||
Thunderous Skies
|
Thunderous Skies
|
||||||
@ -1590,6 +1647,8 @@ Uul-Netol's Breachstone
|
|||||||
Vaal Arc
|
Vaal Arc
|
||||||
Vaal Axe
|
Vaal Axe
|
||||||
Vaal Blade
|
Vaal Blade
|
||||||
|
Vaal Blade Vortex
|
||||||
|
Vaal Blight
|
||||||
Vaal Breach
|
Vaal Breach
|
||||||
Vaal Buckler
|
Vaal Buckler
|
||||||
Vaal Burning Arrow
|
Vaal Burning Arrow
|
||||||
@ -1600,6 +1659,7 @@ Vaal Cyclone
|
|||||||
Vaal Detonate Dead
|
Vaal Detonate Dead
|
||||||
Vaal Discipline
|
Vaal Discipline
|
||||||
Vaal Double Strike
|
Vaal Double Strike
|
||||||
|
Vaal Earthquake
|
||||||
Vaal Fireball
|
Vaal Fireball
|
||||||
Vaal Flameblast
|
Vaal Flameblast
|
||||||
Vaal Gauntlets
|
Vaal Gauntlets
|
||||||
@ -1612,6 +1672,9 @@ Vaal Haste
|
|||||||
Vaal Hatchet
|
Vaal Hatchet
|
||||||
Vaal Ice Nova
|
Vaal Ice Nova
|
||||||
Vaal Immortal Call
|
Vaal Immortal Call
|
||||||
|
Vaal Impurity of Fire
|
||||||
|
Vaal Impurity of Ice
|
||||||
|
Vaal Impurity of Lightning
|
||||||
Vaal Lightning Strike
|
Vaal Lightning Strike
|
||||||
Vaal Lightning Trap
|
Vaal Lightning Trap
|
||||||
Vaal Lightning Warp
|
Vaal Lightning Warp
|
||||||
@ -1640,7 +1703,16 @@ Vault Map
|
|||||||
Velvet Gloves
|
Velvet Gloves
|
||||||
Velvet Slippers
|
Velvet Slippers
|
||||||
Vengeance
|
Vengeance
|
||||||
|
Vial of Awakening
|
||||||
|
Vial of Consequence
|
||||||
|
Vial of Dominance
|
||||||
|
Vial of Fate
|
||||||
Vial Of Power
|
Vial Of Power
|
||||||
|
Vial of Sacrifice
|
||||||
|
Vial of Summoning
|
||||||
|
Vial of the Ghost
|
||||||
|
Vial of the Ritual
|
||||||
|
Vial of Transcendence
|
||||||
Vigilant Strike
|
Vigilant Strike
|
||||||
Vile Staff
|
Vile Staff
|
||||||
Vile Toxins Support
|
Vile Toxins Support
|
||||||
|
@ -16,6 +16,7 @@ Gems
|
|||||||
Gloves
|
Gloves
|
||||||
Helmets
|
Helmets
|
||||||
Hybrid Flasks
|
Hybrid Flasks
|
||||||
|
Incursion Item
|
||||||
Jewel
|
Jewel
|
||||||
Labyrinth Item
|
Labyrinth Item
|
||||||
Labyrinth Map Item
|
Labyrinth Map Item
|
||||||
|
@ -76,6 +76,11 @@
|
|||||||
<userControls:EditableListBoxControl Margin="5,5,5,5" ItemsSource="{Binding Items}" AutoCompleteItemsSource="{Binding ElementName=TopLevelGrid, Path=DataContext.AutoCompleteItemBaseTypes}" />
|
<userControls:EditableListBoxControl Margin="5,5,5,5" ItemsSource="{Binding Items}" AutoCompleteItemsSource="{Binding ElementName=TopLevelGrid, Path=DataContext.AutoCompleteItemBaseTypes}" />
|
||||||
</DataTemplate>
|
</DataTemplate>
|
||||||
|
|
||||||
|
<!-- Explicit Mods Template -->
|
||||||
|
<DataTemplate DataType="{x:Type blockItemTypes:HasExplicitModBlockItem}">
|
||||||
|
<userControls:EditableListBoxControl Margin="5,5,5,5" ItemsSource="{Binding Items}" />
|
||||||
|
</DataTemplate>
|
||||||
|
|
||||||
<!-- Socket Groups Template -->
|
<!-- Socket Groups Template -->
|
||||||
<DataTemplate DataType="{x:Type blockItemTypes:SocketGroupBlockItem}">
|
<DataTemplate DataType="{x:Type blockItemTypes:SocketGroupBlockItem}">
|
||||||
<userControls:EditableListBoxControl Margin="5,5,5,5" ItemsSource="{Binding Items}" />
|
<userControls:EditableListBoxControl Margin="5,5,5,5" ItemsSource="{Binding Items}" />
|
||||||
|
@ -159,7 +159,11 @@ namespace Filtration.ViewModels
|
|||||||
typeof (CorruptedBlockItem),
|
typeof (CorruptedBlockItem),
|
||||||
typeof (ElderItemBlockItem),
|
typeof (ElderItemBlockItem),
|
||||||
typeof (ShaperItemBlockItem),
|
typeof (ShaperItemBlockItem),
|
||||||
typeof (ShapedMapBlockItem)
|
typeof (ShapedMapBlockItem),
|
||||||
|
typeof (ElderMapBlockItem),
|
||||||
|
typeof (GemLevelBlockItem),
|
||||||
|
typeof (StackSizeBlockItem),
|
||||||
|
typeof (HasExplicitModBlockItem)
|
||||||
};
|
};
|
||||||
|
|
||||||
public List<Type> AudioVisualBlockItemTypesAvailable => new List<Type>
|
public List<Type> AudioVisualBlockItemTypesAvailable => new List<Type>
|
||||||
@ -169,7 +173,8 @@ namespace Filtration.ViewModels
|
|||||||
typeof (BorderColorBlockItem),
|
typeof (BorderColorBlockItem),
|
||||||
typeof (FontSizeBlockItem),
|
typeof (FontSizeBlockItem),
|
||||||
typeof (SoundBlockItem),
|
typeof (SoundBlockItem),
|
||||||
typeof (PositionalSoundBlockItem)
|
typeof (PositionalSoundBlockItem),
|
||||||
|
typeof (DisableDropSoundBlockItem)
|
||||||
};
|
};
|
||||||
|
|
||||||
public bool BlockEnabled
|
public bool BlockEnabled
|
||||||
|
Loading…
x
Reference in New Issue
Block a user