* Structure de l'histoire principale
* Line sur le perso principal
* Agrandissement de la zone de détection des cellules
* Ajout du spray de Talion (+1 points de plante de base)
* Ajout de feedback sur l'usage des cellules d'énergie
This commit is contained in:
2026-07-06 23:05:39 +02:00
parent d0446e8826
commit 22b753c6a9
78 changed files with 1464 additions and 208 deletions

Binary file not shown.

View File

@@ -0,0 +1,19 @@
[remap]
importer="mp3"
type="AudioStreamMP3"
uid="uid://bu87qluncx6pd"
path="res://.godot/imported/aqua.mp3-0d6e6fca8525376ee9d208a606348ba9.mp3str"
[deps]
source_file="res://common/audio_manager/assets/morceaux/histoire/aqua.mp3"
dest_files=["res://.godot/imported/aqua.mp3-0d6e6fca8525376ee9d208a606348ba9.mp3str"]
[params]
loop=false
loop_offset=0
bpm=0
beat_count=0
bar_beats=4

View File

@@ -0,0 +1,19 @@
[remap]
importer="oggvorbisstr"
type="AudioStreamOggVorbis"
uid="uid://urh63a8tgsd0"
path="res://.godot/imported/astra.ogg-2a61314797c2f4f96a5fbfc70bd8543d.oggvorbisstr"
[deps]
source_file="res://common/audio_manager/assets/morceaux/histoire/astra.ogg"
dest_files=["res://.godot/imported/astra.ogg-2a61314797c2f4f96a5fbfc70bd8543d.oggvorbisstr"]
[params]
loop=false
loop_offset=0
bpm=0
beat_count=0
bar_beats=4

View File

@@ -0,0 +1,19 @@
[remap]
importer="oggvorbisstr"
type="AudioStreamOggVorbis"
uid="uid://bkf62homs848n"
path="res://.godot/imported/estia.ogg-5a67cadf4221800898513f5ad486335d.oggvorbisstr"
[deps]
source_file="res://common/audio_manager/assets/morceaux/histoire/estia.ogg"
dest_files=["res://.godot/imported/estia.ogg-5a67cadf4221800898513f5ad486335d.oggvorbisstr"]
[params]
loop=false
loop_offset=0
bpm=0
beat_count=0
bar_beats=4

View File

@@ -0,0 +1,19 @@
[remap]
importer="mp3"
type="AudioStreamMP3"
uid="uid://dsqdt1ddvlyal"
path="res://.godot/imported/borea_lever.mp3-6c76a0e5e78025311230b59292d6bc98.mp3str"
[deps]
source_file="res://common/audio_manager/assets/sfx/borea_lever/borea_lever.mp3"
dest_files=["res://.godot/imported/borea_lever.mp3-6c76a0e5e78025311230b59292d6bc98.mp3str"]
[params]
loop=false
loop_offset=0
bpm=0
beat_count=0
bar_beats=4

View File

@@ -12,7 +12,6 @@
[ext_resource type="AudioStream" uid="uid://dsphn6dbbd55a" path="res://common/audio_manager/assets/morceaux/niveau/forest_phase_1.ogg" id="6_6o1yh"]
[ext_resource type="AudioStream" uid="uid://cwu71o0sl2vto" path="res://common/audio_manager/assets/ambiance/dialogues/ambiance_Demeter.ogg" id="6_8204s"]
[ext_resource type="AudioStream" uid="uid://klb32q3kjtkt" path="res://common/audio_manager/assets/ambiance/vending_room_base_relais/ambiance_vending_room_base_relais.ogg" id="7_ge2sc"]
[ext_resource type="AudioStream" uid="uid://c8gbtdul2x8ws" path="res://common/audio_manager/assets/ambiance/borea/ambiance_borea.ogg" id="7_spekb"]
[ext_resource type="AudioStream" uid="uid://bpf6witukorka" path="res://common/audio_manager/assets/morceaux/menu/main_menu.ogg" id="7_tuvql"]
[ext_resource type="AudioStream" uid="uid://bmwaw1yb8hucf" path="res://common/audio_manager/assets/ambiance/vaisseau/ship_music.ogg" id="8_tuvql"]
[ext_resource type="AudioStream" uid="uid://ccimypx71o4g6" path="res://common/audio_manager/assets/morceaux/niveau/forest_phase_2.ogg" id="10_tq535"]
@@ -42,8 +41,11 @@
[ext_resource type="AudioStream" uid="uid://dq5qwydrca3vy" path="res://common/audio_manager/assets/sfx/recharge/recharge_capsule_5.wav" id="22_aedoe"]
[ext_resource type="AudioStream" uid="uid://d1cpi438ep0ys" path="res://common/audio_manager/assets/sfx/announce/annnounce.wav" id="22_btfwx"]
[ext_resource type="AudioStream" uid="uid://ch8wnrckanydg" path="res://common/audio_manager/assets/morceaux/histoire/meeting_demeter.ogg" id="22_mrdk3"]
[ext_resource type="AudioStream" uid="uid://bu87qluncx6pd" path="res://common/audio_manager/assets/morceaux/histoire/aqua.mp3" id="22_uaco0"]
[ext_resource type="AudioStream" uid="uid://bnwtgp8t46xwc" path="res://common/audio_manager/assets/sfx/recharge/recharge_capsule_6.wav" id="23_ge2sc"]
[ext_resource type="AudioStream" uid="uid://bkf62homs848n" path="res://common/audio_manager/assets/morceaux/histoire/estia.ogg" id="24_eeq8n"]
[ext_resource type="AudioStream" uid="uid://bp3wsncvda5gl" path="res://common/audio_manager/assets/sfx/recharge/recharge_capsule_7.wav" id="24_yr73o"]
[ext_resource type="AudioStream" uid="uid://urh63a8tgsd0" path="res://common/audio_manager/assets/morceaux/histoire/astra.ogg" id="25_1r4ky"]
[ext_resource type="AudioStream" uid="uid://8juy5ev3rdfh" path="res://common/audio_manager/assets/sfx/plant_points/plant_point_1.wav" id="29_ngi21"]
[ext_resource type="AudioStream" uid="uid://su387eovtrsg" path="res://common/audio_manager/assets/sfx/plant_points/plant_point_2.wav" id="30_xmumj"]
[ext_resource type="AudioStream" uid="uid://bp6mtpqjf4txo" path="res://common/audio_manager/assets/sfx/plant_points/plant_point_3.wav" id="31_spekb"]
@@ -167,19 +169,14 @@ unique_name_in_owner = true
stream = ExtResource("5_ipd1r")
volume_db = -15.0
[node name="Astra" type="AudioStreamPlayer" parent="Ambiances" unique_id=1244577212]
unique_name_in_owner = true
stream = ExtResource("5_8204s")
volume_db = -5.0
[node name="Demeter" type="AudioStreamPlayer" parent="Ambiances" unique_id=351918026]
unique_name_in_owner = true
stream = ExtResource("6_8204s")
volume_db = -5.0
[node name="Borea" type="AudioStreamPlayer" parent="Ambiances" unique_id=1857904648]
[node name="Astra" type="AudioStreamPlayer" parent="Ambiances" unique_id=1244577212]
unique_name_in_owner = true
stream = ExtResource("7_spekb")
stream = ExtResource("5_8204s")
volume_db = -5.0
[node name="Ship" type="AudioStreamPlayer" parent="Ambiances" unique_id=1564186965]
@@ -187,10 +184,6 @@ unique_name_in_owner = true
stream = ExtResource("8_tuvql")
volume_db = -5.0
[node name="Subterra" type="AudioStreamPlayer" parent="Ambiances" unique_id=2019011683]
unique_name_in_owner = true
stream = ExtResource("12_mrdk3")
[node name="Musics" type="Node" parent="." unique_id=1450527710]
unique_name_in_owner = true
@@ -247,10 +240,29 @@ stream = ExtResource("7_tuvql")
volume_db = -5.0
bus = &"Music"
[node name="Meeting_demeter" type="AudioStreamPlayer" parent="Musics" unique_id=1066359159]
[node name="MeetingDemeter" type="AudioStreamPlayer" parent="Musics" unique_id=1066359159]
unique_name_in_owner = true
stream = ExtResource("22_mrdk3")
[node name="Aqua" type="AudioStreamPlayer" parent="Musics" unique_id=1941388305]
unique_name_in_owner = true
stream = ExtResource("22_uaco0")
volume_db = -5.0
[node name="Subterra" type="AudioStreamPlayer" parent="Musics" unique_id=2019011683]
unique_name_in_owner = true
stream = ExtResource("12_mrdk3")
[node name="Estia" type="AudioStreamPlayer" parent="Musics" unique_id=531815272]
unique_name_in_owner = true
stream = ExtResource("24_eeq8n")
volume_db = -5.0
[node name="AstraEnd" type="AudioStreamPlayer" parent="Musics" unique_id=818527318]
unique_name_in_owner = true
stream = ExtResource("25_1r4ky")
volume_db = -5.0
[node name="Sfx" type="Node" parent="." unique_id=2023641207]
unique_name_in_owner = true

