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 4c4b051f3f
commit 908878dff4
289 changed files with 8802 additions and 1520 deletions

View File

@@ -0,0 +1,140 @@
[gd_scene format=3 uid="uid://d3f4k7i368kas"]
[ext_resource type="Script" uid="uid://bti5mdrogptcl" path="res://stages/3d_scenes/aqua_base/scripts/aqua_base.gd" id="1_dltk4"]
[ext_resource type="Texture2D" uid="uid://cww35xu1yqivp" path="res://stages/3d_scenes/cockpit_scene/assets/textures/sky.png" id="2_mr0dk"]
[ext_resource type="PackedScene" uid="uid://ci5vs3qhiuf0x" path="res://stages/3d_scenes/common/assets/3d/hub.blend" id="3_mr0dk"]
[ext_resource type="Shader" uid="uid://n4s2kr10ivgb" path="res://common/vfx/materials/shaders/underwater.gdshader" id="4_dltk4"]
[ext_resource type="PackedScene" uid="uid://da7a74dg30q1l" path="res://entities/player_3d/player_3D.tscn" id="4_k4ak1"]
[ext_resource type="PackedScene" uid="uid://c6gieu3mrlepn" path="res://stages/3d_scenes/common/assets/3d/ai_broken_receptacle.blend" id="6_m5l0g"]
[sub_resource type="Environment" id="Environment_m5l0g"]
background_mode = 2
background_color = Color(1, 1, 1, 1)
ambient_light_source = 2
ambient_light_color = Color(0.13725491, 0.39215687, 0.6666667, 1)
ambient_light_energy = 0.29
reflected_light_source = 2
tonemap_mode = 2
tonemap_exposure = 0.7
tonemap_white = 1.84
glow_enabled = true
glow_intensity = 0.22
glow_bloom = 0.22
glow_hdr_threshold = 0.79
glow_hdr_scale = 0.0
glow_hdr_luminance_cap = 5.63
fog_enabled = true
fog_light_color = Color(0.13725491, 0.39215687, 0.6666667, 1)
fog_sky_affect = 0.0
volumetric_fog_sky_affect = 0.0
adjustment_enabled = true
adjustment_saturation = 1.3
[sub_resource type="SphereMesh" id="SphereMesh_nydtf"]
flip_faces = true
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_u74oo"]
shading_mode = 0
albedo_color = Color(0.5882353, 0.7019608, 0.85882354, 1)
albedo_texture = ExtResource("2_mr0dk")
[sub_resource type="QuadMesh" id="QuadMesh_m5l0g"]
size = Vector2(3, 3)
[sub_resource type="ShaderMaterial" id="ShaderMaterial_nydtf"]
render_priority = 0
shader = ExtResource("4_dltk4")
shader_parameter/tint = Color(0.13725491, 0.39215687, 0.6666667, 0.69411767)
shader_parameter/wave_speed = 3.0
shader_parameter/wave_freq = 10.0
shader_parameter/wave_width = 1.0
shader_parameter/blur = 2.0
[sub_resource type="Gradient" id="Gradient_m5l0g"]
offsets = PackedFloat32Array(0, 0.3764706, 0.56764704, 1)
colors = PackedColorArray(1, 1, 1, 1, 0.98293203, 0.98764604, 0.99414814, 1, 0.5882353, 0.7019608, 0.85882354, 1, 0.5882353, 0.7019608, 0.85882354, 0)
[sub_resource type="GradientTexture2D" id="GradientTexture2D_nydtf"]
gradient = SubResource("Gradient_m5l0g")
fill = 1
fill_from = Vector2(0.5, 0.5)
fill_to = Vector2(1, 0.5)
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_3iiia"]
transparency = 1
shading_mode = 0
albedo_texture = SubResource("GradientTexture2D_nydtf")
[sub_resource type="PlaneMesh" id="PlaneMesh_x2twa"]
material = SubResource("StandardMaterial3D_3iiia")
size = Vector2(20, 20)
[sub_resource type="Gradient" id="Gradient_dltk4"]
offsets = PackedFloat32Array(0, 0.7042683, 1)
colors = PackedColorArray(1, 1, 1, 1, 1, 1, 1, 0.86890244, 1, 1, 1, 0)
[sub_resource type="GradientTexture2D" id="GradientTexture2D_m5l0g"]
gradient = SubResource("Gradient_dltk4")
fill = 1
fill_from = Vector2(0.5, 0.5)
fill_to = Vector2(1, 0.5)
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_nydtf"]
transparency = 1
vertex_color_use_as_albedo = true
albedo_texture = SubResource("GradientTexture2D_m5l0g")
billboard_mode = 3
particles_anim_h_frames = 1
particles_anim_v_frames = 1
particles_anim_loop = false
[sub_resource type="PlaneMesh" id="PlaneMesh_u74oo"]
lightmap_size_hint = Vector2i(12, 12)
material = SubResource("StandardMaterial3D_nydtf")
size = Vector2(0.1, 0.1)
orientation = 2
[node name="AquaBase" type="Node3D" unique_id=1653537813]
script = ExtResource("1_dltk4")
[node name="WorldEnvironment" type="WorldEnvironment" parent="." unique_id=1185661293]
environment = SubResource("Environment_m5l0g")
[node name="DaySky" type="MeshInstance3D" parent="WorldEnvironment" unique_id=1271230410]
transform = Transform3D(1000, 0, 0, 0, 1000, 0, 0, 0, 1000, 0.00041627884, 0.019779027, -0.019804716)
mesh = SubResource("SphereMesh_nydtf")
surface_material_override/0 = SubResource("StandardMaterial3D_u74oo")
[node name="hub" parent="." unique_id=1785379104 instance=ExtResource("3_mr0dk")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 2.22, 0)
[node name="Player3D" parent="." unique_id=549819967 instance=ExtResource("4_k4ak1")]
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, 32.225853, -2.260468, 9.559124)
[node name="Underwater" type="MeshInstance3D" parent="Player3D/Camera3D" parent_id_path=PackedInt32Array(549819967, 2091917091) index="1" unique_id=1179772459]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -0.55200577)
mesh = SubResource("QuadMesh_m5l0g")
surface_material_override/0 = SubResource("ShaderMaterial_nydtf")
[node name="WaterReflect" type="MeshInstance3D" parent="Player3D" unique_id=1233215154]
transform = Transform3D(1, -3.821371e-15, 8.742278e-08, 3.821371e-15, -1, -8.742278e-08, 8.742278e-08, 8.742278e-08, -1, 0, 54.698692, 0)
mesh = SubResource("PlaneMesh_x2twa")
[node name="CPUParticles3D" type="CPUParticles3D" parent="." unique_id=2127323334]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 9.879577, -0.17123222, 2.5871792)
amount = 8000
lifetime = 200.0
preprocess = 200.0
mesh = SubResource("PlaneMesh_u74oo")
emission_shape = 6
emission_ring_axis = Vector3(0, 1, 0)
emission_ring_height = 15.85
emission_ring_radius = 40.6
emission_ring_inner_radius = 0.0
emission_ring_cone_angle = 90.0
gravity = Vector3(0, -0.005, 0)
[node name="ai_broken_receptacle" parent="." unique_id=1978919617 instance=ExtResource("6_m5l0g")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.04378438, 0)
[editable path="Player3D"]

View File

@@ -0,0 +1,5 @@
extends Node3D
func _ready():
if not Engine.is_editor_hint():
Input.mouse_mode = Input.MOUSE_MODE_CAPTURED

View File

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

View File

@@ -109,44 +109,6 @@ volumetric_fog_sky_affect = 0.0
adjustment_enabled = true
adjustment_saturation = 1.3
[sub_resource type="Animation" id="Animation_4wxm6"]
length = 0.001
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath(".:position")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Vector3(0, 0, 0)]
}
[sub_resource type="Animation" id="Animation_kdvug"]
resource_name = "float"
length = 10.0
loop_mode = 1
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath(".:position")
tracks/0/interp = 2
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(-0.06666667, 5.1, 10),
"transitions": PackedFloat32Array(1, 1, 1),
"update": 0,
"values": [Vector3(0, 0, 0), Vector3(0, 0.3, 0), Vector3(0, 0, 0)]
}
[sub_resource type="AnimationLibrary" id="AnimationLibrary_mwti2"]
_data = {
&"RESET": SubResource("Animation_4wxm6"),
&"float": SubResource("Animation_kdvug")
}
[sub_resource type="SphereShape3D" id="SphereShape3D_kdvug"]
radius = 0.68145716
@@ -216,7 +178,7 @@ _data = {
[node name="AstraBase" type="Node3D" unique_id=1360388667]
script = ExtResource("1_kdvug")
room_part_number = 6
room_part_number = 4
[node name="LiftAnimationPlayer" type="AnimationPlayer" parent="." unique_id=478089693]
unique_name_in_owner = true
@@ -238,12 +200,7 @@ transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -29.925, 1, 4.22)
[node name="Phone" parent="." unique_id=429299908 instance=ExtResource("4_mwti2")]
unique_name_in_owner = true
transform = Transform3D(-1, 0, -1.509958e-07, 0, 1, 0, 1.509958e-07, 0, -1, 0.8795166, 1.072888, -2.0494514)
[node name="PhoneFloatAnimationPlayer" type="AnimationPlayer" parent="." unique_id=1462162735]
root_node = NodePath("../Phone/Model")
libraries/ = SubResource("AnimationLibrary_mwti2")
autoplay = &"float"
transform = Transform3D(-1, 0, -1.509958e-07, 0, 1, 0, 1.509958e-07, 0, -1, 0.8795166, 0.90269387, -2.0494514)
[node name="Lift" parent="." unique_id=1854388434 instance=ExtResource("5_lhhy6")]
unique_name_in_owner = true

View File

@@ -7,7 +7,6 @@ const INCUBATOR_SCENE := preload("res://stages/3d_scenes/astra_base/incubator.ts
const ROOM_PART_SHIFT := 21.4
const INCUBATOR_BY_ROOM := 8
const INCUBATOR_DISTANCE := 4.22
const TIME_WITHOUT_PHONE := 5
const LIFT_TIME := 2
@@ -54,7 +53,6 @@ func story():
GameInfo.game_data.progression_data.story_step is TutorialStoryStep
and not TutorialStoryStep.INTRO_DIALOG in GameInfo.game_data.dialogs_done
):
await get_tree().create_timer(TIME_WITHOUT_PHONE).timeout
%Phone.play_audio()
await %Phone.clicked
%Phone.stop_audio()

Binary file not shown.

File diff suppressed because one or more lines are too long

View File

@@ -3,8 +3,12 @@ extends Node3D
func _ready():
if not Engine.is_editor_hint():
Input.mouse_mode = Input.MOUSE_MODE_CAPTURED
%Credits.hide()
func _on_ai_receptacle_clicked():
%Player3D.controlling_player = false
Input.mouse_mode = Input.MOUSE_MODE_VISIBLE
%Credits.appear()
# Called every frame. 'delta' is the elapsed time since the previous frame.
func _process(delta):
pass

View File

