blob: bfb0cb8919f8bc545917ac7610f9c6b61e0be73a (
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
107
108
109
110
111
112
|
//- vim:ts=4:sw=4:
doctype html
html
head
include head
+social(game.title_name,
"Play " + game.title_name + " with " + players.map(x=>x.name).join(" and ") + ".",
game.title_id)
title= game.title_name
style.
th,td { border: var(--table-border); }
a.red { text-decoration: none; color: var(--color-red); font-size: 15px; float: right; }
a.green { text-decoration: none; color: var(--color-green); font-size: 15px; float: right; }
td, th { border: var(--thin-border); }
td { width: 180px; }
.hide { display: none; }
td.is_invite { background-color: var(--color-table-invite); }
td.is_active { background-color: var(--color-table-active); }
td.enemy { background-color: var(--color-table-danger); }
td.enemy::before { content: "\1f6ab "; font-size: 15px; }
script.
let game = !{ JSON.stringify(game) }
let roles = !{ JSON.stringify(roles) }
let players = !{ JSON.stringify(players) }
let user_id = !{ user ? user.user_id : 0 }
let whitelist = !{ JSON.stringify(whitelist) }
let blacklist = !{ JSON.stringify(blacklist) }
let friends = !{ JSON.stringify(friends) }
let limit = !{ !!limit }
let ready = !{ ready }
script(src="/join.js")
body
include header
article
if game.scenario === "Standard"
h1 #{game.title_name}
else
h1 #{game.title_name} - #{game.scenario}
div.logo
+gamecover(game.title_id)
if limit && game.status < 1
p.error= limit
if !user
p.error You are not logged in!
p.error#error
if game.owner_id
if game.is_private
p Created #{game.ctime} by <a class="black" href="/user/#{game.owner_name}">#{game.owner_name}</a> (private).
else
p Created #{game.ctime} by <a class="black" href="/user/#{game.owner_name}">#{game.owner_name}</a>.
else
p Created #{game.ctime}.
if game.status > 1
p Finished #{game.mtime}.
else if game.status > 0
p Last move #{game.mtime}.
unless game.human_options === "None"
p Options: #{game.human_options}.
case game.pace
when 1
p #{EMOJI_LIVE} Live!
when 2
p #{EMOJI_FAST} Fast – many moves per day.
when 3
p #{EMOJI_SLOW} Slow – one move per day.
if game.notice
p
i= game.notice
if user
dialog(id="invite")
| Invite a friend:
br
input(id="invite_user" type="text" list="friends" onchange="send_invite()")
datalist(id="friends")
if friends
each who in friends
option= who
br
button(onclick="send_invite()") Invite
button(onclick="hide_invite()") Cancel
p
table
tbody
each role in roles
tr
th.w(id="role_"+role.replace(/ /g, "_")+"_name")= role
td(id="role_"+role.replace(/ /g, "_")) -
tfoot
tr
td#message(colspan=2) -
p
button.hide#delete_button(onclick="confirm_delete()") Delete
button.hide#start_button(onclick="start()" disabled) Start
if !user && !ready
p <a href="/login">Login</a> or <a href="/signup">sign up</a> to play.
if user && user.user_id === 1
p
- for (let snap_id = rewind; snap_id > 0 && snap_id > rewind-5; --snap_id)
a(href="/admin/rewind/" + game.game_id + "/" + snap_id) REWIND #{snap_id}
br
|