Browse Source

add background music support

Arnaud Vergnet 5 months ago
parent
commit
444a0ec1d5

+ 1
- 1
dialogic/definitions.json View File

@@ -1 +1 @@
1
-{"glossary":[{"extra":"","id":"1618913698-364","name":"fermer","text":"Utilisateur habitué à cette fonctionnalité. Il n’est pas déboussolé face à une nouveauté.","title":"Téléphone verrouillé","type":1},{"extra":"","id":"1618913732-731","name":"ouvert","text":"Donne à l’entreprise une image moderne et éco-responsable. Possibilité de fidéliser des clients qui dépensent plus habituellement.","title":"Téléphone déverrouillé","type":1}],"variables":[{"id":"1618954308-648","name":"jauge_travail","type":0,"value":"0"},{"id":"1618954325-787","name":"jauge_education","type":0,"value":"0"},{"id":"1618954333-366","name":"jauge_financier","type":0,"value":"0"},{"id":"1618954344-146","name":"jauge_ecologie","type":0,"value":"0"},{"id":"1618954357-918","name":"jauge_social","type":0,"value":""},{"id":"1618954386-970","name":"relation_jm","type":0,"value":"0"},{"id":"1618954375-483","name":"relation_evelyne","type":0,"value":"0"},{"id":"1616657225-648","name":"choix_tel_ouvert","type":0,"value":"0"}]}
1
+{"glossary":[{"extra":"","id":"1618913698-364","name":"fermer","text":"Utilisateur habitué à cette fonctionnalité. Il n’est pas déboussolé face à une nouveauté.","title":"Téléphone verrouillé","type":1},{"extra":"","id":"1618913732-731","name":"ouvert","text":"Donne à l’entreprise une image moderne et éco-responsable. Possibilité de fidéliser des clients qui dépensent plus habituellement.","title":"Téléphone déverrouillé","type":1}],"variables":[{"id":"1618954308-648","name":"jauge_travail","type":0,"value":"0"},{"id":"1618954325-787","name":"jauge_education","type":0,"value":"0"},{"id":"1618954333-366","name":"jauge_financier","type":0,"value":"0"},{"id":"1618954344-146","name":"jauge_ecologie","type":0,"value":"0"},{"id":"1618954357-918","name":"jauge_social","type":0,"value":""},{"id":"1618954386-970","name":"relation_jm","type":0,"value":"0"},{"id":"1618954375-483","name":"relation_evelyne","type":0,"value":"0"},{"id":"1616657225-648","name":"choix_tel_ouvert","type":0,"value":"0"},{"id":"1619183465-648","name":"current_phase","type":0,"value":"0"}]}

+ 1
- 1
dialogic/timelines/timeline-1616657347.json View File

