Open 0.2.1, and make the feedstock as illegal as the good - #6
Merged
Conversation
Version to 0.2.1-SNAPSHOT: 0.2.0 is out, and the next thing to land will be a fix. First of those: sugar cane is contraband now. One cane crafts into one sugar, so a hold full of cane walked through a customs scan clean and became contraband on the far side with a single click - the whole crime layer was theatre for anyone who had read a recipe book (Ben, playtest). SUGAR_CANE joins SUGAR in illegal-trade.contraband-materials, in the code default AND in config.yml: a list in config REPLACES the default rather than merging, so shipping one without the other fixes nothing on a server that already has a config. Knock-on effects, all intended - farm ports no longer stock cane over the counter (saleCatalog filters contraband), customs scans catch it in hold and pockets, and the black-market premium applies to it. The rule for when the list grows next, now in the config comment: list the FEEDSTOCK as well as the finished good. 611 tests green. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_014as2obVi1QJj8CRTSqXBRr
Custom stamping is gone (it went with the hold plan on 2026-08-01) but its
paperwork stayed: economy.unstamped-sellables sat in config.yml listing
SUGAR, with no @ConfigEntry behind it and nothing in the codebase reading
it - a knob that promised "traders buy this even WITHOUT a customs stamp"
and did nothing at all. Deleted, with the locale item.stamp ("Customs
Stamped") that nothing renders any more.
The comments that outlived the feature go too: Contraband's javadoc still
described stamping as the boundary of what may be sold, the booty settings
claimed drops were "customs-stamped, so salvage can be sold", the buying
page told players their goods were stamped, and CustomsService.sellableAt
called the band rule an addition "on top of the customs stamp" when it is
now the only thing that refuses a sale.
611 tests green.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014as2obVi1QJj8CRTSqXBRr
|
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.



Version to 0.2.1-SNAPSHOT now that 0.2.0 is published, plus the first fix for it.
Sugar cane is contraband
One cane crafts into one sugar, so a hold full of cane walked through a customs scan clean and became contraband on the far side with a single click. The crime layer was theatre for anyone who had read a recipe book.
SUGAR_CANEjoinsSUGARinillegal-trade.contraband-materials— in the code default and inconfig.yml, since a list in config replaces the default rather than merging with it. Knock-on effects, all intended:saleCatalogfilters contraband)The rule for when the list grows next is now in the config comment: list the feedstock as well as the finished good.
611 tests green.
config.ymlmust addSUGAR_CANEtoillegal-trade.contraband-materialsby hand; the code default alone will not reach them.🤖 Generated with Claude Code
https://claude.ai/code/session_014as2obVi1QJj8CRTSqXBRr