UseItemRequest.java
// Check binge requests before checking fullness or inebriety
switch (consumptionType) {
case SPIRIT_HOBO:
case GLUTTONOUS_GHOST:
case SLIMELING:
return Integer.MAX_VALUE;
case ROBORTENDER:
return 1;
case PASTA_GUARDIAN:
UseItemRequest.limiter = "character class";
return KoLCharacter.isPastamancer() ? 1 : 0;
case EAT:
return EatItemRequest.maximumUses(
itemId, itemName, ConsumablesDatabase.getFullness(itemName));
case DRINK:
return DrinkItemRequest.maximumUses(
itemId, itemName, ConsumablesDatabase.getInebriety(itemName), allowOverDrink);
case SPLEEN:
return SpleenItemRequest.maximumUses(
itemId, itemName, ConsumablesDatabase.getSpleenHit(itemName));
}
// Delegate to specialized classes as appropriate
int inebriety = ConsumablesDatabase.getInebriety(itemName);
if (inebriety > 0) {
return DrinkItemRequest.maximumUses(itemId, itemName, inebriety, allowOverDrink);
}
int fullness = ConsumablesDatabase.getFullness(itemName);
if (fullness > 0 || itemId == ItemPool.MAGICAL_SAUSAGE) {
return EatItemRequest.maximumUses(itemId, itemName, fullness);
}
int spleenHit = ConsumablesDatabase.getSpleenHit(itemName);
if (spleenHit > 0) {
return SpleenItemRequest.maximumUses(itemId, itemName, spleenHit);
}