@@ -1 +1 @@
1
-{"events":[{"background":"res://backgrounds/coffeeRoom.jpg"},{"action":"join","character":"character-1616658373.json","portrait":"","position":{"0":false,"1":true,"2":false,"3":false,"4":false}},{"character":"character-1616658373.json","portrait":"","text":"Coucou ! Moi c’est Evelyne, je suis dans ton service!\nJ’ai hâte de travailler avec toi, nous allons faire de belles choses ensemble !\nJ’ai entendu que le boss t’avais mis sur le projet du nouveau téléphone. C’est un gros projet pour commencer."},{"character":"character-1616658355.json","portrait":"","text":"Oui c’est super mais ça me met la pression. En plus je dois essayer de me démarquer des téléphones des autres entreprises en ajoutant de nouvelles fonctionnalités."},{"character":"character-1616658373.json","portrait":"","text":"Justement , tu pourrais laisser la possibilité à l’utilisateur de pouvoir ouvrir le téléphone. "},{"character":"character-1616658373.json","options":[],"portrait":"","question":"Si tu veux je peux te donner plus d’informations, je connais bien ce sujet."},{"choice":"Pourquoi pas","condition":"","definition":"","value":""},{"character":"character-1616658355.json","portrait":"","text":"Dis moi tout !"},{"character":"character-1616658373.json","portrait":"","text":"Si tu as un problème sur une certaine pièce, comme la batterie, tu peux simplement la changer au lieu d’en racheter un nouveau.  \nTu peux imaginer l’économie que tu fais non seulement pour ton porte-monnaie, mais aussi pour la planète. \nSi tu l’appliques pour ton projet ça permettrait de donner une image éco-responsable à l’entreprise mais aussi de te démarquer de toutes ces marques qui poussent à la surconsommation."},{"choice":"J’ai du travail","condition":"","definition":"","value":""},{"character":"character-1616658355.json","portrait":"","text":"Je n’ai pas vraiment le temps, il faut que je retourne travailler."},{"character":"character-1616658373.json","options":[],"portrait":"","question":"Ça ne durera pas longtemps, promis !"},{"choice":"Je t’écoute !","condition":"","definition":"","value":""},{"character":"character-1616658355.json","portrait":"","text":"Ok, dis-moi tout."},{"character":"character-1616658373.json","portrait":"","text":"Si tu as un problème sur une certaine pièce, comme la batterie, tu peux simplement la changer au lieu d’en racheter un nouveau.  \nTu peux imaginer l’économie que tu fais non seulement pour ton porte-monnaie, mais aussi pour la planète. "},{"choice":"Je n’ai vraiment pas le temps.","condition":"","definition":"","value":""},{"character":"character-1616658355.json","portrait":"","text":"Excuse moi, mais je n’ai vraiment pas le temps. Je retourne travailler, à la prochaine."},{"character":"character-1616658373.json","portrait":"","text":"D’accord, bon courage."},{"endbranch":""},{"endbranch":""},{"action":"join","character":"character-1616658435.json","mirror":false,"portrait":"Default","position":{"0":false,"1":false,"2":false,"3":true,"4":false}},{"character":"character-1616658435.json","portrait":"","text":"Salut toi ! Bienvenue parmi nous. Tu viens d’où mon ami ?"},{"character":"character-1616658355.json","portrait":"","text":"Oh rien d’original j’arrive tout droit de la région parisienne et toi ?"},{"character":"character-1616658435.json","portrait":"","text":"Alors … C’est compliqué … Je crois que je suis suisse."},{"character":"character-1616658355.json","portrait":"","text":"Tu crois ?"},{"character":"character-1616658435.json","portrait":"","text":"Je ne suis pas sûr… Bienvenue parmi nous !"},{"action":"leaveall","character":"[All]"},{"wait_seconds":1},{"change_timeline":"timeline-1618912317.json"}],"metadata":{"dialogic-version":"1.1","file":"timeline-1616657347.json","name":"1_1_info-cafe"}}
1
+{"events":[{"background":"res://backgrounds/coffeeRoom.jpg"},{"action":"join","character":"character-1616658373.json","portrait":"","position":{"0":false,"1":true,"2":false,"3":false,"4":false}},{"character":"character-1616658373.json","portrait":"","text":"Coucou ! Moi c’est Evelyne, je suis dans ton service!\nJ’ai hâte de travailler avec toi, nous allons faire de belles choses ensemble !\nJ’ai entendu que le boss t’avais mis sur le projet du nouveau téléphone. C’est un gros projet pour commencer."},{"character":"character-1616658355.json","portrait":"","text":"Oui c’est super mais ça me met la pression. En plus je dois essayer de me démarquer des téléphones des autres entreprises en ajoutant de nouvelles fonctionnalités."},{"character":"character-1616658373.json","portrait":"","text":"Justement , tu pourrais laisser la possibilité à l’utilisateur de pouvoir ouvrir le téléphone. "},{"character":"character-1616658373.json","options":[],"portrait":"","question":"Si tu veux je peux te donner plus d’informations, je connais bien ce sujet."},{"choice":"Pourquoi pas","condition":"","definition":"","value":""},{"character":"character-1616658355.json","portrait":"","text":"Dis moi tout !"},{"character":"character-1616658373.json","portrait":"","text":"Si tu as un problème sur une certaine pièce, comme la batterie, tu peux simplement la changer au lieu d’en racheter un nouveau.  \nTu peux imaginer l’économie que tu fais non seulement pour ton porte-monnaie, mais aussi pour la planète. \nSi tu l’appliques pour ton projet ça permettrait de donner une image éco-responsable à l’entreprise mais aussi de te démarquer de toutes ces marques qui poussent à la surconsommation."},{"choice":"J’ai du travail","condition":"","definition":"","value":""},{"character":"character-1616658355.json","portrait":"","text":"Je n’ai pas vraiment le temps, il faut que je retourne travailler."},{"character":"character-1616658373.json","options":[],"portrait":"","question":"Ça ne durera pas longtemps, promis !"},{"choice":"Je t’écoute !","condition":"","definition":"","value":""},{"character":"character-1616658355.json","portrait":"","text":"Ok, dis-moi tout."},{"character":"character-1616658373.json","portrait":"","text":"Si tu as un problème sur une certaine pièce, comme la batterie, tu peux simplement la changer au lieu d’en racheter un nouveau.  \nTu peux imaginer l’économie que tu fais non seulement pour ton porte-monnaie, mais aussi pour la planète. "},{"choice":"Je n’ai vraiment pas le temps.","condition":"","definition":"","value":""},{"character":"character-1616658355.json","portrait":"","text":"Excuse moi, mais je n’ai vraiment pas le temps. Je retourne travailler, à la prochaine."},{"character":"character-1616658373.json","portrait":"","text":"D’accord, bon courage."},{"endbranch":""},{"endbranch":""},{"action":"leaveall","character":"[All]"},{"wait_seconds":0.5},{"action":"join","character":"character-1616658435.json","mirror":false,"portrait":"Default","position":{"0":false,"1":false,"2":false,"3":true,"4":false}},{"character":"character-1616658435.json","portrait":"","text":"Salut toi ! Bienvenue parmi nous. Tu viens d’où mon ami ?"},{"character":"character-1616658355.json","portrait":"","text":"Oh rien d’original j’arrive tout droit de la région parisienne et toi ?"},{"character":"character-1616658435.json","portrait":"","text":"Alors … C’est compliqué … Je crois que je suis suisse."},{"character":"character-1616658355.json","portrait":"","text":"Tu crois ?"},{"character":"character-1616658435.json","portrait":"","text":"Je ne suis pas sûr… Bienvenue parmi nous !"},{"action":"leaveall","character":"[All]"},{"wait_seconds":1},{"change_timeline":"timeline-1618912317.json"}],"metadata":{"dialogic-version":"1.1","file":"timeline-1616657347.json","name":"1_1_info-cafe"}}

