Changelog entry
Chain Offensives — milestone bonuses and chain-status API (P2.1B)
2026-03-20
- Alliance-vs-alliance wars now support Chain Offensive momentum: when an alliance lands at least one successful attack against a target alliance in a given tick, a `ChainTracker` increments their consecutive-tick count.
- Milestone tiers apply damage and loot bonuses to conventional attacks (non-missile/nuke) when a chain is active: tier 1 at 10 consecutive ticks (+10% dmg/+5% loot), tier 2 at 25 (+20%/+10%), tier 3 at 50 (+35%/+15%), and tier 4 at 100 (+50%/+20% cap).
- If a full tick passes with no attack, the chain resets to zero and enters a 6-tick cooldown before a new streak can start.
- All bonuses and thresholds are config-driven (`CHAIN_OFFENSIVE_MILESTONES`, `CHAIN_OFFENSIVE_COOLDOWN_TICKS`).
- New API endpoint `GET /api/alliances/[id]/chain-status`: own-alliance view returns full streak data (count, tier, ticks since last attack, bonuses); target-alliance view returns tier only (not exact count).
- This is a simulation/data change; no UI surface is included in this slice (P2.1C delivers the UI).