diff --git a/src/components/carta.vue b/src/components/carta.vue index d46cf42..9c2fe86 100644 --- a/src/components/carta.vue +++ b/src/components/carta.vue @@ -178,7 +178,7 @@ export default defineComponent({ width: 100% height: 100% color: #ffb500 - background-image: linear-gradient(135deg, rgba(180, 180, 180, 0.0) 0%, rgba(180, 180, 180, 0.0) 35%, rgba(180, 180, 180, 0.3) 45%, rgba(180, 180, 180, 0.6) 53%, rgba(180, 180, 180, 0.3) 57%, rgba(180, 180, 180, 0.0) 65%, rgba(180, 180, 180, 0.0) 100%) + background-image: linear-gradient(135deg, rgba(210, 210, 210, 0.0) 0%, rgba(210, 210, 210, 0.0) 35%, rgba(210, 210, 210, 0.3) 45%, rgba(210, 210, 210, 0.9) 53%, rgba(210, 210, 210, 0.3) 57%, rgba(210, 210, 210, 0.0) 65%, rgba(210, 210, 210, 0.0) 100%) transition: transform 500ms animation-duration: 5s animation-name: brillocarta diff --git a/src/views/Juego/components/mano.vue b/src/views/Juego/components/mano.vue index 120deab..cf242b2 100644 --- a/src/views/Juego/components/mano.vue +++ b/src/views/Juego/components/mano.vue @@ -2,21 +2,26 @@ div.cont-cuadrante-2-mano contenedor-descartes(:cartas="mano.descartes" :esTurnoActual="esTurnoActual") div.cont-opciones-mano - opcion-tri(v-if="hayTri" + opcion-tri(v-if="oportunidadTri" :idUsuario="idUsuario" :ws="ws" :oportunidad="oportunidadTri" ) - opcion-seq(v-if="haySeq" + opcion-seq(v-if="oportunidadSeq" :idUsuario="idUsuario" :ws="ws" :oportunidad="oportunidadSeq" ) - div.opcion-mano(v-if="hayQuad" :style="{backgroundColor: '#9C27B0'}") + div.opcion-mano(v-if="oportunidadQuad" :style="{backgroundColor: '#9C27B0'}") | Quad - div.opcion-mano(v-if="hayWin" :style="{backgroundColor: '#f44336'}") - | Win - opcion-ignorar(v-if="hayTri || haySeq || hayQuad || hayWin" :idUsuario="idUsuario" :ws="ws") + opcion-win(v-if="oportunidadWin" + :idUsuario="idUsuario" + :ws="ws" + :oportunidad="oportunidadWin" + ) + opcion-ignorar(v-if="oportunidadTri || oportunidadSeq || oportunidadQuad || oportunidadWin" + :idUsuario="idUsuario" :ws="ws" + ) div.cuadrante-mano carta(v-for="(c, i) in cartas" :valor="c" :movimiento="posiciones[i]" :fnDescartar="descartarCarta" :key="i") carta(:valor="-1") @@ -37,7 +42,8 @@ import { Mano } from "@/views/Juego/types/Mano"; import opcionIgnorar from "./opciones-mano/opcion-ignorar.vue"; import opcionSeq from "./opciones-mano/opcion-seq.vue"; import opcionTri from "./opciones-mano/opcion-tri.vue"; -import { Oportunidad } from "@/views/Juego/types/Oportunidad"; +import opcionWin from "./opciones-mano/opcion-win.vue" +import { Oportunidad, OportunidadSeq, OportunidadTri, OportunidadWin } from "@/views/Juego/types/Oportunidad"; const estaOrdenado = (nums: number[]) => { for (let i = 0, j = 1; j < nums.length ; i++, j++) { @@ -55,12 +61,16 @@ export default defineComponent({ contenedorDescartes, opcionSeq, opcionIgnorar, - opcionTri + opcionTri, + opcionWin }, props: { idUsuario: String, ws: WebSocket, - mano: Object, + mano: { + type: Object, + required: true + }, posicion: Number, esTurnoActual: Boolean, oportunidades: Object, @@ -146,53 +156,30 @@ export default defineComponent({ posiciones.value = new Array(n.length).fill("none"); }); - const hayTri = computed(() => { - console.log(props.mano); - for (const o of (props.mano!! as Mano).oportunidades) { - if (o?.nombreOportunidad === "Tri") return true; - } - return false; + const oportunidadSeq = computed(() => { + return (props.mano as Mano).oportunidades.find((obj: Oportunidad) => obj.nombreOportunidad === "Seq") }); - const haySeq = computed(() => { - for (const o of props.mano!!.oportunidades) { - if (o?.nombreOportunidad === "Seq") return true; - } - return false; + const oportunidadTri = computed(() => { + return (props.mano as Mano).oportunidades.find((obj: Oportunidad) => obj.nombreOportunidad === "Tri") }); - const hayQuad = computed(() => { - for (const o of props.mano!!.oportunidades) { - if (o?.nombreOportunidad === "Quad") return true; - } - return false; + const oportunidadQuad = computed(() => { + return (props.mano as Mano).oportunidades.find((obj: Oportunidad) => obj.nombreOportunidad === "Quad") }); - const hayWin = computed(() => { - for (const o of props.mano!!.oportunidades) { - if (o?.nombreOportunidad === "Win") return true; - } - return false; - }); - - const oportunidadSeq = computed(() => { - return props.mano!!.oportunidades.find((obj: Oportunidad) => obj.nombreOportunidad === "Seq") - }); - - const oportunidadTri = computed(() => { - return props.mano!!.oportunidades.find((obj: Oportunidad) => obj.nombreOportunidad === "Tri") + const oportunidadWin = computed(() => { + return (props.mano as Mano).oportunidades.find((obj: Oportunidad) => obj.nombreOportunidad === "Win") }); return { cartas, posiciones, descartarCarta, - hayTri, - haySeq, - hayQuad, - hayWin, oportunidadSeq, oportunidadTri, + oportunidadQuad, + oportunidadWin, phx, posicionW: computed(() => (90 * (5 - posicion!!)) + "deg") } diff --git a/src/views/Juego/components/opciones-mano/opcion-win.vue b/src/views/Juego/components/opciones-mano/opcion-win.vue new file mode 100644 index 0000000..ade6e15 --- /dev/null +++ b/src/views/Juego/components/opciones-mano/opcion-win.vue @@ -0,0 +1,81 @@ + + + + + diff --git a/src/views/Juego/types/Oportunidad.ts b/src/views/Juego/types/Oportunidad.ts index 768c467..22e260b 100644 --- a/src/views/Juego/types/Oportunidad.ts +++ b/src/views/Juego/types/Oportunidad.ts @@ -14,3 +14,8 @@ export declare class OportunidadTri implements Oportunidad { nombreOportunidad: string; cartas: {first: number, second: number}; } + +export declare class OportunidadWin implements Oportunidad { + cartaDescartada: number; + nombreOportunidad: string; +}