DEV (dev) - Script 
Educators & Designers: help improving this quest!
Comments and feedback: discuss in the Forum
Improve translations: comment the Google Sheet
Improve the script: propose an edit here
quest_start 
// dev | DEV
// 
// Country: Italy - Firenze
// Content: Living document for testing Yarn features
// and documenting available commands
//--------------------------------------------
// INIT
// every quest starts with an INIT node
// to initialize existing variables and declare new ones
// title of a node must be unique to this quest
// create a new node for anything that must be referenced multiple times
// that makes understanding of the flow easier
// position is used to place the node in the Graph view in the Editor
// group is used to organize the nodes in the Graph view in the Editor
group: docs
// tags are used to add metadata to the node
// actor is the speaking character, used mostly for voice overs
// - Default | female, neutral, clear diction, mid pitch, minimal emotion
// - SILENT | no spoken words, but can use non-verbal sounds
// - NARRATOR | male, warm, engaging, enthusiastic
// - SPECIAL | fx voice, like a robot or an animal
// - ADULT_F | warm, conversational, adaptable
// - ADULT_M | natural, medium pitch, flexible tone
// - SENIOR_F | warm, gentle rasp, storyteller cadence
// - SENIOR_M | deeper, slower, authoritative but kind
// - KID_F | bright, energetic, quick speech, high pitch
// - KID_M | playful, curious, lively tone, mid-high pitch
actor: NARRATOR
// color us used like this:
//  - red for important nodes like init and quest end
//  - blue for NPCs
//  - yellow for items
//  - green for tasks
//  - purple for activities
color: red
// type is used to identify special nodes like panel, Quiz
// - panel is fullscreen
// - panel_endgame is a special panel that shows the endgame screen
// - quiz shows a quiz with image choiches
type: panel
---
// these are the common variables
<<set $EASY_MODE = false>>
<<set $IS_DESKTOP = false>>
<<set $TOTAL_COINS = 0>>
<<set $COLLECTED_ITEMS = 0>>
<<set $MAX_PROGRESS = 0>>
<<set $CURRENT_PROGRESS = 0>>
<<set $CURRENT_ITEM = "">>
// here we declare new variables for this quest
<<declare $doorUnlocked = false>>
Bienvenue dans la quête DEV ! #line:0973921 
<<card food_baguette>>
Vous pouvez utiliser cette quête pour tester des fonctionnalités et des commandes. #line:0196a6d 
<<asset backpack>>
// shadow line example
[MISSING TRANSLATION: You played the activity well!] #line:0597e46 
DOCS_GLOBAL_VARIABLE 
group: docs
---
<<if $EASY_MODE >>
    [MISSING TRANSLATION:     You are in EASY MODE!] #line:006edd6 
<<else>>    
    [MISSING TRANSLATION:     You are in NORMAL MODE!] #line:02f8aaa 
<<endif>>
<<if $IS_DESKTOP >>
    [MISSING TRANSLATION:     You are on DESKTOP!] #line:0afe11a 
<<else>>
    [MISSING TRANSLATION:     You are on MOBILE!] #line:0245038 
<<endif>>
DOCS_ACTIONS 
//--------------------------------------------
// DOCS COMMANDS
// these are the commands available in all Scripts
//--------------------------------------------
group: docs
---
// execute the configured action in the actionManager
<<action action_id>>
DOCS_ACTIVITY 
group: docs
actor:
---
// launches an activity and set a yarn node to jump when completed
<<activity activity_setting_id return_node>>
// a third optional parameter can set the difficulty
<<activity activity_setting_id return_node tutorial>>
<<activity activity_setting_id return_node easy>>
<<activity activity_setting_id return_node normal>>
<<activity activity_setting_id return_node expert>>
// to get the result of a specific activity
// (0 = failed, >= 1 = completed)
<<if GetActivityResult("id_activity_setting") > 0>>
Vous avez bien joué l'activité ! #line:0872c3a 
<<endif>>
// this returns the result of the activity played
<<if GetActivityResult("") > 0>>
<<endif>>
DOCS_AREA 
group: docs
---
// set the area (walls), turnng off the previous one
<<area full_area>>
// switch off the current area.
<<area off>>
DOCS_ASSETS 
group: docs
---
// instead of a card, uses a direct Asset Id
<<asset id_asset>> 
// hides the current image
<<asset_hide>>
DOCS_CAMERA 
group: docs
---
// focus the camera on a target (interactable, area, map point)
<<camera_focus palace>>
// back to player
<<camera_reset>>
DOCS_CARDS 
group: docs
---
// uses the card Id to show a card
<<card food_baguette>>
// if accepts 2 additional parameters
// zoom - shows the card in zoom mode
// silent - shows the card without title / audio
<<card food_baguette zoom silent>>
// obviously can set just one of them
<<card food_baguette silent>>
<<card food_baguette zoom>>
// hides the current card
<<card_hide>>
DOCS_COOKIES 
group: docs
---
// adds cookies to the player (can be negative)
<<cookies_add 5>>
<<if GetCookies() >= 10>>
<<endif>>
DOCS_INVENTORY 
group: docs
actor: ADULT_F
---
// adds the item = card to the inventory (needs to be collectable!)
<<inventory id_card add>>
<<inventory id_card>> // same as add
<<inventory id_card remove>>
// Inventory has custom functions to check items
<<if item_count("flag_france") >= 2>>
    Vous avez plus de 2 drapeaux de France #line:08a1058 #native
    une autre ligne #line:0563122 