@@ -32,6 +32,50 @@ tracks/0/keys = {
"update": 0,
"values": [Vector3(0.99999994, 1, 0.99999994)]
}
tracks/1/type = "value"
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/path = NodePath("Sprite3D:modulate")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Color(1, 1, 1, 1)]
}
[sub_resource type="Animation" id="Animation_lom5w"]
resource_name = "activated"
length = 0.001
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("Sprite3D:modulate")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0.06666667),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Color(1, 1, 1, 1)]
}
[sub_resource type="Animation" id="Animation_wrlf0"]
resource_name = "deactivated"
length = 0.001
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("Sprite3D:modulate")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Color(1, 0, 0.43137255, 1)]
}
[sub_resource type="Animation" id="Animation_u7lr8"]
resource_name = "hover"
@@ -52,6 +96,8 @@ tracks/0/keys = {
[sub_resource type="AnimationLibrary" id="AnimationLibrary_d1blr"]
_data = {
&"RESET": SubResource("Animation_pxmsf"),
&"activated": SubResource("Animation_lom5w"),
&"deactivated": SubResource("Animation_wrlf0"),
&"hover": SubResource("Animation_u7lr8")
}
@@ -109,7 +155,7 @@ hover_animation_player = NodePath("HoverAnimationPlayer")
metadata/_custom_type_script = "uid://bj4d1x8n8ina"
[node name="Sprite3D" type="Sprite3D" parent="Exit" unique_id=59612408]
transform = Transform3D(0.98850703, -3.2424907e-09, -0.15117453, -0.15117453, -4.265087e-08, -0.98850703, -3.2424905e-09, 1, -4.2650868e-08, -0.42407238, -0.022187352, -0.054385662)
transform = Transform3D(0.9896563, -2.9182559e-09, -0.14345813, -0.14345813, -4.0473843e-08, -0.9896563, -2.9182556e-09, 1, -4.047384e-08, -0.42407238, -0.016606808, -0.054385662)
texture = ExtResource("3_w4l7d")
[node name="HoverAnimationPlayer" type="AnimationPlayer" parent="Exit" unique_id=110208719]
@@ -128,7 +174,7 @@ transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -1.04904175e-05, 0.0026242882
[node name="Phone" parent="." unique_id=429299908 instance=ExtResource("3_3b5pk")]
unique_name_in_owner = true
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, 1.4133042, -0.68386626, 1.709522)
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, 1.4133042, -0.6965556, 2.7402856)
interactable = false
[node name="Gauge3D" parent="." unique_id=232507348 instance=ExtResource("4_ers7b")]
@@ -157,7 +203,6 @@ transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -1.239, 0, 4.02)
[node name="MutationDiscoveryScreen" parent="." unique_id=1948337200 instance=ExtResource("15_q4ojn")]
transform = Transform3D(-1, 0, 8.742278e-08, 0, 1, 0, -8.742278e-08, 0, -1, 1.1896521, 0.015508115, 3.982)
mutations_unlocked = 0
[node name="ShipTutorial" parent="." unique_id=868547496 node_paths=PackedStringArray("player") instance=ExtResource("13_u7lr8")]
unique_name_in_owner = true
@@ -173,7 +218,7 @@ transform = Transform3D(-1, -2.2626683e-08, -8.444392e-08, 0, 0.9659259, -0.2588
near = 0.003
[node name="MeshInstance3D" type="MeshInstance3D" parent="TrailerCamera" unique_id=2142282697]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 2.263265e-08, 0, -0.7177747)
transform = Transform3D(1, -3.5527137e-15, -7.1054274e-15, 0, 1, 0, 0, 0, 1, 0.00013747103, 0.0019346476, -0.71927476)
mesh = SubResource("QuadMesh_q4ojn")
surface_material_override/0 = ExtResource("14_d1blr")
@@ -182,6 +227,7 @@ libraries/ = SubResource("AnimationLibrary_wrlf0")
autoplay = &"trailer"
[node name="OrchidSaver" parent="." unique_id=381308711 instance=ExtResource("16_nfjul")]
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"

View File

@@ -193,8 +193,8 @@ _data = {
[sub_resource type="Resource" id="Resource_ne0dp"]
script = ExtResource("12_oix5e")
seeds = Array[ExtResource("11_3cel1")]([null])
seeds_size = 1
seeds = Array[ExtResource("11_3cel1")]([null, null, null, null, null, null])
seeds_size = 6
metadata/_custom_type_script = "uid://fnu2d6wna4yc"
[node name="Dashboard" type="Node3D" unique_id=1374334508]

View File

@@ -7,7 +7,7 @@
[ext_resource type="Texture2D" uid="uid://cwewx7cdy085h" path="res://common/icons/help-hexagon.svg" id="4_0ou8m"]
[node name="MutationDiscoveryElement" type="Control" unique_id=701137276]
custom_minimum_size = Vector2(30, 30)
custom_minimum_size = Vector2(80, 80)
layout_mode = 3
anchors_preset = 0
offset_right = 30.0
@@ -18,17 +18,17 @@ state = 0
[node name="BackgroundHexagon" type="TextureRect" parent="." unique_id=1761030872]
unique_name_in_owner = true
modulate = Color(1, 0.6509804, 0.09019608, 1)
custom_minimum_size = Vector2(30, 30)
custom_minimum_size = Vector2(80, 80)
layout_mode = 1
anchors_preset = 8
anchor_left = 0.5
anchor_top = 0.5
anchor_right = 0.5
anchor_bottom = 0.5
offset_left = -15.0
offset_top = -15.0
offset_right = 15.0
offset_bottom = 15.0
offset_left = -30.0
offset_top = -30.0
offset_right = 30.0
offset_bottom = 30.0
grow_horizontal = 2
grow_vertical = 2
texture = ExtResource("1_wfsg0")
@@ -38,17 +38,17 @@ stretch_mode = 5
[node name="BackgroundHexagonQuestion" type="TextureRect" parent="." unique_id=1955995284]
unique_name_in_owner = true
visible = false
custom_minimum_size = Vector2(30, 30)
custom_minimum_size = Vector2(80, 80)
layout_mode = 1
anchors_preset = 8
anchor_left = 0.5
anchor_top = 0.5
anchor_right = 0.5
anchor_bottom = 0.5
offset_left = -15.0
offset_top = -15.0
offset_right = 15.0
offset_bottom = 15.0
offset_left = -30.0
offset_top = -30.0
offset_right = 30.0
offset_bottom = 30.0
grow_horizontal = 2
grow_vertical = 2
texture = ExtResource("4_0ou8m")
@@ -58,17 +58,17 @@ stretch_mode = 5
[node name="BackgroundHexagonLocked" type="TextureRect" parent="." unique_id=786605518]
unique_name_in_owner = true
visible = false
custom_minimum_size = Vector2(30, 30)
custom_minimum_size = Vector2(80, 80)
layout_mode = 1
anchors_preset = 8
anchor_left = 0.5
anchor_top = 0.5
anchor_right = 0.5
anchor_bottom = 0.5
offset_left = -15.0
offset_top = -15.0
offset_right = 15.0
offset_bottom = 15.0
offset_left = -30.0
offset_top = -30.0
offset_right = 30.0
offset_bottom = 30.0
grow_horizontal = 2
grow_vertical = 2
texture = ExtResource("3_udmux")
@@ -77,17 +77,17 @@ stretch_mode = 5
[node name="MutationTexture" type="TextureRect" parent="." unique_id=585232428]
unique_name_in_owner = true
custom_minimum_size = Vector2(20, 20)
custom_minimum_size = Vector2(50, 50)
layout_mode = 1
anchors_preset = 8
anchor_left = 0.5
anchor_top = 0.5
anchor_right = 0.5
anchor_bottom = 0.5
offset_left = -10.0
offset_top = -10.0
offset_right = 10.0
offset_bottom = 10.0
offset_left = -20.0
offset_top = -20.0
offset_right = 20.0
offset_bottom = 20.0
grow_horizontal = 2
grow_vertical = 2
texture = ExtResource("1_d34h0")

View File

@@ -25,26 +25,25 @@ viewport_path = NodePath("Sprite3D/SubViewport")
[sub_resource type="LabelSettings" id="LabelSettings_5jpjd"]
font = ExtResource("2_kjjrb")
font_size = 15
font_size = 40
[sub_resource type="LabelSettings" id="LabelSettings_dv1aj"]
font = ExtResource("2_kjjrb")
font_size = 8
font_size = 20
[node name="MutationDiscoveryScreen" type="Node3D" unique_id=1881622243]
script = ExtResource("1_cfhhl")
all_mutations = Array[ExtResource("2_dv1aj")]([SubResource("Resource_dv1aj"), SubResource("Resource_3q2hk"), SubResource("Resource_psve5"), null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null])
mutations_unlocked = null
[node name="Sprite3D" type="Sprite3D" parent="." unique_id=1624784968]
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, -0.011004657, 0, 0)
pixel_size = 0.003
pixel_size = 0.001
texture = SubResource("ViewportTexture_c5x8t")
[node name="SubViewport" type="SubViewport" parent="Sprite3D" unique_id=1689184715]
disable_3d = true
transparent_bg = true
size = Vector2i(277, 190)
size = Vector2i(813, 592)
[node name="VBoxContainer" type="VBoxContainer" parent="Sprite3D/SubViewport" unique_id=1462242714]
anchors_preset = 15
@@ -52,7 +51,7 @@ anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
theme_override_constants/separation = 8
theme_override_constants/separation = 16
alignment = 1
[node name="Label" type="Label" parent="Sprite3D/SubViewport/VBoxContainer" unique_id=1148366912]

View File

@@ -15,24 +15,24 @@ viewport_path = NodePath("Sprite3D/SubViewport")
[sub_resource type="LabelSettings" id="LabelSettings_5jpjd"]
font = ExtResource("1_82utc")
font_size = 24
font_size = 45
[sub_resource type="LabelSettings" id="LabelSettings_d4qoj"]
font = ExtResource("1_82utc")
font_size = 24
font_size = 48
[node name="PlantInfoScreen" type="Node3D" unique_id=1881622243]
script = ExtResource("1_d4qoj")
[node name="Sprite3D" type="Sprite3D" parent="." unique_id=1624784968]
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, -0.00714764, 0, 0)
pixel_size = 0.002
pixel_size = 0.001
texture = SubResource("ViewportTexture_c5x8t")
[node name="SubViewport" type="SubViewport" parent="Sprite3D" unique_id=1689184715]
disable_3d = true
transparent_bg = true
size = Vector2i(450, 350)
size = Vector2i(818, 590)
[node name="VBoxContainer" type="VBoxContainer" parent="Sprite3D/SubViewport" unique_id=1462242714]
anchors_preset = 15
@@ -40,7 +40,7 @@ anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
theme_override_constants/separation = 16
theme_override_constants/separation = 32
alignment = 1
[node name="Label" type="Label" parent="Sprite3D/SubViewport/VBoxContainer" unique_id=1148366912]
@@ -53,8 +53,8 @@ autowrap_mode = 3
[node name="StatsContainer" type="HFlowContainer" parent="Sprite3D/SubViewport/VBoxContainer" unique_id=1585516203]
layout_mode = 2
theme_override_constants/h_separation = 8
theme_override_constants/v_separation = 8
theme_override_constants/h_separation = 16
theme_override_constants/v_separation = 16
alignment = 1
last_wrap_alignment = 2
@@ -65,7 +65,7 @@ theme_override_constants/separation = 0
alignment = 1
[node name="ScoreIcon" type="TextureRect" parent="Sprite3D/SubViewport/VBoxContainer/StatsContainer/ScoreStat" unique_id=1399775561]
custom_minimum_size = Vector2(40, 40)
custom_minimum_size = Vector2(80, 80)
layout_mode = 2
texture = ExtResource("2_5jpjd")
expand_mode = 3
@@ -86,7 +86,7 @@ theme_override_constants/separation = 0
alignment = 1
[node name="LifetimeIcon" type="TextureRect" parent="Sprite3D/SubViewport/VBoxContainer/StatsContainer/LifetimeStat" unique_id=855540661]
custom_minimum_size = Vector2(40, 40)
custom_minimum_size = Vector2(80, 80)
layout_mode = 2
texture = ExtResource("2_xwbvs")
expand_mode = 3
@@ -128,7 +128,7 @@ theme_override_constants/separation = 0
alignment = 1
[node name="SeedIcon" type="TextureRect" parent="Sprite3D/SubViewport/VBoxContainer/StatsContainer/SeedStat" unique_id=313311026]
custom_minimum_size = Vector2(40, 40)
custom_minimum_size = Vector2(80, 80)
layout_mode = 2
texture = ExtResource("4_ihffg")
expand_mode = 3
@@ -147,8 +147,8 @@ unique_name_in_owner = true
layout_mode = 2
theme = ExtResource("7_o0x5p")
theme_override_fonts/bold_font = ExtResource("1_82utc")
theme_override_font_sizes/normal_font_size = 16
theme_override_font_sizes/bold_font_size = 20
theme_override_font_sizes/normal_font_size = 32
theme_override_font_sizes/bold_font_size = 40
bbcode_enabled = true
text = "PLANTS_CAN_HAVE_UP_TO_X_MUTATION"
fit_content = true
@@ -159,8 +159,8 @@ unique_name_in_owner = true
layout_mode = 2
theme = ExtResource("8_ilibg")
theme_override_fonts/bold_font = ExtResource("1_82utc")
theme_override_font_sizes/normal_font_size = 16
theme_override_font_sizes/bold_font_size = 20
theme_override_font_sizes/normal_font_size = 32
theme_override_font_sizes/bold_font_size = 40
bbcode_enabled = true
text = "PLANTS_MUTATION_CHANCE_IS_X_PERCENT"
fit_content = true

