return playerList;
},
},
+ watch: {
+ // Watch event "user infos retrieved" (through /whoami)
+ "st.user.id": function(newId) {
+ if (newId > 0) //should always be the case
+ {
+ // Ask server for current corr games (all but mines)
+ // ajax(
+ // "/games",
+ // "GET",
+ // {excluded: this.st.user.id},
+ // response => {
+ // this.games = this.games.concat(response.games);
+ // }
+ // );
+ // Also ask for corr challenges (open + sent to me)
+ ajax(
+ "/challenges",
+ "GET",
+ {uid: this.st.user.id},
+ response => {
+ console.log(response.challenges);
+ // TODO: post-treatment on challenges ?
+ this.challenges = this.challenges.concat(response.challenges);
+ }
+ );
+ }
+ },
+ },
created: function() {
// Always add myself to players' list
this.players.push(this.st.user);
- // Ask server for current corr games (all but mines)
-// ajax(
-// "/games",
-// "GET",
-// {excluded: this.st.user.id},
-// response => {
-// this.games = this.games.concat(response.games);
-// }
-// );
- // Also ask for corr challenges (open + personal to me)
- ajax(
- "/challenges",
- "GET",
- {uid: this.st.user.id},
- response => {
- console.log(response.challenges);
- // TODO: post-treatment on challenges ?
- this.challenges = this.challenges.concat(response.challenges);
- }
- );
// 0.1] Ask server for room composition:
const socketOpenListener = () => {
this.st.conn.send(JSON.stringify({code:"pollclients"}));
}
case "deletechallenge":
{
+ console.log("receive delete");
ArrayFun.remove(this.challenges, c => c.id == data.cid);
break;
}
{
this.players.push({name:"", id:0, sid:data.sid});
this.st.conn.send(JSON.stringify({code:"askidentity", target:data.sid}));
- this.st.conn.send(JSON.stringify({code:"askchallenge", target:sid}));
- this.st.conn.send(JSON.stringify({code:"askgame", target:sid}));
+ this.st.conn.send(JSON.stringify({code:"askchallenge", target:data.sid}));
+ this.st.conn.send(JSON.stringify({code:"askgame", target:data.sid}));
break;
}
case "disconnect":
// * - prepare and start new game (if challenge is full after acceptation)
// * --> include challenge ID (so that opponents can delete the challenge too)
clickChallenge: function(c) {
+
+ console.log(c);
+
if (!!c.accepted)
{
this.st.conn.send(JSON.stringify({code: "withdrawchallenge",
else if (c.from.sid == this.st.user.sid
|| (this.st.user.id > 0 && c.from.id == this.st.user.id))
{
+ console.log("send delete");
// It's my challenge: cancel it
this.sendSomethingTo(c.to, "deletechallenge", {cid:c.id});
ArrayFun.remove(this.challenges, ch => ch.id == c.id);
}
}
},
- // c.type == corr alors use id...sinon sid (figés)
- // NOTE: only for live games ?
+ // NOTE: for live games only (corr games are launched on server)
launchGame: async function(c) {
// Just assign colors and pass the message
const vname = this.getVname(c.vid);