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
|
1
resources/data/boosters/booster.gd.uid
Normal file
1
resources/data/boosters/booster.gd.uid
Normal file
@@ -0,0 +1 @@
|
||||
uid://d2vr5ocvib663
|
15
resources/data/boosters/new_base_booster.tres
Normal file
15
resources/data/boosters/new_base_booster.tres
Normal file
@@ -0,0 +1,15 @@
|
||||
[gd_resource type="Resource" script_class="Booster" load_steps=4 format=3 uid="uid://c63rkr0cudnom"]
|
||||
|
||||
[ext_resource type="Script" uid="uid://5pqr71r8dv5q" path="res://resources/data/cards/card.gd" id="1_uvxrb"]
|
||||
[ext_resource type="Script" uid="uid://d2vr5ocvib663" path="res://resources/data/boosters/booster.gd" id="2_1ex0h"]
|
||||
[ext_resource type="Resource" uid="uid://bsto1qwayy1sk" path="res://resources/data/cards/water_slime.tres" id="2_hsyr7"]
|
||||
|
||||
[resource]
|
||||
script = ExtResource("2_1ex0h")
|
||||
name = "Base Booster"
|
||||
counts = {
|
||||
"Common": 4,
|
||||
"Rare": 1
|
||||
}
|
||||
cards = Array[ExtResource("1_uvxrb")]([ExtResource("2_hsyr7")])
|
||||
metadata/_custom_type_script = "uid://d2vr5ocvib663"
|
7
resources/data/cards/card.gd
Normal file
7
resources/data/cards/card.gd
Normal file
@@ -0,0 +1,7 @@
|
||||
extends Resource
|
||||
class_name Card
|
||||
|
||||
@export var name: String
|
||||
@export var hp: int
|
||||
@export var damage: int
|
||||
@export var rarity: String = "Common"
|
1
resources/data/cards/card.gd.uid
Normal file
1
resources/data/cards/card.gd.uid
Normal file
@@ -0,0 +1 @@
|
||||
uid://5pqr71r8dv5q
|
11
resources/data/cards/king_slime.tres
Normal file
11
resources/data/cards/king_slime.tres
Normal file
@@ -0,0 +1,11 @@
|
||||
[gd_resource type="Resource" script_class="Card" load_steps=2 format=3 uid="uid://r20ullywveey"]
|
||||
|
||||
[ext_resource type="Script" uid="uid://5pqr71r8dv5q" path="res://resources/data/cards/card.gd" id="1_w886e"]
|
||||
|
||||
[resource]
|
||||
script = ExtResource("1_w886e")
|
||||
name = "Water Slime"
|
||||
hp = 80
|
||||
damage = 40
|
||||
rarity = "Rare"
|
||||
metadata/_custom_type_script = "uid://5pqr71r8dv5q"
|
10
resources/data/cards/water_slime.tres
Normal file
10
resources/data/cards/water_slime.tres
Normal file
@@ -0,0 +1,10 @@
|
||||
[gd_resource type="Resource" script_class="Card" load_steps=2 format=3 uid="uid://bsto1qwayy1sk"]
|
||||
|
||||
[ext_resource type="Script" uid="uid://5pqr71r8dv5q" path="res://resources/data/cards/card.gd" id="1_rk1da"]
|
||||
|
||||
[resource]
|
||||
script = ExtResource("1_rk1da")
|
||||
name = "Water Slime"
|
||||
hp = 40
|
||||
damage = 10
|
||||
metadata/_custom_type_script = "uid://5pqr71r8dv5q"
|
Reference in New Issue
Block a user