public static void Armadilha(ArmadilhaModel model, Armadilha armadilha, float bpm, GameObject buraco, AudioClip somAoSurgir, AudioClip somPancada, AudioClip somDano, GameObject acertouEfeito) { Criar(model, bpm, buraco, somAoSurgir, somPancada, somDano, acertouEfeito); model.Vida = armadilha.vida; model.Pontos = armadilha.pontos; model.PontosPowerUp = armadilha.pontosPowerUp; model.PontosTimer = armadilha.pontosTimer; model.Velocidade = armadilha.velocidade; model.Dano = armadilha.dano; model.Raridade = armadilha.raridade; model.TemposNaTela = armadilha.temposNaTela / (bpm / 60f); model.TipoDeArmadilha = armadilha.tipoDeAmadilha; }
public override void OnNotificacao(string evento_caminho, Object alvo, params object[] dados) { switch (evento_caminho) { case Notificacao.Armadilha.Surgindo: model = GetComponent <ArmadilhaModel>(); view = GetComponentInChildren <ArmadilhaView>(); if (alvo == view) { view.TocarSom(model.SomAoSurgir); view.Surgir(model.Velocidade, model.Buraco.transform.position.y + 1.55f); } break; case Notificacao.Armadilha.Idle: if (alvo == view) { view.Idle(model.TemposNaTela); } break; case Notificacao.Armadilha.FoiAcertada: if (alvo == view) { app.DebugArmadilha("FoiAcertada"); if (model.Dano > 0) { view.TocarSom(model.SomDano); app.Notificar(Notificacao.Jogador.PerdeuVida, this, model.Dano); } else { view.TocarSom(model.SomPancada); } model.Vida--; if (model.Vida <= 0) { view.Acertou(model.AcertouEfeito); model.Descendo = true; app.Notificar(Notificacao.Jogador.GanhouPontos, this, model.Pontos, model.PontosPowerUp, model.PontosTimer); view.Descer(); } else { view.Acertou(model.AcertouEfeito); } } /* * if (alvo == view) * { * model.Vida--; * if (model.Vida <= 0) * { * view.TocarSom(model.SomDano); * app.Notificar(Notificacao.Jogador.PerdeuVida, this, model.Dano); * view.Acertou(model.AcertouEfeito); * view.Descer(); * } * } */ break; case Notificacao.Armadilha.Desceu: if (alvo == view) { model.Buraco.GetComponent <Buraco>().EstaOcupado = false; Destroy(gameObject, 0.2f); } break; /* * case Notificacao.Fase.Parar: * view.Rodando(false); * break; * * case Notificacao.Fase.Voltar: * view.Rodando(true); * break; */ } }