<<endif>>
<<if has_item("flag_france")>>
    Vous avez un drapeau de la France #line:kidm_0b932d0 
<<endif>>
<<if has_item_at_least("flag_france", 3)>>
    Vous avez au moins 3 drapeaux de France #line:0d694f1 
<<endif>>
<<if can_collect("flag_france")>>
    Vous pouvez collectionner un drapeau de la France #line:03da430 
<<endif>>
DOCS_TASKS 
group: docs
---
// starts a task
[MISSING TRANSLATION: You can add the decription with #task:id_task_configuration]
<<task_start id_task_configuration>>
// end a task... if you say nothing, its a success
<<task_end id_task_configuration>>
<<task_end id_task_configuration fail>>
<<task_end>> // or even without the id to end current task
DOCS_PARTY 
group: docs
---
// makes a NPC join a party following the player
<<party_join interactable_id>>
// asks a NPC to leave the party
<<party_release interactable_id>>
// if no id, remove all
<<party_release>> 
// the default formation in "line", but other are available
<<party_formation "line">>
<<party_formation "circle">>
<<party_formation "V">>
DOCS_QUEST 
group: docs
---
// end current quest and calculate stars based on progress
<<quest_end>>
// end the current quest with n (0, 1,2,3) stars
<<quest_end 3>>
DOCS_TARGET 
group: docs
---
// put a target element on a target
<<target target_chest>>
// removes any target
<<target off>>
DOCS_YARN_BUILTIN 
group: docs
---
// --- Yarn built-in commands ---
<<wait 3>> // waits for 3 seconds
<<stop>> // stops the current dialogue>>
test_dialog 
group: dialog
tags: noRepeatLastLine
---
[MISSING TRANSLATION: Enter the house #shadow:0f92df5]
le poisson est toujours là #line:08da0cf #customtag #native
Beurre! #line:05edb53 
    <<card butter>>
    Du bon beurre #line:090e4bd 
Option 2 #line:07243c2 
    Vous avez choisi 2 #line:03649cf 
Option 3 #line:0c56f8c 
    Vous avez choisi 3 #line:0278662 
Option 4 #line:0131912 
    Vous avez choisi 4 #line:077dcad 
Et c'est du poisson #line:099d213 
<<card food_fish>>
<<card food_fish zoom>>
On aime ça ! #line:04d8ba8 
Première ligne v1 #line:04a8afc 
Première ligne v2 #line:08cbb53 
test_inventory 
group: inventory
---
J'ai faim. Que dirais-tu de manger quelque chose ? #line:0bdf566 
<<if has_item_at_least("food_baguette", 3)>>
    J'ai besoin de 3 baguettes ! #line:00c341e 
    <<inventory food_baguette remove>>
    <<inventory food_baguette remove>>
    <<inventory food_baguette remove>>
<<else>>
    Vous n'avez pas assez de baguettes ! #line:0c0d786 
    <<if has_item("food_fish")>>
        Mais tu as du poisson ! #line:06c9370 
    <<endif>>
    Merci. #line:0a7921b 
<<endif>>
got_baguette 
group: inventory
---
Tu as trouvé une baguette ! #line:dev_got_baguette 
<<inventory food_baguette add>>
got_fish 
group: inventory
---
Un poisson en bonne santé ! #line:dev_got_fish 
<<inventory food_fish add>>
area_change 
group: area 
---
Maintenant je vais te laisser faire le tour. #line:0aa3b5d 
<<area full_area>>
test_cards 
group: cards 
---
Maintenant je vous montre quelques cartes #line:05edfca 
<<card food_fish>>
Veuillez regarder ses détails #line:0adbe4f 
<<card food_fish zoom>>
retourner au menu et parcourir les cartes #line:017a620 
et maintenant... #line:04ade19 
<<card food_baguette>>
C'est bien, n'est-ce pas ? #line:04b02ce 
<<card_hide>>
Retournez au travail maintenant. #line:0970ed1 
test_cookies 
group: cookies
---
Voulez-vous 5 cookies ? #line:0eb42ea 
Oui #line:027a7a8 
    Voilà ! Profitez-en ! #line:0e5578d 
    <<cookies_add 5>>
Non #line:0675243 
    Ok, pas de cookies pour vous ! #line:0662df0 
<<if GetCookies() >= 10>>
    Vous avez beaucoup de cookies ! #line:0d2d1d7 
<<endif>>
test_camera 
group: camera 
---
Maintenant je vous montre le plan de l'aire de jeux #line:0c58bd8 
<<camera_focus map_tutorial>>
Vous voyez ce point ? #line:03e0224 
<<camera_focus map_tutorial_detail>>
Maintenant, regardez ce palais ! #line:0c1b2e4 
<<camera_focus palace>>
C'est sympa, n'est-ce pas ? #line:04daace 
<<camera_reset>>
test_actions 
tags:
group: actions
actor: KID_F
---
<<action activate_elevator>>
Action Pre "pre_actions" et action_post "post_actions" #line:0a67b25 
Voulez-vous ouvrir le coffre ? #line:03cae39 
Oui #line:067231b 
    <<action open_chest>>
Non #line:05d9657 
<<action stop_elevator>>
task_collect_apples 
tags:
group: tasks
color: green
---
<<if HasCompletedTask("collect_apples")>>
    Merci ! Vous avez terminé cette tâche #line:dev_task_collect_apples_2
<<elseif GetCollectedItem("collect_apples") > 0 >>
    J'ai besoin de plus de pommes ! #line:dev_task_collect_apples_3
<<else>>
    <<jump task_collect_apples_info>>
<<endif>>
task_collect_apples_info 
tags:
group: tasks
color: green
type: task
---
Récupérez 4 pommes ! #line:dev_task_collect_apples_1 #task:collect_apples
[MISSING TRANSLATION: This is the description of this task.] #line:063c743 
<<task_start collect_apples task_collect_apples_done>>
task_collect_apples_done 
tags:
group: tasks
color: green
---
Bravo ! Retournez voir le robot. #line:dev_test_task_done_1 
task_open_chest 
tags:
group: tasks
color: green
---
<<if HasCompletedTask("open_chest")>>
    Merci ! J'en avais besoin. #line:073d718 
<<else>>
    Atteins et ouvre ce coffre ! #line:0c31fab 
    <<area off>>
    <<target target_chest>>
    <<task_start open_chest task_open_chest_done>>
<<endif>>
task_open_chest_done 
tags:
group: tasks
color: green
---
Bien joué ! Tu as ouvert le coffre. #line:04e697a 
<<target off>>
item_chest 
tags:
group: actions
color: yellow
actor: NARRATOR
---
Un bon coffre ! #line:dev_item_chest_1 
<<action open_chest>>
npc_join_party 
group: party
---
Voulez-vous rejoindre mon groupe ? #line:0b1f3e1 
Oui #line:0d1f4e3 
    <<party_join npc_party_1>>
    Maintenant je te suis ! #line:019353a 
Non #line:0a8e1c3 
    d'accord #line:0c4e4ec 
npc_leave_party 
group: party
---
Vous voulez changer de parti ? #line:048e84e 
Cercle de formation #line:00c2f84 
    <<party_formation circle >>
Ligne de formation #line:03d5333 
    <<party_formation line >>
Formation V #line:08ea78a 
    <<party_formation v >>
Soirée de lancement #line:01f2e9a 
    <<party_release>>
test_quiz 
group: quiz
tags:
type: quiz
---
Calculer 3*2 #line:dev_test_quiz_1 #card:fr_figure_triangle
quatre #line:dev_test_quiz_2 #card:number_4
    <<jump test_quiz_wrong>>
six #line:dev_test_quiz_3 #card:bouillabaisse
    <<jump test_quiz_correct>>
huit #line:dev_test_quiz_4 #card:food_bread
    <<jump test_quiz_wrong>>
[MISSING TRANSLATION: -> ten] #line:03cdf2b #card:food_olive_oil 
    <<jump test_quiz_wrong>>
test_quiz_correct 
group: quiz
---
OUI! C'est exact. #line:0eb010e 
test_quiz_wrong 
group: quiz
---
Non. Voulez-vous réessayer ? #line:0e2b8d7 
Oui #line:08ff2b9 
<<jump test_quiz>>
Non #line:042881c 
endgame 
group: endgame
color: red
---
Vous pouvez terminer cette quête avec... #line:027bdca 
NOOOO je ne veux pas la fin #line:014a238 
OUI, finissons-en #line:0751111 
    <<quest_end>>
    <<jump close_game>>
close_game 
group: endgame
color: red
type: panel_endgame
---
Ceci est le dernier message ! Au revoir #line:01c70f4 
NPCGIoconda 
assetimage: antura_hero
---
<<asset food_tomato>>
Salut, Stefano #line:0c0329c 
ti piacciono le foto? #line:0b9b60d 
<<asset food_fish>>
tu veux arancia? #line:0c2bd41 
    <<asset food_orange>>
    <<action play_sfx>>
tu veux de l'huile ? #line:034ed48 
    <<asset food_oil>>
    <<action play_sfx>>
ora chiudo #line:0baeb5f 
<<asset_hide>>
Ordre d'activité #line:0087ab1 
    <<activity activity_test>>
    <<jump activity_done>>
Effets sonores de Suona #line:0f02889 
    <<action play_sfx>>
Avril Baule #line:053f800 
    <<action open_chest>>
activity_done 
---
Activité terminée. #line:0ce187d 
test_setactive 
---
Maintenant, je vais activer le gameObject test_setactive #line:0ef2850 
<<SetActive TestSetActive_Crate>>
Et maintenant je vais l'éteindre #line:0a360b1 
<<SetActive TestSetActive_Crate false>>
C'est sympa, n'est-ce pas ? #line:06bd992 
NPCGreeting2 
assetimage: pirates
---
// <<activity activity_memory>>
Bonjour #line:08ecb6c 
Comment vas-tu? #line:00b7839 
Bien #line:0991140 
    C'est bon à entendre #line:0b3477e 
Mauvais #line:08607a4 
    Oh, je suis désolé d'entendre ça #line:0e6ecb2 
Neutre #line:05f3ea5 
    Je vois, j'espère que ça ira mieux bientôt #line:0802baf 
Que veux-tu faire avec les pièces ? #line:0bcd506 
NPCGreeting3 
tags:
---
<<declare $coins = 0>>
Que voulez-vous faire avec {0} pièces ? #line:0a1994c 
Ouvre la porte #line:0e11bee 
<<set $doorUnlocked = true>>
 La porte est ouverte #line:0cac01d 
Restez à la maison #line:07f4239 
 Tu restes à la maison #line:079b16e 
<<set $coins = $coins + 10>>
Chest_01 
---
<<if $doorUnlocked>>
 La porte est ouverte #line:0e22a89 
 <<jump EntroInCasa>>
<<else>>
 La porte est fermée #line:05086bc
<<endif>>
note_for_the_editors 
style: note
---
Note personnalisée #line:04d621e 
c'est utile de laisser des notes aux éditeurs #line:0520fb4 
comme des rappels de choses à faire #line:078fe99 
ou des choses à vérifier #line:0982259 
ou des choses à réparer #line:096379b 
EntroInCasa 
---
entrée à la maison #line:0f92df5 
coin_machine 
tags:
group: variables
---
Je te donnerai 100 pièces. #line:06427f9 
<<set $TOTAL_COINS = $TOTAL_COINS + 100>>
test_mood 
tags: mood=HAPPY
actor: GUIDE_F
---
Bonne humeur #line:0a6e648 
random_lines 
actor: SENIOR_F
group: random
---
Ligne aléatoire intelligente 1 #line:07193d8 
Ligne aléatoire intelligente 2 #line:06fe9a7 
Ligne aléatoire intelligente 3 #line:032e777 
multiple_lines 
group: random
actor: KID_M
---
Ceci est l'indice 1 #line:0423295 
Ceci est l'indice 2 #line:00d69e5 
Indice 3 #line:08966ba 
activity_canvas 
group: activities
color: purple
---
<<if GetActivityResult("canvas_beach_settings") > 0>>
    [MISSING TRANSLATION:     You already completed canvas 1!] #line:00dc701 
<<endif>>
Activité CANVAS! #line:0532f99 
[MISSING TRANSLATION: -> Yes #highlight] #line:0103ffa 
    <<activity canvas_beach_settings activity_canvas_result>>
[MISSING TRANSLATION: -> No] #line:08a0b03 
activity_canvas2 
group: activities
color: purple
---
<<if GetActivityResult("canvas_beach2_settings") > 0>>
    [MISSING TRANSLATION:     You already completed canvas 2!] #line:006bcc5 
<<endif>>
[MISSING TRANSLATION: Do you want to play Activity CANVAS 2?] #line:0fbe532 
[MISSING TRANSLATION: -> Yes #highlight] #line:03b9f38 
    <<activity canvas_beach2_settings activity_canvas2>>
[MISSING TRANSLATION: -> No] #line:09e165e 
activity_canvas_result 
group: activities
color: purple
---
<<if GetActivityResult("") > 0>>
Vous avez bien joué à l'activité CANVAS ! #line:04fd2ce 
<<else>>
Essayer à nouveau. #line:0797e1e 
<<endif>>
activity_jigsaw 
group: activities
color: purple
---
Activité PUZZLE ! #line:0d97ed9 
<<activity jigsaw_toureiffel_settings activity_jigsaw_result>>
activity_jigsaw_result 
group: activities
color: purple
---
<<if GetActivityResult("jigsaw_toureiffel_settings") > 0>>
Vous avez bien joué à l’activité PUZZLE ! #line:041075b 
<<else>>
Essayer à nouveau. #line:0921ca5 
<<endif>>
activity_memory 
group: activities
color: purple
---
<<if GetActivityResult("memory_baguette_settings") > 0>>
[MISSING TRANSLATION: You played MEMORY activity well!] #line:0940d53 
<<endif>>
Activité MÉMOIRE ! #line:0727144
<<activity memory_baguette_settings activity_memory_result expert>>
activity_memory_result 
group: activities
color: purple
---
<<if GetActivityResult("memory_baguette_settings") > 0>>
Vous avez bien joué à l’activité MÉMOIRE ! #line:03121d7 
<<else>>
Essayer à nouveau. #line:0d146ef 
<<endif>>
activity_match 
group: activities
color: purple
---
Activité MATCH! #line:0949b00 
<<activity match_zoo_1_settings activity_match_result>>
activity_match_result 
group: activities
color: purple
---
<<if GetActivityResult("match_zoo_1_settings") > 0>>
Vous avez bien joué à l'activité MATCH ! #line:0426701 
<<else>>
Essayer à nouveau. #line:07643ad 
<<endif>>
activity_money 
group: activities
color: purple
---
Activité ARGENT ! #line:05b81d1 
<<activity money_level_1_settings activity_money_result>>
activity_money_result 
group: activities
color: purple
---
<<if GetActivityResult("money_level_1_settings") > 0>>
Vous avez bien joué à l’activité ARGENT ! #line:0a63bb1 
<<else>>
Essayer à nouveau. #line:02b103d 
<<endif>>
activity_order 
group: activities
color: purple
---
Activité COMMANDEZ! #line:08e289f 
<<activity order_baguetterecipe_settings activity_order_result>>
activity_order_result 
group: activities
color: purple
---
<<if GetActivityResult("order_baguetterecipe_settings") > 0>>
Vous avez bien joué à l'activité COMMANDER ! #line:05527db 
<<else>>
Essayer à nouveau. #line:04681e2 
<<endif>>
activity_piano 
group: activities
color: purple
---
Jouez cette mélodie de PIANO ! #line:0e11b77 
<<activity piano_framartino_settings activity_piano_result>>
activity_piano_result 
group: activities
color: purple
---
<<if GetActivityResult("piano_framartino_settings") > 0>>
Vous avez bien joué l'activité PIANO ! #line:0b9f1af 
<<else>>
Essayer à nouveau. #line:04c91cd 
<<endif>>
