예제 #1
0
    public void SeleccionadoHeroeEnemigo(GameObject gameobj)
    {
        //Desactiva el menu de comandos
        sistemaMenus.DesactivarMenu();

        //Mandar orden de ataque
        switch (menuAnterior)
        {
        case HeroeStateMachine.HeroeInputMenu.NINGUNO:
            HSM.Atacar(gameobj);
            break;

        case HeroeStateMachine.HeroeInputMenu.MAGIA:
            //Mandar orden de ataque
            HSM.LanzarMagia(magia, gameobj);
            break;

        case HeroeStateMachine.HeroeInputMenu.OBJETOS:
            HSM.LanzarObjeto(objeto, gameobj);
            break;
        }

        //Reset menu selector de heroes
        ResetMenuSeleccion();
    }
    public void AcabarTurno()
    {
        //Desactivar menu de comandos
        sistemaMenus.DesactivarMenu();
        estadoMenu = HeroeInputMenu.NINGUNO;

        //Colocamos la accion a espera
        estadoTurno = EstadoTurno.ESPERANDO;

        if (turnoBreak)
        {
            turnoBreak = false;
        }
        else
        {
            //Colocar al personaje el ultimo del array
            var temp = sistemaTurnos.turnosPersonajes[0];

            for (int i = 0; i < sistemaTurnos.turnosPersonajes.Count - 1; i++)
            {
                sistemaTurnos.turnosPersonajes[i] = sistemaTurnos.turnosPersonajes[i + 1];
            }

            sistemaTurnos.turnosPersonajes[sistemaTurnos.turnosPersonajes.Count - 1] = temp;
        }
    }
예제 #3
0
    public void ComprobarEstadoBatalla()
    {
        if (!accionActual.Equals(Accion.VACIO) && !SceneManager.GetActiveScene().name.Equals("Hoguera") && !SceneManager.GetActiveScene().name.Equals("Tesoro"))
        {
            if (enemigosCombate.Count == 0)
            {
                if (!accionActual.Equals(Accion.VACIO))
                {
                    accionActual = Accion.VICTORIA;
                    sistemaMenus.DesactivarMenu();
                }
            }

            if (heroesCombate[0].CompareTag("Muerto") && heroesCombate[1].CompareTag("Muerto") && heroesCombate[2].CompareTag("Muerto") && heroesCombate[3].CompareTag("Muerto"))
            {
                accionActual = Accion.DERROTA;
            }

            if (GameObject.FindGameObjectsWithTag("Enemigo").Length != cantEnemigosCombate)
            {
                enemigosCombate.RemoveRange(0, enemigosCombate.Count);
                enemigosCombate.AddRange(GameObject.FindGameObjectsWithTag("Enemigo"));
            }

            if ((turnosPersonajes[0] == null) || (turnosPersonajes[0].CompareTag("Enemigo") && turnosPersonajes[0].GetComponent <EnemigoStateMachine>().estadoTurno.Equals(EnemigoStateMachine.EstadoTurno.MUERTO)))
            {
                turnosPersonajes.RemoveAt(0);
            }

            for (int i = 0; i < enemigosCombate.Count; i++)
            {
                if (enemigosCombate[i].GetComponent <EnemigoStateMachine>().estadoTurno.Equals(EnemigoStateMachine.EstadoTurno.MUERTO))
                {
                    enemigosCombate.RemoveAt(i);
                }
            }
        }
    }