Skip to content

ci: declare Trade Everything as an embedded CurseForge relation - #834

Open
bh679 wants to merge 13 commits into
mainfrom
dev/te-curseforge-relation
Open

ci: declare Trade Everything as an embedded CurseForge relation#834
bh679 wants to merge 13 commits into
mainfrom
dev/te-curseforge-relation

Conversation

@bh679

@bh679 bh679 commented Jul 24, 2026

Copy link
Copy Markdown
Owner

Now that the Trade Everything CurseForge project (1622962) is live, link/credit it from Dungeon Train's CurseForge listing.

TE is still jarJar-bundled inside DT (same as DiscordPresence), so the relation type is embedded — CurseForge links the project page without telling the app to fetch a separate download.

  • Adds trade-everything(embedded) to curseforge-dependencies in release.yml
  • Not added to the Modrinth dependencies list yet — the Modrinth listing is still under review, and referencing a not-yet-live project would fail the publish. Comment notes to add trade-everything(embedded) there once approved.
  • When TE is later un-bundled to an external required download, both flip to (required) and jarJar is dropped (wiring preserved in feat: require Trade Everything sibling mod (villager Trade Anything slot) #828 history).

Takes effect on the next DT release. No jar/gameplay change.

🤖 Generated with Claude Code

bh679 and others added 13 commits July 23, 2026 21:51
…lot)

Wire tradeeverything 0.2.0 as the fifth external required sibling dep
(AIN/AIS/PMOB/ECP contract): gradle.properties version+floor, shared bh679
Ivy fetch, neoforge.mods.toml required range [0.2.0,), deptest te key +
cases, docs prose 4->5 siblings, changelog entry.

Modpack entry + release.yml platform slugs deliberately deferred until the
Modrinth/CurseForge listings for TE exist — DT must not release with this
dependency before then.

Co-Authored-By: Claude Opus 4.8 <[email protected]>
…gs approved

DP-style temporary bundling: jarJar + versionRange keyed to
tradeeverything_version, no _min_version floor, deptest reverted to the
four external siblings (a bundled mod can never go missing). Un-bundle to
the external contract once Modrinth/CurseForge approve the listings.

Co-Authored-By: Claude Opus 4.8 <[email protected]>
…d roll paused)

Villager level now deterministically equals maxLevelForTier(currentTier)
instead of a weighted roll capped by it — trader quality tracks train
progression 1:1. Weighted spread retained for the difficulty-disabled path
and easy to restore.

Co-Authored-By: Claude Opus 4.8 <[email protected]>
New compat.TradeEverythingBridge registers a TE ItemValueProvider valuing
every written book at 8 sixteenths (x0.75 margin = exactly 6 coal/paper
per book). Installed behind the ECP-style ModList+Throwable guard.

Co-Authored-By: Claude Opus 4.8 <[email protected]>
…50% one level below cap

- Bundle tradeeverything 0.2.1: exception-guarded trading injects (fixes
  the trade-menu wedge), villager-own-rate payout pricing, Trade Anything
  row click fix
- Train villager level: cap or cap-1 at 50/50 (floored at 1)

Co-Authored-By: Claude Opus 4.8 <[email protected]>
…, stats

New difficulty/TradeGearScaler post-processes every train-villager offer:
- From carriage 30 (config villagerTradeScalingMinCarriage), sold gear is
  stripped and re-enchanted at power 15/25/35... (+1 step per 5 difficulty
  tiers, config villagerTradeScalingTiersPerStep, cap 60 — past vanilla's
  30-level table)
- Emerald costs gain the enchant premium (2^(level-1) emeralds per enchant,
  the same curve TE values enchants at, so buy/sell prices agree); totals
  past 64 convert to emerald-block costs (payable via TE block breaking)
- AIS stats + AIN names applied at the villager's own carriage tier — same
  decorator pipeline as mob gear and chest loot
- Villager level cap + all scaling now key off the villager's OWN carriage
  (TrainMembership.carriageIndexOf -> DifficultyProgression.positionTier),
  not player progress: deeper carriages host stronger traders

Config: villagerTradeScalingEnabled/MinCarriage/TiersPerStep in [difficulty].
Tests: enchant power curve, carriage-tag parsing.

Co-Authored-By: Claude Opus 4.8 <[email protected]>
…reeze

Daemon sampler logs the server thread's live stack when a tick stalls past
5s (re-dump every 10s while stuck, recovery line with total stall time).
Two in-field freezes left no trace once the process died; the next one
becomes an attributable stack in latest.log. Pure diagnostics.

Co-Authored-By: Claude Opus 4.8 <[email protected]>
Stat tier = posTier + rand(0..max(1, posTier/5)) — shop gear is slightly
aspirational: tier 1 -> +0-1, 10 -> +0-2, 20 -> +0-4, 40 -> +0-8.

Co-Authored-By: Claude Opus 4.8 <[email protected]>
Co-Authored-By: Claude Opus 4.8 <[email protected]>
TE is jarJar-bundled in DT (like DiscordPresence). Now that its CurseForge
project is live, link/credit it from DT's CF listing via
trade-everything(embedded). Kept off the Modrinth dependencies list until
its Modrinth listing clears review.

Co-Authored-By: Claude Opus 4.8 <[email protected]>
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