protected override void AplicaDanoEmInimigo(Collision col, TipoDeDano tipo = TipoDeDano.fisico, Elementos elemento = Elementos.parDano) { base.AplicaDanoEmInimigo(col, TipoDeDano.fogo, Elementos.danoDeFogo); if (!col.gameObject.GetComponent <MaterialPiscante>()) { MaterialPiscante M = col.gameObject.AddComponent <MaterialPiscante>(); M.materialPiscante = materialPiscante; } }
protected virtual void AplicaDanoEmInimigo(Collision col, TipoDeDano tipo = TipoDeDano.fisico, Elementos elemento = Elementos.parDano) { col.gameObject.GetComponent <InimigoBase>().TomaDano(dano, tipo, dono); Destroy( Instantiate(ControladorDeJogo.c.RetornaElemento(elemento), col.transform.position, ControladorDeJogo.c.RetornaElemento(elemento).transform.rotation), 1 ); acertados.Add(col.gameObject); }
public void TomaDano(int valorDeDano, TipoDeDano tipo, GameObject atacante = null) { vida -= Mathf.Max(1, valorDeDano - defesa.contra[tipo]); if (vida <= 0) { if (atacante) { atacante.GetComponent <EstadoDePersonagem_Gerente>().Dados.AplicaXP((int)((vidaMax + ataque + velocidade) / 2)); ControladorDeJogo.c.G_Combos.AdicionaCombo(100); ControladorGlobal.c.EmJogo.Inimigos++; if (tipo == TipoDeDano.magico) { VerificaAcoesEspeciais.VerificaAcaoDeBonus(transform.position, ControladorGlobal.c.DadosGlobais.PerfilAtualSelecionado.PersonagemAtualSelecionado.Bonus ); } } Destroy(gameObject); } }