Exemplo n.º 1
0
 public override void FuncaoDoBotao()
 {
     estado = EstadoDaqui.menuAberto;
     menuContainer.SetActive(true);
     myKeys.ListaDeCapsulas.ChangeForActive(minhaID);
     menu.IniciarHud(EscolhaDeViagem, myKeys.ListaDeCapsulas.GetActiveCapsuleNames());
     SaveDatesManager.SalvarAtualizandoDados();
     EventAgregator.Publish(EventKey.abriuPainelSuspenso, null);
 }
Exemplo n.º 2
0
    private void OnStartCheckPoint(IGameEvent e)
    {
        StandardSendGameEvent ssge = (StandardSendGameEvent)e;

        dados.SetarVidaMax();
        //dados.SetarManaMax();
        dados.ultimoCheckPoint = new UltimoCheckPoint()
        {
            nomesDasCenas = (NomesCenas[])ssge.MyObject[0],
            Pos           = MelhoraPos.NovaPos(e.Sender.transform.position, 0.1f)
        };

        SaveDatesManager.SalvarAtualizandoDados();
    }
Exemplo n.º 3
0
    private void OnFadeOutComplete(IGameEvent obj)
    {
        GlobalController.g.FadeV.IniciarFadeIn();
        EventAgregator.AddListener(EventKey.fadeInComplete, OnFadeInComplete);

        SceneManager.SetActiveScene(
            SceneManager.GetSceneByName(GameController.g.MyKeys.CenaAtiva.ToString()));

        SaveDatesManager.SalvarAtualizandoDados();

        fase = FasesDoLoad.eventInProgress;

        SceneManager.UnloadSceneAsync(NomesCenasEspeciais.CenaDeCarregamento.ToString());

        //GameController.g.ModificacoesDaCena();
        Time.timeScale    = 1;
        Physics2D.gravity = new Vector2(0, -0.8f);
    }
Exemplo n.º 4
0
#pragma warning restore 0649

    public override void FuncaoDoBotao()
    {
        if (GameController.g.Manager.Estado != EstadoDePersonagem.inCheckPoint)
        {
            GameObject G = Instantiate(particles, transform.position, Quaternion.identity);
            Destroy(G, 5);
            DontDestroyOnLoad(G);

            GameController.g.MyKeys.ReviverInimigos();

            SaveDatesManager.SalvarAtualizandoDados();

            EventAgregator.Publish(new StandardSendGameEvent(gameObject, EventKey.startCheckPoint, cenasparaLoad));
            SceneManager.LoadScene(NomesCenasEspeciais.ComunsDeFase.ToString());

            for (int i = 0; i < cenasparaLoad.Length; i++)
            {
                SceneManager.LoadSceneAsync(cenasparaLoad[i].ToString(), LoadSceneMode.Additive);
            }
            SceneManager.sceneLoaded += OnLoadedScene;
        }
    }
