No description
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Patrick W. 420eddd2ea
All checks were successful
ci / gates (pull_request) Successful in 54s
build / image (push) Successful in 31s
ci / gates (push) Successful in 57s
fix(bot): stop a gatherer walking past the site it is standing on
Closes #124.

`Bot.Goals.Fish` and `Bot.Goals.GatherAndBank` both chose where to work by
sorting sites by distance, taking the nearest three and rolling between them.
The roll is right — a fleet that all took the nearest would pile onto one site
— but it weighed a site underfoot the same as one across the world, and gather
sites are sparse enough that the runners-up are routinely hundreds of tiles
off. A fisher spawned on a perfectly good ground walked away from it two times
in three.

`Bot.Sites.choose/2` is now the one home for that rule, and it drops from the
roll any candidate more than 32 tiles further away than the nearest.
Comparable sites still share it. What that removes is the journey chosen for
no reason, which matters beyond the walking: it is exactly the long leg that
straight-line travel is worst at, so the two together turned working bots into
wedged ones.

The site type is deliberately open, because a closed map of one key is not
what any site in that module is.
2026-08-05 19:58:12 -04:00
.forgejo/workflows feat: ship the server as a distroless release image 2026-08-02 14:20:27 -04:00
config feat(bot): the lifecycle and the operator surface 2026-08-04 10:43:09 -04:00
lib fix(bot): stop a gatherer walking past the site it is standing on 2026-08-05 19:58:12 -04:00
priv feat(fishing): relocate fly spots between their candidates instead of pinning all of them 2026-08-05 13:39:12 -04:00
test fix(bot): stop a gatherer walking past the site it is standing on 2026-08-05 19:58:12 -04:00
.dockerignore feat: ship the server as a distroless release image 2026-08-02 14:20:27 -04:00
.env.example feat: update example with admin port 2026-08-02 14:45:27 -04:00
.envrc chore: Add Nix Flake 2026-08-04 17:42:50 -04:00
.formatter.exs feat: additional modules, readme 2026-07-31 13:40:15 -04:00
devenv.nix chore: Add Nix Flake 2026-08-04 17:42:50 -04:00
docker-compose.yml feat(admin): run the operator panel by default on 4001 2026-08-02 14:37:19 -04:00
Dockerfile feat: ship the server as a distroless release image 2026-08-02 14:20:27 -04:00
flake.lock chore: Add Nix Flake 2026-08-04 17:42:50 -04:00
flake.nix chore: Add Nix Flake 2026-08-04 17:42:50 -04:00
LICENSE feat: init 2026-07-25 08:40:00 -04:00
mix.exs feat: ship the server as a distroless release image 2026-08-02 14:20:27 -04:00
mix.lock feat: additional modules, readme 2026-07-31 13:40:15 -04:00