Пример #1
0
    private void Update()
    {
        if (player != null)
        {
            if (player.pv.IsMine)
            {
                if (player.isPlay)
                {
                    float scroll = Input.GetAxis("Mouse ScrollWheel");
                    if (scroll != 0)
                    {
                        if (scroll < 0)
                        {
                            if (selectedIndex >= Selected.Length - 1)
                            {
                                selectedIndex = 0;
                            }
                            else
                            {
                                selectedIndex++;
                            }


                            player.ChangeWeaponSound();
                            for (int i = 0; i < Selected.Length; i++)              //현재 인텍스에만 선택창 달아줌
                            {
                                if (i == selectedIndex)
                                {
                                    Selected[i].SetActive(true);
                                }
                                else
                                {
                                    Selected[i].SetActive(false);
                                }
                            }
                            check(selectedIndex, false);
                        }
                        else
                        {
                            if (selectedIndex <= 0)
                            {
                                selectedIndex = Selected.Length - 1;
                            }
                            else
                            {
                                selectedIndex--;
                            }


                            player.ChangeWeaponSound();
                            for (int i = 0; i < Selected.Length; i++)              //현재 인텍스에만 선택창 달아줌
                            {
                                if (i == selectedIndex)
                                {
                                    Selected[i].SetActive(true);
                                }
                                else
                                {
                                    Selected[i].SetActive(false);
                                }
                            }
                            check(selectedIndex, false);
                        }
                    }              //스크롤 템전환
                }

                for (int i = 0; i < ItemList.Length; i++) //아이템이미지가 존재한다면 매 프레임마다 박스에 이미지 갱신
                {
                    if (ItemList[i].ItemSprite != null)
                    {
                        ItemBoxes[i].sprite = ItemList[i].ItemSprite;
                    }
                    else
                    {
                        ItemBoxes[i].sprite = NullSprite;
                    }
                }

                if (Input.GetKeyDown((KeyCode)System.Enum.Parse(typeof(KeyCode), PlayerPrefs.GetString("COMBINE")))) //우클릭으로 템조합하기
                {
                    invent.OpenIfCan(ItemList[selectedIndex]);
                }
                if (player.canMove)                                                                                  //움직일 수 있는 상태에서만 입력 가능
                {
                    if (Input.GetKeyDown((KeyCode)System.Enum.Parse(typeof(KeyCode), PlayerPrefs.GetString("USE")))) //아이템 사용
                    {
                        if (ItemList[selectedIndex].type == itemType.Usable)
                        {
                            if (usable.UseItem(ItemList[selectedIndex].index))
                            {
                                slots[selectedIndex].itemCount--;
                                if (slots[selectedIndex].itemCount <= 0)
                                {
                                    ItemList[selectedIndex].Clear();
                                }
                            }
                            else
                            {
                                if (pc.isKor())
                                {
                                    PopUpManager.instance.PopUp("회복아이템은 " + usable.getCool() + "초 후 재사용 가능", Color.cyan);
                                }
                                else
                                {
                                    PopUpManager.instance.PopUp("Can use food " + usable.getCool() + "sec after", Color.cyan);
                                }
                            }
                        }
                    }

                    if (Input.GetMouseButtonDown(1)) //스페이스바로 줍기
                    {
                        Collider2D[] items = Physics2D.OverlapCircleAll(transform.position, itemRadious, itemLayer);

                        try
                        {
                            if (items[0] != null)
                            {
                                items.OrderBy(c => c.transform.position - transform.position);

                                Collider2D item  = items[0];
                                Item       it    = item.GetComponent <Item>();
                                bool       canGo = false;
                                if (it.isShopTem)
                                {
                                    int price = it.price;
                                    if (player.PlayerIndex == 8)
                                    {
                                        price = price / 2;
                                    }
                                    if (player.leftBullet.GetedBulletCount() >= price)
                                    {
                                        canGo = true;
                                        player.leftBullet.GetBulletMinus(price);
                                        player.purchaseSound();
                                    }
                                    else
                                    {
                                        if (pc.isKor())
                                        {
                                            PopUpManager.instance.PopUp("총알이 부족합니다!", Color.red);
                                        }
                                        else
                                        {
                                            PopUpManager.instance.PopUp("Lack of Bullet!", Color.red);
                                        }
                                    }
                                }
                                else
                                {
                                    canGo = true;
                                }

                                if (canGo)
                                {
                                    bool isGet = false;

                                    if (it.item.type == itemType.Usable || it.item.type == itemType.Item) //소비템이면
                                    {
                                        bool isHaveUsable = false;

                                        for (int i = 0; i < ItemList.Length; i++)
                                        {
                                            if (ItemList[i].ItemName == it.item.ItemName) //이름이 같은 소비템이면
                                            {
                                                isHaveUsable = true;
                                                isGet        = true;
                                                slots[i].itemCount++;

                                                check(i, false);
                                                if (!it.isShopTem)
                                                {
                                                    temMgr.delTem(it.Index);
                                                    Destroy(item.gameObject);
                                                }
                                                else
                                                {
                                                    it.Del();
                                                }
                                                break;
                                            }
                                        }

                                        if (!isHaveUsable) //소비템이 없으면
                                        {
                                            for (int i = 0; i < ItemList.Length; i++)
                                            {
                                                if (ItemList[i].ItemName == "") //빈곳에 템넣어줌
                                                {
                                                    isGet       = true;
                                                    ItemList[i] = it.item;
                                                    slots[i].itemCount++;

                                                    check(i, true);

                                                    if (!it.isShopTem)
                                                    {
                                                        temMgr.delTem(it.Index);
                                                        Destroy(item.gameObject);
                                                    }
                                                    else
                                                    {
                                                        it.Del();
                                                    }

                                                    break;
                                                }
                                            }
                                        }
                                    }
                                    else//소비템이 아니면
                                    {
                                        for (int i = 0; i < ItemList.Length; i++)
                                        {
                                            if (ItemList[i].ItemName == "") //빈곳에 템넣어줌
                                            {
                                                isGet       = true;
                                                ItemList[i] = it.item;

                                                if (it.item.type == itemType.Passive) //패시브템이면
                                                {
                                                    player.PassiveOn(it.item.index);  //패시브 ON
                                                }
                                                check(i, true);

                                                if (!it.isShopTem)
                                                {
                                                    temMgr.delTem(it.Index);
                                                    Destroy(item.gameObject);
                                                }
                                                else
                                                {
                                                    it.Del();
                                                }
                                                break;
                                            }
                                        }
                                    }

                                    if (!isGet)
                                    {
                                        if (pc.isKor())
                                        {
                                            PopUpManager.instance.PopUp("더 이상 주울 수 없습니다!", Color.red);
                                        }
                                        else
                                        {
                                            PopUpManager.instance.PopUp("Can't pick up item any more!'", Color.red);
                                        }
                                    }
                                    else
                                    {
                                        player.GetSound();
                                    }
                                }
                            }
                        }
                        catch (Exception e)
                        { }
                    }

                    if (player.isPlay)
                    {
                        //1부터 6으로 아이템 선택 가능
                        if (Input.GetKeyDown(KeyCode.Alpha1) || Input.GetKeyDown(KeyCode.Alpha2) ||
                            Input.GetKeyDown(KeyCode.Alpha3) || Input.GetKeyDown(KeyCode.Alpha4) ||
                            Input.GetKeyDown(KeyCode.Alpha5) || Input.GetKeyDown(KeyCode.Alpha6) ||
                            Input.GetKeyDown(KeyCode.Alpha7) || Input.GetKeyDown(KeyCode.Alpha8) ||
                            Input.GetKeyDown(KeyCode.Alpha9))
                        {
                            int contactIndex = 0;
                            if (Input.GetKeyDown(KeyCode.Alpha1)) //1
                            {
                                contactIndex = 0;
                            }
                            else if (Input.GetKeyDown(KeyCode.Alpha2)) //2
                            {
                                contactIndex = 1;
                            }
                            else if (Input.GetKeyDown(KeyCode.Alpha3)) //3
                            {
                                contactIndex = 2;
                            }
                            else if (Input.GetKeyDown(KeyCode.Alpha4)) //4
                            {
                                contactIndex = 3;
                            }
                            else if (Input.GetKeyDown(KeyCode.Alpha5)) //5
                            {
                                contactIndex = 4;
                            }
                            else if (Input.GetKeyDown(KeyCode.Alpha6)) //6
                            {
                                contactIndex = 5;
                            }
                            else if (Input.GetKeyDown(KeyCode.Alpha7)) //7
                            {
                                contactIndex = 6;
                            }
                            else if (Input.GetKeyDown(KeyCode.Alpha8)) //8
                            {
                                contactIndex = 7;
                            }
                            else if (Input.GetKeyDown(KeyCode.Alpha9)) //9
                            {
                                if (player.PlayerIndex == 3)
                                {
                                    contactIndex = 8;
                                }
                            }

                            if (contactIndex != selectedIndex)
                            {
                                player.ChangeWeaponSound();
                                selectedIndex = contactIndex;
                                for (int i = 0; i < Selected.Length; i++) //현재 인텍스에만 선택창 달아줌
                                {
                                    if (i == selectedIndex)
                                    {
                                        Selected[i].SetActive(true);
                                    }
                                    else
                                    {
                                        Selected[i].SetActive(false);
                                    }
                                }

                                check(selectedIndex, false);
                            }
                        }
                    }

                    if (Input.GetKeyDown((KeyCode)System.Enum.Parse(typeof(KeyCode), PlayerPrefs.GetString("DROP"))) && player.isPlay) //템 버리기
                    {
                        DiscardItem(false);
                    }
                }

                if (player.isPlay)
                {
                    canTem();
                }
            }
        }
        else
        {
            Player[] players = FindObjectsOfType <Player>();
            foreach (Player p in players)
            {
                if (p.pv.IsMine)
                {
                    player = p;
                    break;
                }
            }
        }
    }