Dev de la démo

* Modification de l'apparence de l'UI des dialogues
* Changement de l'ordre de déblocage des mutations
* Ajout d'une confirmation pour l'abandon
* Ajout de la scène de fin avec la base Boréa, en tant que fin de démo
* Modification des icône de durée de vie, temps de pousse, et de mort
* Ajout d'un icône au dessus du joueur quand il n'a plus d'énergie
* Amélioration des dialogues du jeu
* Changement du modèle du téléphone
* Ajout de cellule d'énergie et de cellule de talion trouvable sur la carte
* Il est à nouveau possible de se recharger après la fin d'une région
* Buff des mutations ancien sociale et solide
* Modification de la mutation fertile (ne donne de gain de graine qu'à la maturation)
* Ajout d'une récupération automatique des graines
* Ajout de deux cartons de tutoriel ainsi qu'une option pour les revoir dans l'aide de jeu
* Amélioration générale du tutoriel
* Ajout d'un écran titre digne de ce nom
* Lors de l'arrivée à destination, ne téléporte plus le joueur sur une map vide, mais directement dans les lieux de cinématique
* Ajout graphique de plus de pattern de mousse et de roche
* Le talion apparait maintenant sur toute la carte
* La roche peut désormais apparaitre sur la zone de départ
* Ajout dud modificateur de région Canyon
* Equilibrage général
* Fix de bugs en tout genre
This commit is contained in:
2026-05-27 19:13:32 +02:00
parent 7764943714
commit 7b09f2ba7c
289 changed files with 8802 additions and 1520 deletions

View File

@@ -112,9 +112,8 @@ fill = 1
fill_from = Vector2(0.5, 0.5)
fill_to = Vector2(1, 0.5)
[sub_resource type="CapsuleShape2D" id="CapsuleShape2D_6w4e0"]
radius = 25.393593
height = 50.787186
[sub_resource type="CircleShape2D" id="CircleShape2D_6w4e0"]
radius = 16.583923
[node name="Door" type="Area2D" unique_id=2053096538]
process_mode = 4
@@ -155,4 +154,4 @@ scale = Vector2(1.3906125, 1.3906125)
[node name="CollisionShape2D" type="CollisionShape2D" parent="StaticBody2D" unique_id=676936346]
position = Vector2(0, 12)
shape = SubResource("CapsuleShape2D_6w4e0")
shape = SubResource("CircleShape2D_6w4e0")

Binary file not shown.

After

Width:  |  Height:  |  Size: 54 KiB

View File

@@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://dh6jdqoy2xu65"
path="res://.godot/imported/energy_cell_off.png-d0f76768f0abf3252fb82e90132330e5.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://entities/interactables/energy_cell/assets/sprites/energy_cell_off.png"
dest_files=["res://.godot/imported/energy_cell_off.png-d0f76768f0abf3252fb82e90132330e5.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/uastc_level=0
compress/rdo_quality_loss=0.0
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/channel_remap/red=0
process/channel_remap/green=1
process/channel_remap/blue=2
process/channel_remap/alpha=3
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

Binary file not shown.

After

Width:  |  Height:  |  Size: 54 KiB

View File

@@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://ds65vxsiitxit"
path="res://.godot/imported/energy_cell_on.png-ddddaeafbe8fcf8fce63d8a58ab82019.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://entities/interactables/energy_cell/assets/sprites/energy_cell_on.png"
dest_files=["res://.godot/imported/energy_cell_on.png-ddddaeafbe8fcf8fce63d8a58ab82019.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/uastc_level=0
compress/rdo_quality_loss=0.0
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/channel_remap/red=0
process/channel_remap/green=1
process/channel_remap/blue=2
process/channel_remap/alpha=3
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

View File

@@ -0,0 +1,102 @@
[gd_scene format=3 uid="uid://d3fam2jq74kxq"]
[ext_resource type="Script" uid="uid://b25sqd4v2i3v2" path="res://entities/interactables/energy_cell/scripts/energy_cell.gd" id="1_nheea"]
[ext_resource type="Texture2D" uid="uid://ds65vxsiitxit" path="res://entities/interactables/energy_cell/assets/sprites/energy_cell_on.png" id="2_fnyaf"]
[ext_resource type="Texture2D" uid="uid://dh6jdqoy2xu65" path="res://entities/interactables/energy_cell/assets/sprites/energy_cell_off.png" id="3_t6ydv"]
[sub_resource type="CircleShape2D" id="CircleShape2D_ylpt4"]
radius = 39.115215
[sub_resource type="Animation" id="Animation_lsc7u"]
length = 0.001
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("Sprites:scale:x")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 1,
"values": [1.0000001]
}
tracks/1/type = "value"
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/path = NodePath("Sprites:scale:y")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 1,
"values": [1.0000001]
}
[sub_resource type="Animation" id="Animation_ei886"]
resource_name = "squeeze"
length = 0.5
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("Sprites:scale:x")
tracks/0/interp = 2
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0, 0.16666667, 0.33333334, 0.5),
"transitions": PackedFloat32Array(1, 1, 1, 1),
"update": 0,
"values": [1.0000001, 0.705, 1.5, 1.0000001]
}
tracks/1/type = "value"
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/path = NodePath("Sprites:scale:y")
tracks/1/interp = 2
tracks/1/loop_wrap = true
tracks/1/keys = {
"times": PackedFloat32Array(0, 0.16666667, 0.33333334, 0.5),
"transitions": PackedFloat32Array(1, 1, 1, 1),
"update": 0,
"values": [1.0000001, 1.5, 0.7, 1.0000001]
}
[sub_resource type="AnimationLibrary" id="AnimationLibrary_d2c63"]
_data = {
&"RESET": SubResource("Animation_lsc7u"),
&"squeeze": SubResource("Animation_ei886")
}
[node name="EnergyCell" type="Area2D" unique_id=1375150025]
script = ExtResource("1_nheea")
used = true
default_interact_text = "OPEN"
available = false
default_info_title = "ENERGY_CELL"
default_info_desc = "ENERGY_CELL_DESC_TEXT"
metadata/_custom_type_script = "uid://dyprcd68fjstf"
[node name="Sprites" type="Node2D" parent="." unique_id=979185380]
scale = Vector2(1.0000001, 1.0000001)
[node name="SpriteOff" type="Sprite2D" parent="Sprites" unique_id=1278139902]
unique_name_in_owner = true
position = Vector2(0, -11.999998)
scale = Vector2(0.17999999, 0.17999999)
texture = ExtResource("3_t6ydv")
[node name="SpriteOn" type="Sprite2D" parent="Sprites" unique_id=750798992]
unique_name_in_owner = true
visible = false
position = Vector2(0, -11.999998)
scale = Vector2(0.17999999, 0.17999999)
texture = ExtResource("2_fnyaf")
[node name="CollisionShape2D" type="CollisionShape2D" parent="." unique_id=836925562]
position = Vector2(0, -11.999998)
shape = SubResource("CircleShape2D_ylpt4")
[node name="AnimationPlayer" type="AnimationPlayer" parent="." unique_id=1320210428]
unique_name_in_owner = true
libraries/ = SubResource("AnimationLibrary_d2c63")