View File

@@ -37,7 +37,6 @@ func update(with_animation := true):
c.queue_free()
for i in range(get_step_number()):
print("showing %d" % i)
var icon = REGION_ICON
if i == 0:
icon = START_ICON
@@ -55,8 +54,6 @@ func update(with_animation := true):
for m_i in range(len(modifiers)):
spawn_icon(modifiers[m_i].get_icon(), Vector2(i,-m_i - 1),color, 0.7)
print(modifiers)
spawn_icon(icon, Vector2(i,0),color)
ship_icon = spawn_icon(SHIP_ICON, Vector2(current_position, 1), CURRENT_COLOR, 1)

View File

@@ -1,6 +1,6 @@
extends Node3D
const FAILED_DIALOG = "res://dialogs/timelines/tutorial/demeter_ship_failed.dtl"
const FAILED_DIALOG = "res://dialogs/timelines/X_gameplay_related/demeter_ship_failed.dtl"
const TAKE_OFF_ICON = preload("res://common/icons/chevrons-up.svg")
const LAND_ICON = preload("res://common/icons/arrow-narrow-down.svg")
@@ -13,6 +13,7 @@ signal land
var choosen_run_point : RunPoint = null
var exiting = false
var phone_dialogs : Array[String]
var respawn_asked = false
# Called when the node enters the scene tree for the first time.
func _ready():
@@ -135,7 +136,8 @@ func _on_exit_clicked():
if (can_exit() and not exiting):
AudioManager.play_sfx("Ship_exit")
exiting = true
SceneManager.change_to_scene(RegionScene.new(GameInfo.game_data.current_region_data))
if GameInfo.game_data.current_run:
SceneManager.change_to_scene(GameInfo.game_data.current_run.get_cockpit_exit_scene())
func update_dashboard(with_animation := true):
@@ -187,4 +189,9 @@ func update_dashboard(with_animation := true):
dashboard.right_stop = null
func _on_orchid_saver_clicked():
GameInfo.game_data.give_up()
if not respawn_asked:
respawn_asked = true
%OrchidSaver.screen_icon = preload("res://common/icons/alert-triangle.svg")
%OrchidSaver.screen_text = tr("CONFIRM_RESPAWN")
else:
GameInfo.game_data.give_up()

Binary file not shown.

Binary file not shown.

View File

