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; }
public bool IsColision(Colision colision) { for (int i = 0; i < colisiones.Length; i++) { if (colisiones[i].Equals(colision)) { return(true); } } return(false); }
public PerfilAtaque GetPerfil(Colision colision) { for (int i = 0; i < perfiles.Length; i++) { if (perfiles[i].IsColision(colision)) { return(perfiles[i]); } } return(null); }
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)); }
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)); }
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)); } }