示例#1
0
    public void UnequipItem()
    {
        string itmeType = currentToggle.CurrentItem.ItemType;

        switch (itmeType)
        {
        case "Weapon":
            PlayerEquipment.Instance.UnequipWeapon();
            break;

        case "Accesorie":
            AccesorieData accesorie = ItemDB.Instance.GetAccesorieData(currentToggle.CurrentItem.ItemCode);
            switch (accesorie.AccesorieType)
            {
            case "Ring":
                PlayerEquipment.Instance.UnequipAccesorie_Ring();
                break;

            case "Necklace":
                PlayerEquipment.Instance.UnequipAccesorie_Necklace();
                break;
            }
            break;
        }
        RefreshPlayerInfoPanel();
        inventoryPanel.RefreshItemTable();
    }
示例#2
0
    private void EquipmentSelected(EquipmentSelectToggle selectToggle)
    {
        EquipmentPanel.allowSwitchOff = false;
        currentToggle = selectToggle;
        inventoryPanel.DeselectAllItemTableToggles();
        inventoryPanel.ResetItemInteractPanel();

        string itemType = selectToggle.CurrentItem.ItemType;

        switch (itemType)
        {
        case "Weapon":
            WeaponData weapon = ItemDB.Instance.GetWeaponData(selectToggle.CurrentItem.ItemCode);
            inventoryPanel.RefreshItemIntroduce(selectToggle.CurrentItem.Name, selectToggle.CurrentItem.Introduce, weapon.WeaponStat);
            break;

        case "Accesorie":
            AccesorieData accesorie = ItemDB.Instance.GetAccesorieData(selectToggle.CurrentItem.ItemCode);
            inventoryPanel.RefreshItemIntroduce(selectToggle.CurrentItem.Name, selectToggle.CurrentItem.Introduce, accesorie.AccesorieStat);
            break;

        case "Expendable":
            ExpendableData expendable = ItemDB.Instance.GetExpendableData(selectToggle.CurrentItem.ItemCode);
            inventoryPanel.RefreshItemIntroduce(selectToggle.CurrentItem.Name, selectToggle.CurrentItem.Introduce, expendable.Effects);
            break;

        case "Etc":
            inventoryPanel.RefreshItemIntroduce(selectToggle.CurrentItem.Name, selectToggle.CurrentItem.Introduce);
            break;
        }

        inventoryPanel.ActiveUnEquipBtn();
    }
    public void UseItem()
    {
        if (PlayerActManager.Instance.CurrentBehaviour != CharacterBehaviour.Idle)
            return;
        ItemData data = selectedItemToggle.CurrentItem.OriginalItemData;
        switch (data.ItemType)
        {
            case "Weapon":
                PlayerEquipment.Instance.EquipWeapon(data.ItemCode);
                break;
            case "Accesorie":
                AccesorieData accesorieData = ItemDB.Instance.GetAccesorieData(data.ItemCode);

                if (accesorieData.AccesorieType.Equals("Ring"))
                    PlayerEquipment.Instance.EquipAccesorie_Ring(accesorieData);
                else if (accesorieData.AccesorieType.Equals("Necklace"))
                    PlayerEquipment.Instance.EquipAccesorie_Necklace(accesorieData);
                break;
            case "Expendable":
                ExpendableData expendableData = ItemDB.Instance.GetExpendableData(data.ItemCode);
                PlayerBuffer.Instance.ApplyStatEffectByExpendable(expendableData);
                PlayerInventory.Instance.RemoveItemFromInventory(expendableData.ItemCode, 1);
                quickSlotPanel.Refresh();
                break;
        }
        quickSlotPanel.Refresh();
        inventoryPanel.RefreshPlayerInfoPanel();
        RefreshInventoryPanel();
    }
    // 아이템 토글이 선택되었을 시 Toggle->Panel로 호출되는 Callback
    private void ItemSelected(InventoryItemSelectToggle selectToggle, string itemType)
    {
        contentsView.allowSwitchOff = false;
        inventoryPanel.DeselectAllEquipmentToggles();
        inventoryPanel.ResetItemInteractPanel();
        selectedItemToggle = selectToggle;

        ItemData item = selectToggle.CurrentItem.OriginalItemData;
        inventoryPanel.ActiveSellItemBtn();
        ItemSellPrice.text = $"판매 가격 : 개당 <color=yellow>{item.SellPrice}</color> 원";
        switch (itemType)
        {
            case "Weapon":
                WeaponData weapon = ItemDB.Instance.GetWeaponData(item.ItemCode);
                inventoryPanel.RefreshItemIntroduce(item.Name, item.Introduce, weapon.WeaponStat);
                inventoryPanel.ActiveQuickSlotBtn();
                inventoryPanel.ActiveUseItemBtn();
                break;
            case "Accesorie":
                AccesorieData accesorie = ItemDB.Instance.GetAccesorieData(item.ItemCode);
                inventoryPanel.RefreshItemIntroduce(item.Name, item.Introduce, accesorie.AccesorieStat);
                inventoryPanel.ActiveUseItemBtn();
                break;
            case "Expendable":
                ExpendableData expendable = ItemDB.Instance.GetExpendableData(item.ItemCode);
                inventoryPanel.RefreshItemIntroduce(item.Name, item.Introduce, expendable.Effects);
                inventoryPanel.ActiveQuickSlotBtn();
                inventoryPanel.ActiveUseItemBtn();
                break;
            case "Etc":
                inventoryPanel.RefreshItemIntroduce(item.Name, item.Introduce);
                break;
        }
    }
