client/src/automaton.js

74 lines
1.9 KiB
JavaScript

function Automaton(async, dom, messaging, screen, session, ui) {
var menus = {
start: {
entries: [
{label: 'New Game', action: newGame},
{label: 'Settings', action: function() { console.log("Not implemented yet"); }}
],
cancel: intro,
name: 'start'
}
};
var choices = {
name: {
entries: [
{label: 'Max', value: 'Max'},
{label: 'Lenore', value: 'Lenore'},
{label: 'Thomas', value: 'Thomas'},
{label: null, size: 15}
],
name: 'name'
},
skin: {
}
};
var game = session.getGame();
if(game != undefined) {
menus.start.entries.unshift(
{label: 'Continue', action: function() { messaging.send({tag: 'Resume', game: game}); }}
);
}
return {
run: run
}
//messaging.addEventListener(['Init'], function(game) {
// console.log(game);
//});
function run() {
intro();
}
function intro() {
var title = dom.make('p', {textContent: "P O K E M O N", class: 'title'});
var subtitle = dom.make('p', {textContent: "< press start >", class: 'subtitle'});
ui.frame('Intro');
async.run(
ui.cinematic([
{action: function() {}, delay: 500},
{action: function() { screen.show(title); }, delay: 1000},
{action: function() { screen.show(subtitle); }, delay: null}
], {
B: function() { intro(); },
Start: function() { ui.frame('StartMenu'); ui.menu(menus.start); }
})
);
}
function newGame() {
ui.frame('GameInit');
async.run(
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 ?"),
async.bind(ui.ask(choices.name), function(name) {
screen.clear('text');
console.log('You picked : ' + name);
return async.wrap();
})
);
}
}