From 117d23dc4e87e4d23a039753eadc9997e5397505 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gerard=20Gasc=C3=B3n?= Date: Fri, 18 Apr 2025 00:28:50 +0200 Subject: [PATCH] feat: dragon list now with correct outfits --- scenes/dragon_list/dragon/dragon.tscn | 10 ++++- .../dragon_list/dragon/dragon_list_entry.gd | 38 +++++++++++++------ scenes/dragon_list/dragon_list_view.gd | 1 + 3 files changed, 37 insertions(+), 12 deletions(-) diff --git a/scenes/dragon_list/dragon/dragon.tscn b/scenes/dragon_list/dragon/dragon.tscn index 46e8501..df71cc7 100644 --- a/scenes/dragon_list/dragon/dragon.tscn +++ b/scenes/dragon_list/dragon/dragon.tscn @@ -1,10 +1,14 @@ -[gd_scene load_steps=6 format=3 uid="uid://cq3orf2ktmel0"] +[gd_scene load_steps=10 format=3 uid="uid://cq3orf2ktmel0"] [ext_resource type="SpriteFrames" uid="uid://duxxw4mfxql3c" path="res://assets/animations/dragons/verd.tres" id="1_o3jkx"] [ext_resource type="Script" uid="uid://b7knkhjgtdy4l" path="res://scenes/dragon_list/dragon/dragon_list_entry.gd" id="2_uckob"] [ext_resource type="SpriteFrames" uid="uid://ccxyplt2t7t6y" path="res://assets/animations/hats/barretina.tres" id="3_jl6px"] +[ext_resource type="Resource" uid="uid://c03ejnvavmcj5" path="res://assets/outfits/dragons.tres" id="3_jpsrj"] +[ext_resource type="Resource" uid="uid://x063x858re3f" path="res://assets/outfits/hats.tres" id="4_58xh2"] [ext_resource type="SpriteFrames" uid="uid://dsxhfu2ekw7j" path="res://assets/animations/shirts/traje.tres" id="4_v3rc7"] +[ext_resource type="Resource" uid="uid://bsydervvb1jpe" path="res://assets/outfits/shirts.tres" id="5_6mheo"] [ext_resource type="SpriteFrames" uid="uid://c5rqqy7b5ihi5" path="res://assets/animations/decor/rosa.tres" id="5_jpsrj"] +[ext_resource type="Resource" uid="uid://dkm7d10c1lp2n" path="res://assets/outfits/decor.tres" id="6_dtw4b"] [node name="Dragon" type="AnimatedSprite2D" node_paths=PackedStringArray("color", "hat", "shirt", "decor")] sprite_frames = ExtResource("1_o3jkx") @@ -14,6 +18,10 @@ color = NodePath(".") hat = NodePath("Hat") shirt = NodePath("Shirt") decor = NodePath("Decor") +color_outfits = ExtResource("3_jpsrj") +hat_outfits = ExtResource("4_58xh2") +shirt_outfits = ExtResource("5_6mheo") +decor_outfits = ExtResource("6_dtw4b") [node name="Hat" type="AnimatedSprite2D" parent="."] sprite_frames = ExtResource("3_jl6px") diff --git a/scenes/dragon_list/dragon/dragon_list_entry.gd b/scenes/dragon_list/dragon/dragon_list_entry.gd index 9c62297..de1b285 100644 --- a/scenes/dragon_list/dragon/dragon_list_entry.gd +++ b/scenes/dragon_list/dragon/dragon_list_entry.gd @@ -7,20 +7,36 @@ class_name DragonListEntry @export var shirt: AnimatedSprite2D @export var decor: AnimatedSprite2D - -func play_animation(anim: String): - color.set_frame(0) - color.play(anim) - hat.set_frame(0) - hat.play(anim) - shirt.set_frame(0) - shirt.play(anim) - decor.set_frame(0) - decor.play(anim) +@export var color_outfits: DragonOutfit +@export var hat_outfits: DragonOutfit +@export var shirt_outfits: DragonOutfit +@export var decor_outfits: DragonOutfit -func face_direction(left: bool): +func play_animation(anim: String) -> void: + if color.sprite_frames != null: + color.set_frame(0) + color.play(anim) + if hat.sprite_frames != null: + hat.set_frame(0) + hat.play(anim) + if shirt.sprite_frames != null: + shirt.set_frame(0) + shirt.play(anim) + if decor.sprite_frames != null: + decor.set_frame(0) + decor.play(anim) + + +func face_direction(left: bool) -> void: color.flip_h = not left hat.flip_h = not left shirt.flip_h = not left decor.flip_h = not left + + +func dress(properties: DragonProperties) -> void: + color.sprite_frames = color_outfits.get_texture(properties.color) + hat.sprite_frames = hat_outfits.get_texture(properties.hat) + shirt.sprite_frames = shirt_outfits.get_texture(properties.shirt) + decor.sprite_frames = decor_outfits.get_texture(properties.decor) diff --git a/scenes/dragon_list/dragon_list_view.gd b/scenes/dragon_list/dragon_list_view.gd index 7890147..4b3356b 100644 --- a/scenes/dragon_list/dragon_list_view.gd +++ b/scenes/dragon_list/dragon_list_view.gd @@ -35,6 +35,7 @@ func set_library(library: DragonLibrary): func _instantiate_dragon(dragon: DragonProperties, offset_step: int): var instance: DragonListEntry = dragon_list_entry_template.instantiate() + instance.dress(dragon) dragon_list_pivot.add_child(instance) instance.position.x += offset_step * 110 _dragons.push_back(instance)