View File

@@ -58,9 +58,6 @@ func _on_change_scene(scene : Scene):
elif scene is GarageScene:
stop_all_musics()
play_ambiance_alone("Astra", false)
elif scene is BoreaScene:
play_music_alone("Meeting_demeter")
stop_all_ambiances()
elif scene is VendingMachineScene:
stop_all_musics()
play_ambiance_alone("VendingRoom", false)
@@ -70,6 +67,21 @@ func _on_change_scene(scene : Scene):
elif scene is CaveScene:
stop_all_musics()
play_ambiance_alone("Cave", false)
elif scene is BoreaScene:
play_music_alone("MeetingDemeter", false, 0.)
stop_all_ambiances()
elif scene is AquaScene:
play_music_alone("Aqua")
stop_all_ambiances()
elif scene is SubterraScene:
play_music_alone("Subterra")
stop_all_ambiances()
elif scene is EstiaScene:
play_music_alone("Estia")
stop_all_ambiances()
elif scene is AstraEndScene:
play_music_alone("AstraEnd")
stop_all_ambiances()
# Fonction s'exécutant à chaque début de timeline
func _on_timeline_started():

View File

@@ -0,0 +1,71 @@
[remap]
importer="scene"
importer_version=1
type="PackedScene"
uid="uid://cbfoonpkmmva8"
path="res://.godot/imported/talion_spray.blend-3cc293a04161d1f6f5e9c094a05903f8.scn"
[deps]
source_file="res://common/game_data/scripts/artefacts/talion_spray/talion_spray.blend"
dest_files=["res://.godot/imported/talion_spray.blend-3cc293a04161d1f6f5e9c094a05903f8.scn"]
[params]
nodes/root_type=""
nodes/root_name=""
nodes/root_script=null
mesh_library/use_node_names_as_mesh_names=false
array_mesh/deduplicate_surfaces=true
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": {
"Material": {
"use_external/enabled": true,
"use_external/fallback_path": "res://common/assets/materials/default_3d.tres",
"use_external/path": "uid://dvvi1k5c5iowc"
}
}
}
blender/nodes/visible=0
blender/nodes/active_collection_only=false
blender/nodes/punctual_lights=true
blender/nodes/cameras=true
blender/nodes/custom_properties=true
blender/nodes/modifiers=1
blender/meshes/vertex_colors=1
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
gltf/texture_map_mode=1

View File

@@ -0,0 +1,14 @@
extends Artefact
class_name TalionSprayArtifact
func get_artefact_name() -> String:
return "TALION_SPRAY"
func get_artefact_desc() -> String:
return "TALION_SPRAY_DESC_TEXT"
func get_3d_scene() -> PackedScene:
return preload("res://common/game_data/scripts/artefacts/talion_spray/talion_spray.blend")
func modify_plant_base_score(plant_base_score : int) -> int:
return plant_base_score + 1

View File

@@ -0,0 +1 @@
uid://2eo5lucwktg4

View File

@@ -27,3 +27,15 @@ func unlock_new_mutation() -> PlantMutation:
func get_available_mutations() -> Array[PlantMutation]:
return get_all_mutations()
func set_best_run(v := best_run):
if best_run < 10 and v == 10:
SteamConnection.unlock_achievement(SteamConnection.ACH_STW_HIT_10_INFINITE)
if best_run < 20 and v == 20:
SteamConnection.unlock_achievement(SteamConnection.ACH_STW_HIT_20_INFINITE)
if best_run < 30 and v == 30:
SteamConnection.unlock_achievement(SteamConnection.ACH_STW_HIT_30_INFINITE)
best_run = v

View File

@@ -3,7 +3,7 @@ extends Resource
class_name ProgressionData
@export var run_number : int = 0
@export var best_run : int = 0
@export var best_run : int = 0 : set = set_best_run
@abstract func get_story_step() -> StoryStep
@@ -21,6 +21,9 @@ class_name ProgressionData
@abstract func unlock_new_mutation() -> PlantMutation
func set_best_run(v := best_run):
best_run = v
func get_all_mutations() -> Array[PlantMutation]:
return [
QualityMutation.new(),
@@ -52,14 +55,19 @@ func get_all_artifacts() -> Array[Artefact]:
StabilisatorArtefact.new(),
TalionOverloaderArtefact.new(),
TalionSoilArtifact.new(),
TalionSprayArtifact.new()
]
func get_all_story_steps() -> Array[StoryStep]:
return [
TutorialStoryStep.new(),
StartStoryStep.new(),
MercuryStoryStep.new(),
BoreaStoryStep.new()
# TutorialStoryStep.new(),
# StartStoryStep.new(),
# MercuryStoryStep.new(),
BoreaStoryStep.new(),
AquaStoryStep.new(),
SubterraStoryStep.new(),
EstiaStoryStep.new(),
AstraStoryStep.new(),
]
func finish_run(run : RunData):

View File

@@ -29,7 +29,7 @@ func is_region_sequence_infinite() -> bool:
return false
func get_region_sequence_length() -> int:
return 7
return 2 #TO CHANGE TO 7
func get_first_vending_machine_occurence(_level : int) -> int:
return 2

View File

@@ -10,16 +10,6 @@ func get_respawn_scene() -> Scene:
true
)
func get_objective_for_region(l : int) -> int:
match l:
0: return 0
1: return 8
_: return get_objective_for_region(l-1) + l * 5
func get_region_sequence_length() -> int:
return 8
func get_destination_text() -> String:
return tr("BOREA_BASE")

View File

@@ -0,0 +1,22 @@
extends StoryStep
class_name AquaStoryStep
const AQUA_TRAVEL_PHONE_CALL_DIALOG_PATH = "res://dialogs/timelines/2_aqua/1_aqua_travel_phone_call.dtl"
func get_respawn_scene() -> Scene:
return RelayBaseScene.new(
"BOREA_BASE",
"004",
true
)
func get_destination_text() -> String:
return tr("AQUA_BASE")
func get_destination_scene() -> Scene:
return AquaScene.new()
func get_ship_dialog_path(level : int, _ship_in_space := true) -> String:
if level == 5:
return AQUA_TRAVEL_PHONE_CALL_DIALOG_PATH
return ""

View File

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

View File

@@ -0,0 +1,22 @@
extends StoryStep
class_name SubterraStoryStep
const TRAVEL_PHONE_CALL_DIALOG_PATH = "res://dialogs/timelines/3_subterra/1_subterra_travel_phone_call.dtl"
func get_respawn_scene() -> Scene:
return RelayBaseScene.new(
"AQUA_BASE",
"005",
true
)
func get_destination_text() -> String:
return tr("SUBTERRA_BASE")
func get_destination_scene() -> Scene:
return SubterraScene.new()
func get_ship_dialog_path(level : int, _ship_in_space := true) -> String:
if level == 5:
return TRAVEL_PHONE_CALL_DIALOG_PATH
return ""

View File

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

View File

@@ -0,0 +1,22 @@
extends StoryStep
class_name EstiaStoryStep
const TRAVEL_PHONE_CALL_DIALOG_PATH = "res://dialogs/timelines/4_estia/1_estia_travel_phone_call.dtl"
func get_respawn_scene() -> Scene:
return RelayBaseScene.new(
"SUBTERRA_BASE",
"006",
true
)
func get_destination_text() -> String:
return tr("SUBTERRA_BASE")
func get_destination_scene() -> Scene:
return EstiaScene.new()
func get_ship_dialog_path(level : int, _ship_in_space := true) -> String:
if level == 5:
return TRAVEL_PHONE_CALL_DIALOG_PATH
return ""

View File

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

View File

@@ -0,0 +1,22 @@
extends StoryStep
class_name AstraStoryStep
const TRAVEL_PHONE_CALL_DIALOG_PATH = "res://dialogs/timelines/6_astra/1_astra_travel_phone_call.dtl"
func get_respawn_scene() -> Scene:
return RelayBaseScene.new(
"ESTIA_BASE",
"007",
true
)
func get_destination_text() -> String:
return tr("ESTIA_BASE")
func get_destination_scene() -> Scene:
return AstraEndScene.new()
func get_ship_dialog_path(level : int, _ship_in_space := true) -> String:
if level == 4:
return TRAVEL_PHONE_CALL_DIALOG_PATH
return ""

View File

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

View File

@@ -3,19 +3,20 @@
importer="texture"
type="CompressedTexture2D"
uid="uid://sdrr43mek1cl"
path="res://.godot/imported/globe.svg-e211d89cbdcd4219d25d8110f0497347.ctex"
path.s3tc="res://.godot/imported/globe.svg-e211d89cbdcd4219d25d8110f0497347.s3tc.ctex"
metadata={
"vram_texture": false
"imported_formats": ["s3tc_bptc"],
"vram_texture": true
}
[deps]
source_file="res://common/icons/globe.svg"
dest_files=["res://.godot/imported/globe.svg-e211d89cbdcd4219d25d8110f0497347.ctex"]
dest_files=["res://.godot/imported/globe.svg-e211d89cbdcd4219d25d8110f0497347.s3tc.ctex"]
[params]
compress/mode=0
compress/mode=2
compress/high_quality=false
compress/lossy_quality=0.7
compress/uastc_level=0
@@ -23,7 +24,7 @@ compress/rdo_quality_loss=0.0
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/generate=true
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
@@ -37,7 +38,7 @@ 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
detect_3d/compress_to=0
svg/scale=2.0
editor/scale_with_editor_scale=false
editor/convert_colors_with_editor_theme=false

