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; }
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; } }
// 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(); } } } }