aboutsummaryrefslogtreecommitdiff
path: root/src/menu/tutorial.moon
diff options
context:
space:
mode:
Diffstat (limited to 'src/menu/tutorial.moon')
-rw-r--r--src/menu/tutorial.moon106
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