Skip to content

Commit

Permalink
3.8.14 Divination Card value update
Browse files Browse the repository at this point in the history
  • Loading branch information
ffhighwind committed Sep 29, 2019
1 parent f42ea18 commit f66ca48
Show file tree
Hide file tree
Showing 22 changed files with 393 additions and 585 deletions.
14 changes: 5 additions & 9 deletions DataModel.cs
Original file line number Diff line number Diff line change
Expand Up @@ -293,23 +293,19 @@ private void GetFilterDivinationData(IEnumerable<string> lines)
if (!lines.Any())
return;
string line = lines.First();

if (!line.Contains("# Divination Cards - "))
continue;

if (line.Contains("10c+"))
else if (line.Contains("10c+"))
value = DivinationValue.Chaos10;
else if (line.Contains("1c+"))
value = DivinationValue.Chaos1to10;
else if (line.Contains("<1c") || line.Contains("< 1c"))
value = DivinationValue.ChaosLess1;
else if (line.Contains("2-10c"))
value = DivinationValue.Chaos2to10;
else if (line.Contains("<2c") || line.Contains("< 2c"))
value = DivinationValue.ChaosLess2;
else if (line.Contains("Nearly Worthless"))
value = DivinationValue.NearlyWorthless;
else if (line.Contains("Worthless"))
value = DivinationValue.Worthless;
else {
if (!line.Contains("New (Error)"))
MessageBox.Show("Unexpected Divination input: " + line, "Error", MessageBoxButtons.OK);
lines = lines.Skip(1);
continue;
}
Expand Down
52 changes: 21 additions & 31 deletions Divination/DivinationCard.cs
Original file line number Diff line number Diff line change
Expand Up @@ -73,26 +73,26 @@ public string QuotedName {
{ "The Doppelganger", DivinationValue.NearlyWorthless },

// 0.4c+
{ "Three Voices", DivinationValue.ChaosLess1},
{ "The Catalyst", DivinationValue.ChaosLess1 },
{ "Boundless Realms", DivinationValue.ChaosLess1 },
{ "Coveted Possession", DivinationValue.ChaosLess1 },
{ "Emperor's Luck", DivinationValue.ChaosLess1 },
{ "Three Faces in the Dark", DivinationValue.ChaosLess1 },
{ "The Master Artisan", DivinationValue.ChaosLess1 },
{ "Three Voices", DivinationValue.ChaosLess2},
{ "The Catalyst", DivinationValue.ChaosLess2 },
{ "Boundless Realms", DivinationValue.ChaosLess2 },
{ "Coveted Possession", DivinationValue.ChaosLess2 },
{ "Emperor's Luck", DivinationValue.ChaosLess2 },
{ "Three Faces in the Dark", DivinationValue.ChaosLess2 },
{ "The Master Artisan", DivinationValue.ChaosLess2 },

// 1.1c+
{ "No Traces", DivinationValue.Chaos1to10 },
{ "The Fool", DivinationValue.Chaos1to10 },
{ "The Heroic Shot", DivinationValue.Chaos1to10 },
{ "The Inventor", DivinationValue.Chaos1to10 },
{ "The Wrath", DivinationValue.Chaos1to10 },
{ "Lucky Connections", DivinationValue.Chaos1to10 },
{ "The Innocent", DivinationValue.Chaos1to10 },
{ "Vinia's Token", DivinationValue.Chaos1to10 },
{ "The Cartographer", DivinationValue.Chaos1to10 },
{ "Chaotic Disposition", DivinationValue.Chaos1to10 },
{ "Demigod's Wager", DivinationValue.Chaos1to10 },
{ "No Traces", DivinationValue.Chaos2to10 },
{ "The Fool", DivinationValue.Chaos2to10 },
{ "The Heroic Shot", DivinationValue.Chaos2to10 },
{ "The Inventor", DivinationValue.Chaos2to10 },
{ "The Wrath", DivinationValue.Chaos2to10 },
{ "Lucky Connections", DivinationValue.Chaos2to10 },
{ "The Innocent", DivinationValue.Chaos2to10 },
{ "Vinia's Token", DivinationValue.Chaos2to10 },
{ "The Cartographer", DivinationValue.Chaos2to10 },
{ "Chaotic Disposition", DivinationValue.Chaos2to10 },
{ "Demigod's Wager", DivinationValue.Chaos2to10 },

// 10c+
{ "Wealth and Power", DivinationValue.Chaos10 },
Expand All @@ -114,25 +114,15 @@ public string QuotedName {

public DivinationValue ExpectedFilterValue {
get {
if(DivinationCardsValueMap.TryGetValue(Name, out DivinationValue val)) {
if(DivinationCardsValueMap.TryGetValue(Name, out DivinationValue val))
return val;
}
if (ChaosValue < 0.01f || IsLowConfidence)
return FilterValue;
if (FilterValue.LowValue <= ChaosValue && FilterValue.HighValue >= ChaosValue)
if (ChaosValue < 0.01f || IsLowConfidence || (ChaosValue >= FilterValue.LowValue && ChaosValue <= FilterValue.HighValue))
return FilterValue;
return DivinationValue.ValueOf(ChaosValue);
}
}

public int SeverityLevel {
get {
DivinationValue expect = ExpectedFilterValue;
if (FilterValue == expect || (FilterValue.Tier > expect.Tier && FilterValue.LowValue <= ChaosValue))
return 0;
return Math.Abs(FilterValue.Tier - expect.Tier);
}
}
public int SeverityLevel => Math.Abs(FilterValue.Tier - ExpectedFilterValue.Tier);

public int Tier => FilterValue.Tier;

Expand Down
32 changes: 16 additions & 16 deletions Divination/DivinationValue.cs
Original file line number Diff line number Diff line change
Expand Up @@ -13,11 +13,11 @@ protected DivinationValue(DivinationValueEnum value, string toString, float high
}

public static readonly DivinationValue Error = new DivinationValue(DivinationValueEnum.Error, "Error", 0.0f, float.MinValue);
public static readonly DivinationValue Chaos10 = new DivinationValue(DivinationValueEnum.Chaos10, "10c+", float.MaxValue, 6.0f);
public static readonly DivinationValue Chaos1to10 = new DivinationValue(DivinationValueEnum.Chaos1to10, "1c+", 13.0f, 0.9f);
public static readonly DivinationValue ChaosLess1 = new DivinationValue(DivinationValueEnum.ChaosLess1, "<1c", 1.5f, 0.9f);
public static readonly DivinationValue NearlyWorthless = new DivinationValue(DivinationValueEnum.NearlyWorthless, "Nearly Worthless", 0.9f, 0.2f);
public static readonly DivinationValue Worthless = new DivinationValue(DivinationValueEnum.Worthless, "Worthless", 0.66f, -1.0f);
public static readonly DivinationValue Chaos10 = new DivinationValue(DivinationValueEnum.Chaos10, "10c+", float.MaxValue, 8.5f);
public static readonly DivinationValue Chaos2to10 = new DivinationValue(DivinationValueEnum.Chaos2to10, "2-10c", 13.0f, 1.7f);
public static readonly DivinationValue ChaosLess2 = new DivinationValue(DivinationValueEnum.ChaosLess2, "<2c", 2.5f, 0.9f);
public static readonly DivinationValue NearlyWorthless = new DivinationValue(DivinationValueEnum.NearlyWorthless, "Nearly Worthless", 0.995f, 0.0f);
public static readonly DivinationValue Worthless = new DivinationValue(DivinationValueEnum.Worthless, "Worthless", 0.85f, -1.0f);

public DivinationValueEnum Value { get; private set; }

Expand All @@ -41,10 +41,10 @@ public static DivinationValue FromTier(int tier)
return Worthless;
case (int) DivinationValueEnum.NearlyWorthless: // 1
return NearlyWorthless;
case (int) DivinationValueEnum.ChaosLess1: // 2
return ChaosLess1;
case (int) DivinationValueEnum.Chaos1to10: // 3
return Chaos1to10;
case (int) DivinationValueEnum.ChaosLess2: // 2
return ChaosLess2;
case (int) DivinationValueEnum.Chaos2to10: // 3
return Chaos2to10;
case (int) DivinationValueEnum.Chaos10: // 4
return Chaos10;
default:
Expand All @@ -56,14 +56,14 @@ public static DivinationValue FromTier(int tier)

public static DivinationValue ValueOf(float val)
{
if (val < 0.4f)
return Worthless;
else if (val < 0.65f)
//if (val < 0.4f)
// return Worthless;
if (val <= 0.80f)
return NearlyWorthless;
else if (val < 1.01f)
return ChaosLess1;
else if (val < 9.0f)
return Chaos1to10;
else if (val < 2.1f)
return ChaosLess2;
else if (val < 9.5f)
return Chaos2to10;
return Chaos10;
}

Expand Down
4 changes: 2 additions & 2 deletions Divination/DivinationValueEnum.cs
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,8 @@ public enum DivinationValueEnum
Error = -1,
Worthless = 0,
NearlyWorthless = 1,
ChaosLess1 = 2,
Chaos1to10 = 3,
ChaosLess2 = 2,
Chaos2to10 = 3,
Chaos10 = 4,
}
}
13 changes: 2 additions & 11 deletions Enchants/Enchantment.cs
Original file line number Diff line number Diff line change
Expand Up @@ -34,14 +34,7 @@ public void Load(JsonData jdata)
public string Name { get; private set; }
public string Description { get; private set; }
public string Gem { get; private set; }
public int SeverityLevel {
get {
EnchantmentValue expect = ExpectedFilterValue;
if (FilterValue == expect || (FilterValue.Tier > expect.Tier && FilterValue.LowValue <= ChaosValue))
return 0;
return Math.Abs(FilterValue.Tier - expect.Tier);
}
}
public int SeverityLevel => Math.Abs(FilterValue.Tier - ExpectedFilterValue.Tier);

