Add multi/sub decks
This commit is contained in:
parent
8de882f012
commit
2d3fe0df9b
4 changed files with 42 additions and 19 deletions
|
@ -6,7 +6,9 @@ socket.on("connected", () => {
|
|||
socket.emit("getDeck");
|
||||
});
|
||||
|
||||
socket.on("getDeck", data => {
|
||||
socket.on("getDeck", d => {
|
||||
console.log(d);
|
||||
let data = d.data, name = d.name;
|
||||
deck.innerHTML = "";
|
||||
|
||||
for (let x = 0; x < data.x; x++) {
|
||||
|
@ -22,7 +24,7 @@ socket.on("getDeck", data => {
|
|||
|
||||
for (const [x, cols] of Object.entries(data.rows))
|
||||
for (const [y, col] of Object.entries(cols)) {
|
||||
const e = document.getElementById(`r${x}c${y}`);
|
||||
let e = document.getElementById(`r${x}c${y}`);
|
||||
if (e) {
|
||||
if (col.image)
|
||||
e.insertAdjacentHTML("beforeend", `<img src="${col.image}" alt="${col.text}">`);
|
||||
|
@ -31,7 +33,7 @@ socket.on("getDeck", data => {
|
|||
|
||||
e.addEventListener("click", ev => {
|
||||
ev.stopPropagation();
|
||||
socket.emit("trigger", [x, y]);
|
||||
socket.emit("trigger", [name, x, y]);
|
||||
})
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,5 +1,10 @@
|
|||
const db = require("../db.json");
|
||||
|
||||
|
||||
module.exports = socket => {
|
||||
return () => {
|
||||
socket.emit("getDeck", require("../db.json").deck);
|
||||
return name => {
|
||||
if (!name)
|
||||
name = "default";
|
||||
socket.emit("getDeck", {name: name, data: db.decks[name]});
|
||||
}
|
||||
};
|
||||
|
|
|
@ -3,21 +3,27 @@ const db = require("../db.json");
|
|||
module.exports = socket => {
|
||||
return data => {
|
||||
let err = null;
|
||||
if (data && Array.isArray(data) && data.length === 2) {
|
||||
const el = db.deck.rows[data[0]][data[1]];
|
||||
if (el) {
|
||||
try {
|
||||
const type = require("../types/" + el.type);
|
||||
type.trigger(el, socket);
|
||||
} catch (exc) {
|
||||
if (exc.code === "MODULE_NOT_FOUND")
|
||||
err = "typeNotFound";
|
||||
else
|
||||
err = "unknown";
|
||||
if (data && Array.isArray(data) && data.length === 3) {
|
||||
if (db.decks[data[0]]) {
|
||||
const el = db.decks[data[0]].rows[data[1]][data[2]];
|
||||
|
||||
if (el) {
|
||||
try {
|
||||
const type = require("../types/" + el.type);
|
||||
type.trigger(el, socket);
|
||||
} catch (exc) {
|
||||
if (exc.code === "MODULE_NOT_FOUND")
|
||||
err = "typeNotFound";
|
||||
else {
|
||||
err = "unknown";
|
||||
console.error(exc)
|
||||
}
|
||||
}
|
||||
} else {
|
||||
err = "notFound";
|
||||
}
|
||||
} else {
|
||||
err = "notFound";
|
||||
}
|
||||
} else
|
||||
err = "deckNotFound";
|
||||
} else
|
||||
err = "badData";
|
||||
if (err)
|
||||
|
|
10
types/deck.js
Normal file
10
types/deck.js
Normal file
|
@ -0,0 +1,10 @@
|
|||
const db = require("../db.json");
|
||||
|
||||
|
||||
module.exports.trigger = (el, socket) => {
|
||||
if (typeof el.options === "string") {
|
||||
socket.emit("getDeck", {name: el.options, data: db.decks[el.options]});
|
||||
}
|
||||
else
|
||||
socket.emit("trigger", {error: "invalidOptions"});
|
||||
};
|
Loading…
Reference in a new issue