91 Commits

Author SHA1 Message Date
ca9433150e Merge branch 'musique_et_son_2' of https://git.zacharie-guet.fr/zacharie/seeding-planets into musique_et_son_2 2026-05-03 16:46:29 +02:00
3a4c62694a Fix du son, bug et équilibrage 2026-04-30 00:17:52 +02:00
7c90c0e813 Merge de branche Nils et Zac 2026-04-29 23:59:37 +02:00
b15391722e mixage du morceau de désert phase 1 #172 2026-04-29 23:38:12 +02:00
e9f6449e11 suppression des nodes sfx "rocks" "dig" "alarm" et des fichiers audio "dig" "alarm" "build" "truck_moving" 2026-04-29 23:38:11 +02:00
2a43366c86 ajustements liés à l'ambiance de base-relais et suppression des nodes "Rocks" et "Dig" 2026-04-29 23:37:53 +02:00
55e7dc863a sfx et ambiance vending room + nodes audio (à implémenter) #174 2026-04-29 23:37:53 +02:00
4e392789b8 sfx chute distributeur mixé #174 2026-04-29 23:37:34 +02:00
d28654188d sfx de porte (reste qu'à l'implémenter) et sfx get_item (placeholder pas implémenté) #148 #173 2026-04-29 23:37:33 +02:00
b3adbd814c implémentation de la musique de désert phase 1 #172 2026-04-29 23:37:06 +02:00
fecc06b48e correction des dialogues anglophones d'astra failed, post-tutorial et ship presentation #168 2026-04-29 23:37:05 +02:00
06c3b92951 implémentation du morceau de fin et mixage #153 2026-04-29 23:36:58 +02:00
3c2f2006c4 correction des deux musiques en même temps sur le vaisseau et mixage 2026-04-29 23:36:04 +02:00
e33bd0c3a1 mise en place du sfx de sortie du vaisseau et mixage #150 2026-04-29 23:35:37 +02:00
8a6045b6d3 mise en place du sfx de télépotation et mixage #135 2026-04-29 23:34:29 +02:00
f0ab83f77e ajout du morceau de fin de demo et création de la node #153 2026-04-29 23:33:13 +02:00
3b2b1833ca dernières révisions des dialogues anglophones, la correction pro arrive plus tard 2026-04-29 23:32:56 +02:00
071dffc885 fade sur le menu et correction de dialogues 2026-04-29 23:32:47 +02:00
acbc294947 ajout du sfx teleportation, recréation de la node movement et création de la node teleportation 2026-04-29 23:32:12 +02:00
b7a74712fa ajout du sfx movement, création des nodes movement et passage du camion de "music" à "ambiance" #165 2026-04-29 23:31:07 +02:00
89a4962ff7 correction du problème d'ambiance 2026-04-29 23:29:50 +02:00
70f34662fb ajustement des paramètres des musiques 2026-04-29 23:27:58 +02:00
86dbe35146 création des nodes sfx manquantes sur audiomanager 2026-04-29 23:26:28 +02:00
06a1eb0c83 suppression de la lecture en boucle des morceaux de phase #142 2026-04-29 23:25:07 +02:00
4b2b8c965b suppression des oiseaux sur les pistes d'ambiance de niveau 2026-04-29 23:24:47 +02:00
8c1cddbb03 augmentation du default_fade_time 2026-04-29 23:23:43 +02:00
f30a425dd5 amélioration des dialogues en anglais et suppression des oiseaux de l'ambiance Demeter 2026-04-29 23:23:27 +02:00
b4d2c2ed26 mise en place des ambiances, modfication du jingle de reveal du vaisseau, mixage et identification des problèmes sonores 2026-04-29 23:21:15 +02:00
6430609c37 Ajout des nuages
* ajout d'un effet de post processing de nuage qui réagit à la recharge
2026-04-29 23:15:37 +02:00
91e266ec85 Et toujours du dev pour la béta
* Evolution de l'histoire avec de nouveaux dialogues, une plus grande durée de vie du jeu, des nouvelles zones d'histoire...
* Suppression du mode infini
* Ajout d'un écran des mutations découvertes
* Ajout d'un nouveau mécanisme de respawn situé dans le vaissau
* Ajout de 2 nouveaux modificateurs de région
* Quatre nouveaux artefacts
* Visuel de la décontamination de la planète 3D en cours de la partie
* Ajout d'une annonce visuelle des scène du jeu
* Fix sur la mutation Généreux pour être en accord avec sa description
* Amélioration de l'effet de la mutation Purification
* Fix de la mutation sociale aux niveau supérieurs
* Ajout d'un effet visuel de réacteur sur le joueur 3D
* Fix sur l'annonce de nouveaux objets qui se déclenchaient à une nouvelle run
* Amélioration des animation et des informations données dans le vaisseau
* Correction mineure des traductions
2026-04-28 23:41:36 +02:00
805056436d mixage du morceau de désert phase 1 #172 2026-04-26 13:59:27 +02:00
6f4d1825ea suppression des nodes sfx "rocks" "dig" "alarm" et des fichiers audio "dig" "alarm" "build" "truck_moving" 2026-04-26 12:35:49 +02:00
1caaf42105 ajustements liés à l'ambiance de base-relais et suppression des nodes "Rocks" et "Dig" 2026-04-26 12:25:05 +02:00
dfa11a17fd sfx et ambiance vending room + nodes audio (à implémenter) #174 2026-04-26 10:09:47 +02:00
186f150689 sfx chute distributeur mixé #174 2026-04-26 09:33:14 +02:00
8f7b013445 sfx de porte (reste qu'à l'implémenter) et sfx get_item (placeholder pas implémenté) #148 #173 2026-04-26 08:55:21 +02:00
7ae362a3a5 Encore du dev pour la béta 1
* Suppression de la mutation éphémère
* Ajout des modificateur de régions normaux Sableux et Toxique
* Ajout de modificateurs challenge (Rocheux, Radioactif et Contaminé)
* Ajout du modificateur de région bénéfique Résonnance
* Ajout d'un distributeur toutes les 3 régions
* Ajout des régions challenge
* Bouclage sur les couleurs des mutations après le niveau 4
* Ajout de deux nouveaux panneaux de tutoriel, un sur les informations de plantes et l'autre sur le vaisseau
2026-04-17 17:32:58 +02:00
563e16eabf Mise à jour des ressources des plantes (auto par Godot) 2026-04-17 17:25:48 +02:00
Altaezio
e5dea5bb50 Densité de partie de plantes en fonction du niveau de mutation 2026-04-12 20:10:40 +02:00
a432d30c8b Merge branch 'main' of https://git.zacharie-guet.fr/zacharie/seeding-planets 2026-04-10 16:17:01 +02:00
8062c42e7b Dev pour la béta 1
* ajout des artefacts avec la pile et l'emplacement de graine
* affichage des artefacts dans le vaisseau sur une étagère
* ajout des distributeurs d'artefacts dans les régions
* affichage des attributs de bases de plantes dans le vaisseau
* changement de l'affichage du choix des régions
* changement des icônes du détecteur
2026-04-10 16:16:54 +02:00
Altaezio
bf0aa5db42 Plant asset update + test sprites camera fix 2026-04-03 16:17:45 +02:00
84a2eafe57 Fix pour l'alpha 1.3.1
* Correction du bug de collision des chunks (talion qui ne se détruit pas, zone fertile infertile, c'est fini !)
* Equilibrage de la difficulté pour le mode infini
* Correction de la mutation éphémère (ne donne maitenant des graines qu'à la maturation)
2026-03-29 19:02:33 +02:00
a395311952 Mise à jour des ressources des plantes (auto par Godot) 2026-03-29 18:59:54 +02:00
689ad8057d implémentation de la musique de désert phase 1 #172 2026-03-29 15:33:11 +02:00
d45fab6a3d Feature pour l'alpha 1.3
* Ajout d'un mode infini (pour nos hard core gamers)
* Ajout d'un message de découverte d'un nouvel outil
* Séparation de la pelle en deux outils : la pioche et la fourche
* Amélioration de la lisibilité des capsules d'énergies
* Changement léger des texture du sol et de la pierre
* Correction d'un bug lors du clic frénétique sur le porte de sortie du vaisseau
* Ajout d'un icône de recharge
* Fix de la mutation Ancien qui ne s'améliorait pas au niveau 4

+ début de dev des artefacts avec un distributeur
2026-03-27 17:28:20 +01:00
28dfc94da6 Mise à jour des ressources des plantes (auto par Godot) 2026-03-27 17:20:49 +01:00
Altaezio
6507bcce60 New plant parts 2026-03-27 16:54:34 +01:00
4a46492598 Equilibrage, amélioration du tutoriel et de la clarté des éléments de gameplay
* Rajout d'une région supplémentaire pour finir le jeu, et renommage de la dernière map en "Base Borea"
* Amélioration de la clarté du détecteur
* Les objectifs du tutoriel et les indications de jeu apparaissent désormais en haut de l'écran
* Changement des étapes du tutoriel
* Amélioration de la lisibilité du voyage dans le vaisseau (avec un décompte de distance jusqu'à la fin du jeu)
* Changement de la génération de map : la zone fertile est désormais uniquement au centre de la carte, les chunks sont également plus petits
* Changement des objectifs à réaliser ainsi que des recharges, seule 8 par région désormais
* Les modificateurs de région n'évoluent plus
2026-03-21 18:59:39 +01:00
03fbf72ee9 Merge branch 'main' of https://git.zacharie-guet.fr/zacharie/seeding-planets 2026-03-21 18:23:12 +01:00
af0a61581c Merge branch 'main' of https://git.zacharie-guet.fr/zacharie/seeding-planets 2026-03-21 17:03:41 +01:00
7fe4204035 correction des dialogues "astra failed" et "intro" #168 2026-03-21 17:03:35 +01:00
63a909496f Mise à jour des ressources des plantes (auto par Godot) 2026-03-21 16:59:41 +01:00
97748e7e09 Faute d'ortographe 2026-03-21 16:58:51 +01:00
4c7633d4c4 correction des dialogues anglophones d'astra failed, post-tutorial et ship presentation #168 2026-03-21 16:38:57 +01:00
Altaezio
cdb8926d88 Contours des plantes et collisions
* nouveaux sprites avec contours pour les plantes
* les sprites de plantes peuvent être aléatoirement flips
* ajout de collisions aux portes
2026-03-21 12:32:56 +01:00
0b79ef3e02 Merge branch 'musique_et_son_2' of https://git.zacharie-guet.fr/zacharie/seeding-planets into musique_et_son_2 2026-03-21 11:03:32 +01:00
4b16d52740 Zoom, nouvelles mutations et cie
* ajout d'une aide de jeu directement dans l'interface
* ajout de 8 nouvelles mutations (Productif, pressé, pur, vivace, généreux, robuste, protecteur et prolifique)
* changements d'icône pour plus de clarté
* changement de l'animation de recharge pour montrer le temps qui passe
* ajout des mutations rare et de la possibilité d'avoir des mutation niveau 2 dès le départ
* ajout d'un zoom
* correction de bugs (déplacement au dialogue, problème de score au load d'une région)
2026-03-20 17:16:56 +01:00
76707171fa Amélioration QOL et fix divers pour l'alpha-1.1
* Ajout des icônes dans les descriptions des mutations
* QOL sur la fonctionnalité de drop d'item
* Ajout des contrôles dans le tutoriel
* Réécriture des dialogues d'intro et d'échec
* Changements mineurs sur des dialogues et traduction
* Les graines apparaissent avec déjà une mutation
* Limitation du Talion autour de la station de recharge
* Fix de l'ascenseur dans la base Astra
* Ajout d'un effet visuel quand il n'y a plus d'énergie
* Le nombre de graine apparrait désormais dans l'inspécteur de plantes
* Ajout d'un petit icône de progrès de durée de vie de la plante au survol
* Ajout d'une description de la signification des icônes dans le menu pause
* La mutation éphémère réduit désormais la durée de vie de 1
2026-03-13 11:40:31 +01:00
2cd16acd6a ajout de la porte et équilibrage des mutations 2026-03-06 18:15:10 +01:00
263f6c42a7 traduction de wake up 2026-03-06 10:42:24 +01:00
86e2162c6f ajout d'une bordure aléatoire entre chunks 2026-03-06 10:13:18 +01:00
e970b912b0 mise à jour du dialogue wake up 2026-03-06 10:12:33 +01:00
5c4e828a8d implémentation du morceau de fin et mixage #153 2026-03-01 17:27:54 +01:00
efb18bae26 correction des deux musiques en même temps sur le vaisseau et mixage 2026-03-01 16:50:44 +01:00
68d5b4153f implémentation du sfx de bip écran #156 2026-03-01 16:37:16 +01:00
c32f246707 mise en place du sfx de sortie du vaisseau et mixage #150 2026-03-01 14:34:25 +01:00
31609b8b38 ajout du sfx de mouvement #165 2026-03-01 14:17:51 +01:00
da46a56909 gestion des silences au début des morceaux et mise en place du sfx ascenseur #157 2026-03-01 14:12:35 +01:00
81c6328390 mise en place des sfx d'atterrissage et décollage #160 2026-03-01 13:57:03 +01:00
b61bcef769 mise en place du sfx de télépotation et mixage #135 2026-03-01 13:45:06 +01:00
f4206648e6 ajout du morceau de fin de demo et création de la node #153 2026-02-28 20:30:04 +01:00
122fa11aa1 dernières révisions des dialogues anglophones, la correction pro arrive plus tard 2026-02-28 19:42:00 +01:00
c62668fb5b fade sur le menu et correction de dialogues 2026-02-28 17:35:36 +01:00
0f2213bbdd ajout du sfx teleportation, recréation de la node movement et création de la node teleportation 2026-02-27 16:28:16 +01:00
d221869a10 ajout du sfx movement, création des nodes movement et passage du camion de "music" à "ambiance" #165 2026-02-27 16:08:46 +01:00
f26d623c36 ajout du sfx d'ascenseur #157 2026-02-27 14:55:19 +01:00
88aa199f5a correction du problème d'ambiance 2026-02-27 14:06:58 +01:00
75cdd584de mise en place des morceaux "définitifs" de la démo 2026-02-26 18:13:23 +01:00
8b07d5df47 sfx de minage et récolte fonctionnels #164 2026-02-26 14:20:39 +01:00
ebe6df5d4d ajustement des paramètres des musiques 2026-02-26 13:14:43 +01:00
8a19a3f81f création des nodes sfx manquantes sur audiomanager 2026-02-26 13:09:07 +01:00
bdba1fb5b4 ajout des sfx de décollage et d'atterrissage #160 2026-02-26 12:56:26 +01:00
31144151bd ajout des sfx de recharge #136 2026-02-25 15:11:12 +01:00
2df0de1db9 amélioration des morceaux forest #163 2026-02-25 14:01:01 +01:00
026471f847 suppression de la lecture en boucle des morceaux de phase #142 2026-02-22 18:47:00 +01:00
f130c2f2c5 suppression des oiseaux sur les pistes d'ambiance de niveau 2026-02-22 18:08:35 +01:00
7908797ee5 augmentation du default_fade_time 2026-02-22 17:31:51 +01:00
0c5365ff57 amélioration des dialogues en anglais et suppression des oiseaux de l'ambiance Demeter 2026-02-22 17:31:51 +01:00
90eec21031 ajout du sfx d'ascenseur et de bip d'écran #156 #157 2026-02-22 17:29:38 +01:00
4be34c4bfb mise en place des ambiances, modfication du jingle de reveal du vaisseau, mixage et identification des problèmes sonores 2026-02-22 17:29:37 +01:00
788 changed files with 17662 additions and 5052 deletions

View File

@@ -3,19 +3,20 @@
importer="texture"
type="CompressedTexture2D"
uid="uid://cvmlp5nxb2rer"
path="res://.godot/imported/icon_bg.png-5937ce0a857c4a8a9d624ea9ebf09a97.ctex"
path.s3tc="res://.godot/imported/icon_bg.png-5937ce0a857c4a8a9d624ea9ebf09a97.s3tc.ctex"
metadata={
"vram_texture": false
"imported_formats": ["s3tc_bptc"],
"vram_texture": true
}
[deps]
source_file="res://addons/dialogic/Editor/HomePage/icon_bg.png"
dest_files=["res://.godot/imported/icon_bg.png-5937ce0a857c4a8a9d624ea9ebf09a97.ctex"]
dest_files=["res://.godot/imported/icon_bg.png-5937ce0a857c4a8a9d624ea9ebf09a97.s3tc.ctex"]
[params]
compress/mode=0
compress/mode=2
compress/high_quality=false
compress/lossy_quality=0.7
compress/uastc_level=0
@@ -23,7 +24,7 @@ compress/rdo_quality_loss=0.0
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/generate=true
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
@@ -37,4 +38,4 @@ process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1
detect_3d/compress_to=0

View File

@@ -3,19 +3,20 @@
importer="texture"
type="CompressedTexture2D"
uid="uid://duvcdvtgy4h4b"
path="res://.godot/imported/icon.png-12e444f0ed59397c7537943ea85b475c.ctex"
path.s3tc="res://.godot/imported/icon.png-12e444f0ed59397c7537943ea85b475c.s3tc.ctex"
metadata={
"vram_texture": false
"imported_formats": ["s3tc_bptc"],
"vram_texture": true
}
[deps]
source_file="res://addons/dialogic/Modules/Call/icon.png"
dest_files=["res://.godot/imported/icon.png-12e444f0ed59397c7537943ea85b475c.ctex"]
dest_files=["res://.godot/imported/icon.png-12e444f0ed59397c7537943ea85b475c.s3tc.ctex"]
[params]
compress/mode=0
compress/mode=2
compress/high_quality=false
compress/lossy_quality=0.7
compress/uastc_level=0
@@ -23,7 +24,7 @@ compress/rdo_quality_loss=0.0
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/generate=true
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
@@ -37,4 +38,4 @@ process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1
detect_3d/compress_to=0

View File

@@ -4,7 +4,7 @@
[resource]
diffuse_mode = 3
specular_mode = 2
specular_mode = 1
albedo_texture = ExtResource("1_cc1ni")
roughness = 0.0
rim_tint = 0.48

View File

@@ -5,5 +5,6 @@
[resource]
transparency = 1
depth_draw_mode = 1
albedo_color = Color(1, 1, 1, 0.79607844)
shading_mode = 0
albedo_color = Color(1, 1, 1, 0.5803922)
albedo_texture = ExtResource("1_buts1")

View File

@@ -0,0 +1,19 @@
[remap]
importer="oggvorbisstr"
type="AudioStreamOggVorbis"
uid="uid://klb32q3kjtkt"
path="res://.godot/imported/ambiance_vending_room_base_relais.ogg-733c30ce856ee36f7e62b0c326c0ffd6.oggvorbisstr"
[deps]
source_file="res://common/audio_manager/assets/ambiance/vending_room_base_relais/ambiance_vending_room_base_relais.ogg"
dest_files=["res://.godot/imported/ambiance_vending_room_base_relais.ogg-733c30ce856ee36f7e62b0c326c0ffd6.oggvorbisstr"]
[params]
loop=true
loop_offset=0
bpm=0
beat_count=0
bar_beats=4

View File

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

View File

@@ -1,24 +0,0 @@
[remap]
importer="wav"
type="AudioStreamWAV"
uid="uid://ccq04ahrwr3bv"
path="res://.godot/imported/alarm.wav-6b94091f4eab5888b807d44abf28ee48.sample"
[deps]
source_file="res://common/audio_manager/assets/sfx/alarm/alarm.wav"
dest_files=["res://.godot/imported/alarm.wav-6b94091f4eab5888b807d44abf28ee48.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

View File

@@ -1,24 +0,0 @@
[remap]
importer="wav"
type="AudioStreamWAV"
uid="uid://cph17muxckirf"
path="res://.godot/imported/build_1.wav-00e3edb46089a60092c27219bb478b40.sample"
[deps]
source_file="res://common/audio_manager/assets/sfx/build/build_1.wav"
dest_files=["res://.godot/imported/build_1.wav-00e3edb46089a60092c27219bb478b40.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

View File

@@ -1,24 +0,0 @@
[remap]
importer="wav"
type="AudioStreamWAV"
uid="uid://bcjd3sc0jahmi"
path="res://.godot/imported/build_2.wav-84d81458d49a9cd691ca55ed80851e23.sample"
[deps]
source_file="res://common/audio_manager/assets/sfx/build/build_2.wav"
dest_files=["res://.godot/imported/build_2.wav-84d81458d49a9cd691ca55ed80851e23.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

View File

@@ -1,24 +0,0 @@
[remap]
importer="wav"
type="AudioStreamWAV"
uid="uid://c707lqjwgvgni"
path="res://.godot/imported/build_3.wav-08a0c3b12f563f5e63e51887981aa186.sample"
[deps]
source_file="res://common/audio_manager/assets/sfx/build/build_3.wav"
dest_files=["res://.godot/imported/build_3.wav-08a0c3b12f563f5e63e51887981aa186.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

View File

@@ -1,24 +0,0 @@
[remap]
importer="wav"
type="AudioStreamWAV"
uid="uid://dfrp66a4isnt6"
path="res://.godot/imported/dig_1.wav-660d2e56c92fdb4238d2f9b201a7d014.sample"
[deps]
source_file="res://common/audio_manager/assets/sfx/dig/dig_1.wav"
dest_files=["res://.godot/imported/dig_1.wav-660d2e56c92fdb4238d2f9b201a7d014.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

View File

@@ -1,24 +0,0 @@
[remap]
importer="wav"
type="AudioStreamWAV"
uid="uid://bdxkvaciw4mb3"
path="res://.godot/imported/dig_2.wav-85c94aa28e292a128633193eb44b448b.sample"
[deps]
source_file="res://common/audio_manager/assets/sfx/dig/dig_2.wav"
dest_files=["res://.godot/imported/dig_2.wav-85c94aa28e292a128633193eb44b448b.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

View File

@@ -1,24 +0,0 @@
[remap]
importer="wav"
type="AudioStreamWAV"
uid="uid://llxrlwfccywb"
path="res://.godot/imported/dig_3.wav-b9b008bcfd4207a34999827bc23b2eb0.sample"
[deps]
source_file="res://common/audio_manager/assets/sfx/dig/dig_3.wav"
dest_files=["res://.godot/imported/dig_3.wav-b9b008bcfd4207a34999827bc23b2eb0.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

Binary file not shown.

View File

@@ -0,0 +1,24 @@
[remap]
importer="wav"
type="AudioStreamWAV"
uid="uid://br0jqajrqvgie"
path="res://.godot/imported/door_opening.wav-be6526627aa980fb5ae3856a6fd75ee7.sample"
[deps]
source_file="res://common/audio_manager/assets/sfx/door/door_opening.wav"
dest_files=["res://.godot/imported/door_opening.wav-be6526627aa980fb5ae3856a6fd75ee7.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

View File

@@ -0,0 +1,24 @@
[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

Binary file not shown.

View File

@@ -0,0 +1,24 @@
[remap]
importer="wav"
type="AudioStreamWAV"
uid="uid://53ixfbcd5qwu"
path="res://.godot/imported/holo_appear.wav-157b4aed0c2dfe9acb01d26d2102c36f.sample"
[deps]
source_file="res://common/audio_manager/assets/sfx/holo/holo_appear.wav"
dest_files=["res://.godot/imported/holo_appear.wav-157b4aed0c2dfe9acb01d26d2102c36f.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

View File

@@ -0,0 +1,24 @@
[remap]
importer="wav"
type="AudioStreamWAV"
uid="uid://dsijqgnnadgem"
path="res://.godot/imported/holo_disappear.wav-c62aa0f12d34e0637ee622cc84f8a5ef.sample"
[deps]
source_file="res://common/audio_manager/assets/sfx/holo/holo_disappear.wav"
dest_files=["res://.godot/imported/holo_disappear.wav-c62aa0f12d34e0637ee622cc84f8a5ef.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

View File

@@ -1,24 +0,0 @@
[remap]
importer="wav"
type="AudioStreamWAV"
uid="uid://djjt2atdlodvq"
path="res://.godot/imported/truck_moving.wav-359c6cf78b2d978560d013d32aa39790.sample"
[deps]
source_file="res://common/audio_manager/assets/sfx/truck/truck_moving.wav"
dest_files=["res://.godot/imported/truck_moving.wav-359c6cf78b2d978560d013d32aa39790.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

View File

@@ -0,0 +1,24 @@
[remap]
importer="wav"
type="AudioStreamWAV"
uid="uid://c7ehk3l4q3qg1"
path="res://.godot/imported/VM_item_drop.wav-ef9261fa1fd22d9ede7521c09a41d8aa.sample"
[deps]
source_file="res://common/audio_manager/assets/sfx/vending_machine/VM_item_drop.wav"
dest_files=["res://.godot/imported/VM_item_drop.wav-ef9261fa1fd22d9ede7521c09a41d8aa.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

View File

@@ -0,0 +1,24 @@
[remap]
importer="wav"
type="AudioStreamWAV"
uid="uid://dgs7j7itgedoy"
path="res://.godot/imported/VM_power_off.wav-4d95333fef2c7325cfb14dd314ff7e1b.sample"
[deps]
source_file="res://common/audio_manager/assets/sfx/vending_machine/VM_power_off.wav"
dest_files=["res://.godot/imported/VM_power_off.wav-4d95333fef2c7325cfb14dd314ff7e1b.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

View File

@@ -0,0 +1,24 @@
[remap]
importer="wav"
type="AudioStreamWAV"
uid="uid://cij7rpji5tutr"
path="res://.godot/imported/VM_power_on.wav-f2e7d57b0c152555a9dfa7156d17a57a.sample"
[deps]
source_file="res://common/audio_manager/assets/sfx/vending_machine/VM_power_on.wav"
dest_files=["res://.godot/imported/VM_power_on.wav-f2e7d57b0c152555a9dfa7156d17a57a.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

View File

@@ -0,0 +1,19 @@
[remap]
importer="mp3"
type="AudioStreamMP3"
uid="uid://cbre45rky1f4v"
path="res://.godot/imported/dragon-studio-power-off-386180.mp3-995a97388623e0fa5d3ec6066bd36105.mp3str"
[deps]
source_file="res://common/audio_manager/assets/sfx/vending_machine/dragon-studio-power-off-386180.mp3"
dest_files=["res://.godot/imported/dragon-studio-power-off-386180.mp3-995a97388623e0fa5d3ec6066bd36105.mp3str"]
[params]
loop=false
loop_offset=0
bpm=0
beat_count=0
bar_beats=4

View File

@@ -0,0 +1,24 @@
[remap]
importer="wav"
type="AudioStreamWAV"
uid="uid://da3srn8vx4erd"
path="res://.godot/imported/item-drop.wav-fe2fcf1f1129f0a2ca522c0426df7f6e.sample"
[deps]
source_file="res://common/audio_manager/assets/sfx/vending_machine/item-drop.wav"
dest_files=["res://.godot/imported/item-drop.wav-fe2fcf1f1129f0a2ca522c0426df7f6e.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

View File

@@ -7,11 +7,13 @@
[ext_resource type="AudioStream" uid="uid://dcbuhtc085q2x" path="res://common/audio_manager/assets/morceaux/niveau/mines_phase_1.ogg" id="5_ajci6"]
[ext_resource type="AudioStream" uid="uid://dsphn6dbbd55a" path="res://common/audio_manager/assets/morceaux/niveau/forest_phase_1.ogg" id="6_6o1yh"]
[ext_resource type="AudioStream" uid="uid://cwu71o0sl2vto" path="res://common/audio_manager/assets/ambiance/dialogues/ambiance_Demeter.ogg" id="6_8204s"]
[ext_resource type="AudioStream" uid="uid://klb32q3kjtkt" path="res://common/audio_manager/assets/ambiance/vending_room_base_relais/ambiance_vending_room_base_relais.ogg" id="7_ge2sc"]
[ext_resource type="AudioStream" uid="uid://c8gbtdul2x8ws" path="res://common/audio_manager/assets/ambiance/borea/ambiance_borea.ogg" id="7_spekb"]
[ext_resource type="AudioStream" uid="uid://bpf6witukorka" path="res://common/audio_manager/assets/morceaux/menu/main_menu.ogg" id="7_tuvql"]
[ext_resource type="AudioStream" uid="uid://bmwaw1yb8hucf" path="res://common/audio_manager/assets/ambiance/vaisseau/ship_music.ogg" id="8_tuvql"]
[ext_resource type="AudioStream" uid="uid://ccimypx71o4g6" path="res://common/audio_manager/assets/morceaux/niveau/forest_phase_2.ogg" id="10_tq535"]
[ext_resource type="AudioStream" uid="uid://kqbqhwhkv7o3" path="res://common/audio_manager/assets/morceaux/niveau/mines_waiting.ogg" id="11_ngi21"]
[ext_resource type="AudioStream" uid="uid://of68i2k1g6y2" path="res://common/audio_manager/assets/morceaux/niveau/desert_phase_1.ogg" id="11_yjs51"]
[ext_resource type="AudioStream" uid="uid://b8inedx4yjslw" path="res://common/audio_manager/assets/sfx/drop/drop_1.wav" id="12_4hp8f"]
[ext_resource type="AudioStream" uid="uid://cjbpfnlwcpjh0" path="res://common/audio_manager/assets/morceaux/niveau/forest_waiting.ogg" id="12_xmumj"]
[ext_resource type="AudioStream" uid="uid://8nmr5vifkt1f" path="res://common/audio_manager/assets/sfx/harvest/harvest_1.wav" id="13_xoaox"]
@@ -19,21 +21,20 @@
[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://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://dfrp66a4isnt6" path="res://common/audio_manager/assets/sfx/dig/dig_1.wav" id="16_qog4c"]
[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://bdxkvaciw4mb3" path="res://common/audio_manager/assets/sfx/dig/dig_2.wav" id="17_bfg8q"]
[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://llxrlwfccywb" path="res://common/audio_manager/assets/sfx/dig/dig_3.wav" id="18_nlfrr"]
[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://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://bjind1iji0gt7" path="res://common/audio_manager/assets/sfx/pick_up/pick_up_1.wav" id="20_pu6t4"]
[ext_resource type="AudioStream" uid="uid://br0jqajrqvgie" path="res://common/audio_manager/assets/sfx/door/door_opening.wav" id="20_yr73o"]
[ext_resource type="AudioStream" uid="uid://cqa0gvgpoa7pd" path="res://common/audio_manager/assets/sfx/pick_up/pick_up_2.wav" id="21_dk5s6"]
[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://d1cpi438ep0ys" path="res://common/audio_manager/assets/sfx/announce/annnounce.wav" id="22_btfwx"]
[ext_resource type="AudioStream" uid="uid://ccq04ahrwr3bv" path="res://common/audio_manager/assets/sfx/alarm/alarm.wav" id="23_fwu3w"]
[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://b4jx8rflw7dss" path="res://common/audio_manager/assets/sfx/phone/phone_ringing_Astra.wav" id="27_0rjel"]
@@ -59,19 +60,19 @@
[ext_resource type="AudioStream" uid="uid://sgwvpxiul5x5" path="res://common/audio_manager/assets/sfx/ship_exit/ship_exit.wav" id="48_j8acj"]
[ext_resource type="AudioStream" uid="uid://ca0wonha334cl" path="res://common/audio_manager/assets/sfx/teleportation/teleport.wav" id="50_rlnfe"]
[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://dsijqgnnadgem" path="res://common/audio_manager/assets/sfx/holo/holo_disappear.wav" id="64_ge2sc"]
[sub_resource type="AudioStreamRandomizer" id="AudioStreamRandomizer_6o1yh"]
streams_count = 3
stream_0/stream = ExtResource("16_qog4c")
stream_1/stream = ExtResource("17_bfg8q")
stream_2/stream = ExtResource("18_nlfrr")
[sub_resource type="AudioStreamRandomizer" id="AudioStreamRandomizer_kfbah"]
random_pitch = 1.2599211
streams_count = 3
stream_0/stream = ExtResource("16_qog4c")
stream_1/stream = ExtResource("17_bfg8q")
stream_2/stream = ExtResource("18_nlfrr")
streams_count = 4
stream_0/stream = ExtResource("43_kbm55")
stream_1/stream = ExtResource("44_rb87w")
stream_2/stream = ExtResource("45_mur2l")
stream_3/stream = ExtResource("46_t0v4u")
[sub_resource type="AudioStreamRandomizer" id="AudioStreamRandomizer_1w04j"]
random_pitch = 1.2
@@ -121,6 +122,12 @@ script = ExtResource("1_0tvca")
[node name="Ambiances" type="Node" parent="." unique_id=1989991562]
unique_name_in_owner = true
[node name="BaseRelais" type="AudioStreamPlayer" parent="Ambiances" unique_id=1895636918]
stream = ExtResource("7_ge2sc")
[node name="VendingRoom" type="AudioStreamPlayer" parent="Ambiances" unique_id=1478190718]
stream = ExtResource("7_ge2sc")
[node name="Exterior" type="AudioStreamPlayer" parent="Ambiances" unique_id=1405716780]
unique_name_in_owner = true
stream = ExtResource("2_tuvql")
@@ -141,9 +148,16 @@ stream = ExtResource("7_spekb")
unique_name_in_owner = true
stream = ExtResource("8_tuvql")
[node name="Vending_room_base_relais" type="AudioStreamPlayer" parent="Ambiances" unique_id=1544089647]
stream = ExtResource("7_ge2sc")
[node name="Musics" type="Node" parent="." unique_id=1450527710]
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]
unique_name_in_owner = true
stream = ExtResource("6_6o1yh")
@@ -160,6 +174,9 @@ stream = ExtResource("5_ajci6")
unique_name_in_owner = true
stream = ExtResource("4_2fduo")
[node name="RegionDesertPhase1" type="AudioStreamPlayer" parent="Musics" unique_id=2003475958]
stream = ExtResource("11_yjs51")
[node name="RegionForestLoop" type="AudioStreamPlayer" parent="Musics" unique_id=482654512]
unique_name_in_owner = true
stream = ExtResource("12_xmumj")
@@ -185,6 +202,19 @@ unique_name_in_owner = true
[node name="Dig" type="AudioStreamPlayer" parent="Sfx" unique_id=486042600]
stream = SubResource("AudioStreamRandomizer_6o1yh")
[node name="VendingMachineDrop" type="AudioStreamPlayer" parent="Sfx" unique_id=1161500181]
stream = ExtResource("18_ehr7m")
pitch_scale = 0.81
[node name="VendingMachineOff" type="AudioStreamPlayer" parent="Sfx" unique_id=743754597]
stream = ExtResource("19_aedoe")
volume_db = -14.149
pitch_scale = 0.75
[node name="DoorOpen" type="AudioStreamPlayer" parent="Sfx" unique_id=1440910292]
stream = ExtResource("20_yr73o")
pitch_scale = 1.5
[node name="Recharge1" type="AudioStreamPlayer" parent="Sfx" unique_id=357905012]
stream = ExtResource("18_j8acj")
@@ -206,9 +236,6 @@ stream = ExtResource("23_ge2sc")
[node name="Recharge7" type="AudioStreamPlayer" parent="Sfx" unique_id=355754872]
stream = ExtResource("24_yr73o")
[node name="Rocks" type="AudioStreamPlayer" parent="Sfx" unique_id=1012908521]
stream = SubResource("AudioStreamRandomizer_kfbah")
[node name="Respawn" type="AudioStreamPlayer" parent="Sfx" unique_id=1902559716]
stream = ExtResource("16_xmumj")
@@ -227,9 +254,6 @@ volume_db = -11.0
stream = ExtResource("22_btfwx")
volume_db = 8.627
[node name="Alarm" type="AudioStreamPlayer" parent="Sfx" unique_id=689347925]
stream = ExtResource("23_fwu3w")
[node name="Astra_phone_call" type="AudioStreamPlayer" parent="Sfx" unique_id=721344636]
stream = ExtResource("27_0rjel")
@@ -239,6 +263,10 @@ stream = ExtResource("28_3dfjn")
[node name="PlantPoint" type="AudioStreamPlayer" parent="Sfx" unique_id=2044025024]
stream = SubResource("AudioStreamRandomizer_qog4c")
[node name="Reveal" type="AudioStreamPlayer" parent="Sfx" unique_id=1597352608]
stream = ExtResource("37_3dfjn")
volume_db = -3.0
[node name="Ship_reveal" type="AudioStreamPlayer" parent="Sfx" unique_id=1121632306]
stream = ExtResource("37_3dfjn")
volume_db = -3.0
@@ -274,3 +302,11 @@ volume_db = -7.0
[node name="Teleportation" type="AudioStreamPlayer" parent="Sfx" unique_id=369599456]
stream = ExtResource("50_rlnfe")
volume_db = -6.0
[node name="HoloAppear" type="AudioStreamPlayer" parent="Sfx" unique_id=637436824]
stream = ExtResource("63_aedoe")
volume_db = -6.0
[node name="HoloDisappear" type="AudioStreamPlayer" parent="Sfx" unique_id=1756615928]
stream = ExtResource("64_ge2sc")
volume_db = -6.0

View File

@@ -0,0 +1,312 @@
[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="AudioStream" uid="uid://dipnmlprwfo12" path="res://common/audio_manager/assets/ambiance/niveau/ambiance_phase_1.ogg" id="2_tuvql"]
[ext_resource type="AudioStream" uid="uid://b1hut6lc1jevh" path="res://common/audio_manager/assets/morceaux/niveau/mines_phase_2.ogg" id="4_2fduo"]
[ext_resource type="AudioStream" uid="uid://dftxjfdqgsbd3" path="res://common/audio_manager/assets/ambiance/niveau/ambiance_phase_3.ogg" id="4_tuvql"]
[ext_resource type="AudioStream" uid="uid://6yx6txbgc6pt" path="res://common/audio_manager/assets/ambiance/astra/ambiance_astra.ogg" id="5_8204s"]
[ext_resource type="AudioStream" uid="uid://dcbuhtc085q2x" path="res://common/audio_manager/assets/morceaux/niveau/mines_phase_1.ogg" id="5_ajci6"]
[ext_resource type="AudioStream" uid="uid://dsphn6dbbd55a" path="res://common/audio_manager/assets/morceaux/niveau/forest_phase_1.ogg" id="6_6o1yh"]
[ext_resource type="AudioStream" uid="uid://cwu71o0sl2vto" path="res://common/audio_manager/assets/ambiance/dialogues/ambiance_Demeter.ogg" id="6_8204s"]
[ext_resource type="AudioStream" uid="uid://klb32q3kjtkt" path="res://common/audio_manager/assets/ambiance/vending_room_base_relais/ambiance_vending_room_base_relais.ogg" id="7_ge2sc"]
[ext_resource type="AudioStream" uid="uid://c8gbtdul2x8ws" path="res://common/audio_manager/assets/ambiance/borea/ambiance_borea.ogg" id="7_spekb"]
[ext_resource type="AudioStream" uid="uid://bpf6witukorka" path="res://common/audio_manager/assets/morceaux/menu/main_menu.ogg" id="7_tuvql"]
[ext_resource type="AudioStream" uid="uid://bmwaw1yb8hucf" path="res://common/audio_manager/assets/ambiance/vaisseau/ship_music.ogg" id="8_tuvql"]
[ext_resource type="AudioStream" uid="uid://ccimypx71o4g6" path="res://common/audio_manager/assets/morceaux/niveau/forest_phase_2.ogg" id="10_tq535"]
[ext_resource type="AudioStream" uid="uid://kqbqhwhkv7o3" path="res://common/audio_manager/assets/morceaux/niveau/mines_waiting.ogg" id="11_ngi21"]
[ext_resource type="AudioStream" uid="uid://of68i2k1g6y2" path="res://common/audio_manager/assets/morceaux/niveau/desert_phase_1.ogg" id="11_yjs51"]
[ext_resource type="AudioStream" uid="uid://b8inedx4yjslw" path="res://common/audio_manager/assets/sfx/drop/drop_1.wav" id="12_4hp8f"]
[ext_resource type="AudioStream" uid="uid://cjbpfnlwcpjh0" path="res://common/audio_manager/assets/morceaux/niveau/forest_waiting.ogg" id="12_xmumj"]
[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://crncg0mdx1fdw" path="res://common/audio_manager/assets/morceaux/demo/ending.ogg" id="14_h3tkm"]
[ext_resource type="AudioStream" uid="uid://llxrlwfccywb" path="res://common/audio_manager/assets/sfx/dig/dig_3.wav" id="15_rlnfe"]
[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://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://bdxkvaciw4mb3" path="res://common/audio_manager/assets/sfx/dig/dig_2.wav" id="17_bfg8q"]
[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://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://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://bjind1iji0gt7" path="res://common/audio_manager/assets/sfx/pick_up/pick_up_1.wav" id="20_pu6t4"]
[ext_resource type="AudioStream" uid="uid://ds4rc2k28kgqx" path="res://common/audio_manager/assets/sfx/door/door_opening.wav" id="20_yr73o"]
[ext_resource type="AudioStream" uid="uid://cqa0gvgpoa7pd" path="res://common/audio_manager/assets/sfx/pick_up/pick_up_2.wav" id="21_dk5s6"]
[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://d1cpi438ep0ys" path="res://common/audio_manager/assets/sfx/announce/annnounce.wav" id="22_btfwx"]
[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://b4jx8rflw7dss" path="res://common/audio_manager/assets/sfx/phone/phone_ringing_Astra.wav" id="27_0rjel"]
[ext_resource type="AudioStream" uid="uid://ocm1dkkhv7ls" path="res://common/audio_manager/assets/sfx/phone/phone_ringing.wav" id="28_3dfjn"]
[ext_resource type="AudioStream" uid="uid://8juy5ev3rdfh" path="res://common/audio_manager/assets/sfx/plant_points/plant_point_1.wav" id="29_ngi21"]
[ext_resource type="AudioStream" uid="uid://su387eovtrsg" path="res://common/audio_manager/assets/sfx/plant_points/plant_point_2.wav" id="30_xmumj"]
[ext_resource type="AudioStream" uid="uid://bp6mtpqjf4txo" path="res://common/audio_manager/assets/sfx/plant_points/plant_point_3.wav" id="31_spekb"]
[ext_resource type="AudioStream" uid="uid://dnyyeba4yoafp" path="res://common/audio_manager/assets/sfx/plant_points/plant_point_4.wav" id="32_iaiio"]
[ext_resource type="AudioStream" uid="uid://buobk1kxoy80e" path="res://common/audio_manager/assets/sfx/plant_points/plant_point_5.wav" id="33_w2elg"]
[ext_resource type="AudioStream" uid="uid://b8etbfvikq7pm" path="res://common/audio_manager/assets/sfx/plant_points/plant_point_6.wav" id="34_em3o8"]
[ext_resource type="AudioStream" uid="uid://cad0erjq0us08" path="res://common/audio_manager/assets/sfx/plant_points/plant_point_7.wav" id="35_rk2e0"]
[ext_resource type="AudioStream" uid="uid://c6pl2fjg558j3" path="res://common/audio_manager/assets/sfx/plant_points/plant_point_8.wav" id="36_4sa2t"]
[ext_resource type="AudioStream" uid="uid://6id31r7o6trc" path="res://common/audio_manager/assets/sfx/ship_reveal/jingle_vaisseau.wav" id="37_3dfjn"]
[ext_resource type="AudioStream" uid="uid://bw8qfto0htdha" path="res://common/audio_manager/assets/sfx/atterrissage/atterrissage.wav" id="40_h3tkm"]
[ext_resource type="AudioStream" uid="uid://c5y70k3codtn" path="res://common/audio_manager/assets/sfx/signal/signal.mp3" id="41_iaiio"]
[ext_resource type="AudioStream" uid="uid://8d767ar56fhb" path="res://common/audio_manager/assets/sfx/decollage/decollage.wav" id="41_iyxkn"]
[ext_resource type="AudioStream" uid="uid://i6kgjh5vkdar" path="res://common/audio_manager/assets/sfx/elevator/elevator.wav" id="42_obkny"]
[ext_resource type="AudioStream" uid="uid://ctfaxvblcg5lc" path="res://common/audio_manager/assets/sfx/pickaxe/pickaxe_1.wav" id="43_kbm55"]
[ext_resource type="AudioStream" uid="uid://c1dnklmka2ccn" path="res://common/audio_manager/assets/sfx/pickaxe/pickaxe_2.wav" id="44_rb87w"]
[ext_resource type="AudioStream" uid="uid://dd1uu6dd6sloe" path="res://common/audio_manager/assets/sfx/pickaxe/pickaxe_3.wav" id="45_mur2l"]
[ext_resource type="AudioStream" uid="uid://eq7wufwnolto" path="res://common/audio_manager/assets/sfx/pickaxe/pickaxe_4.wav" id="46_t0v4u"]
[ext_resource type="AudioStream" uid="uid://cv7sj8n5oo1i8" path="res://common/audio_manager/assets/sfx/screen_bip/screen_bip.wav" id="47_svctq"]
[ext_resource type="AudioStream" uid="uid://sgwvpxiul5x5" path="res://common/audio_manager/assets/sfx/ship_exit/ship_exit.wav" id="48_j8acj"]
[ext_resource type="AudioStream" uid="uid://ca0wonha334cl" path="res://common/audio_manager/assets/sfx/teleportation/teleport.wav" id="50_rlnfe"]
[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://dsijqgnnadgem" path="res://common/audio_manager/assets/sfx/holo/holo_disappear.wav" id="64_ge2sc"]
[ext_resource type="AudioStream" uid="uid://c7ehk3l4q3qg1" path="res://common/audio_manager/assets/sfx/vending_machine/VM_item_drop.wav" id="62_yr73o"]
[ext_resource type="AudioStream" uid="uid://dgs7j7itgedoy" path="res://common/audio_manager/assets/sfx/vending_machine/VM_power_off.wav" id="63_lwdce"]
[ext_resource type="AudioStream" uid="uid://cij7rpji5tutr" path="res://common/audio_manager/assets/sfx/vending_machine/VM_power_on.wav" id="64_qvjf5"]
[sub_resource type="AudioStreamRandomizer" id="AudioStreamRandomizer_1w04j"]
random_pitch = 1.2
streams_count = 1
stream_0/stream = ExtResource("12_4hp8f")
[sub_resource type="AudioStreamRandomizer" id="AudioStreamRandomizer_i4m0x"]
random_pitch = 1.2599211
streams_count = 6
stream_0/stream = ExtResource("13_xoaox")
stream_1/stream = ExtResource("14_b5bgj")
stream_2/stream = ExtResource("15_ynvb4")
stream_3/stream = ExtResource("16_obeji")
stream_4/stream = ExtResource("17_6w0re")
stream_5/stream = ExtResource("18_o4guq")
[sub_resource type="AudioStreamRandomizer" id="AudioStreamRandomizer_jjdv2"]
random_pitch = 1.2
streams_count = 2
stream_0/stream = ExtResource("20_pu6t4")
stream_1/stream = ExtResource("21_dk5s6")
[sub_resource type="AudioStreamRandomizer" id="AudioStreamRandomizer_qog4c"]
random_pitch = 1.2599211
streams_count = 8
stream_0/stream = ExtResource("29_ngi21")
stream_1/stream = ExtResource("30_xmumj")
stream_2/stream = ExtResource("31_spekb")
stream_3/stream = ExtResource("32_iaiio")
stream_4/stream = ExtResource("33_w2elg")
stream_5/stream = ExtResource("34_em3o8")
stream_6/stream = ExtResource("35_rk2e0")
stream_7/stream = ExtResource("36_4sa2t")
[sub_resource type="AudioStreamRandomizer" id="AudioStreamRandomizer_yjs51"]
random_pitch = 1.2599211
streams_count = 4
stream_0/stream = ExtResource("43_kbm55")
stream_1/stream = ExtResource("44_rb87w")
stream_2/stream = ExtResource("45_mur2l")
stream_3/stream = ExtResource("46_t0v4u")
[node name="AudioManager" type="Node" unique_id=1871137180]
process_mode = 3
script = ExtResource("1_0tvca")
[node name="Ambiances" type="Node" parent="." unique_id=1989991562]
unique_name_in_owner = true
[node name="Exterior" type="AudioStreamPlayer" parent="Ambiances" unique_id=1405716780]
unique_name_in_owner = true
stream = ExtResource("2_tuvql")
[node name="Astra" type="AudioStreamPlayer" parent="Ambiances" unique_id=1244577212]
unique_name_in_owner = true
stream = ExtResource("5_8204s")
[node name="Demeter" type="AudioStreamPlayer" parent="Ambiances" unique_id=351918026]
unique_name_in_owner = true
stream = ExtResource("6_8204s")
[node name="Borea" type="AudioStreamPlayer" parent="Ambiances" unique_id=1857904648]
unique_name_in_owner = true
stream = ExtResource("7_spekb")
[node name="Ship" type="AudioStreamPlayer" parent="Ambiances" unique_id=1564186965]
unique_name_in_owner = true
stream = ExtResource("8_tuvql")
[node name="Vending_room_base_relais" type="AudioStreamPlayer" parent="Ambiances" unique_id=1544089647]
stream = ExtResource("7_ge2sc")
[node name="Musics" type="Node" parent="." unique_id=1450527710]
unique_name_in_owner = true
[node name="RegionForestPhase1" type="AudioStreamPlayer" parent="Musics" unique_id=1029114070]
unique_name_in_owner = true
stream = ExtResource("6_6o1yh")
[node name="RegionForestPhase2" type="AudioStreamPlayer" parent="Musics" unique_id=417543634]
unique_name_in_owner = true
stream = ExtResource("10_tq535")
[node name="RegionMinePhase1" type="AudioStreamPlayer" parent="Musics" unique_id=152032267]
unique_name_in_owner = true
stream = ExtResource("5_ajci6")
[node name="RegionMinePhase2" type="AudioStreamPlayer" parent="Musics" unique_id=348001141]
unique_name_in_owner = true
stream = ExtResource("4_2fduo")
[node name="RegionDesertPhase1" type="AudioStreamPlayer" parent="Musics" unique_id=2003475958]
stream = ExtResource("11_yjs51")
[node name="RegionForestLoop" type="AudioStreamPlayer" parent="Musics" unique_id=482654512]
unique_name_in_owner = true
stream = ExtResource("12_xmumj")
bus = &"Music"
[node name="RegionMineLoop" type="AudioStreamPlayer" parent="Musics" unique_id=814165127]
unique_name_in_owner = true
stream = ExtResource("11_ngi21")
bus = &"Music"
[node name="Title" type="AudioStreamPlayer" parent="Musics" unique_id=2105759422]
unique_name_in_owner = true
stream = ExtResource("7_tuvql")
bus = &"Music"
[node name="Demo_end" type="AudioStreamPlayer" parent="Musics" unique_id=261817716]
unique_name_in_owner = true
stream = ExtResource("14_h3tkm")
[node name="Sfx" type="Node" parent="." unique_id=2023641207]
unique_name_in_owner = true
[node name="Dig" type="AudioStreamPlayer" parent="Sfx" unique_id=486042600]
stream = SubResource("AudioStreamRandomizer_6o1yh")
[node name="VendingMachineDrop" type="AudioStreamPlayer" parent="Sfx" unique_id=1161500181]
stream = ExtResource("18_ehr7m")
pitch_scale = 0.81
[node name="VendingMachineOff" type="AudioStreamPlayer" parent="Sfx" unique_id=743754597]
stream = ExtResource("19_aedoe")
volume_db = -14.149
pitch_scale = 0.75
[node name="DoorOpen" type="AudioStreamPlayer" parent="Sfx" unique_id=1440910292]
stream = ExtResource("20_yr73o")
pitch_scale = 1.5
[node name="Recharge1" type="AudioStreamPlayer" parent="Sfx" unique_id=357905012]
stream = ExtResource("18_j8acj")
[node name="Recharge2" type="AudioStreamPlayer" parent="Sfx" unique_id=261310291]
stream = ExtResource("19_yjs51")
[node name="Recharge3" type="AudioStreamPlayer" parent="Sfx" unique_id=1559567919]
stream = ExtResource("20_4ojdh")
[node name="Recharge4" type="AudioStreamPlayer" parent="Sfx" unique_id=1697092547]
stream = ExtResource("21_ehr7m")
[node name="Recharge5" type="AudioStreamPlayer" parent="Sfx" unique_id=1385679733]
stream = ExtResource("22_aedoe")
[node name="Recharge6" type="AudioStreamPlayer" parent="Sfx" unique_id=391499157]
stream = ExtResource("23_ge2sc")
[node name="Recharge7" type="AudioStreamPlayer" parent="Sfx" unique_id=355754872]
stream = ExtResource("24_yr73o")
[node name="Respawn" type="AudioStreamPlayer" parent="Sfx" unique_id=1902559716]
stream = ExtResource("16_xmumj")
[node name="Drop" type="AudioStreamPlayer" parent="Sfx" unique_id=1391500830]
stream = SubResource("AudioStreamRandomizer_1w04j")
volume_db = -2.0
[node name="Harvest" type="AudioStreamPlayer" parent="Sfx" unique_id=345539331]
stream = SubResource("AudioStreamRandomizer_i4m0x")
[node name="PickUp" type="AudioStreamPlayer" parent="Sfx" unique_id=176915166]
stream = SubResource("AudioStreamRandomizer_jjdv2")
volume_db = -11.0
[node name="Announce" type="AudioStreamPlayer" parent="Sfx" unique_id=876644323]
stream = ExtResource("22_btfwx")
volume_db = 8.627
[node name="Astra_phone_call" type="AudioStreamPlayer" parent="Sfx" unique_id=721344636]
stream = ExtResource("27_0rjel")
[node name="Phone_call" type="AudioStreamPlayer" parent="Sfx" unique_id=1668278453]
stream = ExtResource("28_3dfjn")
[node name="PlantPoint" type="AudioStreamPlayer" parent="Sfx" unique_id=2044025024]
stream = SubResource("AudioStreamRandomizer_qog4c")
[node name="Reveal" type="AudioStreamPlayer" parent="Sfx" unique_id=1597352608]
stream = ExtResource("37_3dfjn")
volume_db = -3.0
[node name="Ship_reveal" type="AudioStreamPlayer" parent="Sfx" unique_id=1121632306]
stream = ExtResource("37_3dfjn")
volume_db = -3.0
[node name="Signal" type="AudioStreamPlayer" parent="Sfx" unique_id=335682989]
stream = ExtResource("41_iaiio")
volume_db = -10.0
[node name="Atterrissage" type="AudioStreamPlayer" parent="Sfx" unique_id=2021186625]
stream = ExtResource("40_h3tkm")
[node name="Decollage" type="AudioStreamPlayer" parent="Sfx" unique_id=581331122]
stream = ExtResource("41_iyxkn")
[node name="Elevator" type="AudioStreamPlayer" parent="Sfx" unique_id=1345852969]
stream = ExtResource("42_obkny")
[node name="Mining" type="AudioStreamPlayer" parent="Sfx" unique_id=1122216774]
stream = SubResource("AudioStreamRandomizer_yjs51")
[node name="Screen_interaction" type="AudioStreamPlayer" parent="Sfx" unique_id=1140309368]
stream = ExtResource("47_svctq")
volume_db = -8.0
[node name="Ship_exit" type="AudioStreamPlayer" parent="Sfx" unique_id=615567072]
stream = ExtResource("48_j8acj")
volume_db = 8.0
[node name="Movement" type="AudioStreamPlayer" parent="Sfx" unique_id=1403498558]
stream = ExtResource("51_iyxkn")
volume_db = -7.0
[node name="Teleportation" type="AudioStreamPlayer" parent="Sfx" unique_id=369599456]
stream = ExtResource("50_rlnfe")
volume_db = -6.0
[node name="HoloAppear" type="AudioStreamPlayer" parent="Sfx" unique_id=637436824]
stream = ExtResource("63_aedoe")
volume_db = -6.0
[node name="HoloDisappear" type="AudioStreamPlayer" parent="Sfx" unique_id=1756615928]
stream = ExtResource("64_ge2sc")
volume_db = -6.0
[node name="Teleportation" type="AudioStreamPlayer" parent="Sfx" unique_id=369599456]
stream = ExtResource("50_rlnfe")
volume_db = -3.0
[node name="Door_opening" type="AudioStreamPlayer" parent="Sfx" unique_id=1045862259]
[node name="VM_drop" type="AudioStreamPlayer" parent="Sfx" unique_id=1831741123]
stream = ExtResource("62_yr73o")
[node name="VM_power_off" type="AudioStreamPlayer" parent="Sfx" unique_id=2112201239]
stream = ExtResource("63_lwdce")
[node name="VM_power_on" type="AudioStreamPlayer" parent="Sfx" unique_id=617324673]
stream = ExtResource("64_qvjf5")

View File

@@ -7,13 +7,15 @@ const MAX_VOLUME = 24.
const DEFAULT_FADE_TIME : float = 5.0
const REGION_FIRST_PHASE = [
"RegionDesertPhase1",
"RegionForestPhase1",
"RegionForestPhase2",
"RegionMinePhase1",
"RegionMinePhase2"
"RegionMinePhase2",
]
const REGION_LOOP_PHASE = [
"RegionForestLoop",
"RegionForestLoop",
"RegionForestLoop",
"RegionMineLoop",
@@ -35,30 +37,35 @@ var default_volumes := {}
func _on_change_scene(scene : Scene):
stop_all_ambiances()
match scene.scene_id:
"TITLE":
play_music_alone("Title", false, 1.0)
"INTRO":
stop_all_musics()
"REGION":
play_ambiance("Exterior", false)
var region_level = GameInfo.game_data.current_region_data.region_level
var first_phase = REGION_FIRST_PHASE[region_level % len(REGION_FIRST_PHASE)]
var loop_phase = REGION_LOOP_PHASE[region_level % len(REGION_LOOP_PHASE)]
play_music_alone(first_phase)
queue_music(loop_phase, first_phase)
"COCKPIT":
stop_all_musics()
play_ambiance_alone("Ship", true, 1.0)
"ASTRA":
stop_all_musics()
play_ambiance_alone("Astra", false)
"GARAGE":
stop_all_musics()
play_ambiance_alone("Astra", false)
"BOREA":
stop_all_musics()
play_ambiance_alone("Borea", false)
if (scene is TitleScene):
play_music_alone("Title", false, 5.0)
elif scene is IntroScene:
stop_all_musics()
elif scene is RegionScene:
play_ambiance("Exterior", false)
var region_level = GameInfo.game_data.current_run.level
var first_phase = REGION_FIRST_PHASE[region_level % len(REGION_FIRST_PHASE)]
var loop_phase = REGION_LOOP_PHASE[region_level % len(REGION_LOOP_PHASE)]
play_music_alone(first_phase)
queue_music(loop_phase, first_phase)
elif scene is CockpitScene:
stop_all_musics()
play_ambiance_alone("Ship", true)
elif scene is AstraScene:
stop_all_musics()
play_ambiance_alone("Astra", false)
elif scene is GarageScene:
stop_all_musics()
play_ambiance_alone("Astra", false)
elif scene is BoreaScene:
stop_all_musics()
play_ambiance_alone("Borea", false)
elif scene is VendingMachineScene:
stop_all_musics()
play_ambiance_alone("VendingRoom", false)
elif scene is RelayBaseScene:
stop_all_musics()
play_ambiance_alone("BaseRelais", false)
# Fonction s'exécutant à chaque début de timeline
func _on_timeline_started():
@@ -363,7 +370,7 @@ class AudioStop extends AudioAction:
current_players : Array[String]
) -> Array[String]:
var player = manager.get_player_from_node(player_name,parent_node)
if player and player in current_players:
if player and player.name in current_players:
manager.stop_player(player, fade_time)
current_players.erase(player_name)
return current_players

View File

@@ -0,0 +1,64 @@
@abstract
extends Resource
class_name Artefact
const ARTEFACT_ICON = preload("res://common/icons/cube-3d-sphere.svg")
const DESC_ICON = preload("res://common/icons/align-right.svg")
@abstract func get_artefact_name() -> String
@abstract func get_3d_scene() -> PackedScene
func get_artefact_desc() -> String:
return ""
func modify_player_max_energy(v : int) -> int:
return v
func modify_player_inventory_size(v : int) -> int:
return v
func modify_seed_rarity_pool(seed_rarity_pool : Array[int]) -> Array[int]:
return seed_rarity_pool
func modify_plant_growing_time(plant_growing_time : int) -> int:
return plant_growing_time
func modify_plant_lifetime(plant_lifetime : int) -> int:
return plant_lifetime
func modify_plant_seed_number(plant_seed_number : int) -> int:
return plant_seed_number
func modify_plant_base_score(plant_base_score : int) -> int:
return plant_base_score
func modify_plant_seed_random_loose(plant_seed_random_loose : int) -> int:
return plant_seed_random_loose
func modify_plant_influence_radius(plant_influence_radius : float) -> float:
return plant_influence_radius
func modify_mutation_probability(plant_mutation_probability) -> float:
return plant_mutation_probability
func modify_mutation_max_number(plant_mutation_max_number) -> int:
return plant_mutation_max_number
func card_info() -> CardInfo:
var info = CardInfo.new(
get_artefact_name(),
tr("ARTEFACT")
)
info.important_stat_icon = ARTEFACT_ICON
var desc_section := CardSectionInfo.new(
tr("DESCRIPTION"),
get_artefact_desc(),
)
desc_section.title_icon = DESC_ICON
info.sections.append(desc_section)
return info

View File

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

Binary file not shown.

View File

@@ -0,0 +1,68 @@
[remap]
importer="scene"
importer_version=1
type="PackedScene"
uid="uid://dolv2637emdbw"
path="res://.godot/imported/pile.blend-80c2c782d9d6ad4f0e2e2546a3d5b176.scn"
[deps]
source_file="res://common/game_data/scripts/artefacts/pile/pile.blend"
dest_files=["res://.godot/imported/pile.blend-80c2c782d9d6ad4f0e2e2546a3d5b176.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": {
"Material": {
"use_external/enabled": true,
"use_external/fallback_path": "res://common/assets/materials/default_3d.tres",
"use_external/path": "uid://dvvi1k5c5iowc"
}
}
}
blender/nodes/visible=0
blender/nodes/active_collection_only=false
blender/nodes/punctual_lights=true
blender/nodes/cameras=true
blender/nodes/custom_properties=true
blender/nodes/modifiers=1
blender/meshes/colors=false
blender/meshes/uvs=true
blender/meshes/normals=true
blender/meshes/export_geometry_nodes_instances=false
blender/meshes/gpu_instances=false
blender/meshes/tangents=true
blender/meshes/skins=2
blender/meshes/export_bones_deforming_mesh_only=false
blender/materials/unpack_enabled=true
blender/materials/export_materials=1
blender/animation/limit_playback=true
blender/animation/always_sample=true
blender/animation/group_tracks=true
gltf/naming_version=2

Binary file not shown.

View File

@@ -0,0 +1,15 @@
@tool
extends Artefact
class_name PileArtefact
func get_artefact_name() -> String:
return "PILE"
func get_artefact_desc() -> String:
return "PILE_DESC_TEXT"
func get_3d_scene() -> PackedScene:
return preload("res://common/game_data/scripts/artefacts/pile/pile.blend")
func modify_player_max_energy(v : int) -> int:
return v + 1

View File

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

View File

@@ -0,0 +1,68 @@
[remap]
importer="scene"
importer_version=1
type="PackedScene"
uid="uid://cclvb8o3vofff"
path="res://.godot/imported/seed_case.blend-c6a943c9ac5e07f38ec4fc399a8f6f42.scn"
[deps]
source_file="res://common/game_data/scripts/artefacts/seed_case/seed_case.blend"
dest_files=["res://.godot/imported/seed_case.blend-c6a943c9ac5e07f38ec4fc399a8f6f42.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": {
"Material": {
"use_external/enabled": true,
"use_external/fallback_path": "res://common/assets/materials/default_3d.tres",
"use_external/path": "uid://dvvi1k5c5iowc"
}
}
}
blender/nodes/visible=0
blender/nodes/active_collection_only=false
blender/nodes/punctual_lights=true
blender/nodes/cameras=true
blender/nodes/custom_properties=true
blender/nodes/modifiers=1
blender/meshes/colors=false
blender/meshes/uvs=true
blender/meshes/normals=true
blender/meshes/export_geometry_nodes_instances=false
blender/meshes/gpu_instances=false
blender/meshes/tangents=true
blender/meshes/skins=2
blender/meshes/export_bones_deforming_mesh_only=false
blender/materials/unpack_enabled=true
blender/materials/export_materials=1
blender/animation/limit_playback=true
blender/animation/always_sample=true
blender/animation/group_tracks=true
gltf/naming_version=2

View File

@@ -0,0 +1,15 @@
@tool
extends Artefact
class_name SeedCaseArtefact
func get_artefact_name() -> String:
return "SEED_CASE"
func get_artefact_desc() -> String:
return "SEED_CASE_DESC_TEXT"
func get_3d_scene() -> PackedScene:
return preload("res://common/game_data/scripts/artefacts/seed_case/seed_case.blend")
func modify_player_inventory_size(v : int) -> int:
return v + 1

View File

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

View File

@@ -0,0 +1,68 @@
[remap]
importer="scene"
importer_version=1
type="PackedScene"
uid="uid://xwjwwmhd4b7t"
path="res://.godot/imported/stabilisator.blend-3a4d21b03376590b925002fb56f41279.scn"
[deps]
source_file="res://common/game_data/scripts/artefacts/stabilisator/stabilisator.blend"
dest_files=["res://.godot/imported/stabilisator.blend-3a4d21b03376590b925002fb56f41279.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": {
"Material": {
"use_external/enabled": true,
"use_external/fallback_path": "res://common/assets/materials/default_3d.tres",
"use_external/path": "uid://dvvi1k5c5iowc"
}
}
}
blender/nodes/visible=0
blender/nodes/active_collection_only=false
blender/nodes/punctual_lights=true
blender/nodes/cameras=true
blender/nodes/custom_properties=true
blender/nodes/modifiers=1
blender/meshes/colors=false
blender/meshes/uvs=true
blender/meshes/normals=true
blender/meshes/export_geometry_nodes_instances=false
blender/meshes/gpu_instances=false
blender/meshes/tangents=true
blender/meshes/skins=2
blender/meshes/export_bones_deforming_mesh_only=false
blender/materials/unpack_enabled=true
blender/materials/export_materials=1
blender/animation/limit_playback=true
blender/animation/always_sample=true
blender/animation/group_tracks=true
gltf/naming_version=2

View File

@@ -0,0 +1,15 @@
@tool
extends Artefact
class_name StabilisatorArtefact
func get_artefact_name() -> String:
return "STABILISATOR"
func get_artefact_desc() -> String:
return "STABILISATOR_DESC_TEXT"
func get_3d_scene() -> PackedScene:
return preload("res://common/game_data/scripts/artefacts/stabilisator/stabilisator.blend")
func modify_plant_lifetime(plant_lifetime : int) -> int:
return plant_lifetime + 1

View File

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

View File

@@ -0,0 +1,68 @@
[remap]
importer="scene"
importer_version=1
type="PackedScene"
uid="uid://bb4675xxby4li"
path="res://.godot/imported/talion_overloader.blend-8cbf53dd089d03a7feecf8f09620bb83.scn"
[deps]
source_file="res://common/game_data/scripts/artefacts/talion_overloader/talion_overloader.blend"
dest_files=["res://.godot/imported/talion_overloader.blend-8cbf53dd089d03a7feecf8f09620bb83.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": {
"Material": {
"use_external/enabled": true,
"use_external/fallback_path": "res://common/assets/materials/default_3d.tres",
"use_external/path": "uid://dvvi1k5c5iowc"
}
}
}
blender/nodes/visible=0
blender/nodes/active_collection_only=false
blender/nodes/punctual_lights=true
blender/nodes/cameras=true
blender/nodes/custom_properties=true
blender/nodes/modifiers=1
blender/meshes/colors=false
blender/meshes/uvs=true
blender/meshes/normals=true
blender/meshes/export_geometry_nodes_instances=false
blender/meshes/gpu_instances=false
blender/meshes/tangents=true
blender/meshes/skins=2
blender/meshes/export_bones_deforming_mesh_only=false
blender/materials/unpack_enabled=true
blender/materials/export_materials=1
blender/animation/limit_playback=true
blender/animation/always_sample=true
blender/animation/group_tracks=true
gltf/naming_version=2

View File

@@ -0,0 +1,15 @@
@tool
extends Artefact
class_name TalionOverloaderArtefact
func get_artefact_name() -> String:
return "TALION_OVERLOADER"
func get_artefact_desc() -> String:
return "TALION_OVERLOADER_DESC_TEXT"
func get_3d_scene() -> PackedScene:
return preload("res://common/game_data/scripts/artefacts/talion_overloader/talion_overloader.blend")
func modify_mutation_max_number(plant_mutation_max_number) -> int:
return plant_mutation_max_number + 1

View File

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

View File

@@ -0,0 +1,68 @@
[remap]
importer="scene"
importer_version=1
type="PackedScene"
uid="uid://bv12sx67hij1s"
path="res://.godot/imported/talion_relay.blend-7f1bb942cac95750ceb5345d8092e7ac.scn"
[deps]
source_file="res://common/game_data/scripts/artefacts/talion_relay/talion_relay.blend"
dest_files=["res://.godot/imported/talion_relay.blend-7f1bb942cac95750ceb5345d8092e7ac.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": {
"Material": {
"use_external/enabled": true,
"use_external/fallback_path": "res://common/assets/materials/default_3d.tres",
"use_external/path": "uid://dvvi1k5c5iowc"
}
}
}
blender/nodes/visible=0
blender/nodes/active_collection_only=false
blender/nodes/punctual_lights=true
blender/nodes/cameras=true
blender/nodes/custom_properties=true
blender/nodes/modifiers=1
blender/meshes/colors=false
blender/meshes/uvs=true
blender/meshes/normals=true
blender/meshes/export_geometry_nodes_instances=false
blender/meshes/gpu_instances=false
blender/meshes/tangents=true
blender/meshes/skins=2
blender/meshes/export_bones_deforming_mesh_only=false
blender/materials/unpack_enabled=true
blender/materials/export_materials=1
blender/animation/limit_playback=true
blender/animation/always_sample=true
blender/animation/group_tracks=true
gltf/naming_version=2

View File

@@ -0,0 +1,15 @@
@tool
extends Artefact
class_name TalionRelayArtifact
func get_artefact_name() -> String:
return "TALION_RELAY"
func get_artefact_desc() -> String:
return "TALION_RELAY_DESC_TEXT"
func get_3d_scene() -> PackedScene:
return preload("res://common/game_data/scripts/artefacts/talion_relay/talion_relay.blend")
func modify_mutation_probability(plant_mutation_probability) -> float:
return plant_mutation_probability * 1.5

View File

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

View File

@@ -0,0 +1,68 @@
[remap]
importer="scene"
importer_version=1
type="PackedScene"
uid="uid://bpvk3ldu7pkyv"
path="res://.godot/imported/talion_soil.blend-37ee0f905ace3681bafa4c72e1bfb134.scn"
[deps]
source_file="res://common/game_data/scripts/artefacts/talion_soil/talion_soil.blend"
dest_files=["res://.godot/imported/talion_soil.blend-37ee0f905ace3681bafa4c72e1bfb134.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": {
"Material": {
"use_external/enabled": true,
"use_external/fallback_path": "res://common/assets/materials/default_3d.tres",
"use_external/path": "uid://dvvi1k5c5iowc"
}
}
}
blender/nodes/visible=0
blender/nodes/active_collection_only=false
blender/nodes/punctual_lights=true
blender/nodes/cameras=true
blender/nodes/custom_properties=true
blender/nodes/modifiers=1
blender/meshes/colors=false
blender/meshes/uvs=true
blender/meshes/normals=true
blender/meshes/export_geometry_nodes_instances=false
blender/meshes/gpu_instances=false
blender/meshes/tangents=true
blender/meshes/skins=2
blender/meshes/export_bones_deforming_mesh_only=false
blender/materials/unpack_enabled=true
blender/materials/export_materials=1
blender/animation/limit_playback=true
blender/animation/always_sample=true
blender/animation/group_tracks=true
gltf/naming_version=2

View File

@@ -0,0 +1,15 @@
@tool
extends Artefact
class_name TalionSoilArtifact
func get_artefact_name() -> String:
return "TALION_SOIL"
func get_artefact_desc() -> String:
return "TALION_SOIL_DESC_TEXT"
func get_3d_scene() -> PackedScene:
return preload("res://common/game_data/scripts/artefacts/talion_soil/talion_soil.blend")
func modify_plant_influence_radius(plant_influence_radius : float) -> float:
return plant_influence_radius * 1.4

View File

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

View File

@@ -1,33 +1,51 @@
extends Resource
class_name GameData
enum GameMode {STORY}
signal current_run_updated(r : RunData)
signal current_region_data_updated(p : RegionData)
@export var current_run : RunData = null
@export var current_region_data : RegionData = null
@export var player_data : PlayerData = PlayerData.new()
@export var max_mutations_by_plant : int = 2
@export var progression_data : ProgressionData = ProgressionData.new()
@export var current_run : RunData = start_run() :
set(v):
current_run = v
current_run_updated.emit(v)
@export var current_region_data : RegionData = null :
set(v):
current_region_data = v
current_region_data_updated.emit(v)
@export var last_game_scene : Scene = null
@export var ship_in_space = false
@export var tutorial_done = false
@export var incubator_used = []
@export var dead_orchid_position : Vector3
@export var dead_orchid_rotation : Vector3
@export var dialogs_done : Array[String] = [] #Chemin des dialogues démarrés
@export var item_announced = []
func start_run():
player_data.inventory.clear_items()
@export var game_mode : GameMode = GameMode.STORY
@export var dialogs_done : Array[String] = [] #Chemin des dialogues terminés
func start_run() -> RunData:
player_data.clear_inventory()
player_data.update_with_artefacts([])
current_run = RunData.new()
current_run.story_step = progression_data.story_step.duplicate_deep()
current_run.generate_next_run_points()
current_run.current_run_point_changed.connect(
func(rp : RunPoint):
start_region(rp.region_parameter)
)
ship_in_space = false
return current_run
func reset_player():
player_data = PlayerData.new()
@@ -38,20 +56,14 @@ func reset_all():
func start_region(region_param : RegionParameter):
current_region_data = RegionData.new(region_param)
current_region_data_updated.emit(current_region_data)
GameInfo.save_game_data()
func give_up():
current_region_data = null
current_run = null
start_run()
SceneManager.change_to_scene(progression_data.story_step.get_respawn_scene())
func start_tutorial():
current_region_data = RegionData.new(
RegionParameter.new(
0,
tr("TUTORIAL"),
["tutorial"],
[],
randi()
)
)
func finish_story_step():
progression_data.next_story_step()
current_region_data = null
start_run()

View File

@@ -0,0 +1,57 @@
extends Resource
class_name ProgressionData
@export var planted_mutation_ids: Array[String] = []
@export var story_step_i := 0
@export var ship_tutorial_done = false
var all_mutations: Array[PlantMutation] : get = get_all_mutations
var available_mutations: Array[PlantMutation] : get = get_all_mutations
var available_artefacts: Array[Artefact] : get = get_all_artifacts
var story_step : StoryStep : get = get_story_step
func get_story_step() -> StoryStep:
return get_all_story_steps()[story_step_i]
func next_story_step() -> void:
get_story_step()._on_finish()
if story_step_i + 1 < len(get_all_story_steps()):
story_step_i += 1
func get_all_mutations() -> Array[PlantMutation]:
return [
AncientMutation.new(),
FertileMutation.new(),
GenerousMutation.new(),
HurriedMutation.new(),
PrecociousMutation.new(),
ProlificMutation.new(),
ProtectiveMutation.new(),
PureMutation.new(),
PurificationMutation.new(),
QualityMutation.new(),
QuickMutation.new(),
RobustMutation.new(),
SocialMutation.new(),
ToughMutation.new(),
VivaciousMutation.new(),
]
func get_all_artifacts() -> Array[Artefact]:
return [
PileArtefact.new(),
SeedCaseArtefact.new(),
StabilisatorArtefact.new(),
TalionOverloaderArtefact.new(),
TalionSoilArtifact.new(),
]
func get_all_story_steps() -> Array[StoryStep]:
return [
TutorialStoryStep.new(),
AstraStoryStep.new(),
MercuryStoryStep.new(),
BetaStoryStep.new()
]

View File

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

View File

@@ -1,97 +1,124 @@
extends Resource
class_name RunData
enum State {STARTED, IN_PROGRESS, FINISHED}
const RUN_POINT_POSITION_DERIVATION = 100
const DIFFICULTY_INCREASE_BY_LEVEL = 3
const RUN_POINTS_NEXT_NUMBER : int = 2
const RUN_POINT_MAX_LEVEL = 2 # TODO
const RUN_POINT_MAX_LEVEL = 5 # TODO
signal current_run_point_changed
signal current_run_point_changed(rp : RunPoint)
var run_seed = randi()
@export var next_run_points : Array[RunPoint] = generate_next_run_points()
@export var level = 0
@export var story_step : StoryStep
@export var next_run_points : Array[RunPoint]
@export var current_run_point : RunPoint = null :
set(v):
current_run_point = v
current_run_point_changed.emit(v)
@export var visited_run_points : Array[RunPoint] = []
@export var last_used_modifier_name = ""
@export var artefacts : Array[Artefact] = []
#region ------------------ Generation ------------------
var plant_info = RunDataPlantInfo.new(self)
func generate_next_run_points(level = 0) -> Array[RunPoint]:
func is_finished() -> bool:
return story_step.is_run_finished(level)
func get_progress() -> int:
return story_step.get_run_progress(level)
#region ------------------ Run Points ------------------
func generate_next_run_points() -> Array[RunPoint]:
next_run_points = []
for i in range(RUN_POINTS_NEXT_NUMBER):
for i in range(story_step.get_run_point_number(level+1)):
next_run_points.append(
generate_next_run_point(level)
generate_next_run_point()
)
return next_run_points
func generate_next_run_point(level = 0) -> RunPoint:
func generate_next_run_point() -> RunPoint:
var region_parameter = RegionParameter.new()
region_parameter.level = level
region_parameter.region_flags = get_region_flags(region_parameter)
region_parameter.modifiers = get_region_modifiers(level + 1)
var next_level = level+1
if story_step.need_gameplay_modifier(next_level):
var is_challenge = randf() < story_step.get_challenge_chance(next_level)
if is_challenge:
region_parameter.modifiers = [
generate_challenge_modifiers().pick_random(),
generate_benefic_modifiers().pick_random()
] as Array[RegionModifier]
else:
region_parameter.modifiers = [
generate_normal_modifiers().pick_random()
] as Array[RegionModifier]
var first_vending = story_step.get_first_vending_machine_occurence(next_level)
var vending_occurence = story_step.get_vending_machine_occurence(next_level)
if vending_occurence > 0:
if (level - first_vending)%vending_occurence == 0:
region_parameter.modifiers.append(VendingMachineModifier.new())
region_parameter.modifiers.append_array(
story_step.get_story_modifiers_for_region(next_level)
)
region_parameter.objective = story_step.get_objective_for_region(next_level)
return RunPoint.new(
level,
region_parameter
)
#endregion
func get_state() -> State:
if not current_run_point:
return State.STARTED
elif current_run_point.level == RUN_POINT_MAX_LEVEL:
return State.FINISHED
else :
return State.IN_PROGRESS
func get_next_run_points() -> Array[RunPoint]:
if current_run_point and current_run_point.level == RUN_POINT_MAX_LEVEL:
return []
return next_run_points
func choose_next_run_point(run_point : RunPoint) -> RunPoint:
if current_run_point:
visited_run_points.append(current_run_point)
func choose_next_run_point(run_point : RunPoint = null) -> RunPoint:
if run_point == null:
run_point = generate_next_run_point()
level += 1
current_run_point = run_point
GameInfo.game_data.start_region(run_point.region_parameter)
next_run_points = generate_next_run_points(current_run_point.level + 1)
if len(current_run_point.region_parameter.modifiers):
last_used_modifier_name = current_run_point.region_parameter.modifiers[0].get_modifier_name()
next_run_points = generate_next_run_points()
return current_run_point
func get_region_flags(region_parameter : RegionParameter) -> Array[String]:
var flags : Array[String] = []
#endregion
if region_parameter.level == RUN_POINT_MAX_LEVEL:
flags.append("borea")
return flags
#region ------------------ Modifiers ------------------
func generate_normal_modifiers() -> Array[RegionModifier]:
return [
AridModifier.new(),
HumidModifier.new(),
PoorModifier.new(),
HarshModifier.new(),
ToxicModifier.new(),
SandyModifier.new(),
func get_region_modifiers(level : int) -> Array[RegionModifier]:
var possible_modifiers : Array[RegionModifier] = [
AridModifier.new(level),
HumidModifier.new(level),
PoorModifier.new(level),
HarshModifier.new(level)
]
possible_modifiers = possible_modifiers.filter(
func (m): return m.get_modifier_name() != last_used_modifier_name
)
func generate_benefic_modifiers() -> Array[RegionModifier]:
return [
VendingMachineModifier.new(),
ResonnanceModifier.new(),
InstableModifier.new(),
]
var choosen_modifier : RegionModifier = possible_modifiers.pick_random()
last_used_modifier_name = choosen_modifier.get_modifier_name()
func generate_challenge_modifiers() -> Array[RegionModifier]:
return [
RockyModifier.new(),
RadioactiveModifier.new(),
ContaminatedModifier.new(),
StormModifier.new(),
]
return [choosen_modifier]
#endregion
#region ------------------ Artefacts ------------------
func add_artefacts(a: Artefact):
artefacts.append(a)
GameInfo.game_data.player_data.update_with_artefacts(artefacts)
#endregion

View File

@@ -0,0 +1,113 @@
extends Node
class_name RunDataPlantInfo
const DEFAULT_GROWING_TIME = 2
const DEFAULT_LIFETIME = 6
const DEFAULT_BASE_SCORE = 1
const DEFAULT_SEED_NUMBER = 2
const DEFAULT_SEED_RANDOM_LOOSE = 1
const DEFAULT_PLANT_INFLUENCE_RADIUS = 100
const DEFAULT_MUTATION_PROBABILITY = 0.3
const DEFAULT_MUTATION_MAX_NUMBER = 2
var run_data : RunData
func _init(
_run_data : RunData
):
run_data = _run_data
var region_modifiers : Array[RegionModifier]
func get_growing_time() -> int:
var growing_time = DEFAULT_GROWING_TIME
for rm in get_region_modifiers():
growing_time = rm.modify_plant_growing_time(growing_time)
for a in run_data.artefacts:
growing_time = a.modify_plant_growing_time(growing_time)
return max(0, growing_time)
func get_lifetime() -> int:
var lifetime = DEFAULT_LIFETIME
for rm in get_region_modifiers():
lifetime = rm.modify_plant_lifetime(lifetime)
for a in run_data.artefacts:
lifetime = a.modify_plant_lifetime(lifetime)
return max(0, lifetime)
func get_base_score() -> int:
var base_score = DEFAULT_BASE_SCORE
for rm in get_region_modifiers():
base_score = rm.modify_plant_base_score(base_score)
for a in run_data.artefacts:
base_score = a.modify_plant_base_score(base_score)
return max(0, base_score)
func get_seed_number() -> int:
var seed_number = DEFAULT_SEED_NUMBER
for rm in get_region_modifiers():
seed_number = rm.modify_plant_seed_number(seed_number)
for a in run_data.artefacts:
seed_number = a.modify_plant_seed_number(seed_number)
return max(0, seed_number)
func get_seed_random_loose() -> int:
var seed_random_loose = DEFAULT_SEED_RANDOM_LOOSE
for rm in get_region_modifiers():
seed_random_loose = rm.modify_plant_seed_random_loose(seed_random_loose)
for a in run_data.artefacts:
seed_random_loose = a.modify_plant_seed_random_loose(seed_random_loose)
return min(max(0, seed_random_loose),get_seed_number())
func get_influence_radius() -> int:
var influence_radius = DEFAULT_PLANT_INFLUENCE_RADIUS
for rm in get_region_modifiers():
influence_radius = rm.modify_plant_influence_radius(influence_radius)
for a in run_data.artefacts:
influence_radius = a.modify_plant_influence_radius(influence_radius)
return max(0, influence_radius)
func get_mutation_probability() -> float:
var mutation_probability = DEFAULT_MUTATION_PROBABILITY
for rm in get_region_modifiers():
mutation_probability = rm.modify_mutation_probability(mutation_probability)
for a in run_data.artefacts:
mutation_probability = a.modify_mutation_probability(mutation_probability)
return max(0., mutation_probability)
func get_mutation_max_number() -> int:
var mutation_max_number = DEFAULT_MUTATION_MAX_NUMBER
for rm in get_region_modifiers():
mutation_max_number = rm.modify_mutation_max_number(mutation_max_number)
for a in run_data.artefacts:
mutation_max_number = a.modify_mutation_max_number(mutation_max_number)
return max(0., mutation_max_number)
func get_region_modifiers() -> Array[RegionModifier]:
if run_data.current_run_point and run_data.current_run_point.region_parameter:
return run_data.current_run_point.region_parameter.modifiers
return []

View File

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

View File

@@ -4,35 +4,36 @@ class_name RunPoint
const DANGER_ICON = preload("res://common/icons/skull.svg")
const TYPE_ICON = preload("res://common/icons/map-pin.svg")
const OBJECTIVE_ICON = preload("res://common/icons/dna.svg")
const OBJECTIVE_ICON = preload("res://common/icons/growth.svg")
const CHARGE_ICON = preload("res://common/icons/bolt.svg")
@export var level : int = 0 # X pos along the planet, and difficulty
@export var region_parameter : RegionParameter = RegionParameter.new() :
set(v):
region_parameter = v
@export var position : float = 0
func _init(
_level : int = 0,
_region_parameter : RegionParameter = RegionParameter.new(),
_position : float = randf_range(0.,1.),
):
level = _level
region_parameter = _region_parameter
region_parameter.level = level
position = _position
func card_info() -> CardInfo:
var info = CardInfo.new(region_parameter.region_name)
info.important_stat_icon = DANGER_ICON
info.important_stat_text = "%d" % level
var info = CardInfo.new(
region_parameter.get_region_name(),
tr("REGION_TO_VISIT")
)
info.type_icon = TYPE_ICON
info.stats.append_array([
CardStatInfo.new(str(region_parameter.objective), OBJECTIVE_ICON),
CardStatInfo.new(str(region_parameter.charges), CHARGE_ICON),
CardStatInfo.new(str(region_parameter.get_objective()), OBJECTIVE_ICON),
CardStatInfo.new(str(region_parameter.get_charge()), CHARGE_ICON),
])
for m in region_parameter.modifiers:
info.sections.append(m.card_section())
return info

View File

@@ -8,6 +8,7 @@ const AMBIANCE_BUS_ID = 3
signal language_changed(settings : SettingsData)
signal sound_changed(settings : SettingsData)
signal video_changed(settings : SettingsData)
signal game_changed(settings : SettingsData)
#region ------------------ Language ------------------
@@ -52,4 +53,30 @@ const AVAILABLE_LANGUAGES_LABEL = [
#region ------------------ Controls ------------------
@export var action_remapped : Array[String] = []
@export var input_remapped : Array[InputEvent] = []
@export var input_remapped : Array[InputEvent] = []
#region ------------------ Game ------------------
const MAX_ZOOM = 1.8
const MIN_ZOOM = 0.8
# Not in settings pannel
@export var zoom : float = 1. :
set(v):
zoom = min(MAX_ZOOM,max(MIN_ZOOM,v))
game_changed.emit(self)
@export var closed_help_containers = []
func is_help_container_closed(help_container_name : String) -> bool:
return help_container_name in closed_help_containers
func close_help_container(help_container_name : String):
if not help_container_name in closed_help_containers:
closed_help_containers.append(help_container_name)
game_changed.emit(self)
func open_help_container(help_container_name : String):
if help_container_name in closed_help_containers:
closed_help_containers.erase(help_container_name)
game_changed.emit(self)

View File

@@ -0,0 +1,33 @@
extends StoryStep
class_name AstraStoryStep
const MERCURY_ARRIVAL_DIALOG_PATH="res://dialogs/timelines/astra/mercury_arrival.dtl"
func get_respawn_scene() -> Scene:
return AstraScene.new()
func get_destination_text() -> String:
return tr("RELAY_BASE_X") % tr("MERCURY")
func get_destination_scene() -> Scene:
return RelayBaseScene.new(
"MERCURY",
"001"
)
func get_region_sequence_length() -> int:
return 4
func get_first_vending_machine_occurence(_level : int) -> int:
return 0
func get_vending_machine_occurence(_level : int) -> int:
return 0
func get_challenge_chance(_level : int) -> float:
return 0.
func get_ship_dialog_path(level : int, ship_in_space := true) -> String:
if ship_in_space and level == get_region_sequence_length() - 1:
return MERCURY_ARRIVAL_DIALOG_PATH
return ""

View File

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

View File

@@ -0,0 +1,31 @@
extends StoryStep
class_name BetaStoryStep
const VENUS_DEPARTURE_DIALOG_PATH = "res://dialogs/timelines/beta/venus_departure.dtl"
func get_respawn_scene() -> Scene:
return RelayBaseScene.new(
"VENUS",
"002",
true
)
func get_objective_for_region(l : int) -> int:
match l:
0: return 8
1: return 15
_: return get_objective_for_region(l-1) + l * 5
func get_region_sequence_length() -> int:
return 12
func get_destination_text() -> String:
return tr("SECRET_SCENE")
func get_destination_scene() -> Scene:
return BoreaScene.new()
func get_ship_dialog_path(_level : int, _ship_in_space := true) -> String:
return VENUS_DEPARTURE_DIALOG_PATH

View File

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

View File

@@ -0,0 +1,32 @@
extends StoryStep
class_name MercuryStoryStep
const MERCURY_DEPARTURE_DIALOG_PATH = "res://dialogs/timelines/mercury/mercury_departure.dtl"
const VENUS_ARRIVAL_DIALOG_PATH = "res://dialogs/timelines/mercury/venus_arrival.dtl"
func get_respawn_scene() -> Scene:
return RelayBaseScene.new(
"MERCURY",
"001",
true
)
func get_destination_text() -> String:
return tr("RELAY_BASE_X") % tr("VENUS")
func get_destination_scene() -> Scene:
return RelayBaseScene.new(
"VENUS",
"002"
)
func get_first_vending_machine_occurence(_level : int) -> int:
return 0
func get_ship_dialog_path(level : int, ship_in_space := true) -> String:
if level == 0:
return MERCURY_DEPARTURE_DIALOG_PATH
if ship_in_space and level == get_region_sequence_length() - 1:
return VENUS_ARRIVAL_DIALOG_PATH
return ""

View File

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

View File

@@ -0,0 +1,67 @@
@abstract
extends Resource
class_name StoryStep
#region ------------------ Story ------------------
@abstract func get_respawn_scene() -> Scene
@abstract func get_destination_text() -> String
func get_destination_scene() -> Scene:
return BoreaScene.new()
func get_run_progress(level : int) -> int:
return get_region_sequence_length() - level
func get_ship_dialog_path(_level : int, _ship_in_space := true) -> String:
return ""
#region ------------------ Run ------------------
func is_run_finished(level : int) -> bool:
return level == get_region_sequence_length()
func get_region_sequence_length() -> int:
return 6
func get_first_vending_machine_occurence(_level : int) -> int:
return 2
func get_vending_machine_occurence(_level : int) -> int:
return 4
func get_challenge_chance(_level : int) -> float:
return 0.3
func get_run_point_number(level : int) -> int:
if is_run_finished(level):
return 1
return 2
func get_objective_for_region(level : int) -> int:
match level:
0: return 1
1: return 8
2: return 10
3: return 15
4: return 20
5: return 30
_: return get_objective_for_region(level-1) + (level-3) * 5
func get_story_modifiers_for_region(level : int) -> Array[RegionModifier]:
var modifiers : Array[RegionModifier] = []
if is_run_finished(level):
var dest_mod = DestinationModifier.new()
dest_mod.destination_scene = get_destination_scene()
modifiers.append(dest_mod)
return modifiers
func need_gameplay_modifier(level : int):
if is_run_finished(level):
return false
return true
func _on_finish():
GameInfo.game_data.incubator_used = []
GameInfo.game_data.dead_orchid_position = Vector3.ZERO
GameInfo.game_data.dead_orchid_rotation = Vector3.ZERO

View File

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

View File

@@ -0,0 +1,24 @@
extends StoryStep
class_name TutorialStoryStep
const INTRO_DIALOG = "res://dialogs/timelines/tutorial/demeter_intro.dtl"
func get_respawn_scene() -> Scene:
return AstraScene.new()
func get_destination_text() -> String:
return ""
func get_region_sequence_length() -> int:
return 1
func get_destination_scene() -> Scene: return null
func get_story_modifiers_for_region(_n : int) -> Array[RegionModifier]:
return [
TutorialModifier.new()
]
func _on_finish():
pass

View File

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

View File

@@ -1,6 +1,6 @@
extends Node
const SAVE_GAME_LOCATION = "user://stw_demo_save.tres"
const SAVE_GAME_LOCATION = "user://stw_beta_save.tres"
const SAVE_SETTINGS_LOCATION = "user://stw_settings.tres"
var game_loaded = false
@@ -14,17 +14,19 @@ var game_data : GameData :
var settings_data : SettingsData
var current_dialog_path : String
func load_game_data() -> GameData:
game_data = null
if ResourceLoader.exists(SAVE_GAME_LOCATION):
game_loaded = true
game_data = ResourceLoader.load(SAVE_GAME_LOCATION).duplicate_deep()
else :
game_data = GameData.new()
save_game_data()
return game_data
func start_game_data():
game_data = GameData.new()
save_game_data()
func save_game_data():
if game_data:
ResourceSaver.save(game_data, SAVE_GAME_LOCATION)
@@ -42,10 +44,6 @@ func save_settings():
if settings_data:
ResourceSaver.save(settings_data, SAVE_SETTINGS_LOCATION)
func restart_game_data():
game_data = GameData.new()
save_game_data()
func _init():
load_game_data()
load_settings_data()
@@ -57,6 +55,7 @@ func _init():
func _ready():
Dialogic.timeline_started.connect(_on_timeline_started)
Dialogic.timeline_ended.connect(_on_timeline_ended)
func _on_settings_video_changed(s : SettingsData):
update_video_settings(s)
@@ -70,9 +69,11 @@ func _on_settings_sound_changed(s : SettingsData):
AudioServer.set_bus_volume_db(SettingsData.AMBIANCE_BUS_ID, linear_to_db(s.ambiance_volume))
func _on_timeline_started():
var dialog_path = Dialogic.current_timeline.resource_path
if not dialog_path in game_data.dialogs_done:
game_data.dialogs_done.append(dialog_path)
current_dialog_path = Dialogic.current_timeline.resource_path
func _on_timeline_ended():
if not current_dialog_path in game_data.dialogs_done:
game_data.dialogs_done.append(current_dialog_path)
save_game_data()
func update_language_settings(s : SettingsData = settings_data):

1
common/icons/atom.svg Normal file
View File

@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="#ffffff" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="icon icon-tabler icons-tabler-outline icon-tabler-atom"><path stroke="none" d="M0 0h24v24H0z" fill="none" /><path d="M12 12v.01" /><path d="M19.071 4.929c-1.562 -1.562 -6 .337 -9.9 4.243c-3.905 3.905 -5.804 8.337 -4.242 9.9c1.562 1.561 6 -.338 9.9 -4.244c3.905 -3.905 5.804 -8.337 4.242 -9.9" /><path d="M4.929 4.929c-1.562 1.562 .337 6 4.243 9.9c3.905 3.905 8.337 5.804 9.9 4.242c1.561 -1.562 -.338 -6 -4.244 -9.9c-3.905 -3.905 -8.337 -5.804 -9.9 -4.242" /></svg>

After

Width:  |  Height:  |  Size: 647 B

View File

@@ -0,0 +1,43 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://n5ohgm4odri5"
path="res://.godot/imported/atom.svg-203f467e4f45f7544a18f8b0644aa19a.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://common/icons/atom.svg"
dest_files=["res://.godot/imported/atom.svg-203f467e4f45f7544a18f8b0644aa19a.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

Binary file not shown.

Before

Width:  |  Height:  |  Size: 427 B

View File

@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="#ffffff" class="icon icon-tabler icons-tabler-filled icon-tabler-biohazard"><path stroke="none" d="M0 0h24v24H0z" fill="none" /><path d="M16.41 2.072a6.25 6.25 0 0 1 1.514 6.387l-.051 .137l.223 .044q .325 .072 .645 .18l.318 .117l.25 .105c2.155 .97 3.572 3.067 3.681 5.483v.217a1.5 1.5 0 1 1 -3 -.003l.002 -.145a3.25 3.25 0 0 0 -4.412 -2.886l-.091 .037l.004 .038l.007 .217a3.5 3.5 0 0 1 -1.817 3.07l-.16 .082l.014 .11c.082 .511 .285 .997 .595 1.416l.14 .175a3.25 3.25 0 0 0 2.27 1.136l.203 .006a1.5 1.5 0 0 1 0 3a6.25 6.25 0 0 1 -4.575 -1.991l-.177 -.199l-.078 .092a6.3 6.3 0 0 1 -3.921 2.054l-.273 .028l-.259 .016h-.217a1.5 1.5 0 1 1 .003 -3l.145 .002a3.25 3.25 0 0 0 3.074 -2.82l.003 -.03l-.161 -.083a3.5 3.5 0 0 1 -1.804 -2.883l-.005 -.195l.006 -.191l.003 -.043l-.075 -.032a3.25 3.25 0 0 0 -2.398 .008l-.191 .084a3.25 3.25 0 0 0 -1.85 2.933a1.5 1.5 0 0 1 -3 0a6.25 6.25 0 0 1 5.036 -6.13l.077 -.014l-.05 -.143l-.08 -.26l-.066 -.25a6.27 6.27 0 0 1 1.47 -5.678l.163 -.172a1.5 1.5 0 1 1 2.171 2.07l-.137 .143a3.25 3.25 0 0 0 .386 4.723l.084 .062l.05 -.034a3.5 3.5 0 0 1 1.673 -.555l.228 -.007c.683 0 1.336 .197 1.894 .556l.048 .033l.067 -.048a3.25 3.25 0 0 0 1.111 -1.669l.05 -.2a3.25 3.25 0 0 0 -.74 -2.828l-.141 -.15a1.5 1.5 0 1 1 2.12 -2.122" /></svg>

After

Width:  |  Height:  |  Size: 1.3 KiB

View File

@@ -0,0 +1,43 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://caljk5xauct42"
path="res://.godot/imported/biohazard.svg-6ba6923078e547162e6b4b8cb587956e.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://common/icons/biohazard.svg"
dest_files=["res://.godot/imported/biohazard.svg-6ba6923078e547162e6b4b8cb587956e.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

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