示例#1
0
 private void OnTriggerEnter2D(Collider2D collision)
 {
     if (isInventarioFull())
     {
         return;
     }
     if (collision.CompareTag("equipavel"))
     {
         IEquipamento  novoItem  = collision.GetComponent <IEquipamento>();
         int[]         atributos = { novoItem.STR, novoItem.AGI, novoItem.DEX, novoItem.LUK };
         ItemGuerreiro itemInfos = (ItemGuerreiro)SpawnManager.Instance.CriadorItensFase.criarItemGuerreiro(nome: novoItem.Nome, tipo: novoItem.Tipo, body: novoItem.bodyPart, classe: novoItem.Classe, atri: atributos);
         string        key;
         key = ItemInventario.FirstOrDefault(x => x.Value == null).Key;
         ItemInventario[key] = itemInfos;
         GameObject slot_position = SlotsInventario[key];
         if (novoItem.SpriteItem == null)
         {
             novoItem.SpriteItem = collision.gameObject.GetComponent <SpriteRenderer>();
         }
         SpriteRenderer sprt = Instantiate(collision.gameObject.GetComponent <SpriteRenderer>());
         slot_position.GetComponent <Image>().sprite = sprt.sprite;
         Destroy(sprt);
     }
     if (collision.CompareTag("consumivel"))
     {
         IConsumivel novoItem = collision.GetComponent <IConsumivel>();
         string      key;
         key = ItemInventario.FirstOrDefault(x => x.Value == null).Key;
         ItemInventario[key] = novoItem;
         GameObject slot_position = SlotsInventario[key];
         if (novoItem.SpriteItem == null)
         {
             novoItem.SpriteItem = collision.gameObject.GetComponent <SpriteRenderer>();
         }
         SpriteRenderer sprt = Instantiate(collision.gameObject.GetComponent <SpriteRenderer>());
         slot_position.GetComponent <Image>().sprite = sprt.sprite;
         Destroy(sprt);
     }
     if (collision.CompareTag("inutil"))
     {
         Inutil novoItem = collision.GetComponent <Inutil>();
         string key;
         key = ItemInventario.FirstOrDefault(x => x.Value == null).Key;
         ItemInventario[key] = novoItem;
         GameObject slot_position = SlotsInventario[key];
         if (novoItem.SpriteItem == null)
         {
             novoItem.SpriteItem = collision.gameObject.GetComponent <SpriteRenderer>();
         }
         SpriteRenderer sprt = Instantiate(collision.gameObject.GetComponent <SpriteRenderer>());
         slot_position.GetComponent <Image>().sprite = sprt.sprite;
         Destroy(sprt);
     }
 }
示例#2
0
        public void EquiparItem(string key)
        {
            if (isEmptySlot(key))
            {
                return;
            }
            if (!isEquipavelItem(key))
            {
                if (isConsumivelItem(key))
                {
                    SlotsInventario[key].GetComponent <Image>().sprite = spriteSlotPadraoInventario;
                    ItemInventario[key] = null;
                }
                return;
            }
            Item   itemJaEquipado    = null;
            string key_item_equipado = null;

            try
            {
                itemJaEquipado    = ItemEquipado.FirstOrDefault(x => ((IEquipamento)x.Value).bodyPart == ((IEquipamento)ItemInventario[key]).bodyPart).Value;
                key_item_equipado = ItemEquipado.FirstOrDefault(x => ((IEquipamento)x.Value).bodyPart == ((IEquipamento)ItemInventario[key]).bodyPart).Key;
                print($"Nome item já equipado: {itemJaEquipado.Nome} | Key do item: {key_item_equipado}");
            }
            catch
            {
                print("Deu erro em alguma coisa ae");
            }

            if (isEquipamentosFull() && key_item_equipado == null)
            {
                return;
            }
            GameObject slot_position = new GameObject();
            string     key2          = ItemEquipado.FirstOrDefault(x => x.Value == null).Key;

            print(key2);
            if (key_item_equipado != null)
            {
                key2          = key_item_equipado;
                slot_position = SlotsEquipados[key_item_equipado];
            }
            else
            {
                slot_position = SlotsEquipados[key2];
            }
            if (itemJaEquipado != null)
            {
                Image s = Instantiate(slot_position.GetComponent <Image>());
                slot_position.GetComponent <Image>().sprite             = SlotsInventario[key].GetComponent <Image>().sprite;
                slot_position.GetComponent <Image>().sprite.name        = SlotsInventario[key].GetComponent <Image>().sprite.name;
                SlotsInventario[key].GetComponent <Image>().sprite      = s.sprite;
                SlotsInventario[key].GetComponent <Image>().sprite.name = s.sprite.name;
                Destroy(s.gameObject);
                key2 = ItemEquipado.First(x => ((IEquipamento)x.Value).bodyPart == ((IEquipamento)ItemInventario[key]).bodyPart).Key;
                int[]        val  = { 2, 2, 2, 2 };
                IEquipamento aux2 = new ItemGuerreiro(ItemEquipado[key2].Nome, ItemEquipado[key2].Tipo, "corpo", "guerra", val);
                aux2 = (IEquipamento)ItemEquipado[key2];
                ItemEquipado[key2]  = (IEquipamento)ItemInventario[key];
                ItemInventario[key] = aux2;
            }
            else
            {
                try
                {
                    print($"Nome item já equipado: {itemJaEquipado.Nome} | Key do item: {key_item_equipado}");
                }
                catch
                {
                    print("Deu erro em alguma coisa ae");
                }
                if (!ItemEquipado.ContainsKey(key2) && ItemEquipado.Count <= TOTAL_SLOTS_INVENTARIO)
                {
                    ItemEquipado.Add(key2, ItemInventario[key]);
                }
                else
                {
                    key2 = ItemEquipado.FirstOrDefault(x => x.Value == null).Key;
                }
                print($"Key: {key} | {key2}");
                slot_position.GetComponent <Image>().sprite        = SlotsInventario[key].GetComponent <Image>().sprite;
                SlotsInventario[key].GetComponent <Image>().sprite = spriteSlotPadraoInventario;
                ItemEquipado[key2]  = (IEquipamento)ItemEquipado[key2];
                ItemEquipado[key2]  = (IEquipamento)ItemInventario[key];
                ItemInventario[key] = null;
            }
        }
        public Item DeepCopy()
        {
            ItemGuerreiro other = (ItemGuerreiro)this.MemberwiseClone();

            return(other);
        }