From 1d6ff785353ec50a4d4fb30a009ab82074d72d0e Mon Sep 17 00:00:00 2001 From: Zacharie Guet Date: Thu, 28 May 2026 15:40:09 +0200 Subject: [PATCH] Dev Demo 2 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Ajout des achievement Steam * Ajout d'une annonce à la récupération d'un artefact et ajout de textes axplicatifs sur les annonces d'artefacts et de mutation * Fix du léger glitch des tooltips * Ajout de clarté sur la machine de respawn dans le vaisseau --- common/icons/restore.svg | 30 ++++ common/icons/restore.svg.import | 43 +++++ .../scripts/scenes/relay_base_scene.gd | 5 + common/steam_connection/steam_connection.gd | 26 +-- .../cristal/artefact_announce.tscn | 167 +++++++++--------- entities/interactable_3d/cristal/cristal.tscn | 3 + .../cristal/mutation_announce.tscn | 149 ++++++++-------- .../cristal/scripts/artefact_announce.gd | 38 ++-- .../cristal/scripts/cristal.gd | 4 + entities/player_3d/dead_orchid.tscn | 2 + entities/player_3d/scripts/dead_orchid.gd | 2 + entities/player_3d/scripts/dead_orchid.gd.uid | 1 + entities/player_3d/scripts/player_3d.gd | 7 +- entities/scripts/entity.gd | 1 - gui/game/card/card_visualiser.tscn | 39 +++- gui/game/card/scripts/card_visualiser.gd | 1 + gui/game/scripts/game_gui.gd | 1 - gui/game/tutorial/scripts/tutorial.gd | 1 + project.godot | 6 +- .../astra_base/scripts/astra_base.gd | 16 +- .../borea_base/scripts/borea_base.gd | 5 +- stages/3d_scenes/cockpit_scene/cockpit.tscn | 4 +- .../ship_garage/scripts/ship_garage.gd | 18 +- .../scripts/vending_machine_3d.gd | 4 + .../vending_machine_3d.tscn | 6 + stages/intro/scripts/intro.gd | 18 +- stages/terrain/region/scripts/region.gd | 37 ++-- stages/title_screen/scripts/title_screen.gd | 6 + stages/title_screen/title_screen.tscn | 34 ++-- translation/game/gui.csv | 7 +- 30 files changed, 417 insertions(+), 264 deletions(-) create mode 100644 common/icons/restore.svg create mode 100644 common/icons/restore.svg.import create mode 100644 entities/player_3d/scripts/dead_orchid.gd create mode 100644 entities/player_3d/scripts/dead_orchid.gd.uid diff --git a/common/icons/restore.svg b/common/icons/restore.svg new file mode 100644 index 0000000..6e9413f --- /dev/null +++ b/common/icons/restore.svg @@ -0,0 +1,30 @@ + + + + + + + diff --git a/common/icons/restore.svg.import b/common/icons/restore.svg.import new file mode 100644 index 0000000..1a4b0f3 --- /dev/null +++ b/common/icons/restore.svg.import @@ -0,0 +1,43 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dwq22io1cc27y" +path="res://.godot/imported/restore.svg-d9ef9a5a8dc88e1f3cce883293c64588.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://common/icons/restore.svg" +dest_files=["res://.godot/imported/restore.svg-d9ef9a5a8dc88e1f3cce883293c64588.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 +svg/scale=2.0 +editor/scale_with_editor_scale=false +editor/convert_colors_with_editor_theme=false diff --git a/common/scene_manager/scripts/scenes/relay_base_scene.gd b/common/scene_manager/scripts/scenes/relay_base_scene.gd index d183100..f556220 100644 --- a/common/scene_manager/scripts/scenes/relay_base_scene.gd +++ b/common/scene_manager/scripts/scenes/relay_base_scene.gd @@ -68,6 +68,11 @@ func spawn_player(relay_base : RelayBase): relay_base.player.global_position = choosen_incubator.global_position + Vector3.UP relay_base.player.rotation.y = choosen_incubator.rotation.y + if base_name == "MERCURY": + SteamConnection.unlock_achievement(SteamConnection.ACH_MERCURY_BASE) + elif base_name == "VENUS": + SteamConnection.unlock_achievement(SteamConnection.ACH_REACH_VENUS_BASE) + func spawn_dead_orchid(relay_base : RelayBase): var dead_orchid := DEAD_ORCHID_SCENE.instantiate() as Node3D relay_base.add_child(dead_orchid) diff --git a/common/steam_connection/steam_connection.gd b/common/steam_connection/steam_connection.gd index d05a68e..78fc7b3 100644 --- a/common/steam_connection/steam_connection.gd +++ b/common/steam_connection/steam_connection.gd @@ -1,16 +1,18 @@ extends Node -const APP_ID = "4452760" -func _init(): - OS.set_environment("SteamAppID", APP_ID) - OS.set_environment("SteamGameID", APP_ID) +const ACH_SPIN_PLANET="STW_SPIN_PLANET" +const ACH_FINISH_TUTORIAL="STW_FINISH_TUTORIAL" +const ACH_MEET_DEMETER="STW_MEET_DEMETER" +const ACH_UNLOCK_ALL_MUTATION="STW_UNLOCK_ALL_MUTATIONS" +const ACH_KICK_YOUR_OLD_BODY="STW_KICK_YOUR_OLD_BODY" +const ACH_MERCURY_BASE="STW_REACH_MERCURY_BASE" +const ACH_REACH_VENUS_BASE="STW_REACH_VENUS_BASE" -func _ready(): - Steam.steamInit() - - var is_running = Steam.isSteamRunning() - - if !is_running: - printerr("Steam is not running") - return \ No newline at end of file +func unlock_achievement(achivement_name : String): + if Steam.isSteamRunning(): + var status = Steam.getAchievement(achivement_name) + print("Steam Achievement %s" %achivement_name) + if status.ret and not status.achieved: + Steam.setAchievement(achivement_name) + Steam.storeStats() \ No newline at end of file diff --git a/entities/interactable_3d/cristal/artefact_announce.tscn b/entities/interactable_3d/cristal/artefact_announce.tscn index d1d9e30..8b099d4 100644 --- a/entities/interactable_3d/cristal/artefact_announce.tscn +++ b/entities/interactable_3d/cristal/artefact_announce.tscn @@ -1,6 +1,7 @@ [gd_scene format=3 uid="uid://bhbc1monbgumh"] [ext_resource type="Script" uid="uid://xamd5y6tig71" path="res://entities/interactable_3d/cristal/scripts/artefact_announce.gd" id="1_2sroa"] +[ext_resource type="Script" uid="uid://c6lr0fucklsto" path="res://common/game_data/scripts/artefacts/pile/pile.gd" id="2_2sroa"] [ext_resource type="Texture2D" uid="uid://bi5jo6pf0acjb" path="res://common/icons/carambola.svg" id="2_3vg7r"] [ext_resource type="LabelSettings" uid="uid://dqwayi8yjwau2" path="res://gui/ressources/title_label_settings.tres" id="3_doutq"] [ext_resource type="FontFile" uid="uid://qt80w6o01q5s" path="res://gui/ressources/fonts/TitanOne-Regular.ttf" id="4_bw55c"] @@ -10,12 +11,17 @@ [ext_resource type="Texture2D" uid="uid://dth2mj0nh2q70" path="res://common/icons/align-right.svg" id="9_qlk3h"] [ext_resource type="Script" uid="uid://b4tkium34c831" path="res://gui/game/card/scripts/card_stat_info.gd" id="10_d5x7w"] [ext_resource type="Texture2D" uid="uid://bsvxhafoxwmw0" path="res://common/icons/cube-3d-sphere.svg" id="11_mb83y"] +[ext_resource type="Texture2D" uid="uid://cwewx7cdy085h" path="res://common/icons/help-hexagon.svg" id="12_041ff"] [ext_resource type="Environment" uid="uid://bxyp24f85p0xf" path="res://gui/game/assets/gui_3d_environment.tres" id="13_uyc6b"] [ext_resource type="Theme" uid="uid://bgcmd213j6gk1" path="res://gui/ressources/hud.tres" id="14_kb1t6"] [ext_resource type="Texture2D" uid="uid://dcgnamu7sb3ov" path="res://common/icons/bolt.svg" id="15_ijwr2"] +[sub_resource type="Resource" id="Resource_3vg7r"] +script = ExtResource("2_2sroa") +metadata/_custom_type_script = "uid://c6lr0fucklsto" + [sub_resource type="ViewportTexture" id="ViewportTexture_6hxtc"] -viewport_path = NodePath("Particles/SubViewport") +viewport_path = NodePath("Container/Particles/SubViewport") [sub_resource type="Curve" id="Curve_brrmr"] _limits = [-200.0, 200.0, 0.0, 1.0] @@ -32,27 +38,30 @@ font_size = 50 font_color = Color(1, 0.6509804, 0.09019608, 1) [sub_resource type="ViewportTexture" id="ViewportTexture_smt8b"] -viewport_path = NodePath("AnnounceContainer/ObjectVisualiser/SubViewport") +viewport_path = NodePath("Container/AnnounceContainer/ObjectVisualiser/SubViewport") -[sub_resource type="Resource" id="Resource_xdybx"] +[sub_resource type="Resource" id="Resource_doutq"] script = ExtResource("8_duftv") -title_text = "DESCRIPTION" +title_text = "Description" title_icon = ExtResource("9_qlk3h") -text = "TALION_OVERLOADER_DESC_TEXT" +text = "PILE_DESC_TEXT" -[sub_resource type="Resource" id="Resource_041ff"] +[sub_resource type="Resource" id="Resource_bw55c"] script = ExtResource("7_tryv5") -title = "TALION_OVERLOADER" -subtitle = "ARTEFACT" +title = "PILE" +subtitle = "Artefact" important_stat_icon = ExtResource("11_mb83y") -sections = Array[ExtResource("8_duftv")]([SubResource("Resource_xdybx")]) +sections = Array[ExtResource("8_duftv")]([SubResource("Resource_doutq")]) + +[sub_resource type="LabelSettings" id="LabelSettings_2sroa"] +font_size = 23 [sub_resource type="Animation" id="Animation_aao0q"] length = 0.001 tracks/0/type = "value" tracks/0/imported = false tracks/0/enabled = true -tracks/0/path = NodePath("ArtefactAnnounce/AnnounceContainer:theme_override_constants/separation") +tracks/0/path = NodePath("ArtefactAnnounce/Container/AnnounceContainer:theme_override_constants/separation") tracks/0/interp = 1 tracks/0/loop_wrap = true tracks/0/keys = { @@ -64,7 +73,7 @@ tracks/0/keys = { tracks/1/type = "value" tracks/1/imported = false tracks/1/enabled = true -tracks/1/path = NodePath("ArtefactAnnounce/Particles:modulate") +tracks/1/path = NodePath("ArtefactAnnounce/Container/Particles:modulate") tracks/1/interp = 1 tracks/1/loop_wrap = true tracks/1/keys = { @@ -76,19 +85,19 @@ tracks/1/keys = { tracks/2/type = "value" tracks/2/imported = false tracks/2/enabled = true -tracks/2/path = NodePath("ArtefactAnnounce/AnnounceContainer:modulate") +tracks/2/path = NodePath("ArtefactAnnounce:visible") tracks/2/interp = 1 tracks/2/loop_wrap = true tracks/2/keys = { -"times": PackedFloat32Array(0), +"times": PackedFloat32Array(0.03333333), "transitions": PackedFloat32Array(1), -"update": 0, -"values": [Color(1, 1, 1, 1)] +"update": 1, +"values": [false] } tracks/3/type = "value" tracks/3/imported = false tracks/3/enabled = true -tracks/3/path = NodePath("ArtefactAnnounce/MarginContainer/BackgroundRect:modulate:a") +tracks/3/path = NodePath("ArtefactAnnounce/Container:modulate:a") tracks/3/interp = 1 tracks/3/loop_wrap = true tracks/3/keys = { @@ -97,18 +106,6 @@ tracks/3/keys = { "update": 1, "values": [1.0] } -tracks/4/type = "value" -tracks/4/imported = false -tracks/4/enabled = true -tracks/4/path = NodePath("ArtefactAnnounce:visible") -tracks/4/interp = 1 -tracks/4/loop_wrap = true -tracks/4/keys = { -"times": PackedFloat32Array(0.03333333), -"transitions": PackedFloat32Array(1), -"update": 1, -"values": [false] -} [sub_resource type="Animation" id="Animation_b6hac"] resource_name = "appear" @@ -116,7 +113,7 @@ length = 0.8 tracks/0/type = "value" tracks/0/imported = false tracks/0/enabled = true -tracks/0/path = NodePath("ArtefactAnnounce/AnnounceContainer:theme_override_constants/separation") +tracks/0/path = NodePath("ArtefactAnnounce/Container/AnnounceContainer:theme_override_constants/separation") tracks/0/interp = 2 tracks/0/loop_wrap = true tracks/0/keys = { @@ -128,7 +125,7 @@ tracks/0/keys = { tracks/1/type = "value" tracks/1/imported = false tracks/1/enabled = true -tracks/1/path = NodePath("ArtefactAnnounce/Particles:modulate") +tracks/1/path = NodePath("ArtefactAnnounce/Container/Particles:modulate") tracks/1/interp = 2 tracks/1/loop_wrap = true tracks/1/keys = { @@ -140,39 +137,27 @@ tracks/1/keys = { tracks/2/type = "value" tracks/2/imported = false tracks/2/enabled = true -tracks/2/path = NodePath("ArtefactAnnounce/AnnounceContainer:modulate") -tracks/2/interp = 2 +tracks/2/path = NodePath("ArtefactAnnounce:visible") +tracks/2/interp = 1 tracks/2/loop_wrap = true tracks/2/keys = { -"times": PackedFloat32Array(0.2, 0.8), -"transitions": PackedFloat32Array(1, 1), -"update": 0, -"values": [Color(1, 1, 1, 0), Color(1, 1, 1, 1)] -} -tracks/3/type = "value" -tracks/3/imported = false -tracks/3/enabled = true -tracks/3/path = NodePath("ArtefactAnnounce/MarginContainer/BackgroundRect:modulate:a") -tracks/3/interp = 1 -tracks/3/loop_wrap = true -tracks/3/keys = { -"times": PackedFloat32Array(0.03333333, 0.8), -"transitions": PackedFloat32Array(1, 1), -"update": 0, -"values": [0.0, 0.8] -} -tracks/4/type = "value" -tracks/4/imported = false -tracks/4/enabled = true -tracks/4/path = NodePath("ArtefactAnnounce:visible") -tracks/4/interp = 1 -tracks/4/loop_wrap = true -tracks/4/keys = { "times": PackedFloat32Array(0, 0.16666667), "transitions": PackedFloat32Array(1, 1), "update": 1, "values": [false, true] } +tracks/3/type = "value" +tracks/3/imported = false +tracks/3/enabled = true +tracks/3/path = NodePath("ArtefactAnnounce/Container:modulate:a") +tracks/3/interp = 1 +tracks/3/loop_wrap = true +tracks/3/keys = { +"times": PackedFloat32Array(0.13333334, 0.8), +"transitions": PackedFloat32Array(1, 1), +"update": 0, +"values": [0.0, 1.0] +} [sub_resource type="AnimationLibrary" id="AnimationLibrary_1aa3a"] _data = { @@ -182,22 +167,28 @@ _data = { [node name="ArtefactAnnounce" type="CanvasLayer" unique_id=1447182082] layer = 2 -visible = false script = ExtResource("1_2sroa") +announce_artefact = SubResource("Resource_3vg7r") -[node name="MarginContainer" type="MarginContainer" parent="." unique_id=1853133518] +[node name="Container" type="Control" parent="." unique_id=686450138] +layout_mode = 3 anchors_preset = 15 anchor_right = 1.0 anchor_bottom = 1.0 grow_horizontal = 2 grow_vertical = 2 -mouse_filter = 2 -[node name="BackgroundRect" type="ColorRect" parent="MarginContainer" unique_id=1594037653] -layout_mode = 2 -color = Color(0.0352941, 0.0196078, 0.12549, 0.705882) +[node name="BackgroundRect" type="ColorRect" parent="Container" unique_id=1594037653] +layout_mode = 1 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +color = Color(0.036075003, 0.019499997, 0.13, 0.78431374) -[node name="Particles" type="TextureRect" parent="." unique_id=1748571879] +[node name="Particles" type="TextureRect" parent="Container" unique_id=1748571879] +layout_mode = 1 anchors_preset = 8 anchor_left = 0.5 anchor_top = 0.5 @@ -212,11 +203,11 @@ grow_vertical = 2 mouse_filter = 2 texture = SubResource("ViewportTexture_6hxtc") -[node name="SubViewport" type="SubViewport" parent="Particles" unique_id=1123249182] +[node name="SubViewport" type="SubViewport" parent="Container/Particles" unique_id=1123249182] transparent_bg = true size = Vector2i(1000, 1000) -[node name="GPUParticles2D" type="CPUParticles2D" parent="Particles/SubViewport" unique_id=220592083] +[node name="GPUParticles2D" type="CPUParticles2D" parent="Container/Particles/SubViewport" unique_id=220592083] position = Vector2(500, 500) amount = 20 texture = ExtResource("2_3vg7r") @@ -230,33 +221,32 @@ linear_accel_max = 5.0 linear_accel_curve = SubResource("Curve_brrmr") color_ramp = SubResource("Gradient_0u75y") -[node name="AnnounceContainer" type="VBoxContainer" parent="." unique_id=645433045] +[node name="AnnounceContainer" type="VBoxContainer" parent="Container" unique_id=645433045] +layout_mode = 1 anchors_preset = 15 anchor_right = 1.0 anchor_bottom = 1.0 -offset_top = -627.0 -offset_bottom = 627.0 grow_horizontal = 2 grow_vertical = 2 mouse_filter = 2 theme_override_constants/separation = 4 alignment = 1 -[node name="AnnounceTitle" type="Label" parent="AnnounceContainer" unique_id=1768593559] +[node name="AnnounceTitle" type="Label" parent="Container/AnnounceContainer" unique_id=1768593559] unique_name_in_owner = true layout_mode = 2 text = "NEW_ARTEFACT" label_settings = ExtResource("3_doutq") horizontal_alignment = 1 -[node name="AnnounceText" type="Label" parent="AnnounceContainer" unique_id=768724763] +[node name="AnnounceText" type="Label" parent="Container/AnnounceContainer" unique_id=768724763] unique_name_in_owner = true layout_mode = 2 -text = "TALION_OVERLOADER" +text = "PILE" label_settings = SubResource("LabelSettings_u8fe7") horizontal_alignment = 1 -[node name="ObjectVisualiser" type="TextureRect" parent="AnnounceContainer" unique_id=1180983374] +[node name="ObjectVisualiser" type="TextureRect" parent="Container/AnnounceContainer" unique_id=1180983374] unique_name_in_owner = true layout_mode = 2 size_flags_horizontal = 4 @@ -264,27 +254,46 @@ mouse_filter = 0 texture = SubResource("ViewportTexture_smt8b") stretch_mode = 5 script = ExtResource("5_5vr2f") -info = SubResource("Resource_041ff") +info = SubResource("Resource_bw55c") -[node name="SubViewport" type="SubViewport" parent="AnnounceContainer/ObjectVisualiser" unique_id=1795775056] +[node name="SubViewport" type="SubViewport" parent="Container/AnnounceContainer/ObjectVisualiser" unique_id=1795775056] own_world_3d = true transparent_bg = true size = Vector2i(300, 300) -[node name="AnnouceObject" type="Node3D" parent="AnnounceContainer/ObjectVisualiser/SubViewport" unique_id=1527573801] +[node name="AnnouceObject" type="Node3D" parent="Container/AnnounceContainer/ObjectVisualiser/SubViewport" unique_id=1527573801] unique_name_in_owner = true -transform = Transform3D(-0.47699222, 0, 0.878631, 0, 0.9995686, 0, -0.8787731, 0, -0.47690943, 0, 0, 0) +transform = Transform3D(0.49246997, -0.037707455, 0.8692438, 0.6477846, -0.65092874, -0.39512447, 0.5810579, 0.75763476, -0.2962104, 0, 0, 0) -[node name="Camera3D" type="Camera3D" parent="AnnounceContainer/ObjectVisualiser/SubViewport" unique_id=173755338] +[node name="Camera3D" type="Camera3D" parent="Container/AnnounceContainer/ObjectVisualiser/SubViewport" unique_id=173755338] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1) keep_aspect = 0 current = true fov = 20.0 -[node name="WorldEnvironment" type="WorldEnvironment" parent="AnnounceContainer/ObjectVisualiser/SubViewport" unique_id=1135825303] +[node name="WorldEnvironment" type="WorldEnvironment" parent="Container/AnnounceContainer/ObjectVisualiser/SubViewport" unique_id=1135825303] environment = ExtResource("13_uyc6b") -[node name="OkButton" type="Button" parent="AnnounceContainer" unique_id=249785792] +[node name="HBoxContainer" type="HBoxContainer" parent="Container/AnnounceContainer" unique_id=1714739118] +custom_minimum_size = Vector2(0, 71.475) +layout_mode = 2 +theme_override_constants/separation = 8 +alignment = 1 + +[node name="TextureRect" type="TextureRect" parent="Container/AnnounceContainer/HBoxContainer" unique_id=1247508373] +custom_minimum_size = Vector2(30, 30) +layout_mode = 2 +texture = ExtResource("12_041ff") +expand_mode = 1 +stretch_mode = 5 + +[node name="Label" type="Label" parent="Container/AnnounceContainer/HBoxContainer" unique_id=812537515] +layout_mode = 2 +text = "ADD_A_PASSIVE_EFFECT_FOR_THIS_TRAVEL" +label_settings = SubResource("LabelSettings_2sroa") +horizontal_alignment = 1 + +[node name="OkButton" type="Button" parent="Container/AnnounceContainer" unique_id=249785792] unique_name_in_owner = true layout_mode = 2 size_flags_horizontal = 4 diff --git a/entities/interactable_3d/cristal/cristal.tscn b/entities/interactable_3d/cristal/cristal.tscn index b48082d..44e254c 100644 --- a/entities/interactable_3d/cristal/cristal.tscn +++ b/entities/interactable_3d/cristal/cristal.tscn @@ -77,8 +77,11 @@ shape = SubResource("BoxShape3D_nvfy2") [node name="ArtefactAnnounce" parent="." unique_id=114641656 instance=ExtResource("8_3rrt0")] unique_name_in_owner = true +visible = true +announce_artefact = null [node name="MutationAnnounce" parent="." unique_id=1447182082 instance=ExtResource("9_247i2")] unique_name_in_owner = true +visible = false [editable path="CristalModelCrack"] diff --git a/entities/interactable_3d/cristal/mutation_announce.tscn b/entities/interactable_3d/cristal/mutation_announce.tscn index e853920..0e73865 100644 --- a/entities/interactable_3d/cristal/mutation_announce.tscn +++ b/entities/interactable_3d/cristal/mutation_announce.tscn @@ -14,10 +14,11 @@ [ext_resource type="PackedScene" uid="uid://mwk845fx5ye2" path="res://entities/interactable_3d/cristal/assets/cristal.blend" id="12_wy2oe"] [ext_resource type="Environment" uid="uid://bxyp24f85p0xf" path="res://gui/game/assets/gui_3d_environment.tres" id="13_kyl1n"] [ext_resource type="Theme" uid="uid://bgcmd213j6gk1" path="res://gui/ressources/hud.tres" id="14_d2gpy"] +[ext_resource type="Texture2D" uid="uid://cwewx7cdy085h" path="res://common/icons/help-hexagon.svg" id="14_vlom2"] [ext_resource type="Texture2D" uid="uid://dcgnamu7sb3ov" path="res://common/icons/bolt.svg" id="15_hu5cq"] [sub_resource type="ViewportTexture" id="ViewportTexture_6hxtc"] -viewport_path = NodePath("Particles/SubViewport") +viewport_path = NodePath("Container/Particles/SubViewport") [sub_resource type="Curve" id="Curve_brrmr"] _limits = [-200.0, 200.0, 0.0, 1.0] @@ -34,7 +35,7 @@ font_size = 50 font_color = Color(1, 0.6509804, 0.09019608, 1) [sub_resource type="ViewportTexture" id="ViewportTexture_smt8b"] -viewport_path = NodePath("AnnounceContainer/ObjectVisualiser/SubViewport") +viewport_path = NodePath("Container/AnnounceContainer/ObjectVisualiser/SubViewport") [sub_resource type="Resource" id="Resource_rjaqi"] script = ExtResource("8_0osya") @@ -49,12 +50,15 @@ subtitle = "Mutation" important_stat_icon = ExtResource("6_n403s") sections = Array[ExtResource("8_0osya")]([SubResource("Resource_rjaqi")]) +[sub_resource type="LabelSettings" id="LabelSettings_02o74"] +font_size = 23 + [sub_resource type="Animation" id="Animation_aao0q"] length = 0.001 tracks/0/type = "value" tracks/0/imported = false tracks/0/enabled = true -tracks/0/path = NodePath("MutationAnnounce/AnnounceContainer:theme_override_constants/separation") +tracks/0/path = NodePath("MutationAnnounce/Container/AnnounceContainer:theme_override_constants/separation") tracks/0/interp = 1 tracks/0/loop_wrap = true tracks/0/keys = { @@ -66,7 +70,7 @@ tracks/0/keys = { tracks/1/type = "value" tracks/1/imported = false tracks/1/enabled = true -tracks/1/path = NodePath("MutationAnnounce/Particles:modulate") +tracks/1/path = NodePath("MutationAnnounce/Container/Particles:modulate") tracks/1/interp = 1 tracks/1/loop_wrap = true tracks/1/keys = { @@ -78,19 +82,19 @@ tracks/1/keys = { tracks/2/type = "value" tracks/2/imported = false tracks/2/enabled = true -tracks/2/path = NodePath("MutationAnnounce/AnnounceContainer:modulate") +tracks/2/path = NodePath("MutationAnnounce:visible") tracks/2/interp = 1 tracks/2/loop_wrap = true tracks/2/keys = { -"times": PackedFloat32Array(0), +"times": PackedFloat32Array(0.03333333), "transitions": PackedFloat32Array(1), -"update": 0, -"values": [Color(1, 1, 1, 1)] +"update": 1, +"values": [false] } tracks/3/type = "value" tracks/3/imported = false tracks/3/enabled = true -tracks/3/path = NodePath("MutationAnnounce/MarginContainer/BackgroundRect:modulate:a") +tracks/3/path = NodePath("MutationAnnounce/Container:modulate:a") tracks/3/interp = 1 tracks/3/loop_wrap = true tracks/3/keys = { @@ -99,18 +103,6 @@ tracks/3/keys = { "update": 1, "values": [1.0] } -tracks/4/type = "value" -tracks/4/imported = false -tracks/4/enabled = true -tracks/4/path = NodePath("MutationAnnounce:visible") -tracks/4/interp = 1 -tracks/4/loop_wrap = true -tracks/4/keys = { -"times": PackedFloat32Array(0.03333333), -"transitions": PackedFloat32Array(1), -"update": 1, -"values": [false] -} [sub_resource type="Animation" id="Animation_b6hac"] resource_name = "appear" @@ -118,7 +110,7 @@ length = 0.8 tracks/0/type = "value" tracks/0/imported = false tracks/0/enabled = true -tracks/0/path = NodePath("MutationAnnounce/AnnounceContainer:theme_override_constants/separation") +tracks/0/path = NodePath("MutationAnnounce/Container/AnnounceContainer:theme_override_constants/separation") tracks/0/interp = 2 tracks/0/loop_wrap = true tracks/0/keys = { @@ -130,7 +122,7 @@ tracks/0/keys = { tracks/1/type = "value" tracks/1/imported = false tracks/1/enabled = true -tracks/1/path = NodePath("MutationAnnounce/Particles:modulate") +tracks/1/path = NodePath("MutationAnnounce/Container/Particles:modulate") tracks/1/interp = 2 tracks/1/loop_wrap = true tracks/1/keys = { @@ -142,39 +134,27 @@ tracks/1/keys = { tracks/2/type = "value" tracks/2/imported = false tracks/2/enabled = true -tracks/2/path = NodePath("MutationAnnounce/AnnounceContainer:modulate") -tracks/2/interp = 2 +tracks/2/path = NodePath("MutationAnnounce:visible") +tracks/2/interp = 1 tracks/2/loop_wrap = true tracks/2/keys = { -"times": PackedFloat32Array(0.2, 0.8), -"transitions": PackedFloat32Array(1, 1), -"update": 0, -"values": [Color(1, 1, 1, 0), Color(1, 1, 1, 1)] -} -tracks/3/type = "value" -tracks/3/imported = false -tracks/3/enabled = true -tracks/3/path = NodePath("MutationAnnounce/MarginContainer/BackgroundRect:modulate:a") -tracks/3/interp = 1 -tracks/3/loop_wrap = true -tracks/3/keys = { -"times": PackedFloat32Array(0.03333333, 0.8), -"transitions": PackedFloat32Array(1, 1), -"update": 0, -"values": [0.0, 0.8] -} -tracks/4/type = "value" -tracks/4/imported = false -tracks/4/enabled = true -tracks/4/path = NodePath("MutationAnnounce:visible") -tracks/4/interp = 1 -tracks/4/loop_wrap = true -tracks/4/keys = { "times": PackedFloat32Array(0, 0.16666667), "transitions": PackedFloat32Array(1, 1), "update": 1, "values": [false, true] } +tracks/3/type = "value" +tracks/3/imported = false +tracks/3/enabled = true +tracks/3/path = NodePath("MutationAnnounce/Container:modulate:a") +tracks/3/interp = 2 +tracks/3/loop_wrap = true +tracks/3/keys = { +"times": PackedFloat32Array(0.13333334, 0.8), +"transitions": PackedFloat32Array(1, 1), +"update": 0, +"values": [0.0, 1.0] +} [sub_resource type="AnimationLibrary" id="AnimationLibrary_1aa3a"] _data = { @@ -184,23 +164,28 @@ _data = { [node name="MutationAnnounce" type="CanvasLayer" unique_id=1447182082] layer = 2 -visible = false script = ExtResource("1_02o74") -[node name="MarginContainer" type="MarginContainer" parent="." unique_id=1853133518] +[node name="Container" type="Control" parent="." unique_id=250759747] +layout_mode = 3 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 + +[node name="BackgroundRect" type="ColorRect" parent="Container" unique_id=1594037653] +layout_mode = 1 anchors_preset = 15 anchor_right = 1.0 anchor_bottom = 1.0 grow_horizontal = 2 grow_vertical = 2 mouse_filter = 2 +color = Color(0.03529412, 0.019607844, 0.12941177, 0.78431374) -[node name="BackgroundRect" type="ColorRect" parent="MarginContainer" unique_id=1594037653] -layout_mode = 2 -mouse_filter = 2 -color = Color(0.0352941, 0.0196078, 0.12549, 0.705882) - -[node name="Particles" type="TextureRect" parent="." unique_id=1748571879] +[node name="Particles" type="TextureRect" parent="Container" unique_id=1748571879] +layout_mode = 1 anchors_preset = 8 anchor_left = 0.5 anchor_top = 0.5 @@ -215,11 +200,11 @@ grow_vertical = 2 mouse_filter = 2 texture = SubResource("ViewportTexture_6hxtc") -[node name="SubViewport" type="SubViewport" parent="Particles" unique_id=1123249182] +[node name="SubViewport" type="SubViewport" parent="Container/Particles" unique_id=1123249182] transparent_bg = true size = Vector2i(1000, 1000) -[node name="GPUParticles2D" type="CPUParticles2D" parent="Particles/SubViewport" unique_id=220592083] +[node name="GPUParticles2D" type="CPUParticles2D" parent="Container/Particles/SubViewport" unique_id=220592083] position = Vector2(500, 500) amount = 20 texture = ExtResource("2_vlom2") @@ -233,32 +218,31 @@ linear_accel_max = 5.0 linear_accel_curve = SubResource("Curve_brrmr") color_ramp = SubResource("Gradient_0u75y") -[node name="AnnounceContainer" type="VBoxContainer" parent="." unique_id=645433045] +[node name="AnnounceContainer" type="VBoxContainer" parent="Container" unique_id=645433045] +layout_mode = 1 anchors_preset = 15 anchor_right = 1.0 anchor_bottom = 1.0 -offset_top = -627.0 -offset_bottom = 627.0 grow_horizontal = 2 grow_vertical = 2 theme_override_constants/separation = 4 alignment = 1 -[node name="AnnounceTitle" type="Label" parent="AnnounceContainer" unique_id=1768593559] +[node name="AnnounceTitle" type="Label" parent="Container/AnnounceContainer" unique_id=1768593559] unique_name_in_owner = true layout_mode = 2 text = "NEW_MUTATION" label_settings = ExtResource("3_5hs4t") horizontal_alignment = 1 -[node name="AnnounceText" type="Label" parent="AnnounceContainer" unique_id=768724763] +[node name="AnnounceText" type="Label" parent="Container/AnnounceContainer" unique_id=768724763] unique_name_in_owner = true layout_mode = 2 text = "Ancien" label_settings = SubResource("LabelSettings_u8fe7") horizontal_alignment = 1 -[node name="ObjectVisualiser" type="TextureRect" parent="AnnounceContainer" unique_id=1180983374] +[node name="ObjectVisualiser" type="TextureRect" parent="Container/AnnounceContainer" unique_id=1180983374] unique_name_in_owner = true layout_mode = 2 size_flags_horizontal = 4 @@ -267,7 +251,7 @@ stretch_mode = 5 script = ExtResource("5_qu1xy") info = SubResource("Resource_kgj7d") -[node name="MutationIconTextureRect" type="TextureRect" parent="AnnounceContainer/ObjectVisualiser" unique_id=312214951] +[node name="MutationIconTextureRect" type="TextureRect" parent="Container/AnnounceContainer/ObjectVisualiser" unique_id=312214951] unique_name_in_owner = true layout_mode = 1 anchors_preset = 8 @@ -283,28 +267,47 @@ grow_horizontal = 2 grow_vertical = 2 texture = ExtResource("6_n403s") -[node name="SubViewport" type="SubViewport" parent="AnnounceContainer/ObjectVisualiser" unique_id=1795775056] +[node name="SubViewport" type="SubViewport" parent="Container/AnnounceContainer/ObjectVisualiser" unique_id=1795775056] own_world_3d = true transparent_bg = true size = Vector2i(300, 300) -[node name="AnnouceObject" type="Node3D" parent="AnnounceContainer/ObjectVisualiser/SubViewport" unique_id=1527573801] +[node name="AnnouceObject" type="Node3D" parent="Container/AnnounceContainer/ObjectVisualiser/SubViewport" unique_id=1527573801] unique_name_in_owner = true -transform = Transform3D(0.9998366, 0, 0, 0, 0.9995686, 0, 0, 0, 0.9996744, 0, 0, 0) +transform = Transform3D(-0.66996473, 0.079749085, -0.73779225, -0.56796145, 0.58463466, 0.5788058, 0.47777697, 0.80682886, -0.34651512, 0, 0, 0) -[node name="cristal" parent="AnnounceContainer/ObjectVisualiser/SubViewport/AnnouceObject" unique_id=1362490576 instance=ExtResource("12_wy2oe")] +[node name="cristal" parent="Container/AnnounceContainer/ObjectVisualiser/SubViewport/AnnouceObject" unique_id=1362490576 instance=ExtResource("12_wy2oe")] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -1, 0) -[node name="Camera3D" type="Camera3D" parent="AnnounceContainer/ObjectVisualiser/SubViewport" unique_id=173755338] +[node name="Camera3D" type="Camera3D" parent="Container/AnnounceContainer/ObjectVisualiser/SubViewport" unique_id=173755338] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 10) keep_aspect = 0 current = true fov = 20.0 -[node name="WorldEnvironment" type="WorldEnvironment" parent="AnnounceContainer/ObjectVisualiser/SubViewport" unique_id=1135825303] +[node name="WorldEnvironment" type="WorldEnvironment" parent="Container/AnnounceContainer/ObjectVisualiser/SubViewport" unique_id=1135825303] environment = ExtResource("13_kyl1n") -[node name="OkButton" type="Button" parent="AnnounceContainer" unique_id=249785792] +[node name="HBoxContainer" type="HBoxContainer" parent="Container/AnnounceContainer" unique_id=1306240981] +custom_minimum_size = Vector2(0, 71.475) +layout_mode = 2 +theme_override_constants/separation = 8 +alignment = 1 + +[node name="TextureRect" type="TextureRect" parent="Container/AnnounceContainer/HBoxContainer" unique_id=1018668980] +custom_minimum_size = Vector2(30, 30) +layout_mode = 2 +texture = ExtResource("14_vlom2") +expand_mode = 1 +stretch_mode = 5 + +[node name="Label" type="Label" parent="Container/AnnounceContainer/HBoxContainer" unique_id=1496120454] +layout_mode = 2 +text = "THIS_MUTATION_CAN_NOW_APPEAR_ON_SEEDS" +label_settings = SubResource("LabelSettings_02o74") +horizontal_alignment = 1 + +[node name="OkButton" type="Button" parent="Container/AnnounceContainer" unique_id=249785792] unique_name_in_owner = true layout_mode = 2 size_flags_horizontal = 4 diff --git a/entities/interactable_3d/cristal/scripts/artefact_announce.gd b/entities/interactable_3d/cristal/scripts/artefact_announce.gd index f12d283..58ac829 100644 --- a/entities/interactable_3d/cristal/scripts/artefact_announce.gd +++ b/entities/interactable_3d/cristal/scripts/artefact_announce.gd @@ -55,29 +55,29 @@ func update_rotation(delta): func set_announce_artefact(artefact := announce_artefact): - - for c in %AnnouceObject.get_children(): - c.queue_free() + if is_node_ready(): + for c in %AnnouceObject.get_children(): + c.queue_free() - if is_node_ready() and artefact: + if is_node_ready() and artefact: - %AnnounceTitle.text = "NEW_ARTEFACT" - %AnnounceText.text = artefact.get_artefact_name() - %ObjectVisualiser.info = artefact.card_info() + %AnnounceTitle.text = "NEW_ARTEFACT" + %AnnounceText.text = artefact.get_artefact_name() + %ObjectVisualiser.info = artefact.card_info() - %AnnouceObject.add_child( - artefact.get_3d_scene().instantiate() - ) + %AnnouceObject.add_child( + artefact.get_3d_scene().instantiate() + ) - if not visible: - %AnimationPlayer.play("appear") - Input.mouse_mode = Input.MOUSE_MODE_VISIBLE - AudioManager.play_sfx("Unlock_tool") - elif artefact == null and visible: - %AnimationPlayer.play_backwards("appear") - - if not Engine.is_editor_hint(): - Input.mouse_mode = Input.MOUSE_MODE_CAPTURED + if not visible: + %AnimationPlayer.play("appear") + Input.mouse_mode = Input.MOUSE_MODE_VISIBLE + AudioManager.play_sfx("Unlock_tool") + elif artefact == null and visible: + %AnimationPlayer.play_backwards("appear") + + if not Engine.is_editor_hint(): + Input.mouse_mode = Input.MOUSE_MODE_CAPTURED announce_artefact = artefact diff --git a/entities/interactable_3d/cristal/scripts/cristal.gd b/entities/interactable_3d/cristal/scripts/cristal.gd index d84477f..803cc90 100644 --- a/entities/interactable_3d/cristal/scripts/cristal.gd +++ b/entities/interactable_3d/cristal/scripts/cristal.gd @@ -42,6 +42,10 @@ func unlock_mutation(): get_tree().create_timer(1.).timeout.connect( func (): %MutationAnnounce.announce_mutation = new_mutation ); + + if progression.mutations_unlocked == len(progression.get_all_mutations()): + SteamConnection.unlock_achievement(SteamConnection.ACH_UNLOCK_ALL_MUTATION) + else: var talion_relay = TalionRelayArtifact.new() diff --git a/entities/player_3d/dead_orchid.tscn b/entities/player_3d/dead_orchid.tscn index e7b6696..b1ff86d 100644 --- a/entities/player_3d/dead_orchid.tscn +++ b/entities/player_3d/dead_orchid.tscn @@ -1,6 +1,7 @@ [gd_scene format=3 uid="uid://b2tn4biidxwdo"] [ext_resource type="PackedScene" uid="uid://111umh57ekg5" path="res://entities/player_3d/resources/3d_orchid.blend" id="1_4gn86"] +[ext_resource type="Script" uid="uid://belels58bosgj" path="res://entities/player_3d/scripts/dead_orchid.gd" id="1_lhvrd"] [sub_resource type="CapsuleShape3D" id="CapsuleShape3D_xuy43"] radius = 0.42504883 @@ -8,6 +9,7 @@ height = 0.8718262 [node name="DeadOrchid" type="RigidBody3D" unique_id=1056532235] transform = Transform3D(-0.98981106, 0, 0.14238709, 0, 1, 0, -0.14238709, 0, -0.98981106, 0, 0, 0) +script = ExtResource("1_lhvrd") [node name="3d_orchid" parent="." unique_id=1207424236 instance=ExtResource("1_4gn86")] diff --git a/entities/player_3d/scripts/dead_orchid.gd b/entities/player_3d/scripts/dead_orchid.gd new file mode 100644 index 0000000..d1fb830 --- /dev/null +++ b/entities/player_3d/scripts/dead_orchid.gd @@ -0,0 +1,2 @@ +extends RigidBody3D +class_name DeadOrchid diff --git a/entities/player_3d/scripts/dead_orchid.gd.uid b/entities/player_3d/scripts/dead_orchid.gd.uid new file mode 100644 index 0000000..82cb1f8 --- /dev/null +++ b/entities/player_3d/scripts/dead_orchid.gd.uid @@ -0,0 +1 @@ +uid://belels58bosgj diff --git a/entities/player_3d/scripts/player_3d.gd b/entities/player_3d/scripts/player_3d.gd index cb285f7..9f96bcb 100644 --- a/entities/player_3d/scripts/player_3d.gd +++ b/entities/player_3d/scripts/player_3d.gd @@ -16,6 +16,8 @@ var query_mouse := false @export var controlling_player = true +var kick_old_body_ach_sended = false + func _ready(): Dialogic.timeline_started.connect( func(): @@ -84,10 +86,13 @@ func _physics_process(delta): move_and_slide() for i in get_slide_collision_count(): var collision = get_slide_collision(i) - if collision.get_collider() is RigidBody3D: + if collision.get_collider() is RigidBody3D: collision.get_collider().apply_central_impulse( -collision.get_normal() * PUSH_FORCE ) + if not kick_old_body_ach_sended and collision.get_collider() is DeadOrchid: + kick_old_body_ach_sended = true + SteamConnection.unlock_achievement(SteamConnection.ACH_KICK_YOUR_OLD_BODY) func update_mouse_hovered_actions() -> void: diff --git a/entities/scripts/entity.gd b/entities/scripts/entity.gd index f5b3449..fb6da3a 100644 --- a/entities/scripts/entity.gd +++ b/entities/scripts/entity.gd @@ -6,7 +6,6 @@ var region : Region : get(): return terrain if terrain is Region else null func set_terrain(v : Terrain): - print(v) terrain = v func save() -> EntityData: diff --git a/gui/game/card/card_visualiser.tscn b/gui/game/card/card_visualiser.tscn index 3b199bb..ab30fff 100644 --- a/gui/game/card/card_visualiser.tscn +++ b/gui/game/card/card_visualiser.tscn @@ -46,16 +46,40 @@ metadata/_custom_type_script = "uid://dj2pv1hiwjfv0" shader = ExtResource("1_x54se") shader_parameter/fov = 90.0 shader_parameter/cull_back = true -shader_parameter/y_rot = -7e-45 -shader_parameter/x_rot = 1.237e-42 +shader_parameter/y_rot = -6e-45 +shader_parameter/x_rot = 6e-45 shader_parameter/inset = 0.0 [sub_resource type="Animation" id="Animation_1et8x"] length = 0.3 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("SubViewportContainer/SubViewport/CardContainer/Card:modulate") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [Color(1, 1, 1, 1)] +} [sub_resource type="Animation" id="Animation_7xkgc"] resource_name = "appear" -length = 0.2 +length = 0.1 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("SubViewportContainer/SubViewport/CardContainer/Card:modulate") +tracks/0/interp = 2 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0.033333335, 0.06666667), +"transitions": PackedFloat32Array(1, 1), +"update": 0, +"values": [Color(1, 1, 1, 0), Color(1, 1, 1, 1)] +} [sub_resource type="AnimationLibrary" id="AnimationLibrary_r0jrf"] _data = { @@ -64,6 +88,7 @@ _data = { } [node name="CardVisualiser" type="MarginContainer" unique_id=1151339649] +modulate = Color(0.8839839, 0.4713691, 0.50117576, 1) anchors_preset = 8 anchor_left = 0.5 anchor_top = 0.5 @@ -72,7 +97,7 @@ anchor_bottom = 0.5 offset_left = -125.0 offset_top = -30.0 offset_right = 225.0 -offset_bottom = 121.0 +offset_bottom = 132.0 grow_horizontal = 2 grow_vertical = 2 scale = Vector2(1.0000002, 1.0000002) @@ -97,19 +122,19 @@ mouse_filter = 2 unique_name_in_owner = true transparent_bg = true handle_input_locally = false -size = Vector2i(400, 201) +size = Vector2i(400, 212) size_2d_override_stretch = true render_target_update_mode = 4 [node name="CardContainer" type="MarginContainer" parent="SubViewportContainer/SubViewport" unique_id=1240228608] unique_name_in_owner = true offset_right = 400.0 -offset_bottom = 201.0 +offset_bottom = 212.0 mouse_filter = 2 theme_override_constants/margin_left = 25 theme_override_constants/margin_top = 25 theme_override_constants/margin_right = 25 -theme_override_constants/margin_bottom = 25 +theme_override_constants/margin_bottom = 36 [node name="Card" parent="SubViewportContainer/SubViewport/CardContainer" unique_id=1169470018 instance=ExtResource("1_we78f")] unique_name_in_owner = true diff --git a/gui/game/card/scripts/card_visualiser.gd b/gui/game/card/scripts/card_visualiser.gd index 9436bc6..f174545 100644 --- a/gui/game/card/scripts/card_visualiser.gd +++ b/gui/game/card/scripts/card_visualiser.gd @@ -84,5 +84,6 @@ func update(): %Card.info = card_info %Card.down_arrow = down_arrow %Card.update() + %AnimationPlayer.play("appear") updated_on_last_frame = true diff --git a/gui/game/scripts/game_gui.gd b/gui/game/scripts/game_gui.gd index a06e4b9..b839d9f 100644 --- a/gui/game/scripts/game_gui.gd +++ b/gui/game/scripts/game_gui.gd @@ -148,7 +148,6 @@ func spawn_score_particle( func set_objective_text(v : String = objective_text): - print(v) var old_v = objective_text objective_text = v if is_node_ready() and old_v != objective_text: diff --git a/gui/game/tutorial/scripts/tutorial.gd b/gui/game/tutorial/scripts/tutorial.gd index 0307e2b..5a31950 100644 --- a/gui/game/tutorial/scripts/tutorial.gd +++ b/gui/game/tutorial/scripts/tutorial.gd @@ -159,6 +159,7 @@ func finish_tutorial(): region.data.update() succeded.emit() success = true + SteamConnection.unlock_achievement(SteamConnection.ACH_FINISH_TUTORIAL) class Step: diff --git a/project.godot b/project.godot index e2b9a15..2c0da00 100644 --- a/project.godot +++ b/project.godot @@ -256,7 +256,7 @@ environment/defaults/default_clear_color=Color(0.0617213, 0.0605653, 0.169189, 1 [steam] -initialization/app_id=0 -initialization/initialize_on_startup=false -initialization/embed_callbacks=false +initialization/app_id=4690960 +initialization/initialize_on_startup=true +initialization/embed_callbacks=true multiplayer_peer/max_channels=4 diff --git a/stages/3d_scenes/astra_base/scripts/astra_base.gd b/stages/3d_scenes/astra_base/scripts/astra_base.gd index e101b82..ec3513a 100644 --- a/stages/3d_scenes/astra_base/scripts/astra_base.gd +++ b/stages/3d_scenes/astra_base/scripts/astra_base.gd @@ -15,14 +15,14 @@ const LIFT_TIME := 2 var chosen_incubator_id := -1 # Cheat Code -func _input(_e): - if ( - Input.is_action_pressed("drop") - and Input.is_action_pressed("move_right") - and Input.is_action_pressed("move_left") - and Input.is_action_just_pressed("action") - ): - finish_scene() +# func _input(_e): +# if ( +# Input.is_action_pressed("drop") +# and Input.is_action_pressed("move_right") +# and Input.is_action_pressed("move_left") +# and Input.is_action_just_pressed("action") +# ): +# finish_scene() # Called when the node enters the scene tree for the first time. func _ready(): diff --git a/stages/3d_scenes/borea_base/scripts/borea_base.gd b/stages/3d_scenes/borea_base/scripts/borea_base.gd index 2900b19..8215f63 100644 --- a/stages/3d_scenes/borea_base/scripts/borea_base.gd +++ b/stages/3d_scenes/borea_base/scripts/borea_base.gd @@ -9,6 +9,5 @@ func _ready(): func _on_ai_receptacle_clicked(): %Player3D.controlling_player = false Input.mouse_mode = Input.MOUSE_MODE_VISIBLE - %Credits.appear() - - + SteamConnection.unlock_achievement(SteamConnection.ACH_MEET_DEMETER) + %Credits.appear() \ No newline at end of file diff --git a/stages/3d_scenes/cockpit_scene/cockpit.tscn b/stages/3d_scenes/cockpit_scene/cockpit.tscn index 0b97e6c..2906b4a 100644 --- a/stages/3d_scenes/cockpit_scene/cockpit.tscn +++ b/stages/3d_scenes/cockpit_scene/cockpit.tscn @@ -15,7 +15,7 @@ [ext_resource type="PackedScene" uid="uid://ci4x1q326lvyy" path="res://stages/3d_scenes/cockpit_scene/cockpit_elements/mutation_discovered_screen/mutation_discovery_screen.tscn" id="15_q4ojn"] [ext_resource type="PackedScene" uid="uid://cn2hob1i72a25" path="res://stages/3d_scenes/cockpit_scene/fail_tutorial.tscn" id="15_wrlf0"] [ext_resource type="PackedScene" uid="uid://u3o5g8lmck74" path="res://entities/interactable_3d/orchid_saver/orchid_saver.tscn" id="16_nfjul"] -[ext_resource type="Texture2D" uid="uid://d3k7rl7nbp7yx" path="res://common/icons/device-floppy.svg" id="17_ggekp"] +[ext_resource type="Texture2D" uid="uid://dwq22io1cc27y" path="res://common/icons/restore.svg" id="17_ggekp"] [ext_resource type="PackedScene" uid="uid://blvetnnib2ks0" path="res://stages/3d_scenes/cockpit_scene/assets/3d/cockpit2.blend" id="17_omtjc"] [sub_resource type="Animation" id="Animation_pxmsf"] @@ -230,7 +230,7 @@ autoplay = &"trailer" unique_name_in_owner = true transform = Transform3D(-4.371139e-08, 0, -1, 0, 1, 0, 1, 0, -4.371139e-08, 0.024999544, -1.3700237, -3.9526832) screen_icon = ExtResource("17_ggekp") -screen_text = "SAVE_ORCHID_MEMORY_AND_RESPAWN" +screen_text = "RESPAWN_TO_LAST_BASE" [connection signal="clicked" from="Phone" to="." method="_on_phone_clicked"] [connection signal="clicked" from="OrchidSaver" to="." method="_on_orchid_saver_clicked"] diff --git a/stages/3d_scenes/ship_garage/scripts/ship_garage.gd b/stages/3d_scenes/ship_garage/scripts/ship_garage.gd index 422dd1c..e90f47c 100644 --- a/stages/3d_scenes/ship_garage/scripts/ship_garage.gd +++ b/stages/3d_scenes/ship_garage/scripts/ship_garage.gd @@ -5,15 +5,15 @@ const DIALOG_PATH = "res://dialogs/timelines/1_waking_up/3_demeter_ship_presenta var jingle_played := false # Cheat Code -func _input(_e): - if ( - Input.is_action_pressed("drop") - and Input.is_action_pressed("move_right") - and Input.is_action_pressed("move_left") - and Input.is_action_just_pressed("action") - ): - GameInfo.game_data.dialogs_done.append(DIALOG_PATH) - finish_scene() +# func _input(_e): +# if ( +# Input.is_action_pressed("drop") +# and Input.is_action_pressed("move_right") +# and Input.is_action_pressed("move_left") +# and Input.is_action_just_pressed("action") +# ): +# GameInfo.game_data.dialogs_done.append(DIALOG_PATH) +# finish_scene() # Called when the node enters the scene tree for the first time. func _ready(): diff --git a/stages/3d_scenes/vending_machine_room/scripts/vending_machine_3d.gd b/stages/3d_scenes/vending_machine_room/scripts/vending_machine_3d.gd index ef593f4..1e7e718 100644 --- a/stages/3d_scenes/vending_machine_room/scripts/vending_machine_3d.gd +++ b/stages/3d_scenes/vending_machine_room/scripts/vending_machine_3d.gd @@ -204,6 +204,10 @@ func _on_fetch_interactable_clicked(): used.emit() + get_tree().create_timer(1.).timeout.connect( + func (): %ArtefactAnnounce.announce_artefact = get_choosen_artefact() + ); + get_tree().create_timer(3.).timeout.connect( func (): state = State.OFF diff --git a/stages/3d_scenes/vending_machine_room/vending_machine_3d.tscn b/stages/3d_scenes/vending_machine_room/vending_machine_3d.tscn index 768ed66..5f52207 100644 --- a/stages/3d_scenes/vending_machine_room/vending_machine_3d.tscn +++ b/stages/3d_scenes/vending_machine_room/vending_machine_3d.tscn @@ -12,6 +12,7 @@ [ext_resource type="Texture2D" uid="uid://dcgnamu7sb3ov" path="res://common/icons/bolt.svg" id="9_p1py0"] [ext_resource type="Script" uid="uid://cpdtt25r2ne23" path="res://stages/3d_scenes/vending_machine_room/scripts/vending_machine_select_interactable.gd" id="10_js246"] [ext_resource type="AudioStream" uid="uid://bynxc84w03so4" path="res://stages/3d_scenes/vending_machine_room/assets/sounds/alex_jauk-vending-machines-ambient-noise-236027.mp3" id="12_js246"] +[ext_resource type="PackedScene" uid="uid://bhbc1monbgumh" path="res://entities/interactable_3d/cristal/artefact_announce.tscn" id="13_tvcj6"] [sub_resource type="Resource" id="Resource_vrdoi"] script = ExtResource("4_tvcj6") @@ -325,6 +326,11 @@ volume_db = -25.143 autoplay = true bus = &"Sfx" +[node name="ArtefactAnnounce" parent="." unique_id=1447182082 instance=ExtResource("13_tvcj6")] +unique_name_in_owner = true +visible = false +announce_artefact = null + [connection signal="clicked" from="Select1Interactable" to="." method="_on_select_1_interactable_clicked"] [connection signal="clicked" from="Select2Interactable" to="." method="_on_select_2_interactable_clicked"] [connection signal="clicked" from="PayInteractable" to="." method="_on_pay_interactable_clicked"] diff --git a/stages/intro/scripts/intro.gd b/stages/intro/scripts/intro.gd index c3e485d..e281f23 100644 --- a/stages/intro/scripts/intro.gd +++ b/stages/intro/scripts/intro.gd @@ -11,15 +11,15 @@ var pass_asked := false var tutorial_started := false # Cheat Code -func _input(_e): - if ( - Input.is_action_pressed("drop") - and Input.is_action_pressed("move_right") - and Input.is_action_pressed("move_left") - and Input.is_action_just_pressed("action") - ): - pass_intro() - %SparkParticles.emitting = false +# func _input(_e): +# if ( +# Input.is_action_pressed("drop") +# and Input.is_action_pressed("move_right") +# and Input.is_action_pressed("move_left") +# and Input.is_action_just_pressed("action") +# ): +# pass_intro() +# %SparkParticles.emitting = false func _process(delta): %TopologyMap.texture.noise.offset += Vector3(delta * SPEED, delta * SPEED, 0.) diff --git a/stages/terrain/region/scripts/region.gd b/stages/terrain/region/scripts/region.gd index b75db67..fefa624 100644 --- a/stages/terrain/region/scripts/region.gd +++ b/stages/terrain/region/scripts/region.gd @@ -46,25 +46,26 @@ var data_last_updated = 0. @onready var camera : RegionCamera = %Camera # Cheat Code -func _input(_e): - if ( - Input.is_action_pressed("drop") - and Input.is_action_pressed("move_right") - and Input.is_action_pressed("move_left") - and Input.is_action_just_pressed("action") - ): - data.succeded.emit() - data.state = RegionData.State.SUCCEEDED - # data.update() +# func _input(_e): +# if ( +# Input.is_action_pressed("drop") +# and Input.is_action_pressed("move_right") +# and Input.is_action_pressed("move_left") +# and Input.is_action_just_pressed("action") +# ): +# if data.state != RegionData.State.SUCCEEDED: +# data.succeded.emit() +# data.state = RegionData.State.SUCCEEDED +# # data.update() - if ( - Input.is_action_pressed("drop") - and Input.is_action_pressed("move_right") - and Input.is_action_pressed("move_left") - and Input.is_action_just_pressed("move_pointer") - ): - data.charges = 0 - data.state = RegionData.State.FAILED +# if ( +# Input.is_action_pressed("drop") +# and Input.is_action_pressed("move_right") +# and Input.is_action_pressed("move_left") +# and Input.is_action_just_pressed("move_pointer") +# ): +# data.charges = 0 +# data.state = RegionData.State.FAILED func _init(): data = GameInfo.game_data.current_region_data diff --git a/stages/title_screen/scripts/title_screen.gd b/stages/title_screen/scripts/title_screen.gd index 74d3c5f..c01dbc0 100644 --- a/stages/title_screen/scripts/title_screen.gd +++ b/stages/title_screen/scripts/title_screen.gd @@ -10,6 +10,8 @@ var rotating := false var prev_mouse_pos : Vector2 var next_mouse_pos : Vector2 +var planet_spin_ach_sended = false + func _ready(): %Version.text = ProjectSettings.get_setting("application/config/version") %Start.text = tr("CONTINUE") if GameInfo.game_data else tr("START") @@ -60,6 +62,10 @@ func _process(delta): %Planet3d.rotate(Vector3.UP, planet_rotation.x * delta) %Planet3d.rotate(Vector3.RIGHT, planet_rotation.y * delta) + if not planet_spin_ach_sended and planet_rotation.length() > 40: + planet_spin_ach_sended = true + SteamConnection.unlock_achievement(SteamConnection.ACH_SPIN_PLANET) + func _on_restart_button_down(): GameInfo.start_game_data() diff --git a/stages/title_screen/title_screen.tscn b/stages/title_screen/title_screen.tscn index 0d34af7..7dc24a9 100644 --- a/stages/title_screen/title_screen.tscn +++ b/stages/title_screen/title_screen.tscn @@ -83,7 +83,7 @@ tracks/3/keys = { tracks/4/type = "value" tracks/4/imported = false tracks/4/enabled = true -tracks/4/path = NodePath("%Restart:modulate:a") +tracks/4/path = NodePath("../MarginContainer/GridContainer/VBoxContainer/VBoxContainer/Restart:modulate:a") tracks/4/interp = 1 tracks/4/loop_wrap = true tracks/4/keys = { @@ -182,11 +182,11 @@ tracks/3/keys = { tracks/4/type = "value" tracks/4/imported = false tracks/4/enabled = true -tracks/4/path = NodePath("%Restart:modulate:a") +tracks/4/path = NodePath("../MarginContainer/GridContainer/VBoxContainer/VBoxContainer/Restart:modulate:a") tracks/4/interp = 2 tracks/4/loop_wrap = true tracks/4/keys = { -"times": PackedFloat32Array(0.39999998, 0.6), +"times": PackedFloat32Array(0.8, 1), "transitions": PackedFloat32Array(1, 1), "update": 0, "values": [0.0, 1.0] @@ -198,7 +198,7 @@ tracks/5/path = NodePath("../MarginContainer/GridContainer/VBoxContainer/VBoxCon tracks/5/interp = 2 tracks/5/loop_wrap = true tracks/5/keys = { -"times": PackedFloat32Array(0.6, 0.8), +"times": PackedFloat32Array(0.4, 0.6), "transitions": PackedFloat32Array(1, 1), "update": 0, "values": [0.0, 1.0] @@ -210,7 +210,7 @@ tracks/6/path = NodePath("../MarginContainer/GridContainer/VBoxContainer/VBoxCon tracks/6/interp = 2 tracks/6/loop_wrap = true tracks/6/keys = { -"times": PackedFloat32Array(0.8, 1), +"times": PackedFloat32Array(0.6, 0.79999995), "transitions": PackedFloat32Array(1, 1), "update": 0, "values": [0.0, 1.0] @@ -299,17 +299,6 @@ theme_override_font_sizes/font_size = 33 text = "START" icon = ExtResource("3_6yuhi") -[node name="Restart" type="Button" parent="MarginContainer/GridContainer/VBoxContainer/VBoxContainer" unique_id=1324703681] -unique_name_in_owner = true -z_index = 1 -layout_mode = 2 -size_flags_horizontal = 4 -size_flags_vertical = 4 -theme = ExtResource("1_4ph5l") -text = "RESTART" -icon = ExtResource("5_6yuhi") -flat = true - [node name="Settings" type="Button" parent="MarginContainer/GridContainer/VBoxContainer/VBoxContainer" unique_id=381312431] layout_mode = 2 size_flags_horizontal = 4 @@ -324,6 +313,17 @@ text = "CONTROLS" icon = ExtResource("7_igvpv") flat = true +[node name="Restart" type="Button" parent="MarginContainer/GridContainer/VBoxContainer/VBoxContainer" unique_id=1324703681] +unique_name_in_owner = true +z_index = 1 +layout_mode = 2 +size_flags_horizontal = 4 +size_flags_vertical = 4 +theme = ExtResource("1_4ph5l") +text = "RESTART_DEMO" +icon = ExtResource("5_6yuhi") +flat = true + [node name="Quit" type="Button" parent="MarginContainer/GridContainer/VBoxContainer/VBoxContainer" unique_id=103430335] layout_mode = 2 size_flags_horizontal = 4 @@ -444,9 +444,9 @@ z_index = 100 mouse_filter = 2 [connection signal="pressed" from="MarginContainer/GridContainer/VBoxContainer/VBoxContainer/Start" to="." method="_on_start_pressed"] -[connection signal="button_down" from="MarginContainer/GridContainer/VBoxContainer/VBoxContainer/Restart" to="." method="_on_restart_button_down"] [connection signal="button_down" from="MarginContainer/GridContainer/VBoxContainer/VBoxContainer/Settings" to="." method="_on_settings_button_down"] [connection signal="button_down" from="MarginContainer/GridContainer/VBoxContainer/VBoxContainer/Controls" to="." method="_on_controls_button_down"] +[connection signal="button_down" from="MarginContainer/GridContainer/VBoxContainer/VBoxContainer/Restart" to="." method="_on_restart_button_down"] [connection signal="button_down" from="MarginContainer/GridContainer/VBoxContainer/VBoxContainer/Quit" to="." method="_on_quit_button_down"] [connection signal="button_down" from="ModeChoose/VBoxContainer/StoryModeStart" to="." method="_on_story_mode_start_button_down"] [connection signal="button_down" from="ModeChoose/VBoxContainer/InfiniteModeStart" to="." method="_on_infinite_mode_start_button_down"] diff --git a/translation/game/gui.csv b/translation/game/gui.csv index 494a0c8..2ac4da2 100644 --- a/translation/game/gui.csv +++ b/translation/game/gui.csv @@ -18,6 +18,7 @@ PAUSE,Pause,Pause CONTROLS,Controls,Contrôles RESUME_GAME,Resume,Reprendre RESTART,Restart,Recommencer +RESTART_DEMO,Restart demo,Recommencer la démo QUIT,Quit,Quitter THIS_GAME_USE_AUTOSAVE,This game use autosave,Ce jeu sauvegarde votre progression automatiquement CHOOSE_GAME_MODE,Choose game mode,Choisissez le mode de jeu @@ -163,7 +164,7 @@ RECHARGE_STATION,Recharge station,Station de recharge RECHARGE,Recharge,Recharger RECHARGE_STATION_DESC_TEXT,"[b]You can recharge yourself here.[/b] When recharging, time pass and plants grow.","[b]Tu peux te recharger ici.[/b] Pendant la recharge, le temps passe et les plantes grandissent." TALION_CRISTAL,Talion Crystal,Cristal de Talion -TALION_CRISTAL_DESC_TEXT,"A pure form of Talion, cannot be broken or used","Une forme pure de Talion, ne peut être cassé ou utilisé" +TALION_CRISTAL_DESC_TEXT,"A pure form of Talion, cannot be broken or used","Une forme pure de Talion, ne peut pas être cassé ou utilisé" TALION_CELL,Talion Cell,Cellule de Talion TALION_CELL_DESC_TEXT,"This cell is filled with liquid form of Talion, let's see what's inside!","Cette cellule est remplie d'une forme liquide de Talio, voyons ce qu'il y a à l'intérieur !" ENERGY_CELL,Energy Cell,Cellule d'énergie @@ -242,7 +243,7 @@ USE_THE_BACKUP_DEVICE_TO_RESPAWN_TO_LAST_BASE,Use the backup device to respawn t STEP_ON_THE_DATA_SAVER_TEXT,[b]Step on the backup device to use it[/b] You can use it at any time.,[b]Déplacez-vous sur l'appareil de sauvegarde pour l'utiliser[/b] Vous pouvez l'utiliser à tout moment RESTART_FROM_LAST_BASE_WITHOUT_SEEDS_TEXT,[b]Restart from last base without any seeds[/b] You will also lose all artefacts found.,[b]Recommencer à partir de la dernière base sans aucune graine[/b] Vous perdrez également tous les artefacts trouvés. COLLECT_YOUR_SEEDS_AND_TAKE_OFF,Collect your seeds and take off with the ship,Collectez vos graines et décollez avec le vaisseau -SAVE_ORCHID_MEMORY_AND_RESPAWN,Save Orchid Memory and respawn,Sauvegarder la mémoire d'Orchid et recommencer +RESPAWN_TO_LAST_BASE,Respawn to last base,Recommencer à la dernière base CONFIRM_RESPAWN,"Confirm respawn ? (You'll lose seed and current travel progression)","Confirmer la réapparition ? (Vous perdrez vos graines et la progression du voyage en cours)" DOWNLOAD_ORCHID_DATA_TO_LOCAL_SERVERS,Download Orchid data to local servers,Télécharger les données d'Orchid sur les serveurs locaux TUTORIAL_FINISHED,Tutorial finished,Tutoriel terminé @@ -330,7 +331,9 @@ RECHARGE_NUMBER,Recharge Number,Nombre de recharge ORCHID_ENERGY,Orchid's energy,Énergie d'Orchid NEW_TOOL,New tool,Nouvel Outil NEW_MUTATION,New Mutation,Nouvelle Mutation +THIS_MUTATION_CAN_NOW_APPEAR_ON_SEEDS,"This mutation can now appear on seeds","Cette mutation pourra désormais apparaître sur les graines" NEW_ARTEFACT,New Artefact,Nouvel Artefact +ADD_A_PASSIVE_EFFECT_FOR_THIS_TRAVEL,"Add a passive effect for this travel, retrieve all your artifacts on the ship","Ajoute un effet passif pour ce voyage, retrouvez tous vos artefacts sur le vaisseau" PILE,Pile,Pile, PILE_DESC_TEXT,Give an extra energy cell,Donne une cellule d'énergie supplémentaire SEED_CASE,Seed Case,Emplacement de graine