diff options
Diffstat (limited to 'src/menu/tutorial.moon')
| -rw-r--r-- | src/menu/tutorial.moon | 106 |
1 files changed, 106 insertions, 0 deletions
diff --git a/src/menu/tutorial.moon b/src/menu/tutorial.moon new file mode 100644 index 0000000..58a15d7 --- /dev/null +++ b/src/menu/tutorial.moon @@ -0,0 +1,106 @@ +log = require("log") +ui = require("ui") +sprites = require("sprites") +game = require("menu.game") +window = require("window") +color = require("color") + +x = {} + +screens = { +"This is a game of deception", +"You remember joining the cult, right? +Of course you do, and more importantly, +you remember the words spoken at our founding.", +"We have an uninvited guest here tonight, +they do not know our phrase, +but they do have some idea of what it might be.", +"Our time is short and we must begin +our work, talk with your fellows to find our +uninvited guest.", +"Your host can modify time, roles, and +the number of uninvited guests in the settings", +} +x.node = am.group! +next_but = nil +render_frame = () -> + outline = am.group! + bg = am.rect((-window.width / 2) - 8,(-window.height / 2) - 8, (window.width / 2) + 8, (window.height / 2) + 8, color.am_color.foreground) + bg2 = am.rect((-window.width / 2),(-window.height / 2), (window.width / 2), (window.height / 2), color.am_color.background) + --top= am.line(vec2(-window.width/2,window.height/2),vec2(window.width,window.height/2),20,color.am_color.foreground) + outline\append(bg) + outline\append(bg2) + outline + +x.create = () -> + next_but = ui.button(-160, -400+20, 320, 84, "Next") + screen_i = 1 + hint_t = ui.text(0,400,360,600,screens[screen_i]) + next_but.on = () => + screen_i += 1 + log.info("Advancing tutorial screen, new text is:" .. tostring(screens[screen_i]), {"ui"}) + if hint_t + ui.delete(hint_t) + if not screens[screen_i] + x.destroy! + hint_t = ui.text(0,400,360,600,screens[screen_i]) + if screen_i == 2 + scale = am.scale(0.5) + text_pos = am.translate(0,-64) + text_pos\tag("tutorial") + ui.node\append(text_pos) + text_pos\append(scale) + oldui = ui.node + ui.node = am.group! + scale\append(ui.node) + ui.node\append(render_frame!) + game.create_graphic({ + youare: "a pawn" + poem: "Roses are red, violets are blue, here's a little game for you" + time: 600 + start: am.eval_js("Date.now()") + }) + ui.node("timer").hidden = true + ui.node("timer").paused = true + ui.node = oldui + if screen_i == 3 + prev_graphic = ui.node("tutorial") + if prev_graphic + ui.node\remove(prev_graphic) + scale = am.scale(0.5) + text_pos = am.translate(0,-64) + text_pos\tag("tutorial") + ui.node\append(text_pos) + text_pos\append(scale) + oldui = ui.node + ui.node = am.group! + ui.node\append(render_frame!) + scale\append(ui.node) + game.create_graphic({ + youare: "unmasked" + hint: "Flowers and fun" + time: 600 + start: am.eval_js("Date.now()") + }) + ui.node("timer").hidden = true + ui.node("timer").paused = true + ui.node("keep_looking").hidden = true + ui.node = oldui + if screen_i == 4 + prev_graphic = ui.node("tutorial") + prev_graphic("timer").hidden = false + prev_graphic("timer").paused = false + if sceen_i == 5 + prev_graphic = ui.node("tutorial") + if prev_graphic + ui.node\remove(prev_graphic) + + +x.destroy = () -> + prev_graphic = ui.node("tutorial") + if prev_graphic + ui.node\remove(prev_graphic) + ui.delete(next_but) + require("menu.main").initialize! + +x |
