Ejemplo n.º 1
0
    private void usarPocao(GameObject pocao, int i, int j)
    {
        Pocao pocaoUsada = pocao.GetComponent("Pocao") as Pocao;

        pocaoUsada.portador = this.player;
        pocaoUsada.recuperarPlayer();
        Debug.Log(pocaoUsada.getQuantidade());
        pocaoUsada.setQuantidade(pocaoUsada.getQuantidade() - 1);
        if (pocaoUsada.getQuantidade() == 0)  //caso acabem as poções elas são removidas do inventário
        {
            this.removerItem(i, j);
        }
    }
Ejemplo n.º 2
0
    //Verifica se o item é repetido(com o mesmo nome e status) e caso seja adiciona ao inventario
    //como um incremento na quantidade atual de itens
    private bool addItemRepetido(GameObject itemAtual, GameObject itemAdicionado)
    {
        bool resultado = false;

        if (itemAtual.name == itemAdicionado.name)
        {
            if (itemAtual.tag == "arma")
            {
                Arma armaAtual   = itemAtual.GetComponent("Arma") as Arma;
                Arma armaAserAdd = itemAdicionado.GetComponent("Arma") as Arma;
                if (armaAtual.status.ehIgual(armaAserAdd.status))
                {
                    armaAtual.setQuantidade(armaAtual.getQuantidade() + 1);
                    resultado = true;
                }
            }
            else if (itemAtual.tag == "escudo")
            {
                Escudo escudoAtual   = itemAtual.GetComponent("Escudo") as Escudo;
                Escudo escudoAserAdd = itemAdicionado.GetComponent("Escudo") as Escudo;
                if (escudoAtual.status.ehIgual(escudoAserAdd.status))
                {
                    escudoAtual.setQuantidade(escudoAserAdd.getQuantidade() + 1);
                    resultado = true;
                }
            }
            else if (itemAtual.tag == "pocao")
            {
                Pocao pocaoAtual   = itemAtual.GetComponent("Pocao") as Pocao;
                Pocao pocaoAserAdd = itemAdicionado.GetComponent("Pocao") as Pocao;
                if (pocaoAtual.status.ehIgual(pocaoAserAdd.status))
                {
                    pocaoAtual.setQuantidade(pocaoAtual.getQuantidade() + 1);
                    resultado = true;
                }
            }
        }
        return(resultado);
    }
