private static void RemoveSocket(string[] inputTokens)
    {
        string weaponName  = inputTokens[1];
        int    socketIndex = int.Parse(inputTokens[2]);

        IWeapon weapon = weapons.First(w => w.Name == weaponName);

        if (socketIndex >= 0 && socketIndex < weapon.Gems.Length)
        {
            IGem gem = weapon.Gems[socketIndex];

            if (gem != null)
            {
                weapon.DegradeWeapon(gem);
                weapon.Gems[socketIndex] = null;
            }
        }
    }