void PuxarCartaMesa() { AtaqueNoInimigo = CartaAtual; CartaNaMesa refCard = AtaqueNoInimigo.GetComponent <CartaNaMesa>(); if (refCard.PodeAtacar) { seta = Instantiate(Seta); seta.transform.SetParent(transform.GetChild(4), false); seta.transform.localPosition = CartaAtual.transform.parent.localPosition - new Vector3(10, 80); } }
IEnumerator DarDano(GameObject obj) { yield return(new WaitForSeconds(0.40f)); if (obj) { obj.GetComponent <CartaNaMesa>().Defesa -= AtaqueNoInimigo.GetComponent <CartaNaMesa>().Ataque; AtaqueNoInimigo.GetComponent <CartaNaMesa>().Defesa -= obj.GetComponent <CartaNaMesa>().Ataque; som.PlayOneShot(audios[2]); AtaqueNoInimigo = null; } }
IEnumerator DarDanoInimigo(GameObject obj) { yield return(new WaitForSeconds(0.40f)); dano = Instantiate(Dano); dano.transform.SetParent(transform.GetChild(4), false); dano.transform.localPosition = obj.transform.localPosition + Vector3.up * 50 + Vector3.left * 30; dano.transform.localScale = new Vector3(3, 3); dano.GetComponent <Text>().text += AtaqueNoInimigo.GetComponent <CartaNaMesa>().Ataque.ToString(); GetComponent <PlayerAdversario>().PerderVida(AtaqueNoInimigo.GetComponent <CartaNaMesa>().Ataque); som.PlayOneShot(audios[2]); AtaqueNoInimigo = null; }
void Atacar() { foreach (var obj in resultados) { // carta efeito if (isOnEffect && (obj.gameObject.name == "CartaNaMesaInimigo" || obj.gameObject.name == "CartaNaMesa")) { int barra = goldPlayer.text.IndexOf('/'); goldPlayer.text = (int.Parse(goldPlayer.text.Substring(0, barra)) - cartaEfeito.Valor).ToString() + "/" + EventControllerBehaviour.ouroMaximo; //playerid.CmdAtualizarGold(goldPlayer.text); this.gameObject.GetComponent <EventControllerBehaviour>().RealizarPassivaEm(cartaEfeito.Passiva, obj.gameObject.transform.parent.gameObject, true, null); //playerid.CmdTirarCartaBaralho(cartaEfeito.PosicaoBaralho); //carta ativo não referenciam objetos realizadores // playerid.CmdEfeitoRealizado(!(obj.gameObject.name == "CartaNaMesa"),obj.gameObject.GetComponent<CartaNaMesa>().PosicaoBaralho,cartaEfeito.Passiva.quantidade,(int)cartaEfeito.Passiva.efeito); SetRaycast(true); isOnEffect = false; // cartaEfeito = null; } //atacar carta if (obj.gameObject.name == "CartaNaMesaInimigo" && AtaqueNoInimigo) { CartaNaMesa refCard = AtaqueNoInimigo.GetComponent <CartaNaMesa>(); if (refCard.QuantidadeAtaque > 0) { //playerid.CmdAtacarCarta(refCard.PosicaoBaralho,obj.gameObject.GetComponent<CartaNaMesa>().PosicaoBaralho); AtaqueNoInimigo.transform.parent.GetComponent <Animator>().SetTrigger("Atacar"); GameObject inimigo = obj.gameObject.transform.parent.gameObject; CartaNaMesa enemyRefCard = obj.gameObject.transform.GetComponent <CartaNaMesa>(); // passiva do inimigo quando atacado se inicia primeiro do que quando a carta ataca primeiro switch (enemyRefCard.AtivarPassivaQuando) { case Evento.CartaRecebeuDano: if (enemyRefCard.Alvo != AlvoPassiva.CartaQueAtacou) { this.gameObject.GetComponent <EventControllerBehaviour>().RealizarPassivaEm(enemyRefCard.Passiva, enemyRefCard.Alvo, false, inimigo); } else { this.gameObject.GetComponent <EventControllerBehaviour>().RealizarPassivaEm(enemyRefCard.Passiva, AtaqueNoInimigo.transform.parent.gameObject, false, inimigo); } break; } switch (refCard.AtivarPassivaQuando) { case Evento.CartaAtaque: if (refCard.Alvo != AlvoPassiva.CartaAtacada) { this.gameObject.GetComponent <EventControllerBehaviour>().RealizarPassivaEm(refCard.Passiva, refCard.Alvo, true, AtaqueNoInimigo.transform.parent.gameObject); } else { this.gameObject.GetComponent <EventControllerBehaviour>().RealizarPassivaEm(refCard.Passiva, inimigo, true, AtaqueNoInimigo.transform.parent.gameObject); } break; } refCard.QuantidadeAtaque--; StartCoroutine(DarDano(obj.gameObject)); } break; } //atacar player inimigo else if (obj.gameObject.name == "CampoInimigo" && obj.gameObject.GetComponent <MesaBehaviour>().cartas.Count == 0 && AtaqueNoInimigo) { CartaNaMesa refCard = AtaqueNoInimigo.GetComponent <CartaNaMesa>(); if (refCard.QuantidadeAtaque > 0) { AtaqueNoInimigo.transform.parent.GetComponent <Animator>().SetTrigger("Atacar"); //playerid.CmdAtacarPlayer(refCard.PosicaoBaralho); refCard.QuantidadeAtaque--; StartCoroutine(DarDanoInimigo(obj.gameObject)); } } } }