mtg_python_deckbuilder/docs/releases/v4.3.1.md

41 lines
2.3 KiB
Markdown
Raw Normal View History

2026-03-25 18:11:09 -07:00
# MTG Python Deckbuilder v4.3.1
## Summary
Adds Smart Land Bases — automatic land count and mana-base profile selection driven by the commander's CMC and color-pip density, with no configuration required.
## Added
### Smart Land Bases
When `ENABLE_SMART_LANDS=1` (default in Docker), the builder analyzes the commander profile at build time and automatically selects a land count, mana-base profile, and ETB tapped tolerance suited to the deck's speed and color complexity.
**Speed detection**
Commander CMC is used to classify the deck as fast (< 3.0), mid, or slow (> 4.0). The user's configured ideal land count is offset accordingly:
- Fast: 2 lands
- Mid: ±0
- Slow: +2 to +4, scaling with color count
**Profile selection**
Three mana-base profiles determine the ratio of basics to non-basics and the ETB tapped tolerance:
- *Basics-heavy* (~60% basics) — 12 color decks or low pip density
- *Balanced* — 23 colors with moderate pip density (standard)
- *Fixing-heavy* — 3+ colors or high pip density (≥15 double-pip or ≥3 triple-or-more-pip cards); minimizes basics in favor of duals and fetches
**ETB tapped tolerance**
Automatically tightened for fast decks (fewer taplands allowed) and loosened for slow decks, so the land selection step reinforces the speed profile.
**Budget override**
When Budget Mode is active with a low cap and 3+ colors, the profile is automatically forced to basics-heavy to avoid recommending expensive fetch/shock lands the deck cannot afford.
**Slot earmarking**
After the land target is set, non-land ideal counts (creatures, ramp, removal, wipes, card draw, protection) are scaled proportionally to fit within the remaining slots. This prevents the spell-fill phases from consuming slots reserved for lands.
**Backfill**
A final land step (Step 9) pads the deck with basics if any land phase fell short, guaranteeing the deck reaches the configured land target. A swap mechanism handles the 100-card safety clamp so backfill basics are never silently trimmed.
**Smart Lands notice**
The Land Summary section in the build output explains the chosen profile, land target, and reasoning in plain English.
**Overrides**
- `LAND_PROFILE=basics|mid|fixing` — force a specific profile, bypassing auto-detection
- `LAND_COUNT=<n>` — force a specific land count, bypassing curve calculation