- {
- notifyRoom(page, obj.code, {data:obj.data});
- const mygamesPg = "/mygames";
- if (obj.code == "newmove" && clients[mygamesPg])
- {
- // Relay newmove info to myGames page
- // NOTE: the move itself is not needed (for now at least)
- const newmoveForMygames = {
- gid: page.split("/")[2] //format is "/game/gid"
- };
- obj.data.players.forEach(pSid => {
- if (clients[mygamesPg][pSid])
- {
- Object.keys(clients[mygamesPg][pSid]).forEach(x => {
- send(
- clients[mygamesPg][pSid][x],
- {code:"newmove", data:newmoveForMygames}
- );
- });
- }
+ notifyRoom(page, obj.code, {data: obj.data});
+ break;
+
+ case "newmove": {
+ const dataWithFrom = { from: [sid,tmpId], data: obj.data };
+ // Special case re-send newmove only to opponent:
+ if (!!obj.target && !!clients[page][obj.target]) {
+ Object.keys(clients[page][obj.target]).forEach(x => {
+ send(
+ clients[page][obj.target][x],
+ Object.assign({ code: "newmove" }, dataWithFrom)
+ );