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 +