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(); } } }
//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; } }