Exemple #1
0
 public void Start()
 {
     selector.SetActive(false);
     sFreya          = GameObject.Find("SFreya").GetComponent <SFreya>();
     estadoTurno     = EstadoTurno.Procesando;
     posicionInicial = transform.position;
 }
    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;
        }
    }
        public List <Turno> obtenerTurnosPorSemana(DateTime fechaDesde, DateTime fechaHasta, int idProfesional)
        {
            EnlaceDatos   datos    = new EnlaceDatos();
            SqlDataReader drTurnos = datos.getTurnosPorSemana(fechaDesde, fechaHasta, idProfesional);

            if (drTurnos.HasRows)
            {
                List <Turno> lsTurnos = new List <Turno>();
                while (drTurnos.Read())
                {
                    Turno turno = new Turno();
                    turno.IdTurno    = Convert.ToInt32(drTurnos[0].ToString());
                    turno.FechaTurno = drTurnos.GetDateTime(1);
                    turno.HoraInicio = Convert.ToDateTime(drTurnos[2].ToString());
                    turno.HoraFin    = Convert.ToDateTime(drTurnos[3].ToString());
                    turno.Comentario = drTurnos.GetString(4);

                    EstadoTurno estado = new EstadoTurno();
                    estado.IdEstado = Convert.ToInt32(drTurnos[5].ToString());
                    estado.Nombre   = drTurnos[6].ToString();

                    Paciente paciente = new Paciente();
                    paciente.IdPaciente = Convert.ToInt32(drTurnos[7].ToString());
                    paciente.Apellido   = drTurnos[8].ToString();
                    paciente.Nombre     = drTurnos[9].ToString();

                    turno.EstadoTurno = estado;
                    turno.Paciente    = paciente;
                    lsTurnos.Add(turno);
                }
                return(lsTurnos);
            }
            return(null);
        }
Exemple #4
0
 /// <summary>
 /// <para>Recibe daño del enemigo</para>
 /// </summary>
 public void RecibirDamage(float damage)// Recibe daño del enemigo
 {
     enemigo.actualHP -= damage;
     if (enemigo.actualHP <= 0)
     {
         enemigo.actualHP = 0;
         estadoTurno      = EstadoTurno.Muerte;
     }
 }
    public void MeToca()
    {
        estadoTurno = EstadoTurno.MITURNO;
        ResetEstadisticas();

        //Nuevas Modificaciones
        sistemaMenus.HSM = this;
        sistemaMenus.VolverMenu();
    }
    void Start()
    {
        heroeBackup = new Dictionary <string, int>();
        BackupEstadisticas();

        sistemaTurnos   = GameObject.Find("BattleHandler").GetComponent <SistemaTurnos>();
        sistemaMenus    = GameObject.Find("BattleHandler").GetComponent <SistemaMenus>();
        estadoMenu      = HeroeInputMenu.NINGUNO;
        estadoTurno     = EstadoTurno.ESPERANDO;
        posicionInicial = transform.position;
    }
    public void Revivir()
    {
        transform.tag = "Player";
        estadoTurno   = EstadoTurno.ESPERANDO;
        //Cambiar shader a normal
        this.gameObject.GetComponent <SpriteRenderer>().material.color = Color.white;
        this.gameObject.transform.Find("Death").gameObject.SetActive(false);

        //sistemaTurnos.heroesCombate.Add(this.gameObject);
        sistemaTurnos.turnosPersonajes.Add(this.gameObject);
    }
    public void Muerte()
    {
        transform.tag = "Muerto";
        estadoTurno   = EstadoTurno.MUERTO;
        //Cambiar shader a gris
        this.gameObject.GetComponent <SpriteRenderer>().material.color = Color.gray;
        this.gameObject.transform.Find("Death").gameObject.SetActive(true);

        //sistemaTurnos.heroesCombate.Remove(this.gameObject);
        sistemaTurnos.turnosPersonajes.Remove(this.gameObject);
    }
