예제 #1
0
 public ColisionInformacion(GameObject objeto, Entidad entidad, Colision colision1, Colision colision2, ColisionTipo tipo, ColisionEstado estado)
 {
     this.entidad   = entidad;
     this.colision1 = colision1;
     this.colision2 = colision2;
     this.objeto    = objeto;
     this.estado    = estado;
     this.tipo      = tipo;
 }
예제 #2
0
 public bool IsColision(Colision colision)
 {
     for (int i = 0; i < colisiones.Length; i++)
     {
         if (colisiones[i].Equals(colision))
         {
             return(true);
         }
     }
     return(false);
 }
예제 #3
0
 public PerfilAtaque GetPerfil(Colision colision)
 {
     for (int i = 0; i < perfiles.Length; i++)
     {
         if (perfiles[i].IsColision(colision))
         {
             return(perfiles[i]);
         }
     }
     return(null);
 }
예제 #4
0
        private void OnTriggerEnter(Collider otro)
        {
            Rigidbody rigidbody = otro.attachedRigidbody;

            GameObject objeto   = null;
            Entidad    entidad  = null;
            Colision   colision = null;

            if (rigidbody != null)
            {
                objeto   = rigidbody.gameObject;
                entidad  = objeto.GetComponent <Entidad>();
                colision = otro.GetComponent <Colision>();
            }
            else
            {
                objeto   = otro.gameObject;
                entidad  = objeto.GetComponent <Entidad>();
                colision = otro.gameObject.GetComponent <Colision>();
            }
            ActivarEvento(new ColisionInformacion(objeto, entidad, this, colision, ColisionTipo.TRIGGER, ColisionEstado.ENTER));
        }
예제 #5
0
        private void OnCollisionExit(Collision otro)
        {
            Rigidbody rigidbody = otro.collider.attachedRigidbody;

            GameObject objeto   = null;
            Entidad    entidad  = null;
            Colision   colision = null;

            if (rigidbody != null)
            {
                objeto   = rigidbody.gameObject;
                entidad  = objeto.GetComponent <Entidad>();
                colision = otro.collider.GetComponent <Colision>();
            }
            else
            {
                objeto   = otro.gameObject;
                entidad  = objeto.GetComponent <Entidad>();
                colision = otro.collider.GetComponent <Colision>();
            }
            ActivarEvento(new ColisionInformacion(objeto, entidad, this, colision, ColisionTipo.FISICA, ColisionEstado.EXIT));
        }
예제 #6
0
        public void AddDanio(float ataquebasico, Entidad entidad, Colision colision)
        {
            if (!IsEnable())
            {
                return;
            }

            if (perfilvitalidad.IsColision(colision))
            {
                float efecto = ataquebasico;
                efecto -= efecto * perfilvitalidad.GetReduccionDaño();
                if (perfilvitalidad.GetTipo() == VitalidadTipo.CARGAS)
                {
                    efecto = perfilvitalidad.GetCargas();
                }


                if (IsEnable())
                {
                    switch (perfilvitalidad.GetTipo())
                    {
                    case VitalidadTipo.DAÑO:
                    case VitalidadTipo.CARGAS:
                        SolicitarVitalidadEvento(new VitalidadInformacion(perfilvitalidad,
                                                                          efecto,
                                                                          entidad,
                                                                          VitalidadEventoTipo.PREEFECTO));
                        perfilvitalidad.ModVida(-efecto);
                        break;

                    case VitalidadTipo.MODMETA:
                        efecto = float.Parse(perfilvitalidad.GetMetaValor());
                        SolicitarVitalidadEvento(new VitalidadInformacion(perfilvitalidad,
                                                                          efecto,
                                                                          entidad,
                                                                          VitalidadEventoTipo.PREEFECTO));
                        GetEntidad().ModMetadato(perfilvitalidad.GetMetaNombre(), float.Parse(perfilvitalidad.GetMetaValor()));
                        break;

                    case VitalidadTipo.SETMETA:
                        efecto = -1;
                        SolicitarVitalidadEvento(new VitalidadInformacion(perfilvitalidad,
                                                                          efecto,
                                                                          entidad,
                                                                          VitalidadEventoTipo.PREEFECTO));
                        GetEntidad().SetMetadato(perfilvitalidad.GetMetaNombre(), perfilvitalidad.GetMetaValor());
                        break;

                    case VitalidadTipo.MODMETAATAQUE:
                        efecto *= perfilvitalidad.GetMetaMultiplicador();
                        SolicitarVitalidadEvento(new VitalidadInformacion(perfilvitalidad,
                                                                          efecto,
                                                                          entidad,
                                                                          VitalidadEventoTipo.PREEFECTO));
                        GetEntidad().ModMetadato(perfilvitalidad.GetMetaNombre(), efecto * perfilvitalidad.GetMetaMultiplicador());
                        break;

                    case VitalidadTipo.SETMETAATAQUE:
                        efecto *= perfilvitalidad.GetMetaMultiplicador();
                        SolicitarVitalidadEvento(new VitalidadInformacion(perfilvitalidad,
                                                                          efecto,
                                                                          entidad,
                                                                          VitalidadEventoTipo.PREEFECTO));
                        GetEntidad().SetMetadato(perfilvitalidad.GetMetaNombre(), (efecto * perfilvitalidad.GetMetaMultiplicador()).ToString());
                        break;
                    }
                    eventoefecto.Invoke();
                }
                else
                {
                    efecto = 0;
                }

                SolicitarVitalidadEvento(new VitalidadInformacion(perfilvitalidad,
                                                                  efecto,
                                                                  entidad,
                                                                  VitalidadEventoTipo.EFECTO));
            }
        }