summaryrefslogtreecommitdiff
path: root/play.html
diff options
context:
space:
mode:
authorTor Andersson <tor@ccxvii.net>2021-05-01 00:48:44 +0200
committerTor Andersson <tor@ccxvii.net>2022-11-16 19:08:16 +0100
commit573b5bb43f409e6270fd243ff80a34ba2c727654 (patch)
treec78e49093b957fb073a4a7c26a3709e7b538d5ca /play.html
downloadjulius-caesar-573b5bb43f409e6270fd243ff80a34ba2c727654.tar.gz
caesar: Import Julius Caesar.
Diffstat (limited to 'play.html')
-rw-r--r--play.html319
1 files changed, 319 insertions, 0 deletions
diff --git a/play.html b/play.html
new file mode 100644
index 0000000..9285f6e
--- /dev/null
+++ b/play.html
@@ -0,0 +1,319 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta name="viewport" content="width=device-width, height=device-height, initial-scale=1">
+<meta charset="UTF-8">
+<title>JULIUS CAESAR</title>
+<link rel="icon" href="Vexilloid_of_the_Roman_Empire.png">
+<link rel="stylesheet" href="/fonts/fonts.css">
+<link rel="stylesheet" href="/common/grid.css">
+<link rel="stylesheet" href="/common/battle_abc.css">
+<link rel="stylesheet" href="blocks_simple.css">
+<link rel="stylesheet" href="blocks_columbia.css">
+<script defer src="/socket.io/socket.io.min.js"></script>
+<script defer src="/common/client.js"></script>
+<script defer src="data.js"></script>
+<script defer src="ui.js"></script>
+<style>
+
+.grid_center { background-color: #461145; }
+.grid_role { background-color: wheat; }
+.grid_log { background-color: wheat; }
+.grid_top { background-color: tan; }
+.grid_top.your_turn { background-color: orange; }
+.grid_top.disconnected { background-color: red; }
+.role_info { background-color: tan; }
+.one .role_name { background-color: salmon; }
+.two .role_name { background-color: #eb5; }
+
+/* CARDS */
+
+.card_back { background-image: url('cards/card_back.webp'); }
+.card_apollo { background-image: url('cards/card_apollo.webp'); }
+.card_jupiter { background-image: url('cards/card_jupiter.webp'); }
+.card_mars { background-image: url('cards/card_mars.webp'); }
+.card_mercury { background-image: url('cards/card_mercury.webp'); }
+.card_neptune { background-image: url('cards/card_neptune.webp'); }
+.card_pluto { background-image: url('cards/card_pluto.webp'); }
+.card_vulcan { background-image: url('cards/card_vulcan.webp'); }
+.card_12 { background-image: url('cards/card_12.webp'); }
+.card_13 { background-image: url('cards/card_13.webp'); }
+.card_21 { background-image: url('cards/card_21.webp'); }
+.card_22 { background-image: url('cards/card_22.webp'); }
+.card_23 { background-image: url('cards/card_23.webp'); }
+.card_31 { background-image: url('cards/card_31.webp'); }
+.card_32 { background-image: url('cards/card_32.webp'); }
+.card_41 { background-image: url('cards/card_41.webp'); }
+
+.card {
+ background-color: white;
+ width: 225px;
+ height: 350px;
+ border-radius: 12px;
+}
+.card.enabled:hover {
+ transform: scale(1.1);
+}
+
+.small_card {
+ background-color: white;
+ width: 90px;
+ height: 140px;
+ border-radius: 6px;
+}
+
+.small_card.prior {
+ filter: grayscale(100%);
+}
+
+.role_info {
+ display: flex;
+ justify-content: center;
+}
+
+/* BATTLE BOARD */
+
+.battle { background-color: tan; }
+.battle .battle_message { background-color: wheat; }
+.battle .battle_header { background-color: brown; color: white; font-weight: bold; }
+.battle .battle_separator { background-color: brown; }
+
+.battle_line.enemy .battle_menu_list { min-height: 0; }
+.battle_reserves > td > div { height: 75px; padding: 5px; }
+.battle_a_cell > div { min-width: 90px; padding: 5px 5px; }
+.battle_b_cell > div { min-width: 270px; padding: 5px 5px; }
+.battle_c_cell > div { min-width: 270px; padding: 5px 5px; }
+.battle_d_cell > div { min-width: 90px; padding: 5px 5px; }
+
+/* MAP WITH BLOCKS AND SPACES */
+
+.map {
+ position: relative;
+ width: 2475px;
+ height: 1275px;
+ background-image: url("map.webp");
+ background-size: cover;
+ box-shadow: none;
+}
+
+#turn {
+ position: absolute;
+ width: 75px;
+ height: 75px;
+ left: 51px;
+ border-radius: 12px;
+ border: 3px solid white;
+ box-shadow: 0 0 12px white;
+}
+#turn.year_705 { top: 384px; }
+#turn.year_706 { top: 301px; }
+#turn.year_707 { top: 218px; }
+#turn.year_708 { top: 135px; }
+#turn.year_709 { top: 51px; }
+
+.space {
+ position: absolute;
+ opacity: 0;
+ z-index: 1;
+ border: 5px solid white;
+}
+.space.city {
+ width: 60px;
+ height: 60px;
+ border-radius: 60px;
+}
+.space.sea {
+ width: 70px;
+ height: 70px;
+ border-radius: 70px;
+}
+.space.highlight {
+ cursor: pointer;
+ opacity: 0.8;
+ z-index: 9;
+}
+
+.blocks.hide_blocks {
+ display: none;
+}
+
+.map .block { position: absolute; z-index: 2; }
+.map .block.highlight { z-index: 3; }
+.map .block.selected { z-index: 4; }
+.map .block:hover { z-index: 5; }
+
+.block.highlight { cursor: pointer; }
+
+.simple-labels .block{ width: 48px; height: 48px; border-radius: 6px; }
+
+.simple-labels .block.Caesar { background-color: #b22; border: 2px solid #822; }
+.simple-labels .block.Pompeius { background-color: #eb2; border: 2px solid #862; }
+.simple-labels .block.Cleopatra { background-color: #09b; border: 2px solid #067; }
+.simple-labels .block.highlight { border: 2px solid white; }
+.simple-labels .block.selected { border: 2px solid yellow; }
+.simple-labels .block.moved { filter: grayscale(70%); }
+
+.columbia-labels .block{ width: 56px; height: 56px; border-radius: 6px; }
+
+.columbia-labels .block.Caesar { background-color: #c22; border: 3px solid #822; }
+.columbia-labels .block.Pompeius { background-color: #c91; border: 3px solid #862; }
+.columbia-labels .block.Cleopatra { background-color: #09a; border: 3px solid #067; }
+.columbia-labels .block.highlight { border: 3px solid white; }
+.columbia-labels .block.selected { border: 3px solid yellow; }
+.columbia-labels .block.moved { filter: grayscale(70%); }
+
+.columbia-labels .block.r0 { transform: rotate(0deg); }
+.columbia-labels .block.r1 { transform: rotate(-90deg); }
+.columbia-labels .block.r2 { transform: rotate(-180deg); }
+.columbia-labels .block.r3 { transform: rotate(-270deg); }
+
+.block { box-shadow: 0px 0px 4px 0px black; }
+
+.block {
+ transition-property: top, left, transform, filter;
+ transition-duration: 700ms, 700ms, 300ms, 300ms;
+ transition-timing-function: ease;
+}
+
+</style>
+</head>
+<body>
+
+<div class="status" id="status"></div>
+
+<div class="chat_window">
+<div class="chat_header">Chat</div>
+<div class="chat_text"></div>
+<form class="chat_form" action=""><input id="chat_input" autocomplete="off"></form>
+</div>
+
+<table class="battle">
+<tr>
+<th class="battle_header" colspan=4></th>
+<tr class="battle_reserves enemy">
+<td colspan=4><div id="ER"></div></td>
+<tr class="battle_line enemy">
+<td class="battle_a_cell"><div id="EA"></div></td>
+<td class="battle_b_cell"><div id="EB"></div></td>
+<td class="battle_c_cell"><div id="EC"></div></td>
+<td class="battle_d_cell"><div id="ED"></div></td>
+<tr class="battle_separator">
+<td colspan=4>
+<tr class="battle_line friendly">
+<td class="battle_a_cell"><div id="FA"></div></td>
+<td class="battle_b_cell"><div id="FB"></div></td>
+<td class="battle_c_cell"><div id="FC"></div></td>
+<td class="battle_d_cell"><div id="FD"></div></td>
+<tr class="battle_reserves friendly">
+<td colspan=4><div id="FR"></div></td>
+<tr>
+<th class="battle_message" colspan=4></th>
+</table>
+
+<div class="grid_window">
+
+ <div class="grid_top">
+
+ <div class="menu">
+ <div class="menu_title"><img src="/images/cog.svg"></div>
+ <div class="menu_popup">
+ <div class="menu_item" onclick="toggle_fullscreen()">Fullscreen</div>
+ <div class="menu_separator"></div>
+ <div class="menu_item" onclick="set_columbia_labels()">Columbia labels</div>
+ <div class="menu_item" onclick="set_simple_labels()">Simple labels</div>
+ <div class="menu_item" onclick="set_spread_layout()">Spread blocks</div>
+ <div class="menu_item" onclick="set_stack_layout()">Stack blocks</div>
+ <div class="menu_separator"></div>
+ <div class="menu_item" onclick="window.open('info/notes.html', '_blank')">Notes</div>
+ <div class="menu_item" onclick="window.open('info/rules.html', '_blank')">Rules</div>
+ <div class="menu_item" onclick="window.open('info/cards.html', '_blank')">Cards</div>
+ <div class="menu_item" onclick="window.open('info/blocks.html', '_blank')">Blocks</div>
+ <div class="menu_separator"></div>
+ <div class="menu_item" onclick="confirm_resign()">Resign</div>
+ <div class="menu_separator"></div>
+ <div class="menu_item" onclick="send_save()">&#x1F41E; Save</div>
+ <div class="menu_item" onclick="send_restore()">&#x1F41E; Restore</div>
+ <div class="menu_separator"></div>
+ <div class="menu_item" onclick="send_restart('Historical')">&#x26a0; Restart</div>
+ </div>
+ </div>
+
+ <div class="image_button" onclick="toggle_blocks()"><img src="/images/earth-africa-europe.svg"></div>
+ <div class="image_button" onclick="toggle_log()"><img src="/images/scroll-quill.svg"></div>
+ <div class="image_button chat_button" onclick="toggle_chat()"><img src="/images/chat-bubble.svg"></div>
+
+ <div id="prompt" class="prompt">Connecting...</div>
+
+ <button id="surprise_button" onclick="select_surprise()" class="hide">Surprise!</button>
+ <button id="pass_button" onclick="select_pass()" class="hide">Pass</button>
+ <button id="undo_button" onclick="select_undo()" class="hide">Undo</button>
+
+ </div>
+
+ <div class="grid_role">
+
+ <div class="role one">
+ <div class="role_vp" id="caesar_vp">1 VP</div>
+ <div class="role_name">Caesar (<span class="role_user">$USER</span>)</div>
+ <div class="role_info"><div class="small_card card_back" id="caesar_card"></div></div>
+ </div>
+
+ <div class="role two">
+ <div class="role_vp" id="pompeius_vp">7 VP</div>
+ <div class="role_name">Pompeius (<span class="role_user">$USER</span>)</div>
+ <div class="role_info"><div class="small_card card_back" id="pompeius_card"></div></div>
+ </div>
+
+ </div>
+
+ <div class="grid_log">
+ <div class="log" id="log"></div>
+ </div>
+
+ <div class="grid_center">
+
+ <div id="map" class="map">
+ <div id="blocks" class="blocks">
+ <div id="secret_blocks"></div>
+ <div id="known_blocks"></div>
+ </div>
+ <div id="spaces"></div>
+ <div id="turn" class="year_705"></div>
+ </div>
+
+ <div class="hand">
+
+<div id="card+1" class="card card_apollo" onclick="select_card(1)"></div>
+<div id="card+2" class="card card_jupiter" onclick="select_card(2)"></div>
+<div id="card+3" class="card card_mars" onclick="select_card(3)"></div>
+<div id="card+4" class="card card_mercury" onclick="select_card(4)"></div>
+<div id="card+5" class="card card_neptune" onclick="select_card(5)"></div>
+<div id="card+6" class="card card_pluto" onclick="select_card(6)"></div>
+<div id="card+7" class="card card_vulcan" onclick="select_card(7)"></div>
+<div id="card+8" class="card card_41" onclick="select_card(8)"></div>
+<div id="card+9" class="card card_32" onclick="select_card(9)"></div>
+<div id="card+10" class="card card_32" onclick="select_card(10)"></div>
+<div id="card+11" class="card card_31" onclick="select_card(11)"></div>
+<div id="card+12" class="card card_31" onclick="select_card(12)"></div>
+<div id="card+13" class="card card_31" onclick="select_card(13)"></div>
+<div id="card+14" class="card card_23" onclick="select_card(14)"></div>
+<div id="card+15" class="card card_23" onclick="select_card(15)"></div>
+<div id="card+16" class="card card_23" onclick="select_card(16)"></div>
+<div id="card+17" class="card card_23" onclick="select_card(17)"></div>
+<div id="card+18" class="card card_22" onclick="select_card(18)"></div>
+<div id="card+19" class="card card_22" onclick="select_card(19)"></div>
+<div id="card+20" class="card card_22" onclick="select_card(20)"></div>
+<div id="card+21" class="card card_22" onclick="select_card(21)"></div>
+<div id="card+22" class="card card_21" onclick="select_card(22)"></div>
+<div id="card+23" class="card card_21" onclick="select_card(23)"></div>
+<div id="card+24" class="card card_21" onclick="select_card(24)"></div>
+<div id="card+25" class="card card_13" onclick="select_card(25)"></div>
+<div id="card+26" class="card card_12" onclick="select_card(26)"></div>
+<div id="card+27" class="card card_12" onclick="select_card(27)"></div>
+
+ </div>
+
+ </div>
+
+</div>
+</body>