Exemple #9
0
        private IEnumerator TiempoDeAccion()
        {
            if (iniciarAccion)
            {
                yield break;
            }

            iniciarAccion = true;

            //Movimiento hacia la posicion del objetivo
            Vector3 _posicionEnemigo = new Vector3(posicionEnemigo.transform.position.x + 1.5f,
                                                   posicionEnemigo.transform.position.y,
                                                   posicionEnemigo.transform.position.z);

            while (MoverHaciaEnemigo(_posicionEnemigo))
            {
                yield return(null);
            }

            // Esperando la habilidad
            yield return(new WaitForSeconds(0.5f));

            // Pasando valores
            RealizarDamage();

            // Movimiento hacia la posicion inicial
            Vector3 primeraPos = posicionInicial;

            while (MoverHaciaInicio(primeraPos))
            {
                yield return(null);
            }

            // Quitar este proceso de la lista de SFreya
            sFreya.proxTurno.RemoveAt(0);

            // Resetear SFreya
            if (sFreya.estadoBatalla != Freya.Ganar && sFreya.estadoBatalla != Freya.Derrota)
            {
                sFreya.estadoBatalla = Freya.Esperando;

                // Resetear el estado del enemigo
                actualCD    = 0.0f;
                estadoTurno = EstadoTurno.Procesando;
            }
            else
            {
                estadoTurno = EstadoTurno.Esperando;
            }

            // Fin Corutina

            iniciarAccion = false;
        }
Exemple #10
0
        /// <summary>
        /// <para>Recibe daño del enemigo</para>
        /// </summary>
        public void RecibirDamage(float damage)// Recibe daño del enemigo
        {
            aliado.actualHP -= damage;
            if (aliado.actualHP <= 0)
            {
                aliado.actualHP = 0;
                estadoTurno     = EstadoTurno.Muerte;
            }

            ActualizarPanelAliado();
        }
Exemple #11
0
        public void ActualizarProgressBar()
        {
            actualCD = actualCD + Time.deltaTime;
            float calculoCD = actualCD / maxCD;

            progressBar.value = Mathf.Clamp(calculoCD, 0, 1);

            if (actualCD >= maxCD)
            {
                estadoTurno = EstadoTurno.AgregandoALista;
            }
        }
Exemple #12
0
        private void ActualizarProgressBar()
        {
            actualCD = actualCD + Time.deltaTime;
            float calculoCD = actualCD / maxCD;

            progressBar.value = Mathf.Clamp(calculoCD, 0, 1);

            if (actualCD >= maxCD)
            {
                estadoTurno = EstadoTurno.EscogerAccion;
            }
        }
    public void AcabarTurno()
    {
        //Colocamos la accion a espera
        estadoTurno = EstadoTurno.ESPERANDO;

        //Colocar al enemigo 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;
    }
    public void Atacar(GameObject enemigo)
    {
        ataque                 = new HandleAction();
        ataque.atacante        = heroe.nombre;
        ataque.tipoAtacante    = HandleAction.TipoAtacante.PERSONAJE;
        ataque.atacanteGameObj = this.gameObject;
        ataque.ataque          = heroe.ataque;

        //Seleccionamos el objetivo
        ataque.objetivoGameObj = enemigo;

        //Añadimos la accion al sistema de batalla
        sistemaTurnos.RealizarAccion(ataque);

        StartCoroutine(Accion(enemigo));

        estadoTurno = EstadoTurno.ESPERANDO;
    }
        public List <EstadoTurno> obtenerTodosEstadosTurno()
        {
            EnlaceDatos   enlace    = new EnlaceDatos();
            SqlDataReader drEstados = enlace.getAllEstadosTurno();

            if (drEstados.HasRows)
            {
                List <EstadoTurno> lsEstados = new List <EstadoTurno>();
                while (drEstados.Read())
                {
                    EstadoTurno estados = new EstadoTurno();
                    estados.IdEstado = Convert.ToInt32(drEstados[0].ToString());
                    estados.Nombre   = drEstados.GetString(1);
                    lsEstados.Add(estados);
                }
                return(lsEstados);
            }
            return(null);
        }
