Author SHA1 Message Date
zacharie 1e31fe19e4 Merge branch 'musique_et_son_3' of https://git.zacharie-guet.fr/zacharie/seeding-planets into musique_et_son_3 2026-05-17 15:28:32 +02:00
zacharie 87d0feb338 Encore du dev beta 1.4
* réparation de la scène région
* quand toutes les mutation sont découvertes, les cristaux offrent un artefact (le relai Talion)
* changer le volume dans les settings fait jouer un son de test
* fix d'une traduction sur le relai de Talion
2026-05-17 14:21:21 +02:00
zacharie 8efe8bce36 Dev pour la beta 1.4
* Changements de la texture des cristaux de Talion dans tous les assets 3D pour correspondre aux assets 2D
* Ajout d'un évenement en fin de région, une résurgence de Talion qui décontamine et fait looter les plantes mature aux alentours
* Ajout d'un path finding sur le mouvement du robot
* Modification du flow des actions à la souris : ajout d'un nouveau son, d'un icône à l'emplacement de l'action
* Modification du nombre et de l'ordre de mutation débloquées
* Augmentation de la valeur maximale de zoom
* Modification des scores à atteindre dans les premières régions
* Modification de l'interface du vaisseau, laissant apparaitre une roadmap plus claire, et laissant inspecter l'inventaire actuel
* Modification de l'icône d'action dans les scènes 3D
* Augmentation de la zone d'écart entre les plantes, et augmentation du taux de zone fertile en conséquence
* La station de recharge devient inutilisable après la fin de la région
* Ajout d'une transparence lors de la sélection d'objets derrières d'autres objets
* Les plantes juvéniles donneront toujours une graine si coupées
* Ajout d'un bouclage sur les couleurs des mutations
* Fix des hitbox des plantes pour l'inspection à la souris
* Fix de plusieurs bugs sur la manipulation de l'inventaire
* Ajout de nombreux screenshots d'utilisation des outils lors du tutoriel
* Amélioration mineure de la traduction/wording
2026-05-17 02:29:55 +02:00
Nilou f487e4f11d ajout du morceau et création de la node "meeting_demeter" #184 2026-05-16 00:02:32 +02:00
Nilou 04f917fb39 "Corrections" après visionnage du playtest (baisse du volume, mixage des ambiances de base, mixage de forest, suppression des bips de Demeter) 2026-05-13 17:38:18 +02:00
Nilou dfeddf3b1a ajout des ambiances météo #181 2026-05-10 10:38:40 +02:00
Nilou 0c7d56f7f7 ajout des morceaux de désert, création des nodes, ajustement de la playlist #172 2026-05-10 09:34:29 +02:00
zacharie 73b0bf2d33 Modification de l'ambiance audio dans la caverne 2026-05-09 17:12:54 +02:00
zacharie c8e0e9ecce Dev Beta 1.3
* Ajout d'un déblocage des mutations, dans une scène 3D trouvable dans les runs, ainsi qu'un dialogue d'annonce de ces scènes
* Augmentation des charges par map à 10 et augmentation des objectifs de points de plantes en conséquence
* Modification du loot des graines : les plantes donnent désormais un nombre fixe de graine et les graines issues de veine de Talion n'obtiennent pas automatiquement de mutations
* Les portes ne seront désormais plus sur de la pierre
* Amélioration du tutoriel pour inclure une section d'explication des mutations
* Ajout du modificateur de région Magnétique qui divise l'objectif et les recharges par 2
*
2026-05-09 16:40:22 +02:00
zacharie e2b07e2b6a Correction mineure des dialogues 2026-05-09 16:31:40 +02:00
Nilou 69a62e08b8 mixage du jeu et vérification du sound design 2026-05-08 20:21:55 +02:00
zacharie 73c1c67f1e Dev beta 1.2
* Ajout d'un tutoriel pour recommencer
* Fix du Surchargeur de Talion qui ne fonctionnait pas
* Suppression de flou sur beaucoup d'éléments visuels pour des raisons de performances
* Augmentation du rayon de spawn du Talion
* Fix léger de la météo (suppression du brouillard lors de la pluie)
2026-05-03 22:45:37 +02:00
Nilou 68fa285db5 migration vers musique_et_son_3 2026-05-03 17:33:32 +02:00
zacharie e7da19cb15 Dev Beta 1.1
* Ajout d'une météo aléatoire (pluie, brouillard, vent)
* Ajour d'un bouton pour un formulaire de playtest
2026-05-03 17:19:15 +02:00
251 changed files with 6457 additions and 1823 deletions
+14
View File
@@ -0,0 +1,14 @@
[gd_resource type="StandardMaterial3D" format=3 uid="uid://di0m3uqgi3l08"]
[ext_resource type="Texture2D" uid="uid://dfd72vla6crn4" path="res://common/assets/textures/cristal.png" id="1_m4qy0"]
[resource]
diffuse_mode = 3
specular_mode = 1
disable_fog = true
albedo_texture = ExtResource("1_m4qy0")
metallic_specular = 1.0
rim_tint = 0.48
stencil_flags = 2
stencil_reference = 5
stencil_outline_thickness = 0.626
Binary file not shown.

After

Width:  |  Height:  |  Size: 152 KiB

