diff --git a/Anvil/RecipeData/AnvilRecipe.cs b/Anvil/RecipeData/AnvilRecipe.cs index e6b6f16..eeffeae 100644 --- a/Anvil/RecipeData/AnvilRecipe.cs +++ b/Anvil/RecipeData/AnvilRecipe.cs @@ -28,19 +28,20 @@ public sealed record AnvilRecipe // Cosmic Exploration (Patch 7.x). v0.1.0 ships with MissionHas* always // false (SH-15 option B) - the data schema stays in place so v0.2.0+ can // light up the surface by resolving the WKS mission sheet without - // touching the type. IsCosmic / IsSplendorCosmic are still set by the - // recipe-detection path so the catalog knows which recipes belong to the - // Cosmic surface even while the action flags stay dormant. + // touching the type. IsCosmic is still set by the recipe-detection path + // so the catalog knows which recipes belong to the Cosmic surface even + // while the mission flags stay dormant. The Splendorous-tool bonus is + // character-equipment state rather than recipe state, so it lives in + // the simulator's stats layer (CraftStats.HasSplendorousTool in module + // 02) instead of carrying a flag on this record. // // Adapter invariant (validated when the catalog is built): - // IsSplendorCosmic == true implies IsCosmic == true // MissionHasMaterialMiracle == true implies IsCosmic == true // MissionHasSteadyHand == true implies IsCosmic == true // // Inconsistent recipe states (sub-flag without master flag) throw at // catalog-build time instead of silently corrupting the simulator. public required bool IsCosmic { get; init; } - public required bool IsSplendorCosmic { get; init; } public required bool MissionHasMaterialMiracle { get; init; } public required bool MissionHasSteadyHand { get; init; } public required bool IsIshgardExpert { get; init; } diff --git a/Anvil/RecipeData/Internal/LuminaRecipeAdapter.cs b/Anvil/RecipeData/Internal/LuminaRecipeAdapter.cs index e5bd358..181799e 100644 --- a/Anvil/RecipeData/Internal/LuminaRecipeAdapter.cs +++ b/Anvil/RecipeData/Internal/LuminaRecipeAdapter.cs @@ -577,7 +577,6 @@ internal sealed class LuminaRecipeAdapter IsExpertRecipe = recipe.IsExpert, CanHQ = recipe.CanHq, IsCosmic = isCosmic, - IsSplendorCosmic = false, MissionHasMaterialMiracle = false, MissionHasSteadyHand = false, IsIshgardExpert = false, @@ -636,11 +635,6 @@ internal sealed class LuminaRecipeAdapter // time instead of producing a corrupt simulator state at runtime. private static void ValidateCosmicInvariant(AnvilRecipe recipe) { - if (recipe.IsSplendorCosmic && !recipe.IsCosmic) - throw new InvalidOperationException( - $"AnvilRecipe {recipe.RecipeId}: IsSplendorCosmic implies IsCosmic, " - + "but IsCosmic is false." - ); if (recipe.MissionHasMaterialMiracle && !recipe.IsCosmic) throw new InvalidOperationException( $"AnvilRecipe {recipe.RecipeId}: MissionHasMaterialMiracle implies IsCosmic, " diff --git a/Anvil/RecipeData/Mechanics/ConditionMechanicsTable.cs b/Anvil/RecipeData/Mechanics/ConditionMechanicsTable.cs index ace0e77..8136cd9 100644 --- a/Anvil/RecipeData/Mechanics/ConditionMechanicsTable.cs +++ b/Anvil/RecipeData/Mechanics/ConditionMechanicsTable.cs @@ -10,9 +10,10 @@ // behaviour for Robust - that wording predates the verified mechanics table // and the values below are the source of truth.) // -// SplendorCosmic raises Good's quality multiplier from 1.5 to 1.75 on -// recipes flagged IsSplendorCosmic. The override lives in the simulator; -// the table holds the non-Splendor default. +// Splendor (the Splendorous-tool bonus) raises Good's quality multiplier +// from 1.5 to 1.75 when the character has the tool equipped. The override +// lives in the simulator's stats layer (CraftStats.HasSplendorousTool in +// module 02); the table holds the non-Splendor default. using System.Collections.Generic;