summaryrefslogtreecommitdiff
path: root/webcards/scripts/client
diff options
context:
space:
mode:
Diffstat (limited to 'webcards/scripts/client')
-rw-r--r--webcards/scripts/client/client.js105
-rw-r--r--webcards/scripts/client/lobby.js102
-rw-r--r--webcards/scripts/client/message.js14
-rw-r--r--webcards/scripts/client/sock.js52
-rw-r--r--webcards/scripts/client/table.js16
5 files changed, 0 insertions, 289 deletions
diff --git a/webcards/scripts/client/client.js b/webcards/scripts/client/client.js
deleted file mode 100644
index b5dd4bf..0000000
--- a/webcards/scripts/client/client.js
+++ /dev/null
@@ -1,105 +0,0 @@
-// Client acts as the message hub for the whole game.
-// WebSocket messages come into Client and Client redirects them to the lobby or table based on the state of the game.
-// Client also performs the handshake for first starting the connection and messages everyone if the connection errors or closes.
-function Client(serveraddr, game) {
- this.state = "handshake";
-
- this.soc = new SockWorker(serveraddr, "1", this.cb.bind(this));
-
- this.lob = new Lobby(document.getElementsByClassName("lobby")[0], this.soc);
- this.tab = new Table(document.getElementsByClassName("table")[0], this.soc);
-
- this.game = game;
-}
-
-Client.prototype = {
- init: function() {
- this.soc.init();
- },
-
- // Entry point for a message.
- // If it's a close message, the
- cb: function(m) {
- console.log(m);
-
- if(m.type == "error" || m.type == "closed") {
- var t = m.type;
- t = t[0].toUpperCase() + t.slice(1)
- this.lob.setState(t, "#D00", this.soc.server);
- this.tab.handleClose();
- return;
- }
-
- switch(this.state) {
- case "handshake":
- this.handshake(m);
- break;
- case "lobby":
- this.lobby(m);
- break;
- case "game":
- break;
- }
- },
-
- handshake: function(m) {
- switch (m.type) {
- case "verr":
- this.soc.close();
- alert(`Error connecting to server: version of client (${this.version}) not accepted.`);
- console.error("Error connecting to server: version of client (${this.version}) not accepted.");
- console.error(m.data);
- return;
- case "lobby":
- this.state = "lobby";
- this.soc.send("ready", "");
- return;
- }
- },
-
- lobby: function (m) {
- switch (m.type) {
- case "plist":
- this.lob.packList(m.data);
- break;
- case "glist":
- this.lob.gameList(m.data, this.game);
- this.game = null;
- break;
- case "players":
- this.lob.players(m.data);
- break;
- case "gdel":
- this.lob.removeGame(m.data);
- break;
- case "gadd":
- this.lob.addGame(m.data);
- break;
- case "pdel":
- this.lob.removePlayer(m.data);
- break;
- case "padd":
- this.lob.addPlayer(m.data);
- break;
- case "pmove":
- this.lob.movePlayer(m.data);
- break;
- }
- },
-
- game: function (m) {
- switch (m.type) {
-
- }
- },
-
- // Reset the lobby and table, then attempt to reopen the connection to the server.
- reset: function() {
- this.state = "handshake";
-
- this.lob.reset();
- this.tab.reset();
-
- this.soc.init();
- }
-};
diff --git a/webcards/scripts/client/lobby.js b/webcards/scripts/client/lobby.js
deleted file mode 100644
index 8d46352..0000000
--- a/webcards/scripts/client/lobby.js
+++ /dev/null
@@ -1,102 +0,0 @@
-// Lobby manages the players and games provided by the server and allows users to join or create their own games.
-function Lobby(el){
- this.root = el;
-
- this.elements = {
- status: this.root.getElementsByClassName("status")[0],
- addr: this.root.getElementsByClassName("addr")[0],
-
- stats: {
- game: document.getElementById("game"),
- packs: document.getElementById("packs"),
- online: document.getElementById("online"),
- ingame: document.getElementById("ingame"),
- pubgame: document.getElementById("pubgame")
- },
-
- settings: {
- name: document.getElementById("name"),
- color: document.getElementById("usercolor")
- }
- };
-
- this.top = new TopBar(document.getElementsByClassName("topbar")[0]);
-
- this.init = false;
- this.online = [];
- this.games = [];
- this.packs = [];
- this.players = [];
-}
-
-Lobby.prototype = {
- packList: function(data){
-
- this.elements.stats.packs.innerText = this.packs.length();
- },
-
- gameList: function(data, game){
-
- this.elements.stats.pubgame.innerText = this.games.length();
- },
-
- players: function(data) {
-
- this.elements.stats.online.innerText = this.players.length();
- this.init = true;
- },
-
- addGame: function(data){
-
- },
-
- removeGame: function(data){
-
- },
-
- addPlayer: function(data){
-
- },
-
- movePlayer: function(data){
-
- },
-
- removePlayer: function(data){
-
- },
-
- newGameScreen: function(){
- if(this.init) return;
- },
-
- setState: function(text, color, server){
- this.elements.status.style.backgroundColor = color;
- this.elements.status.innerText = text;
- this.elements.addr.innerText = server;
- this.top.setColor(color);
- },
-
- reset: function(){
- this.setState("Connecting", "#DA0", this.elements.addr.innerText);
- this.init = false;
- }
-};
-
-// ###############
-// # TopBar Code #
-// ###############
-
-function TopBar(el) {
- this.root = el;
-
- this.newGame = el.getElementsByClassName("new-game")[0];
- this.mobileSettings = el.getElementsByClassName("mobile-settings")[0];
- this.status = el.getElementsByClassName("status")[0];
-}
-
-TopBar.prototype = {
- setColor: function(color) {
- this.status.style.backgroundColor = color;
- }
-};
diff --git a/webcards/scripts/client/message.js b/webcards/scripts/client/message.js
deleted file mode 100644
index 5e821c4..0000000
--- a/webcards/scripts/client/message.js
+++ /dev/null
@@ -1,14 +0,0 @@
-function Message(type, data){
- this.t = type;
- this.d = data;
-}
-
-Message.prototype = {
- stringify: function(){
- var dat = this.d
- if(typeof dat !== "string"){
- dat = JSON.stringify(dat);
- }
- return JSON.stringify({type: this.t, data: dat});
- }
-};
diff --git a/webcards/scripts/client/sock.js b/webcards/scripts/client/sock.js
deleted file mode 100644
index 78c4195..0000000
--- a/webcards/scripts/client/sock.js
+++ /dev/null
@@ -1,52 +0,0 @@
-function SockWorker(serveraddr, version, callback) {
- this.server = serveraddr;
- this.version = version;
- this.cb = callback;
-}
-
-SockWorker.prototype = {
- init: function() {
- if(this.server == "" || this.server == null) {
- return;
- }
- try {
- this.socket = new WebSocket(this.server);
-
- this.socket.addEventListener("open", this.o.bind(this));
- this.socket.addEventListener("message", this.msg.bind(this));
-
- this.socket.addEventListener("closed", this.c.bind(this));
- this.socket.addEventListener("error", this.err.bind(this));
- } catch (e) {
- this.err();
- }
- },
-
- o: function() {
- this.send("version", this.version);
- },
-
- msg: function(e) {
- if(typeof e.data == "string") {
- var dat = JSON.parse(e.data)
- this.cb(dat);
- }
- },
-
- c: function() {
- this.cb({type: "close", data: ""});
- },
-
- err: function() {
- this.cb({type: "error", data: ""});
- },
-
- close: function() {
- this.socket.close();
- },
-
- send: function(type, data) {
- var m = new Message(type, data);
- this.socket.send(m.stringify())
- }
-}; \ No newline at end of file
diff --git a/webcards/scripts/client/table.js b/webcards/scripts/client/table.js
deleted file mode 100644
index 911763a..0000000
--- a/webcards/scripts/client/table.js
+++ /dev/null
@@ -1,16 +0,0 @@
-// Table represents and manages the actual game. It accepts inputs from the server and tries to queries the server when the player makes a move.
-function Table(el, soc) {
- this.root = el;
- this.soc = soc;
-}
-
-Table.prototype = {
-
- handleClose: function() {
-
- },
-
- reset: function() {
-
- }
-} \ No newline at end of file