From 319561b177d95f88c5297435371fc3f4111deddc Mon Sep 17 00:00:00 2001 From: stonedDiscord Date: Mon, 1 Aug 2022 23:01:46 +0200 Subject: declutter the controls a little --- webAO/dom/toggleElement.js | 13 +++++++++++++ 1 file changed, 13 insertions(+) create mode 100644 webAO/dom/toggleElement.js (limited to 'webAO/dom') diff --git a/webAO/dom/toggleElement.js b/webAO/dom/toggleElement.js new file mode 100644 index 0000000..efddabf --- /dev/null +++ b/webAO/dom/toggleElement.js @@ -0,0 +1,13 @@ +/** + * Hides and shows any html element + * @param {string} element_id the id of the element to toggle + */ +export function toggleElement(element_id) { + const element = document.getElementById(element_id); + if (element.style.display !== 'none') { + element.style.display = 'none'; + } else { + element.style.display = 'block'; + } +} +window.toggleElement = toggleElement; -- cgit From 67314a8bc22ea198b8e3de788282a0ca0151cb1e Mon Sep 17 00:00:00 2001 From: Caleb Date: Sun, 4 Sep 2022 00:02:19 -0400 Subject: Several functions moved --- webAO/dom/changeBackgroundOOC.ts | 27 +++++++++++++++++++++++++++ webAO/dom/musicListClick.ts | 21 +++++++++++++++++++++ webAO/dom/musicListFilter.ts | 24 ++++++++++++++++++++++++ webAO/dom/muteListClick.ts | 20 ++++++++++++++++++++ webAO/dom/onOOCEnter.ts | 16 ++++++++++++++++ webAO/dom/onReplayGo.ts | 9 +++++++++ webAO/dom/resetOffset.ts | 5 +++++ webAO/dom/showNameClick.ts | 26 ++++++++++++++++++++++++++ webAO/dom/updateActionCommands.ts | 27 +++++++++++++++++++++++++++ webAO/dom/updateBackgroundPreview.ts | 29 +++++++++++++++++++++++++++++ 10 files changed, 204 insertions(+) create mode 100644 webAO/dom/changeBackgroundOOC.ts create mode 100644 webAO/dom/musicListClick.ts create mode 100644 webAO/dom/musicListFilter.ts create mode 100644 webAO/dom/muteListClick.ts create mode 100644 webAO/dom/onOOCEnter.ts create mode 100644 webAO/dom/onReplayGo.ts create mode 100644 webAO/dom/resetOffset.ts create mode 100644 webAO/dom/showNameClick.ts create mode 100644 webAO/dom/updateActionCommands.ts create mode 100644 webAO/dom/updateBackgroundPreview.ts (limited to 'webAO/dom') diff --git a/webAO/dom/changeBackgroundOOC.ts b/webAO/dom/changeBackgroundOOC.ts new file mode 100644 index 0000000..abf3a97 --- /dev/null +++ b/webAO/dom/changeBackgroundOOC.ts @@ -0,0 +1,27 @@ +import { client } from "../client"; +import queryParser from "../utils/queryParser"; + +let { mode } = queryParser(); + +/** + * Change background via OOC. + */ +export function changeBackgroundOOC() { + const selectedBG = document.getElementById("bg_select"); + const changeBGCommand = "bg $1"; + const bgFilename = document.getElementById("bg_filename"); + + let filename = ""; + if (selectedBG.selectedIndex === 0) { + filename = bgFilename.value; + } else { + filename = selectedBG.value; + } + + if (mode === "join") { + client.sendOOC(`/${changeBGCommand.replace("$1", filename)}`); + } else if (mode === "replay") { + client.sendSelf(`BN#${filename}#%`); + } +} +window.changeBackgroundOOC = changeBackgroundOOC; \ No newline at end of file diff --git a/webAO/dom/musicListClick.ts b/webAO/dom/musicListClick.ts new file mode 100644 index 0000000..1eb6619 --- /dev/null +++ b/webAO/dom/musicListClick.ts @@ -0,0 +1,21 @@ +import { client } from "../client"; +/** + * Triggered when an item on the music list is clicked. + * @param {MouseEvent} event + */ +export function musiclist_click(_event: Event) { + const playtrack = (( + document.getElementById("client_musiclist") + )).value; + client.sendMusicChange(playtrack); + + // This is here so you can't actually select multiple tracks, + // even though the select tag has the multiple option to render differently + const musiclist_elements = (( + document.getElementById("client_musiclist") + )).selectedOptions; + for (let i = 0; i < musiclist_elements.length; i++) { + musiclist_elements[i].selected = false; + } +} +window.musiclist_click = musiclist_click; \ No newline at end of file diff --git a/webAO/dom/musicListFilter.ts b/webAO/dom/musicListFilter.ts new file mode 100644 index 0000000..c44978d --- /dev/null +++ b/webAO/dom/musicListFilter.ts @@ -0,0 +1,24 @@ +import { client } from "../client"; +/** + * Triggered when the music search bar is changed + * @param {MouseEvent} event + */ +export function musiclist_filter(_event: Event) { + const musiclist_element = ( + document.getElementById("client_musiclist") + ); + const searchname = (( + document.getElementById("client_musicsearch") + )).value; + + musiclist_element.innerHTML = ""; + + for (const trackname of client.musics) { + if (trackname.toLowerCase().indexOf(searchname.toLowerCase()) !== -1) { + const newentry = document.createElement("OPTION"); + newentry.text = trackname; + musiclist_element.options.add(newentry); + } + } +} +window.musiclist_filter = musiclist_filter; \ No newline at end of file diff --git a/webAO/dom/muteListClick.ts b/webAO/dom/muteListClick.ts new file mode 100644 index 0000000..6ae3eea --- /dev/null +++ b/webAO/dom/muteListClick.ts @@ -0,0 +1,20 @@ +import { client } from "../client"; +/** + * Triggered when a character in the mute list is clicked + * @param {MouseEvent} event + */ +export function mutelist_click(_event: Event) { + const mutelist = document.getElementById("mute_select"); + const selected_character = mutelist.options[mutelist.selectedIndex]; + + if (client.chars[selected_character.value].muted === false) { + client.chars[selected_character.value].muted = true; + selected_character.text = `${client.chars[selected_character.value].name + } (muted)`; + console.info(`muted ${client.chars[selected_character.value].name}`); + } else { + client.chars[selected_character.value].muted = false; + selected_character.text = client.chars[selected_character.value].name; + } +} +window.mutelist_click = mutelist_click; \ No newline at end of file diff --git a/webAO/dom/onOOCEnter.ts b/webAO/dom/onOOCEnter.ts new file mode 100644 index 0000000..a24928b --- /dev/null +++ b/webAO/dom/onOOCEnter.ts @@ -0,0 +1,16 @@ +import {client} from '../client' +/** + * Triggered when the Return key is pressed on the out-of-character chat input box. + * @param {KeyboardEvent} event + */ + export function onOOCEnter(event: KeyboardEvent) { + if (event.keyCode === 13) { + client.sendOOC( + (document.getElementById("client_oocinputbox")).value + ); + (document.getElementById("client_oocinputbox")).value = + ""; + } + } + window.onOOCEnter = onOOCEnter; + \ No newline at end of file diff --git a/webAO/dom/onReplayGo.ts b/webAO/dom/onReplayGo.ts new file mode 100644 index 0000000..c13a8e6 --- /dev/null +++ b/webAO/dom/onReplayGo.ts @@ -0,0 +1,9 @@ +import { client } from "../client"; +/** + * Triggered when the user click replay GOOOOO + * @param {KeyboardEvent} event + */ + export function onReplayGo(_event: Event) { + client.handleReplay(); + } + window.onReplayGo = onReplayGo; \ No newline at end of file diff --git a/webAO/dom/resetOffset.ts b/webAO/dom/resetOffset.ts new file mode 100644 index 0000000..2cf8197 --- /dev/null +++ b/webAO/dom/resetOffset.ts @@ -0,0 +1,5 @@ +export function resetOffset(_event: Event) { + (document.getElementById("pair_offset")).value = "0"; + (document.getElementById("pair_y_offset")).value = "0"; + } + window.resetOffset = resetOffset; \ No newline at end of file diff --git a/webAO/dom/showNameClick.ts b/webAO/dom/showNameClick.ts new file mode 100644 index 0000000..265f6c8 --- /dev/null +++ b/webAO/dom/showNameClick.ts @@ -0,0 +1,26 @@ +import setCookie from "../utils/setCookie"; + + +/** + * Triggered when the showname checkboc is clicked + * @param {MouseEvent} event + */ +export function showname_click(_event: Event) { + setCookie( + "showname", + String((document.getElementById("showname")).checked) + ); + setCookie( + "ic_chat_name", + (document.getElementById("ic_chat_name")).value + ); + + const css_s = document.getElementById("nameplate_setting"); + + if ((document.getElementById("showname")).checked) { + css_s.href = "styles/shownames.css"; + } else { + css_s.href = "styles/nameplates.css"; + } +} +window.showname_click = showname_click; diff --git a/webAO/dom/updateActionCommands.ts b/webAO/dom/updateActionCommands.ts new file mode 100644 index 0000000..9d0bd82 --- /dev/null +++ b/webAO/dom/updateActionCommands.ts @@ -0,0 +1,27 @@ + +/** + * Update evidence icon. + */ +export function updateActionCommands(side: string) { + if (side === "jud") { + document.getElementById("judge_action")!.style.display = "inline-table"; + document.getElementById("no_action")!.style.display = "none"; + } else { + document.getElementById("judge_action")!.style.display = "none"; + document.getElementById("no_action")!.style.display = "inline-table"; + } + + // Update role selector + for ( + let i = 0, + role_select = document.getElementById("role_select"); + i < role_select.options.length; + i++ + ) { + if (side === role_select.options[i].value) { + role_select.options.selectedIndex = i; + return; + } + } +} +window.updateActionCommands = updateActionCommands; \ No newline at end of file diff --git a/webAO/dom/updateBackgroundPreview.ts b/webAO/dom/updateBackgroundPreview.ts new file mode 100644 index 0000000..e55bf60 --- /dev/null +++ b/webAO/dom/updateBackgroundPreview.ts @@ -0,0 +1,29 @@ +import { AO_HOST } from "../client"; + +/** + * Update background preview. + */ +export function updateBackgroundPreview() { + const background_select = ( + document.getElementById("bg_select") + ); + const background_filename = ( + document.getElementById("bg_filename") + ); + const background_preview = ( + document.getElementById("bg_preview") + ); + + if (background_select.selectedIndex === 0) { + background_filename.style.display = "initial"; + background_preview.src = `${AO_HOST}background/${encodeURI( + background_filename.value.toLowerCase() + )}/defenseempty.png`; + } else { + background_filename.style.display = "none"; + background_preview.src = `${AO_HOST}background/${encodeURI( + background_select.value.toLowerCase() + )}/defenseempty.png`; + } +} +window.updateBackgroundPreview = updateBackgroundPreview; \ No newline at end of file -- cgit From 1e3fde25b9f6d8adbdf087a51a34dc35cc1907d8 Mon Sep 17 00:00:00 2001 From: stonedDiscord Date: Sun, 4 Sep 2022 22:30:31 +0200 Subject: undo dom stuff --- webAO/dom/changeBackgroundOOC.ts | 27 --------------------------- webAO/dom/musicListClick.ts | 21 --------------------- webAO/dom/musicListFilter.ts | 24 ------------------------ webAO/dom/muteListClick.ts | 20 -------------------- webAO/dom/onOOCEnter.ts | 16 ---------------- webAO/dom/onReplayGo.ts | 9 --------- webAO/dom/updateBackgroundPreview.ts | 29 ----------------------------- 7 files changed, 146 deletions(-) delete mode 100644 webAO/dom/changeBackgroundOOC.ts delete mode 100644 webAO/dom/musicListClick.ts delete mode 100644 webAO/dom/musicListFilter.ts delete mode 100644 webAO/dom/muteListClick.ts delete mode 100644 webAO/dom/onOOCEnter.ts delete mode 100644 webAO/dom/onReplayGo.ts delete mode 100644 webAO/dom/updateBackgroundPreview.ts (limited to 'webAO/dom') diff --git a/webAO/dom/changeBackgroundOOC.ts b/webAO/dom/changeBackgroundOOC.ts deleted file mode 100644 index abf3a97..0000000 --- a/webAO/dom/changeBackgroundOOC.ts +++ /dev/null @@ -1,27 +0,0 @@ -import { client } from "../client"; -import queryParser from "../utils/queryParser"; - -let { mode } = queryParser(); - -/** - * Change background via OOC. - */ -export function changeBackgroundOOC() { - const selectedBG = document.getElementById("bg_select"); - const changeBGCommand = "bg $1"; - const bgFilename = document.getElementById("bg_filename"); - - let filename = ""; - if (selectedBG.selectedIndex === 0) { - filename = bgFilename.value; - } else { - filename = selectedBG.value; - } - - if (mode === "join") { - client.sendOOC(`/${changeBGCommand.replace("$1", filename)}`); - } else if (mode === "replay") { - client.sendSelf(`BN#${filename}#%`); - } -} -window.changeBackgroundOOC = changeBackgroundOOC; \ No newline at end of file diff --git a/webAO/dom/musicListClick.ts b/webAO/dom/musicListClick.ts deleted file mode 100644 index 1eb6619..0000000 --- a/webAO/dom/musicListClick.ts +++ /dev/null @@ -1,21 +0,0 @@ -import { client } from "../client"; -/** - * Triggered when an item on the music list is clicked. - * @param {MouseEvent} event - */ -export function musiclist_click(_event: Event) { - const playtrack = (( - document.getElementById("client_musiclist") - )).value; - client.sendMusicChange(playtrack); - - // This is here so you can't actually select multiple tracks, - // even though the select tag has the multiple option to render differently - const musiclist_elements = (( - document.getElementById("client_musiclist") - )).selectedOptions; - for (let i = 0; i < musiclist_elements.length; i++) { - musiclist_elements[i].selected = false; - } -} -window.musiclist_click = musiclist_click; \ No newline at end of file diff --git a/webAO/dom/musicListFilter.ts b/webAO/dom/musicListFilter.ts deleted file mode 100644 index c44978d..0000000 --- a/webAO/dom/musicListFilter.ts +++ /dev/null @@ -1,24 +0,0 @@ -import { client } from "../client"; -/** - * Triggered when the music search bar is changed - * @param {MouseEvent} event - */ -export function musiclist_filter(_event: Event) { - const musiclist_element = ( - document.getElementById("client_musiclist") - ); - const searchname = (( - document.getElementById("client_musicsearch") - )).value; - - musiclist_element.innerHTML = ""; - - for (const trackname of client.musics) { - if (trackname.toLowerCase().indexOf(searchname.toLowerCase()) !== -1) { - const newentry = document.createElement("OPTION"); - newentry.text = trackname; - musiclist_element.options.add(newentry); - } - } -} -window.musiclist_filter = musiclist_filter; \ No newline at end of file diff --git a/webAO/dom/muteListClick.ts b/webAO/dom/muteListClick.ts deleted file mode 100644 index 6ae3eea..0000000 --- a/webAO/dom/muteListClick.ts +++ /dev/null @@ -1,20 +0,0 @@ -import { client } from "../client"; -/** - * Triggered when a character in the mute list is clicked - * @param {MouseEvent} event - */ -export function mutelist_click(_event: Event) { - const mutelist = document.getElementById("mute_select"); - const selected_character = mutelist.options[mutelist.selectedIndex]; - - if (client.chars[selected_character.value].muted === false) { - client.chars[selected_character.value].muted = true; - selected_character.text = `${client.chars[selected_character.value].name - } (muted)`; - console.info(`muted ${client.chars[selected_character.value].name}`); - } else { - client.chars[selected_character.value].muted = false; - selected_character.text = client.chars[selected_character.value].name; - } -} -window.mutelist_click = mutelist_click; \ No newline at end of file diff --git a/webAO/dom/onOOCEnter.ts b/webAO/dom/onOOCEnter.ts deleted file mode 100644 index a24928b..0000000 --- a/webAO/dom/onOOCEnter.ts +++ /dev/null @@ -1,16 +0,0 @@ -import {client} from '../client' -/** - * Triggered when the Return key is pressed on the out-of-character chat input box. - * @param {KeyboardEvent} event - */ - export function onOOCEnter(event: KeyboardEvent) { - if (event.keyCode === 13) { - client.sendOOC( - (document.getElementById("client_oocinputbox")).value - ); - (document.getElementById("client_oocinputbox")).value = - ""; - } - } - window.onOOCEnter = onOOCEnter; - \ No newline at end of file diff --git a/webAO/dom/onReplayGo.ts b/webAO/dom/onReplayGo.ts deleted file mode 100644 index c13a8e6..0000000 --- a/webAO/dom/onReplayGo.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { client } from "../client"; -/** - * Triggered when the user click replay GOOOOO - * @param {KeyboardEvent} event - */ - export function onReplayGo(_event: Event) { - client.handleReplay(); - } - window.onReplayGo = onReplayGo; \ No newline at end of file diff --git a/webAO/dom/updateBackgroundPreview.ts b/webAO/dom/updateBackgroundPreview.ts deleted file mode 100644 index e55bf60..0000000 --- a/webAO/dom/updateBackgroundPreview.ts +++ /dev/null @@ -1,29 +0,0 @@ -import { AO_HOST } from "../client"; - -/** - * Update background preview. - */ -export function updateBackgroundPreview() { - const background_select = ( - document.getElementById("bg_select") - ); - const background_filename = ( - document.getElementById("bg_filename") - ); - const background_preview = ( - document.getElementById("bg_preview") - ); - - if (background_select.selectedIndex === 0) { - background_filename.style.display = "initial"; - background_preview.src = `${AO_HOST}background/${encodeURI( - background_filename.value.toLowerCase() - )}/defenseempty.png`; - } else { - background_filename.style.display = "none"; - background_preview.src = `${AO_HOST}background/${encodeURI( - background_select.value.toLowerCase() - )}/defenseempty.png`; - } -} -window.updateBackgroundPreview = updateBackgroundPreview; \ No newline at end of file -- cgit From ce708f69ed7878422a6a6371e44faed6857cb79a Mon Sep 17 00:00:00 2001 From: Caleb Date: Sun, 4 Sep 2022 20:22:35 -0400 Subject: Fix AO Host --- webAO/dom/resetOffset.ts | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) (limited to 'webAO/dom') diff --git a/webAO/dom/resetOffset.ts b/webAO/dom/resetOffset.ts index 2cf8197..86dfd5b 100644 --- a/webAO/dom/resetOffset.ts +++ b/webAO/dom/resetOffset.ts @@ -1,5 +1,6 @@ + export function resetOffset(_event: Event) { - (document.getElementById("pair_offset")).value = "0"; - (document.getElementById("pair_y_offset")).value = "0"; - } - window.resetOffset = resetOffset; \ No newline at end of file + (document.getElementById("pair_offset")).value = "0"; + (document.getElementById("pair_y_offset")).value = "0"; +} +window.resetOffset = resetOffset; \ No newline at end of file -- cgit From fb3590ad774a07f45eaaaeb2b443ae264c302f3b Mon Sep 17 00:00:00 2001 From: Caleb Date: Sun, 4 Sep 2022 20:45:52 -0400 Subject: Prep folder with example --- webAO/dom/musicListClick.ts | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100644 webAO/dom/musicListClick.ts (limited to 'webAO/dom') diff --git a/webAO/dom/musicListClick.ts b/webAO/dom/musicListClick.ts new file mode 100644 index 0000000..8fd3be5 --- /dev/null +++ b/webAO/dom/musicListClick.ts @@ -0,0 +1,21 @@ +import { client } from "../client"; +/** + * Triggered when an item on the music list is clicked. + * @param {MouseEvent} event + */ +export function musiclist_click(_event: Event) { + const playtrack = (( + document.getElementById("client_musiclist") + )).value; + client.sendMusicChange(playtrack); + + // This is here so you can't actually select multiple tracks, + // even though the select tag has the multiple option to render differently + const musiclist_elements = (( + document.getElementById("client_musiclist") + )).selectedOptions; + for (let i = 0; i < musiclist_elements.length; i++) { + musiclist_elements[i].selected = false; + } +} +window.musiclist_click = musiclist_click; -- cgit From 34aba3b5b9572b707971d1fda9216ebcf91909ba Mon Sep 17 00:00:00 2001 From: Caleb Date: Mon, 5 Sep 2022 21:47:38 -0400 Subject: Moving some functions --- webAO/dom/areaClick.ts | 15 +++++++ webAO/dom/onEnter.ts | 103 ++++++++++++++++++++++++++++++++++++++++++++++++ webAO/dom/onOOCEnter.ts | 16 ++++++++ webAO/dom/onReplayGo.ts | 10 +++++ 4 files changed, 144 insertions(+) create mode 100644 webAO/dom/areaClick.ts create mode 100644 webAO/dom/onEnter.ts create mode 100644 webAO/dom/onOOCEnter.ts create mode 100644 webAO/dom/onReplayGo.ts (limited to 'webAO/dom') diff --git a/webAO/dom/areaClick.ts b/webAO/dom/areaClick.ts new file mode 100644 index 0000000..6c3ff6b --- /dev/null +++ b/webAO/dom/areaClick.ts @@ -0,0 +1,15 @@ +import { client } from '../client' +/** + * Triggered when an item on the area list is clicked. + * @param {HTMLElement} el + */ +export function area_click(el: HTMLElement) { + const area = client.areas[el.id.substr(4)].name; + client.sendMusicChange(area); + + const areaHr = document.createElement("div"); + areaHr.className = "hrtext"; + areaHr.textContent = `switched to ${el.textContent}`; + document.getElementById("client_log")!.appendChild(areaHr); +} +window.area_click = area_click; \ No newline at end of file diff --git a/webAO/dom/onEnter.ts b/webAO/dom/onEnter.ts new file mode 100644 index 0000000..01fbbd5 --- /dev/null +++ b/webAO/dom/onEnter.ts @@ -0,0 +1,103 @@ +import { client, selectedShout } from "../client"; +import { escapeChat } from "../encoding"; + + +/** + * Triggered when the Return key is pressed on the in-character chat input box. + * @param {KeyboardEvent} event + */ + export function onEnter(event: KeyboardEvent) { + if (event.keyCode === 13) { + const mychar = client.character; + const myemo = client.emote; + const evi = client.evidence; + const flip = Boolean( + document.getElementById("button_flip")!.classList.contains("dark") + ); + const flash = Boolean( + document.getElementById("button_flash")!.classList.contains("dark") + ); + const screenshake = Boolean( + document.getElementById("button_shake")!.classList.contains("dark") + ); + const noninterrupting_preanim = Boolean( + (document.getElementById("check_nonint")).checked + ); + const looping_sfx = Boolean( + (document.getElementById("check_loopsfx")).checked + ); + const color = Number( + (document.getElementById("textcolor")).value + ); + const showname = escapeChat( + (document.getElementById("ic_chat_name")).value + ); + const text = (document.getElementById("client_inputbox")) + .value; + const pairchar = (document.getElementById("pair_select")) + .value; + const pairoffset = Number( + (document.getElementById("pair_offset")).value + ); + const pairyoffset = Number( + (document.getElementById("pair_y_offset")).value + ); + const myrole = (document.getElementById("role_select")) + .value + ? (document.getElementById("role_select")).value + : mychar.side; + const additive = Boolean( + (document.getElementById("check_additive")).checked + ); + const effect = (document.getElementById("effect_select")) + .value; + + let sfxname = "0"; + let sfxdelay = 0; + let emote_mod = myemo.zoom; + if ((document.getElementById("sendsfx")).checked) { + sfxname = myemo.sfx; + sfxdelay = myemo.sfxdelay; + } + + // not to overwrite a 5 from the ini or anything else + if ((document.getElementById("sendpreanim")).checked) { + if (emote_mod === 0) { + emote_mod = 1; + } + } else if (emote_mod === 1) { + emote_mod = 0; + } + + client.sendIC( + myemo.deskmod, + myemo.preanim, + mychar.name, + myemo.emote, + text, + myrole, + sfxname, + emote_mod, + sfxdelay, + selectedShout, + evi, + flip, + flash, + color, + showname, + pairchar, + pairoffset, + pairyoffset, + noninterrupting_preanim, + looping_sfx, + screenshake, + "-", + "-", + "-", + additive, + effect + ); + } + return false; + } + window.onEnter = onEnter; \ No newline at end of file diff --git a/webAO/dom/onOOCEnter.ts b/webAO/dom/onOOCEnter.ts new file mode 100644 index 0000000..a6bde4c --- /dev/null +++ b/webAO/dom/onOOCEnter.ts @@ -0,0 +1,16 @@ +import { client } from "../client"; +/** + * Triggered when the Return key is pressed on the out-of-character chat input box. + * @param {KeyboardEvent} event + */ +export function onOOCEnter(event: KeyboardEvent) { + console.log('FUCK') + if (event.keyCode === 13) { + client.sendOOC( + (document.getElementById("client_oocinputbox")).value + ); + (document.getElementById("client_oocinputbox")).value = + ""; + } +} +window.onOOCEnter = onOOCEnter; diff --git a/webAO/dom/onReplayGo.ts b/webAO/dom/onReplayGo.ts new file mode 100644 index 0000000..82a6f2f --- /dev/null +++ b/webAO/dom/onReplayGo.ts @@ -0,0 +1,10 @@ +import { client } from "../client"; + +/** + * Triggered when the user click replay GOOOOO + * @param {KeyboardEvent} event + */ +export function onReplayGo(_event: Event) { + client.handleReplay(); +} +window.onReplayGo = onReplayGo; \ No newline at end of file -- cgit From ccec95a9d3b68e25e24a9168400fc47099a85c81 Mon Sep 17 00:00:00 2001 From: Caleb Date: Tue, 6 Sep 2022 21:55:10 -0400 Subject: More window functions --- webAO/dom/cancelEvidence.ts | 35 ++++++++++++++++++++++++++ webAO/dom/musicListFilter.ts | 24 ++++++++++++++++++ webAO/dom/opusCheck.ts | 22 +++++++++++++++++ webAO/dom/pickEvidence.ts | 48 ++++++++++++++++++++++++++++++++++++ webAO/dom/resizeChatbox.ts | 33 +++++++++++++++++++++++++ webAO/dom/toggleShout.ts | 22 +++++++++++++++++ webAO/dom/updateBackgroundPreview.ts | 28 +++++++++++++++++++++ 7 files changed, 212 insertions(+) create mode 100644 webAO/dom/cancelEvidence.ts create mode 100644 webAO/dom/musicListFilter.ts create mode 100644 webAO/dom/opusCheck.ts create mode 100644 webAO/dom/pickEvidence.ts create mode 100644 webAO/dom/resizeChatbox.ts create mode 100644 webAO/dom/toggleShout.ts create mode 100644 webAO/dom/updateBackgroundPreview.ts (limited to 'webAO/dom') diff --git a/webAO/dom/cancelEvidence.ts b/webAO/dom/cancelEvidence.ts new file mode 100644 index 0000000..6565288 --- /dev/null +++ b/webAO/dom/cancelEvidence.ts @@ -0,0 +1,35 @@ +import { client, updateEvidenceIcon } from "../client"; +import { AO_HOST } from "../client/aoHost"; + + +/** + * Cancel evidence selection. + */ +export function cancelEvidence() { + // Clear evidence data + if (client.selectedEvidence > 0) { + document.getElementById(`evi_${client.selectedEvidence}`)!.className = + "evi_icon"; + } + client.selectedEvidence = 0; + + // Clear evidence on information window + (document.getElementById("evi_select")).selectedIndex = 0; + updateEvidenceIcon(); // Update icon widget + (document.getElementById("evi_filename")).value = ""; + (document.getElementById("evi_name")).value = ""; + (document.getElementById("evi_desc")).value = ""; + (( + document.getElementById("evi_preview") + )).src = `${AO_HOST}misc/empty.png`; // Clear icon + + // Update button + document.getElementById("evi_add")!.className = "client_button hover_button"; + document.getElementById("evi_edit")!.className = + "client_button hover_button inactive"; + document.getElementById("evi_cancel")!.className = + "client_button hover_button inactive"; + document.getElementById("evi_del")!.className = + "client_button hover_button inactive"; +} +window.cancelEvidence = cancelEvidence; \ No newline at end of file diff --git a/webAO/dom/musicListFilter.ts b/webAO/dom/musicListFilter.ts new file mode 100644 index 0000000..3db7fcd --- /dev/null +++ b/webAO/dom/musicListFilter.ts @@ -0,0 +1,24 @@ +import { client } from '../client' +/** + * Triggered when the music search bar is changed + * @param {MouseEvent} event + */ +export function musiclist_filter(_event: Event) { + const musiclist_element = ( + document.getElementById("client_musiclist") + ); + const searchname = (( + document.getElementById("client_musicsearch") + )).value; + + musiclist_element.innerHTML = ""; + + for (const trackname of client.musics) { + if (trackname.toLowerCase().indexOf(searchname.toLowerCase()) !== -1) { + const newentry = document.createElement("OPTION"); + newentry.text = trackname; + musiclist_element.options.add(newentry); + } + } +} +window.musiclist_filter = musiclist_filter; \ No newline at end of file diff --git a/webAO/dom/opusCheck.ts b/webAO/dom/opusCheck.ts new file mode 100644 index 0000000..939fdc6 --- /dev/null +++ b/webAO/dom/opusCheck.ts @@ -0,0 +1,22 @@ +/** + * Triggered when there was an error loading a sound + * @param {HTMLAudioElement} image the element containing the missing sound + */ +export function opusCheck( + channel: HTMLAudioElement +): OnErrorEventHandlerNonNull { + const audio = channel.src; + if (audio === "") { + return; + } + console.info(`failed to load sound ${channel.src}`); + let oldsrc = ""; + let newsrc = ""; + oldsrc = channel.src; + if (!oldsrc.endsWith(".opus")) { + newsrc = oldsrc.replace(".mp3", ".opus"); + newsrc = newsrc.replace(".wav", ".opus"); + channel.src = newsrc; // unload so the old sprite doesn't persist + } +} +window.opusCheck = opusCheck; \ No newline at end of file diff --git a/webAO/dom/pickEvidence.ts b/webAO/dom/pickEvidence.ts new file mode 100644 index 0000000..32e52ba --- /dev/null +++ b/webAO/dom/pickEvidence.ts @@ -0,0 +1,48 @@ +import { cancelEvidence, client, getIndexFromSelect, updateEvidenceIcon } from '../client' + +/** + * Highlights and selects an evidence for in-character chat. + * @param {string} evidence the evidence to be presented + */ +export function pickEvidence(evidence: number) { + if (client.selectedEvidence !== evidence) { + // Update selected evidence + if (client.selectedEvidence > 0) { + document.getElementById(`evi_${client.selectedEvidence}`)!.className = + "evi_icon"; + } + document.getElementById(`evi_${evidence}`)!.className = "evi_icon dark"; + client.selectedEvidence = evidence; + + // Show evidence on information window + (document.getElementById("evi_name")).value = + client.evidences[evidence - 1].name; + (document.getElementById("evi_desc")).value = + client.evidences[evidence - 1].desc; + + // Update icon + const icon_id = getIndexFromSelect( + "evi_select", + client.evidences[evidence - 1].filename + ); + (document.getElementById("evi_select")).selectedIndex = + icon_id; + if (icon_id === 0) { + (document.getElementById("evi_filename")).value = + client.evidences[evidence - 1].filename; + } + updateEvidenceIcon(); + + // Update button + document.getElementById("evi_add")!.className = + "client_button hover_button inactive"; + document.getElementById("evi_edit")!.className = + "client_button hover_button"; + document.getElementById("evi_cancel")!.className = + "client_button hover_button"; + document.getElementById("evi_del")!.className = "client_button hover_button"; + } else { + cancelEvidence(); + } +} +window.pickEvidence = pickEvidence; diff --git a/webAO/dom/resizeChatbox.ts b/webAO/dom/resizeChatbox.ts new file mode 100644 index 0000000..efb8bdc --- /dev/null +++ b/webAO/dom/resizeChatbox.ts @@ -0,0 +1,33 @@ +import { CHATBOX } from "../client"; +/** + * Set the font size for the chatbox + */ +export function resizeChatbox() { + const chatContainerBox = document.getElementById("client_chatcontainer")!; + const gameHeight = document.getElementById("client_background")!.offsetHeight; + + chatContainerBox.style.fontSize = `${(gameHeight * 0.0521).toFixed(1)}px`; + + const trackstatus = (document.getElementById("client_trackstatustext")); + trackstatus.width = (trackstatus.offsetWidth - 1) + "px"; + + + //clock + const now = new Date(); + let weekday = ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"]; + const month = ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"]; + document.getElementById("client_clock_month")!.innerText = month[now.getMonth()]; + console.debug(CHATBOX); + if (CHATBOX == "acww") { + weekday = ["Su", "Mo", "Tu", "We", "Th", "Fr", "Sa"]; + document.getElementById("client_clock_weekday")!.innerText = weekday[now.getDay()]; + document.getElementById("client_clock_date")!.innerText = now.getDay() + "/" + now.getMonth(); + document.getElementById("client_clock_time")!.innerText = now.getHours() + ":" + now.getMinutes(); + } else if (CHATBOX == "key") { + weekday = ["Sun.", "Mon.", "Tue.", "Wed.", "Thu.", "Fri.", "Sat."]; + document.getElementById("client_clock_weekday")!.innerText = weekday[now.getDay()]; + document.getElementById("client_clock_date")!.innerText = String(now.getDay()); + } + +} +window.resizeChatbox = resizeChatbox; \ No newline at end of file diff --git a/webAO/dom/toggleShout.ts b/webAO/dom/toggleShout.ts new file mode 100644 index 0000000..8094691 --- /dev/null +++ b/webAO/dom/toggleShout.ts @@ -0,0 +1,22 @@ +import { selectedShout, setSelectedShout } from "../client"; + + +/** + * Highlights and selects a shout for in-character chat. + * If the same shout button is selected, then the shout is canceled. + * @param {number} shout the new shout to be selected + */ +export function toggleShout(shout: number) { + if (shout === selectedShout) { + document.getElementById(`button_${shout}`)!.className = "client_button"; + selectedShout = 0; + } else { + document.getElementById(`button_${shout}`)!.className = "client_button dark"; + if (selectedShout) { + document.getElementById(`button_${selectedShout}`)!.className = + "client_button"; + } + selectedShout = shout; + } +} +window.toggleShout = toggleShout; diff --git a/webAO/dom/updateBackgroundPreview.ts b/webAO/dom/updateBackgroundPreview.ts new file mode 100644 index 0000000..b41ee8f --- /dev/null +++ b/webAO/dom/updateBackgroundPreview.ts @@ -0,0 +1,28 @@ +import { AO_HOST } from '../client/aoHost' +/** + * Update background preview. + */ +export function updateBackgroundPreview() { + const background_select = ( + document.getElementById("bg_select") + ); + const background_filename = ( + document.getElementById("bg_filename") + ); + const background_preview = ( + document.getElementById("bg_preview") + ); + + if (background_select.selectedIndex === 0) { + background_filename.style.display = "initial"; + background_preview.src = `${AO_HOST}background/${encodeURI( + background_filename.value.toLowerCase() + )}/defenseempty.png`; + } else { + background_filename.style.display = "none"; + background_preview.src = `${AO_HOST}background/${encodeURI( + background_select.value.toLowerCase() + )}/defenseempty.png`; + } +} +window.updateBackgroundPreview = updateBackgroundPreview; \ No newline at end of file -- cgit From 3f8d0974b327e663328bc36cd97f1ba1855a2269 Mon Sep 17 00:00:00 2001 From: Caleb Date: Wed, 7 Sep 2022 17:01:25 -0400 Subject: Added more functions --- webAO/dom/cancelEvidence.ts | 3 ++- webAO/dom/changeBackgroundOOC.ts | 28 ++++++++++++++++++++++++++++ webAO/dom/changeCallwords.ts | 13 +++++++++++++ webAO/dom/editEvidence.ts | 22 ++++++++++++++++++++++ webAO/dom/getIndexFromSelect.ts | 16 ++++++++++++++++ webAO/dom/iniEdit.ts | 14 ++++++++++++++ webAO/dom/modCallTest.ts | 8 ++++++++ webAO/dom/pickEmotion.ts | 24 ++++++++++++++++++++++++ webAO/dom/pickEvidence.ts | 5 ++++- webAO/dom/switchPanTilt.ts | 16 ++++++++++++++++ webAO/dom/toggleShout.ts | 5 ++--- webAO/dom/updateEvidenceIcon.ts | 28 ++++++++++++++++++++++++++++ 12 files changed, 177 insertions(+), 5 deletions(-) create mode 100644 webAO/dom/changeBackgroundOOC.ts create mode 100644 webAO/dom/changeCallwords.ts create mode 100644 webAO/dom/editEvidence.ts create mode 100644 webAO/dom/getIndexFromSelect.ts create mode 100644 webAO/dom/iniEdit.ts create mode 100644 webAO/dom/modCallTest.ts create mode 100644 webAO/dom/pickEmotion.ts create mode 100644 webAO/dom/switchPanTilt.ts create mode 100644 webAO/dom/updateEvidenceIcon.ts (limited to 'webAO/dom') diff --git a/webAO/dom/cancelEvidence.ts b/webAO/dom/cancelEvidence.ts index 6565288..a906613 100644 --- a/webAO/dom/cancelEvidence.ts +++ b/webAO/dom/cancelEvidence.ts @@ -1,4 +1,5 @@ -import { client, updateEvidenceIcon } from "../client"; +import { client, } from "../client"; +import { updateEvidenceIcon } from './updateEvidenceIcon' import { AO_HOST } from "../client/aoHost"; diff --git a/webAO/dom/changeBackgroundOOC.ts b/webAO/dom/changeBackgroundOOC.ts new file mode 100644 index 0000000..f840729 --- /dev/null +++ b/webAO/dom/changeBackgroundOOC.ts @@ -0,0 +1,28 @@ + +import queryParser from '../utils/queryParser' +import { client } from '../client' +let { mode } = queryParser() + +/** + * Change background via OOC. + */ +export function changeBackgroundOOC() { + const selectedBG = document.getElementById("bg_select"); + const changeBGCommand = "bg $1"; + const bgFilename = document.getElementById("bg_filename"); + + let filename = ""; + if (selectedBG.selectedIndex === 0) { + filename = bgFilename.value; + } else { + filename = selectedBG.value; + } + + + if (mode === "join") { + client.sendOOC(`/${changeBGCommand.replace("$1", filename)}`); + } else if (mode === "replay") { + client.sendSelf(`BN#${filename}#%`); + } +} +window.changeBackgroundOOC = changeBackgroundOOC; \ No newline at end of file diff --git a/webAO/dom/changeCallwords.ts b/webAO/dom/changeCallwords.ts new file mode 100644 index 0000000..28be674 --- /dev/null +++ b/webAO/dom/changeCallwords.ts @@ -0,0 +1,13 @@ +import { client } from '../client' +import setCookie from '../utils/setCookie'; + +/** + * Triggered by a changed callword list + */ +export function changeCallwords() { + client.callwords = (( + document.getElementById("client_callwords") + )).value.split("\n"); + setCookie("callwords", client.callwords.join("\n")); +} +window.changeCallwords = changeCallwords; \ No newline at end of file diff --git a/webAO/dom/editEvidence.ts b/webAO/dom/editEvidence.ts new file mode 100644 index 0000000..2cc4565 --- /dev/null +++ b/webAO/dom/editEvidence.ts @@ -0,0 +1,22 @@ +import { client } from '../client' +import { cancelEvidence } from './cancelEvidence'; + +/** + * Edit selected evidence. + */ +export function editEvidence() { + const evidence_select = ( + document.getElementById("evi_select") + ); + const id = client.selectedEvidence - 1; + client.sendEE( + id, + (document.getElementById("evi_name")).value, + (document.getElementById("evi_desc")).value, + evidence_select.selectedIndex === 0 + ? (document.getElementById("evi_filename")).value + : evidence_select.options[evidence_select.selectedIndex].text + ); + cancelEvidence(); +} +window.editEvidence = editEvidence; \ No newline at end of file diff --git a/webAO/dom/getIndexFromSelect.ts b/webAO/dom/getIndexFromSelect.ts new file mode 100644 index 0000000..2f21653 --- /dev/null +++ b/webAO/dom/getIndexFromSelect.ts @@ -0,0 +1,16 @@ +/** + * Find index of anything in select box. + * @param {string} select_box the select element name + * @param {string} value the value that need to be compared + */ +export function getIndexFromSelect(select_box: string, value: string) { + // Find if icon alraedy existed in select box + const select_element = document.getElementById(select_box); + for (let i = 1; i < select_element.length; ++i) { + if (select_element.options[i].value === value) { + return i; + } + } + return 0; +} +window.getIndexFromSelect = getIndexFromSelect; \ No newline at end of file diff --git a/webAO/dom/iniEdit.ts b/webAO/dom/iniEdit.ts new file mode 100644 index 0000000..359a226 --- /dev/null +++ b/webAO/dom/iniEdit.ts @@ -0,0 +1,14 @@ +import { client } from "../client"; +import { packetHandler } from "../packets/packetHandler"; + +/** + * Triggered by the ini button. + */ +export async function iniedit() { + const ininame = (document.getElementById("client_ininame")) + .value; + const inicharID = client.charID; + await client.handleCharacterInfo(ininame.split("&"), inicharID); + packetHandler.get("PV")!(`PV#0#CID#${inicharID}`.split("#")); +} +window.iniedit = iniedit; diff --git a/webAO/dom/modCallTest.ts b/webAO/dom/modCallTest.ts new file mode 100644 index 0000000..7058caf --- /dev/null +++ b/webAO/dom/modCallTest.ts @@ -0,0 +1,8 @@ +import { packetHandler } from "../packets/packetHandler"; +/** + * Triggered by the modcall sfx dropdown + */ +export function modcall_test() { + packetHandler.get("ZZ")!("test#test".split("#")); +} +window.modcall_test = modcall_test; \ No newline at end of file diff --git a/webAO/dom/pickEmotion.ts b/webAO/dom/pickEmotion.ts new file mode 100644 index 0000000..b72583f --- /dev/null +++ b/webAO/dom/pickEmotion.ts @@ -0,0 +1,24 @@ +import { client } from '../client' +/** + * Highlights and selects an emotion for in-character chat. + * @param {string} emo the new emotion to be selected + */ +export function pickEmotion(emo: number) { + try { + if (client.selectedEmote !== -1) { + document.getElementById(`emo_${client.selectedEmote}`)!.className = + "emote_button"; + } + } catch (err) { + // do nothing + } + client.selectedEmote = emo; + document.getElementById(`emo_${emo}`)!.className = "emote_button dark"; + + (document.getElementById("sendsfx")).checked = + client.emote.sfx.length > 1; + + (document.getElementById("sendpreanim")).checked = + client.emote.zoom == 1; +} +window.pickEmotion = pickEmotion; \ No newline at end of file diff --git a/webAO/dom/pickEvidence.ts b/webAO/dom/pickEvidence.ts index 32e52ba..411acc1 100644 --- a/webAO/dom/pickEvidence.ts +++ b/webAO/dom/pickEvidence.ts @@ -1,4 +1,7 @@ -import { cancelEvidence, client, getIndexFromSelect, updateEvidenceIcon } from '../client' +import { client } from '../client' +import { cancelEvidence } from './cancelEvidence'; +import { updateEvidenceIcon } from './updateEvidenceIcon' +import { getIndexFromSelect } from './getIndexFromSelect' /** * Highlights and selects an evidence for in-character chat. diff --git a/webAO/dom/switchPanTilt.ts b/webAO/dom/switchPanTilt.ts new file mode 100644 index 0000000..7ceea06 --- /dev/null +++ b/webAO/dom/switchPanTilt.ts @@ -0,0 +1,16 @@ +/** + * Triggered by the pantilt checkbox + */ +export async function switchPanTilt() { + const fullview = document.getElementById("client_fullview")!; + const checkbox = document.getElementById("client_pantilt"); + + if (checkbox.checked) { + fullview.style.transition = "0.5s ease-in-out"; + } else { + fullview.style.transition = "none"; + } + + return; +} +window.switchPanTilt = switchPanTilt; \ No newline at end of file diff --git a/webAO/dom/toggleShout.ts b/webAO/dom/toggleShout.ts index 8094691..cb12f49 100644 --- a/webAO/dom/toggleShout.ts +++ b/webAO/dom/toggleShout.ts @@ -1,6 +1,5 @@ import { selectedShout, setSelectedShout } from "../client"; - /** * Highlights and selects a shout for in-character chat. * If the same shout button is selected, then the shout is canceled. @@ -9,14 +8,14 @@ import { selectedShout, setSelectedShout } from "../client"; export function toggleShout(shout: number) { if (shout === selectedShout) { document.getElementById(`button_${shout}`)!.className = "client_button"; - selectedShout = 0; + setSelectedShout(0); } else { document.getElementById(`button_${shout}`)!.className = "client_button dark"; if (selectedShout) { document.getElementById(`button_${selectedShout}`)!.className = "client_button"; } - selectedShout = shout; + setSelectedShout(shout); } } window.toggleShout = toggleShout; diff --git a/webAO/dom/updateEvidenceIcon.ts b/webAO/dom/updateEvidenceIcon.ts new file mode 100644 index 0000000..bff0475 --- /dev/null +++ b/webAO/dom/updateEvidenceIcon.ts @@ -0,0 +1,28 @@ +import { AO_HOST } from "../client/aoHost"; +/** + * Update evidence icon. + */ +export function updateEvidenceIcon() { + const evidence_select = ( + document.getElementById("evi_select") + ); + const evidence_filename = ( + document.getElementById("evi_filename") + ); + const evidence_iconbox = ( + document.getElementById("evi_preview") + ); + + if (evidence_select.selectedIndex === 0) { + evidence_filename.style.display = "initial"; + evidence_iconbox.src = `${AO_HOST}evidence/${encodeURI( + evidence_filename.value.toLowerCase() + )}`; + } else { + evidence_filename.style.display = "none"; + evidence_iconbox.src = `${AO_HOST}evidence/${encodeURI( + evidence_select.value.toLowerCase() + )}`; + } +} +window.updateEvidenceIcon = updateEvidenceIcon; -- cgit From d99a619e26f38c729d74d8dc585e8ce13236ffb7 Mon Sep 17 00:00:00 2001 From: Caleb Date: Thu, 8 Sep 2022 00:51:31 -0400 Subject: Removed all window functions from client --- webAO/dom/addEvidence.ts | 20 +++++++++++++++ webAO/dom/addHPD.ts | 9 +++++++ webAO/dom/addHPP.ts | 9 +++++++ webAO/dom/callMod.ts | 16 ++++++++++++ webAO/dom/changeCharacter.ts | 11 ++++++++ webAO/dom/changeRoleOOC.ts | 13 ++++++++++ webAO/dom/charError.ts | 12 +++++++++ webAO/dom/charTableFilter.ts | 20 +++++++++++++++ webAO/dom/deleteEvidence.ts | 12 +++++++++ webAO/dom/guilty.ts | 9 +++++++ webAO/dom/imgError.ts | 10 ++++++++ webAO/dom/initCE.ts | 9 +++++++ webAO/dom/initWT.ts | 9 +++++++ webAO/dom/notGuilty.ts | 9 +++++++ webAO/dom/pickChar.ts | 16 ++++++++++++ webAO/dom/randomCharacterOOC.ts | 8 ++++++ webAO/dom/reconnectButton.ts | 16 ++++++++++++ webAO/dom/redHPD.ts | 9 +++++++ webAO/dom/redHPP.ts | 9 +++++++ webAO/dom/setChatbox.ts | 28 +++++++++++++++++++++ webAO/dom/switchAspectRatio.ts | 19 ++++++++++++++ webAO/dom/switchChatOffset.ts | 17 +++++++++++++ webAO/dom/toggleMenu.ts | 18 +++++++++++++ webAO/dom/window.ts | 56 +++++++++++++++++++++++++++++++++++++++++ 24 files changed, 364 insertions(+) create mode 100644 webAO/dom/addEvidence.ts create mode 100644 webAO/dom/addHPD.ts create mode 100644 webAO/dom/addHPP.ts create mode 100644 webAO/dom/callMod.ts create mode 100644 webAO/dom/changeCharacter.ts create mode 100644 webAO/dom/changeRoleOOC.ts create mode 100644 webAO/dom/charError.ts create mode 100644 webAO/dom/charTableFilter.ts create mode 100644 webAO/dom/deleteEvidence.ts create mode 100644 webAO/dom/guilty.ts create mode 100644 webAO/dom/imgError.ts create mode 100644 webAO/dom/initCE.ts create mode 100644 webAO/dom/initWT.ts create mode 100644 webAO/dom/notGuilty.ts create mode 100644 webAO/dom/pickChar.ts create mode 100644 webAO/dom/randomCharacterOOC.ts create mode 100644 webAO/dom/reconnectButton.ts create mode 100644 webAO/dom/redHPD.ts create mode 100644 webAO/dom/redHPP.ts create mode 100644 webAO/dom/setChatbox.ts create mode 100644 webAO/dom/switchAspectRatio.ts create mode 100644 webAO/dom/switchChatOffset.ts create mode 100644 webAO/dom/toggleMenu.ts create mode 100644 webAO/dom/window.ts (limited to 'webAO/dom') diff --git a/webAO/dom/addEvidence.ts b/webAO/dom/addEvidence.ts new file mode 100644 index 0000000..89bb4d5 --- /dev/null +++ b/webAO/dom/addEvidence.ts @@ -0,0 +1,20 @@ +import { client } from "../client"; +import { cancelEvidence } from "./cancelEvidence"; + +/** + * Add evidence. + */ + export function addEvidence() { + const evidence_select = ( + document.getElementById("evi_select") + ); + client.sendPE( + (document.getElementById("evi_name")).value, + (document.getElementById("evi_desc")).value, + evidence_select.selectedIndex === 0 + ? (document.getElementById("evi_filename")).value + : evidence_select.options[evidence_select.selectedIndex].text + ); + cancelEvidence(); + } + window.addEvidence = addEvidence; \ No newline at end of file diff --git a/webAO/dom/addHPD.ts b/webAO/dom/addHPD.ts new file mode 100644 index 0000000..12d1c07 --- /dev/null +++ b/webAO/dom/addHPD.ts @@ -0,0 +1,9 @@ +import { client } from "../client"; + +/** + * Increment defense health point. + */ +export function addHPD() { + client.sendHP(1, client.hp[0] + 1); +} +window.addHPD = addHPD; \ No newline at end of file diff --git a/webAO/dom/addHPP.ts b/webAO/dom/addHPP.ts new file mode 100644 index 0000000..4a1521c --- /dev/null +++ b/webAO/dom/addHPP.ts @@ -0,0 +1,9 @@ +import { client } from "../client"; + +/** + * Increment prosecution health point. + */ +export function addHPP() { + client.sendHP(2, client.hp[1] + 1); +} +window.addHPP = addHPP; \ No newline at end of file diff --git a/webAO/dom/callMod.ts b/webAO/dom/callMod.ts new file mode 100644 index 0000000..0c52433 --- /dev/null +++ b/webAO/dom/callMod.ts @@ -0,0 +1,16 @@ +import { client, extrafeatures } from "../client"; +/** + * Call mod. + */ +export function callMod() { + let modcall; + if (extrafeatures.includes("modcall_reason")) { + modcall = prompt("Please enter the reason for the modcall", ""); + } + if (modcall == null || modcall === "") { + // cancel + } else { + client.sendZZ(modcall); + } +} +window.callMod = callMod; \ No newline at end of file diff --git a/webAO/dom/changeCharacter.ts b/webAO/dom/changeCharacter.ts new file mode 100644 index 0000000..7ecefe5 --- /dev/null +++ b/webAO/dom/changeCharacter.ts @@ -0,0 +1,11 @@ + +/** + * Triggered when a character icon is clicked in the character selection menu. + * @param {MouseEvent} event + */ +export function changeCharacter(_event: Event) { + document.getElementById("client_waiting")!.style.display = "block"; + document.getElementById("client_charselect")!.style.display = "block"; + document.getElementById("client_emo")!.innerHTML = ""; +} +window.changeCharacter = changeCharacter; \ No newline at end of file diff --git a/webAO/dom/changeRoleOOC.ts b/webAO/dom/changeRoleOOC.ts new file mode 100644 index 0000000..d838cb3 --- /dev/null +++ b/webAO/dom/changeRoleOOC.ts @@ -0,0 +1,13 @@ +import { updateActionCommands } from './updateActionCommands' +import { client } from '../client' +/** + * Change role via OOC. + */ +export function changeRoleOOC() { + const roleselect = document.getElementById("role_select"); + + client.sendOOC(`/pos ${roleselect.value}`); + client.sendServer(`SP#${roleselect.value}#%`); + updateActionCommands(roleselect.value); +} +window.changeRoleOOC = changeRoleOOC; \ No newline at end of file diff --git a/webAO/dom/charError.ts b/webAO/dom/charError.ts new file mode 100644 index 0000000..8cb672a --- /dev/null +++ b/webAO/dom/charError.ts @@ -0,0 +1,12 @@ +import transparentPng from "../constants/transparentPng"; + +/** + * Triggered when there was an error loading a character sprite. + * @param {HTMLImageElement} image the element containing the missing image + */ +export function charError(image: HTMLImageElement) { + console.warn(`${image.src} is missing from webAO`); + image.src = transparentPng; + return true; +} +window.charError = charError; \ No newline at end of file diff --git a/webAO/dom/charTableFilter.ts b/webAO/dom/charTableFilter.ts new file mode 100644 index 0000000..d81fb88 --- /dev/null +++ b/webAO/dom/charTableFilter.ts @@ -0,0 +1,20 @@ +import { client } from '../client' +/** + * Triggered when the music search bar is changed + * @param {MouseEvent} event + */ +export function chartable_filter(_event: Event) { + const searchname = (( + document.getElementById("client_charactersearch") + )).value; + + client.chars.forEach((character: any, charid: number) => { + const demothing = document.getElementById(`demo_${charid}`)!; + if (character.name.toLowerCase().indexOf(searchname.toLowerCase()) === -1) { + demothing.style.display = "none"; + } else { + demothing.style.display = "inline-block"; + } + }); +} +window.chartable_filter = chartable_filter; \ No newline at end of file diff --git a/webAO/dom/deleteEvidence.ts b/webAO/dom/deleteEvidence.ts new file mode 100644 index 0000000..f007cdf --- /dev/null +++ b/webAO/dom/deleteEvidence.ts @@ -0,0 +1,12 @@ +import { client } from "../client"; +import { cancelEvidence } from "./cancelEvidence"; + +/** + * Delete selected evidence. + */ +export function deleteEvidence() { + const id = client.selectedEvidence - 1; + client.sendDE(id); + cancelEvidence(); +} +window.deleteEvidence = deleteEvidence; \ No newline at end of file diff --git a/webAO/dom/guilty.ts b/webAO/dom/guilty.ts new file mode 100644 index 0000000..f7fa5b8 --- /dev/null +++ b/webAO/dom/guilty.ts @@ -0,0 +1,9 @@ +import { client } from "../client"; + +/** + * Declare the defendant not guilty + */ +export function guilty() { + client.sendRT("judgeruling#1"); +} +window.guilty = guilty; \ No newline at end of file diff --git a/webAO/dom/imgError.ts b/webAO/dom/imgError.ts new file mode 100644 index 0000000..fdb6122 --- /dev/null +++ b/webAO/dom/imgError.ts @@ -0,0 +1,10 @@ +/** + * Triggered when there was an error loading a generic sprite. + * @param {HTMLImageElement} image the element containing the missing image + */ +export function imgError(image: HTMLImageElement) { + image.onerror = null; + image.src = ""; // unload so the old sprite doesn't persist + return true; +} +window.imgError = imgError; \ No newline at end of file diff --git a/webAO/dom/initCE.ts b/webAO/dom/initCE.ts new file mode 100644 index 0000000..87bc256 --- /dev/null +++ b/webAO/dom/initCE.ts @@ -0,0 +1,9 @@ +import { client } from "../client"; + +/** + * Declare cross examination. + */ +export function initCE() { + client.sendRT("testimony2"); +} +window.initCE = initCE; \ No newline at end of file diff --git a/webAO/dom/initWT.ts b/webAO/dom/initWT.ts new file mode 100644 index 0000000..b6268fc --- /dev/null +++ b/webAO/dom/initWT.ts @@ -0,0 +1,9 @@ +import { client } from "../client"; + +/** + * Declare witness testimony. + */ +export function initWT() { + client.sendRT("testimony1"); +} +window.initWT = initWT; \ No newline at end of file diff --git a/webAO/dom/notGuilty.ts b/webAO/dom/notGuilty.ts new file mode 100644 index 0000000..e15ee4b --- /dev/null +++ b/webAO/dom/notGuilty.ts @@ -0,0 +1,9 @@ +import { client } from "../client"; + +/** + * Declare the defendant not guilty + */ +export function notguilty() { + client.sendRT("judgeruling#0"); +} +window.notguilty = notguilty; \ No newline at end of file diff --git a/webAO/dom/pickChar.ts b/webAO/dom/pickChar.ts new file mode 100644 index 0000000..5773125 --- /dev/null +++ b/webAO/dom/pickChar.ts @@ -0,0 +1,16 @@ +import { client } from "../client"; + +/** + * Requests to play as a character. + * @param {number} ccharacter the character ID; if this is a large number, + * then spectator is chosen instead. + */ +export function pickChar(ccharacter: number) { + if (ccharacter === -1) { + // Spectator + document.getElementById("client_waiting")!.style.display = "none"; + document.getElementById("client_charselect")!.style.display = "none"; + } + client.sendCharacter(ccharacter); +} +window.pickChar = pickChar; \ No newline at end of file diff --git a/webAO/dom/randomCharacterOOC.ts b/webAO/dom/randomCharacterOOC.ts new file mode 100644 index 0000000..507c3f0 --- /dev/null +++ b/webAO/dom/randomCharacterOOC.ts @@ -0,0 +1,8 @@ +import { client } from '../client' +/** + * Random character via OOC. + */ +export function randomCharacterOOC() { + client.sendOOC(`/randomchar`); +} +window.randomCharacterOOC = randomCharacterOOC; \ No newline at end of file diff --git a/webAO/dom/reconnectButton.ts b/webAO/dom/reconnectButton.ts new file mode 100644 index 0000000..4031ccd --- /dev/null +++ b/webAO/dom/reconnectButton.ts @@ -0,0 +1,16 @@ +import Client, { client, setClient } from "../client"; +import queryParser from "../utils/queryParser"; +let { ip: serverIP } = queryParser(); + +/** + * Triggered when the reconnect button is pushed. + */ +export function ReconnectButton() { + client.cleanup(); + setClient(new Client(serverIP)); + + if (client) { + document.getElementById("client_error")!.style.display = "none"; + } +} +window.ReconnectButton = ReconnectButton; \ No newline at end of file diff --git a/webAO/dom/redHPD.ts b/webAO/dom/redHPD.ts new file mode 100644 index 0000000..7b47c23 --- /dev/null +++ b/webAO/dom/redHPD.ts @@ -0,0 +1,9 @@ +import { client } from "../client"; + +/** + * Decrement defense health point. + */ +export function redHPD() { + client.sendHP(1, client.hp[0] - 1); +} +window.redHPD = redHPD; \ No newline at end of file diff --git a/webAO/dom/redHPP.ts b/webAO/dom/redHPP.ts new file mode 100644 index 0000000..fb6711e --- /dev/null +++ b/webAO/dom/redHPP.ts @@ -0,0 +1,9 @@ +import { client } from "../client"; + +/** + * Decrement prosecution health point. + */ +export function redHPP() { + client.sendHP(2, client.hp[1] - 1); +} +window.redHPP = redHPP; \ No newline at end of file diff --git a/webAO/dom/setChatbox.ts b/webAO/dom/setChatbox.ts new file mode 100644 index 0000000..6d1a78c --- /dev/null +++ b/webAO/dom/setChatbox.ts @@ -0,0 +1,28 @@ +import { CHATBOX, setCHATBOX } from "../client"; +import chatbox_arr from "../styles/chatbox/chatboxes.js"; +import setCookie from "../utils/setCookie"; + +/** + * Set the style of the chatbox + */ +export function setChatbox(style: string) { + const chatbox_theme = ( + document.getElementById("chatbox_theme") + ); + const themeselect = ( + document.getElementById("client_chatboxselect") + ); + setCHATBOX(themeselect.value); + + setCookie("chatbox", CHATBOX); + if (CHATBOX === "dynamic") { + if (chatbox_arr.includes(style)) { + chatbox_theme.href = `styles/chatbox/${style}.css`; + } else { + chatbox_theme.href = "styles/chatbox/aa.css"; + } + } else { + chatbox_theme.href = `styles/chatbox/${CHATBOX}.css`; + } +} +window.setChatbox = setChatbox; \ No newline at end of file diff --git a/webAO/dom/switchAspectRatio.ts b/webAO/dom/switchAspectRatio.ts new file mode 100644 index 0000000..79d4110 --- /dev/null +++ b/webAO/dom/switchAspectRatio.ts @@ -0,0 +1,19 @@ +/** + * Triggered by the change aspect ratio checkbox + */ +export async function switchAspectRatio() { + const background = document.getElementById("client_gamewindow")!; + const offsetCheck = ( + document.getElementById("client_hdviewport_offset") + ); + if ( + (document.getElementById("client_hdviewport")).checked + ) { + background.style.paddingBottom = "56.25%"; + offsetCheck.disabled = false; + } else { + background.style.paddingBottom = "75%"; + offsetCheck.disabled = true; + } +} +window.switchAspectRatio = switchAspectRatio; \ No newline at end of file diff --git a/webAO/dom/switchChatOffset.ts b/webAO/dom/switchChatOffset.ts new file mode 100644 index 0000000..6552cbd --- /dev/null +++ b/webAO/dom/switchChatOffset.ts @@ -0,0 +1,17 @@ +/** + * Triggered by the change aspect ratio checkbox + */ +export async function switchChatOffset() { + const container = document.getElementById("client_chatcontainer")!; + if ( + (document.getElementById("client_hdviewport_offset")) + .checked + ) { + container.style.width = "80%"; + container.style.left = "10%"; + } else { + container.style.width = "100%"; + container.style.left = "0"; + } +} +window.switchChatOffset = switchChatOffset; \ No newline at end of file diff --git a/webAO/dom/toggleMenu.ts b/webAO/dom/toggleMenu.ts new file mode 100644 index 0000000..6d5e1fc --- /dev/null +++ b/webAO/dom/toggleMenu.ts @@ -0,0 +1,18 @@ +import { selectedMenu, setSelectedMenu } from "../client"; + +/** + * Highlights and selects a menu. + * @param {number} menu the menu to be selected + */ +export function toggleMenu(menu: number) { + if (menu !== selectedMenu) { + document.getElementById(`menu_${menu}`)!.className = "menu_button active"; + document.getElementById(`content_${menu}`)!.className = + "menu_content active"; + document.getElementById(`menu_${selectedMenu}`)!.className = "menu_button"; + document.getElementById(`content_${selectedMenu}`)!.className = + "menu_content"; + setSelectedMenu(menu); + } +} +window.toggleMenu = toggleMenu; diff --git a/webAO/dom/window.ts b/webAO/dom/window.ts new file mode 100644 index 0000000..2535768 --- /dev/null +++ b/webAO/dom/window.ts @@ -0,0 +1,56 @@ +declare global { + interface Window { + toggleShout: (shout: number) => void; + toggleMenu: (menu: number) => void; + updateBackgroundPreview: () => void; + redHPP: () => void; + addHPP: () => void; + redHPD: () => void; + addHPD: () => void; + guilty: () => void; + notguilty: () => void; + initCE: () => void; + initWT: () => void; + callMod: () => void; + randomCharacterOOC: () => void; + changeRoleOOC: () => void; + changeBackgroundOOC: () => void; + updateActionCommands: (side: string) => void; + updateEvidenceIcon: () => void; + resizeChatbox: () => void; + setChatbox: (style: string) => void; + getIndexFromSelect: (select_box: string, value: string) => Number; + cancelEvidence: () => void; + deleteEvidence: () => void; + editEvidence: () => void; + addEvidence: () => void; + pickEvidence: (evidence: any) => void; + pickEmotion: (emo: any) => void; + pickChar: (ccharacter: any) => void; + chartable_filter: (_event: any) => void; + ReconnectButton: (_event: any) => void; + opusCheck: (channel: HTMLAudioElement) => OnErrorEventHandlerNonNull; + imgError: (image: any) => void; + charError: (image: any) => void; + changeCharacter: (_event: any) => void; + switchChatOffset: () => void; + switchAspectRatio: () => void; + switchPanTilt: (addcheck: number) => void; + iniedit: () => void; + modcall_test: () => void; + reloadTheme: () => void; + changeCallwords: () => void; + changeBlipVolume: () => void; + changeMusicVolume: () => void; + area_click: (el: any) => void; + showname_click: (_event: any) => void; + mutelist_click: (_event: any) => void; + musiclist_click: (_event: any) => void; + musiclist_filter: (_event: any) => void; + resetOffset: (_event: any) => void; + onEnter: (event: any) => void; + onReplayGo: (_event: any) => void; + onOOCEnter: (_event: any) => void; + } +} +export { } \ No newline at end of file -- cgit From 9b8f8c3f5310b6af15edf8ff933e2d63e05707a7 Mon Sep 17 00:00:00 2001 From: Caleb Date: Thu, 8 Sep 2022 12:13:14 -0400 Subject: Add Sender support --- webAO/dom/changeBackgroundOOC.ts | 2 +- webAO/dom/changeRoleOOC.ts | 2 +- webAO/dom/onEnter.ts | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) (limited to 'webAO/dom') diff --git a/webAO/dom/changeBackgroundOOC.ts b/webAO/dom/changeBackgroundOOC.ts index f840729..ff5aaaa 100644 --- a/webAO/dom/changeBackgroundOOC.ts +++ b/webAO/dom/changeBackgroundOOC.ts @@ -22,7 +22,7 @@ export function changeBackgroundOOC() { if (mode === "join") { client.sendOOC(`/${changeBGCommand.replace("$1", filename)}`); } else if (mode === "replay") { - client.sendSelf(`BN#${filename}#%`); + client.sender.sendSelf(`BN#${filename}#%`); } } window.changeBackgroundOOC = changeBackgroundOOC; \ No newline at end of file diff --git a/webAO/dom/changeRoleOOC.ts b/webAO/dom/changeRoleOOC.ts index d838cb3..ec7b65d 100644 --- a/webAO/dom/changeRoleOOC.ts +++ b/webAO/dom/changeRoleOOC.ts @@ -7,7 +7,7 @@ export function changeRoleOOC() { const roleselect = document.getElementById("role_select"); client.sendOOC(`/pos ${roleselect.value}`); - client.sendServer(`SP#${roleselect.value}#%`); + client.sender.sendServer(`SP#${roleselect.value}#%`); updateActionCommands(roleselect.value); } window.changeRoleOOC = changeRoleOOC; \ No newline at end of file diff --git a/webAO/dom/onEnter.ts b/webAO/dom/onEnter.ts index 01fbbd5..5ab532c 100644 --- a/webAO/dom/onEnter.ts +++ b/webAO/dom/onEnter.ts @@ -69,7 +69,7 @@ import { escapeChat } from "../encoding"; emote_mod = 0; } - client.sendIC( + client.sender.sendIC( myemo.deskmod, myemo.preanim, mychar.name, -- cgit From 776fe2f4241a67be354908df546f300f413a7d42 Mon Sep 17 00:00:00 2001 From: Caleb Date: Thu, 8 Sep 2022 22:20:32 -0400 Subject: I'm so sorry --- webAO/dom/addEvidence.ts | 2 +- webAO/dom/addHPD.ts | 2 +- webAO/dom/addHPP.ts | 2 +- webAO/dom/areaClick.ts | 2 +- webAO/dom/callMod.ts | 2 +- webAO/dom/changeBackgroundOOC.ts | 2 +- webAO/dom/changeRoleOOC.ts | 2 +- webAO/dom/deleteEvidence.ts | 2 +- webAO/dom/editEvidence.ts | 2 +- webAO/dom/guilty.ts | 2 +- webAO/dom/initCE.ts | 2 +- webAO/dom/initWT.ts | 2 +- webAO/dom/musicListClick.ts | 2 +- webAO/dom/notGuilty.ts | 2 +- webAO/dom/onOOCEnter.ts | 3 +-- webAO/dom/pickChar.ts | 2 +- webAO/dom/randomCharacterOOC.ts | 2 +- webAO/dom/redHPD.ts | 2 +- webAO/dom/redHPP.ts | 2 +- 19 files changed, 19 insertions(+), 20 deletions(-) (limited to 'webAO/dom') diff --git a/webAO/dom/addEvidence.ts b/webAO/dom/addEvidence.ts index 89bb4d5..8a13f06 100644 --- a/webAO/dom/addEvidence.ts +++ b/webAO/dom/addEvidence.ts @@ -8,7 +8,7 @@ import { cancelEvidence } from "./cancelEvidence"; const evidence_select = ( document.getElementById("evi_select") ); - client.sendPE( + client.sender.sendPE( (document.getElementById("evi_name")).value, (document.getElementById("evi_desc")).value, evidence_select.selectedIndex === 0 diff --git a/webAO/dom/addHPD.ts b/webAO/dom/addHPD.ts index 12d1c07..8f7e1f7 100644 --- a/webAO/dom/addHPD.ts +++ b/webAO/dom/addHPD.ts @@ -4,6 +4,6 @@ import { client } from "../client"; * Increment defense health point. */ export function addHPD() { - client.sendHP(1, client.hp[0] + 1); + client.sender.sendHP(1, client.hp[0] + 1); } window.addHPD = addHPD; \ No newline at end of file diff --git a/webAO/dom/addHPP.ts b/webAO/dom/addHPP.ts index 4a1521c..1379f7c 100644 --- a/webAO/dom/addHPP.ts +++ b/webAO/dom/addHPP.ts @@ -4,6 +4,6 @@ import { client } from "../client"; * Increment prosecution health point. */ export function addHPP() { - client.sendHP(2, client.hp[1] + 1); + client.sender.sendHP(2, client.hp[1] + 1); } window.addHPP = addHPP; \ No newline at end of file diff --git a/webAO/dom/areaClick.ts b/webAO/dom/areaClick.ts index 6c3ff6b..1b0fe52 100644 --- a/webAO/dom/areaClick.ts +++ b/webAO/dom/areaClick.ts @@ -5,7 +5,7 @@ import { client } from '../client' */ export function area_click(el: HTMLElement) { const area = client.areas[el.id.substr(4)].name; - client.sendMusicChange(area); + client.sender.sendMusicChange(area); const areaHr = document.createElement("div"); areaHr.className = "hrtext"; diff --git a/webAO/dom/callMod.ts b/webAO/dom/callMod.ts index 0c52433..a2e2685 100644 --- a/webAO/dom/callMod.ts +++ b/webAO/dom/callMod.ts @@ -10,7 +10,7 @@ export function callMod() { if (modcall == null || modcall === "") { // cancel } else { - client.sendZZ(modcall); + client.sender.sendZZ(modcall); } } window.callMod = callMod; \ No newline at end of file diff --git a/webAO/dom/changeBackgroundOOC.ts b/webAO/dom/changeBackgroundOOC.ts index ff5aaaa..1608ebe 100644 --- a/webAO/dom/changeBackgroundOOC.ts +++ b/webAO/dom/changeBackgroundOOC.ts @@ -20,7 +20,7 @@ export function changeBackgroundOOC() { if (mode === "join") { - client.sendOOC(`/${changeBGCommand.replace("$1", filename)}`); + client.sender.sendOOC(`/${changeBGCommand.replace("$1", filename)}`); } else if (mode === "replay") { client.sender.sendSelf(`BN#${filename}#%`); } diff --git a/webAO/dom/changeRoleOOC.ts b/webAO/dom/changeRoleOOC.ts index ec7b65d..7d89bee 100644 --- a/webAO/dom/changeRoleOOC.ts +++ b/webAO/dom/changeRoleOOC.ts @@ -6,7 +6,7 @@ import { client } from '../client' export function changeRoleOOC() { const roleselect = document.getElementById("role_select"); - client.sendOOC(`/pos ${roleselect.value}`); + client.sender.sendOOC(`/pos ${roleselect.value}`); client.sender.sendServer(`SP#${roleselect.value}#%`); updateActionCommands(roleselect.value); } diff --git a/webAO/dom/deleteEvidence.ts b/webAO/dom/deleteEvidence.ts index f007cdf..cd299e4 100644 --- a/webAO/dom/deleteEvidence.ts +++ b/webAO/dom/deleteEvidence.ts @@ -6,7 +6,7 @@ import { cancelEvidence } from "./cancelEvidence"; */ export function deleteEvidence() { const id = client.selectedEvidence - 1; - client.sendDE(id); + client.sender.sendDE(id); cancelEvidence(); } window.deleteEvidence = deleteEvidence; \ No newline at end of file diff --git a/webAO/dom/editEvidence.ts b/webAO/dom/editEvidence.ts index 2cc4565..931caad 100644 --- a/webAO/dom/editEvidence.ts +++ b/webAO/dom/editEvidence.ts @@ -9,7 +9,7 @@ export function editEvidence() { document.getElementById("evi_select") ); const id = client.selectedEvidence - 1; - client.sendEE( + client.sender.sendEE( id, (document.getElementById("evi_name")).value, (document.getElementById("evi_desc")).value, diff --git a/webAO/dom/guilty.ts b/webAO/dom/guilty.ts index f7fa5b8..f008065 100644 --- a/webAO/dom/guilty.ts +++ b/webAO/dom/guilty.ts @@ -4,6 +4,6 @@ import { client } from "../client"; * Declare the defendant not guilty */ export function guilty() { - client.sendRT("judgeruling#1"); + client.sender.sendRT("judgeruling#1"); } window.guilty = guilty; \ No newline at end of file diff --git a/webAO/dom/initCE.ts b/webAO/dom/initCE.ts index 87bc256..fd57d74 100644 --- a/webAO/dom/initCE.ts +++ b/webAO/dom/initCE.ts @@ -4,6 +4,6 @@ import { client } from "../client"; * Declare cross examination. */ export function initCE() { - client.sendRT("testimony2"); + client.sender.sendRT("testimony2"); } window.initCE = initCE; \ No newline at end of file diff --git a/webAO/dom/initWT.ts b/webAO/dom/initWT.ts index b6268fc..d99fc3e 100644 --- a/webAO/dom/initWT.ts +++ b/webAO/dom/initWT.ts @@ -4,6 +4,6 @@ import { client } from "../client"; * Declare witness testimony. */ export function initWT() { - client.sendRT("testimony1"); + client.sender.sendRT("testimony1"); } window.initWT = initWT; \ No newline at end of file diff --git a/webAO/dom/musicListClick.ts b/webAO/dom/musicListClick.ts index 8fd3be5..2243553 100644 --- a/webAO/dom/musicListClick.ts +++ b/webAO/dom/musicListClick.ts @@ -7,7 +7,7 @@ export function musiclist_click(_event: Event) { const playtrack = (( document.getElementById("client_musiclist") )).value; - client.sendMusicChange(playtrack); + client.sender.sendMusicChange(playtrack); // This is here so you can't actually select multiple tracks, // even though the select tag has the multiple option to render differently diff --git a/webAO/dom/notGuilty.ts b/webAO/dom/notGuilty.ts index e15ee4b..95b830b 100644 --- a/webAO/dom/notGuilty.ts +++ b/webAO/dom/notGuilty.ts @@ -4,6 +4,6 @@ import { client } from "../client"; * Declare the defendant not guilty */ export function notguilty() { - client.sendRT("judgeruling#0"); + client.sender.sendRT("judgeruling#0"); } window.notguilty = notguilty; \ No newline at end of file diff --git a/webAO/dom/onOOCEnter.ts b/webAO/dom/onOOCEnter.ts index a6bde4c..d7ec21b 100644 --- a/webAO/dom/onOOCEnter.ts +++ b/webAO/dom/onOOCEnter.ts @@ -4,9 +4,8 @@ import { client } from "../client"; * @param {KeyboardEvent} event */ export function onOOCEnter(event: KeyboardEvent) { - console.log('FUCK') if (event.keyCode === 13) { - client.sendOOC( + client.sender.sendOOC( (document.getElementById("client_oocinputbox")).value ); (document.getElementById("client_oocinputbox")).value = diff --git a/webAO/dom/pickChar.ts b/webAO/dom/pickChar.ts index 5773125..82fb6af 100644 --- a/webAO/dom/pickChar.ts +++ b/webAO/dom/pickChar.ts @@ -11,6 +11,6 @@ export function pickChar(ccharacter: number) { document.getElementById("client_waiting")!.style.display = "none"; document.getElementById("client_charselect")!.style.display = "none"; } - client.sendCharacter(ccharacter); + client.sender.sendCharacter(ccharacter); } window.pickChar = pickChar; \ No newline at end of file diff --git a/webAO/dom/randomCharacterOOC.ts b/webAO/dom/randomCharacterOOC.ts index 507c3f0..657a474 100644 --- a/webAO/dom/randomCharacterOOC.ts +++ b/webAO/dom/randomCharacterOOC.ts @@ -3,6 +3,6 @@ import { client } from '../client' * Random character via OOC. */ export function randomCharacterOOC() { - client.sendOOC(`/randomchar`); + client.sender.sendOOC(`/randomchar`); } window.randomCharacterOOC = randomCharacterOOC; \ No newline at end of file diff --git a/webAO/dom/redHPD.ts b/webAO/dom/redHPD.ts index 7b47c23..e228d21 100644 --- a/webAO/dom/redHPD.ts +++ b/webAO/dom/redHPD.ts @@ -4,6 +4,6 @@ import { client } from "../client"; * Decrement defense health point. */ export function redHPD() { - client.sendHP(1, client.hp[0] - 1); + client.sender.sendHP(1, client.hp[0] - 1); } window.redHPD = redHPD; \ No newline at end of file diff --git a/webAO/dom/redHPP.ts b/webAO/dom/redHPP.ts index fb6711e..efde941 100644 --- a/webAO/dom/redHPP.ts +++ b/webAO/dom/redHPP.ts @@ -4,6 +4,6 @@ import { client } from "../client"; * Decrement prosecution health point. */ export function redHPP() { - client.sendHP(2, client.hp[1] - 1); + client.sender.sendHP(2, client.hp[1] - 1); } window.redHPP = redHPP; \ No newline at end of file -- cgit From e50167a8077b0ada769cdf785971972c3ad865f7 Mon Sep 17 00:00:00 2001 From: Caleb Date: Fri, 9 Sep 2022 18:30:07 -0400 Subject: Pulled out everything I wanted --- webAO/dom/showNameClick.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'webAO/dom') diff --git a/webAO/dom/showNameClick.ts b/webAO/dom/showNameClick.ts index 265f6c8..3e48b70 100644 --- a/webAO/dom/showNameClick.ts +++ b/webAO/dom/showNameClick.ts @@ -5,7 +5,7 @@ import setCookie from "../utils/setCookie"; * Triggered when the showname checkboc is clicked * @param {MouseEvent} event */ -export function showname_click(_event: Event) { +export function showname_click(_event: Event | null) { setCookie( "showname", String((document.getElementById("showname")).checked) -- cgit From 93979636fb5d1c60f0da3290e80eb3ca9ead992f Mon Sep 17 00:00:00 2001 From: Caleb Date: Fri, 9 Sep 2022 18:46:42 -0400 Subject: Migrated functions --- webAO/dom/iniEdit.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'webAO/dom') diff --git a/webAO/dom/iniEdit.ts b/webAO/dom/iniEdit.ts index 359a226..0710de9 100644 --- a/webAO/dom/iniEdit.ts +++ b/webAO/dom/iniEdit.ts @@ -1,4 +1,5 @@ import { client } from "../client"; +import { handleCharacterInfo } from "../client/handleCharacterInfo"; import { packetHandler } from "../packets/packetHandler"; /** @@ -8,7 +9,7 @@ export async function iniedit() { const ininame = (document.getElementById("client_ininame")) .value; const inicharID = client.charID; - await client.handleCharacterInfo(ininame.split("&"), inicharID); + await handleCharacterInfo(ininame.split("&"), inicharID); packetHandler.get("PV")!(`PV#0#CID#${inicharID}`.split("#")); } window.iniedit = iniedit; -- cgit From 108636666d474119892c4b3a2f3beadb767b006e Mon Sep 17 00:00:00 2001 From: Caleb Date: Sat, 10 Sep 2022 11:09:49 -0400 Subject: Structured viewport a little differently --- webAO/dom/changeBlipVolume.ts | 15 +++++++++++++++ 1 file changed, 15 insertions(+) create mode 100644 webAO/dom/changeBlipVolume.ts (limited to 'webAO/dom') diff --git a/webAO/dom/changeBlipVolume.ts b/webAO/dom/changeBlipVolume.ts new file mode 100644 index 0000000..572f389 --- /dev/null +++ b/webAO/dom/changeBlipVolume.ts @@ -0,0 +1,15 @@ +import setCookie from "../utils/setCookie"; +import { client } from '../client' +/** + * Triggered by the blip volume slider. + */ +export const changeBlipVolume = () => { + const blipVolume = (( + document.getElementById("client_bvolume") + )).value; + client.viewport.blipChannels.forEach( + (channel: HTMLAudioElement) => (channel.volume = Number(blipVolume)) + ); + setCookie("blipVolume", blipVolume); +} +window.changeBlipVolume = changeBlipVolume; -- cgit From 766bef212c09dc85a7afda085cbb9690f985ed8f Mon Sep 17 00:00:00 2001 From: Caleb Date: Sun, 11 Sep 2022 15:42:34 -0400 Subject: Music volume moved out of viewport --- webAO/dom/changeMusicVolume.ts | 14 ++++++++++++++ 1 file changed, 14 insertions(+) create mode 100644 webAO/dom/changeMusicVolume.ts (limited to 'webAO/dom') diff --git a/webAO/dom/changeMusicVolume.ts b/webAO/dom/changeMusicVolume.ts new file mode 100644 index 0000000..9e5d51a --- /dev/null +++ b/webAO/dom/changeMusicVolume.ts @@ -0,0 +1,14 @@ +import { client } from '../client' +import setCookie from '../utils/setCookie'; + +export const changeMusicVolume = (volume: number = -1) => { + const clientVolume = Number( + (document.getElementById("client_mvolume")).value + ); + let musicVolume = volume === -1 ? clientVolume : volume; + client.viewport.music.forEach( + (channel: HTMLAudioElement) => (channel.volume = musicVolume) + ); + setCookie("musicVolume", String(musicVolume)); +}; +window.changeMusicVolume = changeMusicVolume; \ No newline at end of file -- cgit From 3929d4cc4c217738cdda8ec02d1668d0fea20935 Mon Sep 17 00:00:00 2001 From: Caleb Date: Sun, 11 Sep 2022 16:26:37 -0400 Subject: Refactor theme --- webAO/dom/reloadTheme.ts | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) create mode 100644 webAO/dom/reloadTheme.ts (limited to 'webAO/dom') diff --git a/webAO/dom/reloadTheme.ts b/webAO/dom/reloadTheme.ts new file mode 100644 index 0000000..bfa46b6 --- /dev/null +++ b/webAO/dom/reloadTheme.ts @@ -0,0 +1,16 @@ +import { client } from '../client' +import setCookie from '../utils/setCookie'; + +/** + * Triggered by the theme selector. + */ +export const reloadTheme = () => { + client.viewport.setTheme((document.getElementById("client_themeselect")) + .value); + + setCookie("theme", client.viewport.getTheme()); + (( + document.getElementById("client_theme") + )).href = `styles/${client.viewport.getTheme()}.css`; +} +window.reloadTheme = reloadTheme; \ No newline at end of file -- cgit