27
resources/data/boosters/booster.gd
Normal file
27
resources/data/boosters/booster.gd
Normal file
@@ -0,0 +1,27 @@
|
||||
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
|
Reference in New Issue
Block a user