diff --git a/src/automaton.js b/src/automaton.js index cdda9a8..60f343e 100644 --- a/src/automaton.js +++ b/src/automaton.js @@ -78,45 +78,52 @@ function Automaton(async, dom, messaging, screen, session, ui) { } function newGame() { + var message = { tag: 'Initialize' }; + var set = function(key) { + return function(value) { + message[key] = value; + return async.wrap(value); + }; + }; ui.frame('GameInit'); messaging.send({tag: 'NewGame'}); async.run( - async.bind(setName(), setSkin) - ); - } - - function setName() { - return async.sequence( - async.parallel( - async.sequence( - ui.text("Bonjour ! Bienvenue dans le monde merveilleux des pokémons !"), - ui.text("Pour certains, les pokemons sont des amis. Pour d'autres, ils sont une ressource. Pour ma part, hé bien l'étude des pokémons est mon métier mais aussi ma passion."), - ui.text("Mais, dis-moi, tu viens d'arriver dans la ville non ? Comment t'appelles-tu ?") - ), - session.update() + session.update(), + async.bind( + askName(), + set('name'), + askSkin, + set('skin'), + askGender, + set('gender') ), - async.bind(ui.ask(choices.name), function(name) { - screen.clear('text'); - messaging.send({ - tag: 'Initialize', - step: 'Name', - value: name - }); - return async.sequence( - session.update(), - async.wrap(name) - ); - }) + async.apply(messaging.send, message) ); } - function setSkin(name) { + function askName() { return async.sequence( - ui.text("Ah ? Tu t'appelles " + name + " ? C'est un joli nom, ma foi. Mais je ne te vois pas très bien avec le jour tombant, dis-moi, à quoi ressembles-tu ?") + async.sequence( + ui.text("Bonjour ! Bienvenue dans le monde merveilleux des pokémons !"), + ui.text("Pour certains, les pokemons sont des amis. Pour d'autres, ils sont une ressource. Pour ma part, hé bien l'étude des pokémons est mon métier mais aussi ma passion."), + ui.text("Mais, dis-moi, tu viens d'arriver dans la ville non ? Comment t'appelles-tu ?") + ), + ui.ask(choices.name) ); } - function setGender() { + function askSkin(name) { + return async.sequence( + async.apply(screen.clear, 'text'), + ui.text("Ah ? Tu t'appelles " + name + " ? C'est un joli nom, ma foi. Mais je ne te vois pas très bien avec le jour tombant, dis-moi, à quoi ressembles-tu ?"), + async.wrap('/images/characters/0.png') + ); + } + function askGender() { + return async.sequence( + async.apply(screen.clear, 'text'), + async.wrap('NB') + ); } }