Skip to content

Add unlockable hearts option#14

Open
Gandalf-The-IT-Wizard wants to merge 5 commits into
qixils:mc/1.21.11from
Gandalf-The-IT-Wizard:feat/unlockable-hearts-upstream-pr
Open

Add unlockable hearts option#14
Gandalf-The-IT-Wizard wants to merge 5 commits into
qixils:mc/1.21.11from
Gandalf-The-IT-Wizard:feat/unlockable-hearts-upstream-pr

Conversation

@Gandalf-The-IT-Wizard

Copy link
Copy Markdown

Summary

Adds an optional unlockable_hearts mode for Minecraft Archipelago:

  • Adds an unlockable_hearts APWorld toggle.
  • Starts players at one heart when the option is enabled.
  • Adds nine progression Heart items to the Minecraft item pool.
  • Each received Heart grants one additional max heart, capped at vanilla ten hearts.
  • Adds NeoForge-side HeartReward handling and AP item registry data.
  • Includes packaged minecraft.apworld plus reviewable APWorld source under apworld_src/.

Notes

The APWorld launcher normally follows upstream versions/minecraft_versions.json for the mod jar. For upstream release, that version metadata will need to point at a mod jar containing this feature; otherwise the APWorld can generate the option but the launcher may install an older mod that does not know how to apply it.

Verification

  • ./gradlew --no-daemon build passed with Java 21.
  • Verified built jar contains:
    • gg/archipelago/aprandomizer/common/Utils/UnlockableHearts.class
    • gg/archipelago/aprandomizer/items/HeartReward.class
    • data/aprandomizer/aprandomizer/archipelago_item/heart.json
  • Repackaged minecraft.apworld and compiled all packaged Python files.
  • Validated APWorld data contains one boolean unlockable_hearts output key and a progression Heart item.

Manual testing note

A fork release was tested and exposed that the APWorld launcher must download a matching mod jar. The fork release asset has been corrected; this PR branch keeps upstream URLs clean for maintainers.

@Gandalf-The-IT-Wizard

Copy link
Copy Markdown
Author

Follow-up from testing: added Received Items advancements for unlockable heart rewards. The mod now generates nine tiered advancements under Received Items (Heart Unlock 1 through 9), each triggered by receiving the corresponding Heart tier.

@Gandalf-The-IT-Wizard

Copy link
Copy Markdown
Author

Follow-up for testing feedback: split unlockable hearts into distinct Archipelago item names.

What changed:

  • APWorld now creates Heart 1 through Heart 9 instead of nine copies of Heart.
  • All nine are progression items with AP item IDs 53-61.
  • NeoForge mod maps IDs 53-61 back to APItems.HEART, so each still grants one max-heart unlock in-game.
  • This should allow text-client hints such as hint Heart 1, hint Heart 2, etc., instead of hint Heart matching all nine at once.

Verification:

  • ./gradlew --no-daemon build passed.
  • Repackaged APWorld validation passed: no ambiguous Heart, contains Heart 1-Heart 9 as IDs 53-61.
  • Fresh release jar bytecode contains mappings 53-61 -> APItems.HEART.
  • Re-uploaded release assets and downloaded them back; SHA256 verification passed.

New release asset SHA256:

  • minecraft-unlockable-hearts.apworld: 145476811926a89f0b66437f722ac39ee28e14e378464aef882cb4f4f55ec5c3
  • neoforgeap-unlockable-hearts-2.1.4-SNAPSHOT+1.21.11.jar: fd1e8cd270f458a4ffddf983631ec3d584ddcb816a52cc13bc7abc9ef9b09c65

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant