Yeah... the possible bug/problem is if you use TPS drinks or KLP food, since those make it recalculate part way through the consumption. Based on updated information... which includes having already taken your DP or SHDP into account, so it will try to over eat/drink. Being said, it should only apply when mixing KLP or TPS and the helpers.
For that matter, would probably eventually make sense to include other helpers into account for EatDrink...
Edit: Would we want to just have a consideration of helpers? I wouldn't be coding them for a while... until after the rest of the stacking EatDrink is stable and working in a logical sort of way, but I'd add them after that.
For non-tradable helpers, should we use twice their autosell price as their 'value', which would make DP and SHDP have a value of 500, and be used by default if it can actually gain adventures at the standard cost? By that, if you had a VoA at or above 520, it would use the DP expecting to eat a mugcake, if nothing else. If you have real food you can eat, it should find something that will make your 16 appetite turn out better than 15...
Edit2: Meh, the other helpers are all significantly more expensive and generally don't have autosell, so guess that knocks out adding anything else. Probably end up using something similar to the mojo filtering code for them... maybe reuse that variable to work on all 3 types using the 2*autosell thing.
Edit3: Meh again. Mojo filter doesn't actually have a variable, it's just considered for price since it's a standard item. So... what exactly do we want to use as our pill price?
Edit4: Well, no update for pill price, so... that's a maybe someday thing. Here's something I've added to my working copy of EatDrink as of 9599...
PHP:
int get_quality(item checking)
{
int level = -1;
switch (checking.quality)
{
case "crappy":
level = 0;
break;
case "decent":
level = 1;
break;
case "good":
level = 2;
break;
case "awesome":
level = 3;
break;
case "epic":
level = 4;
break;
}
return level;
}
Planning on allowing a minimum quality value similar to the minimum average, so you can set to filter out all items that aren't at least the desired quality or higher... probably call it minimum_quality and it should be in the next upload.