コード例 #1
0
        private void ElegirAccion()
        {
            clsControlTurno ataque = new clsControlTurno();

            // Obtener nombre del enemigo
            ataque.enemigo = enemigo.nombre;

            // Obtener el tipo
            ataque.tipo = "Enemigo";

            // Obtener el prefab del enemigo
            ataque.prefabEnemigo = this.gameObject;

            // Obtener el objetivo del enemigo entre todos los aliados
            ataque.objetivoEnemigo = sFreya.aliados[Random.Range(0, sFreya.aliados.Count)];

            // Realizar el ataque elegido
            int tempNum = Random.Range(0, enemigo.ataques.Count);

            ataque.ataqueElegido = enemigo.ataques[tempNum];

            // Atacar
            sFreya.Acciones(ataque);
        }
コード例 #2
0
        public void Update()
        {
            switch (estadoBatalla)
            {
            case Freya.Esperando:
                if (proxTurno.Count > 0)
                {
                    estadoBatalla = Freya.TomarAccion;
                }
                break;

            case Freya.TomarAccion:
                GameObject proceso = GameObject.Find(proxTurno[0].enemigo);
                if (proxTurno[0].tipo == "Enemigo")
                {
                    EnemigoMEstados EME = proceso.GetComponent <EnemigoMEstados>();
                    for (int n = 0; n < aliados.Count; n++)
                    {
                        if (proxTurno[0].objetivoEnemigo == aliados[n])
                        {
                            EME.posicionAliado = proxTurno[0].objetivoEnemigo;
                            EME.estadoTurno    = EstadoTurno.Accion;
                            break;
                        }
                        else
                        {
                            proxTurno[0].objetivoEnemigo = aliados[Random.Range(0, aliados.Count)];
                            EME.posicionAliado           = proxTurno[0].objetivoEnemigo;
                            EME.estadoTurno = EstadoTurno.Accion;
                        }
                    }
                }

                if (proxTurno[0].tipo == "Aliado")
                {
                    AliadoMEstados AME = proceso.GetComponent <AliadoMEstados>();
                    AME.posicionEnemigo = proxTurno[0].objetivoEnemigo;
                    AME.estadoTurno     = EstadoTurno.Accion;
                }
                estadoBatalla = Freya.RealizarAccion;
                break;

            case Freya.RealizarAccion:
                break;

            case Freya.ComprobarVida:
                if (aliados.Count < 1)
                {
                    // Ganar Batalla
                    estadoBatalla = Freya.Derrota;
                }
                else if (enemigos.Count < 1)
                {
                    // Perder Batalla
                    estadoBatalla = Freya.Ganar;
                }
                else
                {
                    // Limpiar panel
                    ClearPanelAtaque();
                    aliadoGUI = AliadoGUI.Activado;
                }
                break;

            case Freya.Derrota:
                NGUIDebug.Log("Has perdido la batalla");
                for (int i = 0; i < enemigos.Count; i++)
                {
                    enemigos[0].GetComponent <EnemigoMEstados>().estadoTurno = EstadoTurno.Esperando;
                }
                break;

            case Freya.Ganar:
                NGUIDebug.Log("Has ganado la batalla");
                for (int i = 0; i < aliados.Count; i++)
                {
                    aliados[0].GetComponent <AliadoMEstados>().estadoTurno = EstadoTurno.Esperando;
                }
                break;
            }

            switch (aliadoGUI)
            {
            case AliadoGUI.Activado:
                if (ManagerAliado.Count > 0)
                {
                    ManagerAliado[0].transform.Find("Selector").gameObject.SetActive(true);
                    eleccionAliado = new clsControlTurno();

                    panelAcciones.SetActive(true);

                    CrearBtnAtaques();


                    aliadoGUI = AliadoGUI.Esperando;
                }

                break;

            case AliadoGUI.Esperando:
                Time.timeScale = 0.0f;
                break;

            case AliadoGUI.Finalizado:
                AliadoTurnoTerminado();
                break;
            }
        }
コード例 #3
0
 public void Acciones(clsControlTurno input)
 {
     proxTurno.Add(input);
 }