extends Resource class_name Booster @export var name: String @export var counts: Dictionary = { "Common": 4, "Rare": 1 } @export var cards: Array[Card] = [] func draw() -> Array[Card]: var res: Array[Card] = [] # Group cards by rarity var rarity_pool: Dictionary = {} for card in cards: if not rarity_pool.has(card.rarity): rarity_pool[card.rarity] = [] rarity_pool[card.rarity].append(card) # Draw based on rarity count for rarity in counts.keys(): var count = counts[rarity] var pool = rarity_pool.get(rarity, []) for i in range(min(count, pool.size())): res.append(pool.pick_random()) return res