示例#5
0
    public void Save_PlayerEquipment_UpdateServerDB()
    {
        this.weaponItem         = PlayerEquipment.Instance.EquipedWeapon;
        this.accesorie_Ring     = PlayerEquipment.Instance.EquipedRing;
        this.accesorie_Necklace = PlayerEquipment.Instance.EquipedNecklace;

        DBConnector.Instance.Save_PlayerEquipment();
    }
示例#6
0
 public void EquipAccesorie_Necklace(AccesorieData data)
 {
     if (equipedNecklace != null)
     {
         UnequipAccesorie_Necklace();
     }
     equipedNecklace = data;
     ApplyItemStat(equipedNecklace.AccesorieStat, equipedNecklace.ItemCode);
 }
示例#7
0
 public void EquipAccesorie_Ring(AccesorieData data)
 {
     if (equipedRing != null)
     {
         UnequipAccesorie_Ring();
     }
     equipedRing = data;
     ApplyItemStat(equipedRing.AccesorieStat, equipedRing.ItemCode);
 }
示例#8
0
    public void SelectSlot()
    {
        if (PlayerActManager.Instance.CurrentBehaviour == CharacterBehaviour.Idle ||
            PlayerActManager.Instance.CurrentBehaviour == CharacterBehaviour.Move ||
            PlayerActManager.Instance.CurrentBehaviour == CharacterBehaviour.Jump)
        {
            switch (currentMode)
            {
            case QuickSlotMode.AttachItem:
                SlotPanel.FoundSameItemAndEmpty(waitAttachItem.OriginalItemData.ItemCode);
                slotItem = waitAttachItem;
                PlayerQuickSlot.Instance.ItemsInSlot[SlotIndex] = slotItem.OriginalItemData.ItemCode;
                SlotPanel.CancelAttachItem();
                Refresh();
                break;

            case QuickSlotMode.UseItem:
                if (slotItem == null)
                {
                    return;
                }
                ItemData data = slotItem.OriginalItemData;
                switch (data.ItemType)
                {
                case "Weapon":
                    PlayerEquipment.Instance.EquipWeapon(data.ItemCode);
                    break;

                case "Accesorie":
                    AccesorieData accesorieData = ItemDB.Instance.GetAccesorieData(data.ItemCode);

                    if (accesorieData.AccesorieType.Equals("Ring"))
                    {
                        PlayerEquipment.Instance.EquipAccesorie_Ring(accesorieData);
                    }
                    else if (accesorieData.AccesorieType.Equals("Necklace"))
                    {
                        PlayerEquipment.Instance.EquipAccesorie_Necklace(accesorieData);
                    }
                    break;

                case "Expendable":
                    ExpendableData expendableData = ItemDB.Instance.GetExpendableData(data.ItemCode);
                    PlayerBuffer.Instance.ApplyStatEffectByExpendable(expendableData);
                    PlayerInventory.Instance.RemoveItemFromInventory(expendableData.ItemCode, 1);
                    break;
                }
                SlotPanel.Refresh();
                break;
            }
        }
    }