View File

@@ -0,0 +1,11 @@
extends Scene
class_name AquaScene
func get_scene_id() -> String:
return "AQUA_BASE"
func get_scene_path() -> String:
return "res://stages/3d_scenes/aqua_base/aqua_base.tscn"
func is_mouse_captured() -> bool:
return true

View File

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

View File

@@ -0,0 +1,11 @@
extends Scene
class_name AstraEndScene
func get_scene_id() -> String:
return "ASTRA_BASE"
func get_scene_path() -> String:
return "res://stages/3d_scenes/astra_base/astra_end_base.tscn"
func is_mouse_captured() -> bool:
return true

View File

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

View File

@@ -1,3 +1,4 @@
@tool
extends Scene
class_name CockpitScene

View File

@@ -0,0 +1,11 @@
extends Scene
class_name EstiaScene
func get_scene_id() -> String:
return "ESTIA_BASE"
func get_scene_path() -> String:
return "res://stages/3d_scenes/estia_base/estia_base.tscn"
func is_mouse_captured() -> bool:
return true

View File

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

View File

@@ -0,0 +1,11 @@
extends Scene
class_name SubterraScene
func get_scene_id() -> String:
return "SUBTERRA_BASE"
func get_scene_path() -> String:
return "res://stages/3d_scenes/subterra_base/subterra_base.tscn"
func is_mouse_captured() -> bool:
return true

View File

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

View File

@@ -8,6 +8,13 @@ const ACH_UNLOCK_ALL_MUTATION="STW_UNLOCK_ALL_MUTATIONS"
const ACH_KICK_YOUR_OLD_BODY="STW_KICK_YOUR_OLD_BODY"
const ACH_MERCURY_BASE="STW_REACH_MERCURY_BASE"
const ACH_REACH_VENUS_BASE="STW_REACH_VENUS_BASE"
const ACH_STW_REACH_AQUA_BASE="STW_REACH_AQUA_BASE"
const ACH_STW_REACH_SUBTERRA_BASE="STW_REACH_SUBTERRA_BASE"
const ACH_STW_REACH_ESTIA_BASE="STW_REACH_ESTIA_BASE"
const ACH_STW_REPAIR_THE_PLANET="STW_REPAIR_THE_PLANET"
const ACH_STW_HIT_10_INFINITE="STW_HIT_10_INFINITE"
const ACH_STW_HIT_20_INFINITE="STW_HIT_20_INFINITE"
const ACH_STW_HIT_30_INFINITE="STW_HIT_30_INFINITE"
func unlock_achievement(achivement_name : String):
if Steam.isSteamRunning():

View File

@@ -0,0 +1,252 @@
[gd_scene format=3 uid="uid://cypsoytvytdup"]
[ext_resource type="PackedScene" uid="uid://cah00gew65ire" path="res://entities/interactable_3d/3d_door/assets/3d/door.blend" id="1_7a6nb"]
[ext_resource type="Script" uid="uid://u6dj6ud4mvk7" path="res://entities/interactable_3d/3d_door/scripts/3d_door.gd" id="1_08fm6"]
[ext_resource type="PackedScene" uid="uid://cc7uo5xqcplu8" path="res://entities/interactable_3d/3d_door/assets/3d/door_closed.blend" id="2_xjn0l"]
[ext_resource type="Texture2D" uid="uid://1ynlp05wj0hm" path="res://common/icons/rocket.svg" id="5_3uc8q"]
[sub_resource type="Animation" id="Animation_08fm6"]
length = 0.001
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("door:visible")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 1,
"values": [true]
}
tracks/1/type = "value"
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/path = NodePath("door_closed:visible")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 1,
"values": [false]
}
tracks/2/type = "value"
tracks/2/imported = false
tracks/2/enabled = true
tracks/2/path = NodePath("Icon:visible")
tracks/2/interp = 1
tracks/2/loop_wrap = true
tracks/2/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 1,
"values": [true]
}
tracks/3/type = "value"
tracks/3/imported = false
tracks/3/enabled = true
tracks/3/path = NodePath("Icon2:visible")
tracks/3/interp = 1
tracks/3/loop_wrap = true
tracks/3/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 1,
"values": [true]
}
tracks/4/type = "value"
tracks/4/imported = false
tracks/4/enabled = true
tracks/4/path = NodePath("Icon:scale")
tracks/4/interp = 1
tracks/4/loop_wrap = true
tracks/4/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Vector3(1.5, 1.5, 1.5)]
}
tracks/5/type = "value"
tracks/5/imported = false
tracks/5/enabled = true
tracks/5/path = NodePath("Icon2:scale")
tracks/5/interp = 1
tracks/5/loop_wrap = true
tracks/5/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Vector3(1.5, 1.5, 1.5)]
}
[sub_resource type="Animation" id="Animation_3uc8q"]
resource_name = "activated"
length = 0.001
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("door:visible")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 1,
"values": [true]
}
tracks/1/type = "value"
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/path = NodePath("door_closed:visible")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 1,
"values": [false]
}
tracks/2/type = "value"
tracks/2/imported = false
tracks/2/enabled = true
tracks/2/path = NodePath("Icon:visible")
tracks/2/interp = 1
tracks/2/loop_wrap = true
tracks/2/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 1,
"values": [true]
}
tracks/3/type = "value"
tracks/3/imported = false
tracks/3/enabled = true
tracks/3/path = NodePath("Icon2:visible")
tracks/3/interp = 1
tracks/3/loop_wrap = true
tracks/3/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 1,
"values": [true]
}
[sub_resource type="Animation" id="Animation_7o3sc"]
resource_name = "deactivated"
length = 0.001
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("door:visible")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 1,
"values": [false]
}
tracks/1/type = "value"
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/path = NodePath("door_closed:visible")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 1,
"values": [true]
}
tracks/2/type = "value"
tracks/2/imported = false
tracks/2/enabled = true
tracks/2/path = NodePath("Icon2:visible")
tracks/2/interp = 1
tracks/2/loop_wrap = true
tracks/2/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 1,
"values": [false]
}
tracks/3/type = "value"
tracks/3/imported = false
tracks/3/enabled = true
tracks/3/path = NodePath("Icon:visible")
tracks/3/interp = 1
tracks/3/loop_wrap = true
tracks/3/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 1,
"values": [false]
}
[sub_resource type="Animation" id="Animation_p35e2"]
resource_name = "hover"
loop_mode = 1
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("Icon:scale")
tracks/0/interp = 2
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0, 0.46666667, 1),
"transitions": PackedFloat32Array(1, 1, 1),
"update": 0,
"values": [Vector3(1.5, 1.5, 1.5), Vector3(2, 2, 2), Vector3(1.5, 1.5, 1.5)]
}
tracks/1/type = "value"
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/path = NodePath("Icon2:scale")
tracks/1/interp = 2
tracks/1/loop_wrap = true
tracks/1/keys = {
"times": PackedFloat32Array(0, 0.46666667, 1),
"transitions": PackedFloat32Array(1, 1, 1),
"update": 0,
"values": [Vector3(1.5, 1.5, 1.5), Vector3(2, 2, 2), Vector3(1.5, 1.5, 1.5)]
}
[sub_resource type="AnimationLibrary" id="AnimationLibrary_p35e2"]
_data = {
&"RESET": SubResource("Animation_08fm6"),
&"activated": SubResource("Animation_3uc8q"),
&"deactivated": SubResource("Animation_7o3sc"),
&"hover": SubResource("Animation_p35e2")
}
[sub_resource type="BoxShape3D" id="BoxShape3D_g4v7s"]
size = Vector3(1, 5.1875, 5.140625)
[node name="3dDoor" type="Area3D" unique_id=814731756 node_paths=PackedStringArray("hover_animation_player")]
script = ExtResource("1_08fm6")
interactable = false
hover_animation_player = NodePath("AnimationPlayer")
[node name="door" parent="." unique_id=48771245 instance=ExtResource("1_7a6nb")]
[node name="door_closed" parent="." unique_id=366011214 instance=ExtResource("2_xjn0l")]
visible = false
[node name="AnimationPlayer" type="AnimationPlayer" parent="." unique_id=545958515]
libraries/ = SubResource("AnimationLibrary_p35e2")
[node name="Icon" type="Sprite3D" parent="." unique_id=368585741]
unique_name_in_owner = true
transform = Transform3D(-6.556708e-08, 0, -1.5, 0, 1.5, 0, 1.5, 0, -6.556708e-08, 0.1830883, -0.8157884, 0.62879825)
texture = ExtResource("5_3uc8q")
[node name="Icon2" type="Sprite3D" parent="." unique_id=286944398]
unique_name_in_owner = true
transform = Transform3D(-6.556708e-08, 0, -1.5, 0, 1.5, 0, 1.5, 0, -6.556708e-08, -0.15410006, -0.8157884, 0.62879825)
flip_h = true
texture = ExtResource("5_3uc8q")
[node name="CollisionShape3D" type="CollisionShape3D" parent="." unique_id=1859296170]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.0390625, -0.03125)
shape = SubResource("BoxShape3D_g4v7s")

