mirror of
https://github.com/mwisnowski/mtg_python_deckbuilder.git
synced 2026-04-05 20:57:16 +02:00
41 lines
2.3 KiB
Markdown
41 lines
2.3 KiB
Markdown
|
|
# 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) — 1–2 color decks or low pip density
|
|||
|
|
- *Balanced* — 2–3 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
|