示例#9
0
    public AccesorieData GetAccesorieData(int itemCode)
    {
        AccesorieData foundData = null;
        bool          isSuccess = accesorieDatas.TryGetValue(itemCode, out foundData);

        if (isSuccess)
        {
            return(foundData);
        }
        else
        {
            Debug.Log($"{itemCode}아이템을 찾을 수 없습니다.");
            return(null);
        }
    }
 private void LoadItemToggle()
 {
     for (int i = 0; i < currentItems.Count; ++i)
     {
         ItemData data = currentItems[i].OriginalItemData;
         if (data.ItemType.Equals("Weapon"))
         {
             if (PlayerEquipment.Instance.EquipedWeapon != null &&
                 PlayerEquipment.Instance.EquipedWeapon.ItemCode == data.ItemCode)
                 selectTogglePool[i].Refresh(currentItems[i], true);
             else
                 selectTogglePool[i].Refresh(currentItems[i], false);
         }
         else if (data.ItemType.Equals("Accesorie"))
         {
             AccesorieData accesorie = ItemDB.Instance.GetAccesorieData(data.ItemCode);
             switch(accesorie.AccesorieType)
             {
                 case "Ring":
                     if (PlayerEquipment.Instance.EquipedRing != null &&
                         PlayerEquipment.Instance.EquipedRing.ItemCode == data.ItemCode)
                         selectTogglePool[i].Refresh(currentItems[i], true);
                     else
                         selectTogglePool[i].Refresh(currentItems[i], false);
                     break;
                 case "Necklace":
                     if (PlayerEquipment.Instance.EquipedNecklace != null &&
                         PlayerEquipment.Instance.EquipedNecklace.ItemCode == data.ItemCode)
                         selectTogglePool[i].Refresh(currentItems[i], true);
                     else
                         selectTogglePool[i].Refresh(currentItems[i], false);
                     break;
             }
         }
         else
             selectTogglePool[i].Refresh(currentItems[i], false);
     }
 }
示例#11
0
 public void Initialize(WeaponData weaponData, AccesorieData ringData, AccesorieData necklaceData)
 {
     weaponItem         = weaponData;
     accesorie_Ring     = ringData;
     accesorie_Necklace = necklaceData;
 }
示例#12
0
    public string LoadItemDB()
    {
        string  weaponQuery   = $"SELECT * FROM dbo.Weapon";
        DataSet weaponDataset = ConnectDB_GetDataSet("Item_DB", weaponQuery);

        if (weaponDataset == null)
        {
            return("Fail");
        }
        DataRowCollection weaponRow = weaponDataset.Tables[0].Rows;

        for (int i = 0; i < weaponRow.Count; ++i)
        {
            object[]   items     = weaponRow[i].ItemArray;
            string     jsonSTR   = items[1].ToString();
            WeaponData newWeapon = JsonUtility.FromJson <WeaponData>(jsonSTR);
            ItemDB.Instance.ContainWeaponData(newWeapon);
        }

        string  expendableQuery   = $"SELECT * FROM dbo.Expendable";
        DataSet expendableDataset = ConnectDB_GetDataSet("Item_DB", expendableQuery);

        if (expendableDataset == null)
        {
            return("Fail");
        }
        DataRowCollection expendableRow = expendableDataset.Tables[0].Rows;

        for (int i = 0; i < expendableRow.Count; ++i)
        {
            object[]       items         = expendableRow[i].ItemArray;
            string         jsonSTR       = items[1].ToString();
            ExpendableData newExpendable = JsonUtility.FromJson <ExpendableData>(jsonSTR);
            ItemDB.Instance.ContainExpandableData(newExpendable);
        }

        string  accesorieQuery   = $"SELECT * FROM dbo.Accesorie";
        DataSet accesorieDataset = ConnectDB_GetDataSet("Item_DB", accesorieQuery);

        if (accesorieDataset == null)
        {
            return("Fail");
        }
        DataRowCollection accesorieRow = accesorieDataset.Tables[0].Rows;

        for (int i = 0; i < accesorieRow.Count; ++i)
        {
            object[]      items        = accesorieRow[i].ItemArray;
            string        jsonSTR      = items[1].ToString();
            AccesorieData newAccesorie = JsonUtility.FromJson <AccesorieData>(jsonSTR);
            ItemDB.Instance.ContainAccesorieData(newAccesorie);
        }

        string  etcQuery   = $"SELECT * FROM dbo.Etc";
        DataSet etcDataset = ConnectDB_GetDataSet("Item_DB", etcQuery);

        if (etcDataset == null)
        {
            return("Fail");
        }
        DataRowCollection etcRow = etcDataset.Tables[0].Rows;

        for (int i = 0; i < etcRow.Count; ++i)
        {
            object[] items   = etcRow[i].ItemArray;
            string   jsonSTR = items[1].ToString();
            EtcData  newETC  = JsonUtility.FromJson <EtcData>(jsonSTR);
            ItemDB.Instance.ContainEtcData(newETC);
        }

        return("Success");
    }