@@ -0,0 +1,68 @@
[remap]
importer="scene"
importer_version=1
type="PackedScene"
uid="uid://brckina5otmj6"
path="res://.godot/imported/communication.blend-de62286f2d3ba22c511bfe99fe734c4f.scn"
[deps]
source_file="res://stages/3d_scenes/common/assets/3d/communication.blend"
dest_files=["res://.godot/imported/communication.blend-de62286f2d3ba22c511bfe99fe734c4f.scn"]
[params]
nodes/root_type=""
nodes/root_name=""
nodes/root_script=null
nodes/apply_root_scale=true
nodes/root_scale=1.0
nodes/import_as_skeleton_bones=false
nodes/use_name_suffixes=true
nodes/use_node_type_suffixes=true
meshes/ensure_tangents=true
meshes/generate_lods=true
meshes/create_shadow_meshes=true
meshes/light_baking=1
meshes/lightmap_texel_size=0.2
meshes/force_disable_compression=false
skins/use_named_skins=true
animation/import=true
animation/fps=30
animation/trimming=false
animation/remove_immutable_tracks=true
animation/import_rest_as_RESET=false
import_script/path=""
materials/extract=0
materials/extract_format=0
materials/extract_path=""
_subresources={
"materials": {
"Default3D": {
"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
blender/nodes/cameras=true
blender/nodes/custom_properties=true
blender/nodes/modifiers=1
blender/meshes/colors=false
blender/meshes/uvs=true
blender/meshes/normals=true
blender/meshes/export_geometry_nodes_instances=false
blender/meshes/gpu_instances=false
blender/meshes/tangents=true
blender/meshes/skins=2
blender/meshes/export_bones_deforming_mesh_only=false
blender/materials/unpack_enabled=true
blender/materials/export_materials=1
blender/animation/limit_playback=true
blender/animation/always_sample=true
blender/animation/group_tracks=true
gltf/naming_version=2

Binary file not shown.

Binary file not shown.

View File

@@ -3,13 +3,13 @@
importer="scene"
importer_version=1
type="PackedScene"
uid="uid://b83v0uxiukmbb"
path="res://.godot/imported/borea_base.blend-16b097cf97b3f00cfa1bc1f2c346e23b.scn"
uid="uid://7pitc7kjmffv"
path="res://.godot/imported/corridor.blend-d4e7afe2924adbd59f26fd0b71929681.scn"
[deps]
source_file="res://stages/3d_scenes/borea_base/assets/3d/borea_base.blend"
dest_files=["res://.godot/imported/borea_base.blend-16b097cf97b3f00cfa1bc1f2c346e23b.scn"]
source_file="res://stages/3d_scenes/common/assets/3d/corridor.blend"
dest_files=["res://.godot/imported/corridor.blend-d4e7afe2924adbd59f26fd0b71929681.scn"]
[params]

Binary file not shown.

View File

@@ -0,0 +1,68 @@
[remap]
importer="scene"
importer_version=1
type="PackedScene"
uid="uid://cah00gew65ire"
path="res://.godot/imported/door.blend-c87f276c56915caea51fe7d3dbe0db91.scn"
[deps]
source_file="res://stages/3d_scenes/common/assets/3d/door.blend"
dest_files=["res://.godot/imported/door.blend-c87f276c56915caea51fe7d3dbe0db91.scn"]
[params]
nodes/root_type=""
nodes/root_name=""
nodes/root_script=null
nodes/apply_root_scale=true
nodes/root_scale=1.0
nodes/import_as_skeleton_bones=false
nodes/use_name_suffixes=true
nodes/use_node_type_suffixes=true
meshes/ensure_tangents=true
meshes/generate_lods=true
meshes/create_shadow_meshes=true
meshes/light_baking=1
meshes/lightmap_texel_size=0.2
meshes/force_disable_compression=false
skins/use_named_skins=true
animation/import=true
animation/fps=30
animation/trimming=false
animation/remove_immutable_tracks=true
animation/import_rest_as_RESET=false
import_script/path=""
materials/extract=0
materials/extract_format=0
materials/extract_path=""
_subresources={
"materials": {
"Default3D": {
"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
blender/nodes/cameras=true
blender/nodes/custom_properties=true
blender/nodes/modifiers=1
blender/meshes/colors=false
blender/meshes/uvs=true
blender/meshes/normals=true
blender/meshes/export_geometry_nodes_instances=false
blender/meshes/gpu_instances=false
blender/meshes/tangents=true
blender/meshes/skins=2
blender/meshes/export_bones_deforming_mesh_only=false
blender/materials/unpack_enabled=true
blender/materials/export_materials=1
blender/animation/limit_playback=true
blender/animation/always_sample=true
blender/animation/group_tracks=true
gltf/naming_version=2

Binary file not shown.

View File

@@ -0,0 +1,60 @@
[remap]
importer="scene"
importer_version=1
type="PackedScene"
uid="uid://biy82bf0icupn"
path="res://.godot/imported/door_form.blend-b253b21322e2bd13e9cc5e2f079ab0c6.scn"
[deps]
source_file="res://stages/3d_scenes/common/assets/3d/door_form.blend"
dest_files=["res://.godot/imported/door_form.blend-b253b21322e2bd13e9cc5e2f079ab0c6.scn"]
[params]
nodes/root_type=""
nodes/root_name=""
nodes/root_script=null
nodes/apply_root_scale=true
nodes/root_scale=1.0
nodes/import_as_skeleton_bones=false
nodes/use_name_suffixes=true
nodes/use_node_type_suffixes=true
meshes/ensure_tangents=true
meshes/generate_lods=true
meshes/create_shadow_meshes=true
meshes/light_baking=1
meshes/lightmap_texel_size=0.2
meshes/force_disable_compression=false
skins/use_named_skins=true
animation/import=true
animation/fps=30
animation/trimming=false
animation/remove_immutable_tracks=true
animation/import_rest_as_RESET=false
import_script/path=""
materials/extract=0
materials/extract_format=0
materials/extract_path=""
_subresources={}
blender/nodes/visible=0
blender/nodes/active_collection_only=false
blender/nodes/punctual_lights=true
blender/nodes/cameras=true
blender/nodes/custom_properties=true
blender/nodes/modifiers=1
blender/meshes/colors=false
blender/meshes/uvs=true
blender/meshes/normals=true
blender/meshes/export_geometry_nodes_instances=false
blender/meshes/gpu_instances=false
blender/meshes/tangents=true
blender/meshes/skins=2
blender/meshes/export_bones_deforming_mesh_only=false
blender/materials/unpack_enabled=true
blender/materials/export_materials=1
blender/animation/limit_playback=true
blender/animation/always_sample=true
blender/animation/group_tracks=true
gltf/naming_version=2

Binary file not shown.

View File

@@ -0,0 +1,79 @@
[remap]
importer="scene"
importer_version=1
type="PackedScene"
uid="uid://lx0tdm5xftl0"
path="res://.godot/imported/falling_plant.blend-6769216581709eaac68f00adc402b695.scn"
[deps]
source_file="res://stages/3d_scenes/common/assets/3d/falling_plant.blend"
dest_files=["res://.godot/imported/falling_plant.blend-6769216581709eaac68f00adc402b695.scn"]
[params]
nodes/root_type=""
nodes/root_name=""
nodes/root_script=null
nodes/apply_root_scale=true
nodes/root_scale=1.0
nodes/import_as_skeleton_bones=false
nodes/use_name_suffixes=true
nodes/use_node_type_suffixes=true
meshes/ensure_tangents=true
meshes/generate_lods=true
meshes/create_shadow_meshes=true
meshes/light_baking=1
meshes/lightmap_texel_size=0.2
meshes/force_disable_compression=false
skins/use_named_skins=true
animation/import=true
animation/fps=30
animation/trimming=false
animation/remove_immutable_tracks=true
animation/import_rest_as_RESET=false
import_script/path=""
materials/extract=0
materials/extract_format=0
materials/extract_path=""
_subresources={
"materials": {
"Cristal": {
"use_external/enabled": true,
"use_external/fallback_path": "res://common/assets/materials/cristal.tres",
"use_external/path": "uid://di0m3uqgi3l08"
}
},
"meshes": {
"falling_plant_Mesh": {
"generate/lightmap_uv": 0,
"generate/lods": 0,
"generate/shadow_meshes": 0,
"lods/normal_merge_angle": 20.0,
"save_to_file/enabled": true,
"save_to_file/fallback_path": "res://stages/3d_scenes/common/assets/3d/falling_plant.res",
"save_to_file/path": "uid://3pwvp242qwvv"
}
}
}
blender/nodes/visible=0
blender/nodes/active_collection_only=false
blender/nodes/punctual_lights=true
blender/nodes/cameras=true
blender/nodes/custom_properties=true
blender/nodes/modifiers=1
blender/meshes/colors=false
blender/meshes/uvs=true
blender/meshes/normals=true
blender/meshes/export_geometry_nodes_instances=false
blender/meshes/gpu_instances=false
blender/meshes/tangents=true
blender/meshes/skins=2
blender/meshes/export_bones_deforming_mesh_only=false
blender/materials/unpack_enabled=true
blender/materials/export_materials=1
blender/animation/limit_playback=true
blender/animation/always_sample=true
blender/animation/group_tracks=true
gltf/naming_version=2

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@@ -0,0 +1,73 @@
[remap]
importer="scene"
importer_version=1
type="PackedScene"
uid="uid://ci5vs3qhiuf0x"
path="res://.godot/imported/hub.blend-8556d257a3c3a635e26bf37e5444595c.scn"
[deps]
source_file="res://stages/3d_scenes/common/assets/3d/hub.blend"
dest_files=["res://.godot/imported/hub.blend-8556d257a3c3a635e26bf37e5444595c.scn"]
[params]
nodes/root_type=""
nodes/root_name=""
nodes/root_script=null
nodes/apply_root_scale=true
nodes/root_scale=1.0
nodes/import_as_skeleton_bones=false
nodes/use_name_suffixes=true
nodes/use_node_type_suffixes=true
meshes/ensure_tangents=true
meshes/generate_lods=true
meshes/create_shadow_meshes=true
meshes/light_baking=1
meshes/lightmap_texel_size=0.2
meshes/force_disable_compression=false
skins/use_named_skins=true
animation/import=true
animation/fps=30
animation/trimming=false
animation/remove_immutable_tracks=true
animation/import_rest_as_RESET=false
import_script/path=""
materials/extract=0
materials/extract_format=0
materials/extract_path=""
_subresources={
"materials": {
"Default3D": {
"use_external/enabled": true,
"use_external/fallback_path": "res://common/assets/materials/default_3d.tres",
"use_external/path": "uid://dvvi1k5c5iowc"
},
"Glass": {
"use_external/enabled": true,
"use_external/fallback_path": "res://common/assets/materials/glass_3d.tres",
"use_external/path": "uid://b5vlcdry8vtgi"
}
}
}
blender/nodes/visible=0
blender/nodes/active_collection_only=false
blender/nodes/punctual_lights=true
blender/nodes/cameras=true
blender/nodes/custom_properties=true
blender/nodes/modifiers=1
blender/meshes/colors=false
blender/meshes/uvs=true
blender/meshes/normals=true
blender/meshes/export_geometry_nodes_instances=false
blender/meshes/gpu_instances=false
blender/meshes/tangents=true
blender/meshes/skins=2
blender/meshes/export_bones_deforming_mesh_only=false
blender/materials/unpack_enabled=true
blender/materials/export_materials=1
blender/animation/limit_playback=true
blender/animation/always_sample=true
blender/animation/group_tracks=true
gltf/naming_version=2

Binary file not shown.

View File

@@ -0,0 +1,79 @@
[remap]
importer="scene"
importer_version=1
type="PackedScene"
uid="uid://2atgcda7n3p7"
path="res://.godot/imported/moss.blend-944d735be6b248e6fb9c74ae065c775f.scn"
[deps]
source_file="res://stages/3d_scenes/common/assets/3d/moss.blend"
dest_files=["res://.godot/imported/moss.blend-944d735be6b248e6fb9c74ae065c775f.scn"]
[params]
nodes/root_type=""
nodes/root_name=""
nodes/root_script=null
nodes/apply_root_scale=true
nodes/root_scale=1.0
nodes/import_as_skeleton_bones=false
nodes/use_name_suffixes=true
nodes/use_node_type_suffixes=true
meshes/ensure_tangents=true
meshes/generate_lods=true
meshes/create_shadow_meshes=true
meshes/light_baking=1
meshes/lightmap_texel_size=0.2
meshes/force_disable_compression=false
skins/use_named_skins=true
animation/import=true
animation/fps=30
animation/trimming=false
animation/remove_immutable_tracks=true
animation/import_rest_as_RESET=false
import_script/path=""
materials/extract=0
materials/extract_format=0
materials/extract_path=""
_subresources={
"materials": {
"Default3D": {
"use_external/enabled": true,
"use_external/fallback_path": "res://common/assets/materials/default_3d.tres",
"use_external/path": "uid://dvvi1k5c5iowc"
}
},
"meshes": {
"moss_Sphere": {
"generate/lightmap_uv": 0,
"generate/lods": 0,
"generate/shadow_meshes": 0,
"lods/normal_merge_angle": 20.0,
"save_to_file/enabled": true,
"save_to_file/fallback_path": "res://stages/3d_scenes/common/assets/3d/moss.res",
"save_to_file/path": "uid://u78be56ih8xw"
}
}
}
blender/nodes/visible=0
blender/nodes/active_collection_only=false
blender/nodes/punctual_lights=true
blender/nodes/cameras=true
blender/nodes/custom_properties=true
blender/nodes/modifiers=1
blender/meshes/colors=false
blender/meshes/uvs=true
blender/meshes/normals=true
blender/meshes/export_geometry_nodes_instances=false
blender/meshes/gpu_instances=false
blender/meshes/tangents=true
blender/meshes/skins=2
blender/meshes/export_bones_deforming_mesh_only=false
blender/materials/unpack_enabled=true
blender/materials/export_materials=1
blender/animation/limit_playback=true
blender/animation/always_sample=true
blender/animation/group_tracks=true
gltf/naming_version=2

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@@ -0,0 +1,79 @@
[remap]
importer="scene"
importer_version=1
type="PackedScene"
uid="uid://dwlfp4ou3ooro"
path="res://.godot/imported/plant.blend-2e7932e3fad407c24329946b802bd935.scn"
[deps]
source_file="res://stages/3d_scenes/common/assets/3d/plant.blend"
dest_files=["res://.godot/imported/plant.blend-2e7932e3fad407c24329946b802bd935.scn"]
[params]
nodes/root_type=""
nodes/root_name=""
nodes/root_script=null
nodes/apply_root_scale=true
nodes/root_scale=1.0
nodes/import_as_skeleton_bones=false
nodes/use_name_suffixes=true
nodes/use_node_type_suffixes=true
meshes/ensure_tangents=true
meshes/generate_lods=true
meshes/create_shadow_meshes=true
meshes/light_baking=1
meshes/lightmap_texel_size=0.2
meshes/force_disable_compression=false
skins/use_named_skins=true
animation/import=true
animation/fps=30
animation/trimming=false
animation/remove_immutable_tracks=true
animation/import_rest_as_RESET=false
import_script/path=""
materials/extract=0
materials/extract_format=0
materials/extract_path=""
_subresources={
"materials": {
"Cristal": {
"use_external/enabled": true,
"use_external/fallback_path": "res://common/assets/materials/cristal.tres",
"use_external/path": "uid://di0m3uqgi3l08"
}
},
"meshes": {
"plant_Cylinder": {
"generate/lightmap_uv": 0,
"generate/lods": 0,
"generate/shadow_meshes": 0,
"lods/normal_merge_angle": 20.0,
"save_to_file/enabled": true,
"save_to_file/fallback_path": "res://stages/3d_scenes/common/assets/3d/plant.res",
"save_to_file/path": "uid://cb5tklxnk2dek"
}
}
}
blender/nodes/visible=0
blender/nodes/active_collection_only=false
blender/nodes/punctual_lights=true
blender/nodes/cameras=true
blender/nodes/custom_properties=true
blender/nodes/modifiers=1
blender/meshes/colors=false
blender/meshes/uvs=true
blender/meshes/normals=true
blender/meshes/export_geometry_nodes_instances=false
blender/meshes/gpu_instances=false
blender/meshes/tangents=true
blender/meshes/skins=2
blender/meshes/export_bones_deforming_mesh_only=false
blender/materials/unpack_enabled=true
blender/materials/export_materials=1
blender/animation/limit_playback=true
blender/animation/always_sample=true
blender/animation/group_tracks=true
gltf/naming_version=2

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@@ -0,0 +1,73 @@
[remap]
importer="scene"
importer_version=1
type="PackedScene"
uid="uid://cepouw76en6r"
path="res://.godot/imported/room.blend-4fa475488a7dcde300c40ca0dff93fe1.scn"
[deps]
source_file="res://stages/3d_scenes/common/assets/3d/room.blend"
dest_files=["res://.godot/imported/room.blend-4fa475488a7dcde300c40ca0dff93fe1.scn"]
[params]
nodes/root_type=""
nodes/root_name=""
nodes/root_script=null
nodes/apply_root_scale=true
nodes/root_scale=1.0
nodes/import_as_skeleton_bones=false
nodes/use_name_suffixes=true
nodes/use_node_type_suffixes=true
meshes/ensure_tangents=true
meshes/generate_lods=true
meshes/create_shadow_meshes=true
meshes/light_baking=1
meshes/lightmap_texel_size=0.2
meshes/force_disable_compression=false
skins/use_named_skins=true
animation/import=true
animation/fps=30
animation/trimming=false
animation/remove_immutable_tracks=true
animation/import_rest_as_RESET=false
import_script/path=""
materials/extract=0
materials/extract_format=0
materials/extract_path=""
_subresources={
"materials": {
"Default3D": {
"use_external/enabled": true,
"use_external/fallback_path": "res://common/assets/materials/default_3d.tres",
"use_external/path": "uid://dvvi1k5c5iowc"
},
"Glass": {
"use_external/enabled": true,
"use_external/fallback_path": "res://common/assets/materials/glass_3d.tres",
"use_external/path": "uid://b5vlcdry8vtgi"
}
}
}
blender/nodes/visible=0
blender/nodes/active_collection_only=false
blender/nodes/punctual_lights=true
blender/nodes/cameras=true
blender/nodes/custom_properties=true
blender/nodes/modifiers=1
blender/meshes/colors=false
blender/meshes/uvs=true
blender/meshes/normals=true
blender/meshes/export_geometry_nodes_instances=false
blender/meshes/gpu_instances=false
blender/meshes/tangents=true
blender/meshes/skins=2
blender/meshes/export_bones_deforming_mesh_only=false
blender/materials/unpack_enabled=true
blender/materials/export_materials=1
blender/animation/limit_playback=true
blender/animation/always_sample=true
blender/animation/group_tracks=true
gltf/naming_version=2

Binary file not shown.

View File

@@ -5,7 +5,7 @@
[ext_resource type="PackedScene" uid="uid://c7pw57hcv6jvr" path="res://stages/3d_scenes/relay_base/assets/3d/relay_base.blend" id="1_dm7op"]
[ext_resource type="PackedScene" uid="uid://da7a74dg30q1l" path="res://entities/player_3d/player_3D.tscn" id="2_6cyeg"]
[ext_resource type="Script" uid="uid://bj4d1x8n8ina" path="res://entities/interactable_3d/interactable_3d.gd" id="3_xuy43"]
[ext_resource type="Texture2D" uid="uid://dex283rx00fjb" path="res://common/icons/logout.svg" id="4_140ad"]
[ext_resource type="Texture2D" uid="uid://1ynlp05wj0hm" path="res://common/icons/rocket.svg" id="4_xuy43"]
[ext_resource type="PackedScene" uid="uid://c2bk3n1xo1fto" path="res://stages/3d_scenes/astra_base/incubator.tscn" id="5_uxagy"]
[ext_resource type="PackedScene" uid="uid://u3o5g8lmck74" path="res://entities/interactable_3d/orchid_saver/orchid_saver.tscn" id="6_2vcx4"]
[ext_resource type="Texture2D" uid="uid://d3k7rl7nbp7yx" path="res://common/icons/device-floppy.svg" id="7_erosk"]
@@ -53,6 +53,50 @@ tracks/0/keys = {
"update": 0,
"values": [Vector3(0.99999994, 1, 0.99999994)]
}
tracks/1/type = "value"
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/path = NodePath("Sprite3D:modulate")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Color(1, 1, 1, 1)]
}
[sub_resource type="Animation" id="Animation_xuy43"]
resource_name = "activated"
length = 0.001
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("Sprite3D:modulate")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0.033333335),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Color(1, 1, 1, 1)]
}
[sub_resource type="Animation" id="Animation_140ad"]
resource_name = "deactivated"
length = 0.001
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("Sprite3D:modulate")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 1,
"values": [Color(1, 0, 0.43137255, 1)]
}
[sub_resource type="Animation" id="Animation_u7lr8"]
resource_name = "hover"
@@ -73,6 +117,8 @@ tracks/0/keys = {
[sub_resource type="AnimationLibrary" id="AnimationLibrary_1hq1b"]
_data = {
&"RESET": SubResource("Animation_pxmsf"),
&"activated": SubResource("Animation_xuy43"),
&"deactivated": SubResource("Animation_140ad"),
&"hover": SubResource("Animation_u7lr8")
}
@@ -113,13 +159,14 @@ surface_material_override/0 = SubResource("StandardMaterial3D_2vcx4")
unique_name_in_owner = true
transform = Transform3D(4.366728e-08, -0.99899095, 0.044909704, -1, -4.371139e-08, 0, 1.963069e-09, -0.044909704, -0.99899095, -0.15007031, 1.2682863, 0.032186985)
script = ExtResource("3_xuy43")
interactable = false
hover_animation_player = NodePath("HoverAnimationPlayer")
metadata/_custom_type_script = "uid://bj4d1x8n8ina"
[node name="Sprite3D" type="Sprite3D" parent="Exit" unique_id=736012003]
transform = Transform3D(-4.3711385e-08, -1, -4.3711385e-08, 0, -4.371139e-08, 0.99999994, -0.99999994, 4.371139e-08, 1.9106853e-15, 0.1646713, -0.017980576, 0)
transform = Transform3D(-4.3711385e-08, -1, -4.3711385e-08, 0, -4.371139e-08, 0.99999994, -0.99999994, 4.371139e-08, 1.9106853e-15, 0.10885215, -0.017980576, 3.7252903e-09)
pixel_size = 0.005
texture = ExtResource("4_140ad")
texture = ExtResource("4_xuy43")
[node name="HoverAnimationPlayer" type="AnimationPlayer" parent="Exit" unique_id=131585105]
libraries/ = SubResource("AnimationLibrary_1hq1b")

View File

@@ -8,7 +8,11 @@ signal orchid_saved
@export var base_number : String = "" : set = set_base_number
@onready var orchid_saver : OrchidSaver = %OrchidSaver
@onready var player : Player3D = %Player3D
var exit_scene : Scene = null
var exit_scene : Scene = null :
set(s):
exit_scene = s
if is_node_ready():
%Exit.interactable = exit_scene != null
var dead_orchid : Node3D
@@ -16,6 +20,8 @@ func _ready():
if not Engine.is_editor_hint():
Input.mouse_mode = Input.MOUSE_MODE_CAPTURED
%Exit.interactable = exit_scene != null
set_base_name()
set_base_number()

View File

@@ -1,6 +1,6 @@
extends Node3D
const DIALOG_PATH = "res://dialogs/timelines/tutorial/demeter_ship_presentation.dtl"
const DIALOG_PATH = "res://dialogs/timelines/1_waking_up/3_demeter_ship_presentation.dtl"
var jingle_played := false

View File

@@ -1,58 +1,106 @@
[gd_scene format=3 uid="uid://d0n52psuns1vl"]
[ext_resource type="Script" uid="uid://ddf3fktoer2ng" path="res://stages/intro/scripts/intro.gd" id="1_2nxbv"]
[ext_resource type="Shader" uid="uid://bv2rghn44mrrf" path="res://stages/title_screen/resources/shaders/stars.gdshader" id="2_851lr"]
[ext_resource type="Texture2D" uid="uid://bi5jo6pf0acjb" path="res://common/icons/carambola.svg" id="2_2nxbv"]
[ext_resource type="Shader" uid="uid://bklafn6ulmkij" path="res://common/vfx/materials/shaders/topology_map.gdshader" id="2_851lr"]
[sub_resource type="ViewportTexture" id="ViewportTexture_mi20s"]
viewport_path = NodePath("CanvasLayer/TextureRect/SubViewport")
[sub_resource type="Curve" id="Curve_tg2p4"]
_data = [Vector2(0, 0.044977546), 0.0, 0.0, 0, 0, Vector2(1, 1), 0.0, 0.0, 0, 0]
point_count = 2
[sub_resource type="Curve" id="Curve_j8cg2"]
_limits = [-1.0, 1.0, 0.0, 1.0]
_data = [Vector2(0, 1), 0.0, 0.0, 0, 0, Vector2(1, 1), 0.0, 0.0, 0, 0]
point_count = 2
[sub_resource type="ShaderMaterial" id="ShaderMaterial_2nxbv"]
shader = ExtResource("2_851lr")
shader_parameter/sky_color = Color(0.03, 0.05, 0.11, 1)
shader_parameter/star_base_color = Color(0.8, 1, 0.3, 1)
shader_parameter/star_hue_offset = 0.6
shader_parameter/star_intensity = 0.08
shader_parameter/star_twinkle_speed = 0.8
shader_parameter/star_twinkle_intensity = 0.2
shader_parameter/layer_scale = 20.0
shader_parameter/layer_scale_step = 10.0
shader_parameter/layers_count = 3
shader_parameter/line_number = 10.0
shader_parameter/line_color = Color(0.0627451, 0.05882353, 0.16862746, 1)
shader_parameter/line_thickness = 0.0010000000475
shader_parameter/inverse_result = true
[sub_resource type="Sky" id="Sky_65b6a"]
sky_material = SubResource("ShaderMaterial_2nxbv")
[sub_resource type="FastNoiseLite" id="FastNoiseLite_mi20s"]
noise_type = 2
frequency = 0.0172
offset = Vector3(0, -377.34, 682.93)
fractal_type = 2
fractal_octaves = 3
[sub_resource type="Environment" id="Environment_mi20s"]
background_mode = 2
sky = SubResource("Sky_65b6a")
sky_custom_fov = 61.7
ambient_light_source = 3
ambient_light_color = Color(1, 1, 1, 1)
ambient_light_sky_contribution = 0.85
ambient_light_energy = 2.0
reflected_light_source = 2
tonemap_mode = 2
tonemap_exposure = 0.7
tonemap_white = 1.84
glow_enabled = true
glow_intensity = 0.22
glow_bloom = 0.22
glow_hdr_threshold = 0.79
glow_hdr_scale = 0.0
glow_hdr_luminance_cap = 5.63
fog_enabled = true
fog_mode = 1
fog_light_color = Color(0.13725491, 0.39215687, 0.6666667, 1)
fog_density = 0.1831
fog_aerial_perspective = 0.113
fog_sky_affect = 0.0
volumetric_fog_sky_affect = 0.0
adjustment_enabled = true
adjustment_saturation = 1.3
[sub_resource type="NoiseTexture2D" id="NoiseTexture2D_tg2p4"]
width = 600
height = 600
generate_mipmaps = false
noise = SubResource("FastNoiseLite_mi20s")
seamless = true
normalize = false
[node name="Intro" type="Node" unique_id=1801844904]
script = ExtResource("1_2nxbv")
game_scene_path = "uid://d28cp7a21kwou"
[node name="Node3D" type="Node3D" parent="." unique_id=1668131521]
[node name="CanvasLayer" type="CanvasLayer" parent="." unique_id=2099392132]
[node name="Camera3D" type="Camera3D" parent="Node3D" unique_id=2070854508]
[node name="ColorRect" type="ColorRect" parent="CanvasLayer" unique_id=154563397]
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
color = Color(0.13725491, 0.39215687, 0.6666667, 0.30588236)
[node name="WorldEnvironment" type="WorldEnvironment" parent="Node3D" unique_id=115692868]
environment = SubResource("Environment_mi20s")
[node name="TextureRect" type="TextureRect" parent="CanvasLayer" unique_id=353070670]
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
texture = SubResource("ViewportTexture_mi20s")
expand_mode = 1
stretch_mode = 6
[node name="SubViewport" type="SubViewport" parent="CanvasLayer/TextureRect" unique_id=1614126672]
transparent_bg = true
size = Vector2i(1000, 1000)
[node name="SparkParticles" type="CPUParticles2D" parent="CanvasLayer/TextureRect/SubViewport" unique_id=1408188363]
unique_name_in_owner = true
position = Vector2(500, 500)
emitting = false
amount = 180
texture = ExtResource("2_2nxbv")
lifetime = 3.0
emission_shape = 1
emission_sphere_radius = 1.0
spread = 180.0
gravity = Vector2(0, 0)
initial_velocity_min = 304.35
initial_velocity_max = 463.77
angular_velocity_min = -10.0
angular_velocity_max = 10.0
orbit_velocity_min = 0.1
orbit_velocity_max = 0.1
angle_min = -490.4
angle_max = 444.0
scale_amount_min = 10.0
scale_amount_max = 10.0
scale_amount_curve = SubResource("Curve_tg2p4")
color = Color(1, 0.4509804, 1, 1)
hue_variation_min = -1.0
hue_variation_max = 1.0
hue_variation_curve = SubResource("Curve_j8cg2")
[node name="TopologyMap" type="TextureRect" parent="CanvasLayer" unique_id=2030967336]
unique_name_in_owner = true
material = SubResource("ShaderMaterial_2nxbv")
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
texture = SubResource("NoiseTexture2D_tg2p4")
expand_mode = 3
stretch_mode = 6

View File

@@ -1,7 +1,8 @@
extends Node
class_name Intro
const WAKE_UP_DIALOG = "res://dialogs/timelines/tutorial/wake_up.dtl"
const SPEED = 5
const WAKE_UP_DIALOG = "res://dialogs/timelines/1_waking_up/1_waking_up.dtl"
var steps : Array[IntroStep]
@export_file var game_scene_path : String
@@ -18,13 +19,22 @@ func _input(_e):
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.)
func _ready():
Dialogic.start(WAKE_UP_DIALOG)
Dialogic.signal_event.connect(_on_dialogic_signal)
await Dialogic.timeline_ended
pass_intro()
func _on_dialogic_signal(argument:String):
if argument == "spark":
%SparkParticles.emitting = true
func pass_intro():
Dialogic.end_timeline()
SceneManager.change_to_scene(

Binary file not shown.

Before

Width:  |  Height:  |  Size: 144 KiB

After

Width:  |  Height:  |  Size: 166 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 207 KiB

After

Width:  |  Height:  |  Size: 224 KiB

View File

@@ -20,11 +20,12 @@
[sub_resource type="Resource" id="Resource_r4e5h"]
script = ExtResource("3_r4e5h")
cloud_value = 0.49210685
wind_direction = Vector2(-0.6777254, 0.7353151)
wind_force = 0.83562934
rain_value = 0.42404523
cloud_value = 0.20464431
wind_direction = Vector2(0.4359836, 0.8999546)
wind_force = 0.9393943
fog_value = 0.5362279
ambiance_name = "ExteriorFoggy"
ambiance_name = "ExteriorWindy"
type = 3
[sub_resource type="FastNoiseLite" id="FastNoiseLite_2w03p"]
@@ -104,14 +105,14 @@ anim_speed_max = 1.0
_data = [Vector2(0, 0), 0.0, 0.0, 0, 0, Vector2(0.4883721, 1), 0.037164874, 0.037164874, 0, 0, Vector2(1, 0), 0.0, 0.0, 0, 0]
point_count = 3
[sub_resource type="CurveTexture" id="CurveTexture_ovqi1"]
[sub_resource type="CurveTexture" id="CurveTexture_r4e5h"]
curve = SubResource("Curve_qdnee")
[sub_resource type="Curve" id="Curve_6d8m3"]
_data = [Vector2(0, 0), 0.0, 0.0, 0, 0, Vector2(0.25581396, 1), 0.0, 0.0, 0, 0, Vector2(0.5023256, 0), 0.0, 0.0, 0, 0, Vector2(0.75348836, 1), 0.0, 0.0, 0, 0, Vector2(1, 0), 0.0, 0.0, 0, 0]
point_count = 5
[sub_resource type="CurveXYZTexture" id="CurveXYZTexture_fwgig"]
[sub_resource type="CurveXYZTexture" id="CurveXYZTexture_3lxsc"]
curve_y = SubResource("Curve_6d8m3")
[sub_resource type="ParticleProcessMaterial" id="ParticleProcessMaterial_mlppq"]
@@ -123,12 +124,12 @@ initial_velocity_min = 35.1
initial_velocity_max = 39.0
directional_velocity_min = -1.0000161
directional_velocity_max = 0.9999839
directional_velocity_curve = SubResource("CurveXYZTexture_fwgig")
directional_velocity_curve = SubResource("CurveXYZTexture_3lxsc")
gravity = Vector3(0, 0, 0)
scale_min = 0.049999997
scale_max = 0.099999994
color = Color(0.9, 0.92, 1, 0.4392157)
alpha_curve = SubResource("CurveTexture_ovqi1")
alpha_curve = SubResource("CurveTexture_r4e5h")
[node name="Region" type="Node2D" unique_id=1509166288 node_paths=PackedStringArray("entity_container")]
script = ExtResource("1_441sk")
@@ -181,9 +182,6 @@ mouse_filter = 2
[node name="PassDay" parent="." unique_id=1144772570 instance=ExtResource("3_ktnx3")]
unique_name_in_owner = true
[node name="RegionGui" type="CanvasLayer" parent="." unique_id=2024485651]
layer = 2
[node name="GameGui" parent="." unique_id=1970837239 instance=ExtResource("4_qdnee")]
[node name="Announce" parent="." unique_id=1659074958 instance=ExtResource("8_mlppq")]

View File

@@ -603,6 +603,54 @@ texture_region_size = Vector2i(64, 64)
10:1/0/terrains_peering_bit/top_left_corner = 1
10:1/0/terrains_peering_bit/top_side = 1
10:1/0/terrains_peering_bit/top_right_corner = 1
12:0/0 = 0
12:0/0/terrain_set = 0
12:0/0/terrain = 1
12:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(-32, -32, 32, -32, 32, 32, -32, 32)
12:0/0/terrains_peering_bit/right_side = 1
12:0/0/terrains_peering_bit/bottom_right_corner = 1
12:0/0/terrains_peering_bit/bottom_side = 1
12:0/0/terrains_peering_bit/bottom_left_corner = 1
12:0/0/terrains_peering_bit/left_side = 1
12:0/0/terrains_peering_bit/top_left_corner = 1
12:0/0/terrains_peering_bit/top_side = 1
12:0/0/terrains_peering_bit/top_right_corner = 1
12:1/0 = 0
12:1/0/terrain_set = 0
12:1/0/terrain = 1
12:1/0/physics_layer_0/polygon_0/points = PackedVector2Array(-32, -32, 32, -32, 32, 32, -32, 32)
12:1/0/terrains_peering_bit/right_side = 1
12:1/0/terrains_peering_bit/bottom_right_corner = 1
12:1/0/terrains_peering_bit/bottom_side = 1
12:1/0/terrains_peering_bit/bottom_left_corner = 1
12:1/0/terrains_peering_bit/left_side = 1
12:1/0/terrains_peering_bit/top_left_corner = 1
12:1/0/terrains_peering_bit/top_side = 1
12:1/0/terrains_peering_bit/top_right_corner = 1
12:2/0 = 0
12:2/0/terrain_set = 0
12:2/0/terrain = 1
12:2/0/physics_layer_0/polygon_0/points = PackedVector2Array(-32, -32, 32, -32, 32, 32, -32, 32)
12:2/0/terrains_peering_bit/right_side = 1
12:2/0/terrains_peering_bit/bottom_right_corner = 1
12:2/0/terrains_peering_bit/bottom_side = 1
12:2/0/terrains_peering_bit/bottom_left_corner = 1
12:2/0/terrains_peering_bit/left_side = 1
12:2/0/terrains_peering_bit/top_left_corner = 1
12:2/0/terrains_peering_bit/top_side = 1
12:2/0/terrains_peering_bit/top_right_corner = 1
12:3/0 = 0
12:3/0/terrain_set = 0
12:3/0/terrain = 1
12:3/0/physics_layer_0/polygon_0/points = PackedVector2Array(-32, -32, 32, -32, 32, 32, -32, 32)
12:3/0/terrains_peering_bit/right_side = 1
12:3/0/terrains_peering_bit/bottom_right_corner = 1
12:3/0/terrains_peering_bit/bottom_side = 1
12:3/0/terrains_peering_bit/bottom_left_corner = 1
12:3/0/terrains_peering_bit/left_side = 1
12:3/0/terrains_peering_bit/top_left_corner = 1
12:3/0/terrains_peering_bit/top_side = 1
12:3/0/terrains_peering_bit/top_right_corner = 1
[sub_resource type="TileSetAtlasSource" id="TileSetAtlasSource_spfgy"]
resource_name = "Cristal"
@@ -1341,6 +1389,50 @@ texture_region_size = Vector2i(64, 64)
11:3/0/terrains_peering_bit/left_side = 0
11:3/0/terrains_peering_bit/top_left_corner = 0
11:3/0/terrains_peering_bit/top_side = 0
12:0/0 = 0
12:0/0/terrain_set = 0
12:0/0/terrain = 0
12:0/0/terrains_peering_bit/right_side = 0
12:0/0/terrains_peering_bit/bottom_right_corner = 0
12:0/0/terrains_peering_bit/bottom_side = 0
12:0/0/terrains_peering_bit/bottom_left_corner = 0
12:0/0/terrains_peering_bit/left_side = 0
12:0/0/terrains_peering_bit/top_left_corner = 0
12:0/0/terrains_peering_bit/top_side = 0
12:0/0/terrains_peering_bit/top_right_corner = 0
12:1/0 = 0
12:1/0/terrain_set = 0
12:1/0/terrain = 0
12:1/0/terrains_peering_bit/right_side = 0
12:1/0/terrains_peering_bit/bottom_right_corner = 0
12:1/0/terrains_peering_bit/bottom_side = 0
12:1/0/terrains_peering_bit/bottom_left_corner = 0
12:1/0/terrains_peering_bit/left_side = 0
12:1/0/terrains_peering_bit/top_left_corner = 0
12:1/0/terrains_peering_bit/top_side = 0
12:1/0/terrains_peering_bit/top_right_corner = 0
12:2/0 = 0
12:2/0/terrain_set = 0
12:2/0/terrain = 0
12:2/0/terrains_peering_bit/right_side = 0
12:2/0/terrains_peering_bit/bottom_right_corner = 0
12:2/0/terrains_peering_bit/bottom_side = 0
12:2/0/terrains_peering_bit/bottom_left_corner = 0
12:2/0/terrains_peering_bit/left_side = 0
12:2/0/terrains_peering_bit/top_left_corner = 0
12:2/0/terrains_peering_bit/top_side = 0
12:2/0/terrains_peering_bit/top_right_corner = 0
12:3/0 = 0
12:3/0/terrain_set = 0
12:3/0/terrain = 0
12:3/0/terrains_peering_bit/right_side = 0
12:3/0/terrains_peering_bit/bottom_right_corner = 0
12:3/0/terrains_peering_bit/bottom_side = 0
12:3/0/terrains_peering_bit/bottom_left_corner = 0
12:3/0/terrains_peering_bit/left_side = 0
12:3/0/terrains_peering_bit/top_left_corner = 0
12:3/0/terrains_peering_bit/top_side = 0
12:3/0/terrains_peering_bit/top_right_corner = 0
[sub_resource type="TileSetAtlasSource" id="TileSetAtlasSource_3g8t4"]
resource_name = "Ground"

View File

@@ -6,7 +6,6 @@ const GENERATION_NUMBER = 4
const NOISE_IMAGE_SIZE := 150
const MAX_DECONTAMINATION_DISTANCE=0
const MAX_TALION_DISTANCE=3
const RANDOM_PADDING_NOISE_FREQUENCY := 0.01
const ROCK_NOISE_FREQUENCY := 0.005
@@ -222,8 +221,7 @@ func get_generated_rock_type(coord : Vector2i) -> RockLayer.TileType:
get_tile_value_from_noise(coord, rock_noise_image)
)
var cristal_tile_value : float = (
1. if chunk_coord.distance_to(Vector2i.ZERO) > MAX_TALION_DISTANCE
else get_tile_value_from_noise(coord, cristal_noise_image)
get_tile_value_from_noise(coord, cristal_noise_image)
)
var saved_diff := region_data.rock_tiles_data.get_tile_diff_for_local_coord(coord, chunk_coord)

