aboutsummaryrefslogtreecommitdiff
path: root/webAO/client.html
diff options
context:
space:
mode:
Diffstat (limited to 'webAO/client.html')
-rw-r--r--webAO/client.html235
1 files changed, 162 insertions, 73 deletions
diff --git a/webAO/client.html b/webAO/client.html
index 69e17e9..dde43e0 100644
--- a/webAO/client.html
+++ b/webAO/client.html
@@ -5,17 +5,32 @@
<title>Attorney Online session</title>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
+ <meta name="description" content="An off-the-cuff courtroom drama simulator">
+ <meta name="author" content="stonedDiscord">
+
+ <meta property="og:title" content="Attorney Online">
+ <meta property="og:description" content="Attorney Online is an online version of the world-renowned courtroom drama simulator that allows you to create and play out cases in an off-the-cuff format.">
+ <meta property="og:type" content="website">
+ <meta property="og:url" content="http://web.aceattorneyonline.com/">
+ <meta property="og:image" content="https://repository-images.githubusercontent.com/78860508/89fcba80-aafd-11e9-80db-c5b10c01aba9">
+
+ <meta property="twitter:card" content="summary_large_image">
+ <meta property="twitter:title" content="Attorney Online">
+ <meta property="twitter:description" content="Attorney Online is an online version of the world-renowned courtroom drama simulator that allows you to create and play out cases in an off-the-cuff format.">
+ <meta property="twitter:url" content="http://web.aceattorneyonline.com/">
+ <meta property="twitter:image" content="https://repository-images.githubusercontent.com/78860508/89fcba80-aafd-11e9-80db-c5b10c01aba9">
<meta http-equiv="Content-Security-Policy" content="script-src-elem 'self' 'unsafe-inline' https://ajax.googleapis.com;
script-src 'self' 'unsafe-inline' 'unsafe-eval' https://ajax.googleapis.com;
style-src-elem 'self' 'unsafe-inline' https://golden-layout.com;
style-src 'self' 'unsafe-inline' https://golden-layout.com;
- img-src 'self' data: https://webao.animatedchatroom.net https://s3.wasabisys.com;
- connect-src 'self' ws: https://webao.animatedchatroom.net https://s3.wasabisys.com;
- media-src 'self' https://webao.animatedchatroom.net https://s3.wasabisys.com;">
+ img-src 'self' data: file: *;
+ connect-src 'self' ws: file: *;
+ media-src 'self' file: *;">
- <link rel="stylesheet" type="text/css" href="styles/client.css?v=1.0.0" id="client_stylesheet">
- <link rel="stylesheet" type="text/css" href="styles/default.css?v=1.0.0" id="client_theme">
+ <link rel="stylesheet" type="text/css" href="styles/client.css?v=1.0.2" id="client_stylesheet">
+ <link rel="stylesheet" type="text/css" href="styles/default.css?v=1.0.1" id="client_theme">
+ <link rel="stylesheet" type="text/css" href="styles/chatbox/aa.css?v=1.0.1" id="chatbox_theme">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<link type="text/css" rel="stylesheet" href="golden/css/goldenlayout.css" />
<link type="text/css" rel="stylesheet"
@@ -23,7 +38,7 @@
<script src="lib/jdataview.min.js"></script>
<script src="lib/gify.min.js"></script>
<script src="ui.b.js"></script>
- <script src="client.b.js?v=1.0.1"></script>
+ <script src="client.b.js?v=1.0.2"></script>
</head>
<body>
@@ -35,9 +50,10 @@
</div>
<div id="client_charselect">
<p>Choose your character</p>
- <button onclick="pickChar(1001)">Or spectate</button>
- <br>
- <br>
+ <button onclick="pickChar(-1)">Or spectate</button>
+ <br><br>
+ <input id="client_charactersearch" placeholder="Search" oninput="chartable_filter(event)"></input>
+ <br><br>
<div id="client_chartable"></div>
</div>
<div id="client_error" class="error" style="display: none">
@@ -55,20 +71,24 @@
<div id="client_background">
<div id="client_gamewindow">
<img id="client_court" alt="Courtroom backdrop" onerror="imgError(this);">
- <img id="client_pair_char" alt="Paired character" style="display: none;" onerror="charError(this);">
+ <img id="client_pair_char" alt="Paired character" onerror="charError(this);">
<img id="client_char" alt="Character" onerror="charError(this);">
<img id="client_bench">
<img id="client_fg" alt="Various overlay" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNkYAAAAAYAAjCB0C8AAAAASUVORK5CYII=">
<img id="client_evi" src="" alt="Character Evidence" onerror="imgError(this);">
+ <img id="client_testimony" alt="Testimony overlay" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNkYAAAAAYAAjCB0C8AAAAASUVORK5CYII=" onerror="imgError(this);">
<img id="client_shout" alt="Shout overlay" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNkYAAAAAYAAjCB0C8AAAAASUVORK5CYII=">
- <div id="client_chatcontainer">
- <div id="client_name"></div>
+ <div id="client_chatcontainer" style="font-size: 12px; opacity: 0;">
+ <div id="client_chatdecoration"></div>
+ <div id="client_name">
+ <p id="client_inner_name"></p>
+ </div>
<div id="client_chat">
<p id="client_inner_chat"></p>
- <div id="client_chatwaiting">&#9654;</div>
+ <div id="client_chatwaiting">&#9658;</div>
</div>
</div>
- <img id="client_testimony" alt="Testimony overlay" style="display: none;" onerror="imgError(this);">
+ <div id="client_trackstatus" style="display: none;"><p id="client_trackstatustext">None</p></div>
</div>
</div>
<div id="client_iccontrols">
@@ -86,7 +106,8 @@
<div id="client_emo">
</div>
<br>
- <div id="client_buttons">
+ <div id="character_options">
+ <div id="emote_options">
<button id="button_1" alt="Hold it!" class="client_button" onclick="toggleShout(1)">Hold it!</button>
<button id="button_2" alt="OBJECTION!" class="client_button"
onclick="toggleShout(2)">OBJECTION!</button>
@@ -108,9 +129,59 @@
<input type="checkbox" id="sendpreanim" name="sendpreanim" value="sendpreanim">
<br>
<br>
- <button id="button_flip" alt="Flip" class="client_button" onclick="toggleFlip()">Flip</button>
- <button id="button_effect_1" alt="Flash" class="client_button" onclick="toggleEffect(1)">Flash</button>
- <button id="button_effect_2" alt="Shake" class="client_button" onclick="toggleEffect(2)">Shake</button>
+ <button id="button_flip" alt="Flip" class="client_button" onclick="toggleEffect(this)" style="display: none">Flip</button>
+ <button id="button_flash" alt="Flash" class="client_button" onclick="toggleEffect(this)">Flash</button>
+ <button id="button_shake" alt="Shake" class="client_button" onclick="toggleEffect(this)" style="display: none">Shake</button>
+ </div>
+ <br>
+ <br>
+ <div id="character_options">
+ <label for="role_select">Role:</label>
+ <select id="role_select" name="role_select" onchange="changeRoleOOC()">
+ <option value="def">Defense</option>
+ <option value="pro">Prosecution</option>
+ <option value="jud">Judge</option>
+ <option value="wit">Witness</option>
+ <option value="hld">Helper Defense</option>
+ <option value="hlp">Helper Prosecution</option>
+ <option value="jur">Jury</option>
+ <option value="sea">Seance</option>
+ </select>
+ <br>
+ <br>
+ <button id="char_change" alt="Change" class="client_button hover_button" onclick="changeCharacter()">Change
+ Character</button>
+ <button id="char_random" alt="Random" class="client_button hover_button"
+ onclick="randomCharacterOOC()">Random Character</button>
+ <br>
+ <br>
+ <span id="pairing" style="display: none">
+ <label for="pair_select">Pairing partner:</label>
+ <select name="pair_select" id="pair_select">
+ <option value="-1">None</option>
+ </select>
+ <br>
+ <label for="pair_offset">Pairing offset:</label>
+ <input type="range" name="pair_offset" id="pair_offset" min="-100" max="100" value="0">
+ </span>
+ <br>
+ <br>
+ <span id="cccc" style="display: none">
+ <label for="ic_chat_name">Custom Showname:</label>
+ <input id="ic_chat_name" name="ic_chat_name" type="text">
+ <br>
+ <label for="showname">Show others:</label>
+ <input id="showname" name="showname" type="checkbox" onclick="showname_click()">
+ <br>
+ <br>
+ <label for="check_nonint">Noninterrupting Preanimation:</label>
+ <input type="checkbox" name="check_nonint" id="check_nonint">
+ </span>
+ <span id="2.7" style="display: none">
+ <label for="check_nonint">Looping SFX:</label>
+ <input type="checkbox" name="check_loopsfx" id="check_loopsfx">
+ </span>
+ </div>
</div>
<fieldset style="margin:10px;">
<legend>Actions</legend>
@@ -153,15 +224,6 @@
No judge actions available for this role.
</span>
<br>
- <span id="pairing" style="display: none">
- <label for="pair_select">Pairing partner:</label>
- <select name="pair_select" id="pair_select">
- <option value="-1">None</option>
- </select>
- <label for="pair_offset">Pairing offset:</label>
- <input type="range" name="pair_offset" id="pair_offset" min="-100" max="100" value="0">
- </span>
- <br>
<br>
<span id="muting">
<label for="mute_select" style="float: left">Mute a character: </label>
@@ -218,7 +280,7 @@
<select id="bg_select" name="bg_select" onchange="updateBackgroundPreview()"
style="margin-top:10px"></select>
<br>
- <input id="bg_filename" name="bg_filename" class="short" type="text" style="margin-top:10px">
+ <input id="bg_filename" name="bg_filename" type="text" style="margin-top:10px">
<br>
<br>
<button id="bg_change" alt="Change" class="client_button hover_button"
@@ -232,18 +294,19 @@
<meta name="frame-title" lang="en" content="Evidence">
<fieldset style="text-align: left; display: flex; flex-direction: column;">
<legend>Information</legend>
- <div style="display: flex;">
+ <hr>
+ <div style="display: flex;">
<img id="evi_preview" class="evi_icon" src="" alt="Evidence Icon" onerror="imgError(this);">
<div id="evi_options">
+ <input id="evi_name" name="evi_name" type="text" placeholder="Evidence name">
+ <br>
<label for="evi_filename">Icon:</label>
<select id="evi_select" name="evi_select" onchange="updateEvidenceIcon()"></select>
- <input id="evi_filename" name="evi_filename" class="short" type="text"
+ <input id="evi_filename" name="evi_filename" type="text"
placeholder="Custom filename">
- <br>
- <label for="evi_name">Name:</label>
- <input id="evi_name" name="evi_name" class="short" type="text" placeholder="Evidence name">
</div>
</div>
+ <hr>
<div style="display: flex; padding-top: 5px;">
<textarea id="evi_desc" name="evi_desc" rows="2" cols="20"
placeholder="Evidence description"></textarea>
@@ -262,69 +325,91 @@
<br>
<div id="evidences"></div>
<br>
- <button id="button_present" alt="Present" class="client_button" onclick="togglePresent()"
- style="letter-spacing: 3px; width: 8em;"><i>Present</i></button>
+ <button id="button_present" alt="Present" class="client_button" onclick="toggleEffect(this)">Present</button>
</span>
<!-- Settings section -->
<span class="menu_content" id="content_3">
<meta name="frame-title" lang="en" content="Settings">
- <label for="OOC_name">Server chat name:</label>
- <input id="OOC_name" name="OOC_name" class="short" type="text">
- <label for="role_select">Role:</label>
- <select id="role_select" name="role_select" onchange="changeRoleOOC()">
- <option value="def">Defense</option>
- <option value="pro">Prosecution</option>
- <option value="jud">Judge</option>
- <option value="wit">Witness</option>
- <option value="hld">Helper Defense</option>
- <option value="hlp">Helper Prosecution</option>
- <option value="jur">Jury</option>
- <option value="sea">Seance</option>
- </select>
- <br>
- <br>
- <span id="cccc" style="display: none">
- <label for="ic_chat_name">Custom Showname:</label>
- <input id="ic_chat_name" name="ic_chat_name" class="short" type="text">
- <label for="showname">Show others:</label>
- <input id="showname" name="showname" type="checkbox" onclick="showname_click()">
- </span>
- <br>
- <br>
+ <h2>Volume</h2>
<p>Music</p>
<audio id="client_musicaudio" onvolumechange="changeMusicVolume()" controls loop></audio>
<p>SFX</p>
- <input id="client_svolume" class="long" type="range" min="0" max="1" value="1" step="0.01"
- onchange="changeSFXVolume()">
+ <audio id="client_sfxaudio" onvolumechange="changeSFXVolume()" controls></audio>
+
+ <p>Shouts</p>
+ <audio id="client_shoutaudio" onvolumechange="changeShoutVolume()" controls></audio>
+
+ <p>Testimony/Guilty</p>
+ <audio id="client_testimonyaudio" onvolumechange="changeTestimonyVolume()" controls></audio>
<p>Blip</p>
<input id="client_bvolume" class="long" type="range" min="0" max="1" value="1" step="0.01"
onchange="changeBlipVolume()">
<br>
<br>
- <button id="char_change" alt="Change" class="client_button hover_button" onclick="changeCharacter()">Change
- Character</button>
- <button id="char_random" alt="Random" class="client_button hover_button"
- onclick="randomCharacterOOC()">Random Character</button>
- <br>
- <br>
- <label for="client_themeselect">Theme:</label>
+ <label for="client_themeselect">Menu theme:</label>
<select id="client_themeselect" name="client_themeselect" onchange="reloadTheme()">
<option value="default" selected>Default</option>
<option value="classic">Classic</option>
<option value="soj">DD / SoJ</option>
- <option value="cyber">Cyber (WIP)</option>
+ <option value="cyber">Cyber</option>
+ <option value="trilogy">Trilogy</option>
</select>
<br>
<br>
+ <label for="client_chatboxselect">Chatbox theme:</label>
+ <select id="client_chatboxselect" name="client_chatboxselect" onchange="setChatbox(this.value)">
+ <option value="dynamic" selected>Use characters</option>
+ <option value="aa">AA</option>
+ <option value="chatdd">DD / SoJ</option>
+ <option value="dgs">DGS</option>
+ <option value="chatplvsaa">PL vs AA</option>
+ <option value="trilogy">Trilogy</option>
+ <option value="chatfuture">Future theme</option>
+ <option value="legacy">old webAO</option>
+ <option value="chat999">999</option>
+ <option value="dr1">DR 1</option>
+ <option value="chatdr2">DR 2</option>
+ <option value="drv3">DR 3</option>
+ <option value="drae">DR: AE</option>
+ <option value="homestuck">Homestuck</option>
+ <option value="n64zelda">N64 Zelda</option>
+ <option value="papermario">Paper Mario</option>
+ <option value="chatp3">Persona 3</option>
+ <option value="p4">Persona 4</option>
+ <option value="halla">VA-11 HALL-A</option>
+ <option value="yakuza">Yakuza</option>
+ <option value="yttd">YTTD</option>
+ </select>
+ <!--
+ <br>
+ <br>
+ <button id="client_modcall" onclick="modcall_test()">Test modcall</button>
+ -->
+ <br>
+ <br>
<p>Ini editing (experimental)</p>
<label for="client_ininame">Iniedit Character:</label>
<select type="text" id="client_ininame" name="client_ininame"></select>
<button id="client_inichange" onclick="iniedit()">Change</button>
<br>
<br>
+ <p>16:9 viewport (experimental)</p>
+ <label for="client_hdviewport">Enable:</label>
+ <input type="checkbox" id="client_hdviewport" id="client_hdviewport" onclick="switchAspectRatio()">
+ <br>
+ <label for="client_hdviewport_offset">Offset chatbox:</label>
+ <input type="checkbox" id="client_hdviewport_offset" id="client_hdviewport_offset" onclick="switchChatOffset()">
+ <br>
+ <br>
+ <label for="client_callwords">Callwords:</label>
+ <br>
+ <textarea id="client_callwords" name="client_callwords" rows="4" cols="10"
+ placeholder="Put 1 callword per line here" onchange="changeCallwords()"></textarea>
+ <br>
+ <br>
<span style="color:red">&#8595; Only touch these settings if you know what you are doing. &#8595;</span>
<br>
<br>
@@ -345,15 +430,15 @@
<br>
<br>
<label for="bg_command">Change background command:</label>
- <input id="bg_command" name="bg_command" class="short" type="text" value="bg $1">
+ <input id="bg_command" name="bg_command" type="text" value="bg $1">
<br>
<br>
<label for="role_command">Change role command:</label>
- <input id="role_command" name="role_command" class="short" type="text" value="pos $1">
+ <input id="role_command" name="role_command" type="text" value="pos $1">
<br>
<br>
<label for="randomchar_command">Random character command:</label>
- <input id="randomchar_command" name="randomchar_command" class="short" type="text" value="randomchar">
+ <input id="randomchar_command" name="randomchar_command" type="text" value="randomchar">
<br>
<br>
<span style="color:blue">Changing these settings will save them as a cookie.<br>
@@ -372,6 +457,7 @@
<a href="https://github.com/oldmud0">@oldmud0</a> and
<a href="https://github.com/qubrick">Qubrick</a>.</p>
<p>Special thanks to Aleks for reverse engineering the original Delphi client written by FanatSors.</p>
+ <p><a href="styles/igiari/readme.txt">Igiari font by Caveras</a></p>
</span>
</div>
</template>
@@ -387,13 +473,16 @@
<meta name="frame-title" lang="en" content="Server">
<div style="height: 100%; display: flex; flex-direction: column;">
<textarea id="client_ooclog" style="flex: 1 auto" readonly></textarea>
- <input id="client_oocinputbox" class="long" type="text" onkeypress="onOOCEnter(event)">
+ <span style="display: inline-block; white-space: nowrap;">
+ <input id="OOC_name" style="width: 15%;" name="OOC_name" type="text">
+ <input id="client_oocinputbox" style="width: 85%;" type="text" onkeypress="onOOCEnter(event)">
+ </span>
</div>
</template>
<template id="music">
<meta name="frame-title" lang="en" content="Music">
- <input id="client_musicsearch" style="display:none"></input>
+ <input id="client_musicsearch" placeholder="Search" oninput="musiclist_filter(event)"></input>
<select id="client_musiclist" size="5" onchange="musiclist_click(event)">
</select>
</template>