mtg_python_deckbuilder/docs/releases/v4.3.1.md
2026-03-25 18:11:09 -07:00

40 lines
2.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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