feat: Implement peasant pack generation algorithm in PackGeneratorService including slot logic for commons, uncommons, lands, and wildcards, and add related documentation.

This commit is contained in:
2025-12-16 23:05:47 +01:00
parent ea24b5a206
commit faa79906a8
5 changed files with 268 additions and 32 deletions

View File

@@ -0,0 +1,20 @@
# Peasant Algorithm Implementation
## Overview
Implemented the detailed "Peasant" pack generation algorithm in `PackGeneratorService.ts`.
## Changes
- Updated `buildSinglePack` in `PackGeneratorService.ts` to include specific logic for Peasant rarity mode.
- Implemented slot-based generation:
- Slots 1-6: Commons (Color Balanced)
- Slot 7: Common or "The List" (Simulated)
- Slots 8-11: Uncommons
- Slot 12: Land (20% Foil)
- Slot 13: Non-Foil Wildcard (Weighted by rarity)
- Slot 14: Foil Wildcard (Weighted by rarity)
- Slot 15: Marketing Token
## Notes
- Used existing helper methods `drawColorBalanced` and `drawUniqueCards`.
- Simulated "The List" logic using available Common/Uncommon pools as exact "The List" metadata might not be available in standard pools provided to the generator.
- Wildcard weights follow the specification (~49% C, ~24% U, ~13% R, ~13% M).

View File

@@ -0,0 +1,14 @@
# Multi-Expansion Selection
## Objective
Enhanced the "From Expansion" pack generation feature in the Cube Manager to allow users to select multiple expansions and use a searchable interface.
## Implementation Details
1. **Searchable Interface**: Replaced the simple set dropdown with a dedicated set selection UI featuring a search input for fuzzy filtering by set name or code.
2. **Multi-Select Capability**: Users can now check multiple sets from the filtered list.
3. **Frontend State Refactor**: Migrated `selectedSet` (string) to `selectedSets` (string array) in `CubeManager.tsx`.
4. **Fetch Logic Update**: Updated `fetchAndParse` to iterate through all selected sets, fetching card data for each sequentially and combining the results into the parse pool.
5. **Generation Logic**: The existing `generateBoosterBox` logic now naturally consumes the combined pool of cards from multiple sets, effectively allowing for "Chaos Drafts" or custom mixed-set environments based on the user's selection.
## Status
Completed. The Cube Manager UI now supports advanced set selection scenarios.