示例#13
0
    private void RefreshPanel()
    {
        BuyMultipleBtns.gameObject.SetActive(false);
        try
        {
            Texture2D tex = AssetBundleCacher.Instance.LoadAndGetAsset("itempreview", currentItemData.Name) as Texture2D;
            ItemImage.sprite = Sprite.Create(tex, new Rect(0.0f, 0.0f, tex.width, tex.height), new Vector2(0.5f, 0.5f), 100.0f);
        }
        catch (Exception)
        {
            ItemImage.sprite = null;
        }
        ItemName.text      = currentItemData.Name;
        ItemIntroduce.text = currentItemData.Introduce;

        StringBuilder builder = new StringBuilder();

        switch (currentItemData.ItemType)
        {
        case "Weapon":
            WeaponData       weapon     = ItemDB.Instance.GetWeaponData(currentItemData.ItemCode);
            StatAdditional[] weaponStat = weapon.WeaponStat;
            for (int i = 1; i < weaponStat.Length + 1; ++i)
            {
                builder.Append($"{UIText_Util.Instance.GetKorStatByEng(weaponStat[i - 1].StatName)} +{weaponStat[i - 1].StatValue}");
                if (i % 2 != 0)
                {
                    builder.Append("            ");
                }
                else
                {
                    builder.AppendLine();
                }
            }
            ItemStat.text = builder.ToString();
            break;

        case "Accesorie":
            AccesorieData    accesorie     = ItemDB.Instance.GetAccesorieData(currentItemData.ItemCode);
            StatAdditional[] accesorieStat = accesorie.AccesorieStat;
            for (int i = 1; i < accesorieStat.Length + 1; ++i)
            {
                builder.Append($"{UIText_Util.Instance.GetKorStatByEng(accesorieStat[i - 1].StatName)} +{accesorieStat[i - 1].StatValue}");
                if (i % 2 != 0)
                {
                    builder.Append("            ");
                }
                else
                {
                    builder.AppendLine();
                }
            }
            ItemStat.text = builder.ToString();
            break;

        case "Expendable":
            BuyMultipleBtns.gameObject.SetActive(true);
            ExpendableData     expendable = ItemDB.Instance.GetExpendableData(currentItemData.ItemCode);
            ExpendableEffect[] effects    = expendable.Effects;
            for (int i = 0; i < effects.Length; ++i)
            {
                string duration = string.Empty;
                if (effects[i].EffectDuration == 0)
                {
                    duration = "<color=cyan>즉시 발동</color>";
                }
                else
                {
                    duration = $"<color=green>{effects[i].EffectDuration.ToString()}초 지속</color>";
                }
                builder.Append($"{UIText_Util.Instance.GetKorStatByEng(effects[i].StatName)} +{effects[i].StatAmount}            {duration}");
                builder.AppendLine();
            }
            ItemStat.text = builder.ToString();
            break;

        case "Etc":
            BuyMultipleBtns.gameObject.SetActive(true);
            ItemStatTitle.gameObject.SetActive(false);
            ItemStat.gameObject.SetActive(false);
            break;
        }
        ItemPrice.text  = $"{currentShopItemInfo.Price} 원";
        PlayerGold.text = $"소지금 : {PlayerStat.Instance.GetStat("Gold")} 원";
    }
示例#14
0
 public void UnequipAccesorie_Necklace()
 {
     RemoveItemStat(equipedNecklace.AccesorieStat, equipedNecklace.ItemCode);
     equipedNecklace = null;
 }
示例#15
0
 public void UnequipAccesorie_Ring()
 {
     RemoveItemStat(equipedRing.AccesorieStat, equipedRing.ItemCode);
     equipedRing = null;
 }
示例#16
0
 public void ContainAccesorieData(AccesorieData data)
 {
     accesorieDatas.Add(data.ItemCode, data);
 }