Пример #1
0
    public void JogarItemChao()
    {
        //Local Aleatorio
        Vector3 LocalRandomico = new Vector3(Random.Range(Jogador.transform.position.x + 2, Jogador.transform.position.x - 2), 0.2f, Random.Range(Jogador.transform.position.z + 2, Jogador.transform.position.z - 2));

        //Criacao do item
        GameObject ItemNoChao = Instantiate(Prefab_Item, LocalRandomico, Quaternion.identity);

        //Componentes
        ControleThumbItem tempControleItemInventario = ItemSelecionadoDentroInventario.GetComponent <ControleThumbItem>();
        ControleItem      tempControleNovoItem       = ItemNoChao.GetComponent <ControleItem>();

        //Info Novo item
        tempControleNovoItem.NomeItem       = tempControleItemInventario.NomeItem;
        tempControleNovoItem.TipoItem       = tempControleItemInventario.TipoItem;
        tempControleNovoItem.QuantidadeItem = QuantidadeItensAbandonados;
        tempControleNovoItem.ThumItem       = ItemSelecionadoDentroInventario.GetComponent <Image>().sprite;
        tempControleNovoItem.ItemAgrupavel  = tempControleItemInventario.ItemAgrupavel;
    }
Пример #2
0
    void Update()
    {
        //Atualizando moedas do inventario
        TextoMoedas.text = Moedas.ToString();

        LigandoDesligandoInventario();
        LigandoDesligandoJanelaQuantidadeItem();



        //Adicionando Item ao inventario
        if (tempMovimentacaoJogador.EnviandoInfoItem)
        {
            for (int index = 0; tempMovimentacaoJogador.EnviandoInfoItem && index < Slots.Count; index += 1)
            {
                ControleSlot tempControleSlot = Slots[index].gameObject.GetComponent <ControleSlot>();

                if (!tempControleSlot.SlotOcupado)
                {
                    //Criacao do icone
                    Image NovoIcone = Instantiate(IconeItem, Vector3.zero, Quaternion.identity);

                    //Filho do slot
                    NovoIcone.rectTransform.SetParent(Slots[index].rectTransform);

                    //Posicao relativa a hierarquia
                    NovoIcone.rectTransform.localPosition = Vector2.zero;


                    ControleThumbItem tempControleThumbItem = NovoIcone.GetComponent <ControleThumbItem>();

                    //Adicionar atributos restantes
                    tempControleThumbItem.NomeItem        = tempMovimentacaoJogador.publicNomeItem;
                    tempControleThumbItem.TipoItem        = tempMovimentacaoJogador.publicTipoItem;
                    tempControleThumbItem.PesoItem        = tempMovimentacaoJogador.publicPesoItem;
                    tempControleThumbItem.QuantidadeItem  = tempMovimentacaoJogador.publicQuantidadeItem;
                    tempControleThumbItem.ItemAgrupavel   = tempMovimentacaoJogador.publicItemAgrupavel;
                    tempControleThumbItem.QuantidadeMoeda = tempMovimentacaoJogador.publicQuantidadeMoedas;
                    tempControleThumbItem.Referencia3D    = tempMovimentacaoJogador.publicIndiceRef3d;
                    tempControleThumbItem.ThumItem        = tempMovimentacaoJogador.publicThumbItem;

                    //Imagem do icone
                    NovoIcone.sprite = tempControleThumbItem.ThumItem;


                    //Adiciona de fato o item
                    Itens.Add(new Item(
                                  tempMovimentacaoJogador.publicNomeItem,
                                  tempMovimentacaoJogador.publicTipoItem,
                                  0,
                                  0,
                                  tempMovimentacaoJogador.publicPesoItem,
                                  tempMovimentacaoJogador.publicQuantidadeItem,
                                  true, tempMovimentacaoJogador.publicItemAgrupavel,
                                  0,
                                  tempMovimentacaoJogador.publicThumbItem));


                    //Zerando e Parando FOR
                    tempMovimentacaoJogador.EnviandoInfoItem = false;
                    OcuparSlot(index);
                    break;
                }
                else
                {
                    //Caso tenha algo no slot
                    //Verifique se esse item é o mesmo que esta tentando adicionar
                    //Se o ultimo adicionado é igual a algum junte eles
                    if (tempMovimentacaoJogador.publicNomeItem == Slots[index].GetComponentInChildren <ControleThumbItem>().NomeItem&& tempMovimentacaoJogador.publicItemAgrupavel)
                    {
                        //Bloqueio de Slot Individual por Quantidade de Item
                        if (Slots[index].GetComponentInChildren <ControleThumbItem>().QuantidadeItem <= Slots[index].GetComponent <ControleSlot>().LimiteSlot)
                        {
                            //Adicionar o restante dos atributos
                            Slots[index].GetComponentInChildren <ControleThumbItem>().PesoItem       += tempMovimentacaoJogador.publicPesoItem;
                            Slots[index].GetComponentInChildren <ControleThumbItem>().QuantidadeItem += tempMovimentacaoJogador.publicQuantidadeItem;

                            //Adicionar o restante dos atriburos
                            Itens[index].PesoItem       += tempMovimentacaoJogador.publicPesoItem;
                            Itens[index].QuantidadeItem += tempMovimentacaoJogador.publicQuantidadeItem;

                            //Zerando e Parando FOR
                            tempMovimentacaoJogador.EnviandoInfoItem = false;
                            OcuparSlot(index);
                            break;
                        }
                    }
                }
            }
        }


        foreach (Image Slot in Slots)
        {
            if (Slot.GetComponentInChildren <ControleThumbItem>() != null)
            {
                if (Slot.GetComponent <ControleSlot>().SlotOcupado&&
                    !SlotsCheios.Contains(Slot) &&
                    Slot.GetComponentInChildren <ControleThumbItem>().QuantidadeItem == Slot.GetComponent <ControleSlot>().LimiteSlot + 1)
                {
                    SlotsCheios.Add(Slot);
                }
            }
        }

        SlotCheio = SlotsCheios.Count;

        if (SlotCheio == Slots.Count)
        {
            InventarioCheio_FaltaSlot = true;
        }
        else
        {
            InventarioCheio_FaltaSlot = false;
        }
    }