View File

@@ -0,0 +1,38 @@
@tool
extends Interactable
class_name EnergyCell
const GIVEN_ENERGY = 1
@export var used = false : set = set_used
func _ready():
set_used()
func set_used(v = used):
used = v
available = not used
if is_node_ready():
%AnimationPlayer.play("squeeze")
await get_tree().create_timer(0.2).timeout
%SpriteOff.visible = used
%SpriteOn.visible = not used
func can_interact(p : Player) -> bool:
return p.data.energy < p.data.max_energy
func interact(p : Player) -> bool:
if not used and region:
used = true
available = false
p.data.energy += GIVEN_ENERGY
interacted.emit(p)
region.data.used_objects.append(name)
AudioManager.play_sfx("Recharge1")
return true
return false

View File

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 57 KiB

View File

@@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://bk2w3tophr7nh"
path="res://.godot/imported/talion_cell_off.png-f9e1927bb52c04ea9e2d4a53e89bb0e0.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://entities/interactables/talion_cell/assets/sprites/talion_cell_off.png"
dest_files=["res://.godot/imported/talion_cell_off.png-f9e1927bb52c04ea9e2d4a53e89bb0e0.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/uastc_level=0
compress/rdo_quality_loss=0.0
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/channel_remap/red=0
process/channel_remap/green=1
process/channel_remap/blue=2
process/channel_remap/alpha=3
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

Binary file not shown.

After

Width:  |  Height:  |  Size: 58 KiB

View File

@@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://qef2wvgb62cb"
path="res://.godot/imported/talion_cell_on.png-a65f44148c257de0107a156068275044.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://entities/interactables/talion_cell/assets/sprites/talion_cell_on.png"
dest_files=["res://.godot/imported/talion_cell_on.png-a65f44148c257de0107a156068275044.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/uastc_level=0
compress/rdo_quality_loss=0.0
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/channel_remap/red=0
process/channel_remap/green=1
process/channel_remap/blue=2
process/channel_remap/alpha=3
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

View File

@@ -0,0 +1,40 @@
@tool
extends Interactable
class_name TalionCell
const SEED_RARITY = 2
@export var used = false : set = set_used
func _ready():
set_used()
func set_used(v = used):
used = v
available = not used
if is_node_ready():
%AnimationPlayer.play("squeeze")
await get_tree().create_timer(0.2).timeout
%SpriteOff.visible = used
%SpriteOn.visible = not used
func interact(p : Player) -> bool:
if not used and region:
used = true
available = false
var new_seed = Seed.generate_random(SEED_RARITY)
p.region.drop_item(
new_seed,
global_position,
10
)
interacted.emit(p)
region.data.used_objects.append(name)
AudioManager.play_sfx("Drop")
return true
return false

View File

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

View File

@@ -0,0 +1,100 @@
[gd_scene format=3 uid="uid://cfxowdtmvxbtt"]
[ext_resource type="Script" uid="uid://1xhrot6srly6" path="res://entities/interactables/talion_cell/scripts/talion_cell.gd" id="1_lsc7u"]
[ext_resource type="Texture2D" uid="uid://bk2w3tophr7nh" path="res://entities/interactables/talion_cell/assets/sprites/talion_cell_off.png" id="2_ei886"]
[ext_resource type="Texture2D" uid="uid://qef2wvgb62cb" path="res://entities/interactables/talion_cell/assets/sprites/talion_cell_on.png" id="3_d2c63"]
[sub_resource type="CircleShape2D" id="CircleShape2D_ylpt4"]
radius = 39.115215
[sub_resource type="Animation" id="Animation_lsc7u"]
length = 0.001
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("Sprites:scale:x")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 1,
"values": [1.0000001]
}
tracks/1/type = "value"
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/path = NodePath("Sprites:scale:y")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 1,
"values": [1.0000001]
}
[sub_resource type="Animation" id="Animation_ei886"]
resource_name = "squeeze"
length = 0.5
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("Sprites:scale:x")
tracks/0/interp = 2
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0, 0.16666667, 0.33333334, 0.5),
"transitions": PackedFloat32Array(1, 1, 1, 1),
"update": 0,
"values": [1.0000001, 0.705, 1.5, 1.0000001]
}
tracks/1/type = "value"
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/path = NodePath("Sprites:scale:y")
tracks/1/interp = 2
tracks/1/loop_wrap = true
tracks/1/keys = {
"times": PackedFloat32Array(0, 0.16666667, 0.33333334, 0.5),
"transitions": PackedFloat32Array(1, 1, 1, 1),
"update": 0,
"values": [1.0000001, 1.5, 0.7, 1.0000001]
}
[sub_resource type="AnimationLibrary" id="AnimationLibrary_d2c63"]
_data = {
&"RESET": SubResource("Animation_lsc7u"),
&"squeeze": SubResource("Animation_ei886")
}
[node name="TalionCell" type="Area2D" unique_id=1375150025]
script = ExtResource("1_lsc7u")
default_interact_text = "OPEN"
default_info_title = "TALION_CELL"
default_info_desc = "TALION_CELL_DESC_TEXT"
metadata/_custom_type_script = "uid://dyprcd68fjstf"
[node name="Sprites" type="Node2D" parent="." unique_id=979185380]
scale = Vector2(1.0000001, 1.0000001)
[node name="SpriteOff" type="Sprite2D" parent="Sprites" unique_id=1278139902]
unique_name_in_owner = true
visible = false
position = Vector2(0, -11.999998)
scale = Vector2(0.17999999, 0.17999999)
texture = ExtResource("2_ei886")
[node name="SpriteOn" type="Sprite2D" parent="Sprites" unique_id=750798992]
unique_name_in_owner = true
position = Vector2(0, -11.999998)
scale = Vector2(0.17999999, 0.17999999)
texture = ExtResource("3_d2c63")
[node name="CollisionShape2D" type="CollisionShape2D" parent="." unique_id=836925562]
position = Vector2(0, -11.999998)
shape = SubResource("CircleShape2D_ylpt4")
[node name="AnimationPlayer" type="AnimationPlayer" parent="." unique_id=1320210428]
unique_name_in_owner = true
libraries/ = SubResource("AnimationLibrary_d2c63")

