void UseSubItemApply(SubItemData item) { switch (item._SubItem._ItemType) { //수류탄 애니메이션 //수류탄을 던진다 case Manager.eSubItemType.Grenade: //if (!player.IsAttack && !player.IsReload) //{ //정지 시킨다 bagItemUse._Player.IsWalk = false; bagItemUse._Player.IsRun = false; bagItemUse._Player.Nav.velocity = Vector3.zero; bagItemUse._Player.Nav.isStopped = true; StartCoroutine(bagItemUse._Player.PlayerGrenade(1.5f)); //위에 코루틴을 사용 했기때문에 다른 함수로 딜레이를 준다 //던지는 애니메이션이 나오기 전에 //수류탄이 던져지는 것을 방지 Invoke("GrenadeThowDelay", 1.0f); //} break; //마우스 위치에 터렛을 설치 시킨다 case Manager.eSubItemType.Turret: break; } }
/// <summary> /// 아이템을 슬롯에서 제거 /// </summary> void ItemDelete() { for (int i = 0; i < storeSlots.Count; i++) { //슬롯에 아이템이 존재하면 if (storeSlots[i].transform.childCount != 0) { //아이템을 가져와 삭제한다 SubItemData Obj = storeSlots[i].transform.GetComponentInChildren <SubItemData>(); Destroy(Obj.gameObject); } } }
/// <summary> /// 상점 인벤에 아이템을 생성 시킨다 /// </summary> public void ItemCreate() { //최소 3개에서 인벤의 크기 만큼 랜덤 값 //인벤에 아이템을 생성 시킬 개수이다 int rand = Random.Range(3, storeSlots.Count); for (int i = 0; i < rand; i++) { //슬롯에 아이템이 있으면 삭제 if (storeSlots[i].transform.childCount != 0) { SubItemData item = storeSlots[i].transform.GetComponentInChildren <SubItemData>(); Destroy(item.gameObject); } //슬롯이 비워 있으면 if (storeSlots[i].transform.childCount == 0) { //파츠 아이템의 아이디 값을 받아온다 //아이디 값이 리스트의 크기 값과 같다 int randID = Random.Range(0, parsingData.SubItemList.Count); GameObject obj = Instantiate(GameManager.INSTANCE.SubItemIcon, storeSlots[i].transform).gameObject; SubItemData data = obj.GetComponent <SubItemData>(); //아이고야... //아이템 데이터 적용 ㅋㅋㅋ //ㅡㅡ... data._SubItem._Id = parsingData.SubItemList[randID].id; data._SubItem._Type = parsingData.SubItemList[randID].type; data._SubItem._ItemType = parsingData.SubItemList[randID].itemType; data._SubItem._Name = parsingData.SubItemList[randID].name; data._SubItem._MinDmg = parsingData.SubItemList[randID].minDmg; data._SubItem._MaxDmg = parsingData.SubItemList[randID].maxDmg; data._SubItem._Count = parsingData.SubItemList[randID].count; data._SubItem._Price = parsingData.SubItemList[randID].price; data._SubItem._Tip = parsingData.SubItemList[randID].tip; data._SubItem._Path = parsingData.SubItemList[randID].path; data.IconSpr.sprite = Resources.Load <Sprite>(data._SubItem._Path); data.IsStoreItem = true; //상점 아이템으로 분류 data.NCount = data._SubItem._Count; data.CountText(); } } }
/// <summary> /// Q = 0 /// W = 1 /// E = 2 /// 키 입력 시 사용 /// </summary> /// <param name="index"></param> public void UseItem(int index) { //회복 아이템 if (quickSlots[index].GetComponentInChildren <BagItemData>() != null) { //Debug.Log("BagItem"); BagItemData data = quickSlots[index].GetComponentInChildren <BagItemData>(); //각 아이템에 맞는 데이터 처리 및 애니메이션 //회복 되는 데이터(HP, STA.....) bagItemUse.UseItemApply(data); //아아템 사용 // data.NCount--; //수량을 감소 시킨다 (나중에 아이템에 수량이 붙일수 있다) if (data.NCount <= 0) //수량이 0이 되면 삭제한다 { Destroy(data.gameObject); } } //보조 무기(수류탄 등) else if (quickSlots[index].GetComponentInChildren <SubItemData>() != null) { //마우스 방향을 바라본다 Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition); RaycastHit hit; if (Physics.Raycast(ray, out hit, Mathf.Infinity)) { transform.LookAt(new Vector3(hit.point.x, transform.position.y, hit.point.z)); } //Debug.Log("SubItem"); SubItemData data = quickSlots[index].GetComponentInChildren <SubItemData>(); //각 아이템에 맞는 데이터 처리 및 애니메이션 //수류탄 던지는 애니 등 UseSubItemApply(data); data.NCount--; if (data.NCount <= 0) { Destroy(data.gameObject); } } }
private static void UpdateSubItem(SubItems s, SubItemData itm, xcuda_Item xitm) { if (s.ItemDescription != itm.ItemDescription) { s.ItemDescription = itm.ItemDescription; } if (s.Item_Id != xitm.Item_Id) { s.Item_Id = xitm.Item_Id; } if (s.QtyAllocated != itm.QtyAllocated) { s.QtyAllocated = itm.QtyAllocated; } if (s.Quantity != itm.Quantity) { s.Quantity = itm.Quantity; } }
private static SubItems GetSubItem(xcuda_Item xitm, SubItemData subItemData) { SubItems s = null; //if (xitm.SubItems.Any()) //{ s = xitm.SubItems.FirstOrDefault(x => x.ItemNumber == subItemData.ItemNumber); // } if (s == null) { s = new SubItems() { ItemNumber = subItemData.ItemNumber, Item_Id = xitm.Item_Id, // xcuda_Item = xitm, TrackingState = TrackingState.Added }; xitm.SubItems.Add(s); } return(s); }
/// <summary> /// 아이템 삭제 슬롯 /// </summary> /// <param name="eventData"></param> public void OnDrop(PointerEventData eventData) { if (transform.childCount == 0) { //파츠 아이템 삭제 슬롯 일 경우 if (IconDrag.draggingItem.GetComponent <PartsItemData>()) { //상점의 아이템이 아닌경우 if (!IconDrag.draggingItem.GetComponent <PartsItemData>().IsStoreItem) { IconDrag.draggingItem.transform.SetParent(this.transform); PartsItemData item = IconDrag.draggingItem.GetComponent <PartsItemData>(); playerCtrl.NMoney += (item._PartsItem._Price / 2); //아이템을 삭제 한다 Destroy(item.gameObject); } } if (IconDrag.draggingItem.GetComponent <SubItemData>()) { if (!IconDrag.draggingItem.GetComponent <SubItemData>().IsStoreItem) { IconDrag.draggingItem.transform.SetParent(this.transform); SubItemData item = IconDrag.draggingItem.GetComponent <SubItemData>(); playerCtrl.NMoney += (item._SubItem._Price / 2); //아이템을 삭제 한다 Destroy(item.gameObject); } } } }