Ejemplo n.º 3
0
    private void comportamento()
    {
        if (player != null) {
            distanciaDoPlayer = Vector3.Distance(transform.position, player.transform.position);//pega a distancia do inimigo para o jogador
            switch (estadoAtual) {
                case Estado_Do_Inimigo.idle:
                    {
                        distanciaDoPlayer = Vector3.Distance(transform.position, player.transform.position);//pega a distancia do inimigo para o jogador
                        if (distanciaDoPlayer < 100 && distanciaDoPlayer > 0) {
                            if (distanciaDoPlayer < distanciaMinimaDoPlayer) {
                                setEstado(Estado_Do_Inimigo.attack);
                            }
                            else {
                                seguirPlayer(true);
                            }

                        }
                        else {
                            seguirPlayer(false);
                        }
                        if (status.hpAtual <= 0) {
                            setEstado(Estado_Do_Inimigo.morrer);
                        }
                    }
                    break;
                case Estado_Do_Inimigo.attack:
                    {
                        if (distanciaDoPlayer >= distanciaMinimaDoPlayer || player.getStatus().hpAtual == 0) {//caso o player se afaste d+ durante um ataque o mob vai voltar a segui-lo
                            enemyAnimator.SetBool("attack", false);
                            setEstado(Estado_Do_Inimigo.idle);
                        }
                        else if (numDeGolpes >= numDeAtaquesMax) {//para os ataques quando numero de golpes deferidos for igual ao número máximo de golpes
                            enemyAnimator.SetBool("attack", false);
                            atrasarAtaque = true;
                        }
                        else {
                            enemyAnimator.SetBool("attack", true);//inicia a animação de ataque
                        }
                        if (status.hpAtual <= 0) {
                            setEstado(Estado_Do_Inimigo.morrer);
                        }

                        if(this.player.getEstado() == "morto" && this.contMorte==0) {
                            this.receberXp(this.player.getXp());
                            Debug.Log(this.player.getXp());
                            this.contMorte = 1;
                        }
                    }
                    break;

                case Estado_Do_Inimigo.morrer:
                    {
                        if (this.estaMorto == false) {
                            Debug.Log("aki");
                            enemyAnimator.SetBool("morrer", true);
                            this.player.receberXp(this.getXp());//passa o xp para o player
                                                                //teste de drop

                            this.drop.numItensDropados = 2;
                            Pocao pocao1 = new Pocao();
                            pocao1.setNome("pocaoDeVida");
                            pocao1.setTipo("pocoes");
                            this.drop.getListaItens().Add(pocao1);
                            this.drop.getProbabilidades().Add(1f);
                            Debug.Log(pocao1.getQuantidade());

                            /*Arma espadaBasica = new Arma();
                            espadaBasica.setNome("Abbadon");
                            espadaBasica.setTipo("Armas");
                            this.drop.getListaItens().Add(espadaBasica);
                            this.drop.getProbabilidades().Add(0.3f);*/

                            this.drop.droparItem(transform.position);
                        }
                        this.estaMorto = true;
                        Destroy(gameObject,1);//faz o inimigo desaparecer ao morrer. 1 indica que deve possui um delay de 1 segundo.
                    }
                    break;
            }
        }
        else {
            this.voltarPosicaoInicial();//caso não esteja vendo o player volte a posição inicial;
        }
    }
Ejemplo n.º 4
0
 void GUIinventario(int windowID)     //funçao que cria a GUI do inventario
 {
     GUI.BeginGroup(new Rect(0, 20, 200, 200));
     GUI.Box(new Rect(0, 0, 200, 200), "");
     for (int i = 0; i < 5; i++)
     {
         for (int j = 0; j < 5; j++)
         {
             if (inventario[i, j] != null)
             {
                 //captura a imagem do item
                 SpriteRenderer render     = inventario[i, j].GetComponent("SpriteRenderer") as SpriteRenderer; //captura o render do prefab
                 Texture2D      imagemItem = render.sprite.texture;                                             //a partir do render ele obtem a imagem do prefab(Sprite)
                 if (GUI.Button(new Rect(40 * j, 40 * i, 40, 40), imagemItem))
                 {
                     //aqui fica o código resposanvel por equipar os itens
                     //ao personagem
                     if (Time.time - lastClick < 0.3)                    //só usa o item ao se dar um "double click"
                     {
                         if (this.inventario[i, j].tag == "arma")
                         {
                             this.equiparArma(inventario[i, j]);
                         }
                         else if (this.inventario[i, j].tag == "escudo")
                         {
                             this.equiparEscudo(this.inventario[i, j]);
                         }
                         else if (this.inventario[i, j].tag == "pocao")
                         {
                             this.usarPocao(inventario[i, j], i, j);
                         }
                     }
                     else                         //um click exibe o status do item
                     {
                         if (this.inventario[i, j].tag == "arma")
                         {
                             Arma armaSelecionada = inventario[i, j].GetComponent("Arma") as Arma;
                             Arma arma            = armaSelecionada.GetComponent("Arma") as Arma;
                             arma.setPortador(objEstatus);
                             statusText = "Dano:" + armaSelecionada.getDanoBase() + "\n" + "Quantidade:" + armaSelecionada.getQuantidade();
                         }
                         else if (this.inventario[i, j].tag == "pocao")
                         {
                             Pocao pocaoUsada = inventario[i, j].GetComponent("Pocao") as Pocao;
                             statusText = "Recupera:" + pocaoUsada.recuperacao + "\n" + "Quantidade:" + pocaoUsada.getQuantidade();
                         }
                     }
                     lastClick = Time.time;
                 }
             }
             else
             {
                 if (GUI.Button(new Rect(40 * j, 40 * i, 40, 40), "" + i + "" + j))
                 {
                     //caso nao tenha itens o slot ficara default
                 }
             }
         }
     }
     GUI.EndGroup();
     GUI.Box(new Rect(200, 20, 200, 200), statusText);        //box de informaçao dos itens
 }
