feat: base

Signed-off-by: Avior <github@avior.me>
This commit is contained in:
2025-07-15 00:46:55 +02:00
commit bcfc8fbc81
20 changed files with 498 additions and 0 deletions

View 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

View File

@@ -0,0 +1 @@
uid://d2vr5ocvib663

View 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"

View 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"

View File

@@ -0,0 +1 @@
uid://5pqr71r8dv5q

View 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"

View 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"