fix(game): bomb in descending power order, collapse industry on wipe #79

Merged
developer merged 1 commits from feature/game-bombing-order into development 2026-05-31 06:59:44 +00:00
Owner

Что

Этап 4 сверки Правил и движка: бомбардировка (game/rules.txt, «Бомбардировка планет»).

  • Порядок по убыванию мощности: ProduceBombings сортирует атакующие расы по суммарной мощности бомбардировки (по убыванию) вместо случайного обхода map. Порядок влияет на то, чей удар попадёт в отчёт и сколько промышленности успеет перейти в сырьё до полного уничтожения населения. Вынесен общий хелпер bombingPower.
  • Вайп планеты: при обнулении населения планета становится необитаемой, рабочая промышленность (Industry) обнуляется, а запасы промышленности (Capital) и сырьё (Material) сохраняются для будущего колониста (раньше Free() сохранял и Industry).

Документация

game/rules.txt уже описывает оба пункта («…начиная с самой большой мощности бомбардировки…» и «Всё сырьё и все запасы промышленности… сохраняются… не остаётся… промышленности на их поддержание») — код приведён в соответствие. Форма отчёта бомбардировки не менялась.

Тесты

go test ./game/... зелёный. Новые: TestBombingOrderByPower, TestBombingWipeZeroesIndustry.

## Что Этап 4 сверки Правил и движка: бомбардировка (`game/rules.txt`, «Бомбардировка планет»). - **Порядок по убыванию мощности**: `ProduceBombings` сортирует атакующие расы по суммарной мощности бомбардировки (по убыванию) вместо случайного обхода map. Порядок влияет на то, чей удар попадёт в отчёт и сколько промышленности успеет перейти в сырьё до полного уничтожения населения. Вынесен общий хелпер `bombingPower`. - **Вайп планеты**: при обнулении населения планета становится необитаемой, рабочая промышленность (`Industry`) обнуляется, а запасы промышленности (`Capital`) и сырьё (`Material`) сохраняются для будущего колониста (раньше `Free()` сохранял и `Industry`). ## Документация `game/rules.txt` уже описывает оба пункта («…начиная с самой большой мощности бомбардировки…» и «Всё сырьё и все запасы промышленности… сохраняются… не остаётся… промышленности на их поддержание») — код приведён в соответствие. Форма отчёта бомбардировки не менялась. ## Тесты `go test ./game/...` зелёный. Новые: `TestBombingOrderByPower`, `TestBombingWipeZeroesIndustry`.
developer added 1 commit 2026-05-31 06:50:11 +00:00
fix(game): bomb in descending power order, collapse industry on wipe
Tests · Go / test (push) Successful in 1m57s
Tests · Integration / integration (pull_request) Successful in 1m46s
Tests · Go / test (pull_request) Successful in 2m2s
a01f39e4a7
Per the rules ("Бомбардировка планет"), a planet is bombed from the
strongest attacking power downwards, and a planet bombed to extinction
keeps its material and capital stockpiles but loses its working industry.

ProduceBombings now sorts attacking races by total bombing power
(descending) instead of iterating the attacker map in random order, and
on a wipe zeroes the planet's industry (Free already keeps capital and
material). bombingPower is extracted as a shared helper.

The rules already describe both, so no documentation change. Tests:
bombing order by power, and industry collapse with capital/material kept
on a wipe.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
owner approved these changes 2026-05-31 06:59:12 +00:00
developer merged commit 200236369f into development 2026-05-31 06:59:44 +00:00
developer deleted branch feature/game-bombing-order 2026-05-31 06:59:44 +00:00
Sign in to join this conversation.
No Reviewers
2 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: developer/galaxy-game#79