feat: natural bid/buyout spread for override items, saner outbid steps#24
Merged
Conversation
Price-override items previously used the curated minPrice directly as the bid, giving them a flat bid/buyout gap unlike normal items. Derive the bid from the existing per-rarity bid-ratio config instead, floored at the override's minPrice and capped at buyout.
…eaps The old bid step, currentPrice + (maxBid - currentPrice) * urand(1,100)/100, could jump anywhere up to the bot's max acceptable price in one bid, which looks unnatural and overpays. Step up from the current price by a small configurable percentage instead (Buyer.BidIncrementMinPct/MaxPct, default 5-15%), while keeping the existing minimum-outbid floor and maximumBid cap unchanged.
Items 11-20 were exact duplicates of 1-10. Collapse to the 10 unique items and note what's covered, in progress, or deferred.
icemansparks
changed the base branch from
fix/sell-flow-and-override-guards
to
merkerhood
July 2, 2026 14:47
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.
Stacked on #23 (retarget to merkerhood after that merges). Covers planned items 6 and 7.
Bid/buyout spread for price-override items
Override items listed with
bid = minPriceflat. They now get the same per-rarity bid-ratio spread as everything else:bid = buyout * urand(MinBidPrice, MaxBidPrice)/100, floored at the curatedminPriceand capped at buyout. No new config.Buyer outbid increments
The bot's outbid step was
current + (maxAcceptable - current) * urand(1,100)%— a uniform random leap that routinely overpaid and looked robotic. Now a percentage-of-current-price step:current + current * urand(MinPct, MaxPct)%, floored at the minimum legal outbid and capped at the max acceptable price, both unchanged from before. New configAuctionHouseBot.Buyer.BidIncrementMinPct/MaxPct(defaults 5/15, validated, capped at 100). Math promoted to double so high-value auctions (>~28k gold stacks) don't wrap 32-bit.planned_things.md
Deduped (items 11-20 were verbatim copies of 1-10) and each unique item marked Covered / In progress / Deferred with pointers to the PRs or branches that address it.
Compile-checked against the full core tree (RelWithDebInfo, gcc/ninja).