Binary file not shown.

View File

@@ -4,18 +4,20 @@ importer="scene"
importer_version=1
type="PackedScene"
uid="uid://cah00gew65ire"
path="res://.godot/imported/door.blend-c87f276c56915caea51fe7d3dbe0db91.scn"
path="res://.godot/imported/door.blend-eece18402c8800106d851ddc37f797c8.scn"
[deps]
source_file="res://stages/3d_scenes/common/assets/3d/door.blend"
dest_files=["res://.godot/imported/door.blend-c87f276c56915caea51fe7d3dbe0db91.scn"]
source_file="res://entities/interactable_3d/3d_door/assets/3d/door.blend"
dest_files=["res://.godot/imported/door.blend-eece18402c8800106d851ddc37f797c8.scn"]
[params]
nodes/root_type=""
nodes/root_name=""
nodes/root_script=null
mesh_library/use_node_names_as_mesh_names=false
array_mesh/deduplicate_surfaces=true
nodes/apply_root_scale=true
nodes/root_scale=1.0
nodes/import_as_skeleton_bones=false
@@ -52,7 +54,7 @@ blender/nodes/punctual_lights=true
blender/nodes/cameras=true
blender/nodes/custom_properties=true
blender/nodes/modifiers=1
blender/meshes/colors=false
blender/meshes/vertex_colors=2
blender/meshes/uvs=true
blender/meshes/normals=true
blender/meshes/export_geometry_nodes_instances=false
@@ -66,3 +68,4 @@ blender/animation/limit_playback=true
blender/animation/always_sample=true
blender/animation/group_tracks=true
gltf/naming_version=2
gltf/texture_map_mode=0

View File

@@ -0,0 +1,71 @@
[remap]
importer="scene"
importer_version=1
type="PackedScene"
uid="uid://cc7uo5xqcplu8"
path="res://.godot/imported/door_closed.blend-507164d9450864a513b7fc7bb246c74c.scn"
[deps]
source_file="res://entities/interactable_3d/3d_door/assets/3d/door_closed.blend"
dest_files=["res://.godot/imported/door_closed.blend-507164d9450864a513b7fc7bb246c74c.scn"]
[params]
nodes/root_type=""
nodes/root_name=""
nodes/root_script=null
mesh_library/use_node_names_as_mesh_names=false
array_mesh/deduplicate_surfaces=true
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/vertex_colors=1
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
gltf/texture_map_mode=1

View File

@@ -0,0 +1,21 @@
@tool
extends Interactable3D
class_name Door3d
@export var to_scene : Scene : set = set_to_scene
func _ready():
set_to_scene()
interactable = interactable
func set_to_scene(v : Scene = to_scene):
to_scene = v
if is_node_ready() and to_scene:
%Icon.texture = to_scene.get_scene_icon()
%Icon2.texture = to_scene.get_scene_icon()
func click():
if interactable:
clicked.emit()
if to_scene:
SceneManager.change_to_scene(to_scene)

View File

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

View File

@@ -3,6 +3,7 @@
[ext_resource type="Script" uid="uid://b25sqd4v2i3v2" path="res://entities/interactables/energy_cell/scripts/energy_cell.gd" id="1_nheea"]
[ext_resource type="Texture2D" uid="uid://ds65vxsiitxit" path="res://entities/interactables/energy_cell/assets/sprites/energy_cell_on.png" id="2_fnyaf"]
[ext_resource type="Texture2D" uid="uid://dh6jdqoy2xu65" path="res://entities/interactables/energy_cell/assets/sprites/energy_cell_off.png" id="3_t6ydv"]
[ext_resource type="Texture2D" uid="uid://dcgnamu7sb3ov" path="res://common/icons/bolt.svg" id="4_fnyaf"]
[sub_resource type="CircleShape2D" id="CircleShape2D_ylpt4"]
radius = 39.115215
@@ -100,3 +101,10 @@ shape = SubResource("CircleShape2D_ylpt4")
[node name="AnimationPlayer" type="AnimationPlayer" parent="." unique_id=1320210428]
unique_name_in_owner = true
libraries/ = SubResource("AnimationLibrary_d2c63")
[node name="CanvasLayer" type="CanvasLayer" parent="." unique_id=1285579466]
[node name="EnergyParticle" type="Sprite2D" parent="CanvasLayer" unique_id=786670396]
unique_name_in_owner = true
position = Vector2(100, 100)
texture = ExtResource("4_fnyaf")

View File

@@ -1,4 +1,3 @@
@tool
extends Interactable
class_name EnergyCell
@@ -8,6 +7,7 @@ const GIVEN_ENERGY = 1
func _ready():
set_used()
%EnergyParticle.visible = false
func set_used(v = used):
used = v
@@ -18,6 +18,11 @@ func set_used(v = used):
%SpriteOff.visible = used
%SpriteOn.visible = not used
func pointer_text() -> String:
if used:
return tr("%s_USED") % tr(default_info_title)
return default_info_title
func can_interact(p : Player) -> bool:
return p.data.energy < p.data.max_energy
@@ -26,13 +31,30 @@ func interact(p : Player) -> bool:
used = true
available = false
await spawn_energy_particle()
p.data.energy += GIVEN_ENERGY
interacted.emit(p)
region.data.used_objects.append(name)
AudioManager.play_sfx("Recharge1")
return true
return false
func spawn_energy_particle():
var screen_size = get_viewport().get_visible_rect().size
%EnergyParticle.visible = true
%EnergyParticle.position = (
(global_position - region.camera.global_position) * get_viewport().get_camera_2d().zoom
+ ((screen_size) / 2)
)
var tween = create_tween()
tween.set_trans(Tween.TransitionType.TRANS_SPRING)
tween.tween_property(%EnergyParticle,"position",Vector2(100,100),1.)
await tween.finished
AudioManager.play_sfx("Recharge1")
%EnergyParticle.visible = false

View File

@@ -18,6 +18,11 @@ func set_used(v = used):
%SpriteOff.visible = used
%SpriteOn.visible = not used
func pointer_text() -> String:
if used:
return tr("%s_USED") % tr(default_info_title)
return default_info_title
func interact(p : Player) -> bool:
if not used and region:
used = true

Binary file not shown.

After

Width:  |  Height:  |  Size: 424 KiB

View File

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 312 KiB

View File

@@ -15,9 +15,9 @@ const DOOR_ICON = preload("res://common/icons/logout.svg")
const PLANT_ICON = preload("res://common/icons/seedling.svg")
const SOUND_SOURCE : AudioStreamMP3 = preload("res://common/audio_manager/assets/sfx/signal/signal.mp3")
const SOUND_BASE_PITCH = 1.
const SOUND_NIVEL_LEVEL = 6
const SOUND_NIVEL_LEVEL = 8
const CELL_DETECTION_MAX_DISTANCE = 2000.
const CELL_DETECTION_MAX_DISTANCE = 3000.
const CELL_DETECTION_COLOR : Color = Color("#ff006e")
const CELL_DETECTION_MAX_PITCH = 1.5

View File