+ 1
- 1
dialogic/timelines/timeline-1616659306.json View File

@@ -1 +1 @@
1
-{"events":[{"change_timeline":"timeline-1618911641.json"}],"metadata":{"dialogic-version":"1.1","file":"timeline-1616659306.json","name":"0_start"}}
1
+{"events":[{"change_timeline":"timeline-1619185676.json"}],"metadata":{"dialogic-version":"1.1","file":"timeline-1616659306.json","name":"00_start"}}

+ 1
- 1
dialogic/timelines/timeline-1616662258.json View File

@@ -1 +1 @@
1
-{"events":[{"wait_seconds":1},{"character":"","portrait":"","text":"Fin de la démo, merci d'avoir joué !"},{"action":"leaveall","character":"[All]"}],"metadata":{"dialogic-version":"1.1","file":"timeline-1616662258.json","name":"0_end"}}
1
+{"events":[{"wait_seconds":1},{"character":"","portrait":"","text":"Fin de la démo, merci d'avoir joué !"},{"action":"leaveall","character":"[All]"}],"metadata":{"dialogic-version":"1.1","file":"timeline-1616662258.json","name":"00_end"}}

+ 1
- 1
dialogic/timelines/timeline-1618911641.json View File

@@ -1 +1 @@
1
-{"events":[{"background":"res://backgrounds/bureauGroupe-2.jpg"},{"character":"character-1618911589.json","portrait":"","text":"Votre entretien s’est bien passé et vous avez eu le poste dans l’entreprise.\nLe premier projet que votre patron vous confie est de participer à la création  d’un nouveau téléphone. \nVous allez travailler en collaboration avec trois de vos collègues : Jean-Michel, Evelyne et Patrick. "},{"character":"character-1616658355.json","portrait":"","text":"Il est 10h c’est l’heure de la pause !"},{"change_timeline":"timeline-1616657347.json"}],"metadata":{"dialogic-version":"1.1","file":"timeline-1618911641.json","name":"1_1_intro"}}
1
+{"events":[{"background":"res://backgrounds/bureauGroupe-2.jpg"},{"definition":"1619183465-648","operation":"=","set_value":"1"},{"emit_signal":"play_music"},{"character":"character-1618911589.json","portrait":"","text":"Votre entretien s’est bien passé et vous avez eu le poste dans l’entreprise.\nLe premier projet que votre patron vous confie est de participer à la création  d’un nouveau téléphone. \nVous allez travailler en collaboration avec trois de vos collègues : Jean-Michel, Evelyne et Patrick. "},{"character":"character-1616658355.json","portrait":"","text":"Il est 10h c’est l’heure de la pause !"},{"change_timeline":"timeline-1616657347.json"}],"metadata":{"dialogic-version":"1.1","file":"timeline-1618911641.json","name":"1_1_intro"}}

