void Start() { anim = GetComponent <Animator>(); rb2d = GetComponent <Rigidbody2D>(); sword = GetComponent <Sword>(); magic = GameObject.FindGameObjectWithTag("GameManager").GetComponent <Magic>(); cooldown = GameObject.FindGameObjectWithTag("CoolDown").GetComponent <CoolDown>(); boss = GameObject.FindGameObjectWithTag("Boss").GetComponent <ScriptBoss>(); warp = GameObject.FindGameObjectWithTag("Warp").GetComponent <Warp>(); ShieldPotionMult = 1; TimePotionMult = 1; LuckPotionMult = 1; Debuff = false; maincamera.gameObject.SetActive(true); bosscamera.gameObject.SetActive(false); mapa1 = false; mapa2 = false; mapa3 = false; /* Fazemos com que a variável "attackCollider" receba o Componente CircleCollider pertencente ao GameObject * do "primeiro filho" do GameObject a qual esse script está inserido (que no caso é o Player). * (Nós declaramos o primeiro filho pela linha de código "GetChild (0)". Em inglês essa linha se traduziria * para algo como "Pegue o filho 0", sendo que "filho 0" nesse caso refere-se ao primeiro filho do Objeto Player)*/ attackCollider = transform.GetChild(0).GetComponent <CircleCollider2D>(); //shadow = transform.GetChild(3).GetComponent<SpriteRenderer>(); //shadow.color =new Color(10, 10, 10, 103); /* Agora, após termos declarado a variável "attackCollider" acima, nós queremos que esse collider esteja inativo * no início do jogo para evitar que o personagem cause dano em tudo á sua frente sem necessitar apertar a tecla * de ataque, certo? Então, nós fazemos isso deixando como FALSA a informação de que a variável já esteja ativa. * Inclusive estamos fazendo isso dentro do "Void Start" justamente para o jogo já começar com isso definido como desativado.*/ attackCollider.enabled = false; /* Mas ter colocado a linha acima gera um problema... que é o seguinte: * O collider já começa o jogo como falso, certo? Ok, mas então... COMO nós vamos fazer para ativar o collider * no momento que o jogador realizar o ataque? * Nós desativamos o collider no início do jogo, mas em nenhum momento nós pedimos para o script reativá-lo, ou seja, * o jogador nunca vai atacar. * É por esse motivo que nós vamos definir o momento certo para que esse Collider seja ativado. Nós o colocaremos embaixo * da linha de código que atualiza a posição X e Y do collider conforme a direção que o personagem estiver olhando. */ // Camera.main.GetComponent<MainCamera>().SetBound(InitialMap); }
void OnTriggerEnter2D(Collider2D collision) { if (collision.CompareTag("Slime")) { critico = Random.Range(1, 101); Slime_Stats Slime = collision.GetComponent <Slime_Stats>(); if (Slime.morreu == false) { DropCoin drop = collision.GetComponent <DropCoin>(); if (critico <= sword.SwordCurrentCriticoChance) { calculo = expbar.danoplayer + sword.Sword_CurrentDamage * 2; Slime.Life_Slime -= calculo; } else { calculo = expbar.danoplayer + sword.Sword_CurrentDamage; Slime.Life_Slime -= calculo; } if (Slime.Life_Slime <= 0) { Slime.morreu = true; ExpBar expBar = collision.GetComponent <ExpBar>(); drop.ChanceCoinPotion(); //expBar.Experiencia(); GameManager gamemanager = GameObject.FindGameObjectWithTag("GameManager").GetComponent <GameManager>(); gamemanager.monstrosMortos++; gamemanager.monstrosMortos2++; gamemanager.monstrosMortos3++; } else { Slime.gameObject.GetComponent <Animator>().SetTrigger("Hit"); } } } if (collision.CompareTag("Tronco")) { critico = Random.Range(1, 101); Tronco_Stats Tronco = collision.GetComponent <Tronco_Stats>(); if (Tronco.morreu == false) { DropCoin drop = collision.GetComponent <DropCoin>(); if (critico <= sword.SwordCurrentCriticoChance) { Tronco.Life_Tronco -= sword.Sword_CurrentDamage * 2; } else { Tronco.Life_Tronco -= sword.Sword_CurrentDamage; } if (Tronco.Life_Tronco <= 0) { Tronco.morreu = true; drop.ChanceCoinPotion(); //expBar.Experiencia(Tronco.xpMin, Tronco.xpMax); GameManager gamemanager = GameObject.FindGameObjectWithTag("GameManager").GetComponent <GameManager>(); gamemanager.monstrosMortos++; gamemanager.monstrosMortos2++; gamemanager.monstrosMortos3++; } else { Tronco.gameObject.GetComponent <Animator>().SetTrigger("Hit"); } } } if (collision.CompareTag("Boss")) { critico = Random.Range(1, 101); ScriptBoss boss = collision.GetComponent <ScriptBoss>(); if (critico <= sword.SwordCurrentCriticoChance) { boss.Life -= sword.Sword_CurrentDamage * 2; } else { boss.Life -= sword.Sword_CurrentDamage; } } }