Exemplo n.º 5
0
    // Update is called once per frame
    void Update()
    {
        piscaI.Update();
        atk.AttackIntervalUpdate();

        if (Control != Controlador.nulo)
        {
            switch (estado)
            {
            case EstadoDePersonagem.aPasseio:
                #region aPasseio

                bool    noChao = mov.NoChao;
                Vector3 V      = CommandReader.VetorDirecao(Control);
                mov.AplicadorDeMovimentos(V, CommandReader.ButtonDown(1, Control), dados.TemDoubleJump);

                if (V.z <= 0.75f)
                {
                    animador.EfetuarAnimacao(Mathf.Abs(mov.Velocity.x), !noChao);
                }

                atk.UpdateAttack();

                if (CommandReader.ButtonDown(0, Control))
                {
                    BotaoAtacar();
                }

                magic.Update(Control, Dados.PontosDeMana, noChao, dados);

                if (magic.EmTempoDeRecarga && magic.CustoParaRecarga <= Dados.PontosDeMana)
                {
                    estado = EstadoDePersonagem.emCura;
                    mov.AplicadorDeMovimentos(Vector3.zero, false, false);
                }

                if (dados.TemDash && dash.PodeDarDash(noChao) && CommandReader.ButtonDown(3, Control))
                {
                    dash.Start(Mathf.Sign(transform.localScale.x), noChao);
                    estado = EstadoDePersonagem.inDash;
                }

                if (CommandReader.ButtonDown(4, Control))
                {
                    atk.ModificouCorDaEspada(-1, dados);
                }
                else if (CommandReader.ButtonDown(5, Control))
                {
                    atk.ModificouCorDaEspada(1, dados);
                }

                if (V.z > 0.75f && noChao)
                {
                    mov.AplicadorDeMovimentos(Vector3.zero, false, false);
                    animador.EfetuarAnimacao(0, !noChao);
                    ActionManager.VerificaAcao();
                }
                #endregion
                break;

            case EstadoDePersonagem.emCura:
                magic.Update(Control, Dados.PontosDeMana, mov.NoChao, dados);
                break;

            case EstadoDePersonagem.emAtk:
                #region emAtk
                if (!mov.NoChao)
                {
                    mov.AplicadorDeMovimentos(CommandReader.VetorDirecao(Control), CommandReader.ButtonDown(1, Control), dados.TemDoubleJump);
                }
                else
                {
                    mov.AplicadorDeMovimentos(Vector3.Lerp(mov.Velocity.normalized, Vector3.zero, 30 * Time.deltaTime));
                }

                if (atk.UpdateAttack())
                {
                    estado = EstadoDePersonagem.aPasseio;
                }
                #endregion
                break;

            case EstadoDePersonagem.emDano:
                #region emDano
                if (emDano.Update(mov, CommandReader.VetorDirecao(Control)))
                {
                    if (tDamage.agendado)
                    {
                        mov.AplicadorDeMovimentos(Vector3.zero);
                        estado = EstadoDePersonagem.parado;
                        tDamage.Iniciar();
                    }
                    else
                    {
                        estado = EstadoDePersonagem.aPasseio;
                    }
                }
                #endregion
                break;

            case EstadoDePersonagem.downArrowActive:
                #region downArrowActive
                if (!mov.NoChao)
                {
                    piscaI.Start(0.5f, 4);
                    mov.GravityScaled(250);
                }
                else
                {
                    mov.AplicadorDeMovimentos(Vector3.zero, false, false);
                    if (magic.FinalizaDownArrow(mov.NoChao))
                    {
                        estado = EstadoDePersonagem.aPasseio;
                    }
                }
                #endregion
                break;

            case EstadoDePersonagem.inDash:
                #region inDash
                if (dash.Update(Mathf.Sign(transform.localScale.x), Mathf.Sign(CommandReader.VetorDirecao(Control).x)))
                {
                    estado = EstadoDePersonagem.aPasseio;
                }

                if (CommandReader.ButtonDown(0, Control))
                {
                    dash.RetornarAoEstadoDeEspera();
                    estado = EstadoDePersonagem.aPasseio;
                    BotaoAtacar();
                }
                #endregion
                break;

            case EstadoDePersonagem.inCheckPoint:
                #region inCheckPoint

                if (Mathf.Abs(CommandReader.VetorDirecao(GlobalController.g.Control).x) > 0.5f)
                {
                    particulaSaiuDoDescanso.gameObject.SetActive(true);
                    particulaSaiuDoDescanso.Play();
                    particulaDoDescanso.SetActive(false);
                    estado = EstadoDePersonagem.aPasseio;
                    EventAgregator.Publish(EventKey.checkPointExit, null);
                }
                #endregion
                break;

            case EstadoDePersonagem.derrotado:
                #region derrotado
                if (emDano.Update(mov, CommandReader.VetorDirecao(Control)))
                {
                    mov.AplicadorDeMovimentos(Vector3.zero, false, false);
                    particulaDoMorrendo.SetActive(true);
                    if (derrota.Update())
                    {
                        transform.position = dados.ultimoCheckPoint.Pos;
                        dados.SetarVidaMax();
                        //dados.SetarManaMax();

                        GameController.g.MyKeys.ReviverInimigos();

                        SaveDatesManager.SalvarAtualizandoDados(dados.ultimoCheckPoint.nomesDasCenas);
                        SceneLoader.IniciarCarregamento(SaveDatesManager.s.IndiceDoJogoAtualSelecionado,
                                                        () => {
                            estado = EstadoDePersonagem.aPasseio;
                            EventAgregator.Publish(EventKey.requestShowControllers, null);
                            derrota.DesligarLosangulo();
                        });
                        estado = EstadoDePersonagem.naoIniciado;
                    }
                }
                #endregion
                break;

            case EstadoDePersonagem.movimentoRequerido:
                if (positionRequest.UpdateMove())
                {
                    mov.AplicadorDeMovimentos(Vector3.zero);
                    estado = EstadoDePersonagem.parado;
                    EventAgregator.Publish(new StandardGameEvent(positionRequest.Requisitor, EventKey.positionRequeredOk));
                }
                break;
            }
        }
    }