Compare commits
49 Commits
1.1.0-beta
...
1.2.0
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
85c215382b | ||
|
|
c44d7b6095 | ||
|
|
717a0a83a9 | ||
|
|
1f9a1c5196 | ||
|
|
dea0378a16 | ||
|
|
4862452188 | ||
|
|
db258de11e | ||
|
|
444f09751a | ||
|
|
9356f55209 | ||
|
|
fb7bd8b81e | ||
|
|
72ed517929 | ||
|
|
290547cbba | ||
|
|
065e56e0a6 | ||
|
|
d686e6da39 | ||
|
|
79398667b4 | ||
|
|
2424ab9195 | ||
|
|
491f448f94 | ||
|
|
2f49e85227 | ||
|
|
dce0af7fd6 | ||
|
|
208aeb39f6 | ||
|
|
79274df0fb | ||
|
|
4052d6e020 | ||
|
|
7c0da57570 | ||
|
|
557767f4dc | ||
|
|
ad1b46f975 | ||
|
|
9f17d84a7f | ||
|
|
0fe21336e6 | ||
|
|
2ba1b8adac | ||
|
|
2415be089b | ||
|
|
892b2f15f2 | ||
|
|
042e5b41f9 | ||
|
|
5fc260dbb2 | ||
|
|
3de33e9447 | ||
|
|
37ad9ac42e | ||
|
|
fbd02702b0 | ||
|
|
a20c988380 | ||
|
|
7ce5aaa861 | ||
|
|
4b6cee9d94 | ||
|
|
6fb0ec8084 | ||
|
|
a13dc44a7d | ||
|
|
05b729edf8 | ||
|
|
876e98437e | ||
|
|
cde2d692c9 | ||
|
|
c96aa472d9 | ||
|
|
d4e8a72d47 | ||
|
|
4c826f42fd | ||
|
|
4022cf12a0 | ||
|
|
8073948cfe | ||
|
|
f331bffee7 |
@@ -66,6 +66,24 @@
|
|||||||
<Reference Include="System.Data" />
|
<Reference Include="System.Data" />
|
||||||
<Reference Include="System.Xml" />
|
<Reference Include="System.Xml" />
|
||||||
<Reference Include="WindowsBase" />
|
<Reference Include="WindowsBase" />
|
||||||
|
<Reference Include="Xceed.Wpf.AvalonDock, Version=3.4.0.0, Culture=neutral, PublicKeyToken=3e4669d2f30244f4, processorArchitecture=MSIL">
|
||||||
|
<HintPath>..\packages\Extended.Wpf.Toolkit.3.4.0\lib\net40\Xceed.Wpf.AvalonDock.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="Xceed.Wpf.AvalonDock.Themes.Aero, Version=3.4.0.0, Culture=neutral, PublicKeyToken=3e4669d2f30244f4, processorArchitecture=MSIL">
|
||||||
|
<HintPath>..\packages\Extended.Wpf.Toolkit.3.4.0\lib\net40\Xceed.Wpf.AvalonDock.Themes.Aero.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="Xceed.Wpf.AvalonDock.Themes.Metro, Version=3.4.0.0, Culture=neutral, PublicKeyToken=3e4669d2f30244f4, processorArchitecture=MSIL">
|
||||||
|
<HintPath>..\packages\Extended.Wpf.Toolkit.3.4.0\lib\net40\Xceed.Wpf.AvalonDock.Themes.Metro.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="Xceed.Wpf.AvalonDock.Themes.VS2010, Version=3.4.0.0, Culture=neutral, PublicKeyToken=3e4669d2f30244f4, processorArchitecture=MSIL">
|
||||||
|
<HintPath>..\packages\Extended.Wpf.Toolkit.3.4.0\lib\net40\Xceed.Wpf.AvalonDock.Themes.VS2010.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="Xceed.Wpf.DataGrid, Version=3.4.0.0, Culture=neutral, PublicKeyToken=3e4669d2f30244f4, processorArchitecture=MSIL">
|
||||||
|
<HintPath>..\packages\Extended.Wpf.Toolkit.3.4.0\lib\net40\Xceed.Wpf.DataGrid.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="Xceed.Wpf.Toolkit, Version=3.4.0.0, Culture=neutral, PublicKeyToken=3e4669d2f30244f4, processorArchitecture=MSIL">
|
||||||
|
<HintPath>..\packages\Extended.Wpf.Toolkit.3.4.0\lib\net40\Xceed.Wpf.Toolkit.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<Compile Include="Converters\BooleanInverterConverter.cs" />
|
<Compile Include="Converters\BooleanInverterConverter.cs" />
|
||||||
@@ -80,6 +98,8 @@
|
|||||||
<Compile Include="Services\FileSystemService.cs" />
|
<Compile Include="Services\FileSystemService.cs" />
|
||||||
<Compile Include="Services\MessageBoxService.cs" />
|
<Compile Include="Services\MessageBoxService.cs" />
|
||||||
<Compile Include="Utilities\LineReader.cs" />
|
<Compile Include="Utilities\LineReader.cs" />
|
||||||
|
<Compile Include="Utilities\PathOfExileColors.cs" />
|
||||||
|
<Compile Include="Utilities\VisualTreeUtility.cs" />
|
||||||
<Compile Include="ViewModels\PaneViewModel.cs" />
|
<Compile Include="ViewModels\PaneViewModel.cs" />
|
||||||
<Compile Include="WindsorInstallers\ServicesInstaller.cs" />
|
<Compile Include="WindsorInstallers\ServicesInstaller.cs" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|||||||
@@ -2,9 +2,9 @@
|
|||||||
using System.Windows.Media;
|
using System.Windows.Media;
|
||||||
using Xceed.Wpf.Toolkit;
|
using Xceed.Wpf.Toolkit;
|
||||||
|
|
||||||
namespace Filtration.Views
|
namespace Filtration.Common.Utilities
|
||||||
{
|
{
|
||||||
internal static class PathOfExileColors
|
public static class PathOfExileColors
|
||||||
{
|
{
|
||||||
static PathOfExileColors()
|
static PathOfExileColors()
|
||||||
{
|
{
|
||||||
26
Filtration.Common/Utilities/VisualTreeUtility.cs
Normal file
26
Filtration.Common/Utilities/VisualTreeUtility.cs
Normal file
@@ -0,0 +1,26 @@
|
|||||||
|
using System.Windows;
|
||||||
|
using System.Windows.Media;
|
||||||
|
|
||||||
|
namespace Filtration.Common.Utilities
|
||||||
|
{
|
||||||
|
public class VisualTreeUtility
|
||||||
|
{
|
||||||
|
public static T FindParent<T>(DependencyObject child)
|
||||||
|
where T : DependencyObject
|
||||||
|
{
|
||||||
|
//get parent item
|
||||||
|
var parentObject = VisualTreeHelper.GetParent(child);
|
||||||
|
|
||||||
|
//we've reached the end of the tree
|
||||||
|
if (parentObject == null) return null;
|
||||||
|
|
||||||
|
//check if the parent matches the type we're looking for
|
||||||
|
if (parentObject is T parent)
|
||||||
|
{
|
||||||
|
return parent;
|
||||||
|
}
|
||||||
|
|
||||||
|
return FindParent<T>(parentObject);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -3,5 +3,6 @@
|
|||||||
<package id="Castle.Core" version="4.3.1" targetFramework="net461" />
|
<package id="Castle.Core" version="4.3.1" targetFramework="net461" />
|
||||||
<package id="Castle.Windsor" version="4.1.1" targetFramework="net461" />
|
<package id="Castle.Windsor" version="4.1.1" targetFramework="net461" />
|
||||||
<package id="CommonServiceLocator" version="2.0.4" targetFramework="net461" />
|
<package id="CommonServiceLocator" version="2.0.4" targetFramework="net461" />
|
||||||
|
<package id="Extended.Wpf.Toolkit" version="3.4.0" targetFramework="net461" />
|
||||||
<package id="MvvmLightLibs" version="5.4.1.1" targetFramework="net461" />
|
<package id="MvvmLightLibs" version="5.4.1.1" targetFramework="net461" />
|
||||||
</packages>
|
</packages>
|
||||||
@@ -8,7 +8,7 @@ namespace Filtration.Interface
|
|||||||
{
|
{
|
||||||
bool IsScript { get; }
|
bool IsScript { get; }
|
||||||
bool IsTheme { get; }
|
bool IsTheme { get; }
|
||||||
Task Close();
|
Task<bool> Close();
|
||||||
RelayCommand CloseCommand { get; }
|
RelayCommand CloseCommand { get; }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -41,7 +41,7 @@ namespace Filtration.ObjectModel.BlockItemBaseTypes
|
|||||||
|
|
||||||
public override Color SummaryTextColor => Action == BlockAction.Show ? Colors.Black : Colors.White;
|
public override Color SummaryTextColor => Action == BlockAction.Show ? Colors.Black : Colors.White;
|
||||||
|
|
||||||
public override int SortOrder => 0;
|
public override BlockItemOrdering SortOrder => BlockItemOrdering.Action;
|
||||||
|
|
||||||
public void ToggleAction()
|
public void ToggleAction()
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -2,6 +2,7 @@
|
|||||||
using System.Runtime.CompilerServices;
|
using System.Runtime.CompilerServices;
|
||||||
using System.Windows.Media;
|
using System.Windows.Media;
|
||||||
using Filtration.ObjectModel.Annotations;
|
using Filtration.ObjectModel.Annotations;
|
||||||
|
using Filtration.ObjectModel.Enums;
|
||||||
|
|
||||||
namespace Filtration.ObjectModel.BlockItemBaseTypes
|
namespace Filtration.ObjectModel.BlockItemBaseTypes
|
||||||
{
|
{
|
||||||
@@ -16,7 +17,7 @@ namespace Filtration.ObjectModel.BlockItemBaseTypes
|
|||||||
public abstract string SummaryText { get; }
|
public abstract string SummaryText { get; }
|
||||||
public abstract Color SummaryBackgroundColor { get; }
|
public abstract Color SummaryBackgroundColor { get; }
|
||||||
public abstract Color SummaryTextColor { get; }
|
public abstract Color SummaryTextColor { get; }
|
||||||
public abstract int SortOrder { get; }
|
public abstract BlockItemOrdering SortOrder { get; }
|
||||||
public string Comment { get; set; }
|
public string Comment { get; set; }
|
||||||
|
|
||||||
public bool IsDirty
|
public bool IsDirty
|
||||||
|
|||||||
@@ -27,7 +27,7 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
public override string OutputText => PrefixText + " " + BooleanValue;
|
public override string OutputText => PrefixText + " " + BooleanValue;
|
||||||
public override string SummaryText => PrefixText + " = " + BooleanValue;
|
public override string SummaryText => DisplayHeading + " = " + BooleanValue;
|
||||||
public override int MaximumAllowed => 1;
|
public override int MaximumAllowed => 1;
|
||||||
|
|
||||||
public void ToggleValue()
|
public void ToggleValue()
|
||||||
|
|||||||
16
Filtration.ObjectModel/BlockItemBaseTypes/NilBlockItem.cs
Normal file
16
Filtration.ObjectModel/BlockItemBaseTypes/NilBlockItem.cs
Normal file
@@ -0,0 +1,16 @@
|
|||||||
|
namespace Filtration.ObjectModel.BlockItemBaseTypes
|
||||||
|
{
|
||||||
|
public abstract class NilBlockItem : BlockItemBase
|
||||||
|
{
|
||||||
|
protected NilBlockItem()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public override string OutputText => PrefixText;
|
||||||
|
public override string SummaryText => DisplayHeading;
|
||||||
|
public override int MaximumAllowed => 1;
|
||||||
|
|
||||||
|
public abstract string Description { get; }
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,23 @@
|
|||||||
|
using System.Windows.Media;
|
||||||
|
using Filtration.ObjectModel.BlockItemBaseTypes;
|
||||||
|
using Filtration.ObjectModel.Enums;
|
||||||
|
|
||||||
|
namespace Filtration.ObjectModel.BlockItemTypes
|
||||||
|
{
|
||||||
|
public sealed class AnyEnchantmentBlockItem : BooleanBlockItem
|
||||||
|
{
|
||||||
|
public AnyEnchantmentBlockItem()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
public AnyEnchantmentBlockItem(bool booleanValue) : base(booleanValue)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
public override string PrefixText => "AnyEnchantment";
|
||||||
|
public override string DisplayHeading => "Any Enchantment";
|
||||||
|
public override Color SummaryBackgroundColor => Colors.YellowGreen;
|
||||||
|
public override Color SummaryTextColor => Colors.Black;
|
||||||
|
public override BlockItemOrdering SortOrder => BlockItemOrdering.AnyEnchantment;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1,4 +1,5 @@
|
|||||||
using System.Windows.Media;
|
using System.Windows.Media;
|
||||||
|
using Filtration.ObjectModel.Enums;
|
||||||
using Filtration.ObjectModel.BlockItemBaseTypes;
|
using Filtration.ObjectModel.BlockItemBaseTypes;
|
||||||
|
|
||||||
namespace Filtration.ObjectModel.BlockItemTypes
|
namespace Filtration.ObjectModel.BlockItemTypes
|
||||||
@@ -17,6 +18,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 => 23;
|
public override BlockItemOrdering SortOrder => BlockItemOrdering.SetBackgroundColor;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
using System.Linq;
|
using System.Linq;
|
||||||
using System.Windows.Media;
|
using System.Windows.Media;
|
||||||
using Filtration.ObjectModel.BlockItemBaseTypes;
|
using Filtration.ObjectModel.BlockItemBaseTypes;
|
||||||
|
using Filtration.ObjectModel.Enums;
|
||||||
|
|
||||||
namespace Filtration.ObjectModel.BlockItemTypes
|
namespace Filtration.ObjectModel.BlockItemTypes
|
||||||
{
|
{
|
||||||
@@ -16,23 +17,23 @@ namespace Filtration.ObjectModel.BlockItemTypes
|
|||||||
{
|
{
|
||||||
if (Items.Count > 0 && Items.Count < 4)
|
if (Items.Count > 0 && Items.Count < 4)
|
||||||
{
|
{
|
||||||
return "Item Base Types: " +
|
return "Base Types: " +
|
||||||
Items.Aggregate(string.Empty, (current, i) => current + i + ", ").TrimEnd(' ').TrimEnd(',');
|
Items.Aggregate(string.Empty, (current, i) => current + i + ", ").TrimEnd(' ').TrimEnd(',');
|
||||||
}
|
}
|
||||||
if (Items.Count >= 4)
|
if (Items.Count >= 4)
|
||||||
{
|
{
|
||||||
var remaining = Items.Count - 3;
|
var remaining = Items.Count - 3;
|
||||||
return "Item Base Types: " + Items.Take(3)
|
return "Base Types: " + Items.Take(3)
|
||||||
.Aggregate(string.Empty, (current, i) => current + i + ", ")
|
.Aggregate(string.Empty, (current, i) => current + i + ", ")
|
||||||
.TrimEnd(' ')
|
.TrimEnd(' ')
|
||||||
.TrimEnd(',') + " (+" + remaining + " more)";
|
.TrimEnd(',') + " (+" + remaining + " more)";
|
||||||
}
|
}
|
||||||
return "Item Base Types: (none)";
|
return "Base Types: (none)";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
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 => 20;
|
public override BlockItemOrdering SortOrder => BlockItemOrdering.BaseType;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
using System.Windows.Media;
|
using System.Windows.Media;
|
||||||
using Filtration.ObjectModel.BlockItemBaseTypes;
|
using Filtration.ObjectModel.BlockItemBaseTypes;
|
||||||
|
using Filtration.ObjectModel.Enums;
|
||||||
|
|
||||||
namespace Filtration.ObjectModel.BlockItemTypes
|
namespace Filtration.ObjectModel.BlockItemTypes
|
||||||
{
|
{
|
||||||
@@ -17,6 +18,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 => 24;
|
public override BlockItemOrdering SortOrder => BlockItemOrdering.SetBorderColor;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
using System.Linq;
|
using System.Linq;
|
||||||
using System.Windows.Media;
|
using System.Windows.Media;
|
||||||
using Filtration.ObjectModel.BlockItemBaseTypes;
|
using Filtration.ObjectModel.BlockItemBaseTypes;
|
||||||
|
using Filtration.ObjectModel.Enums;
|
||||||
|
|
||||||
namespace Filtration.ObjectModel.BlockItemTypes
|
namespace Filtration.ObjectModel.BlockItemTypes
|
||||||
{
|
{
|
||||||
@@ -16,23 +17,23 @@ namespace Filtration.ObjectModel.BlockItemTypes
|
|||||||
{
|
{
|
||||||
if (Items.Count > 0 && Items.Count < 4)
|
if (Items.Count > 0 && Items.Count < 4)
|
||||||
{
|
{
|
||||||
return "Item Classes: " +
|
return "Classes: " +
|
||||||
Items.Aggregate(string.Empty, (current, i) => current + i + ", ").TrimEnd(' ').TrimEnd(',');
|
Items.Aggregate(string.Empty, (current, i) => current + i + ", ").TrimEnd(' ').TrimEnd(',');
|
||||||
}
|
}
|
||||||
if (Items.Count >= 4)
|
if (Items.Count >= 4)
|
||||||
{
|
{
|
||||||
var remaining = Items.Count - 3;
|
var remaining = Items.Count - 3;
|
||||||
return "Item Classes: " + Items.Take(3)
|
return "Classes: " + Items.Take(3)
|
||||||
.Aggregate(string.Empty, (current, i) => current + i + ", ")
|
.Aggregate(string.Empty, (current, i) => current + i + ", ")
|
||||||
.TrimEnd(' ')
|
.TrimEnd(' ')
|
||||||
.TrimEnd(',') + " (+" + remaining + " more)";
|
.TrimEnd(',') + " (+" + remaining + " more)";
|
||||||
}
|
}
|
||||||
return "Item Classes: (none)";
|
return "Classes: (none)";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
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 => 19;
|
public override BlockItemOrdering SortOrder => BlockItemOrdering.Class;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
using System.Windows.Media;
|
using System.Windows.Media;
|
||||||
using Filtration.ObjectModel.BlockItemBaseTypes;
|
using Filtration.ObjectModel.BlockItemBaseTypes;
|
||||||
|
using Filtration.ObjectModel.Enums;
|
||||||
|
|
||||||
namespace Filtration.ObjectModel.BlockItemTypes
|
namespace Filtration.ObjectModel.BlockItemTypes
|
||||||
{
|
{
|
||||||
@@ -17,7 +18,6 @@ namespace Filtration.ObjectModel.BlockItemTypes
|
|||||||
public override string DisplayHeading => "Corrupted";
|
public override string DisplayHeading => "Corrupted";
|
||||||
public override Color SummaryBackgroundColor => Colors.DarkRed;
|
public override Color SummaryBackgroundColor => Colors.DarkRed;
|
||||||
public override Color SummaryTextColor => Colors.White;
|
public override Color SummaryTextColor => Colors.White;
|
||||||
public override int SortOrder => 5;
|
public override BlockItemOrdering SortOrder => BlockItemOrdering.Corrupted;
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
using Filtration.ObjectModel.BlockItemBaseTypes;
|
using Filtration.ObjectModel.BlockItemBaseTypes;
|
||||||
|
using Filtration.ObjectModel.Enums;
|
||||||
|
|
||||||
namespace Filtration.ObjectModel.BlockItemTypes
|
namespace Filtration.ObjectModel.BlockItemTypes
|
||||||
{
|
{
|
||||||
@@ -16,6 +17,6 @@ namespace Filtration.ObjectModel.BlockItemTypes
|
|||||||
public override string PrefixText => "CustomAlertSound";
|
public override string PrefixText => "CustomAlertSound";
|
||||||
public override int MaximumAllowed => 1;
|
public override int MaximumAllowed => 1;
|
||||||
public override string DisplayHeading => "Custom Alert Sound";
|
public override string DisplayHeading => "Custom Alert Sound";
|
||||||
public override int SortOrder => 31;
|
public override BlockItemOrdering SortOrder => BlockItemOrdering.CustomAlertSound;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,23 +1,20 @@
|
|||||||
using System.Windows.Media;
|
using System.Windows.Media;
|
||||||
using Filtration.ObjectModel.BlockItemBaseTypes;
|
using Filtration.ObjectModel.BlockItemBaseTypes;
|
||||||
|
using Filtration.ObjectModel.Enums;
|
||||||
|
|
||||||
namespace Filtration.ObjectModel.BlockItemTypes
|
namespace Filtration.ObjectModel.BlockItemTypes
|
||||||
{
|
{
|
||||||
public sealed class DisableDropSoundBlockItem : BooleanBlockItem, IAudioVisualBlockItem
|
public sealed class DisableDropSoundBlockItem : NilBlockItem, IAudioVisualBlockItem
|
||||||
{
|
{
|
||||||
public DisableDropSoundBlockItem()
|
public DisableDropSoundBlockItem() : base()
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
public DisableDropSoundBlockItem(bool booleanValue) : base(booleanValue)
|
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
public override string PrefixText => "DisableDropSound";
|
public override string PrefixText => "DisableDropSound";
|
||||||
public override string DisplayHeading => "Disable Drop Sound";
|
public override string DisplayHeading => "Disable Drop Sound";
|
||||||
|
public override string Description => "Default drop sound disabled.";
|
||||||
public override Color SummaryBackgroundColor => Colors.Transparent;
|
public override Color SummaryBackgroundColor => Colors.Transparent;
|
||||||
public override Color SummaryTextColor => Colors.Transparent;
|
public override Color SummaryTextColor => Colors.Transparent;
|
||||||
public override int SortOrder => 28;
|
public override BlockItemOrdering SortOrder => BlockItemOrdering.DisableDropSound;
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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 => 15;
|
public override BlockItemOrdering SortOrder => BlockItemOrdering.DropLevel;
|
||||||
public override int Minimum => 0;
|
public override int Minimum => 0;
|
||||||
public override int Maximum => 100;
|
public override int Maximum => 100;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
using System.Windows.Media;
|
using System.Windows.Media;
|
||||||
using Filtration.ObjectModel.BlockItemBaseTypes;
|
using Filtration.ObjectModel.BlockItemBaseTypes;
|
||||||
|
using Filtration.ObjectModel.Enums;
|
||||||
|
|
||||||
namespace Filtration.ObjectModel.BlockItemTypes
|
namespace Filtration.ObjectModel.BlockItemTypes
|
||||||
{
|
{
|
||||||
@@ -17,7 +18,6 @@ namespace Filtration.ObjectModel.BlockItemTypes
|
|||||||
public override string DisplayHeading => "Elder Item";
|
public override string DisplayHeading => "Elder Item";
|
||||||
public override Color SummaryBackgroundColor => Colors.DarkGray;
|
public override Color SummaryBackgroundColor => Colors.DarkGray;
|
||||||
public override Color SummaryTextColor => Colors.White;
|
public override Color SummaryTextColor => Colors.White;
|
||||||
public override int SortOrder => 6;
|
public override BlockItemOrdering SortOrder => BlockItemOrdering.ElderItem;
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
using System.Windows.Media;
|
using System.Windows.Media;
|
||||||
using Filtration.ObjectModel.BlockItemBaseTypes;
|
using Filtration.ObjectModel.BlockItemBaseTypes;
|
||||||
|
using Filtration.ObjectModel.Enums;
|
||||||
|
|
||||||
namespace Filtration.ObjectModel.BlockItemTypes
|
namespace Filtration.ObjectModel.BlockItemTypes
|
||||||
{
|
{
|
||||||
@@ -17,7 +18,6 @@ namespace Filtration.ObjectModel.BlockItemTypes
|
|||||||
public override string DisplayHeading => "Elder Map";
|
public override string DisplayHeading => "Elder Map";
|
||||||
public override Color SummaryBackgroundColor => Colors.DarkGoldenrod;
|
public override Color SummaryBackgroundColor => Colors.DarkGoldenrod;
|
||||||
public override Color SummaryTextColor => Colors.White;
|
public override Color SummaryTextColor => Colors.White;
|
||||||
public override int SortOrder => 10;
|
public override BlockItemOrdering SortOrder => BlockItemOrdering.ElderMap;
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
using Filtration.ObjectModel.BlockItemBaseTypes;
|
using Filtration.ObjectModel.BlockItemBaseTypes;
|
||||||
|
using Filtration.ObjectModel.Enums;
|
||||||
|
|
||||||
namespace Filtration.ObjectModel.BlockItemTypes
|
namespace Filtration.ObjectModel.BlockItemTypes
|
||||||
{
|
{
|
||||||
@@ -16,7 +17,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 => 25;
|
public override BlockItemOrdering SortOrder => BlockItemOrdering.SetFontSize;
|
||||||
public override int Minimum => 11;
|
public override int Minimum => 11;
|
||||||
public override int Maximum => 45;
|
public override int Maximum => 45;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,23 @@
|
|||||||
|
using System.Windows.Media;
|
||||||
|
using Filtration.ObjectModel.BlockItemBaseTypes;
|
||||||
|
using Filtration.ObjectModel.Enums;
|
||||||
|
|
||||||
|
namespace Filtration.ObjectModel.BlockItemTypes
|
||||||
|
{
|
||||||
|
public sealed class FracturedItemBlockItem : BooleanBlockItem
|
||||||
|
{
|
||||||
|
public FracturedItemBlockItem()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
public FracturedItemBlockItem(bool booleanValue) : base(booleanValue)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
public override string PrefixText => "FracturedItem";
|
||||||
|
public override string DisplayHeading => "Fractured Item";
|
||||||
|
public override Color SummaryBackgroundColor => Colors.Salmon;
|
||||||
|
public override Color SummaryTextColor => Colors.Black;
|
||||||
|
public override BlockItemOrdering SortOrder => BlockItemOrdering.FracturedItem;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -21,7 +21,7 @@ namespace Filtration.ObjectModel.BlockItemTypes
|
|||||||
public override string SummaryText => "Gem Level " + FilterPredicate;
|
public override string SummaryText => "Gem 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 => 16;
|
public override BlockItemOrdering SortOrder => BlockItemOrdering.GemLevel;
|
||||||
public override int Minimum => 0;
|
public override int Minimum => 0;
|
||||||
public override int Maximum => 21;
|
public override int Maximum => 21;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,39 @@
|
|||||||
|
using System.Linq;
|
||||||
|
using System.Windows.Media;
|
||||||
|
using Filtration.ObjectModel.BlockItemBaseTypes;
|
||||||
|
using Filtration.ObjectModel.Enums;
|
||||||
|
|
||||||
|
namespace Filtration.ObjectModel.BlockItemTypes
|
||||||
|
{
|
||||||
|
public class HasEnchantmentBlockItem : StringListBlockItem
|
||||||
|
{
|
||||||
|
public override string PrefixText => "HasEnchantment";
|
||||||
|
public override int MaximumAllowed => 1;
|
||||||
|
public override string DisplayHeading => "Has Enchantment";
|
||||||
|
|
||||||
|
public override string SummaryText
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
if (Items.Count > 0 && Items.Count < 4)
|
||||||
|
{
|
||||||
|
return "Enchantments: " +
|
||||||
|
Items.Aggregate(string.Empty, (current, i) => current + i + ", ").TrimEnd(' ').TrimEnd(',');
|
||||||
|
}
|
||||||
|
if (Items.Count >= 4)
|
||||||
|
{
|
||||||
|
var remaining = Items.Count - 3;
|
||||||
|
return "Enchantments: " + Items.Take(3)
|
||||||
|
.Aggregate(string.Empty, (current, i) => current + i + ", ")
|
||||||
|
.TrimEnd(' ')
|
||||||
|
.TrimEnd(',') + " (+" + remaining + " more)";
|
||||||
|
}
|
||||||
|
return "Enchantments: (none)";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public override Color SummaryBackgroundColor => Colors.PaleGreen;
|
||||||
|
public override Color SummaryTextColor => Colors.Black;
|
||||||
|
public override BlockItemOrdering SortOrder => BlockItemOrdering.HasEnchantment;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1,6 +1,7 @@
|
|||||||
using System.Linq;
|
using System.Linq;
|
||||||
using System.Windows.Media;
|
using System.Windows.Media;
|
||||||
using Filtration.ObjectModel.BlockItemBaseTypes;
|
using Filtration.ObjectModel.BlockItemBaseTypes;
|
||||||
|
using Filtration.ObjectModel.Enums;
|
||||||
|
|
||||||
namespace Filtration.ObjectModel.BlockItemTypes
|
namespace Filtration.ObjectModel.BlockItemTypes
|
||||||
{
|
{
|
||||||
@@ -16,23 +17,23 @@ namespace Filtration.ObjectModel.BlockItemTypes
|
|||||||
{
|
{
|
||||||
if (Items.Count > 0 && Items.Count < 4)
|
if (Items.Count > 0 && Items.Count < 4)
|
||||||
{
|
{
|
||||||
return "Item Explicit Mods: " +
|
return "Explicit Mods: " +
|
||||||
Items.Aggregate(string.Empty, (current, i) => current + i + ", ").TrimEnd(' ').TrimEnd(',');
|
Items.Aggregate(string.Empty, (current, i) => current + i + ", ").TrimEnd(' ').TrimEnd(',');
|
||||||
}
|
}
|
||||||
if (Items.Count >= 4)
|
if (Items.Count >= 4)
|
||||||
{
|
{
|
||||||
var remaining = Items.Count - 3;
|
var remaining = Items.Count - 3;
|
||||||
return "Item Explicit Mods: " + Items.Take(3)
|
return "Explicit Mods: " + Items.Take(3)
|
||||||
.Aggregate(string.Empty, (current, i) => current + i + ", ")
|
.Aggregate(string.Empty, (current, i) => current + i + ", ")
|
||||||
.TrimEnd(' ')
|
.TrimEnd(' ')
|
||||||
.TrimEnd(',') + " (+" + remaining + " more)";
|
.TrimEnd(',') + " (+" + remaining + " more)";
|
||||||
}
|
}
|
||||||
return "Item Explicit Mods: (none)";
|
return "Explicit Mods: (none)";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public override Color SummaryBackgroundColor => Colors.MidnightBlue;
|
public override Color SummaryBackgroundColor => Colors.MidnightBlue;
|
||||||
public override Color SummaryTextColor => Colors.White;
|
public override Color SummaryTextColor => Colors.White;
|
||||||
public override int SortOrder => 21;
|
public override BlockItemOrdering SortOrder => BlockItemOrdering.HasExplicitMod;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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 => 12;
|
public override BlockItemOrdering SortOrder => BlockItemOrdering.Height;
|
||||||
public override int Minimum => 0;
|
public override int Minimum => 0;
|
||||||
public override int Maximum => 6;
|
public override int Maximum => 6;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
using System.Windows.Media;
|
using System.Windows.Media;
|
||||||
using Filtration.ObjectModel.BlockItemBaseTypes;
|
using Filtration.ObjectModel.BlockItemBaseTypes;
|
||||||
|
using Filtration.ObjectModel.Enums;
|
||||||
|
|
||||||
namespace Filtration.ObjectModel.BlockItemTypes
|
namespace Filtration.ObjectModel.BlockItemTypes
|
||||||
{
|
{
|
||||||
@@ -17,7 +18,6 @@ namespace Filtration.ObjectModel.BlockItemTypes
|
|||||||
public override string DisplayHeading => "Identified";
|
public override string DisplayHeading => "Identified";
|
||||||
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 => 4;
|
public override BlockItemOrdering SortOrder => BlockItemOrdering.Identified;
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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 => 14;
|
public override BlockItemOrdering SortOrder => BlockItemOrdering.ItemLevel;
|
||||||
public override int Minimum => 0;
|
public override int Minimum => 0;
|
||||||
public override int Maximum => 100;
|
public override int Maximum => 100;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -21,7 +21,7 @@ namespace Filtration.ObjectModel.BlockItemTypes
|
|||||||
public override string SummaryText => "Linked Sockets " + FilterPredicate;
|
public override string SummaryText => "Linked Sockets " + FilterPredicate;
|
||||||
public override Color SummaryBackgroundColor => Colors.Gold;
|
public override Color SummaryBackgroundColor => Colors.Gold;
|
||||||
public override Color SummaryTextColor => Colors.Black;
|
public override Color SummaryTextColor => Colors.Black;
|
||||||
public override int SortOrder => 1;
|
public override BlockItemOrdering SortOrder => BlockItemOrdering.LinkedSockets;
|
||||||
public override int Minimum => 0;
|
public override int Minimum => 0;
|
||||||
public override int Maximum => 6;
|
public override int Maximum => 6;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -19,6 +19,6 @@ namespace Filtration.ObjectModel.BlockItemTypes
|
|||||||
public override string PrefixText => "MinimapIcon";
|
public override string PrefixText => "MinimapIcon";
|
||||||
public override int MaximumAllowed => 1;
|
public override int MaximumAllowed => 1;
|
||||||
public override string DisplayHeading => "Minimap Icon";
|
public override string DisplayHeading => "Minimap Icon";
|
||||||
public override int SortOrder => 29;
|
public override BlockItemOrdering SortOrder => BlockItemOrdering.MinimapIcon;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -21,7 +21,7 @@ namespace Filtration.ObjectModel.BlockItemTypes
|
|||||||
public override string SummaryText => "Map Tier " + FilterPredicate;
|
public override string SummaryText => "Map Tier " + 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 => 8;
|
public override BlockItemOrdering SortOrder => BlockItemOrdering.MapTier;
|
||||||
public override int Minimum => 1;
|
public override int Minimum => 1;
|
||||||
public override int Maximum => 16;
|
public override int Maximum => 16;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -18,6 +18,6 @@ namespace Filtration.ObjectModel.BlockItemTypes
|
|||||||
public override string PrefixText => "PlayEffect";
|
public override string PrefixText => "PlayEffect";
|
||||||
public override int MaximumAllowed => 1;
|
public override int MaximumAllowed => 1;
|
||||||
public override string DisplayHeading => "Play Effect";
|
public override string DisplayHeading => "Play Effect";
|
||||||
public override int SortOrder => 30;
|
public override BlockItemOrdering SortOrder => BlockItemOrdering.PlayEffect;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
using Filtration.ObjectModel.BlockItemBaseTypes;
|
using Filtration.ObjectModel.BlockItemBaseTypes;
|
||||||
|
using Filtration.ObjectModel.Enums;
|
||||||
|
|
||||||
namespace Filtration.ObjectModel.BlockItemTypes
|
namespace Filtration.ObjectModel.BlockItemTypes
|
||||||
{
|
{
|
||||||
@@ -17,6 +18,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 => 27;
|
public override BlockItemOrdering SortOrder => BlockItemOrdering.PlayAlertSoundPositional;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
39
Filtration.ObjectModel/BlockItemTypes/ProphecyBlockItem.cs
Normal file
39
Filtration.ObjectModel/BlockItemTypes/ProphecyBlockItem.cs
Normal file
@@ -0,0 +1,39 @@
|
|||||||
|
using System.Linq;
|
||||||
|
using System.Windows.Media;
|
||||||
|
using Filtration.ObjectModel.BlockItemBaseTypes;
|
||||||
|
using Filtration.ObjectModel.Enums;
|
||||||
|
|
||||||
|
namespace Filtration.ObjectModel.BlockItemTypes
|
||||||
|
{
|
||||||
|
public class ProphecyBlockItem : StringListBlockItem
|
||||||
|
{
|
||||||
|
public override string PrefixText => "Prophecy";
|
||||||
|
public override int MaximumAllowed => 1;
|
||||||
|
public override string DisplayHeading => "Prophecy";
|
||||||
|
|
||||||
|
public override string SummaryText
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
if (Items.Count > 0 && Items.Count < 4)
|
||||||
|
{
|
||||||
|
return "Prophecies: " +
|
||||||
|
Items.Aggregate(string.Empty, (current, i) => current + i + ", ").TrimEnd(' ').TrimEnd(',');
|
||||||
|
}
|
||||||
|
if (Items.Count >= 4)
|
||||||
|
{
|
||||||
|
var remaining = Items.Count - 3;
|
||||||
|
return "Prophecies: " + Items.Take(3)
|
||||||
|
.Aggregate(string.Empty, (current, i) => current + i + ", ")
|
||||||
|
.TrimEnd(' ')
|
||||||
|
.TrimEnd(',') + " (+" + remaining + " more)";
|
||||||
|
}
|
||||||
|
return "Prophecies: (none)";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public override Color SummaryBackgroundColor => Colors.DarkMagenta;
|
||||||
|
public override Color SummaryTextColor => Colors.White;
|
||||||
|
public override BlockItemOrdering SortOrder => BlockItemOrdering.Prophecy;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -21,8 +21,8 @@ namespace Filtration.ObjectModel.BlockItemTypes
|
|||||||
public override string SummaryText => "Quality " + FilterPredicate;
|
public override string SummaryText => "Quality " + FilterPredicate;
|
||||||
public override Color SummaryBackgroundColor => Colors.DarkOrange;
|
public override Color SummaryBackgroundColor => Colors.DarkOrange;
|
||||||
public override Color SummaryTextColor => Colors.White;
|
public override Color SummaryTextColor => Colors.White;
|
||||||
public override int SortOrder => 3;
|
public override BlockItemOrdering SortOrder => BlockItemOrdering.Quality;
|
||||||
public override int Minimum => 0;
|
public override int Minimum => 0;
|
||||||
public override int Maximum => 30;
|
public override int Maximum => 99;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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 => 18;
|
public override BlockItemOrdering SortOrder => BlockItemOrdering.Rarity;
|
||||||
public override int Minimum => 0;
|
public override int Minimum => 0;
|
||||||
public override int Maximum => (int)ItemRarity.Unique;
|
public override int Maximum => (int)ItemRarity.Unique;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
using System.Windows.Media;
|
using System.Windows.Media;
|
||||||
using Filtration.ObjectModel.BlockItemBaseTypes;
|
using Filtration.ObjectModel.BlockItemBaseTypes;
|
||||||
|
using Filtration.ObjectModel.Enums;
|
||||||
|
|
||||||
namespace Filtration.ObjectModel.BlockItemTypes
|
namespace Filtration.ObjectModel.BlockItemTypes
|
||||||
{
|
{
|
||||||
@@ -17,7 +18,6 @@ namespace Filtration.ObjectModel.BlockItemTypes
|
|||||||
public override string DisplayHeading => "Shaped Map";
|
public override string DisplayHeading => "Shaped Map";
|
||||||
public override Color SummaryBackgroundColor => Colors.DarkGoldenrod;
|
public override Color SummaryBackgroundColor => Colors.DarkGoldenrod;
|
||||||
public override Color SummaryTextColor => Colors.White;
|
public override Color SummaryTextColor => Colors.White;
|
||||||
public override int SortOrder => 9;
|
public override BlockItemOrdering SortOrder => BlockItemOrdering.ShapedMap;
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
using System.Windows.Media;
|
using System.Windows.Media;
|
||||||
using Filtration.ObjectModel.BlockItemBaseTypes;
|
using Filtration.ObjectModel.BlockItemBaseTypes;
|
||||||
|
using Filtration.ObjectModel.Enums;
|
||||||
|
|
||||||
namespace Filtration.ObjectModel.BlockItemTypes
|
namespace Filtration.ObjectModel.BlockItemTypes
|
||||||
{
|
{
|
||||||
@@ -17,7 +18,6 @@ namespace Filtration.ObjectModel.BlockItemTypes
|
|||||||
public override string DisplayHeading => "Shaper Item";
|
public override string DisplayHeading => "Shaper Item";
|
||||||
public override Color SummaryBackgroundColor => Colors.DimGray;
|
public override Color SummaryBackgroundColor => Colors.DimGray;
|
||||||
public override Color SummaryTextColor => Colors.White;
|
public override Color SummaryTextColor => Colors.White;
|
||||||
public override int SortOrder => 7;
|
public override BlockItemOrdering SortOrder => BlockItemOrdering.ShaperItem;
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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 => 11;
|
public override BlockItemOrdering SortOrder => BlockItemOrdering.SocketGroup;
|
||||||
|
|
||||||
private SocketColor StringToSocketColor(char socketColorString)
|
private SocketColor StringToSocketColor(char socketColorString)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -21,7 +21,7 @@ namespace Filtration.ObjectModel.BlockItemTypes
|
|||||||
public override string SummaryText => "Sockets " + FilterPredicate;
|
public override string SummaryText => "Sockets " + FilterPredicate;
|
||||||
public override Color SummaryBackgroundColor => Colors.LightGray;
|
public override Color SummaryBackgroundColor => Colors.LightGray;
|
||||||
public override Color SummaryTextColor => Colors.Black;
|
public override Color SummaryTextColor => Colors.Black;
|
||||||
public override int SortOrder => 2;
|
public override BlockItemOrdering SortOrder => BlockItemOrdering.Sockets;
|
||||||
public override int Minimum => 0;
|
public override int Minimum => 0;
|
||||||
public override int Maximum => 6;
|
public override int Maximum => 6;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
using Filtration.ObjectModel.BlockItemBaseTypes;
|
using Filtration.ObjectModel.BlockItemBaseTypes;
|
||||||
|
using Filtration.ObjectModel.Enums;
|
||||||
|
|
||||||
namespace Filtration.ObjectModel.BlockItemTypes
|
namespace Filtration.ObjectModel.BlockItemTypes
|
||||||
{
|
{
|
||||||
@@ -17,6 +18,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 => 26;
|
public override BlockItemOrdering SortOrder => BlockItemOrdering.PlayAlertSound;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -21,7 +21,7 @@ namespace Filtration.ObjectModel.BlockItemTypes
|
|||||||
public override string SummaryText => "Stack Size " + FilterPredicate;
|
public override string SummaryText => "Stack Size " + 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 => 17;
|
public override BlockItemOrdering SortOrder => BlockItemOrdering.StackSize;
|
||||||
public override int Minimum => 0;
|
public override int Minimum => 0;
|
||||||
public override int Maximum => 1000;
|
public override int Maximum => 1000;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,23 @@
|
|||||||
|
using System.Windows.Media;
|
||||||
|
using Filtration.ObjectModel.BlockItemBaseTypes;
|
||||||
|
using Filtration.ObjectModel.Enums;
|
||||||
|
|
||||||
|
namespace Filtration.ObjectModel.BlockItemTypes
|
||||||
|
{
|
||||||
|
public sealed class SynthesisedItemBlockItem : BooleanBlockItem
|
||||||
|
{
|
||||||
|
public SynthesisedItemBlockItem()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
public SynthesisedItemBlockItem(bool booleanValue) : base(booleanValue)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
public override string PrefixText => "SynthesisedItem";
|
||||||
|
public override string DisplayHeading => "Synthesised Item";
|
||||||
|
public override Color SummaryBackgroundColor => Colors.Salmon;
|
||||||
|
public override Color SummaryTextColor => Colors.Black;
|
||||||
|
public override BlockItemOrdering SortOrder => BlockItemOrdering.SynthesisedItem;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -18,6 +18,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 => 22;
|
public override BlockItemOrdering SortOrder => BlockItemOrdering.SetTextColor;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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 => 13;
|
public override BlockItemOrdering SortOrder => BlockItemOrdering.Width;
|
||||||
public override int Minimum => 0;
|
public override int Minimum => 0;
|
||||||
public override int Maximum => 2;
|
public override int Maximum => 2;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,42 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
using System.Collections.ObjectModel;
|
||||||
|
|
||||||
|
namespace Filtration.ObjectModel.Commands.ItemFilterScript
|
||||||
|
{
|
||||||
|
public class AddBlockItemToBlocksCommand : IUndoableCommand
|
||||||
|
{
|
||||||
|
private readonly List<Tuple<ObservableCollection<IItemFilterBlockItem>, IItemFilterBlockItem>> _input;
|
||||||
|
|
||||||
|
public AddBlockItemToBlocksCommand(List<Tuple<ObservableCollection<IItemFilterBlockItem>, IItemFilterBlockItem>> input)
|
||||||
|
{
|
||||||
|
_input = input;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void Execute()
|
||||||
|
{
|
||||||
|
foreach (var v in _input)
|
||||||
|
{
|
||||||
|
var blockItems = v.Item1;
|
||||||
|
var item = v.Item2;
|
||||||
|
|
||||||
|
blockItems.Add(item);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void Undo()
|
||||||
|
{
|
||||||
|
foreach (var v in _input)
|
||||||
|
{
|
||||||
|
var blockItems = v.Item1;
|
||||||
|
var item = v.Item2;
|
||||||
|
blockItems.Remove(item);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void Redo() => Execute();
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,48 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
using System.Collections.ObjectModel;
|
||||||
|
|
||||||
|
namespace Filtration.ObjectModel.Commands.ItemFilterScript
|
||||||
|
{
|
||||||
|
public class RemoveBlockItemFromBlocksCommand : IUndoableCommand
|
||||||
|
{
|
||||||
|
private readonly List<Tuple<ObservableCollection<IItemFilterBlockItem>, IItemFilterBlockItem>> _input;
|
||||||
|
|
||||||
|
public RemoveBlockItemFromBlocksCommand(List<Tuple<ObservableCollection<IItemFilterBlockItem>, IItemFilterBlockItem>> input)
|
||||||
|
{
|
||||||
|
_input = input;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void Execute()
|
||||||
|
{
|
||||||
|
foreach (var pair in _input)
|
||||||
|
{
|
||||||
|
var blockItems = pair.Item1;
|
||||||
|
var blockItem = pair.Item2;
|
||||||
|
|
||||||
|
for (var i = 0; i < blockItems.Count; i++)
|
||||||
|
{
|
||||||
|
if (blockItems[i] == blockItem)
|
||||||
|
{
|
||||||
|
blockItems.RemoveAt(i--);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void Undo()
|
||||||
|
{
|
||||||
|
foreach (var pair in _input)
|
||||||
|
{
|
||||||
|
var blockItems = pair.Item1;
|
||||||
|
var blockItem = pair.Item2;
|
||||||
|
blockItems.Add(blockItem);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void Redo() => Execute();
|
||||||
|
}
|
||||||
|
}
|
||||||
45
Filtration.ObjectModel/Enums/BlockItemOrdering.cs
Normal file
45
Filtration.ObjectModel/Enums/BlockItemOrdering.cs
Normal file
@@ -0,0 +1,45 @@
|
|||||||
|
using System.ComponentModel;
|
||||||
|
|
||||||
|
namespace Filtration.ObjectModel.Enums
|
||||||
|
{
|
||||||
|
public enum BlockItemOrdering
|
||||||
|
{
|
||||||
|
Action,
|
||||||
|
LinkedSockets,
|
||||||
|
Sockets,
|
||||||
|
Quality,
|
||||||
|
Identified,
|
||||||
|
Corrupted,
|
||||||
|
ElderItem,
|
||||||
|
ShaperItem,
|
||||||
|
SynthesisedItem,
|
||||||
|
FracturedItem,
|
||||||
|
AnyEnchantment,
|
||||||
|
MapTier,
|
||||||
|
ShapedMap,
|
||||||
|
ElderMap,
|
||||||
|
SocketGroup,
|
||||||
|
Height,
|
||||||
|
Width,
|
||||||
|
ItemLevel,
|
||||||
|
DropLevel,
|
||||||
|
GemLevel,
|
||||||
|
StackSize,
|
||||||
|
Rarity,
|
||||||
|
Class,
|
||||||
|
BaseType,
|
||||||
|
Prophecy,
|
||||||
|
HasExplicitMod,
|
||||||
|
HasEnchantment,
|
||||||
|
SetTextColor,
|
||||||
|
SetBackgroundColor,
|
||||||
|
SetBorderColor,
|
||||||
|
SetFontSize,
|
||||||
|
PlayAlertSound,
|
||||||
|
PlayAlertSoundPositional,
|
||||||
|
DisableDropSound,
|
||||||
|
MinimapIcon,
|
||||||
|
PlayEffect,
|
||||||
|
CustomAlertSound
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -8,6 +8,7 @@
|
|||||||
Rarity,
|
Rarity,
|
||||||
Class,
|
Class,
|
||||||
BaseType,
|
BaseType,
|
||||||
|
Prophecy,
|
||||||
Sockets,
|
Sockets,
|
||||||
LinkedSockets,
|
LinkedSockets,
|
||||||
SocketGroup,
|
SocketGroup,
|
||||||
|
|||||||
@@ -4,8 +4,6 @@ namespace Filtration.ObjectModel.Enums
|
|||||||
{
|
{
|
||||||
public enum ItemRarity
|
public enum ItemRarity
|
||||||
{
|
{
|
||||||
[Description("Not Set")]
|
|
||||||
NotSet,
|
|
||||||
[Description("Normal")]
|
[Description("Normal")]
|
||||||
Normal,
|
Normal,
|
||||||
[Description("Magic")]
|
[Description("Magic")]
|
||||||
|
|||||||
@@ -26,14 +26,11 @@ namespace Filtration.ObjectModel.Extensions
|
|||||||
{
|
{
|
||||||
return PathOfExileNamedColors.Colors[PathOfExileNamedColor.UniqueItem];
|
return PathOfExileNamedColors.Colors[PathOfExileNamedColor.UniqueItem];
|
||||||
}
|
}
|
||||||
case ItemRarity.NotSet:
|
|
||||||
{
|
|
||||||
return PathOfExileNamedColors.Colors[PathOfExileNamedColor.QuestItem];
|
|
||||||
}
|
|
||||||
|
|
||||||
default:
|
default:
|
||||||
|
{
|
||||||
throw new ArgumentOutOfRangeException(nameof(itemRarity), itemRarity, null);
|
throw new ArgumentOutOfRangeException(nameof(itemRarity), itemRarity, null);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|||||||
@@ -75,13 +75,17 @@
|
|||||||
<Compile Include="BlockItemBaseTypes\DualIntegerBlockItem.cs" />
|
<Compile Include="BlockItemBaseTypes\DualIntegerBlockItem.cs" />
|
||||||
<Compile Include="BlockItemBaseTypes\EffectColorBlockItem.cs" />
|
<Compile Include="BlockItemBaseTypes\EffectColorBlockItem.cs" />
|
||||||
<Compile Include="BlockItemBaseTypes\IconBlockItem.cs" />
|
<Compile Include="BlockItemBaseTypes\IconBlockItem.cs" />
|
||||||
|
<Compile Include="BlockItemBaseTypes\NilBlockItem.cs" />
|
||||||
<Compile Include="BlockItemBaseTypes\StringBlockItem.cs" />
|
<Compile Include="BlockItemBaseTypes\StringBlockItem.cs" />
|
||||||
<Compile Include="BlockItemBaseTypes\StrIntBlockItem.cs" />
|
<Compile Include="BlockItemBaseTypes\StrIntBlockItem.cs" />
|
||||||
<Compile Include="BlockItemBaseTypes\IntegerBlockItem.cs" />
|
<Compile Include="BlockItemBaseTypes\IntegerBlockItem.cs" />
|
||||||
<Compile Include="BlockItemBaseTypes\NumericFilterPredicateBlockItem.cs" />
|
<Compile Include="BlockItemBaseTypes\NumericFilterPredicateBlockItem.cs" />
|
||||||
<Compile Include="BlockItemBaseTypes\StringListBlockItem.cs" />
|
<Compile Include="BlockItemBaseTypes\StringListBlockItem.cs" />
|
||||||
|
<Compile Include="BlockItemTypes\AnyEnchantmentBlockItem.cs" />
|
||||||
<Compile Include="BlockItemTypes\BackgroundColorBlockItem.cs" />
|
<Compile Include="BlockItemTypes\BackgroundColorBlockItem.cs" />
|
||||||
<Compile Include="BlockItemTypes\BaseTypeBlockItem.cs" />
|
<Compile Include="BlockItemTypes\BaseTypeBlockItem.cs" />
|
||||||
|
<Compile Include="BlockItemTypes\FracturedItemBlockItem.cs" />
|
||||||
|
<Compile Include="BlockItemTypes\HasEnchantmentBlockItem.cs" />
|
||||||
<Compile Include="BlockItemTypes\MapTierBlockItem.cs" />
|
<Compile Include="BlockItemTypes\MapTierBlockItem.cs" />
|
||||||
<Compile Include="BlockItemTypes\PlayEffectBlockItem.cs" />
|
<Compile Include="BlockItemTypes\PlayEffectBlockItem.cs" />
|
||||||
<Compile Include="BlockItemTypes\BorderColorBlockItem.cs" />
|
<Compile Include="BlockItemTypes\BorderColorBlockItem.cs" />
|
||||||
@@ -92,7 +96,9 @@
|
|||||||
<Compile Include="BlockItemTypes\GemLevelBlockItem.cs" />
|
<Compile Include="BlockItemTypes\GemLevelBlockItem.cs" />
|
||||||
<Compile Include="BlockItemTypes\HasExplicitModBlockItem.cs" />
|
<Compile Include="BlockItemTypes\HasExplicitModBlockItem.cs" />
|
||||||
<Compile Include="BlockItemTypes\MapIconBlockItem.cs" />
|
<Compile Include="BlockItemTypes\MapIconBlockItem.cs" />
|
||||||
|
<Compile Include="BlockItemTypes\ProphecyBlockItem.cs" />
|
||||||
<Compile Include="BlockItemTypes\ShapedMapBlockItem.cs" />
|
<Compile Include="BlockItemTypes\ShapedMapBlockItem.cs" />
|
||||||
|
<Compile Include="BlockItemTypes\SynthesisedItemBlockItem.cs" />
|
||||||
<Compile Include="BlockItemTypes\ShaperItemBlockItem.cs" />
|
<Compile Include="BlockItemTypes\ShaperItemBlockItem.cs" />
|
||||||
<Compile Include="BlockItemTypes\ElderItemBlockItem.cs" />
|
<Compile Include="BlockItemTypes\ElderItemBlockItem.cs" />
|
||||||
<Compile Include="BlockItemTypes\CorruptedBlockItem.cs" />
|
<Compile Include="BlockItemTypes\CorruptedBlockItem.cs" />
|
||||||
@@ -113,16 +119,19 @@
|
|||||||
<Compile Include="BlockItemTypes\WidthBlockItem.cs" />
|
<Compile Include="BlockItemTypes\WidthBlockItem.cs" />
|
||||||
<Compile Include="Commands\CommandManager.cs" />
|
<Compile Include="Commands\CommandManager.cs" />
|
||||||
<Compile Include="Commands\ICommand.cs" />
|
<Compile Include="Commands\ICommand.cs" />
|
||||||
|
<Compile Include="Commands\ItemFilterScript\AddBlockItemToBlocksCommand.cs" />
|
||||||
<Compile Include="Commands\ItemFilterScript\MoveBlocksToIndexCommand.cs" />
|
<Compile Include="Commands\ItemFilterScript\MoveBlocksToIndexCommand.cs" />
|
||||||
<Compile Include="Commands\ItemFilterScript\MoveBlocksToBottomCommand.cs" />
|
<Compile Include="Commands\ItemFilterScript\MoveBlocksToBottomCommand.cs" />
|
||||||
<Compile Include="Commands\ItemFilterScript\AddCommentBlockCommand.cs" />
|
<Compile Include="Commands\ItemFilterScript\AddCommentBlockCommand.cs" />
|
||||||
<Compile Include="Commands\ItemFilterScript\MoveBlocksToTopCommand.cs" />
|
<Compile Include="Commands\ItemFilterScript\MoveBlocksToTopCommand.cs" />
|
||||||
<Compile Include="Commands\ItemFilterScript\PasteBlocksCommand.cs" />
|
<Compile Include="Commands\ItemFilterScript\PasteBlocksCommand.cs" />
|
||||||
|
<Compile Include="Commands\ItemFilterScript\RemoveBlockItemFromBlocksCommand.cs" />
|
||||||
<Compile Include="Commands\ItemFilterScript\RemoveBlocksCommand.cs" />
|
<Compile Include="Commands\ItemFilterScript\RemoveBlocksCommand.cs" />
|
||||||
<Compile Include="Commands\ItemFilterScript\SetScriptDescriptionCommand.cs" />
|
<Compile Include="Commands\ItemFilterScript\SetScriptDescriptionCommand.cs" />
|
||||||
<Compile Include="Commands\ItemFilterScript\AddBlockCommand.cs" />
|
<Compile Include="Commands\ItemFilterScript\AddBlockCommand.cs" />
|
||||||
<Compile Include="Commands\IUndoableCommand.cs" />
|
<Compile Include="Commands\IUndoableCommand.cs" />
|
||||||
<Compile Include="Enums\BlockAction.cs" />
|
<Compile Include="Enums\BlockAction.cs" />
|
||||||
|
<Compile Include="Enums\BlockItemOrdering.cs" />
|
||||||
<Compile Include="Enums\BlockItemType.cs" />
|
<Compile Include="Enums\BlockItemType.cs" />
|
||||||
<Compile Include="Enums\EffectColor.cs" />
|
<Compile Include="Enums\EffectColor.cs" />
|
||||||
<Compile Include="Enums\FilterPredicateOperator.cs" />
|
<Compile Include="Enums\FilterPredicateOperator.cs" />
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
using System.ComponentModel;
|
using System.ComponentModel;
|
||||||
using System.Windows.Media;
|
using System.Windows.Media;
|
||||||
|
using Filtration.ObjectModel.Enums;
|
||||||
|
|
||||||
namespace Filtration.ObjectModel
|
namespace Filtration.ObjectModel
|
||||||
{
|
{
|
||||||
@@ -12,7 +13,7 @@ namespace Filtration.ObjectModel
|
|||||||
Color SummaryBackgroundColor { get; }
|
Color SummaryBackgroundColor { get; }
|
||||||
Color SummaryTextColor { get; }
|
Color SummaryTextColor { get; }
|
||||||
int MaximumAllowed { get; }
|
int MaximumAllowed { get; }
|
||||||
int SortOrder { get; }
|
BlockItemOrdering SortOrder { get; }
|
||||||
bool IsDirty { get; }
|
bool IsDirty { get; }
|
||||||
string Comment { get; set; }
|
string Comment { get; set; }
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -121,10 +121,8 @@ namespace Filtration.ObjectModel
|
|||||||
return PathOfExileNamedColors.Colors[PathOfExileNamedColor.QuestItem];
|
return PathOfExileNamedColors.Colors[PathOfExileNamedColor.QuestItem];
|
||||||
}
|
}
|
||||||
|
|
||||||
return ItemRarity != ItemRarity.NotSet ? ItemRarity.DefaultRarityTextColor() : PathOfExileNamedColors.Colors[PathOfExileNamedColor.WhiteItem];
|
return ItemRarity.DefaultRarityTextColor();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -279,7 +279,7 @@ namespace Filtration.ObjectModel
|
|||||||
get
|
get
|
||||||
{
|
{
|
||||||
var borderColorBlockItem = BlockItems.OfType<BorderColorBlockItem>().FirstOrDefault();
|
var borderColorBlockItem = BlockItems.OfType<BorderColorBlockItem>().FirstOrDefault();
|
||||||
return borderColorBlockItem?.Color ?? new Color { A = 240, R = 0, G = 0, B = 0 };
|
return borderColorBlockItem?.Color ?? new Color { A = 0, R = 255, G = 255, B = 255 };
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -567,6 +567,25 @@ namespace Filtration.Parser.Tests.Services
|
|||||||
Assert.Contains("Test BaseType 2", blockItem.Items);
|
Assert.Contains("Test BaseType 2", blockItem.Items);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[Test]
|
||||||
|
public void TranslateStringToItemFilterBlock_Prophecy_ReturnsCorrectObject()
|
||||||
|
{
|
||||||
|
// Arrange
|
||||||
|
var inputString = "Show" + Environment.NewLine +
|
||||||
|
@" Prophecy ""Test Prophecy 1"" ""TestOneWordProphecyInQuotes"" TestOneWordProphecyNotInQuotes ""Test Prophecy 2""";
|
||||||
|
|
||||||
|
// Act
|
||||||
|
var result = _testUtility.Translator.TranslateStringToItemFilterBlock(inputString, _testUtility.MockItemFilterScript);
|
||||||
|
|
||||||
|
// Assert
|
||||||
|
Assert.AreEqual(1, result.BlockItems.Count(b => b is ProphecyBlockItem));
|
||||||
|
var blockItem = result.BlockItems.OfType<ProphecyBlockItem>().First();
|
||||||
|
Assert.Contains("Test Prophecy 1", blockItem.Items);
|
||||||
|
Assert.Contains("TestOneWordProphecyInQuotes", blockItem.Items);
|
||||||
|
Assert.Contains("TestOneWordProphecyNotInQuotes", blockItem.Items);
|
||||||
|
Assert.Contains("Test Prophecy 2", blockItem.Items);
|
||||||
|
}
|
||||||
|
|
||||||
[Test]
|
[Test]
|
||||||
public void TranslateStringToItemFilterBlock_HasExplicitMod_ReturnsCorrectObject()
|
public void TranslateStringToItemFilterBlock_HasExplicitMod_ReturnsCorrectObject()
|
||||||
{
|
{
|
||||||
@@ -900,7 +919,7 @@ namespace Filtration.Parser.Tests.Services
|
|||||||
{
|
{
|
||||||
// Arrange
|
// Arrange
|
||||||
var inputString = "Show" + Environment.NewLine +
|
var inputString = "Show" + Environment.NewLine +
|
||||||
" DisableDropSound True";
|
" DisableDropSound # Test";
|
||||||
|
|
||||||
// Act
|
// Act
|
||||||
var result = _testUtility.Translator.TranslateStringToItemFilterBlock(inputString, _testUtility.MockItemFilterScript);
|
var result = _testUtility.Translator.TranslateStringToItemFilterBlock(inputString, _testUtility.MockItemFilterScript);
|
||||||
@@ -909,7 +928,22 @@ namespace Filtration.Parser.Tests.Services
|
|||||||
|
|
||||||
Assert.AreEqual(1, result.BlockItems.Count(b => b is DisableDropSoundBlockItem));
|
Assert.AreEqual(1, result.BlockItems.Count(b => b is DisableDropSoundBlockItem));
|
||||||
var blockItem = result.BlockItems.OfType<DisableDropSoundBlockItem>().First();
|
var blockItem = result.BlockItems.OfType<DisableDropSoundBlockItem>().First();
|
||||||
Assert.IsTrue(blockItem.BooleanValue);
|
Assert.AreEqual(blockItem.Comment, " Test");
|
||||||
|
}
|
||||||
|
|
||||||
|
[Test]
|
||||||
|
public void TranslateStringToItemFilterBlock_DisableDropSound_IncorrectBooleanValue_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));
|
||||||
}
|
}
|
||||||
|
|
||||||
[Test]
|
[Test]
|
||||||
@@ -934,6 +968,7 @@ namespace Filtration.Parser.Tests.Services
|
|||||||
" ElderMap False" + 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 +
|
||||||
|
@" Prophecy MyProphecy ""Another Prophecy""" + Environment.NewLine +
|
||||||
@" HasExplicitMod MyMod ""Another Mod""" + 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 +
|
||||||
@@ -945,7 +980,7 @@ namespace Filtration.Parser.Tests.Services
|
|||||||
" 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 +
|
" DisableDropSound # False" + Environment.NewLine +
|
||||||
" CustomAlertSound \"test.mp3\" # customSoundTheme" + Environment.NewLine +
|
" CustomAlertSound \"test.mp3\" # customSoundTheme" + Environment.NewLine +
|
||||||
" MinimapIcon 2 Green Triangle # iconTheme" + Environment.NewLine +
|
" MinimapIcon 2 Green Triangle # iconTheme" + Environment.NewLine +
|
||||||
" PlayEffect Green Temp # effectTheme" + Environment.NewLine;
|
" PlayEffect Green Temp # effectTheme" + Environment.NewLine;
|
||||||
@@ -1008,6 +1043,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 prophecyblockItem = result.BlockItems.OfType<ProphecyBlockItem>().First();
|
||||||
|
Assert.AreEqual(2, prophecyblockItem.Items.Count);
|
||||||
|
Assert.Contains("MyProphecy", prophecyblockItem.Items);
|
||||||
|
Assert.Contains("Another Prophecy", prophecyblockItem.Items);
|
||||||
|
|
||||||
var hasExplicitModBlockItem = result.BlockItems.OfType<HasExplicitModBlockItem>().First();
|
var hasExplicitModBlockItem = result.BlockItems.OfType<HasExplicitModBlockItem>().First();
|
||||||
Assert.AreEqual(2, hasExplicitModBlockItem.Items.Count);
|
Assert.AreEqual(2, hasExplicitModBlockItem.Items.Count);
|
||||||
Assert.Contains("MyMod", hasExplicitModBlockItem.Items);
|
Assert.Contains("MyMod", hasExplicitModBlockItem.Items);
|
||||||
@@ -1050,7 +1090,7 @@ namespace Filtration.Parser.Tests.Services
|
|||||||
Assert.AreEqual(0, result.BlockItems.OfType<SoundBlockItem>().Count());
|
Assert.AreEqual(0, result.BlockItems.OfType<SoundBlockItem>().Count());
|
||||||
|
|
||||||
var disableDropSoundBlockItem = result.BlockItems.OfType<DisableDropSoundBlockItem>().First();
|
var disableDropSoundBlockItem = result.BlockItems.OfType<DisableDropSoundBlockItem>().First();
|
||||||
Assert.IsFalse(disableDropSoundBlockItem.BooleanValue);
|
Assert.AreEqual(disableDropSoundBlockItem.Comment, " False");
|
||||||
|
|
||||||
var customSoundBlockItem = result.BlockItems.OfType<CustomSoundBlockItem>().First();
|
var customSoundBlockItem = result.BlockItems.OfType<CustomSoundBlockItem>().First();
|
||||||
Assert.AreEqual("test.mp3", customSoundBlockItem.Value);
|
Assert.AreEqual("test.mp3", customSoundBlockItem.Value);
|
||||||
@@ -1707,6 +1747,26 @@ namespace Filtration.Parser.Tests.Services
|
|||||||
Assert.AreEqual(expectedResult, result);
|
Assert.AreEqual(expectedResult, result);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[Test]
|
||||||
|
public void TranslateItemFilterBlockToString_Prophecies_ReturnsCorrectString()
|
||||||
|
{
|
||||||
|
// Arrange
|
||||||
|
var expectedResult = "Show" + Environment.NewLine +
|
||||||
|
" Prophecy \"Test Prophecy\" \"Another Prophecy\" \"Yet Another Prophecy\"";
|
||||||
|
|
||||||
|
var prophecyBlockItem = new ProphecyBlockItem();
|
||||||
|
prophecyBlockItem.Items.Add("Test Prophecy");
|
||||||
|
prophecyBlockItem.Items.Add("Another Prophecy");
|
||||||
|
prophecyBlockItem.Items.Add("Yet Another Prophecy");
|
||||||
|
_testUtility.TestBlock.BlockItems.Add(prophecyBlockItem);
|
||||||
|
|
||||||
|
// Act
|
||||||
|
var result = _testUtility.Translator.TranslateItemFilterBlockToString(_testUtility.TestBlock);
|
||||||
|
|
||||||
|
// Assert
|
||||||
|
Assert.AreEqual(expectedResult, result);
|
||||||
|
}
|
||||||
|
|
||||||
[Test]
|
[Test]
|
||||||
public void TranslateItemFilterBlockToString_HasExplicitMod_ReturnsCorrectString()
|
public void TranslateItemFilterBlockToString_HasExplicitMod_ReturnsCorrectString()
|
||||||
{
|
{
|
||||||
@@ -2013,13 +2073,14 @@ namespace Filtration.Parser.Tests.Services
|
|||||||
" 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 +
|
||||||
|
" Prophecy \"The Cursed Choir\" \"A Valuable Combination\" \"The Beautiful Guide\"" + Environment.NewLine +
|
||||||
" HasExplicitMod \"Guatelitzi's\" \"of Tacati\" \"Tyrannical\"" + 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" + Environment.NewLine +
|
" PlayAlertSound 6 90" + Environment.NewLine +
|
||||||
" DisableDropSound True" + Environment.NewLine +
|
" DisableDropSound" + Environment.NewLine +
|
||||||
" MinimapIcon 1 Blue Circle" + Environment.NewLine +
|
" MinimapIcon 1 Blue Circle" + Environment.NewLine +
|
||||||
" PlayEffect Red Temp" + Environment.NewLine +
|
" PlayEffect Red Temp" + Environment.NewLine +
|
||||||
" CustomAlertSound \"test.mp3\"";
|
" CustomAlertSound \"test.mp3\"";
|
||||||
@@ -2046,6 +2107,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 prophecyItemblockItem = new ProphecyBlockItem();
|
||||||
|
prophecyItemblockItem.Items.Add("The Cursed Choir");
|
||||||
|
prophecyItemblockItem.Items.Add("A Valuable Combination");
|
||||||
|
prophecyItemblockItem.Items.Add("The Beautiful Guide");
|
||||||
|
_testUtility.TestBlock.BlockItems.Add(prophecyItemblockItem);
|
||||||
var hasExplicitModBlockItem = new HasExplicitModBlockItem();
|
var hasExplicitModBlockItem = new HasExplicitModBlockItem();
|
||||||
hasExplicitModBlockItem.Items.Add("Guatelitzi's");
|
hasExplicitModBlockItem.Items.Add("Guatelitzi's");
|
||||||
hasExplicitModBlockItem.Items.Add("of Tacati");
|
hasExplicitModBlockItem.Items.Add("of Tacati");
|
||||||
@@ -2069,7 +2135,7 @@ namespace Filtration.Parser.Tests.Services
|
|||||||
_testUtility.TestBlock.BlockItems.Add(new MapTierBlockItem(FilterPredicateOperator.LessThan, 10));
|
_testUtility.TestBlock.BlockItems.Add(new MapTierBlockItem(FilterPredicateOperator.LessThan, 10));
|
||||||
_testUtility.TestBlock.BlockItems.Add(new MapIconBlockItem(IconSize.Medium, IconColor.Blue, IconShape.Circle));
|
_testUtility.TestBlock.BlockItems.Add(new MapIconBlockItem(IconSize.Medium, IconColor.Blue, IconShape.Circle));
|
||||||
_testUtility.TestBlock.BlockItems.Add(new PlayEffectBlockItem(EffectColor.Red, true));
|
_testUtility.TestBlock.BlockItems.Add(new PlayEffectBlockItem(EffectColor.Red, true));
|
||||||
_testUtility.TestBlock.BlockItems.Add(new DisableDropSoundBlockItem(true));
|
_testUtility.TestBlock.BlockItems.Add(new DisableDropSoundBlockItem());
|
||||||
|
|
||||||
// Act
|
// Act
|
||||||
var result = _testUtility.Translator.TranslateItemFilterBlockToString(_testUtility.TestBlock);
|
var result = _testUtility.Translator.TranslateItemFilterBlockToString(_testUtility.TestBlock);
|
||||||
|
|||||||
@@ -322,7 +322,13 @@ namespace Filtration.Parser.Tests.Services
|
|||||||
Environment.NewLine +
|
Environment.NewLine +
|
||||||
"Show" + Environment.NewLine +
|
"Show" + Environment.NewLine +
|
||||||
" ItemLevel > 20" + Environment.NewLine +
|
" ItemLevel > 20" + Environment.NewLine +
|
||||||
" SetTextColor 255 255 0";
|
" SetTextColor 255 255 0" + Environment.NewLine +
|
||||||
|
Environment.NewLine +
|
||||||
|
"#Show $Recipes->Glassblower->15% %D1" + Environment.NewLine +
|
||||||
|
"# SetTextColor 255 255 0" + Environment.NewLine +
|
||||||
|
Environment.NewLine +
|
||||||
|
"#Hide simple text without any special character" + Environment.NewLine +
|
||||||
|
"# SetTextColor 255 255 0";
|
||||||
|
|
||||||
|
|
||||||
var blockTranslator = new ItemFilterBlockTranslator(Mock.Of<IBlockGroupHierarchyBuilder>());
|
var blockTranslator = new ItemFilterBlockTranslator(Mock.Of<IBlockGroupHierarchyBuilder>());
|
||||||
@@ -332,15 +338,21 @@ namespace Filtration.Parser.Tests.Services
|
|||||||
var result = translator.TranslateStringToItemFilterScript(testInputScript);
|
var result = translator.TranslateStringToItemFilterScript(testInputScript);
|
||||||
|
|
||||||
// Assert
|
// Assert
|
||||||
Assert.AreEqual(3, result.ItemFilterBlocks.Count);
|
Assert.AreEqual(5, result.ItemFilterBlocks.Count);
|
||||||
|
|
||||||
var firstBlock = result.ItemFilterBlocks.OfType<ItemFilterBlock>().First();
|
var firstBlock = result.ItemFilterBlocks.OfType<ItemFilterBlock>().First();
|
||||||
var secondBlock = result.ItemFilterBlocks.OfType<ItemFilterBlock>().Skip(1).First();
|
var secondBlock = result.ItemFilterBlocks.OfType<ItemFilterBlock>().Skip(1).First();
|
||||||
var thirdBlock = result.ItemFilterBlocks.OfType<ItemFilterBlock>().Skip(2).First();
|
var thirdBlock = result.ItemFilterBlocks.OfType<ItemFilterBlock>().Skip(2).First();
|
||||||
|
var fourthBlock = result.ItemFilterBlocks.OfType<ItemFilterBlock>().Skip(3).First();
|
||||||
|
var fifthBlock = result.ItemFilterBlocks.OfType<ItemFilterBlock>().Skip(4).First();
|
||||||
|
|
||||||
Assert.AreEqual(3, firstBlock.BlockItems.Count);
|
Assert.AreEqual(3, firstBlock.BlockItems.Count);
|
||||||
Assert.AreEqual(5, secondBlock.BlockItems.Count);
|
Assert.AreEqual(5, secondBlock.BlockItems.Count);
|
||||||
Assert.AreEqual(3, thirdBlock.BlockItems.Count);
|
Assert.AreEqual(3, thirdBlock.BlockItems.Count);
|
||||||
|
Assert.AreEqual(2, fourthBlock.BlockItems.Count);
|
||||||
|
Assert.AreEqual(2, fifthBlock.BlockItems.Count);
|
||||||
|
Assert.AreEqual(false, fourthBlock.Enabled);
|
||||||
|
Assert.AreEqual(false, fifthBlock.Enabled);
|
||||||
}
|
}
|
||||||
|
|
||||||
[Test]
|
[Test]
|
||||||
|
|||||||
@@ -159,6 +159,11 @@ namespace Filtration.Parser.Services
|
|||||||
AddStringListItemToBlockItems<BaseTypeBlockItem>(block, trimmedLine);
|
AddStringListItemToBlockItems<BaseTypeBlockItem>(block, trimmedLine);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
case "Prophecy":
|
||||||
|
{
|
||||||
|
AddStringListItemToBlockItems<ProphecyBlockItem>(block, trimmedLine);
|
||||||
|
break;
|
||||||
|
}
|
||||||
case "Corrupted":
|
case "Corrupted":
|
||||||
{
|
{
|
||||||
AddBooleanItemToBlockItems<CorruptedBlockItem>(block, trimmedLine);
|
AddBooleanItemToBlockItems<CorruptedBlockItem>(block, trimmedLine);
|
||||||
@@ -179,6 +184,21 @@ namespace Filtration.Parser.Services
|
|||||||
AddBooleanItemToBlockItems<ShaperItemBlockItem>(block, trimmedLine);
|
AddBooleanItemToBlockItems<ShaperItemBlockItem>(block, trimmedLine);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
case "SynthesisedItem":
|
||||||
|
{
|
||||||
|
AddBooleanItemToBlockItems<SynthesisedItemBlockItem>(block, trimmedLine);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case "FracturedItem":
|
||||||
|
{
|
||||||
|
AddBooleanItemToBlockItems<FracturedItemBlockItem>(block, trimmedLine);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case "AnyEnchantment":
|
||||||
|
{
|
||||||
|
AddBooleanItemToBlockItems<AnyEnchantmentBlockItem>(block, trimmedLine);
|
||||||
|
break;
|
||||||
|
}
|
||||||
case "ShapedMap":
|
case "ShapedMap":
|
||||||
{
|
{
|
||||||
AddBooleanItemToBlockItems<ShapedMapBlockItem>(block, trimmedLine);
|
AddBooleanItemToBlockItems<ShapedMapBlockItem>(block, trimmedLine);
|
||||||
@@ -312,6 +332,11 @@ namespace Filtration.Parser.Services
|
|||||||
AddStringListItemToBlockItems<HasExplicitModBlockItem>(block, trimmedLine);
|
AddStringListItemToBlockItems<HasExplicitModBlockItem>(block, trimmedLine);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
case "HasEnchantment":
|
||||||
|
{
|
||||||
|
AddStringListItemToBlockItems<HasEnchantmentBlockItem>(block, trimmedLine);
|
||||||
|
break;
|
||||||
|
}
|
||||||
case "ElderMap":
|
case "ElderMap":
|
||||||
{
|
{
|
||||||
AddBooleanItemToBlockItems<ElderMapBlockItem>(block, trimmedLine);
|
AddBooleanItemToBlockItems<ElderMapBlockItem>(block, trimmedLine);
|
||||||
@@ -322,7 +347,7 @@ namespace Filtration.Parser.Services
|
|||||||
// Only ever use the last DisableDropSound item encountered as multiples aren't valid.
|
// Only ever use the last DisableDropSound item encountered as multiples aren't valid.
|
||||||
RemoveExistingBlockItemsOfType<DisableDropSoundBlockItem>(block);
|
RemoveExistingBlockItemsOfType<DisableDropSoundBlockItem>(block);
|
||||||
|
|
||||||
AddBooleanItemToBlockItems<DisableDropSoundBlockItem>(block, trimmedLine);
|
AddNilItemToBlockItems<DisableDropSoundBlockItem>(block, trimmedLine);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case "MinimapIcon":
|
case "MinimapIcon":
|
||||||
@@ -344,12 +369,6 @@ namespace Filtration.Parser.Services
|
|||||||
Shape = EnumHelper.GetEnumValueFromDescription<IconShape>(match.Groups[3].Value)
|
Shape = EnumHelper.GetEnumValueFromDescription<IconShape>(match.Groups[3].Value)
|
||||||
};
|
};
|
||||||
|
|
||||||
var themeComponent = _masterComponentCollection.AddComponent(ThemeComponentType.Icon, match.Groups[5].Value.Trim(),
|
|
||||||
blockItemValue.Size, blockItemValue.Color, blockItemValue.Shape);
|
|
||||||
if(match.Groups[4].Value == "#" && !string.IsNullOrWhiteSpace(match.Groups[5].Value))
|
|
||||||
{
|
|
||||||
blockItemValue.ThemeComponent = themeComponent;
|
|
||||||
}
|
|
||||||
block.BlockItems.Add(blockItemValue);
|
block.BlockItems.Add(blockItemValue);
|
||||||
themeComponentType = (int)ThemeComponentType.Icon;
|
themeComponentType = (int)ThemeComponentType.Icon;
|
||||||
}
|
}
|
||||||
@@ -507,6 +526,13 @@ namespace Filtration.Parser.Services
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private static void AddNilItemToBlockItems<T>(IItemFilterBlock block, string inputString) where T : NilBlockItem
|
||||||
|
{
|
||||||
|
var blockItem = Activator.CreateInstance<T>();
|
||||||
|
blockItem.Comment = GetTextAfterFirstComment(inputString);
|
||||||
|
block.BlockItems.Add(blockItem);
|
||||||
|
}
|
||||||
|
|
||||||
private static void AddNumericFilterPredicateItemToBlockItems<T>(IItemFilterBlock block, string inputString) where T : NumericFilterPredicateBlockItem
|
private static void AddNumericFilterPredicateItemToBlockItems<T>(IItemFilterBlock block, string inputString) where T : NumericFilterPredicateBlockItem
|
||||||
{
|
{
|
||||||
var blockItem = Activator.CreateInstance<T>();
|
var blockItem = Activator.CreateInstance<T>();
|
||||||
@@ -561,12 +587,17 @@ namespace Filtration.Parser.Services
|
|||||||
var trimmedLine = line.Trim();
|
var trimmedLine = line.Trim();
|
||||||
if (trimmedLine.IndexOf('#') > 0)
|
if (trimmedLine.IndexOf('#') > 0)
|
||||||
{
|
{
|
||||||
blockComment = trimmedLine.Substring(trimmedLine.IndexOf('#') + 1);
|
blockComment = trimmedLine.Substring(trimmedLine.IndexOf('#') + 1).Trim();
|
||||||
trimmedLine = trimmedLine.Substring(0, trimmedLine.IndexOf('#')).Trim();
|
trimmedLine = trimmedLine.Substring(0, trimmedLine.IndexOf('#')).Trim();
|
||||||
}
|
}
|
||||||
|
|
||||||
switch (matches.Value)
|
switch (matches.Value)
|
||||||
{
|
{
|
||||||
|
case "DisableDropSound":
|
||||||
|
{
|
||||||
|
blockItems.Add(new DisableDropSoundBlockItem());
|
||||||
|
break;
|
||||||
|
}
|
||||||
case "PlayAlertSound":
|
case "PlayAlertSound":
|
||||||
{
|
{
|
||||||
var match = Regex.Match(trimmedLine, @"\s+(\S+) (\d+)");
|
var match = Regex.Match(trimmedLine, @"\s+(\S+) (\d+)");
|
||||||
@@ -581,6 +612,20 @@ namespace Filtration.Parser.Services
|
|||||||
blockItems.Add(blockItem);
|
blockItems.Add(blockItem);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
case "PlayAlertSoundPositional":
|
||||||
|
{
|
||||||
|
var match = Regex.Match(trimmedLine, @"\s+(\S+) (\d+)");
|
||||||
|
if (!match.Success) break;
|
||||||
|
var blockItem = new PositionalSoundBlockItem(match.Groups[1].Value, Convert.ToInt16(match.Groups[2].Value));
|
||||||
|
if(_masterComponentCollection != null && !string.IsNullOrWhiteSpace(blockComment))
|
||||||
|
{
|
||||||
|
ThemeComponent themeComponent = _masterComponentCollection.AddComponent(ThemeComponentType.AlertSound,
|
||||||
|
blockComment, blockItem.Value, blockItem.SecondValue);
|
||||||
|
blockItem.ThemeComponent = themeComponent;
|
||||||
|
}
|
||||||
|
blockItems.Add(blockItem);
|
||||||
|
break;
|
||||||
|
}
|
||||||
case "SetTextColor":
|
case "SetTextColor":
|
||||||
{
|
{
|
||||||
var result = Regex.Matches(trimmedLine, @"([\w\s]*)");
|
var result = Regex.Matches(trimmedLine, @"([\w\s]*)");
|
||||||
@@ -637,6 +682,56 @@ namespace Filtration.Parser.Services
|
|||||||
blockItems.Add(blockItem);
|
blockItems.Add(blockItem);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
case "MinimapIcon":
|
||||||
|
{
|
||||||
|
// TODO: Get size, color, shape values programmatically
|
||||||
|
var match = Regex.Match(trimmedLine,
|
||||||
|
@"\S+\s+(0|1|2)\s+(Red|Green|Blue|Brown|White|Yellow)\s+(Circle|Diamond|Hexagon|Square|Star|Triangle)\s*([#]?)(.*)",
|
||||||
|
RegexOptions.IgnoreCase);
|
||||||
|
|
||||||
|
if (match.Success)
|
||||||
|
{
|
||||||
|
var blockItemValue = new MapIconBlockItem
|
||||||
|
{
|
||||||
|
Size = (IconSize)short.Parse(match.Groups[1].Value),
|
||||||
|
Color = EnumHelper.GetEnumValueFromDescription<IconColor>(match.Groups[2].Value),
|
||||||
|
Shape = EnumHelper.GetEnumValueFromDescription<IconShape>(match.Groups[3].Value)
|
||||||
|
};
|
||||||
|
|
||||||
|
blockItems.Add(blockItemValue);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case "PlayEffect":
|
||||||
|
{
|
||||||
|
// TODO: Get colors programmatically
|
||||||
|
var match = Regex.Match(trimmedLine, @"\S+\s+(Red|Green|Blue|Brown|White|Yellow)\s*(Temp)?", RegexOptions.IgnoreCase);
|
||||||
|
|
||||||
|
if (match.Success)
|
||||||
|
{
|
||||||
|
var blockItemValue = new PlayEffectBlockItem
|
||||||
|
{
|
||||||
|
Color = EnumHelper.GetEnumValueFromDescription<EffectColor>(match.Groups[1].Value),
|
||||||
|
Temporary = match.Groups[2].Value.Trim().ToLower() == "temp"
|
||||||
|
};
|
||||||
|
blockItems.Add(blockItemValue);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case "CustomAlertSound":
|
||||||
|
{
|
||||||
|
var match = Regex.Match(trimmedLine, @"\S+\s+""([^\*\<\>\?|]+)""");
|
||||||
|
|
||||||
|
if (match.Success)
|
||||||
|
{
|
||||||
|
var blockItemValue = new CustomSoundBlockItem
|
||||||
|
{
|
||||||
|
Value = match.Groups[1].Value
|
||||||
|
};
|
||||||
|
blockItems.Add(blockItemValue);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -61,8 +61,7 @@ namespace Filtration.Parser.Services
|
|||||||
lines[i] = lines[i].Trim();
|
lines[i] = lines[i].Trim();
|
||||||
if(!lines[i].StartsWith("#"))
|
if(!lines[i].StartsWith("#"))
|
||||||
{
|
{
|
||||||
string curLine = Regex.Replace(lines[i], @"\s+", "");
|
if ((lines[i].StartsWith("Show") || lines[i].StartsWith("Hide")) && (lines[i].Length == 4 || lines[i][4] == ' ')) // found
|
||||||
if ((curLine.StartsWith("Show") || curLine.StartsWith("Hide")) && (curLine.Length == 4 || curLine[4] == '#')) // found
|
|
||||||
{
|
{
|
||||||
inBlock[i] = true;
|
inBlock[i] = true;
|
||||||
break;
|
break;
|
||||||
@@ -98,8 +97,8 @@ namespace Filtration.Parser.Services
|
|||||||
{
|
{
|
||||||
if (!inDisabledBlock && lines[i].StartsWith("#"))
|
if (!inDisabledBlock && lines[i].StartsWith("#"))
|
||||||
{
|
{
|
||||||
string curLine = Regex.Replace(lines[i].Substring(1), @"\s+", "");
|
string curLine = lines[i].Substring(1).Trim();
|
||||||
if ((curLine.StartsWith("Show") || curLine.StartsWith("Hide")) && (curLine.Length == 4 || curLine[4] == '#') && !inBlock[i])
|
if ((curLine.StartsWith("Show") || curLine.StartsWith("Hide")) && (curLine.Length == 4 || curLine[4] == ' ') && !inBlock[i])
|
||||||
{
|
{
|
||||||
inDisabledBlock = true;
|
inDisabledBlock = true;
|
||||||
lines[i] = lines[i].Substring(1).TrimStart(' ');
|
lines[i] = lines[i].Substring(1).TrimStart(' ');
|
||||||
|
|||||||
@@ -40,7 +40,12 @@
|
|||||||
<Reference Include="FluentAssertions, Version=5.5.3.0, Culture=neutral, PublicKeyToken=33f2691a05b67b6a, processorArchitecture=MSIL">
|
<Reference Include="FluentAssertions, Version=5.5.3.0, Culture=neutral, PublicKeyToken=33f2691a05b67b6a, processorArchitecture=MSIL">
|
||||||
<HintPath>..\packages\FluentAssertions.5.5.3\lib\net45\FluentAssertions.dll</HintPath>
|
<HintPath>..\packages\FluentAssertions.5.5.3\lib\net45\FluentAssertions.dll</HintPath>
|
||||||
</Reference>
|
</Reference>
|
||||||
<Reference Include="Microsoft.WindowsAPICodePack.Shell, Version=1.1.0.0, Culture=neutral, PublicKeyToken=null" />
|
<Reference Include="Microsoft.WindowsAPICodePack, Version=1.1.2.0, Culture=neutral, processorArchitecture=MSIL">
|
||||||
|
<HintPath>..\packages\WindowsAPICodePack-Core.1.1.2\lib\Microsoft.WindowsAPICodePack.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="Microsoft.WindowsAPICodePack.Shell, Version=1.1.0.0, Culture=neutral, processorArchitecture=MSIL">
|
||||||
|
<HintPath>..\packages\WindowsAPICodePack-Shell.1.1.1\lib\Microsoft.WindowsAPICodePack.Shell.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
<Reference Include="Moq, Version=4.10.0.0, Culture=neutral, PublicKeyToken=69f491c39445e920, processorArchitecture=MSIL">
|
<Reference Include="Moq, Version=4.10.0.0, Culture=neutral, PublicKeyToken=69f491c39445e920, processorArchitecture=MSIL">
|
||||||
<HintPath>..\packages\Moq.4.10.0\lib\net45\Moq.dll</HintPath>
|
<HintPath>..\packages\Moq.4.10.0\lib\net45\Moq.dll</HintPath>
|
||||||
</Reference>
|
</Reference>
|
||||||
|
|||||||
@@ -1,9 +1,4 @@
|
|||||||
using System;
|
using Filtration.Common.Services;
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.Linq;
|
|
||||||
using System.Text;
|
|
||||||
using System.Threading.Tasks;
|
|
||||||
using Filtration.Common.Services;
|
|
||||||
using Filtration.Services;
|
using Filtration.Services;
|
||||||
using Microsoft.WindowsAPICodePack.Dialogs;
|
using Microsoft.WindowsAPICodePack.Dialogs;
|
||||||
using Moq;
|
using Moq;
|
||||||
|
|||||||
@@ -7,4 +7,6 @@
|
|||||||
<package id="System.Runtime.CompilerServices.Unsafe" version="4.5.2" targetFramework="net461" />
|
<package id="System.Runtime.CompilerServices.Unsafe" version="4.5.2" targetFramework="net461" />
|
||||||
<package id="System.Threading.Tasks.Extensions" version="4.5.1" targetFramework="net461" />
|
<package id="System.Threading.Tasks.Extensions" version="4.5.1" targetFramework="net461" />
|
||||||
<package id="System.ValueTuple" version="4.5.0" targetFramework="net461" />
|
<package id="System.ValueTuple" version="4.5.0" targetFramework="net461" />
|
||||||
|
<package id="WindowsAPICodePack-Core" version="1.1.2" targetFramework="net461" />
|
||||||
|
<package id="WindowsAPICodePack-Shell" version="1.1.1" targetFramework="net461" />
|
||||||
</packages>
|
</packages>
|
||||||
@@ -158,6 +158,9 @@
|
|||||||
<None Include="app.config" />
|
<None Include="app.config" />
|
||||||
<None Include="packages.config" />
|
<None Include="packages.config" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<WCFMetadata Include="Connected Services\" />
|
||||||
|
</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.
|
||||||
|
|||||||
@@ -186,10 +186,11 @@ namespace Filtration.ThemeEditor.ViewModels
|
|||||||
}
|
}
|
||||||
|
|
||||||
#pragma warning disable 1998
|
#pragma warning disable 1998
|
||||||
public async Task Close()
|
public async Task<bool> Close()
|
||||||
#pragma warning restore 1998
|
#pragma warning restore 1998
|
||||||
{
|
{
|
||||||
Messenger.Default.Send(new ThemeClosedMessage {ClosedViewModel = this});
|
Messenger.Default.Send(new ThemeClosedMessage {ClosedViewModel = this});
|
||||||
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void OnAddThemeComponentCommand(ThemeComponentType themeComponentType)
|
private void OnAddThemeComponentCommand(ThemeComponentType themeComponentType)
|
||||||
|
|||||||
@@ -9,6 +9,7 @@
|
|||||||
xmlns:views="clr-namespace:Filtration.ThemeEditor.Views"
|
xmlns:views="clr-namespace:Filtration.ThemeEditor.Views"
|
||||||
xmlns:extensions="clr-namespace:Filtration.Common.Extensions;assembly=Filtration.Common"
|
xmlns:extensions="clr-namespace:Filtration.Common.Extensions;assembly=Filtration.Common"
|
||||||
xmlns:enums="clr-namespace:Filtration.ObjectModel.Enums;assembly=Filtration.ObjectModel"
|
xmlns:enums="clr-namespace:Filtration.ObjectModel.Enums;assembly=Filtration.ObjectModel"
|
||||||
|
xmlns:utilities="clr-namespace:Filtration.Common.Utilities;assembly=Filtration.Common"
|
||||||
mc:Ignorable="d"
|
mc:Ignorable="d"
|
||||||
d:DataContext="{d:DesignInstance Type=themeEditor:ThemeComponent}"
|
d:DataContext="{d:DesignInstance Type=themeEditor:ThemeComponent}"
|
||||||
d:DesignHeight="100" d:DesignWidth="200">
|
d:DesignHeight="100" d:DesignWidth="200">
|
||||||
@@ -64,7 +65,7 @@
|
|||||||
<ContentControl.Resources>
|
<ContentControl.Resources>
|
||||||
<!-- Color Theme Template -->
|
<!-- Color Theme Template -->
|
||||||
<DataTemplate DataType="{x:Type themeEditor:ColorThemeComponent}">
|
<DataTemplate DataType="{x:Type themeEditor:ColorThemeComponent}">
|
||||||
<xctk:ColorPicker SelectedColor="{Binding Color}" />
|
<xctk:ColorPicker SelectedColor="{Binding Color}" AvailableColors="{x:Static utilities:PathOfExileColors.DefaultColors}" ShowAvailableColors="True" AvailableColorsHeader="Path of Exile Colors" MouseDown="ColorPicker_OnMouseDown" />
|
||||||
</DataTemplate>
|
</DataTemplate>
|
||||||
|
|
||||||
<!-- Integer Theme Template -->
|
<!-- Integer Theme Template -->
|
||||||
|
|||||||
@@ -1,4 +1,6 @@
|
|||||||
namespace Filtration.ThemeEditor.Views
|
using System.Windows.Input;
|
||||||
|
|
||||||
|
namespace Filtration.ThemeEditor.Views
|
||||||
{
|
{
|
||||||
public partial class ThemeComponentControl
|
public partial class ThemeComponentControl
|
||||||
{
|
{
|
||||||
@@ -6,5 +8,13 @@
|
|||||||
{
|
{
|
||||||
InitializeComponent();
|
InitializeComponent();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void ColorPicker_OnMouseDown(object sender, MouseButtonEventArgs e)
|
||||||
|
{
|
||||||
|
// For some reason if we don't mark OnMouseDown events as handled for this control
|
||||||
|
// it ignores them and they end up getting picked up by the parent ListBoxItem instead,
|
||||||
|
// resulting in the Advanced tab not being clickable.
|
||||||
|
e.Handled = true;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -29,7 +29,6 @@
|
|||||||
</ResourceDictionary>
|
</ResourceDictionary>
|
||||||
</UserControl.Resources>
|
</UserControl.Resources>
|
||||||
<Grid Margin="10">
|
<Grid Margin="10">
|
||||||
<ScrollViewer HorizontalScrollBarVisibility="Disabled">
|
|
||||||
<ListView ItemsSource="{Binding Source={StaticResource ComponentsViewSource}}"
|
<ListView ItemsSource="{Binding Source={StaticResource ComponentsViewSource}}"
|
||||||
SelectedItem="{Binding SelectedThemeComponent}"
|
SelectedItem="{Binding SelectedThemeComponent}"
|
||||||
Margin="5"
|
Margin="5"
|
||||||
@@ -73,6 +72,5 @@
|
|||||||
</DataTemplate>
|
</DataTemplate>
|
||||||
</ListView.ItemTemplate>
|
</ListView.ItemTemplate>
|
||||||
</ListView>
|
</ListView>
|
||||||
</ScrollViewer>
|
|
||||||
</Grid>
|
</Grid>
|
||||||
</UserControl>
|
</UserControl>
|
||||||
|
|||||||
@@ -92,7 +92,6 @@ Global
|
|||||||
{E0693972-72C5-4E05-A9C5-A5943E4015C6}.Release|x86.ActiveCfg = Release|Any CPU
|
{E0693972-72C5-4E05-A9C5-A5943E4015C6}.Release|x86.ActiveCfg = Release|Any CPU
|
||||||
{E0693972-72C5-4E05-A9C5-A5943E4015C6}.Release|x86.Build.0 = Release|Any CPU
|
{E0693972-72C5-4E05-A9C5-A5943E4015C6}.Release|x86.Build.0 = Release|Any CPU
|
||||||
{E0693972-72C5-4E05-A9C5-A5943E4015C6}.SquirrelReleasify|Any CPU.ActiveCfg = Release|Any CPU
|
{E0693972-72C5-4E05-A9C5-A5943E4015C6}.SquirrelReleasify|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
{E0693972-72C5-4E05-A9C5-A5943E4015C6}.SquirrelReleasify|Any CPU.Build.0 = Release|Any CPU
|
|
||||||
{E0693972-72C5-4E05-A9C5-A5943E4015C6}.SquirrelReleasify|ARM.ActiveCfg = Release|Any CPU
|
{E0693972-72C5-4E05-A9C5-A5943E4015C6}.SquirrelReleasify|ARM.ActiveCfg = Release|Any CPU
|
||||||
{E0693972-72C5-4E05-A9C5-A5943E4015C6}.SquirrelReleasify|ARM.Build.0 = Release|Any CPU
|
{E0693972-72C5-4E05-A9C5-A5943E4015C6}.SquirrelReleasify|ARM.Build.0 = Release|Any CPU
|
||||||
{E0693972-72C5-4E05-A9C5-A5943E4015C6}.SquirrelReleasify|x64.ActiveCfg = Release|Any CPU
|
{E0693972-72C5-4E05-A9C5-A5943E4015C6}.SquirrelReleasify|x64.ActiveCfg = Release|Any CPU
|
||||||
@@ -140,7 +139,6 @@ Global
|
|||||||
{537BE676-2FF6-4995-B05B-9CFACE852EC9}.Release|x86.ActiveCfg = Release|Any CPU
|
{537BE676-2FF6-4995-B05B-9CFACE852EC9}.Release|x86.ActiveCfg = Release|Any CPU
|
||||||
{537BE676-2FF6-4995-B05B-9CFACE852EC9}.Release|x86.Build.0 = Release|Any CPU
|
{537BE676-2FF6-4995-B05B-9CFACE852EC9}.Release|x86.Build.0 = Release|Any CPU
|
||||||
{537BE676-2FF6-4995-B05B-9CFACE852EC9}.SquirrelReleasify|Any CPU.ActiveCfg = Release|Any CPU
|
{537BE676-2FF6-4995-B05B-9CFACE852EC9}.SquirrelReleasify|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
{537BE676-2FF6-4995-B05B-9CFACE852EC9}.SquirrelReleasify|Any CPU.Build.0 = Release|Any CPU
|
|
||||||
{537BE676-2FF6-4995-B05B-9CFACE852EC9}.SquirrelReleasify|ARM.ActiveCfg = Release|Any CPU
|
{537BE676-2FF6-4995-B05B-9CFACE852EC9}.SquirrelReleasify|ARM.ActiveCfg = Release|Any CPU
|
||||||
{537BE676-2FF6-4995-B05B-9CFACE852EC9}.SquirrelReleasify|ARM.Build.0 = Release|Any CPU
|
{537BE676-2FF6-4995-B05B-9CFACE852EC9}.SquirrelReleasify|ARM.Build.0 = Release|Any CPU
|
||||||
{537BE676-2FF6-4995-B05B-9CFACE852EC9}.SquirrelReleasify|x64.ActiveCfg = Release|Any CPU
|
{537BE676-2FF6-4995-B05B-9CFACE852EC9}.SquirrelReleasify|x64.ActiveCfg = Release|Any CPU
|
||||||
@@ -188,7 +186,6 @@ Global
|
|||||||
{450AC313-BF25-4BFD-A066-9F39F026FDCF}.Release|x86.ActiveCfg = Release|Any CPU
|
{450AC313-BF25-4BFD-A066-9F39F026FDCF}.Release|x86.ActiveCfg = Release|Any CPU
|
||||||
{450AC313-BF25-4BFD-A066-9F39F026FDCF}.Release|x86.Build.0 = Release|Any CPU
|
{450AC313-BF25-4BFD-A066-9F39F026FDCF}.Release|x86.Build.0 = Release|Any CPU
|
||||||
{450AC313-BF25-4BFD-A066-9F39F026FDCF}.SquirrelReleasify|Any CPU.ActiveCfg = Release|Any CPU
|
{450AC313-BF25-4BFD-A066-9F39F026FDCF}.SquirrelReleasify|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
{450AC313-BF25-4BFD-A066-9F39F026FDCF}.SquirrelReleasify|Any CPU.Build.0 = Release|Any CPU
|
|
||||||
{450AC313-BF25-4BFD-A066-9F39F026FDCF}.SquirrelReleasify|ARM.ActiveCfg = Release|Any CPU
|
{450AC313-BF25-4BFD-A066-9F39F026FDCF}.SquirrelReleasify|ARM.ActiveCfg = Release|Any CPU
|
||||||
{450AC313-BF25-4BFD-A066-9F39F026FDCF}.SquirrelReleasify|ARM.Build.0 = Release|Any CPU
|
{450AC313-BF25-4BFD-A066-9F39F026FDCF}.SquirrelReleasify|ARM.Build.0 = Release|Any CPU
|
||||||
{450AC313-BF25-4BFD-A066-9F39F026FDCF}.SquirrelReleasify|x64.ActiveCfg = Release|Any CPU
|
{450AC313-BF25-4BFD-A066-9F39F026FDCF}.SquirrelReleasify|x64.ActiveCfg = Release|Any CPU
|
||||||
@@ -260,7 +257,6 @@ Global
|
|||||||
{1E42A658-45C4-4DD9-83C5-2A10728DBDFA}.Release|x86.ActiveCfg = Release|Any CPU
|
{1E42A658-45C4-4DD9-83C5-2A10728DBDFA}.Release|x86.ActiveCfg = Release|Any CPU
|
||||||
{1E42A658-45C4-4DD9-83C5-2A10728DBDFA}.Release|x86.Build.0 = Release|Any CPU
|
{1E42A658-45C4-4DD9-83C5-2A10728DBDFA}.Release|x86.Build.0 = Release|Any CPU
|
||||||
{1E42A658-45C4-4DD9-83C5-2A10728DBDFA}.SquirrelReleasify|Any CPU.ActiveCfg = Release|Any CPU
|
{1E42A658-45C4-4DD9-83C5-2A10728DBDFA}.SquirrelReleasify|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
{1E42A658-45C4-4DD9-83C5-2A10728DBDFA}.SquirrelReleasify|Any CPU.Build.0 = Release|Any CPU
|
|
||||||
{1E42A658-45C4-4DD9-83C5-2A10728DBDFA}.SquirrelReleasify|ARM.ActiveCfg = Release|Any CPU
|
{1E42A658-45C4-4DD9-83C5-2A10728DBDFA}.SquirrelReleasify|ARM.ActiveCfg = Release|Any CPU
|
||||||
{1E42A658-45C4-4DD9-83C5-2A10728DBDFA}.SquirrelReleasify|ARM.Build.0 = Release|Any CPU
|
{1E42A658-45C4-4DD9-83C5-2A10728DBDFA}.SquirrelReleasify|ARM.Build.0 = Release|Any CPU
|
||||||
{1E42A658-45C4-4DD9-83C5-2A10728DBDFA}.SquirrelReleasify|x64.ActiveCfg = Release|Any CPU
|
{1E42A658-45C4-4DD9-83C5-2A10728DBDFA}.SquirrelReleasify|x64.ActiveCfg = Release|Any CPU
|
||||||
@@ -308,7 +304,6 @@ Global
|
|||||||
{58CD3B9C-EBBA-4527-A81C-78B7EA9CA298}.Release|x86.ActiveCfg = Release|Any CPU
|
{58CD3B9C-EBBA-4527-A81C-78B7EA9CA298}.Release|x86.ActiveCfg = Release|Any CPU
|
||||||
{58CD3B9C-EBBA-4527-A81C-78B7EA9CA298}.Release|x86.Build.0 = Release|Any CPU
|
{58CD3B9C-EBBA-4527-A81C-78B7EA9CA298}.Release|x86.Build.0 = Release|Any CPU
|
||||||
{58CD3B9C-EBBA-4527-A81C-78B7EA9CA298}.SquirrelReleasify|Any CPU.ActiveCfg = Release|Any CPU
|
{58CD3B9C-EBBA-4527-A81C-78B7EA9CA298}.SquirrelReleasify|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
{58CD3B9C-EBBA-4527-A81C-78B7EA9CA298}.SquirrelReleasify|Any CPU.Build.0 = Release|Any CPU
|
|
||||||
{58CD3B9C-EBBA-4527-A81C-78B7EA9CA298}.SquirrelReleasify|ARM.ActiveCfg = Release|Any CPU
|
{58CD3B9C-EBBA-4527-A81C-78B7EA9CA298}.SquirrelReleasify|ARM.ActiveCfg = Release|Any CPU
|
||||||
{58CD3B9C-EBBA-4527-A81C-78B7EA9CA298}.SquirrelReleasify|ARM.Build.0 = Release|Any CPU
|
{58CD3B9C-EBBA-4527-A81C-78B7EA9CA298}.SquirrelReleasify|ARM.Build.0 = Release|Any CPU
|
||||||
{58CD3B9C-EBBA-4527-A81C-78B7EA9CA298}.SquirrelReleasify|x64.ActiveCfg = Release|Any CPU
|
{58CD3B9C-EBBA-4527-A81C-78B7EA9CA298}.SquirrelReleasify|x64.ActiveCfg = Release|Any CPU
|
||||||
@@ -380,7 +375,6 @@ Global
|
|||||||
{1F30CF6D-A5BF-4777-B8BA-E34F439FE8E5}.Release|x86.ActiveCfg = Release|Any CPU
|
{1F30CF6D-A5BF-4777-B8BA-E34F439FE8E5}.Release|x86.ActiveCfg = Release|Any CPU
|
||||||
{1F30CF6D-A5BF-4777-B8BA-E34F439FE8E5}.Release|x86.Build.0 = Release|Any CPU
|
{1F30CF6D-A5BF-4777-B8BA-E34F439FE8E5}.Release|x86.Build.0 = Release|Any CPU
|
||||||
{1F30CF6D-A5BF-4777-B8BA-E34F439FE8E5}.SquirrelReleasify|Any CPU.ActiveCfg = Release|Any CPU
|
{1F30CF6D-A5BF-4777-B8BA-E34F439FE8E5}.SquirrelReleasify|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
{1F30CF6D-A5BF-4777-B8BA-E34F439FE8E5}.SquirrelReleasify|Any CPU.Build.0 = Release|Any CPU
|
|
||||||
{1F30CF6D-A5BF-4777-B8BA-E34F439FE8E5}.SquirrelReleasify|ARM.ActiveCfg = Release|Any CPU
|
{1F30CF6D-A5BF-4777-B8BA-E34F439FE8E5}.SquirrelReleasify|ARM.ActiveCfg = Release|Any CPU
|
||||||
{1F30CF6D-A5BF-4777-B8BA-E34F439FE8E5}.SquirrelReleasify|ARM.Build.0 = Release|Any CPU
|
{1F30CF6D-A5BF-4777-B8BA-E34F439FE8E5}.SquirrelReleasify|ARM.Build.0 = Release|Any CPU
|
||||||
{1F30CF6D-A5BF-4777-B8BA-E34F439FE8E5}.SquirrelReleasify|x64.ActiveCfg = Release|Any CPU
|
{1F30CF6D-A5BF-4777-B8BA-E34F439FE8E5}.SquirrelReleasify|x64.ActiveCfg = Release|Any CPU
|
||||||
@@ -428,7 +422,6 @@ Global
|
|||||||
{7A5720DE-A41B-47EA-AAAB-7C5608FF0C1F}.Release|x86.ActiveCfg = Release|Any CPU
|
{7A5720DE-A41B-47EA-AAAB-7C5608FF0C1F}.Release|x86.ActiveCfg = Release|Any CPU
|
||||||
{7A5720DE-A41B-47EA-AAAB-7C5608FF0C1F}.Release|x86.Build.0 = Release|Any CPU
|
{7A5720DE-A41B-47EA-AAAB-7C5608FF0C1F}.Release|x86.Build.0 = Release|Any CPU
|
||||||
{7A5720DE-A41B-47EA-AAAB-7C5608FF0C1F}.SquirrelReleasify|Any CPU.ActiveCfg = Release|Any CPU
|
{7A5720DE-A41B-47EA-AAAB-7C5608FF0C1F}.SquirrelReleasify|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
{7A5720DE-A41B-47EA-AAAB-7C5608FF0C1F}.SquirrelReleasify|Any CPU.Build.0 = Release|Any CPU
|
|
||||||
{7A5720DE-A41B-47EA-AAAB-7C5608FF0C1F}.SquirrelReleasify|ARM.ActiveCfg = Release|Any CPU
|
{7A5720DE-A41B-47EA-AAAB-7C5608FF0C1F}.SquirrelReleasify|ARM.ActiveCfg = Release|Any CPU
|
||||||
{7A5720DE-A41B-47EA-AAAB-7C5608FF0C1F}.SquirrelReleasify|ARM.Build.0 = Release|Any CPU
|
{7A5720DE-A41B-47EA-AAAB-7C5608FF0C1F}.SquirrelReleasify|ARM.Build.0 = Release|Any CPU
|
||||||
{7A5720DE-A41B-47EA-AAAB-7C5608FF0C1F}.SquirrelReleasify|x64.ActiveCfg = Release|Any CPU
|
{7A5720DE-A41B-47EA-AAAB-7C5608FF0C1F}.SquirrelReleasify|x64.ActiveCfg = Release|Any CPU
|
||||||
|
|||||||
@@ -4,9 +4,6 @@
|
|||||||
<sectionGroup name="userSettings" type="System.Configuration.UserSettingsGroup, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
<sectionGroup name="userSettings" type="System.Configuration.UserSettingsGroup, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||||
<section name="Filtration.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" allowExeDefinition="MachineToLocalUser" requirePermission="false" />
|
<section name="Filtration.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" allowExeDefinition="MachineToLocalUser" requirePermission="false" />
|
||||||
</sectionGroup>
|
</sectionGroup>
|
||||||
<sectionGroup name="applicationSettings" type="System.Configuration.ApplicationSettingsGroup, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
|
||||||
<section name="Filtration.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
|
|
||||||
</sectionGroup>
|
|
||||||
</configSections>
|
</configSections>
|
||||||
<startup>
|
<startup>
|
||||||
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6.1" />
|
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6.1" />
|
||||||
@@ -19,18 +16,6 @@
|
|||||||
<setting name="ExtraLineBetweenBlocks" serializeAs="String">
|
<setting name="ExtraLineBetweenBlocks" serializeAs="String">
|
||||||
<value>True</value>
|
<value>True</value>
|
||||||
</setting>
|
</setting>
|
||||||
<setting name="SuppressUpdatesUpToVersionMajorPart" serializeAs="String">
|
|
||||||
<value>0</value>
|
|
||||||
</setting>
|
|
||||||
<setting name="SuppressUpdates" serializeAs="String">
|
|
||||||
<value>False</value>
|
|
||||||
</setting>
|
|
||||||
<setting name="SuppressUpdatesUpToVersionMinorPart" serializeAs="String">
|
|
||||||
<value>0</value>
|
|
||||||
</setting>
|
|
||||||
<setting name="StaticDataLastUpdated" serializeAs="String">
|
|
||||||
<value>2016-01-01</value>
|
|
||||||
</setting>
|
|
||||||
<setting name="DownloadPrereleaseUpdates" serializeAs="String">
|
<setting name="DownloadPrereleaseUpdates" serializeAs="String">
|
||||||
<value>False</value>
|
<value>False</value>
|
||||||
</setting>
|
</setting>
|
||||||
@@ -79,17 +64,4 @@
|
|||||||
</dependentAssembly>
|
</dependentAssembly>
|
||||||
</assemblyBinding>
|
</assemblyBinding>
|
||||||
</runtime>
|
</runtime>
|
||||||
<applicationSettings>
|
|
||||||
<Filtration.Properties.Settings>
|
|
||||||
<setting name="ItemBaseTypesStaticDataUrl" serializeAs="String">
|
|
||||||
<value>http://ben-wallis.github.io/Filtration/ItemBaseTypes.txt</value>
|
|
||||||
</setting>
|
|
||||||
<setting name="ItemClassesStaticDataUrl" serializeAs="String">
|
|
||||||
<value>http://ben-wallis.github.io/Filtration/ItemClasses.txt</value>
|
|
||||||
</setting>
|
|
||||||
<setting name="UpdateDataUrl" serializeAs="String">
|
|
||||||
<value>http://ben-wallis.github.io/Filtration/filtration_version.xml</value>
|
|
||||||
</setting>
|
|
||||||
</Filtration.Properties.Settings>
|
|
||||||
</applicationSettings>
|
|
||||||
</configuration>
|
</configuration>
|
||||||
|
|||||||
31
Filtration/Converters/DisabledDefaultSoundConverter.cs
Normal file
31
Filtration/Converters/DisabledDefaultSoundConverter.cs
Normal file
@@ -0,0 +1,31 @@
|
|||||||
|
using System;
|
||||||
|
using System.Globalization;
|
||||||
|
using System.Windows.Data;
|
||||||
|
using System.Windows.Media.Imaging;
|
||||||
|
|
||||||
|
namespace Filtration.Converters
|
||||||
|
{
|
||||||
|
public class DisabledDefaultSoundConverter : IValueConverter
|
||||||
|
{
|
||||||
|
private static readonly BitmapImage _soundIcon;
|
||||||
|
private static readonly BitmapImage _soundDDSIcon;
|
||||||
|
|
||||||
|
static DisabledDefaultSoundConverter()
|
||||||
|
{
|
||||||
|
var soundUri = new Uri("pack://application:,,,/Filtration;component/Resources/Icons/sound.png", UriKind.Absolute);
|
||||||
|
var soundDDSUri = new Uri("pack://application:,,,/Filtration;component/Resources/Icons/sound_dds.png", UriKind.Absolute);
|
||||||
|
_soundIcon = new BitmapImage(soundUri);
|
||||||
|
_soundDDSIcon = new BitmapImage(soundDDSUri);
|
||||||
|
}
|
||||||
|
|
||||||
|
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
|
||||||
|
{
|
||||||
|
return (bool)value ? _soundDDSIcon : _soundIcon;
|
||||||
|
}
|
||||||
|
|
||||||
|
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
|
||||||
|
{
|
||||||
|
return ReferenceEquals(value, _soundDDSIcon);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,38 @@
|
|||||||
|
using System;
|
||||||
|
using System.Globalization;
|
||||||
|
using System.Windows;
|
||||||
|
using System.Windows.Data;
|
||||||
|
|
||||||
|
namespace Filtration.Converters
|
||||||
|
{
|
||||||
|
class DisabledDefaultSoundTooltipConverter : IMultiValueConverter
|
||||||
|
{
|
||||||
|
private static readonly string appendage = "\nNote: the default drop sound is disabled for this block.";
|
||||||
|
|
||||||
|
public object Convert(object[] values, Type targetType, object parameter, CultureInfo culture)
|
||||||
|
{
|
||||||
|
if (values[0] == DependencyProperty.UnsetValue ||
|
||||||
|
values[1] == DependencyProperty.UnsetValue)
|
||||||
|
{
|
||||||
|
return string.Empty;
|
||||||
|
}
|
||||||
|
|
||||||
|
var baseText = (string)(values[0]);
|
||||||
|
var hasDisabledDefaultSound = (bool)(values[1]);
|
||||||
|
|
||||||
|
if (hasDisabledDefaultSound)
|
||||||
|
{
|
||||||
|
return $"{baseText}{appendage}";
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
return baseText;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public object[] ConvertBack(object value, Type[] targetType, object parameter, CultureInfo culture)
|
||||||
|
{
|
||||||
|
throw new NotImplementedException();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -210,6 +210,8 @@
|
|||||||
<Compile Include="Converters\BooleanToBlockActionInverseConverter.cs" />
|
<Compile Include="Converters\BooleanToBlockActionInverseConverter.cs" />
|
||||||
<Compile Include="Converters\BooleanToBlockActionConverter.cs" />
|
<Compile Include="Converters\BooleanToBlockActionConverter.cs" />
|
||||||
<Compile Include="Converters\BlockItemToRemoveEnabledVisibilityConverter.cs" />
|
<Compile Include="Converters\BlockItemToRemoveEnabledVisibilityConverter.cs" />
|
||||||
|
<Compile Include="Converters\DisabledDefaultSoundConverter.cs" />
|
||||||
|
<Compile Include="Converters\DisabledDefaultSoundTooltipConverter.cs" />
|
||||||
<Compile Include="Converters\MinimapIconToCroppedBitmapConverter.cs" />
|
<Compile Include="Converters\MinimapIconToCroppedBitmapConverter.cs" />
|
||||||
<Compile Include="Converters\HashSignRemovalConverter.cs" />
|
<Compile Include="Converters\HashSignRemovalConverter.cs" />
|
||||||
<Compile Include="Converters\ItemRarityConverter.cs" />
|
<Compile Include="Converters\ItemRarityConverter.cs" />
|
||||||
@@ -248,6 +250,7 @@
|
|||||||
<DependentUpon>ThemeComponentSelectionControl.xaml</DependentUpon>
|
<DependentUpon>ThemeComponentSelectionControl.xaml</DependentUpon>
|
||||||
</Compile>
|
</Compile>
|
||||||
<Compile Include="ViewModels\DesignTime\DesignTimeItemFilterBlockViewModel.cs" />
|
<Compile Include="ViewModels\DesignTime\DesignTimeItemFilterBlockViewModel.cs" />
|
||||||
|
<Compile Include="Utility\SplatNLogAdapter.cs" />
|
||||||
<Compile Include="ViewModels\DesignTime\DesignTimeSettingsPageViewModel.cs" />
|
<Compile Include="ViewModels\DesignTime\DesignTimeSettingsPageViewModel.cs" />
|
||||||
<Compile Include="Views\AttachedProperties\SelectedItemsAttachedProperty.cs" />
|
<Compile Include="Views\AttachedProperties\SelectedItemsAttachedProperty.cs" />
|
||||||
<Compile Include="Utility\RoutedCommandHandler.cs" />
|
<Compile Include="Utility\RoutedCommandHandler.cs" />
|
||||||
@@ -278,7 +281,6 @@
|
|||||||
</Compile>
|
</Compile>
|
||||||
<Compile Include="Views\Behaviors\BindableSelectedItemBehavior.cs" />
|
<Compile Include="Views\Behaviors\BindableSelectedItemBehavior.cs" />
|
||||||
<Compile Include="Views\BindingProxy.cs" />
|
<Compile Include="Views\BindingProxy.cs" />
|
||||||
<Compile Include="Views\PathOfExileColors.cs" />
|
|
||||||
<Compile Include="Views\SettingsPageView.xaml.cs">
|
<Compile Include="Views\SettingsPageView.xaml.cs">
|
||||||
<DependentUpon>SettingsPageView.xaml</DependentUpon>
|
<DependentUpon>SettingsPageView.xaml</DependentUpon>
|
||||||
</Compile>
|
</Compile>
|
||||||
@@ -461,6 +463,12 @@
|
|||||||
<DependentUpon>Settings.settings</DependentUpon>
|
<DependentUpon>Settings.settings</DependentUpon>
|
||||||
<DesignTimeSharedInput>True</DesignTimeSharedInput>
|
<DesignTimeSharedInput>True</DesignTimeSharedInput>
|
||||||
</Compile>
|
</Compile>
|
||||||
|
<EmbeddedResource Include="Resources\Enchantments.txt" />
|
||||||
|
<Resource Include="Resources\Icons\no_sound_dds_light.png" />
|
||||||
|
<Resource Include="Resources\Icons\no_sound_dds.png" />
|
||||||
|
<Resource Include="Resources\Icons\speaker_icon.png" />
|
||||||
|
<Resource Include="Resources\Icons\sound_dds.png" />
|
||||||
|
<EmbeddedResource Include="Resources\Prophecies.txt" />
|
||||||
<EmbeddedResource Include="Resources\ItemMods.txt" />
|
<EmbeddedResource Include="Resources\ItemMods.txt" />
|
||||||
<Resource Include="Resources\loading_spinner.gif" />
|
<Resource Include="Resources\loading_spinner.gif" />
|
||||||
<EmbeddedResource Include="Properties\Resources.resx">
|
<EmbeddedResource Include="Properties\Resources.resx">
|
||||||
@@ -504,7 +512,7 @@
|
|||||||
<Resource Include="Resources\Icons\open_icon.png" />
|
<Resource Include="Resources\Icons\open_icon.png" />
|
||||||
<Resource Include="Resources\Icons\arrow_down_large_icon.png" />
|
<Resource Include="Resources\Icons\arrow_down_large_icon.png" />
|
||||||
<Resource Include="Resources\Icons\arrow_up_large_icon.png" />
|
<Resource Include="Resources\Icons\arrow_up_large_icon.png" />
|
||||||
<Resource Include="Resources\Icons\speaker_icon.png" />
|
<Resource Include="Resources\Icons\sound.png" />
|
||||||
<Resource Include="Resources\Icons\play_icon.png" />
|
<Resource Include="Resources\Icons\play_icon.png" />
|
||||||
<Resource Include="Resources\Icons\arrow_top_icon.png" />
|
<Resource Include="Resources\Icons\arrow_top_icon.png" />
|
||||||
<Resource Include="Resources\Icons\arrow_bottom_icon.png" />
|
<Resource Include="Resources\Icons\arrow_bottom_icon.png" />
|
||||||
|
|||||||
@@ -8,22 +8,17 @@
|
|||||||
<authors>Ben Wallis</authors>
|
<authors>Ben Wallis</authors>
|
||||||
<description>A Path of Exile loot filter script editor</description>
|
<description>A Path of Exile loot filter script editor</description>
|
||||||
<requireLicenseAcceptance>false</requireLicenseAcceptance>
|
<requireLicenseAcceptance>false</requireLicenseAcceptance>
|
||||||
<copyright>Copyright 2018</copyright>
|
<copyright>Copyright 2019</copyright>
|
||||||
<releaseNotes>* All open filter scripts are now remembered on exit and reopened when the application is started rather than just the last opened one (#95)
|
<releaseNotes>* Added support for AnyEnchantment block item type
|
||||||
* Filter sections are once again now expanded by default when scripts are opened, unless the new "Auto-expand all sections when opening scripts" setting is disabled
|
* Added support for HasEnchantment block item type
|
||||||
* A new Clear Styles button has been added which removes all styles from the selected block (#96)
|
* Added support for FracturedItem block item type
|
||||||
* The Enable/Disable Block toggle button is now visible on both the Regular Block Items and Appearance Block Items views
|
* Added support for SynthesisedItem block item type
|
||||||
* When there are too many block items to fit horizontally in a block a horizontal scrollbar will now appear
|
* Fixed parsing of disabled Show/Hide blocks with extra information following the Show/Hide keyword (#133)
|
||||||
* Fixed the application freezing for a long period of time when Ctrl+A (Select All) is performed
|
* Fixed copy/pasted block styles not affecting the preview (#126) </releaseNotes>
|
||||||
* Fixed the Switch to Appearance/Regular Block Items text overlapping block items
|
|
||||||
* Fixed theme saving (blank theme files were being saved) (#83)
|
|
||||||
* Fixed checkboxes in Block Group Browser (#97)
|
|
||||||
* Fixed the Select Path of Exile data directory dialog appearing after every upgrade (#94)
|
|
||||||
* Fixed an issue where custom sounds were only populated from the default Path of Exile data directory rather than the configured directory
|
|
||||||
* Clean installs no longer prompt to select the Path of Exile data directory if the default directory exists</releaseNotes>
|
|
||||||
<dependencies />
|
<dependencies />
|
||||||
</metadata>
|
</metadata>
|
||||||
<files>
|
<files>
|
||||||
<file src="*.*" target="lib\net45\" exclude="*.pdb;*.nupkg;*.vshost.*;*.xml"/>
|
<file src="*.*" target="lib\net45\" exclude="*.pdb;*.nupkg;*.vshost.*;*.xml;*.log"/>
|
||||||
|
<file src="Resources\AlertSounds\*.mp3" target="lib\net45\Resources\AlertSounds\" />
|
||||||
</files>
|
</files>
|
||||||
</package>
|
</package>
|
||||||
@@ -10,15 +10,21 @@
|
|||||||
layout="${longdate} ${uppercase:${level}} ${message}" />
|
layout="${longdate} ${uppercase:${level}} ${message}" />
|
||||||
<target xsi:type="File" name="fDebug" fileName="${basedir}/Filtration_debug_${shortdate}.log"
|
<target xsi:type="File" name="fDebug" fileName="${basedir}/Filtration_debug_${shortdate}.log"
|
||||||
layout="${longdate} ${uppercase:${level}} ${message}" />
|
layout="${longdate} ${uppercase:${level}} ${message}" />
|
||||||
|
<target xsi:type="File" name="fUpdater" fileName="${basedir}/Filtration_updater_${shortdate}.log"
|
||||||
|
layout="${longdate} ${uppercase:${level}} ${message}" />
|
||||||
<target xsi:type="Debugger" name="cDebug" layout="${longdate} ${uppercase:${level}} ${message}"/>
|
<target xsi:type="Debugger" name="cDebug" layout="${longdate} ${uppercase:${level}} ${message}"/>
|
||||||
</targets>
|
</targets>
|
||||||
|
|
||||||
<rules>
|
<rules>
|
||||||
|
|
||||||
|
<!-- Squirrel Updater Log-->
|
||||||
|
<logger name="SquirrelLogger" minlevel="Trace" writeTo="fUpdater" />
|
||||||
|
|
||||||
<!-- Uncomment the Debug line to enable Debug logging -->
|
<!-- Uncomment the Debug line to enable Debug logging -->
|
||||||
<!--<logger name="*" minlevel="Debug" writeTo="fDebug" final="true" />-->
|
<!--<logger name="*" minlevel="Debug" writeTo="fDebug" final="true" />-->
|
||||||
<logger name="*" minlevel="Error" writeTo="fErrors" />
|
<logger name="*" minlevel="Error" writeTo="fErrors" />
|
||||||
<logger name="*" minlevel="Trace" writeTo="cDebug" />
|
<logger name="*" minlevel="Trace" writeTo="cDebug" />
|
||||||
|
|
||||||
|
|
||||||
</rules>
|
</rules>
|
||||||
</nlog>
|
</nlog>
|
||||||
@@ -10,8 +10,8 @@ using System.Runtime.CompilerServices;
|
|||||||
[assembly: AssemblyTrademark("")]
|
[assembly: AssemblyTrademark("")]
|
||||||
[assembly: AssemblyCulture("")]
|
[assembly: AssemblyCulture("")]
|
||||||
|
|
||||||
[assembly: AssemblyVersion("1.1.0")]
|
[assembly: AssemblyVersion("1.2.0")]
|
||||||
[assembly: AssemblyInformationalVersion("1.1.0-beta3")]
|
[assembly: AssemblyInformationalVersion("1.2.0")]
|
||||||
|
|
||||||
[assembly: InternalsVisibleTo("Filtration.Tests")]
|
[assembly: InternalsVisibleTo("Filtration.Tests")]
|
||||||
[assembly: InternalsVisibleTo("Filtration.ItemFilterPreview.Tests")]
|
[assembly: InternalsVisibleTo("Filtration.ItemFilterPreview.Tests")]
|
||||||
|
|||||||
46
Filtration/Properties/Resources.Designer.cs
generated
46
Filtration/Properties/Resources.Designer.cs
generated
@@ -225,19 +225,21 @@ namespace Filtration.Properties {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Looks up a localized string similar to A Mother's Parting Gift
|
/// Looks up a localized string similar to A Dab of Ink
|
||||||
|
///A Mother's Parting Gift
|
||||||
///Abandoned Wealth
|
///Abandoned Wealth
|
||||||
///Aberrant Fossil
|
///Aberrant Fossil
|
||||||
///Abyssal Axe
|
///Abyssal Axe
|
||||||
///Abyssal Cry
|
///Abyssal Cry
|
||||||
///Abyssal Sceptre
|
///Abyssal Sceptre
|
||||||
///Academy Map
|
///Academy Map
|
||||||
///Acid Lakes Map
|
///Acid Caverns Map
|
||||||
///Added Chaos Damage Support
|
///Added Chaos Damage Support
|
||||||
///Added Cold Damage Support
|
///Added Cold Damage Support
|
||||||
///Added Fire Damage Support
|
///Added Fire Damage Support
|
||||||
///Added Lightning Damage Support
|
///Added Lightning Damage Support
|
||||||
///Additional Accuracy Support
|
///Additional Accuracy Support
|
||||||
|
///Advanced Traps Support
|
||||||
///Aetheric Fossil
|
///Aetheric Fossil
|
||||||
///Agate Amulet
|
///Agate Amulet
|
||||||
///Albino Rhoa Feather
|
///Albino Rhoa Feather
|
||||||
@@ -251,10 +253,7 @@ namespace Filtration.Properties {
|
|||||||
///Amber Amulet
|
///Amber Amulet
|
||||||
///Ambush Boots
|
///Ambush Boots
|
||||||
///Ambush Leaguestone
|
///Ambush Leaguestone
|
||||||
///Ambush Mitts
|
///Ambush [rest of string was truncated]";.
|
||||||
///Ambusher
|
|
||||||
///Amethyst Flask
|
|
||||||
///Amethyst [rest of string was truncated]";.
|
|
||||||
/// </summary>
|
/// </summary>
|
||||||
internal static string ItemBaseTypes {
|
internal static string ItemBaseTypes {
|
||||||
get {
|
get {
|
||||||
@@ -266,7 +265,7 @@ namespace Filtration.Properties {
|
|||||||
/// Looks up a localized string similar to Abyss Jewel
|
/// Looks up a localized string similar to Abyss Jewel
|
||||||
///Active Skill Gems
|
///Active Skill Gems
|
||||||
///Amulets
|
///Amulets
|
||||||
///Axe
|
///Axes
|
||||||
///Belts
|
///Belts
|
||||||
///Body Armours
|
///Body Armours
|
||||||
///Boots
|
///Boots
|
||||||
@@ -288,12 +287,13 @@ namespace Filtration.Properties {
|
|||||||
///Labyrinth Map Item
|
///Labyrinth Map Item
|
||||||
///Labyrinth Trinket
|
///Labyrinth Trinket
|
||||||
///Large Relics
|
///Large Relics
|
||||||
///Leaguestone
|
///Leaguestones
|
||||||
///Life Flasks
|
///Life Flasks
|
||||||
///Mace
|
///Maces
|
||||||
///Mana Flasks
|
///Mana Flasks
|
||||||
///Map Fragments
|
///Map Fragments
|
||||||
///Maps
|
///Maps
|
||||||
|
///Medium Relics
|
||||||
///Misc Map Items
|
///Misc Map Items
|
||||||
///One Hand Axes
|
///One Hand Axes
|
||||||
///One Hand Maces
|
///One Hand Maces
|
||||||
@@ -302,14 +302,12 @@ namespace Filtration.Properties {
|
|||||||
///Piece
|
///Piece
|
||||||
///Quest Items
|
///Quest Items
|
||||||
///Quivers
|
///Quivers
|
||||||
|
///Relics
|
||||||
///Rings
|
///Rings
|
||||||
///Sceptres
|
///Sceptres
|
||||||
///Shields
|
///Shields
|
||||||
///Stackable Currency
|
///Small Relics
|
||||||
///Staves
|
///Stackable Curre [rest of string was truncated]";.
|
||||||
///Support Skill Gems
|
|
||||||
///Sword
|
|
||||||
///T [rest of string was truncated]";.
|
|
||||||
/// </summary>
|
/// </summary>
|
||||||
internal static string ItemClasses {
|
internal static string ItemClasses {
|
||||||
get {
|
get {
|
||||||
@@ -382,6 +380,26 @@ namespace Filtration.Properties {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Looks up a localized string similar to A Gracious Master.
|
||||||
|
/// </summary>
|
||||||
|
internal static string Prophecies {
|
||||||
|
get {
|
||||||
|
return ResourceManager.GetString("Prophecies", resourceCulture);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Looks up a localized string similar to Enchantment Decree of Force.
|
||||||
|
/// </summary>
|
||||||
|
internal static string Enchantments
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
return ResourceManager.GetString("Enchantments", resourceCulture);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Looks up a localized resource of type System.IO.UnmanagedMemoryStream similar to System.IO.MemoryStream.
|
/// Looks up a localized resource of type System.IO.UnmanagedMemoryStream similar to System.IO.MemoryStream.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
|||||||
@@ -211,4 +211,10 @@
|
|||||||
<data name="ItemMods" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
<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>
|
<value>..\Resources\ItemMods.txt;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;Windows-1252</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="Prophecies" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
|
<value>..\Resources\Prophecies.txt;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;Windows-1252</value>
|
||||||
|
</data>
|
||||||
|
<data name="Enchantments" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
|
<value>..\Resources\Enchantments.txt;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;Windows-1252</value>
|
||||||
|
</data>
|
||||||
</root>
|
</root>
|
||||||
75
Filtration/Properties/Settings.Designer.cs
generated
75
Filtration/Properties/Settings.Designer.cs
generated
@@ -47,81 +47,6 @@ namespace Filtration.Properties {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
[global::System.Configuration.UserScopedSettingAttribute()]
|
|
||||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
|
||||||
[global::System.Configuration.DefaultSettingValueAttribute("0")]
|
|
||||||
public int SuppressUpdatesUpToVersionMajorPart {
|
|
||||||
get {
|
|
||||||
return ((int)(this["SuppressUpdatesUpToVersionMajorPart"]));
|
|
||||||
}
|
|
||||||
set {
|
|
||||||
this["SuppressUpdatesUpToVersionMajorPart"] = value;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
[global::System.Configuration.UserScopedSettingAttribute()]
|
|
||||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
|
||||||
[global::System.Configuration.DefaultSettingValueAttribute("False")]
|
|
||||||
public bool SuppressUpdates {
|
|
||||||
get {
|
|
||||||
return ((bool)(this["SuppressUpdates"]));
|
|
||||||
}
|
|
||||||
set {
|
|
||||||
this["SuppressUpdates"] = value;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
[global::System.Configuration.UserScopedSettingAttribute()]
|
|
||||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
|
||||||
[global::System.Configuration.DefaultSettingValueAttribute("0")]
|
|
||||||
public int SuppressUpdatesUpToVersionMinorPart {
|
|
||||||
get {
|
|
||||||
return ((int)(this["SuppressUpdatesUpToVersionMinorPart"]));
|
|
||||||
}
|
|
||||||
set {
|
|
||||||
this["SuppressUpdatesUpToVersionMinorPart"] = value;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
[global::System.Configuration.UserScopedSettingAttribute()]
|
|
||||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
|
||||||
[global::System.Configuration.DefaultSettingValueAttribute("2016-01-01")]
|
|
||||||
public global::System.DateTime StaticDataLastUpdated {
|
|
||||||
get {
|
|
||||||
return ((global::System.DateTime)(this["StaticDataLastUpdated"]));
|
|
||||||
}
|
|
||||||
set {
|
|
||||||
this["StaticDataLastUpdated"] = value;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
[global::System.Configuration.ApplicationScopedSettingAttribute()]
|
|
||||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
|
||||||
[global::System.Configuration.DefaultSettingValueAttribute("http://ben-wallis.github.io/Filtration/ItemBaseTypes.txt")]
|
|
||||||
public string ItemBaseTypesStaticDataUrl {
|
|
||||||
get {
|
|
||||||
return ((string)(this["ItemBaseTypesStaticDataUrl"]));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
[global::System.Configuration.ApplicationScopedSettingAttribute()]
|
|
||||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
|
||||||
[global::System.Configuration.DefaultSettingValueAttribute("http://ben-wallis.github.io/Filtration/ItemClasses.txt")]
|
|
||||||
public string ItemClassesStaticDataUrl {
|
|
||||||
get {
|
|
||||||
return ((string)(this["ItemClassesStaticDataUrl"]));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
[global::System.Configuration.ApplicationScopedSettingAttribute()]
|
|
||||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
|
||||||
[global::System.Configuration.DefaultSettingValueAttribute("http://ben-wallis.github.io/Filtration/filtration_version.xml")]
|
|
||||||
public string UpdateDataUrl {
|
|
||||||
get {
|
|
||||||
return ((string)(this["UpdateDataUrl"]));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
[global::System.Configuration.UserScopedSettingAttribute()]
|
[global::System.Configuration.UserScopedSettingAttribute()]
|
||||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||||
[global::System.Configuration.DefaultSettingValueAttribute("False")]
|
[global::System.Configuration.DefaultSettingValueAttribute("False")]
|
||||||
|
|||||||
@@ -8,27 +8,6 @@
|
|||||||
<Setting Name="ExtraLineBetweenBlocks" Type="System.Boolean" Scope="User">
|
<Setting Name="ExtraLineBetweenBlocks" Type="System.Boolean" Scope="User">
|
||||||
<Value Profile="(Default)">True</Value>
|
<Value Profile="(Default)">True</Value>
|
||||||
</Setting>
|
</Setting>
|
||||||
<Setting Name="SuppressUpdatesUpToVersionMajorPart" Type="System.Int32" Scope="User">
|
|
||||||
<Value Profile="(Default)">0</Value>
|
|
||||||
</Setting>
|
|
||||||
<Setting Name="SuppressUpdates" Type="System.Boolean" Scope="User">
|
|
||||||
<Value Profile="(Default)">False</Value>
|
|
||||||
</Setting>
|
|
||||||
<Setting Name="SuppressUpdatesUpToVersionMinorPart" Type="System.Int32" Scope="User">
|
|
||||||
<Value Profile="(Default)">0</Value>
|
|
||||||
</Setting>
|
|
||||||
<Setting Name="StaticDataLastUpdated" Type="System.DateTime" Scope="User">
|
|
||||||
<Value Profile="(Default)">2016-01-01</Value>
|
|
||||||
</Setting>
|
|
||||||
<Setting Name="ItemBaseTypesStaticDataUrl" Type="System.String" Scope="Application">
|
|
||||||
<Value Profile="(Default)">http://ben-wallis.github.io/Filtration/ItemBaseTypes.txt</Value>
|
|
||||||
</Setting>
|
|
||||||
<Setting Name="ItemClassesStaticDataUrl" Type="System.String" Scope="Application">
|
|
||||||
<Value Profile="(Default)">http://ben-wallis.github.io/Filtration/ItemClasses.txt</Value>
|
|
||||||
</Setting>
|
|
||||||
<Setting Name="UpdateDataUrl" Type="System.String" Scope="Application">
|
|
||||||
<Value Profile="(Default)">http://ben-wallis.github.io/Filtration/filtration_version.xml</Value>
|
|
||||||
</Setting>
|
|
||||||
<Setting Name="DownloadPrereleaseUpdates" Type="System.Boolean" Scope="User">
|
<Setting Name="DownloadPrereleaseUpdates" Type="System.Boolean" Scope="User">
|
||||||
<Value Profile="(Default)">False</Value>
|
<Value Profile="(Default)">False</Value>
|
||||||
</Setting>
|
</Setting>
|
||||||
|
|||||||
1107
Filtration/Resources/Enchantments.txt
Normal file
1107
Filtration/Resources/Enchantments.txt
Normal file
File diff suppressed because it is too large
Load Diff
BIN
Filtration/Resources/Icons/no_sound_dds.png
Normal file
BIN
Filtration/Resources/Icons/no_sound_dds.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 3.2 KiB |
BIN
Filtration/Resources/Icons/no_sound_dds_light.png
Normal file
BIN
Filtration/Resources/Icons/no_sound_dds_light.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 3.1 KiB |
BIN
Filtration/Resources/Icons/sound.png
Normal file
BIN
Filtration/Resources/Icons/sound.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 3.4 KiB |
BIN
Filtration/Resources/Icons/sound_dds.png
Normal file
BIN
Filtration/Resources/Icons/sound_dds.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 3.7 KiB |
@@ -1,11 +1,12 @@
|
|||||||
A Mother's Parting Gift
|
A Dab of Ink
|
||||||
|
A Mother's Parting Gift
|
||||||
Abandoned Wealth
|
Abandoned Wealth
|
||||||
Aberrant Fossil
|
Aberrant Fossil
|
||||||
Abyssal Axe
|
Abyssal Axe
|
||||||
Abyssal Cry
|
Abyssal Cry
|
||||||
Abyssal Sceptre
|
Abyssal Sceptre
|
||||||
Academy Map
|
Academy Map
|
||||||
Acid Lakes Map
|
Acid Caverns Map
|
||||||
Added Chaos Damage Support
|
Added Chaos Damage Support
|
||||||
Added Cold Damage Support
|
Added Cold Damage Support
|
||||||
Added Fire Damage Support
|
Added Fire Damage Support
|
||||||
@@ -21,6 +22,7 @@ Alira's Amulet
|
|||||||
Alleyways Map
|
Alleyways Map
|
||||||
Allflame
|
Allflame
|
||||||
Alloyed Spiked Shield
|
Alloyed Spiked Shield
|
||||||
|
Alone in the Darkness
|
||||||
Alteration Shard
|
Alteration Shard
|
||||||
Amber Amulet
|
Amber Amulet
|
||||||
Ambush Boots
|
Ambush Boots
|
||||||
@@ -71,9 +73,11 @@ Arctic Breath
|
|||||||
Arena Map
|
Arena Map
|
||||||
Arena Plate
|
Arena Plate
|
||||||
Arid Lake Map
|
Arid Lake Map
|
||||||
|
Armageddon Brand
|
||||||
Arming Axe
|
Arming Axe
|
||||||
Armourer's Scrap
|
Armourer's Scrap
|
||||||
Armoury Map
|
Armoury Map
|
||||||
|
Arrogance of the Vaal
|
||||||
Arsenal Map
|
Arsenal Map
|
||||||
Ashen Wood Map
|
Ashen Wood Map
|
||||||
Ashscale Talisman
|
Ashscale Talisman
|
||||||
@@ -94,6 +98,7 @@ Avian Twins Talisman
|
|||||||
Awl
|
Awl
|
||||||
Baleful Gem
|
Baleful Gem
|
||||||
Ball Lightning
|
Ball Lightning
|
||||||
|
Bane
|
||||||
Bane of the Loyal
|
Bane of the Loyal
|
||||||
Barbed Club
|
Barbed Club
|
||||||
Barbute Helmet
|
Barbute Helmet
|
||||||
@@ -168,7 +173,9 @@ Bone Crypt Map
|
|||||||
Bone Helmet
|
Bone Helmet
|
||||||
Bone Offering
|
Bone Offering
|
||||||
Bone Spirit Shield
|
Bone Spirit Shield
|
||||||
|
Bonechill Support
|
||||||
Bonespire Talisman
|
Bonespire Talisman
|
||||||
|
Boon of Justice
|
||||||
Boon of the First Ones
|
Boon of the First Ones
|
||||||
Boot Blade
|
Boot Blade
|
||||||
Boot Knife
|
Boot Knife
|
||||||
@@ -176,6 +183,7 @@ Bottled Storm
|
|||||||
Bound Fossil
|
Bound Fossil
|
||||||
Boundless Realms
|
Boundless Realms
|
||||||
Bowyer's Dream
|
Bowyer's Dream
|
||||||
|
Brand Recall
|
||||||
Branded Kite Shield
|
Branded Kite Shield
|
||||||
Brass Maul
|
Brass Maul
|
||||||
Brass Spirit Shield
|
Brass Spirit Shield
|
||||||
@@ -352,6 +360,7 @@ Courthouse Map
|
|||||||
Courtyard Map
|
Courtyard Map
|
||||||
Coves Map
|
Coves Map
|
||||||
Coveted Possession
|
Coveted Possession
|
||||||
|
Crater Map
|
||||||
Cremation
|
Cremation
|
||||||
Crescent Staff
|
Crescent Staff
|
||||||
Crested Tower Shield
|
Crested Tower Shield
|
||||||
@@ -384,6 +393,7 @@ Dagger Axe
|
|||||||
Damage on Full Life Support
|
Damage on Full Life Support
|
||||||
Dark Forest Map
|
Dark Forest Map
|
||||||
Dark Pact
|
Dark Pact
|
||||||
|
Dark Temptation
|
||||||
Darkwood Sceptre
|
Darkwood Sceptre
|
||||||
Deadhand Talisman
|
Deadhand Talisman
|
||||||
Deadly Ailments Support
|
Deadly Ailments Support
|
||||||
@@ -445,6 +455,7 @@ Diamond Ring
|
|||||||
Dig Map
|
Dig Map
|
||||||
Discharge
|
Discharge
|
||||||
Discipline
|
Discipline
|
||||||
|
Divine Ire
|
||||||
Divine Life Flask
|
Divine Life Flask
|
||||||
Divine Mana Flask
|
Divine Mana Flask
|
||||||
Divine Orb
|
Divine Orb
|
||||||
@@ -461,6 +472,7 @@ Dragonscale Boots
|
|||||||
Dragonscale Doublet
|
Dragonscale Doublet
|
||||||
Dragonscale Gauntlets
|
Dragonscale Gauntlets
|
||||||
Dragoon Sword
|
Dragoon Sword
|
||||||
|
Dread Banner
|
||||||
Dread Maul
|
Dread Maul
|
||||||
Dream Mace
|
Dream Mace
|
||||||
Driftwood Club
|
Driftwood Club
|
||||||
@@ -504,6 +516,7 @@ Enchanted Fossil
|
|||||||
Encrusted Fossil
|
Encrusted Fossil
|
||||||
Endurance Charge on Melee Stun Support
|
Endurance Charge on Melee Stun Support
|
||||||
Enduring Cry
|
Enduring Cry
|
||||||
|
Energy Leech Support
|
||||||
Enfeeble
|
Enfeeble
|
||||||
Engineer's Orb
|
Engineer's Orb
|
||||||
Engineer's Shard
|
Engineer's Shard
|
||||||
@@ -636,6 +649,7 @@ Full Plate
|
|||||||
Full Ringmail
|
Full Ringmail
|
||||||
Full Scale Armour
|
Full Scale Armour
|
||||||
Full Wyrmscale
|
Full Wyrmscale
|
||||||
|
Fungal Hollow Map
|
||||||
Gardens Map
|
Gardens Map
|
||||||
Gavel
|
Gavel
|
||||||
Gemcutter's Prism
|
Gemcutter's Prism
|
||||||
@@ -650,13 +664,26 @@ Ghetto Map
|
|||||||
Giant Life Flask
|
Giant Life Flask
|
||||||
Giant Mana Flask
|
Giant Mana Flask
|
||||||
Gift of the Gemling Queen
|
Gift of the Gemling Queen
|
||||||
|
Gilded Ambush Scarab
|
||||||
Gilded Axe
|
Gilded Axe
|
||||||
|
Gilded Bestiary Scarab
|
||||||
|
Gilded Breach Scarab
|
||||||
Gilded Buckler
|
Gilded Buckler
|
||||||
|
Gilded Cartography Scarab
|
||||||
|
Gilded Divination Scarab
|
||||||
|
Gilded Elder Scarab
|
||||||
Gilded Fossil
|
Gilded Fossil
|
||||||
|
Gilded Harbinger Scarab
|
||||||
|
Gilded Perandus Scarab
|
||||||
|
Gilded Reliquary Scarab
|
||||||
Gilded Sallet
|
Gilded Sallet
|
||||||
|
Gilded Shaper Scarab
|
||||||
|
Gilded Sulphite Scarab
|
||||||
|
Gilded Torment Scarab
|
||||||
Girded Tower Shield
|
Girded Tower Shield
|
||||||
Glacial Cascade
|
Glacial Cascade
|
||||||
Glacial Hammer
|
Glacial Hammer
|
||||||
|
Glacier Map
|
||||||
Gladiator Helmet
|
Gladiator Helmet
|
||||||
Gladiator Plate
|
Gladiator Plate
|
||||||
Gladius
|
Gladius
|
||||||
@@ -689,7 +716,6 @@ Golden Plate
|
|||||||
Golden Wreath
|
Golden Wreath
|
||||||
Goliath Gauntlets
|
Goliath Gauntlets
|
||||||
Goliath Greaves
|
Goliath Greaves
|
||||||
Gorge Map
|
|
||||||
Gouger
|
Gouger
|
||||||
Grace
|
Grace
|
||||||
Graceful Sword
|
Graceful Sword
|
||||||
@@ -801,7 +827,9 @@ Infernal Axe
|
|||||||
Infernal Blow
|
Infernal Blow
|
||||||
Infernal Sword
|
Infernal Sword
|
||||||
Infested Valley Map
|
Infested Valley Map
|
||||||
|
Infused Channelling Support
|
||||||
Innervate Support
|
Innervate Support
|
||||||
|
Intensify Support
|
||||||
Invasion Leaguestone
|
Invasion Leaguestone
|
||||||
Inya's Key
|
Inya's Key
|
||||||
Iron Circlet
|
Iron Circlet
|
||||||
@@ -859,6 +887,7 @@ Lacquered Helmet
|
|||||||
Lair Map
|
Lair Map
|
||||||
Lair of the Hydra Map
|
Lair of the Hydra Map
|
||||||
Laminated Kite Shield
|
Laminated Kite Shield
|
||||||
|
Lancing Steel
|
||||||
Lantador's Lost Love
|
Lantador's Lost Love
|
||||||
Lapis Amulet
|
Lapis Amulet
|
||||||
Large Hybrid Flask
|
Large Hybrid Flask
|
||||||
@@ -867,7 +896,7 @@ Large Mana Flask
|
|||||||
Last Hope
|
Last Hope
|
||||||
Lathi
|
Lathi
|
||||||
Latticed Ringmail
|
Latticed Ringmail
|
||||||
Lava Chamber Map
|
Lava Chambers Map
|
||||||
Lava Lake Map
|
Lava Lake Map
|
||||||
Layered Kite Shield
|
Layered Kite Shield
|
||||||
Lead Sceptre
|
Lead Sceptre
|
||||||
@@ -888,9 +917,9 @@ Lesser Poison Support
|
|||||||
Leyline Map
|
Leyline Map
|
||||||
Life Gain on Hit Support
|
Life Gain on Hit Support
|
||||||
Life Leech Support
|
Life Leech Support
|
||||||
|
Light and Truth
|
||||||
Light Brigandine
|
Light Brigandine
|
||||||
Light Quiver
|
Light Quiver
|
||||||
Light and Truth
|
|
||||||
Lighthouse Map
|
Lighthouse Map
|
||||||
Lightning Arrow
|
Lightning Arrow
|
||||||
Lightning Penetration Support
|
Lightning Penetration Support
|
||||||
@@ -929,6 +958,7 @@ Majestic Plate
|
|||||||
Malachai's Entrails
|
Malachai's Entrails
|
||||||
Malachai's Heart
|
Malachai's Heart
|
||||||
Malachai's Lungs
|
Malachai's Lungs
|
||||||
|
Malevolence
|
||||||
Malformation Map
|
Malformation Map
|
||||||
Maligaro's Map
|
Maligaro's Map
|
||||||
Maligaro's Spike
|
Maligaro's Spike
|
||||||
@@ -975,20 +1005,21 @@ Military Staff
|
|||||||
Mind Cage
|
Mind Cage
|
||||||
Minefield Support
|
Minefield Support
|
||||||
Mineral Pools Map
|
Mineral Pools Map
|
||||||
|
Minion and Totem Elemental Resistance Support
|
||||||
Minion Damage Support
|
Minion Damage Support
|
||||||
Minion Life Support
|
Minion Life Support
|
||||||
Minion Speed Support
|
Minion Speed Support
|
||||||
Minion and Totem Elemental Resistance Support
|
|
||||||
Mirage Archer Support
|
Mirage Archer Support
|
||||||
Mirror Arrow
|
Mirror Arrow
|
||||||
Mirror Shard
|
|
||||||
Mirror of Kalandra
|
Mirror of Kalandra
|
||||||
|
Mirror Shard
|
||||||
Mirrored Spiked Shield
|
Mirrored Spiked Shield
|
||||||
Mitts
|
Mitts
|
||||||
Molten Shell
|
Molten Shell
|
||||||
Molten Strike
|
Molten Strike
|
||||||
Monkey Paw Talisman
|
Monkey Paw Talisman
|
||||||
Monkey Twins Talisman
|
Monkey Twins Talisman
|
||||||
|
Monochrome
|
||||||
Moon Orb
|
Moon Orb
|
||||||
Moon Staff
|
Moon Staff
|
||||||
Moon Temple Map
|
Moon Temple Map
|
||||||
@@ -1000,6 +1031,7 @@ Mortal Ignorance
|
|||||||
Mortal Rage
|
Mortal Rage
|
||||||
Mosaic Kite Shield
|
Mosaic Kite Shield
|
||||||
Mud Geyser Map
|
Mud Geyser Map
|
||||||
|
Multiple Totems Support
|
||||||
Multiple Traps Support
|
Multiple Traps Support
|
||||||
Multistrike Support
|
Multistrike Support
|
||||||
Murder Boots
|
Murder Boots
|
||||||
@@ -1110,7 +1142,19 @@ Poignard
|
|||||||
Point Blank Support
|
Point Blank Support
|
||||||
Poison Support
|
Poison Support
|
||||||
Poleaxe
|
Poleaxe
|
||||||
|
Polished Ambush Scarab
|
||||||
|
Polished Bestiary Scarab
|
||||||
|
Polished Breach Scarab
|
||||||
|
Polished Cartography Scarab
|
||||||
|
Polished Divination Scarab
|
||||||
|
Polished Elder Scarab
|
||||||
|
Polished Harbinger Scarab
|
||||||
|
Polished Perandus Scarab
|
||||||
|
Polished Reliquary Scarab
|
||||||
|
Polished Shaper Scarab
|
||||||
Polished Spiked Shield
|
Polished Spiked Shield
|
||||||
|
Polished Sulphite Scarab
|
||||||
|
Polished Torment Scarab
|
||||||
Port Map
|
Port Map
|
||||||
Portal
|
Portal
|
||||||
Portal Scroll
|
Portal Scroll
|
||||||
@@ -1132,6 +1176,7 @@ Primeval Rapier
|
|||||||
Primitive Alchemical Resonator
|
Primitive Alchemical Resonator
|
||||||
Primitive Chaotic Resonator
|
Primitive Chaotic Resonator
|
||||||
Primitive Staff
|
Primitive Staff
|
||||||
|
Primordial Blocks Map
|
||||||
Primordial Pool Map
|
Primordial Pool Map
|
||||||
Primordial Staff
|
Primordial Staff
|
||||||
Prismatic Fossil
|
Prismatic Fossil
|
||||||
@@ -1149,6 +1194,7 @@ Prophet Crown
|
|||||||
Prosperity
|
Prosperity
|
||||||
Puncture
|
Puncture
|
||||||
Punishment
|
Punishment
|
||||||
|
Purifying Flame
|
||||||
Purity of Elements
|
Purity of Elements
|
||||||
Purity of Fire
|
Purity of Fire
|
||||||
Purity of Ice
|
Purity of Ice
|
||||||
@@ -1160,9 +1206,9 @@ Quartz Wand
|
|||||||
Quicksilver Flask
|
Quicksilver Flask
|
||||||
Quilted Jacket
|
Quilted Jacket
|
||||||
Racecourse Map
|
Racecourse Map
|
||||||
Rain Tempter
|
|
||||||
Rain of Arrows
|
Rain of Arrows
|
||||||
Rain of Chaos
|
Rain of Chaos
|
||||||
|
Rain Tempter
|
||||||
Raise Spectre
|
Raise Spectre
|
||||||
Raise Zombie
|
Raise Zombie
|
||||||
Rallying Cry
|
Rallying Cry
|
||||||
@@ -1226,10 +1272,22 @@ Ruby Flask
|
|||||||
Ruby Ring
|
Ruby Ring
|
||||||
Rugged Quiver
|
Rugged Quiver
|
||||||
Runic Hatchet
|
Runic Hatchet
|
||||||
|
Rusted Ambush Scarab
|
||||||
|
Rusted Bestiary Scarab
|
||||||
|
Rusted Breach Scarab
|
||||||
|
Rusted Cartography Scarab
|
||||||
Rusted Coif
|
Rusted Coif
|
||||||
|
Rusted Divination Scarab
|
||||||
|
Rusted Elder Scarab
|
||||||
|
Rusted Harbinger Scarab
|
||||||
Rusted Hatchet
|
Rusted Hatchet
|
||||||
|
Rusted Perandus Scarab
|
||||||
|
Rusted Reliquary Scarab
|
||||||
|
Rusted Shaper Scarab
|
||||||
Rusted Spike
|
Rusted Spike
|
||||||
|
Rusted Sulphite Scarab
|
||||||
Rusted Sword
|
Rusted Sword
|
||||||
|
Rusted Torment Scarab
|
||||||
Rustic Sash
|
Rustic Sash
|
||||||
Ruthless Support
|
Ruthless Support
|
||||||
Sabre
|
Sabre
|
||||||
@@ -1249,6 +1307,7 @@ Saint's Hauberk
|
|||||||
Saintly Chainmail
|
Saintly Chainmail
|
||||||
Sallet
|
Sallet
|
||||||
Sambar Sceptre
|
Sambar Sceptre
|
||||||
|
Sambodhi's Vow
|
||||||
Samite Gloves
|
Samite Gloves
|
||||||
Samite Helmet
|
Samite Helmet
|
||||||
Samite Slippers
|
Samite Slippers
|
||||||
@@ -1311,6 +1370,7 @@ Serpentscale Gauntlets
|
|||||||
Serrated Arrow Quiver
|
Serrated Arrow Quiver
|
||||||
Serrated Foil
|
Serrated Foil
|
||||||
Serrated Fossil
|
Serrated Fossil
|
||||||
|
Seven Years Bad Luck
|
||||||
Shabby Jerkin
|
Shabby Jerkin
|
||||||
Shackled Boots
|
Shackled Boots
|
||||||
Shadow Axe
|
Shadow Axe
|
||||||
@@ -1335,6 +1395,7 @@ Sharkskin Gloves
|
|||||||
Sharkskin Tunic
|
Sharkskin Tunic
|
||||||
Sharktooth Arrow Quiver
|
Sharktooth Arrow Quiver
|
||||||
Sharktooth Claw
|
Sharktooth Claw
|
||||||
|
Shattering Steel
|
||||||
Shield Charge
|
Shield Charge
|
||||||
Shipyard Map
|
Shipyard Map
|
||||||
Shock Nova
|
Shock Nova
|
||||||
@@ -1410,6 +1471,7 @@ Soldier Helmet
|
|||||||
Soldier's Brigandine
|
Soldier's Brigandine
|
||||||
Sorcerer Boots
|
Sorcerer Boots
|
||||||
Sorcerer Gloves
|
Sorcerer Gloves
|
||||||
|
Soulrend
|
||||||
Sovereign Spiked Shield
|
Sovereign Spiked Shield
|
||||||
Spark
|
Spark
|
||||||
Sparkling Claw
|
Sparkling Claw
|
||||||
@@ -1445,7 +1507,6 @@ Splinter of Xoph
|
|||||||
Splintered Tower Shield
|
Splintered Tower Shield
|
||||||
Split Arrow
|
Split Arrow
|
||||||
Splitnewt Talisman
|
Splitnewt Talisman
|
||||||
Springs Map
|
|
||||||
Stacked Deck
|
Stacked Deck
|
||||||
Stag Sceptre
|
Stag Sceptre
|
||||||
Static Strike
|
Static Strike
|
||||||
@@ -1467,6 +1528,7 @@ Stone Hammer
|
|||||||
Stone of Passage
|
Stone of Passage
|
||||||
Storm Barrier Support
|
Storm Barrier Support
|
||||||
Storm Blade
|
Storm Blade
|
||||||
|
Storm Brand
|
||||||
Storm Burst
|
Storm Burst
|
||||||
Storm Call
|
Storm Call
|
||||||
Strand Map
|
Strand Map
|
||||||
@@ -1581,6 +1643,7 @@ The Garish Power
|
|||||||
The Gemcutter
|
The Gemcutter
|
||||||
The Gentleman
|
The Gentleman
|
||||||
The Gladiator
|
The Gladiator
|
||||||
|
The Golden Era
|
||||||
The Hale Heart
|
The Hale Heart
|
||||||
The Harvester
|
The Harvester
|
||||||
The Hermit
|
The Hermit
|
||||||
@@ -1595,18 +1658,26 @@ The Inventor
|
|||||||
The Iron Bard
|
The Iron Bard
|
||||||
The Jester
|
The Jester
|
||||||
The Jeweller's Boon
|
The Jeweller's Boon
|
||||||
|
The Journey
|
||||||
The King's Blade
|
The King's Blade
|
||||||
The King's Heart
|
The King's Heart
|
||||||
|
The Landing
|
||||||
The Last One Standing
|
The Last One Standing
|
||||||
The Lich
|
The Lich
|
||||||
|
The Life Thief
|
||||||
The Lion
|
The Lion
|
||||||
The Lord in Black
|
The Lord in Black
|
||||||
|
The Lord of Celebration
|
||||||
The Lover
|
The Lover
|
||||||
The Lunaris Priestess
|
The Lunaris Priestess
|
||||||
|
The Mad King
|
||||||
The Master
|
The Master
|
||||||
|
The Master Artisan
|
||||||
The Mayor
|
The Mayor
|
||||||
The Mercenary
|
The Mercenary
|
||||||
|
The Messenger
|
||||||
The Metalsmith's Gift
|
The Metalsmith's Gift
|
||||||
|
The Nurse
|
||||||
The Oath
|
The Oath
|
||||||
The Obscured
|
The Obscured
|
||||||
The Offering
|
The Offering
|
||||||
@@ -1628,11 +1699,13 @@ The Risk
|
|||||||
The Rite of Elements
|
The Rite of Elements
|
||||||
The Road to Power
|
The Road to Power
|
||||||
The Ruthless Ceinture
|
The Ruthless Ceinture
|
||||||
|
The Sacrifice
|
||||||
The Saint's Treasure
|
The Saint's Treasure
|
||||||
The Samurai's Eye
|
The Samurai's Eye
|
||||||
The Scarred Meadow
|
The Scarred Meadow
|
||||||
The Scavenger
|
The Scavenger
|
||||||
The Scholar
|
The Scholar
|
||||||
|
The Seeker
|
||||||
The Sephirot
|
The Sephirot
|
||||||
The Shaper's Key
|
The Shaper's Key
|
||||||
The Shaper's Realm
|
The Shaper's Realm
|
||||||
@@ -1711,7 +1784,6 @@ Torment Leaguestone
|
|||||||
Tornado Shot
|
Tornado Shot
|
||||||
Tornado Wand
|
Tornado Wand
|
||||||
Torture Cage
|
Torture Cage
|
||||||
Torture Chamber Map
|
|
||||||
Totemic Maul
|
Totemic Maul
|
||||||
Tower Key
|
Tower Key
|
||||||
Tower Map
|
Tower Map
|
||||||
@@ -1719,8 +1791,8 @@ Toxic Rain
|
|||||||
Toxic Sewer Map
|
Toxic Sewer Map
|
||||||
Tranquillity
|
Tranquillity
|
||||||
Transmutation Shard
|
Transmutation Shard
|
||||||
Trap Support
|
|
||||||
Trap and Mine Damage Support
|
Trap and Mine Damage Support
|
||||||
|
Trap Support
|
||||||
Trapper Boots
|
Trapper Boots
|
||||||
Trapper Mitts
|
Trapper Mitts
|
||||||
Trarthan Powder
|
Trarthan Powder
|
||||||
@@ -1729,7 +1801,6 @@ Treasure Key
|
|||||||
Tribal Circlet
|
Tribal Circlet
|
||||||
Tribal Club
|
Tribal Club
|
||||||
Tribal Maul
|
Tribal Maul
|
||||||
Tribunal Map
|
|
||||||
Tricorne
|
Tricorne
|
||||||
Trisula
|
Trisula
|
||||||
Triumphant Lamellar
|
Triumphant Lamellar
|
||||||
@@ -1751,6 +1822,7 @@ Underground River Map
|
|||||||
Underground Sea Map
|
Underground Sea Map
|
||||||
Undying Flesh Talisman
|
Undying Flesh Talisman
|
||||||
Unearth
|
Unearth
|
||||||
|
Unleash Support
|
||||||
Unset Ring
|
Unset Ring
|
||||||
Unshaping Orb
|
Unshaping Orb
|
||||||
Ursine Pelt
|
Ursine Pelt
|
||||||
@@ -1815,16 +1887,16 @@ Vault Map
|
|||||||
Velvet Gloves
|
Velvet Gloves
|
||||||
Velvet Slippers
|
Velvet Slippers
|
||||||
Vengeance
|
Vengeance
|
||||||
Vial Of Power
|
|
||||||
Vial of Awakening
|
Vial of Awakening
|
||||||
Vial of Consequence
|
Vial of Consequence
|
||||||
Vial of Dominance
|
Vial of Dominance
|
||||||
Vial of Fate
|
Vial of Fate
|
||||||
|
Vial Of Power
|
||||||
Vial of Sacrifice
|
Vial of Sacrifice
|
||||||
Vial of Summoning
|
Vial of Summoning
|
||||||
Vial of Transcendence
|
|
||||||
Vial of the Ghost
|
Vial of the Ghost
|
||||||
Vial of the Ritual
|
Vial of the Ritual
|
||||||
|
Vial of Transcendence
|
||||||
Vicious Projectiles Support
|
Vicious Projectiles Support
|
||||||
Vigilant Strike
|
Vigilant Strike
|
||||||
Vile Staff
|
Vile Staff
|
||||||
@@ -1865,6 +1937,7 @@ Wailing Essence of Wrath
|
|||||||
Wailing Essence of Zeal
|
Wailing Essence of Zeal
|
||||||
Walnut Spirit Shield
|
Walnut Spirit Shield
|
||||||
War Axe
|
War Axe
|
||||||
|
War Banner
|
||||||
War Buckler
|
War Buckler
|
||||||
War Hammer
|
War Hammer
|
||||||
War Plate
|
War Plate
|
||||||
@@ -1874,6 +1947,7 @@ Warlord's Mark
|
|||||||
Waste Pool Map
|
Waste Pool Map
|
||||||
Wasteland Map
|
Wasteland Map
|
||||||
Waterways Map
|
Waterways Map
|
||||||
|
Wave of Conviction
|
||||||
Waxed Garb
|
Waxed Garb
|
||||||
Wealth and Power
|
Wealth and Power
|
||||||
Weeping Essence
|
Weeping Essence
|
||||||
@@ -1902,6 +1976,7 @@ Widowsilk Robe
|
|||||||
Wild Leather
|
Wild Leather
|
||||||
Wild Strike
|
Wild Strike
|
||||||
Wings of Vastiri
|
Wings of Vastiri
|
||||||
|
Winter Orb
|
||||||
Wither
|
Wither
|
||||||
Withering Touch Support
|
Withering Touch Support
|
||||||
Wolf Pelt
|
Wolf Pelt
|
||||||
@@ -1927,4 +2002,5 @@ Yriel's Key
|
|||||||
Zealot Boots
|
Zealot Boots
|
||||||
Zealot Gloves
|
Zealot Gloves
|
||||||
Zealot Helmet
|
Zealot Helmet
|
||||||
|
Zealotry
|
||||||
Zodiac Leather
|
Zodiac Leather
|
||||||
@@ -23,12 +23,13 @@ Labyrinth Item
|
|||||||
Labyrinth Map Item
|
Labyrinth Map Item
|
||||||
Labyrinth Trinket
|
Labyrinth Trinket
|
||||||
Large Relics
|
Large Relics
|
||||||
Leaguestone
|
Leaguestones
|
||||||
Life Flasks
|
Life Flasks
|
||||||
Maces
|
Maces
|
||||||
Mana Flasks
|
Mana Flasks
|
||||||
Map Fragments
|
Map Fragments
|
||||||
Maps
|
Maps
|
||||||
|
Medium Relics
|
||||||
Misc Map Items
|
Misc Map Items
|
||||||
One Hand Axes
|
One Hand Axes
|
||||||
One Hand Maces
|
One Hand Maces
|
||||||
@@ -37,9 +38,11 @@ Pantheon Soul
|
|||||||
Piece
|
Piece
|
||||||
Quest Items
|
Quest Items
|
||||||
Quivers
|
Quivers
|
||||||
|
Relics
|
||||||
Rings
|
Rings
|
||||||
Sceptres
|
Sceptres
|
||||||
Shields
|
Shields
|
||||||
|
Small Relics
|
||||||
Stackable Currency
|
Stackable Currency
|
||||||
Staves
|
Staves
|
||||||
Support Skill Gems
|
Support Skill Gems
|
||||||
|
|||||||
@@ -61,6 +61,7 @@ Carved
|
|||||||
Caster's
|
Caster's
|
||||||
Catalysed
|
Catalysed
|
||||||
Catalyzing
|
Catalyzing
|
||||||
|
Catarina's Veiled
|
||||||
Caustic
|
Caustic
|
||||||
Cauterising
|
Cauterising
|
||||||
Cautious
|
Cautious
|
||||||
@@ -115,6 +116,7 @@ Duelist's
|
|||||||
Eldritch
|
Eldritch
|
||||||
Electrocuting
|
Electrocuting
|
||||||
Electromantic
|
Electromantic
|
||||||
|
Elreon's Veiled
|
||||||
Elephant's
|
Elephant's
|
||||||
Emanant
|
Emanant
|
||||||
Emperor's
|
Emperor's
|
||||||
@@ -172,9 +174,12 @@ Glinting
|
|||||||
Glittering
|
Glittering
|
||||||
Glowing
|
Glowing
|
||||||
Glyphic
|
Glyphic
|
||||||
|
Gravicius' Veiled
|
||||||
Gremlin's
|
Gremlin's
|
||||||
Grounded
|
Grounded
|
||||||
Guatelitzi's
|
Guatelitzi's
|
||||||
|
Guff's Veiled
|
||||||
|
Haku's Veiled
|
||||||
Hailing
|
Hailing
|
||||||
Hale
|
Hale
|
||||||
Halting
|
Halting
|
||||||
@@ -218,16 +223,19 @@ Instilled
|
|||||||
Interpermeated
|
Interpermeated
|
||||||
Interpolated
|
Interpolated
|
||||||
Ionising
|
Ionising
|
||||||
|
It That Fled's Veiled
|
||||||
Jagged
|
Jagged
|
||||||
Jinxing
|
Jinxing
|
||||||
Journeyman's
|
Journeyman's
|
||||||
Judging
|
Judging
|
||||||
|
Korell's Veiled
|
||||||
Lacquered
|
Lacquered
|
||||||
Lamprey's
|
Lamprey's
|
||||||
Lava Caller's
|
Lava Caller's
|
||||||
Layered
|
Layered
|
||||||
Leadership
|
Leadership
|
||||||
Legend's
|
Legend's
|
||||||
|
Leo's Veiled
|
||||||
Lethal
|
Lethal
|
||||||
Lich's
|
Lich's
|
||||||
Lively
|
Lively
|
||||||
@@ -306,6 +314,7 @@ Resonating
|
|||||||
Resplendent
|
Resplendent
|
||||||
Rhino's
|
Rhino's
|
||||||
Ribbed
|
Ribbed
|
||||||
|
Rin's Veiled
|
||||||
Ripping
|
Ripping
|
||||||
Robust
|
Robust
|
||||||
Rotund
|
Rotund
|
||||||
@@ -384,6 +393,7 @@ Thundering
|
|||||||
Thwarting
|
Thwarting
|
||||||
Titan's
|
Titan's
|
||||||
Topotante's
|
Topotante's
|
||||||
|
Tora's Veiled
|
||||||
Trapping
|
Trapping
|
||||||
Tul's
|
Tul's
|
||||||
Turncoat's
|
Turncoat's
|
||||||
@@ -399,8 +409,10 @@ Unwavering
|
|||||||
Unworldly
|
Unworldly
|
||||||
Urchin's
|
Urchin's
|
||||||
Vaal
|
Vaal
|
||||||
|
Vagan's Veiled
|
||||||
Vampire's
|
Vampire's
|
||||||
Vaporous
|
Vaporous
|
||||||
|
Veiled
|
||||||
Vicious
|
Vicious
|
||||||
Victor's
|
Victor's
|
||||||
Vigorous
|
Vigorous
|
||||||
@@ -410,6 +422,7 @@ Vivacious
|
|||||||
Vivid
|
Vivid
|
||||||
Volcanic
|
Volcanic
|
||||||
Volleying
|
Volleying
|
||||||
|
Vorici's Veiled
|
||||||
Wailing
|
Wailing
|
||||||
Warding
|
Warding
|
||||||
Warlock's
|
Warlock's
|
||||||
@@ -436,6 +449,7 @@ of Accuracy
|
|||||||
of Adamantite Skin
|
of Adamantite Skin
|
||||||
of Adaption
|
of Adaption
|
||||||
of Adrenaline
|
of Adrenaline
|
||||||
|
of Aisling's Veil
|
||||||
of Amassment
|
of Amassment
|
||||||
of Anger
|
of Anger
|
||||||
of Animation
|
of Animation
|
||||||
@@ -459,6 +473,7 @@ of Bloodlines
|
|||||||
of Burning
|
of Burning
|
||||||
of Calamity
|
of Calamity
|
||||||
of Calm
|
of Calm
|
||||||
|
of Cameria's Veil
|
||||||
of Celebration
|
of Celebration
|
||||||
of Champions
|
of Champions
|
||||||
of Chilling
|
of Chilling
|
||||||
@@ -547,6 +562,7 @@ of Havoc
|
|||||||
of Haze
|
of Haze
|
||||||
of Heat
|
of Heat
|
||||||
of Hemomancy
|
of Hemomancy
|
||||||
|
of Hillock's Veil
|
||||||
of Hindering
|
of Hindering
|
||||||
of Hoarding
|
of Hoarding
|
||||||
of Hordes
|
of Hordes
|
||||||
@@ -563,6 +579,8 @@ of Intelligence
|
|||||||
of Intercepting
|
of Intercepting
|
||||||
of Ire
|
of Ire
|
||||||
of Iron Skin
|
of Iron Skin
|
||||||
|
of Janus' Veil
|
||||||
|
of Jorgin's Veil
|
||||||
of Joy
|
of Joy
|
||||||
of Legerdemain
|
of Legerdemain
|
||||||
of Light
|
of Light
|
||||||
@@ -621,6 +639,7 @@ of Resistance
|
|||||||
of Restoration
|
of Restoration
|
||||||
of Retaliation
|
of Retaliation
|
||||||
of Righteousness
|
of Righteousness
|
||||||
|
of Riker's Veil
|
||||||
of Rime
|
of Rime
|
||||||
of Ruin
|
of Ruin
|
||||||
of Runes
|
of Runes
|
||||||
@@ -774,6 +793,7 @@ of the Titan
|
|||||||
of the Troll
|
of the Troll
|
||||||
of the Underground
|
of the Underground
|
||||||
of the Universe
|
of the Universe
|
||||||
|
of the Veil
|
||||||
of the Virtuoso
|
of the Virtuoso
|
||||||
of the Volcano
|
of the Volcano
|
||||||
of the Wall
|
of the Wall
|
||||||
|
|||||||
241
Filtration/Resources/Prophecies.txt
Normal file
241
Filtration/Resources/Prophecies.txt
Normal file
@@ -0,0 +1,241 @@
|
|||||||
|
A Call into the Void
|
||||||
|
A Dishonourable Death
|
||||||
|
A Firm Foothold
|
||||||
|
A Forest of False Idols
|
||||||
|
A Gracious Master
|
||||||
|
A Master Seeks Help
|
||||||
|
A Prodigious Hand
|
||||||
|
A Regal Death
|
||||||
|
A Rift in Time
|
||||||
|
A Valuable Combination
|
||||||
|
A Vision of Ice and Fire
|
||||||
|
A Whispered Prayer
|
||||||
|
Abnormal Effulgence
|
||||||
|
Against the Tide
|
||||||
|
Agony at Dusk
|
||||||
|
An Unseen Peril
|
||||||
|
Anarchy's End
|
||||||
|
Anarchy's End I
|
||||||
|
Anarchy's End II
|
||||||
|
Anarchy's End III
|
||||||
|
Anarchy's End IV
|
||||||
|
Ancient Doom
|
||||||
|
Baptism by Death
|
||||||
|
Battle Hardened
|
||||||
|
Beyond Sight
|
||||||
|
Beyond Sight I
|
||||||
|
Beyond Sight II
|
||||||
|
Beyond Sight III
|
||||||
|
Beyond Sight IV
|
||||||
|
Black Devotion
|
||||||
|
Blind Faith
|
||||||
|
Blinding Light
|
||||||
|
Blood in the Eyes
|
||||||
|
Blood of the Betrayed
|
||||||
|
Bountiful Traps
|
||||||
|
Burning Dread
|
||||||
|
Cleanser of Sins
|
||||||
|
Cold Blooded Fury
|
||||||
|
Cold Greed
|
||||||
|
Crimson Hues
|
||||||
|
Crushing Squall
|
||||||
|
Custodians of Silence
|
||||||
|
Dance of Steel
|
||||||
|
Dark Instincts
|
||||||
|
Darktongue's Shriek
|
||||||
|
Day of Sacrifice
|
||||||
|
Day of Sacrifice I
|
||||||
|
Day of Sacrifice II
|
||||||
|
Day of Sacrifice III
|
||||||
|
Day of Sacrifice IV
|
||||||
|
Deadly Rivalry
|
||||||
|
Deadly Rivalry I
|
||||||
|
Deadly Rivalry II
|
||||||
|
Deadly Rivalry III
|
||||||
|
Deadly Rivalry IV
|
||||||
|
Deadly Rivalry V
|
||||||
|
Deadly Twins
|
||||||
|
Defiled in the Sceptre
|
||||||
|
Dying Cry
|
||||||
|
Echoes of Witchcraft
|
||||||
|
End of the Light
|
||||||
|
Ending the Torment
|
||||||
|
Erased from Memory
|
||||||
|
Erasmus' Gift
|
||||||
|
Faith Exhumed
|
||||||
|
Fallow At Last
|
||||||
|
Fated Connections
|
||||||
|
Fear's Wide Reach
|
||||||
|
Fire and Brimstone
|
||||||
|
Fire and Ice
|
||||||
|
Fire from the Sky
|
||||||
|
Fire, Wood and Stone
|
||||||
|
Flesh of the Beast
|
||||||
|
Forceful Exorcism
|
||||||
|
From Death Springs Life
|
||||||
|
From The Void
|
||||||
|
Gilded Within
|
||||||
|
Golden Touch
|
||||||
|
Graceful Flames
|
||||||
|
Greed's Folly
|
||||||
|
Heart of the Fire
|
||||||
|
Heavy Blows
|
||||||
|
Hidden Reinforcements
|
||||||
|
Hidden Vaal Pathways
|
||||||
|
Holding the Bridge
|
||||||
|
Hunter's Lesson
|
||||||
|
Ice from Above
|
||||||
|
In the Grasp of Corruption
|
||||||
|
Kalandra's Craft
|
||||||
|
Last of the Wildmen
|
||||||
|
Lasting Impressions
|
||||||
|
Lightning Falls
|
||||||
|
Living Fires
|
||||||
|
Lost in the Pages
|
||||||
|
Monstrous Treasure
|
||||||
|
Mouth of Horrors
|
||||||
|
Mysterious Invaders
|
||||||
|
Nature's Resilience
|
||||||
|
Nemesis of Greed
|
||||||
|
Notched Flesh
|
||||||
|
Overflowing Riches
|
||||||
|
Path of Betrayal
|
||||||
|
Plague of Frogs
|
||||||
|
Plague of Rats
|
||||||
|
Pleasure and Pain
|
||||||
|
Pools of Wealth
|
||||||
|
Possessed Foe
|
||||||
|
Power Magnified
|
||||||
|
Rebirth
|
||||||
|
Reforged Bonds
|
||||||
|
Resistant to Change
|
||||||
|
Risen Blood
|
||||||
|
Roth's Legacy
|
||||||
|
Severed Limbs
|
||||||
|
Smothering Tendrils
|
||||||
|
Soil, Worms and Blood
|
||||||
|
Song of the Sekhema
|
||||||
|
Storm on the Horizon
|
||||||
|
Storm on the Reef
|
||||||
|
Strong as a Bull
|
||||||
|
Sun's Punishment
|
||||||
|
Thaumaturgical History
|
||||||
|
Thaumaturgical History I
|
||||||
|
Thaumaturgical History II
|
||||||
|
Thaumaturgical History III
|
||||||
|
Thaumaturgical History IV
|
||||||
|
The Alchemist
|
||||||
|
The Ambitious Bandit
|
||||||
|
The Ambitious Bandit I
|
||||||
|
The Ambitious Bandit II
|
||||||
|
The Ambitious Bandit III
|
||||||
|
The Apex Predator
|
||||||
|
The Beautiful Guide
|
||||||
|
The Beginning and the End
|
||||||
|
The Bishop's Legacy
|
||||||
|
The Bloody Flowers Redux
|
||||||
|
The Bowstring's Music
|
||||||
|
The Brothers of Necromancy
|
||||||
|
The Brutal Enforcer
|
||||||
|
The Child of Lunaris
|
||||||
|
The Corrupt
|
||||||
|
The Cursed Choir
|
||||||
|
The Dreaded Rhoa
|
||||||
|
The Dream Trial
|
||||||
|
The Dreamer's Dream
|
||||||
|
The Eagle's Cry
|
||||||
|
The Fall of an Empire
|
||||||
|
The Feral Lord
|
||||||
|
The Feral Lord I
|
||||||
|
The Feral Lord II
|
||||||
|
The Feral Lord III
|
||||||
|
The Feral Lord IV
|
||||||
|
The Feral Lord V
|
||||||
|
The Flayed Man
|
||||||
|
The Flow of Energy
|
||||||
|
The Forgotten Garrison
|
||||||
|
The Forgotten Soldiers
|
||||||
|
The Fortune Teller's Collection
|
||||||
|
The Four Feral Exiles
|
||||||
|
The God of Misfortune
|
||||||
|
The Great Leader of the North
|
||||||
|
The Great Mind of the North
|
||||||
|
The Hardened Armour
|
||||||
|
The Hollow Pledge
|
||||||
|
The Hungering Swarm
|
||||||
|
The Invader
|
||||||
|
The Jeweller's Touch
|
||||||
|
The Karui Rebellion
|
||||||
|
The King and the Brambles
|
||||||
|
The King's Path
|
||||||
|
The Lady in Black
|
||||||
|
The Last Watch
|
||||||
|
The Lost Maps
|
||||||
|
The Lost Undying
|
||||||
|
The Malevolent Witch
|
||||||
|
The Misunderstood Queen
|
||||||
|
The Mysterious Gift
|
||||||
|
The Nest
|
||||||
|
The Nightmare Awakens
|
||||||
|
The Petrified
|
||||||
|
The Plaguemaw
|
||||||
|
The Plaguemaw I
|
||||||
|
The Plaguemaw II
|
||||||
|
The Plaguemaw III
|
||||||
|
The Plaguemaw IV
|
||||||
|
The Plaguemaw V
|
||||||
|
The Prison Guard
|
||||||
|
The Prison Key
|
||||||
|
The Queen's Sacrifice
|
||||||
|
The Queen's Vaults
|
||||||
|
The Scout
|
||||||
|
The Servant's Heart
|
||||||
|
The Sharpened Blade
|
||||||
|
The Silverwood
|
||||||
|
The Singular Spirit
|
||||||
|
The Sinner's Stone
|
||||||
|
The Snuffed Flame
|
||||||
|
The Soulless Beast
|
||||||
|
The Stockkeeper
|
||||||
|
The Storm Spire
|
||||||
|
The Sword King's Passion
|
||||||
|
The Trembling Earth
|
||||||
|
The Twins
|
||||||
|
The Unbreathing Queen
|
||||||
|
The Unbreathing Queen I
|
||||||
|
The Unbreathing Queen II
|
||||||
|
The Unbreathing Queen III
|
||||||
|
The Unbreathing Queen IV
|
||||||
|
The Unbreathing Queen V
|
||||||
|
The Undead Brutes
|
||||||
|
The Undead Storm
|
||||||
|
The Vanguard
|
||||||
|
The Walking Mountain
|
||||||
|
The Ward's Ward
|
||||||
|
The Warmongers
|
||||||
|
The Warmongers I
|
||||||
|
The Warmongers II
|
||||||
|
The Warmongers III
|
||||||
|
The Warmongers IV
|
||||||
|
The Watcher's Watcher
|
||||||
|
The Wealthy Exile
|
||||||
|
Touched by the Wind
|
||||||
|
Trapped in the Tower
|
||||||
|
Trash to Treasure
|
||||||
|
Twice Enchanted
|
||||||
|
Unbearable Whispers
|
||||||
|
Unbearable Whispers I
|
||||||
|
Unbearable Whispers II
|
||||||
|
Unbearable Whispers III
|
||||||
|
Unbearable Whispers IV
|
||||||
|
Unbearable Whispers V
|
||||||
|
Undead Uprising
|
||||||
|
Unnatural Energy
|
||||||
|
Vaal Invasion
|
||||||
|
Vaal Winds
|
||||||
|
Visions of the Drowned
|
||||||
|
Vital Transformation
|
||||||
|
Waiting in Ambush
|
||||||
|
Weeping Death
|
||||||
|
Wind and Thunder
|
||||||
|
Winter's Mournful Melodies
|
||||||
@@ -25,6 +25,8 @@ namespace Filtration.Services
|
|||||||
{
|
{
|
||||||
_fileSystemService = fileSystemService;
|
_fileSystemService = fileSystemService;
|
||||||
_itemFilterScriptTranslator = itemFilterScriptTranslator;
|
_itemFilterScriptTranslator = itemFilterScriptTranslator;
|
||||||
|
|
||||||
|
ItemFilterScriptDirectory = Settings.Default.DefaultFilterDirectory;
|
||||||
}
|
}
|
||||||
|
|
||||||
public string ItemFilterScriptDirectory { get; private set; }
|
public string ItemFilterScriptDirectory { get; private set; }
|
||||||
@@ -47,6 +49,7 @@ namespace Filtration.Services
|
|||||||
|
|
||||||
ItemFilterScriptDirectory = path;
|
ItemFilterScriptDirectory = path;
|
||||||
Settings.Default.DefaultFilterDirectory = path;
|
Settings.Default.DefaultFilterDirectory = path;
|
||||||
|
Settings.Default.Save();
|
||||||
}
|
}
|
||||||
|
|
||||||
public async Task<IItemFilterScript> LoadItemFilterScriptAsync(string filePath)
|
public async Task<IItemFilterScript> LoadItemFilterScriptAsync(string filePath)
|
||||||
|
|||||||
@@ -11,6 +11,8 @@ namespace Filtration.Services
|
|||||||
IEnumerable<string> ItemBaseTypes { get; }
|
IEnumerable<string> ItemBaseTypes { get; }
|
||||||
IEnumerable<string> ItemClasses { get; }
|
IEnumerable<string> ItemClasses { get; }
|
||||||
IEnumerable<string> ItemMods { get; }
|
IEnumerable<string> ItemMods { get; }
|
||||||
|
IEnumerable<string> Prophecies { get; }
|
||||||
|
IEnumerable<string> Enchantments { get; }
|
||||||
}
|
}
|
||||||
|
|
||||||
internal class StaticDataService : IStaticDataService
|
internal class StaticDataService : IStaticDataService
|
||||||
@@ -26,11 +28,17 @@ namespace Filtration.Services
|
|||||||
|
|
||||||
public IEnumerable<string> ItemMods { get; private set; }
|
public IEnumerable<string> ItemMods { get; private set; }
|
||||||
|
|
||||||
|
public IEnumerable<string> Prophecies { get; private set; }
|
||||||
|
|
||||||
|
public IEnumerable<string> Enchantments { get; private set; }
|
||||||
|
|
||||||
private void PopulateStaticData()
|
private void PopulateStaticData()
|
||||||
{
|
{
|
||||||
ItemBaseTypes = new LineReader(() => new StringReader(Resources.ItemBaseTypes)).ToList();
|
ItemBaseTypes = new LineReader(() => new StringReader(Resources.ItemBaseTypes)).ToList();
|
||||||
ItemClasses = new LineReader(() => new StringReader(Resources.ItemClasses)).ToList();
|
ItemClasses = new LineReader(() => new StringReader(Resources.ItemClasses)).ToList();
|
||||||
ItemMods = new LineReader(() => new StringReader(Resources.ItemMods)).ToList();
|
ItemMods = new LineReader(() => new StringReader(Resources.ItemMods)).ToList();
|
||||||
|
Prophecies = new LineReader(() => new StringReader(Resources.Prophecies)).ToList();
|
||||||
|
Enchantments = new LineReader(() => new StringReader(Resources.Enchantments)).ToList();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,9 +1,12 @@
|
|||||||
using System;
|
using System;
|
||||||
|
using System.IO;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
|
using System.Reflection;
|
||||||
using System.Text.RegularExpressions;
|
using System.Text.RegularExpressions;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
using Filtration.Enums;
|
using Filtration.Enums;
|
||||||
using Filtration.Properties;
|
using Filtration.Properties;
|
||||||
|
using Filtration.Utility;
|
||||||
using NLog;
|
using NLog;
|
||||||
using Squirrel;
|
using Squirrel;
|
||||||
|
|
||||||
@@ -76,11 +79,14 @@ namespace Filtration.Services
|
|||||||
private bool _downloadPrereleaseUpdates;
|
private bool _downloadPrereleaseUpdates;
|
||||||
private UpdateStatus _updateStatus;
|
private UpdateStatus _updateStatus;
|
||||||
|
|
||||||
public UpdateService(ISettingsService settingsService)
|
public UpdateService(ISettingsService settingsService,
|
||||||
|
ISplatNLogAdapter splatNLogAdapter)
|
||||||
{
|
{
|
||||||
_settingsService = settingsService;
|
_settingsService = settingsService;
|
||||||
|
|
||||||
UpdateStatus = UpdateStatus.NoUpdateAvailable;
|
UpdateStatus = UpdateStatus.NoUpdateAvailable;
|
||||||
|
|
||||||
|
Splat.Locator.CurrentMutable.Register(() => splatNLogAdapter, typeof(Splat.ILogger));
|
||||||
}
|
}
|
||||||
|
|
||||||
public event EventHandler<UpdateStatusChangedEventArgs> UpdateStatusChanged;
|
public event EventHandler<UpdateStatusChangedEventArgs> UpdateStatusChanged;
|
||||||
@@ -117,6 +123,17 @@ namespace Filtration.Services
|
|||||||
_downloadPrereleaseUpdates = true;
|
_downloadPrereleaseUpdates = true;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
var expectedInstallationPath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData), "Filtration");
|
||||||
|
var baseDirectory = AppDomain.CurrentDomain.BaseDirectory;
|
||||||
|
|
||||||
|
var runningInstalled = baseDirectory.StartsWith(expectedInstallationPath);
|
||||||
|
|
||||||
|
if (!runningInstalled)
|
||||||
|
{
|
||||||
|
Logger.Debug($"Skipping update check since base directory of {baseDirectory} does not start with the expected installation path of {expectedInstallationPath}");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
async Task CheckForUpdatesAsync(IUpdateManager updateManager)
|
async Task CheckForUpdatesAsync(IUpdateManager updateManager)
|
||||||
{
|
{
|
||||||
_updates = await updateManager.CheckForUpdate(progress: progress => UpdateProgressChanged?.Invoke(this, new UpdateProgressChangedEventArgs(progress)));
|
_updates = await updateManager.CheckForUpdate(progress: progress => UpdateProgressChanged?.Invoke(this, new UpdateProgressChangedEventArgs(progress)));
|
||||||
|
|||||||
@@ -11,6 +11,7 @@
|
|||||||
xmlns:enums="clr-namespace:Filtration.ObjectModel.Enums;assembly=Filtration.ObjectModel"
|
xmlns:enums="clr-namespace:Filtration.ObjectModel.Enums;assembly=Filtration.ObjectModel"
|
||||||
xmlns:xctk="http://schemas.xceed.com/wpf/xaml/toolkit"
|
xmlns:xctk="http://schemas.xceed.com/wpf/xaml/toolkit"
|
||||||
xmlns:views="clr-namespace:Filtration.Views"
|
xmlns:views="clr-namespace:Filtration.Views"
|
||||||
|
xmlns:utilities="clr-namespace:Filtration.Common.Utilities;assembly=Filtration.Common"
|
||||||
mc:Ignorable="d"
|
mc:Ignorable="d"
|
||||||
d:DataContext="{d:DesignInstance Type=userControls:BlockItemControl}"
|
d:DataContext="{d:DesignInstance Type=userControls:BlockItemControl}"
|
||||||
d:DesignHeight="200" d:DesignWidth="190">
|
d:DesignHeight="200" d:DesignWidth="190">
|
||||||
@@ -76,11 +77,21 @@
|
|||||||
<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>
|
||||||
|
|
||||||
|
<!-- Prophecy Template -->
|
||||||
|
<DataTemplate DataType="{x:Type blockItemTypes:ProphecyBlockItem}">
|
||||||
|
<userControls:EditableListBoxControl Margin="5,5,5,5" ItemsSource="{Binding Items}" AutoCompleteItemsSource="{Binding ElementName=TopLevelGrid, Path=DataContext.AutoCompleteProphecies}" />
|
||||||
|
</DataTemplate>
|
||||||
|
|
||||||
<!-- Explicit Mods Template -->
|
<!-- Explicit Mods Template -->
|
||||||
<DataTemplate DataType="{x:Type blockItemTypes:HasExplicitModBlockItem}">
|
<DataTemplate DataType="{x:Type blockItemTypes:HasExplicitModBlockItem}">
|
||||||
<userControls:EditableListBoxControl Margin="5,5,5,5" ItemsSource="{Binding Items}" AutoCompleteItemsSource="{Binding ElementName=TopLevelGrid, Path=DataContext.AutocompleteItemMods}" />
|
<userControls:EditableListBoxControl Margin="5,5,5,5" ItemsSource="{Binding Items}" AutoCompleteItemsSource="{Binding ElementName=TopLevelGrid, Path=DataContext.AutocompleteItemMods}" />
|
||||||
</DataTemplate>
|
</DataTemplate>
|
||||||
|
|
||||||
|
<!-- Enchantments Template -->
|
||||||
|
<DataTemplate DataType="{x:Type blockItemTypes:HasEnchantmentBlockItem}">
|
||||||
|
<userControls:EditableListBoxControl Margin="5,5,5,5" ItemsSource="{Binding Items}" AutoCompleteItemsSource="{Binding ElementName=TopLevelGrid, Path=DataContext.AutocompleteEnchantments}" />
|
||||||
|
</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}" />
|
||||||
@@ -112,7 +123,7 @@
|
|||||||
<!-- Color Template -->
|
<!-- Color Template -->
|
||||||
<DataTemplate DataType="{x:Type blockItemBaseTypes:ColorBlockItem}">
|
<DataTemplate DataType="{x:Type blockItemBaseTypes:ColorBlockItem}">
|
||||||
<StackPanel>
|
<StackPanel>
|
||||||
<xctk:ColorPicker SelectedColor="{Binding Color}" AvailableColors="{Binding ElementName=BlockItemContentControl, Path=DataContext.AvailableColors }" ShowAvailableColors="True" AvailableColorsHeader="Path of Exile Colors"/>
|
<xctk:ColorPicker SelectedColor="{Binding Color}" AvailableColors="{x:Static utilities:PathOfExileColors.DefaultColors}" ShowAvailableColors="True" AvailableColorsHeader="Path of Exile Colors"/>
|
||||||
<userControls:ThemeComponentSelectionControl ThemeComponent="{Binding ThemeComponent}"
|
<userControls:ThemeComponentSelectionControl ThemeComponent="{Binding ThemeComponent}"
|
||||||
|
|
||||||
Margin="0,2,0,2">
|
Margin="0,2,0,2">
|
||||||
@@ -241,6 +252,13 @@
|
|||||||
</userControls:ThemeComponentSelectionControl>
|
</userControls:ThemeComponentSelectionControl>
|
||||||
</Grid>
|
</Grid>
|
||||||
</DataTemplate>
|
</DataTemplate>
|
||||||
|
|
||||||
|
<!-- Disable Drop Sound Template -->
|
||||||
|
<DataTemplate DataType="{x:Type blockItemBaseTypes:NilBlockItem}">
|
||||||
|
<Grid>
|
||||||
|
<TextBlock Text="{Binding Description}" VerticalAlignment="Center" />
|
||||||
|
</Grid>
|
||||||
|
</DataTemplate>
|
||||||
</ContentControl.Resources>
|
</ContentControl.Resources>
|
||||||
</ContentControl>
|
</ContentControl>
|
||||||
</Grid>
|
</Grid>
|
||||||
|
|||||||
@@ -1,5 +1,4 @@
|
|||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Collections.ObjectModel;
|
|
||||||
using System.ComponentModel;
|
using System.ComponentModel;
|
||||||
using System.Runtime.CompilerServices;
|
using System.Runtime.CompilerServices;
|
||||||
using System.Windows;
|
using System.Windows;
|
||||||
@@ -8,9 +7,7 @@ using Filtration.ObjectModel;
|
|||||||
using Filtration.ObjectModel.BlockItemBaseTypes;
|
using Filtration.ObjectModel.BlockItemBaseTypes;
|
||||||
using Filtration.ObjectModel.Enums;
|
using Filtration.ObjectModel.Enums;
|
||||||
using Filtration.ObjectModel.ThemeEditor;
|
using Filtration.ObjectModel.ThemeEditor;
|
||||||
using Filtration.Views;
|
|
||||||
using GalaSoft.MvvmLight.CommandWpf;
|
using GalaSoft.MvvmLight.CommandWpf;
|
||||||
using Xceed.Wpf.Toolkit;
|
|
||||||
|
|
||||||
namespace Filtration.UserControls
|
namespace Filtration.UserControls
|
||||||
{
|
{
|
||||||
@@ -81,9 +78,6 @@ namespace Filtration.UserControls
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public ObservableCollection<ColorItem> AvailableColors => PathOfExileColors.DefaultColors;
|
|
||||||
|
|
||||||
public List<string> SoundsAvailable => new List<string> {
|
public List<string> SoundsAvailable => new List<string> {
|
||||||
"1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16",
|
"1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16",
|
||||||
"ShGeneral", "ShBlessed", "ShChaos", "ShDivine", "ShExalted", "ShMirror", "ShAlchemy",
|
"ShGeneral", "ShBlessed", "ShChaos", "ShDivine", "ShExalted", "ShMirror", "ShAlchemy",
|
||||||
|
|||||||
52
Filtration/Utility/SplatNLogAdapter.cs
Normal file
52
Filtration/Utility/SplatNLogAdapter.cs
Normal file
@@ -0,0 +1,52 @@
|
|||||||
|
using System;
|
||||||
|
using NLog;
|
||||||
|
using ILogger = Splat.ILogger;
|
||||||
|
using LogLevel = Splat.LogLevel;
|
||||||
|
|
||||||
|
namespace Filtration.Utility
|
||||||
|
{
|
||||||
|
public interface ISplatNLogAdapter
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
public class SplatNLogAdapter : ILogger, ISplatNLogAdapter
|
||||||
|
{
|
||||||
|
private static readonly Logger Logger = LogManager.GetLogger("SquirrelLogger");
|
||||||
|
|
||||||
|
public void Write(string message, LogLevel logLevel)
|
||||||
|
{
|
||||||
|
switch (logLevel)
|
||||||
|
{
|
||||||
|
case LogLevel.Debug:
|
||||||
|
{
|
||||||
|
Logger.Debug(message);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case LogLevel.Info:
|
||||||
|
{
|
||||||
|
Logger.Info(message);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case LogLevel.Error:
|
||||||
|
{
|
||||||
|
Logger.Error(message);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case LogLevel.Fatal:
|
||||||
|
{
|
||||||
|
Logger.Fatal(message);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case LogLevel.Warn:
|
||||||
|
{
|
||||||
|
Logger.Warn(message);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
default:
|
||||||
|
throw new ArgumentOutOfRangeException(nameof(logLevel), logLevel, null);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public LogLevel Level { get; set; }
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -111,6 +111,7 @@ namespace Filtration.ViewModels.DesignTime
|
|||||||
public bool DisplaySettingsPopupOpen { get; set; }
|
public bool DisplaySettingsPopupOpen { get; set; }
|
||||||
public IEnumerable<string> AutoCompleteItemClasses { get; }
|
public IEnumerable<string> AutoCompleteItemClasses { get; }
|
||||||
public IEnumerable<string> AutoCompleteItemBaseTypes { get; }
|
public IEnumerable<string> AutoCompleteItemBaseTypes { get; }
|
||||||
|
public IEnumerable<string> AutoCompleteProphecies { get; }
|
||||||
public IEnumerable<string> AutocompleteItemMods { get; }
|
public IEnumerable<string> AutocompleteItemMods { get; }
|
||||||
public List<Type> BlockItemTypesAvailable => new List<Type>
|
public List<Type> BlockItemTypesAvailable => new List<Type>
|
||||||
{
|
{
|
||||||
@@ -125,19 +126,23 @@ namespace Filtration.ViewModels.DesignTime
|
|||||||
typeof (SocketGroupBlockItem),
|
typeof (SocketGroupBlockItem),
|
||||||
typeof (ClassBlockItem),
|
typeof (ClassBlockItem),
|
||||||
typeof (BaseTypeBlockItem),
|
typeof (BaseTypeBlockItem),
|
||||||
|
typeof (ProphecyBlockItem),
|
||||||
typeof (IdentifiedBlockItem),
|
typeof (IdentifiedBlockItem),
|
||||||
typeof (CorruptedBlockItem),
|
typeof (CorruptedBlockItem),
|
||||||
typeof (ElderItemBlockItem),
|
typeof (ElderItemBlockItem),
|
||||||
typeof (ShaperItemBlockItem),
|
typeof (ShaperItemBlockItem),
|
||||||
|
typeof (SynthesisedItemBlockItem),
|
||||||
|
typeof (FracturedItemBlockItem),
|
||||||
|
typeof (AnyEnchantmentBlockItem),
|
||||||
typeof (MapTierBlockItem),
|
typeof (MapTierBlockItem),
|
||||||
typeof (ShapedMapBlockItem),
|
typeof (ShapedMapBlockItem),
|
||||||
typeof (ElderMapBlockItem),
|
typeof (ElderMapBlockItem),
|
||||||
typeof (GemLevelBlockItem),
|
typeof (GemLevelBlockItem),
|
||||||
typeof (StackSizeBlockItem),
|
typeof (StackSizeBlockItem),
|
||||||
typeof (HasExplicitModBlockItem)
|
typeof (HasExplicitModBlockItem),
|
||||||
|
typeof (HasEnchantmentBlockItem)
|
||||||
};
|
};
|
||||||
public List<Type> AudioVisualBlockItemTypesAvailable { get; }
|
public List<Type> AudioVisualBlockItemTypesAvailable { get; }
|
||||||
public ObservableCollection<ColorItem> AvailableColors { get; }
|
|
||||||
public Color DisplayTextColor => Colors.Red;
|
public Color DisplayTextColor => Colors.Red;
|
||||||
public Color DisplayBackgroundColor => Colors.White;
|
public Color DisplayBackgroundColor => Colors.White;
|
||||||
public Color DisplayBorderColor => Colors.GreenYellow;
|
public Color DisplayBorderColor => Colors.GreenYellow;
|
||||||
@@ -149,6 +154,7 @@ namespace Filtration.ViewModels.DesignTime
|
|||||||
public bool HasSound { get; }
|
public bool HasSound { get; }
|
||||||
public bool HasPositionalSound { get; }
|
public bool HasPositionalSound { get; }
|
||||||
public bool HasCustomSound { get; }
|
public bool HasCustomSound { get; }
|
||||||
|
public bool HasDisabledDefaultSound { get; }
|
||||||
public bool HasAudioVisualBlockItems { get; }
|
public bool HasAudioVisualBlockItems { get; }
|
||||||
public void RefreshBlockPreview()
|
public void RefreshBlockPreview()
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -39,7 +39,7 @@ namespace Filtration.ViewModels.DesignTime
|
|||||||
|
|
||||||
public bool IsScript { get; }
|
public bool IsScript { get; }
|
||||||
public bool IsTheme { get; }
|
public bool IsTheme { get; }
|
||||||
public Task Close()
|
public Task<bool> Close()
|
||||||
{
|
{
|
||||||
throw new System.NotImplementedException();
|
throw new System.NotImplementedException();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -50,10 +50,10 @@ namespace Filtration.ViewModels
|
|||||||
bool DisplaySettingsPopupOpen { get; set; }
|
bool DisplaySettingsPopupOpen { get; set; }
|
||||||
IEnumerable<string> AutoCompleteItemClasses { get; }
|
IEnumerable<string> AutoCompleteItemClasses { get; }
|
||||||
IEnumerable<string> AutoCompleteItemBaseTypes { get; }
|
IEnumerable<string> AutoCompleteItemBaseTypes { get; }
|
||||||
|
IEnumerable<string> AutoCompleteProphecies { get; }
|
||||||
IEnumerable<string> AutocompleteItemMods { get; }
|
IEnumerable<string> AutocompleteItemMods { get; }
|
||||||
List<Type> BlockItemTypesAvailable { get; }
|
List<Type> BlockItemTypesAvailable { get; }
|
||||||
List<Type> AudioVisualBlockItemTypesAvailable { get; }
|
List<Type> AudioVisualBlockItemTypesAvailable { get; }
|
||||||
ObservableCollection<ColorItem> AvailableColors { get; }
|
|
||||||
Color DisplayTextColor { get; }
|
Color DisplayTextColor { get; }
|
||||||
Color DisplayBackgroundColor { get; }
|
Color DisplayBackgroundColor { get; }
|
||||||
Color DisplayBorderColor { get; }
|
Color DisplayBorderColor { get; }
|
||||||
@@ -65,6 +65,7 @@ namespace Filtration.ViewModels
|
|||||||
bool HasSound { get; }
|
bool HasSound { get; }
|
||||||
bool HasPositionalSound { get; }
|
bool HasPositionalSound { get; }
|
||||||
bool HasCustomSound { get; }
|
bool HasCustomSound { get; }
|
||||||
|
bool HasDisabledDefaultSound { get; }
|
||||||
bool HasAudioVisualBlockItems { get; }
|
bool HasAudioVisualBlockItems { get; }
|
||||||
void RefreshBlockPreview();
|
void RefreshBlockPreview();
|
||||||
}
|
}
|
||||||
@@ -203,8 +204,12 @@ namespace Filtration.ViewModels
|
|||||||
|
|
||||||
public IEnumerable<string> AutoCompleteItemBaseTypes => _staticDataService.ItemBaseTypes;
|
public IEnumerable<string> AutoCompleteItemBaseTypes => _staticDataService.ItemBaseTypes;
|
||||||
|
|
||||||
|
public IEnumerable<string> AutoCompleteProphecies => _staticDataService.Prophecies;
|
||||||
|
|
||||||
public IEnumerable<string> AutocompleteItemMods => _staticDataService.ItemMods;
|
public IEnumerable<string> AutocompleteItemMods => _staticDataService.ItemMods;
|
||||||
|
|
||||||
|
public IEnumerable<string> AutocompleteEnchantments => _staticDataService.Enchantments;
|
||||||
|
|
||||||
public List<Type> BlockItemTypesAvailable => new List<Type>
|
public List<Type> BlockItemTypesAvailable => new List<Type>
|
||||||
{
|
{
|
||||||
typeof (ItemLevelBlockItem),
|
typeof (ItemLevelBlockItem),
|
||||||
@@ -218,16 +223,21 @@ namespace Filtration.ViewModels
|
|||||||
typeof (SocketGroupBlockItem),
|
typeof (SocketGroupBlockItem),
|
||||||
typeof (ClassBlockItem),
|
typeof (ClassBlockItem),
|
||||||
typeof (BaseTypeBlockItem),
|
typeof (BaseTypeBlockItem),
|
||||||
|
typeof (ProphecyBlockItem),
|
||||||
typeof (IdentifiedBlockItem),
|
typeof (IdentifiedBlockItem),
|
||||||
typeof (CorruptedBlockItem),
|
typeof (CorruptedBlockItem),
|
||||||
typeof (ElderItemBlockItem),
|
typeof (ElderItemBlockItem),
|
||||||
typeof (ShaperItemBlockItem),
|
typeof (ShaperItemBlockItem),
|
||||||
|
typeof (SynthesisedItemBlockItem),
|
||||||
|
typeof (FracturedItemBlockItem),
|
||||||
|
typeof (AnyEnchantmentBlockItem),
|
||||||
typeof (MapTierBlockItem),
|
typeof (MapTierBlockItem),
|
||||||
typeof (ShapedMapBlockItem),
|
typeof (ShapedMapBlockItem),
|
||||||
typeof (ElderMapBlockItem),
|
typeof (ElderMapBlockItem),
|
||||||
typeof (GemLevelBlockItem),
|
typeof (GemLevelBlockItem),
|
||||||
typeof (StackSizeBlockItem),
|
typeof (StackSizeBlockItem),
|
||||||
typeof (HasExplicitModBlockItem)
|
typeof (HasExplicitModBlockItem),
|
||||||
|
typeof (HasEnchantmentBlockItem)
|
||||||
};
|
};
|
||||||
|
|
||||||
public List<Type> AudioVisualBlockItemTypesAvailable => new List<Type>
|
public List<Type> AudioVisualBlockItemTypesAvailable => new List<Type>
|
||||||
@@ -272,8 +282,6 @@ namespace Filtration.ViewModels
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public ObservableCollection<ColorItem> AvailableColors => PathOfExileColors.DefaultColors;
|
|
||||||
|
|
||||||
public Color DisplayTextColor => Block.DisplayTextColor;
|
public Color DisplayTextColor => Block.DisplayTextColor;
|
||||||
public Color DisplayBackgroundColor => Block.DisplayBackgroundColor;
|
public Color DisplayBackgroundColor => Block.DisplayBackgroundColor;
|
||||||
public Color DisplayBorderColor => Block.DisplayBorderColor;
|
public Color DisplayBorderColor => Block.DisplayBorderColor;
|
||||||
@@ -286,6 +294,7 @@ namespace Filtration.ViewModels
|
|||||||
public bool HasSound => Block.HasBlockItemOfType<SoundBlockItem>();
|
public bool HasSound => Block.HasBlockItemOfType<SoundBlockItem>();
|
||||||
public bool HasPositionalSound => Block.HasBlockItemOfType<PositionalSoundBlockItem>();
|
public bool HasPositionalSound => Block.HasBlockItemOfType<PositionalSoundBlockItem>();
|
||||||
public bool HasCustomSound => Block.HasBlockItemOfType<CustomSoundBlockItem>();
|
public bool HasCustomSound => Block.HasBlockItemOfType<CustomSoundBlockItem>();
|
||||||
|
public bool HasDisabledDefaultSound => Block.HasBlockItemOfType<DisableDropSoundBlockItem>();
|
||||||
|
|
||||||
public bool HasAudioVisualBlockItems => AudioVisualBlockItems.Any();
|
public bool HasAudioVisualBlockItems => AudioVisualBlockItems.Any();
|
||||||
|
|
||||||
@@ -348,6 +357,10 @@ namespace Filtration.ViewModels
|
|||||||
private void OnPasteBlockStyleCommand()
|
private void OnPasteBlockStyleCommand()
|
||||||
{
|
{
|
||||||
_parentScriptViewModel.PasteBlockStyle(this);
|
_parentScriptViewModel.PasteBlockStyle(this);
|
||||||
|
foreach (var blockItem in Block.BlockItems.OfType<IAudioVisualBlockItem>())
|
||||||
|
{
|
||||||
|
blockItem.PropertyChanged += OnBlockItemChanged;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void OnAddBlockCommand()
|
private void OnAddBlockCommand()
|
||||||
@@ -525,6 +538,7 @@ namespace Filtration.ViewModels
|
|||||||
RaisePropertyChanged(nameof(HasSound));
|
RaisePropertyChanged(nameof(HasSound));
|
||||||
RaisePropertyChanged(nameof(HasPositionalSound));
|
RaisePropertyChanged(nameof(HasPositionalSound));
|
||||||
RaisePropertyChanged(nameof(HasCustomSound));
|
RaisePropertyChanged(nameof(HasCustomSound));
|
||||||
|
RaisePropertyChanged(nameof(HasDisabledDefaultSound));
|
||||||
}
|
}
|
||||||
|
|
||||||
private void OnBlockItemsCollectionChanged(object sender, NotifyCollectionChangedEventArgs e)
|
private void OnBlockItemsCollectionChanged(object sender, NotifyCollectionChangedEventArgs e)
|
||||||
@@ -533,6 +547,7 @@ namespace Filtration.ViewModels
|
|||||||
RaisePropertyChanged(nameof(SummaryBlockItems));
|
RaisePropertyChanged(nameof(SummaryBlockItems));
|
||||||
RaisePropertyChanged(nameof(AudioVisualBlockItems));
|
RaisePropertyChanged(nameof(AudioVisualBlockItems));
|
||||||
RaisePropertyChanged(nameof(HasAudioVisualBlockItems));
|
RaisePropertyChanged(nameof(HasAudioVisualBlockItems));
|
||||||
|
RaisePropertyChanged(nameof(HasDisabledDefaultSound));
|
||||||
}
|
}
|
||||||
|
|
||||||
private void OnCustomSoundFileDialog()
|
private void OnCustomSoundFileDialog()
|
||||||
|
|||||||
@@ -77,6 +77,8 @@ namespace Filtration.ViewModels
|
|||||||
RelayCommand<bool> ToggleShowAdvancedCommand { get; }
|
RelayCommand<bool> ToggleShowAdvancedCommand { get; }
|
||||||
RelayCommand ClearFilterCommand { get; }
|
RelayCommand ClearFilterCommand { get; }
|
||||||
RelayCommand ClearStylesCommand { get; }
|
RelayCommand ClearStylesCommand { get; }
|
||||||
|
RelayCommand EnableDropSoundsCommand { get; }
|
||||||
|
RelayCommand DisableDropSoundsCommand { get; }
|
||||||
|
|
||||||
void AddCommentBlock(IItemFilterBlockViewModelBase targetBlockViewModelBase);
|
void AddCommentBlock(IItemFilterBlockViewModelBase targetBlockViewModelBase);
|
||||||
void AddBlock(IItemFilterBlockViewModelBase targetBlockViewModelBase);
|
void AddBlock(IItemFilterBlockViewModelBase targetBlockViewModelBase);
|
||||||
@@ -180,6 +182,8 @@ namespace Filtration.ViewModels
|
|||||||
CollapseAllBlocksCommand = new RelayCommand(OnCollapseAllBlocksCommand);
|
CollapseAllBlocksCommand = new RelayCommand(OnCollapseAllBlocksCommand);
|
||||||
ExpandAllSectionsCommand = new RelayCommand(ExpandAllSections);
|
ExpandAllSectionsCommand = new RelayCommand(ExpandAllSections);
|
||||||
CollapseAllSectionsCommand = new RelayCommand(CollapseAllSections);
|
CollapseAllSectionsCommand = new RelayCommand(CollapseAllSections);
|
||||||
|
EnableDropSoundsCommand = new RelayCommand(OnEnableDropSoundsCommand, CanModifySelectedBlocks);
|
||||||
|
DisableDropSoundsCommand = new RelayCommand(OnDisableDropSoundsCommand, CanModifySelectedBlocks);
|
||||||
|
|
||||||
var icon = new BitmapImage();
|
var icon = new BitmapImage();
|
||||||
icon.BeginInit();
|
icon.BeginInit();
|
||||||
@@ -389,7 +393,7 @@ namespace Filtration.ViewModels
|
|||||||
{
|
{
|
||||||
for (var i = 0; i < SelectedBlockViewModels.Count; i++)
|
for (var i = 0; i < SelectedBlockViewModels.Count; i++)
|
||||||
{
|
{
|
||||||
if (!ViewItemFilterBlockViewModels.Contains(SelectedBlockViewModels[i]))
|
if (SelectedBlockViewModels[i] == null || !ViewItemFilterBlockViewModels.Contains(SelectedBlockViewModels[i]))
|
||||||
{
|
{
|
||||||
SelectedBlockViewModels.RemoveAt(i--);
|
SelectedBlockViewModels.RemoveAt(i--);
|
||||||
}
|
}
|
||||||
@@ -421,6 +425,8 @@ namespace Filtration.ViewModels
|
|||||||
public RelayCommand CollapseAllBlocksCommand { get; }
|
public RelayCommand CollapseAllBlocksCommand { get; }
|
||||||
public RelayCommand ExpandAllSectionsCommand { get; }
|
public RelayCommand ExpandAllSectionsCommand { get; }
|
||||||
public RelayCommand CollapseAllSectionsCommand { get; }
|
public RelayCommand CollapseAllSectionsCommand { get; }
|
||||||
|
public RelayCommand EnableDropSoundsCommand { get; }
|
||||||
|
public RelayCommand DisableDropSoundsCommand { get; }
|
||||||
|
|
||||||
public bool IsActiveDocument
|
public bool IsActiveDocument
|
||||||
{
|
{
|
||||||
@@ -556,6 +562,8 @@ namespace Filtration.ViewModels
|
|||||||
|
|
||||||
public bool CanModifySelectedBlocks()
|
public bool CanModifySelectedBlocks()
|
||||||
{
|
{
|
||||||
|
ValidateSelectedBlocks();
|
||||||
|
|
||||||
if (SelectedBlockViewModels.Count < 1)
|
if (SelectedBlockViewModels.Count < 1)
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
@@ -572,6 +580,9 @@ namespace Filtration.ViewModels
|
|||||||
|
|
||||||
public bool CanModifyBlock(IItemFilterBlockViewModelBase itemFilterBlock)
|
public bool CanModifyBlock(IItemFilterBlockViewModelBase itemFilterBlock)
|
||||||
{
|
{
|
||||||
|
if (itemFilterBlock == null)
|
||||||
|
return false;
|
||||||
|
|
||||||
if (itemFilterBlock is IItemFilterBlockViewModel)
|
if (itemFilterBlock is IItemFilterBlockViewModel)
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
@@ -790,14 +801,14 @@ namespace Filtration.ViewModels
|
|||||||
await Close();
|
await Close();
|
||||||
}
|
}
|
||||||
|
|
||||||
public async Task Close()
|
public async Task<bool> Close()
|
||||||
{
|
{
|
||||||
if (!IsDirty)
|
if (!IsDirty)
|
||||||
{
|
{
|
||||||
CloseScript();
|
CloseScript();
|
||||||
|
return true;
|
||||||
}
|
}
|
||||||
else
|
|
||||||
{
|
|
||||||
var result = _messageBoxService.Show("Filtration",
|
var result = _messageBoxService.Show("Filtration",
|
||||||
"Save script \"" + Filename + "\"?", MessageBoxButton.YesNoCancel, MessageBoxImage.Question);
|
"Save script \"" + Filename + "\"?", MessageBoxButton.YesNoCancel, MessageBoxImage.Question);
|
||||||
|
|
||||||
@@ -807,17 +818,20 @@ namespace Filtration.ViewModels
|
|||||||
{
|
{
|
||||||
await SaveAsync();
|
await SaveAsync();
|
||||||
CloseScript();
|
CloseScript();
|
||||||
break;
|
return true;
|
||||||
}
|
}
|
||||||
case MessageBoxResult.No:
|
case MessageBoxResult.No:
|
||||||
{
|
{
|
||||||
CloseScript();
|
CloseScript();
|
||||||
break;
|
return true;
|
||||||
}
|
}
|
||||||
case MessageBoxResult.Cancel:
|
case MessageBoxResult.Cancel:
|
||||||
{
|
{
|
||||||
return;
|
return false;
|
||||||
}
|
}
|
||||||
|
default:
|
||||||
|
{
|
||||||
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1284,6 +1298,63 @@ namespace Filtration.ViewModels
|
|||||||
SetDirtyFlag();
|
SetDirtyFlag();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void OnEnableDropSoundsCommand()
|
||||||
|
{
|
||||||
|
ValidateSelectedBlocks();
|
||||||
|
|
||||||
|
var input = new List<Tuple<ObservableCollection<IItemFilterBlockItem>, IItemFilterBlockItem>>();
|
||||||
|
|
||||||
|
foreach (var block in SelectedBlockViewModels.OfType<IItemFilterBlockViewModel>())
|
||||||
|
{
|
||||||
|
var blockItems = block.Block.BlockItems;
|
||||||
|
for (var i = 0; i < blockItems.Count; i++)
|
||||||
|
{
|
||||||
|
var blockItem = blockItems[i];
|
||||||
|
if (blockItem is DisableDropSoundBlockItem)
|
||||||
|
{
|
||||||
|
input.Add(new Tuple<ObservableCollection<IItemFilterBlockItem>, IItemFilterBlockItem>(blockItems, blockItem));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (input.Count > 0)
|
||||||
|
{
|
||||||
|
_scriptCommandManager.ExecuteCommand(new RemoveBlockItemFromBlocksCommand(input));
|
||||||
|
SetDirtyFlag();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void OnDisableDropSoundsCommand()
|
||||||
|
{
|
||||||
|
ValidateSelectedBlocks();
|
||||||
|
|
||||||
|
var input = new List<Tuple<ObservableCollection<IItemFilterBlockItem>, IItemFilterBlockItem>>();
|
||||||
|
|
||||||
|
foreach (var block in SelectedBlockViewModels.OfType<IItemFilterBlockViewModel>())
|
||||||
|
{
|
||||||
|
var blockItems = block.Block.BlockItems;
|
||||||
|
var found = false;
|
||||||
|
foreach (var item in blockItems)
|
||||||
|
{
|
||||||
|
if (item is DisableDropSoundBlockItem)
|
||||||
|
{
|
||||||
|
found = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!found) {
|
||||||
|
var item = new DisableDropSoundBlockItem();
|
||||||
|
input.Add(new Tuple<ObservableCollection<IItemFilterBlockItem>, IItemFilterBlockItem>(blockItems, item));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (input.Count > 0)
|
||||||
|
{
|
||||||
|
_scriptCommandManager.ExecuteCommand(new AddBlockItemToBlocksCommand(input));
|
||||||
|
SetDirtyFlag();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private void OnBlockBecameDirty(object sender, EventArgs e)
|
private void OnBlockBecameDirty(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
SetDirtyFlag();
|
SetDirtyFlag();
|
||||||
|
|||||||
@@ -129,6 +129,9 @@ namespace Filtration.ViewModels
|
|||||||
ApplyThemeToScriptCommand = new RelayCommand(async () => await OnApplyThemeToScriptCommandAsync(), () => ActiveDocumentIsScript);
|
ApplyThemeToScriptCommand = new RelayCommand(async () => await OnApplyThemeToScriptCommandAsync(), () => ActiveDocumentIsScript);
|
||||||
EditMasterThemeCommand = new RelayCommand(OnEditMasterThemeCommand, () => ActiveDocumentIsScript);
|
EditMasterThemeCommand = new RelayCommand(OnEditMasterThemeCommand, () => ActiveDocumentIsScript);
|
||||||
|
|
||||||
|
EnableDropSoundsCommand = new RelayCommand(OnEnableDropSoundsCommand, () => ActiveDocumentIsScript && ActiveScriptHasSelectedBlock && ActiveScriptCanModifySelectedBlocks);
|
||||||
|
DisableDropSoundsCommand = new RelayCommand(OnDisableDropSoundsCommand, () => ActiveDocumentIsScript && ActiveScriptHasSelectedBlock && ActiveScriptCanModifySelectedBlocks);
|
||||||
|
|
||||||
AddTextColorThemeComponentCommand = new RelayCommand(OnAddTextColorThemeComponentCommand, () => ActiveDocumentIsTheme && ActiveThemeIsEditable);
|
AddTextColorThemeComponentCommand = new RelayCommand(OnAddTextColorThemeComponentCommand, () => ActiveDocumentIsTheme && ActiveThemeIsEditable);
|
||||||
AddBackgroundColorThemeComponentCommand = new RelayCommand(OnAddBackgroundColorThemeComponentCommand, () => ActiveDocumentIsTheme && ActiveThemeIsEditable);
|
AddBackgroundColorThemeComponentCommand = new RelayCommand(OnAddBackgroundColorThemeComponentCommand, () => ActiveDocumentIsTheme && ActiveThemeIsEditable);
|
||||||
AddBorderColorThemeComponentCommand = new RelayCommand(OnAddBorderColorThemeComponentCommand, () => ActiveDocumentIsTheme && ActiveThemeIsEditable);
|
AddBorderColorThemeComponentCommand = new RelayCommand(OnAddBorderColorThemeComponentCommand, () => ActiveDocumentIsTheme && ActiveThemeIsEditable);
|
||||||
@@ -230,6 +233,9 @@ namespace Filtration.ViewModels
|
|||||||
public RelayCommand CreateThemeCommand { get; }
|
public RelayCommand CreateThemeCommand { get; }
|
||||||
public RelayCommand ApplyThemeToScriptCommand { get; }
|
public RelayCommand ApplyThemeToScriptCommand { get; }
|
||||||
|
|
||||||
|
public RelayCommand EnableDropSoundsCommand { get; }
|
||||||
|
public RelayCommand DisableDropSoundsCommand { get; }
|
||||||
|
|
||||||
public RelayCommand AddTextColorThemeComponentCommand { get; }
|
public RelayCommand AddTextColorThemeComponentCommand { get; }
|
||||||
public RelayCommand AddBackgroundColorThemeComponentCommand { get; }
|
public RelayCommand AddBackgroundColorThemeComponentCommand { get; }
|
||||||
public RelayCommand AddBorderColorThemeComponentCommand { get; }
|
public RelayCommand AddBorderColorThemeComponentCommand { get; }
|
||||||
@@ -724,6 +730,32 @@ namespace Filtration.ViewModels
|
|||||||
_avalonDockWorkspaceViewModel.ActiveThemeViewModel.SelectedThemeComponent);
|
_avalonDockWorkspaceViewModel.ActiveThemeViewModel.SelectedThemeComponent);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void OnEnableDropSoundsCommand()
|
||||||
|
{
|
||||||
|
var result = _messageBoxService.Show("Confirm",
|
||||||
|
"Are you sure you wish to enable drop sounds on all selected blocks?",
|
||||||
|
MessageBoxButton.YesNo, MessageBoxImage.Question);
|
||||||
|
if (result == MessageBoxResult.No)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
_avalonDockWorkspaceViewModel.ActiveScriptViewModel.EnableDropSoundsCommand.Execute(null);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void OnDisableDropSoundsCommand()
|
||||||
|
{
|
||||||
|
var result = _messageBoxService.Show("Confirm",
|
||||||
|
"Are you sure you wish to disable drop sounds on all selected blocks?",
|
||||||
|
MessageBoxButton.YesNo, MessageBoxImage.Question);
|
||||||
|
if (result == MessageBoxResult.No)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
_avalonDockWorkspaceViewModel.ActiveScriptViewModel.DisableDropSoundsCommand.Execute(null);
|
||||||
|
}
|
||||||
|
|
||||||
public async Task<bool> CloseAllDocumentsAsync()
|
public async Task<bool> CloseAllDocumentsAsync()
|
||||||
{
|
{
|
||||||
Settings.Default.LastOpenScripts = string.Join("|", _avalonDockWorkspaceViewModel.OpenDocuments.OfType<IItemFilterScriptViewModel>().Select(sc => sc.Script.FilePath));
|
Settings.Default.LastOpenScripts = string.Join("|", _avalonDockWorkspaceViewModel.OpenDocuments.OfType<IItemFilterScriptViewModel>().Select(sc => sc.Script.FilePath));
|
||||||
@@ -736,7 +768,10 @@ namespace Filtration.ViewModels
|
|||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
await document.Close();
|
if (!await document.Close())
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
|
|||||||
@@ -1,12 +1,9 @@
|
|||||||
using System.Collections.ObjectModel;
|
using System.Linq;
|
||||||
using System.Linq;
|
|
||||||
using System.Windows.Media;
|
using System.Windows.Media;
|
||||||
using Filtration.ObjectModel;
|
using Filtration.ObjectModel;
|
||||||
using Filtration.ObjectModel.BlockItemTypes;
|
using Filtration.ObjectModel.BlockItemTypes;
|
||||||
using Filtration.Views;
|
|
||||||
using GalaSoft.MvvmLight;
|
using GalaSoft.MvvmLight;
|
||||||
using GalaSoft.MvvmLight.CommandWpf;
|
using GalaSoft.MvvmLight.CommandWpf;
|
||||||
using Xceed.Wpf.Toolkit;
|
|
||||||
|
|
||||||
namespace Filtration.ViewModels
|
namespace Filtration.ViewModels
|
||||||
{
|
{
|
||||||
@@ -62,8 +59,6 @@ namespace Filtration.ViewModels
|
|||||||
_itemFilterScript = itemFilterScript;
|
_itemFilterScript = itemFilterScript;
|
||||||
}
|
}
|
||||||
|
|
||||||
public ObservableCollection<ColorItem> AvailableColors => PathOfExileColors.DefaultColors;
|
|
||||||
|
|
||||||
public Color NewTextColor
|
public Color NewTextColor
|
||||||
{
|
{
|
||||||
get => _replaceColorsParameterSet.NewTextColor;
|
get => _replaceColorsParameterSet.NewTextColor;
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user