diff --git a/common/audio_manager/assets/ambiance/niveau/dragon-studio-gentle-rain-07-437321.mp3 b/common/audio_manager/assets/ambiance/niveau/dragon-studio-gentle-rain-07-437321.mp3 new file mode 100644 index 0000000..c4fe0c9 Binary files /dev/null and b/common/audio_manager/assets/ambiance/niveau/dragon-studio-gentle-rain-07-437321.mp3 differ diff --git a/common/audio_manager/assets/ambiance/niveau/dragon-studio-gentle-rain-07-437321.mp3.import b/common/audio_manager/assets/ambiance/niveau/dragon-studio-gentle-rain-07-437321.mp3.import new file mode 100644 index 0000000..5c48798 --- /dev/null +++ b/common/audio_manager/assets/ambiance/niveau/dragon-studio-gentle-rain-07-437321.mp3.import @@ -0,0 +1,19 @@ +[remap] + +importer="mp3" +type="AudioStreamMP3" +uid="uid://bqmo8dqvbwrjy" +path="res://.godot/imported/dragon-studio-gentle-rain-07-437321.mp3-0d563814f1cc2abb83b1e2f2367220f0.mp3str" + +[deps] + +source_file="res://common/audio_manager/assets/ambiance/niveau/dragon-studio-gentle-rain-07-437321.mp3" +dest_files=["res://.godot/imported/dragon-studio-gentle-rain-07-437321.mp3-0d563814f1cc2abb83b1e2f2367220f0.mp3str"] + +[params] + +loop=true +loop_offset=0.0 +bpm=0.0 +beat_count=0 +bar_beats=4 diff --git a/common/audio_manager/audio_manager.tscn b/common/audio_manager/audio_manager.tscn index 79315bd..94c2de0 100644 --- a/common/audio_manager/audio_manager.tscn +++ b/common/audio_manager/audio_manager.tscn @@ -3,6 +3,7 @@ [ext_resource type="Script" uid="uid://2p5d6vogtn82" path="res://common/audio_manager/scripts/audio_manager.gd" id="1_0tvca"] [ext_resource type="AudioStream" uid="uid://dipnmlprwfo12" path="res://common/audio_manager/assets/ambiance/niveau/ambiance_phase_1.ogg" id="2_tuvql"] [ext_resource type="AudioStream" uid="uid://b1hut6lc1jevh" path="res://common/audio_manager/assets/morceaux/niveau/mines_phase_2.ogg" id="4_2fduo"] +[ext_resource type="AudioStream" uid="uid://bqmo8dqvbwrjy" path="res://common/audio_manager/assets/ambiance/niveau/dragon-studio-gentle-rain-07-437321.mp3" id="4_aedoe"] [ext_resource type="AudioStream" uid="uid://6yx6txbgc6pt" path="res://common/audio_manager/assets/ambiance/astra/ambiance_astra.ogg" id="5_8204s"] [ext_resource type="AudioStream" uid="uid://dcbuhtc085q2x" path="res://common/audio_manager/assets/morceaux/niveau/mines_phase_1.ogg" id="5_ajci6"] [ext_resource type="AudioStream" uid="uid://dsphn6dbbd55a" path="res://common/audio_manager/assets/morceaux/niveau/forest_phase_1.ogg" id="6_6o1yh"] @@ -132,6 +133,14 @@ stream = ExtResource("7_ge2sc") unique_name_in_owner = true stream = ExtResource("2_tuvql") +[node name="ExteriorFoggy" type="AudioStreamPlayer" parent="Ambiances" unique_id=1741396762] +unique_name_in_owner = true + +[node name="ExteriorRaining" type="AudioStreamPlayer" parent="Ambiances" unique_id=1946725047] +unique_name_in_owner = true +stream = ExtResource("4_aedoe") +volume_db = -20.0 + [node name="Astra" type="AudioStreamPlayer" parent="Ambiances" unique_id=1244577212] unique_name_in_owner = true stream = ExtResource("5_8204s") diff --git a/common/audio_manager/scripts/audio_manager.gd b/common/audio_manager/scripts/audio_manager.gd index f56f4e6..40cbceb 100644 --- a/common/audio_manager/scripts/audio_manager.gd +++ b/common/audio_manager/scripts/audio_manager.gd @@ -42,7 +42,6 @@ func _on_change_scene(scene : Scene): elif scene is IntroScene: stop_all_musics() elif scene is RegionScene: - play_ambiance("Exterior", false) var region_level = GameInfo.game_data.current_run.level var first_phase = REGION_FIRST_PHASE[region_level % len(REGION_FIRST_PHASE)] var loop_phase = REGION_LOOP_PHASE[region_level % len(REGION_LOOP_PHASE)] @@ -299,7 +298,7 @@ func set_volume(player : AudioStreamPlayer, to : float, fade_time = DEFAULT_FADE return fade_tween func start_player(player: AudioStreamPlayer, from_random_time = false, fade_time = DEFAULT_FADE_TIME): - if player and not player.playing: + if player and player.stream and not player.playing: player.play( 0.0 if not from_random_time else randf_range(0.0, player.stream.get_length()) diff --git a/common/vfx/materials/shaders/screen_clouds.gdshader b/common/vfx/materials/shaders/screen_clouds.gdshader index 78c000b..539f2dd 100644 --- a/common/vfx/materials/shaders/screen_clouds.gdshader +++ b/common/vfx/materials/shaders/screen_clouds.gdshader @@ -9,9 +9,9 @@ uniform vec2 viewport_size = vec2(1920.0, 1080.0); // Uniforms for customization uniform sampler2D noise_texture : repeat_enable; -uniform float cloud_speed : hint_range(0.0, 1.0) = 1.0; +uniform float cloud_speed : hint_range(0.0, 10.0) = 1.0; uniform float cloud_delay : hint_range(0.0, 100.0) = 1.0; -uniform vec2 noise_dir = vec2(1.0,+1.0); +uniform vec2 cloud_dir = vec2(1.0,+1.0); uniform vec3 cloud_color : source_color = vec3(0.8); uniform float cloud_alpha : hint_range(0.0, 1.0) = 1.0; uniform float cloud_size : hint_range(1.0, 100.0) = 10.0; @@ -26,8 +26,8 @@ void fragment() { float time = TIME+cloud_delay; - vec2 time_offset = time * noise_dir * cloud_speed * 0.01; - vec2 distorsion_time_offset = time * noise_dir * (cloud_speed + vec2(cloud_distorsion_speed,cloud_distorsion_speed)) * 0.01; + vec2 time_offset = time * cloud_dir * cloud_speed * 0.01; + vec2 distorsion_time_offset = time * cloud_dir * (cloud_speed + vec2(cloud_distorsion_speed,cloud_distorsion_speed)) * 0.01; vec2 cloud_uv = world_pos * (1./(cloud_size*100.)) + time_offset; vec2 distorsion_cloud_uv = world_pos * (1./(cloud_size*100.)) + distorsion_time_offset; diff --git a/gui/credits/credits.tscn b/gui/credits/credits.tscn index deac4cd..1f60f58 100644 --- a/gui/credits/credits.tscn +++ b/gui/credits/credits.tscn @@ -4,6 +4,7 @@ [ext_resource type="Theme" uid="uid://5au2k3vf2po3" path="res://gui/ressources/menu.tres" id="2_luv2b"] [ext_resource type="Texture2D" uid="uid://cdpqg3pkjcw2h" path="res://stages/title_screen/assets/textures/title.png" id="3_urbel"] [ext_resource type="LabelSettings" uid="uid://dqwayi8yjwau2" path="res://gui/ressources/title_label_settings.tres" id="4_5k6jv"] +[ext_resource type="PackedScene" uid="uid://bpy6sqa71gcfm" path="res://gui/credits/socials/survey.tscn" id="5_5k6jv"] [ext_resource type="PackedScene" uid="uid://bc3byq8e45ejj" path="res://gui/credits/socials/steam.tscn" id="5_luv2b"] [ext_resource type="PackedScene" uid="uid://c8flevrkelpvy" path="res://gui/credits/socials/instagram.tscn" id="5_yknhu"] [ext_resource type="FontFile" uid="uid://qt80w6o01q5s" path="res://gui/ressources/fonts/TitanOne-Regular.ttf" id="7_urbel"] @@ -62,13 +63,17 @@ text = "THANKS_FOR_PLAYING" label_settings = ExtResource("4_5k6jv") horizontal_alignment = 1 -[node name="SteamButton" parent="MarginContainer/GridContainer/VBoxContainer" unique_id=1181450581 instance=ExtResource("5_luv2b")] +[node name="SurveyButton" parent="MarginContainer/GridContainer/VBoxContainer" unique_id=1337726269 instance=ExtResource("5_5k6jv")] layout_mode = 2 -link = "https://store.steampowered.com/app/4444510/Seeding_The_Wasteland/" +size_flags_horizontal = 4 [node name="InstagramButton" parent="MarginContainer/GridContainer/VBoxContainer" unique_id=68880754 instance=ExtResource("5_yknhu")] layout_mode = 2 +[node name="SteamButton" parent="MarginContainer/GridContainer/VBoxContainer" unique_id=1181450581 instance=ExtResource("5_luv2b")] +layout_mode = 2 +link = "https://store.steampowered.com/app/4444510/Seeding_The_Wasteland/" + [node name="VBoxContainer2" type="VBoxContainer" parent="MarginContainer/GridContainer" unique_id=105267250] layout_mode = 2 size_flags_horizontal = 3 diff --git a/gui/credits/socials/steam.tscn b/gui/credits/socials/steam.tscn index 330272d..3d1bf22 100644 --- a/gui/credits/socials/steam.tscn +++ b/gui/credits/socials/steam.tscn @@ -41,8 +41,9 @@ corner_radius_bottom_right = 5 corner_radius_bottom_left = 5 [node name="SteamButton" type="Button" unique_id=1181450581] +offset_top = 1.0 offset_right = 447.0 -offset_bottom = 42.0 +offset_bottom = 43.0 size_flags_horizontal = 4 theme = ExtResource("1_emeyy") theme_override_constants/icon_max_width = 30 diff --git a/gui/credits/socials/survey.tscn b/gui/credits/socials/survey.tscn new file mode 100644 index 0000000..8c8de50 --- /dev/null +++ b/gui/credits/socials/survey.tscn @@ -0,0 +1,54 @@ +[gd_scene format=3 uid="uid://bpy6sqa71gcfm"] + +[ext_resource type="Theme" uid="uid://5au2k3vf2po3" path="res://gui/ressources/menu.tres" id="1_8xrox"] +[ext_resource type="Texture2D" uid="uid://dth2mj0nh2q70" path="res://common/icons/align-right.svg" id="2_5d2f4"] +[ext_resource type="Script" uid="uid://bkbcl77m28sfv" path="res://gui/credits/socials/scripts/link_button.gd" id="3_fvgn8"] + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_8xrox"] +bg_color = Color(0.54509807, 0.1764706, 1, 1) +border_width_left = 6 +border_width_top = 6 +border_width_right = 6 +border_width_bottom = 6 +border_color = Color(0.54509807, 0.1764706, 1, 1) +corner_radius_top_left = 5 +corner_radius_top_right = 5 +corner_radius_bottom_right = 5 +corner_radius_bottom_left = 5 + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_5d2f4"] +bg_color = Color(0.6256068, 0.4293661, 1, 1) +border_width_left = 6 +border_width_top = 6 +border_width_right = 6 +border_width_bottom = 6 +border_color = Color(0.54509807, 0.1764706, 1, 1) +corner_radius_top_left = 5 +corner_radius_top_right = 5 +corner_radius_bottom_right = 5 +corner_radius_bottom_left = 5 + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_fvgn8"] +bg_color = Color(0.627451, 0.42745098, 1, 1) +border_width_left = 6 +border_width_top = 6 +border_width_right = 6 +border_width_bottom = 6 +border_color = Color(0.627451, 0.42745098, 1, 1) +corner_radius_top_left = 5 +corner_radius_top_right = 5 +corner_radius_bottom_right = 5 +corner_radius_bottom_left = 5 + +[node name="SurveyButton" type="Button" unique_id=1337726269] +size_flags_horizontal = 8 +theme = ExtResource("1_8xrox") +theme_override_constants/icon_max_width = 30 +theme_override_font_sizes/font_size = 20 +theme_override_styles/normal = SubResource("StyleBoxFlat_8xrox") +theme_override_styles/pressed = SubResource("StyleBoxFlat_5d2f4") +theme_override_styles/hover = SubResource("StyleBoxFlat_fvgn8") +text = "TAKE_A_QUICK_SURVEY" +icon = ExtResource("2_5d2f4") +script = ExtResource("3_fvgn8") +link = "https://docs.google.com/forms/d/e/1FAIpQLScExc77ra_xGPFbaSYsXy-T9THceIc4fcbnhih-1Zlvysdcnw/viewform?usp=dialog" diff --git a/gui/game/pass_day/pass_day.tscn b/gui/game/pass_day/pass_day.tscn index 6ff7845..ec140c0 100644 --- a/gui/game/pass_day/pass_day.tscn +++ b/gui/game/pass_day/pass_day.tscn @@ -1,8 +1,6 @@ [gd_scene format=3 uid="uid://yk78ubpu5ghq"] [ext_resource type="Script" uid="uid://2qomrdxbvxqa" path="res://gui/game/pass_day/scripts/pass_day.gd" id="1_0pm4g"] -[ext_resource type="Shader" uid="uid://cuni3ggtw2uuy" path="res://common/vfx/materials/shaders/blur.gdshader" id="1_v570a"] -[ext_resource type="Script" uid="uid://i7glvbe8pdr8" path="res://gui/game/pass_day/scripts/pass_day_background.gd" id="2_bhfpo"] [ext_resource type="PackedScene" uid="uid://brfsapvj2quxm" path="res://gui/game/energy_info/energy_info.tscn" id="2_feyaf"] [ext_resource type="Theme" uid="uid://5au2k3vf2po3" path="res://gui/ressources/menu.tres" id="4_0pm4g"] [ext_resource type="Script" uid="uid://0dhj8sdpil7q" path="res://gui/tools/control_animation_player.gd" id="5_dqmg8"] @@ -10,11 +8,6 @@ [ext_resource type="FontFile" uid="uid://qt80w6o01q5s" path="res://gui/ressources/fonts/TitanOne-Regular.ttf" id="7_h2bel"] [ext_resource type="Texture2D" uid="uid://cihiibon53147" path="res://gui/game/pass_day/assets/day_night_sprite.svg" id="7_m84xg"] -[sub_resource type="ShaderMaterial" id="ShaderMaterial_27lg1"] -shader = ExtResource("1_v570a") -shader_parameter/strength = 0.0 -shader_parameter/mix_percentage = 0.0 - [sub_resource type="LabelSettings" id="LabelSettings_rn4dm"] font = ExtResource("7_h2bel") font_size = 25 @@ -60,22 +53,21 @@ _data = { [node name="PassDay" type="CanvasLayer" unique_id=335255544] layer = 3 +visible = false script = ExtResource("1_0pm4g") -[node name="Blur" type="ColorRect" parent="." unique_id=546890405] +[node name="Background" type="ColorRect" parent="." unique_id=527935985] unique_name_in_owner = true -physics_interpolation_mode = 0 -material = SubResource("ShaderMaterial_27lg1") anchors_preset = 15 anchor_right = 1.0 anchor_bottom = 1.0 grow_horizontal = 2 grow_vertical = 2 -mouse_filter = 2 -script = ExtResource("2_bhfpo") +color = Color(0.0627451, 0.05882353, 0.16862746, 1) [node name="PassDayInfo" type="VBoxContainer" parent="." unique_id=833110506] unique_name_in_owner = true +visible = false anchors_preset = 15 anchor_right = 1.0 anchor_bottom = 1.0 diff --git a/gui/game/pass_day/scripts/pass_day.gd b/gui/game/pass_day/scripts/pass_day.gd index 91e53ed..9fd4014 100644 --- a/gui/game/pass_day/scripts/pass_day.gd +++ b/gui/game/pass_day/scripts/pass_day.gd @@ -2,8 +2,6 @@ extends CanvasLayer class_name PassDay -const BLUR_STRENGTH = 10 -const BLUR_MIX_PERCENTAGE = 0.8 const TIME_BY_ENERGY = 0.3 const TIME_MARGIN = 0.2 @@ -26,8 +24,8 @@ var is_animation_disappeared := false func _ready(): hide() setup_energy_values() - %Blur.show() %PassDayInfo.hide() + %Background.modulate.a = 0. func _process(delta): if recharging: @@ -73,47 +71,34 @@ func pass_day_animation(): func appear(): show() - add_tween( - "blur_mix_percentage", - %Blur, - BLUR_MIX_PERCENTAGE, - 0.5 - ) add_tween( "modulate:a", - %NightAnimation, + %Background, 1., 0.5 ) await add_tween( - "blur_strength", - %Blur, - BLUR_STRENGTH, + "modulate:a", + %NightAnimation, + 1., 0.5 ).finished - await %PassDayInfoAnimationPlayer.appear() func disappear(): await %PassDayInfoAnimationPlayer.disappear() add_tween( - "blur_mix_percentage", - %Blur, + "modulate:a", + %Background, 0.0, 0.5 ) - add_tween( + await add_tween( "modulate:a", %NightAnimation, 0., 0.5 - ) - await add_tween( - "blur_strength", - %Blur, - 0.1, - 0.5 ).finished hide() diff --git a/project.godot b/project.godot index 5bf192e..bbbc7d9 100644 --- a/project.godot +++ b/project.godot @@ -16,7 +16,7 @@ compatibility/default_parent_skeleton_in_mesh_instance_3d=true config/name="Seeding The Wasteland" config/description="Seeding planets is a survival, managment and cosy game in which you play a little gardener robot." -config/version="beta-1" +config/version="beta-1.1" run/main_scene="uid://c5bruelvqbm1k" config/features=PackedStringArray("4.6", "Forward Plus") config/icon="uid://df0y0s666ui4h" diff --git a/stages/terrain/region/assets/textures/rain.png b/stages/terrain/region/assets/textures/rain.png new file mode 100644 index 0000000..37c2e3c Binary files /dev/null and b/stages/terrain/region/assets/textures/rain.png differ diff --git a/stages/terrain/region/assets/textures/rain.png.import b/stages/terrain/region/assets/textures/rain.png.import new file mode 100644 index 0000000..0c300c8 --- /dev/null +++ b/stages/terrain/region/assets/textures/rain.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://lftiiulpc8kl" +path="res://.godot/imported/rain.png-9298487e51a029fd96f65e149e8bf87c.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://stages/terrain/region/assets/textures/rain.png" +dest_files=["res://.godot/imported/rain.png-9298487e51a029fd96f65e149e8bf87c.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 diff --git a/stages/terrain/region/region.tscn b/stages/terrain/region/region.tscn index 3cc8192..ae39b68 100644 --- a/stages/terrain/region/region.tscn +++ b/stages/terrain/region/region.tscn @@ -2,8 +2,10 @@ [ext_resource type="Script" uid="uid://d1mp5sguc0b6u" path="res://stages/terrain/region/scripts/region.gd" id="1_441sk"] [ext_resource type="Shader" uid="uid://cfj18vc04cgkg" path="res://common/vfx/materials/shaders/blur_vignette.gdshader" id="2_ktnx3"] +[ext_resource type="Script" uid="uid://dgjyhbndd4all" path="res://stages/terrain/region/scripts/post_process/region_meteo.gd" id="2_mlppq"] [ext_resource type="PackedScene" uid="uid://yk78ubpu5ghq" path="res://gui/game/pass_day/pass_day.tscn" id="3_ktnx3"] [ext_resource type="Shader" uid="uid://btgk5l0a6ii44" path="res://common/vfx/materials/shaders/screen_fog.gdshader" id="3_qdnee"] +[ext_resource type="Script" uid="uid://cyvfeyg2wynq" path="res://stages/terrain/region/scripts/post_process/meteo.gd" id="3_r4e5h"] [ext_resource type="Script" uid="uid://bi8fo6yp25su7" path="res://stages/terrain/region/scripts/screen_post_process.gd" id="4_ovqi1"] [ext_resource type="PackedScene" uid="uid://12nak7amd1uq" path="res://gui/game/game_gui.tscn" id="4_qdnee"] [ext_resource type="Shader" uid="uid://doceegdvj0pp3" path="res://common/vfx/materials/shaders/screen_clouds.gdshader" id="5_2w03p"] @@ -13,6 +15,38 @@ [ext_resource type="PackedScene" uid="uid://dj7gp3crtg2yt" path="res://entities/camera/camera.tscn" id="8_fwgig"] [ext_resource type="PackedScene" uid="uid://fnv0qhkh40mv" path="res://gui/game/announce/announce.tscn" id="8_mlppq"] [ext_resource type="Texture2D" uid="uid://rdrhi3r11ey6" path="res://common/icons/square-rounded.svg" id="10_ktnx3"] +[ext_resource type="Texture2D" uid="uid://lftiiulpc8kl" path="res://stages/terrain/region/assets/textures/rain.png" id="12_6d8m3"] +[ext_resource type="Script" uid="uid://dple0sunrpauc" path="res://stages/terrain/region/scripts/post_process/rain.gd" id="13_fwgig"] + +[sub_resource type="Resource" id="Resource_r4e5h"] +script = ExtResource("3_r4e5h") +cloud_value = 0.93 +wind_direction = Vector2(-0.9519732, -0.30618128) +wind_force = 0.039 +type = 3 + +[sub_resource type="FastNoiseLite" id="FastNoiseLite_2w03p"] +noise_type = 2 + +[sub_resource type="NoiseTexture2D" id="NoiseTexture2D_6d8m3"] +noise = SubResource("FastNoiseLite_2w03p") +seamless = true + +[sub_resource type="ShaderMaterial" id="ShaderMaterial_6d8m3"] +shader = ExtResource("5_2w03p") +shader_parameter/camera_position = Vector2(0, 0) +shader_parameter/camera_zoom = Vector2(1, 1) +shader_parameter/viewport_size = Vector2(1920, 1080) +shader_parameter/noise_texture = SubResource("NoiseTexture2D_6d8m3") +shader_parameter/cloud_speed = 0.11699999999999999 +shader_parameter/cloud_delay = 1.0 +shader_parameter/cloud_dir = Vector2(-0.9519732, -0.30618128) +shader_parameter/cloud_color = Color(0.59428054, 0.8206175, 0.899937, 1) +shader_parameter/cloud_alpha = 1.0 +shader_parameter/cloud_size = 80.0000037525 +shader_parameter/cloud_distorsion_speed = 0.4150000197125 +shader_parameter/density = 0.4910000233225 +shader_parameter/blur_amount = 0.0400000019 [sub_resource type="FastNoiseLite" id="FastNoiseLite_ovqi1"] noise_type = 2 @@ -37,35 +71,12 @@ shader_parameter/camera_offset_speed = 0.0 shader_parameter/noise_texture_1 = SubResource("NoiseTexture2D_2w03p") shader_parameter/noise_texture_2 = SubResource("NoiseTexture2D_fwgig") shader_parameter/noise_blend = 0.50000002375 -shader_parameter/noise_speed_1 = 0.10000000475 +shader_parameter/noise_speed_1 = 0.039 shader_parameter/noise_speed_2 = 0.010000000475 -shader_parameter/noise_dir_1 = Vector2(1, 1) +shader_parameter/noise_dir_1 = Vector2(-0.9519732, -0.30618128) shader_parameter/noise_dir_2 = Vector2(1, -1) shader_parameter/smoke_color = Color(1, 1, 1, 1) -shader_parameter/density = 0.070000003325 - -[sub_resource type="FastNoiseLite" id="FastNoiseLite_2w03p"] -noise_type = 2 - -[sub_resource type="NoiseTexture2D" id="NoiseTexture2D_6d8m3"] -noise = SubResource("FastNoiseLite_2w03p") -seamless = true - -[sub_resource type="ShaderMaterial" id="ShaderMaterial_6d8m3"] -shader = ExtResource("5_2w03p") -shader_parameter/camera_position = Vector2(0, 0) -shader_parameter/camera_zoom = Vector2(1, 1) -shader_parameter/viewport_size = Vector2(1920, 1080) -shader_parameter/noise_texture = SubResource("NoiseTexture2D_6d8m3") -shader_parameter/cloud_speed = 0.10000000475 -shader_parameter/cloud_delay = 1.0 -shader_parameter/noise_dir = Vector2(1, 1) -shader_parameter/cloud_color = Color(0.59428054, 0.8206175, 0.899937, 1) -shader_parameter/cloud_alpha = 1.0 -shader_parameter/cloud_size = 87.48400410799 -shader_parameter/cloud_distorsion_speed = 0.10000000475 -shader_parameter/density = 0.3610000171475 -shader_parameter/blur_amount = 0.0400000019 +shader_parameter/density = 0.0 [sub_resource type="ShaderMaterial" id="ShaderMaterial_qdnee"] shader = ExtResource("2_ktnx3") @@ -74,6 +85,19 @@ shader_parameter/blur_amount = 1.0000000475 shader_parameter/blur_inner = 0.4950000235125 shader_parameter/blur_outer = 0.7810000370975 +[sub_resource type="CanvasItemMaterial" id="CanvasItemMaterial_fwgig"] +particles_animation = true +particles_anim_h_frames = 8 +particles_anim_v_frames = 1 +particles_anim_loop = false + +[sub_resource type="ParticleProcessMaterial" id="ParticleProcessMaterial_r4e5h"] +emission_shape = 3 +emission_box_extents = Vector3(2000, 2000, 1) +gravity = Vector3(0, 0, 0) +anim_speed_min = 1.0 +anim_speed_max = 1.0 + [sub_resource type="Curve" id="Curve_qdnee"] _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 @@ -81,26 +105,22 @@ point_count = 3 [sub_resource type="CurveTexture" id="CurveTexture_ovqi1"] curve = SubResource("Curve_qdnee") -[sub_resource type="Curve" id="Curve_2w03p"] -_data = [Vector2(0, 0), 0.0, 0.0, 0, 0, Vector2(1, 1), 0.0, 0.0, 0, 0] -point_count = 2 - [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"] -curve_x = SubResource("Curve_2w03p") curve_y = SubResource("Curve_6d8m3") [sub_resource type="ParticleProcessMaterial" id="ParticleProcessMaterial_mlppq"] emission_shape = 3 -emission_box_extents = Vector3(1000, 1000, 1) +emission_box_extents = Vector3(2000, 2000, 1) +direction = Vector3(0.9519732, 0.30618128, 0) spread = 10.0 -initial_velocity_min = 100.0 -initial_velocity_max = 200.0 -directional_velocity_min = -100.000015 -directional_velocity_max = 99.999985 +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") gravity = Vector3(0, 0, 0) scale_min = 0.049999997 @@ -112,21 +132,18 @@ alpha_curve = SubResource("CurveTexture_ovqi1") script = ExtResource("1_441sk") entity_container = NodePath("Entities") +[node name="RegionMeteo" type="Node" parent="." unique_id=2027305269 node_paths=PackedStringArray("wind_particles", "rain_particles", "fog", "clouds", "region")] +script = ExtResource("2_mlppq") +meteo = SubResource("Resource_r4e5h") +wind_particles = NodePath("../Camera/WindParticles") +rain_particles = NodePath("../Entities/Rain") +fog = NodePath("../PostProcess/Fog") +clouds = NodePath("../PostProcess/Clouds") +region = NodePath("..") + [node name="PostProcess" type="CanvasLayer" parent="." unique_id=729471745] layer = 0 -[node name="Fog" type="ColorRect" parent="PostProcess" unique_id=1487713892 node_paths=PackedStringArray("camera")] -visible = false -material = SubResource("ShaderMaterial_mlppq") -anchors_preset = 15 -anchor_right = 1.0 -anchor_bottom = 1.0 -grow_horizontal = 2 -grow_vertical = 2 -mouse_filter = 2 -script = ExtResource("4_ovqi1") -camera = NodePath("../../Camera") - [node name="Clouds" type="ColorRect" parent="PostProcess" unique_id=1053740484 node_paths=PackedStringArray("camera", "region")] material = SubResource("ShaderMaterial_6d8m3") anchors_preset = 15 @@ -139,6 +156,17 @@ script = ExtResource("5_6d8m3") camera = NodePath("../../Camera") region = NodePath("../..") +[node name="Fog" type="ColorRect" parent="PostProcess" unique_id=1487713892 node_paths=PackedStringArray("camera")] +material = SubResource("ShaderMaterial_mlppq") +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +mouse_filter = 2 +script = ExtResource("4_ovqi1") +camera = NodePath("../../Camera") + [node name="Vignette" type="ColorRect" parent="PostProcess" unique_id=2057271511] material = SubResource("ShaderMaterial_qdnee") anchors_preset = 15 @@ -150,7 +178,6 @@ mouse_filter = 2 [node name="PassDay" parent="." unique_id=1144772570 instance=ExtResource("3_ktnx3")] unique_name_in_owner = true -visible = false [node name="RegionGui" type="CanvasLayer" parent="." unique_id=2024485651] layer = 2 @@ -169,14 +196,27 @@ y_sort_enabled = true unique_name_in_owner = true position = Vector2(-405, -151) +[node name="Rain" type="GPUParticles2D" parent="Entities" unique_id=968834731 node_paths=PackedStringArray("camera")] +visible = false +material = SubResource("CanvasItemMaterial_fwgig") +position = Vector2(-67, -194) +amount = 1 +texture = ExtResource("12_6d8m3") +lifetime = 0.5 +trail_sections = 16 +process_material = SubResource("ParticleProcessMaterial_r4e5h") +script = ExtResource("13_fwgig") +camera = NodePath("../../Camera") + [node name="Camera" parent="." unique_id=1399042986 node_paths=PackedStringArray("following") instance=ExtResource("8_fwgig")] following = NodePath("../Entities/Player") [node name="WindParticles" type="GPUParticles2D" parent="Camera" unique_id=1897174931] position = Vector2(2, 7) +amount = 100 texture = ExtResource("10_ktnx3") lifetime = 8.0 trail_enabled = true -trail_lifetime = 0.1 +trail_lifetime = 0.2 trail_sections = 16 process_material = SubResource("ParticleProcessMaterial_mlppq") diff --git a/stages/terrain/region/scripts/post_process/clouds.gd b/stages/terrain/region/scripts/post_process/clouds.gd index 80284cd..45c4c87 100644 --- a/stages/terrain/region/scripts/post_process/clouds.gd +++ b/stages/terrain/region/scripts/post_process/clouds.gd @@ -3,7 +3,7 @@ extends ColorRect @export var camera : Camera @export var region : Region -const PASSING_DAY_CLOUD_SPEED = 5 +const PASSING_DAY_CLOUD_SPEED = 1 const CLOUD_DELAY_ACC_LERP = 0.2 var in_passing_day := false @@ -25,12 +25,12 @@ func _ready(): func _process(_delta: float) -> void: if is_node_ready(): - if region and region.data.in_passing_day_animation: - cloud_delay_acc = lerp(cloud_delay_acc,1.,CLOUD_DELAY_ACC_LERP) - else: - cloud_delay_acc = lerp(cloud_delay_acc,0.,CLOUD_DELAY_ACC_LERP) + # if region and region.data.in_passing_day_animation: + # cloud_delay_acc = lerp(cloud_delay_acc,1.,CLOUD_DELAY_ACC_LERP) + # else: + # cloud_delay_acc = lerp(cloud_delay_acc,0.,CLOUD_DELAY_ACC_LERP) - cloud_delay += cloud_delay_acc * PASSING_DAY_CLOUD_SPEED + # cloud_delay += cloud_delay_acc * PASSING_DAY_CLOUD_SPEED if visible: if camera: diff --git a/stages/terrain/region/scripts/post_process/meteo.gd b/stages/terrain/region/scripts/post_process/meteo.gd new file mode 100644 index 0000000..9912e46 --- /dev/null +++ b/stages/terrain/region/scripts/post_process/meteo.gd @@ -0,0 +1,64 @@ +@tool +extends Resource +class_name Meteo + +enum Type {RAINY,FOGGY,CALM,WINDY} + +const ALL_TYPES = [Type.CALM,Type.RAINY,Type.FOGGY,Type.WINDY] + +var rng : RandomNumberGenerator + +@export var rain_value : float = 0. +@export var cloud_value : float = 0. +@export var wind_direction : Vector2 = Vector2(1,0) +@export var wind_force : float = 0. +@export var fog_value : float = 0. +@export var ambiance_name : String = "Exterior" + +@export var type : Type : + set(v): + type = v + generate() + +func _init(meteo_seed : int = randi()): + rng = RandomNumberGenerator.new() + rng.seed = meteo_seed + + type = ALL_TYPES[rng.randi_range(0, len(ALL_TYPES) - 1)] + +func generate(): + wind_direction = Vector2(1,0).rotated(rng.randf_range(PI, -PI)) + match type: + Type.CALM: + generate_calm() + Type.RAINY: + generate_rainy() + Type.FOGGY: + generate_foggy() + Type.WINDY: + generate_windy() + +func generate_calm() -> void: + print("generate_calm") + cloud_value = rng.randf_range(0.1,0.4) + wind_force = rng.randf_range(0.,0.2) + +func generate_rainy() -> void: + print("generate_rainy") + rain_value = rng.randf_range(0.3,1.) + cloud_value = rng.randf_range(0.5,0.9) + ambiance_name = "ExteriorRaining" + if rng.randi() % 2 == 0: + wind_force = rng.randf_range(0.,0.7) + else: + fog_value = max(0, 0.5) + +func generate_foggy() -> void: + print("generate_foggy") + fog_value = rng.randf_range(0.5,1.) + ambiance_name = "ExteriorFoggy" + +func generate_windy() -> void: + print("generate_windy") + cloud_value = rng.randf_range(0.2,0.5) + wind_force = rng.randf_range(0.8,1.) \ No newline at end of file diff --git a/stages/terrain/region/scripts/post_process/meteo.gd.uid b/stages/terrain/region/scripts/post_process/meteo.gd.uid new file mode 100644 index 0000000..f287caa --- /dev/null +++ b/stages/terrain/region/scripts/post_process/meteo.gd.uid @@ -0,0 +1 @@ +uid://cyvfeyg2wynq diff --git a/stages/terrain/region/scripts/post_process/rain.gd b/stages/terrain/region/scripts/post_process/rain.gd new file mode 100644 index 0000000..284e71f --- /dev/null +++ b/stages/terrain/region/scripts/post_process/rain.gd @@ -0,0 +1,7 @@ +extends GPUParticles2D + +@export var camera : Camera + +# Called every frame. 'delta' is the elapsed time since the previous frame. +func _process(_d): + global_position = camera.global_position diff --git a/stages/terrain/region/scripts/post_process/rain.gd.uid b/stages/terrain/region/scripts/post_process/rain.gd.uid new file mode 100644 index 0000000..c5ffeea --- /dev/null +++ b/stages/terrain/region/scripts/post_process/rain.gd.uid @@ -0,0 +1 @@ +uid://dple0sunrpauc diff --git a/stages/terrain/region/scripts/post_process/region_meteo.gd b/stages/terrain/region/scripts/post_process/region_meteo.gd new file mode 100644 index 0000000..45f6a16 --- /dev/null +++ b/stages/terrain/region/scripts/post_process/region_meteo.gd @@ -0,0 +1,46 @@ +@tool +extends Node + +@export_tool_button("New Meteo", "Callable") var new_meteo_action = func (): + meteo = Meteo.new() +@export_tool_button("Apply Meteo", "Callable") var apply_meteo_action = apply_meteo + +@export var meteo: Meteo : + set(v): + meteo = v + if is_node_ready(): + apply_meteo() + +@export var wind_particles : GPUParticles2D +@export var rain_particles : GPUParticles2D +@export var fog : ColorRect +@export var clouds : ColorRect +@export var region : Region + +func _ready(): + meteo = Meteo.new(region.data.region_name.hash() + region.data.charges) + region.data.pass_day_proceeded.connect( + func(data : RegionData): + meteo = Meteo.new(data.region_name.hash() + data.charges) + wind_particles.restart() + ) + +func apply_meteo(): + rain_particles.amount = max(1,int(1000 * meteo.rain_value)) + rain_particles.visible = meteo.rain_value != 0. + rain_particles.scale.x = -1 if meteo.wind_direction.x > 0 else 1 + + var wind_particle_material : ParticleProcessMaterial = wind_particles.process_material as ParticleProcessMaterial + wind_particle_material.direction = Vector3(-meteo.wind_direction.x,-meteo.wind_direction.y,0.) + wind_particle_material.initial_velocity_max = 1000 * meteo.wind_force + wind_particle_material.initial_velocity_min = 900 * meteo.wind_force + + clouds.material.set_shader_parameter("density", meteo.cloud_value) + clouds.material.set_shader_parameter("cloud_speed", meteo.wind_force * 3) + clouds.material.set_shader_parameter("cloud_dir", meteo.wind_direction) + + fog.material.set_shader_parameter("density", meteo.fog_value * 0.3) + fog.material.set_shader_parameter("noise_speed_1", meteo.wind_force) + fog.material.set_shader_parameter("noise_dir_1", meteo.wind_direction) + + AudioManager.play_ambiance_alone(meteo.ambiance_name, true, 1.0) diff --git a/stages/terrain/region/scripts/post_process/region_meteo.gd.uid b/stages/terrain/region/scripts/post_process/region_meteo.gd.uid new file mode 100644 index 0000000..d92ba89 --- /dev/null +++ b/stages/terrain/region/scripts/post_process/region_meteo.gd.uid @@ -0,0 +1 @@ +uid://dgjyhbndd4all diff --git a/stages/terrain/region/scripts/region_data.gd b/stages/terrain/region/scripts/region_data.gd index 62e66ef..c492b63 100644 --- a/stages/terrain/region/scripts/region_data.gd +++ b/stages/terrain/region/scripts/region_data.gd @@ -59,28 +59,29 @@ const PLAYER_ROCK_HOLE_RADIUS = 5 var in_passing_day_animation := false func _init( - parameter : RegionParameter = RegionParameter.new() + parameter : RegionParameter = null ): - charges = parameter.get_charge() - objective = parameter.get_objective() - region_name = parameter.get_region_name() - region_seed = parameter.get_region_seed() - rock_threshold = parameter.get_rock_threshold() - decontamination_threshold = parameter.get_decontamination_threshold() - cristal_threshold = parameter.get_cristal_threshold() - start_decontamination_hole_radius = parameter.get_start_decontamination_zone_radius() - seed_rarity_pool = parameter.get_seed_rarity_pool() - modifiers = parameter.modifiers + if parameter: + charges = parameter.get_charge() + objective = parameter.get_objective() + region_name = parameter.get_region_name() + region_seed = parameter.get_region_seed() + rock_threshold = parameter.get_rock_threshold() + decontamination_threshold = parameter.get_decontamination_threshold() + cristal_threshold = parameter.get_cristal_threshold() + start_decontamination_hole_radius = parameter.get_start_decontamination_zone_radius() + seed_rarity_pool = parameter.get_seed_rarity_pool() + modifiers = parameter.modifiers - player_spawn = get_random_spawn_position() - player_position = player_spawn + player_spawn = get_random_spawn_position() + player_position = player_spawn - objective_disabled = parameter.is_objective_disabled() + objective_disabled = parameter.is_objective_disabled() - rock_tiles_data = TilesDiffData.new() - decontamination_tiles_data = TilesDiffData.new() + rock_tiles_data = TilesDiffData.new() + decontamination_tiles_data = TilesDiffData.new() - edit_map_origin() + edit_map_origin() func update(): if not in_passing_day_animation and not objective_disabled: diff --git a/stages/title_screen/planet_3d.tscn b/stages/title_screen/planet_3d.tscn index ddaf786..6ee490a 100644 --- a/stages/title_screen/planet_3d.tscn +++ b/stages/title_screen/planet_3d.tscn @@ -178,6 +178,7 @@ environment = SubResource("Environment_wpkhm") [node name="TrailerCamera" type="Camera3D" parent="." unique_id=2053399428] unique_name_in_owner = true transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -1.1571884, -0.20724177, 17.413101) +visible = false near = 0.003 [node name="MeshInstance3D" type="MeshInstance3D" parent="TrailerCamera" unique_id=1527788503] diff --git a/stages/title_screen/title_screen.tscn b/stages/title_screen/title_screen.tscn index 194cfe4..378ddc4 100644 --- a/stages/title_screen/title_screen.tscn +++ b/stages/title_screen/title_screen.tscn @@ -7,6 +7,7 @@ [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="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="PackedScene" uid="uid://bc3byq8e45ejj" path="res://gui/credits/socials/steam.tscn" id="7_nmsah"] [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"] @@ -22,7 +23,7 @@ shader = ExtResource("8_pjo5j") shader_parameter/strength = 5.00000023424012 shader_parameter/mix_percentage = 0.3 -[sub_resource type="FastNoiseLite" id="FastNoiseLite_60mme"] +[sub_resource type="FastNoiseLite" id="FastNoiseLite_5mxqx"] frequency = 1.0 [node name="TitleScreen" type="CanvasLayer" unique_id=1166097103] @@ -110,13 +111,18 @@ size_flags_vertical = 4 layout_mode = 2 size_flags_horizontal = 8 size_flags_vertical = 8 +alignment = 2 -[node name="Button" parent="MarginContainer/Socials" unique_id=927302743 instance=ExtResource("6_7a1qq")] +[node name="Survey" parent="MarginContainer/Socials" unique_id=1337726269 instance=ExtResource("6_pjo5j")] +layout_mode = 2 + +[node name="Button2" parent="MarginContainer/Socials" unique_id=927302743 instance=ExtResource("6_7a1qq")] layout_mode = 2 size_flags_horizontal = 8 [node name="SteamButton" parent="MarginContainer/Socials" unique_id=1181450581 instance=ExtResource("7_nmsah")] layout_mode = 2 +size_flags_horizontal = 8 link = "https://store.steampowered.com/app/4444510/Seeding_The_Wasteland/" [node name="ModeChoose" type="Control" parent="." unique_id=1527342716] @@ -176,7 +182,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_60mme") +noise = SubResource("FastNoiseLite_5mxqx") [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) diff --git a/translation/game/gui.csv b/translation/game/gui.csv index 8791627..87e8a0e 100644 --- a/translation/game/gui.csv +++ b/translation/game/gui.csv @@ -214,6 +214,7 @@ CHOOSE_NEXT_STOP,Choose next stop,Choisissez le prochain arrêt THANKS_FOR_PLAYING,Thanks for playing!,Merci d'avoir joué ! JOIN_OUR_INSTAGRAM,Join our Instagram,Rejoins-nous sur Instagram WHISHLIST_THE_GAME,Whishlist the game on Steam,Ajoutez le jeu à votre liste de souhait +TAKE_A_QUICK_SURVEY,Take a quick survey,Répondez à un court sondage ART,Art,Art ART_GAME_JAM,Art (Game Jam),Art (Game Jam) DEV_AND_GAME_DESIGN,Development and Game Design,Développement et Game Design