public void InserirCriatureEmJogo()
    {
        GameObject G = InicializadorDoJogo.InstanciaCriature(transform, dados.CriaturesAtivos[0]);

        InicializadorDoJogo.InsereCriatureEmJogo(G, this);
        GameController.g.HudM.InicializaPaineisCriature(this);
    }
    void FinalizaEscolhaInicial()
    {
        gameObject.SetActive(false);
        CharacterManager manager = GameController.g.Manager;

        manager.Dados.CriaturesAtivos = new System.Collections.Generic.List <CriatureBase>()
        {
            criaturesIniciais[indiceDoSelecionado]
        };
        GameController.g.MyKeys.MudaShift(KeyShift.estouNoTuto, false);
        GameObject G = InicializadorDoJogo.InstanciaCriature(manager.transform, manager.Dados.CriaturesAtivos[0]);

        InicializadorDoJogo.InsereCriatureEmJogo(G, manager);
    }
    void FinalizaEscolhaInicial()
    {
        gameObject.SetActive(false);
        GameController.g.HudM.Painel.EsconderMensagem();
        CharacterManager manager = GameController.g.Manager;

        manager.Dados.CriaturesAtivos = new System.Collections.Generic.List <CriatureBase>()
        {
            criaturesIniciais[indiceDoSelecionado]
        };
//        GameController.g.MyKeys.MudaShift(KeyShift.estouNoTuto,false);
        GameObject G = InicializadorDoJogo.InstanciaCriature(manager.transform, manager.Dados.CriaturesAtivos[0]);

        InicializadorDoJogo.InsereCriatureEmJogo(G, manager);
        GameController.g.HudM.AtualizaDadosDaHudVida(false);
        npcMini.EstadoDeMostrarCaminho();
    }
    public bool AnimaEnvia(
        CriatureBase oInstanciado = null,
        string nomeDoGameObject   = "")
    {
        tempoDecorrido += Time.deltaTime;
        switch (estadoEnvia)
        {
        case EstadoDoAnimaEnvia.iniciaAnimacao:
            tempoDecorrido = 0;
            animador.AnimaEnvia();
            estadoEnvia = EstadoDoAnimaEnvia.animaEnvia;
            break;

        case EstadoDoAnimaEnvia.animaEnvia:
            if (tempoDecorrido > TEMPO_DA_ANIMA_ENVIA)
            {
                luz            = ParticulasDeSubstituicao.InsereParticulaDaLuva(manager.gameObject, false);
                raio           = ParticulasDeSubstituicao.InsereParticulaDoRaio(posCriature, manager.gameObject, false);
                estadoEnvia    = EstadoDoAnimaEnvia.Instancia;
                tempoDecorrido = 0;
            }
            break;

        case EstadoDoAnimaEnvia.Instancia:
            if (tempoDecorrido > TEMPO_PARA_INSTANCIAR_CRIATURE)
            {
                if (oInstanciado == null && manager != null)
                {
                    oInstanciado = manager.Dados.CriaturesAtivos[0];
                }

                C           = elementosDoJogo.el.retorna(oInstanciado.NomeID);
                posCriature = MelhoraInstancia.ProcuraPosNoMapa(posCriature);
                C           = (GameObject)MonoBehaviour.Instantiate(C, posCriature, Quaternion.identity);

                C.transform.parent = elementosDoJogo.el.transform;

                if (nomeDoGameObject == "" && manager != null)
                {
                    InicializadorDoJogo.InsereCriatureEmJogo(C, manager);
                }

                C.transform.localScale = new Vector3(0.01f, 0.01f, 0.01f);
                ParticulasDeSubstituicao.ParticulaSaiDaLuva(posCriature);

                tempoDecorrido = 0;
                estadoEnvia    = EstadoDoAnimaEnvia.AumentaEscala;
            }
            break;

        case EstadoDoAnimaEnvia.AumentaEscala:
            if (C.transform.localScale.sqrMagnitude < 2.5f)
            {
                C.transform.localScale = Vector3.Lerp(C.transform.localScale, new Vector3(1, 1, 1), 4 * Time.deltaTime);
                C.transform.position   = posCriature;
            }
            else
            {
                C.transform.localScale = new Vector3(1, 1, 1);
                estadoEnvia            = EstadoDoAnimaEnvia.finalizaEnvia;
                tempoDecorrido         = 0;
            }
            break;

        case EstadoDoAnimaEnvia.finalizaEnvia:

            if (tempoDecorrido < TEMPO_PARA_FINALISAR_RAIO)
            {
                ParticulasDeSubstituicao.ReduzVelocidadeDoRaio(raio);
            }
            else
            {
                MonoBehaviour.Destroy(raio);
                MonoBehaviour.Destroy(luz);
                return(false);
            }
            break;
        }
        return(true);
    }
