Пример #1
0
    void Update()
    {
        goldText.text       = _controllerFase.qtdMoedasColetadas.ToString();
        vidaText.text       = _gameController.numVida.ToString();
        tentativasText.text = _gameController.numTentativasFase.ToString();

        if (objVidaChefao.activeSelf)
        {
            InimigoChefe _inimigoChefe = FindObjectOfType(typeof(InimigoChefe)) as InimigoChefe;
            if (_inimigoChefe != null)
            {
                vidaChefaoText.text = _inimigoChefe.numMortes.ToString();
            }
        }
    }
Пример #2
0
    //CONTROLE DE COLISÃO
    private void OnTriggerEnter2D(Collider2D col)
    {
        switch (col.gameObject.tag)
        {
        case "armaInimigo":
            //IRA FAZER UM TESTE COM A VIDA DO INIMIGO SE A FORCA DO ATAQUE FOR IGUAL A VIDA DO INIMIGO O INIMIGO MORRE E O PLAYER NAO SOFRE NADA
            //SE O ATAQUE FOR MENOR QUE A VIDA DO INIMIGO ENTAO O INIMIGO DA UM HIT NO PLAYER E O PLAYER MORRE E TEM QUE REINICIAR A FASE
            //E SE O DANO DO PLAYER FOR MAIOR QUE A VIDA DO INIMIGO O INIMIGO EXPLODE E MORRE , MAIS DA DANO NO PLAYER E O PLAYER TBM MORRE
            if (!tomeiHit && this.gameObject.tag != "invencivel")
            {
                tomeiHit = true;
                // print("Tomei um dano no inimigo com força igual a = " + _inimigo.forcaDanoInim);//somente utilizado para testes
                playerAnimator.SetTrigger("hit");

                //EFEITO HIT
                GameObject fxTemp = Instantiate(fxDano[0], transform.position, transform.localRotation);
                Destroy(fxTemp, 0.5f);

                col.gameObject.transform.parent.parent.SendMessage("retirarVidaPlayer", SendMessageOptions.DontRequireReceiver);    //VER A QUESTAO DE RETIRAR VIDA DO PLAYER -- parent.parent pego dois objetos acima do colliderAtaque de acordo com a hierarquia do objeto
                //VER A QUESTAO QUE O INIMIGO TA DANDO DOIS HITS AO INVES DE UM -- TRAVAR ISSO
            }
            break;

        case "Win":
            this.passeiFase = true;
            qtdBlocosUsados = -1;  //resetar a var e nao deixar entrar no if que ativa o painel de fase incompleta
            zerarVelocidadeP();    //zero a velocidade do player para ele iniciar a nova etapa da fase sem estar se movimentando
            col.gameObject.SendMessage("ativarPainel", SendMessageOptions.DontRequireReceiver);
            break;

        case "coletavel":
            col.gameObject.SendMessage("coletar", "coletavel", SendMessageOptions.DontRequireReceiver);

            break;

        case "loot":
            col.gameObject.SendMessage("coletar", "loot", SendMessageOptions.DontRequireReceiver);
            break;

        case "vida":
            col.gameObject.SendMessage("acrescentarVida", SendMessageOptions.DontRequireReceiver);
            break;

        case "placaAviso":
            _inimigoArqueiro = FindObjectOfType(typeof(InimigoArqueiro)) as InimigoArqueiro;
            Inimigo[] inim = FindObjectsOfType <Inimigo>();

            if (_inimigoArqueiro != null)
            {
                _inimigoArqueiro.atacar();
            }
            else if (inim.Length > 0)
            {
                inim[inim.Length - 1].StartContraAtaque();
            }

            if (_inimigoArqueiro != null || inim != null)
            {
                col.gameObject.SendMessage("MudarEstado", SendMessageOptions.DontRequireReceiver);
                col.gameObject.tag = "Untagged";
            }

            break;

        case "placaAvancar":

            col.gameObject.SendMessage("MudarEstado", SendMessageOptions.DontRequireReceiver);
            break;

        case "placaAvisoChefao":
            InimigoChefe inimigoChefe = FindObjectOfType(typeof(InimigoChefe)) as InimigoChefe;
            if (inimigoChefe != null)
            {
                inimigoChefe.StartContraAtaque();

                col.gameObject.SendMessage("MudarEstado", SendMessageOptions.DontRequireReceiver);
                col.gameObject.tag = "Untagged";
            }

            break;

        case "moveInimigo":

            if (!colidiMoveInimigo)    //garante que a colisao so acontecerá uma unica vez
            {
                colidiMoveInimigo = true;
                InimigoTeleporte ini = FindObjectOfType(typeof(InimigoTeleporte)) as InimigoTeleporte;
                ini.mudarPosicao();
                ini.jaPassou(col.gameObject);
            }

            break;
        }
    }