public string QuotedName {
get {
Expand All @@ -57,9 +50,7 @@ public string QuotedName {
public EnchantmentValue FilterValue { get; set; } = EnchantmentValue.Worthless;
public EnchantmentValue ExpectedFilterValue {
get {
if (ChaosValue < 0.01f || IsLowConfidence)
return FilterValue;
if (FilterValue.LowValue <= ChaosValue && FilterValue.HighValue >= ChaosValue)
if (ChaosValue < 0.01f || IsLowConfidence || (ChaosValue >= FilterValue.LowValue && ChaosValue <= FilterValue.HighValue))
return FilterValue;
return EnchantmentValue.ValueOf(ChaosValue);
}
Expand Down
74 changes: 37 additions & 37 deletions FilterWriter.cs
Original file line number Diff line number Diff line change
Expand Up @@ -125,21 +125,21 @@ PlayAlertSound 1 200 # High Value
MinimapIcon 0 Red Triangle
PlayEffect Red";

private const string styleDiv1c =
private const string styleDiv2c =
@" SetFontSize 45
SetTextColor 255 255 255 # Divination Card (1c+)
SetBackgroundColor 255 0 175 255 # Divination Card (1c+)
SetBorderColor 255 255 255 # Divination Card (1c+)
PlayAlertSound 5 200 # Divination Card (1c+)
SetTextColor 255 255 255 # Divination Card (2-10c)
SetBackgroundColor 255 0 175 255 # Divination Card (2-10c)
SetBorderColor 255 255 255 # Divination Card (2-10c)
PlayAlertSound 5 200 # Divination Card (2-10c)
MinimapIcon 0 Brown Triangle
PlayEffect Brown";

private const string styleDivLess1c =
private const string styleDivLess2c =
@" SetFontSize 40
SetTextColor 0 0 0 # Divination Card (<1c)
SetBackgroundColor 255 0 175 230 # Divination Card (<1c)
SetBorderColor 150 30 100 # Divination Card (<1c)
PlayAlertSound 5 100 # Divination Card (Low)
SetTextColor 0 0 0 # Divination Card (<2c)
SetBackgroundColor 255 0 175 230 # Divination Card (<2c)
SetBorderColor 150 30 100 # Divination Card (<2c)
PlayAlertSound 5 100 # Divination Card (<2c)
PlayEffect Brown";

private const string styleDivNearlyWorthless =
Expand All @@ -160,10 +160,10 @@ MinimapIcon 0 Brown Triangle
@"Show # Divination Cards - New (Error)
Class Divination
SetFontSize 40
SetTextColor 255 255 255 # Divination Card (1c+)
SetBackgroundColor 255 0 175 255 # Divination Card (1c+)
SetTextColor 255 255 255 # Divination Card (2c+)
SetBackgroundColor 255 0 175 255 # Divination Card (2c+)
SetBorderColor 0 255 0 # Error
PlayAlertSound 5 200 # Divination Card (1c+)
PlayAlertSound 5 200 # Divination Card (2c+)
MinimapIcon 0 White Triangle
PlayEffect White";

Expand Down Expand Up @@ -343,14 +343,14 @@ private string GenerateUniquesString(FilterType type)

private string GenerateDivinationString(FilterType type)
{
List<string> list1to10cConflict = new List<string>();
List<string> listLess1cConflict = new List<string>();
List<string> list2to10cConflict = new List<string>();
List<string> listLess2cConflict = new List<string>();
List<string> listNearlyWorthlessConflict = new List<string>();
List<string> listWorthlessConflict = new List<string>();

List<string> list10c = new List<string>();
List<string> list1to10c = new List<string>();
List<string> listLess1c = new List<string>();
List<string> list2to10c = new List<string>();
List<string> listLess2c = new List<string>();
List<string> listNearlyWorthless = new List<string>();
List<string> listWorthless = new List<string>();
StringBuilder sb = new StringBuilder();
Expand Down Expand Up @@ -378,27 +378,27 @@ private string GenerateDivinationString(FilterType type)
case DivinationValueEnum.Chaos10:
list10c.Add(divCard);
break;
case DivinationValueEnum.Chaos1to10:
case DivinationValueEnum.Chaos2to10:
if (list10c.Exists(str => divCard.Contains(str)))
list1to10cConflict.Add(divCard);
list2to10cConflict.Add(divCard);
else
list1to10c.Add(divCard);
list2to10c.Add(divCard);
break;
case DivinationValueEnum.ChaosLess1:
if (list10c.Exists(str => divCard.Contains(str)) || list1to10c.Exists(str => divCard.Contains(str)))
listLess1cConflict.Add(divCard);
case DivinationValueEnum.ChaosLess2:
if (list10c.Exists(str => divCard.Contains(str)) || list2to10c.Exists(str => divCard.Contains(str)))
listLess2cConflict.Add(divCard);
else
listLess1c.Add(divCard);
listLess2c.Add(divCard);
break;
case DivinationValueEnum.NearlyWorthless:
if (list10c.Exists(str => divCard.Contains(str)) || list1to10c.Exists(str => divCard.Contains(str)) || listLess1c.Exists(str => divCard.Contains(str)))
if (list10c.Exists(str => divCard.Contains(str)) || list2to10c.Exists(str => divCard.Contains(str)) || listLess2c.Exists(str => divCard.Contains(str)))
listNearlyWorthlessConflict.Add(divCard);
else
listNearlyWorthless.Add(data.Name);
break;
case DivinationValueEnum.Worthless:
if (list10c.Exists(str => divCard.Contains(str)) || list1to10c.Exists(str => divCard.Contains(str))
|| listLess1c.Exists(str => divCard.Contains(str)) || listNearlyWorthless.Exists(str => divCard.Contains(str))) {
if (list10c.Exists(str => divCard.Contains(str)) || list2to10c.Exists(str => divCard.Contains(str))
|| listLess2c.Exists(str => divCard.Contains(str)) || listNearlyWorthless.Exists(str => divCard.Contains(str))) {
listWorthlessConflict.Add(divCard);
}
else
Expand All @@ -423,14 +423,14 @@ private string GenerateDivinationString(FilterType type)
}
sb.AppendLine();

if (list1to10cConflict.Count > 0)
sb.AppendLine("Show # Divination Cards - 1c+ (Conflicts)").AppendLine("\tClass Divination").Append("\tBaseType ").AppendLine(ItemList(list1to10cConflict)).AppendLine(styleDiv1c).AppendLine();
if (listLess1cConflict.Count > 0) {
if (list2to10cConflict.Count > 0)
sb.AppendLine("Show # Divination Cards - 2-10c (Conflicts)").AppendLine("\tClass Divination").Append("\tBaseType ").AppendLine(ItemList(list2to10cConflict)).AppendLine(styleDiv2c).AppendLine();
if (listLess2cConflict.Count > 0) {
string showHide = type == FilterType.VERY_STRICT ? "Hide" : "Show";
sb.AppendLine(showHide + " # Divination Cards - <1c (Conflicts)").AppendLine("\tClass Divination").Append("\tBaseType ").AppendLine(ItemList(listLess1cConflict)).AppendLine(styleDivLess1c).AppendLine();
sb.AppendLine(showHide + " # Divination Cards - <2c (Conflicts)").AppendLine("\tClass Divination").Append("\tBaseType ").AppendLine(ItemList(listLess2cConflict)).AppendLine(styleDivLess2c).AppendLine();
}
if (listNearlyWorthlessConflict.Count > 0) {
string showHide = (type == FilterType.LEVELING || type == FilterType.MAPPING) ? "Show" : "Hide";
string showHide = (type == FilterType.STRICT || type == FilterType.VERY_STRICT) ? "Hide" : "Show";
sb.AppendLine(showHide + " # Divination Cards - Nearly Worthless (Conflicts)").AppendLine("\tClass Divination").Append("\tBaseType ").AppendLine(ItemList(listNearlyWorthlessConflict)).AppendLine(styleDivNearlyWorthless).AppendLine();
}
if (listWorthlessConflict.Count > 0) {
Expand All @@ -439,14 +439,14 @@ private string GenerateDivinationString(FilterType type)
}
if (list10c.Count > 0)
sb.AppendLine("Show # Divination Cards - 10c+").AppendLine("\tClass Divination").Append("\tBaseType ").AppendLine(ItemList(list10c)).AppendLine(styleDiv10c).AppendLine();
if (list1to10c.Count > 0)
sb.AppendLine("Show # Divination Cards - 1c+").AppendLine("\tClass Divination").Append("\tBaseType ").AppendLine(ItemList(list1to10c)).AppendLine(styleDiv1c).AppendLine();
if (listLess1c.Count > 0) {
if (list2to10c.Count > 0)
sb.AppendLine("Show # Divination Cards - 2-10c").AppendLine("\tClass Divination").Append("\tBaseType ").AppendLine(ItemList(list2to10c)).AppendLine(styleDiv2c).AppendLine();
if (listLess2c.Count > 0) {
string showHide = type == FilterType.VERY_STRICT ? "Hide" : "Show";
sb.AppendLine(showHide + " # Divination Cards - <1c").AppendLine("\tClass Divination").Append("\tBaseType ").AppendLine(ItemList(listLess1c)).AppendLine(styleDivLess1c).AppendLine();
sb.AppendLine(showHide + " # Divination Cards - <2c").AppendLine("\tClass Divination").Append("\tBaseType ").AppendLine(ItemList(listLess2c)).AppendLine(styleDivLess2c).AppendLine();
}
if (listNearlyWorthless.Count > 0) {
string showHide = (type == FilterType.LEVELING || type == FilterType.MAPPING) ? "Show" : "Hide";
string showHide = (type == FilterType.STRICT || type == FilterType.VERY_STRICT) ? "Hide" : "Show";
sb.AppendLine(showHide + " # Divination Cards - Nearly Worthless").AppendLine("\tClass Divination").Append("\tBaseType ").AppendLine(ItemList(listNearlyWorthless)).AppendLine(styleDivNearlyWorthless).AppendLine();
}
if (listWorthless.Count > 0) {
Expand Down
15 changes: 0 additions & 15 deletions MainForm.cs
Original file line number Diff line number Diff line change
Expand Up @@ -77,21 +77,6 @@ public MainForm()
enchantsHcDataGridView.DataSource = hcEnchantsTable;
enchantsScDataGridView.DataSource = scEnchantsTable;

divinationHcDataGridView.Columns["Filter"].SortMode = DataGridViewColumnSortMode.Programmatic;
divinationHcDataGridView.Columns["Expected"].SortMode = DataGridViewColumnSortMode.Programmatic;
divinationScDataGridView.Columns["Filter"].SortMode = DataGridViewColumnSortMode.Programmatic;
divinationScDataGridView.Columns["Expected"].SortMode = DataGridViewColumnSortMode.Programmatic;

uniquesScDataGridView.Columns["Filter"].SortMode = DataGridViewColumnSortMode.Programmatic;
uniquesScDataGridView.Columns["Expected"].SortMode = DataGridViewColumnSortMode.Programmatic;
uniquesHcDataGridView.Columns["Filter"].SortMode = DataGridViewColumnSortMode.Programmatic;
uniquesHcDataGridView.Columns["Expected"].SortMode = DataGridViewColumnSortMode.Programmatic;

enchantsHcDataGridView.Columns["Filter"].SortMode = DataGridViewColumnSortMode.Programmatic;
enchantsHcDataGridView.Columns["Expected"].SortMode = DataGridViewColumnSortMode.Programmatic;
enchantsScDataGridView.Columns["Filter"].SortMode = DataGridViewColumnSortMode.Programmatic;
enchantsScDataGridView.Columns["Expected"].SortMode = DataGridViewColumnSortMode.Programmatic;

divinationHcDataGridView.DoubleBuffer();
divinationScDataGridView.DoubleBuffer();
uniquesScDataGridView.DoubleBuffer();
Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
## Information

This tool is used for updating the filter colors of uniques and divination cards for my loot filter.
This tool is used for updating the filter colors/values of uniques, divination cards, and helm enchants for my loot filter.

* [Loot Filter Thread](https://www.pathofexile.com/forum/view-thread/1490867)
* [FilterBlast](http://filterblast.oversoul.xyz/ffhighwind/)
Binary file modified Resources/Filters/Filters.zip
Binary file not shown.
Loading

0 comments on commit f66ca48

Please sign in to comment.