Skip to content

Make adaptation unlock richer harvests (0.29.2) - #176

Merged
fardavide merged 2 commits into
mainfrom
fix/adaptation-harvesting-balance
Sep 26, 2026
Merged

fardavide merged 2 commits into
mainfrom
fix/adaptation-harvesting-balance

Conversation

@fardavide

Copy link
Copy Markdown
Owner

Planets marked blocked could still be harvested in both 0.28 and 0.29. Harvesting now requires every listed adaptation level, enforced in core, the Galaxy caption and the shared dispatch sheet.

Difficult worlds now reward the research:

  • Deposit size and harvesting rate scale by 1 + (T² + G² + A²) / 12, using the planet's absolute requirements. Gravitic 12 alone gives 13×; zero-adaptation worlds keep their old rewards.
  • Locked planets show resource quantities before unlocking.
  • New probes take twice as long: 60m + 2m per distance unit. Charting stays at 30 systems and hour marks follow the new clock.
  • Existing flights keep their saved cargo and deadlines; depleted planets keep their stored resources and refill toward the new cap.
  • Version 0.29.2 includes English and Italian release notes and a regenerated iOS project.

Validation: full Gradle build, screenshot verification and simulation pass locally. Regression tests cover all adaptation gates, both dispatch entry points, server enforcement, saved games, refill and large-fleet arithmetic. Changed screenshots were visually reviewed before recording.

The 14-day simulation strongly rewards adaptation investment on the measured seed. This is an initial playtest balance, not evidence of an optimal strategy; the setup and results are recorded in .ai/docs/balance-log.md, round 36.

@fardavide fardavide added the bug Something is broken label Sep 26, 2026
@github-actions

github-actions Bot commented Sep 26, 2026 •

Copy link
Copy Markdown
Contributor

Test coverage

Test kind Line Branch Tests
Unit 96.0% ±0 89.1% ±0 2673 ▲ +31
Integration 41.7% ▲ +0.9 29.3% ▲ +0.5 211 ▲ +1
Screenshot 96.1% ±0 66.0% ±0 227 ▲ +2
Behaviour 94.4% ±0 74.6% ▲ +0.1 494 ▲ +4
All tests 98.6% ±0 87.1% ±0 3605 ▲ +38

✅ Coverage gate passed — all 10 values in the table hold at or above the last main run.

265 uncovered lines across the project — 2 more than the baseline.

Line coverage by package, per test kind
Package Unit Integration Screenshot Behaviour All tests
dev.fardavide.oltre.client 68% 0% 84% 95% 96.4% ±0
dev.fardavide.oltre.client.alliance.data 90% 95% — 90% 100.0% ±0
dev.fardavide.oltre.client.alliance.domain 100% 19% — 79% 100.0% ±0
dev.fardavide.oltre.client.alliance.presentation 99% — — 99% 99.1% ±0
dev.fardavide.oltre.client.alliance.ui — — 99% 98% 99.5% ±0
dev.fardavide.oltre.client.auth.data 70% 82% — — 88.4% ±0
dev.fardavide.oltre.client.auth.presentation 100% — — 99% 100.0% ±0
dev.fardavide.oltre.client.auth.ui — — 100% 96% 100.0% ±0
dev.fardavide.oltre.client.changelog.domain 100% 14% — 82% 100.0% ±0
dev.fardavide.oltre.client.changelog.presentation 100% — — 100% 100.0% ±0
dev.fardavide.oltre.client.changelog.ui — — 95% 97% 100.0% ±0
dev.fardavide.oltre.client.colony.presentation 97% — — 96% 97.4% ±0
dev.fardavide.oltre.client.colony.ui — — 98% 99% 99.0% ±0
dev.fardavide.oltre.client.debug.data 100% 0% — 0% 100.0% ±0
dev.fardavide.oltre.client.debug.domain 100% 0% — 77% 100.0% ±0
dev.fardavide.oltre.client.debug.ui — — — 100% 100.0% ±0
dev.fardavide.oltre.client.design.component — 0% 99% 99% 99.5% ±0
dev.fardavide.oltre.client.design.core 71% 0% 100% 100% 100.0% ±0
dev.fardavide.oltre.client.design.format 100% 0% 79% 93% 100.0% ±0
dev.fardavide.oltre.client.design.icon — 0% 100% 100% 100.0% ±0
dev.fardavide.oltre.client.design.text 100% 0% — — 99.7% ±0
dev.fardavide.oltre.client.dispatch.domain 100% 0% — 100% 100.0% ±0
dev.fardavide.oltre.client.dispatch.presentation 99% — — 99% 99.5% ±0
dev.fardavide.oltre.client.dispatch.ui — — 99% 100% 99.6% ±0
dev.fardavide.oltre.client.fleets.presentation 99% — — 97% 99.3% ±0
dev.fardavide.oltre.client.fleets.ui — — 99% 100% 99.7% ±0
dev.fardavide.oltre.client.galaxy.presentation 99% — — 99% 99.5% ▼ -0.2
dev.fardavide.oltre.client.galaxy.ui — — 93% 99% 99.6% ±0
dev.fardavide.oltre.client.net.data 98% 80% — 45% 98.2% ±0
dev.fardavide.oltre.client.net.domain 100% 0% — 100% 100.0% ±0
dev.fardavide.oltre.client.notifications.data 100% 0% — 86% 100.0% ±0
dev.fardavide.oltre.client.player.presentation 94% — — 93% 95.7% ±0
dev.fardavide.oltre.client.player.ui — — 100% 100% 100.0% ±0
dev.fardavide.oltre.client.research.presentation 97% — — 93% 97.3% ±0
dev.fardavide.oltre.client.research.ui — — 92% 98% 98.7% ±0
dev.fardavide.oltre.client.save.data 56% 75% — 53% 75.3% ±0
dev.fardavide.oltre.client.settings.presentation 100% — — 96% 100.0% ±0
dev.fardavide.oltre.client.settings.ui — — 100% 100% 100.0% ±0
dev.fardavide.oltre.client.shipyard.presentation 100% — — 99% 100.0% ±0
dev.fardavide.oltre.client.shipyard.ui — — 97% 99% 99.4% ±0
dev.fardavide.oltre.client.tilt.data 4% 0% — 4% 3.7% ±0
dev.fardavide.oltre.client.tilt.domain 100% 0% — 7% 100.0% ±0
dev.fardavide.oltre.client.world.ui — — 100% 80% 100.0% ±0
dev.fardavide.oltre.core 99% 54% — 92% 98.7% ±0
dev.fardavide.oltre.protocol 100% 89% — 72% 100.0% ±0
dev.fardavide.oltre.server 93% 83% — — 98.0% ±0

Δ against main @ d7a93c2.

No line or branch number in the table at the top may fall below the last main run — every row, not just the total. The per-package breakdown is a diagnostic and is not gated. Categories are class-name suffixes; see the test-coverage skill.

@fardavide
fardavide merged commit ba409c8 into main Sep 26, 2026
5 checks passed
@fardavide
fardavide deleted the fix/adaptation-harvesting-balance branch September 26, 2026 13:38
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bug Something is broken

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant