From e304dd671b05baabd80a3eec44b1f672374a0ad6 Mon Sep 17 00:00:00 2001 From: istamarahsan Date: Fri, 24 Jan 2025 22:08:25 +0700 Subject: [PATCH] feat: define cards as resources --- card/card.gd | 6 ++++++ card/monster_card.gd | 8 ++++++++ card/support_card.gd | 5 +++++ card/support_card_effect.gd | 7 +++++++ card/support_card_effect_instance.gd | 5 +++++ data/cards/potion.tres | 16 ++++++++++++++++ data/support_effects/heal.tres | 6 ++++++ data/support_effects/swap_monst.er.tres | 7 +++++++ 8 files changed, 60 insertions(+) create mode 100644 card/card.gd create mode 100644 card/monster_card.gd create mode 100644 card/support_card.gd create mode 100644 card/support_card_effect.gd create mode 100644 card/support_card_effect_instance.gd create mode 100644 data/cards/potion.tres create mode 100644 data/support_effects/heal.tres create mode 100644 data/support_effects/swap_monst.er.tres diff --git a/card/card.gd b/card/card.gd new file mode 100644 index 0000000..80e6c1b --- /dev/null +++ b/card/card.gd @@ -0,0 +1,6 @@ +extends Resource +class_name Card + +var id: String: + get: + return resource_path.rsplit(".", true, 1)[0] diff --git a/card/monster_card.gd b/card/monster_card.gd new file mode 100644 index 0000000..0d5304e --- /dev/null +++ b/card/monster_card.gd @@ -0,0 +1,8 @@ +extends Card +class_name MonsterCard + +@export var rock: int = 0 +@export var paper: int = 0 +@export var scissors: int = 0 +@export var energy_cost: int = 1 +@export var base_health: int = 100 diff --git a/card/support_card.gd b/card/support_card.gd new file mode 100644 index 0000000..23d736e --- /dev/null +++ b/card/support_card.gd @@ -0,0 +1,5 @@ +extends Card +class_name SupportCard + +@export_enum("red", "green") var type = "green" +@export var effect: Array[SupportCardEffectInstance] = [null] diff --git a/card/support_card_effect.gd b/card/support_card_effect.gd new file mode 100644 index 0000000..a03d17c --- /dev/null +++ b/card/support_card_effect.gd @@ -0,0 +1,7 @@ +@tool +extends Resource +class_name SupportCardEffect + +var id: String: + get: + return resource_path.rsplit(".", true, 1)[0] diff --git a/card/support_card_effect_instance.gd b/card/support_card_effect_instance.gd new file mode 100644 index 0000000..e2ced1c --- /dev/null +++ b/card/support_card_effect_instance.gd @@ -0,0 +1,5 @@ +extends Resource +class_name SupportCardEffectInstance + +@export var magnitude: int +@export var effect: SupportCardEffect diff --git a/data/cards/potion.tres b/data/cards/potion.tres new file mode 100644 index 0000000..dc1ae47 --- /dev/null +++ b/data/cards/potion.tres @@ -0,0 +1,16 @@ +[gd_resource type="Resource" script_class="SupportCard" load_steps=5 format=3 uid="uid://bhk1nc02g0gtb"] + +[ext_resource type="Script" path="res://card/support_card_effect_instance.gd" id="1_fq8c7"] +[ext_resource type="Resource" uid="uid://h1ki1kya43v7" path="res://data/support_effects/heal.tres" id="2_3x5mu"] +[ext_resource type="Script" path="res://card/support_card.gd" id="2_44syi"] + +[sub_resource type="Resource" id="Resource_l7fsx"] +script = ExtResource("1_fq8c7") +magnitude = 3 +effect = ExtResource("2_3x5mu") + +[resource] +script = ExtResource("2_44syi") +type = null +effect = Array[ExtResource("1_fq8c7")]([SubResource("Resource_l7fsx")]) +id = "" diff --git a/data/support_effects/heal.tres b/data/support_effects/heal.tres new file mode 100644 index 0000000..68f851e --- /dev/null +++ b/data/support_effects/heal.tres @@ -0,0 +1,6 @@ +[gd_resource type="Resource" script_class="SupportCardEffect" load_steps=2 format=3 uid="uid://h1ki1kya43v7"] + +[ext_resource type="Script" path="res://card/support_card_effect.gd" id="1_exmke"] + +[resource] +script = ExtResource("1_exmke") diff --git a/data/support_effects/swap_monst.er.tres b/data/support_effects/swap_monst.er.tres new file mode 100644 index 0000000..b641e34 --- /dev/null +++ b/data/support_effects/swap_monst.er.tres @@ -0,0 +1,7 @@ +[gd_resource type="Resource" script_class="SupportCardEffect" load_steps=2 format=3 uid="uid://xinrslggye4"] + +[ext_resource type="Script" path="res://card/support_card_effect.gd" id="1_7awm5"] + +[resource] +script = ExtResource("1_7awm5") +id = "swap_monster"