@@ -3,7 +3,7 @@
[ext_resource type="Script" uid="uid://das7twcy5153p" path="res://entities/player/scripts/player.gd" id="1_abrql"]
[ext_resource type="Texture2D" uid="uid://dompaj451gklw" path="res://entities/player/assets/sprites/movement_particles.png" id="2_bls4j"]
[ext_resource type="Texture2D" uid="uid://ys5fis3gsnoy" path="res://entities/player/assets/sprites/shadow.png" id="2_fkugw"]
[ext_resource type="Texture2D" uid="uid://c7ff87jniga5m" path="res://entities/player/assets/sprites/robot.png" id="4_bls4j"]
[ext_resource type="Texture2D" uid="uid://cwjixsd8nssnl" path="res://entities/player/assets/sprites/robot_big_line.png" id="3_26q78"]
[ext_resource type="Texture2D" uid="uid://drgl0d51d4cf7" path="res://entities/player/assets/sprites/radial-gradient.png" id="5_8fjmc"]
[ext_resource type="Script" uid="uid://b1mmtgmi5oq86" path="res://entities/player/scripts/player_sprite.gd" id="5_fkugw"]
[ext_resource type="Texture2D" uid="uid://51255tpyl6vj" path="res://common/icons/no-bolt.svg" id="7_26q78"]
@@ -27,101 +27,101 @@ fill = 1
fill_from = Vector2(0.5, 0.5)
fill_to = Vector2(0.5, 0)
[sub_resource type="AtlasTexture" id="AtlasTexture_fkugw"]
atlas = ExtResource("4_bls4j")
region = Rect2(3048, 0, 762, 1080)
[sub_resource type="AtlasTexture" id="AtlasTexture_8fjmc"]
atlas = ExtResource("4_bls4j")
region = Rect2(3810, 0, 762, 1080)
[sub_resource type="AtlasTexture" id="AtlasTexture_qiwj3"]
atlas = ExtResource("4_bls4j")
region = Rect2(2286, 0, 762, 1080)
[sub_resource type="AtlasTexture" id="AtlasTexture_26q78"]
atlas = ExtResource("4_bls4j")
region = Rect2(0, 0, 762, 1080)
[sub_resource type="AtlasTexture" id="AtlasTexture_bectd"]
atlas = ExtResource("4_bls4j")
region = Rect2(5334, 0, 762, 1080)
atlas = ExtResource("3_26q78")
region = Rect2(1388, 0, 347, 347)
[sub_resource type="AtlasTexture" id="AtlasTexture_wvtmh"]
atlas = ExtResource("4_bls4j")
region = Rect2(762, 0, 762, 1080)
atlas = ExtResource("3_26q78")
region = Rect2(1735, 0, 347, 347)
[sub_resource type="AtlasTexture" id="AtlasTexture_7thud"]
atlas = ExtResource("4_bls4j")
region = Rect2(4572, 0, 762, 1080)
atlas = ExtResource("3_26q78")
region = Rect2(1041, 0, 347, 347)
[sub_resource type="AtlasTexture" id="AtlasTexture_a1qjk"]
atlas = ExtResource("4_bls4j")
region = Rect2(1524, 0, 762, 1080)
atlas = ExtResource("3_26q78")
region = Rect2(0, 0, 347, 347)
[sub_resource type="AtlasTexture" id="AtlasTexture_j3ovn"]
atlas = ExtResource("3_26q78")
region = Rect2(2429, 0, 347, 347)
[sub_resource type="AtlasTexture" id="AtlasTexture_afbqv"]
atlas = ExtResource("3_26q78")
region = Rect2(347, 0, 347, 347)
[sub_resource type="AtlasTexture" id="AtlasTexture_gx6sm"]
atlas = ExtResource("3_26q78")
region = Rect2(2082, 0, 347, 347)
[sub_resource type="AtlasTexture" id="AtlasTexture_yqrof"]
atlas = ExtResource("3_26q78")
region = Rect2(694, 0, 347, 347)
[sub_resource type="SpriteFrames" id="SpriteFrames_a1qjk"]
animations = [{
"frames": [{
"duration": 1.0,
"texture": SubResource("AtlasTexture_fkugw")
}],
"loop": true,
"name": &"back",
"speed": 5.0
}, {
"frames": [{
"duration": 1.0,
"texture": SubResource("AtlasTexture_8fjmc")
}],
"loop": true,
"name": &"back_left",
"speed": 5.0
}, {
"frames": [{
"duration": 1.0,
"texture": SubResource("AtlasTexture_qiwj3")
}],
"loop": true,
"name": &"back_right",
"speed": 5.0
}, {
"frames": [{
"duration": 1.0,
"texture": SubResource("AtlasTexture_26q78")
}],
"loop": true,
"name": &"front",
"speed": 5.0
}, {
"frames": [{
"duration": 1.0,
"texture": SubResource("AtlasTexture_bectd")
}],
"loop": true,
"name": &"front_left",
"loop": 1,
"name": &"back",
"speed": 5.0
}, {
"frames": [{
"duration": 1.0,
"texture": SubResource("AtlasTexture_wvtmh")
}],
"loop": true,
"name": &"front_right",
"loop": 1,
"name": &"back_left",
"speed": 5.0
}, {
"frames": [{
"duration": 1.0,
"texture": SubResource("AtlasTexture_7thud")
}],
"loop": true,
"name": &"left",
"loop": 1,
"name": &"back_right",
"speed": 5.0
}, {
"frames": [{
"duration": 1.0,
"texture": SubResource("AtlasTexture_a1qjk")
}],
"loop": true,
"loop": 1,
"name": &"front",
"speed": 5.0
}, {
"frames": [{
"duration": 1.0,
"texture": SubResource("AtlasTexture_j3ovn")
}],
"loop": 1,
"name": &"front_left",
"speed": 5.0
}, {
"frames": [{
"duration": 1.0,
"texture": SubResource("AtlasTexture_afbqv")
}],
"loop": 1,
"name": &"front_right",
"speed": 5.0
}, {
"frames": [{
"duration": 1.0,
"texture": SubResource("AtlasTexture_gx6sm")
}],
"loop": 1,
"name": &"left",
"speed": 5.0
}, {
"frames": [{
"duration": 1.0,
"texture": SubResource("AtlasTexture_yqrof")
}],
"loop": 1,
"name": &"right",
"speed": 5.0
}]
@@ -130,7 +130,7 @@ animations = [{
blend_mode = 1
[sub_resource type="Curve" id="Curve_fkugw"]
_data = [Vector2(0, 0.14473677), 0.0, 0.0, 0, 0, Vector2(0.972549, 0.2654798), 0.0, 0.0, 0, 0]
_data = [Vector2(0.006711416, 0.21238941), 0.0, 0.0, 0, 0, Vector2(1, 0.5083333), 0.0, 0.0, 0, 0]
point_count = 2
[sub_resource type="Gradient" id="Gradient_bls4j"]
@@ -142,7 +142,7 @@ length = 0.001
tracks/0/type = "bezier"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath(".:position:y")
tracks/0/path = NodePath(".:offset:y")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
@@ -157,12 +157,12 @@ loop_mode = 1
tracks/0/type = "bezier"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath(".:position:y")
tracks/0/path = NodePath(".:offset:y")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"handle_modes": PackedInt32Array(2, 2),
"points": PackedFloat32Array(-1097.2793, 0, 0, 0, -139.75659, -1097.2793, 0, -112.66321, 0, 0),
"points": PackedFloat32Array(0, -0.24854341, 55.161533, 0.2, -44.387848, 0, -0.23333335, -52.649887, 0, 0),
"times": PackedFloat32Array(0, 1)
}
@@ -314,13 +314,13 @@ texture = SubResource("GradientTexture2D_26q78")
[node name="PlayerSprite" type="AnimatedSprite2D" parent="." unique_id=638545037]
unique_name_in_owner = true
position = Vector2(0.99999994, -17)
scale = Vector2(0.0656168, 0.065616846)
scale = Vector2(0.221, 0.221)
sprite_frames = SubResource("SpriteFrames_a1qjk")
animation = &"front_left"
frame_progress = 0.15805355
offset = Vector2(0, -370)
animation = &"left"
frame_progress = 0.2383069
offset = Vector2(0, -150)
script = ExtResource("5_fkugw")
wanted_orientation = 2
wanted_orientation = 7
[node name="Light" type="Sprite2D" parent="PlayerSprite" unique_id=1768327734]
modulate = Color(0.70603025, 0.5959886, 0.33971557, 0.09019608)
@@ -331,8 +331,7 @@ texture = ExtResource("5_8fjmc")
[node name="CPUParticles2D" type="CPUParticles2D" parent="PlayerSprite" unique_id=1489736082]
z_index = -1
position = Vector2(-15.239999, -60.95996)
scale = Vector2(3.4752407, 3.4752383)
position = Vector2(-4.5248866, -46.816402)
amount = 3
texture = ExtResource("2_bls4j")
lifetime = 0.4
@@ -343,8 +342,8 @@ color_ramp = SubResource("Gradient_bls4j")
[node name="NoEnergyLeftIcon" type="Sprite2D" parent="PlayerSprite" unique_id=1059424679]
unique_name_in_owner = true
modulate = Color(1, 0, 0.43137255, 1)
position = Vector2(-15.239998, 0)
scale = Vector2(10.16, 10.16)
position = Vector2(-4.5248866, -377.13315)
scale = Vector2(3, 3)
texture = ExtResource("7_26q78")
[node name="AnimationPlayer" type="AnimationPlayer" parent="PlayerSprite/NoEnergyLeftIcon" unique_id=390014722]

View File

@@ -124,6 +124,7 @@ horizontal_alignment = 1
vertical_alignment = 1
[node name="CPUParticles3D" type="CPUParticles3D" parent="." unique_id=1470634574]
unique_name_in_owner = true
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.66324395, 0)
amount = 5
mesh = SubResource("PlaneMesh_0oeag")

View File

@@ -7,6 +7,7 @@ const POINTER_ACTION_TEXTURE = preload("res://common/icons/hand-finger.svg")
@export var pointer_texture_rect : TextureRect
@export var speed := 4.0
@export var gravity_factor = 1.
const MOUSE_SENSIVITY = 0.002
const RAY_LENGTH = 10.
const PUSH_FORCE = 0.6
@@ -85,9 +86,11 @@ func _physics_process(delta):
else :
velocity = Vector3.ZERO
%CPUParticles3D.emitting = is_on_floor()
# Add the gravity.
if not is_on_floor():
velocity += get_gravity() * delta
velocity += get_gravity() * gravity_factor * delta
move_and_slide()
for i in get_slide_collision_count():

