fix(game): release a banished race's assets during turn generation #80
Reference in New Issue
Block a user
Delete Branch "feature/game-banish-wipe"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Что
Этап 5 сверки Правил и движка: освобождение имущества расы при административном изгнании (
banish).TurnWipeExtinctRacesобходил только не-Extinct расы, из-за чего изгнанная раса (флагExtinct,TTLне тронут) никогда не вайпилась: её планеты оставались занятыми, корабли висели, хотя сама раса уже не могла действовать. Теперь цикл идёт по всем расам и вайпит, если:TTL(бездействие/quit), илиbanish).Проверка наличия имущества делает повторные проходы идемпотентными.
wipeRaceи так соответствовал правилам исключения (корабли удаляются, планеты становятся необитаемыми, рабочая промышленность и запасы обнуляются, сырьё остаётся) — поведение лишь задокументировано.Документация
game/README.md: разделbanishтеперь описывает поведение (флаг + освобождение на следующем ходе) вместо «owned by the engine maintainers».game/rules.txtуже корректен («…удаляется из списка участвующих рас перед началом просчёта очередного хода»).ARCHITECTURE.mdпро banish ничего не утверждает.Тесты
go test ./game/...зелёный. Новые:TestBanishReleasesAssets(+ идемпотентность),TestIdleRaceWipedOnTimeout.