diff --git a/Benchmark/Craftimizer.Benchmark.csproj b/Benchmark/Craftimizer.Benchmark.csproj
index 5d72384..615a83e 100644
--- a/Benchmark/Craftimizer.Benchmark.csproj
+++ b/Benchmark/Craftimizer.Benchmark.csproj
@@ -20,7 +20,7 @@
-
+
all
runtime; build; native; contentfiles; analyzers; buildtransitive
diff --git a/Craftimizer/Craftimizer.csproj b/Craftimizer/Craftimizer.csproj
index 2a0b84d..8eaedb6 100644
--- a/Craftimizer/Craftimizer.csproj
+++ b/Craftimizer/Craftimizer.csproj
@@ -39,10 +39,10 @@
-
+
-
+
all
runtime; build; native; contentfiles; analyzers; buildtransitive
diff --git a/Craftimizer/LuminaSheets.cs b/Craftimizer/LuminaSheets.cs
index acff266..17b8f69 100644
--- a/Craftimizer/LuminaSheets.cs
+++ b/Craftimizer/LuminaSheets.cs
@@ -8,8 +8,6 @@ namespace Craftimizer.Plugin;
public static class LuminaSheets
{
public static readonly ExcelSheet RecipeSheet = Service.DataManager.GetExcelSheet()!;
- public static readonly ExcelSheet RecipeLevelTableSheet = Service.DataManager.GetExcelSheet()!;
- public static readonly ExcelSheet ParamGrowSheet = Service.DataManager.GetExcelSheet()!;
public static readonly ExcelSheet ActionSheet = Service.DataManager.GetExcelSheet()!;
public static readonly ExcelSheet CraftActionSheet = Service.DataManager.GetExcelSheet()!;
public static readonly ExcelSheet StatusSheet = Service.DataManager.GetExcelSheet()!;
@@ -23,10 +21,7 @@ public static class LuminaSheets
public static readonly ExcelSheet MateriaSheet = Service.DataManager.GetExcelSheet()!;
public static readonly ExcelSheet BaseParamSheet = Service.DataManager.GetExcelSheet()!;
public static readonly ExcelSheet ItemFoodSheet = Service.DataManager.GetExcelSheet()!;
- public static readonly ExcelSheet CollectablesShopRefineSheet = Service.DataManager.GetExcelSheet()!;
- public static readonly ExcelSheet HWDCrafterSupplySheet = Service.DataManager.GetExcelSheet()!;
public static readonly ExcelSheet SatisfactionSupplySheet = Service.DataManager.GetExcelSheet()!;
- public static readonly ExcelSheet SharlayanCraftWorksSupplySheet = Service.DataManager.GetExcelSheet()!;
private static ConcurrentDictionary<(ExcelSheetImpl, uint), uint> SubRowCountCache { get; } = new();
public static uint? GetSubRowCount(this ExcelSheet sheet, uint row) where T : ExcelRow
diff --git a/Craftimizer/Utils/RecipeData.cs b/Craftimizer/Utils/RecipeData.cs
index bbe3d6f..a4d21a2 100644
--- a/Craftimizer/Utils/RecipeData.cs
+++ b/Craftimizer/Utils/RecipeData.cs
@@ -46,16 +46,16 @@ public sealed record RecipeData
ProgressDivider = Table.ProgressDivider,
};
- CollectableThresholds = null;
+ int[]? thresholds = null;
if (Recipe.CollectableMetadata is LazyRow { Value: { } row })
- CollectableThresholds = new int?[] { row.LowCollectability, row.MidCollectability, row.HighCollectability };
+ thresholds = [row.LowCollectability, row.MidCollectability, row.HighCollectability];
else if (Recipe.CollectableMetadata is LazyRow { Value: { } row2 })
{
foreach (var entry in row2.HWDCrafterSupplyParams)
{
if (entry.ItemTradeIn.Row == Recipe.ItemResult.Row)
{
- CollectableThresholds = new int?[] { entry.BaseCollectableRating, entry.MidCollectableRating, entry.HighCollectableRating };
+ thresholds = [entry.BaseCollectableRating, entry.MidCollectableRating, entry.HighCollectableRating];
break;
}
}
@@ -72,7 +72,7 @@ public sealed record RecipeData
continue;
if (subRow.Item.Row == Recipe.ItemResult.Row)
{
- CollectableThresholds = new int?[] { subRow.CollectabilityLow, subRow.CollectabilityMid, subRow.CollectabilityHigh };
+ thresholds = [subRow.CollectabilityLow, subRow.CollectabilityMid, subRow.CollectabilityHigh];
break;
}
}
@@ -82,13 +82,22 @@ public sealed record RecipeData
{
foreach (var item in row5.Item)
{
- if (item.Id == Recipe.ItemResult.Row)
+ if (item.ItemId.Row == Recipe.ItemResult.Row)
{
- CollectableThresholds = new int?[] { null, item.CollectabilityMid, item.CollectabilityHigh };
+ thresholds = [0, item.CollectabilityMid, item.CollectabilityHigh];
break;
}
}
}
+ else if (Recipe.CollectableMetadata is LazyRow { Value: { } row6 })
+ {
+ if (row6.CollectabilityHigh != 0)
+ thresholds = [row6.CollectabilityLow, row6.CollectabilityMid, row6.CollectabilityHigh];
+ else
+ thresholds = [0, row6.CollectabilityLow, row6.CollectabilityMid];
+ }
+
+ CollectableThresholds = thresholds?.Select(t => t == 0 ? null : t).ToArray();
Ingredients = Recipe.Ingredient.Zip(Recipe.AmountIngredient)
.Take(6)
diff --git a/Craftimizer/packages.lock.json b/Craftimizer/packages.lock.json
index ba7417f..f147428 100644
--- a/Craftimizer/packages.lock.json
+++ b/Craftimizer/packages.lock.json
@@ -10,9 +10,9 @@
},
"ExdSheets": {
"type": "Direct",
- "requested": "[1.1.0, )",
- "resolved": "1.1.0",
- "contentHash": "Je/kV/jpZoIEmJVi1ICRnl1/ENB+nyFHX1KZUu3rkxMO8H9uJJ6CA1MdRiOD6OE6If1eGXAL1bLwEupC2Ikraw==",
+ "requested": "[1.2.2, )",
+ "resolved": "1.2.2",
+ "contentHash": "oS1oUBhlOpUWY1Wc3SwOLzfAMuSRzBn54I8p84euVUHrUEOzRZwA9vuNKNMAIY66eT1dpc/DxT+C7LNH0nK0jg==",
"dependencies": {
"Lumina": "3.15.2"
}
@@ -31,9 +31,22 @@
},
"Meziantou.Analyzer": {
"type": "Direct",
- "requested": "[2.0.159, )",
- "resolved": "2.0.159",
- "contentHash": "+Lu4NktCK98/PkPCluTA+uRHS7uvMXa/Z2WLPE8TDsS/ybYtaOhfq8Wi745fO26wI8rNGaJlKsfFskcKWC5eDQ=="
+ "requested": "[2.0.162, )",
+ "resolved": "2.0.162",
+ "contentHash": "lU5ZkiNx6Jj++yYhkUkn2qsgl+PSfAy+BDFc0IkoVVeSCnmUOGBa0Eb1XzGLAeyAuIoz6vYN4J97Q/uiGdIkhw=="
+ },
+ "DotNext": {
+ "type": "Transitive",
+ "resolved": "5.8.0",
+ "contentHash": "5PwF7lUwgJKMcQRrMnFo8ilqrFq9OyaQ5Lq/zFHn0LahhLriNeySCPs08Zd15FdBV0G0KpZvPHBC8Rp1LIsrhg==",
+ "dependencies": {
+ "System.IO.Hashing": "8.0.0"
+ }
+ },
+ "System.IO.Hashing": {
+ "type": "Transitive",
+ "resolved": "8.0.0",
+ "contentHash": "ne1843evDugl0md7Fjzy6QjJrzsjh46ZKbhf8GwBXb5f/gw97J4bxMs0NQKifDuThh/f0bZ0e62NPl1jzTuRqA=="
},
"craftimizer.simulator": {
"type": "Project"
@@ -41,7 +54,8 @@
"craftimizer.solver": {
"type": "Project",
"dependencies": {
- "Craftimizer.Simulator": "[1.0.0, )"
+ "Craftimizer.Simulator": "[1.0.0, )",
+ "DotNext": "[5.8.0, )"
}
}
}
diff --git a/Simulator/Craftimizer.Simulator.csproj b/Simulator/Craftimizer.Simulator.csproj
index aa8f2a8..c1eaf9e 100644
--- a/Simulator/Craftimizer.Simulator.csproj
+++ b/Simulator/Craftimizer.Simulator.csproj
@@ -9,7 +9,7 @@
-
+
all
runtime; build; native; contentfiles; analyzers; buildtransitive
diff --git a/Solver/Craftimizer.Solver.csproj b/Solver/Craftimizer.Solver.csproj
index cb09a3a..b11899e 100644
--- a/Solver/Craftimizer.Solver.csproj
+++ b/Solver/Craftimizer.Solver.csproj
@@ -11,6 +11,7 @@
+
all
runtime; build; native; contentfiles; analyzers; buildtransitive
diff --git a/Test/Craftimizer.Test.csproj b/Test/Craftimizer.Test.csproj
index 173b0a7..7bb36ba 100644
--- a/Test/Craftimizer.Test.csproj
+++ b/Test/Craftimizer.Test.csproj
@@ -11,6 +11,10 @@
+
+ all
+ runtime; build; native; contentfiles; analyzers; buildtransitive
+