View File

@@ -95,7 +95,7 @@ func score_update(with_animation = true):
func state_update(region_data : RegionData):
if region_data.state == RegionData.State.SUCCEEDED:
objective_text = "COLLECT_YOUR_SEEDS_AND_TAKE_OFF"
if GameInfo.game_data.current_run.get_st is TutorialStoryStep:
if GameInfo.game_data.current_run.story_step is TutorialStoryStep:
objective_text = "PASS_THE_MYSTERIOUS_DOOR"
elif region_data.state == RegionData.State.FAILED:
objective_text = "NO_RECHARGE_LEFT"

View File

@@ -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-2.0"
config/version="0.1"
run/main_scene="uid://c5bruelvqbm1k"
config/features=PackedStringArray("4.7", "Forward Plus")
config/icon="uid://df0y0s666ui4h"
@@ -47,9 +47,22 @@ directories/dch_directory={
"mysterious_demeter": "res://dialogs/characters/mysterious_demeter.dch"
}
directories/dtl_directory={
"1_aqua_travel_phone_call": "res://dialogs/timelines/2_aqua/1_aqua_travel_phone_call.dtl",
"1_astra_travel_phone_call": "res://dialogs/timelines/6_astra/1_astra_travel_phone_call.dtl",
"1_estia_travel_phone_call": "res://dialogs/timelines/4_estia/1_estia_travel_phone_call.dtl",
"1_subterra_travel_phone_call": "res://dialogs/timelines/3_subterra/1_subterra_travel_phone_call.dtl",
"2_aqua_arrival": "res://dialogs/timelines/2_aqua/2_aqua_arrival.dtl",
"2_astra_top": "res://dialogs/timelines/6_astra/2_astra_top.dtl",
"2_estia_arrival": "res://dialogs/timelines/4_estia/2_estia_arrival.dtl",
"2_subterra_arrival": "res://dialogs/timelines/3_subterra/2_subterra_arrival.dtl",
"3_astra_end": "res://dialogs/timelines/6_astra/3_astra_end.dtl",
"5_subterra/1_subterra_travel_phone_call": "res://dialogs/timelines/5_subterra/1_subterra_travel_phone_call.dtl",
"5_subterra/2_subterra_arrival": "res://dialogs/timelines/5_subterra/2_subterra_arrival.dtl",
"6_vending_machine_presentation": "res://dialogs/timelines/1_waking_up/6_vending_machine_presentation.dtl",
"8_venus_departure": "res://dialogs/timelines/1_waking_up/8_venus_departure.dtl",
"9_borea": "res://dialogs/timelines/1_waking_up/9_borea.dtl",
"91_borea_comms_up": "res://dialogs/timelines/1_waking_up/91_borea_comms_up.dtl",
"91_borea_later": "res://dialogs/timelines/1_waking_up/92_borea_later.dtl",
"9_borea_arrival": "res://dialogs/timelines/1_waking_up/9_borea_arrival.dtl",
"cave": "res://dialogs/timelines/1_waking_up/4_cave.dtl",
"mercury_arrival": "res://dialogs/timelines/1_waking_up/5_mercury_arrival.dtl",
"mercury_departure": "res://dialogs/timelines/1_waking_up/6_mercury_departure.dtl",
@@ -259,7 +272,7 @@ environment/defaults/default_clear_color=Color(0.0617213, 0.0605653, 0.169189, 1
[steam]
initialization/app_id=4452760
initialization/app_id=4444510
initialization/initialize_on_startup=true
initialization/embed_callbacks=true
multiplayer_peer/max_channels=4

View File

@@ -2,11 +2,13 @@
[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://bk64hw2adc5kt" path="res://stages/3d_scenes/common/assets/3d/elevator.blend" id="3_dlfx2"]
[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://c2unmkf4ec4gf" path="res://entities/interactable_3d/ai_receptacle/ai_receptacle.tscn" id="4_m5l0g"]
[ext_resource type="Material" uid="uid://ba5cnhu0o1yf5" path="res://stages/3d_scenes/aqua_base/resources/materials/caustic_default_3d.tres" id="4_nydtf"]
[ext_resource type="PackedScene" uid="uid://cypsoytvytdup" path="res://entities/interactable_3d/3d_door/3d_door.tscn" id="9_qe4m5"]
[sub_resource type="Environment" id="Environment_m5l0g"]
background_mode = 2
@@ -27,7 +29,6 @@ glow_hdr_luminance_cap = 5.63
fog_light_color = Color(0.13725491, 0.39215687, 0.6666667, 1)
fog_sky_affect = 0.0
volumetric_fog_enabled = true
volumetric_fog_density = 0.147
volumetric_fog_albedo = Color(0.13725491, 0.39215687, 0.6666667, 1)
adjustment_enabled = true
adjustment_saturation = 1.3
@@ -40,7 +41,7 @@ shading_mode = 0
albedo_color = Color(0.5882353, 0.7019608, 0.85882354, 1)
albedo_texture = ExtResource("2_mr0dk")
[sub_resource type="ViewportTexture" id="ViewportTexture_nydtf"]
[sub_resource type="ViewportTexture" id="ViewportTexture_dlfx2"]
viewport_path = NodePath("Screen/SubViewport")
[sub_resource type="QuadMesh" id="QuadMesh_m5l0g"]
@@ -99,6 +100,68 @@ material = SubResource("StandardMaterial3D_nydtf")
size = Vector2(0.1, 0.1)
orientation = 2
[sub_resource type="Animation" id="Animation_dlfx2"]
length = 0.001
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("AreaLight3D:light_energy")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [1.0]
}
tracks/1/type = "value"
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/path = NodePath("AreaLight3D2: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]
}
[sub_resource type="Animation" id="Animation_qe4m5"]
resource_name = "blink"
length = 10.0
loop_mode = 1
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("AreaLight3D:light_energy")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0, 1.6999997, 1.9333333, 4.5333333, 4.766667, 7.2999997, 7.5333333),
"transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1, 1),
"update": 0,
"values": [1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0]
}
tracks/1/type = "value"
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/path = NodePath("AreaLight3D2:light_energy")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/keys = {
"times": PackedFloat32Array(0, 3.4666667, 3.7333333),
"transitions": PackedFloat32Array(1, 1, 1),
"update": 0,
"values": [1.0, 0.0, 1.0]
}
[sub_resource type="AnimationLibrary" id="AnimationLibrary_ei7or"]
_data = {
&"RESET": SubResource("Animation_dlfx2"),
&"blink": SubResource("Animation_qe4m5")
}
[node name="AquaBase" type="Node3D" unique_id=1653537813]
script = ExtResource("1_dltk4")
@@ -110,6 +173,9 @@ transform = Transform3D(997.05176, -55.31525, 53.176765, 60.60978, 992.7559, -10
mesh = SubResource("SphereMesh_nydtf")
surface_material_override/0 = SubResource("StandardMaterial3D_u74oo")
[node name="elevator" parent="WorldEnvironment" unique_id=54829698 instance=ExtResource("3_dlfx2")]
transform = Transform3D(0.9437205, 0, -0.33074403, 0, 1, 0, 0.33074403, 0, 0.9437205, 33.362873, -1.240936, 9.956917)
[node name="hub" parent="." unique_id=1785379104 instance=ExtResource("3_mr0dk")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.06701422, 2.5714142, -0.17472172)
@@ -118,8 +184,9 @@ surface_material_override/0 = ExtResource("4_nydtf")
surface_material_override/1 = ExtResource("4_nydtf")
[node name="AiReceptacle" parent="." unique_id=1082354698 instance=ExtResource("4_m5l0g")]
unique_name_in_owner = true
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -3.9, -0.34409285)
screen_text = "DOWNLOAD_DATA"
screen_text = "CONNECT_TO_POSEIDON"
broken = true
[node name="Model" parent="AiReceptacle" index="0" unique_id=154868613]
@@ -131,14 +198,11 @@ visible = true
[node name="Support" parent="AiReceptacle/ModelBroken" index="5" unique_id=1098621972]
surface_material_override/0 = ExtResource("4_nydtf")
[node name="Receptacle" parent="AiReceptacle/ModelBroken" index="6" unique_id=956575790]
surface_material_override/0 = ExtResource("4_nydtf")
[node name="Screen" parent="AiReceptacle" index="3" unique_id=1396407912]
texture = SubResource("ViewportTexture_nydtf")
texture = SubResource("ViewportTexture_dlfx2")
[node name="ScreenTitle" parent="AiReceptacle/Screen/SubViewport/ScreenContent/VBoxContainer" parent_id_path=PackedInt32Array(1082354698, 1893636910) index="1" unique_id=443526476]
text = "DOWNLOAD_DATA"
text = "CONNECT_TO_POSEIDON"
[node name="SpotLight3D" type="SpotLight3D" parent="AiReceptacle" unique_id=1906884086]
transform = Transform3D(1, 0, 0, 0, -0.67415154, -0.73859304, 0, 0.73859304, -0.67415154, 0, 0.66735864, 3.2564082)
@@ -154,7 +218,8 @@ light_energy = 0.282
omni_range = 0.90236074
[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)
transform = Transform3D(0.32746872, 0, 0.944862, 0, 1, 0, -0.944862, 0, 0.32746872, 50.90299, 26.542282, 16.319273)
gravity_factor = 0.1
[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)
@@ -186,6 +251,35 @@ light_volumetric_fog_energy = 2.507
shadow_enabled = true
shadow_blur = 10.0
[node name="Exit3dDoor" parent="." unique_id=814731756 instance=ExtResource("9_qe4m5")]
unique_name_in_owner = true
transform = Transform3D(0.9659258, 0, 0.25881904, 0, 1, 0, -0.25881904, 0, 0.9659258, -33.924656, -1.5212469, 10.235093)
[node name="3dDoor2" parent="." unique_id=586173999 instance=ExtResource("9_qe4m5")]
transform = Transform3D(0.96592593, 0, -0.25881907, 0, 1, 0, 0.25881907, 0, 0.96592593, -33.422764, -1.5212469, -10.490751)
[node name="3dDoor3" parent="." unique_id=400367626 instance=ExtResource("9_qe4m5")]
transform = Transform3D(0.9659258, 0, 0.25881904, 0, 1, 0, -0.25881904, 0, 0.9659258, 33.257763, -1.5212469, -10.375927)
[node name="3dDoor4" parent="." unique_id=724552378 instance=ExtResource("9_qe4m5")]
transform = Transform3D(0.9400856, 0, -0.3409387, 0, 1, 0, 0.3409387, 0, 0.9400856, 52.61224, 26.647182, 16.93967)
[node name="AreaLight3D" type="AreaLight3D" parent="." unique_id=938586300]
transform = Transform3D(0.9356459, 0, -0.35294035, 0, 1, 0, 0.35294035, 0, 0.9356459, 44.207127, 13.405382, 7.122408)
area_normalize_energy = false
area_size = Vector2(2.6380386, 37.029243)
[node name="AreaLight3D2" type="AreaLight3D" parent="." unique_id=1104365666]
transform = Transform3D(-0.9356459, 0, 0.3529404, 0, 1, 0, -0.3529404, 0, -0.9356459, 40.79839, 13.405382, 19.24271)
area_normalize_energy = false
area_size = Vector2(2.6380386, 37.029243)
[node name="LightAnimationPlayer" type="AnimationPlayer" parent="." unique_id=75847280]
libraries/ = SubResource("AnimationLibrary_ei7or")
autoplay = &"blink"
[connection signal="clicked" from="AiReceptacle" to="." method="_on_ai_receptacle_clicked"]
[editable path="hub"]
[editable path="AiReceptacle"]
[editable path="AiReceptacle/ModelBroken"]

View File

@@ -1,5 +1,27 @@
extends Node3D
const DIALOG_PATH = "res://dialogs/timelines/2_aqua/2_aqua_arrival.dtl"
func _ready():
if not Engine.is_editor_hint():
Input.mouse_mode = Input.MOUSE_MODE_CAPTURED
%AiReceptacle.screen_turned_on = true
%AiReceptacle.interactable = true
SteamConnection.unlock_achievement(SteamConnection.ACH_STW_REACH_AQUA_BASE)
func _on_ai_receptacle_clicked():
%AiReceptacle.screen_turned_on = false
%AiReceptacle.interactable = false
Dialogic.start(DIALOG_PATH)
await Dialogic.timeline_ended
%Exit3dDoor.to_scene = RelayBaseScene.new(
"AQUA_BASE",
"005",
)
%Exit3dDoor.interactable = true
AudioManager.play_sfx("DoorOpen")

View File

@@ -0,0 +1,3 @@
[gd_scene format=3 uid="uid://d07wxwvl7nuhw"]
[node name="AstraEndBase" type="Node3D" unique_id=227915094]

File diff suppressed because one or more lines are too long

View File

@@ -1,13 +1,75 @@
@tool
extends Node3D
enum State {ARRIVAL,COMMS_UP,LATER}
const DIALOG_BOREA_ARRIVAL = "res://dialogs/timelines/1_waking_up/9_borea_arrival.dtl"
const DIALOG_COMMS_UP = "res://dialogs/timelines/1_waking_up/91_borea_comms_up.dtl"
const DIALOG_BOREA_LATER = "res://dialogs/timelines/1_waking_up/92_borea_later.dtl"
@export var communication_lever_animation_player : AnimationPlayer
@export var show_plants : bool = false : set = set_show_plants
var state := State.ARRIVAL : set = set_state
func _ready():
if not Engine.is_editor_hint():
Input.mouse_mode = Input.MOUSE_MODE_CAPTURED
%Credits.hide()
set_show_plants()
set_state()
func set_show_plants(v : bool = show_plants):
show_plants = v
if is_node_ready():
%Plant.visible = show_plants
%FallingPlant.visible = show_plants
func set_state(v := state):
state = v
if is_node_ready():
%AiReceptacle.screen_turned_on = true
%AiReceptacle.interactable = true
func _on_ai_receptacle_clicked():
%Player3D.controlling_player = false
Input.mouse_mode = Input.MOUSE_MODE_VISIBLE
SteamConnection.unlock_achievement(SteamConnection.ACH_MEET_DEMETER)
%Credits.appear()
%AiReceptacle.screen_turned_on = false
%AiReceptacle.interactable = false
match state:
State.ARRIVAL:
Dialogic.start(DIALOG_BOREA_ARRIVAL)
State.COMMS_UP:
Dialogic.start(DIALOG_COMMS_UP)
await Dialogic.timeline_ended
await get_tree().create_timer(3.).timeout
%Player3D.controlling_player = false
%PassDayAnimationPlayer.play("PassDays")
await %PassDayAnimationPlayer.animation_finished
%Player3D.controlling_player = true
state = State.LATER
State.LATER:
Dialogic.start(DIALOG_BOREA_LATER)
await Dialogic.timeline_ended
%Exit3dDoor.to_scene = RelayBaseScene.new(
"BOREA_BASE",
"004",
)
%Exit3dDoor.interactable = true
AudioManager.play_sfx("DoorOpen")
func _on_communication_lever_clicked():
%CommunicationLever.interactable = false
%CommunicationLever.play_audio()
communication_lever_animation_player.play("Activate")
state = State.COMMS_UP

Binary file not shown.

View File

@@ -0,0 +1,71 @@
[remap]
importer="scene"
importer_version=1
type="PackedScene"
uid="uid://bk64hw2adc5kt"
path="res://.godot/imported/elevator.blend-41f2e78cb8e3b0c96c2c7ee2ff9d260d.scn"
[deps]
source_file="res://stages/3d_scenes/common/assets/3d/elevator.blend"
dest_files=["res://.godot/imported/elevator.blend-41f2e78cb8e3b0c96c2c7ee2ff9d260d.scn"]
[params]
nodes/root_type=""
nodes/root_name=""
nodes/root_script=null
mesh_library/use_node_names_as_mesh_names=false
array_mesh/deduplicate_surfaces=true
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/vertex_colors=1
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
gltf/texture_map_mode=1

Binary file not shown.

Binary file not shown.

View File

@@ -0,0 +1,76 @@
[remap]
importer="scene"
importer_version=1
type="PackedScene"
uid="uid://b6xsvqwg7lqt6"
path="res://.godot/imported/hub_buried.blend-7ff39cb711d1ea8f116750320d780d2d.scn"
[deps]
source_file="res://stages/3d_scenes/common/assets/3d/hub_buried.blend"
dest_files=["res://.godot/imported/hub_buried.blend-7ff39cb711d1ea8f116750320d780d2d.scn"]
[params]
nodes/root_type=""
nodes/root_name=""
nodes/root_script=null
mesh_library/use_node_names_as_mesh_names=false
array_mesh/deduplicate_surfaces=true
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/vertex_colors=1
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
gltf/texture_map_mode=1

Binary file not shown.

View File

@@ -0,0 +1,3 @@
[gd_scene format=3 uid="uid://54xysfcblfv6"]
[node name="EstiaBase" type="Node3D" unique_id=32407651]

View File

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

View File

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

View File

@@ -0,0 +1,19 @@
[gd_scene format=3 uid="uid://rig3sj4xx0sq"]
[ext_resource type="PackedScene" uid="uid://b6xsvqwg7lqt6" path="res://stages/3d_scenes/common/assets/3d/hub_buried.blend" id="1_qkleo"]
[ext_resource type="Script" uid="uid://csfx6yy1rxtu" path="res://stages/3d_scenes/subterra_base/scripts/subterra_base.gd" id="1_vuar3"]
[ext_resource type="PackedScene" uid="uid://da7a74dg30q1l" path="res://entities/player_3d/player_3D.tscn" id="2_vuar3"]
[ext_resource type="PackedScene" uid="uid://c2unmkf4ec4gf" path="res://entities/interactable_3d/ai_receptacle/ai_receptacle.tscn" id="3_jc2l3"]
[node name="SubterraBase" type="Node3D" unique_id=1948800502]
script = ExtResource("1_vuar3")
[node name="hub_buried" parent="." unique_id=385558494 instance=ExtResource("1_qkleo")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -1.6178805, -0.025483131, -1.7124133)
[node name="Player3D" parent="." unique_id=549819967 instance=ExtResource("2_vuar3")]
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, 9.730468, -3.3392239, 7.232474)
[node name="AiReceptacle" parent="." unique_id=1082354698 instance=ExtResource("3_jc2l3")]
transform = Transform3D(-0.8670973, 0, 0.49813876, 0, 1, 0, -0.49813876, 0, -0.8670973, -1.320488, -6.334047, -1.7143525)
broken = true