View File

@@ -0,0 +1,14 @@
extends RegionModifier
class_name CanyonModifier
func get_modifier_name() -> String:
return tr("CANYON")
func get_description() -> String:
return tr("CANYON_MODIFIER_DESC_TEXT")
func get_icon() -> Texture:
return preload("res://common/icons/pick.svg")
func modify_rock_threshold(rock_threshold : float) -> float:
return rock_threshold * 2.5

View File

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

View File

@@ -11,7 +11,7 @@ func get_icon() -> Texture:
return preload("res://common/icons/virus.svg")
func get_card_section_color() -> Color:
return Color("8b2dffff")
return Color("#FF006E")
# func modify_plant_seed_random_loose(plant_seed_random_loose : int) -> int:
# return plant_seed_random_loose + 1

View File

@@ -31,6 +31,6 @@ func region_ready(region : Region) -> void:
door.available = true
region.add_entity(door)
region.random_move_object(door,Region.DOORS_RANDOM_MOVEMENT)
door.position = region.data.player_spawn
region.recharge_station.available = false
region.recharge_station.visible = false

View File

@@ -11,4 +11,4 @@ func get_icon() -> Texture:
return preload("res://common/icons/cactus.svg")
func modify_cristal_threshold(cristal_threshold : float) -> float:
return cristal_threshold * 0.5
return cristal_threshold * 0.4

