add deck, add table view

This commit is contained in:
Alberto Xamin 2020-11-20 18:40:44 +01:00
parent c3e3711afe
commit ed04066d10
No known key found for this signature in database
GPG Key ID: 4F026F48309500A2
3 changed files with 60 additions and 3 deletions

View File

@ -120,7 +120,7 @@ export default {
-webkit-font-smoothing: antialiased; -webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale; -moz-osx-font-smoothing: grayscale;
color: #2c3e50; color: #2c3e50;
margin: 60px; margin: 16pt;
} }
h1,h2,h3,h4,p,span{ h1,h2,h3,h4,p,span{
font-family: Avenir, Helvetica, Arial, sans-serif; font-family: Avenir, Helvetica, Arial, sans-serif;

View File

@ -0,0 +1,45 @@
<template>
<div class="deck">
<!-- <div v-if="lastScrap != null" :class="{ card:true, equipment: lastScrap.is_equipment }">
<h3>{{lastScrap.name}}</h3>
<emoji>{{lastScrap.icon}}</emoji>
<span>{{lastScrap.number}}{{lastScrap.suit}}</span>
</div> -->
<div style="position:relative">
<div class="card back" style="position:absolute; bottom:-3pt;right:-2pt;"/>
<div class="card back" style="position:absolute; bottom:-1pt;right:-1pt;"/>
<card :card="card" class="back"/>
</div>
</div>
</template>
<script>
import Card from '@/components/Card.vue'
export default {
name: 'Deck',
components: {
Card,
},
data: () => ({
card: {
name: 'PewPew!',
icon: '💥',
},
}),
sockets: {
},
methods: {
},
}
</script>
<style scoped>
.deck {
display:flex;
margin:0;
align-items: center;
justify-content: center;
}
</style>

View File

@ -3,10 +3,13 @@
<h1>Lobby: {{ lobbyName }}</h1> <h1>Lobby: {{ lobbyName }}</h1>
<h3>Giocatori</h3> <h3>Giocatori</h3>
<div style="display:flex"> <div style="display:flex">
<div style="position: relative;width:260pt;height:400pt;">
<Card v-for="p in playersTable" v-bind:key="p" :card="p.card" :style="p.style"/>
</div>
<Card v-if="startGameCard" :card="startGameCard" @click.native="startGame"/> <Card v-if="startGameCard" :card="startGameCard" @click.native="startGame"/>
<Card v-for="p in players" v-bind:key="p" :card="getPlayerCard(p)"/>
</div> </div>
<div v-if="started"> <div v-if="started">
<deck/>
<player/> <player/>
</div> </div>
<chat/> <chat/>
@ -19,6 +22,7 @@ import Card from '@/components/Card.vue'
import Chooser from './Chooser.vue' import Chooser from './Chooser.vue'
import Chat from './Chat.vue' import Chat from './Chat.vue'
import Player from './Player.vue' import Player from './Player.vue'
import Deck from './Deck.vue'
export default { export default {
name: 'Lobby', name: 'Lobby',
@ -27,6 +31,7 @@ export default {
Chooser, Chooser,
Chat, Chat,
Player, Player,
Deck,
}, },
props: { props: {
username: String username: String
@ -41,7 +46,6 @@ export default {
}), }),
sockets: { sockets: {
room(data) { room(data) {
console.log(data)
this.lobbyName = data.name this.lobbyName = data.name
this.started = data.started this.started = data.started
this.players = data.players this.players = data.players
@ -67,6 +71,14 @@ export default {
}, },
showChooser() { showChooser() {
return this.availableCharacters.length > 0; return this.availableCharacters.length > 0;
},
playersTable() {
return this.players.map((x,i) => {
let offsetAngle = 360.0 / this.players.length
let rotateAngle = (i) * offsetAngle
let size = 130
return {card:this.getPlayerCard(x), style: `position:absolute;transform: rotate(${rotateAngle}deg) translate(0, -${size}pt) rotate(-${rotateAngle}deg) translate(${size}pt,${size}pt)`}
})
} }
}, },
methods: { methods: {