Implement Flint-to-Diamond progression - #49
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Why
This turns the approved ore/tool design into a playable early- and mid-game progression instead of allowing vanilla Wooden and Stone equipment, chest loot, or ordinary villager trades to bypass it cheaply. The acquisition rules are global and server-owned, so single-player and multiplayer use the same progression rather than storing separate per-player stages.
The Campfire placement flicker was caused by vanilla creating a lit placement state before a server placement event corrected it. A narrow common placement-state hook now returns the unlit state immediately on both logical sides.
Vanilla animal armor lacks the enchantability component and enchantment-family membership used by player Chestplates. Retold supplies both through a named component policy and data-driven item tags. Wolf Armor also absorbs most hits directly into durability before the ordinary LivingEntity protection calculation runs, so a narrow incoming-damage bridge applies the vanilla enchantment calculation before that special absorption path. Bypassing damage is excluded to avoid duplicate mitigation. Vanilla Horse and Nautilus Armor has no durability; Retold gives the Diamond variants a 528-point body-armor maximum and server-owned wear from non-bypassing hits so they can participate in the same Diamond and durability-enchantment rules.
Player impact
Players begin with vegetation-supplied Sticks and Flint, move through Copper, Iron, and Steel, and then reach fragile-until-enchanted Diamond equipment. Spears follow the same main material ladder. Gold remains a fast, fragile, highly enchantable post-Iron sidegrade and cannot bypass Steel's geology gate. Both normal and Deepslate Diamond Ore require Steel or better. Steel's current stats remain the working baseline until natural playtesting provides evidence for tuning. Campfires and furnace stations form part of the material progression. The Blast Furnace keeps its vanilla recipe, preserving the Furnace and Smooth Stone prerequisites. Netherite continues upgrading Diamond gear through the vanilla Smithing Table and upgrade template for now. Copper is substantially less visually dense in newly generated chunks.
Alternative acquisition remains possible, but its rewards scale with location danger or villager mastery and Emerald cost. Ordinary village smith loot no longer grants ready Iron/Diamond equipment, and Master Diamond trades cost 48–64 Emeralds before normal live trade adjustments.
Mending continues to function on existing and command-created items but is absent from Retold's default random-loot and tradeable enchantment pools. Datapacks—including optional experimental vanilla packs—can replace these tags or add direct Mending entries, so compatibility remains data-pack dependent.
Curses intentionally count as enchantments for Diamond durability, including when a curse is the only enchantment. This remains a balance watchpoint: revisit it if curse acquisition ever makes the full-durability unlock substantially cheaper than ordinary enchanting.
All twelve vanilla animal armors—Wolf Armor, six Horse Armor variants, and five Nautilus Armor variants—can receive compatible Chestplate enchantments. Protection enchantments work while equipped; on Wolf Armor they reduce absorbed durability damage. Fire Protection reduces matching damage and burning duration, but does not make animals visually fireproof. Diamond Horse and Nautilus Armor have 96 durability while unenchanted and 528 after any enchantment; non-Diamond variants retain vanilla's indestructible behavior.
This PR is intentionally a draft because progression economy and the provisional reused Spear visuals still need natural survival balancing and client/multiplayer verification. Existing villagers keep already-generated offers rather than being forcibly rerolled.
Validation
./gradlew buildretold:tool_progression_alternative_acquisition_respects_tiersretold:tool_progression_recipes_enforce_opening_loopretold:tool_progression_harvest_rules_enforce_material_ladderretold:tool_progression_leaves_supply_sticksretold:tool_progression_campfires_require_ignitionretold:tool_progression_copper_generation_is_reducedretold:tool_progression_all_diamond_items_require_enchanting_for_durabilityretold:animal_armor_supports_chestplate_enchantmentsretold:animal_armor_enchantments_affect_equipped_animalsjq emptygit diff --checkThe acquisition GameTest samples bonus/village chest loot, reads live villager trade registries and price bands, checks rarer enchanted Master offers and the Wandering Trader price distribution, and verifies that Mending is still registered but absent from the default acquisition tags. The harvest-ladder test verifies Flint, Wooden, Stone, Gold, Copper, and Iron cannot harvest Deepslate, Iron cannot harvest either Diamond Ore variant, Steel can harvest both variants, and Diamond retains the unlocked paths. It also proves that a Vanishing Curse by itself restores full Diamond durability. Other progression tests cover vegetation Stick yields, Spear recipes/tags/durability, all twelve enchantable Diamond items, real Diamond Horse/Nautilus Armor wear, Protection families, Fire Protection burn duration, Thorns, Unbreaking, Mending effect processing, Binding, and Vanishing.
Not yet manually verified in a graphical client, dedicated-server multiplayer, existing worlds, multiple natural fresh-world seeds, or through natural survival balancing with every trade, enchantment, and animal-armor material.
AI assistance
Codex assisted with design translation, implementation, documentation, automated tests, and validation. The developer retains final review, visual, economy, and balance decisions.