コード例 #1
0
        private void AddDamageStat(float minValue, float maxValue, ItemEquipment.EquipmentSlot equipmentSlot)
        {
            if (sb.Length > 0)
            {
                sb.AppendLine();
            }

            if (equipmentSlot == ItemEquipment.EquipmentSlot.WeaponRightHand)
            {
                sb.Append("One hand damage: ");
            }
            else if (equipmentSlot == ItemEquipment.EquipmentSlot.WeaponRightHand)
            {
                sb.Append("Two hands damage: ");
            }

            if (minValue == maxValue)
            {
                sb.Append($"{minValue}.");
            }
            else if (maxValue > minValue)
            {
                sb.Append($"{minValue}-{maxValue}.");
            }
        }
コード例 #2
0
        public void UnequipItem(ItemEquipment.EquipmentSlot itemSlot)
        {
            int slotIndex = (int)itemSlot;

            var oldItem = equippedItems[slotIndex];

            if (!oldItem)
            {
                Debug.LogError($"Any item on item slot {itemSlot} is not equipped.");
                return;
            }

            equippedItems[slotIndex] = null;

            onEquipmentChanged?.Invoke(null, oldItem);

            inventoryManager.Add(new ItemStack {
                item = oldItem, count = 1
            });

            if (oldItem is ItemArmor)
            {
                PlayerManager.Instance.playerAppearance.HideArmorPiece(oldItem as ItemArmor);

                PlayerManager.Instance.playerAppearance.ShowBodyPart(oldItem as ItemArmor);
            }
            else if (oldItem is ItemWeaponBase)
            {
                PlayerManager.Instance.playerAppearance.DetachWeapon(oldItem.equipmentSlot);
            }
        }
コード例 #3
0
 public void DetachWeapon(ItemEquipment.EquipmentSlot equipmentSlot)
 {
     if (equipmentSlot == ItemEquipment.EquipmentSlot.WeaponRightHand)
     {
         Destroy(equippedWeapon);
     }
     else
     {
         Destroy(equippedShield);
     }
 }