protected override void RestauraEspecial() { if (retirada) { Terreno tablero = FindObjectOfType <Terreno>(); int fila = tablero.GetFilas() - 1; if (!aliado) { fila = 0; } for (int i = 0; i < tablero.GetColumnas() - 1; i++) { if (!tablero.GetCasilla(fila, i).EstaOcupada()) { tablero.GetCasilla(casillaX, casillaZ).Desocupar(); tablero.GetCasilla(fila, i).Ocupar(this); SetPos(fila, i); break; } } log.LanzaLog("A Yaiza se le ha pasado el cabreo por fin."); retirada = false; hombroDch.eulerAngles = initialHombroDchRot; hombroIzq.eulerAngles = initialHombroIzqRot; codoDch.eulerAngles = initialCodoDchRot; codoIzq.eulerAngles = initialCodoIzqRot; } }
public void GenerateEnemies() { gm = FindObjectOfType <GameManager>(); if (gm) { if (gm.GetJugadoresEnemigos().Count == 0) { GenerateRandomEnemies(); // enemigos aleatorios para el solo play } else { // enemigos escogidos en multiplayer int n = 0; foreach (Personaje p in gm.GetJugadoresEnemigos()) { gestor.SetEnemigo(Instantiate(p), n); int z; do { z = Random.Range(0, tablero.GetColumnas()); } while (tablero.GetCasilla(0, z).EstaOcupada()); tablero.GetCasilla(0, z).Ocupar(gestor.GetEnemigo(n)); gestor.GetEnemigo(n).SetPos(0, z); gestor.GetEnemigo(n).Girar(); gestor.GetEnemigo(n).SetEnemigo(); gestor.GetEnemigo(n).SetColor(rojoEnemigo); n++; } } } }
public void ColocaAliados(int[] posicionesZ) { for (int i = 0; i < aliados.Length; i++) { tablero.GetCasilla(aliados[i].GetCasillaX(), aliados[i].GetCasillaZ()).Desocupar(); aliados[i].SetPos(aliados[i].GetCasillaX(), posicionesZ[i]); tablero.GetCasilla(aliados[i].GetCasillaX(), aliados[i].GetCasillaZ()).Ocupar(aliados[i]); } if (GetPersonajeTurno().IsAliado() && gm.IsAliado()) { gestorAcciones.PreparaTurno(); } }
public override bool AnimacionAE(Personaje objetivo) { if (!retirada) { retirada = true; //PlaySonidoAE(); panelHp.SetActive(false); if (aliado) { transform.position = new Vector3(35, 0, 9); } else { transform.position = new Vector3(-9, 0, 9); } hombroDch.Rotate(0, -70, 10); hombroIzq.Rotate(0, 70, -10); codoDch.Rotate(95, 0, 15); codoIzq.Rotate(110, 0, -20); FindObjectOfType <Camara>().EnfocaCamaraAE(transform.position, aliado); Terreno tablero = FindObjectOfType <Terreno>(); tablero.GetCasilla(casillaX, casillaZ).Desocupar(); } else { avanzado += Time.deltaTime; if (avanzado > 2) { Restaura(); log.LanzaLog("Yaiza se ha cansado y no quiere jugar más."); turnosInmune = 2; turnosParalizado = 2; jugadaUlti = true; if (aliado) { foreach (var p in FindObjectOfType <GestorPartida>().GetAllAliados()) { p.BonificacionDamage(2); } } else { foreach (var p in FindObjectOfType <GestorPartida>().GetAllEnemigos()) { p.BonificacionDamage(2); } } return(true); } } return(false); }
private void MueveCasilla(int x, int z) { int movs = gestorPartida.GetPersonajeTurno().movimientos; if (movimientosEsteTurno == movs) { return; } int oldPosX = gestorPartida.GetPersonajeTurno().GetCasillaX(); int oldPosZ = gestorPartida.GetPersonajeTurno().GetCasillaZ(); int newPosX = oldPosX + x; int newPosZ = oldPosZ + z; if (tablero.PuedeMoverACasilla(newPosX, newPosZ)) { movimientosEsteTurno++; gestorPartida.GetPersonajeTurno().SetPos(newPosX, newPosZ); tablero.GetCasilla(oldPosX, oldPosZ).Desocupar(); tablero.GetCasilla(newPosX, newPosZ).Ocupar(gestorPartida.GetPersonajeTurno()); tablero.RestauraTablero(); if (gm.IsAliado() == gestorPartida.GetPersonajeTurno().IsAliado()) { tablero.PintaCasillasAmarillas(newPosX, newPosZ, movs - movimientosEsteTurno); } } }
private void IrALaCama() { Terreno tablero = FindObjectOfType <Terreno>(); int fila = tablero.GetFilas() - 1; if (!aliado) { fila = 0; } for (int i = 0; i < tablero.GetColumnas() - 1; i++) { if (!tablero.GetCasilla(fila, i).EstaOcupada() && !tablero.GetCasilla(fila, i + 1).EstaOcupada()) { tablero.GetCasilla(casillaX, casillaZ).Desocupar(); tablero.GetCasilla(fila, i).Ocupar(this); tablero.GetCasilla(fila, i + 1).Ocupar(this); SetPos(fila, i); FindObjectOfType <Camara>().EnfocaCamaraAE(transform.position + new Vector3(0, -0.5f, 1.5f), aliado); break; } } }