View File

@@ -48,26 +48,26 @@ var data_last_updated = 0.
var plant_grid : PlantGrid
# Cheat Code
# func _input(_e):
# if (
# Input.is_action_pressed("drop")
# and Input.is_action_pressed("move_right")
# and Input.is_action_pressed("move_left")
# and Input.is_action_just_pressed("action")
# ):
# if data.state != RegionData.State.SUCCEEDED:
# data.succeded.emit()
# data.state = RegionData.State.SUCCEEDED
# # data.update()
func _input(_e):
if (
Input.is_action_pressed("drop")
and Input.is_action_pressed("move_right")
and Input.is_action_pressed("move_left")
and Input.is_action_just_pressed("action")
):
if data.state != RegionData.State.SUCCEEDED:
data.succeded.emit()
data.state = RegionData.State.SUCCEEDED
# data.update()
# if (
# Input.is_action_pressed("drop")
# and Input.is_action_pressed("move_right")
# and Input.is_action_pressed("move_left")
# and Input.is_action_just_pressed("move_pointer")
# ):
# data.charges = 0
# data.state = RegionData.State.FAILED
if (
Input.is_action_pressed("drop")
and Input.is_action_pressed("move_right")
and Input.is_action_pressed("move_left")
and Input.is_action_just_pressed("move_pointer")
):
data.charges = 0
data.state = RegionData.State.FAILED
func _init():
data = GameInfo.game_data.current_region_data