Beispiel #5
0
    public bool AnimaEnvia(
        CriatureBase oInstanciado = null,
        string nomeDoGameObject   = "")
    {
        tempoDecorrido += Time.deltaTime;
        switch (estadoEnvia)
        {
        case EstadoDoAnimaEnvia.iniciaAnimacao:
            tempoDecorrido = 0;
            animador.AnimaEnvia();
            estadoEnvia = EstadoDoAnimaEnvia.animaEnvia;
            break;

        case EstadoDoAnimaEnvia.animaEnvia:
            //if (tempoDecorrido > ((treinador)?TEMPO_DA_ANIMA_ENVIA_TREINADOR:TEMPO_DA_ANIMA_ENVIA))
            AnimatorStateInfo A = oAnimado.GetComponent <Animator>().GetCurrentAnimatorStateInfo(0);
            if (A.IsName("enviaCriature") && A.normalizedTime >= 1)
            {
                luz            = ParticulasDeSubstituicao.InsereParticulaDaLuva(oAnimado.gameObject, false);
                raio           = ParticulasDeSubstituicao.InsereParticulaDoRaio(posCriature, oAnimado.gameObject, false);
                estadoEnvia    = EstadoDoAnimaEnvia.Instancia;
                tempoDecorrido = 0;
            }
            break;

        case EstadoDoAnimaEnvia.Instancia:
            if (tempoDecorrido > TEMPO_PARA_INSTANCIAR_CRIATURE)
            {
                if (oInstanciado == null && !treinador)
                {
                    oInstanciado = GameController.g.Manager.Dados.CriaturesAtivos[0];
                }

                if (!treinador)
                {
                    C           = GameController.g.El.retorna(oInstanciado.NomeID);
                    posCriature = MelhoraInstancia.ProcuraPosNoMapa(posCriature);
                    C           = (GameObject)MonoBehaviour.Instantiate(C, posCriature, Quaternion.identity);

                    C.transform.parent = GameController.g.transform;
                }

                Debug.Log(nomeDoGameObject + " : " + treinador);
                if (nomeDoGameObject == "" && !treinador)
                {
                    InicializadorDoJogo.InsereCriatureEmJogo(C, GameController.g.Manager);
                }
                else if (treinador)
                {
                    Debug.Log("inimigo");
                    C           = InsereInimigoEmCampo.RetornaInimigoEmCampo(oInstanciado).gameObject;
                    posCriature = MelhoraInstancia.ProcuraPosNoMapa(posCriature);
                    C.name      = nomeDoGameObject != "" ? nomeDoGameObject : "Inimigo";
                }

                C.transform.localScale = new Vector3(0.01f, 0.01f, 0.01f);
                ParticulasDeSubstituicao.ParticulaSaiDaLuva(posCriature);

                tempoDecorrido = 0;
                estadoEnvia    = EstadoDoAnimaEnvia.AumentaEscala;
            }
            break;

        case EstadoDoAnimaEnvia.AumentaEscala:
            if (!treinador)
            {
                GameController.g.Manager.CriatureAtivo.GetComponent <UnityEngine.AI.NavMeshAgent>().enabled = false;
            }
            if (C.transform.localScale.sqrMagnitude < 2.5f)
            {
                C.transform.localScale = Vector3.Lerp(C.transform.localScale, new Vector3(1, 1, 1), 4 * Time.deltaTime);
                C.transform.position   = posCriature;
            }
            else
            {
                C.transform.localScale = new Vector3(1, 1, 1);
                estadoEnvia            = EstadoDoAnimaEnvia.finalizaEnvia;
                tempoDecorrido         = 0;
            }
            break;

        case EstadoDoAnimaEnvia.finalizaEnvia:

            if (tempoDecorrido < TEMPO_PARA_FINALISAR_RAIO)
            {
                if (!treinador)
                {
                    GameController.g.Manager.CriatureAtivo.GetComponent <UnityEngine.AI.NavMeshAgent>().enabled = true;
                }
                ParticulasDeSubstituicao.ReduzVelocidadeDoRaio(raio);
            }
            else
            {
                if (treinador)
                {
                    animador.ResetaEnvia();
                    animador.ResetaTroca();
                }

                MonoBehaviour.Destroy(raio);
                MonoBehaviour.Destroy(luz);
                return(false);
            }
            break;
        }
        return(true);
    }
 void Start()
 {
     inicializador = FindObjectOfType <InicializadorDoJogo>();
     source.PlayOneShot(tiro);
 }