1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
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
|