- myname: localStorage["username"] || "anonymous",
+// TODO: myname, opppnents (optional, different style), people
+// --> also show messages like "X offers draw ?" (probably not)
+
+
+myname: localStorage["username"] || "anonymous",
oppName: "anonymous", //opponent name, revealed after a game (if provided)
chats: [], //chat messages after human game
// Game logic on a variant page: 3 modes, analyze, computer or human
// TODO: envoyer juste "light move", sans FEN ni notation ...etc
// TODO: if I'm an observer and player(s) disconnect/reconnect, how to find me ?
+// onClick :: ask full game to remote player, and register as an observer in game
+// (use gameId to communicate)
+// on landing on game :: if gameId not found locally, check remotely
+// ==> il manque un param dans game : "remoteId"
Vue.component('my-game', {
// gameId: to find the game in storage (assumption: it exists)
// fen: to start from a FEN without identifiers (analyze mode)
}
},
loadGame: function() {
+ // TODO: ask game to remote peer if this.remoteId is set
+ // (or just if game not found locally)
+ // NOTE: if it's a corr game, ask it from server
const game = getGameFromStorage(this.gameId);
this.opponent.id = game.oppid; //opponent ID in case of running HH game
this.opponent.name = game.oppname; //maye be blank (if anonymous)
Vue.component('my-room', {
props: ["conn","settings"],
data: {
- something: "", //TODO
+ remoteGames: [],
+ corrGames: [],
},
// Modal new game, and then sub-components
template: `
<button @click="newGame">Launch game</button>
</div>
</div>
- <my-chat :conn="conn" :myname="myname" :people="people"></my-chat>
- <my-challenge-list :conn="conn"></my-challenge-list>
- <my-player-list :conn="conn"></my-player-list>
- <my-game-list :conn="conn" ........... my-local-game-list opposed to my-remote-ame-list ?! ...bof></my-game-list>
- onClick :: ask full game to remote player, and register as an observer in game
- (use gameId to communicate)
- on landing on game :: if gameId not found locally, check remotely
- ==> il manque un param dans game : "remoteId"
+ <div>
+ <my-chat :conn="conn" :myname="myname" :people="people"></my-chat>
+ <my-challenge-list :conn="conn"></my-challenge-list>
+ </div>
+ <div>
+ <my-player-list :conn="conn"></my-player-list>
+ // TODO: also corr games (of pther players)
+ // presentation ? table ?!
+ <my-game-summary v-for="g in remoteGames"
+ v-bind:vobj="g" v-bind:game="g" v-bind:key="g.id"
+ @click="() => showGame(g.id,g.uid)">
+ </my-game-summary>
+ </div>
</div>
`,
created: function() {
+ // TODO: ask server for current corr games (all but mines)
const socketMessageListener = msg => {
const data = JSON.parse(msg.data);
switch (data.code)
{
+ // TODO: also receive remote games summaries (update)
+ // (just players names, time control, and ID + player ID)
case "newgame": //challenge accepted
// oppid: opponent socket ID (or DB id if registered)
this.newGame("human", data.fen, data.color, data.oppid, data.gameid);