diff --git a/.vs/PoE-MxFilterGen/v15/.suo b/.vs/PoE-MxFilterGen/v15/.suo index 48cc5a2..e260ba4 100644 Binary files a/.vs/PoE-MxFilterGen/v15/.suo and b/.vs/PoE-MxFilterGen/v15/.suo differ diff --git a/CHANGELOG b/CHANGELOG index bd10ef5..e9885d7 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -1,6 +1,6 @@ +[January 1, 2018][2.0.0] ++ Structure release. Will now generate from method or static data. + [October 26, 2017][1.0.4] F Fixed 3 crashes due to "not nullable variables". -F Will now verify if \data and \gen exists and create them if they don't. - - - +F Will now verify if \data and \gen exists and create them if they don't. \ No newline at end of file diff --git a/PoE-MxFilterGen/Chaos_Orb.ico b/PoE-MxFilterGen/Chaos_Orb.ico new file mode 100644 index 0000000..f133660 Binary files /dev/null and b/PoE-MxFilterGen/Chaos_Orb.ico differ diff --git a/PoE-MxFilterGen/PoE-MxFilterGen.csproj b/PoE-MxFilterGen/PoE-MxFilterGen.csproj index ff4ac18..1187119 100644 --- a/PoE-MxFilterGen/PoE-MxFilterGen.csproj +++ b/PoE-MxFilterGen/PoE-MxFilterGen.csproj @@ -31,6 +31,9 @@ <ErrorReport>prompt</ErrorReport> <WarningLevel>4</WarningLevel> </PropertyGroup> + <PropertyGroup> + <ApplicationIcon>Chaos_Orb.ico</ApplicationIcon> + </PropertyGroup> <ItemGroup> <Reference Include="Newtonsoft.Json, Version=10.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL"> <HintPath>..\packages\Newtonsoft.Json.10.0.3\lib\net45\Newtonsoft.Json.dll</HintPath> @@ -48,8 +51,15 @@ <Compile Include="json\accessories.cs" /> <Compile Include="json\armours.cs" /> <Compile Include="json\cards.cs" /> + <Compile Include="json\chanceBelt.cs" /> + <Compile Include="json\chanceShield.cs" /> + <Compile Include="json\chanceQuiver.cs" /> + <Compile Include="json\chanceHelmet.cs" /> + <Compile Include="json\chanceGloves.cs" /> + <Compile Include="json\chanceBoots.cs" /> <Compile Include="json\maps.cs" /> <Compile Include="json\settings.cs" /> + <Compile Include="json\chanceBody.cs" /> <Compile Include="json\weapons.cs" /> <Compile Include="main.cs" /> <Compile Include="msg.cs" /> @@ -60,5 +70,8 @@ <None Include="App.config" /> <None Include="packages.config" /> </ItemGroup> + <ItemGroup> + <Content Include="Chaos_Orb.ico" /> + </ItemGroup> <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" /> </Project> \ No newline at end of file diff --git a/PoE-MxFilterGen/json/accessories.cs b/PoE-MxFilterGen/json/accessories.cs index 28d8ee3..125e9da 100644 --- a/PoE-MxFilterGen/json/accessories.cs +++ b/PoE-MxFilterGen/json/accessories.cs @@ -53,7 +53,7 @@ namespace PoE_MxFilterGen.json { private static string iB; - public static void GenAccessories() + public static void GenAccessories(string section) { List<string> itemBase = new List<string>(); RootAccessory j = JsonConvert.DeserializeObject<RootAccessory>(File.ReadAllText("data/ninja.accessory.json", Encoding.UTF8)); @@ -66,7 +66,10 @@ namespace PoE_MxFilterGen.json // Check if the item value is equal or superior to the minimum value if (ln.chaosValue >= json.settings.GetMinimumValue()) { - msg.CMW(string.Format("[{0}][{1}c] Added to the list.", ln.baseType, ln.chaosValue), true, 1); + if (json.settings.GetVerbose()) + { + msg.CMW(string.Format("[{0}][{1}c] Added to the list.", ln.name, ln.chaosValue), true, 1); + } if (!itemBase.Contains(ln.baseType)) { itemBase.Add(ln.baseType); @@ -76,16 +79,17 @@ namespace PoE_MxFilterGen.json } } - File.AppendAllText(@"gen\" + main.fDate + "_gen.txt", "## Accessories Gen" + Environment.NewLine, Encoding.UTF8); - File.AppendAllText(@"gen\" + main.fDate + "_gen.txt", "Show" + Environment.NewLine, Encoding.UTF8); - File.AppendAllText(@"gen\" + main.fDate + "_gen.txt", " BaseType" + iB + Environment.NewLine, Encoding.UTF8); - File.AppendAllText(@"gen\" + main.fDate + "_gen.txt", " Rarity = Unique" + Environment.NewLine, Encoding.UTF8); - File.AppendAllText(@"gen\" + main.fDate + "_gen.txt", " SetTextColor 222 95 0" + Environment.NewLine, Encoding.UTF8); - File.AppendAllText(@"gen\" + main.fDate + "_gen.txt", " SetBackgroundColor 255 255 255" + Environment.NewLine, Encoding.UTF8); - File.AppendAllText(@"gen\" + main.fDate + "_gen.txt", " SetBorderColor 180 96 0" + Environment.NewLine, Encoding.UTF8); - File.AppendAllText(@"gen\" + main.fDate + "_gen.txt", " SetFontSize 45" + Environment.NewLine, Encoding.UTF8); - File.AppendAllText(@"gen\" + main.fDate + "_gen.txt", " PlayAlertSound 8 300" + Environment.NewLine, Encoding.UTF8); - File.AppendAllText(@"gen\" + main.fDate + "_gen.txt", "## END #######" + Environment.NewLine + Environment.NewLine, Encoding.UTF8); + string fn = @"gen\" + section + ".filter"; + File.AppendAllText(fn, string.Format("# Section: {0}", section) + Environment.NewLine, Encoding.UTF8); + File.AppendAllText(fn, "" + Environment.NewLine, Encoding.UTF8); + File.AppendAllText(fn, "Show" + Environment.NewLine, Encoding.UTF8); + File.AppendAllText(fn, " BaseType" + iB + Environment.NewLine, Encoding.UTF8); + File.AppendAllText(fn, " Rarity = Unique" + Environment.NewLine, Encoding.UTF8); + File.AppendAllText(fn, " SetTextColor 222 95 0" + Environment.NewLine, Encoding.UTF8); + File.AppendAllText(fn, " SetBackgroundColor 255 255 255" + Environment.NewLine, Encoding.UTF8); + File.AppendAllText(fn, " SetBorderColor 180 96 0" + Environment.NewLine, Encoding.UTF8); + File.AppendAllText(fn, " SetFontSize 45" + Environment.NewLine, Encoding.UTF8); + File.AppendAllText(fn, " PlayAlertSound 8 300", Encoding.UTF8); } } } diff --git a/PoE-MxFilterGen/json/armours.cs b/PoE-MxFilterGen/json/armours.cs index ab5afde..499cc3a 100644 --- a/PoE-MxFilterGen/json/armours.cs +++ b/PoE-MxFilterGen/json/armours.cs @@ -53,7 +53,7 @@ namespace PoE_MxFilterGen.json { private static string iB; - public static void GenArmours() + public static void GenArmours(string section) { List<string> itemBase = new List<string>(); RootArmour j = JsonConvert.DeserializeObject<RootArmour>(File.ReadAllText("data/ninja.armour.json", Encoding.UTF8)); @@ -66,7 +66,10 @@ namespace PoE_MxFilterGen.json // Check if the item value is equal or superior to the minimum value if (ln.chaosValue >= json.settings.GetMinimumValue()) { - msg.CMW(string.Format("[{0}][{1}c] Added to the list.", ln.baseType, ln.chaosValue), true, 1); + if (json.settings.GetVerbose()) + { + msg.CMW(string.Format("[{0}][{1}c] Added to the list.", ln.name, ln.chaosValue), true, 1); + } if (!itemBase.Contains(ln.baseType)) { itemBase.Add(ln.baseType); @@ -76,16 +79,17 @@ namespace PoE_MxFilterGen.json } } - File.AppendAllText(@"gen\" + main.fDate + "_gen.txt", "## Armours Gen" + Environment.NewLine, Encoding.UTF8); - File.AppendAllText(@"gen\" + main.fDate + "_gen.txt", "Show" + Environment.NewLine, Encoding.UTF8); - File.AppendAllText(@"gen\" + main.fDate + "_gen.txt", " BaseType" + iB + Environment.NewLine, Encoding.UTF8); - File.AppendAllText(@"gen\" + main.fDate + "_gen.txt", " Rarity = Unique" + Environment.NewLine, Encoding.UTF8); - File.AppendAllText(@"gen\" + main.fDate + "_gen.txt", " SetTextColor 222 95 0" + Environment.NewLine, Encoding.UTF8); - File.AppendAllText(@"gen\" + main.fDate + "_gen.txt", " SetBackgroundColor 255 255 255" + Environment.NewLine, Encoding.UTF8); - File.AppendAllText(@"gen\" + main.fDate + "_gen.txt", " SetBorderColor 180 96 0" + Environment.NewLine, Encoding.UTF8); - File.AppendAllText(@"gen\" + main.fDate + "_gen.txt", " SetFontSize 45" + Environment.NewLine, Encoding.UTF8); - File.AppendAllText(@"gen\" + main.fDate + "_gen.txt", " PlayAlertSound 8 300" + Environment.NewLine, Encoding.UTF8); - File.AppendAllText(@"gen\" + main.fDate + "_gen.txt", "## END #######" + Environment.NewLine + Environment.NewLine, Encoding.UTF8); + string fn = @"gen\" + section + ".filter"; + File.AppendAllText(fn, string.Format("# Section: {0}", section) + Environment.NewLine, Encoding.UTF8); + File.AppendAllText(fn, "" + Environment.NewLine, Encoding.UTF8); + File.AppendAllText(fn, "Show" + Environment.NewLine, Encoding.UTF8); + File.AppendAllText(fn, " BaseType" + iB + Environment.NewLine, Encoding.UTF8); + File.AppendAllText(fn, " Rarity = Unique" + Environment.NewLine, Encoding.UTF8); + File.AppendAllText(fn, " SetTextColor 222 95 0" + Environment.NewLine, Encoding.UTF8); + File.AppendAllText(fn, " SetBackgroundColor 255 255 255" + Environment.NewLine, Encoding.UTF8); + File.AppendAllText(fn, " SetBorderColor 180 96 0" + Environment.NewLine, Encoding.UTF8); + File.AppendAllText(fn, " SetFontSize 45" + Environment.NewLine, Encoding.UTF8); + File.AppendAllText(fn, " PlayAlertSound 8 300", Encoding.UTF8); } } } diff --git a/PoE-MxFilterGen/json/cards.cs b/PoE-MxFilterGen/json/cards.cs index aa43ea6..1e1072f 100644 --- a/PoE-MxFilterGen/json/cards.cs +++ b/PoE-MxFilterGen/json/cards.cs @@ -53,7 +53,7 @@ namespace PoE_MxFilterGen.json { private static string iB; - public static void GenCards() + public static void GenCards(string section) { List<string> itemBase = new List<string>(); RootCard j = JsonConvert.DeserializeObject<RootCard>(File.ReadAllText("data/ninja.card.json", Encoding.UTF8)); @@ -66,7 +66,10 @@ namespace PoE_MxFilterGen.json // Check if the item value is equal or superior to the minimum value if (ln.chaosValue >= json.settings.GetMinimumValue()) { - msg.CMW(string.Format("[{0}][{1}c] Added to the list.", ln.name, ln.chaosValue), true, 1); + if (json.settings.GetVerbose()) + { + msg.CMW(string.Format("[{0}][{1}c] Added to the list.", ln.name, ln.chaosValue), true, 1); + } if (!itemBase.Contains(ln.name)) { itemBase.Add(ln.name); @@ -76,16 +79,17 @@ namespace PoE_MxFilterGen.json } } - File.AppendAllText(@"gen\" + main.fDate + "_gen.txt", "## Cards Gen" + Environment.NewLine, Encoding.UTF8); - File.AppendAllText(@"gen\" + main.fDate + "_gen.txt", "Show" + Environment.NewLine, Encoding.UTF8); - File.AppendAllText(@"gen\" + main.fDate + "_gen.txt", @" Class ""Divination Card""" + Environment.NewLine, Encoding.UTF8); - File.AppendAllText(@"gen\" + main.fDate + "_gen.txt", " BaseType" + iB + Environment.NewLine, Encoding.UTF8); - File.AppendAllText(@"gen\" + main.fDate + "_gen.txt", " SetTextColor 20 65 110" + Environment.NewLine, Encoding.UTF8); - File.AppendAllText(@"gen\" + main.fDate + "_gen.txt", " SetBackgroundColor 224 224 224" + Environment.NewLine, Encoding.UTF8); - File.AppendAllText(@"gen\" + main.fDate + "_gen.txt", " SetBorderColor 57 97 145" + Environment.NewLine, Encoding.UTF8); - File.AppendAllText(@"gen\" + main.fDate + "_gen.txt", " SetFontSize 45" + Environment.NewLine, Encoding.UTF8); - File.AppendAllText(@"gen\" + main.fDate + "_gen.txt", " PlayAlertSound 5 300" + Environment.NewLine, Encoding.UTF8); - File.AppendAllText(@"gen\" + main.fDate + "_gen.txt", "## END #######" + Environment.NewLine + Environment.NewLine, Encoding.UTF8); + string fn = @"gen\"+section+".filter"; + File.AppendAllText(fn, string.Format("# Section: {0}",section) + Environment.NewLine, Encoding.UTF8); + File.AppendAllText(fn, "" + Environment.NewLine, Encoding.UTF8); + File.AppendAllText(fn, "Show" + Environment.NewLine, Encoding.UTF8); + File.AppendAllText(fn, @" Class ""Divination Card""" + Environment.NewLine, Encoding.UTF8); + File.AppendAllText(fn, " BaseType" + iB + Environment.NewLine, Encoding.UTF8); + File.AppendAllText(fn, " SetTextColor 20 65 110" + Environment.NewLine, Encoding.UTF8); + File.AppendAllText(fn, " SetBackgroundColor 224 224 224" + Environment.NewLine, Encoding.UTF8); + File.AppendAllText(fn, " SetBorderColor 57 97 145" + Environment.NewLine, Encoding.UTF8); + File.AppendAllText(fn, " SetFontSize 45" + Environment.NewLine, Encoding.UTF8); + File.AppendAllText(fn, " PlayAlertSound 5 300", Encoding.UTF8); } } } diff --git a/PoE-MxFilterGen/json/chanceBelt.cs b/PoE-MxFilterGen/json/chanceBelt.cs new file mode 100644 index 0000000..d04b8ce --- /dev/null +++ b/PoE-MxFilterGen/json/chanceBelt.cs @@ -0,0 +1,93 @@ +using Newtonsoft.Json; +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace PoE_MxFilterGen.json +{ + public class ChanceSparklineBelt + { + public List<double?> data { get; set; } + public double? totalChange { get; set; } + } + + public class ChanceExplicitModifierBelt + { + public string text { get; set; } + public bool optional { get; set; } + } + + public class ChanceLineBelt + { + public int id { get; set; } + public string name { get; set; } + public string icon { get; set; } + public int mapTier { get; set; } + public int levelRequired { get; set; } + public string baseType { get; set; } + public int stackSize { get; set; } + public object variant { get; set; } + public object prophecyText { get; set; } + public object artFilename { get; set; } + public int links { get; set; } + public int itemClass { get; set; } + public ChanceSparklineQuiver sparkline { get; set; } + public List<object> implicitModifiers { get; set; } + public List<ChanceExplicitModifierQuiver> explicitModifiers { get; set; } + public string flavourText { get; set; } + public string itemType { get; set; } + public double chaosValue { get; set; } + public double exaltedValue { get; set; } + public int count { get; set; } + } + + public class ChanceRootBelt + { + public List<LineWeapon> lines { get; set; } + } + + class chanceBelt + { + private static string iB; + + public static void ChanceGenBelt(string section) + { + List<string> itemBase = new List<string>(); + ChanceRootBoots j = JsonConvert.DeserializeObject<ChanceRootBoots>(File.ReadAllText("data/ninja.accessory.json", Encoding.UTF8)); + + foreach (var ln in j.lines) + { + // Check if the item count is at least equal to the desired confidence level + if (ln.count >= json.settings.GetConfidence() && ln.links <= 4 && ln.itemType == "Belt") + { + // Check if the item value is equal or superior to the minimum value + if (ln.chaosValue >= json.settings.GetChancingMinValue()) + { + if (json.settings.GetVerbose()) + { + msg.CMW(string.Format("[{0}][{1}c] Added to the list.", ln.name, ln.chaosValue), true, 1); + } + if (!itemBase.Contains(ln.baseType)) + { + itemBase.Add(ln.baseType); + iB = iB + string.Format(@" ""{0}""", ln.baseType); + } + } + } + } + + string fn = @"gen\" + section + ".filter"; + File.AppendAllText(fn, string.Format("# Section: {0}", section) + Environment.NewLine, Encoding.UTF8); + File.AppendAllText(fn, "" + Environment.NewLine, Encoding.UTF8); + File.AppendAllText(fn, "Show" + Environment.NewLine, Encoding.UTF8); + File.AppendAllText(fn, " BaseType" + iB + Environment.NewLine, Encoding.UTF8); + File.AppendAllText(fn, " Rarity = Normal" + Environment.NewLine, Encoding.UTF8); + File.AppendAllText(fn, " SetTextColor 50 230 100" + Environment.NewLine, Encoding.UTF8); + File.AppendAllText(fn, " SetBorderColor 50 230 100" + Environment.NewLine, Encoding.UTF8); + File.AppendAllText(fn, " SetFontSize 30", Encoding.UTF8); + } + } +} diff --git a/PoE-MxFilterGen/json/chanceBody.cs b/PoE-MxFilterGen/json/chanceBody.cs new file mode 100644 index 0000000..c261e76 --- /dev/null +++ b/PoE-MxFilterGen/json/chanceBody.cs @@ -0,0 +1,94 @@ +using Newtonsoft.Json; +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace PoE_MxFilterGen.json +{ + public class ChanceSparklineBody + { + public List<double?> data { get; set; } + public double? totalChange { get; set; } + } + + public class ChanceExplicitModifierBody + { + public string text { get; set; } + public bool optional { get; set; } + } + + public class ChanceLineBody + { + public int id { get; set; } + public string name { get; set; } + public string icon { get; set; } + public int mapTier { get; set; } + public int levelRequired { get; set; } + public string baseType { get; set; } + public int stackSize { get; set; } + public object variant { get; set; } + public object prophecyText { get; set; } + public object artFilename { get; set; } + public int links { get; set; } + public int itemClass { get; set; } + public ChanceSparklineBody sparkline { get; set; } + public List<object> implicitModifiers { get; set; } + public List<ChanceExplicitModifierBody> explicitModifiers { get; set; } + public string flavourText { get; set; } + public string itemType { get; set; } + public double chaosValue { get; set; } + public double exaltedValue { get; set; } + public int count { get; set; } + } + + public class ChanceRootBody + { + public List<LineWeapon> lines { get; set; } + } + + class chanceBody + { + private static string iB; + + public static void ChanceGenBody(string section) + { + List<string> itemBase = new List<string>(); + ChanceRootBody j = JsonConvert.DeserializeObject<ChanceRootBody>(File.ReadAllText("data/ninja.armour.json", Encoding.UTF8)); + + foreach (var ln in j.lines) + { + // Check if the item count is at least equal to the desired confidence level + if (ln.count >= json.settings.GetConfidence() && ln.links <= 4 && ln.itemType == "Body Armour") + { + // Check if the item value is equal or superior to the minimum value + if (ln.chaosValue >= json.settings.GetChancingMinValue()) + { + if (json.settings.GetVerbose()) + { + msg.CMW(string.Format("[{0}][{1}c] Added to the list.", ln.name, ln.chaosValue), true, 1); + } + if (!itemBase.Contains(ln.baseType)) + { + itemBase.Add(ln.baseType); + iB = iB + string.Format(@" ""{0}""", ln.baseType); + } + } + } + } + + string fn = @"gen\" + section + ".filter"; + File.AppendAllText(fn, string.Format("# Section: {0}", section) + Environment.NewLine, Encoding.UTF8); + File.AppendAllText(fn, "" + Environment.NewLine, Encoding.UTF8); + File.AppendAllText(fn, "Show" + Environment.NewLine, Encoding.UTF8); + File.AppendAllText(fn, " BaseType" + iB + Environment.NewLine, Encoding.UTF8); + File.AppendAllText(fn, " Rarity = Normal" + Environment.NewLine, Encoding.UTF8); + File.AppendAllText(fn, " ItemLevel >= 50" + Environment.NewLine, Encoding.UTF8); + File.AppendAllText(fn, " SetTextColor 50 230 100" + Environment.NewLine, Encoding.UTF8); + File.AppendAllText(fn, " SetBorderColor 50 230 100" + Environment.NewLine, Encoding.UTF8); + File.AppendAllText(fn, " SetFontSize 40", Encoding.UTF8); + } + } +} diff --git a/PoE-MxFilterGen/json/chanceBoots.cs b/PoE-MxFilterGen/json/chanceBoots.cs new file mode 100644 index 0000000..6949b68 --- /dev/null +++ b/PoE-MxFilterGen/json/chanceBoots.cs @@ -0,0 +1,94 @@ +using Newtonsoft.Json; +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace PoE_MxFilterGen.json +{ + public class ChanceSparklineBoots + { + public List<double?> data { get; set; } + public double? totalChange { get; set; } + } + + public class ChanceExplicitModifierBoots + { + public string text { get; set; } + public bool optional { get; set; } + } + + public class ChanceLineBoots + { + public int id { get; set; } + public string name { get; set; } + public string icon { get; set; } + public int mapTier { get; set; } + public int levelRequired { get; set; } + public string baseType { get; set; } + public int stackSize { get; set; } + public object variant { get; set; } + public object prophecyText { get; set; } + public object artFilename { get; set; } + public int links { get; set; } + public int itemClass { get; set; } + public ChanceSparklineBoots sparkline { get; set; } + public List<object> implicitModifiers { get; set; } + public List<ChanceExplicitModifierBoots> explicitModifiers { get; set; } + public string flavourText { get; set; } + public string itemType { get; set; } + public double chaosValue { get; set; } + public double exaltedValue { get; set; } + public int count { get; set; } + } + + public class ChanceRootBoots + { + public List<LineWeapon> lines { get; set; } + } + + class chanceBoots + { + private static string iB; + + public static void ChanceGenBoots(string section) + { + List<string> itemBase = new List<string>(); + ChanceRootBoots j = JsonConvert.DeserializeObject<ChanceRootBoots>(File.ReadAllText("data/ninja.armour.json", Encoding.UTF8)); + + foreach (var ln in j.lines) + { + // Check if the item count is at least equal to the desired confidence level + if (ln.count >= json.settings.GetConfidence() && ln.links <= 4 && ln.itemType == "Boots") + { + // Check if the item value is equal or superior to the minimum value + if (ln.chaosValue >= json.settings.GetChancingMinValue()) + { + if (json.settings.GetVerbose()) + { + msg.CMW(string.Format("[{0}][{1}c] Added to the list.", ln.name, ln.chaosValue), true, 1); + } + if (!itemBase.Contains(ln.baseType)) + { + itemBase.Add(ln.baseType); + iB = iB + string.Format(@" ""{0}""", ln.baseType); + } + } + } + } + + string fn = @"gen\" + section + ".filter"; + File.AppendAllText(fn, string.Format("# Section: {0}", section) + Environment.NewLine, Encoding.UTF8); + File.AppendAllText(fn, "" + Environment.NewLine, Encoding.UTF8); + File.AppendAllText(fn, "Show" + Environment.NewLine, Encoding.UTF8); + File.AppendAllText(fn, " BaseType" + iB + Environment.NewLine, Encoding.UTF8); + File.AppendAllText(fn, " Rarity = Normal" + Environment.NewLine, Encoding.UTF8); + File.AppendAllText(fn, " ItemLevel >= 25" + Environment.NewLine, Encoding.UTF8); + File.AppendAllText(fn, " SetTextColor 50 230 100" + Environment.NewLine, Encoding.UTF8); + File.AppendAllText(fn, " SetBorderColor 50 230 100" + Environment.NewLine, Encoding.UTF8); + File.AppendAllText(fn, " SetFontSize 35", Encoding.UTF8); + } + } +} diff --git a/PoE-MxFilterGen/json/chanceGloves.cs b/PoE-MxFilterGen/json/chanceGloves.cs new file mode 100644 index 0000000..7b7af97 --- /dev/null +++ b/PoE-MxFilterGen/json/chanceGloves.cs @@ -0,0 +1,94 @@ +using Newtonsoft.Json; +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace PoE_MxFilterGen.json +{ + public class ChanceSparklineGloves + { + public List<double?> data { get; set; } + public double? totalChange { get; set; } + } + + public class ChanceExplicitModifierGloves + { + public string text { get; set; } + public bool optional { get; set; } + } + + public class ChanceLineGloves + { + public int id { get; set; } + public string name { get; set; } + public string icon { get; set; } + public int mapTier { get; set; } + public int levelRequired { get; set; } + public string baseType { get; set; } + public int stackSize { get; set; } + public object variant { get; set; } + public object prophecyText { get; set; } + public object artFilename { get; set; } + public int links { get; set; } + public int itemClass { get; set; } + public ChanceSparklineGloves sparkline { get; set; } + public List<object> implicitModifiers { get; set; } + public List<ChanceExplicitModifierGloves> explicitModifiers { get; set; } + public string flavourText { get; set; } + public string itemType { get; set; } + public double chaosValue { get; set; } + public double exaltedValue { get; set; } + public int count { get; set; } + } + + public class ChanceRootGloves + { + public List<LineWeapon> lines { get; set; } + } + + class chanceGloves + { + private static string iB; + + public static void ChanceGenGloves(string section) + { + List<string> itemBase = new List<string>(); + ChanceRootBoots j = JsonConvert.DeserializeObject<ChanceRootBoots>(File.ReadAllText("data/ninja.armour.json", Encoding.UTF8)); + + foreach (var ln in j.lines) + { + // Check if the item count is at least equal to the desired confidence level + if (ln.count >= json.settings.GetConfidence() && ln.links <= 4 && ln.itemType == "Gloves") + { + // Check if the item value is equal or superior to the minimum value + if (ln.chaosValue >= json.settings.GetChancingMinValue()) + { + if (json.settings.GetVerbose()) + { + msg.CMW(string.Format("[{0}][{1}c] Added to the list.", ln.name, ln.chaosValue), true, 1); + } + if (!itemBase.Contains(ln.baseType)) + { + itemBase.Add(ln.baseType); + iB = iB + string.Format(@" ""{0}""", ln.baseType); + } + } + } + } + + string fn = @"gen\" + section + ".filter"; + File.AppendAllText(fn, string.Format("# Section: {0}", section) + Environment.NewLine, Encoding.UTF8); + File.AppendAllText(fn, "" + Environment.NewLine, Encoding.UTF8); + File.AppendAllText(fn, "Show" + Environment.NewLine, Encoding.UTF8); + File.AppendAllText(fn, " BaseType" + iB + Environment.NewLine, Encoding.UTF8); + File.AppendAllText(fn, " Rarity = Normal" + Environment.NewLine, Encoding.UTF8); + File.AppendAllText(fn, " ItemLevel >= 25" + Environment.NewLine, Encoding.UTF8); + File.AppendAllText(fn, " SetTextColor 50 230 100" + Environment.NewLine, Encoding.UTF8); + File.AppendAllText(fn, " SetBorderColor 50 230 100" + Environment.NewLine, Encoding.UTF8); + File.AppendAllText(fn, " SetFontSize 35", Encoding.UTF8); + } + } +} diff --git a/PoE-MxFilterGen/json/chanceHelmet.cs b/PoE-MxFilterGen/json/chanceHelmet.cs new file mode 100644 index 0000000..0f579c5 --- /dev/null +++ b/PoE-MxFilterGen/json/chanceHelmet.cs @@ -0,0 +1,94 @@ +using Newtonsoft.Json; +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace PoE_MxFilterGen.json +{ + public class ChanceSparklineHelmet + { + public List<double?> data { get; set; } + public double? totalChange { get; set; } + } + + public class ChanceExplicitModifierHelmet + { + public string text { get; set; } + public bool optional { get; set; } + } + + public class ChanceLineHelmet + { + public int id { get; set; } + public string name { get; set; } + public string icon { get; set; } + public int mapTier { get; set; } + public int levelRequired { get; set; } + public string baseType { get; set; } + public int stackSize { get; set; } + public object variant { get; set; } + public object prophecyText { get; set; } + public object artFilename { get; set; } + public int links { get; set; } + public int itemClass { get; set; } + public ChanceSparklineHelmet sparkline { get; set; } + public List<object> implicitModifiers { get; set; } + public List<ChanceExplicitModifierHelmet> explicitModifiers { get; set; } + public string flavourText { get; set; } + public string itemType { get; set; } + public double chaosValue { get; set; } + public double exaltedValue { get; set; } + public int count { get; set; } + } + + public class ChanceRootHelmet + { + public List<LineWeapon> lines { get; set; } + } + + class chanceHelmet + { + private static string iB; + + public static void ChanceGenHelmet(string section) + { + List<string> itemBase = new List<string>(); + ChanceRootBoots j = JsonConvert.DeserializeObject<ChanceRootBoots>(File.ReadAllText("data/ninja.armour.json", Encoding.UTF8)); + + foreach (var ln in j.lines) + { + // Check if the item count is at least equal to the desired confidence level + if (ln.count >= json.settings.GetConfidence() && ln.links <= 4 && ln.itemType == "Helmet") + { + // Check if the item value is equal or superior to the minimum value + if (ln.chaosValue >= json.settings.GetChancingMinValue()) + { + if (json.settings.GetVerbose()) + { + msg.CMW(string.Format("[{0}][{1}c] Added to the list.", ln.name, ln.chaosValue), true, 1); + } + if (!itemBase.Contains(ln.baseType)) + { + itemBase.Add(ln.baseType); + iB = iB + string.Format(@" ""{0}""", ln.baseType); + } + } + } + } + + string fn = @"gen\" + section + ".filter"; + File.AppendAllText(fn, string.Format("# Section: {0}", section) + Environment.NewLine, Encoding.UTF8); + File.AppendAllText(fn, "" + Environment.NewLine, Encoding.UTF8); + File.AppendAllText(fn, "Show" + Environment.NewLine, Encoding.UTF8); + File.AppendAllText(fn, " BaseType" + iB + Environment.NewLine, Encoding.UTF8); + File.AppendAllText(fn, " Rarity = Normal" + Environment.NewLine, Encoding.UTF8); + File.AppendAllText(fn, " ItemLevel >= 25" + Environment.NewLine, Encoding.UTF8); + File.AppendAllText(fn, " SetTextColor 50 230 100" + Environment.NewLine, Encoding.UTF8); + File.AppendAllText(fn, " SetBorderColor 50 230 100" + Environment.NewLine, Encoding.UTF8); + File.AppendAllText(fn, " SetFontSize 35", Encoding.UTF8); + } + } +} diff --git a/PoE-MxFilterGen/json/chanceQuiver.cs b/PoE-MxFilterGen/json/chanceQuiver.cs new file mode 100644 index 0000000..df49ac7 --- /dev/null +++ b/PoE-MxFilterGen/json/chanceQuiver.cs @@ -0,0 +1,94 @@ +using Newtonsoft.Json; +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace PoE_MxFilterGen.json +{ + public class ChanceSparklineQuiver + { + public List<double?> data { get; set; } + public double? totalChange { get; set; } + } + + public class ChanceExplicitModifierQuiver + { + public string text { get; set; } + public bool optional { get; set; } + } + + public class ChanceLineQuiver + { + public int id { get; set; } + public string name { get; set; } + public string icon { get; set; } + public int mapTier { get; set; } + public int levelRequired { get; set; } + public string baseType { get; set; } + public int stackSize { get; set; } + public object variant { get; set; } + public object prophecyText { get; set; } + public object artFilename { get; set; } + public int links { get; set; } + public int itemClass { get; set; } + public ChanceSparklineQuiver sparkline { get; set; } + public List<object> implicitModifiers { get; set; } + public List<ChanceExplicitModifierQuiver> explicitModifiers { get; set; } + public string flavourText { get; set; } + public string itemType { get; set; } + public double chaosValue { get; set; } + public double exaltedValue { get; set; } + public int count { get; set; } + } + + public class ChanceRootQuiver + { + public List<LineWeapon> lines { get; set; } + } + + class chanceQuiver + { + private static string iB; + + public static void ChanceGenQuiver(string section) + { + List<string> itemBase = new List<string>(); + ChanceRootBoots j = JsonConvert.DeserializeObject<ChanceRootBoots>(File.ReadAllText("data/ninja.armour.json", Encoding.UTF8)); + + foreach (var ln in j.lines) + { + // Check if the item count is at least equal to the desired confidence level + if (ln.count >= json.settings.GetConfidence() && ln.links <= 4 && ln.itemType == "Quiver") + { + // Check if the item value is equal or superior to the minimum value + if (ln.chaosValue >= json.settings.GetChancingMinValue()) + { + if (json.settings.GetVerbose()) + { + msg.CMW(string.Format("[{0}][{1}c] Added to the list.", ln.name, ln.chaosValue), true, 1); + } + if (!itemBase.Contains(ln.baseType)) + { + itemBase.Add(ln.baseType); + iB = iB + string.Format(@" ""{0}""", ln.baseType); + } + } + } + } + + string fn = @"gen\" + section + ".filter"; + File.AppendAllText(fn, string.Format("# Section: {0}", section) + Environment.NewLine, Encoding.UTF8); + File.AppendAllText(fn, "" + Environment.NewLine, Encoding.UTF8); + File.AppendAllText(fn, "Show" + Environment.NewLine, Encoding.UTF8); + File.AppendAllText(fn, " BaseType" + iB + Environment.NewLine, Encoding.UTF8); + File.AppendAllText(fn, " Rarity = Normal" + Environment.NewLine, Encoding.UTF8); + File.AppendAllText(fn, " ItemLevel >= 2" + Environment.NewLine, Encoding.UTF8); + File.AppendAllText(fn, " SetTextColor 50 230 100" + Environment.NewLine, Encoding.UTF8); + File.AppendAllText(fn, " SetBorderColor 50 230 100" + Environment.NewLine, Encoding.UTF8); + File.AppendAllText(fn, " SetFontSize 40", Encoding.UTF8); + } + } +} diff --git a/PoE-MxFilterGen/json/chanceShield.cs b/PoE-MxFilterGen/json/chanceShield.cs new file mode 100644 index 0000000..e4b63bd --- /dev/null +++ b/PoE-MxFilterGen/json/chanceShield.cs @@ -0,0 +1,94 @@ +using Newtonsoft.Json; +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace PoE_MxFilterGen.json +{ + public class ChanceSparklineShield + { + public List<double?> data { get; set; } + public double? totalChange { get; set; } + } + + public class ChanceExplicitModifierShield + { + public string text { get; set; } + public bool optional { get; set; } + } + + public class ChanceLineShield + { + public int id { get; set; } + public string name { get; set; } + public string icon { get; set; } + public int mapTier { get; set; } + public int levelRequired { get; set; } + public string baseType { get; set; } + public int stackSize { get; set; } + public object variant { get; set; } + public object prophecyText { get; set; } + public object artFilename { get; set; } + public int links { get; set; } + public int itemClass { get; set; } + public ChanceSparklineQuiver sparkline { get; set; } + public List<object> implicitModifiers { get; set; } + public List<ChanceExplicitModifierQuiver> explicitModifiers { get; set; } + public string flavourText { get; set; } + public string itemType { get; set; } + public double chaosValue { get; set; } + public double exaltedValue { get; set; } + public int count { get; set; } + } + + public class ChanceRootShield + { + public List<LineWeapon> lines { get; set; } + } + + class chanceShield + { + private static string iB; + + public static void ChanceGenShield(string section) + { + List<string> itemBase = new List<string>(); + ChanceRootBoots j = JsonConvert.DeserializeObject<ChanceRootBoots>(File.ReadAllText("data/ninja.armour.json", Encoding.UTF8)); + + foreach (var ln in j.lines) + { + // Check if the item count is at least equal to the desired confidence level + if (ln.count >= json.settings.GetConfidence() && ln.links <= 4 && ln.itemType == "Shield") + { + // Check if the item value is equal or superior to the minimum value + if (ln.chaosValue >= json.settings.GetChancingMinValue()) + { + if (json.settings.GetVerbose()) + { + msg.CMW(string.Format("[{0}][{1}c] Added to the list.", ln.name, ln.chaosValue), true, 1); + } + if (!itemBase.Contains(ln.baseType)) + { + itemBase.Add(ln.baseType); + iB = iB + string.Format(@" ""{0}""", ln.baseType); + } + } + } + } + + string fn = @"gen\" + section + ".filter"; + File.AppendAllText(fn, string.Format("# Section: {0}", section) + Environment.NewLine, Encoding.UTF8); + File.AppendAllText(fn, "" + Environment.NewLine, Encoding.UTF8); + File.AppendAllText(fn, "Show" + Environment.NewLine, Encoding.UTF8); + File.AppendAllText(fn, " BaseType" + iB + Environment.NewLine, Encoding.UTF8); + File.AppendAllText(fn, " Rarity = Normal" + Environment.NewLine, Encoding.UTF8); + File.AppendAllText(fn, " ItemLevel >= 2" + Environment.NewLine, Encoding.UTF8); + File.AppendAllText(fn, " SetTextColor 50 230 100" + Environment.NewLine, Encoding.UTF8); + File.AppendAllText(fn, " SetBorderColor 50 230 100" + Environment.NewLine, Encoding.UTF8); + File.AppendAllText(fn, " SetFontSize 45", Encoding.UTF8); + } + } +} diff --git a/PoE-MxFilterGen/json/maps.cs b/PoE-MxFilterGen/json/maps.cs index ff2da99..4134d50 100644 --- a/PoE-MxFilterGen/json/maps.cs +++ b/PoE-MxFilterGen/json/maps.cs @@ -47,7 +47,7 @@ namespace PoE_MxFilterGen.json { private static string iB; - public static void GenMaps() + public static void GenMaps(string section) { List<string> itemBase = new List<string>(); RootMap j = JsonConvert.DeserializeObject<RootMap>(File.ReadAllText("data/ninja.map.json", Encoding.UTF8)); @@ -60,7 +60,10 @@ namespace PoE_MxFilterGen.json // Check if the item value is equal or superior to the minimum value if (ln.chaosValue >= json.settings.GetMinimumValue()) { - msg.CMW(string.Format("[{0}][{1}c] Added to the list.", ln.baseType, ln.chaosValue), true, 1); + if (json.settings.GetVerbose()) + { + msg.CMW(string.Format("[{0}][{1}c] Added to the list.", ln.name, ln.chaosValue), true, 1); + } if (!itemBase.Contains(ln.baseType)) { itemBase.Add(ln.baseType); @@ -70,16 +73,17 @@ namespace PoE_MxFilterGen.json } } - File.AppendAllText(@"gen\" + main.fDate + "_gen.txt", "## Maps Gen" + Environment.NewLine, Encoding.UTF8); - File.AppendAllText(@"gen\" + main.fDate + "_gen.txt", "Show" + Environment.NewLine, Encoding.UTF8); - File.AppendAllText(@"gen\" + main.fDate + "_gen.txt", " BaseType" + iB + Environment.NewLine, Encoding.UTF8); - File.AppendAllText(@"gen\" + main.fDate + "_gen.txt", " Rarity = Unique" + Environment.NewLine, Encoding.UTF8); - File.AppendAllText(@"gen\" + main.fDate + "_gen.txt", " SetTextColor 222 95 0" + Environment.NewLine, Encoding.UTF8); - File.AppendAllText(@"gen\" + main.fDate + "_gen.txt", " SetBackgroundColor 255 255 255" + Environment.NewLine, Encoding.UTF8); - File.AppendAllText(@"gen\" + main.fDate + "_gen.txt", " SetBorderColor 180 96 0" + Environment.NewLine, Encoding.UTF8); - File.AppendAllText(@"gen\" + main.fDate + "_gen.txt", " SetFontSize 45" + Environment.NewLine, Encoding.UTF8); - File.AppendAllText(@"gen\" + main.fDate + "_gen.txt", " PlayAlertSound 8 300" + Environment.NewLine, Encoding.UTF8); - File.AppendAllText(@"gen\" + main.fDate + "_gen.txt", "## END #######" + Environment.NewLine + Environment.NewLine, Encoding.UTF8); + string fn = @"gen\" + section + ".filter"; + File.AppendAllText(fn, string.Format("# Section: {0}", section) + Environment.NewLine, Encoding.UTF8); + File.AppendAllText(fn, "" + Environment.NewLine, Encoding.UTF8); + File.AppendAllText(fn, "Show" + Environment.NewLine, Encoding.UTF8); + File.AppendAllText(fn, " BaseType" + iB + Environment.NewLine, Encoding.UTF8); + File.AppendAllText(fn, " Rarity = Unique" + Environment.NewLine, Encoding.UTF8); + File.AppendAllText(fn, " SetTextColor 222 95 0" + Environment.NewLine, Encoding.UTF8); + File.AppendAllText(fn, " SetBackgroundColor 255 255 255" + Environment.NewLine, Encoding.UTF8); + File.AppendAllText(fn, " SetBorderColor 180 96 0" + Environment.NewLine, Encoding.UTF8); + File.AppendAllText(fn, " SetFontSize 45" + Environment.NewLine, Encoding.UTF8); + File.AppendAllText(fn, " PlayAlertSound 8 300", Encoding.UTF8); } } } diff --git a/PoE-MxFilterGen/json/settings.cs b/PoE-MxFilterGen/json/settings.cs index d8a9b16..5378222 100644 --- a/PoE-MxFilterGen/json/settings.cs +++ b/PoE-MxFilterGen/json/settings.cs @@ -14,6 +14,8 @@ namespace PoE_MxFilterGen.json public string league { get; set; } public int confidence { get; set; } public int minimumValue { get; set; } + public int chancingMinValue { get; set; } + public bool verbose { get; set; } } class settings @@ -41,5 +43,17 @@ namespace PoE_MxFilterGen.json SETTINGS j = JsonConvert.DeserializeObject<SETTINGS>(File.ReadAllText("settings.json")); return j.minimumValue; } + + public static int GetChancingMinValue() + { + SETTINGS j = JsonConvert.DeserializeObject<SETTINGS>(File.ReadAllText("settings.json")); + return j.chancingMinValue; + } + + public static bool GetVerbose() + { + SETTINGS j = JsonConvert.DeserializeObject<SETTINGS>(File.ReadAllText("settings.json")); + return j.verbose; + } } } diff --git a/PoE-MxFilterGen/json/weapons.cs b/PoE-MxFilterGen/json/weapons.cs index b5201d6..6bb9c72 100644 --- a/PoE-MxFilterGen/json/weapons.cs +++ b/PoE-MxFilterGen/json/weapons.cs @@ -53,7 +53,7 @@ namespace PoE_MxFilterGen.json { private static string iB; - public static void GenWeapons() + public static void GenWeapons(string section) { List<string> itemBase = new List<string>(); RootWeapon j = JsonConvert.DeserializeObject<RootWeapon>(File.ReadAllText("data/ninja.weapon.json", Encoding.UTF8)); @@ -66,7 +66,10 @@ namespace PoE_MxFilterGen.json // Check if the item value is equal or superior to the minimum value if (ln.chaosValue >= json.settings.GetMinimumValue()) { - msg.CMW(string.Format("[{0}][{1}c] Added to the list.",ln.baseType,ln.chaosValue), true, 1); + if (json.settings.GetVerbose()) + { + msg.CMW(string.Format("[{0}][{1}c] Added to the list.", ln.name, ln.chaosValue), true, 1); + } if (!itemBase.Contains(ln.baseType)) { itemBase.Add(ln.baseType); @@ -76,16 +79,17 @@ namespace PoE_MxFilterGen.json } } - File.AppendAllText(@"gen\" + main.fDate + "_gen.txt", "## Weapons Gen" + Environment.NewLine, Encoding.UTF8); - File.AppendAllText(@"gen\" + main.fDate + "_gen.txt", "Show" + Environment.NewLine, Encoding.UTF8); - File.AppendAllText(@"gen\" + main.fDate + "_gen.txt", " BaseType" + iB + Environment.NewLine, Encoding.UTF8); - File.AppendAllText(@"gen\" + main.fDate + "_gen.txt", " Rarity = Unique" + Environment.NewLine, Encoding.UTF8); - File.AppendAllText(@"gen\" + main.fDate + "_gen.txt", " SetTextColor 222 95 0" + Environment.NewLine, Encoding.UTF8); - File.AppendAllText(@"gen\" + main.fDate + "_gen.txt", " SetBackgroundColor 255 255 255" + Environment.NewLine, Encoding.UTF8); - File.AppendAllText(@"gen\" + main.fDate + "_gen.txt", " SetBorderColor 180 96 0" + Environment.NewLine, Encoding.UTF8); - File.AppendAllText(@"gen\" + main.fDate + "_gen.txt", " SetFontSize 45" + Environment.NewLine, Encoding.UTF8); - File.AppendAllText(@"gen\" + main.fDate + "_gen.txt", " PlayAlertSound 8 300" + Environment.NewLine, Encoding.UTF8); - File.AppendAllText(@"gen\" + main.fDate + "_gen.txt", "## END #######" + Environment.NewLine + Environment.NewLine, Encoding.UTF8); + string fn = @"gen\" + section + ".filter"; + File.AppendAllText(fn, string.Format("# Section: {0}", section) + Environment.NewLine, Encoding.UTF8); + File.AppendAllText(fn, "" + Environment.NewLine, Encoding.UTF8); + File.AppendAllText(fn, "Show" + Environment.NewLine, Encoding.UTF8); + File.AppendAllText(fn, " BaseType" + iB + Environment.NewLine, Encoding.UTF8); + File.AppendAllText(fn, " Rarity = Unique" + Environment.NewLine, Encoding.UTF8); + File.AppendAllText(fn, " SetTextColor 222 95 0" + Environment.NewLine, Encoding.UTF8); + File.AppendAllText(fn, " SetBackgroundColor 255 255 255" + Environment.NewLine, Encoding.UTF8); + File.AppendAllText(fn, " SetBorderColor 180 96 0" + Environment.NewLine, Encoding.UTF8); + File.AppendAllText(fn, " SetFontSize 45" + Environment.NewLine, Encoding.UTF8); + File.AppendAllText(fn, " PlayAlertSound 8 300", Encoding.UTF8); } } } diff --git a/PoE-MxFilterGen/main.cs b/PoE-MxFilterGen/main.cs index 89e57d9..470f00a 100644 --- a/PoE-MxFilterGen/main.cs +++ b/PoE-MxFilterGen/main.cs @@ -1,4 +1,5 @@ -using System; +using Newtonsoft.Json; +using System; using System.Collections.Generic; using System.IO; using System.Linq; @@ -12,10 +13,23 @@ namespace PoE_MxFilterGen { private static DateTime dt = DateTime.Now; - public static string version = "1.0.4"; - public static string release = "stable"; + public static string version = "2.0.0"; public static string fDate = string.Format("{0}-{1}-{2}",dt.Day,dt.Month,dt.Year); + public class STRUCTURE + { + public string section { get; set; } + public bool gen { get; set; } + public bool @static { get; set; } + public bool remote { get; set; } + public string url { get; set; } + } + + public class RootStructure + { + public List<STRUCTURE> structures { get; set; } + } + static void Main(string[] args) { msg.Splash(); @@ -23,6 +37,8 @@ namespace PoE_MxFilterGen msg.CMW(string.Format("League: {0}", json.settings.GetLeague()), true, 1); msg.CMW(string.Format("Confidence: {0}", json.settings.GetConfidence().ToString()), true, 1); msg.CMW(string.Format("Minimum Value: {0}c", json.settings.GetMinimumValue().ToString()), true, 1); + msg.CMW(string.Format("Chancing Min. Value: {0}c", json.settings.GetChancingMinValue().ToString()), true, 1); + msg.CMW(string.Format("Verbose: {0}", json.settings.GetVerbose().ToString()), true, 1); // Check if data and gen exists if (!Directory.Exists(@"data\")) @@ -33,10 +49,15 @@ namespace PoE_MxFilterGen { Directory.CreateDirectory(@"gen\"); } + if (!Directory.Exists(@"filter\")) + { + Directory.CreateDirectory(@"filter\"); + } // Clean all generated data DirectoryInfo dataDir = new DirectoryInfo(@"data\"); DirectoryInfo genDir = new DirectoryInfo(@"gen\"); + DirectoryInfo filterDir = new DirectoryInfo(@"filter\"); foreach (FileInfo file in dataDir.GetFiles()) { file.Delete(); @@ -45,6 +66,10 @@ namespace PoE_MxFilterGen { file.Delete(); } + foreach (FileInfo file in filterDir.GetFiles()) + { + file.Delete(); + } // Get latest poe.ninja api web.SaveString(json.settings.GetAPI() + "GetUniqueArmourOverview?league=" + json.settings.GetLeague(), "data/ninja.armour.json"); @@ -53,16 +78,99 @@ namespace PoE_MxFilterGen web.SaveString(json.settings.GetAPI() + "GetUniqueMapOverview?league=" + json.settings.GetLeague(), "data/ninja.map.json"); web.SaveString(json.settings.GetAPI() + "GetDivinationCardsOverview?league=" + json.settings.GetLeague(), "data/ninja.card.json"); - msg.CMW("########## Generating Weapons ##########",true,1); - json.weapons.GenWeapons(); - msg.CMW("########## Generating Armours ##########", true, 1); - json.armours.GenArmours(); - msg.CMW("########## Generating Accessories ##########", true, 1); - json.accessories.GenAccessories(); - msg.CMW("########## Generating Maps ##########", true, 1); - json.maps.GenMaps(); - msg.CMW("########## Generating Cards ##########", true, 1); - json.cards.GenCards(); + // Get the structure list + RootStructure j = JsonConvert.DeserializeObject<RootStructure>(File.ReadAllText("structure.json", Encoding.UTF8)); + + // Read the structure one by one to process gen + // You specify a gen here by his structure name with the corresponding method. + // I might add external DLL support in the future... + foreach (var sec in j.structures) + { + if (sec.gen == true) + { + switch (sec.section) + { + case "EXPENSIVE UNIQUE (GEN) (Maps)": + msg.CMW(string.Format("GEN: {0}", sec.section), true, 1); + json.maps.GenMaps(sec.section); + break; + + case "DIVINATION CARD (GEN)": + msg.CMW(string.Format("GEN: {0}",sec.section), true, 1); + json.cards.GenCards(sec.section); + break; + + case "EXPENSIVE UNIQUE (GEN) (Weapons)": + msg.CMW(string.Format("GEN: {0}", sec.section), true, 1); + json.weapons.GenWeapons(sec.section); + break; + + case "EXPENSIVE UNIQUE (GEN) (Armours)": + msg.CMW(string.Format("GEN: {0}", sec.section), true, 1); + json.armours.GenArmours(sec.section); + break; + + case "EXPENSIVE UNIQUE (GEN) (Accessories)": + msg.CMW(string.Format("GEN: {0}", sec.section), true, 1); + json.accessories.GenAccessories(sec.section); + break; + + case "CHANCING (Body)": + msg.CMW(string.Format("GEN: {0}", sec.section), true, 1); + json.chanceBody.ChanceGenBody(sec.section); + break; + + case "CHANCING (Boots)": + msg.CMW(string.Format("GEN: {0}", sec.section), true, 1); + json.chanceBoots.ChanceGenBoots(sec.section); + break; + + case "CHANCING (Gloves)": + msg.CMW(string.Format("GEN: {0}", sec.section), true, 1); + json.chanceGloves.ChanceGenGloves(sec.section); + break; + + case "CHANCING (Helmet)": + msg.CMW(string.Format("GEN: {0}", sec.section), true, 1); + json.chanceHelmet.ChanceGenHelmet(sec.section); + break; + + case "CHANCING (Quiver)": + msg.CMW(string.Format("GEN: {0}", sec.section), true, 1); + json.chanceQuiver.ChanceGenQuiver(sec.section); + break; + + case "CHANCING (Shield)": + msg.CMW(string.Format("GEN: {0}", sec.section), true, 1); + json.chanceShield.ChanceGenShield(sec.section); + break; + + case "CHANCING (Belt)": + msg.CMW(string.Format("GEN: {0}", sec.section), true, 1); + json.chanceBelt.ChanceGenBelt(sec.section); + break; + } + } + } + + // Create the final filter. + foreach (var sec in j.structures) + { + if (sec.gen == true) + { + File.AppendAllText(@"filter\MxFilter.filter", File.ReadAllText(string.Format("gen\\{0}.filter", sec.section))); + File.AppendAllText(@"filter\MxFilter.filter", "" + Environment.NewLine); + File.AppendAllText(@"filter\MxFilter.filter", "" + Environment.NewLine); + } else + { + File.AppendAllText(@"filter\MxFilter.filter", string.Format("# Section: {0}",sec.section) + Environment.NewLine); + File.AppendAllText(@"filter\MxFilter.filter", "" + Environment.NewLine); + File.AppendAllText(@"filter\MxFilter.filter", File.ReadAllText(string.Format("structure\\{0}.filter", sec.section))); + File.AppendAllText(@"filter\MxFilter.filter", "" + Environment.NewLine); + File.AppendAllText(@"filter\MxFilter.filter", "" + Environment.NewLine); + } + + } } } } diff --git a/PoE-MxFilterGen/msg.cs b/PoE-MxFilterGen/msg.cs index 223dc3c..5000c4f 100644 --- a/PoE-MxFilterGen/msg.cs +++ b/PoE-MxFilterGen/msg.cs @@ -118,15 +118,10 @@ namespace PoE_MxFilterGen { Console.ForegroundColor = ConsoleColor.Cyan; Console.WriteLine(""); - Console.WriteLine(@"############################"); - Console.WriteLine(@"# #"); - Console.WriteLine(@"# MxFilterGen #"); - Console.WriteLine(@"# by mikx #"); - Console.WriteLine(@"# poe.mikx.xyz #"); - Console.WriteLine(@"# #"); - Console.WriteLine(@"#--------------------------#"); - Console.WriteLine(String.Format("# MxFilterGen {0}-{1} #", main.version, main.release)); - Console.WriteLine(@"############################"); + Console.WriteLine("#### MxFilterGen"); + Console.WriteLine(string.Format("#### VERSION: {0}",main.version)); + Console.WriteLine("#### DEV: mikx"); + Console.WriteLine("#### POWERED BY: poe.ninja"); Console.WriteLine(""); Console.ForegroundColor = ConsoleColor.White; } diff --git a/PoE-MxFilterGen/obj/Debug/CoreCompileInputs.cache b/PoE-MxFilterGen/obj/Debug/CoreCompileInputs.cache index fdf488e..f3d0e74 100644 --- a/PoE-MxFilterGen/obj/Debug/CoreCompileInputs.cache +++ b/PoE-MxFilterGen/obj/Debug/CoreCompileInputs.cache @@ -1 +1 @@ -bfff0fcf98b7df58adeb8698423149e393b63067 +ecaecd07e551f42ed08ba90718c4222d96a3a595 diff --git a/PoE-MxFilterGen/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache b/PoE-MxFilterGen/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache index 2ff6306..992fbcc 100644 Binary files a/PoE-MxFilterGen/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache and b/PoE-MxFilterGen/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache differ diff --git a/PoE-MxFilterGen/obj/Debug/PoE-MxFilterGen.csproj.FileListAbsolute.txt b/PoE-MxFilterGen/obj/Debug/PoE-MxFilterGen.csproj.FileListAbsolute.txt index 1156119..c6e6513 100644 --- a/PoE-MxFilterGen/obj/Debug/PoE-MxFilterGen.csproj.FileListAbsolute.txt +++ b/PoE-MxFilterGen/obj/Debug/PoE-MxFilterGen.csproj.FileListAbsolute.txt @@ -6,3 +6,11 @@ D:\_MxGit\PoE-MxFilterGen\PoE-MxFilterGen\obj\Debug\mxfiltergen.exe D:\_MxGit\PoE-MxFilterGen\PoE-MxFilterGen\obj\Debug\mxfiltergen.pdb D:\_MxGit\PoE-MxFilterGen\PoE-MxFilterGen\bin\Debug\Newtonsoft.Json.dll D:\_MxGit\PoE-MxFilterGen\PoE-MxFilterGen\bin\Debug\Newtonsoft.Json.xml +D:\_MxGitHub\PoE-MxFilterGen\PoE-MxFilterGen\bin\Debug\mxfiltergen.exe.config +D:\_MxGitHub\PoE-MxFilterGen\PoE-MxFilterGen\bin\Debug\mxfiltergen.exe +D:\_MxGitHub\PoE-MxFilterGen\PoE-MxFilterGen\bin\Debug\mxfiltergen.pdb +D:\_MxGitHub\PoE-MxFilterGen\PoE-MxFilterGen\bin\Debug\Newtonsoft.Json.dll +D:\_MxGitHub\PoE-MxFilterGen\PoE-MxFilterGen\bin\Debug\Newtonsoft.Json.xml +D:\_MxGitHub\PoE-MxFilterGen\PoE-MxFilterGen\obj\Debug\PoE-MxFilterGen.csprojResolveAssemblyReference.cache +D:\_MxGitHub\PoE-MxFilterGen\PoE-MxFilterGen\obj\Debug\mxfiltergen.exe +D:\_MxGitHub\PoE-MxFilterGen\PoE-MxFilterGen\obj\Debug\mxfiltergen.pdb diff --git a/PoE-MxFilterGen/obj/Debug/PoE-MxFilterGen.csprojResolveAssemblyReference.cache b/PoE-MxFilterGen/obj/Debug/PoE-MxFilterGen.csprojResolveAssemblyReference.cache index 40dd21d..4370f56 100644 Binary files a/PoE-MxFilterGen/obj/Debug/PoE-MxFilterGen.csprojResolveAssemblyReference.cache and b/PoE-MxFilterGen/obj/Debug/PoE-MxFilterGen.csprojResolveAssemblyReference.cache differ diff --git a/PoE-MxFilterGen/obj/Debug/mxfiltergen.exe b/PoE-MxFilterGen/obj/Debug/mxfiltergen.exe index 189067c..7a2361c 100644 Binary files a/PoE-MxFilterGen/obj/Debug/mxfiltergen.exe and b/PoE-MxFilterGen/obj/Debug/mxfiltergen.exe differ diff --git a/PoE-MxFilterGen/obj/Debug/mxfiltergen.pdb b/PoE-MxFilterGen/obj/Debug/mxfiltergen.pdb index 170e163..0480fa8 100644 Binary files a/PoE-MxFilterGen/obj/Debug/mxfiltergen.pdb and b/PoE-MxFilterGen/obj/Debug/mxfiltergen.pdb differ