mirror of https://github.com/bra1n/townsquare.git
save data, add keyboard shortcuts
This commit is contained in:
parent
dfaa64f6e9
commit
cb12ce5950
41
src/App.vue
41
src/App.vue
|
@ -1,5 +1,5 @@
|
||||||
<template>
|
<template>
|
||||||
<div id="app">
|
<div id="app" @keyup="keyup" tabindex="-1">
|
||||||
<TownInfo :players="players"></TownInfo>
|
<TownInfo :players="players"></TownInfo>
|
||||||
<TownSquare
|
<TownSquare
|
||||||
:is-public="isPublic"
|
:is-public="isPublic"
|
||||||
|
@ -10,16 +10,16 @@
|
||||||
<font-awesome-icon icon="cogs" @click="isControlOpen = !isControlOpen"/>
|
<font-awesome-icon icon="cogs" @click="isControlOpen = !isControlOpen"/>
|
||||||
<ul v-if="isControlOpen">
|
<ul v-if="isControlOpen">
|
||||||
<li v-on:click="togglePublic">
|
<li v-on:click="togglePublic">
|
||||||
Toggle Grimoire
|
Toggle <em>G</em>rimoire
|
||||||
</li>
|
</li>
|
||||||
<li v-on:click="addPlayer" v-if="players.length < 20">
|
<li v-on:click="addPlayer" v-if="players.length < 20">
|
||||||
Add Player
|
<em>A</em>dd Player
|
||||||
</li>
|
</li>
|
||||||
<li v-on:click="togglePublic" v-if="players.length > 4">
|
<li v-on:click="togglePublic" v-if="players.length > 4">
|
||||||
Select Roles
|
Select Roles
|
||||||
</li>
|
</li>
|
||||||
<li v-on:click="randomizeSeatings" v-if="players.length > 2">
|
<li v-on:click="randomizeSeatings" v-if="players.length > 2">
|
||||||
Randomize Seatings
|
<em>R</em>andomize Seatings
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
|
@ -87,6 +87,33 @@ export default {
|
||||||
.sort((a, b) => a[0] - b[0])
|
.sort((a, b) => a[0] - b[0])
|
||||||
.map(a => a[1]);
|
.map(a => a[1]);
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
keyup({ key }) {
|
||||||
|
switch (key) {
|
||||||
|
case "g":
|
||||||
|
this.togglePublic();
|
||||||
|
break;
|
||||||
|
case "a":
|
||||||
|
this.addPlayer();
|
||||||
|
break;
|
||||||
|
case "r":
|
||||||
|
this.randomizeSeatings();
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
mounted() {
|
||||||
|
if (localStorage.players) {
|
||||||
|
this.players = JSON.parse(localStorage.players);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
watch: {
|
||||||
|
players: {
|
||||||
|
handler(newPlayers) {
|
||||||
|
console.log("new player", newPlayers);
|
||||||
|
localStorage.players = JSON.stringify(newPlayers);
|
||||||
|
},
|
||||||
|
deep: true
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
@ -117,6 +144,7 @@ body {
|
||||||
-moz-osx-font-smoothing: grayscale;
|
-moz-osx-font-smoothing: grayscale;
|
||||||
padding: 0;
|
padding: 0;
|
||||||
margin: 0;
|
margin: 0;
|
||||||
|
overflow: hidden;
|
||||||
}
|
}
|
||||||
|
|
||||||
* {
|
* {
|
||||||
|
@ -157,6 +185,11 @@ body {
|
||||||
&:hover {
|
&:hover {
|
||||||
background-color: red;
|
background-color: red;
|
||||||
}
|
}
|
||||||
|
em {
|
||||||
|
text-decoration: underline;
|
||||||
|
font-style: normal;
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -5,7 +5,7 @@
|
||||||
:class="{
|
:class="{
|
||||||
dead: player.hasDied,
|
dead: player.hasDied,
|
||||||
'no-vote': player.hasVoted,
|
'no-vote': player.hasVoted,
|
||||||
traveller: player.role.team === 'traveller'
|
traveller: player.role && player.role.team === 'traveller'
|
||||||
}"
|
}"
|
||||||
>
|
>
|
||||||
<div class="shroud" @click="toggleStatus()"></div>
|
<div class="shroud" @click="toggleStatus()"></div>
|
||||||
|
|
Loading…
Reference in New Issue