+ 1
- 1
dialogic/timelines/timeline-1618912317.json View File

@@ -1 +1 @@
1
-{"events":[{"background":"res://backgrounds/bureauPerso.jpg"},{"action":"join","character":"character-1616658471.json","mirror":false,"portrait":"Default","position":{"0":false,"1":false,"2":true,"3":false,"4":false}},{"character":"character-1616658471.json","options":[],"portrait":"","question":"Nouveau mail du Boss ! Le lire ?"},{"choice":"Oui","condition":"","definition":"","value":""},{"character":"character-1616658471.json","portrait":"","text":"Bonjour, J’espère que tout se passe bien pour vous au sein de notre entreprise. \nJe viens vers vous pour vous rappeler que votre premier projet est le développement d’un nouveau téléphone portable. \nCe projet est d’une très grande importance et représente un gros investissement."},{"character":"character-1616658471.json","options":[],"portrait":"","question":"En effet, il sera difficile pour l’entreprise de survivre à  l’échec commercial de ce produit. "},{"choice":"Super, déjà des responsabilités !","condition":"","definition":"","value":""},{"character":"character-1616658471.json","portrait":"","text":"Ainsi, dès lors que le téléphone deviendra obsolète, ou si ses composants s’abîment, nos clients n'hésiteront pas à racheter nos produits. \nJ’espère que vous mesurez l’importance de la réussite de ce projet et de l’impact que cela pourrait avoir sur le chiffre d'affaires de l’entreprise.\nCordialement, The boss."},{"choice":"La pression... mieux vaut arrêter de lire","condition":"","definition":"","value":""},{"character":"character-1616658355.json","portrait":"","text":"Plus tard les mails"},{"endbranch":""},{"choice":"Non","condition":"","definition":"","value":""},{"character":"character-1616658355.json","options":[],"portrait":"","question":"C'est quand même un mail du boss..."},{"choice":"Oui mieux vaut le lire","condition":"","definition":"","value":""},{"character":"character-1616658471.json","portrait":"","text":"Bonjour, J’espère que tout se passe bien pour vous au sein de notre entreprise. \nJe viens vers vous pour vous rappeler que votre premier projet est le développement d’un nouveau téléphone portable. \nCe projet est d’une très grande importance et représente un gros investissement."},{"character":"character-1616658471.json","options":[],"portrait":"","question":"En effet, il sera difficile pour l’entreprise de survivre à  l’échec commercial de ce produit. "},{"choice":"Super, déjà des responsabilités !","condition":"","definition":"","value":""},{"character":"character-1616658471.json","portrait":"","text":"Ainsi, dès lors que le téléphone deviendra obsolète, ou si ses composants s’abîment, nos clients n'hésiteront pas à racheter nos produits. \nJ’espère que vous mesurez l’importance de la réussite de ce projet et de l’impact que cela pourrait avoir sur le chiffre d'affaires de l’entreprise.\nCordialement, The boss."},{"choice":"La pression... mieux vaut arrêter de lire","condition":"","definition":"","value":""},{"character":"character-1616658355.json","portrait":"","text":"Plus tard les mails"},{"endbranch":""},{"choice":"Ce n’est pas le moment","condition":"","definition":"","value":""},{"character":"character-1616658355.json","portrait":"","text":"Plus tard les mails"},{"endbranch":""},{"endbranch":""},{"change_timeline":"timeline-1616659917.json"}],"metadata":{"dialogic-version":"1.1","file":"timeline-1618912317.json","name":"1_1_mail_boss"}}
1
+{"events":[{"background":"res://backgrounds/bureauPerso.jpg"},{"action":"join","character":"character-1616658471.json","mirror":false,"portrait":"Default","position":{"0":false,"1":false,"2":true,"3":false,"4":false}},{"character":"character-1616658471.json","options":[],"portrait":"","question":"Nouveau mail du Boss ! Le lire ?"},{"choice":"Oui","condition":"","definition":"","value":""},{"character":"character-1616658471.json","portrait":"","text":"Bonjour, J’espère que tout se passe bien pour vous au sein de notre entreprise. \nJe viens vers vous pour vous rappeler que votre premier projet est le développement d’un nouveau téléphone portable. \nCe projet est d’une très grande importance et représente un gros investissement."},{"character":"character-1616658471.json","options":[],"portrait":"","question":"En effet, il sera difficile pour l’entreprise de survivre à  l’échec commercial de ce produit. "},{"choice":"Super, déjà des responsabilités !","condition":"","definition":"","value":""},{"character":"character-1616658471.json","portrait":"","text":"Ainsi, dès lors que le téléphone deviendra obsolète, ou si ses composants s’abîment, nos clients n'hésiteront pas à racheter nos produits. \nJ’espère que vous mesurez l’importance de la réussite de ce projet et de l’impact que cela pourrait avoir sur le chiffre d'affaires de l’entreprise.\nCordialement, The boss."},{"choice":"La pression... mieux vaut arrêter de lire","condition":"","definition":"","value":""},{"character":"character-1616658355.json","portrait":"","text":"Plus tard les mails"},{"endbranch":""},{"choice":"Non","condition":"","definition":"","value":""},{"character":"character-1616658355.json","options":[],"portrait":"","question":"C'est quand même un mail du boss..."},{"choice":"Oui mieux vaut le lire","condition":"","definition":"","value":""},{"character":"character-1616658471.json","portrait":"","text":"Bonjour, J’espère que tout se passe bien pour vous au sein de notre entreprise. \nJe viens vers vous pour vous rappeler que votre premier projet est le développement d’un nouveau téléphone portable. \nCe projet est d’une très grande importance et représente un gros investissement."},{"character":"character-1616658471.json","options":[],"portrait":"","question":"En effet, il sera difficile pour l’entreprise de survivre à  l’échec commercial de ce produit. "},{"choice":"Super, déjà des responsabilités !","condition":"","definition":"","value":""},{"character":"character-1616658471.json","portrait":"","text":"Ainsi, dès lors que le téléphone deviendra obsolète, ou si ses composants s’abîment, nos clients n'hésiteront pas à racheter nos produits. \nJ’espère que vous mesurez l’importance de la réussite de ce projet et de l’impact que cela pourrait avoir sur le chiffre d'affaires de l’entreprise.\nCordialement, The boss."},{"choice":"La pression... mieux vaut arrêter de lire","condition":"","definition":"","value":""},{"character":"character-1616658355.json","portrait":"","text":"Plus tard les mails"},{"endbranch":""},{"choice":"Ce n’est pas le moment","condition":"","definition":"","value":""},{"character":"character-1616658355.json","portrait":"","text":"Plus tard les mails"},{"endbranch":""},{"endbranch":""},{"action":"leaveall","character":"[All]"},{"change_timeline":"timeline-1616659917.json"}],"metadata":{"dialogic-version":"1.1","file":"timeline-1618912317.json","name":"1_1_mail_boss"}}

