Skip to content

feat: natural bid/buyout spread for override items, saner outbid steps#24

Merged
icemansparks merged 4 commits into
merkerhoodfrom
feat/bid-buyout-refinement
Jul 2, 2026
Merged

feat: natural bid/buyout spread for override items, saner outbid steps#24
icemansparks merged 4 commits into
merkerhoodfrom
feat/bid-buyout-refinement

Conversation

@icemansparks

Copy link
Copy Markdown
Collaborator

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 = minPrice flat. They now get the same per-rarity bid-ratio spread as everything else: bid = buyout * urand(MinBidPrice, MaxBidPrice)/100, floored at the curated minPrice and 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 config AuctionHouseBot.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).

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
icemansparks changed the base branch from fix/sell-flow-and-override-guards to merkerhood July 2, 2026 14:47
@icemansparks
icemansparks merged commit 21410b4 into merkerhood Jul 2, 2026
1 check passed
@icemansparks
icemansparks deleted the feat/bid-buyout-refinement branch July 2, 2026 14:51
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