From 1796d9e47db315690f838f5918a5e04e3ea4dfb3 Mon Sep 17 00:00:00 2001 From: luke358 Date: Thu, 21 May 2026 16:04:27 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E5=88=9B=E5=BB=BA=20upgrade=20?= =?UTF-8?q?=E6=95=B0=E6=8D=AEresource=EF=BC=8C=E7=BC=96=E5=86=99upgrade=5F?= =?UTF-8?q?panel.gd=E5=8A=A8=E6=80=81=E7=94=9F=E6=88=90=E5=8D=87=E7=BA=A7?= =?UTF-8?q?=E5=8D=A1=E7=89=87?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../items/upgrades/data/upgrade_block_1.tres | 14 ++++++++++++ .../items/upgrades/data/upgrade_damage_1.tres | 14 ++++++++++++ .../upgrades/data/upgrade_harvesting_1.tres | 14 ++++++++++++ .../items/upgrades/data/upgrade_health_1.tres | 14 ++++++++++++ .../upgrades/data/upgrade_hp_regen_1.tres | 14 ++++++++++++ .../upgrades/data/upgrade_life_steal_1.tres | 14 ++++++++++++ .../items/upgrades/data/upgrade_luck_3.tres | 14 ++++++++++++ .../items/upgrades/data/upgrade_speed_5.tres | 14 ++++++++++++ resources/items/upgrades/item_upgrade.gd | 11 ++++++++++ resources/items/upgrades/item_upgrade.gd.uid | 1 + scenes/ui/upgrade_card/upgrade_card.gd | 17 +++++++++----- scenes/ui/upgrade_card/upgrade_card.tscn | 3 +++ scenes/ui/upgrade_panel/upgrade_panel.gd | 22 ++++++++++++++----- scenes/ui/upgrade_panel/upgrade_panel.tscn | 21 +++++++++++++----- 14 files changed, 170 insertions(+), 17 deletions(-) create mode 100644 resources/items/upgrades/data/upgrade_block_1.tres create mode 100644 resources/items/upgrades/data/upgrade_damage_1.tres create mode 100644 resources/items/upgrades/data/upgrade_harvesting_1.tres create mode 100644 resources/items/upgrades/data/upgrade_health_1.tres create mode 100644 resources/items/upgrades/data/upgrade_hp_regen_1.tres create mode 100644 resources/items/upgrades/data/upgrade_life_steal_1.tres create mode 100644 resources/items/upgrades/data/upgrade_luck_3.tres create mode 100644 resources/items/upgrades/data/upgrade_speed_5.tres create mode 100644 resources/items/upgrades/item_upgrade.gd create mode 100644 resources/items/upgrades/item_upgrade.gd.uid diff --git a/resources/items/upgrades/data/upgrade_block_1.tres b/resources/items/upgrades/data/upgrade_block_1.tres new file mode 100644 index 0000000..a2b2733 --- /dev/null +++ b/resources/items/upgrades/data/upgrade_block_1.tres @@ -0,0 +1,14 @@ +[gd_resource type="Resource" script_class="ItemUpgrade" format=3 uid="uid://dfvsbd5jl31pt"] + +[ext_resource type="Texture2D" uid="uid://byg3400qlcem6" path="res://assets/sprites/Upgrades/8.png" id="1_worpx"] +[ext_resource type="Script" uid="uid://ti87pqqmd7ro" path="res://resources/items/upgrades/item_upgrade.gd" id="1_ynscf"] + +[resource] +script = ExtResource("1_ynscf") +value = 1.0 +descriptin = "+ 1%" +stat_id = "block_chance" +item_name = "Block" +item_icon = ExtResource("1_worpx") +item_type = 1 +metadata/_custom_type_script = "uid://ti87pqqmd7ro" diff --git a/resources/items/upgrades/data/upgrade_damage_1.tres b/resources/items/upgrades/data/upgrade_damage_1.tres new file mode 100644 index 0000000..0b0b29e --- /dev/null +++ b/resources/items/upgrades/data/upgrade_damage_1.tres @@ -0,0 +1,14 @@ +[gd_resource type="Resource" script_class="ItemUpgrade" format=3 uid="uid://htj45csm68fo"] + +[ext_resource type="Texture2D" uid="uid://dn68qq5evmvwa" path="res://assets/sprites/Upgrades/12.png" id="1_6nlt1"] +[ext_resource type="Script" uid="uid://ti87pqqmd7ro" path="res://resources/items/upgrades/item_upgrade.gd" id="2_b4rq5"] + +[resource] +script = ExtResource("2_b4rq5") +value = 1.0 +descriptin = "+ 1" +stat_id = "damage" +item_name = "Damage" +item_icon = ExtResource("1_6nlt1") +item_type = 1 +metadata/_custom_type_script = "uid://ti87pqqmd7ro" diff --git a/resources/items/upgrades/data/upgrade_harvesting_1.tres b/resources/items/upgrades/data/upgrade_harvesting_1.tres new file mode 100644 index 0000000..f3120af --- /dev/null +++ b/resources/items/upgrades/data/upgrade_harvesting_1.tres @@ -0,0 +1,14 @@ +[gd_resource type="Resource" script_class="ItemUpgrade" format=3 uid="uid://bwxjxrmg4hkfx"] + +[ext_resource type="Texture2D" uid="uid://k3qfoarie5u0" path="res://assets/sprites/Upgrades/7.png" id="1_wtmxu"] +[ext_resource type="Script" uid="uid://ti87pqqmd7ro" path="res://resources/items/upgrades/item_upgrade.gd" id="2_hlrix"] + +[resource] +script = ExtResource("2_hlrix") +value = 1.0 +descriptin = "+ 1" +stat_id = "harvesting" +item_name = "Harvesting" +item_icon = ExtResource("1_wtmxu") +item_type = 1 +metadata/_custom_type_script = "uid://ti87pqqmd7ro" diff --git a/resources/items/upgrades/data/upgrade_health_1.tres b/resources/items/upgrades/data/upgrade_health_1.tres new file mode 100644 index 0000000..26d6ae1 --- /dev/null +++ b/resources/items/upgrades/data/upgrade_health_1.tres @@ -0,0 +1,14 @@ +[gd_resource type="Resource" script_class="ItemUpgrade" format=3 uid="uid://d2x2dbdfls585"] + +[ext_resource type="Texture2D" uid="uid://513vy8yuf2c3" path="res://assets/sprites/Upgrades/6.png" id="1_x3r4g"] +[ext_resource type="Script" uid="uid://ti87pqqmd7ro" path="res://resources/items/upgrades/item_upgrade.gd" id="2_fqyel"] + +[resource] +script = ExtResource("2_fqyel") +value = 1.0 +descriptin = "+ 1" +stat_id = "health" +item_name = "Health" +item_icon = ExtResource("1_x3r4g") +item_type = 1 +metadata/_custom_type_script = "uid://ti87pqqmd7ro" diff --git a/resources/items/upgrades/data/upgrade_hp_regen_1.tres b/resources/items/upgrades/data/upgrade_hp_regen_1.tres new file mode 100644 index 0000000..f9d0391 --- /dev/null +++ b/resources/items/upgrades/data/upgrade_hp_regen_1.tres @@ -0,0 +1,14 @@ +[gd_resource type="Resource" script_class="ItemUpgrade" format=3 uid="uid://3pjreo5epl8m"] + +[ext_resource type="Texture2D" uid="uid://ceccthrgto2um" path="res://assets/sprites/Upgrades/13.png" id="1_spl5c"] +[ext_resource type="Script" uid="uid://ti87pqqmd7ro" path="res://resources/items/upgrades/item_upgrade.gd" id="2_8r7f1"] + +[resource] +script = ExtResource("2_8r7f1") +value = 1.0 +descriptin = "+ 1" +stat_id = "hp_regen" +item_name = "HP Regen" +item_icon = ExtResource("1_spl5c") +item_type = 1 +metadata/_custom_type_script = "uid://ti87pqqmd7ro" diff --git a/resources/items/upgrades/data/upgrade_life_steal_1.tres b/resources/items/upgrades/data/upgrade_life_steal_1.tres new file mode 100644 index 0000000..ad1ae8b --- /dev/null +++ b/resources/items/upgrades/data/upgrade_life_steal_1.tres @@ -0,0 +1,14 @@ +[gd_resource type="Resource" script_class="ItemUpgrade" format=3 uid="uid://cq276vsvx4uld"] + +[ext_resource type="Texture2D" uid="uid://dac1qxk0rktmg" path="res://assets/sprites/Upgrades/11.png" id="1_y6yk3"] +[ext_resource type="Script" uid="uid://ti87pqqmd7ro" path="res://resources/items/upgrades/item_upgrade.gd" id="2_cmyrk"] + +[resource] +script = ExtResource("2_cmyrk") +value = 5.0 +descriptin = "+ 5" +stat_id = "speed" +item_name = "Speed" +item_icon = ExtResource("1_y6yk3") +item_type = 1 +metadata/_custom_type_script = "uid://ti87pqqmd7ro" diff --git a/resources/items/upgrades/data/upgrade_luck_3.tres b/resources/items/upgrades/data/upgrade_luck_3.tres new file mode 100644 index 0000000..c0f71c3 --- /dev/null +++ b/resources/items/upgrades/data/upgrade_luck_3.tres @@ -0,0 +1,14 @@ +[gd_resource type="Resource" script_class="ItemUpgrade" format=3 uid="uid://cgusn8qne4kjl"] + +[ext_resource type="Texture2D" uid="uid://dxl550mv1d5l6" path="res://assets/sprites/Upgrades/3.png" id="1_co2m3"] +[ext_resource type="Script" uid="uid://ti87pqqmd7ro" path="res://resources/items/upgrades/item_upgrade.gd" id="2_qhb0c"] + +[resource] +script = ExtResource("2_qhb0c") +value = 1.0 +descriptin = "+ 1%" +stat_id = "life_steal" +item_name = "Life Steal" +item_icon = ExtResource("1_co2m3") +item_type = 1 +metadata/_custom_type_script = "uid://ti87pqqmd7ro" diff --git a/resources/items/upgrades/data/upgrade_speed_5.tres b/resources/items/upgrades/data/upgrade_speed_5.tres new file mode 100644 index 0000000..e62164d --- /dev/null +++ b/resources/items/upgrades/data/upgrade_speed_5.tres @@ -0,0 +1,14 @@ +[gd_resource type="Resource" script_class="ItemUpgrade" format=3 uid="uid://buvdtarq3qu2j"] + +[ext_resource type="Texture2D" uid="uid://dxl550mv1d5l6" path="res://assets/sprites/Upgrades/3.png" id="1_2jex5"] +[ext_resource type="Script" uid="uid://ti87pqqmd7ro" path="res://resources/items/upgrades/item_upgrade.gd" id="2_dk47u"] + +[resource] +script = ExtResource("2_dk47u") +value = 1.0 +descriptin = "+ 1%" +stat_id = "life_steal" +item_name = "Life Steal" +item_icon = ExtResource("1_2jex5") +item_type = 1 +metadata/_custom_type_script = "uid://ti87pqqmd7ro" diff --git a/resources/items/upgrades/item_upgrade.gd b/resources/items/upgrades/item_upgrade.gd new file mode 100644 index 0000000..25d55c5 --- /dev/null +++ b/resources/items/upgrades/item_upgrade.gd @@ -0,0 +1,11 @@ +extends ItemBase +class_name ItemUpgrade + +@export var value: float +@export var descriptin: String +@export var stat_id: String + +func apply_upgrade() -> void: + var current_value := Global.player.stats.get(stat_id) as float + var new_value := float(value) + float(current_value) + Global.player.stats.set(stat_id, new_value) diff --git a/resources/items/upgrades/item_upgrade.gd.uid b/resources/items/upgrades/item_upgrade.gd.uid new file mode 100644 index 0000000..8fd79e5 --- /dev/null +++ b/resources/items/upgrades/item_upgrade.gd.uid @@ -0,0 +1 @@ +uid://ti87pqqmd7ro diff --git a/scenes/ui/upgrade_card/upgrade_card.gd b/scenes/ui/upgrade_card/upgrade_card.gd index 310360f..abdd506 100644 --- a/scenes/ui/upgrade_card/upgrade_card.gd +++ b/scenes/ui/upgrade_card/upgrade_card.gd @@ -1,11 +1,16 @@ extends Panel class_name UpgradeCard -# Called when the node enters the scene tree for the first time. -func _ready() -> void: - pass # Replace with function body. +@export var item_data: ItemUpgrade: set = _set_data + +@onready var item_icon: TextureRect = %Icon +@onready var item_name: Label = %Name +@onready var item_description: Label = %Description -# Called every frame. 'delta' is the elapsed time since the previous frame. -func _process(delta: float) -> void: - pass +func _set_data(value: ItemUpgrade) -> void: + item_data = value + item_icon.texture = item_data.item_icon + item_name.text = item_data.item_name + item_description.text = item_data.descriptin + diff --git a/scenes/ui/upgrade_card/upgrade_card.tscn b/scenes/ui/upgrade_card/upgrade_card.tscn index 24f1928..432d59c 100644 --- a/scenes/ui/upgrade_card/upgrade_card.tscn +++ b/scenes/ui/upgrade_card/upgrade_card.tscn @@ -31,6 +31,7 @@ theme_override_constants/margin_bottom = 8 layout_mode = 2 [node name="Icon" type="TextureRect" parent="MarginContainer/Control" unique_id=1868739971] +unique_name_in_owner = true custom_minimum_size = Vector2(100, 100) layout_mode = 0 offset_right = 40.0 @@ -40,6 +41,7 @@ expand_mode = 1 stretch_mode = 5 [node name="Name" type="Label" parent="MarginContainer/Control" unique_id=1952735558] +unique_name_in_owner = true layout_mode = 0 offset_left = 100.0 offset_top = 10.0 @@ -50,6 +52,7 @@ label_settings = SubResource("LabelSettings_mkexl") vertical_alignment = 1 [node name="Description" type="Label" parent="MarginContainer/Control" unique_id=1620881988] +unique_name_in_owner = true modulate = Color(0.827451, 0.9098039, 0.17254902, 1) layout_mode = 0 offset_left = 100.0 diff --git a/scenes/ui/upgrade_panel/upgrade_panel.gd b/scenes/ui/upgrade_panel/upgrade_panel.gd index eda3264..733569f 100644 --- a/scenes/ui/upgrade_panel/upgrade_panel.gd +++ b/scenes/ui/upgrade_panel/upgrade_panel.gd @@ -1,11 +1,21 @@ extends Panel class_name UpgradePanel -# Called when the node enters the scene tree for the first time. +const UPGRADE_CARD_SCENE = preload("uid://bfohai4xgom8w") + +@export var upgrade_list: Array[ItemUpgrade] + +@onready var items_container: HBoxContainer = %ItemsContainer + func _ready() -> void: - pass # Replace with function body. + load_upgrades() - -# Called every frame. 'delta' is the elapsed time since the previous frame. -func _process(delta: float) -> void: - pass +func load_upgrades() -> void: + for child in items_container.get_children(): + child.queue_free() + + for i in 4: + var random_upg := upgrade_list.pick_random() as ItemUpgrade + var card_instance := UPGRADE_CARD_SCENE.instantiate() as UpgradeCard + items_container.add_child(card_instance) + card_instance.item_data = random_upg diff --git a/scenes/ui/upgrade_panel/upgrade_panel.tscn b/scenes/ui/upgrade_panel/upgrade_panel.tscn index 4891954..e683f0a 100644 --- a/scenes/ui/upgrade_panel/upgrade_panel.tscn +++ b/scenes/ui/upgrade_panel/upgrade_panel.tscn @@ -3,6 +3,15 @@ [ext_resource type="PackedScene" uid="uid://cp1haphh1gj8t" path="res://scenes/ui/stats_container/stats_container.tscn" id="1_6gbsu"] [ext_resource type="PackedScene" uid="uid://bfohai4xgom8w" path="res://scenes/ui/upgrade_card/upgrade_card.tscn" id="1_52meh"] [ext_resource type="Script" uid="uid://ybrs54qn38co" path="res://scenes/ui/upgrade_panel/upgrade_panel.gd" id="1_l8hix"] +[ext_resource type="Script" uid="uid://ti87pqqmd7ro" path="res://resources/items/upgrades/item_upgrade.gd" id="2_aghkh"] +[ext_resource type="Resource" uid="uid://dfvsbd5jl31pt" path="res://resources/items/upgrades/data/upgrade_block_1.tres" id="3_evmld"] +[ext_resource type="Resource" uid="uid://htj45csm68fo" path="res://resources/items/upgrades/data/upgrade_damage_1.tres" id="4_t2jfx"] +[ext_resource type="Resource" uid="uid://bwxjxrmg4hkfx" path="res://resources/items/upgrades/data/upgrade_harvesting_1.tres" id="5_cehub"] +[ext_resource type="Resource" uid="uid://d2x2dbdfls585" path="res://resources/items/upgrades/data/upgrade_health_1.tres" id="6_078e8"] +[ext_resource type="Resource" uid="uid://3pjreo5epl8m" path="res://resources/items/upgrades/data/upgrade_hp_regen_1.tres" id="7_jevkw"] +[ext_resource type="Resource" uid="uid://cq276vsvx4uld" path="res://resources/items/upgrades/data/upgrade_life_steal_1.tres" id="8_h4hr2"] +[ext_resource type="Resource" uid="uid://cgusn8qne4kjl" path="res://resources/items/upgrades/data/upgrade_luck_3.tres" id="9_lndip"] +[ext_resource type="Resource" uid="uid://buvdtarq3qu2j" path="res://resources/items/upgrades/data/upgrade_speed_5.tres" id="10_23ymm"] [sub_resource type="LabelSettings" id="LabelSettings_52meh"] font_size = 120 @@ -14,6 +23,7 @@ anchor_bottom = 1.0 grow_horizontal = 2 grow_vertical = 2 script = ExtResource("1_l8hix") +upgrade_list = Array[ExtResource("2_aghkh")]([ExtResource("3_evmld"), ExtResource("4_t2jfx"), ExtResource("5_cehub"), ExtResource("6_078e8"), ExtResource("7_jevkw"), ExtResource("8_h4hr2"), ExtResource("9_lndip"), ExtResource("10_23ymm")]) [node name="MarginContainer" type="MarginContainer" parent="." unique_id=717346648] layout_mode = 1 @@ -39,20 +49,21 @@ text = "wave completed" label_settings = SubResource("LabelSettings_52meh") horizontal_alignment = 1 -[node name="HBoxContainer" type="HBoxContainer" parent="MarginContainer/HBoxContainer/VBoxContainer" unique_id=1404961884] +[node name="ItemsContainer" type="HBoxContainer" parent="MarginContainer/HBoxContainer/VBoxContainer" unique_id=1404961884] +unique_name_in_owner = true layout_mode = 2 theme_override_constants/separation = 24 -[node name="UpgradeCard" parent="MarginContainer/HBoxContainer/VBoxContainer/HBoxContainer" unique_id=816521847 instance=ExtResource("1_52meh")] +[node name="UpgradeCard" parent="MarginContainer/HBoxContainer/VBoxContainer/ItemsContainer" unique_id=816521847 instance=ExtResource("1_52meh")] layout_mode = 2 -[node name="UpgradeCard2" parent="MarginContainer/HBoxContainer/VBoxContainer/HBoxContainer" unique_id=1406935808 instance=ExtResource("1_52meh")] +[node name="UpgradeCard2" parent="MarginContainer/HBoxContainer/VBoxContainer/ItemsContainer" unique_id=1406935808 instance=ExtResource("1_52meh")] layout_mode = 2 -[node name="UpgradeCard3" parent="MarginContainer/HBoxContainer/VBoxContainer/HBoxContainer" unique_id=541592257 instance=ExtResource("1_52meh")] +[node name="UpgradeCard3" parent="MarginContainer/HBoxContainer/VBoxContainer/ItemsContainer" unique_id=541592257 instance=ExtResource("1_52meh")] layout_mode = 2 -[node name="UpgradeCard4" parent="MarginContainer/HBoxContainer/VBoxContainer/HBoxContainer" unique_id=813421337 instance=ExtResource("1_52meh")] +[node name="UpgradeCard4" parent="MarginContainer/HBoxContainer/VBoxContainer/ItemsContainer" unique_id=813421337 instance=ExtResource("1_52meh")] layout_mode = 2 [node name="StatsContainer" parent="MarginContainer/HBoxContainer" unique_id=827713059 instance=ExtResource("1_6gbsu")]