View File

@@ -11,7 +11,7 @@ func get_icon() -> Texture:
return preload("res://common/icons/radioactive.svg")
func get_card_section_color() -> Color:
return Color("8b2dffff")
return Color("#FF006E")
func modify_plant_base_score(plant_base_score : int) -> int:
return plant_base_score - 1

View File

@@ -2,7 +2,7 @@
extends Resource
class_name RegionModifier
const DEFAULT_MODIFIER_COLOR = Color("ff006eff")
const DEFAULT_MODIFIER_COLOR = Color("#8B2DFF")
const DEFAULT_ICON = preload("res://common/icons/cloud.svg")
const DOOR_SCENE = preload("res://entities/interactables/door/door.tscn")
@@ -52,6 +52,12 @@ func modify_start_decontamination_zone_radius(start_decontamination_zone_radius
func modify_seed_rarity_pool(seed_rarity_pool : Array[int]) -> Array[int]:
return seed_rarity_pool
func modify_talion_cell_chance(talion_cell_chance : Array[int]) -> Array[int]:
return talion_cell_chance
func modify_energy_cell_chance(energy_cell_chance : Array[int]) -> Array[int]:
return energy_cell_chance
func modify_plant_growing_time(plant_growing_time : int) -> int:
return plant_growing_time

View File

@@ -11,7 +11,7 @@ func get_icon() -> Texture:
return preload("res://common/icons/mountain.svg")
func get_card_section_color() -> Color:
return Color("8b2dffff")
return Color("#FF006E")
func modify_cristal_threshold(cristal_threshold : float) -> float:
return cristal_threshold * 0.

View File

@@ -16,7 +16,7 @@ func modify_seed_rarity_pool(_seed_rarity_pool : Array[int]) -> Array[int]:
return [-1]
func modify_charge(charge : int) -> int:
return charge+10
return charge+50
func modify_mutation_probability(_plant_mutation_probability) -> float:
return 1.
@@ -27,6 +27,12 @@ func get_card_section_color() -> Color:
func modify_region_name(_name : String) -> String:
return "ASTRA_BASE"
func modify_talion_cell_chance(_c : Array[int]) -> Array[int]:
return [0]
func modify_energy_cell_chance(_c : Array[int]) -> Array[int]:
return [0]
func region_ready(region : Region) -> void:
generate_astra_door(region)
var garage_door := generate_garage_door(region)
@@ -59,14 +65,14 @@ func generate_garage_door(region : Region) -> Door:
garage_door.name = "GarageDoor"
region.add_entity(garage_door)
region.random_move_object(garage_door,Region.SPAWN_OBJECT_RANDOM_MOVEMENT + 100)
region.random_move_object_in_circle(garage_door,Region.SPAWN_OBJECT_RANDOM_MOVEMENT * 2 + 100)
return garage_door
func generate_tutorial(region : Region) -> Tutorial:
var tutorial := load(TUTORIAL_SCENE_PATH).instantiate() as Tutorial
region.add_child(tutorial)
tutorial.region = region
tutorial.game_gui = region.find_child("GameGui")
tutorial.player = region.entity_container.find_child("Player")
region.add_child(tutorial)
return tutorial

View File

@@ -24,7 +24,14 @@ func _init(meteo_seed : int = randi()):
rng = RandomNumberGenerator.new()
rng.seed = meteo_seed
type = ALL_TYPES[rng.randi_range(0, len(ALL_TYPES) - 1)]
var available_types = ALL_TYPES
if type:
available_types = available_types.filter(
func(t : Type): return t != type
)
type = available_types[rng.randi_range(0, len(available_types) - 1)]
func generate():
wind_direction = Vector2(1,0).rotated(rng.randf_range(PI, -PI))

View File

@@ -4,18 +4,23 @@ class_name Region
const MIN_PASS_DAY_ANIMATION_TIME : float = PassDay.TIME_MARGIN * 2
const WIN_WAVE_SCENE : PackedScene = preload("res://stages/terrain/region/win_wave.tscn")
const TALION_CELL_SCENE : PackedScene = preload("res://entities/interactables/talion_cell/talion_cell.tscn")
const ENERGY_CELL_SCENE : PackedScene = preload("res://entities/interactables/energy_cell/energy_cell.tscn")
const TILE_SET : TileSet = preload("res://stages/terrain/region/resources/moss_biome.tres")
const TILE_SCALE = 1
const TILE_SIZE : int = roundi(TILE_SET.tile_size.x * TILE_SCALE)
const SPAWN_OBJECT_RANDOM_MOVEMENT = 200
const DOORS_RANDOM_MOVEMENT = 3000
const CELLS_RANDOM_MOVEMENT = 4000
const CHUNK_TILE_SIZE : int = 10
const CHUNK_SIZE = CHUNK_TILE_SIZE * TILE_SIZE
const CHUNK_LOAD_DISTANCE : int = 2
const CHUNK_UNLOAD_DISTANCE : int = 3
const REGION_DATA_UPDATE_INTERVAL = 4.
const MAX_GENERATION_THREAD = 1 # Crash when superior to 1
var is_generated : bool : get = check_is_generated
@@ -34,6 +39,9 @@ var score_by_plant : Dictionary[PlantData, int] = {}
var generated_chunks : Array[Chunk] = []
var generation_semaphore : Semaphore
var elapsed_time = 0.
var data_last_updated = 0.
@onready var recharge_station : TruckRecharge = %RechargeStation
@onready var camera : RegionCamera = %Camera
@@ -78,6 +86,8 @@ func _ready():
random_move_object(recharge_station, SPAWN_OBJECT_RANDOM_MOVEMENT)
recharge_station.update()
generate_talion_cells()
generate_energy_cells()
for m in data.modifiers:
m.region_ready(self)
@@ -88,9 +98,16 @@ func _ready():
GameInfo.game_data.player_data.inventory.add_item(Fork.new())
GameInfo.game_data.player_data.inventory.add_item(ShipPortal.new())
data.succeded.connect(finishing_region_animation)
func _process(_d):
func _process(delta : float):
elapsed_time += delta
if elapsed_time > data_last_updated + REGION_DATA_UPDATE_INTERVAL:
data_last_updated = elapsed_time
data.update()
if player:
generate_near_chunks(player)
remove_far_chunks(player)
@@ -149,6 +166,38 @@ func check_is_generated() -> bool:
ret = false
return ret
func generate_talion_cells() -> Array[TalionCell]:
var tcs : Array[TalionCell] = []
for i in range(data.talion_cell_number):
var new_talion_cell := (TALION_CELL_SCENE.instantiate() as TalionCell)
new_talion_cell.name = "TalionCell%d" % i
new_talion_cell.used = new_talion_cell.name in data.used_objects
add_entity(new_talion_cell)
random_move_object(new_talion_cell, CELLS_RANDOM_MOVEMENT)
tcs.append(new_talion_cell)
return tcs
func generate_energy_cells() -> Array[EnergyCell]:
var tcs : Array[EnergyCell] = []
for i in range(data.energy_cell_number):
var new_energy_cell := (ENERGY_CELL_SCENE.instantiate() as EnergyCell)
new_energy_cell.name = "EnergyCell%d" % i
new_energy_cell.used = new_energy_cell.name in data.used_objects
add_entity(new_energy_cell)
random_move_object(new_energy_cell, CELLS_RANDOM_MOVEMENT)
tcs.append(new_energy_cell)
return tcs
func get_generated_value() -> float:
# if layer_pack:
# return layer_pack.generated_value
@@ -174,6 +223,20 @@ func random_move_object(
dig_hole(object.global_position, 100)
func random_move_object_in_circle(
object : Node2D,
random_movement: int = SPAWN_OBJECT_RANDOM_MOVEMENT,
offset : Vector2 = Vector2.ZERO
):
var rng := RandomNumberGenerator.new()
rng.seed = data.region_seed + object.name.hash()
var rand_angle = rng.randf_range(-PI, PI)
object.position = (Vector2.UP * random_movement).rotated(rand_angle) + offset
dig_hole(object.global_position, 100)
func is_chunk_generated(coord : Vector2i):
return generated_chunks.find_custom(
func (c: Chunk) : return get_chunk_key(c.chunk_coord) == get_chunk_key(coord)
@@ -306,6 +369,9 @@ func decontaminate(tiles_coords : Array[Vector2i], save_tiles_diff := true):
chunk.decontamination_layer.place_decontaminations(coords)
func finishing_region_animation():
recharge_station.update()
await get_tree().create_timer(2.).timeout
var win_wave := WIN_WAVE_SCENE.instantiate() as WinWave
add_entity(win_wave)
win_wave.started_time = 0.

View File

@@ -11,8 +11,8 @@ signal pass_day_started(region_data : RegionData)
signal pass_day_proceeded(region_data : RegionData)
signal pass_day_ended(region_data : RegionData)
const MAX_RANDOM_SPAWN_DISTANCE = 3000
const START_ROCK_HOLE_RADIUS = 5
const MAX_RANDOM_SPAWN_DISTANCE = 2000
const START_ROCK_HOLE_RADIUS = 0
const PLAYER_ROCK_HOLE_RADIUS = 5
@export var region_seed : int
@@ -22,7 +22,9 @@ const PLAYER_ROCK_HOLE_RADIUS = 5
@export var decontamination_threshold : float
@export var cristal_threshold : float
@export var start_decontamination_hole_radius = 3
@export var seed_rarity_pool : Array[int] = [0,0,0,0,0,0,0,1,1,1]
@export var seed_rarity_pool : Array[int]
@export var talion_cell_number : int
@export var energy_cell_number : int
@export var day : int = 1
@export var entities_saved_data : Array[EntityData] = []
@@ -38,6 +40,7 @@ const PLAYER_ROCK_HOLE_RADIUS = 5
@export var completed_doors : Array[int] = [] # List of completed doors
@export var modifiers : Array[RegionModifier]
@export var used_objects : Array[String]
@export var charges : int :
set(v):
@@ -69,6 +72,8 @@ func _init(
cristal_threshold = parameter.get_cristal_threshold()
start_decontamination_hole_radius = parameter.get_start_decontamination_zone_radius()
seed_rarity_pool = parameter.get_seed_rarity_pool()
talion_cell_number = parameter.get_talion_cell_chance().pick_random()
energy_cell_number = parameter.get_energy_cell_chance().pick_random()
modifiers = parameter.modifiers
player_spawn = get_random_spawn_position()
@@ -82,15 +87,16 @@ func _init(
edit_map_origin()
func update():
var old_state = state
if not in_passing_day_animation and not objective_disabled:
if objective > 0 and get_score() >= objective and not GameInfo.game_data.current_run.story_step is TutorialStoryStep:
if state != State.SUCCEEDED:
succeded.emit()
state = State.SUCCEEDED
if old_state != State.SUCCEEDED:
succeded.emit()
if state != State.SUCCEEDED and charges == 0:
if state != State.FAILED:
failed.emit()
state = State.FAILED
if old_state != State.FAILED:
failed.emit()
updated.emit(self)
#endregion

View File

@@ -2,11 +2,13 @@ extends Resource
class_name RegionParameter
const DEFAULT_ROCK_THRESHOLD = 0.3
const DEFAULT_DECONTAMINATION_THRESHOLD = 0.5
const DEFAULT_DECONTAMINATION_THRESHOLD = 0.35
const DEFAULT_CRISTAL_THRESHOLD = 0.1
const DEFAULT_CHARGE = 8
const DEFAULT_CHARGE = 10
const DEFAULT_TALION_CELL_CHANCE : Array[int] = [1,2,2,2,3]
const DEFAULT_ENERGY_CELL_CHANCE : Array[int] = [3,4,4,4,5]
const DEFAULT_START_DECONTAMINATION_ZONE_RADIUS = 3
const DEFAULT_SEED_RARITY_POOL: Array[int] = [-1,-1,-1,-1,0,0,0,0,1,1]
const DEFAULT_SEED_RARITY_POOL: Array[int] = [-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,0,0,0,0,0,0,0,0,1]
@export var region_name : String
@export var objective : int
@@ -98,3 +100,19 @@ func get_seed_rarity_pool() -> Array[int]:
seed_rarity_pool = m.modify_seed_rarity_pool(seed_rarity_pool)
return seed_rarity_pool
func get_talion_cell_chance() -> Array[int]:
var talion_cell_chance := DEFAULT_TALION_CELL_CHANCE
for m in modifiers:
talion_cell_chance = m.modify_talion_cell_chance(talion_cell_chance)
return talion_cell_chance
func get_energy_cell_chance() -> Array[int]:
var energy_cell_chance := DEFAULT_ENERGY_CELL_CHANCE
for m in modifiers:
energy_cell_chance = m.modify_energy_cell_chance(energy_cell_chance)
return energy_cell_chance

View File

@@ -51,7 +51,6 @@ func update():
for p in region.entity_container.get_children():
if (
p is Plant
and p.data.get_state() == PlantData.State.MATURE
and not p in plant_looted
and p.position.distance_to(self.position) < get_radius()
):

View File

@@ -0,0 +1,19 @@
extends Region
func _init():
if not GameInfo.game_data.current_region_data:
GameInfo.game_data.current_region_data = RegionData.new(
RegionParameter.new()
)
data = GameInfo.game_data.current_region_data
func _ready():
player = %Player
player.controlling_player = true
player.global_position = data.player_position
func _process(_d):
pass

View File

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

View File

@@ -0,0 +1,35 @@
[gd_scene format=3 uid="uid://ne5r7ct0bnwb"]
[ext_resource type="Script" uid="uid://fqe55cbk0usp" path="res://stages/terrain/region/tutorial_region/scripts/tutorial_region.gd" id="1_pj6fy"]
[ext_resource type="PackedScene" uid="uid://12nak7amd1uq" path="res://gui/game/game_gui.tscn" id="2_362ox"]
[ext_resource type="PackedScene" uid="uid://bgvbgeq46wee2" path="res://entities/player/player.tscn" id="2_pj6fy"]
[ext_resource type="PackedScene" uid="uid://d324mlmgls4fs" path="res://entities/interactables/truck/recharge/truck_recharge.tscn" id="3_0uj74"]
[ext_resource type="PackedScene" uid="uid://yk78ubpu5ghq" path="res://gui/game/pass_day/pass_day.tscn" id="3_okxyg"]
[ext_resource type="PackedScene" uid="uid://dj7gp3crtg2yt" path="res://entities/camera/camera.tscn" id="4_pj6fy"]
[ext_resource type="PackedScene" uid="uid://fnv0qhkh40mv" path="res://gui/game/announce/announce.tscn" id="4_qc5a5"]
[node name="TutorialRegion" type="Node2D" unique_id=620571771 node_paths=PackedStringArray("entity_container")]
script = ExtResource("1_pj6fy")
entity_container = NodePath("Entities")
[node name="GameGui" parent="." unique_id=274698556 instance=ExtResource("2_362ox")]
[node name="PassDay" parent="." unique_id=335255544 instance=ExtResource("3_okxyg")]
unique_name_in_owner = true
[node name="Announce" parent="." unique_id=1659074958 instance=ExtResource("4_qc5a5")]
layer = 3
[node name="Entities" type="Node2D" parent="." unique_id=652016014]
y_sort_enabled = true
[node name="Player" parent="Entities" unique_id=447849413 instance=ExtResource("2_pj6fy")]
unique_name_in_owner = true
[node name="RechargeStation" parent="Entities" unique_id=1099196706 instance=ExtResource("3_0uj74")]
unique_name_in_owner = true
position = Vector2(0, -205)
[node name="Camera" parent="." unique_id=62168089 node_paths=PackedStringArray("following") instance=ExtResource("4_pj6fy")]
unique_name_in_owner = true
following = NodePath("../Entities/Player")

View File

@@ -22,8 +22,8 @@ render_priority = 0
shader = ExtResource("1_2voo7")
shader_parameter/specular = 0.0
shader_parameter/roughness = 0.6
shader_parameter/radius = 150.0
shader_parameter/height = 100.0
shader_parameter/radius = 8.0
shader_parameter/height = 3.81
shader_parameter/gradient = ExtResource("2_t1vtm")
shader_parameter/random_fertility_texture = SubResource("NoiseTexture2D_8o8xi")
shader_parameter/fertility_gradient = SubResource("GradientTexture1D_neuam")

View File

@@ -21,6 +21,8 @@ func _ready():
GameInfo.game_data.progression_data.get_all_story_steps()
) - 1
)
%Settings.close_settings()
%Controls.close_controls()
func _on_start_pressed():
if GameInfo.game_data :
@@ -63,3 +65,12 @@ func _on_restart_button_down():
GameInfo.start_game_data()
SceneManager.change_to_scene(IntroScene.new())
func _on_settings_button_down():
%Settings.open_settings()
func _on_controls_button_down():
%Controls.open_controls()
func _on_quit_button_down():
get_tree().quit()

View File

@@ -6,14 +6,19 @@
[ext_resource type="Texture2D" uid="uid://cdpqg3pkjcw2h" path="res://stages/title_screen/assets/textures/title.png" id="3_y6tw6"]
[ext_resource type="Texture2D" uid="uid://bewr0t1wi8pff" path="res://common/icons/rotate.svg" id="5_6yuhi"]
[ext_resource type="PackedScene" uid="uid://cm5b7w7j6527f" path="res://stages/title_screen/planet_3d.tscn" id="5_7a1qq"]
[ext_resource type="Texture2D" uid="uid://cixd5j8yqpavg" path="res://common/icons/settings.svg" id="6_3aitq"]
[ext_resource type="PackedScene" uid="uid://c8flevrkelpvy" path="res://gui/credits/socials/instagram.tscn" id="6_7a1qq"]
[ext_resource type="PackedScene" uid="uid://bpy6sqa71gcfm" path="res://gui/credits/socials/survey.tscn" id="6_pjo5j"]
[ext_resource type="Texture2D" uid="uid://bkwhrq4sp5dcp" path="res://common/icons/device-gamepad.svg" id="7_igvpv"]
[ext_resource type="PackedScene" uid="uid://bc3byq8e45ejj" path="res://gui/credits/socials/steam.tscn" id="7_nmsah"]
[ext_resource type="Texture2D" uid="uid://dex283rx00fjb" path="res://common/icons/logout.svg" id="8_lwj2x"]
[ext_resource type="Shader" uid="uid://cuni3ggtw2uuy" path="res://common/vfx/materials/shaders/blur.gdshader" id="8_pjo5j"]
[ext_resource type="LabelSettings" uid="uid://dqwayi8yjwau2" path="res://gui/ressources/title_label_settings.tres" id="9_5mxqx"]
[ext_resource type="Theme" uid="uid://5au2k3vf2po3" path="res://gui/ressources/menu.tres" id="10_tsp1v"]
[ext_resource type="Texture2D" uid="uid://b75k12a4wc5t4" path="res://common/icons/book-2.svg" id="11_3aitq"]
[ext_resource type="Texture2D" uid="uid://dbv5hm7lyi1f6" path="res://common/icons/infinity.svg" id="12_igvpv"]
[ext_resource type="PackedScene" uid="uid://g6lbgg1fhc25" path="res://gui/menu/settings/settings.tscn" id="18_lwj2x"]
[ext_resource type="PackedScene" uid="uid://b4qe1dwwsk87t" path="res://gui/menu/controls/controls.tscn" id="19_rf16a"]
[sub_resource type="ViewportTexture" id="ViewportTexture_6yuhi"]
viewport_path = NodePath("SubViewport")
@@ -23,9 +28,212 @@ shader = ExtResource("8_pjo5j")
shader_parameter/strength = 5.00000023424012
shader_parameter/mix_percentage = 0.3
[sub_resource type="FastNoiseLite" id="FastNoiseLite_5mxqx"]
[sub_resource type="FastNoiseLite" id="FastNoiseLite_lwj2x"]
frequency = 1.0
[sub_resource type="Animation" id="Animation_gn4uv"]
length = 0.001
tracks/0/type = "bezier"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("%Planet3d:position:z")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"handle_modes": PackedInt32Array(0),
"points": PackedFloat32Array(0, -0.25, 0, 0.25, 0),
"times": PackedFloat32Array(0)
}
tracks/1/type = "value"
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/path = NodePath("DirectionalLight3D:light_energy")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [1.0]
}
tracks/2/type = "value"
tracks/2/imported = false
tracks/2/enabled = true
tracks/2/path = NodePath("../MarginContainer/GridContainer/VBoxContainer/Logo:modulate:a")
tracks/2/interp = 1
tracks/2/loop_wrap = true
tracks/2/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 1,
"values": [1.0]
}
tracks/3/type = "value"
tracks/3/imported = false
tracks/3/enabled = true
tracks/3/path = NodePath("%Start:modulate:a")
tracks/3/interp = 1
tracks/3/loop_wrap = true
tracks/3/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 1,
"values": [1.0]
}
tracks/4/type = "value"
tracks/4/imported = false
tracks/4/enabled = true
tracks/4/path = NodePath("%Restart:modulate:a")
tracks/4/interp = 1
tracks/4/loop_wrap = true
tracks/4/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 1,
"values": [1.0]
}
tracks/5/type = "value"
tracks/5/imported = false
tracks/5/enabled = true
tracks/5/path = NodePath("../MarginContainer/GridContainer/VBoxContainer/VBoxContainer/Settings:modulate:a")
tracks/5/interp = 1
tracks/5/loop_wrap = true
tracks/5/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 1,
"values": [1.0]
}
tracks/6/type = "value"
tracks/6/imported = false
tracks/6/enabled = true
tracks/6/path = NodePath("../MarginContainer/GridContainer/VBoxContainer/VBoxContainer/Controls:modulate:a")
tracks/6/interp = 1
tracks/6/loop_wrap = true
tracks/6/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 1,
"values": [1.0]
}
tracks/7/type = "value"
tracks/7/imported = false
tracks/7/enabled = true
tracks/7/path = NodePath("../MarginContainer/GridContainer/VBoxContainer/VBoxContainer/Quit:modulate:a")
tracks/7/interp = 1
tracks/7/loop_wrap = true
tracks/7/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 1,
"values": [1.0]
}
[sub_resource type="Animation" id="Animation_ofiho"]
resource_name = "arrive"
length = 3.0
tracks/0/type = "bezier"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("%Planet3d:position:z")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"handle_modes": PackedInt32Array(0, 2),
"points": PackedFloat32Array(-100, 0, 0, 0.56666666, 0.5, -1.5, -1.39, 1, 0.24999349, -0.17985143),
"times": PackedFloat32Array(0, 1.79)
}
tracks/1/type = "value"
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/path = NodePath("DirectionalLight3D:light_energy")
tracks/1/interp = 2
tracks/1/loop_wrap = true
tracks/1/keys = {
"times": PackedFloat32Array(0, 1.7833333),
"transitions": PackedFloat32Array(1, 1),
"update": 0,
"values": [0.0, 1.0]
}
tracks/2/type = "value"
tracks/2/imported = false
tracks/2/enabled = true
tracks/2/path = NodePath("../MarginContainer/GridContainer/VBoxContainer/Logo:modulate:a")
tracks/2/interp = 2
tracks/2/loop_wrap = true
tracks/2/keys = {
"times": PackedFloat32Array(0.03333336, 0.5),
"transitions": PackedFloat32Array(1, 1),
"update": 0,
"values": [0.0, 1.0]
}
tracks/3/type = "value"
tracks/3/imported = false
tracks/3/enabled = true
tracks/3/path = NodePath("%Start:modulate:a")
tracks/3/interp = 2
tracks/3/loop_wrap = true
tracks/3/keys = {
"times": PackedFloat32Array(0.23333333, 0.4),
"transitions": PackedFloat32Array(1, 1),
"update": 0,
"values": [0.0, 1.0]
}
tracks/4/type = "value"
tracks/4/imported = false
tracks/4/enabled = true
tracks/4/path = NodePath("%Restart:modulate:a")
tracks/4/interp = 2
tracks/4/loop_wrap = true
tracks/4/keys = {
"times": PackedFloat32Array(0.39999998, 0.6),
"transitions": PackedFloat32Array(1, 1),
"update": 0,
"values": [0.0, 1.0]
}
tracks/5/type = "value"
tracks/5/imported = false
tracks/5/enabled = true
tracks/5/path = NodePath("../MarginContainer/GridContainer/VBoxContainer/VBoxContainer/Settings:modulate:a")
tracks/5/interp = 2
tracks/5/loop_wrap = true
tracks/5/keys = {
"times": PackedFloat32Array(0.6, 0.8),
"transitions": PackedFloat32Array(1, 1),
"update": 0,
"values": [0.0, 1.0]
}
tracks/6/type = "value"
tracks/6/imported = false
tracks/6/enabled = true
tracks/6/path = NodePath("../MarginContainer/GridContainer/VBoxContainer/VBoxContainer/Controls:modulate:a")
tracks/6/interp = 2
tracks/6/loop_wrap = true
tracks/6/keys = {
"times": PackedFloat32Array(0.8, 1),
"transitions": PackedFloat32Array(1, 1),
"update": 0,
"values": [0.0, 1.0]
}
tracks/7/type = "value"
tracks/7/imported = false
tracks/7/enabled = true
tracks/7/path = NodePath("../MarginContainer/GridContainer/VBoxContainer/VBoxContainer/Quit:modulate:a")
tracks/7/interp = 2
tracks/7/loop_wrap = true
tracks/7/keys = {
"times": PackedFloat32Array(1, 1.2),
"transitions": PackedFloat32Array(1, 1),
"update": 0,
"values": [0.0, 1.0]
}
[sub_resource type="AnimationLibrary" id="AnimationLibrary_1xafb"]
_data = {
&"RESET": SubResource("Animation_gn4uv"),
&"arrive": SubResource("Animation_ofiho")
}
[node name="TitleScreen" type="CanvasLayer" unique_id=1166097103]
script = ExtResource("1_6yuhi")
@@ -78,6 +286,7 @@ stretch_mode = 5
[node name="VBoxContainer" type="VBoxContainer" parent="MarginContainer/GridContainer/VBoxContainer" unique_id=1472848873]
layout_mode = 2
theme_override_constants/separation = 1
[node name="Start" type="Button" parent="MarginContainer/GridContainer/VBoxContainer/VBoxContainer" unique_id=366586661]
unique_name_in_owner = true
@@ -97,11 +306,31 @@ layout_mode = 2
size_flags_horizontal = 4
size_flags_vertical = 4
theme = ExtResource("1_4ph5l")
theme_override_font_sizes/font_size = 33
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
text = "SETTINGS"
icon = ExtResource("6_3aitq")
flat = true
[node name="Controls" type="Button" parent="MarginContainer/GridContainer/VBoxContainer/VBoxContainer" unique_id=714205425]
layout_mode = 2
size_flags_horizontal = 4
text = "CONTROLS"
icon = ExtResource("7_igvpv")
flat = true
[node name="Quit" type="Button" parent="MarginContainer/GridContainer/VBoxContainer/VBoxContainer" unique_id=103430335]
layout_mode = 2
size_flags_horizontal = 4
text = "QUIT"
icon = ExtResource("8_lwj2x")
flat = true
[node name="Credits" type="VBoxContainer" parent="MarginContainer/GridContainer" unique_id=871547635]
layout_mode = 2
size_flags_horizontal = 3
@@ -182,7 +411,7 @@ size = Vector2i(1980, 1080)
[node name="Planet3d" parent="SubViewport" unique_id=926789923 instance=ExtResource("5_7a1qq")]
unique_name_in_owner = true
noise = SubResource("FastNoiseLite_5mxqx")
noise = SubResource("FastNoiseLite_lwj2x")
[node name="Camera3D" type="Camera3D" parent="SubViewport" unique_id=806252928]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -14.369979, 0, 64.323425)
@@ -198,7 +427,26 @@ shadow_normal_bias = 0.0
shadow_opacity = 0.92
shadow_blur = 4.667
[node name="AnimationPlayer" type="AnimationPlayer" parent="SubViewport" unique_id=885013942]
libraries/ = SubResource("AnimationLibrary_1xafb")
autoplay = &"arrive"
[node name="Settings" parent="." unique_id=1832300574 instance=ExtResource("18_lwj2x")]
unique_name_in_owner = true
visible = false
z_index = 100
mouse_filter = 2
[node name="Controls" parent="." unique_id=36425199 instance=ExtResource("19_rf16a")]
unique_name_in_owner = true
visible = false
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/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"]