ajout du déblocage/évolutions des plantes (#89) et fix divers

This commit is contained in:
2025-11-07 13:26:04 +01:00
parent 11ae967845
commit ed675ed532
54 changed files with 901 additions and 483 deletions

View File

@@ -1,4 +1,4 @@
[gd_scene load_steps=20 format=3 uid="uid://753270jjxmfg"]
[gd_scene load_steps=26 format=3 uid="uid://753270jjxmfg"]
[ext_resource type="Theme" uid="uid://bgcmd213j6gk1" path="res://gui/ressources/default_theme.tres" id="1_m317d"]
[ext_resource type="Script" uid="uid://b7f10wuounfan" path="res://gui/game/card/scripts/card.gd" id="2_kpm7h"]
@@ -26,6 +26,30 @@ title_icon = ExtResource("6_7wc8v")
text = "Text"
metadata/_custom_type_script = "uid://dgbh38j13g5kn"
[sub_resource type="Resource" id="Resource_kpm7h"]
script = ExtResource("5_7wc8v")
metadata/_custom_type_script = "uid://dgbh38j13g5kn"
[sub_resource type="Resource" id="Resource_7wc8v"]
script = ExtResource("5_7wc8v")
metadata/_custom_type_script = "uid://dgbh38j13g5kn"
[sub_resource type="Resource" id="Resource_pmldi"]
script = ExtResource("5_7wc8v")
metadata/_custom_type_script = "uid://dgbh38j13g5kn"
[sub_resource type="Resource" id="Resource_gibok"]
script = ExtResource("5_7wc8v")
metadata/_custom_type_script = "uid://dgbh38j13g5kn"
[sub_resource type="Resource" id="Resource_vnqhg"]
script = ExtResource("5_7wc8v")
metadata/_custom_type_script = "uid://dgbh38j13g5kn"
[sub_resource type="Resource" id="Resource_on5kv"]
script = ExtResource("5_7wc8v")
metadata/_custom_type_script = "uid://dgbh38j13g5kn"
[sub_resource type="Resource" id="Resource_plgbn"]
script = ExtResource("3_7wc8v")
title = "Hello"
@@ -33,7 +57,7 @@ type_icon = ExtResource("6_7wc8v")
texture = ExtResource("7_mwhj8")
important_stat_text = "10"
important_stat_icon = ExtResource("3_kpm7h")
sections = Array[ExtResource("5_7wc8v")]([SubResource("Resource_mwhj8")])
sections = Array[ExtResource("5_7wc8v")]([SubResource("Resource_mwhj8"), SubResource("Resource_kpm7h"), SubResource("Resource_7wc8v"), SubResource("Resource_pmldi"), SubResource("Resource_gibok"), SubResource("Resource_vnqhg"), SubResource("Resource_on5kv"), null])
metadata/_custom_type_script = "uid://dj2pv1hiwjfv0"
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_vnqhg"]

View File

@@ -1,13 +1,14 @@
[gd_scene load_steps=15 format=3 uid="uid://3ss8pvhsackj"]
[gd_scene load_steps=22 format=3 uid="uid://3ss8pvhsackj"]
[ext_resource type="PackedScene" uid="uid://753270jjxmfg" path="res://gui/game/card/card.tscn" id="1_we78f"]
[ext_resource type="Shader" uid="uid://bqjwmomh851lc" path="res://common/vfx/materials/shaders/skew.gdshader" id="1_x54se"]
[ext_resource type="Script" uid="uid://dj5pld5ragrjp" path="res://gui/game/card/scripts/card_visualiser.gd" id="2_ntbk8"]
[ext_resource type="Script" uid="uid://dj2pv1hiwjfv0" path="res://gui/game/card/scripts/card_info.gd" id="3_5yk1o"]
[ext_resource type="Texture2D" uid="uid://bd6qddv5ihkjr" path="res://common/icons/bucket.svg" id="3_r0jrf"]
[ext_resource type="Script" uid="uid://dgbh38j13g5kn" path="res://gui/game/card/scripts/card_section_info.gd" id="4_7xkgc"]
[ext_resource type="Script" uid="uid://b4tkium34c831" path="res://gui/game/card/scripts/card_stat_info.gd" id="5_1et8x"]
[ext_resource type="Texture2D" uid="uid://bt3g5bmar0icf" path="res://common/icons/growth.svg" id="6_7xkgc"]
[ext_resource type="Texture2D" uid="uid://bsvxhafoxwmw0" path="res://common/icons/cube-3d-sphere.svg" id="7_1et8x"]
[ext_resource type="Texture2D" uid="uid://df0y0s666ui4h" path="res://icon.png" id="7_6vah0"]
[sub_resource type="ShaderMaterial" id="ShaderMaterial_r0jrf"]
shader = ExtResource("1_x54se")
@@ -17,13 +18,41 @@ shader_parameter/y_rot = -6e-45
shader_parameter/x_rot = -6e-45
shader_parameter/inset = 0.0
[sub_resource type="ViewportTexture" id="ViewportTexture_5yk1o"]
viewport_path = NodePath("SubViewport")
[sub_resource type="Resource" id="Resource_r0jrf"]
script = ExtResource("4_7xkgc")
metadata/_custom_type_script = "uid://dgbh38j13g5kn"
[sub_resource type="Resource" id="Resource_6vah0"]
script = ExtResource("4_7xkgc")
metadata/_custom_type_script = "uid://dgbh38j13g5kn"
[sub_resource type="Resource" id="Resource_jjqcm"]
script = ExtResource("4_7xkgc")
metadata/_custom_type_script = "uid://dgbh38j13g5kn"
[sub_resource type="Resource" id="Resource_lj1tr"]
script = ExtResource("4_7xkgc")
metadata/_custom_type_script = "uid://dgbh38j13g5kn"
[sub_resource type="Resource" id="Resource_vabmf"]
script = ExtResource("4_7xkgc")
metadata/_custom_type_script = "uid://dgbh38j13g5kn"
[sub_resource type="Resource" id="Resource_1vjtn"]
script = ExtResource("4_7xkgc")
metadata/_custom_type_script = "uid://dgbh38j13g5kn"
[sub_resource type="Resource" id="Resource_l3vvu"]
script = ExtResource("4_7xkgc")
metadata/_custom_type_script = "uid://dgbh38j13g5kn"
[sub_resource type="Resource" id="Resource_bw03i"]
script = ExtResource("3_5yk1o")
title = "Hello"
texture = ExtResource("6_7xkgc")
texture = ExtResource("7_6vah0")
important_stat_text = "6"
important_stat_icon = ExtResource("3_r0jrf")
sections = Array[ExtResource("4_7xkgc")]([SubResource("Resource_r0jrf"), SubResource("Resource_6vah0"), SubResource("Resource_jjqcm"), SubResource("Resource_lj1tr"), SubResource("Resource_vabmf"), SubResource("Resource_1vjtn"), SubResource("Resource_l3vvu")])
metadata/_custom_type_script = "uid://dj2pv1hiwjfv0"
[sub_resource type="Animation" id="Animation_1et8x"]
@@ -39,31 +68,38 @@ _data = {
&"appear": SubResource("Animation_7xkgc")
}
[node name="CardVisualiser" type="TextureRect"]
[node name="CardVisualiser" type="SubViewportContainer"]
material = SubResource("ShaderMaterial_r0jrf")
offset_left = -24.0
offset_right = 276.0
offset_bottom = 110.0
anchors_preset = 8
anchor_left = 0.5
anchor_top = 0.5
anchor_right = 0.5
anchor_bottom = 0.5
offset_left = -246.0
offset_top = -134.0
offset_right = 54.0
offset_bottom = -24.0
grow_horizontal = 2
grow_vertical = 2
scale = Vector2(1.0000002, 1.0000002)
size_flags_horizontal = 0
size_flags_vertical = 4
mouse_filter = 2
texture = SubResource("ViewportTexture_5yk1o")
stretch_mode = 4
script = ExtResource("2_ntbk8")
small_mode = true
card_info = SubResource("Resource_r0jrf")
card_info = SubResource("Resource_bw03i")
[node name="SubViewport" type="SubViewport" parent="."]
unique_name_in_owner = true
transparent_bg = true
handle_input_locally = false
size = Vector2i(300, 110)
size_2d_override_stretch = true
render_target_update_mode = 4
[node name="CardContainer" type="MarginContainer" parent="SubViewport"]
unique_name_in_owner = true
clip_contents = true
offset_right = 350.0
offset_right = 300.0
offset_bottom = 110.0
size_flags_horizontal = 0
theme_override_constants/margin_left = 25
theme_override_constants/margin_top = 25
theme_override_constants/margin_right = 25
@@ -73,10 +109,11 @@ theme_override_constants/margin_bottom = 25
unique_name_in_owner = true
self_modulate = Color(1, 1, 1, 0)
layout_mode = 2
size_flags_horizontal = 4
mouse_filter = 2
small_mode = true
down_arrow = true
info = SubResource("Resource_r0jrf")
info = SubResource("Resource_bw03i")
[node name="AnimationPlayer" type="AnimationPlayer" parent="."]
unique_name_in_owner = true

View File

@@ -1,27 +1,55 @@
@tool
extends TextureRect
extends SubViewportContainer
class_name CardVisualiser
signal clicked(c: CardVisualiser)
const MAX_ROT = 15
const ZOOM_SCALE = 1.0
const ZOOM_SCALE = 1.2
var wanted_rot : Vector2 = Vector2.ZERO
var real_rot : Vector2 = Vector2.ZERO
var wanted_scale : Vector2 = Vector2.ONE
var is_ready = false
@export var small_mode : bool = false :
@export var card_width : int = 250 :
set(v):
card_width = v
if is_ready :
update()
@export var small_mode : bool = true :
set(v):
var old = small_mode
small_mode = v
if is_ready : update()
if is_ready and old != small_mode :
update()
@export var interactive_small_mode : bool = true
@export var interactive_zoom : bool = false
@export var down_arrow : bool = true :
set(v):
var old = down_arrow
down_arrow = v
if is_ready and old != down_arrow :
update()
@export var card_info : CardInfo = null :
set(v):
var old = card_info
card_info = v
if is_ready : update()
if is_ready and old != card_info:
update()
@export_tool_button("Update", "Callable") var update_action = update
var updated_on_last_frame = false
func _input(event):
if event.is_action_pressed("action") and is_mouse_over():
clicked.emit(self)
func _ready():
material = material.duplicate()
update()
@@ -32,17 +60,21 @@ func _process(_d):
if is_mouse_over():
wanted_rot = center_relative_mouse_position * MAX_ROT
small_mode = false
if interactive_small_mode: small_mode = false
if interactive_zoom: scale = scale.lerp(Vector2.ONE * ZOOM_SCALE, 0.2)
else:
wanted_rot = Vector2.ZERO
small_mode = true
if interactive_small_mode: small_mode = true
if interactive_zoom: scale = scale.lerp(Vector2.ONE, 0.2)
real_rot = real_rot.lerp(wanted_rot, 0.1)
material.set_shader_parameter("y_rot", - real_rot.x)
material.set_shader_parameter("x_rot", real_rot.y)
%SubViewport.size.y = %CardContainer.size.y
%Card.custom_minimum_size.x = card_width
%CardContainer.size.y = 0
%SubViewport.size = %CardContainer.size
size = %SubViewport.size
@@ -55,8 +87,10 @@ func is_mouse_over() -> bool:
)
func update():
if card_info:
%Card.info = card_info
%Card.small_mode = small_mode
%Card.down_arrow = down_arrow
%Card.update()
updated_on_last_frame = true