/// <summary> /// Este metodo se llama si el enemigo goomba colisiona por trigger con algun otro objeto /// </summary> /// /// <param name="other"></param> El que ha colisionado con el enemigo void OnTriggerEnter2D(Collider2D other) { // Se usa en el if para ver si el jugador tiene el estado fantasma o no EstadoFantasma est = other.GetComponent <EstadoFantasma>(); PerdidasControl pc = other.GetComponent <PerdidasControl>(); if (pc != null && est != null && !est.CogerEstadoFantasma()) { GameManager.instance.EjecutarSonido(audioSource, "Goomba"); pc.DesactivaControles(segundos, 0); } }
/// <summary> /// Si colisiona con zonas de muerte, llama para cambiar la posicion de uno de los 2 jugadores /// </summary> /// <param name="other"></param> void OnTriggerEnter2D(Collider2D other) { PerdidasControl pc = other.GetComponent <PerdidasControl>(); Respawn respawn = other.GetComponent <Respawn>(); if (respawn != null && pc != null && !CheatsManager.instance.GetEstadoInvencibilidad()) { GameManager.instance.EjecutarSonido(audioSource, "Morir"); if (pc.GetEstadoActual() != PerdidaControles.enCubo) { pc.DesactivaControles(segundosRespawn, 4); //si muere el jugador no puede volver a moverse hasta pasados "segundosRespawn" segundos } respawn.RespawnJugador(other.transform); } }
private void OnTriggerEnter2D(Collider2D other) { EstadoFantasma est = other.GetComponent <EstadoFantasma>(); // Llamamos al ralentizar PerdidasControl pc = other.GetComponent <PerdidasControl>(); if (pc != null && est != null && !est.CogerEstadoFantasma()) // Si no esta en modo fantasma { pc.ActivaModificaVelocidad(reduccionVelVigilante, 7); } if (this.gameObject.GetComponentInParent <SeguirObjetivo>() != null && est != null) //Si este enemigo dispone de la capacidad de seguir al jugador { SeguirObjetivo so = this.gameObject.GetComponentInParent <SeguirObjetivo>(); if (!est.CogerEstadoFantasma() && so.PuedeIniciarSeguimiento()) { so.SigueAlJugador(other.transform); //Si no está en modo fantasma y el enemigo puede iniciar un seguimiento } } //Autorizamos el seguimiento al jugador y pasamos su transform para gestionar su posición }
void Start() { gemas = 0; poderUsar = Poderes.sinPoder; poderUsado = Poderes.sinPoder; habilidadActiva = false; if (jugadorContrario.gameObject.GetComponent <AudioSource>() != null) { audioSourceJC = jugadorContrario.gameObject.GetComponent <AudioSource>(); } if (jugadorContrario.gameObject.GetComponent <PerdidasControl>() != null) { pcJC = jugadorContrario.gameObject.GetComponent <PerdidasControl>(); } if (jugadorContrario.gameObject.GetComponent <ControladorJugador>() != null) { controlesJugadorContrario = jugadorContrario.gameObject.GetComponent <ControladorJugador>(); } }