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