Cambiado funcionamiento de dora. En vez de apuntar a la carta sig., apunta a si mismo.
This commit is contained in:
parent
1f5e9da89f
commit
ae58cf8354
@ -2,77 +2,21 @@ import { Store } from "vuex";
|
|||||||
import { RiMaJonState } from "@/store";
|
import { RiMaJonState } from "@/store";
|
||||||
import { computed, ComputedRef } from "vue";
|
import { computed, ComputedRef } from "vue";
|
||||||
|
|
||||||
const valoresNumNegro = [2, 4, 6, 8, 10, 12, 14, 16, 18, 20];
|
|
||||||
const valoresNumRojo = [34, 36, 38, 40, 42, 44, 46, 48, 50, 52];
|
|
||||||
const valoresDragones = [64, 96, 128, 160];
|
|
||||||
const valoresReyes = [192, 224, 256];
|
|
||||||
|
|
||||||
const obtenerCartaBonus = (dora: number, tipo: number) => {
|
|
||||||
const arr: number[] = (() => {
|
|
||||||
switch (tipo) {
|
|
||||||
case 0: return valoresNumNegro
|
|
||||||
case 1: return valoresNumRojo
|
|
||||||
case 2:
|
|
||||||
case 3:
|
|
||||||
case 4:
|
|
||||||
case 5: return valoresDragones
|
|
||||||
case 6:
|
|
||||||
case 7:
|
|
||||||
case 8:
|
|
||||||
return valoresReyes;
|
|
||||||
default:
|
|
||||||
return [];
|
|
||||||
}
|
|
||||||
})();
|
|
||||||
|
|
||||||
const posicionDora = arr.findIndex((x) => x === dora);
|
|
||||||
const posicionBonus = (posicionDora + 1) % arr.length;
|
|
||||||
return arr[posicionBonus];
|
|
||||||
};
|
|
||||||
|
|
||||||
const verificarTipoCarta = (tipoCartaActual: number, tipoCartaD: number): boolean => {
|
|
||||||
|
|
||||||
let tipoCartaActualF = tipoCartaActual;
|
|
||||||
if (tipoCartaActual >= 2 && tipoCartaActual <= 5) {
|
|
||||||
tipoCartaActualF = 5;
|
|
||||||
} else if (tipoCartaActual >= 6 && tipoCartaActual <= 8) {
|
|
||||||
tipoCartaActualF = 8;
|
|
||||||
}
|
|
||||||
|
|
||||||
let tipoCartaDF = tipoCartaD;
|
|
||||||
if (tipoCartaD >= 2 && tipoCartaD <= 5) {
|
|
||||||
tipoCartaDF = 5;
|
|
||||||
} else if (tipoCartaD >= 6 && tipoCartaD <= 8) {
|
|
||||||
tipoCartaDF = 8;
|
|
||||||
}
|
|
||||||
|
|
||||||
return tipoCartaActualF !== tipoCartaDF;
|
|
||||||
};
|
|
||||||
|
|
||||||
export const getClaseDora = (valor: ComputedRef<number>, store: Store<RiMaJonState>) => computed<string>(() => {
|
export const getClaseDora = (valor: ComputedRef<number>, store: Store<RiMaJonState>) => computed<string>(() => {
|
||||||
const [dora1, dora2] = store.state.dora;
|
const [dora1, dora2] = store.state.dora;
|
||||||
|
|
||||||
const tipoCartaActual = (valor.value << 23) >>> 28;
|
const valorG = (valor.value >>> 1) << 1;
|
||||||
const numeroCartaActual = (valor.value >>> 1) << 1;
|
|
||||||
|
|
||||||
for (const d of dora1) {
|
for (const d of dora1) {
|
||||||
const tipoCartaD = (d << 23) >>> 28;
|
const cartaBonus = (d >>> 1) << 1;
|
||||||
const vCartaD = (d >>> 1) << 1;
|
|
||||||
if (verificarTipoCarta(tipoCartaActual, tipoCartaD)) continue;
|
|
||||||
|
|
||||||
const cartaBonus = obtenerCartaBonus(vCartaD, tipoCartaD);
|
if (valorG === cartaBonus) return "c-carta-bonus";
|
||||||
|
|
||||||
if (numeroCartaActual === cartaBonus) return "c-carta-bonus";
|
|
||||||
}
|
}
|
||||||
|
|
||||||
for (const d of dora2) {
|
for (const d of dora2) {
|
||||||
const tipoCartaD = (d << 23) >>> 28;
|
const cartaBonus = (d >>> 1) << 1;
|
||||||
const vCartaD = (d >>> 1) << 1;
|
|
||||||
if (verificarTipoCarta(tipoCartaActual, tipoCartaD)) continue;
|
|
||||||
|
|
||||||
const cartaBonus = obtenerCartaBonus(vCartaD, tipoCartaD);
|
if (valorG === cartaBonus) return "c-carta-bonus";
|
||||||
|
|
||||||
if (numeroCartaActual === cartaBonus) return "c-carta-bonus";
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return "";
|
return "";
|
||||||
|
Loading…
Reference in New Issue
Block a user