diff options
Diffstat (limited to 'views')
-rw-r--r-- | views/about.pug | 20 | ||||
-rw-r--r-- | views/admin_match.pug | 53 | ||||
-rw-r--r-- | views/header.pug | 2 | ||||
-rw-r--r-- | views/match.pug | 71 |
4 files changed, 146 insertions, 0 deletions
diff --git a/views/about.pug b/views/about.pug index dd12772..85522df 100644 --- a/views/about.pug +++ b/views/about.pug @@ -74,6 +74,26 @@ html If you want to play with friends, check the "private" checkbox and invite your friends from the join page after you have created the game. + h2 Matchmaking + + p. + The match maker will match players up and start games automatically + once there are enough people waiting for the same game. + Players will be matched with opponents of similar Elo ratings when possible. + + p. + Live tickets expire after 3 hours if you don't get a match. + All of your other Live tickets are removed when you get matched for a Live game. + + p. + Fast tickets take the time of day into account. + Queue up when you want to start playing for the best results. + + p. + <i>Don't queue up for too many games!</i> + It can take a while for the matches to start, + so you may end up with more games than you can handle. + h2 Privacy statement p When you create an account we collect the following personal information: diff --git a/views/admin_match.pug b/views/admin_match.pug new file mode 100644 index 0000000..11a6c54 --- /dev/null +++ b/views/admin_match.pug @@ -0,0 +1,53 @@ +//- vim:ts=4:sw=4: + +mixin show_ticket(ticket) + - var setup = SETUP_TABLE[ticket.setup_id] + tr + td= ticket.name + td= ticket.rating + td= setup.setup_name + td #{ticket.time} UTC + +mixin show_ticket_list(list) + table + thead + tr + th User + th Rating + th Title + th Age + tbody + each ticket in list + +show_ticket(ticket) + +doctype html +html + head + include head + title Matches + style. + div.buttons { margin-top: 8px } + body + include header + article + h1 Waiting Room - Admin + + p Time is #{new Date().toISOString()} + + h2 Live Tickets + if live_tickets.length > 0 + +show_ticket_list(live_tickets) + else + p No live tickets. + + h2 Fast Tickets + if fast_tickets.length > 0 + +show_ticket_list(fast_tickets) + else + p No fast tickets. + + h2 Slow Tickets + if slow_tickets.length > 0 + +show_ticket_list(slow_tickets) + else + p No slow tickets. diff --git a/views/header.pug b/views/header.pug index 454c35a..dfeef5c 100644 --- a/views/header.pug +++ b/views/header.pug @@ -6,6 +6,8 @@ header if user if ENABLE_FORUM a(href="/forum") Forum + if ENABLE_MATCHES + a(href="/games/match") Match a(href="/games/public") Public if user.waiting > 0 a(href="/games/active") Games (#{user.waiting}) diff --git a/views/match.pug b/views/match.pug new file mode 100644 index 0000000..504cef5 --- /dev/null +++ b/views/match.pug @@ -0,0 +1,71 @@ +//- vim:ts=4:sw=4: + +mixin show_ticket(ticket) + - var setup = SETUP_TABLE[ticket.setup_id] + label + input(type="checkbox" name="tickets" value=ticket.ticket_id) + case ticket.pace + when 1 + | #{EMOJI_LIVE} #{setup.setup_name} + when 2 + | #{EMOJI_FAST} #{setup.setup_name} + when 3 + | #{EMOJI_SLOW} #{setup.setup_name} + +mixin show_setup(setup) + label + input(type="checkbox" name="setups" value=setup.setup_id) + | #{setup.setup_name} + +mixin show_setup_list(list) + each setup in list + +show_setup(setup) + +doctype html +html + head + include head + title Matches + style. + label { display: block; margin: 2px 0; user-select: none } + div.group, details { margin: 6px 0 } + details > summary { user-select: none } + details > label { margin-left: 24px } + body + include header + article + h1 The Miraculous Match-making Machine + + p People go in one end; games come out the other. + + h2 Tickets + if tickets.length > 0 + form(method="post" action="/api/match/unqueue") + each ticket in tickets + +show_ticket(ticket) + if tickets.length > 7 + p + i Don't sign up for more games than you will be able to handle! + p + button(name="submit") ❌ Delete + else + p You are not queued for any matches. + + h2 Register + if limit + p.error= limit + else + form(method="post" action="/api/match/queue") + each title in TITLE_LIST + if title.setups.length > 2 + details + summary + u= title.title_name + +show_setup_list(title.setups) + else + div.group + +show_setup_list(title.setups) + p + button(name="pace" value=1) #{EMOJI_LIVE} Play Live + button(name="pace" value=2) #{EMOJI_FAST} Play Fast + button(name="pace" value=3) #{EMOJI_SLOW} Play Slow |