Exemple #16
0
        public void Start()
        {
            // FIX Para testeo
            actualCD = Random.Range(0, 2.5f);

            // Obtener el panel aliados
            gridPanelAliados = GameObject.Find("GridBarAliados");

            // Crear Panel
            CrearPanelAliado();

            // Resetear Selector
            selector.SetActive(false);

            // Encontrar el SFreya
            sFreya = GameObject.Find("SFreya").GetComponent <SFreya>();

            // Inicializar el estado del turno
            estadoTurno = EstadoTurno.Procesando;

            // Obtener la posicion inicial
            posicionInicial = transform.position;
        }
    void Update()
    {
        if (estadoTurno.Equals(EstadoTurno.MUERTO) && fade <= 0f)
        {
            Destroy(this.gameObject);
        }

        if (enemigo.vidaActual <= 0 && !estadoTurno.Equals(EstadoTurno.MUERTO))
        {
            estadoTurno = EstadoTurno.MUERTO;
            //Quitar de la lista de enemigos
            sistemaTurnos.ComprobarEstadoBatalla();
        }

        switch (estadoTurno)
        {
        case EstadoTurno.MITURNO:
            JugarTurno();
            break;

        case EstadoTurno.ACCION:
            StartCoroutine(RealizarAccion());
            estadoTurno = EstadoTurno.ESPERANDO;
            break;

        case EstadoTurno.ESPERANDO:
            //UpdateMeToca();
            estadoTurno = EstadoTurno.ESPERANDO;
            break;

        case EstadoTurno.MUERTO:
            material.SetFloat("_Fade", fade);
            fade -= Time.deltaTime;
            break;
        }
    }
        public Turno obtenerTurnoPorId(int idTurno)
        {
            EnlaceDatos enlace = new EnlaceDatos();



            ///// Acá corregir. El turno conoce al paciente



            SqlDataReader drTurno    = enlace.getTurnoPorId(idTurno);
            SqlDataReader drPaciente = enlace.getPacientePorTurno(idTurno);

            if (drTurno.HasRows && drPaciente.HasRows)
            {
                drTurno.Read();
                Turno turno = new Turno();
                turno.IdTurno    = Convert.ToInt32(drTurno[0].ToString());
                turno.FechaTurno = drTurno.GetDateTime(1);
                turno.HoraInicio = Convert.ToDateTime(drTurno.GetDateTime(2).ToShortTimeString());
                turno.HoraFin    = drTurno.GetDateTime(3);
                turno.Comentario = drTurno.GetString(4);

                Profesional profesional = new Profesional();
                profesional.Idprofesional = Convert.ToInt32(drTurno[5].ToString());
                profesional.Apellido      = drTurno.GetString(6);
                profesional.Nombre        = drTurno.GetString(7);

                EstadoTurno estado = new EstadoTurno();
                estado.IdEstado = Convert.ToInt32(drTurno[8].ToString());
                estado.Nombre   = drTurno.GetString(9);

                drPaciente.Read();
                Paciente paciente = new Paciente();
                paciente.IdPaciente = Convert.ToInt32(drPaciente[0].ToString());
                paciente.Apellido   = drPaciente.GetString(1);
                paciente.Nombre     = drPaciente.GetString(2);

                turno.EstadoTurno = estado;
                turno.Profesional = profesional;
                turno.Paciente    = paciente;

                SqlDataReader drPracticas = enlace.getPracticasPorTurno(turno.IdTurno);
                {
                    if (drPracticas.HasRows)
                    {
                        List <Practica> practicas = new List <Practica>();
                        while (drPracticas.Read())
                        {
                            Practica practica = new Practica();
                            practica.IdPractica = Convert.ToInt32(drPracticas[0].ToString());
                            practica.Nombre     = drPracticas.GetString(1);
                            practica.Duracion   = Convert.ToInt32(drPracticas[2].ToString());
                            practicas.Add(practica);
                        }
                        turno.Practicas = practicas;
                    }
                }
                return(turno);
            }
            return(null);
        }
 public void MeToca()
 {
     estadoTurno = EstadoTurno.MITURNO;
 }