View File

@@ -6,15 +6,18 @@ func _ready():
update()
func update():
%EnergyTextContainer.modulate = Color.WHITE if region.data.charges > 0 else Color.RED
%EnergyTextContainer.modulate = (
Color.WHITE if region.data.charges > 0
else Color.RED )
%EnergyText.text = str(region.data.charges)
if not region.data.pass_day_ended.is_connected(update):
region.data.pass_day_ended.connect(update)
func can_interact(_p : Player) -> bool:
return (
region != null
and region.data
and region.data.charges > 0
and region.data.state == RegionData.State.IN_PROGRESS
)
func interact(_p: Player) -> bool:

View File

@@ -15,9 +15,8 @@ font_size = 30
radius = 43.0
height = 116.0
[sub_resource type="CapsuleShape2D" id="CapsuleShape2D_bjhct"]
radius = 38.45475
height = 76.9095
[sub_resource type="CircleShape2D" id="CircleShape2D_ot7vv"]
radius = 22.803507
[node name="TruckRecharge" type="Area2D" unique_id=1099196706]
script = ExtResource("1_ipgcv")
@@ -76,4 +75,4 @@ shape = SubResource("CapsuleShape2D_ot7vv")
[node name="CollisionShape2D" type="CollisionShape2D" parent="StaticBody2D" unique_id=842130596]
position = Vector2(12.000001, -41.000004)
rotation = 0.18545866
shape = SubResource("CapsuleShape2D_bjhct")
shape = SubResource("CircleShape2D_ot7vv")