Пример #3
0
    // Update is called once per frame
    void Update()
    {
        OpcaoAtiva = Inventario.GetComponent <ControleInventario>().OpcaoAtiva;
        //Apagando Opcao
        if (!OpcaoAtiva)
        {
            GameObject.Destroy(this.gameObject);
        }

        if (_mouseDentroOpcao)
        {
            EssaOpcao.color = new Color32(0, 160, 0, 180);
        }
        else
        {
            EssaOpcao.color = new Color32(255, 255, 255, 180);
        }

        if (_mouseDentroOpcao && Input.GetMouseButtonDown(0))
        {
            if (EssaOpcao.text == "Abandonar")
            {
                if (ItemReferencia.GetComponent <ControleThumbItem>().QuantidadeItem == 1)
                {
                    ItemReferencia.GetComponentInParent <ControleSlot>().SlotOcupado = false;
                    GameObject.Destroy(ItemReferencia);
                    ApagandoCaixaOpcao();
                    tempControleInventario.JogarItemChao();
                }

                if (ItemReferencia.GetComponent <ControleThumbItem>().QuantidadeItem > 1)
                {
                    tempControleInventario.JanelaQuantidadeItemAtiva  = true;
                    tempControleInventario.QuantidadeItensAbandonados = 1;
                    tempControleInventario.Texto_QuantidadeItens.text = "1";
                }
            }

            if (EssaOpcao.text == "Equipar")
            {
                //Se o item for uma arma
                if (ItemReferencia.GetComponent <ControleThumbItem>().TipoItem == "Arma")
                {
                    // Verificar se tem alguma arma equipada

                    //Limpou Slot Atual
                    ItemReferencia.GetComponent <ControleThumbItem>().Equipado = true;
                    tempControleInventario.tempMovimentacaoJogador.AnimJogador.SetBool("Armada", true);
                    ItemReferencia.GetComponentInParent <ControleSlot>().SlotOcupado = false;
                    ItemReferencia.transform.SetParent(tempControleInventario.SlotArma1.transform);
                    tempControleInventario.SlotArma1.gameObject.GetComponent <ControleSlot>().SlotOcupado = true;
                    GameObject NovaArma = Instantiate(tempControleInventario.ItensReferencia3D[ItemReferencia.GetComponent <ControleThumbItem>().Referencia3D], Vector3.zero, Quaternion.identity);
                    NovaArma.transform.SetParent(tempControleInventario.MaoDireitaJogador.transform);
                    NovaArma.transform.localPosition    = Vector3.zero;
                    NovaArma.transform.localEulerAngles = new Vector3(0, 0, -180);
                    ApagandoCaixaOpcao();
                }
            }

            if (EssaOpcao.text == "Desequipar")
            {
                //Se desequipar a arma
                ControleThumbItem tempItemReferencia = ItemReferencia.GetComponent <ControleThumbItem>();
                tempControleInventario.tempMovimentacaoJogador.PegarInformacaoItem(tempItemReferencia.NomeItem, tempItemReferencia.TipoItem, tempItemReferencia.PesoItem, tempItemReferencia.QuantidadeItem, tempItemReferencia.ThumItem, tempItemReferencia.ItemAgrupavel, tempItemReferencia.Referencia3D);
                ItemReferencia.GetComponentInParent <ControleSlot>().SlotOcupado = false;

                // Se O item a ser desequipado for uma arma
                if (ItemReferencia.GetComponent <ControleThumbItem>().TipoItem == "Arma")
                {
                    tempControleInventario.tempMovimentacaoJogador.AnimJogador.SetBool("Armada", false);
                    GameObject.Destroy(tempControleInventario.MaoDireitaJogador.transform.GetChild(1).gameObject);
                    GameObject.Destroy(ItemReferencia);
                    ApagandoCaixaOpcao();
                }
            }
        }
    }