Teak has no bank in range, and a gatherer has no bankless mode #135

Open
opened 2026-08-06 13:16:34 +00:00 by sickday · 0 comments
Owner

Bot.Sites pairs every gather site with a bank within 90 tiles and drops the
ones it cannot. Teak is the species that genuinely has nowhere to bank:

placements 30, in 9 clusters
planes 0 throughout
nearest bank, per cluster 108, 117, 129, 152, 171, 202, 221, 245, 350

The closest is 108 tiles, so no pairing rule short of tripling the range
reaches it, and tripling it would hand every other site a bank a bot spends a
minute walking to.

::botgen 5 chopper teak is therefore legal, spawns five bots, and they stand
still forever. The command warns — "No teak site has a bank in range, so they
will stand idle"
— which is the whole of the current mitigation.

What it wants

A bankless mode for Bot.Goals.GatherAndBank: work the site, and when the
pack fills, drop the yield where the bot stands instead of walking a bank leg.
That is what a player does at teak, and it is the same mechanism two other
open items want:

  • barbarian fishing has no bank within 79 tiles and needs a drop-or-cook loop;
  • any future site the pairing drops becomes workable the same day.

Shape, roughly:

  • a mode: :bank | :drop in the goal config, defaulting to :bank, with
    --drop on ::botgen;
  • a :dropping phase that emits the client's own drop click — {:item_op, %{interface: 149, component: 0, op: <drop>, slot: …, item: …}}, which
    World.Player.Host already dispatches to World.Player.Effects.drop/3;
  • Bot.Sites keeping sites whose bank pairing failed, with bank: nil, so
    the drop mode has something to choose from. gather_site.bank becomes
    nullable and travel_to_bank must not be reachable when it is nil.

Bot.Act has no drop verb yet; it is one builder.

Not in scope

Nothing here needs the bank range changed. The 90-tile rule is right for the
mode it serves.

`Bot.Sites` pairs every gather site with a bank within 90 tiles and drops the ones it cannot. Teak is the species that genuinely has nowhere to bank: | | | |---|---| | placements | 30, in 9 clusters | | planes | 0 throughout | | nearest bank, per cluster | 108, 117, 129, 152, 171, 202, 221, 245, 350 | The closest is 108 tiles, so no pairing rule short of tripling the range reaches it, and tripling it would hand every other site a bank a bot spends a minute walking to. `::botgen 5 chopper teak` is therefore legal, spawns five bots, and they stand still forever. The command warns — *"No teak site has a bank in range, so they will stand idle"* — which is the whole of the current mitigation. ## What it wants A **bankless mode** for `Bot.Goals.GatherAndBank`: work the site, and when the pack fills, drop the yield where the bot stands instead of walking a bank leg. That is what a player does at teak, and it is the same mechanism two other open items want: * barbarian fishing has no bank within 79 tiles and needs a drop-or-cook loop; * any future site the pairing drops becomes workable the same day. Shape, roughly: * a `mode: :bank | :drop` in the goal config, defaulting to `:bank`, with `--drop` on `::botgen`; * a `:dropping` phase that emits the client's own drop click — `{:item_op, %{interface: 149, component: 0, op: <drop>, slot: …, item: …}}`, which `World.Player.Host` already dispatches to `World.Player.Effects.drop/3`; * `Bot.Sites` keeping sites whose bank pairing failed, with `bank: nil`, so the drop mode has something to choose from. `gather_site.bank` becomes nullable and `travel_to_bank` must not be reachable when it is nil. `Bot.Act` has no drop verb yet; it is one builder. ## Not in scope Nothing here needs the bank range changed. The 90-tile rule is right for the mode it serves.
Sign in to join this conversation.
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
Revenant/Server#135
No description provided.