Habilitada funcionalidad llamar seq
This commit is contained in:
parent
d342d37b1c
commit
e5e0d8b726
@ -4,8 +4,11 @@ div.cont-cuadrante-2-mano
|
|||||||
div.cont-opciones-mano
|
div.cont-opciones-mano
|
||||||
div.opcion-mano(v-if="hayTri" :style="{backgroundColor: '#3F51B5'}")
|
div.opcion-mano(v-if="hayTri" :style="{backgroundColor: '#3F51B5'}")
|
||||||
| Tri
|
| Tri
|
||||||
div.opcion-mano(v-if="haySeq" :style="{backgroundColor: '#009688'}")
|
opcion-seq(v-if="haySeq"
|
||||||
| Seq
|
:idUsuario="idUsuario"
|
||||||
|
:ws="ws"
|
||||||
|
:oportunidad="oportunidadSeq"
|
||||||
|
)
|
||||||
div.opcion-mano(v-if="hayQuad" :style="{backgroundColor: '#9C27B0'}")
|
div.opcion-mano(v-if="hayQuad" :style="{backgroundColor: '#9C27B0'}")
|
||||||
| Quad
|
| Quad
|
||||||
div.opcion-mano(v-if="hayWin" :style="{backgroundColor: '#f44336'}")
|
div.opcion-mano(v-if="hayWin" :style="{backgroundColor: '#f44336'}")
|
||||||
@ -16,7 +19,8 @@ div.cont-cuadrante-2-mano
|
|||||||
carta(:valor="-1")
|
carta(:valor="-1")
|
||||||
carta(:valor="mano.sigCarta" :fnDescartar="descartarCarta")
|
carta(:valor="mano.sigCarta" :fnDescartar="descartarCarta")
|
||||||
carta(:valor="-1")
|
carta(:valor="-1")
|
||||||
carta(v-for="(c, i) in mano.cartasReveladas" :valor="c" :key="i")
|
div(v-for="g in mano.cartasReveladas" :style="{display: 'inline-block'}")
|
||||||
|
carta(v-for="(c, i) in g" :valor="c" :key="i")
|
||||||
|
|
||||||
//
|
//
|
||||||
</template>
|
</template>
|
||||||
@ -28,6 +32,8 @@ import carta from "@/components/carta.vue";
|
|||||||
import contenedorDescartes from "./contenedor-descartes.vue"
|
import contenedorDescartes from "./contenedor-descartes.vue"
|
||||||
import { Mano } from "@/views/Juego/types/Mano";
|
import { Mano } from "@/views/Juego/types/Mano";
|
||||||
import opcionIgnorar from "./opciones-mano/opcion-ignorar.vue"
|
import opcionIgnorar from "./opciones-mano/opcion-ignorar.vue"
|
||||||
|
import opcionSeq from "./opciones-mano/opcion-seq.vue"
|
||||||
|
import { Oportunidad } from "@/views/Juego/types/Oportunidad";
|
||||||
|
|
||||||
const estaOrdenado = (nums: number[]) => {
|
const estaOrdenado = (nums: number[]) => {
|
||||||
for (let i = 0, j = 1; j < nums.length ; i++, j++) {
|
for (let i = 0, j = 1; j < nums.length ; i++, j++) {
|
||||||
@ -40,7 +46,12 @@ const esperar = (ms: number) => new Promise((resolve) => setTimeout(resolve, ms)
|
|||||||
|
|
||||||
export default defineComponent({
|
export default defineComponent({
|
||||||
name: "mano",
|
name: "mano",
|
||||||
components: {carta, contenedorDescartes, opcionIgnorar},
|
components: {
|
||||||
|
carta,
|
||||||
|
contenedorDescartes,
|
||||||
|
opcionSeq,
|
||||||
|
opcionIgnorar
|
||||||
|
},
|
||||||
props: {
|
props: {
|
||||||
idUsuario: String,
|
idUsuario: String,
|
||||||
ws: WebSocket,
|
ws: WebSocket,
|
||||||
@ -159,6 +170,10 @@ export default defineComponent({
|
|||||||
return false;
|
return false;
|
||||||
});
|
});
|
||||||
|
|
||||||
|
const oportunidadSeq = computed(() => {
|
||||||
|
return props.mano!!.oportunidades.find((obj: Oportunidad) => obj.nombreOportunidad === "Seq")
|
||||||
|
});
|
||||||
|
|
||||||
return {
|
return {
|
||||||
cartas,
|
cartas,
|
||||||
posiciones,
|
posiciones,
|
||||||
@ -167,6 +182,7 @@ export default defineComponent({
|
|||||||
haySeq,
|
haySeq,
|
||||||
hayQuad,
|
hayQuad,
|
||||||
hayWin,
|
hayWin,
|
||||||
|
oportunidadSeq,
|
||||||
phx,
|
phx,
|
||||||
posicionW: computed(() => (90 * (5 - posicion!!)) + "deg")
|
posicionW: computed(() => (90 * (5 - posicion!!)) + "deg")
|
||||||
}
|
}
|
||||||
|
@ -29,7 +29,6 @@ export default defineComponent({
|
|||||||
const idJuego = route.params.id;
|
const idJuego = route.params.id;
|
||||||
|
|
||||||
const enviarSolicitudIgnorarOportunidad = () => {
|
const enviarSolicitudIgnorarOportunidad = () => {
|
||||||
console.log("Pidiendo que se ignore la oportunidad :c");
|
|
||||||
props.ws.send(JSON.stringify({
|
props.ws.send(JSON.stringify({
|
||||||
operacion: "ignorar_oportunidad",
|
operacion: "ignorar_oportunidad",
|
||||||
datos: JSON.stringify({
|
datos: JSON.stringify({
|
||||||
|
@ -1,22 +1,105 @@
|
|||||||
<template lang="pug">
|
<template lang="pug">
|
||||||
div.opcion-mano(v-if="haySeq" :style="{backgroundColor: '#009688'}")
|
div.opcion-mano(v-for="opcion in opciones" @click="enviarSolicitudSeq(opcion)" :style="{backgroundColor: '#009688'}")
|
||||||
| Seq
|
div.contenedor-cartas-opcion-mano
|
||||||
|
carta(v-for="(c, i) in obtCartasOrdenadas(opcion)" :valor="c" :escala="0.5" :key="i")
|
||||||
|
span Seq
|
||||||
|
|
||||||
//
|
//
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
import {defineComponent} from "vue";
|
import { computed, defineComponent } from "vue";
|
||||||
|
import { useRoute } from "vue-router";
|
||||||
|
import { useDimensions } from "@/components/useDimensions";
|
||||||
|
import { OportunidadSeq } from "@/views/Juego/types/Oportunidad";
|
||||||
|
import carta from "@/components/carta.vue";
|
||||||
|
|
||||||
export default defineComponent({
|
export default defineComponent({
|
||||||
name: "opcion-seq"
|
name: "opcion-seq",
|
||||||
|
components: {carta},
|
||||||
|
props: {
|
||||||
|
idUsuario: {
|
||||||
|
type: String,
|
||||||
|
required: true
|
||||||
|
},
|
||||||
|
ws: {
|
||||||
|
type: WebSocket,
|
||||||
|
required: true
|
||||||
|
},
|
||||||
|
oportunidad: {
|
||||||
|
type: Object
|
||||||
|
}
|
||||||
|
},
|
||||||
|
setup(props) {
|
||||||
|
const route = useRoute();
|
||||||
|
const {pH, phx} = useDimensions();
|
||||||
|
|
||||||
|
const idJuego = route.params.id;
|
||||||
|
|
||||||
|
const op = computed(() => props.oportunidad as OportunidadSeq | undefined)
|
||||||
|
|
||||||
|
const opciones = computed(() => {
|
||||||
|
console.log(props.oportunidad);
|
||||||
|
return op.value?.combinaciones
|
||||||
|
});
|
||||||
|
|
||||||
|
const enviarSolicitudSeq = (opcion: {first: number, second: number}) => {
|
||||||
|
if (op.value !== undefined) {
|
||||||
|
props.ws.send(JSON.stringify({
|
||||||
|
operacion: "llamar_seq",
|
||||||
|
datos: JSON.stringify({
|
||||||
|
idJuego,
|
||||||
|
idUsuario: props.idUsuario,
|
||||||
|
cartaDescartada: op.value.cartaDescartada,
|
||||||
|
combinacion: {
|
||||||
|
first: opcion.first,
|
||||||
|
second: opcion.second
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}));
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
const obtCartasOrdenadas = (opcion: {first: number, second: number}) => {
|
||||||
|
return [op.value!!.cartaDescartada, opcion.first, opcion.second].sort((x, y) => (x < y)? -1: 1)
|
||||||
|
};
|
||||||
|
|
||||||
|
return {
|
||||||
|
opciones,
|
||||||
|
enviarSolicitudSeq,
|
||||||
|
obtCartasOrdenadas,
|
||||||
|
tamano: computed(() => (pH.value * -0.75) + "px"),
|
||||||
|
phx
|
||||||
|
}
|
||||||
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style scoped lang="sass">
|
<style scoped lang="sass" vars="{tamano, phx}">
|
||||||
|
|
||||||
|
.contenedor-cartas-opcion-mano
|
||||||
|
position: absolute
|
||||||
|
top: calc(var(--phx) * -3)
|
||||||
|
left: calc(var(--phx) * 1.25)
|
||||||
|
|
||||||
|
|
||||||
|
.opcion-mano
|
||||||
|
position: relative
|
||||||
|
display: inline-block
|
||||||
|
min-width: 17%
|
||||||
|
font-size: calc(var(--phx) * 3)
|
||||||
|
text-align: center
|
||||||
|
cursor: pointer
|
||||||
|
margin-left: var(--phx)
|
||||||
|
padding: var(--phx) 0
|
||||||
|
color: white
|
||||||
|
font-weight: bold
|
||||||
|
border-radius: calc(var(--phx) * 0.5)
|
||||||
|
box-shadow: 0 0 10px 1px rgba(100, 100, 100, 0.5)
|
||||||
|
transition: transform 100ms
|
||||||
|
&:hover
|
||||||
|
transform: translateY(var(--tamano))
|
||||||
|
|
||||||
//
|
//
|
||||||
</style>
|
</style>
|
||||||
|
Loading…
Reference in New Issue
Block a user