Ejemplo n.º 5
0
    private void comportamento()
    {
        if (player != null)
        {
            distanciaDoPlayer = Vector3.Distance(transform.position, player.transform.position);//pega a distancia do inimigo para o jogador
            switch (estadoAtual)
            {
            case Estado_Do_Inimigo.idle:
            {
                distanciaDoPlayer = Vector3.Distance(transform.position, player.transform.position);        //pega a distancia do inimigo para o jogador
                if (distanciaDoPlayer < 100 && distanciaDoPlayer > 0)
                {
                    if (distanciaDoPlayer < distanciaMinimaDoPlayer)
                    {
                        setEstado(Estado_Do_Inimigo.attack);
                    }
                    else
                    {
                        seguirPlayer(true);
                    }
                }
                else
                {
                    seguirPlayer(false);
                }
                if (status.hpAtual <= 0)
                {
                    setEstado(Estado_Do_Inimigo.morrer);
                }
            }
            break;

            case Estado_Do_Inimigo.attack:
            {
                if (distanciaDoPlayer >= distanciaMinimaDoPlayer || player.getStatus().hpAtual == 0)          //caso o player se afaste d+ durante um ataque o mob vai voltar a segui-lo
                {
                    enemyAnimator.SetBool("attack", false);
                    setEstado(Estado_Do_Inimigo.idle);
                }
                else if (numDeGolpes >= numDeAtaquesMax)          //para os ataques quando numero de golpes deferidos for igual ao número máximo de golpes
                {
                    enemyAnimator.SetBool("attack", false);
                    atrasarAtaque = true;
                }
                else
                {
                    enemyAnimator.SetBool("attack", true);        //inicia a animação de ataque
                }
                if (status.hpAtual <= 0)
                {
                    setEstado(Estado_Do_Inimigo.morrer);
                }

                if (this.player.getEstado() == "morto" && this.contMorte == 0)
                {
                    this.receberXp(this.player.getXp());
                    Debug.Log(this.player.getXp());
                    this.contMorte = 1;
                }
            }
            break;

            case Estado_Do_Inimigo.morrer:
            {
                if (this.estaMorto == false)
                {
                    Debug.Log("aki");
                    enemyAnimator.SetBool("morrer", true);
                    this.player.receberXp(this.getXp());        //passa o xp para o player
                                                                //teste de drop

                    this.drop.numItensDropados = 2;
                    Pocao pocao1 = new Pocao();
                    pocao1.setNome("pocaoDeVida");
                    pocao1.setTipo("pocoes");
                    this.drop.getListaItens().Add(pocao1);
                    this.drop.getProbabilidades().Add(1f);
                    Debug.Log(pocao1.getQuantidade());

                    /*Arma espadaBasica = new Arma();
                     * espadaBasica.setNome("Abbadon");
                     * espadaBasica.setTipo("Armas");
                     * this.drop.getListaItens().Add(espadaBasica);
                     * this.drop.getProbabilidades().Add(0.3f);*/

                    this.drop.droparItem(transform.position);
                }
                this.estaMorto = true;
                Destroy(gameObject, 1);       //faz o inimigo desaparecer ao morrer. 1 indica que deve possui um delay de 1 segundo.
            }
            break;
            }
        }
        else
        {
            this.voltarPosicaoInicial();//caso não esteja vendo o player volte a posição inicial;
        }
    }