View File

@@ -70,7 +70,7 @@ func _process(delta):
%Planet3d.rotate(Vector3.UP, planet_rotation.x * delta)
%Planet3d.rotate(Vector3.RIGHT, planet_rotation.y * delta)
if not planet_spin_ach_sended and planet_rotation.length() > 40:
if not planet_spin_ach_sended and planet_rotation.length() > 50:
planet_spin_ach_sended = true
SteamConnection.unlock_achievement(SteamConnection.ACH_SPIN_PLANET)

View File

@@ -10,9 +10,7 @@
[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"]
@@ -71,7 +69,7 @@ shader = ExtResource("8_pjo5j")
shader_parameter/strength = 5.00000023424012
shader_parameter/mix_percentage = 0.3
[sub_resource type="FastNoiseLite" id="FastNoiseLite_gn4uv"]
[sub_resource type="FastNoiseLite" id="FastNoiseLite_lwj2x"]
frequency = 1.0
[sub_resource type="Animation" id="Animation_gn4uv"]
@@ -452,18 +450,10 @@ size_flags_horizontal = 8
size_flags_vertical = 8
alignment = 2
[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]
unique_name_in_owner = true
visible = false
@@ -523,7 +513,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_gn4uv")
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)

View File

@@ -185,7 +185,8 @@ TALION_CRISTAL_DESC_TEXT,"A pure form of Talion, cannot be broken or used","Une
TALION_CELL,Talion Cell,Cellule de Talion
TALION_CELL_DESC_TEXT,"This cell is filled with liquid form of Talion, let's see what's inside!","Cette cellule est remplie d'une forme liquide de Talio, voyons ce qu'il y a à l'intérieur !"
ENERGY_CELL,Energy Cell,Cellule d'énergie
ENERGY_CELL_DESC_TEXT,"Some energy remain on this cell... Might be usefull.","De l'énergie reste dans cette cellule... Cela pourra être utile."
ENERGY_CELL_DESC_TEXT,"Some energy remain on this cell... Might be usefull. Can only be used when Orchid's energy is not full.","De l'énergie reste dans cette cellule... Cela pourra être utile. Peut seulement être utilisée si Orchid n'est pas complètement rechargé."
%s_USED,%s (used),%s (utilisée)
OPEN,Open,Ouvrir
COMPOST,Compost,Compost
START,Start,Commencer
@@ -300,6 +301,9 @@ MYSTERIOUS_DOOR,Mysterious Door,Porte mystérieuse
MYSTERIOUS_DOOR_TEXT,"This door has a space ship logo on it... What could it be ?","Cette porte à un logo de vaisseau marqué dessus... Que peut-il y avoir à l'intérieur ?"
ASTRA_BASE,Astra Base,Base Astra
BOREA_BASE,Borea Base,Base Boréa
AQUA_BASE,Aqua Base,Base Aqua
SUBTERRA_BASE,Subterra Base,Base Subterra
ESTIA_BASE,Estia Base,Base Estia
RELAY_BASE_X,Relay Base %s,Base relai %s
MERCURY,Mercury,Mercure
VENUS,Venus,Vénus
@@ -373,6 +377,8 @@ TALION_RELAY,Talion Relay,Relai de Talion
TALION_RELAY_DESC_TEXT,Increase mutation probability,Augmente la probabilité des mutations
TALION_SOIL,Talion Soil,Terreau de Talion
TALION_SOIL_DESC_TEXT,Increase plant influence radius,Augmente le rayon d'influence des plantes
TALION_SPRAY,Talion Spray,Vaporisateur de Talion
TALION_SPRAY_DESC_TEXT,Increase default plant points by 1,Augmente les points de base des plantes de 1
PLANTS_CAN_HAVE_UP_TO_X_MUTATION,Plants can have up to [b]%d[/b] mutations,Les plantes peuvent avoir jusqu'à [b]%d[/b] mutations
PLANTS_MUTATION_CHANCE_IS_X_PERCENT,Plant mutation chance is [b]{mutation_chance}%[/b],Les chances de mutation d'une plante sont de [b]{mutation_chance}%[/b]
ARTEFACTS_VENDING_MACHINE,Artefacts Vending Machine,Distributeur d'Artefacts
1 keys en fr
185 TALION_CELL Talion Cell Cellule de Talion
186 TALION_CELL_DESC_TEXT This cell is filled with liquid form of Talion, let's see what's inside! Cette cellule est remplie d'une forme liquide de Talio, voyons ce qu'il y a à l'intérieur !
187 ENERGY_CELL Energy Cell Cellule d'énergie
188 ENERGY_CELL_DESC_TEXT Some energy remain on this cell... Might be usefull. Some energy remain on this cell... Might be usefull. Can only be used when Orchid's energy is not full. De l'énergie reste dans cette cellule... Cela pourra être utile. De l'énergie reste dans cette cellule... Cela pourra être utile. Peut seulement être utilisée si Orchid n'est pas complètement rechargé.
189 %s_USED %s (used) %s (utilisée)
190 OPEN Open Ouvrir
191 COMPOST Compost Compost
192 START Start Commencer
301 MYSTERIOUS_DOOR_TEXT This door has a space ship logo on it... What could it be ? Cette porte à un logo de vaisseau marqué dessus... Que peut-il y avoir à l'intérieur ?
302 ASTRA_BASE Astra Base Base Astra
303 BOREA_BASE Borea Base Base Boréa
304 AQUA_BASE Aqua Base Base Aqua
305 SUBTERRA_BASE Subterra Base Base Subterra
306 ESTIA_BASE Estia Base Base Estia
307 RELAY_BASE_X Relay Base %s Base relai %s
308 MERCURY Mercury Mercure
309 VENUS Venus Vénus
377 TALION_RELAY_DESC_TEXT Increase mutation probability Augmente la probabilité des mutations
378 TALION_SOIL Talion Soil Terreau de Talion
379 TALION_SOIL_DESC_TEXT Increase plant influence radius Augmente le rayon d'influence des plantes
380 TALION_SPRAY Talion Spray Vaporisateur de Talion
381 TALION_SPRAY_DESC_TEXT Increase default plant points by 1 Augmente les points de base des plantes de 1
382 PLANTS_CAN_HAVE_UP_TO_X_MUTATION Plants can have up to [b]%d[/b] mutations Les plantes peuvent avoir jusqu'à [b]%d[/b] mutations
383 PLANTS_MUTATION_CHANCE_IS_X_PERCENT Plant mutation chance is [b]{mutation_chance}%[/b] Les chances de mutation d'une plante sont de [b]{mutation_chance}%[/b]
384 ARTEFACTS_VENDING_MACHINE Artefacts Vending Machine Distributeur d'Artefacts