91 Bottles of ASCII-beer on the Wall
Charcoal, 99 91 bytes

Ａ⁻⁹¹ＮθＡ¹³η:(Ｗθ«Ａ⌊⟦θη⟧ζＡ⁻θζθＡ⁻η¹ηＦζ«↑⁴↖.\↑²←|=↓³←↙¹↓.Ｐ⁶↓²Ｐ⁶↓¹Ｐ______←| »¿θ«Ｍ⁹↑Ｍ³→×=⁻×⁸ζ³↑Ｍ⁴←


Try it online! Link is to verbose version of code. Actually the real version is only 83 70 bytes:

Ｆ¹⁵Ｆι⊞υκ:(Ｆ⁻⁹¹Ｎ«Ｆ¬⊟υ«Ｍ³±⁹×=⁺⁵×⁸⊟υ↑Ｍ⁴←»↑⁴↖.\↑²←|=↓³←↙¹↓.Ｐ⁶↓²Ｐ⁶↓¹Ｐ×_⁶←|←


Explanation:

Ｆ¹⁵Ｆι⊞υκ


Populate an array providing information as to where the shelves go and how long they are.

:(


Print an unhappy face, although this will be immediately overwritten by the first bottle of beer (if any).

Ｆ⁻⁹¹Ｎ«


Loop through the remaining bottles of beer.

   Ｆ¬⊟υ«


Check to see whether a shelf needs to be drawn.

        Ｍ³±⁹×=⁺⁵×⁸⊟υ↑Ｍ⁴←»


Print the shelf and position ready to draw the next bottle above it.

   ↑⁴↖.\↑²←|=↓³←↙¹↓.Ｐ⁶↓²Ｐ⁶↓¹Ｐ×_⁶←|←


Draw a bottle and position ready to draw another bottle.