add deck, add table view
This commit is contained in:
parent
c3e3711afe
commit
ed04066d10
@ -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;
|
||||||
|
45
frontend/src/components/Deck.vue
Normal file
45
frontend/src/components/Deck.vue
Normal 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>
|
@ -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: {
|
||||||
|
Loading…
Reference in New Issue
Block a user