Skip to content

Guarantee one energy-elf buffer per bot party - #951

Open
eduardosmaniotto wants to merge 1 commit into
MUnique:masterfrom
eduardosmaniotto:feature/bot-party-buffer-composition
Open

eduardosmaniotto wants to merge 1 commit into
MUnique:masterfrom
eduardosmaniotto:feature/bot-party-buffer-composition

Conversation

@eduardosmaniotto

Copy link
Copy Markdown
Contributor

Bot parties now always hunt with exactly one energy-elf buffer and
at most one of each build variant. Previously formation grouped by
level only: buffers could end up solo, two buffers could share a
party, and most parties had no buffer at all.

Changes

  • Formation (BotManager, new BotPartyComposer): each party
    gets exactly one buffer (nearest in level, gap ≤ 12); one of each
    build key at most; no buffer in range means no party. Grouping
    extracted from BotManager into a testable composer; fill is pure
    (failed parties no longer consume candidates).
  • Build identity (new BotBuild, BotClassNumbers): single
    owner for variant rules and mirrored class numbers; BotProgression
    references them instead of duplicating constants.
  • Population (new BotPartyPolicy, BotGenerator): shared party
    tuning plus EstimatePartyCount, used as the buffer quota at
    generation (elf slots grown as needed, variants forced through
    name resampling, resume-safe counting).
  • Travel (BotNavigator): voluntary warp floor derived from the
    server warp list (10 on stock data) instead of hardcoded 30.
  • Docs: party paragraph in bots.md updated.

Behavior notes

  • ~23% of grouped bots must be buffers, so elves grow to ~30% of a
    fresh population (e.g. ~12 buffers of 50 bots). Price of a buffer
    in every party.
  • Hunters with no buffer in level range stay solo until the next
    hourly reform; pre-10 followers still can't enter gated maps.
  • No change to player-invited parties (BotPartyHandler).

Party formation grouped bots by level only, so buffers could hunt
solo and parties could hold two buffers or none. Formation now
gives each party exactly one buffer and one of each build at most;
bots without a buffer stay solo.

Centralize build variants in BotBuild and class numbers in
BotClassNumbers, both shared by BotProgression. Extract grouping
into BotPartyComposer (pure fill, no pool repair hacks) and share
party tuning through BotPartyPolicy. BotGenerator sizes the buffer
count to the estimated party count and grows elf slots as needed.
Derive the voluntary warp floor from the warp list (10 on stock
data) instead of the hardcoded 30.
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