It is based on a few variables: monster.juice, monster.maxHealth, and damage per impact. When you damage a monster, the amount of juice that comes out is
- monster.juice * damage / monster.maxHealth
but also, when you kill a monster, it releases ~5 juice particles that sum up to monster.juice, and when you drink it, you get monster.juice again. This means you can actually get about 3 * monster.juice per monster that you kill and drink.
The reason you can get more with higher damage (as with the old OP draginslayer) is because you can actually hit a monster for more damage than its maxHealth. Say you hit a pollywog for 9000 damage and its maxHealth is 100, you actually get (9000 / 100) = 90 * monster.juice from that hit. I call it overkill damage and it'll probably get a nerf when I rework the game to be a bit more balanced ;)
Edit: Oh also yes, Juice particle size is logarithmic I believe. Can't remember the exact function but it is less than linear for sure!