Dev 0.2.0

* Equilibrage de la difficulté (suite)
* Correction du timing des dialogues de Demeter
* Dev de la base astra (avec les logs)
* Fix de bug de duplication d'objets
* Fix de la mutation ancien
* Ajout d'une mention de la propagation des mutations dans le tuto
This commit is contained in:
2026-07-25 20:09:54 +02:00
parent 3ff6d68371
commit ffe6f50ba6
64 changed files with 633 additions and 126 deletions
@@ -14,8 +14,8 @@ func set_to_scene(v : Scene = to_scene):
%Icon.texture = to_scene.get_scene_icon()
%Icon2.texture = to_scene.get_scene_icon()
func click():
func click(_player3d :Player3D):
if interactable:
clicked.emit()
if to_scene:
SceneManager.change_to_scene(to_scene)
SceneManager.change_to_scene(to_scene)
@@ -9,7 +9,7 @@ signal broken
func _ready():
update_model()
func click():
func click(_player3d :Player3D):
if interactable:
clicked.emit()
%BreackAudioPlayer.playing = true
+1 -1
View File
@@ -13,7 +13,7 @@ signal clicked
func _ready():
set_interactable()
func click():
func click(_player3d : Player3D):
if interactable:
clicked.emit()
@@ -2,7 +2,7 @@ extends Interactable3D
class_name Phone
func click():
func click(_player3d :Player3D):
if interactable:
clicked.emit()
interactable = false
Binary file not shown.
@@ -39,7 +39,15 @@ import_script/path=""
materials/extract=0
materials/extract_format=0
materials/extract_path=""
_subresources={}
_subresources={
"materials": {
"Material": {
"use_external/enabled": true,
"use_external/fallback_path": "res://common/assets/materials/default_3d.tres",
"use_external/path": "uid://dvvi1k5c5iowc"
}
}
}
blender/nodes/visible=0
blender/nodes/active_collection_only=false
blender/nodes/punctual_lights=true
@@ -0,0 +1,90 @@
[gd_scene format=3 uid="uid://d2mqot6b0wrji"]
[ext_resource type="PackedScene" uid="uid://butkx8cygbesm" path="res://entities/interactable_3d/radio/assets/3d/radio.blend" id="1_4uibp"]
[ext_resource type="Script" uid="uid://cg53cu64nnq2u" path="res://entities/interactable_3d/radio/scripts/radio_3d.gd" id="1_a4m61"]
[ext_resource type="PackedScene" uid="uid://bf5viaiuq62f0" path="res://gui/game/log_screen/log_screen.tscn" id="3_6gjd1"]
[ext_resource type="Texture2D" uid="uid://bxorbhnr4o2rj" path="res://addons/dialogic/Modules/Signal/icon.png" id="3_h0e4o"]
[sub_resource type="Gradient" id="Gradient_oh5lq"]
offsets = PackedFloat32Array(1)
colors = PackedColorArray(0.06318334, 0.059500005, 0.17, 1)
[sub_resource type="GradientTexture2D" id="GradientTexture2D_g4v7s"]
gradient = SubResource("Gradient_oh5lq")
width = 25
height = 24
[sub_resource type="Gradient" id="Gradient_4uibp"]
interpolation_mode = 1
offsets = PackedFloat32Array(0.508547, 0.5470086, 0.5811966, 0.6367521, 0.6752137)
colors = PackedColorArray(1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 0)
[sub_resource type="GradientTexture2D" id="GradientTexture2D_4uibp"]
gradient = SubResource("Gradient_4uibp")
width = 500
height = 500
fill = 1
fill_from = Vector2(0.5, 0.5)
fill_to = Vector2(1, 0.5)
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_yf5fn"]
transparency = 1
shading_mode = 0
vertex_color_use_as_albedo = true
albedo_texture = SubResource("GradientTexture2D_4uibp")
billboard_mode = 1
billboard_keep_scale = true
[sub_resource type="PlaneMesh" id="PlaneMesh_g4v7s"]
material = SubResource("StandardMaterial3D_yf5fn")
orientation = 2
[sub_resource type="Curve" id="Curve_4uibp"]
_data = [Vector2(0, 0), 0.0, 3.382857, 0, 0, Vector2(1, 1), 0.0, 0.0, 0, 0]
point_count = 2
[sub_resource type="Gradient" id="Gradient_xb8ew"]
colors = PackedColorArray(1, 1, 1, 1, 1, 1, 1, 0)
[sub_resource type="BoxShape3D" id="BoxShape3D_g4v7s"]
size = Vector3(0.7519531, 0.5413208, 0.4404297)
[node name="Radio3d" type="Area3D" unique_id=478512957]
script = ExtResource("1_a4m61")
log_title = "Title is the real title"
[node name="radio" parent="." unique_id=828194383 instance=ExtResource("1_4uibp")]
[node name="OffScreen" type="Sprite3D" parent="radio" unique_id=1730668971]
unique_name_in_owner = true
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.12157962, -0.0024592131, -0.16259766)
visible = false
texture = SubResource("GradientTexture2D_g4v7s")
[node name="Icon" type="Sprite3D" parent="radio" unique_id=664077032]
unique_name_in_owner = true
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.1324744, 0.015149429, -0.15777588)
pixel_size = 0.003
texture = ExtResource("3_h0e4o")
[node name="CPUParticles3D" type="CPUParticles3D" parent="." unique_id=464922262]
unique_name_in_owner = true
amount = 2
preprocess = 1.0
explosiveness = 0.6
mesh = SubResource("PlaneMesh_g4v7s")
gravity = Vector3(0, 0, 0)
scale_amount_curve = SubResource("Curve_4uibp")
color = Color(1, 0, 0.4333334, 0.78431374)
color_ramp = SubResource("Gradient_xb8ew")
[node name="CollisionShape3D" type="CollisionShape3D" parent="." unique_id=1594995973]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.01159668, 0.09970093, -0.0076293945)
shape = SubResource("BoxShape3D_g4v7s")
[node name="LogScreen" parent="." unique_id=1955577551 instance=ExtResource("3_6gjd1")]
unique_name_in_owner = true
log_title = "Title is the real title"
log_text = "Text"
[node name="AudioStreamPlayer3D" type="AudioStreamPlayer3D" parent="." unique_id=703219960]
@@ -0,0 +1,54 @@
@tool
extends Interactable3D
class_name Radio3d
@export var log_title : String = "Title" : set = set_title
@export var log_text : String = "Text" : set = set_text
@export var read := false : set = set_read
func _ready():
set_interactable()
set_title()
set_text()
set_read()
func set_title(v := log_title):
log_title = v
if is_node_ready():
%LogScreen.log_title = log_title
func set_text(v := log_text):
log_text = v
if is_node_ready():
%LogScreen.log_text = log_text
func set_read(v := read):
read = v
if is_node_ready():
%CPUParticles3D.emitting = not read
%OffScreen.visible = read
%Icon.visible = not read
func click(player3d :Player3D):
if interactable:
clicked.emit()
%LogScreen.appear()
AudioManager.play_sfx("MessageEnter")
%LogScreen.appear()
read = true
interactable = false
player3d.controlling_player = false
Input.mouse_mode = Input.MOUSE_MODE_VISIBLE
%LogScreen.disappeared.connect(
func():
Input.mouse_mode = Input.MOUSE_MODE_CAPTURED
player3d.controlling_player = true
get_tree().create_timer(0.5).timeout.connect( # Put a delay to not interfere with the ok button click
func():
interactable = true
)
AudioManager.play_sfx("MessageExit")
)
@@ -0,0 +1 @@
uid://cg53cu64nnq2u