private void ActivarEvento(ColisionInformacion informacion) { if (colisionevento != null) { colisionevento(informacion); } }
private void EventoPiso(ColisionInformacion info) { if (info.GetColisionTipo() == ColisionTipo.TRIGGER) { if (info.GetColisionEstado() == ColisionEstado.ENTER) { saltos = 0; eventopiso.Invoke(); } estadopiso = info.GetColisionEstado() == ColisionEstado.ENTER; } }
private void EventoColision(ColisionInformacion info) { Entidad entidad = info.GetEntidadImpacto(); if (entidad != null) { if (entidad.GetModuloVitalidad() == null) { return; } if (!entidad.GetModuloVitalidad().GetPerfilVitalidad().IsColision(info.GetColisionImpacto())) { return; } if (entidad.GetTipo() != EntidadTipo.ALIADO) { return; } if (info.IsColisionEstado(ColisionEstado.ENTER)) { if (!entidades.Contains(entidad)) { entidades.Add(entidad); } } else if (info.IsColisionEstado(ColisionEstado.EXIT)) { if (entidades.Contains(entidad)) { if (entidad == objetivo) { objetivo = null; } entidades.Remove(entidad); } } } }
private void EventoColision(ColisionInformacion info) { Entidad entidad = info.GetEntidadImpacto(); if (entidad == null) { return; } if (info.GetColisionImpacto() == null) { return; } if (info.GetColisionImpacto().GetColisionTipo() != ColisionTipo.FISICA) { return; } if (info.GetColisionEstado() == ColisionEstado.ENTER) { if (entidades.Contains(entidad)) { return; } entidades.Add(entidad); } else { if (!entidades.Contains(entidad)) { return; } entidades.Remove(entidad); } switch (objetivo) { case AreaObjetivo.JUGADOR: Jugador jugador = entidad as Jugador; if (jugador != null) { this.entidad = entidad; SolicitarEvento(info.GetColisionEstado() == ColisionEstado.ENTER); } break; case AreaObjetivo.ENTIDAD: if (entidad == entidadobjetivo) { this.entidad = entidad; SolicitarEvento(info.GetColisionEstado() == ColisionEstado.ENTER); } break; case AreaObjetivo.METADATA: string valor = entidad.GetMetadato(metanombre); string[] clases = valor.Split(' '); if (clases != null) { for (int i = 0; i < clases.Length; i++) { if (clases[i] == metaclase) { this.entidad = entidad; SolicitarEvento(info.GetColisionEstado() == ColisionEstado.ENTER); } } } break; case AreaObjetivo.TODOS: this.entidad = entidad; SolicitarEvento(info.GetColisionEstado() == ColisionEstado.ENTER); break; } }
private void EventoColision(ColisionInformacion info) { if (!IsEnable()) { return; } Entidad entidad = info.GetEntidadImpacto(); if (entidad == null || info.GetColisionEstado() != ColisionEstado.ENTER) { return; } ModuloVitalidad vitalidad = entidad.GetModuloVitalidad(); if (vitalidad == null) { return; } if (!vitalidad.GetPerfilVitalidad().IsColision(info.GetColisionImpacto())) { return; } PerfilAtaque perfil = GetPerfil(info.GetColision()); if (perfil == null) { return; } switch (GetObjetivo()) { case AtaqueObjetivo.ALIADO: if (entidad.GetTipo() == EntidadTipo.ALIADO) { SolicitarEvento(new AtaqueInformacion( perfil, GetAtaque(perfil), GetEntidad(), entidad )); vitalidad.AddDanio(GetAtaque(perfil), entidad, info.GetColisionImpacto()); } break; case AtaqueObjetivo.ENEMIGO: if (entidad.GetTipo() == EntidadTipo.ENEMIGO) { SolicitarEvento(new AtaqueInformacion( perfil, GetAtaque(perfil), GetEntidad(), entidad )); vitalidad.AddDanio(GetAtaque(perfil), entidad, info.GetColisionImpacto()); } break; case AtaqueObjetivo.AMBOS: if (entidad.GetTipo() == EntidadTipo.ALIADO || entidad.GetTipo() == EntidadTipo.ENEMIGO) { SolicitarEvento(new AtaqueInformacion( perfil, GetAtaque(perfil), GetEntidad(), entidad )); vitalidad.AddDanio(GetAtaque(perfil), entidad, info.GetColisionImpacto()); } break; case AtaqueObjetivo.OBJETO: if (entidad.GetTipo() == EntidadTipo.OBJETO) { SolicitarEvento(new AtaqueInformacion( perfil, GetAtaque(perfil), GetEntidad(), entidad )); vitalidad.AddDanio(GetAtaque(perfil), entidad, info.GetColisionImpacto()); } break; case AtaqueObjetivo.TODOS: if (entidad.GetTipo() != EntidadTipo.DESCONOCIDO) { SolicitarEvento(new AtaqueInformacion( perfil, GetAtaque(perfil), GetEntidad(), entidad )); vitalidad.AddDanio(GetAtaque(perfil), entidad, info.GetColisionImpacto()); } break; } }