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(); }
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; } }
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(); }
public void EquipAccesorie_Necklace(AccesorieData data) { if (equipedNecklace != null) { UnequipAccesorie_Necklace(); } equipedNecklace = data; ApplyItemStat(equipedNecklace.AccesorieStat, equipedNecklace.ItemCode); }
public void EquipAccesorie_Ring(AccesorieData data) { if (equipedRing != null) { UnequipAccesorie_Ring(); } equipedRing = data; ApplyItemStat(equipedRing.AccesorieStat, equipedRing.ItemCode); }
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; } } }
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); } }
public void Initialize(WeaponData weaponData, AccesorieData ringData, AccesorieData necklaceData) { weaponItem = weaponData; accesorie_Ring = ringData; accesorie_Necklace = necklaceData; }
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"); }
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")} 원"; }
public void UnequipAccesorie_Necklace() { RemoveItemStat(equipedNecklace.AccesorieStat, equipedNecklace.ItemCode); equipedNecklace = null; }
public void UnequipAccesorie_Ring() { RemoveItemStat(equipedRing.AccesorieStat, equipedRing.ItemCode); equipedRing = null; }
public void ContainAccesorieData(AccesorieData data) { accesorieDatas.Add(data.ItemCode, data); }