-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathhypertextFictionExample.fg
123 lines (112 loc) · 6.08 KB
/
hypertextFictionExample.fg
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
#!syntax:pythonic
var choiceSpace := displayNewElementIn('', 'body/zoneChoix', 'div', false)
var zoneDialogue := displayNewElementIn('', 'body/zoneDialogue', 'div', false)
def WAIT_FOR_CHOICE(p_message):
showNewElementIn(p_message, choiceSpace, 'p/choix', false, 'untilClick')
def displayMessage(p_message, p_type):
#~ print(p_message)
var len := js (p_message):
return p_message.length
parallel exitAfter 1 finished:
showNewElementIn(p_message, '.zoneDialogue', 'p/' + p_type, false, 'forever')
waitSeconds(len/10)
awaitClickBeep(zoneDialogue)
#~ print('fin')
def playLoop(p_soundName):
while true:
playSoundFile('sound/' + p_soundName + '.mp3')
def playFadeout(p_soundName):
playSoundFilePlus('sound/' + p_soundName + '.mp3', 'fadeout')
def setBackground(p_imageName):
js (p_imageName):
document.backgroundImg ||= document.createElement('img')
const backgroundImg = document.backgroundImg
backgroundImg.className = 'scene'
backgroundImg.src = `img/` + p_imageName + `.svg`
if (!backgroundImg.parentNode) document.body.prepend(backgroundImg)
backgroundImg.style.animation = 'none'
backgroundImg.offsetHeight
backgroundImg.style.animation = null
#============================================
# Main
#==============================================
var sound
setBackground('foret')
displayMessage("C'est une belle journée, temps idéal pour une promenade en forêt.", 'narrateur')
parallel ||
@sound
waitSeconds(1)
playLoop('bush')
||
displayMessage("Equipé(e) de votre sac à dos, vous empruntez le chemin principal qui mène à la cabane de bucheron, quand vous entendez un bruit sur votre droite.", 'narrateur')
parallel(select 1) ||
||===============================================
WAIT_FOR_CHOICE("Vous décidez d'aller voir")
...-----------------------------------------------
break sound
setBackground('chienBuisson')
displayMessage("Vous quittez le chemin et vous dirigez lentement vers le bruit qui semble avoir cessé, quand tout à coup un petit épagneul surgit de derrière les buissons. Il est visiblement abandonné.", 'narrateur')
parallel(select 1) ||
||===
WAIT_FOR_CHOICE("Vous le laissez là et reprenez votre route.")
...---
displayMessage("C'est la fin de l'aventure.", 'narrateur')
||===
WAIT_FOR_CHOICE("Vous souriez en le regardant.")
...---
displayMessage("Il vous fait la fête. Vous décidez de l'adopter. Le toutou vous suit partout désormais et c'est la fin de l'aventure.", 'narrateur')
||============================================================
WAIT_FOR_CHOICE("Vous décidez de continuer votre route.")
...-------------------------------------------------------------
break sound
parallel exitWith branch 2 ||
playFadeout('bush')
||
setBackground('cabaneLoin')
displayMessage("Vous continuez votre chemin, et le bruit semble vous suivre. Vous accélérez et le bruit s'éloigne peu à peu. Soulagé(e) vous apercevez la cabane qui se profile derrière les arbres. Vous débouchez dans la clairière et avez le sentiment d'être observé(e).", 'narrateur')
parallel(select 1) ||
||=========================================
WAIT_FOR_CHOICE("Vous vous retournez.")
...----------------------------------------
setBackground('chienArbre')
displayMessage("Vous vous retournez et apercevez juste derrière les arbres la tête d'un petit épagneul qui vous regarde, la langue pendue, assis sur son arrière train. Voyant que vous l'observez, il se met à japper.", 'narrateur')
parallel(select 1) ||
||===
WAIT_FOR_CHOICE("Vous l'appelez.")
...---
setBackground('chienFin')
displayMessage("Le chien vient vers vous. Il est visiblement abandonné. Vous décidez de l'adopter. Le toutou vous suit partout désormais et c'est la fin de l'aventure.", 'narrateur')
||===
WAIT_FOR_CHOICE("Vous le laissez japper.")
...---
setBackground('cabaneLoin')
displayMessage("Vous continuez votre chemin, le chien repart, comme attiré par un autre bruit et c'est la fin de l'aventure.", 'narrateur')
||======================================================================
WAIT_FOR_CHOICE("Vous continuez de vous diriger vers la cabane.")
...-------------------------------------------------------------------
displayMessage("Vous marchez d'un pas qui se veut assuré, en sifflotant, pour vous donner du courage et surtout montrer que vous n'avez pas peur.", 'narrateur')
setBackground('cabane')
displayMessage("Arrivé(e) devant la porte, vous entrez dans la cabane et refermez la porte derrière vous.", 'narrateur')
setBackground('interieurCabane')
displayMessage("Vous soufflez de soulagement, quand on gratte à la porte.", 'narrateur')
parallel(select 1) ||
||======================================================================
WAIT_FOR_CHOICE("Vous regardez par la fenêtre.")
...-------------------------------------------------------------------
setBackground('chienGratte')
displayMessage("Vous apercevez un petit épagneul gratter la porte.", 'narrateur')
parallel(select 1) ||
||===
WAIT_FOR_CHOICE("Vous lui ouvrez la porte.")
...---
setBackground('chienDansCabane')
displayMessage("Le chien vous fait la fête. Il est visiblement abandonné. Vous décidez de l'adopter. Le toutou vous suit partout désormais et c'est la fin de l'aventure.", 'narrateur')
||===
WAIT_FOR_CHOICE("Vous attendez qu'il reparte.")
...---
setBackground('chienPart')
displayMessage("Vous attendez un moment, sans bouger et le grattement finit par cesser, le chien s'éloigne et semble faire le tour de la cabane puis le silence de nouveau. Vous êtes seul et c'est la fin de l'aventure.", 'narrateur')
||======================================================================
WAIT_FOR_CHOICE("Vous ne faites aucun mouvement.")
...-------------------------------------------------------------------
displayMessage("Vous attendez un moment, sans bouger et le grattement finit par cesser, des bruits d'herbe s'éloignent et semblent faire le tour de la cabane puis le silence de nouveau. Vous êtes seul et c'est la fin de l'aventure.", 'narrateur')