+ 1
- 0
dialogic/timelines/timeline-1619185676.json View File

@@ -0,0 +1 @@
1
+{"events":[{"background":"res://backgrounds/bureauGroupe-2.jpg"},{"definition":"1619183465-648","operation":"=","set_value":"0"},{"character":"","portrait":"","text":"hello"},{"emit_signal":"setup_minigame score 0_0_minigame_end 0_0_minigame_end"},{"background":""},{"character":"","portrait":"","text":"nice"},{"emit_signal":"start_minigame"}],"metadata":{"dialogic-version":"1.1","file":"timeline-1619185676.json","name":"0_0_intro"}}

+ 1
- 0
dialogic/timelines/timeline-1619185825.json View File

@@ -0,0 +1 @@
1
+{"events":[{"character":"","portrait":"","text":"end"},{"emit_signal":"play_music"},{"background":"res://backgrounds/bureauGroupe-2.jpg"},{"character":"","portrait":"","text":"back baby"},{"change_timeline":"timeline-1618911641.json"}],"metadata":{"dialogic-version":"1.1","file":"timeline-1619185825.json","name":"0_0_minigame_end"}}

+ 2
- 0
mini-game/MiniGame.gd View File

@@ -15,6 +15,7 @@ var next_timeline_win := ""
15 15
 
