Exemplo n.º 1
0
 public void ChangeWeapon(Weapon newWeapon, WeaponSlot.Spot spot)
 {
     if (weaponsSlots.TryChangeItem(newWeapon, spot, out var oldWeapon))
     {
         RecalculateCharacteristics(oldWeapon, newWeapon);
     }
 }
Exemplo n.º 2
0
        public bool TryChangeItem(Weapon newWeapon, WeaponSlot.Spot spot, out Equipment oldWeapon)
        {
            var result = false;

            oldWeapon = null;
            switch (spot)
            {
            case WeaponSlot.Spot.TwoHands:
                if (Slots.ContainsKey(WeaponSlot.Spot.TwoHands))
                {
                    result = Slots[WeaponSlot.Spot.TwoHands].TryChangeItem(newWeapon, out oldWeapon);
                    if (!result)
                    {
                        break;
                    }
                    Debug.Log($"{oldWeapon} dropped");
                    if (Slots.ContainsKey(WeaponSlot.Spot.LeftHand))
                    {
                        Debug.Log($"{Slots[WeaponSlot.Spot.LeftHand]} dropped");
                        Slots[WeaponSlot.Spot.LeftHand] = null;
                    }

                    if (Slots.ContainsKey(WeaponSlot.Spot.RightHand))
                    {
                        Debug.Log($"{Slots[WeaponSlot.Spot.RightHand]} dropped");
                        Slots[WeaponSlot.Spot.RightHand] = null;
                    }
                }
                else
                {
                    Debug.Log($"There is no {spot} spot");
                }

                break;

            default:
                if (Slots.ContainsKey(spot))
                {
                    result = Slots[WeaponSlot.Spot.TwoHands].TryChangeItem(newWeapon, out oldWeapon);
                    if (!result)
                    {
                        break;
                    }
                    Debug.Log($"{oldWeapon} dropped");
                }
                else
                {
                    Debug.Log($"There is no {spot} spot");
                }

                break;
            }

            return(result);
        }