Пример #1
0
            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;
                }
            }
Пример #2
0
 /// <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);
         }
     }
 }
Пример #3
0
            /// <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();
                    }
                }
            }
Пример #4
0
            /// <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);
                    }
                }
            }
Пример #5
0
 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;
     }
 }
Пример #6
0
        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);
        }
Пример #7
0
            /// <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);
                        }
                    }
                }
            }