16 16
 var game_mode = ""
17 17
 
18
+var MUSIC = "res://music/mini_jeu.ogg"
18 19
 
19 20
 func _ready():
20 21
 	Signals.connect("die", self, "on_game_over")
@@ -41,6 +42,7 @@ func set_mode(mode: String):
41 42
 
42 43
 func start():
43 44
 	print("starting minigame")
45
+	BackgroundMusic.crossfade_to(MUSIC, -10, 1)
44 46
 	start_timer_UI.init()
45 47
 	var t = Timer.new()
46 48
 	t.set_wait_time(0.5)

BIN
music/etudiant.ogg View File


+ 15
- 0
music/etudiant.ogg.import View File

@@ -0,0 +1,15 @@
1
+[remap]
2
+
3
+importer="ogg_vorbis"
4
+type="AudioStreamOGGVorbis"
5
+path="res://.import/etudiant.ogg-85dfffdae3fa59a39319268acf76e765.oggstr"
6
+
7
+[deps]
8
+
9
+source_file="res://music/etudiant.ogg"
10
+dest_files=[ "res://.import/etudiant.ogg-85dfffdae3fa59a39319268acf76e765.oggstr" ]
11
+
12
+[params]
13
+
14
+loop=true
15
+loop_offset=0

BIN
music/ingenieur.ogg View File


+ 15
- 0
music/ingenieur.ogg.import View File

@@ -0,0 +1,15 @@
1
+[remap]
2
+
3
+importer="ogg_vorbis"
4
+type="AudioStreamOGGVorbis"
5
+path="res://.import/ingenieur.ogg-3430ea941f29966001db9ceb8b797d49.oggstr"
6
+
7
+[deps]
8
+
9
+source_file="res://music/ingenieur.ogg"
10
+dest_files=[ "res://.import/ingenieur.ogg-3430ea941f29966001db9ceb8b797d49.oggstr" ]
11
+
12
+[params]
13
+
14
+loop=true
15
+loop_offset=0

BIN
music/menu_principal.ogg View File


+ 15
- 0
music/menu_principal.ogg.import View File

