aboutsummaryrefslogtreecommitdiff
path: root/src/menu/tutorial.moon
blob: 58a15d7927bab72ad2c5f8f2f1885ba09a373602 (plain)
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