Пример #1
0
    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);
    }
Пример #2
0
    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;
            }
        }
    }