@@ -0,0 +1,15 @@
1
+[remap]
2
+
3
+importer="ogg_vorbis"
4
+type="AudioStreamOGGVorbis"
5
+path="res://.import/menu_principal.ogg-c98c591fc084bf01a2239657ae0e7038.oggstr"
6
+
7
+[deps]
8
+
9
+source_file="res://music/menu_principal.ogg"
10
+dest_files=[ "res://.import/menu_principal.ogg-c98c591fc084bf01a2239657ae0e7038.oggstr" ]
11
+
12
+[params]
13
+
14
+loop=true
15
+loop_offset=0

BIN
music/mini_jeu.ogg View File


+ 15
- 0
music/mini_jeu.ogg.import View File

@@ -0,0 +1,15 @@
1
+[remap]
2
+
3
+importer="ogg_vorbis"
4
+type="AudioStreamOGGVorbis"
5
+path="res://.import/mini_jeu.ogg-49fa7730c4652ebe0a51b7e95125fafb.oggstr"
6
+
7
+[deps]
8
+
9
+source_file="res://music/mini_jeu.ogg"
10
+dest_files=[ "res://.import/mini_jeu.ogg-49fa7730c4652ebe0a51b7e95125fafb.oggstr" ]
11
+
12
+[params]
13
+
14
+loop=true
15
+loop_offset=0

BIN
music/utilisateur.ogg View File


+ 15
- 0
music/utilisateur.ogg.import View File

@@ -0,0 +1,15 @@
1
+[remap]
2
+
3
+importer="ogg_vorbis"
4
+type="AudioStreamOGGVorbis"
5
+path="res://.import/utilisateur.ogg-22434ee80cb95495050e81ee5ff46869.oggstr"
6
+
7
+[deps]
8
+
9
+source_file="res://music/utilisateur.ogg"
10
+dest_files=[ "res://.import/utilisateur.ogg-22434ee80cb95495050e81ee5ff46869.oggstr" ]
11
+
12
+[params]
13
+
14
+loop=true
15
+loop_offset=0

+ 1
- 0
project.godot View File

@@ -58,6 +58,7 @@ config/icon="res://icon.png"
58 58
 
59 59
 DialogicSingleton="*res://addons/dialogic/Other/DialogicSingleton.gd"
60 60
 Signals="*res://mini-game/scripts/Signals.gd"
61
+BackgroundMusic="*res://scenes/BackgroundMusic.tscn"
61 62
 
62 63
 [display]
63 64
 

+ 72
- 0
scenes/BackgroundMusic.gd View File

@@ -0,0 +1,72 @@
1
+extends Control
2
+
3
+onready var _track1 := $Track1
4
+onready var _track2 := $Track2
5
+
6
+var fade_in_track: AudioStreamPlayer
7
+var fade_out_track: AudioStreamPlayer
8
+
9
+var current_path = ""
10
+var current_volume = 0
11
+var paused_volume_offset = -10
12
+
13
+var paused = false
14
+
15
+func _ready():
16
+	$Tween.connect("tween_all_completed", self, "on_Tween_tween_all_completed")
17
+
18
+
19
+func _process(delta):
20
+	if paused and not get_tree().paused:
21
+		set_paused(false)
22
+	elif not paused and get_tree().paused:
23
+		set_paused(true)
24
+
25
+
26
+func crossfade_to(path: String, volume:float, fade_length: float) -> void:
27
+	if current_path == path:
28
+		return
29
+	
30
+	var stream: AudioStream = load(path)
31
+	fade_out_track = _track1
32
+	fade_in_track = _track2
33
+	
34
+	if _track2.playing:
35
+		fade_out_track = _track2
36
+		fade_in_track = _track1
37
+	
38
+	# setup the new track
39
+	fade_in_track.stream = stream
40
+	fade_in_track.volume_db = -60
41
+	
42
+	
43
+	$Tween.interpolate_property(fade_out_track, "volume_db", null, -60, fade_length, Tween.TRANS_LINEAR)
44
+	$Tween.interpolate_property(fade_in_track, "volume_db", -60, volume, fade_length, Tween.TRANS_LINEAR)
45
+	$Tween.start()
46
+	
47
+	fade_in_track.play()
48
+	current_volume = volume
49
+	current_path = path
50
+
51
+
52
+func on_Tween_tween_all_completed():
53
+	fade_out_track.stop()
54
+
55
+
56
+func set_paused(pause: bool):
57
+	paused = pause
58
+	var volume = current_volume
59
+	if pause:
60
+		volume += paused_volume_offset
61
+	
62
+	if _track1.playing:
63
+		_track1.volume_db = volume
64
+	elif _track2.playing:
65
+		_track2.volume_db = volume
66
+
67
+
68
+func fade_out(fade_length:float = 1) -> void:
69
+	current_path = ""
70
+	$Tween.interpolate_property(_track1, "volume_db", null, -60, fade_length, Tween.TRANS_LINEAR)
71
+	$Tween.interpolate_property(_track2, "volume_db", null, -60, fade_length, Tween.TRANS_LINEAR)
72
+	$Tween.start()

