I'd prefer Method 2. It's flexible and can be implemented fairly easy.
The idea is to split the complex condition into a tree of simple ones. Each node of the tree is a comparison function and the leaves are either references to the user data or threshold values.
So your "Need min 100 gold" are going to look like
or in JSON
Are you sure you need to go as deep as to device pixel ratio?
If it's a browser-based game, then you
have access to the viewport-percentage units like vmin, vmax, vw, vh. Why not use them?
If you are using canvas to render output, why not stylize it to fit entire viewport while maintaining the same pixel dimension?
Why not use meta tag to adjust the ...
how can I implement a function for every item, that gives the bonuses or other options when the appropriate roll is made
First, there are two approaches to managing passive bonuses and such:
Calculate resulting value whenever you need it.
Calculate resulting value whenever circumstances change.
But there is also a third way: keep a list of effects and ...