Exemple #20
0
        public void Update()
        {
            switch (estadoTurno)
            {
            case EstadoTurno.Procesando:
                ActualizarProgressBar();
                break;

            case EstadoTurno.EscogerAccion:
                ElegirAccion();
                estadoTurno = EstadoTurno.Esperando;
                break;

            case EstadoTurno.Esperando:
                // TODO Estado idle
                break;

            case EstadoTurno.Accion:
                if (enemigo.actualHP > 0)
                {
                    StartCoroutine(TiempoDeAccion());
                }
                else
                {
                    estadoTurno = EstadoTurno.Muerte;
                }
                break;

            case EstadoTurno.Muerte:
                if (!estadoSalud)
                {
                    return;
                }
                else
                {
                    // Cambiar tag
                    this.gameObject.tag = "EnemigoMuerto";

                    // No atacable por el enemigo
                    sFreya.enemigos.Remove(this.gameObject);

                    // Desactivar el selector
                    selector.SetActive(false);

                    // Quitar procesos del proximo turno
                    if (sFreya.enemigos.Count > 0)
                    {
                        for (int n = 0; n < sFreya.proxTurno.Count; n++)
                        {
                            if (sFreya.proxTurno[n].prefabEnemigo == this.gameObject)
                            {
                                sFreya.proxTurno.Remove(sFreya.proxTurno[n]);
                            }

                            if (sFreya.proxTurno[n].objetivoEnemigo == this.gameObject)
                            {
                                sFreya.proxTurno[n].objetivoEnemigo = sFreya.enemigos[Random.Range(0, sFreya.enemigos.Count)];
                            }
                        }
                    }

                    // Cambiar color / Animacion
                    this.gameObject.GetComponent <MeshRenderer>().material.color = new Color32(105, 105, 105, 255);

                    // Activar estado de salud
                    estadoSalud = false;

                    // Reseteo de botones
                    sFreya.CrearBtnEnemigos();

                    // Comprobar estado
                    sFreya.estadoBatalla = Freya.ComprobarVida;
                }
                break;
            }
        }
    public IEnumerator Accion(GameObject objetivo)
    {
        if (accionComenzada)
        {
            yield break;
        }

        //Comenzamos la accion
        accionComenzada = true;

        estadoTurno = EstadoTurno.ACCION;

        if (ataque.ataque.rango.Equals(AtaqueBase.Rango.CORTO))
        {
            //Si el ataca es de corto rango se mueve hasta el objetivo

            //Mover enemigo cerca del personaje a atacar
            //Vector3 posicionPersonaje = new Vector3(objetivo.transform.position.x - 15f, objetivo.transform.position.y, objetivo.transform.position.z);

            Vector3 posicionPersonaje = new Vector3(transform.position.x + 3f, transform.position.y, transform.position.z);

            while (MoverHaciaPosicion(this.gameObject, posicionPersonaje, velAnimacion))
            {
                yield return(null);
            }

            //Volver a la posicion original
            while (MoverHaciaPosicion(this.gameObject, posicionInicial, velAnimacion))
            {
                yield return(null);
            }

            if (ataque.ataque.prefab != null)
            {
                GameObject projectile = Instantiate(ataque.ataque.prefab, ataque.objetivoGameObj.transform) as GameObject;

                projectile.transform.SetParent(ataque.objetivoGameObj.transform.parent);
                projectile.transform.localScale = ataque.ataque.prefab.transform.localScale;

                yield return(new WaitForSeconds(0.5f));

                Destroy(projectile);
            }
        }
        else if (ataque.ataque.rango.Equals(AtaqueBase.Rango.LARGO))
        {
            if (ataque.ataque.prefab != null)
            {
                if (ataque.ataque.seMueve)
                {
                    //lanzar prefab
                    GameObject projectile = Instantiate(ataque.ataque.prefab, ataque.atacanteGameObj.transform) as GameObject;

                    projectile.transform.right = (objetivo.transform.position - projectile.transform.position);

                    while (MoverHaciaPosicion(projectile, objetivo.transform.position, 50f))
                    {
                        yield return(null);
                    }

                    Destroy(projectile);
                }
                else
                {
                    Vector3 posicionPersonaje = new Vector3(transform.position.x + 3f, transform.position.y, transform.position.z);

                    while (MoverHaciaPosicion(this.gameObject, posicionPersonaje, velAnimacion))
                    {
                        yield return(null);
                    }

                    //Volver a la posicion original
                    while (MoverHaciaPosicion(this.gameObject, posicionInicial, velAnimacion))
                    {
                        yield return(null);
                    }

                    GameObject projectile = Instantiate(ataque.ataque.prefab, ataque.objetivoGameObj.transform) as GameObject;

                    Destroy(projectile, 1.5f);
                }
            }
        }


        //Hacer daño
        sistemaTurnos.sistemaDMG.HacerDMG(ataque);

        //Esperar
        yield return(new WaitForSeconds(1.5f));

        //Eliminar accion de la lista de acciones
        sistemaTurnos.listaAcciones.RemoveAt(0);

        accionComenzada = false;
        //Reset sistemaTurnos -> Espera
        AcabarTurno();
    }
 public CambioEstadoTurno(EstadoTurno currentState, EventoTurno eventoTurno)
 {
     Estado = currentState;
     Evento = eventoTurno;
 }
Exemple #23
0
 public static bool PuedeAplicar(EstadoTurno estado, EventoTurno eventoTurno)
 {
     var transicion = new CambioEstadoTurno(estado, eventoTurno);
     return Transiciones.ContainsKey(transicion);
 }