Ejemplo n.º 1
0
    public static void Toupeira(ToupeiraModel model,
                                Toupeira toupeira,
                                float bpm,
                                GameObject buraco,
                                AudioClip somAoSurgir,
                                AudioClip somPancada,
                                AudioClip somDano,
                                // AudioClip somFugiu,
                                GameObject acertouEfeito)
    {
        Criar(model, bpm, buraco, somAoSurgir, somPancada, somDano, acertouEfeito);
        model.Vida          = toupeira.vida;
        model.Pontos        = toupeira.pontos;
        model.PontosPowerUp = toupeira.pontosPowerUp;
        model.PontosTimer   = toupeira.pontosTimer;
        model.Velocidade    = toupeira.velocidade;
        model.Dano          = toupeira.dano;
        model.Raridade      = toupeira.raridade;
        model.TemposNaTela  = toupeira.temposNaTela / (bpm / 60f);

        model.DancasId      = toupeira.dancasId;
        model.Comportamento = toupeira.comportamento;
        //model.SomFugiu = somFugiu;
    }
Ejemplo n.º 2
0
    public override void OnNotificacao(string evento_caminho, Object alvo, params object[] dados)
    {
        switch (evento_caminho)
        {
        case Notificacao.Toupeira.Surgindo:
            model = GetComponent <ToupeiraModel>();
            view  = GetComponentInChildren <ToupeiraView>();
            if (alvo == view)
            {
                model.Descendo = false;
                view.TocarSom(model.SomAoSurgir);
                view.Surgir(model.Velocidade, model.Buraco.transform.position.y + 1.55f);
            }
            break;

        case Notificacao.Toupeira.Idle:
            if (alvo == view)
            {
                view.Idle(model.BpmFase, model.DancasId, model.Comportamento, model.TemposNaTela);
            }
            break;

        case Notificacao.Toupeira.FoiAcertada:
            if (alvo == view)
            {
                if (TesteDados.PowerUp3)
                {
                    model.Vida = 1;
                }

                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("Matou", model.AcertouEfeito);
                    model.Descendo = true;
                    app.Notificar(Notificacao.Jogador.GanhouPontos, this, model.Pontos, model.PontosPowerUp, model.PontosTimer);
                }
                else
                {
                    view.Acertou("Acertou", model.AcertouEfeito);
                }
            }
            break;

        case Notificacao.Toupeira.MatarUma:
            if (alvo == view)
            {
                if (model.Dano > 0)
                {
                    view.TocarSom(model.SomDano);
                    app.Notificar(Notificacao.Jogador.PerdeuVida, this, model.Dano);
                }
                else
                {
                    view.TocarSom(app.jogadorModel.somPowerUp1);
                }
                model.Vida = 0;

                view.Acertou("Matou", app.jogadorModel.efeitoPowerUp1);
                model.Descendo = true;
                app.Notificar(Notificacao.Jogador.GanhouPontos, this, model.Pontos, model.PontosPowerUp);
            }
            break;

        case Notificacao.Toupeira.MatarTodas:
            if (alvo == view)
            {
                view.TocarSom(app.jogadorModel.somPowerUp2);
                model.Vida = 0;
                view.Acertou("Matou", app.jogadorModel.efeitoPowerUp2);
                model.Descendo = true;

                if (model.Dano > 0)
                {
                    view.TocarSom(model.SomDano);
                    app.Notificar(Notificacao.Jogador.PerdeuVida, this, model.Dano);
                }

                app.Notificar(Notificacao.Jogador.GanhouPontos, this, model.Pontos, model.PontosPowerUp, model.PontosTimer);

                app.DebugToupeira("Matar todas");
            }
            break;

        case Notificacao.Toupeira.Desceu:
            if (alvo == view)
            {
                /*
                 * if (model.Vida > 0)
                 * {
                 *  view.TocarSom(model.SomFugiu);
                 * }
                 */
                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;
             */
        }
    }