Commit Graph

2 Commits

Author SHA1 Message Date
JonKazama-Hellion 47790a3f68 feat(recipedata): add plain-data records and enums
Module 01 public-API surface: six sealed records with init-only
properties plus their nine enums. All BCL-only - no Lumina or Dalamud
types in any public property, which is what keeps the simulator and
catalog xUnit-testable per the Critical Boundary in 00-Anvil-Scope §3.3.

- AnvilRecipe + AnvilRecipeIngredient: flat representation of the
  Recipe + RecipeLevelTable sheet pair with the five Cosmic-Exploration
  flags. v0.1.0 ships with MissionHas* always false (SH-15 option B);
  the schema stays in place so v0.2.0 can wire the WKS mission sheet
  without touching the type.
- AnvilItem: slim per-recipe / per-food item view (full ~50k-row item
  mirror is left to the UI layer).
- AnvilAction + AnvilActionKind + AnvilActionCategory + AnvilActionFlags:
  one logical action per Kind value with RowIdByClassJob mapping; Cosmic
  actions use ClassJobId 0 as the sentinel for "every crafter".
  AnvilActionFlags bit 1 << 2 is intentionally vacant (ConsumesGreatStrides
  was removed in spec rev 5; consumption logic lives in 02-CraftingSimulator).
- AnvilBuff + AnvilBuffKind + AnvilBuffBehavior + AnvilBuffCategory:
  static buff catalog entry with the duration field that matches Behavior
  (Steps / Seconds / Actions). Two Cosmic buffs (MaterialMiracleBuff,
  StellarSteadyHandBuff).
- AnvilCondition + AnvilConditionKind: eleven conditions including the
  Cosmic Robust variant. DisplayName comes from AnvilStrings.resx, not
  Lumina (the Status sheet does not expose the crafting condition labels
  cleanly).
- AnvilFood + AnvilFoodBonus + AnvilFoodKind + AnvilFoodStat: ItemFood
  mirror with IsRelative flag (percentage vs flat bonus).
2026-05-27 19:53:54 +02:00
JonKazama-Hellion 96553a849a chore: bootstrap Anvil repo skeleton
First commit on feature/v0.1.0 establishes the Hellion Forge plugin
scaffold:

- .gitattributes: Linux-first LF defaults, Windows-script CRLF exceptions,
  binary markers for fonts / images / archives. Pre-empts the
  Forgeimizer pre-push hook crash that was caused by Asriels CRLF default.
- .editorconfig: Hellion Forge .NET conventions
  (private fields _camelCase, Allman braces, var-preferred).
- .gitignore: VisualStudio baseline + secrets bucket + Anvil.Tests
  excluded (build-suite lives in the local Hellion Build test repo).
- LICENSE: MIT, Hellion Online Media 2026.
- NOTICE.md: goodwill attribution to Craftimizer and clean-room
  anonymisation note.
- PRIVACY.md: zero-telemetry statement matching 00-Anvil-Scope.
- README.md: v0.1.0 status + planned-feature outline + custom-repo URL.
- Anvil.sln + Anvil/Anvil.csproj: Dalamud.NET.Sdk/15.0.0, x64 platform
  pinned (forge-wide rule), Microsoft.Extensions.Hosting stack closed-range
  pin to 10.0.7 matching HellionChat v1.5.0. No DalamudPackager.targets
  override - SDK 15 default packager handles images / icon / image_urls.
- Anvil/Anvil.yaml: plugin manifest with explicit icon_url / image_urls
  (top-level fields required for SDK 15 default packager) and a v0.1.0
  changelog entry that names RecipeData as the first module.
2026-05-27 19:16:36 +02:00