// 아이템을 넣기위해 모든 슬롯을 검사. public bool AddItem(ItemCtrl item) { // 슬롯에 총 개수. int slotCount = ItemAllSlot.Count; // 넣기위한 아이템이 슬롯에 존재하는지 검사. for (int i = 0; i < slotCount; i++) { // 그 슬롯의 스크립트를 가져온다. SlotCtrl slot = ItemAllSlot[i].GetComponent <SlotCtrl>(); // 슬롯이 비어있으면 통과. if (!slot.isSlots()) { continue; } // 슬롯에 존재하는 아이템의 타입과 넣을려는 아이템의 타입이 같고. // 슬롯에 존재하는 아이템의 겹칠수 있는 최대치가 넘지않았을 때. (true일 때) if (slot.ItemReturn().type == item.type) { if (slot.ItemReturn().type.ToString() == "ProofVest") { return(false); } // 슬롯에 아이템을 넣는다. Debug.Log("중복 아이템 추가..!"); slot.AddItem(item, true, slot); return(true); } } // 빈 슬롯에 아이템을 넣기위한 검사. for (int i = 0; i < slotCount; i++) { SlotCtrl slot = ItemAllSlot[i].GetComponent <SlotCtrl>(); // 슬롯이 비어있지 않으면 통과 if (slot.isSlots()) { continue; } if (item.type.ToString() == "ProofVest") { player.armour += 100; player.imgArmourBar.fillAmount = (float)player.armour / (float)player.initArmour; player.send_PlayerHP(player.hp, player.armour); } slot.AddItem(item, false, null); return(true); } // 위에 조건에 해당되는 것이 없을 때 아이템을 먹지 못함. return(false); }
public void AddItem(ItemCtrl item, bool same, SlotCtrl sameSlot) { if (same == true) { if (item.type == 0) { player.bulletCount[0] += 30; sameSlot.ItemReturn().setItemCount(30); // 이미 존재 하면 해당 갯수를 증가한다. } else if ((int)item.type == 1) { player.bulletCount[1] += 30; player.bulletCount[2] += 30; sameSlot.ItemReturn().setItemCount(30); // 이미 존재 하면 해당 갯수를 증가한다. } else if ((int)item.type == 2) { player.bulletCount[3] += 30; sameSlot.ItemReturn().setItemCount(30); // 이미 존재 하면 해당 갯수를 증가한다. } else if ((int)item.type == 3) { sameSlot.ItemReturn().setItemCount(1); // 이미 존재 하면 해당 갯수를 증가한다 } if (player.now_Weapon != -1) { player.weaponText.text = player.reloadBulletCount[player.now_Weapon] + " / " + player.bulletCount[player.now_Weapon]; } } else { if (item.type == 0) { player.bulletCount[0] += 30; } else if ((int)item.type == 1) { player.bulletCount[1] += 30; player.bulletCount[2] += 30; } else if ((int)item.type == 2) { player.bulletCount[3] += 30; } if (player.now_Weapon != -1) { player.weaponText.text = player.reloadBulletCount[player.now_Weapon] + " / " + player.bulletCount[player.now_Weapon]; } slot.Push(item); } UpdateInfo(true, item.DefaultImg); }
public void Down() { // 슬롯에 아이템이 없으면 함수종료. if (!slot.isSlots()) { return; } // 아이템 사용시. if (Input.GetMouseButtonDown(1)) { slot.ItemUse(); return; } // 빈 이미지 객체를 활성화 시킨다. Img.gameObject.SetActive(true); // 빈 이미지의 사이즈를 변경한다.(해상도가 바뀔경우를 대비.) float Size = slot.transform.GetComponent <RectTransform>().sizeDelta.x; EmptyImg.rectTransform.SetSizeWithCurrentAnchors(RectTransform.Axis.Horizontal, Size); EmptyImg.rectTransform.SetSizeWithCurrentAnchors(RectTransform.Axis.Vertical, Size); // 빈 이미지의 스프라이트를 슬롯의 스프라이트로 변경한다. EmptyImg.sprite = slot.ItemReturn().DefaultImg; // 빈 이미지의 위치를 마우스위로 가져온다. Img.transform.position = Input.mousePosition; // 슬롯의 아이템 이미지를 없애준다. slot.UpdateInfo(true, slot.DefaultImg); // 슬롯의 텍스트 숫자를 없애준다. slot.text.text = ""; }
// 아이템!!!!!!!!!! 1: 비어있는 슬롯, 2: 안 비어있는 슬롯. void ItemSwap2(SlotCtrl xFirst, SlotCtrl oSecond) { int Count = oSecond.slot.Count; ItemCtrl item = oSecond.slot.Peek(); for (int i = 0; i < Count; i++) { if (xFirst != null) { xFirst.slot.Push(item); } } if (xFirst != null) { xFirst.UpdateInfo(true, oSecond.ItemReturn().DefaultImg); } oSecond.slot.Clear(); oSecond.UpdateInfo(false, oSecond.DefaultImg); }