diff options
| -rw-r--r-- | webAO/client.css | 42 | ||||
| -rw-r--r-- | webAO/client.js | 68 |
2 files changed, 98 insertions, 12 deletions
diff --git a/webAO/client.css b/webAO/client.css index 04d7bb3..6cea13a 100644 --- a/webAO/client.css +++ b/webAO/client.css @@ -144,10 +144,6 @@ img { width: 100%; } -.area_btn { - width: 20%; -} - #client_court { position: absolute; height: 100%; @@ -508,9 +504,8 @@ img { font-size: 1.5em; } -.location-box { +.area-button { border-style: solid; - background-color: #7B2900; min-width: 120px; margin: 5px; display: inline-block; @@ -519,8 +514,41 @@ img { border-color: white; border-width: 1px; cursor: pointer; + color: #000; } -.location-box:hover { +.area-button:hover { border-color: #FFD081; +} + +.area-default { + background-color: rgb(54,198,68); +} + +.area-looking { + background-color: rgb(255,255,0); +} + +.area-casing { + background-color: rgb(255,166,0); +} + +.area-recess { + background-color: rgb(255,190,30); +} + +.area-rp { + background-color: rgb(200,52,252); +} + +.area-gaming { + background-color: rgb(55,255,255); +} + +.area-locked { + background-color: rgb(127,127,127); +} + +.area-spectatable { + background-color: rgb(54,198,68); }
\ No newline at end of file diff --git a/webAO/client.js b/webAO/client.js index 846259e..dd788b8 100644 --- a/webAO/client.js +++ b/webAO/client.js @@ -94,6 +94,7 @@ class Client extends EventEmitter { this.chars = []; this.emotes = []; this.evidences = []; + this.areas = []; this.resources = { "holdit": { @@ -717,8 +718,15 @@ class Client extends EventEmitter { } else { // Create area button const newarea = document.createElement("SPAN"); - newarea.className = "location-box"; + newarea.classList = "area-button area-default"; + newarea.id = "area" + i; newarea.textContent = args[i]; + this.areas[i] = { + name: safe_tags(args[i]), + players: 0, + status: "IDLE" + }; + newarea.onclick = function () { area_click(this); }; @@ -879,11 +887,61 @@ class Client extends EventEmitter { /** * Handle the change of players in an area. - * webAO doesn't have this feature yet, but i want the warning to go away. + * ARUP#0#20#8#2#0#5#2#4#1#5#% * @param {Array} args packet arguments */ - handleARUP(_args) { - // TODO: webAO doesn't have this feature yet + handleARUP(args) { + args = args.slice(1); + + switch(args[0]) { + case "0": + for (let i = 1; i < args.length - 1; i++) { + this.areas[i].players = args[i]; + const thisarea = document.getElementById("area" + i); + thisarea.textContent = `${this.areas[i].name} (${args[i]})` ; + } + break; + case "1": + for (let i = 1; i < args.length - 1; i++) { + this.areas[i].status = args[i]; + const thisarea = document.getElementById("area" + i); + + switch (args[i]) { + case "LOCKED": + thisarea.classList = "area-button area-locked"; + break; + case "LOOKING-FOR-PLAYERS": + thisarea.classList = "area-button area-looking"; + break; + case "CASING": + thisarea.classList = "area-button area-casing"; + break; + case "RECESS": + thisarea.classList = "area-button area-recess"; + break; + case "RP": + thisarea.classList = "area-button area-rp"; + break; + case "GAMING": + thisarea.classList = "area-button area-gaming"; + break; + case "SPECTATABLE": + thisarea.classList = "area-button area-spectatable"; + break; + default: + thisarea.classList = "area-button area-default"; + break; + } + + } + break; + case "2": + break; + case "3": + break; + } + + } /** @@ -1617,7 +1675,7 @@ window.showname_click = showname_click; * @param {MouseEvent} event */ export function area_click(el) { - const area = el.textContent; + const area = client.areas[el.id.substr(4)].name; client.sendMusicChange(area); const areaHr = document.createElement("div"); |
