diff --git a/common/game_data/scripts/progression_data.gd b/common/game_data/scripts/progression_data.gd index 191b6c3..54536e9 100644 --- a/common/game_data/scripts/progression_data.gd +++ b/common/game_data/scripts/progression_data.gd @@ -1,13 +1,12 @@ extends Resource class_name ProgressionData - @export var planted_mutation_ids: Array[String] = [] @export var story_step_i := 0 -@export var ship_tutorial_done = false +@export var mutations_unlocked = 5 var all_mutations: Array[PlantMutation] : get = get_all_mutations -var available_mutations: Array[PlantMutation] : get = get_all_mutations +var available_mutations: Array[PlantMutation] : get = get_available_mutations var available_artefacts: Array[Artefact] : get = get_all_artifacts var story_step : StoryStep : get = get_story_step @@ -19,21 +18,24 @@ func next_story_step() -> void: if story_step_i + 1 < len(get_all_story_steps()): story_step_i += 1 +func get_available_mutations() -> Array[PlantMutation]: + return get_all_mutations().slice(0, mutations_unlocked) + func get_all_mutations() -> Array[PlantMutation]: return [ + QualityMutation.new(), AncientMutation.new(), - FertileMutation.new(), - GenerousMutation.new(), - HurriedMutation.new(), - PrecociousMutation.new(), ProlificMutation.new(), + PrecociousMutation.new(), + PurificationMutation.new(), + SocialMutation.new(), + FertileMutation.new(), + QuickMutation.new(), + HurriedMutation.new(), + GenerousMutation.new(), ProtectiveMutation.new(), PureMutation.new(), - PurificationMutation.new(), - QualityMutation.new(), - QuickMutation.new(), RobustMutation.new(), - SocialMutation.new(), ToughMutation.new(), VivaciousMutation.new(), ] diff --git a/common/game_data/scripts/run/run_data.gd b/common/game_data/scripts/run/run_data.gd index e892791..b82b8ac 100644 --- a/common/game_data/scripts/run/run_data.gd +++ b/common/game_data/scripts/run/run_data.gd @@ -47,8 +47,6 @@ func generate_next_run_point(last_modifiers : Array[String] = []) -> RunPoint: var next_level = level+1 - - var challenge_modifiers = generate_challenge_modifiers().filter( func(m : RegionModifier): return not m.modifier_name in last_modifiers ) @@ -74,16 +72,24 @@ func generate_next_run_point(last_modifiers : Array[String] = []) -> RunPoint: var first_vending = story_step.get_first_vending_machine_occurence(next_level) var vending_occurence = story_step.get_vending_machine_occurence(next_level) - if vending_occurence > 0: + if vending_occurence > 0 and level >= first_vending: if (level - first_vending)%vending_occurence == 0: region_parameter.modifiers.append(VendingMachineModifier.new()) - + + var first_cave = story_step.get_first_cave_occurence(next_level) + var cave_occurence = story_step.get_cave_occurence(next_level) + if cave_occurence > 0 and level >= first_cave: + if (level - first_cave)%cave_occurence == 0: + region_parameter.modifiers.append(CaveModifier.new()) + region_parameter.modifiers.append_array( story_step.get_story_modifiers_for_region(next_level) ) region_parameter.objective = story_step.get_objective_for_region(next_level) - + region_parameter.charge = story_step.get_charge_number(next_level) + + return RunPoint.new( region_parameter ) @@ -110,7 +116,7 @@ func generate_normal_modifiers() -> Array[RegionModifier]: HarshModifier.new(), ToxicModifier.new(), SandyModifier.new(), - + MagneticModifier.new(), ] func generate_benefic_modifiers() -> Array[RegionModifier]: @@ -118,6 +124,7 @@ func generate_benefic_modifiers() -> Array[RegionModifier]: VendingMachineModifier.new(), ResonnanceModifier.new(), InstableModifier.new(), + CaveModifier.new(), ] diff --git a/common/game_data/scripts/story/astra_story_step.gd b/common/game_data/scripts/story/astra_story_step.gd index 7b8f40e..4efb589 100644 --- a/common/game_data/scripts/story/astra_story_step.gd +++ b/common/game_data/scripts/story/astra_story_step.gd @@ -2,6 +2,7 @@ extends StoryStep class_name AstraStoryStep const MERCURY_ARRIVAL_DIALOG_PATH="res://dialogs/timelines/astra/mercury_arrival.dtl" +const CAVE_DIALOG_PATH="res://dialogs/timelines/astra/cave.dtl" func get_respawn_scene() -> Scene: return AstraScene.new() @@ -16,7 +17,7 @@ func get_destination_scene() -> Scene: ) func get_region_sequence_length() -> int: - return 4 + return 5 func get_first_vending_machine_occurence(_level : int) -> int: return 0 @@ -28,6 +29,8 @@ func get_challenge_chance(_level : int) -> float: return 0. func get_ship_dialog_path(level : int, ship_in_space := true) -> String: + if ship_in_space and level == get_cave_occurence(level): + return CAVE_DIALOG_PATH if ship_in_space and level == get_region_sequence_length() - 1: return MERCURY_ARRIVAL_DIALOG_PATH return "" \ No newline at end of file diff --git a/common/game_data/scripts/story/story_step.gd b/common/game_data/scripts/story/story_step.gd index 10d441c..d945dd3 100644 --- a/common/game_data/scripts/story/story_step.gd +++ b/common/game_data/scripts/story/story_step.gd @@ -30,6 +30,12 @@ func get_first_vending_machine_occurence(_level : int) -> int: func get_vending_machine_occurence(_level : int) -> int: return 4 +func get_first_cave_occurence(level : int) -> int: + return get_cave_occurence(level) + +func get_cave_occurence(_level : int) -> int: + return 3 + func get_challenge_chance(_level : int) -> float: return 0.3 @@ -38,13 +44,15 @@ func get_run_point_number(level : int) -> int: return 1 return 2 +func get_charge_number(_level : int) -> int: + return 10 + func get_objective_for_region(level : int) -> int: match level: - 0: return 1 - 1: return 8 - 2: return 10 - 3: return 15 - 4: return 20 + 1: return 10 + 2: return 12 + 3: return 16 + 4: return 22 5: return 30 _: return get_objective_for_region(level-1) + (level-3) * 5 diff --git a/common/icons/cristal.svg b/common/icons/cristal.svg new file mode 100644 index 0000000..d27df19 --- /dev/null +++ b/common/icons/cristal.svg @@ -0,0 +1,23 @@ + + + + + + diff --git a/common/icons/cristal.svg.import b/common/icons/cristal.svg.import new file mode 100644 index 0000000..2811e9b --- /dev/null +++ b/common/icons/cristal.svg.import @@ -0,0 +1,43 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://cqdyykjx6hdrr" +path="res://.godot/imported/cristal.svg-7e9a919e9dbc36092f14a8401b5f4888.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://common/icons/cristal.svg" +dest_files=["res://.godot/imported/cristal.svg-7e9a919e9dbc36092f14a8401b5f4888.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 +svg/scale=2.0 +editor/scale_with_editor_scale=false +editor/convert_colors_with_editor_theme=false diff --git a/common/icons/magnet.svg b/common/icons/magnet.svg new file mode 100644 index 0000000..86cbb7a --- /dev/null +++ b/common/icons/magnet.svg @@ -0,0 +1,45 @@ + + + + + + + diff --git a/common/icons/magnet.svg.import b/common/icons/magnet.svg.import new file mode 100644 index 0000000..5cd619f --- /dev/null +++ b/common/icons/magnet.svg.import @@ -0,0 +1,43 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://mv0emix7dwio" +path="res://.godot/imported/magnet.svg-210fc8631abfaf11eefb9e027a72fb42.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://common/icons/magnet.svg" +dest_files=["res://.godot/imported/magnet.svg-210fc8631abfaf11eefb9e027a72fb42.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 +svg/scale=2.0 +editor/scale_with_editor_scale=false +editor/convert_colors_with_editor_theme=false diff --git a/common/scene_manager/scripts/scenes/cave_scene.gd b/common/scene_manager/scripts/scenes/cave_scene.gd new file mode 100644 index 0000000..dc815a2 --- /dev/null +++ b/common/scene_manager/scripts/scenes/cave_scene.gd @@ -0,0 +1,31 @@ +extends Scene +class_name CaveScene + +@export var cave_room_seed = 0 + +func _init( + _crs : int = 0 +): + cave_room_seed = _crs + +func get_scene_id() -> String: + return "CRISTAL_CAVE" + +func get_scene_path() -> String: + return "res://stages/3d_scenes/cave/cave.tscn" + +func is_mouse_captured() -> bool: + return true + +func is_needed_to_be_announced() -> bool: + return true + +func get_scene_title() -> String: + return tr("CRISTAL_CAVE") + +func get_scene_icon() -> Texture: + return preload("res://common/icons/cristal.svg") + +func _on_generated(generated_scene : Node): + var cave : Cave = generated_scene as Cave + cave.setup_room(cave_room_seed) \ No newline at end of file diff --git a/common/scene_manager/scripts/scenes/cave_scene.gd.uid b/common/scene_manager/scripts/scenes/cave_scene.gd.uid new file mode 100644 index 0000000..47fbb00 --- /dev/null +++ b/common/scene_manager/scripts/scenes/cave_scene.gd.uid @@ -0,0 +1 @@ +uid://f143q00p8ph1 diff --git a/dialogs/timelines/astra/cave.dtl b/dialogs/timelines/astra/cave.dtl new file mode 100644 index 0000000..6221168 --- /dev/null +++ b/dialogs/timelines/astra/cave.dtl @@ -0,0 +1,13 @@ +audio "res://common/audio_manager/assets/sfx/dialogs/sfx/incoming_transmission.wav" +join demeter center [animation="Bounce In" length="1.0"] +demeter: I hope everything is going well for you so far. I'm calling because the next regions you're heading to contain unique rock formations\: the [b]Caverns of Talion[/b]. #id:e5 +- Talion hadn't disappeared? #id:e6 + demeter: Precisely, I'd like you to check for me if its reappearance on the surface also means its reappearance in the caverns. #id:e7 +- How do you know? #id:e8 + demeter: These caverns were well known to humans. Some went there to study Talion, others to explore the cave. These explorations were very risky, but apparently some humans enjoyed risking their lives... #id:e9 +- What does that change for me? #id:ea +demeter: The crystals in these caverns are special; they don't produce life, but they release a powerful mutagenic energy into the air. This will surely help you grow more powerfull plants for the rest of your journey. #id:eb +demeter: Use your detector to find the entrance to the cave; humans had installed an elevator there. #id:ec +audio "res://common/audio_manager/assets/sfx/dialogs/sfx/closing_transmission.wav" +[wait time="2.0"] +[end_timeline] \ No newline at end of file diff --git a/dialogs/timelines/astra/cave.dtl.uid b/dialogs/timelines/astra/cave.dtl.uid new file mode 100644 index 0000000..a295316 --- /dev/null +++ b/dialogs/timelines/astra/cave.dtl.uid @@ -0,0 +1 @@ +uid://pgqchxycwcpd diff --git a/entities/interactable_3d/cristal/assets/cristal.blend b/entities/interactable_3d/cristal/assets/cristal.blend new file mode 100644 index 0000000..8a0adeb Binary files /dev/null and b/entities/interactable_3d/cristal/assets/cristal.blend differ diff --git a/entities/interactable_3d/cristal/assets/cristal.blend.import b/entities/interactable_3d/cristal/assets/cristal.blend.import new file mode 100644 index 0000000..8d2f033 --- /dev/null +++ b/entities/interactable_3d/cristal/assets/cristal.blend.import @@ -0,0 +1,68 @@ +[remap] + +importer="scene" +importer_version=1 +type="PackedScene" +uid="uid://mwk845fx5ye2" +path="res://.godot/imported/cristal.blend-5fdcaa76cec17f12715c1ff4a4caf324.scn" + +[deps] + +source_file="res://entities/interactable_3d/cristal/assets/cristal.blend" +dest_files=["res://.godot/imported/cristal.blend-5fdcaa76cec17f12715c1ff4a4caf324.scn"] + +[params] + +nodes/root_type="" +nodes/root_name="" +nodes/root_script=null +nodes/apply_root_scale=true +nodes/root_scale=1.0 +nodes/import_as_skeleton_bones=false +nodes/use_name_suffixes=true +nodes/use_node_type_suffixes=true +meshes/ensure_tangents=true +meshes/generate_lods=true +meshes/create_shadow_meshes=true +meshes/light_baking=1 +meshes/lightmap_texel_size=0.2 +meshes/force_disable_compression=false +skins/use_named_skins=true +animation/import=true +animation/fps=30 +animation/trimming=false +animation/remove_immutable_tracks=true +animation/import_rest_as_RESET=false +import_script/path="" +materials/extract=0 +materials/extract_format=0 +materials/extract_path="" +_subresources={ +"materials": { +"Default3D": { +"use_external/enabled": true, +"use_external/fallback_path": "res://common/assets/materials/default_3d.tres", +"use_external/path": "uid://dvvi1k5c5iowc" +} +} +} +blender/nodes/visible=0 +blender/nodes/active_collection_only=false +blender/nodes/punctual_lights=true +blender/nodes/cameras=true +blender/nodes/custom_properties=true +blender/nodes/modifiers=1 +blender/meshes/colors=false +blender/meshes/uvs=true +blender/meshes/normals=true +blender/meshes/export_geometry_nodes_instances=false +blender/meshes/gpu_instances=false +blender/meshes/tangents=true +blender/meshes/skins=2 +blender/meshes/export_bones_deforming_mesh_only=false +blender/materials/unpack_enabled=true +blender/materials/export_materials=1 +blender/animation/limit_playback=true +blender/animation/always_sample=true +blender/animation/group_tracks=true +gltf/naming_version=2 diff --git a/entities/interactable_3d/cristal/assets/cristal_crack_1.blend b/entities/interactable_3d/cristal/assets/cristal_crack_1.blend new file mode 100644 index 0000000..30d99b9 Binary files /dev/null and b/entities/interactable_3d/cristal/assets/cristal_crack_1.blend differ diff --git a/entities/interactable_3d/cristal/assets/cristal_crack_1.blend.import b/entities/interactable_3d/cristal/assets/cristal_crack_1.blend.import new file mode 100644 index 0000000..d8da56d --- /dev/null +++ b/entities/interactable_3d/cristal/assets/cristal_crack_1.blend.import @@ -0,0 +1,68 @@ +[remap] + +importer="scene" +importer_version=1 +type="PackedScene" +uid="uid://d0sdfjneo8rjj" +path="res://.godot/imported/cristal_crack_1.blend-01f6238e5ee6ec34d1d8a421f878430c.scn" + +[deps] + +source_file="res://entities/interactable_3d/cristal/assets/cristal_crack_1.blend" +dest_files=["res://.godot/imported/cristal_crack_1.blend-01f6238e5ee6ec34d1d8a421f878430c.scn"] + +[params] + +nodes/root_type="" +nodes/root_name="" +nodes/root_script=null +nodes/apply_root_scale=true +nodes/root_scale=1.0 +nodes/import_as_skeleton_bones=false +nodes/use_name_suffixes=true +nodes/use_node_type_suffixes=true +meshes/ensure_tangents=true +meshes/generate_lods=true +meshes/create_shadow_meshes=true +meshes/light_baking=1 +meshes/lightmap_texel_size=0.2 +meshes/force_disable_compression=false +skins/use_named_skins=true +animation/import=true +animation/fps=30 +animation/trimming=false +animation/remove_immutable_tracks=true +animation/import_rest_as_RESET=false +import_script/path="" +materials/extract=0 +materials/extract_format=0 +materials/extract_path="" +_subresources={ +"materials": { +"Default3D": { +"use_external/enabled": true, +"use_external/fallback_path": "res://common/assets/materials/default_3d.tres", +"use_external/path": "uid://dvvi1k5c5iowc" +} +} +} +blender/nodes/visible=0 +blender/nodes/active_collection_only=false +blender/nodes/punctual_lights=true +blender/nodes/cameras=true +blender/nodes/custom_properties=true +blender/nodes/modifiers=1 +blender/meshes/colors=false +blender/meshes/uvs=true +blender/meshes/normals=true +blender/meshes/export_geometry_nodes_instances=false +blender/meshes/gpu_instances=false +blender/meshes/tangents=true +blender/meshes/skins=2 +blender/meshes/export_bones_deforming_mesh_only=false +blender/materials/unpack_enabled=true +blender/materials/export_materials=1 +blender/animation/limit_playback=true +blender/animation/always_sample=true +blender/animation/group_tracks=true +gltf/naming_version=2 diff --git a/entities/interactable_3d/cristal/assets/cristal_crack_2.blend b/entities/interactable_3d/cristal/assets/cristal_crack_2.blend new file mode 100644 index 0000000..f8d0ef2 Binary files /dev/null and b/entities/interactable_3d/cristal/assets/cristal_crack_2.blend differ diff --git a/entities/interactable_3d/cristal/assets/cristal_crack_2.blend.import b/entities/interactable_3d/cristal/assets/cristal_crack_2.blend.import new file mode 100644 index 0000000..fe47c86 --- /dev/null +++ b/entities/interactable_3d/cristal/assets/cristal_crack_2.blend.import @@ -0,0 +1,68 @@ +[remap] + +importer="scene" +importer_version=1 +type="PackedScene" +uid="uid://b8cqw348lx15s" +path="res://.godot/imported/cristal_crack_2.blend-e5cf949346bc85a9c664c66dde3ab25a.scn" + +[deps] + +source_file="res://entities/interactable_3d/cristal/assets/cristal_crack_2.blend" +dest_files=["res://.godot/imported/cristal_crack_2.blend-e5cf949346bc85a9c664c66dde3ab25a.scn"] + +[params] + +nodes/root_type="" +nodes/root_name="" +nodes/root_script=null +nodes/apply_root_scale=true +nodes/root_scale=1.0 +nodes/import_as_skeleton_bones=false +nodes/use_name_suffixes=true +nodes/use_node_type_suffixes=true +meshes/ensure_tangents=true +meshes/generate_lods=true +meshes/create_shadow_meshes=true +meshes/light_baking=1 +meshes/lightmap_texel_size=0.2 +meshes/force_disable_compression=false +skins/use_named_skins=true +animation/import=true +animation/fps=30 +animation/trimming=false +animation/remove_immutable_tracks=true +animation/import_rest_as_RESET=false +import_script/path="" +materials/extract=0 +materials/extract_format=0 +materials/extract_path="" +_subresources={ +"materials": { +"Default3D": { +"use_external/enabled": true, +"use_external/fallback_path": "res://common/assets/materials/default_3d.tres", +"use_external/path": "uid://dvvi1k5c5iowc" +} +} +} +blender/nodes/visible=0 +blender/nodes/active_collection_only=false +blender/nodes/punctual_lights=true +blender/nodes/cameras=true +blender/nodes/custom_properties=true +blender/nodes/modifiers=1 +blender/meshes/colors=false +blender/meshes/uvs=true +blender/meshes/normals=true +blender/meshes/export_geometry_nodes_instances=false +blender/meshes/gpu_instances=false +blender/meshes/tangents=true +blender/meshes/skins=2 +blender/meshes/export_bones_deforming_mesh_only=false +blender/materials/unpack_enabled=true +blender/materials/export_materials=1 +blender/animation/limit_playback=true +blender/animation/always_sample=true +blender/animation/group_tracks=true +gltf/naming_version=2 diff --git a/entities/interactable_3d/cristal/assets/cristal_crack_3.blend b/entities/interactable_3d/cristal/assets/cristal_crack_3.blend new file mode 100644 index 0000000..15d217d Binary files /dev/null and b/entities/interactable_3d/cristal/assets/cristal_crack_3.blend differ diff --git a/entities/interactable_3d/cristal/assets/cristal_crack_3.blend.import b/entities/interactable_3d/cristal/assets/cristal_crack_3.blend.import new file mode 100644 index 0000000..d8a51c8 --- /dev/null +++ b/entities/interactable_3d/cristal/assets/cristal_crack_3.blend.import @@ -0,0 +1,68 @@ +[remap] + +importer="scene" +importer_version=1 +type="PackedScene" +uid="uid://c7p114rvk26xw" +path="res://.godot/imported/cristal_crack_3.blend-513c4ee47a074edd5c96e86c23a0716a.scn" + +[deps] + +source_file="res://entities/interactable_3d/cristal/assets/cristal_crack_3.blend" +dest_files=["res://.godot/imported/cristal_crack_3.blend-513c4ee47a074edd5c96e86c23a0716a.scn"] + +[params] + +nodes/root_type="" +nodes/root_name="" +nodes/root_script=null +nodes/apply_root_scale=true +nodes/root_scale=1.0 +nodes/import_as_skeleton_bones=false +nodes/use_name_suffixes=true +nodes/use_node_type_suffixes=true +meshes/ensure_tangents=true +meshes/generate_lods=true +meshes/create_shadow_meshes=true +meshes/light_baking=1 +meshes/lightmap_texel_size=0.2 +meshes/force_disable_compression=false +skins/use_named_skins=true +animation/import=true +animation/fps=30 +animation/trimming=false +animation/remove_immutable_tracks=true +animation/import_rest_as_RESET=false +import_script/path="" +materials/extract=0 +materials/extract_format=0 +materials/extract_path="" +_subresources={ +"materials": { +"Default3D": { +"use_external/enabled": true, +"use_external/fallback_path": "res://common/assets/materials/default_3d.tres", +"use_external/path": "uid://dvvi1k5c5iowc" +} +} +} +blender/nodes/visible=0 +blender/nodes/active_collection_only=false +blender/nodes/punctual_lights=true +blender/nodes/cameras=true +blender/nodes/custom_properties=true +blender/nodes/modifiers=1 +blender/meshes/colors=false +blender/meshes/uvs=true +blender/meshes/normals=true +blender/meshes/export_geometry_nodes_instances=false +blender/meshes/gpu_instances=false +blender/meshes/tangents=true +blender/meshes/skins=2 +blender/meshes/export_bones_deforming_mesh_only=false +blender/materials/unpack_enabled=true +blender/materials/export_materials=1 +blender/animation/limit_playback=true +blender/animation/always_sample=true +blender/animation/group_tracks=true +gltf/naming_version=2 diff --git a/entities/interactable_3d/cristal/assets/cristal_crack_3.blend1 b/entities/interactable_3d/cristal/assets/cristal_crack_3.blend1 new file mode 100644 index 0000000..25aa5d2 Binary files /dev/null and b/entities/interactable_3d/cristal/assets/cristal_crack_3.blend1 differ diff --git a/entities/interactable_3d/cristal/cristal.blend1 b/entities/interactable_3d/cristal/cristal.blend1 new file mode 100644 index 0000000..28e6d59 Binary files /dev/null and b/entities/interactable_3d/cristal/cristal.blend1 differ diff --git a/entities/interactable_3d/cristal/cristal.tscn b/entities/interactable_3d/cristal/cristal.tscn new file mode 100644 index 0000000..735b8f7 --- /dev/null +++ b/entities/interactable_3d/cristal/cristal.tscn @@ -0,0 +1,87 @@ +[gd_scene format=3 uid="uid://8rorj31s3irn"] + +[ext_resource type="Script" uid="uid://dwn3g8c5sa0a2" path="res://entities/interactable_3d/cristal/scripts/cristal.gd" id="1_ci2hw"] +[ext_resource type="AudioStream" uid="uid://ctfaxvblcg5lc" path="res://common/audio_manager/assets/sfx/pickaxe/pickaxe_1.wav" id="2_247i2"] +[ext_resource type="PackedScene" uid="uid://mwk845fx5ye2" path="res://entities/interactable_3d/cristal/assets/cristal.blend" id="2_ci2hw"] +[ext_resource type="PackedScene" uid="uid://c7p114rvk26xw" path="res://entities/interactable_3d/cristal/assets/cristal_crack_3.blend" id="2_vejte"] +[ext_resource type="AudioStream" uid="uid://c1dnklmka2ccn" path="res://common/audio_manager/assets/sfx/pickaxe/pickaxe_2.wav" id="3_k7wsc"] +[ext_resource type="PackedScene" uid="uid://d0sdfjneo8rjj" path="res://entities/interactable_3d/cristal/assets/cristal_crack_1.blend" id="3_nvfy2"] +[ext_resource type="AudioStream" uid="uid://dd1uu6dd6sloe" path="res://common/audio_manager/assets/sfx/pickaxe/pickaxe_3.wav" id="4_qeist"] +[ext_resource type="AudioStream" uid="uid://eq7wufwnolto" path="res://common/audio_manager/assets/sfx/pickaxe/pickaxe_4.wav" id="5_22ghi"] +[ext_resource type="PackedScene" uid="uid://brp1fpvasaims" path="res://entities/interactable_3d/cristal/mutation_announce.tscn" id="9_247i2"] + +[sub_resource type="AudioStreamRandomizer" id="AudioStreamRandomizer_ojmpp"] +streams_count = 4 +stream_0/stream = ExtResource("2_247i2") +stream_1/stream = ExtResource("3_k7wsc") +stream_2/stream = ExtResource("4_qeist") +stream_3/stream = ExtResource("5_22ghi") + +[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_ci2hw"] +transparency = 1 +shading_mode = 0 +vertex_color_use_as_albedo = true + +[sub_resource type="PrismMesh" id="PrismMesh_nvfy2"] +lightmap_size_hint = Vector2i(14, 21) +material = SubResource("StandardMaterial3D_ci2hw") +size = Vector3(0.2, 0.2, 0.2) + +[sub_resource type="Gradient" id="Gradient_ci2hw"] +offsets = PackedFloat32Array(0, 0.80349344, 1) +colors = PackedColorArray(1, 0.6509804, 0.09019608, 1, 1, 0.1764706, 0.3372549, 0.827451, 1, 0, 0.43137255, 0) + +[sub_resource type="BoxShape3D" id="BoxShape3D_nvfy2"] +size = Vector3(1, 2.0454712, 1) + +[node name="Cristal" type="Area3D" unique_id=1403604311] +script = ExtResource("1_ci2hw") +metadata/_custom_type_script = "uid://bj4d1x8n8ina" + +[node name="BreackAudioPlayer" type="AudioStreamPlayer3D" parent="." unique_id=1190729820] +unique_name_in_owner = true +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.0430325, 0) +stream = SubResource("AudioStreamRandomizer_ojmpp") + +[node name="BreakParticles" type="CPUParticles3D" parent="." unique_id=1968257379] +unique_name_in_owner = true +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.0430325, 0) +emitting = false +amount = 16 +lifetime = 0.5 +one_shot = true +speed_scale = 1.5 +explosiveness = 1.0 +mesh = SubResource("PrismMesh_nvfy2") +particle_flag_rotate_y = true +direction = Vector3(0, 1, 0) +initial_velocity_min = 1.0 +initial_velocity_max = 4.0 +angular_velocity_min = -90.0 +angular_velocity_max = -90.0 +angle_min = -180.0 +angle_max = 180.0 +scale_amount_min = 0.5 +color = Color(1, 0.6509804, 0.09019608, 1) +color_ramp = SubResource("Gradient_ci2hw") + +[node name="CristalModel" parent="." unique_id=1362490576 instance=ExtResource("2_ci2hw")] +unique_name_in_owner = true + +[node name="CristalModelCrack1" parent="." unique_id=2936580 instance=ExtResource("3_nvfy2")] +unique_name_in_owner = true +visible = false + +[node name="CristalModelCrack2" parent="." unique_id=1202531828 instance=ExtResource("2_vejte")] +unique_name_in_owner = true +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.0051152706, 0.006559938, -0.011411905) +visible = false + +[node name="CollisionShape3D" type="CollisionShape3D" parent="." unique_id=1235599731] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.9791151, 0) +shape = SubResource("BoxShape3D_nvfy2") + +[node name="MutationAnnounce" parent="." unique_id=1447182082 instance=ExtResource("9_247i2")] +unique_name_in_owner = true + +[editable path="CristalModelCrack2"] diff --git a/entities/interactable_3d/cristal/cristal_crack_1.blend1 b/entities/interactable_3d/cristal/cristal_crack_1.blend1 new file mode 100644 index 0000000..920c007 Binary files /dev/null and b/entities/interactable_3d/cristal/cristal_crack_1.blend1 differ diff --git a/entities/interactable_3d/cristal/cristal_crack_2.blend1 b/entities/interactable_3d/cristal/cristal_crack_2.blend1 new file mode 100644 index 0000000..91d4873 Binary files /dev/null and b/entities/interactable_3d/cristal/cristal_crack_2.blend1 differ diff --git a/entities/interactable_3d/cristal/cristal_crack_3.blend1 b/entities/interactable_3d/cristal/cristal_crack_3.blend1 new file mode 100644 index 0000000..c2f35a9 Binary files /dev/null and b/entities/interactable_3d/cristal/cristal_crack_3.blend1 differ diff --git a/entities/interactable_3d/cristal/mutation_announce.tscn b/entities/interactable_3d/cristal/mutation_announce.tscn new file mode 100644 index 0000000..dfb1269 --- /dev/null +++ b/entities/interactable_3d/cristal/mutation_announce.tscn @@ -0,0 +1,315 @@ +[gd_scene format=3 uid="uid://brp1fpvasaims"] + +[ext_resource type="Script" uid="uid://c0tyivmiouctw" path="res://entities/interactable_3d/cristal/scripts/mutation_announce.gd" id="1_02o74"] +[ext_resource type="Texture2D" uid="uid://bi5jo6pf0acjb" path="res://common/icons/carambola.svg" id="2_vlom2"] +[ext_resource type="LabelSettings" uid="uid://dqwayi8yjwau2" path="res://gui/ressources/title_label_settings.tres" id="3_5hs4t"] +[ext_resource type="FontFile" uid="uid://qt80w6o01q5s" path="res://gui/ressources/fonts/TitanOne-Regular.ttf" id="4_yg5wk"] +[ext_resource type="Script" uid="uid://bqisp5hjs06rj" path="res://gui/game/announce/scripts/announce_inspectable.gd" id="5_qu1xy"] +[ext_resource type="Texture2D" uid="uid://0hbdgalf04e" path="res://common/icons/wood.svg" id="6_n403s"] +[ext_resource type="Script" uid="uid://dj2pv1hiwjfv0" path="res://gui/game/card/scripts/card_info.gd" id="7_se4h4"] +[ext_resource type="Script" uid="uid://dgbh38j13g5kn" path="res://gui/game/card/scripts/card_section_info.gd" id="8_0osya"] +[ext_resource type="Texture2D" uid="uid://dth2mj0nh2q70" path="res://common/icons/align-right.svg" id="9_s5jxo"] +[ext_resource type="Script" uid="uid://b4tkium34c831" path="res://gui/game/card/scripts/card_stat_info.gd" id="10_qidgp"] +[ext_resource type="Texture2D" uid="uid://bsvxhafoxwmw0" path="res://common/icons/cube-3d-sphere.svg" id="11_uj15c"] +[ext_resource type="PackedScene" uid="uid://mwk845fx5ye2" path="res://entities/interactable_3d/cristal/assets/cristal.blend" id="12_wy2oe"] +[ext_resource type="Environment" uid="uid://bxyp24f85p0xf" path="res://gui/game/assets/gui_3d_environment.tres" id="13_kyl1n"] +[ext_resource type="Theme" uid="uid://bgcmd213j6gk1" path="res://gui/ressources/hud.tres" id="14_d2gpy"] +[ext_resource type="Texture2D" uid="uid://dcgnamu7sb3ov" path="res://common/icons/bolt.svg" id="15_hu5cq"] + +[sub_resource type="ViewportTexture" id="ViewportTexture_6hxtc"] +viewport_path = NodePath("Particles/SubViewport") + +[sub_resource type="Curve" id="Curve_brrmr"] +_limits = [-200.0, 200.0, 0.0, 1.0] +_data = [Vector2(0, -200), 0.0, 560.0, 0, 0, Vector2(0.08235294, 92.384125), 1336.3082, 1336.3082, 0, 0, Vector2(0.34901965, 200), 0.0, 0.0, 0, 0, Vector2(0.854902, -200), 0.0, 0.0, 0, 0] +point_count = 4 + +[sub_resource type="Gradient" id="Gradient_0u75y"] +offsets = PackedFloat32Array(0, 0.8689956, 0.98253274) +colors = PackedColorArray(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0) + +[sub_resource type="LabelSettings" id="LabelSettings_u8fe7"] +font = ExtResource("4_yg5wk") +font_size = 50 +font_color = Color(1, 0.6509804, 0.09019608, 1) + +[sub_resource type="ViewportTexture" id="ViewportTexture_smt8b"] +viewport_path = NodePath("AnnounceContainer/ObjectVisualiser/SubViewport") + +[sub_resource type="Resource" id="Resource_rjaqi"] +script = ExtResource("8_0osya") +title_text = "Description" +title_icon = ExtResource("9_s5jxo") +text = "Une fois mature, ajoute [b]1[/b][img=22x22]res://common/icons/growth.svg[/img] tous les [b]3[/b][img=22x22]res://common/icons/calendar-week.svg[/img]" + +[sub_resource type="Resource" id="Resource_kgj7d"] +script = ExtResource("7_se4h4") +title = "Ancien" +subtitle = "Mutation" +important_stat_icon = ExtResource("6_n403s") +sections = Array[ExtResource("8_0osya")]([SubResource("Resource_rjaqi")]) + +[sub_resource type="Animation" id="Animation_aao0q"] +length = 0.001 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("MutationAnnounce/AnnounceContainer:theme_override_constants/separation") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 1, +"values": [4] +} +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath("MutationAnnounce/Particles:modulate") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [Color(1, 1, 1, 1)] +} +tracks/2/type = "value" +tracks/2/imported = false +tracks/2/enabled = true +tracks/2/path = NodePath("MutationAnnounce/AnnounceContainer:modulate") +tracks/2/interp = 1 +tracks/2/loop_wrap = true +tracks/2/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [Color(1, 1, 1, 1)] +} +tracks/3/type = "value" +tracks/3/imported = false +tracks/3/enabled = true +tracks/3/path = NodePath("MutationAnnounce/MarginContainer/BackgroundRect:modulate:a") +tracks/3/interp = 1 +tracks/3/loop_wrap = true +tracks/3/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 1, +"values": [1.0] +} +tracks/4/type = "value" +tracks/4/imported = false +tracks/4/enabled = true +tracks/4/path = NodePath("MutationAnnounce:visible") +tracks/4/interp = 1 +tracks/4/loop_wrap = true +tracks/4/keys = { +"times": PackedFloat32Array(0.03333333), +"transitions": PackedFloat32Array(1), +"update": 1, +"values": [false] +} + +[sub_resource type="Animation" id="Animation_b6hac"] +resource_name = "appear" +length = 0.8 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("MutationAnnounce/AnnounceContainer:theme_override_constants/separation") +tracks/0/interp = 2 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0.23333333, 0.8), +"transitions": PackedFloat32Array(1, 1), +"update": 0, +"values": [480, 4] +} +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath("MutationAnnounce/Particles:modulate") +tracks/1/interp = 2 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0.5, 0.8), +"transitions": PackedFloat32Array(1, 1), +"update": 0, +"values": [Color(1, 1, 1, 0), Color(1, 1, 1, 1)] +} +tracks/2/type = "value" +tracks/2/imported = false +tracks/2/enabled = true +tracks/2/path = NodePath("MutationAnnounce/AnnounceContainer:modulate") +tracks/2/interp = 2 +tracks/2/loop_wrap = true +tracks/2/keys = { +"times": PackedFloat32Array(0.2, 0.8), +"transitions": PackedFloat32Array(1, 1), +"update": 0, +"values": [Color(1, 1, 1, 0), Color(1, 1, 1, 1)] +} +tracks/3/type = "value" +tracks/3/imported = false +tracks/3/enabled = true +tracks/3/path = NodePath("MutationAnnounce/MarginContainer/BackgroundRect:modulate:a") +tracks/3/interp = 1 +tracks/3/loop_wrap = true +tracks/3/keys = { +"times": PackedFloat32Array(0.03333333, 0.8), +"transitions": PackedFloat32Array(1, 1), +"update": 0, +"values": [0.0, 0.8] +} +tracks/4/type = "value" +tracks/4/imported = false +tracks/4/enabled = true +tracks/4/path = NodePath("MutationAnnounce:visible") +tracks/4/interp = 1 +tracks/4/loop_wrap = true +tracks/4/keys = { +"times": PackedFloat32Array(0, 0.16666667), +"transitions": PackedFloat32Array(1, 1), +"update": 1, +"values": [false, true] +} + +[sub_resource type="AnimationLibrary" id="AnimationLibrary_1aa3a"] +_data = { +&"RESET": SubResource("Animation_aao0q"), +&"appear": SubResource("Animation_b6hac") +} + +[node name="MutationAnnounce" type="CanvasLayer" unique_id=1447182082] +visible = false +script = ExtResource("1_02o74") + +[node name="MarginContainer" type="MarginContainer" parent="." unique_id=1853133518] +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 + +[node name="BackgroundRect" type="ColorRect" parent="MarginContainer" unique_id=1594037653] +layout_mode = 2 +color = Color(0.0352941, 0.0196078, 0.12549, 0.705882) + +[node name="Particles" type="TextureRect" parent="." unique_id=1748571879] +anchors_preset = 8 +anchor_left = 0.5 +anchor_top = 0.5 +anchor_right = 0.5 +anchor_bottom = 0.5 +offset_left = -500.0 +offset_top = -500.0 +offset_right = 500.0 +offset_bottom = 500.0 +grow_horizontal = 2 +grow_vertical = 2 +texture = SubResource("ViewportTexture_6hxtc") + +[node name="SubViewport" type="SubViewport" parent="Particles" unique_id=1123249182] +transparent_bg = true +size = Vector2i(1000, 1000) + +[node name="GPUParticles2D" type="CPUParticles2D" parent="Particles/SubViewport" unique_id=220592083] +position = Vector2(500, 500) +amount = 20 +texture = ExtResource("2_vlom2") +preprocess = 1.0 +spread = 180.0 +gravity = Vector2(0, 0) +initial_velocity_min = 2.0 +initial_velocity_max = 2.0 +linear_accel_min = 5.0 +linear_accel_max = 5.0 +linear_accel_curve = SubResource("Curve_brrmr") +color_ramp = SubResource("Gradient_0u75y") + +[node name="AnnounceContainer" type="VBoxContainer" parent="." unique_id=645433045] +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +offset_top = -627.0 +offset_bottom = 627.0 +grow_horizontal = 2 +grow_vertical = 2 +theme_override_constants/separation = 4 +alignment = 1 + +[node name="AnnounceTitle" type="Label" parent="AnnounceContainer" unique_id=1768593559] +unique_name_in_owner = true +layout_mode = 2 +text = "NEW_MUTATION" +label_settings = ExtResource("3_5hs4t") +horizontal_alignment = 1 + +[node name="AnnounceText" type="Label" parent="AnnounceContainer" unique_id=768724763] +unique_name_in_owner = true +layout_mode = 2 +text = "Ancien" +label_settings = SubResource("LabelSettings_u8fe7") +horizontal_alignment = 1 + +[node name="ObjectVisualiser" type="TextureRect" parent="AnnounceContainer" unique_id=1180983374] +unique_name_in_owner = true +layout_mode = 2 +size_flags_horizontal = 4 +mouse_filter = 0 +texture = SubResource("ViewportTexture_smt8b") +stretch_mode = 5 +script = ExtResource("5_qu1xy") +info = SubResource("Resource_kgj7d") + +[node name="MutationIconTextureRect" type="TextureRect" parent="AnnounceContainer/ObjectVisualiser" unique_id=312214951] +unique_name_in_owner = true +layout_mode = 1 +anchors_preset = 8 +anchor_left = 0.5 +anchor_top = 0.5 +anchor_right = 0.5 +anchor_bottom = 0.5 +offset_left = -20.0 +offset_top = -20.0 +offset_right = 20.0 +offset_bottom = 20.0 +grow_horizontal = 2 +grow_vertical = 2 +texture = ExtResource("6_n403s") + +[node name="SubViewport" type="SubViewport" parent="AnnounceContainer/ObjectVisualiser" unique_id=1795775056] +own_world_3d = true +transparent_bg = true +size = Vector2i(300, 300) + +[node name="AnnouceObject" type="Node3D" parent="AnnounceContainer/ObjectVisualiser/SubViewport" unique_id=1527573801] +unique_name_in_owner = true +transform = Transform3D(0.9998366, 0, 0, 0, 0.9995686, 0, 0, 0, 0.9996744, 0, 0, 0) + +[node name="cristal" parent="AnnounceContainer/ObjectVisualiser/SubViewport/AnnouceObject" unique_id=1362490576 instance=ExtResource("12_wy2oe")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -1, 0) + +[node name="Camera3D" type="Camera3D" parent="AnnounceContainer/ObjectVisualiser/SubViewport" unique_id=173755338] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 10) +keep_aspect = 0 +current = true +fov = 20.0 + +[node name="WorldEnvironment" type="WorldEnvironment" parent="AnnounceContainer/ObjectVisualiser/SubViewport" unique_id=1135825303] +environment = ExtResource("13_kyl1n") + +[node name="OkButton" type="Button" parent="AnnounceContainer" unique_id=249785792] +unique_name_in_owner = true +layout_mode = 2 +size_flags_horizontal = 4 +theme = ExtResource("14_d2gpy") +text = "OK" +icon = ExtResource("15_hu5cq") + +[node name="AnimationPlayer" type="AnimationPlayer" parent="." unique_id=1913258839] +unique_name_in_owner = true +root_node = NodePath("../..") +libraries/ = SubResource("AnimationLibrary_1aa3a") diff --git a/entities/interactable_3d/cristal/scripts/cristal.gd b/entities/interactable_3d/cristal/scripts/cristal.gd new file mode 100644 index 0000000..3c7deec --- /dev/null +++ b/entities/interactable_3d/cristal/scripts/cristal.gd @@ -0,0 +1,45 @@ +extends Interactable3D + +const MAX_BREAK_LEVEL = 2 + +signal broken + +@export var break_level = 0 + +func _ready(): + update_model() + +func click(): + if interactable: + clicked.emit() + %BreackAudioPlayer.playing = true + %BreakParticles.emitting = true + + break_level += 1 + if break_level == MAX_BREAK_LEVEL: + broken.emit() + interactable = false + unlock_mutation() + + update_model() + + +func update_model(): + if is_node_ready(): + %CristalModel.visible = break_level == 0 + %CristalModelCrack1.visible = break_level == 1 + %CristalModelCrack2.visible = break_level > 1 + + if break_level > 1: + %CristalModelCrack2.find_children("AnimationPlayer")[0].play("Break") + +func unlock_mutation(): + var progression = GameInfo.game_data.progression_data + + if progression.mutations_unlocked < len(progression.get_all_mutations()): + var new_mutation : PlantMutation = progression.get_all_mutations()[progression.mutations_unlocked] + progression.mutations_unlocked += 1 + + get_tree().create_timer(1.).timeout.connect( + func (): %MutationAnnounce.announce_mutation = new_mutation + ); diff --git a/entities/interactable_3d/cristal/scripts/cristal.gd.uid b/entities/interactable_3d/cristal/scripts/cristal.gd.uid new file mode 100644 index 0000000..5f01a3f --- /dev/null +++ b/entities/interactable_3d/cristal/scripts/cristal.gd.uid @@ -0,0 +1 @@ +uid://dwn3g8c5sa0a2 diff --git a/entities/interactable_3d/cristal/scripts/mutation_announce.gd b/entities/interactable_3d/cristal/scripts/mutation_announce.gd new file mode 100644 index 0000000..c606241 --- /dev/null +++ b/entities/interactable_3d/cristal/scripts/mutation_announce.gd @@ -0,0 +1,80 @@ +@tool +extends CanvasLayer +class_name MutationAnnounce + +const DEFAULT_OBJECT_ACCELERATION = Vector2(3,0) + +@export var announce_mutation : PlantMutation = null : set = set_announce_mutation + +@export_tool_button("Update", "Callable") var update_action = set_announce_mutation + +var announce_objects : Array[AnnouceObject] = [] + +var object_acceleration := Vector2(0,0) + +var rotating := false + +var prev_mouse_pos : Vector2 +var next_mouse_pos : Vector2 + +const YELLOW_COLOR = Color("e29f32") +const RED_COLOR = Color("f20058") + +func _ready(): + set_announce_mutation() + %OkButton.button_down.connect(_on_ok_button_down) + hide() + +func _process(delta): + update_rotation(delta) + +func update_rotation(delta): + if visible: + next_mouse_pos = get_viewport().get_mouse_position() + if Input.is_action_just_pressed("action"): + rotating = true + prev_mouse_pos = get_viewport().get_mouse_position() + if Input.is_action_just_released("action"): + rotating = false + object_acceleration = Vector2( + float(next_mouse_pos.x - prev_mouse_pos.x), + float(next_mouse_pos.y - prev_mouse_pos.y) + ) + + var object_rotation = object_acceleration + + if rotating: + object_rotation = Vector2( + float(next_mouse_pos.x - prev_mouse_pos.x), + float(next_mouse_pos.y - prev_mouse_pos.y) + ) + prev_mouse_pos = next_mouse_pos + else : + object_acceleration = object_acceleration.lerp(DEFAULT_OBJECT_ACCELERATION, 0.1) + + %AnnouceObject.rotate(Vector3.UP, object_rotation.x * delta) + %AnnouceObject.rotate(Vector3.RIGHT, object_rotation.y * delta) + + +func set_announce_mutation(mutation := announce_mutation): + + if is_node_ready() and mutation: + + %AnnounceTitle.text = "NEW_MUTATION" + %AnnounceText.text = mutation.get_mutation_name() + %MutationIconTextureRect.texture = mutation.get_icon() + %ObjectVisualiser.info = mutation.card_info() + + if not visible: + %AnimationPlayer.play("appear") + Input.mouse_mode = Input.MOUSE_MODE_VISIBLE + AudioManager.play_sfx("Reveal") + elif mutation == null and visible: + %AnimationPlayer.play_backwards("appear") + + if not Engine.is_editor_hint(): + Input.mouse_mode = Input.MOUSE_MODE_CAPTURED + announce_mutation = mutation + +func _on_ok_button_down(): + announce_mutation = null diff --git a/entities/interactable_3d/cristal/scripts/mutation_announce.gd.uid b/entities/interactable_3d/cristal/scripts/mutation_announce.gd.uid new file mode 100644 index 0000000..224389d --- /dev/null +++ b/entities/interactable_3d/cristal/scripts/mutation_announce.gd.uid @@ -0,0 +1 @@ +uid://c0tyivmiouctw diff --git a/entities/plants/scripts/plant.gd b/entities/plants/scripts/plant.gd index 45459d1..dea4794 100644 --- a/entities/plants/scripts/plant.gd +++ b/entities/plants/scripts/plant.gd @@ -109,7 +109,7 @@ func calculate_plant_score( return data.get_score(with_state) func harvest(): - for i in range(data.get_random_seed_income()): + for i in range(data.get_seed_number()): produce_seed() if data.get_state() == PlantData.State.MATURE: @@ -136,7 +136,7 @@ func mature(): func die(): for m in data.mutations: m._start_dead_effect(self) - for i in range(data.get_random_seed_income()): + for i in range(data.get_seed_number()): produce_seed() disappear() @@ -200,10 +200,7 @@ func card_info() -> CardInfo: LIFETIME_ICON ), CardStatInfo.new( - "%d-%d" % [ - data.get_seed_number(PlantData.State.MATURE) - data.get_seed_random_loose(), - data.get_seed_number(PlantData.State.MATURE) - ], + str(data.get_seed_number()), SEED_ICON ), ]) diff --git a/entities/plants/scripts/plant_data.gd b/entities/plants/scripts/plant_data.gd index 8fca210..621bc74 100644 --- a/entities/plants/scripts/plant_data.gd +++ b/entities/plants/scripts/plant_data.gd @@ -116,11 +116,11 @@ func get_seed_random_loose(): func get_influence_radius(): return get_plant_info().get_influence_radius() -func get_random_seed_income(): - return max( - get_seed_number() - randi_range(0, get_seed_random_loose()), - 0 - ) +# func get_random_seed_income(): +# return max( +# get_seed_number() - randi_range(0, get_seed_random_loose()), +# 0 +# ) func get_lifetime_buff() -> int: var buff = 0 diff --git a/entities/plants/scripts/plant_mutation.gd b/entities/plants/scripts/plant_mutation.gd index ff17f7e..9137ad9 100644 --- a/entities/plants/scripts/plant_mutation.gd +++ b/entities/plants/scripts/plant_mutation.gd @@ -74,6 +74,23 @@ func get_level_for_rarity(rarity: int) -> int: func get_rarity() -> int: return get_base_rarity() + level - 1 +func card_info() -> CardInfo: + var info = CardInfo.new( + get_mutation_name(), + tr("MUTATION") + ) + info.important_stat_icon = get_icon() + + var desc_section := CardSectionInfo.new( + tr("DESCRIPTION"), + get_mutation_description(), + ) + desc_section.title_icon = InspectableEntity.DESC_ICON + + info.sections.append(desc_section) + + return info + func card_section() -> CardSectionInfo: var section = CardSectionInfo.new( get_mutation_name() + (" %d" % level if level > 1 else ""), diff --git a/entities/plants/scripts/plant_mutation/ancient_mutation.gd b/entities/plants/scripts/plant_mutation/ancient_mutation.gd index 4ae3a66..2dfb96a 100644 --- a/entities/plants/scripts/plant_mutation/ancient_mutation.gd +++ b/entities/plants/scripts/plant_mutation/ancient_mutation.gd @@ -1,3 +1,4 @@ +@tool extends PlantMutation class_name AncientMutation diff --git a/entities/player/inventory/scripts/items/seed.gd b/entities/player/inventory/scripts/items/seed.gd index 042befd..a0888a8 100644 --- a/entities/player/inventory/scripts/items/seed.gd +++ b/entities/player/inventory/scripts/items/seed.gd @@ -41,7 +41,7 @@ static func generate_from_parent(plant_data : PlantData) -> Seed: static func generate_random(rarity := 0) -> Seed: var new_seed = Seed.new( Random.generate_random_word(), - [generate_first_mutation(rarity)] + generate_first_mutations(rarity), ) return new_seed @@ -138,7 +138,10 @@ func get_particles() -> Array[EffectParticles.Parameters]: return param -static func generate_first_mutation(rarity := 0) -> PlantMutation: +static func generate_first_mutations(rarity := 0) -> Array[PlantMutation]: + + if rarity < 0: + return [] var possible_mutation : PlantMutation = GameInfo.game_data.progression_data.available_mutations.filter( func (m : PlantMutation): return m.get_base_rarity() <= rarity @@ -148,7 +151,7 @@ static func generate_first_mutation(rarity := 0) -> PlantMutation: possible_mutation.level += level_to_add - return possible_mutation + return [possible_mutation] static func mutate_mutations(mutations : Array[PlantMutation]) -> Array[PlantMutation]: @@ -158,7 +161,8 @@ static func mutate_mutations(mutations : Array[PlantMutation]) -> Array[PlantMut len(mutations) < GameInfo.game_data.current_run.plant_info.get_mutation_max_number() ): mutation_possibility.append(AddMutation.new()) - elif len(mutations) > 0: + + if len(mutations) > 0: mutation_possibility.append(UpgradeMutation.new()) var chosen_mutation_possibility = mutation_possibility.pick_random() diff --git a/entities/player_3d/player_3D.tscn b/entities/player_3d/player_3D.tscn index b24331b..209d64d 100644 --- a/entities/player_3d/player_3D.tscn +++ b/entities/player_3d/player_3D.tscn @@ -64,7 +64,8 @@ transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.253273, 0) shape = SubResource("CapsuleShape3D_eodxe") [node name="OmniLight3D" type="OmniLight3D" parent="." unique_id=1818490710] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -2.7901894e-08, -0.25222805, 0.6383209) +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -1.0989037e-09, -0.25222805, 0.025139987) +shadow_enabled = true [node name="CanvasLayer" type="CanvasLayer" parent="." unique_id=1210282091] diff --git a/export_presets.cfg b/export_presets.cfg index 5ba12f1..eeef873 100644 --- a/export_presets.cfg +++ b/export_presets.cfg @@ -1,55 +1,5 @@ [preset.0] -name="Web" -platform="Web" -runnable=true -dedicated_server=false -custom_features="" -export_filter="all_resources" -include_filter="" -exclude_filter="" -export_path=".export/web/index.html" -patches=PackedStringArray() -patch_delta_encoding=false -patch_delta_compression_level_zstd=19 -patch_delta_min_reduction=0.1 -patch_delta_include_filters="*" -patch_delta_exclude_filters="" -encryption_include_filters="" -encryption_exclude_filters="" -seed=0 -encrypt_pck=false -encrypt_directory=false -script_export_mode=2 - -[preset.0.options] - -custom_template/debug="" -custom_template/release="" -variant/extensions_support=false -variant/thread_support=false -vram_texture_compression/for_desktop=true -vram_texture_compression/for_mobile=false -html/export_icon=true -html/custom_html_shell="" -html/head_include="" -html/canvas_resize_policy=2 -html/focus_canvas_on_start=true -html/experimental_virtual_keyboard=false -progressive_web_app/enabled=false -progressive_web_app/ensure_cross_origin_isolation_headers=true -progressive_web_app/offline_page="" -progressive_web_app/display=1 -progressive_web_app/orientation=0 -progressive_web_app/icon_144x144="" -progressive_web_app/icon_180x180="" -progressive_web_app/icon_512x512="" -progressive_web_app/background_color=Color(0, 0, 0, 1) -threads/emscripten_pool_size=8 -threads/godot_pool_size=4 - -[preset.1] - name="Windows Desktop" platform="Windows Desktop" runnable=true @@ -72,7 +22,7 @@ encrypt_pck=false encrypt_directory=false script_export_mode=2 -[preset.1.options] +[preset.0.options] custom_template/debug="" custom_template/release="" @@ -119,3 +69,50 @@ Unregister-ScheduledTask -TaskName godot_remote_debug -Confirm:$false -ErrorActi ssh_remote_deploy/cleanup_script="Stop-ScheduledTask -TaskName godot_remote_debug -ErrorAction:SilentlyContinue Unregister-ScheduledTask -TaskName godot_remote_debug -Confirm:$false -ErrorAction:SilentlyContinue Remove-Item -Recurse -Force '{temp_dir}'" + +[preset.1] + +name="Linux" +platform="Linux" +runnable=true +dedicated_server=false +custom_features="" +export_filter="all_resources" +include_filter="" +exclude_filter="" +export_path=".export/steam/content_builder/content/linux/Seeding The Wasteland.x86_64" +patches=PackedStringArray() +patch_delta_encoding=false +patch_delta_compression_level_zstd=19 +patch_delta_min_reduction=0.1 +patch_delta_include_filters="*" +patch_delta_exclude_filters="" +encryption_include_filters="" +encryption_exclude_filters="" +seed=0 +encrypt_pck=false +encrypt_directory=false +script_export_mode=2 + +[preset.1.options] + +custom_template/debug="" +custom_template/release="" +debug/export_console_wrapper=1 +binary_format/embed_pck=false +texture_format/s3tc_bptc=true +texture_format/etc2_astc=false +shader_baker/enabled=false +binary_format/architecture="x86_64" +ssh_remote_deploy/enabled=false +ssh_remote_deploy/host="user@host_ip" +ssh_remote_deploy/port="22" +ssh_remote_deploy/extra_args_ssh="" +ssh_remote_deploy/extra_args_scp="" +ssh_remote_deploy/run_script="#!/usr/bin/env bash +export DISPLAY=:0 +unzip -o -q \"{temp_dir}/{archive_name}\" -d \"{temp_dir}\" +\"{temp_dir}/{exe_name}\" {cmd_args}" +ssh_remote_deploy/cleanup_script="#!/usr/bin/env bash +pkill -x -f \"{temp_dir}/{exe_name} {cmd_args}\" +rm -rf \"{temp_dir}\"" diff --git a/gui/game/announce/announce.tscn b/gui/game/announce/announce.tscn index 60de07a..9305ca2 100644 --- a/gui/game/announce/announce.tscn +++ b/gui/game/announce/announce.tscn @@ -248,7 +248,7 @@ size = Vector2i(300, 300) [node name="AnnouceObject" type="Node3D" parent="AnnounceContainer/ObjectVisualiser/SubViewport" unique_id=986671004] unique_name_in_owner = true -transform = Transform3D(-0.4322992, 0.01924802, 0.90143085, -0.8508927, 0.32199714, -0.4149924, -0.29827252, -0.94641316, -0.1228672, 0, 0, 0) +transform = Transform3D(0.5251642, 0.51167643, -0.6798119, -0.8508927, 0.32199714, -0.4149924, 0.0065870024, 0.7963845, 0.6045711, 0, 0, 0) [node name="Camera3D" type="Camera3D" parent="AnnounceContainer/ObjectVisualiser/SubViewport" unique_id=1788331074] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1) diff --git a/gui/game/game_gui.tscn b/gui/game/game_gui.tscn index ccfb347..cc745e1 100644 --- a/gui/game/game_gui.tscn +++ b/gui/game/game_gui.tscn @@ -155,11 +155,11 @@ theme_override_fonts/normal_font = ExtResource("6_2wykm") theme_override_fonts/bold_font = ExtResource("6_2wykm") theme_override_fonts/bold_italics_font = ExtResource("6_2wykm") theme_override_fonts/italics_font = ExtResource("6_2wykm") -theme_override_font_sizes/normal_font_size = 30 -theme_override_font_sizes/bold_font_size = 30 -theme_override_font_sizes/bold_italics_font_size = 30 -theme_override_font_sizes/italics_font_size = 30 -theme_override_font_sizes/mono_font_size = 30 +theme_override_font_sizes/normal_font_size = 40 +theme_override_font_sizes/bold_font_size = 40 +theme_override_font_sizes/bold_italics_font_size = 40 +theme_override_font_sizes/italics_font_size = 40 +theme_override_font_sizes/mono_font_size = 40 bbcode_enabled = true text = "Action en cours Action en cours Action en cours Action en cours Action en cours " fit_content = true diff --git a/gui/game/tutorial/scripts/tutorial.gd b/gui/game/tutorial/scripts/tutorial.gd index e6cb1c4..da5bbb4 100644 --- a/gui/game/tutorial/scripts/tutorial.gd +++ b/gui/game/tutorial/scripts/tutorial.gd @@ -60,13 +60,6 @@ var success = false func(i:Item): return i is Seed ) != -1) ), - Step.new( - "DROP_SEED_WITH_KEY", - (func (): - return ( - Input.is_action_pressed("drop")) - ) - ), Step.new( "PLANT_SEED_IN_FERTILE_ZONE", (func (): @@ -89,13 +82,30 @@ var success = false if e is Plant and e.harvested: return true return false) - ) + ), + Step.new( + "TAKE_HARVESTED_SEEDS", + (func (): + for s in player.data.inventory.seeds: + if s is Seed and len(s.plant_mutations) > 0: + display_mutations_tutorial(s.card_info()) + return true + return false), + ), + Step.new( + "DROP_SEED_WITH_KEY", + (func (): + return ( + Input.is_action_pressed("drop")) + ) + ), ] func _ready(): setup_gui() show() %PlantInfoTutorial.hide() + %MutationTutorial.hide() func setup_gui(): for s in %Steps.get_children(): @@ -136,19 +146,36 @@ func finish_tutorial(): success = true func display_plant_info_tutorial(with_card_info : CardInfo): - %PlantCard.info = with_card_info + %PlantInfoCard.info = with_card_info AudioManager.play_sfx("Reveal") - %PlantCard.update() + %PlantInfoCard.update() %PlantInfoTutorialAnimationPlayer.play("appear") Pointer.action_disabled = true -func _on_ok_button_button_down(): +func display_mutations_tutorial(with_card_info : CardInfo): + %MutationCard.info = with_card_info + AudioManager.play_sfx("Reveal") + %MutationCard.update() + %MutationTutorialAnimationPlayer.play("appear") + Pointer.action_disabled = true + + +func _on_plant_info_ok_button_button_down(): %PlantInfoTutorialAnimationPlayer.play_backwards("appear") get_tree().create_timer(0.2).timeout.connect( # Put a delay to not interfere with the ok button click func(): Pointer.action_disabled = false ) + +func _on_mutation_ok_button_button_down(): + %MutationTutorialAnimationPlayer.play_backwards("appear") + get_tree().create_timer(0.2).timeout.connect( # Put a delay to not interfere with the ok button click + func(): + Pointer.action_disabled = false + ) + + class Step: var text : String : get = get_text diff --git a/gui/game/tutorial/tutorial.tscn b/gui/game/tutorial/tutorial.tscn index 9ddc284..b4c014c 100644 --- a/gui/game/tutorial/tutorial.tscn +++ b/gui/game/tutorial/tutorial.tscn @@ -305,7 +305,7 @@ layout_mode = 2 theme_override_constants/separation = 30 theme_override_styles/separator = SubResource("StyleBoxEmpty_ebkn5") -[node name="PlantCard" parent="PlantInfoTutorial/MarginContainer/GridContainer/VBoxContainer3" unique_id=1085885349 instance=ExtResource("6_vg3tr")] +[node name="PlantInfoCard" parent="PlantInfoTutorial/MarginContainer/GridContainer/VBoxContainer3" unique_id=1085885349 instance=ExtResource("6_vg3tr")] unique_name_in_owner = true custom_minimum_size = Vector2(350, 0) layout_mode = 2 @@ -342,6 +342,7 @@ horizontal_alignment = 2 vertical_alignment = 1 [node name="HBoxContainer2" type="HBoxContainer" parent="PlantInfoTutorial/MarginContainer/GridContainer/VBoxContainer2" unique_id=2062134463] +visible = false layout_mode = 2 alignment = 1 @@ -361,7 +362,7 @@ scroll_active = false horizontal_alignment = 2 vertical_alignment = 1 -[node name="OkButton" type="Button" parent="PlantInfoTutorial/MarginContainer" unique_id=1684351093] +[node name="PlantInfoOkButton" type="Button" parent="PlantInfoTutorial/MarginContainer" unique_id=1684351093] layout_mode = 2 size_flags_horizontal = 4 theme = ExtResource("18_6k6bq") @@ -371,4 +372,103 @@ text = "OK" unique_name_in_owner = true libraries/ = SubResource("AnimationLibrary_ebkn5") -[connection signal="button_down" from="PlantInfoTutorial/MarginContainer/OkButton" to="." method="_on_ok_button_button_down"] +[node name="MutationTutorial" type="Control" parent="." unique_id=722588851] +unique_name_in_owner = true +layout_mode = 3 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 + +[node name="Background" type="ColorRect" parent="MutationTutorial" unique_id=250614963] +layout_mode = 1 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +color = Color(0.037180007, 0.020800002, 0.13, 1) + +[node name="MarginContainer" type="VBoxContainer" parent="MutationTutorial" unique_id=1821562698] +layout_mode = 1 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +theme_override_constants/separation = 12 +alignment = 1 + +[node name="Title" type="Label" parent="MutationTutorial/MarginContainer" unique_id=1928457691] +layout_mode = 2 +text = "MUTATIONS" +label_settings = ExtResource("6_hgus1") +horizontal_alignment = 1 + +[node name="Subtitle" type="Label" parent="MutationTutorial/MarginContainer" unique_id=1467489572] +layout_mode = 2 +text = "SEEDS_HAVE_A_CHANCE_TO_GAIN_MUTATIONS" +horizontal_alignment = 1 + +[node name="GridContainer" type="GridContainer" parent="MutationTutorial/MarginContainer" unique_id=386984353] +layout_mode = 2 +size_flags_horizontal = 4 +size_flags_vertical = 4 +columns = 3 + +[node name="VBoxContainer3" type="VBoxContainer" parent="MutationTutorial/MarginContainer/GridContainer" unique_id=2005513108] +layout_mode = 2 + +[node name="HSeparator" type="HSeparator" parent="MutationTutorial/MarginContainer/GridContainer/VBoxContainer3" unique_id=593977172] +layout_mode = 2 +theme_override_constants/separation = 30 +theme_override_styles/separator = SubResource("StyleBoxEmpty_ebkn5") + +[node name="MutationCard" parent="MutationTutorial/MarginContainer/GridContainer/VBoxContainer3" unique_id=1165095240 instance=ExtResource("6_vg3tr")] +unique_name_in_owner = true +custom_minimum_size = Vector2(350, 0) +layout_mode = 2 +info = SubResource("Resource_puixe") + +[node name="VBoxContainer2" type="VBoxContainer" parent="MutationTutorial/MarginContainer/GridContainer" unique_id=494292951] +layout_mode = 2 +theme_override_constants/separation = 8 + +[node name="HSeparator" type="HSeparator" parent="MutationTutorial/MarginContainer/GridContainer/VBoxContainer2" unique_id=331005698] +layout_mode = 2 +theme_override_constants/separation = 120 +theme_override_styles/separator = SubResource("StyleBoxEmpty_ebkn5") + +[node name="HBoxContainer2" type="HBoxContainer" parent="MutationTutorial/MarginContainer/GridContainer/VBoxContainer2" unique_id=781597357] +layout_mode = 2 +alignment = 1 + +[node name="TextureRect" type="TextureRect" parent="MutationTutorial/MarginContainer/GridContainer/VBoxContainer2/HBoxContainer2" unique_id=281613573] +layout_mode = 2 +size_flags_vertical = 4 +texture = ExtResource("17_58nqq") +stretch_mode = 5 + +[node name="Label2" type="RichTextLabel" parent="MutationTutorial/MarginContainer/GridContainer/VBoxContainer2/HBoxContainer2" unique_id=1347221574] +custom_minimum_size = Vector2(300, 0) +layout_mode = 2 +bbcode_enabled = true +text = "PLANT_MUTATION_TEXT" +fit_content = true +scroll_active = false +horizontal_alignment = 2 +vertical_alignment = 1 + +[node name="MutationOkButton" type="Button" parent="MutationTutorial/MarginContainer" unique_id=1316064682] +layout_mode = 2 +size_flags_horizontal = 4 +theme = ExtResource("18_6k6bq") +text = "OK" + +[node name="MutationTutorialAnimationPlayer" type="AnimationPlayer" parent="MutationTutorial" unique_id=127058676] +unique_name_in_owner = true +libraries/ = SubResource("AnimationLibrary_ebkn5") + +[connection signal="button_down" from="PlantInfoTutorial/MarginContainer/PlantInfoOkButton" to="." method="_on_plant_info_ok_button_button_down"] +[connection signal="button_down" from="MutationTutorial/MarginContainer/MutationOkButton" to="." method="_on_mutation_ok_button_button_down"] diff --git a/project.godot b/project.godot index f784f3f..ae74d01 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.2" +config/version="beta-1.3" run/main_scene="uid://c5bruelvqbm1k" config/features=PackedStringArray("4.6", "Forward Plus") config/icon="uid://df0y0s666ui4h" @@ -45,6 +45,7 @@ directories/dch_directory={ "mysterious_demeter": "res://dialogs/characters/mysterious_demeter.dch" } directories/dtl_directory={ +"cave": "res://dialogs/timelines/astra/cave.dtl", "mercury_arrival": "res://dialogs/timelines/astra/mercury_arrival.dtl", "mercury_departure": "res://dialogs/timelines/mercury/mercury_departure.dtl", "tutorial/demeter_intro": "res://dialogs/timelines/tutorial/demeter_intro.dtl", @@ -110,7 +111,7 @@ variables={ "whoareyou": "false", "whynorth": "false" } -translation/id_counter=228 +translation/id_counter=236 translation/locales=[] history/visited_event_history_enabled=true audio/type_sound_bus="Sfx" @@ -246,7 +247,7 @@ zoom_out={ [internationalization] locale/translation_remaps={} -locale/translations=PackedStringArray("res://translation/game/gui.en.translation", "res://translation/game/gui.fr.translation", "res://translation/dialogs/dialogic_character_translations.en.translation", "res://translation/dialogs/dialogic_demeter_astra_failed_translation.en.translation", "res://translation/dialogs/dialogic_demeter_intro_translation.en.translation", "res://translation/dialogs/dialogic_demeter_outro_translation.en.translation", "res://translation/dialogs/dialogic_demeter_post_tutorial_translation.en.translation", "res://translation/dialogs/dialogic_demeter_ship_presentation_translation.en.translation", "res://translation/dialogs/dialogic_wake_up_translation.en.translation", "res://translation/dialogs/dialogic_wake_up_translation.fr.translation", "res://translation/dialogs/dialogic_demeter_intro_translation.fr.translation", "res://translation/dialogs/dialogic_demeter_ship_presentation_translation.fr.translation", "res://translation/dialogs/dialogic_demeter_post_tutorial_translation.fr.translation", "res://translation/dialogs/dialogic_character_translations.fr.translation", "res://translation/dialogs/dialogic_demeter_astra_failed_translation.fr.translation", "res://translation/dialogs/dialogic_demeter_outro_translation.fr.translation", "res://translation/dialogs/dialogic_demeter_ship_failed_translation.en.translation", "res://translation/dialogs/dialogic_demeter_ship_failed_translation.fr.translation", "res://translation/dialogs/dialogic_mercury_arrival_translation.en.translation", "res://translation/dialogs/dialogic_mercury_arrival_translation.fr.translation", "res://translation/dialogs/dialogic_mercury_departure_translation.en.translation", "res://translation/dialogs/dialogic_mercury_departure_translation.fr.translation", "res://translation/dialogs/dialogic_venus_arrival_translation.en.translation", "res://translation/dialogs/dialogic_venus_arrival_translation.fr.translation", "res://translation/dialogs/dialogic_venus_departure_translation.en.translation", "res://translation/dialogs/dialogic_venus_departure_translation.fr.translation") +locale/translations=PackedStringArray("res://translation/game/gui.en.translation", "res://translation/game/gui.fr.translation", "res://translation/dialogs/dialogic_character_translations.en.translation", "res://translation/dialogs/dialogic_demeter_astra_failed_translation.en.translation", "res://translation/dialogs/dialogic_demeter_intro_translation.en.translation", "res://translation/dialogs/dialogic_demeter_outro_translation.en.translation", "res://translation/dialogs/dialogic_demeter_post_tutorial_translation.en.translation", "res://translation/dialogs/dialogic_demeter_ship_presentation_translation.en.translation", "res://translation/dialogs/dialogic_wake_up_translation.en.translation", "res://translation/dialogs/dialogic_wake_up_translation.fr.translation", "res://translation/dialogs/dialogic_demeter_intro_translation.fr.translation", "res://translation/dialogs/dialogic_demeter_ship_presentation_translation.fr.translation", "res://translation/dialogs/dialogic_demeter_post_tutorial_translation.fr.translation", "res://translation/dialogs/dialogic_character_translations.fr.translation", "res://translation/dialogs/dialogic_demeter_astra_failed_translation.fr.translation", "res://translation/dialogs/dialogic_demeter_outro_translation.fr.translation", "res://translation/dialogs/dialogic_demeter_ship_failed_translation.en.translation", "res://translation/dialogs/dialogic_demeter_ship_failed_translation.fr.translation", "res://translation/dialogs/dialogic_mercury_arrival_translation.en.translation", "res://translation/dialogs/dialogic_mercury_arrival_translation.fr.translation", "res://translation/dialogs/dialogic_mercury_departure_translation.en.translation", "res://translation/dialogs/dialogic_mercury_departure_translation.fr.translation", "res://translation/dialogs/dialogic_venus_arrival_translation.en.translation", "res://translation/dialogs/dialogic_venus_arrival_translation.fr.translation", "res://translation/dialogs/dialogic_venus_departure_translation.en.translation", "res://translation/dialogs/dialogic_venus_departure_translation.fr.translation", "res://translation/dialogs/dialogic_cave_translation.en.translation", "res://translation/dialogs/dialogic_cave_translation.fr.translation") locale/test="fr" [rendering] diff --git a/stages/3d_scenes/borea_base/assets/3d/borea_base.blend b/stages/3d_scenes/borea_base/assets/3d/borea_base.blend index 22871ac..206a0f4 100644 Binary files a/stages/3d_scenes/borea_base/assets/3d/borea_base.blend and b/stages/3d_scenes/borea_base/assets/3d/borea_base.blend differ diff --git a/stages/3d_scenes/borea_base/assets/3d/borea_base.blend.import b/stages/3d_scenes/borea_base/assets/3d/borea_base.blend.import index 10c093c..f7540ed 100644 --- a/stages/3d_scenes/borea_base/assets/3d/borea_base.blend.import +++ b/stages/3d_scenes/borea_base/assets/3d/borea_base.blend.import @@ -3,7 +3,7 @@ importer="scene" importer_version=1 type="PackedScene" -uid="uid://bqo4uknlbm8r1" +uid="uid://b83v0uxiukmbb" path="res://.godot/imported/borea_base.blend-16b097cf97b3f00cfa1bc1f2c346e23b.scn" [deps] @@ -39,10 +39,10 @@ materials/extract_format=0 materials/extract_path="" _subresources={ "materials": { -"Glass": { +"Default3D": { "use_external/enabled": true, -"use_external/fallback_path": "res://common/assets/materials/glass_3d.tres", -"use_external/path": "uid://b5vlcdry8vtgi" +"use_external/fallback_path": "res://common/assets/materials/default_3d.tres", +"use_external/path": "uid://dvvi1k5c5iowc" }, "Material": { "use_external/enabled": true, diff --git a/stages/3d_scenes/borea_base/assets/3d/borea_base.blend1 b/stages/3d_scenes/borea_base/assets/3d/borea_base.blend1 index 9d242b4..e0eceb0 100644 Binary files a/stages/3d_scenes/borea_base/assets/3d/borea_base.blend1 and b/stages/3d_scenes/borea_base/assets/3d/borea_base.blend1 differ diff --git a/stages/3d_scenes/borea_base/assets/3d/borea_base_2.blend1 b/stages/3d_scenes/borea_base/assets/3d/borea_base_2.blend1 new file mode 100644 index 0000000..9764ff0 Binary files /dev/null and b/stages/3d_scenes/borea_base/assets/3d/borea_base_2.blend1 differ diff --git a/stages/3d_scenes/borea_base/borea_base.tscn b/stages/3d_scenes/borea_base/borea_base.tscn index 9886386..887dcce 100644 --- a/stages/3d_scenes/borea_base/borea_base.tscn +++ b/stages/3d_scenes/borea_base/borea_base.tscn @@ -1,168 +1,12 @@ -[gd_scene format=3 uid="uid://b6kl2hc85a0mh"] +[gd_scene format=3 uid="uid://cqg1avn1g0f1x"] -[ext_resource type="Script" uid="uid://btc447j47jbx0" path="res://stages/3d_scenes/borea_base/scripts/borea_base.gd" id="1_fevne"] -[ext_resource type="Shader" uid="uid://bv2rghn44mrrf" path="res://stages/title_screen/resources/shaders/stars.gdshader" id="1_xd71i"] -[ext_resource type="PackedScene" uid="uid://da7a74dg30q1l" path="res://entities/player_3d/player_3D.tscn" id="3_c8vcx"] -[ext_resource type="PackedScene" uid="uid://csx7d5khjd6y5" path="res://entities/interactable_3d/phone/phone.tscn" id="4_fevne"] -[ext_resource type="PackedScene" uid="uid://bqo4uknlbm8r1" path="res://stages/3d_scenes/borea_base/assets/3d/borea_base.blend" id="4_s7tqr"] -[ext_resource type="PackedScene" uid="uid://c5a32n6rjjlnt" path="res://gui/credits/credits.tscn" id="6_c8vcx"] -[ext_resource type="Material" uid="uid://cr7bp4fhh1ipr" path="res://entities/player_3d/resources/materials/post_process_quad.tres" id="7_s7tqr"] - -[sub_resource type="Animation" id="Animation_xd71i"] -length = 0.001 -tracks/0/type = "value" -tracks/0/imported = false -tracks/0/enabled = true -tracks/0/path = NodePath("%Player3D/../Lights/LightLevel0/OmniLight3D7: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("%Player3D/../Lights/LightLevel0/OmniLight3D2: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("%Player3D/../Lights/LightLevel1/OmniLight3D10: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("%Player3D/../Lights/LightLevel1/OmniLight3D14: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("%Player3D/../Lights/LightLevel3/OmniLight3D3:visible") -tracks/4/interp = 1 -tracks/4/loop_wrap = true -tracks/4/keys = { -"times": PackedFloat32Array(0), -"transitions": PackedFloat32Array(1), -"update": 1, -"values": [true] -} - -[sub_resource type="Animation" id="Animation_fevne"] -resource_name = "blink" -length = 3.0 -loop_mode = 1 -tracks/0/type = "value" -tracks/0/imported = false -tracks/0/enabled = true -tracks/0/path = NodePath("%Player3D/../Lights/LightLevel0/OmniLight3D7:visible") -tracks/0/interp = 1 -tracks/0/loop_wrap = true -tracks/0/keys = { -"times": PackedFloat32Array(0, 0.46666667, 1.37, 1.5866667, 2.2, 2.48, 2.77), -"transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1, 1), -"update": 1, -"values": [true, false, true, false, true, false, true] -} -tracks/1/type = "value" -tracks/1/imported = false -tracks/1/enabled = true -tracks/1/path = NodePath("%Player3D/../Lights/LightLevel0/OmniLight3D2:visible") -tracks/1/interp = 1 -tracks/1/loop_wrap = true -tracks/1/keys = { -"times": PackedFloat32Array(0, 0.38, 1.2833333, 1.5, 2.2, 2.48, 2.77), -"transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1, 1), -"update": 1, -"values": [true, false, true, false, true, true, true] -} -tracks/2/type = "value" -tracks/2/imported = false -tracks/2/enabled = true -tracks/2/path = NodePath("%Player3D/../Lights/LightLevel1/OmniLight3D10:visible") -tracks/2/interp = 1 -tracks/2/loop_wrap = true -tracks/2/keys = { -"times": PackedFloat32Array(0, 0.63, 1.5333333, 1.75, 2.2, 2.48, 2.77), -"transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1, 1), -"update": 1, -"values": [true, false, true, false, true, false, true] -} -tracks/3/type = "value" -tracks/3/imported = false -tracks/3/enabled = true -tracks/3/path = NodePath("%Player3D/../Lights/LightLevel1/OmniLight3D14:visible") -tracks/3/interp = 1 -tracks/3/loop_wrap = true -tracks/3/keys = { -"times": PackedFloat32Array(0, 0.63, 1.5333333, 1.75, 2.2, 2.48, 2.77), -"transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1, 1), -"update": 1, -"values": [true, false, true, false, true, true, true] -} -tracks/4/type = "value" -tracks/4/imported = false -tracks/4/enabled = true -tracks/4/path = NodePath("%Player3D/../Lights/LightLevel3/OmniLight3D3:visible") -tracks/4/interp = 1 -tracks/4/loop_wrap = true -tracks/4/keys = { -"times": PackedFloat32Array(0, 0.63, 1.5333333, 1.75, 2.2, 2.48, 2.77), -"transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1, 1), -"update": 1, -"values": [true, false, true, false, true, false, true] -} - -[sub_resource type="AnimationLibrary" id="AnimationLibrary_c8vcx"] -_data = { -&"RESET": SubResource("Animation_xd71i"), -&"blink": SubResource("Animation_fevne") -} - -[sub_resource type="ShaderMaterial" id="ShaderMaterial_2ei4e"] -shader = ExtResource("1_xd71i") -shader_parameter/sky_color = Color(0.03, 0.05, 0.11, 1) -shader_parameter/star_base_color = Color(0.8, 1, 0.3, 1) -shader_parameter/star_hue_offset = 0.6 -shader_parameter/star_intensity = 0.08 -shader_parameter/layer_scale = 20.0 -shader_parameter/layer_scale_step = 10.0 -shader_parameter/layers_count = 3 - -[sub_resource type="Sky" id="Sky_xd71i"] -sky_material = SubResource("ShaderMaterial_2ei4e") +[ext_resource type="PackedScene" uid="uid://b83v0uxiukmbb" path="res://stages/3d_scenes/borea_base/assets/3d/borea_base.blend" id="1_dtguk"] +[ext_resource type="Script" uid="uid://c37uqdnr2himm" path="res://stages/3d_scenes/borea_base/scripts/borea_base.gd" id="1_xd71i"] +[ext_resource type="Texture2D" uid="uid://cww35xu1yqivp" path="res://stages/3d_scenes/cockpit_scene/assets/textures/sky.png" id="2_rsbui"] +[ext_resource type="PackedScene" uid="uid://da7a74dg30q1l" path="res://entities/player_3d/player_3D.tscn" id="3_xd71i"] [sub_resource type="Environment" id="Environment_fevne"] -background_mode = 2 -sky = SubResource("Sky_xd71i") sky_custom_fov = 61.7 -ambient_light_source = 3 -ambient_light_color = Color(1, 1, 1, 1) -ambient_light_sky_contribution = 0.85 -ambient_light_energy = 0.52 reflected_light_source = 2 tonemap_mode = 2 tonemap_exposure = 0.7 @@ -177,815 +21,99 @@ fog_enabled = true fog_mode = 1 fog_light_color = Color(0.13725491, 0.39215687, 0.6666667, 1) fog_density = 0.1831 -fog_aerial_perspective = 0.113 fog_sky_affect = 0.0 volumetric_fog_sky_affect = 0.0 adjustment_enabled = true adjustment_saturation = 1.3 -[sub_resource type="BoxShape3D" id="BoxShape3D_c8vcx"] -size = Vector3(0.001, 7.6933594, 7.697876) - -[sub_resource type="Animation" id="Animation_s7tqr"] -length = 0.001 -tracks/0/type = "value" -tracks/0/imported = false -tracks/0/enabled = true -tracks/0/path = NodePath("TrailerCamera:position") -tracks/0/interp = 1 -tracks/0/loop_wrap = true -tracks/0/keys = { -"times": PackedFloat32Array(0), -"transitions": PackedFloat32Array(1), -"update": 0, -"values": [Vector3(0, 60.366375, 0)] -} - -[sub_resource type="Animation" id="Animation_2ei4e"] -resource_name = "trailer" -length = 10.0 -tracks/0/type = "value" -tracks/0/imported = false -tracks/0/enabled = true -tracks/0/path = NodePath("TrailerCamera:position") -tracks/0/interp = 1 -tracks/0/loop_wrap = true -tracks/0/keys = { -"times": PackedFloat32Array(0, 9.933333), -"transitions": PackedFloat32Array(1, 1), -"update": 0, -"values": [Vector3(0, 60.366375, 0), Vector3(0, 10, 0)] -} - -[sub_resource type="AnimationLibrary" id="AnimationLibrary_hlox4"] -_data = { -&"RESET": SubResource("Animation_s7tqr"), -&"trailer": SubResource("Animation_2ei4e") -} - -[sub_resource type="QuadMesh" id="QuadMesh_2ei4e"] -size = Vector2(2, 2) - -[node name="BoreaBase" type="Node3D" unique_id=442220603] -script = ExtResource("1_fevne") - -[node name="DirectionalLight3D" type="DirectionalLight3D" parent="." unique_id=1539431276] -transform = Transform3D(1, 0, 0, 0, 0.25881907, 0.9659258, 0, -0.9659258, 0.25881907, 30.708645, 59.967155, 32.405155) -light_color = Color(0.6660227, 0.6797195, 0.9820071, 1) -light_energy = 0.2 -shadow_enabled = true - -[node name="Lights" type="Node3D" parent="." unique_id=1071261896] - -[node name="LightLevel0" type="Node3D" parent="Lights" unique_id=1673172585] - -[node name="OmniLight3D2" type="OmniLight3D" parent="Lights/LightLevel0" unique_id=331040735] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -16.250671, -2.1126924, 23.147612) -light_color = Color(0.810676, 0.621579, 0.6067489, 1) -light_energy = 1.5 -light_size = 0.2 -shadow_enabled = true -omni_range = 11.280827 - -[node name="OmniLight3D4" type="OmniLight3D" parent="Lights/LightLevel0" unique_id=781678275] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -26.520561, -2.1126924, -9.563883) -light_color = Color(0.810676, 0.621579, 0.6067489, 1) -light_energy = 1.5 -light_size = 0.2 -shadow_enabled = true -omni_range = 11.280827 - -[node name="OmniLight3D5" type="OmniLight3D" parent="Lights/LightLevel0" unique_id=1029811291] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -18.694098, -2.1126924, -20.977478) -light_color = Color(0.810676, 0.621579, 0.6067489, 1) -light_energy = 1.5 -light_size = 0.2 -shadow_enabled = true -omni_range = 11.280827 - -[node name="OmniLight3D6" type="OmniLight3D" parent="Lights/LightLevel0" unique_id=706813333] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -4.2640495, -2.1126924, -28.070211) -light_color = Color(0.810676, 0.621579, 0.6067489, 1) -light_energy = 1.5 -light_size = 0.2 -shadow_enabled = true -omni_range = 11.280827 - -[node name="OmniLight3D7" type="OmniLight3D" parent="Lights/LightLevel0" unique_id=522933437] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 4.133095, -2.1126924, -28.070211) -light_color = Color(0.810676, 0.621579, 0.6067489, 1) -light_energy = 1.5 -light_size = 0.2 -shadow_enabled = true -omni_range = 11.280827 - -[node name="OmniLight3D10" type="OmniLight3D" parent="Lights/LightLevel0" unique_id=1811482313] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 26.797234, -2.1126924, 8.860925) -light_color = Color(0.810676, 0.621579, 0.6067489, 1) -light_energy = 1.5 -light_size = 0.2 -shadow_enabled = true -omni_range = 11.280827 - -[node name="OmniLight3D11" type="OmniLight3D" parent="Lights/LightLevel0" unique_id=617635003] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 18.40009, -2.1126924, 21.334354) -light_color = Color(0.810676, 0.621579, 0.6067489, 1) -light_energy = 1.5 -light_size = 0.2 -shadow_enabled = true -omni_range = 11.280827 - -[node name="OmniLight3D3" type="OmniLight3D" parent="Lights/LightLevel0" unique_id=918304264] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -24.523638, -2.1126924, 14.304096) -light_color = Color(0.810676, 0.621579, 0.6067489, 1) -light_energy = 1.5 -light_size = 0.2 -shadow_enabled = true -omni_range = 11.280827 - -[node name="OmniLight3D14" type="OmniLight3D" parent="Lights/LightLevel0" unique_id=1597573435] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -30.475027, -5.066031, -2.8978524) -light_color = Color(0.810676, 0.621579, 0.6067489, 1) -light_energy = 1.5 -light_size = 0.2 -shadow_enabled = true -omni_range = 11.280827 - -[node name="OmniLight3D15" type="OmniLight3D" parent="Lights/LightLevel0" unique_id=116640999] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 30.343237, -5.066031, -3.1424296) -light_color = Color(0.810676, 0.621579, 0.6067489, 1) -light_energy = 1.5 -light_size = 0.2 -shadow_enabled = true -omni_range = 11.280827 - -[node name="OmniLight3D16" type="OmniLight3D" parent="Lights/LightLevel0" unique_id=801358869] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 30.506277, -5.066031, 2.9720063) -light_color = Color(0.810676, 0.621579, 0.6067489, 1) -light_energy = 1.5 -light_size = 0.2 -shadow_enabled = true -omni_range = 11.280827 - -[node name="LightLevel1" type="Node3D" parent="Lights" unique_id=1922457496] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 8.234108, 0) - -[node name="OmniLight3D" type="OmniLight3D" parent="Lights/LightLevel1" unique_id=55476383] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -4.5544157, -2.1126924, 27.90219) -light_color = Color(0.810676, 0.621579, 0.6067489, 1) -light_energy = 1.5 -light_size = 0.2 -shadow_enabled = true -omni_range = 11.280827 - -[node name="OmniLight3D2" type="OmniLight3D" parent="Lights/LightLevel1" unique_id=92670411] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -16.250671, -2.1126924, 23.147612) -light_color = Color(0.810676, 0.621579, 0.6067489, 1) -light_energy = 1.5 -light_size = 0.2 -shadow_enabled = true -omni_range = 11.280827 - -[node name="OmniLight3D5" type="OmniLight3D" parent="Lights/LightLevel1" unique_id=636878856] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -18.694098, -2.1126924, -20.977478) -light_color = Color(0.810676, 0.621579, 0.6067489, 1) -light_energy = 1.5 -light_size = 0.2 -shadow_enabled = true -omni_range = 11.280827 - -[node name="OmniLight3D6" type="OmniLight3D" parent="Lights/LightLevel1" unique_id=1423170075] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -4.2640495, -2.1126924, -28.070211) -light_color = Color(0.810676, 0.621579, 0.6067489, 1) -light_energy = 1.5 -light_size = 0.2 -shadow_enabled = true -omni_range = 11.280827 - -[node name="OmniLight3D7" type="OmniLight3D" parent="Lights/LightLevel1" unique_id=58992978] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 4.133095, -2.1126924, -28.070211) -light_color = Color(0.810676, 0.621579, 0.6067489, 1) -light_energy = 1.5 -light_size = 0.2 -shadow_enabled = true -omni_range = 11.280827 - -[node name="OmniLight3D8" type="OmniLight3D" parent="Lights/LightLevel1" unique_id=2076353163] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 16.688046, -2.1126924, -23.17867) -light_color = Color(0.810676, 0.621579, 0.6067489, 1) -light_energy = 1.5 -light_size = 0.2 -shadow_enabled = true -omni_range = 11.280827 - -[node name="OmniLight3D9" type="OmniLight3D" parent="Lights/LightLevel1" unique_id=1322504637] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 24.514515, -2.1126924, -14.292371) -light_color = Color(0.810676, 0.621579, 0.6067489, 1) -light_energy = 1.5 -light_size = 0.2 -shadow_enabled = true -omni_range = 11.280827 - -[node name="OmniLight3D10" type="OmniLight3D" parent="Lights/LightLevel1" unique_id=69628955] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 26.797234, -2.1126924, 8.860925) -light_color = Color(0.810676, 0.621579, 0.6067489, 1) -light_energy = 1.5 -light_size = 0.2 -shadow_enabled = true -omni_range = 11.280827 - -[node name="OmniLight3D11" type="OmniLight3D" parent="Lights/LightLevel1" unique_id=861056154] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 18.40009, -2.1126924, 21.334354) -light_color = Color(0.810676, 0.621579, 0.6067489, 1) -light_energy = 1.5 -light_size = 0.2 -shadow_enabled = true -omni_range = 11.280827 - -[node name="OmniLight3D12" type="OmniLight3D" parent="Lights/LightLevel1" unique_id=918332677] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 3.4000893, -2.1126924, 27.334354) -light_color = Color(0.810676, 0.621579, 0.6067489, 1) -light_energy = 1.5 -light_size = 0.2 -shadow_enabled = true -omni_range = 11.280827 - -[node name="OmniLight3D3" type="OmniLight3D" parent="Lights/LightLevel1" unique_id=271744912] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -24.523638, -2.1126924, 14.304096) -light_color = Color(0.810676, 0.621579, 0.6067489, 1) -light_energy = 1.5 -light_size = 0.2 -shadow_enabled = true -omni_range = 11.280827 - -[node name="OmniLight3D14" type="OmniLight3D" parent="Lights/LightLevel1" unique_id=1456495033] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -30.475027, -5.066031, -2.8978524) -light_color = Color(0.810676, 0.621579, 0.6067489, 1) -light_energy = 1.5 -light_size = 0.2 -shadow_enabled = true -omni_range = 11.280827 - -[node name="OmniLight3D15" type="OmniLight3D" parent="Lights/LightLevel1" unique_id=1464495731] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 30.343237, -5.066031, -3.1424296) -light_color = Color(0.810676, 0.621579, 0.6067489, 1) -light_energy = 1.5 -light_size = 0.2 -shadow_enabled = true -omni_range = 11.280827 - -[node name="OmniLight3D16" type="OmniLight3D" parent="Lights/LightLevel1" unique_id=512747242] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 30.506277, -5.066031, 2.9720063) -light_color = Color(0.810676, 0.621579, 0.6067489, 1) -light_energy = 1.5 -light_size = 0.2 -shadow_enabled = true -omni_range = 11.280827 - -[node name="LightLevel2" type="Node3D" parent="Lights" unique_id=1658395921] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 16.305164, 0) - -[node name="OmniLight3D" type="OmniLight3D" parent="Lights/LightLevel2" unique_id=1782738053] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -4.5544157, -2.1126924, 27.90219) -light_color = Color(0.810676, 0.621579, 0.6067489, 1) -light_energy = 1.5 -light_size = 0.2 -shadow_enabled = true -omni_range = 11.280827 - -[node name="OmniLight3D2" type="OmniLight3D" parent="Lights/LightLevel2" unique_id=1044065491] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -16.250671, -2.1126924, 23.147612) -light_color = Color(0.810676, 0.621579, 0.6067489, 1) -light_energy = 1.5 -light_size = 0.2 -shadow_enabled = true -omni_range = 11.280827 - -[node name="OmniLight3D4" type="OmniLight3D" parent="Lights/LightLevel2" unique_id=1280223269] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -26.520561, -2.1126924, -9.563883) -light_color = Color(0.810676, 0.621579, 0.6067489, 1) -light_energy = 1.5 -light_size = 0.2 -shadow_enabled = true -omni_range = 11.280827 - -[node name="OmniLight3D5" type="OmniLight3D" parent="Lights/LightLevel2" unique_id=443076410] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -18.694098, -2.1126924, -20.977478) -light_color = Color(0.810676, 0.621579, 0.6067489, 1) -light_energy = 1.5 -light_size = 0.2 -shadow_enabled = true -omni_range = 11.280827 - -[node name="OmniLight3D6" type="OmniLight3D" parent="Lights/LightLevel2" unique_id=795711828] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -4.2640495, -2.1126924, -28.070211) -light_color = Color(0.810676, 0.621579, 0.6067489, 1) -light_energy = 1.5 -light_size = 0.2 -shadow_enabled = true -omni_range = 11.280827 - -[node name="OmniLight3D7" type="OmniLight3D" parent="Lights/LightLevel2" unique_id=39883193] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 4.133095, -2.1126924, -28.070211) -light_color = Color(0.810676, 0.621579, 0.6067489, 1) -light_energy = 1.5 -light_size = 0.2 -shadow_enabled = true -omni_range = 11.280827 - -[node name="OmniLight3D8" type="OmniLight3D" parent="Lights/LightLevel2" unique_id=1022700169] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 16.688046, -2.1126924, -23.17867) -light_color = Color(0.810676, 0.621579, 0.6067489, 1) -light_energy = 1.5 -light_size = 0.2 -shadow_enabled = true -omni_range = 11.280827 - -[node name="OmniLight3D9" type="OmniLight3D" parent="Lights/LightLevel2" unique_id=552912438] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 24.514515, -2.1126924, -14.292371) -light_color = Color(0.810676, 0.621579, 0.6067489, 1) -light_energy = 1.5 -light_size = 0.2 -shadow_enabled = true -omni_range = 11.280827 - -[node name="OmniLight3D10" type="OmniLight3D" parent="Lights/LightLevel2" unique_id=1298855751] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 26.797234, -2.1126924, 8.860925) -light_color = Color(0.810676, 0.621579, 0.6067489, 1) -light_energy = 1.5 -light_size = 0.2 -shadow_enabled = true -omni_range = 11.280827 - -[node name="OmniLight3D12" type="OmniLight3D" parent="Lights/LightLevel2" unique_id=111834629] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 3.4000893, -2.1126924, 27.334354) -light_color = Color(0.810676, 0.621579, 0.6067489, 1) -light_energy = 1.5 -light_size = 0.2 -shadow_enabled = true -omni_range = 11.280827 - -[node name="OmniLight3D3" type="OmniLight3D" parent="Lights/LightLevel2" unique_id=1375255226] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -24.523638, -2.1126924, 14.304096) -light_color = Color(0.810676, 0.621579, 0.6067489, 1) -light_energy = 1.5 -light_size = 0.2 -shadow_enabled = true -omni_range = 11.280827 - -[node name="OmniLight3D13" type="OmniLight3D" parent="Lights/LightLevel2" unique_id=18165508] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -30.556553, -5.066031, 2.7274294) -light_color = Color(0.810676, 0.621579, 0.6067489, 1) -light_energy = 1.5 -light_size = 0.2 -shadow_enabled = true -omni_range = 11.280827 - -[node name="OmniLight3D14" type="OmniLight3D" parent="Lights/LightLevel2" unique_id=1731050516] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -30.475027, -5.066031, -2.8978524) -light_color = Color(0.810676, 0.621579, 0.6067489, 1) -light_energy = 1.5 -light_size = 0.2 -shadow_enabled = true -omni_range = 11.280827 - -[node name="OmniLight3D15" type="OmniLight3D" parent="Lights/LightLevel2" unique_id=1704489957] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 30.343237, -5.066031, -3.1424296) -light_color = Color(0.810676, 0.621579, 0.6067489, 1) -light_energy = 1.5 -light_size = 0.2 -shadow_enabled = true -omni_range = 11.280827 - -[node name="OmniLight3D16" type="OmniLight3D" parent="Lights/LightLevel2" unique_id=1994672189] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 30.506277, -5.066031, 2.9720063) -light_color = Color(0.810676, 0.621579, 0.6067489, 1) -light_energy = 1.5 -light_size = 0.2 -shadow_enabled = true -omni_range = 11.280827 - -[node name="LightLevel3" type="Node3D" parent="Lights" unique_id=593657748] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 24.213167, 0) - -[node name="OmniLight3D" type="OmniLight3D" parent="Lights/LightLevel3" unique_id=1849026334] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -4.5544157, -2.1126924, 27.90219) -light_color = Color(0.810676, 0.621579, 0.6067489, 1) -light_energy = 1.5 -light_size = 0.2 -shadow_enabled = true -omni_range = 11.280827 - -[node name="OmniLight3D2" type="OmniLight3D" parent="Lights/LightLevel3" unique_id=691708052] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -16.250671, -2.1126924, 23.147612) -light_color = Color(0.810676, 0.621579, 0.6067489, 1) -light_energy = 1.5 -light_size = 0.2 -shadow_enabled = true -omni_range = 11.280827 - -[node name="OmniLight3D4" type="OmniLight3D" parent="Lights/LightLevel3" unique_id=1166186573] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -26.520561, -2.1126924, -9.563883) -light_color = Color(0.810676, 0.621579, 0.6067489, 1) -light_energy = 1.5 -light_size = 0.2 -shadow_enabled = true -omni_range = 11.280827 - -[node name="OmniLight3D5" type="OmniLight3D" parent="Lights/LightLevel3" unique_id=2008819922] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -18.694098, -2.1126924, -20.977478) -light_color = Color(0.810676, 0.621579, 0.6067489, 1) -light_energy = 1.5 -light_size = 0.2 -shadow_enabled = true -omni_range = 11.280827 - -[node name="OmniLight3D6" type="OmniLight3D" parent="Lights/LightLevel3" unique_id=588150842] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -4.2640495, -2.1126924, -28.070211) -light_color = Color(0.810676, 0.621579, 0.6067489, 1) -light_energy = 1.5 -light_size = 0.2 -shadow_enabled = true -omni_range = 11.280827 - -[node name="OmniLight3D7" type="OmniLight3D" parent="Lights/LightLevel3" unique_id=1080987600] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 4.133095, -2.1126924, -28.070211) -light_color = Color(0.810676, 0.621579, 0.6067489, 1) -light_energy = 1.5 -light_size = 0.2 -shadow_enabled = true -omni_range = 11.280827 - -[node name="OmniLight3D8" type="OmniLight3D" parent="Lights/LightLevel3" unique_id=580549053] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 16.688046, -2.1126924, -23.17867) -light_color = Color(0.810676, 0.621579, 0.6067489, 1) -light_energy = 1.5 -light_size = 0.2 -shadow_enabled = true -omni_range = 11.280827 - -[node name="OmniLight3D9" type="OmniLight3D" parent="Lights/LightLevel3" unique_id=639850990] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 24.514515, -2.1126924, -14.292371) -light_color = Color(0.810676, 0.621579, 0.6067489, 1) -light_energy = 1.5 -light_size = 0.2 -shadow_enabled = true -omni_range = 11.280827 - -[node name="OmniLight3D10" type="OmniLight3D" parent="Lights/LightLevel3" unique_id=559970503] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 26.797234, -2.1126924, 8.860925) -light_color = Color(0.810676, 0.621579, 0.6067489, 1) -light_energy = 1.5 -light_size = 0.2 -shadow_enabled = true -omni_range = 11.280827 - -[node name="OmniLight3D11" type="OmniLight3D" parent="Lights/LightLevel3" unique_id=1743215246] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 18.40009, -2.1126924, 21.334354) -light_color = Color(0.810676, 0.621579, 0.6067489, 1) -light_energy = 1.5 -light_size = 0.2 -shadow_enabled = true -omni_range = 11.280827 - -[node name="OmniLight3D12" type="OmniLight3D" parent="Lights/LightLevel3" unique_id=814917578] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 3.4000893, -2.1126924, 27.334354) -light_color = Color(0.810676, 0.621579, 0.6067489, 1) -light_energy = 1.5 -light_size = 0.2 -shadow_enabled = true -omni_range = 11.280827 - -[node name="OmniLight3D3" type="OmniLight3D" parent="Lights/LightLevel3" unique_id=1601525784] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -24.523638, -2.1126924, 14.304096) -light_color = Color(0.810676, 0.621579, 0.6067489, 1) -light_energy = 1.5 -light_size = 0.2 -shadow_enabled = true -omni_range = 11.280827 - -[node name="OmniLight3D13" type="OmniLight3D" parent="Lights/LightLevel3" unique_id=730066980] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -30.556553, -5.066031, 2.7274294) -light_color = Color(0.810676, 0.621579, 0.6067489, 1) -light_energy = 1.5 -light_size = 0.2 -shadow_enabled = true -omni_range = 11.280827 - -[node name="OmniLight3D14" type="OmniLight3D" parent="Lights/LightLevel3" unique_id=1530299322] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -30.475027, -5.066031, -2.8978524) -light_color = Color(0.810676, 0.621579, 0.6067489, 1) -light_energy = 1.5 -light_size = 0.2 -shadow_enabled = true -omni_range = 11.280827 - -[node name="OmniLight3D15" type="OmniLight3D" parent="Lights/LightLevel3" unique_id=1068729638] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 30.343237, -5.066031, -3.1424296) -light_color = Color(0.810676, 0.621579, 0.6067489, 1) -light_energy = 1.5 -light_size = 0.2 -shadow_enabled = true -omni_range = 11.280827 - -[node name="OmniLight3D16" type="OmniLight3D" parent="Lights/LightLevel3" unique_id=958960524] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 30.506277, -5.066031, 2.9720063) -light_color = Color(0.810676, 0.621579, 0.6067489, 1) -light_energy = 1.5 -light_size = 0.2 -shadow_enabled = true -omni_range = 11.280827 - -[node name="LightLevel4" type="Node3D" parent="Lights" unique_id=142117256] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 31.95812, 0) - -[node name="OmniLight3D" type="OmniLight3D" parent="Lights/LightLevel4" unique_id=1721481718] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -4.5544157, -2.1126924, 27.90219) -light_color = Color(0.810676, 0.621579, 0.6067489, 1) -light_energy = 1.5 -light_size = 0.2 -shadow_enabled = true -omni_range = 11.280827 - -[node name="OmniLight3D2" type="OmniLight3D" parent="Lights/LightLevel4" unique_id=631610076] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -16.250671, -2.1126924, 23.147612) -light_color = Color(0.810676, 0.621579, 0.6067489, 1) -light_energy = 1.5 -light_size = 0.2 -shadow_enabled = true -omni_range = 11.280827 - -[node name="OmniLight3D4" type="OmniLight3D" parent="Lights/LightLevel4" unique_id=1226751360] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -26.520561, -2.1126924, -9.563883) -light_color = Color(0.810676, 0.621579, 0.6067489, 1) -light_energy = 1.5 -light_size = 0.2 -shadow_enabled = true -omni_range = 11.280827 - -[node name="OmniLight3D5" type="OmniLight3D" parent="Lights/LightLevel4" unique_id=1200952030] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -18.694098, -2.1126924, -20.977478) -light_color = Color(0.810676, 0.621579, 0.6067489, 1) -light_energy = 1.5 -light_size = 0.2 -shadow_enabled = true -omni_range = 11.280827 - -[node name="OmniLight3D6" type="OmniLight3D" parent="Lights/LightLevel4" unique_id=1061376340] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -4.2640495, -2.1126924, -28.070211) -light_color = Color(0.810676, 0.621579, 0.6067489, 1) -light_energy = 1.5 -light_size = 0.2 -shadow_enabled = true -omni_range = 11.280827 - -[node name="OmniLight3D7" type="OmniLight3D" parent="Lights/LightLevel4" unique_id=1457730086] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 4.133095, -2.1126924, -28.070211) -light_color = Color(0.810676, 0.621579, 0.6067489, 1) -light_energy = 1.5 -light_size = 0.2 -shadow_enabled = true -omni_range = 11.280827 - -[node name="OmniLight3D8" type="OmniLight3D" parent="Lights/LightLevel4" unique_id=1189108084] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 16.688046, -2.1126924, -23.17867) -light_color = Color(0.810676, 0.621579, 0.6067489, 1) -light_energy = 1.5 -light_size = 0.2 -shadow_enabled = true -omni_range = 11.280827 - -[node name="OmniLight3D9" type="OmniLight3D" parent="Lights/LightLevel4" unique_id=1446282714] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 24.514515, -2.1126924, -14.292371) -light_color = Color(0.810676, 0.621579, 0.6067489, 1) -light_energy = 1.5 -light_size = 0.2 -shadow_enabled = true -omni_range = 11.280827 - -[node name="OmniLight3D10" type="OmniLight3D" parent="Lights/LightLevel4" unique_id=572630565] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 26.797234, -2.1126924, 8.860925) -light_color = Color(0.810676, 0.621579, 0.6067489, 1) -light_energy = 1.5 -light_size = 0.2 -shadow_enabled = true -omni_range = 11.280827 - -[node name="OmniLight3D11" type="OmniLight3D" parent="Lights/LightLevel4" unique_id=452891791] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 18.40009, -2.1126924, 21.334354) -light_color = Color(0.810676, 0.621579, 0.6067489, 1) -light_energy = 1.5 -light_size = 0.2 -shadow_enabled = true -omni_range = 11.280827 - -[node name="OmniLight3D12" type="OmniLight3D" parent="Lights/LightLevel4" unique_id=1670406469] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 3.4000893, -2.1126924, 27.334354) -light_color = Color(0.810676, 0.621579, 0.6067489, 1) -light_energy = 1.5 -light_size = 0.2 -shadow_enabled = true -omni_range = 11.280827 - -[node name="OmniLight3D3" type="OmniLight3D" parent="Lights/LightLevel4" unique_id=1477089662] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -24.523638, -2.1126924, 14.304096) -light_color = Color(0.810676, 0.621579, 0.6067489, 1) -light_energy = 1.5 -light_size = 0.2 -shadow_enabled = true -omni_range = 11.280827 - -[node name="OmniLight3D13" type="OmniLight3D" parent="Lights/LightLevel4" unique_id=1821591613] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -30.556553, -5.066031, 2.7274294) -light_color = Color(0.810676, 0.621579, 0.6067489, 1) -light_energy = 1.5 -light_size = 0.2 -shadow_enabled = true -omni_range = 11.280827 - -[node name="OmniLight3D14" type="OmniLight3D" parent="Lights/LightLevel4" unique_id=277413158] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -30.475027, -5.066031, -2.8978524) -light_color = Color(0.810676, 0.621579, 0.6067489, 1) -light_energy = 1.5 -light_size = 0.2 -shadow_enabled = true -omni_range = 11.280827 - -[node name="OmniLight3D15" type="OmniLight3D" parent="Lights/LightLevel4" unique_id=2012725183] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 30.343237, -5.066031, -3.1424296) -light_color = Color(0.810676, 0.621579, 0.6067489, 1) -light_energy = 1.5 -light_size = 0.2 -shadow_enabled = true -omni_range = 11.280827 - -[node name="OmniLight3D16" type="OmniLight3D" parent="Lights/LightLevel4" unique_id=59140504] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 30.506277, -5.066031, 2.9720063) -light_color = Color(0.810676, 0.621579, 0.6067489, 1) -light_energy = 1.5 -light_size = 0.2 -shadow_enabled = true -omni_range = 11.280827 - -[node name="LightLevel5" type="Node3D" parent="Lights" unique_id=525951054] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 40.090714, 0) - -[node name="OmniLight3D13" type="OmniLight3D" parent="Lights/LightLevel5" unique_id=2058425414] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -30.556553, -5.066031, 2.7274294) -light_color = Color(0.810676, 0.621579, 0.6067489, 1) -light_energy = 1.5 -light_size = 0.2 -shadow_enabled = true -omni_range = 11.280827 - -[node name="OmniLight3D14" type="OmniLight3D" parent="Lights/LightLevel5" unique_id=1964162867] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -30.475027, -5.066031, -2.8978524) -light_color = Color(0.810676, 0.621579, 0.6067489, 1) -light_energy = 1.5 -light_size = 0.2 -shadow_enabled = true -omni_range = 11.280827 - -[node name="OmniLight3D15" type="OmniLight3D" parent="Lights/LightLevel5" unique_id=1968781717] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 30.343237, -5.066031, -3.1424296) -light_color = Color(0.810676, 0.621579, 0.6067489, 1) -light_energy = 1.5 -light_size = 0.2 -shadow_enabled = true -omni_range = 11.280827 - -[node name="OmniLight3D16" type="OmniLight3D" parent="Lights/LightLevel5" unique_id=1720654262] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 30.506277, -5.066031, 2.9720063) -light_color = Color(0.810676, 0.621579, 0.6067489, 1) -light_energy = 1.5 -light_size = 0.2 -shadow_enabled = true -omni_range = 11.280827 - -[node name="LightColumnLeft" type="Node3D" parent="Lights" unique_id=366580628] - -[node name="OmniLight3D" type="OmniLight3D" parent="Lights/LightColumnLeft" unique_id=33457178] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -21.076054, 47.19723, 0) -light_color = Color(0.99998575, 0.29117814, 0.45017415, 1) -light_energy = 2.285 -shadow_enabled = true -omni_range = 23.647278 - -[node name="OmniLight3D2" type="OmniLight3D" parent="Lights/LightColumnLeft" unique_id=1523001666] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -20.213203, 29.529121, 0) -light_color = Color(0.99998575, 0.29117814, 0.45017415, 1) -light_energy = 2.285 -shadow_enabled = true -omni_range = 55.975483 - -[node name="OmniLight3D3" type="OmniLight3D" parent="Lights/LightColumnLeft" unique_id=1636195463] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -20.213203, 10.504702, 0) -light_color = Color(0.99998575, 0.29117814, 0.45017415, 1) -light_energy = 2.285 -shadow_enabled = true -omni_range = 55.975483 - -[node name="LightColumnRight" type="Node3D" parent="Lights" unique_id=736248586] -transform = Transform3D(-1, 0, 8.742278e-08, 0, 1, 0, -8.742278e-08, 0, -1, 0, 0, 0) - -[node name="OmniLight3D" type="OmniLight3D" parent="Lights/LightColumnRight" unique_id=291131726] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -21.076054, 47.19723, 0) -light_color = Color(0.99998575, 0.29117814, 0.45017415, 1) -light_energy = 2.285 -shadow_enabled = true -omni_range = 23.647278 - -[node name="OmniLight3D2" type="OmniLight3D" parent="Lights/LightColumnRight" unique_id=1200961344] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -20.213203, 29.529121, 0) -light_color = Color(0.99998575, 0.29117814, 0.45017415, 1) -light_energy = 2.285 -shadow_enabled = true -omni_range = 55.975483 - -[node name="OmniLight3D3" type="OmniLight3D" parent="Lights/LightColumnRight" unique_id=652563138] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -20.213203, 10.504702, 0) -light_color = Color(0.99998575, 0.29117814, 0.45017415, 1) -light_energy = 2.285 -shadow_enabled = true -omni_range = 55.975483 - -[node name="ServerRoom" type="Node3D" parent="Lights" unique_id=827961816] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 2.9412785, -8.026912, -119.36721) - -[node name="OmniLight3D" type="OmniLight3D" parent="Lights/ServerRoom" unique_id=1844581848] -light_color = Color(0.9334627, 0.52057, 0.67796034, 1) -shadow_enabled = true -omni_range = 26.349659 - -[node name="OmniLight3D2" type="OmniLight3D" parent="Lights/ServerRoom" unique_id=2066101397] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 25.241997) -light_color = Color(0.9334627, 0.52057, 0.67796034, 1) -shadow_enabled = true -omni_range = 26.349659 - -[node name="OmniLight3D3" type="OmniLight3D" parent="Lights/ServerRoom" unique_id=549929558] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 42.92135) -light_color = Color(0.9334627, 0.52057, 0.67796034, 1) -shadow_enabled = true -omni_range = 26.349659 - -[node name="OmniLight3D4" type="OmniLight3D" parent="Lights/ServerRoom" unique_id=1196915107] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 61.630135) -light_color = Color(0.9334627, 0.52057, 0.67796034, 1) -shadow_enabled = true -omni_range = 26.349659 - -[node name="SpotLight3D" type="SpotLight3D" parent="Lights/ServerRoom" unique_id=1984749666] -transform = Transform3D(1, 0, 0, 0, -0.037829712, 0.9992842, 0, -0.9992842, -0.037829712, 0, 47.72103, -28.07676) -light_color = Color(0.6902202, 0.87386894, 0.8121308, 1) -light_energy = 9.0 -shadow_enabled = true -spot_range = 95.488 -spot_attenuation = 0.4 -spot_angle = 32.1892 - -[node name="AnimationPlayer" type="AnimationPlayer" parent="Lights" unique_id=1792239301] -root_node = NodePath("../../Player3D") -libraries/ = SubResource("AnimationLibrary_c8vcx") -autoplay = &"blink" - -[node name="WorldEnvironment" type="WorldEnvironment" parent="." unique_id=1121246225] +[sub_resource type="SphereMesh" id="SphereMesh_c8vcx"] +flip_faces = true + +[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_s7tqr"] +shading_mode = 0 +albedo_color = Color(0.5882353, 0.7019608, 0.85882354, 1) +albedo_texture = ExtResource("2_rsbui") + +[node name="BoreaBase" type="Node3D" unique_id=628999030] +script = ExtResource("1_xd71i") + +[node name="BoreaModel" parent="." unique_id=813307551 instance=ExtResource("1_dtguk")] + +[node name="OmniLight3D" type="OmniLight3D" parent="BoreaModel" unique_id=598252020] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.675, 6.416, 6) +light_color = Color(1, 0, 0.43137255, 1) +omni_range = 11.877155 + +[node name="OmniLight3D2" type="OmniLight3D" parent="BoreaModel" unique_id=1709303833] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.675, 6.416, 0) +light_color = Color(1, 0, 0.43137255, 1) +omni_range = 11.877155 + +[node name="OmniLight3D3" type="OmniLight3D" parent="BoreaModel" unique_id=1494844671] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.675, 6.416, -6) +light_color = Color(1, 0, 0.43137255, 1) +omni_range = 11.877155 + +[node name="OmniLight3D4" type="OmniLight3D" parent="BoreaModel" unique_id=1736000584] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.675, 6.416, -14) +light_color = Color(1, 0, 0.43137255, 1) +omni_range = 11.877155 + +[node name="OmniLight3D5" type="OmniLight3D" parent="BoreaModel" unique_id=2024394662] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.675, 6.416, -20) +light_color = Color(1, 0, 0.43137255, 1) +omni_range = 11.877155 + +[node name="OmniLight3D6" type="OmniLight3D" parent="BoreaModel" unique_id=1905195512] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.675, 6.416, -26) +light_color = Color(1, 0, 0.43137255, 1) +omni_range = 11.877155 + +[node name="OmniLight3D7" type="OmniLight3D" parent="BoreaModel" unique_id=446861722] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.675, 6.416, -33) +light_color = Color(1, 0, 0.43137255, 1) +omni_range = 11.877155 + +[node name="OmniLight3D8" type="OmniLight3D" parent="BoreaModel" unique_id=1408862219] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.675, 6.416, -40) +light_color = Color(1, 0, 0.43137255, 1) +omni_range = 11.877155 + +[node name="OmniLight3D9" type="OmniLight3D" parent="BoreaModel" unique_id=1333029114] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.675, 6.416, -46) +light_color = Color(1, 0, 0.43137255, 1) +omni_range = 11.877155 + +[node name="OmniLight3D10" type="OmniLight3D" parent="BoreaModel" unique_id=173828379] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.675, 6.416, -53) +light_color = Color(1, 0, 0.43137255, 1) +omni_range = 11.877155 + +[node name="OmniLight3D11" type="OmniLight3D" parent="BoreaModel" unique_id=1562142953] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.675, 6.416, -59) +light_color = Color(1, 0, 0.43137255, 1) +omni_range = 11.877155 + +[node name="OmniLight3D12" type="OmniLight3D" parent="BoreaModel" unique_id=1835990894] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.675, 6.416, -65) +light_color = Color(1, 0, 0.43137255, 1) +omni_range = 11.877155 + +[node name="Sun" type="DirectionalLight3D" parent="." unique_id=1663715456] +unique_name_in_owner = true +transform = Transform3D(0.074881114, 0.47727534, -0.87555754, 0.49699074, 0.7433423, 0.44770813, 0.864519, -0.46866894, -0.18153912, -17.663713, 19.727222, 0.5521965) +light_energy = 6.09 +shadow_enabled = true +shadow_bias = 0.0 +shadow_blur = 0.8 + +[node name="WorldEnvironment" type="WorldEnvironment" parent="." unique_id=1295078504] environment = SubResource("Environment_fevne") -[node name="AmbianceChangeDetector" type="Area3D" parent="." unique_id=1401161313] -transform = Transform3D(0.25881904, 0, 0.96592593, 0, 1, 0, -0.96592593, 0, 0.25881904, 2.7012572, -5.600957, -42.815655) +[node name="DaySky" type="MeshInstance3D" parent="WorldEnvironment" unique_id=1175366677] +transform = Transform3D(1000, 0, 0, 0, 1000, 0, 0, 0, 1000, 0.00041627884, 0.019779027, -0.019804716) +mesh = SubResource("SphereMesh_c8vcx") +surface_material_override/0 = SubResource("StandardMaterial3D_s7tqr") -[node name="CollisionShape3D" type="CollisionShape3D" parent="AmbianceChangeDetector" unique_id=1969356725] -transform = Transform3D(0.9999994, 0, 0, 0, 1, 0, 0, 0, 0.9999994, -9.359516, 0.82910156, 2.9935746) -shape = SubResource("BoxShape3D_c8vcx") - -[node name="Player3D" parent="." unique_id=549819967 instance=ExtResource("3_c8vcx")] -unique_name_in_owner = true -transform = Transform3D(0.25881904, 0, 0.96592593, 0, 1, 0, -0.96592593, 0, 0.25881904, 29.244379, 41.40791, 8.823577) -speed = 5.0 - -[node name="Phone" parent="." unique_id=429299908 instance=ExtResource("4_fevne")] -unique_name_in_owner = true -transform = Transform3D(-0.93482566, 0, 0.35510686, 0, 1, 0, -0.35510686, 0, -0.93482566, 3.7943206, -7.5537004, -130.16013) - -[node name="borea_base" parent="." unique_id=1161090043 instance=ExtResource("4_s7tqr")] - -[node name="Credits" parent="." unique_id=180964898 instance=ExtResource("6_c8vcx")] -unique_name_in_owner = true - -[node name="TrailerCamera" type="Camera3D" parent="." unique_id=649852434] -unique_name_in_owner = true -transform = Transform3D(1, 0, 0, 0, -4.3711392e-08, 1, 0, -1, -4.3711392e-08, 0, 60.366375, 0) -near = 0.003 - -[node name="AnimationPlayer" type="AnimationPlayer" parent="TrailerCamera" unique_id=1238675722] -root_node = NodePath("../..") -libraries/ = SubResource("AnimationLibrary_hlox4") -autoplay = &"trailer" - -[node name="MeshInstance3D" type="MeshInstance3D" parent="TrailerCamera" unique_id=1018268636] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 2.263265e-08, 0, -0.7177747) -mesh = SubResource("QuadMesh_2ei4e") -surface_material_override/0 = ExtResource("7_s7tqr") - -[connection signal="body_entered" from="AmbianceChangeDetector" to="." method="_on_ambiance_change_detector_body_entered"] +[node name="Player3D" parent="." unique_id=549819967 instance=ExtResource("3_xd71i")] +transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, -0.3753642, 1.9798207, 8.947678) diff --git a/stages/3d_scenes/borea_base/scripts/borea_base.gd b/stages/3d_scenes/borea_base/scripts/borea_base.gd index a16cfb2..dcf0165 100644 --- a/stages/3d_scenes/borea_base/scripts/borea_base.gd +++ b/stages/3d_scenes/borea_base/scripts/borea_base.gd @@ -1,22 +1,10 @@ extends Node3D -const OUTRO_TIMELINE_PATH = "res://dialogs/timelines/tutorial/demeter_outro.dtl" - -# Called when the node enters the scene tree for the first time. func _ready(): - %Credits.hide() - Input.mouse_mode = Input.MOUSE_MODE_CAPTURED + if not Engine.is_editor_hint(): + Input.mouse_mode = Input.MOUSE_MODE_CAPTURED - await %Phone.clicked - Dialogic.start(OUTRO_TIMELINE_PATH) - await Dialogic.timeline_ended - Input.mouse_mode = Input.MOUSE_MODE_VISIBLE - %Credits.show() - AudioManager.play_music("Demo_end", false, 5.0) - AudioManager.stop_all_ambiances() - -func _on_ambiance_change_detector_body_entered(body: Node3D): - if body is Player3D: - AudioManager.stop_all_ambiances() - AudioManager.play_music("Demo_end", false, 5.0) +# Called every frame. 'delta' is the elapsed time since the previous frame. +func _process(delta): + pass diff --git a/stages/3d_scenes/borea_base/scripts/borea_base.gd.uid b/stages/3d_scenes/borea_base/scripts/borea_base.gd.uid index 8b1d559..73cf6af 100644 --- a/stages/3d_scenes/borea_base/scripts/borea_base.gd.uid +++ b/stages/3d_scenes/borea_base/scripts/borea_base.gd.uid @@ -1 +1 @@ -uid://btc447j47jbx0 +uid://c37uqdnr2himm diff --git a/stages/3d_scenes/cave/3d/cave.blend b/stages/3d_scenes/cave/3d/cave.blend new file mode 100644 index 0000000..c13a3ec Binary files /dev/null and b/stages/3d_scenes/cave/3d/cave.blend differ diff --git a/stages/3d_scenes/cave/3d/cave.blend.import b/stages/3d_scenes/cave/3d/cave.blend.import new file mode 100644 index 0000000..3e7ec8f --- /dev/null +++ b/stages/3d_scenes/cave/3d/cave.blend.import @@ -0,0 +1,83 @@ +[remap] + +importer="scene" +importer_version=1 +type="PackedScene" +uid="uid://5uvl5axgq3sc" +path="res://.godot/imported/cave.blend-82b768166e23ecf41c7d4afccb695695.scn" + +[deps] + +source_file="res://stages/3d_scenes/cave/3d/cave.blend" +dest_files=["res://.godot/imported/cave.blend-82b768166e23ecf41c7d4afccb695695.scn"] + +[params] + +nodes/root_type="" +nodes/root_name="" +nodes/root_script=null +nodes/apply_root_scale=true +nodes/root_scale=1.0 +nodes/import_as_skeleton_bones=false +nodes/use_name_suffixes=true +nodes/use_node_type_suffixes=true +meshes/ensure_tangents=true +meshes/generate_lods=true +meshes/create_shadow_meshes=true +meshes/light_baking=1 +meshes/lightmap_texel_size=0.2 +meshes/force_disable_compression=false +skins/use_named_skins=true +animation/import=true +animation/fps=30 +animation/trimming=false +animation/remove_immutable_tracks=true +animation/import_rest_as_RESET=false +import_script/path="" +materials/extract=0 +materials/extract_format=0 +materials/extract_path="" +_subresources={ +"materials": { +"Default3D": { +"use_external/enabled": true, +"use_external/fallback_path": "res://common/assets/materials/default_3d.tres", +"use_external/path": "uid://dvvi1k5c5iowc" +}, +"GlassMaterial": { +"use_external/enabled": true, +"use_external/fallback_path": "res://common/assets/materials/glass_3d.tres", +"use_external/path": "uid://b5vlcdry8vtgi" +}, +"Material": { +"use_external/enabled": true, +"use_external/fallback_path": "res://common/assets/materials/default_3d.tres", +"use_external/path": "uid://dvvi1k5c5iowc" +}, +"Material.001": { +"use_external/enabled": true, +"use_external/fallback_path": "res://common/assets/materials/default_3d.tres", +"use_external/path": "uid://dvvi1k5c5iowc" +} +} +} +blender/nodes/visible=0 +blender/nodes/active_collection_only=false +blender/nodes/punctual_lights=true +blender/nodes/cameras=true +blender/nodes/custom_properties=true +blender/nodes/modifiers=1 +blender/meshes/colors=false +blender/meshes/uvs=true +blender/meshes/normals=true +blender/meshes/export_geometry_nodes_instances=false +blender/meshes/gpu_instances=false +blender/meshes/tangents=true +blender/meshes/skins=2 +blender/meshes/export_bones_deforming_mesh_only=false +blender/materials/unpack_enabled=true +blender/materials/export_materials=1 +blender/animation/limit_playback=true +blender/animation/always_sample=true +blender/animation/group_tracks=true +gltf/naming_version=2 diff --git a/stages/3d_scenes/cave/3d/cave.blend1 b/stages/3d_scenes/cave/3d/cave.blend1 new file mode 100644 index 0000000..2ece548 Binary files /dev/null and b/stages/3d_scenes/cave/3d/cave.blend1 differ diff --git a/stages/3d_scenes/cave/cave.tscn b/stages/3d_scenes/cave/cave.tscn new file mode 100644 index 0000000..a5d3daf --- /dev/null +++ b/stages/3d_scenes/cave/cave.tscn @@ -0,0 +1,146 @@ +[gd_scene format=3 uid="uid://d0fr68xaapsq7"] + +[ext_resource type="Script" uid="uid://bj4d1x8n8ina" path="res://entities/interactable_3d/interactable_3d.gd" id="1_w6igl"] +[ext_resource type="Script" uid="uid://mn05jq4ekx62" path="res://stages/3d_scenes/cave/scripts/cave.gd" id="1_xlbt6"] +[ext_resource type="PackedScene" uid="uid://5uvl5axgq3sc" path="res://stages/3d_scenes/cave/3d/cave.blend" id="2_xlbt6"] +[ext_resource type="PackedScene" uid="uid://da7a74dg30q1l" path="res://entities/player_3d/player_3D.tscn" id="3_663fy"] +[ext_resource type="PackedScene" uid="uid://8rorj31s3irn" path="res://entities/interactable_3d/cristal/cristal.tscn" id="4_663fy"] +[ext_resource type="Texture2D" uid="uid://dex283rx00fjb" path="res://common/icons/logout.svg" id="6_rdddd"] + +[sub_resource type="Environment" id="Environment_x7awc"] +background_mode = 2 +sky_custom_fov = 61.7 +ambient_light_source = 3 +ambient_light_color = Color(1, 1, 1, 1) +ambient_light_sky_contribution = 0.18 +ambient_light_energy = 2.62 +reflected_light_source = 2 +tonemap_mode = 2 +tonemap_exposure = 0.7 +tonemap_white = 1.84 +glow_enabled = true +glow_intensity = 0.22 +glow_bloom = 0.22 +glow_hdr_threshold = 0.79 +glow_hdr_scale = 0.0 +glow_hdr_luminance_cap = 5.63 +fog_mode = 1 +fog_light_color = Color(0.13725491, 0.39215687, 0.6666667, 1) +fog_light_energy = 1.48 +fog_density = 0.0231 +fog_aerial_perspective = 0.113 +fog_sky_affect = 0.0 +volumetric_fog_sky_affect = 0.0 +adjustment_enabled = true +adjustment_saturation = 1.3 + +[sub_resource type="Animation" id="Animation_pxmsf"] +length = 0.001 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("Sprite3D:scale") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [Vector3(0.99999994, 1, 0.99999994)] +} + +[sub_resource type="Animation" id="Animation_u7lr8"] +resource_name = "hover" +loop_mode = 1 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("Sprite3D:scale") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0, 0.46666667, 1), +"transitions": PackedFloat32Array(1, 1, 1), +"update": 0, +"values": [Vector3(0.99999994, 1, 0.99999994), Vector3(1.2, 1.2, 1.2), Vector3(0.99999994, 1, 0.99999994)] +} + +[sub_resource type="AnimationLibrary" id="AnimationLibrary_mmomx"] +_data = { +&"RESET": SubResource("Animation_pxmsf"), +&"hover": SubResource("Animation_u7lr8") +} + +[sub_resource type="BoxShape3D" id="BoxShape3D_6rmeu"] +size = Vector3(2.2807465, 0.83758545, 2.7016602) + +[node name="Cave" type="Node3D" unique_id=122920060] +script = ExtResource("1_xlbt6") + +[node name="WorldEnvironment" type="WorldEnvironment" parent="." unique_id=1672352734] +environment = SubResource("Environment_x7awc") + +[node name="Lights" type="Node3D" parent="." unique_id=1491734303] + +[node name="OmniLight3D" type="OmniLight3D" parent="Lights" unique_id=2015091523] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 8.124447, 2.974639, 1.201046) +omni_range = 16.327286 + +[node name="CaveModel" parent="." unique_id=741350561 instance=ExtResource("2_xlbt6")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.573945, 0, 1.5022337) + +[node name="OmniLight3D" type="OmniLight3D" parent="CaveModel" unique_id=2145888223] +transform = Transform3D(0.99998826, 0, 0.0048519964, 0, 1, 0, -0.0048519964, 0, 0.99998826, -188.65979, -23.91176, -55.256798) +light_color = Color(1, 0.6509804, 0.09019608, 1) +light_energy = 7.209 +shadow_enabled = true +omni_range = 191.9335 + +[node name="OmniLight3D2" type="OmniLight3D" parent="CaveModel" unique_id=262552402] +transform = Transform3D(0.99998826, 0, 0.0048519964, 0, 1, 0, -0.0048519964, 0, 0.99998826, -193.10031, 1.3168697, 78.69277) +light_color = Color(1, 0.6509804, 0.09019608, 1) +light_energy = 7.209 +shadow_enabled = true +omni_range = 191.9335 + +[node name="OmniLight3D3" type="OmniLight3D" parent="CaveModel" unique_id=882541987] +transform = Transform3D(0.99998826, 0, 0.0048519964, 0, 1, 0, -0.0048519964, 0, 0.99998826, -429.2623, -7.898775, 57.456047) +light_color = Color(1, 0.6509804, 0.09019608, 1) +light_energy = 7.209 +shadow_enabled = true +omni_range = 191.9335 + +[node name="OmniLight3D4" type="OmniLight3D" parent="CaveModel" unique_id=477937802] +transform = Transform3D(0.99998826, 0, 0.0048519964, 0, 1, 0, -0.0048519964, 0, 0.99998826, -331.67422, 8.754509, -34.622234) +light_color = Color(1, 0.6509804, 0.09019608, 1) +light_energy = 7.209 +shadow_enabled = true +omni_range = 191.9335 + +[node name="Cristal" parent="." unique_id=1403604311 instance=ExtResource("4_663fy")] +unique_name_in_owner = true +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.3711878, -0.010157108, 1.5553656) + +[node name="Exit" type="Area3D" parent="." unique_id=1854281092 node_paths=PackedStringArray("hover_animation_player")] +unique_name_in_owner = true +transform = Transform3D(4.371139e-08, -1, -8.742278e-08, -1, -4.371139e-08, 0, -3.821371e-15, 8.742278e-08, -1, 9.429194, 1.3403461, 1.9387968) +script = ExtResource("1_w6igl") +hover_animation_player = NodePath("HoverAnimationPlayer") +metadata/_custom_type_script = "uid://bj4d1x8n8ina" + +[node name="Sprite3D" type="Sprite3D" parent="Exit" unique_id=880911016] +transform = Transform3D(-4.3711385e-08, -1, -4.3711385e-08, 0, -4.371139e-08, 0.99999994, -0.99999994, 4.371139e-08, 1.9106853e-15, 0.1646713, -0.017980576, 0) +pixel_size = 0.005 +texture = ExtResource("6_rdddd") + +[node name="HoverAnimationPlayer" type="AnimationPlayer" parent="Exit" unique_id=1644992802] +libraries/ = SubResource("AnimationLibrary_mmomx") + +[node name="CollisionShape3D" type="CollisionShape3D" parent="Exit" unique_id=1639583333] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.14810944, -0.081207275, 0.35961914) +shape = SubResource("BoxShape3D_6rmeu") + +[node name="Player3D" parent="." unique_id=549819967 instance=ExtResource("3_663fy")] +transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, 8.010997, 1.1516566, 1.5996395) + +[connection signal="clicked" from="Exit" to="." method="_on_exit_clicked"] diff --git a/stages/3d_scenes/cave/scripts/cave.gd b/stages/3d_scenes/cave/scripts/cave.gd new file mode 100644 index 0000000..965a070 --- /dev/null +++ b/stages/3d_scenes/cave/scripts/cave.gd @@ -0,0 +1,20 @@ +extends Node3D +class_name Cave + +func _ready(): + if not Engine.is_editor_hint(): + Input.mouse_mode = Input.MOUSE_MODE_CAPTURED + setup_room(10) + +func setup_room(door_id : int): + var rng := RandomNumberGenerator.new() + rng.seed = door_id + + %Cristal.broken.connect( + func (): + GameInfo.game_data.current_region_data.completed_doors.append(door_id) + ); + + +func _on_exit_clicked(): + SceneManager.change_to_scene(RegionScene.new(GameInfo.game_data.current_region_data)) diff --git a/stages/3d_scenes/cave/scripts/cave.gd.uid b/stages/3d_scenes/cave/scripts/cave.gd.uid new file mode 100644 index 0000000..a104aa4 --- /dev/null +++ b/stages/3d_scenes/cave/scripts/cave.gd.uid @@ -0,0 +1 @@ +uid://mn05jq4ekx62 diff --git a/stages/3d_scenes/cockpit_scene/cockpit.tscn b/stages/3d_scenes/cockpit_scene/cockpit.tscn index 9e9729d..fc17c5a 100644 --- a/stages/3d_scenes/cockpit_scene/cockpit.tscn +++ b/stages/3d_scenes/cockpit_scene/cockpit.tscn @@ -163,6 +163,7 @@ transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -1.239, 0, 4.02) [node name="MutationDiscoveryScreen" parent="." unique_id=1948337200 instance=ExtResource("15_q4ojn")] transform = Transform3D(-1, 0, 8.742278e-08, 0, 1, 0, -8.742278e-08, 0, -1, 1.1896521, 0.015508115, 3.982) +mutations_unlocked = 0 [node name="ShipTutorial" parent="." unique_id=868547496 node_paths=PackedStringArray("player") instance=ExtResource("13_u7lr8")] unique_name_in_owner = true diff --git a/stages/3d_scenes/cockpit_scene/cockpit_elements/mutation_discovered_screen/mutation_discovery_screen.tscn b/stages/3d_scenes/cockpit_scene/cockpit_elements/mutation_discovered_screen/mutation_discovery_screen.tscn index dd9c9b0..b675f51 100644 --- a/stages/3d_scenes/cockpit_scene/cockpit_elements/mutation_discovered_screen/mutation_discovery_screen.tscn +++ b/stages/3d_scenes/cockpit_scene/cockpit_elements/mutation_discovered_screen/mutation_discovery_screen.tscn @@ -34,6 +34,7 @@ font_size = 8 [node name="MutationDiscoveryScreen" type="Node3D" unique_id=1881622243] script = ExtResource("1_cfhhl") all_mutations = Array[ExtResource("2_dv1aj")]([SubResource("Resource_dv1aj"), SubResource("Resource_3q2hk"), SubResource("Resource_psve5"), null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null]) +mutations_unlocked = null [node name="Sprite3D" type="Sprite3D" parent="." unique_id=1624784968] transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, -0.011004657, 0, 0) diff --git a/stages/3d_scenes/cockpit_scene/cockpit_elements/mutation_discovered_screen/scripts/mutation_discovery_screen.gd b/stages/3d_scenes/cockpit_scene/cockpit_elements/mutation_discovered_screen/scripts/mutation_discovery_screen.gd index fdb0526..a847218 100644 --- a/stages/3d_scenes/cockpit_scene/cockpit_elements/mutation_discovered_screen/scripts/mutation_discovery_screen.gd +++ b/stages/3d_scenes/cockpit_scene/cockpit_elements/mutation_discovered_screen/scripts/mutation_discovery_screen.gd @@ -4,7 +4,7 @@ extends Node3D const MUTATION_DISCOVERY_ELEMENT_SCENE = preload("res://stages/3d_scenes/cockpit_scene/cockpit_elements/mutation_discovered_screen/mutation_discovery_element.tscn") @export var all_mutations : Array[PlantMutation] -@export var available_mutations : Array[PlantMutation] +@export var mutations_unlocked : int @export var planted_mutation_ids : Array[String] @export_tool_button("Update", "Callable") var update_action = update @@ -13,7 +13,7 @@ const MUTATION_DISCOVERY_ELEMENT_SCENE = preload("res://stages/3d_scenes/cockpit func _ready(): if not Engine.is_editor_hint(): all_mutations = GameInfo.game_data.progression_data.all_mutations - available_mutations = GameInfo.game_data.progression_data.available_mutations + mutations_unlocked = GameInfo.game_data.progression_data.mutations_unlocked planted_mutation_ids = GameInfo.game_data.progression_data.planted_mutation_ids update() @@ -23,8 +23,8 @@ func update(): c.queue_free() for i in range(len(all_mutations)): var el : MutationDiscoveryElement = MUTATION_DISCOVERY_ELEMENT_SCENE.instantiate() as MutationDiscoveryElement - if i < len(available_mutations): - el.mutation = available_mutations[i] + if i < mutations_unlocked: + el.mutation = all_mutations[i] if el.mutation.get_mutation_id() in planted_mutation_ids: el.state = MutationDiscoveryElement.State.DISCOVERED else : diff --git a/stages/3d_scenes/cockpit_scene/cockpit_elements/scripts/plant_info_screen.gd b/stages/3d_scenes/cockpit_scene/cockpit_elements/scripts/plant_info_screen.gd index 9f68cca..39908c7 100644 --- a/stages/3d_scenes/cockpit_scene/cockpit_elements/scripts/plant_info_screen.gd +++ b/stages/3d_scenes/cockpit_scene/cockpit_elements/scripts/plant_info_screen.gd @@ -18,10 +18,8 @@ func update_plant_info(): %GrowingLabel.text = "%d" % plant_info.get_growing_time() %GrowingStat.modulate = Color.WHITE if plant_info.get_growing_time() == plant_info.DEFAULT_GROWING_TIME else CHANGED_COLOR - %SeedLabel.text = "%d-%d" % [ - plant_info.get_seed_number() - plant_info.get_seed_random_loose(), - plant_info.get_seed_number() - ] + %SeedLabel.text = str(plant_info.get_seed_number()) + %SeedStat.modulate = Color.WHITE if ( plant_info.get_seed_number() == plant_info.DEFAULT_SEED_NUMBER and plant_info.get_seed_random_loose() == plant_info.DEFAULT_SEED_RANDOM_LOOSE @@ -33,4 +31,4 @@ func update_plant_info(): %PlantMutationProbability.text = tr("PLANTS_MUTATION_CHANCE_IS_X_PERCENT").format({ "mutation_chance": roundi(plant_info.get_mutation_probability() * 100) }) - %PlantMutationProbability.modulate = Color.WHITE if plant_info.get_mutation_probability() == plant_info.DEFAULT_MUTATION_PROBABILITY else CHANGED_COLOR \ No newline at end of file + %PlantMutationProbability.modulate = Color.WHITE if plant_info.get_mutation_probability() == plant_info.DEFAULT_MUTATION_PROBABILITY else CHANGED_COLOR diff --git a/stages/3d_scenes/cockpit_scene/scripts/cockpit.gd b/stages/3d_scenes/cockpit_scene/scripts/cockpit.gd index a208f0a..158680a 100644 --- a/stages/3d_scenes/cockpit_scene/scripts/cockpit.gd +++ b/stages/3d_scenes/cockpit_scene/scripts/cockpit.gd @@ -206,4 +206,3 @@ func update_dashboard(): func _on_orchid_saver_clicked(): GameInfo.game_data.give_up() - diff --git a/stages/3d_scenes/end_base/assets/3d/end_base.blend b/stages/3d_scenes/end_base/assets/3d/end_base.blend new file mode 100644 index 0000000..22871ac Binary files /dev/null and b/stages/3d_scenes/end_base/assets/3d/end_base.blend differ diff --git a/stages/3d_scenes/end_base/assets/3d/end_base.blend.import b/stages/3d_scenes/end_base/assets/3d/end_base.blend.import new file mode 100644 index 0000000..e669e5b --- /dev/null +++ b/stages/3d_scenes/end_base/assets/3d/end_base.blend.import @@ -0,0 +1,73 @@ +[remap] + +importer="scene" +importer_version=1 +type="PackedScene" +uid="uid://bqo4uknlbm8r1" +path="res://.godot/imported/end_base.blend-fe62ec0b123eb800e23803303dde3051.scn" + +[deps] + +source_file="res://stages/3d_scenes/end_base/assets/3d/end_base.blend" +dest_files=["res://.godot/imported/end_base.blend-fe62ec0b123eb800e23803303dde3051.scn"] + +[params] + +nodes/root_type="" +nodes/root_name="" +nodes/root_script=null +nodes/apply_root_scale=true +nodes/root_scale=1.0 +nodes/import_as_skeleton_bones=false +nodes/use_name_suffixes=true +nodes/use_node_type_suffixes=true +meshes/ensure_tangents=true +meshes/generate_lods=true +meshes/create_shadow_meshes=true +meshes/light_baking=1 +meshes/lightmap_texel_size=0.2 +meshes/force_disable_compression=false +skins/use_named_skins=true +animation/import=true +animation/fps=30 +animation/trimming=false +animation/remove_immutable_tracks=true +animation/import_rest_as_RESET=false +import_script/path="" +materials/extract=0 +materials/extract_format=0 +materials/extract_path="" +_subresources={ +"materials": { +"Glass": { +"use_external/enabled": true, +"use_external/fallback_path": "res://common/assets/materials/glass_3d.tres", +"use_external/path": "uid://b5vlcdry8vtgi" +}, +"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/colors=false +blender/meshes/uvs=true +blender/meshes/normals=true +blender/meshes/export_geometry_nodes_instances=false +blender/meshes/gpu_instances=false +blender/meshes/tangents=true +blender/meshes/skins=2 +blender/meshes/export_bones_deforming_mesh_only=false +blender/materials/unpack_enabled=true +blender/materials/export_materials=1 +blender/animation/limit_playback=true +blender/animation/always_sample=true +blender/animation/group_tracks=true +gltf/naming_version=2 diff --git a/stages/3d_scenes/end_base/end_base.tscn b/stages/3d_scenes/end_base/end_base.tscn new file mode 100644 index 0000000..53e3751 --- /dev/null +++ b/stages/3d_scenes/end_base/end_base.tscn @@ -0,0 +1,991 @@ +[gd_scene format=3 uid="uid://b6kl2hc85a0mh"] + +[ext_resource type="Script" uid="uid://btc447j47jbx0" path="res://stages/3d_scenes/end_base/scripts/borea_base.gd" id="1_fevne"] +[ext_resource type="Shader" uid="uid://bv2rghn44mrrf" path="res://stages/title_screen/resources/shaders/stars.gdshader" id="1_xd71i"] +[ext_resource type="PackedScene" uid="uid://da7a74dg30q1l" path="res://entities/player_3d/player_3D.tscn" id="3_c8vcx"] +[ext_resource type="PackedScene" uid="uid://csx7d5khjd6y5" path="res://entities/interactable_3d/phone/phone.tscn" id="4_fevne"] +[ext_resource type="PackedScene" uid="uid://bqo4uknlbm8r1" path="res://stages/3d_scenes/end_base/assets/3d/end_base.blend" id="4_s7tqr"] +[ext_resource type="PackedScene" uid="uid://c5a32n6rjjlnt" path="res://gui/credits/credits.tscn" id="6_c8vcx"] +[ext_resource type="Material" uid="uid://cr7bp4fhh1ipr" path="res://entities/player_3d/resources/materials/post_process_quad.tres" id="7_s7tqr"] + +[sub_resource type="Animation" id="Animation_xd71i"] +length = 0.001 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("%Player3D/../Lights/LightLevel0/OmniLight3D7: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("%Player3D/../Lights/LightLevel0/OmniLight3D2: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("%Player3D/../Lights/LightLevel1/OmniLight3D10: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("%Player3D/../Lights/LightLevel1/OmniLight3D14: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("%Player3D/../Lights/LightLevel3/OmniLight3D3:visible") +tracks/4/interp = 1 +tracks/4/loop_wrap = true +tracks/4/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 1, +"values": [true] +} + +[sub_resource type="Animation" id="Animation_fevne"] +resource_name = "blink" +length = 3.0 +loop_mode = 1 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("%Player3D/../Lights/LightLevel0/OmniLight3D7:visible") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0, 0.46666667, 1.37, 1.5866667, 2.2, 2.48, 2.77), +"transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1, 1), +"update": 1, +"values": [true, false, true, false, true, false, true] +} +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath("%Player3D/../Lights/LightLevel0/OmniLight3D2:visible") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0, 0.38, 1.2833333, 1.5, 2.2, 2.48, 2.77), +"transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1, 1), +"update": 1, +"values": [true, false, true, false, true, true, true] +} +tracks/2/type = "value" +tracks/2/imported = false +tracks/2/enabled = true +tracks/2/path = NodePath("%Player3D/../Lights/LightLevel1/OmniLight3D10:visible") +tracks/2/interp = 1 +tracks/2/loop_wrap = true +tracks/2/keys = { +"times": PackedFloat32Array(0, 0.63, 1.5333333, 1.75, 2.2, 2.48, 2.77), +"transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1, 1), +"update": 1, +"values": [true, false, true, false, true, false, true] +} +tracks/3/type = "value" +tracks/3/imported = false +tracks/3/enabled = true +tracks/3/path = NodePath("%Player3D/../Lights/LightLevel1/OmniLight3D14:visible") +tracks/3/interp = 1 +tracks/3/loop_wrap = true +tracks/3/keys = { +"times": PackedFloat32Array(0, 0.63, 1.5333333, 1.75, 2.2, 2.48, 2.77), +"transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1, 1), +"update": 1, +"values": [true, false, true, false, true, true, true] +} +tracks/4/type = "value" +tracks/4/imported = false +tracks/4/enabled = true +tracks/4/path = NodePath("%Player3D/../Lights/LightLevel3/OmniLight3D3:visible") +tracks/4/interp = 1 +tracks/4/loop_wrap = true +tracks/4/keys = { +"times": PackedFloat32Array(0, 0.63, 1.5333333, 1.75, 2.2, 2.48, 2.77), +"transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1, 1), +"update": 1, +"values": [true, false, true, false, true, false, true] +} + +[sub_resource type="AnimationLibrary" id="AnimationLibrary_c8vcx"] +_data = { +&"RESET": SubResource("Animation_xd71i"), +&"blink": SubResource("Animation_fevne") +} + +[sub_resource type="ShaderMaterial" id="ShaderMaterial_2ei4e"] +shader = ExtResource("1_xd71i") +shader_parameter/sky_color = Color(0.03, 0.05, 0.11, 1) +shader_parameter/star_base_color = Color(0.8, 1, 0.3, 1) +shader_parameter/star_hue_offset = 0.6 +shader_parameter/star_intensity = 0.08 +shader_parameter/layer_scale = 20.0 +shader_parameter/layer_scale_step = 10.0 +shader_parameter/layers_count = 3 + +[sub_resource type="Sky" id="Sky_xd71i"] +sky_material = SubResource("ShaderMaterial_2ei4e") + +[sub_resource type="Environment" id="Environment_fevne"] +background_mode = 2 +sky = SubResource("Sky_xd71i") +sky_custom_fov = 61.7 +ambient_light_source = 3 +ambient_light_color = Color(1, 1, 1, 1) +ambient_light_sky_contribution = 0.85 +ambient_light_energy = 0.52 +reflected_light_source = 2 +tonemap_mode = 2 +tonemap_exposure = 0.7 +tonemap_white = 1.84 +glow_enabled = true +glow_intensity = 0.22 +glow_bloom = 0.22 +glow_hdr_threshold = 0.79 +glow_hdr_scale = 0.0 +glow_hdr_luminance_cap = 5.63 +fog_enabled = true +fog_mode = 1 +fog_light_color = Color(0.13725491, 0.39215687, 0.6666667, 1) +fog_density = 0.1831 +fog_aerial_perspective = 0.113 +fog_sky_affect = 0.0 +volumetric_fog_sky_affect = 0.0 +adjustment_enabled = true +adjustment_saturation = 1.3 + +[sub_resource type="BoxShape3D" id="BoxShape3D_c8vcx"] +size = Vector3(0.001, 7.6933594, 7.697876) + +[sub_resource type="Animation" id="Animation_s7tqr"] +length = 0.001 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("TrailerCamera:position") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [Vector3(0, 60.366375, 0)] +} + +[sub_resource type="Animation" id="Animation_2ei4e"] +resource_name = "trailer" +length = 10.0 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("TrailerCamera:position") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0, 9.933333), +"transitions": PackedFloat32Array(1, 1), +"update": 0, +"values": [Vector3(0, 60.366375, 0), Vector3(0, 10, 0)] +} + +[sub_resource type="AnimationLibrary" id="AnimationLibrary_hlox4"] +_data = { +&"RESET": SubResource("Animation_s7tqr"), +&"trailer": SubResource("Animation_2ei4e") +} + +[sub_resource type="QuadMesh" id="QuadMesh_2ei4e"] +size = Vector2(2, 2) + +[node name="BoreaBase" type="Node3D" unique_id=442220603] +script = ExtResource("1_fevne") + +[node name="DirectionalLight3D" type="DirectionalLight3D" parent="." unique_id=1539431276] +transform = Transform3D(1, 0, 0, 0, 0.25881907, 0.9659258, 0, -0.9659258, 0.25881907, 30.708645, 59.967155, 32.405155) +light_color = Color(0.6660227, 0.6797195, 0.9820071, 1) +light_energy = 0.2 +shadow_enabled = true + +[node name="Lights" type="Node3D" parent="." unique_id=1071261896] + +[node name="LightLevel0" type="Node3D" parent="Lights" unique_id=1673172585] + +[node name="OmniLight3D2" type="OmniLight3D" parent="Lights/LightLevel0" unique_id=331040735] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -16.250671, -2.1126924, 23.147612) +light_color = Color(0.810676, 0.621579, 0.6067489, 1) +light_energy = 1.5 +light_size = 0.2 +shadow_enabled = true +omni_range = 11.280827 + +[node name="OmniLight3D4" type="OmniLight3D" parent="Lights/LightLevel0" unique_id=781678275] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -26.520561, -2.1126924, -9.563883) +light_color = Color(0.810676, 0.621579, 0.6067489, 1) +light_energy = 1.5 +light_size = 0.2 +shadow_enabled = true +omni_range = 11.280827 + +[node name="OmniLight3D5" type="OmniLight3D" parent="Lights/LightLevel0" unique_id=1029811291] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -18.694098, -2.1126924, -20.977478) +light_color = Color(0.810676, 0.621579, 0.6067489, 1) +light_energy = 1.5 +light_size = 0.2 +shadow_enabled = true +omni_range = 11.280827 + +[node name="OmniLight3D6" type="OmniLight3D" parent="Lights/LightLevel0" unique_id=706813333] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -4.2640495, -2.1126924, -28.070211) +light_color = Color(0.810676, 0.621579, 0.6067489, 1) +light_energy = 1.5 +light_size = 0.2 +shadow_enabled = true +omni_range = 11.280827 + +[node name="OmniLight3D7" type="OmniLight3D" parent="Lights/LightLevel0" unique_id=522933437] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 4.133095, -2.1126924, -28.070211) +light_color = Color(0.810676, 0.621579, 0.6067489, 1) +light_energy = 1.5 +light_size = 0.2 +shadow_enabled = true +omni_range = 11.280827 + +[node name="OmniLight3D10" type="OmniLight3D" parent="Lights/LightLevel0" unique_id=1811482313] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 26.797234, -2.1126924, 8.860925) +light_color = Color(0.810676, 0.621579, 0.6067489, 1) +light_energy = 1.5 +light_size = 0.2 +shadow_enabled = true +omni_range = 11.280827 + +[node name="OmniLight3D11" type="OmniLight3D" parent="Lights/LightLevel0" unique_id=617635003] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 18.40009, -2.1126924, 21.334354) +light_color = Color(0.810676, 0.621579, 0.6067489, 1) +light_energy = 1.5 +light_size = 0.2 +shadow_enabled = true +omni_range = 11.280827 + +[node name="OmniLight3D3" type="OmniLight3D" parent="Lights/LightLevel0" unique_id=918304264] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -24.523638, -2.1126924, 14.304096) +light_color = Color(0.810676, 0.621579, 0.6067489, 1) +light_energy = 1.5 +light_size = 0.2 +shadow_enabled = true +omni_range = 11.280827 + +[node name="OmniLight3D14" type="OmniLight3D" parent="Lights/LightLevel0" unique_id=1597573435] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -30.475027, -5.066031, -2.8978524) +light_color = Color(0.810676, 0.621579, 0.6067489, 1) +light_energy = 1.5 +light_size = 0.2 +shadow_enabled = true +omni_range = 11.280827 + +[node name="OmniLight3D15" type="OmniLight3D" parent="Lights/LightLevel0" unique_id=116640999] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 30.343237, -5.066031, -3.1424296) +light_color = Color(0.810676, 0.621579, 0.6067489, 1) +light_energy = 1.5 +light_size = 0.2 +shadow_enabled = true +omni_range = 11.280827 + +[node name="OmniLight3D16" type="OmniLight3D" parent="Lights/LightLevel0" unique_id=801358869] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 30.506277, -5.066031, 2.9720063) +light_color = Color(0.810676, 0.621579, 0.6067489, 1) +light_energy = 1.5 +light_size = 0.2 +shadow_enabled = true +omni_range = 11.280827 + +[node name="LightLevel1" type="Node3D" parent="Lights" unique_id=1922457496] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 8.234108, 0) + +[node name="OmniLight3D" type="OmniLight3D" parent="Lights/LightLevel1" unique_id=55476383] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -4.5544157, -2.1126924, 27.90219) +light_color = Color(0.810676, 0.621579, 0.6067489, 1) +light_energy = 1.5 +light_size = 0.2 +shadow_enabled = true +omni_range = 11.280827 + +[node name="OmniLight3D2" type="OmniLight3D" parent="Lights/LightLevel1" unique_id=92670411] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -16.250671, -2.1126924, 23.147612) +light_color = Color(0.810676, 0.621579, 0.6067489, 1) +light_energy = 1.5 +light_size = 0.2 +shadow_enabled = true +omni_range = 11.280827 + +[node name="OmniLight3D5" type="OmniLight3D" parent="Lights/LightLevel1" unique_id=636878856] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -18.694098, -2.1126924, -20.977478) +light_color = Color(0.810676, 0.621579, 0.6067489, 1) +light_energy = 1.5 +light_size = 0.2 +shadow_enabled = true +omni_range = 11.280827 + +[node name="OmniLight3D6" type="OmniLight3D" parent="Lights/LightLevel1" unique_id=1423170075] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -4.2640495, -2.1126924, -28.070211) +light_color = Color(0.810676, 0.621579, 0.6067489, 1) +light_energy = 1.5 +light_size = 0.2 +shadow_enabled = true +omni_range = 11.280827 + +[node name="OmniLight3D7" type="OmniLight3D" parent="Lights/LightLevel1" unique_id=58992978] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 4.133095, -2.1126924, -28.070211) +light_color = Color(0.810676, 0.621579, 0.6067489, 1) +light_energy = 1.5 +light_size = 0.2 +shadow_enabled = true +omni_range = 11.280827 + +[node name="OmniLight3D8" type="OmniLight3D" parent="Lights/LightLevel1" unique_id=2076353163] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 16.688046, -2.1126924, -23.17867) +light_color = Color(0.810676, 0.621579, 0.6067489, 1) +light_energy = 1.5 +light_size = 0.2 +shadow_enabled = true +omni_range = 11.280827 + +[node name="OmniLight3D9" type="OmniLight3D" parent="Lights/LightLevel1" unique_id=1322504637] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 24.514515, -2.1126924, -14.292371) +light_color = Color(0.810676, 0.621579, 0.6067489, 1) +light_energy = 1.5 +light_size = 0.2 +shadow_enabled = true +omni_range = 11.280827 + +[node name="OmniLight3D10" type="OmniLight3D" parent="Lights/LightLevel1" unique_id=69628955] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 26.797234, -2.1126924, 8.860925) +light_color = Color(0.810676, 0.621579, 0.6067489, 1) +light_energy = 1.5 +light_size = 0.2 +shadow_enabled = true +omni_range = 11.280827 + +[node name="OmniLight3D11" type="OmniLight3D" parent="Lights/LightLevel1" unique_id=861056154] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 18.40009, -2.1126924, 21.334354) +light_color = Color(0.810676, 0.621579, 0.6067489, 1) +light_energy = 1.5 +light_size = 0.2 +shadow_enabled = true +omni_range = 11.280827 + +[node name="OmniLight3D12" type="OmniLight3D" parent="Lights/LightLevel1" unique_id=918332677] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 3.4000893, -2.1126924, 27.334354) +light_color = Color(0.810676, 0.621579, 0.6067489, 1) +light_energy = 1.5 +light_size = 0.2 +shadow_enabled = true +omni_range = 11.280827 + +[node name="OmniLight3D3" type="OmniLight3D" parent="Lights/LightLevel1" unique_id=271744912] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -24.523638, -2.1126924, 14.304096) +light_color = Color(0.810676, 0.621579, 0.6067489, 1) +light_energy = 1.5 +light_size = 0.2 +shadow_enabled = true +omni_range = 11.280827 + +[node name="OmniLight3D14" type="OmniLight3D" parent="Lights/LightLevel1" unique_id=1456495033] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -30.475027, -5.066031, -2.8978524) +light_color = Color(0.810676, 0.621579, 0.6067489, 1) +light_energy = 1.5 +light_size = 0.2 +shadow_enabled = true +omni_range = 11.280827 + +[node name="OmniLight3D15" type="OmniLight3D" parent="Lights/LightLevel1" unique_id=1464495731] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 30.343237, -5.066031, -3.1424296) +light_color = Color(0.810676, 0.621579, 0.6067489, 1) +light_energy = 1.5 +light_size = 0.2 +shadow_enabled = true +omni_range = 11.280827 + +[node name="OmniLight3D16" type="OmniLight3D" parent="Lights/LightLevel1" unique_id=512747242] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 30.506277, -5.066031, 2.9720063) +light_color = Color(0.810676, 0.621579, 0.6067489, 1) +light_energy = 1.5 +light_size = 0.2 +shadow_enabled = true +omni_range = 11.280827 + +[node name="LightLevel2" type="Node3D" parent="Lights" unique_id=1658395921] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 16.305164, 0) + +[node name="OmniLight3D" type="OmniLight3D" parent="Lights/LightLevel2" unique_id=1782738053] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -4.5544157, -2.1126924, 27.90219) +light_color = Color(0.810676, 0.621579, 0.6067489, 1) +light_energy = 1.5 +light_size = 0.2 +shadow_enabled = true +omni_range = 11.280827 + +[node name="OmniLight3D2" type="OmniLight3D" parent="Lights/LightLevel2" unique_id=1044065491] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -16.250671, -2.1126924, 23.147612) +light_color = Color(0.810676, 0.621579, 0.6067489, 1) +light_energy = 1.5 +light_size = 0.2 +shadow_enabled = true +omni_range = 11.280827 + +[node name="OmniLight3D4" type="OmniLight3D" parent="Lights/LightLevel2" unique_id=1280223269] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -26.520561, -2.1126924, -9.563883) +light_color = Color(0.810676, 0.621579, 0.6067489, 1) +light_energy = 1.5 +light_size = 0.2 +shadow_enabled = true +omni_range = 11.280827 + +[node name="OmniLight3D5" type="OmniLight3D" parent="Lights/LightLevel2" unique_id=443076410] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -18.694098, -2.1126924, -20.977478) +light_color = Color(0.810676, 0.621579, 0.6067489, 1) +light_energy = 1.5 +light_size = 0.2 +shadow_enabled = true +omni_range = 11.280827 + +[node name="OmniLight3D6" type="OmniLight3D" parent="Lights/LightLevel2" unique_id=795711828] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -4.2640495, -2.1126924, -28.070211) +light_color = Color(0.810676, 0.621579, 0.6067489, 1) +light_energy = 1.5 +light_size = 0.2 +shadow_enabled = true +omni_range = 11.280827 + +[node name="OmniLight3D7" type="OmniLight3D" parent="Lights/LightLevel2" unique_id=39883193] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 4.133095, -2.1126924, -28.070211) +light_color = Color(0.810676, 0.621579, 0.6067489, 1) +light_energy = 1.5 +light_size = 0.2 +shadow_enabled = true +omni_range = 11.280827 + +[node name="OmniLight3D8" type="OmniLight3D" parent="Lights/LightLevel2" unique_id=1022700169] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 16.688046, -2.1126924, -23.17867) +light_color = Color(0.810676, 0.621579, 0.6067489, 1) +light_energy = 1.5 +light_size = 0.2 +shadow_enabled = true +omni_range = 11.280827 + +[node name="OmniLight3D9" type="OmniLight3D" parent="Lights/LightLevel2" unique_id=552912438] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 24.514515, -2.1126924, -14.292371) +light_color = Color(0.810676, 0.621579, 0.6067489, 1) +light_energy = 1.5 +light_size = 0.2 +shadow_enabled = true +omni_range = 11.280827 + +[node name="OmniLight3D10" type="OmniLight3D" parent="Lights/LightLevel2" unique_id=1298855751] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 26.797234, -2.1126924, 8.860925) +light_color = Color(0.810676, 0.621579, 0.6067489, 1) +light_energy = 1.5 +light_size = 0.2 +shadow_enabled = true +omni_range = 11.280827 + +[node name="OmniLight3D12" type="OmniLight3D" parent="Lights/LightLevel2" unique_id=111834629] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 3.4000893, -2.1126924, 27.334354) +light_color = Color(0.810676, 0.621579, 0.6067489, 1) +light_energy = 1.5 +light_size = 0.2 +shadow_enabled = true +omni_range = 11.280827 + +[node name="OmniLight3D3" type="OmniLight3D" parent="Lights/LightLevel2" unique_id=1375255226] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -24.523638, -2.1126924, 14.304096) +light_color = Color(0.810676, 0.621579, 0.6067489, 1) +light_energy = 1.5 +light_size = 0.2 +shadow_enabled = true +omni_range = 11.280827 + +[node name="OmniLight3D13" type="OmniLight3D" parent="Lights/LightLevel2" unique_id=18165508] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -30.556553, -5.066031, 2.7274294) +light_color = Color(0.810676, 0.621579, 0.6067489, 1) +light_energy = 1.5 +light_size = 0.2 +shadow_enabled = true +omni_range = 11.280827 + +[node name="OmniLight3D14" type="OmniLight3D" parent="Lights/LightLevel2" unique_id=1731050516] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -30.475027, -5.066031, -2.8978524) +light_color = Color(0.810676, 0.621579, 0.6067489, 1) +light_energy = 1.5 +light_size = 0.2 +shadow_enabled = true +omni_range = 11.280827 + +[node name="OmniLight3D15" type="OmniLight3D" parent="Lights/LightLevel2" unique_id=1704489957] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 30.343237, -5.066031, -3.1424296) +light_color = Color(0.810676, 0.621579, 0.6067489, 1) +light_energy = 1.5 +light_size = 0.2 +shadow_enabled = true +omni_range = 11.280827 + +[node name="OmniLight3D16" type="OmniLight3D" parent="Lights/LightLevel2" unique_id=1994672189] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 30.506277, -5.066031, 2.9720063) +light_color = Color(0.810676, 0.621579, 0.6067489, 1) +light_energy = 1.5 +light_size = 0.2 +shadow_enabled = true +omni_range = 11.280827 + +[node name="LightLevel3" type="Node3D" parent="Lights" unique_id=593657748] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 24.213167, 0) + +[node name="OmniLight3D" type="OmniLight3D" parent="Lights/LightLevel3" unique_id=1849026334] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -4.5544157, -2.1126924, 27.90219) +light_color = Color(0.810676, 0.621579, 0.6067489, 1) +light_energy = 1.5 +light_size = 0.2 +shadow_enabled = true +omni_range = 11.280827 + +[node name="OmniLight3D2" type="OmniLight3D" parent="Lights/LightLevel3" unique_id=691708052] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -16.250671, -2.1126924, 23.147612) +light_color = Color(0.810676, 0.621579, 0.6067489, 1) +light_energy = 1.5 +light_size = 0.2 +shadow_enabled = true +omni_range = 11.280827 + +[node name="OmniLight3D4" type="OmniLight3D" parent="Lights/LightLevel3" unique_id=1166186573] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -26.520561, -2.1126924, -9.563883) +light_color = Color(0.810676, 0.621579, 0.6067489, 1) +light_energy = 1.5 +light_size = 0.2 +shadow_enabled = true +omni_range = 11.280827 + +[node name="OmniLight3D5" type="OmniLight3D" parent="Lights/LightLevel3" unique_id=2008819922] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -18.694098, -2.1126924, -20.977478) +light_color = Color(0.810676, 0.621579, 0.6067489, 1) +light_energy = 1.5 +light_size = 0.2 +shadow_enabled = true +omni_range = 11.280827 + +[node name="OmniLight3D6" type="OmniLight3D" parent="Lights/LightLevel3" unique_id=588150842] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -4.2640495, -2.1126924, -28.070211) +light_color = Color(0.810676, 0.621579, 0.6067489, 1) +light_energy = 1.5 +light_size = 0.2 +shadow_enabled = true +omni_range = 11.280827 + +[node name="OmniLight3D7" type="OmniLight3D" parent="Lights/LightLevel3" unique_id=1080987600] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 4.133095, -2.1126924, -28.070211) +light_color = Color(0.810676, 0.621579, 0.6067489, 1) +light_energy = 1.5 +light_size = 0.2 +shadow_enabled = true +omni_range = 11.280827 + +[node name="OmniLight3D8" type="OmniLight3D" parent="Lights/LightLevel3" unique_id=580549053] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 16.688046, -2.1126924, -23.17867) +light_color = Color(0.810676, 0.621579, 0.6067489, 1) +light_energy = 1.5 +light_size = 0.2 +shadow_enabled = true +omni_range = 11.280827 + +[node name="OmniLight3D9" type="OmniLight3D" parent="Lights/LightLevel3" unique_id=639850990] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 24.514515, -2.1126924, -14.292371) +light_color = Color(0.810676, 0.621579, 0.6067489, 1) +light_energy = 1.5 +light_size = 0.2 +shadow_enabled = true +omni_range = 11.280827 + +[node name="OmniLight3D10" type="OmniLight3D" parent="Lights/LightLevel3" unique_id=559970503] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 26.797234, -2.1126924, 8.860925) +light_color = Color(0.810676, 0.621579, 0.6067489, 1) +light_energy = 1.5 +light_size = 0.2 +shadow_enabled = true +omni_range = 11.280827 + +[node name="OmniLight3D11" type="OmniLight3D" parent="Lights/LightLevel3" unique_id=1743215246] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 18.40009, -2.1126924, 21.334354) +light_color = Color(0.810676, 0.621579, 0.6067489, 1) +light_energy = 1.5 +light_size = 0.2 +shadow_enabled = true +omni_range = 11.280827 + +[node name="OmniLight3D12" type="OmniLight3D" parent="Lights/LightLevel3" unique_id=814917578] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 3.4000893, -2.1126924, 27.334354) +light_color = Color(0.810676, 0.621579, 0.6067489, 1) +light_energy = 1.5 +light_size = 0.2 +shadow_enabled = true +omni_range = 11.280827 + +[node name="OmniLight3D3" type="OmniLight3D" parent="Lights/LightLevel3" unique_id=1601525784] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -24.523638, -2.1126924, 14.304096) +light_color = Color(0.810676, 0.621579, 0.6067489, 1) +light_energy = 1.5 +light_size = 0.2 +shadow_enabled = true +omni_range = 11.280827 + +[node name="OmniLight3D13" type="OmniLight3D" parent="Lights/LightLevel3" unique_id=730066980] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -30.556553, -5.066031, 2.7274294) +light_color = Color(0.810676, 0.621579, 0.6067489, 1) +light_energy = 1.5 +light_size = 0.2 +shadow_enabled = true +omni_range = 11.280827 + +[node name="OmniLight3D14" type="OmniLight3D" parent="Lights/LightLevel3" unique_id=1530299322] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -30.475027, -5.066031, -2.8978524) +light_color = Color(0.810676, 0.621579, 0.6067489, 1) +light_energy = 1.5 +light_size = 0.2 +shadow_enabled = true +omni_range = 11.280827 + +[node name="OmniLight3D15" type="OmniLight3D" parent="Lights/LightLevel3" unique_id=1068729638] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 30.343237, -5.066031, -3.1424296) +light_color = Color(0.810676, 0.621579, 0.6067489, 1) +light_energy = 1.5 +light_size = 0.2 +shadow_enabled = true +omni_range = 11.280827 + +[node name="OmniLight3D16" type="OmniLight3D" parent="Lights/LightLevel3" unique_id=958960524] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 30.506277, -5.066031, 2.9720063) +light_color = Color(0.810676, 0.621579, 0.6067489, 1) +light_energy = 1.5 +light_size = 0.2 +shadow_enabled = true +omni_range = 11.280827 + +[node name="LightLevel4" type="Node3D" parent="Lights" unique_id=142117256] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 31.95812, 0) + +[node name="OmniLight3D" type="OmniLight3D" parent="Lights/LightLevel4" unique_id=1721481718] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -4.5544157, -2.1126924, 27.90219) +light_color = Color(0.810676, 0.621579, 0.6067489, 1) +light_energy = 1.5 +light_size = 0.2 +shadow_enabled = true +omni_range = 11.280827 + +[node name="OmniLight3D2" type="OmniLight3D" parent="Lights/LightLevel4" unique_id=631610076] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -16.250671, -2.1126924, 23.147612) +light_color = Color(0.810676, 0.621579, 0.6067489, 1) +light_energy = 1.5 +light_size = 0.2 +shadow_enabled = true +omni_range = 11.280827 + +[node name="OmniLight3D4" type="OmniLight3D" parent="Lights/LightLevel4" unique_id=1226751360] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -26.520561, -2.1126924, -9.563883) +light_color = Color(0.810676, 0.621579, 0.6067489, 1) +light_energy = 1.5 +light_size = 0.2 +shadow_enabled = true +omni_range = 11.280827 + +[node name="OmniLight3D5" type="OmniLight3D" parent="Lights/LightLevel4" unique_id=1200952030] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -18.694098, -2.1126924, -20.977478) +light_color = Color(0.810676, 0.621579, 0.6067489, 1) +light_energy = 1.5 +light_size = 0.2 +shadow_enabled = true +omni_range = 11.280827 + +[node name="OmniLight3D6" type="OmniLight3D" parent="Lights/LightLevel4" unique_id=1061376340] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -4.2640495, -2.1126924, -28.070211) +light_color = Color(0.810676, 0.621579, 0.6067489, 1) +light_energy = 1.5 +light_size = 0.2 +shadow_enabled = true +omni_range = 11.280827 + +[node name="OmniLight3D7" type="OmniLight3D" parent="Lights/LightLevel4" unique_id=1457730086] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 4.133095, -2.1126924, -28.070211) +light_color = Color(0.810676, 0.621579, 0.6067489, 1) +light_energy = 1.5 +light_size = 0.2 +shadow_enabled = true +omni_range = 11.280827 + +[node name="OmniLight3D8" type="OmniLight3D" parent="Lights/LightLevel4" unique_id=1189108084] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 16.688046, -2.1126924, -23.17867) +light_color = Color(0.810676, 0.621579, 0.6067489, 1) +light_energy = 1.5 +light_size = 0.2 +shadow_enabled = true +omni_range = 11.280827 + +[node name="OmniLight3D9" type="OmniLight3D" parent="Lights/LightLevel4" unique_id=1446282714] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 24.514515, -2.1126924, -14.292371) +light_color = Color(0.810676, 0.621579, 0.6067489, 1) +light_energy = 1.5 +light_size = 0.2 +shadow_enabled = true +omni_range = 11.280827 + +[node name="OmniLight3D10" type="OmniLight3D" parent="Lights/LightLevel4" unique_id=572630565] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 26.797234, -2.1126924, 8.860925) +light_color = Color(0.810676, 0.621579, 0.6067489, 1) +light_energy = 1.5 +light_size = 0.2 +shadow_enabled = true +omni_range = 11.280827 + +[node name="OmniLight3D11" type="OmniLight3D" parent="Lights/LightLevel4" unique_id=452891791] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 18.40009, -2.1126924, 21.334354) +light_color = Color(0.810676, 0.621579, 0.6067489, 1) +light_energy = 1.5 +light_size = 0.2 +shadow_enabled = true +omni_range = 11.280827 + +[node name="OmniLight3D12" type="OmniLight3D" parent="Lights/LightLevel4" unique_id=1670406469] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 3.4000893, -2.1126924, 27.334354) +light_color = Color(0.810676, 0.621579, 0.6067489, 1) +light_energy = 1.5 +light_size = 0.2 +shadow_enabled = true +omni_range = 11.280827 + +[node name="OmniLight3D3" type="OmniLight3D" parent="Lights/LightLevel4" unique_id=1477089662] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -24.523638, -2.1126924, 14.304096) +light_color = Color(0.810676, 0.621579, 0.6067489, 1) +light_energy = 1.5 +light_size = 0.2 +shadow_enabled = true +omni_range = 11.280827 + +[node name="OmniLight3D13" type="OmniLight3D" parent="Lights/LightLevel4" unique_id=1821591613] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -30.556553, -5.066031, 2.7274294) +light_color = Color(0.810676, 0.621579, 0.6067489, 1) +light_energy = 1.5 +light_size = 0.2 +shadow_enabled = true +omni_range = 11.280827 + +[node name="OmniLight3D14" type="OmniLight3D" parent="Lights/LightLevel4" unique_id=277413158] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -30.475027, -5.066031, -2.8978524) +light_color = Color(0.810676, 0.621579, 0.6067489, 1) +light_energy = 1.5 +light_size = 0.2 +shadow_enabled = true +omni_range = 11.280827 + +[node name="OmniLight3D15" type="OmniLight3D" parent="Lights/LightLevel4" unique_id=2012725183] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 30.343237, -5.066031, -3.1424296) +light_color = Color(0.810676, 0.621579, 0.6067489, 1) +light_energy = 1.5 +light_size = 0.2 +shadow_enabled = true +omni_range = 11.280827 + +[node name="OmniLight3D16" type="OmniLight3D" parent="Lights/LightLevel4" unique_id=59140504] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 30.506277, -5.066031, 2.9720063) +light_color = Color(0.810676, 0.621579, 0.6067489, 1) +light_energy = 1.5 +light_size = 0.2 +shadow_enabled = true +omni_range = 11.280827 + +[node name="LightLevel5" type="Node3D" parent="Lights" unique_id=525951054] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 40.090714, 0) + +[node name="OmniLight3D13" type="OmniLight3D" parent="Lights/LightLevel5" unique_id=2058425414] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -30.556553, -5.066031, 2.7274294) +light_color = Color(0.810676, 0.621579, 0.6067489, 1) +light_energy = 1.5 +light_size = 0.2 +shadow_enabled = true +omni_range = 11.280827 + +[node name="OmniLight3D14" type="OmniLight3D" parent="Lights/LightLevel5" unique_id=1964162867] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -30.475027, -5.066031, -2.8978524) +light_color = Color(0.810676, 0.621579, 0.6067489, 1) +light_energy = 1.5 +light_size = 0.2 +shadow_enabled = true +omni_range = 11.280827 + +[node name="OmniLight3D15" type="OmniLight3D" parent="Lights/LightLevel5" unique_id=1968781717] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 30.343237, -5.066031, -3.1424296) +light_color = Color(0.810676, 0.621579, 0.6067489, 1) +light_energy = 1.5 +light_size = 0.2 +shadow_enabled = true +omni_range = 11.280827 + +[node name="OmniLight3D16" type="OmniLight3D" parent="Lights/LightLevel5" unique_id=1720654262] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 30.506277, -5.066031, 2.9720063) +light_color = Color(0.810676, 0.621579, 0.6067489, 1) +light_energy = 1.5 +light_size = 0.2 +shadow_enabled = true +omni_range = 11.280827 + +[node name="LightColumnLeft" type="Node3D" parent="Lights" unique_id=366580628] + +[node name="OmniLight3D" type="OmniLight3D" parent="Lights/LightColumnLeft" unique_id=33457178] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -21.076054, 47.19723, 0) +light_color = Color(0.99998575, 0.29117814, 0.45017415, 1) +light_energy = 2.285 +shadow_enabled = true +omni_range = 23.647278 + +[node name="OmniLight3D2" type="OmniLight3D" parent="Lights/LightColumnLeft" unique_id=1523001666] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -20.213203, 29.529121, 0) +light_color = Color(0.99998575, 0.29117814, 0.45017415, 1) +light_energy = 2.285 +shadow_enabled = true +omni_range = 55.975483 + +[node name="OmniLight3D3" type="OmniLight3D" parent="Lights/LightColumnLeft" unique_id=1636195463] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -20.213203, 10.504702, 0) +light_color = Color(0.99998575, 0.29117814, 0.45017415, 1) +light_energy = 2.285 +shadow_enabled = true +omni_range = 55.975483 + +[node name="LightColumnRight" type="Node3D" parent="Lights" unique_id=736248586] +transform = Transform3D(-1, 0, 8.742278e-08, 0, 1, 0, -8.742278e-08, 0, -1, 0, 0, 0) + +[node name="OmniLight3D" type="OmniLight3D" parent="Lights/LightColumnRight" unique_id=291131726] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -21.076054, 47.19723, 0) +light_color = Color(0.99998575, 0.29117814, 0.45017415, 1) +light_energy = 2.285 +shadow_enabled = true +omni_range = 23.647278 + +[node name="OmniLight3D2" type="OmniLight3D" parent="Lights/LightColumnRight" unique_id=1200961344] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -20.213203, 29.529121, 0) +light_color = Color(0.99998575, 0.29117814, 0.45017415, 1) +light_energy = 2.285 +shadow_enabled = true +omni_range = 55.975483 + +[node name="OmniLight3D3" type="OmniLight3D" parent="Lights/LightColumnRight" unique_id=652563138] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -20.213203, 10.504702, 0) +light_color = Color(0.99998575, 0.29117814, 0.45017415, 1) +light_energy = 2.285 +shadow_enabled = true +omni_range = 55.975483 + +[node name="ServerRoom" type="Node3D" parent="Lights" unique_id=827961816] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 2.9412785, -8.026912, -119.36721) + +[node name="OmniLight3D" type="OmniLight3D" parent="Lights/ServerRoom" unique_id=1844581848] +light_color = Color(0.9334627, 0.52057, 0.67796034, 1) +shadow_enabled = true +omni_range = 26.349659 + +[node name="OmniLight3D2" type="OmniLight3D" parent="Lights/ServerRoom" unique_id=2066101397] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 25.241997) +light_color = Color(0.9334627, 0.52057, 0.67796034, 1) +shadow_enabled = true +omni_range = 26.349659 + +[node name="OmniLight3D3" type="OmniLight3D" parent="Lights/ServerRoom" unique_id=549929558] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 42.92135) +light_color = Color(0.9334627, 0.52057, 0.67796034, 1) +shadow_enabled = true +omni_range = 26.349659 + +[node name="OmniLight3D4" type="OmniLight3D" parent="Lights/ServerRoom" unique_id=1196915107] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 61.630135) +light_color = Color(0.9334627, 0.52057, 0.67796034, 1) +shadow_enabled = true +omni_range = 26.349659 + +[node name="SpotLight3D" type="SpotLight3D" parent="Lights/ServerRoom" unique_id=1984749666] +transform = Transform3D(1, 0, 0, 0, -0.037829712, 0.9992842, 0, -0.9992842, -0.037829712, 0, 47.72103, -28.07676) +light_color = Color(0.6902202, 0.87386894, 0.8121308, 1) +light_energy = 9.0 +shadow_enabled = true +spot_range = 95.488 +spot_attenuation = 0.4 +spot_angle = 32.1892 + +[node name="AnimationPlayer" type="AnimationPlayer" parent="Lights" unique_id=1792239301] +root_node = NodePath("../../Player3D") +libraries/ = SubResource("AnimationLibrary_c8vcx") +autoplay = &"blink" + +[node name="WorldEnvironment" type="WorldEnvironment" parent="." unique_id=1121246225] +environment = SubResource("Environment_fevne") + +[node name="AmbianceChangeDetector" type="Area3D" parent="." unique_id=1401161313] +transform = Transform3D(0.25881904, 0, 0.96592593, 0, 1, 0, -0.96592593, 0, 0.25881904, 2.7012572, -5.600957, -42.815655) + +[node name="CollisionShape3D" type="CollisionShape3D" parent="AmbianceChangeDetector" unique_id=1969356725] +transform = Transform3D(0.9999994, 0, 0, 0, 1, 0, 0, 0, 0.9999994, -9.359516, 0.82910156, 2.9935746) +shape = SubResource("BoxShape3D_c8vcx") + +[node name="Player3D" parent="." unique_id=549819967 instance=ExtResource("3_c8vcx")] +unique_name_in_owner = true +transform = Transform3D(0.25881904, 0, 0.96592593, 0, 1, 0, -0.96592593, 0, 0.25881904, 29.244379, 41.40791, 8.823577) +speed = 5.0 + +[node name="Phone" parent="." unique_id=429299908 instance=ExtResource("4_fevne")] +unique_name_in_owner = true +transform = Transform3D(-0.93482566, 0, 0.35510686, 0, 1, 0, -0.35510686, 0, -0.93482566, 3.7943206, -7.5537004, -130.16013) + +[node name="borea_base" parent="." unique_id=1161090043 instance=ExtResource("4_s7tqr")] + +[node name="Credits" parent="." unique_id=180964898 instance=ExtResource("6_c8vcx")] +unique_name_in_owner = true + +[node name="TrailerCamera" type="Camera3D" parent="." unique_id=649852434] +unique_name_in_owner = true +transform = Transform3D(1, 0, 0, 0, -4.3711392e-08, 1, 0, -1, -4.3711392e-08, 0, 60.366375, 0) +near = 0.003 + +[node name="AnimationPlayer" type="AnimationPlayer" parent="TrailerCamera" unique_id=1238675722] +root_node = NodePath("../..") +libraries/ = SubResource("AnimationLibrary_hlox4") +autoplay = &"trailer" + +[node name="MeshInstance3D" type="MeshInstance3D" parent="TrailerCamera" unique_id=1018268636] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 2.263265e-08, 0, -0.7177747) +mesh = SubResource("QuadMesh_2ei4e") +surface_material_override/0 = ExtResource("7_s7tqr") + +[connection signal="body_entered" from="AmbianceChangeDetector" to="." method="_on_ambiance_change_detector_body_entered"] diff --git a/stages/3d_scenes/end_base/scripts/borea_base.gd b/stages/3d_scenes/end_base/scripts/borea_base.gd new file mode 100644 index 0000000..a16cfb2 --- /dev/null +++ b/stages/3d_scenes/end_base/scripts/borea_base.gd @@ -0,0 +1,22 @@ +extends Node3D + +const OUTRO_TIMELINE_PATH = "res://dialogs/timelines/tutorial/demeter_outro.dtl" + +# Called when the node enters the scene tree for the first time. +func _ready(): + %Credits.hide() + Input.mouse_mode = Input.MOUSE_MODE_CAPTURED + + await %Phone.clicked + Dialogic.start(OUTRO_TIMELINE_PATH) + await Dialogic.timeline_ended + Input.mouse_mode = Input.MOUSE_MODE_VISIBLE + %Credits.show() + AudioManager.play_music("Demo_end", false, 5.0) + AudioManager.stop_all_ambiances() + +func _on_ambiance_change_detector_body_entered(body: Node3D): + if body is Player3D: + AudioManager.stop_all_ambiances() + AudioManager.play_music("Demo_end", false, 5.0) + diff --git a/stages/3d_scenes/end_base/scripts/borea_base.gd.uid b/stages/3d_scenes/end_base/scripts/borea_base.gd.uid new file mode 100644 index 0000000..8b1d559 --- /dev/null +++ b/stages/3d_scenes/end_base/scripts/borea_base.gd.uid @@ -0,0 +1 @@ +uid://btc447j47jbx0 diff --git a/stages/terrain/region/scripts/chunk.gd b/stages/terrain/region/scripts/chunk.gd index 53f606b..d16e73e 100644 --- a/stages/terrain/region/scripts/chunk.gd +++ b/stages/terrain/region/scripts/chunk.gd @@ -15,6 +15,8 @@ const DECONTAMINATION_NOISE_FREQUENCY := 0.008 const CHUNK_RANDOM_PADDING := 1 +signal generated + @export var region_data : RegionData @export var chunk_coord : Vector2i @@ -95,6 +97,7 @@ func generate(): add_child.call_deferred(ground_layer) add_child.call_deferred(decontamination_layer) + generated.emit() is_generated = true func calculate_all_tiles() -> Array[Vector2i]: diff --git a/stages/terrain/region/scripts/modifiers/cave_modifier.gd b/stages/terrain/region/scripts/modifiers/cave_modifier.gd new file mode 100644 index 0000000..6280a96 --- /dev/null +++ b/stages/terrain/region/scripts/modifiers/cave_modifier.gd @@ -0,0 +1,25 @@ +extends RegionModifier +class_name CaveModifier + +func get_modifier_name() -> String: + return tr("CRISTAL_CAVE") + +func get_description() -> String: + return tr("CRISTAL_CAVE_MODIFIER_DESC_TEXT") + +func get_icon() -> Texture: + return preload("res://common/icons/cristal.svg") + +func get_card_section_color() -> Color: + return Color("25c147") + +func region_ready(region : Region) -> void: + var new_cave_door = generate_door( + tr("CRISTAL_CAVE"), + tr("CRISTAL_CAVE_DOOR_DESC_TEXT") + ) + new_cave_door.to_scene = CaveScene.new(new_cave_door.door_id) + new_cave_door.available = region.data.completed_doors.find(new_cave_door.door_id) == -1 + + region.add_entity(new_cave_door) + region.random_move_object(new_cave_door,Region.DOORS_RANDOM_MOVEMENT) diff --git a/stages/terrain/region/scripts/modifiers/cave_modifier.gd.uid b/stages/terrain/region/scripts/modifiers/cave_modifier.gd.uid new file mode 100644 index 0000000..4e5660c --- /dev/null +++ b/stages/terrain/region/scripts/modifiers/cave_modifier.gd.uid @@ -0,0 +1 @@ +uid://d3g06x6sagcc5 diff --git a/stages/terrain/region/scripts/modifiers/contaminated_modifier.gd b/stages/terrain/region/scripts/modifiers/contaminated_modifier.gd index 1f0a982..fbf9868 100644 --- a/stages/terrain/region/scripts/modifiers/contaminated_modifier.gd +++ b/stages/terrain/region/scripts/modifiers/contaminated_modifier.gd @@ -13,8 +13,8 @@ func get_icon() -> Texture: func get_card_section_color() -> Color: return Color("8b2dffff") -func modify_plant_seed_random_loose(plant_seed_random_loose : int) -> int: - return plant_seed_random_loose + 1 +# func modify_plant_seed_random_loose(plant_seed_random_loose : int) -> int: +# return plant_seed_random_loose + 1 func modify_plant_seed_number(plant_seed_number : int) -> int: return plant_seed_number - 1 \ No newline at end of file diff --git a/stages/terrain/region/scripts/modifiers/magnetic_modifier.gd b/stages/terrain/region/scripts/modifiers/magnetic_modifier.gd new file mode 100644 index 0000000..9ad177b --- /dev/null +++ b/stages/terrain/region/scripts/modifiers/magnetic_modifier.gd @@ -0,0 +1,17 @@ +extends RegionModifier +class_name MagneticModifier + +func get_modifier_name() -> String: + return tr("MAGNETIC") + +func get_description() -> String: + return tr("MAGNETIC_MODIFIER_DESC_TEXT") + +func get_icon() -> Texture: + return preload("res://common/icons/magnet.svg") + +func modify_objective(objective : int) -> int: + return roundi(float(objective) / 2) + +func modify_charge(charge : int) -> int: + return roundi(float(charge) / 2) \ No newline at end of file diff --git a/stages/terrain/region/scripts/modifiers/magnetic_modifier.gd.uid b/stages/terrain/region/scripts/modifiers/magnetic_modifier.gd.uid new file mode 100644 index 0000000..3ec4918 --- /dev/null +++ b/stages/terrain/region/scripts/modifiers/magnetic_modifier.gd.uid @@ -0,0 +1 @@ +uid://3mu4qmgpyg6s diff --git a/stages/terrain/region/scripts/modifiers/tutorial_modifier.gd b/stages/terrain/region/scripts/modifiers/tutorial_modifier.gd index cbb6c64..5f7b975 100644 --- a/stages/terrain/region/scripts/modifiers/tutorial_modifier.gd +++ b/stages/terrain/region/scripts/modifiers/tutorial_modifier.gd @@ -12,9 +12,15 @@ func get_description() -> String: func get_icon() -> Texture: return preload("res://common/icons/help-hexagon.svg") +func modify_seed_rarity_pool(_seed_rarity_pool : Array[int]) -> Array[int]: + return [-1] + func modify_charge(charge : int) -> int: return charge+10 +func modify_mutation_probability(_plant_mutation_probability) -> float: + return 1. + func get_card_section_color() -> Color: return Color("25c147") diff --git a/stages/terrain/region/scripts/post_process/meteo.gd b/stages/terrain/region/scripts/post_process/meteo.gd index a13e1d2..500043f 100644 --- a/stages/terrain/region/scripts/post_process/meteo.gd +++ b/stages/terrain/region/scripts/post_process/meteo.gd @@ -39,23 +39,19 @@ func generate(): 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" wind_force = rng.randf_range(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/region.gd b/stages/terrain/region/scripts/region.gd index bfeb118..617d7d9 100644 --- a/stages/terrain/region/scripts/region.gd +++ b/stages/terrain/region/scripts/region.gd @@ -169,7 +169,7 @@ func random_move_object( rng.randf_range(-random_movement,random_movement) ) + offset - dig_hole(object.position, 5) + dig_hole(object.global_position, 100) func is_chunk_generated(coord : Vector2i): return generated_chunks.find_custom( @@ -247,7 +247,7 @@ func is_coords_decontaminated(tiles_coords : Array[Vector2i]): func dig_rocks(tiles_coords : Array[Vector2i], save_tiles_diff := true, loot := true): if save_tiles_diff : data.rock_tiles_data.update_tiles_diff(tiles_coords, TilesDiffData.TileDiff.ABSENT) - + for coord in tiles_coords: var chunk : Chunk = get_chunk_for_coord(coord) if chunk: @@ -259,17 +259,11 @@ func dig_rocks(tiles_coords : Array[Vector2i], save_tiles_diff := true, loot := chunk.rock_layer.remove_rocks([local_coord]) func dig_hole(game_pos: Vector2, size : int): - var hole_tiles : Array[Vector2i] = [] - var tile_position := Vector2i( - roundi(game_pos.x/float(Region.TILE_SIZE)), - roundi(game_pos.y/float(Region.TILE_SIZE)) + var hole_tiles : Array[Vector2i] = Math.get_tiles_in_circle( + game_pos, + size ) - for x in range(-size, size): - for y in range(-size, size): - var coord = Vector2i(x,y) - if coord.distance_to(Vector2.ZERO) < size: - hole_tiles.append(coord + tile_position) - dig_rocks(hole_tiles,false,false) + dig_rocks(hole_tiles,true,false) func loot_talion(coord : Vector2i): var new_seed = Seed.generate_random(data.seed_rarity_pool.pick_random()) diff --git a/stages/terrain/region/scripts/region_data.gd b/stages/terrain/region/scripts/region_data.gd index c492b63..a9ef114 100644 --- a/stages/terrain/region/scripts/region_data.gd +++ b/stages/terrain/region/scripts/region_data.gd @@ -11,8 +11,6 @@ signal pass_day_started(region_data : RegionData) signal pass_day_proceeded(region_data : RegionData) signal pass_day_ended(region_data : RegionData) -const DEFAULT_START_CHARGE := 10 -const DEFAULT_OBJECTIVE := 10 const MAX_RANDOM_SPAWN_DISTANCE = 3000 const START_ROCK_HOLE_RADIUS = 5 const PLAYER_ROCK_HOLE_RADIUS = 5 diff --git a/stages/terrain/region/scripts/region_parameter.gd b/stages/terrain/region/scripts/region_parameter.gd index 29e6ced..e97ac21 100644 --- a/stages/terrain/region/scripts/region_parameter.gd +++ b/stages/terrain/region/scripts/region_parameter.gd @@ -6,10 +6,11 @@ const DEFAULT_DECONTAMINATION_THRESHOLD = 0.4 const DEFAULT_CRISTAL_THRESHOLD = 0.1 const DEFAULT_CHARGE = 8 const DEFAULT_START_DECONTAMINATION_ZONE_RADIUS = 3 -const DEFAULT_SEED_RARITY_POOL: Array[int] = [0,0,0,0,0,0,0,1,1,1] +const DEFAULT_SEED_RARITY_POOL: Array[int] = [-1,-1,-1,-1,0,0,0,0,1,1] @export var region_name : String @export var objective : int +@export var charge : int @export var region_seed : int @export var modifiers : Array[RegionModifier] @@ -45,15 +46,13 @@ func is_objective_disabled() -> bool: var d = false for m in modifiers: - print(m.modifier_name) - print(m.disable_objective()) if m.disable_objective(): d = true return d func get_charge() -> int: - var c = DEFAULT_CHARGE + var c = charge for m in modifiers: c = m.modify_charge(c) diff --git a/stages/title_screen/assets/materials/planet_3d_terrain.tres b/stages/title_screen/assets/materials/planet_3d_terrain.tres index 0ee0d15..69450bc 100644 --- a/stages/title_screen/assets/materials/planet_3d_terrain.tres +++ b/stages/title_screen/assets/materials/planet_3d_terrain.tres @@ -22,8 +22,8 @@ render_priority = 0 shader = ExtResource("1_2voo7") shader_parameter/specular = 0.0 shader_parameter/roughness = 0.6 -shader_parameter/radius = 8.0 -shader_parameter/height = 3.81 +shader_parameter/radius = 150.0 +shader_parameter/height = 100.0 shader_parameter/gradient = ExtResource("2_t1vtm") shader_parameter/random_fertility_texture = SubResource("NoiseTexture2D_8o8xi") shader_parameter/fertility_gradient = SubResource("GradientTexture1D_neuam") diff --git a/translation/dialogs/dialogic_cave_translation.csv b/translation/dialogs/dialogic_cave_translation.csv new file mode 100644 index 0000000..77f1820 --- /dev/null +++ b/translation/dialogs/dialogic_cave_translation.csv @@ -0,0 +1,12 @@ +keys,en,fr +Text/e5/text,I hope everything is going well for you so far. I'm calling because the next regions you're heading to contain unique rock formations: the [b]Caverns of Talion[/b].,"J'espère que tout se passe bien pour toi pour l'instant. Je t'appelle, car les prochaines régions vers lesquelles tu te diriges contiennent des formations rocheuses uniques : des [b]Cavernes de Talion[/b]." +Choice/e6/text,Talion hadn't disappeared?,"Le talion n'avait pas disparu ?" +Choice/e6/disabled_text,, +Text/e7/text,"Precisely, I'd like you to check for me if its reappearance on the surface also means its reappearance in the caverns.","Justement, j'aimerais que tu vérifies pour moi si sa réapparition à la surface signifie aussi sa réapparition dans les cavernes." +Choice/e8/text,How do you know?,"Comment tu le sait ?" +Choice/e8/disabled_text,, +Text/e9/text,"Ces cavernes étaient bien connu des humains. Certains y allaient pour étudier le Talion, d'autres pour explorer la grotte. Ces explorations étaient très risquées, mais apparement certains humains aimaient beaucoup risquer leur vie...","Ces cavernes étaient bien connues des humains. Certains y allaient pour étudier le Talion, d'autres pour explorer la grotte. Ces explorations étaient très risquées, mais apparemment certains humains aimaient beaucoup risquer leur vie..." +Choice/ea/text,What does that change for me?,"Qu'est-ce que ça change pour moi ?" +Choice/ea/disabled_text,, +Text/eb/text,"The crystals in these caverns are special; they don't produce life, but they release a powerful mutagenic energy into the air. This will surely help you grow more powerfull plants for the rest of your journey.","Les cristaux de ces grottes sont spéciaux, ils ne produisent pas de vie, mais libèrent dans l'air un puissant pouvoir mutagène. Celui-ci pourra sûrement t'aider à avoir des plantes plus puissantes pour le reste de ton voyage." +Text/ec/text,Use your detector to find the entrance to the cave; humans had installed an elevator there.,"Utilise ton détecteur pour trouver l'entrée de la grotte, les humains y avaient aménagé un ascenseur." diff --git a/translation/dialogs/dialogic_cave_translation.csv.import b/translation/dialogs/dialogic_cave_translation.csv.import new file mode 100644 index 0000000..e90f66f --- /dev/null +++ b/translation/dialogs/dialogic_cave_translation.csv.import @@ -0,0 +1,19 @@ +[remap] + +importer="csv_translation" +type="Translation" +uid="uid://dif3sphy3ar03" + +[deps] + +files=["res://translation/dialogs/dialogic_cave_translation.en.translation", "res://translation/dialogs/dialogic_cave_translation.fr.translation"] + +source_file="res://translation/dialogs/dialogic_cave_translation.csv" +dest_files=["res://translation/dialogs/dialogic_cave_translation.en.translation", "res://translation/dialogs/dialogic_cave_translation.fr.translation"] + +[params] + +compress=1 +delimiter=0 +unescape_keys=false +unescape_translations=true diff --git a/translation/game/gui.csv b/translation/game/gui.csv index 8962851..e93a135 100644 --- a/translation/game/gui.csv +++ b/translation/game/gui.csv @@ -124,11 +124,15 @@ DIG_A_TALION_VEIN_WITH_SHOVEL,Dig a [b]Talion Vein[/b] with the [b]Pickaxe[/b],C PLANT_SEED_IN_FERTILE_ZONE,Plant a [b]Seed[/b] in the [b]Fertile Zone[/b],Planter une [b]Graine[/b] dans la [b]Zone Fertile[/b] GAIN_FIRST_PLANT_POINT,Earn your first [b]Plant Point[/b] while waiting for a plant to [b]Mature[/b] (recharging will pass days),Gagnez votre premier [b]Point de Plante[/b] en attendant qu'une plante soit [b]Mature[/b] (se recharger fera passer les jours) HARVEST_A_MATURE_PLANT,Harvest a [b]Mature Plant[/b] using your [b]Fork[/b],Récoltez une [b]Plante Mature[/b] en utilisant votre [b]Fourche[/b] -PLANT_NAME_TEXT,"[b]Plant name and state[/b] Each plant species has a unique name and can have 2 states: juvenile and mature","[b]Nom et état de la plante[/b] Chaque espèce de plantes a un nom unique et chaque plante peut avoir deux états : juvénile et mature" +TAKE_HARVESTED_SEEDS,Take the harvested seeds,Prenez les graines récoltées +PLANT_NAME_TEXT,"[b]Plant name and state[/b] Each plant species has a unique name and can have 2 states: juvenile or mature","[b]Nom et état de la plante[/b] Chaque espèce de plantes a un nom unique et chaque plante peut avoir deux états : juvénile ou mature" PLANT_STATS_TEXT,"[b]Plant stats[/b] Here you can see your plant's age, the day of maturation, the lifetime, and the seed number that the plant can produce","[b]Statistiques[/b] Ici, vous pouvez voir l'âge de votre plante, le jour de maturation, le temps de vie et le nombre de graine que la plante donne" -PLANT_MUTATION_TEXT,"[b]Mutations[/b] Each species has mutations that alter the plant's behavior. These mutations are transmissible to the plant's seeds, where they can change or evolve superior levels","[b]Mutations[/b] Chaque espèce possède des mutations qui modifient le comportement de la plante. Ces mutations se transmettent aux graines, et peuvent changer ou évoluer aux niveaux supérieurs" PLANTS_INFO,"Plants info","Information des plantes" OBTAIN_INFORMATION_ON_PLANTS_WHILE_HOVERING_PLANTS_BASE,"Obtain information on plants while hovering over the plant base","Obtenez des informations sur les plantes en survolant leur base" +PLANT_MUTATION_TEXT,"[b]Mutations[/b] Mutation change the plant behavior. These mutations are transmitted between generations, where they can change or evolve superior levels","[b]Mutations[/b] Les mutations changent le comportement de la plante. Ces mutations se transmettent entre les générations, et peuvent changer ou évoluer aux niveaux supérieurs" +MUTATIONS,Mutations,Mutations +MUTATION,Mutation,Mutation +SEEDS_HAVE_A_CHANCE_TO_GAIN_MUTATIONS,"Seeds have a chance to gain mutations","Les graines ont une chance de gagner des mutations" PLANT_SCORE_TEXT,"[b]Score[/b] By default, each plant get 1 score when mature","[b]Score[/b] Par défaut, chaque plante gagne 1 de score à la maturation" %d_PLANT_POINT,%d Plant Point,%d Point de plante %d_PLANT_POINTS,%d Plant Points,%d Points de plante @@ -272,11 +276,14 @@ SANDY_MODIFIER_DESC_TEXT,Reduce plants influence radius,Réduit le rayon d'influ RADIOACTIVE,Radioactive,Radioactif RADIOACTIVE_MODIFIER_DESC_TEXT,Reduce the plant's base score by 1,Réduit le score de base des plantes de 1 CONTAMINATED,Contaminated,Contaminée -CONTAMINATED_MODIFIER_DESC_TEXT,Decrease all plants seeds production and increase the possible seed loss,Diminue la production de graine et augmente la perte possible de graine pour toutes les plantes +CONTAMINATED_MODIFIER_DESC_TEXT,Decrease all plants seeds production by one,Diminue la production de graine de 1 +MAGNETIC,Magnetic,Magnétique +MAGNETIC_MODIFIER_DESC_TEXT,Divide the number of [b]Recharge[/b] and the [b]Plant Points[/b] needed by 2, Divise le nombre de [b]Recharge[/b] et le nombre de [b]Points de Plantes[/b] nécessaire par 2 STORM,Storm,Tempête STORM_MODIFIER_DESC_TEXT,Increases a lot the [b]Plant Points[/b] needed,Augmente beaucoup le nombre de [b]Points de Plantes[/b] nécessaires VENDING_MACHINES,Vending Machines,Distributeurs VENDING_MACHINES_MODIFIER_DESC_TEXT,A room with old vending machine is in the area,Une pièce avec de vieux distributeurs se trouve dans la zone +CRISTAL_CAVE_MODIFIER_DESC_TEXT,An cave full of Talion can be found in the region,Une caverne remplie de Talion peut être trouvée dans cette région RESONNANCE,Resonnance,Résonnance RESONNANCE_MODIFIER_DESC_TEXT,Mutation level from [b]Talion Veins[/b] seeds is increased,Le niveau de mutation des graines issues de [b]Veine de Talion[/b] est augmenté INSTABLE,Instable,Instable @@ -287,6 +294,7 @@ ORBIT,Orbit,Orbite RECHARGE_NUMBER,Recharge Number,Nombre de recharge ORCHID_ENERGY,Orchid's energy,Énergie d'Orchid NEW_TOOL,New tool,Nouvel Outil +NEW_MUTATION,New Mutation,Nouvelle Mutation PILE,Pile,Pile, PILE_DESC_TEXT,Give an extra energy cell,Donne une cellule d'énergie supplémentaire SEED_CASE,Seed Case,Emplacement de graine @@ -313,4 +321,6 @@ INSPECT,Inspect,Inspecter VENDING_MACHINE,Vending Machine,Distributeur VENDING_MACHINE_ROOM,Vending Machine Room,Local de Distributeur VENDING_MACHINES_DOOR_DESC_TEXT,"An ancient room filled with old vending machines","Une pièce ancienne remplie de vieux distributeurs" +CRISTAL_CAVE,Crystal Cave,Caverne aux Cristaux +CRISTAL_CAVE_DOOR_DESC_TEXT,Leads to a deep cave with Talion crystals inside,Mène à une caverne profonde avec des cristaux de Talion à l'intérieur THANK_YOU_FOR_YOUR_PURCHASE,Thank you for your purchase,Merci pour votre achat \ No newline at end of file