+ 16
- 0
scenes/BackgroundMusic.tscn View File

@@ -0,0 +1,16 @@
1
+[gd_scene load_steps=2 format=2]
2
+
3
+[ext_resource path="res://scenes/BackgroundMusic.gd" type="Script" id=1]
4
+
5
+[node name="BackgroundMusic" type="Control"]
6
+pause_mode = 2
7
+script = ExtResource( 1 )
8
+__meta__ = {
9
+"_edit_use_anchors_": false
10
+}
11
+
12
+[node name="Track1" type="AudioStreamPlayer" parent="."]
13
+
14
+[node name="Track2" type="AudioStreamPlayer" parent="."]
15
+
16
+[node name="Tween" type="Tween" parent="."]

+ 21
- 1
scenes/Main.gd View File

@@ -4,10 +4,28 @@ onready var mini_game = $MiniGame;
4 4
 
5 5
 var dialogic_node;
6 6
 
7
+var STUDENT_MUSIC = "res://music/etudiant.ogg"
8
+var ENGI_MUSIC = "res://music/ingenieur.ogg"
9
+var USER_MUSIC = "res://music/utilisateur.ogg"
10
+
7 11
 func _ready():
8
-	dialogic_node = Dialogic.start_from_save('0_start')
12
+	dialogic_node = Dialogic.start_from_save('00_start')
9 13
 	add_child_below_node($MiniGame, dialogic_node)
10 14
 	dialogic_node.connect('dialogic_signal', self, "_on_Dialogic_signal_received")
15
+	play_music()
16
+
17
+
18
+func play_music():
19
+	var current_phase = Dialogic.get_variable("current_phase")
20
+	var music = STUDENT_MUSIC
21
+	match current_phase:
22
+		"0":
23
+			music = STUDENT_MUSIC
24
+		"1":
25
+			music = ENGI_MUSIC
26
+		"2":
27
+			music = USER_MUSIC
28
+	BackgroundMusic.crossfade_to(music, -10, 1)
11 29
 
12 30
 
13 31
 func _on_Dialogic_signal_received(value: String):
@@ -16,6 +34,8 @@ func _on_Dialogic_signal_received(value: String):
16 34
 	if args.size() > 0:
17 35
 		var type = args[0];
18 36
 		match type:
37
+			"play_music":
38
+				play_music()
19 39
 			"start_minigame":
20 40
 				start_minigame()
21 41
 			"setup_minigame":

+ 5
- 0
scenes/MainMenu.gd View File

@@ -1,5 +1,10 @@
1 1
 extends Control
2 2
 
3
+var MAIN_MENU_MUSIC = "res://music/menu_principal.ogg"
4
+
5
+func _ready():
6
+	BackgroundMusic.crossfade_to(MAIN_MENU_MUSIC, -10, 1)
7
+
3 8
 
4 9
 func load_main_game():
5 10
 	get_tree().change_scene("res://scenes/Main.tscn")

Loading…
Cancel
Save