Skip to content

Feat/101 recipe derived unlocks - #136

Open
joffewilliam wants to merge 5 commits into
elertan:devfrom
joffewilliam:feat/101-recipe-derived-unlocks
Open

Feat/101 recipe derived unlocks#136
joffewilliam wants to merge 5 commits into
elertan:devfrom
joffewilliam:feat/101-recipe-derived-unlocks

Conversation

@joffewilliam

Copy link
Copy Markdown
Collaborator

This closes issue #101: Optional Recipe-Derived Unlocks
This PR implements optional recipe-derived unlocks for multi-item chains, with explicit mappings and clear interaction with tradeable-only mode. ONLY RANCOUR is currently filled in. We need someone to build a list of recipes as there isn't a single source of data for this.

There is a stage 2 to this PR that builds on the RelatedItemRegistry. That PR will tackle auto unlocking potion doses when you get any (1),(2),(3),(4) dose potion, unlocking grimy and clean herbs when you receive either, and unlocking the entire family when you receive any variant of barrows and moons gear.

Summary

  • Added a game rule toggle to enable/disable recipe-derived unlocks.
  • Added recipe-derived unlock evaluation in unlock flow.
  • Added explicit initial recipe mapping:
  • Araxyte fang + Amulet of torture => Amulet of rancour.
  • Enforced interaction with tradeable-only mode:
  • When tradeable-only is enabled, derived recipe results are only applied if the result item is tradeable.
  • Updated docs to describe behavior and interaction for future dev work.
  • Updated build.grade to further enforce JDK 11. This one I can remove to pass PR, but it's nice to enforce it for everyone and saves me a little headache.

Acceptance Criteria Check

  • Add support for recipe-based derived unlocks using explicit prerequisite mappings.
  • Support multi-item chains, not just variant/degraded equivalence.
  • Include initial mapping for Araxyte fang + Amulet of torture => Amulet of rancour.
  • Prevent circular/ambiguous unlock evaluation via explicit one-pass recipe evaluation.
  • Make feature configurable so players can turn it on/off.
  • Define and document interaction with only-for-tradeable-items.

Notes
Recipe-derived unlocks are intentionally explicit (registry-based), not broad implicit inference.
Skill-level gating for recipe-derived unlocks is not introduced in this PR and can be handled as a follow-up toggle if desired.

@joffewilliam joffewilliam added the enhancement New feature or request label Mar 19, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant