ui enhancements
This commit is contained in:
parent
08287b4818
commit
6309a9c8ff
@ -8,7 +8,7 @@
|
|||||||
<card :card="card" :class="{back:true, pick:pending_action === 0, draw:pending_action === 1}" @click.native="action"/>
|
<card :card="card" :class="{back:true, pick:pending_action === 0, draw:pending_action === 1}" @click.native="action"/>
|
||||||
</div>
|
</div>
|
||||||
<div style="position:relative;">
|
<div style="position:relative;">
|
||||||
<card v-if="previousScrap" :card="previousScrap"/>
|
<card v-if="previousScrap" :card="previousScrap" style="top: 1.5pt;right: -1.5pt;"/>
|
||||||
<card v-else :card="card" class="back" style="opacity:0"/>
|
<card v-else :card="card" class="back" style="opacity:0"/>
|
||||||
<card v-if="lastScrap" :card="lastScrap" :key="lastScrap" class="last-scrap" @click.native="action('scrap')"
|
<card v-if="lastScrap" :card="lastScrap" :key="lastScrap" class="last-scrap" @click.native="action('scrap')"
|
||||||
@pointerenter.native="desc=($i18n.locale=='it'?lastScrap.desc:lastScrap.desc_eng)" @pointerleave.native="desc=''" />
|
@pointerenter.native="desc=($i18n.locale=='it'?lastScrap.desc:lastScrap.desc_eng)" @pointerleave.native="desc=''" />
|
||||||
@ -93,6 +93,10 @@ export default {
|
|||||||
animation-duration: 0.8s;
|
animation-duration: 0.8s;
|
||||||
animation-name: slidein;
|
animation-name: slidein;
|
||||||
}
|
}
|
||||||
|
.last-scrap:hover {
|
||||||
|
opacity: 0.8;
|
||||||
|
transform: translateY(-10px);
|
||||||
|
}
|
||||||
@keyframes slidein {
|
@keyframes slidein {
|
||||||
from {
|
from {
|
||||||
transform: translate(-100px, 10px) scale(1.3) rotate(-10deg);
|
transform: translate(-100px, 10px) scale(1.3) rotate(-10deg);
|
||||||
|
@ -1,7 +1,10 @@
|
|||||||
<template>
|
<template>
|
||||||
<div class="lobby">
|
<div class="lobby">
|
||||||
<div style="flex-grow: 4;">
|
<div style="flex-grow: 4;">
|
||||||
<h2 v-if="!started">{{$t('room')}}{{ lobbyName }}</h2>
|
<div style="position:relative;">
|
||||||
|
<h2 v-if="!started">{{$t('room')}}{{ lobbyName }}</h2>
|
||||||
|
<input style="position:absolute;top:0;right:0;max-height:100pt" v-if="!started" type="button" @click="leaveRoom" :value="$t('leave_room')"/>
|
||||||
|
</div>
|
||||||
<h3>{{$t('room_players', {username:username})}}</h3>
|
<h3>{{$t('room_players', {username:username})}}</h3>
|
||||||
<div v-if="!started">
|
<div v-if="!started">
|
||||||
<PrettyCheck v-if="isRoomOwner" class="p-switch p-fill" v-model="privateRoom" style="margin-top:5px; margin-bottom:3px;">{{$t("private_room")}}</PrettyCheck>
|
<PrettyCheck v-if="isRoomOwner" class="p-switch p-fill" v-model="privateRoom" style="margin-top:5px; margin-bottom:3px;">{{$t("private_room")}}</PrettyCheck>
|
||||||
@ -19,7 +22,7 @@
|
|||||||
</transition-group>
|
</transition-group>
|
||||||
<Card :card="p.card" :class="{is_my_turn:p.is_my_turn}"/>
|
<Card :card="p.card" :class="{is_my_turn:p.is_my_turn}"/>
|
||||||
<Card v-if="p.character" :card="p.character" class="character tiny-character" @click.native="selectedInfo = [p.character]"/>
|
<Card v-if="p.character" :card="p.character" class="character tiny-character" @click.native="selectedInfo = [p.character]"/>
|
||||||
<tiny-hand :ncards="p.ncards" @click.native="drawFromPlayer(p.name)"/>
|
<tiny-hand :ncards="p.ncards" @click.native="drawFromPlayer(p.name)" :ismyturn="p.pending_action === 2"/>
|
||||||
<span style="position:absolute;top:10pt;" class="center-stuff">{{getActionEmoji(p)}}</span>
|
<span style="position:absolute;top:10pt;" class="center-stuff">{{getActionEmoji(p)}}</span>
|
||||||
<div class="tiny-equipment">
|
<div class="tiny-equipment">
|
||||||
<Card v-for="card in p.equipment" v-bind:key="card.name+card.number" :card="card" @click.native="selectedInfo = p.equipment"/>
|
<Card v-for="card in p.equipment" v-bind:key="card.name+card.number" :card="card" @click.native="selectedInfo = p.equipment"/>
|
||||||
@ -165,6 +168,9 @@ export default {
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
|
leaveRoom() {
|
||||||
|
window.location.replace(window.location.origin)
|
||||||
|
},
|
||||||
toggleExpansions(name) {
|
toggleExpansions(name) {
|
||||||
if (!this.isRoomOwner) return;
|
if (!this.isRoomOwner) return;
|
||||||
this.$socket.emit('toggle_expansion', name)
|
this.$socket.emit('toggle_expansion', name)
|
||||||
@ -257,8 +263,8 @@ export default {
|
|||||||
.is_my_turn {
|
.is_my_turn {
|
||||||
box-shadow: 0 0 0 3pt rgb(138, 12, 12), 0 0 0 6pt white, 0 0 5pt 6pt #aaa !important;
|
box-shadow: 0 0 0 3pt rgb(138, 12, 12), 0 0 0 6pt white, 0 0 5pt 6pt #aaa !important;
|
||||||
animation-name: turn-animation;
|
animation-name: turn-animation;
|
||||||
animation-duration: 2s;
|
animation-duration: 2s;
|
||||||
animation-iteration-count: infinite;
|
animation-iteration-count: infinite;
|
||||||
}
|
}
|
||||||
@media (prefers-color-scheme: dark) {
|
@media (prefers-color-scheme: dark) {
|
||||||
.is_my_turn {
|
.is_my_turn {
|
||||||
@ -270,7 +276,7 @@ export default {
|
|||||||
transform: scale(1);
|
transform: scale(1);
|
||||||
}
|
}
|
||||||
50% {
|
50% {
|
||||||
transform: scale(1.05);
|
transform: scale(1.02);
|
||||||
}
|
}
|
||||||
100% {
|
100% {
|
||||||
transform: scale(1);
|
transform: scale(1);
|
||||||
|
@ -334,7 +334,7 @@ export default {
|
|||||||
padding: 10pt 40pt 0pt 40pt;
|
padding: 10pt 40pt 0pt 40pt;
|
||||||
overflow:auto;
|
overflow:auto;
|
||||||
border-radius: 4pt;
|
border-radius: 4pt;
|
||||||
min-height: 20pt;
|
min-height: 40pt;
|
||||||
}
|
}
|
||||||
.hand>.card{
|
.hand>.card{
|
||||||
margin-left: -30pt;
|
margin-left: -30pt;
|
||||||
|
@ -1,6 +1,8 @@
|
|||||||
<template>
|
<template>
|
||||||
<div style="position:absolute;transform:scale(0.4);bottom:52pt;">
|
<div style="position:absolute;transform:scale(0.4);bottom:52pt;">
|
||||||
<div class="card back" v-for="(n, i) in ncards" :style="`position:absolute; transform:rotate(${(i-ncards/2)*2}deg) translate(${i*15}px,0);`" v-bind:key="n" :alt="i">
|
<div :class="{card:true, back:true, delay:ismyturn}" v-for="(n, i) in ncards"
|
||||||
|
:style="`position:absolute; transform:rotate(${(i-ncards/2)*2}deg) translate(${i*15}px,0); animation-delay:${0.1*i}s`"
|
||||||
|
v-bind:key="n" :alt="i">
|
||||||
<h4 v-if="n==ncards">PewPew!</h4>
|
<h4 v-if="n==ncards">PewPew!</h4>
|
||||||
<div class="emoji" v-if="n==ncards">💥</div>
|
<div class="emoji" v-if="n==ncards">💥</div>
|
||||||
</div>
|
</div>
|
||||||
@ -12,9 +14,25 @@ export default {
|
|||||||
name: 'TinyHand',
|
name: 'TinyHand',
|
||||||
props: {
|
props: {
|
||||||
ncards: Number,
|
ncards: Number,
|
||||||
|
ismyturn: Boolean
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
<style>
|
<style scoped>
|
||||||
|
.delay {
|
||||||
|
animation-name: updown;
|
||||||
|
animation-duration: 2s;
|
||||||
|
animation-iteration-count: infinite;
|
||||||
|
}
|
||||||
|
@keyframes updown {
|
||||||
|
0% {
|
||||||
|
top: 0;
|
||||||
|
}
|
||||||
|
50% {
|
||||||
|
top:10pt;
|
||||||
|
}
|
||||||
|
100% {
|
||||||
|
top: 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
</style>
|
</style>
|
@ -6,6 +6,7 @@
|
|||||||
"no_lobby_available": "No lobbies available",
|
"no_lobby_available": "No lobbies available",
|
||||||
"create_lobby": "Open a lobby:",
|
"create_lobby": "Open a lobby:",
|
||||||
"lobby_name": "Name:",
|
"lobby_name": "Name:",
|
||||||
|
"leave_room": "Leave lobby",
|
||||||
"warning": "Warning!",
|
"warning": "Warning!",
|
||||||
"connection_error": "Cannot connect to server.",
|
"connection_error": "Cannot connect to server.",
|
||||||
"end_turn": "End Turn!",
|
"end_turn": "End Turn!",
|
||||||
|
@ -6,6 +6,7 @@
|
|||||||
"no_lobby_available": "Nessuna stanza disponibile",
|
"no_lobby_available": "Nessuna stanza disponibile",
|
||||||
"create_lobby": "Crea una stanza:",
|
"create_lobby": "Crea una stanza:",
|
||||||
"lobby_name": "Nome:",
|
"lobby_name": "Nome:",
|
||||||
|
"leave_room": "Esci dalla stanza",
|
||||||
"warning": "Attenzione!",
|
"warning": "Attenzione!",
|
||||||
"connection_error": "Connessione al server assente.",
|
"connection_error": "Connessione al server assente.",
|
||||||
"end_turn": "Termina turno!",
|
"end_turn": "Termina turno!",
|
||||||
|
@ -12,7 +12,7 @@ const routes = [
|
|||||||
{
|
{
|
||||||
path: '/',
|
path: '/',
|
||||||
name: 'Home',
|
name: 'Home',
|
||||||
component: () => import(/* webpackChunkName: "game" */ '../components/Menu.vue')
|
component: () => import(/* webpackChunkName: "home" */ '../components/Menu.vue')
|
||||||
},
|
},
|
||||||
]
|
]
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user