+41
View File
@@ -0,0 +1,41 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://dfd72vla6crn4"
path.s3tc="res://.godot/imported/cristal.png-542ce388785d47ebc69b0d8cd0728915.s3tc.ctex"
metadata={
"imported_formats": ["s3tc_bptc"],
"vram_texture": true
}
[deps]
source_file="res://common/assets/textures/cristal.png"
dest_files=["res://.godot/imported/cristal.png-542ce388785d47ebc69b0d8cd0728915.s3tc.ctex"]
[params]
compress/mode=2
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=true
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=0
@@ -0,0 +1,19 @@
[remap]
importer="oggvorbisstr"
type="AudioStreamOggVorbis"
uid="uid://dq2nodhwnp73f"
path="res://.godot/imported/solarmusic-dripping-water-in-cave-114694.ogg-81f5d41775da1d0914399edcb9214d3c.oggvorbisstr"
[deps]
source_file="res://common/audio_manager/assets/ambiance/cave/solarmusic-dripping-water-in-cave-114694.ogg"
dest_files=["res://.godot/imported/solarmusic-dripping-water-in-cave-114694.ogg-81f5d41775da1d0914399edcb9214d3c.oggvorbisstr"]
[params]
loop=true
loop_offset=0.0
bpm=0.0
beat_count=0
bar_beats=4
@@ -3,12 +3,12 @@
importer="oggvorbisstr" importer="oggvorbisstr"
type="AudioStreamOggVorbis" type="AudioStreamOggVorbis"
uid="uid://dipnmlprwfo12" uid="uid://dipnmlprwfo12"
path="res://.godot/imported/ambiance_phase_1.ogg-3c486442fa41b06071c54c0c4ee6a448.oggvorbisstr" path="res://.godot/imported/ambiance.ogg-8b81882025dcd06314e76dad7be1da50.oggvorbisstr"
[deps] [deps]
source_file="res://common/audio_manager/assets/ambiance/niveau/ambiance_phase_1.ogg" source_file="res://common/audio_manager/assets/ambiance/niveau/ambiance.ogg"
dest_files=["res://.godot/imported/ambiance_phase_1.ogg-3c486442fa41b06071c54c0c4ee6a448.oggvorbisstr"] dest_files=["res://.godot/imported/ambiance.ogg-8b81882025dcd06314e76dad7be1da50.oggvorbisstr"]
[params] [params]
@@ -0,0 +1,19 @@
[remap]
importer="oggvorbisstr"
type="AudioStreamOggVorbis"
uid="uid://cdohaice7nc8d"
path="res://.godot/imported/ambiance_foggy.ogg-a3c1f369c131849cfcd58614581310bd.oggvorbisstr"
[deps]
source_file="res://common/audio_manager/assets/ambiance/niveau/ambiance_foggy.ogg"
dest_files=["res://.godot/imported/ambiance_foggy.ogg-a3c1f369c131849cfcd58614581310bd.oggvorbisstr"]
[params]
loop=true
loop_offset=0
bpm=0
beat_count=0
bar_beats=4
@@ -0,0 +1,19 @@
[remap]
importer="oggvorbisstr"
type="AudioStreamOggVorbis"
uid="uid://bxj8pnpg1fedj"
path="res://.godot/imported/ambiance_rainy.ogg-134716aa308c9ec1bfa70452df19c651.oggvorbisstr"
[deps]
source_file="res://common/audio_manager/assets/ambiance/niveau/ambiance_rainy.ogg"
dest_files=["res://.godot/imported/ambiance_rainy.ogg-134716aa308c9ec1bfa70452df19c651.oggvorbisstr"]
[params]
loop=true
loop_offset=0
bpm=0
beat_count=0
bar_beats=4
@@ -0,0 +1,19 @@
[remap]
importer="oggvorbisstr"
type="AudioStreamOggVorbis"
uid="uid://bu5kkihtdwvuv"
path="res://.godot/imported/ambiance_windy.ogg-4cb2b5e3a22d4e6d112d387daa46dc2b.oggvorbisstr"
[deps]
source_file="res://common/audio_manager/assets/ambiance/niveau/ambiance_windy.ogg"
dest_files=["res://.godot/imported/ambiance_windy.ogg-4cb2b5e3a22d4e6d112d387daa46dc2b.oggvorbisstr"]
[params]
loop=true
loop_offset=0
bpm=0
beat_count=0
bar_beats=4
@@ -0,0 +1,19 @@
[remap]
importer="oggvorbisstr"
type="AudioStreamOggVorbis"
uid="uid://ch8wnrckanydg"
path="res://.godot/imported/meeting_demeter.ogg-7dd58073d2ef5705a374bd8bb3634d37.oggvorbisstr"
[deps]
source_file="res://common/audio_manager/assets/morceaux/histoire/meeting_demeter.ogg"
dest_files=["res://.godot/imported/meeting_demeter.ogg-7dd58073d2ef5705a374bd8bb3634d37.oggvorbisstr"]
[params]
loop=false
loop_offset=0
bpm=0
beat_count=0
bar_beats=4
@@ -0,0 +1,19 @@
[remap]
importer="oggvorbisstr"
type="AudioStreamOggVorbis"
uid="uid://dsfqhcrard8o4"
path="res://.godot/imported/desert_phase_2.ogg-fe1f29fc0b3d46aaaea2ecc57a37cb8a.oggvorbisstr"
[deps]
source_file="res://common/audio_manager/assets/morceaux/niveau/desert_phase_2.ogg"
dest_files=["res://.godot/imported/desert_phase_2.ogg-fe1f29fc0b3d46aaaea2ecc57a37cb8a.oggvorbisstr"]
[params]
loop=false
loop_offset=0
bpm=0
beat_count=0
bar_beats=4
@@ -0,0 +1,19 @@
[remap]
importer="oggvorbisstr"
type="AudioStreamOggVorbis"
uid="uid://dimev7sij7crl"
path="res://.godot/imported/desert_waiting.ogg-dc035370eae222fee4cc7ea608e0a7ff.oggvorbisstr"
[deps]
source_file="res://common/audio_manager/assets/morceaux/niveau/desert_waiting.ogg"
dest_files=["res://.godot/imported/desert_waiting.ogg-dc035370eae222fee4cc7ea608e0a7ff.oggvorbisstr"]
[params]
loop=true
loop_offset=0
bpm=0
beat_count=0
bar_beats=4
@@ -0,0 +1,19 @@
[remap]
importer="mp3"
type="AudioStreamMP3"
uid="uid://dnqq2sy3dxrb2"
path="res://.godot/imported/freesound_community-wine-glass-clink-36036.mp3-bc462b7f4a73f6e9bc3696ca5c63bc97.mp3str"
[deps]
source_file="res://common/audio_manager/assets/sfx/cristal/freesound_community-wine-glass-clink-36036.mp3"
dest_files=["res://.godot/imported/freesound_community-wine-glass-clink-36036.mp3-bc462b7f4a73f6e9bc3696ca5c63bc97.mp3str"]
[params]
loop=false
loop_offset=0
bpm=0
beat_count=0
bar_beats=4
@@ -0,0 +1,19 @@
[remap]
importer="mp3"
type="AudioStreamMP3"
uid="uid://di6id2kyfy2e1"
path="res://.godot/imported/sslc2022-earth-rumble-128880.mp3-cbdb82e7630ba8aed62692404d0e45e0.mp3str"
[deps]
source_file="res://common/audio_manager/assets/sfx/earth_rumble/sslc2022-earth-rumble-128880.mp3"
dest_files=["res://.godot/imported/sslc2022-earth-rumble-128880.mp3-cbdb82e7630ba8aed62692404d0e45e0.mp3str"]
[params]
loop=false
loop_offset=0
bpm=0
beat_count=0
bar_beats=4
@@ -1,24 +0,0 @@
[remap]
importer="wav"
type="AudioStreamWAV"
uid="uid://u44wh180os3n"
path="res://.godot/imported/get_item_1.wav-f624a08053ccc90a130932edf6e93c74.sample"
[deps]
source_file="res://common/audio_manager/assets/sfx/get_item/get_item_1.wav"
dest_files=["res://.godot/imported/get_item_1.wav-f624a08053ccc90a130932edf6e93c74.sample"]
[params]
force/8_bit=false
force/mono=false
force/max_rate=false
force/max_rate_hz=44100
edit/trim=false
edit/normalize=false
edit/loop_mode=0
edit/loop_begin=0
edit/loop_end=-1
compress/mode=2
@@ -0,0 +1,24 @@
[remap]
importer="wav"
type="AudioStreamWAV"
uid="uid://3c4nxjasebyk"
path="res://.godot/imported/pickaxe_1_reverb.wav-8d6172bc1e5c2f43ec5b5cf869d5b6e3.sample"
[deps]
source_file="res://common/audio_manager/assets/sfx/pickaxe/pickaxe_1_reverb.wav"
dest_files=["res://.godot/imported/pickaxe_1_reverb.wav-8d6172bc1e5c2f43ec5b5cf869d5b6e3.sample"]
[params]
force/8_bit=false
force/mono=false
force/max_rate=false
force/max_rate_hz=44100
edit/trim=false
edit/normalize=false
edit/loop_mode=0
edit/loop_begin=0
edit/loop_end=-1
compress/mode=2
@@ -0,0 +1,24 @@
[remap]
importer="wav"
type="AudioStreamWAV"
uid="uid://bs5ldhabymm5p"
path="res://.godot/imported/pickaxe_2_reverb.wav-c953afb7e49205a0f4377738e1135a5b.sample"
[deps]
source_file="res://common/audio_manager/assets/sfx/pickaxe/pickaxe_2_reverb.wav"
dest_files=["res://.godot/imported/pickaxe_2_reverb.wav-c953afb7e49205a0f4377738e1135a5b.sample"]
[params]
force/8_bit=false
force/mono=false
force/max_rate=false
force/max_rate_hz=44100
edit/trim=false
edit/normalize=false
edit/loop_mode=0
edit/loop_begin=0
edit/loop_end=-1
compress/mode=2
@@ -0,0 +1,24 @@
[remap]
importer="wav"
type="AudioStreamWAV"
uid="uid://bu278eqn8krnb"
path="res://.godot/imported/pickaxe_3_reverb.wav-d3e3d8b6b50a16c6757536f43c8c6ccd.sample"
[deps]
source_file="res://common/audio_manager/assets/sfx/pickaxe/pickaxe_3_reverb.wav"
dest_files=["res://.godot/imported/pickaxe_3_reverb.wav-d3e3d8b6b50a16c6757536f43c8c6ccd.sample"]
[params]
force/8_bit=false
force/mono=false
force/max_rate=false
force/max_rate_hz=44100
edit/trim=false
edit/normalize=false
edit/loop_mode=0
edit/loop_begin=0
edit/loop_end=-1
compress/mode=2
@@ -0,0 +1,19 @@
[remap]
importer="mp3"
type="AudioStreamMP3"
uid="uid://rf7hachl3042"
path="res://.godot/imported/universfield-bubble-pop-07-487896.mp3-9674fcc5b43af938e0c8845e16ca6bfd.mp3str"
[deps]
source_file="res://common/audio_manager/assets/sfx/signal/universfield-bubble-pop-07-487896.mp3"
dest_files=["res://.godot/imported/universfield-bubble-pop-07-487896.mp3-9674fcc5b43af938e0c8845e16ca6bfd.mp3str"]
[params]
loop=false
loop_offset=0
bpm=0
beat_count=0
bar_beats=4
@@ -0,0 +1,24 @@
[remap]
importer="wav"
type="AudioStreamWAV"
uid="uid://dscyqjujj1com"
path="res://.godot/imported/unlock_tool.wav-27b017d6f16de7402a6aa9283c5a050d.sample"
[deps]
source_file="res://common/audio_manager/assets/sfx/unlock_tool/unlock_tool.wav"
dest_files=["res://.godot/imported/unlock_tool.wav-27b017d6f16de7402a6aa9283c5a050d.sample"]
[params]
force/8_bit=false
force/mono=false
force/max_rate=false
force/max_rate_hz=44100
edit/trim=false
edit/normalize=false
edit/loop_mode=0
edit/loop_begin=0
edit/loop_end=-1
compress/mode=2
+105 -21
View File
@@ -1,10 +1,15 @@
[gd_scene format=3 uid="uid://b6hscxcrj065q"] [gd_scene format=3 uid="uid://b6hscxcrj065q"]
[ext_resource type="Script" uid="uid://2p5d6vogtn82" path="res://common/audio_manager/scripts/audio_manager.gd" id="1_0tvca"] [ext_resource type="Script" uid="uid://2p5d6vogtn82" path="res://common/audio_manager/scripts/audio_manager.gd" id="1_0tvca"]
[ext_resource type="AudioStream" uid="uid://dq2nodhwnp73f" path="res://common/audio_manager/assets/ambiance/cave/solarmusic-dripping-water-in-cave-114694.ogg" id="2_ge2sc"]
[ext_resource type="AudioStream" uid="uid://dipnmlprwfo12" path="res://common/audio_manager/assets/ambiance/niveau/ambiance_phase_1.ogg" id="2_tuvql"] [ext_resource type="AudioStream" uid="uid://dipnmlprwfo12" path="res://common/audio_manager/assets/ambiance/niveau/ambiance_phase_1.ogg" id="2_tuvql"]
[ext_resource type="AudioStream" uid="uid://dipnmlprwfo12" path="res://common/audio_manager/assets/ambiance/niveau/ambiance.ogg" id="3_qvjf5"]
[ext_resource type="AudioStream" uid="uid://b1hut6lc1jevh" path="res://common/audio_manager/assets/morceaux/niveau/mines_phase_2.ogg" id="4_2fduo"] [ext_resource type="AudioStream" uid="uid://b1hut6lc1jevh" path="res://common/audio_manager/assets/morceaux/niveau/mines_phase_2.ogg" id="4_2fduo"]
[ext_resource type="AudioStream" uid="uid://cdohaice7nc8d" path="res://common/audio_manager/assets/ambiance/niveau/ambiance_foggy.ogg" id="4_ipd1r"]
[ext_resource type="AudioStream" uid="uid://bxj8pnpg1fedj" path="res://common/audio_manager/assets/ambiance/niveau/ambiance_rainy.ogg" id="4_qvjf5"]
[ext_resource type="AudioStream" uid="uid://6yx6txbgc6pt" path="res://common/audio_manager/assets/ambiance/astra/ambiance_astra.ogg" id="5_8204s"] [ext_resource type="AudioStream" uid="uid://6yx6txbgc6pt" path="res://common/audio_manager/assets/ambiance/astra/ambiance_astra.ogg" id="5_8204s"]
[ext_resource type="AudioStream" uid="uid://dcbuhtc085q2x" path="res://common/audio_manager/assets/morceaux/niveau/mines_phase_1.ogg" id="5_ajci6"] [ext_resource type="AudioStream" uid="uid://dcbuhtc085q2x" path="res://common/audio_manager/assets/morceaux/niveau/mines_phase_1.ogg" id="5_ajci6"]
[ext_resource type="AudioStream" uid="uid://bu5kkihtdwvuv" path="res://common/audio_manager/assets/ambiance/niveau/ambiance_windy.ogg" id="5_ipd1r"]
[ext_resource type="AudioStream" uid="uid://dsphn6dbbd55a" path="res://common/audio_manager/assets/morceaux/niveau/forest_phase_1.ogg" id="6_6o1yh"] [ext_resource type="AudioStream" uid="uid://dsphn6dbbd55a" path="res://common/audio_manager/assets/morceaux/niveau/forest_phase_1.ogg" id="6_6o1yh"]
[ext_resource type="AudioStream" uid="uid://cwu71o0sl2vto" path="res://common/audio_manager/assets/ambiance/dialogues/ambiance_Demeter.ogg" id="6_8204s"] [ext_resource type="AudioStream" uid="uid://cwu71o0sl2vto" path="res://common/audio_manager/assets/ambiance/dialogues/ambiance_Demeter.ogg" id="6_8204s"]
[ext_resource type="AudioStream" uid="uid://klb32q3kjtkt" path="res://common/audio_manager/assets/ambiance/vending_room_base_relais/ambiance_vending_room_base_relais.ogg" id="7_ge2sc"] [ext_resource type="AudioStream" uid="uid://klb32q3kjtkt" path="res://common/audio_manager/assets/ambiance/vending_room_base_relais/ambiance_vending_room_base_relais.ogg" id="7_ge2sc"]
@@ -19,14 +24,16 @@
[ext_resource type="AudioStream" uid="uid://8nmr5vifkt1f" path="res://common/audio_manager/assets/sfx/harvest/harvest_1.wav" id="13_xoaox"] [ext_resource type="AudioStream" uid="uid://8nmr5vifkt1f" path="res://common/audio_manager/assets/sfx/harvest/harvest_1.wav" id="13_xoaox"]
[ext_resource type="AudioStream" uid="uid://dgkdcq4j6fe3o" path="res://common/audio_manager/assets/sfx/harvest/harvest_2.wav" id="14_b5bgj"] [ext_resource type="AudioStream" uid="uid://dgkdcq4j6fe3o" path="res://common/audio_manager/assets/sfx/harvest/harvest_2.wav" id="14_b5bgj"]
[ext_resource type="AudioStream" uid="uid://crncg0mdx1fdw" path="res://common/audio_manager/assets/morceaux/demo/ending.ogg" id="14_h3tkm"] [ext_resource type="AudioStream" uid="uid://crncg0mdx1fdw" path="res://common/audio_manager/assets/morceaux/demo/ending.ogg" id="14_h3tkm"]
[ext_resource type="AudioStream" uid="uid://dsfqhcrard8o4" path="res://common/audio_manager/assets/morceaux/niveau/desert_phase_2.ogg" id="14_lwdce"]
[ext_resource type="AudioStream" uid="uid://eh3dbuxu5qtw" path="res://common/audio_manager/assets/sfx/harvest/harvest_3.wav" id="15_ynvb4"] [ext_resource type="AudioStream" uid="uid://eh3dbuxu5qtw" path="res://common/audio_manager/assets/sfx/harvest/harvest_3.wav" id="15_ynvb4"]
[ext_resource type="AudioStream" uid="uid://bown4yipeef8l" path="res://common/audio_manager/assets/sfx/harvest/harvest_4.wav" id="16_obeji"] [ext_resource type="AudioStream" uid="uid://bown4yipeef8l" path="res://common/audio_manager/assets/sfx/harvest/harvest_4.wav" id="16_obeji"]
[ext_resource type="AudioStream" uid="uid://delq7gsdeqjq2" path="res://common/audio_manager/assets/sfx/respawn/respawn.wav" id="16_xmumj"] [ext_resource type="AudioStream" uid="uid://delq7gsdeqjq2" path="res://common/audio_manager/assets/sfx/respawn/respawn.wav" id="16_xmumj"]
[ext_resource type="AudioStream" uid="uid://cbo4ld2yypmte" path="res://common/audio_manager/assets/sfx/harvest/harvest_5.wav" id="17_6w0re"] [ext_resource type="AudioStream" uid="uid://cbo4ld2yypmte" path="res://common/audio_manager/assets/sfx/harvest/harvest_5.wav" id="17_6w0re"]
[ext_resource type="AudioStream" uid="uid://dimev7sij7crl" path="res://common/audio_manager/assets/morceaux/niveau/desert_waiting.ogg" id="17_qvjf5"]
[ext_resource type="AudioStream" uid="uid://da3srn8vx4erd" path="res://common/audio_manager/assets/sfx/vending_machine/item-drop.wav" id="18_ehr7m"] [ext_resource type="AudioStream" uid="uid://da3srn8vx4erd" path="res://common/audio_manager/assets/sfx/vending_machine/item-drop.wav" id="18_ehr7m"]
[ext_resource type="AudioStream" uid="uid://cs4y6sinpth8e" path="res://common/audio_manager/assets/sfx/recharge/recharge_capsule_1.wav" id="18_j8acj"] [ext_resource type="AudioStream" uid="uid://cs4y6sinpth8e" path="res://common/audio_manager/assets/sfx/recharge/recharge_capsule_1.wav" id="18_j8acj"]
[ext_resource type="AudioStream" uid="uid://c5nfoa6v3r5f7" path="res://common/audio_manager/assets/sfx/harvest/harvest_6.wav" id="18_o4guq"] [ext_resource type="AudioStream" uid="uid://c5nfoa6v3r5f7" path="res://common/audio_manager/assets/sfx/harvest/harvest_6.wav" id="18_o4guq"]
[ext_resource type="AudioStream" uid="uid://cbre45rky1f4v" path="res://common/audio_manager/assets/sfx/vending_machine/dragon-studio-power-off-386180.mp3" id="19_aedoe"] [ext_resource type="AudioStream" uid="uid://dgs7j7itgedoy" path="res://common/audio_manager/assets/sfx/vending_machine/VM_power_off.wav" id="19_ge2sc"]
[ext_resource type="AudioStream" uid="uid://bbhkivgarlhqm" path="res://common/audio_manager/assets/sfx/recharge/recharge_capsule_2.wav" id="19_yjs51"] [ext_resource type="AudioStream" uid="uid://bbhkivgarlhqm" path="res://common/audio_manager/assets/sfx/recharge/recharge_capsule_2.wav" id="19_yjs51"]
[ext_resource type="AudioStream" uid="uid://ccfubsk6135qy" path="res://common/audio_manager/assets/sfx/recharge/recharge_capsule_3.wav" id="20_4ojdh"] [ext_resource type="AudioStream" uid="uid://ccfubsk6135qy" path="res://common/audio_manager/assets/sfx/recharge/recharge_capsule_3.wav" id="20_4ojdh"]
[ext_resource type="AudioStream" uid="uid://bjind1iji0gt7" path="res://common/audio_manager/assets/sfx/pick_up/pick_up_1.wav" id="20_pu6t4"] [ext_resource type="AudioStream" uid="uid://bjind1iji0gt7" path="res://common/audio_manager/assets/sfx/pick_up/pick_up_1.wav" id="20_pu6t4"]
@@ -35,6 +42,7 @@
[ext_resource type="AudioStream" uid="uid://cbm4r5bf7py11" path="res://common/audio_manager/assets/sfx/recharge/recharge_capsule_4.wav" id="21_ehr7m"] [ext_resource type="AudioStream" uid="uid://cbm4r5bf7py11" path="res://common/audio_manager/assets/sfx/recharge/recharge_capsule_4.wav" id="21_ehr7m"]
[ext_resource type="AudioStream" uid="uid://dq5qwydrca3vy" path="res://common/audio_manager/assets/sfx/recharge/recharge_capsule_5.wav" id="22_aedoe"] [ext_resource type="AudioStream" uid="uid://dq5qwydrca3vy" path="res://common/audio_manager/assets/sfx/recharge/recharge_capsule_5.wav" id="22_aedoe"]
[ext_resource type="AudioStream" uid="uid://d1cpi438ep0ys" path="res://common/audio_manager/assets/sfx/announce/annnounce.wav" id="22_btfwx"] [ext_resource type="AudioStream" uid="uid://d1cpi438ep0ys" path="res://common/audio_manager/assets/sfx/announce/annnounce.wav" id="22_btfwx"]
[ext_resource type="AudioStream" uid="uid://ch8wnrckanydg" path="res://common/audio_manager/assets/morceaux/histoire/meeting_demeter.ogg" id="22_mrdk3"]
[ext_resource type="AudioStream" uid="uid://bnwtgp8t46xwc" path="res://common/audio_manager/assets/sfx/recharge/recharge_capsule_6.wav" id="23_ge2sc"] [ext_resource type="AudioStream" uid="uid://bnwtgp8t46xwc" path="res://common/audio_manager/assets/sfx/recharge/recharge_capsule_6.wav" id="23_ge2sc"]
[ext_resource type="AudioStream" uid="uid://bp3wsncvda5gl" path="res://common/audio_manager/assets/sfx/recharge/recharge_capsule_7.wav" id="24_yr73o"] [ext_resource type="AudioStream" uid="uid://bp3wsncvda5gl" path="res://common/audio_manager/assets/sfx/recharge/recharge_capsule_7.wav" id="24_yr73o"]
[ext_resource type="AudioStream" uid="uid://b4jx8rflw7dss" path="res://common/audio_manager/assets/sfx/phone/phone_ringing_Astra.wav" id="27_0rjel"] [ext_resource type="AudioStream" uid="uid://b4jx8rflw7dss" path="res://common/audio_manager/assets/sfx/phone/phone_ringing_Astra.wav" id="27_0rjel"]
@@ -62,6 +70,7 @@
[ext_resource type="AudioStream" uid="uid://cv5avkd3qekt7" path="res://common/audio_manager/assets/sfx/movement/movement.wav" id="51_iyxkn"] [ext_resource type="AudioStream" uid="uid://cv5avkd3qekt7" path="res://common/audio_manager/assets/sfx/movement/movement.wav" id="51_iyxkn"]
[ext_resource type="AudioStream" uid="uid://53ixfbcd5qwu" path="res://common/audio_manager/assets/sfx/holo/holo_appear.wav" id="63_aedoe"] [ext_resource type="AudioStream" uid="uid://53ixfbcd5qwu" path="res://common/audio_manager/assets/sfx/holo/holo_appear.wav" id="63_aedoe"]
[ext_resource type="AudioStream" uid="uid://dsijqgnnadgem" path="res://common/audio_manager/assets/sfx/holo/holo_disappear.wav" id="64_ge2sc"] [ext_resource type="AudioStream" uid="uid://dsijqgnnadgem" path="res://common/audio_manager/assets/sfx/holo/holo_disappear.wav" id="64_ge2sc"]
[ext_resource type="AudioStream" uid="uid://dscyqjujj1com" path="res://common/audio_manager/assets/sfx/unlock_tool/unlock_tool.wav" id="64_yr73o"]
[sub_resource type="AudioStreamRandomizer" id="AudioStreamRandomizer_6o1yh"] [sub_resource type="AudioStreamRandomizer" id="AudioStreamRandomizer_6o1yh"]
streams_count = 3 streams_count = 3
@@ -122,188 +131,263 @@ script = ExtResource("1_0tvca")
[node name="Ambiances" type="Node" parent="." unique_id=1989991562] [node name="Ambiances" type="Node" parent="." unique_id=1989991562]
unique_name_in_owner = true unique_name_in_owner = true
[node name="Cave" type="AudioStreamPlayer" parent="Ambiances" unique_id=71769481]
stream = ExtResource("2_ge2sc")
volume_db = -7.195
pitch_scale = 0.5
[node name="BaseRelais" type="AudioStreamPlayer" parent="Ambiances" unique_id=1895636918] [node name="BaseRelais" type="AudioStreamPlayer" parent="Ambiances" unique_id=1895636918]
unique_name_in_owner = true
stream = ExtResource("7_ge2sc") stream = ExtResource("7_ge2sc")
volume_db = -7.0
[node name="VendingRoom" type="AudioStreamPlayer" parent="Ambiances" unique_id=1478190718] [node name="VendingRoom" type="AudioStreamPlayer" parent="Ambiances" unique_id=1478190718]
unique_name_in_owner = true
stream = ExtResource("7_ge2sc") stream = ExtResource("7_ge2sc")
volume_db = -7.0
[node name="Exterior" type="AudioStreamPlayer" parent="Ambiances" unique_id=1405716780] [node name="Exterior" type="AudioStreamPlayer" parent="Ambiances" unique_id=1405716780]
unique_name_in_owner = true unique_name_in_owner = true
stream = ExtResource("2_tuvql") stream = ExtResource("3_qvjf5")
volume_db = -5.0
[node name="ExteriorFoggy" type="AudioStreamPlayer" parent="Ambiances" unique_id=1741396762]
unique_name_in_owner = true
stream = ExtResource("4_ipd1r")
volume_db = -18.0
[node name="ExteriorRaining" type="AudioStreamPlayer" parent="Ambiances" unique_id=1946725047]
unique_name_in_owner = true
stream = ExtResource("4_qvjf5")
volume_db = -15.0
[node name="ExteriorWindy" type="AudioStreamPlayer" parent="Ambiances" unique_id=1287818982]
unique_name_in_owner = true
stream = ExtResource("5_ipd1r")
volume_db = -15.0
[node name="Astra" type="AudioStreamPlayer" parent="Ambiances" unique_id=1244577212] [node name="Astra" type="AudioStreamPlayer" parent="Ambiances" unique_id=1244577212]
unique_name_in_owner = true unique_name_in_owner = true
stream = ExtResource("5_8204s") stream = ExtResource("5_8204s")
volume_db = -5.0
[node name="Demeter" type="AudioStreamPlayer" parent="Ambiances" unique_id=351918026] [node name="Demeter" type="AudioStreamPlayer" parent="Ambiances" unique_id=351918026]
unique_name_in_owner = true unique_name_in_owner = true
stream = ExtResource("6_8204s") stream = ExtResource("6_8204s")
volume_db = -5.0
[node name="Borea" type="AudioStreamPlayer" parent="Ambiances" unique_id=1857904648] [node name="Borea" type="AudioStreamPlayer" parent="Ambiances" unique_id=1857904648]
unique_name_in_owner = true unique_name_in_owner = true
stream = ExtResource("7_spekb") stream = ExtResource("7_spekb")
volume_db = -5.0
[node name="Ship" type="AudioStreamPlayer" parent="Ambiances" unique_id=1564186965] [node name="Ship" type="AudioStreamPlayer" parent="Ambiances" unique_id=1564186965]
unique_name_in_owner = true unique_name_in_owner = true
stream = ExtResource("8_tuvql") stream = ExtResource("8_tuvql")
volume_db = -5.0
[node name="Musics" type="Node" parent="." unique_id=1450527710] [node name="Musics" type="Node" parent="." unique_id=1450527710]
unique_name_in_owner = true unique_name_in_owner = true
[node name="RegionDesertPhase1" type="AudioStreamPlayer" parent="Musics" unique_id=1222638526]
unique_name_in_owner = true
stream = ExtResource("11_yjs51")
[node name="RegionForestPhase1" type="AudioStreamPlayer" parent="Musics" unique_id=1029114070] [node name="RegionForestPhase1" type="AudioStreamPlayer" parent="Musics" unique_id=1029114070]
unique_name_in_owner = true unique_name_in_owner = true
stream = ExtResource("6_6o1yh") stream = ExtResource("6_6o1yh")
volume_db = -5.0
[node name="RegionForestPhase2" type="AudioStreamPlayer" parent="Musics" unique_id=417543634] [node name="RegionForestPhase2" type="AudioStreamPlayer" parent="Musics" unique_id=417543634]
unique_name_in_owner = true unique_name_in_owner = true
stream = ExtResource("10_tq535") stream = ExtResource("10_tq535")
volume_db = -5.0
[node name="RegionMinePhase1" type="AudioStreamPlayer" parent="Musics" unique_id=152032267] [node name="RegionMinePhase1" type="AudioStreamPlayer" parent="Musics" unique_id=152032267]
unique_name_in_owner = true unique_name_in_owner = true
stream = ExtResource("5_ajci6") stream = ExtResource("5_ajci6")
volume_db = -5.0
[node name="RegionMinePhase2" type="AudioStreamPlayer" parent="Musics" unique_id=348001141] [node name="RegionMinePhase2" type="AudioStreamPlayer" parent="Musics" unique_id=348001141]
unique_name_in_owner = true unique_name_in_owner = true
stream = ExtResource("4_2fduo") stream = ExtResource("4_2fduo")
volume_db = -5.0
[node name="RegionDesertPhase1" type="AudioStreamPlayer" parent="Musics" unique_id=1222638526]
unique_name_in_owner = true
stream = ExtResource("11_yjs51")
volume_db = -5.0
[node name="RegionDesertPhase2" type="AudioStreamPlayer" parent="Musics" unique_id=2003475958]
unique_name_in_owner = true
stream = ExtResource("14_lwdce")
volume_db = -5.0
[node name="RegionForestLoop" type="AudioStreamPlayer" parent="Musics" unique_id=482654512] [node name="RegionForestLoop" type="AudioStreamPlayer" parent="Musics" unique_id=482654512]
unique_name_in_owner = true unique_name_in_owner = true
stream = ExtResource("12_xmumj") stream = ExtResource("12_xmumj")
volume_db = -5.0
bus = &"Music" bus = &"Music"
[node name="RegionMineLoop" type="AudioStreamPlayer" parent="Musics" unique_id=814165127] [node name="RegionMineLoop" type="AudioStreamPlayer" parent="Musics" unique_id=814165127]
unique_name_in_owner = true unique_name_in_owner = true
stream = ExtResource("11_ngi21") stream = ExtResource("11_ngi21")
volume_db = -5.0
bus = &"Music" bus = &"Music"
[node name="RegionDesertLoop" type="AudioStreamPlayer" parent="Musics" unique_id=1981071036]
unique_name_in_owner = true
stream = ExtResource("17_qvjf5")
volume_db = -5.0
[node name="Title" type="AudioStreamPlayer" parent="Musics" unique_id=2105759422] [node name="Title" type="AudioStreamPlayer" parent="Musics" unique_id=2105759422]
unique_name_in_owner = true unique_name_in_owner = true
stream = ExtResource("7_tuvql") stream = ExtResource("7_tuvql")
volume_db = -5.0
bus = &"Music" bus = &"Music"
[node name="Demo_end" type="AudioStreamPlayer" parent="Musics" unique_id=261817716] [node name="Demo_end" type="AudioStreamPlayer" parent="Musics" unique_id=261817716]
unique_name_in_owner = true unique_name_in_owner = true
stream = ExtResource("14_h3tkm") stream = ExtResource("14_h3tkm")
volume_db = -5.0
[node name="Meeting_demeter" type="AudioStreamPlayer" parent="Musics" unique_id=1066359159]
unique_name_in_owner = true
stream = ExtResource("22_mrdk3")
[node name="Sfx" type="Node" parent="." unique_id=2023641207] [node name="Sfx" type="Node" parent="." unique_id=2023641207]
unique_name_in_owner = true unique_name_in_owner = true
[node name="Dig" type="AudioStreamPlayer" parent="Sfx" unique_id=486042600] [node name="Dig" type="AudioStreamPlayer" parent="Sfx" unique_id=486042600]
stream = SubResource("AudioStreamRandomizer_6o1yh") stream = SubResource("AudioStreamRandomizer_6o1yh")
volume_db = -5.0
[node name="VendingMachineDrop" type="AudioStreamPlayer" parent="Sfx" unique_id=1161500181] [node name="VendingMachineDrop" type="AudioStreamPlayer" parent="Sfx" unique_id=1161500181]
stream = ExtResource("18_ehr7m") stream = ExtResource("18_ehr7m")
volume_db = -5.0
pitch_scale = 0.81 pitch_scale = 0.81
[node name="VendingMachineOff" type="AudioStreamPlayer" parent="Sfx" unique_id=743754597] [node name="VendingMachineOff" type="AudioStreamPlayer" parent="Sfx" unique_id=743754597]
stream = ExtResource("19_aedoe") stream = ExtResource("19_ge2sc")
volume_db = -14.149 volume_db = -5.0
pitch_scale = 0.75
[node name="DoorOpen" type="AudioStreamPlayer" parent="Sfx" unique_id=1440910292] [node name="DoorOpen" type="AudioStreamPlayer" parent="Sfx" unique_id=1440910292]
stream = ExtResource("20_yr73o") stream = ExtResource("20_yr73o")
volume_db = -6.0
pitch_scale = 1.5 pitch_scale = 1.5
[node name="Recharge1" type="AudioStreamPlayer" parent="Sfx" unique_id=357905012] [node name="Recharge1" type="AudioStreamPlayer" parent="Sfx" unique_id=357905012]
stream = ExtResource("18_j8acj") stream = ExtResource("18_j8acj")
volume_db = -10.0
[node name="Recharge2" type="AudioStreamPlayer" parent="Sfx" unique_id=261310291] [node name="Recharge2" type="AudioStreamPlayer" parent="Sfx" unique_id=261310291]
stream = ExtResource("19_yjs51") stream = ExtResource("19_yjs51")
volume_db = -10.0
[node name="Recharge3" type="AudioStreamPlayer" parent="Sfx" unique_id=1559567919] [node name="Recharge3" type="AudioStreamPlayer" parent="Sfx" unique_id=1559567919]
stream = ExtResource("20_4ojdh") stream = ExtResource("20_4ojdh")
volume_db = -10.0
[node name="Recharge4" type="AudioStreamPlayer" parent="Sfx" unique_id=1697092547] [node name="Recharge4" type="AudioStreamPlayer" parent="Sfx" unique_id=1697092547]
stream = ExtResource("21_ehr7m") stream = ExtResource("21_ehr7m")
volume_db = -10.0
[node name="Recharge5" type="AudioStreamPlayer" parent="Sfx" unique_id=1385679733] [node name="Recharge5" type="AudioStreamPlayer" parent="Sfx" unique_id=1385679733]
stream = ExtResource("22_aedoe") stream = ExtResource("22_aedoe")
volume_db = -10.0
[node name="Recharge6" type="AudioStreamPlayer" parent="Sfx" unique_id=391499157] [node name="Recharge6" type="AudioStreamPlayer" parent="Sfx" unique_id=391499157]
stream = ExtResource("23_ge2sc") stream = ExtResource("23_ge2sc")
volume_db = -10.0
[node name="Recharge7" type="AudioStreamPlayer" parent="Sfx" unique_id=355754872] [node name="Recharge7" type="AudioStreamPlayer" parent="Sfx" unique_id=355754872]
stream = ExtResource("24_yr73o") stream = ExtResource("24_yr73o")
volume_db = -10.0
[node name="Rocks" type="AudioStreamPlayer" parent="Sfx" unique_id=1012908521] [node name="Rocks" type="AudioStreamPlayer" parent="Sfx" unique_id=1012908521]
stream = SubResource("AudioStreamRandomizer_kfbah") stream = SubResource("AudioStreamRandomizer_kfbah")
volume_db = -5.0
[node name="Respawn" type="AudioStreamPlayer" parent="Sfx" unique_id=1902559716] [node name="Respawn" type="AudioStreamPlayer" parent="Sfx" unique_id=1902559716]
stream = ExtResource("16_xmumj") stream = ExtResource("16_xmumj")
volume_db = -5.0
[node name="Drop" type="AudioStreamPlayer" parent="Sfx" unique_id=1391500830] [node name="Drop" type="AudioStreamPlayer" parent="Sfx" unique_id=1391500830]
stream = SubResource("AudioStreamRandomizer_1w04j") stream = SubResource("AudioStreamRandomizer_1w04j")
volume_db = -2.0 volume_db = -7.0
[node name="Harvest" type="AudioStreamPlayer" parent="Sfx" unique_id=345539331] [node name="Harvest" type="AudioStreamPlayer" parent="Sfx" unique_id=345539331]
stream = SubResource("AudioStreamRandomizer_i4m0x") stream = SubResource("AudioStreamRandomizer_i4m0x")
volume_db = -5.0
[node name="PickUp" type="AudioStreamPlayer" parent="Sfx" unique_id=176915166] [node name="PickUp" type="AudioStreamPlayer" parent="Sfx" unique_id=176915166]
stream = SubResource("AudioStreamRandomizer_jjdv2") stream = SubResource("AudioStreamRandomizer_jjdv2")
volume_db = -11.0 volume_db = -16.0
[node name="Announce" type="AudioStreamPlayer" parent="Sfx" unique_id=876644323] [node name="Announce" type="AudioStreamPlayer" parent="Sfx" unique_id=876644323]
stream = ExtResource("22_btfwx") stream = ExtResource("22_btfwx")
volume_db = 8.627 volume_db = 3.627
[node name="Astra_phone_call" type="AudioStreamPlayer" parent="Sfx" unique_id=721344636] [node name="Astra_phone_call" type="AudioStreamPlayer" parent="Sfx" unique_id=721344636]
stream = ExtResource("27_0rjel") stream = ExtResource("27_0rjel")
volume_db = -5.0
[node name="Phone_call" type="AudioStreamPlayer" parent="Sfx" unique_id=1668278453] [node name="Phone_call" type="AudioStreamPlayer" parent="Sfx" unique_id=1668278453]
stream = ExtResource("28_3dfjn") stream = ExtResource("28_3dfjn")
volume_db = -5.0
[node name="PlantPoint" type="AudioStreamPlayer" parent="Sfx" unique_id=2044025024] [node name="PlantPoint" type="AudioStreamPlayer" parent="Sfx" unique_id=2044025024]
stream = SubResource("AudioStreamRandomizer_qog4c") stream = SubResource("AudioStreamRandomizer_qog4c")
volume_db = -5.0
[node name="Reveal" type="AudioStreamPlayer" parent="Sfx" unique_id=1597352608] [node name="Reveal" type="AudioStreamPlayer" parent="Sfx" unique_id=1597352608]
stream = ExtResource("37_3dfjn") stream = ExtResource("37_3dfjn")
volume_db = -3.0 volume_db = -8.0
[node name="Ship_reveal" type="AudioStreamPlayer" parent="Sfx" unique_id=1121632306] [node name="Ship_reveal" type="AudioStreamPlayer" parent="Sfx" unique_id=1121632306]
stream = ExtResource("37_3dfjn") stream = ExtResource("37_3dfjn")
volume_db = -3.0 volume_db = -8.0
[node name="Signal" type="AudioStreamPlayer" parent="Sfx" unique_id=335682989] [node name="Signal" type="AudioStreamPlayer" parent="Sfx" unique_id=335682989]
stream = ExtResource("41_iaiio") stream = ExtResource("41_iaiio")
volume_db = -10.0 volume_db = -15.0
[node name="Atterrissage" type="AudioStreamPlayer" parent="Sfx" unique_id=2021186625] [node name="Atterrissage" type="AudioStreamPlayer" parent="Sfx" unique_id=2021186625]
stream = ExtResource("40_h3tkm") stream = ExtResource("40_h3tkm")
volume_db = -5.0
[node name="Decollage" type="AudioStreamPlayer" parent="Sfx" unique_id=581331122] [node name="Decollage" type="AudioStreamPlayer" parent="Sfx" unique_id=581331122]
stream = ExtResource("41_iyxkn") stream = ExtResource("41_iyxkn")
volume_db = -5.0
[node name="Elevator" type="AudioStreamPlayer" parent="Sfx" unique_id=1345852969] [node name="Elevator" type="AudioStreamPlayer" parent="Sfx" unique_id=1345852969]
stream = ExtResource("42_obkny") stream = ExtResource("42_obkny")
volume_db = -5.0
[node name="Mining" type="AudioStreamPlayer" parent="Sfx" unique_id=1122216774] [node name="Mining" type="AudioStreamPlayer" parent="Sfx" unique_id=1122216774]
stream = SubResource("AudioStreamRandomizer_yjs51") stream = SubResource("AudioStreamRandomizer_yjs51")
volume_db = -5.0
[node name="Screen_interaction" type="AudioStreamPlayer" parent="Sfx" unique_id=1140309368] [node name="Screen_interaction" type="AudioStreamPlayer" parent="Sfx" unique_id=1140309368]
stream = ExtResource("47_svctq") stream = ExtResource("47_svctq")
volume_db = -8.0 volume_db = -13.0
[node name="Ship_exit" type="AudioStreamPlayer" parent="Sfx" unique_id=615567072] [node name="Ship_exit" type="AudioStreamPlayer" parent="Sfx" unique_id=615567072]
stream = ExtResource("48_j8acj") stream = ExtResource("48_j8acj")
volume_db = 8.0 volume_db = 3.0
[node name="Movement" type="AudioStreamPlayer" parent="Sfx" unique_id=1403498558] [node name="Movement" type="AudioStreamPlayer" parent="Sfx" unique_id=1403498558]
stream = ExtResource("51_iyxkn") stream = ExtResource("51_iyxkn")
volume_db = -7.0 volume_db = -12.0
[node name="Teleportation" type="AudioStreamPlayer" parent="Sfx" unique_id=369599456] [node name="Teleportation" type="AudioStreamPlayer" parent="Sfx" unique_id=369599456]
stream = ExtResource("50_rlnfe") stream = ExtResource("50_rlnfe")
volume_db = -6.0 volume_db = -11.0
[node name="HoloAppear" type="AudioStreamPlayer" parent="Sfx" unique_id=637436824] [node name="HoloAppear" type="AudioStreamPlayer" parent="Sfx" unique_id=637436824]
stream = ExtResource("63_aedoe") stream = ExtResource("63_aedoe")
volume_db = -6.0 volume_db = -11.0
[node name="HoloDisappear" type="AudioStreamPlayer" parent="Sfx" unique_id=1756615928] [node name="HoloDisappear" type="AudioStreamPlayer" parent="Sfx" unique_id=1756615928]
stream = ExtResource("64_ge2sc") stream = ExtResource("64_ge2sc")
volume_db = -6.0 volume_db = -11.0
[node name="Unlock_tool" type="AudioStreamPlayer" parent="Sfx" unique_id=667077616]
stream = ExtResource("64_yr73o")
volume_db = -5.0
+13 -9
View File
@@ -7,19 +7,21 @@ const MAX_VOLUME = 24.
const DEFAULT_FADE_TIME : float = 5.0 const DEFAULT_FADE_TIME : float = 5.0
const REGION_FIRST_PHASE = [ const REGION_FIRST_PHASE = [
"RegionDesertPhase1",
"RegionForestPhase1",
"RegionForestPhase2",
"RegionMinePhase1", "RegionMinePhase1",
"RegionMinePhase2", "RegionMinePhase2",
"RegionForestPhase1",
"RegionForestPhase2",
"RegionDesertPhase1",
"RegionDesertPhase2",
] ]
const REGION_LOOP_PHASE = [ const REGION_LOOP_PHASE = [
"RegionForestLoop",
"RegionForestLoop",
"RegionForestLoop",
"RegionMineLoop", "RegionMineLoop",
"RegionMineLoop" "RegionMineLoop",
"RegionForestLoop",
"RegionForestLoop",
"RegionDesertLoop",
"RegionDesertLoop",
] ]
@onready var settings : SettingsData = GameInfo.settings_data @onready var settings : SettingsData = GameInfo.settings_data
@@ -42,7 +44,6 @@ func _on_change_scene(scene : Scene):
elif scene is IntroScene: elif scene is IntroScene:
stop_all_musics() stop_all_musics()
elif scene is RegionScene: elif scene is RegionScene:
play_ambiance("Exterior", false)
var region_level = GameInfo.game_data.current_run.level var region_level = GameInfo.game_data.current_run.level
var first_phase = REGION_FIRST_PHASE[region_level % len(REGION_FIRST_PHASE)] var first_phase = REGION_FIRST_PHASE[region_level % len(REGION_FIRST_PHASE)]
var loop_phase = REGION_LOOP_PHASE[region_level % len(REGION_LOOP_PHASE)] var loop_phase = REGION_LOOP_PHASE[region_level % len(REGION_LOOP_PHASE)]
@@ -66,6 +67,9 @@ func _on_change_scene(scene : Scene):
elif scene is RelayBaseScene: elif scene is RelayBaseScene:
stop_all_musics() stop_all_musics()
play_ambiance_alone("BaseRelais", false) play_ambiance_alone("BaseRelais", false)
elif scene is CaveScene:
stop_all_musics()
play_ambiance_alone("Cave", false)
# Fonction s'exécutant à chaque début de timeline # Fonction s'exécutant à chaque début de timeline
func _on_timeline_started(): func _on_timeline_started():
@@ -299,7 +303,7 @@ func set_volume(player : AudioStreamPlayer, to : float, fade_time = DEFAULT_FADE
return fade_tween return fade_tween
func start_player(player: AudioStreamPlayer, from_random_time = false, fade_time = DEFAULT_FADE_TIME): func start_player(player: AudioStreamPlayer, from_random_time = false, fade_time = DEFAULT_FADE_TIME):
if player and not player.playing: if player and player.stream and not player.playing:
player.play( player.play(
0.0 if not from_random_time 0.0 if not from_random_time
else randf_range(0.0, player.stream.get_length()) else randf_range(0.0, player.stream.get_length())
@@ -39,6 +39,11 @@ materials/extract_format=0
materials/extract_path="" materials/extract_path=""
_subresources={ _subresources={
"materials": { "materials": {
"Cristal": {
"use_external/enabled": true,
"use_external/fallback_path": "res://common/assets/materials/cristal.tres",
"use_external/path": "uid://di0m3uqgi3l08"
},
"Material": { "Material": {
"use_external/enabled": true, "use_external/enabled": true,
"use_external/fallback_path": "res://common/assets/materials/default_3d.tres", "use_external/fallback_path": "res://common/assets/materials/default_3d.tres",
@@ -39,6 +39,11 @@ materials/extract_format=0
materials/extract_path="" materials/extract_path=""
_subresources={ _subresources={
"materials": { "materials": {
"Cristal": {
"use_external/enabled": true,
"use_external/fallback_path": "res://common/assets/materials/cristal.tres",
"use_external/path": "uid://di0m3uqgi3l08"
},
"Material": { "Material": {
"use_external/enabled": true, "use_external/enabled": true,
"use_external/fallback_path": "res://common/assets/materials/default_3d.tres", "use_external/fallback_path": "res://common/assets/materials/default_3d.tres",
+1
View File
@@ -33,6 +33,7 @@ signal current_region_data_updated(p : RegionData)
@export var game_mode : GameMode = GameMode.STORY @export var game_mode : GameMode = GameMode.STORY
@export var dialogs_done : Array[String] = [] #Chemin des dialogues terminés @export var dialogs_done : Array[String] = [] #Chemin des dialogues terminés
@export var tutorials_done : Array[String] = []
func start_run() -> RunData: func start_run() -> RunData:
player_data.clear_inventory() player_data.clear_inventory()
+15 -13
View File
@@ -1,13 +1,12 @@
extends Resource extends Resource
class_name ProgressionData class_name ProgressionData
@export var planted_mutation_ids: Array[String] = [] @export var planted_mutation_ids: Array[String] = []
@export var story_step_i := 0 @export var story_step_i := 0
@export var ship_tutorial_done = false @export var mutations_unlocked = 8
var all_mutations: Array[PlantMutation] : get = get_all_mutations 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 available_artefacts: Array[Artefact] : get = get_all_artifacts
var story_step : StoryStep : get = get_story_step var story_step : StoryStep : get = get_story_step
@@ -19,23 +18,26 @@ func next_story_step() -> void:
if story_step_i + 1 < len(get_all_story_steps()): if story_step_i + 1 < len(get_all_story_steps()):
story_step_i += 1 story_step_i += 1
func get_available_mutations() -> Array[PlantMutation]:
return get_all_mutations().slice(0, mutations_unlocked)
func get_all_mutations() -> Array[PlantMutation]: func get_all_mutations() -> Array[PlantMutation]:
return [ return [
AncientMutation.new(),
FertileMutation.new(),
GenerousMutation.new(),
HurriedMutation.new(),
PrecociousMutation.new(),
ProlificMutation.new(),
ProtectiveMutation.new(),
PureMutation.new(),
PurificationMutation.new(),
QualityMutation.new(), QualityMutation.new(),
AncientMutation.new(),
ProlificMutation.new(),
PrecociousMutation.new(),
PurificationMutation.new(),
VivaciousMutation.new(),
QuickMutation.new(), QuickMutation.new(),
RobustMutation.new(), RobustMutation.new(),
SocialMutation.new(), SocialMutation.new(),
FertileMutation.new(),
HurriedMutation.new(),
GenerousMutation.new(),
ProtectiveMutation.new(),
PureMutation.new(),
ToughMutation.new(), ToughMutation.new(),
VivaciousMutation.new(),
] ]
func get_all_artifacts() -> Array[Artefact]: func get_all_artifacts() -> Array[Artefact]:
+28 -13
View File
@@ -32,42 +32,56 @@ func generate_next_run_points() -> Array[RunPoint]:
next_run_points = [] next_run_points = []
for i in range(story_step.get_run_point_number(level+1)): for i in range(story_step.get_run_point_number(level+1)):
var last_modifiers : Array[String] = []
if len(next_run_points):
for m in next_run_points[0].region_parameter.modifiers:
last_modifiers.append(m.modifier_name)
next_run_points.append( next_run_points.append(
generate_next_run_point() generate_next_run_point(last_modifiers)
) )
return next_run_points return next_run_points
func generate_next_run_point() -> RunPoint: func generate_next_run_point(last_modifiers : Array[String] = []) -> RunPoint:
var region_parameter = RegionParameter.new() var region_parameter = RegionParameter.new()
var next_level = level+1 var next_level = level+1
var challenge_modifiers = generate_challenge_modifiers().filter(
func(m : RegionModifier): return not m.modifier_name in last_modifiers
)
var benefic_modifiers = generate_benefic_modifiers().filter(
func(m : RegionModifier): return not m.modifier_name in last_modifiers
)
var normal_modifiers = generate_normal_modifiers().filter(
func(m : RegionModifier): return not m.modifier_name in last_modifiers
)
if story_step.need_gameplay_modifier(next_level): if story_step.need_gameplay_modifier(next_level):
var is_challenge = randf() < story_step.get_challenge_chance(next_level) var is_challenge = randf() < story_step.get_challenge_chance(next_level)
if is_challenge: if is_challenge:
region_parameter.modifiers = [ region_parameter.modifiers = [
generate_challenge_modifiers().pick_random(), challenge_modifiers.pick_random(),
generate_benefic_modifiers().pick_random() benefic_modifiers.pick_random()
] as Array[RegionModifier] ] as Array[RegionModifier]
else: else:
region_parameter.modifiers = [ region_parameter.modifiers = [
generate_normal_modifiers().pick_random() normal_modifiers.pick_random()
] as Array[RegionModifier] ] as Array[RegionModifier]
var first_vending = story_step.get_first_vending_machine_occurence(next_level) region_parameter.modifiers.append_array(
var vending_occurence = story_step.get_vending_machine_occurence(next_level) story_step.get_gameplay_modifiers_for_region(next_level)
if vending_occurence > 0: )
if (level - first_vending)%vending_occurence == 0:
region_parameter.modifiers.append(VendingMachineModifier.new())
region_parameter.modifiers.append_array( region_parameter.modifiers.append_array(
story_step.get_story_modifiers_for_region(next_level) story_step.get_story_modifiers_for_region(next_level)
) )
region_parameter.objective = story_step.get_objective_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( return RunPoint.new(
region_parameter region_parameter
) )
@@ -94,7 +108,7 @@ func generate_normal_modifiers() -> Array[RegionModifier]:
HarshModifier.new(), HarshModifier.new(),
ToxicModifier.new(), ToxicModifier.new(),
SandyModifier.new(), SandyModifier.new(),
MagneticModifier.new(),
] ]
func generate_benefic_modifiers() -> Array[RegionModifier]: func generate_benefic_modifiers() -> Array[RegionModifier]:
@@ -102,6 +116,7 @@ func generate_benefic_modifiers() -> Array[RegionModifier]:
VendingMachineModifier.new(), VendingMachineModifier.new(),
ResonnanceModifier.new(), ResonnanceModifier.new(),
InstableModifier.new(), InstableModifier.new(),
CaveModifier.new(),
] ]
+2 -2
View File
@@ -57,8 +57,8 @@ const AVAILABLE_LANGUAGES_LABEL = [
#region ------------------ Game ------------------ #region ------------------ Game ------------------
const MAX_ZOOM = 1.8 const MAX_ZOOM = 2.
const MIN_ZOOM = 0.8 const MIN_ZOOM = 0.5
# Not in settings pannel # Not in settings pannel
@export var zoom : float = 1. : @export var zoom : float = 1. :
@@ -2,6 +2,7 @@ extends StoryStep
class_name AstraStoryStep class_name AstraStoryStep
const MERCURY_ARRIVAL_DIALOG_PATH="res://dialogs/timelines/astra/mercury_arrival.dtl" 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: func get_respawn_scene() -> Scene:
return AstraScene.new() return AstraScene.new()
@@ -15,9 +16,21 @@ func get_destination_scene() -> Scene:
"001" "001"
) )
func get_cave_occurence(_level : int) -> int:
return 2
func get_region_sequence_length() -> int: func get_region_sequence_length() -> int:
return 4 return 4
func get_objective_for_region(level : int) -> int:
match level:
1: return 6
2: return 10
3: return 16
4: return 24
5: return 34
_: return get_objective_for_region(level-1) + (level-2) * 5
func get_first_vending_machine_occurence(_level : int) -> int: func get_first_vending_machine_occurence(_level : int) -> int:
return 0 return 0
@@ -28,6 +41,8 @@ func get_challenge_chance(_level : int) -> float:
return 0. return 0.
func get_ship_dialog_path(level : int, ship_in_space := true) -> String: func get_ship_dialog_path(level : int, ship_in_space := true) -> String:
if ship_in_space and level == get_region_sequence_length() - 1: if ship_in_space and level == get_cave_occurence(level) - 1:
return CAVE_DIALOG_PATH
if ship_in_space and is_run_finished(level + 1):
return MERCURY_ARRIVAL_DIALOG_PATH return MERCURY_ARRIVAL_DIALOG_PATH
return "" return ""
@@ -22,11 +22,11 @@ func get_destination_scene() -> Scene:
) )
func get_first_vending_machine_occurence(_level : int) -> int: func get_first_vending_machine_occurence(_level : int) -> int:
return 0 return 1
func get_ship_dialog_path(level : int, ship_in_space := true) -> String: func get_ship_dialog_path(level : int, ship_in_space := true) -> String:
if level == 0: if level == 0:
return MERCURY_DEPARTURE_DIALOG_PATH return MERCURY_DEPARTURE_DIALOG_PATH
if ship_in_space and level == get_region_sequence_length() - 1: if ship_in_space and is_run_finished(level + 1):
return VENUS_ARRIVAL_DIALOG_PATH return VENUS_ARRIVAL_DIALOG_PATH
return "" return ""
+36 -9
View File
@@ -19,7 +19,7 @@ func get_ship_dialog_path(_level : int, _ship_in_space := true) -> String:
#region ------------------ Run ------------------ #region ------------------ Run ------------------
func is_run_finished(level : int) -> bool: func is_run_finished(level : int) -> bool:
return level == get_region_sequence_length() return level == get_region_sequence_length() - 1
func get_region_sequence_length() -> int: func get_region_sequence_length() -> int:
return 6 return 6
@@ -28,7 +28,13 @@ func get_first_vending_machine_occurence(_level : int) -> int:
return 2 return 2
func get_vending_machine_occurence(_level : int) -> int: func get_vending_machine_occurence(_level : int) -> int:
return 4 return 3
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: func get_challenge_chance(_level : int) -> float:
return 0.3 return 0.3
@@ -38,15 +44,17 @@ func get_run_point_number(level : int) -> int:
return 1 return 1
return 2 return 2
func get_charge_number(_level : int) -> int:
return 10
func get_objective_for_region(level : int) -> int: func get_objective_for_region(level : int) -> int:
match level: match level:
0: return 1 1: return 10
1: return 8 2: return 15
2: return 10 3: return 20
3: return 15 4: return 30
4: return 20 5: return 45
5: return 30 _: return get_objective_for_region(level-1) + (level-2) * 5
_: return get_objective_for_region(level-1) + (level-3) * 5
func get_story_modifiers_for_region(level : int) -> Array[RegionModifier]: func get_story_modifiers_for_region(level : int) -> Array[RegionModifier]:
var modifiers : Array[RegionModifier] = [] var modifiers : Array[RegionModifier] = []
@@ -54,6 +62,25 @@ func get_story_modifiers_for_region(level : int) -> Array[RegionModifier]:
var dest_mod = DestinationModifier.new() var dest_mod = DestinationModifier.new()
dest_mod.destination_scene = get_destination_scene() dest_mod.destination_scene = get_destination_scene()
modifiers.append(dest_mod) modifiers.append(dest_mod)
var first_cave = get_first_cave_occurence(level)
var cave_occurence = get_cave_occurence(level)
if cave_occurence > 0 and level >= first_cave:
if (level - first_cave)%cave_occurence == 0:
modifiers.append(CaveModifier.new())
return modifiers
func get_gameplay_modifiers_for_region(level : int) -> Array[RegionModifier]:
var modifiers : Array[RegionModifier] = []
if need_gameplay_modifier(level):
var first_vending = get_first_vending_machine_occurence(level)
var vending_occurence = get_vending_machine_occurence(level)
if vending_occurence > 0 and level >= first_vending:
if (level - first_vending)%vending_occurence == 0:
modifiers.append(VendingMachineModifier.new())
return modifiers return modifiers
func need_gameplay_modifier(level : int): func need_gameplay_modifier(level : int):
+23
View File
@@ -0,0 +1,23 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
width="24"
height="24"
viewBox="0 0 24 24"
fill="#ffffff"
class="icon icon-tabler icons-tabler-filled icon-tabler-globe"
version="1.1"
id="svg5"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<defs
id="defs5" />
<path
id="path5"
style="fill:#ffffff;stroke-width:21.0943;stroke-linecap:round;paint-order:stroke fill markers"
d="m 17.023734,4.3635641 a 0.381287,0.381287 0 0 0 -0.170042,0.058862 L 11.821685,7.6971107 A 0.63341096,0.63341096 0 0 0 11.534237,8.2108309 L 11.240336,19.008011 a 0.54999444,0.54999444 0 0 0 0.281243,0.495301 l 2.913668,1.633839 a 0.85528839,0.85528839 0 0 0 0.615008,0.08674 l 3.251881,-0.764304 a 0.54999441,0.54999441 0 0 0 0.407255,-0.3982 L 21.41304,9.6040507 A 0.633411,0.633411 0 0 0 21.276945,9.0305978 L 17.348792,4.4922505 A 0.381287,0.381287 0 0 0 17.023734,4.3635641 Z M 16.855445,5.710685 a 0.29045002,0.29045002 0 0 1 0.24822,0.1000976 l 2.992058,3.4556065 a 0.18188889,0.18188889 0 0 1 -0.06799,0.2862794 L 16.39349,11.042166 a 0.43339164,0.43339164 0 0 1 -0.433214,-0.0611 L 12.879721,8.5445752 a 0.18188888,0.18188888 0 0 1 0.01384,-0.2939165 l 3.831045,-2.4933356 a 0.29045002,0.29045002 0 0 1 0.130842,-0.046638 z" />
<path
id="path11"
style="fill:#ffffff;stroke-width:30;stroke-linecap:round;paint-order:stroke fill markers"
d="M 11.299657,2.8712653 4.865863,8.4803941 A 0.83240115,0.83240115 109.32328 0 0 4.5938103,9.2562442 l 1.6673523,9.2015148 a 0.84433519,0.84433519 50.484116 0 0 0.5249373,0.63644 l 4.4292571,1.721467 a 1.216379,1.216379 3.6429642e-7 0 0 0.88129,0 l 4.429257,-1.721467 a 0.84433513,0.84433513 129.51588 0 0 0.524938,-0.63644 L 18.718193,9.2562442 A 0.83240121,0.83240121 70.676724 0 0 18.446141,8.4803941 L 12.012347,2.8712653 a 0.54226096,0.54226096 5.9568751e-7 0 0 -0.71269,0 z"
transform="matrix(0.43145929,-0.11560917,0.11560917,0.43145929,0.83225312,12.978764)" />
</svg>

After

Width:  |  Height:  |  Size: 2.0 KiB

+44
View File
@@ -0,0 +1,44 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://cqdyykjx6hdrr"
path.s3tc="res://.godot/imported/cristal.svg-7e9a919e9dbc36092f14a8401b5f4888.s3tc.ctex"
metadata={
"imported_formats": ["s3tc_bptc"],
"vram_texture": true
}
[deps]
source_file="res://common/icons/cristal.svg"
dest_files=["res://.godot/imported/cristal.svg-7e9a919e9dbc36092f14a8401b5f4888.s3tc.ctex"]
[params]
compress/mode=2
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=true
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=0
svg/scale=2.0
editor/scale_with_editor_scale=false
editor/convert_colors_with_editor_theme=false
+23
View File
@@ -0,0 +1,23 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
width="24"
height="24"
viewBox="0 0 24 24"
fill="currentColor"
class="icon icon-tabler icons-tabler-filled icon-tabler-flag-2"
version="1.1"
id="svg2"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<defs
id="defs2" />
<path
stroke="none"
d="M 0,0 H 24 V 24 H 0 Z"
fill="none"
id="path1" />
<path
d="m 19,4 a 1,1 0 0 1 0.993,0.883 L 20,5 v 9 a 1,1 0 0 1 -0.883,0.993 L 19,15 H 6 v 6 A 1,1 0 0 1 5.117,21.993 L 5,22 A 1,1 0 0 1 4.007,21.117 L 4,21 V 5 A 1,1 0 0 1 4.883,4.007 L 5,4 Z"
id="path2"
style="fill:#fefefe;fill-opacity:1" />
</svg>

After

Width:  |  Height:  |  Size: 701 B

+43
View File
@@ -0,0 +1,43 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://uckrw5fan88k"
path="res://.godot/imported/flag-2.svg-b4658bfe95b153ec543e0e6f4d1176cb.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://common/icons/flag-2.svg"
dest_files=["res://.godot/imported/flag-2.svg-b4658bfe95b153ec543e0e6f4d1176cb.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
+39
View File
@@ -0,0 +1,39 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
width="18.474695"
height="20.999998"
viewBox="0 0 18.474695 20.999998"
fill="none"
stroke="currentColor"
stroke-width="2"
stroke-linecap="round"
stroke-linejoin="round"
class="icon icon-tabler icons-tabler-outline icon-tabler-hand-finger"
version="1.1"
id="svg5"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<defs
id="defs5" />
<path
stroke="none"
d="m -2.525305,-2.0000007 h 24 V 21.999999 h -24 z"
fill="none"
id="path1" />
<path
d="M 5.474695,10.999999 V 2.4999993 a 1.5,1.5 0 0 1 3,0 v 7.5"
id="path2"
style="stroke:#ffffff;stroke-opacity:1" />
<path
d="m 8.474695,9.4999993 v -2 a 1.5,1.5 0 1 1 3,0 v 2.5"
id="path3"
style="stroke:#ffffff;stroke-opacity:1" />
<path
d="m 11.474695,8.4999993 a 1.5,1.5 0 0 1 3,0 v 1.5"
id="path4"
style="stroke:#ffffff;stroke-opacity:1" />
<path
d="m 14.474695,9.4999993 a 1.5,1.5 0 0 1 3,0 v 4.4999997 a 6,6 0 0 1 -6,6 h -2 0.208 a 6,6 0 0 1 -5.012,-2.7 69.74,69.74 0 0 1 -0.196,-0.3 c -0.312,-0.479 -1.407,-2.388 -3.286,-5.728 a 1.5,1.5 0 0 1 0.536,-2.0219997 1.867,1.867 0 0 1 2.28,0.28 l 1.47,1.4699997"
id="path5"
style="stroke:#ffffff;stroke-opacity:1" />
</svg>

After

Width:  |  Height:  |  Size: 1.3 KiB

+39
View File
@@ -0,0 +1,39 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
width="18.474695"
height="20.999998"
viewBox="0 0 18.474695 20.999998"
fill="none"
stroke="currentColor"
stroke-width="2"
stroke-linecap="round"
stroke-linejoin="round"
class="icon icon-tabler icons-tabler-outline icon-tabler-hand-finger"
version="1.1"
id="svg5"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<defs
id="defs5" />
<path
stroke="none"
d="m -2.525305,-2.0000007 h 24 V 21.999999 h -24 z"
fill="none"
id="path1" />
<path
d="M 5.474695,10.999999 V 2.4999993 a 1.5,1.5 0 0 1 3,0 v 7.5"
id="path2"
style="stroke:#ffffff;stroke-opacity:1" />
<path
d="m 8.474695,9.4999993 v -2 a 1.5,1.5 0 1 1 3,0 v 2.5"
id="path3"
style="stroke:#ffffff;stroke-opacity:1" />
<path
d="m 11.474695,8.4999993 a 1.5,1.5 0 0 1 3,0 v 1.5"
id="path4"
style="stroke:#ffffff;stroke-opacity:1" />
<path
d="m 14.474695,9.4999993 a 1.5,1.5 0 0 1 3,0 v 4.4999997 a 6,6 0 0 1 -6,6 h -2 0.208 a 6,6 0 0 1 -5.012,-2.7 69.74,69.74 0 0 1 -0.196,-0.3 c -0.312,-0.479 -1.407,-2.388 -3.286,-5.728 a 1.5,1.5 0 0 1 0.536,-2.0219997 1.867,1.867 0 0 1 2.28,0.28 l 1.47,1.4699997"
id="path5"
style="stroke:#ffffff;stroke-opacity:1" />
</svg>

After

Width:  |  Height:  |  Size: 1.3 KiB

+43
View File
@@ -0,0 +1,43 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://b3vg3tipd4boh"
path="res://.godot/imported/hand-finger.svg-4b9fa57a07066292554e8fd7f7ad9dac.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://common/icons/hand-finger.svg"
dest_files=["res://.godot/imported/hand-finger.svg-4b9fa57a07066292554e8fd7f7ad9dac.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
+45
View File
@@ -0,0 +1,45 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
width="24"
height="24"
viewBox="0 0 24 24"
fill="currentColor"
class="icon icon-tabler icons-tabler-filled icon-tabler-magnet"
version="1.1"
id="svg2"
sodipodi:docname="magnet.svg"
inkscape:version="1.3.2 (091e20e, 2023-11-25, custom)"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<defs
id="defs2" />
<sodipodi:namedview
id="namedview2"
pagecolor="#505050"
bordercolor="#ffffff"
borderopacity="1"
inkscape:showpageshadow="0"
inkscape:pageopacity="0"
inkscape:pagecheckerboard="1"
inkscape:deskcolor="#505050"
inkscape:zoom="18.5"
inkscape:cx="18.621622"
inkscape:cy="14.324324"
inkscape:window-width="1920"
inkscape:window-height="1009"
inkscape:window-x="1912"
inkscape:window-y="-8"
inkscape:window-maximized="1"
inkscape:current-layer="svg2" />
<path
stroke="none"
d="M0 0h24v24H0z"
fill="none"
id="path1" />
<path
d="M21 9v4a9 9 0 0 1 -18 0v-4h7v4a2 2 0 1 0 4 0v-4zm-3 -7a3 3 0 0 1 3 3v2h-7v-2a3 3 0 0 1 3 -3zm-11 0a3 3 0 0 1 3 3v2h-7v-2a3 3 0 0 1 3 -3z"
id="path2"
style="fill:#ffffff;fill-opacity:1" />
</svg>

After

Width:  |  Height:  |  Size: 1.4 KiB

+43
View File
@@ -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
@@ -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)
@@ -0,0 +1 @@
uid://f143q00p8ph1
+29 -22
View File
@@ -12,16 +12,18 @@ static func get_tile_from_pos(coord) -> Vector2i:
floori(coord.y / (Region.TILE_SIZE)), floori(coord.y / (Region.TILE_SIZE)),
) )
static func get_tiles_in_circle(center: Vector2, radius : float) -> Array[Vector2i]: static func get_tiles_in_circle(center: Vector2,radius : float) -> Array[Vector2i]:
var tiles : Array[Vector2i] = [] var tiles : Array[Vector2i] = []
var margin = ceili(radius * 0.5)
for x in range( for x in range(
floori((center.x - radius/2.) / Region.TILE_SIZE), floori((center.x - radius/2.) / Region.TILE_SIZE) - margin,
ceili((center.x + radius/2.) / Region.TILE_SIZE), ceili((center.x + radius/2.) / Region.TILE_SIZE) + margin,
): ):
for y in range( for y in range(
floori((center.y - radius/2.) / Region.TILE_SIZE), floori((center.y - radius/2.) / Region.TILE_SIZE) - margin,
ceili((center.y + radius/2.) / Region.TILE_SIZE), ceili((center.y + radius/2.) / Region.TILE_SIZE) + margin,
): ):
if is_tile_on_circle(Vector2i(x,y), center, radius): if is_tile_on_circle(Vector2i(x,y), center, radius):
tiles.append(Vector2i(x,y)) tiles.append(Vector2i(x,y))
@@ -30,24 +32,29 @@ static func get_tiles_in_circle(center: Vector2, radius : float) -> Array[Vector
static func is_tile_on_circle(tile_coord : Vector2i, circle_center: Vector2, circle_radius : float) -> bool: static func is_tile_on_circle(tile_coord : Vector2i, circle_center: Vector2, circle_radius : float) -> bool:
var absolute_tile_pos : Vector2 = tile_coord * Region.TILE_SIZE var absolute_tile_pos : Vector2 = tile_coord * Region.TILE_SIZE
# Loop over tile corners to know if the area collide var tile_center = absolute_tile_pos + Vector2.ONE * Region.TILE_SIZE / 2
var corners : Array[Vector2] = [] var tile_radius = roundf(Region.TILE_SIZE/2.)
for x in [0,1]:
for y in [0,1]:
corners.append(
absolute_tile_pos
+ Vector2.RIGHT * x * Region.TILE_SIZE
+ Vector2.DOWN * y * Region.TILE_SIZE
)
# Check if segment touch area
for i in range(4):
var a = corners[i%4]
var b = corners[(i+1)%4]
if segment_intersect_circle(a,b,circle_center,circle_radius):
return true
return false return pow(tile_center.x - circle_center.x, 2) + pow(tile_center.y - circle_center.y, 2) <= pow(tile_radius + circle_radius, 2)
# Loop over tile corners to know if the area collide
# var corners : Array[Vector2] = []
# for x in [0,1]:
# for y in [0,1]:
# corners.append(
# absolute_tile_pos
# + Vector2.RIGHT * x * Region.TILE_SIZE
# + Vector2.DOWN * y * Region.TILE_SIZE
# )
# # Check if segment touch area
# for i in range(4):
# var a = corners[i%4]
# var b = corners[(i+1)%4]
# if segment_intersect_circle(a,b,circle_center,circle_radius):
# return true
# return false
# Stolen here https://stackoverflow.com/questions/1073336/circle-line-segment-collision-detection-algorithm # Stolen here https://stackoverflow.com/questions/1073336/circle-line-segment-collision-detection-algorithm
+3
View File
@@ -0,0 +1,3 @@
+1
View File
@@ -0,0 +1 @@
uid://bebwor5r5nnov
+9
View File
@@ -0,0 +1,9 @@
[gd_scene format=3 uid="uid://6or2rnjt5ixv"]
[ext_resource type="Script" uid="uid://bebwor5r5nnov" path="res://common/tools/scripts/test_tiles.gd" id="1_44t07"]
[node name="TestTiles" type="Node2D" unique_id=949540000]
script = ExtResource("1_44t07")
[node name="Grid" type="Node2D" parent="." unique_id=2109744474]
unique_name_in_owner = true
@@ -9,9 +9,9 @@ uniform vec2 viewport_size = vec2(1920.0, 1080.0);
// Uniforms for customization // Uniforms for customization
uniform sampler2D noise_texture : repeat_enable; uniform sampler2D noise_texture : repeat_enable;
uniform float cloud_speed : hint_range(0.0, 1.0) = 1.0; uniform float cloud_speed : hint_range(0.0, 10.0) = 1.0;
uniform float cloud_delay : hint_range(0.0, 100.0) = 1.0; uniform float cloud_delay : hint_range(0.0, 100.0) = 1.0;
uniform vec2 noise_dir = vec2(1.0,+1.0); uniform vec2 cloud_dir = vec2(1.0,+1.0);
uniform vec3 cloud_color : source_color = vec3(0.8); uniform vec3 cloud_color : source_color = vec3(0.8);
uniform float cloud_alpha : hint_range(0.0, 1.0) = 1.0; uniform float cloud_alpha : hint_range(0.0, 1.0) = 1.0;
uniform float cloud_size : hint_range(1.0, 100.0) = 10.0; uniform float cloud_size : hint_range(1.0, 100.0) = 10.0;
@@ -26,8 +26,8 @@ void fragment() {
float time = TIME+cloud_delay; float time = TIME+cloud_delay;
vec2 time_offset = time * noise_dir * cloud_speed * 0.01; vec2 time_offset = time * cloud_dir * cloud_speed * 0.01;
vec2 distorsion_time_offset = time * noise_dir * (cloud_speed + vec2(cloud_distorsion_speed,cloud_distorsion_speed)) * 0.01; vec2 distorsion_time_offset = time * cloud_dir * (cloud_speed + vec2(cloud_distorsion_speed,cloud_distorsion_speed)) * 0.01;
vec2 cloud_uv = world_pos * (1./(cloud_size*100.)) + time_offset; vec2 cloud_uv = world_pos * (1./(cloud_size*100.)) + time_offset;
vec2 distorsion_cloud_uv = world_pos * (1./(cloud_size*100.)) + distorsion_time_offset; vec2 distorsion_cloud_uv = world_pos * (1./(cloud_size*100.)) + distorsion_time_offset;
@@ -0,0 +1,40 @@
shader_type canvas_item;
uniform float line_number = 6;
uniform vec4 line_color : source_color = vec4(1.);
uniform float line_thickness : hint_range(0.0, 0.01) = 0.001;
const mat3 sobel_x = mat3(
vec3( 1.0, 2.0, 1.0),
vec3( 0.0, 0.0, 0.0),
vec3(-1.0, -2.0, -1.0)
);
const mat3 sobel_y = mat3(
vec3(1.0, 0.0, -1.0),
vec3(2.0, 0.0, -2.0),
vec3(1.0, 0.0, -1.0)
);
float sample_quantized(sampler2D text, vec2 uv) {
return ceil(texture(text, uv).r * line_number) / line_number;
}
void fragment() {
float gx = 0.0;
float gy = 0.0;
for (int x = 0; x < 3; x++) {
for (int y = 0; y < 3; y++) {
vec2 offset = vec2(float(x) - 1.0, float(y) - 1.0) * line_thickness;
float s = sample_quantized(TEXTURE, UV + offset);
gx += s * sobel_x[x][y];
gy += s * sobel_y[x][y];
}
}
float edge = length(vec2(gx, gy));
float line = step(0.0001, edge);
COLOR = vec4(line_color.rgb, line * line_color.a * COLOR.r);
}
@@ -0,0 +1 @@
uid://bklafn6ulmkij
+13
View File
@@ -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]
+1
View File
@@ -0,0 +1 @@
uid://pgqchxycwcpd
@@ -0,0 +1 @@
uid://clq4utdtxf01d
@@ -0,0 +1 @@
uid://fng5jdep6ebr
@@ -0,0 +1 @@
uid://cc1vx88mwb7tu
+38 -15
View File
@@ -1,29 +1,52 @@
extends Camera2D extends Camera2D
class_name Camera class_name RegionCamera
const MOVE_LERP_WEIGHT = 0.9 const MOVE_LERP_WEIGHT = 0.9
const ZOOM_LERP_WEIGHT = 0.05 const ZOOM_LERP_WEIGHT = 0.05
const SHAKE_INTENSITY = 10.0
const SHAKE_SPEED = 500.0
const ZOOM_STEP = 0.1 const ZOOM_STEP = 0.1
@export var following : Node2D @export var following : Node2D
@export var should_follow : bool = true
@onready var settings = GameInfo.settings_data @onready var settings = GameInfo.settings_data
@export var shake_active_time = -1
var shake_noise := FastNoiseLite.new()
func _input(_e): func _input(_e):
if Input.is_action_just_pressed("zoom_in"): if Input.is_action_just_pressed("zoom_in"):
settings.zoom = settings.zoom + ZOOM_STEP settings.zoom = settings.zoom + ZOOM_STEP
GameInfo.save_settings() GameInfo.save_settings()
if Input.is_action_just_pressed("zoom_out"): if Input.is_action_just_pressed("zoom_out"):
settings.zoom = settings.zoom - ZOOM_STEP settings.zoom = settings.zoom - ZOOM_STEP
GameInfo.save_settings() GameInfo.save_settings()
func _ready(): func _ready():
if following: if following and should_follow:
zoom = Vector2.ONE * settings.zoom zoom = Vector2.ONE * settings.zoom
global_position = following.global_position global_position = following.global_position
func _process(_delta): func _process(delta):
if following: if following and should_follow:
global_position = following.global_position.lerp(global_position, MOVE_LERP_WEIGHT) global_position = following.global_position.lerp(global_position, MOVE_LERP_WEIGHT)
zoom = zoom.lerp(Vector2.ONE * settings.zoom, MOVE_LERP_WEIGHT) zoom = zoom.lerp(Vector2.ONE * settings.zoom, MOVE_LERP_WEIGHT)
if shake_active_time > 0.:
print(shake_noise.get_noise_2d(shake_active_time * SHAKE_SPEED, 0) * SHAKE_INTENSITY)
shake_active_time -= delta
offset = Vector2(
shake_noise.get_noise_2d(shake_active_time * SHAKE_SPEED, 0) * SHAKE_INTENSITY,
shake_noise.get_noise_2d(0, shake_active_time * SHAKE_SPEED) * SHAKE_INTENSITY,
)
else :
offset = lerp(offset, Vector2.ZERO, 10.5 * delta)
func shake(time := 5):
shake_noise.seed = randi()
shake_active_time = time
@@ -0,0 +1,294 @@
[gd_scene format=3 uid="uid://bhbc1monbgumh"]
[ext_resource type="Script" uid="uid://xamd5y6tig71" path="res://entities/interactable_3d/cristal/scripts/artefact_announce.gd" id="1_2sroa"]
[ext_resource type="Texture2D" uid="uid://bi5jo6pf0acjb" path="res://common/icons/carambola.svg" id="2_3vg7r"]
[ext_resource type="LabelSettings" uid="uid://dqwayi8yjwau2" path="res://gui/ressources/title_label_settings.tres" id="3_doutq"]
[ext_resource type="FontFile" uid="uid://qt80w6o01q5s" path="res://gui/ressources/fonts/TitanOne-Regular.ttf" id="4_bw55c"]
[ext_resource type="Script" uid="uid://bqisp5hjs06rj" path="res://gui/game/announce/scripts/announce_inspectable.gd" id="5_5vr2f"]
[ext_resource type="Script" uid="uid://dj2pv1hiwjfv0" path="res://gui/game/card/scripts/card_info.gd" id="7_tryv5"]
[ext_resource type="Script" uid="uid://dgbh38j13g5kn" path="res://gui/game/card/scripts/card_section_info.gd" id="8_duftv"]
[ext_resource type="Texture2D" uid="uid://dth2mj0nh2q70" path="res://common/icons/align-right.svg" id="9_qlk3h"]
[ext_resource type="Script" uid="uid://b4tkium34c831" path="res://gui/game/card/scripts/card_stat_info.gd" id="10_d5x7w"]
[ext_resource type="Texture2D" uid="uid://bsvxhafoxwmw0" path="res://common/icons/cube-3d-sphere.svg" id="11_mb83y"]
[ext_resource type="Environment" uid="uid://bxyp24f85p0xf" path="res://gui/game/assets/gui_3d_environment.tres" id="13_uyc6b"]
[ext_resource type="Theme" uid="uid://bgcmd213j6gk1" path="res://gui/ressources/hud.tres" id="14_kb1t6"]
[ext_resource type="Texture2D" uid="uid://dcgnamu7sb3ov" path="res://common/icons/bolt.svg" id="15_ijwr2"]
[sub_resource type="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_bw55c")
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_xdybx"]
script = ExtResource("8_duftv")
title_text = "DESCRIPTION"
title_icon = ExtResource("9_qlk3h")
text = "TALION_OVERLOADER_DESC_TEXT"
[sub_resource type="Resource" id="Resource_041ff"]
script = ExtResource("7_tryv5")
title = "TALION_OVERLOADER"
subtitle = "ARTEFACT"
important_stat_icon = ExtResource("11_mb83y")
sections = Array[ExtResource("8_duftv")]([SubResource("Resource_xdybx")])
[sub_resource type="Animation" id="Animation_aao0q"]
length = 0.001
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("ArtefactAnnounce/AnnounceContainer:theme_override_constants/separation")
tracks/0/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("ArtefactAnnounce/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("ArtefactAnnounce/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("ArtefactAnnounce/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("ArtefactAnnounce:visible")
tracks/4/interp = 1
tracks/4/loop_wrap = true
tracks/4/keys = {
"times": PackedFloat32Array(0.03333333),
"transitions": PackedFloat32Array(1),
"update": 1,
"values": [false]
}
[sub_resource type="Animation" id="Animation_b6hac"]
resource_name = "appear"
length = 0.8
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("ArtefactAnnounce/AnnounceContainer:theme_override_constants/separation")
tracks/0/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("ArtefactAnnounce/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("ArtefactAnnounce/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("ArtefactAnnounce/MarginContainer/BackgroundRect:modulate:a")
tracks/3/interp = 1
tracks/3/loop_wrap = true
tracks/3/keys = {
"times": PackedFloat32Array(0.03333333, 0.8),
"transitions": PackedFloat32Array(1, 1),
"update": 0,
"values": [0.0, 0.8]
}
tracks/4/type = "value"
tracks/4/imported = false
tracks/4/enabled = true
tracks/4/path = NodePath("ArtefactAnnounce:visible")
tracks/4/interp = 1
tracks/4/loop_wrap = true
tracks/4/keys = {
"times": PackedFloat32Array(0, 0.16666667),
"transitions": PackedFloat32Array(1, 1),
"update": 1,
"values": [false, true]
}
[sub_resource type="AnimationLibrary" id="AnimationLibrary_1aa3a"]
_data = {
&"RESET": SubResource("Animation_aao0q"),
&"appear": SubResource("Animation_b6hac")
}
[node name="ArtefactAnnounce" type="CanvasLayer" unique_id=1447182082]
visible = false
script = ExtResource("1_2sroa")
[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_3vg7r")
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_ARTEFACT"
label_settings = ExtResource("3_doutq")
horizontal_alignment = 1
[node name="AnnounceText" type="Label" parent="AnnounceContainer" unique_id=768724763]
unique_name_in_owner = true
layout_mode = 2
text = "TALION_OVERLOADER"
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_5vr2f")
info = SubResource("Resource_041ff")
[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.47699222, 0, 0.878631, 0, 0.9995686, 0, -0.8787731, 0, -0.47690943, 0, 0, 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, 1)
keep_aspect = 0
current = true
fov = 20.0
[node name="WorldEnvironment" type="WorldEnvironment" parent="AnnounceContainer/ObjectVisualiser/SubViewport" unique_id=1135825303]
environment = ExtResource("13_uyc6b")
[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_kb1t6")
text = "OK"
icon = ExtResource("15_ijwr2")
[node name="AnimationPlayer" type="AnimationPlayer" parent="." unique_id=1913258839]
unique_name_in_owner = true
root_node = NodePath("../..")
libraries/ = SubResource("AnimationLibrary_1aa3a")
@@ -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": {
"Cristal": {
"use_external/enabled": true,
"use_external/fallback_path": "res://common/assets/materials/cristal.tres",
"use_external/path": "uid://di0m3uqgi3l08"
}
}
}
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
@@ -0,0 +1,68 @@
[remap]
importer="scene"
importer_version=1
type="PackedScene"
uid="uid://c7p114rvk26xw"
path="res://.godot/imported/cristal_crack.blend-127c21c2b9bb4a6237729dd3a817aaf1.scn"
[deps]
source_file="res://entities/interactable_3d/cristal/assets/cristal_crack.blend"
dest_files=["res://.godot/imported/cristal_crack.blend-127c21c2b9bb4a6237729dd3a817aaf1.scn"]
[params]
nodes/root_type=""
nodes/root_name=""
nodes/root_script=null
nodes/apply_root_scale=true
nodes/root_scale=1.0
nodes/import_as_skeleton_bones=false
nodes/use_name_suffixes=true
nodes/use_node_type_suffixes=true
meshes/ensure_tangents=true
meshes/generate_lods=true
meshes/create_shadow_meshes=true
meshes/light_baking=1
meshes/lightmap_texel_size=0.2
meshes/force_disable_compression=false
skins/use_named_skins=true
animation/import=true
animation/fps=30
animation/trimming=false
animation/remove_immutable_tracks=true
animation/import_rest_as_RESET=false
import_script/path=""
materials/extract=0
materials/extract_format=0
materials/extract_path=""
_subresources={
"materials": {
"Cristal": {
"use_external/enabled": true,
"use_external/fallback_path": "res://common/assets/materials/cristal.tres",
"use_external/path": "uid://di0m3uqgi3l08"
}
}
}
blender/nodes/visible=0
blender/nodes/active_collection_only=false
blender/nodes/punctual_lights=true
blender/nodes/cameras=true
blender/nodes/custom_properties=true
blender/nodes/modifiers=1
blender/meshes/colors=false
blender/meshes/uvs=true
blender/meshes/normals=true
blender/meshes/export_geometry_nodes_instances=false
blender/meshes/gpu_instances=false
blender/meshes/tangents=true
blender/meshes/skins=2
blender/meshes/export_bones_deforming_mesh_only=false
blender/materials/unpack_enabled=true
blender/materials/export_materials=1
blender/animation/limit_playback=true
blender/animation/always_sample=true
blender/animation/group_tracks=true
gltf/naming_version=2
Binary file not shown.
@@ -0,0 +1,84 @@
[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://3c4nxjasebyk" path="res://common/audio_manager/assets/sfx/pickaxe/pickaxe_1_reverb.wav" id="2_3rrt0"]
[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.blend" id="2_vejte"]
[ext_resource type="AudioStream" uid="uid://bs5ldhabymm5p" path="res://common/audio_manager/assets/sfx/pickaxe/pickaxe_2_reverb.wav" id="3_247i2"]
[ext_resource type="AudioStream" uid="uid://bu278eqn8krnb" path="res://common/audio_manager/assets/sfx/pickaxe/pickaxe_3_reverb.wav" id="4_k7wsc"]
[ext_resource type="PackedScene" uid="uid://bhbc1monbgumh" path="res://entities/interactable_3d/cristal/artefact_announce.tscn" id="8_3rrt0"]
[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 = 3
stream_0/stream = ExtResource("2_3rrt0")
stream_1/stream = ExtResource("3_247i2")
stream_2/stream = ExtResource("4_k7wsc")
[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=886555966 instance=ExtResource("2_ci2hw")]
unique_name_in_owner = true
[node name="CristalModelCrack" parent="." unique_id=26298259 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
[node name="ArtefactAnnounce" parent="." unique_id=114641656 instance=ExtResource("8_3rrt0")]
unique_name_in_owner = true
[editable path="CristalModelCrack"]
@@ -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")
@@ -0,0 +1,85 @@
@tool
extends CanvasLayer
class_name ArtefactAnnounce
const DEFAULT_OBJECT_ACCELERATION = Vector2(3,0)
@export var announce_artefact : Artefact = null : set = set_announce_artefact
@export_tool_button("Update", "Callable") var update_action = set_announce_artefact
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_artefact()
%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_artefact(artefact := announce_artefact):
for c in %AnnouceObject.get_children():
c.queue_free()
if is_node_ready() and artefact:
%AnnounceTitle.text = "NEW_ARTEFACT"
%AnnounceText.text = artefact.get_artefact_name()
%ObjectVisualiser.info = artefact.card_info()
%AnnouceObject.add_child(
artefact.get_3d_scene().instantiate()
)
if not visible:
%AnimationPlayer.play("appear")
Input.mouse_mode = Input.MOUSE_MODE_VISIBLE
AudioManager.play_sfx("Reveal")
elif artefact == null and visible:
%AnimationPlayer.play_backwards("appear")
if not Engine.is_editor_hint():
Input.mouse_mode = Input.MOUSE_MODE_CAPTURED
announce_artefact = artefact
func _on_ok_button_down():
announce_artefact = null
@@ -0,0 +1 @@
uid://xamd5y6tig71
@@ -0,0 +1,54 @@
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
%CristalModelCrack.visible = break_level > 0
if break_level > 1:
%CristalModelCrack.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
);
else:
var talion_relay = TalionRelayArtifact.new()
if GameInfo.game_data and GameInfo.game_data.current_region_data and GameInfo.game_data.current_run:
GameInfo.game_data.current_run.add_artefacts(talion_relay)
get_tree().create_timer(1.).timeout.connect(
func (): %ArtefactAnnounce.announce_artefact = talion_relay
);
@@ -0,0 +1 @@
uid://dwn3g8c5sa0a2

Some files were not shown because too many files have changed in this diff Show More