diff --git a/src/data/defaults.txt b/src/data/defaults.txt index f00101d602d..f38672713b8 100644 --- a/src/data/defaults.txt +++ b/src/data/defaults.txt @@ -1535,6 +1535,7 @@ user warehouseProgress 0 user watchedPreferences user waxMonster user welcomeBackAdv 0 +user whetstonesUsed 0 user wildfireBarrelCaulked false user wildfireDusted false user wildfireFracked false diff --git a/src/data/items.txt b/src/data/items.txt index 0a6dfe2bd9b..26a48bd9bee 100644 --- a/src/data/items.txt +++ b/src/data/items.txt @@ -11133,6 +11133,6 @@ 11105 bolder boulder 697310877 rgboulder.gif usable t,d 25 11106 molehill mountain 671315172 rgmountain.gif reusable t,d 250 11107 whet stone 689119937 rgwhetstone.gif multiple t,d 5 -11108 hard rock 878413969 rghardrock.gif usable t,d 25 +11108 hard rock 878413969 rghardrock.gif multiple t,d 25 11109 strange stalagmite 720163663 rgstalagmite.gif reusable t,d 250 11110 chocolate covered ping-pong ball 997920598 ccppball.gif usable t,d 20 diff --git a/src/net/sourceforge/kolmafia/objectpool/Concoction.java b/src/net/sourceforge/kolmafia/objectpool/Concoction.java index c2a71c3f01a..748f83f2151 100644 --- a/src/net/sourceforge/kolmafia/objectpool/Concoction.java +++ b/src/net/sourceforge/kolmafia/objectpool/Concoction.java @@ -88,6 +88,7 @@ public class Concoction implements Comparable { Set.of( ItemPool.QUANTUM_TACO, ItemPool.MUNCHIES_PILL, + ItemPool.WHETSTONE, ItemPool.MAGICAL_SAUSAGE, ItemPool.MAYONEX, ItemPool.MAYODIOL, @@ -199,7 +200,7 @@ public ConcoctionType computeType() { return switch (ItemDatabase.getConsumptionType(itemId)) { case FOOD_HELPER -> ConcoctionType.FOOD; case DRINK_HELPER -> ConcoctionType.BOOZE; - case USE -> forceFood.contains(itemId) + case USE, USE_MULTIPLE -> forceFood.contains(itemId) ? ConcoctionType.FOOD : forceBooze.contains(itemId) ? ConcoctionType.BOOZE : ConcoctionType.NONE; case POTION, AVATAR_POTION -> ConcoctionType.POTION; diff --git a/src/net/sourceforge/kolmafia/persistence/ConcoctionDatabase.java b/src/net/sourceforge/kolmafia/persistence/ConcoctionDatabase.java index 7ff9407faf3..60d5bb21fdf 100644 --- a/src/net/sourceforge/kolmafia/persistence/ConcoctionDatabase.java +++ b/src/net/sourceforge/kolmafia/persistence/ConcoctionDatabase.java @@ -429,6 +429,7 @@ public static final boolean canQueueFood(final int id) { switch (id) { case ItemPool.QUANTUM_TACO: case ItemPool.MUNCHIES_PILL: + case ItemPool.WHETSTONE: case ItemPool.MAGICAL_SAUSAGE: return true; } diff --git a/src/net/sourceforge/kolmafia/preferences/Preferences.java b/src/net/sourceforge/kolmafia/preferences/Preferences.java index ff82d87c894..9e8962256b1 100644 --- a/src/net/sourceforge/kolmafia/preferences/Preferences.java +++ b/src/net/sourceforge/kolmafia/preferences/Preferences.java @@ -472,6 +472,7 @@ public class Preferences { "vintnerWineType", "violetFogLayout", "waxMonster", + "whetstonesUsed", "wildfireBarrelCaulked", "wildfireDusted", "wildfireFracked", diff --git a/src/net/sourceforge/kolmafia/request/EatItemRequest.java b/src/net/sourceforge/kolmafia/request/EatItemRequest.java index c1c3ac58fe7..f3c3b4b76dd 100644 --- a/src/net/sourceforge/kolmafia/request/EatItemRequest.java +++ b/src/net/sourceforge/kolmafia/request/EatItemRequest.java @@ -1049,6 +1049,17 @@ public static final void handleFoodHelper( ResultProcessor.processItem(ItemPool.SPECIAL_SEASONING, -itemsUsed); } + // With your sharpened appetite, that really hits the spot. + if (responseText.contains("With your sharpened appetite")) { + int itemsUsed = Math.min(count, InventoryManager.getCount(ItemPool.WHETSTONE)); + if (itemsUsed > 1) { + EatItemRequest.logConsumption("You used " + itemsUsed + " whetstones with your food"); + } else { + EatItemRequest.logConsumption("You used a whetstone with your food"); + } + Preferences.decrement("whetstonesUsed", itemsUsed); + } + // Satisfied, you let loose a nasty magnesium-flavored belch. if (responseText.contains("magnesium-flavored belch")) { EatItemRequest.logConsumption("Your milk of magnesium kicked in"); diff --git a/src/net/sourceforge/kolmafia/request/UseItemRequest.java b/src/net/sourceforge/kolmafia/request/UseItemRequest.java index 3d3b2be1d27..bf7d7eba133 100644 --- a/src/net/sourceforge/kolmafia/request/UseItemRequest.java +++ b/src/net/sourceforge/kolmafia/request/UseItemRequest.java @@ -6439,6 +6439,10 @@ public static boolean registerRequest(final String urlString) { Preferences.increment("munchiesPillsUsed", count); break; + case ItemPool.WHETSTONE: + Preferences.increment("whetstonesUsed", count); + break; + case ItemPool.DRINK_ME_POTION: Preferences.increment("pendingMapReflections", count); break; diff --git a/src/net/sourceforge/kolmafia/swingui/widget/ListCellRendererFactory.java b/src/net/sourceforge/kolmafia/swingui/widget/ListCellRendererFactory.java index 5ccb1b3f171..badb4eb0c2c 100644 --- a/src/net/sourceforge/kolmafia/swingui/widget/ListCellRendererFactory.java +++ b/src/net/sourceforge/kolmafia/swingui/widget/ListCellRendererFactory.java @@ -379,6 +379,7 @@ private Component getRenderer( switch (item.getItemId()) { case ItemPool.MUNCHIES_PILL -> stringForm.append("+1-3 adv from next food"); + case ItemPool.WHETSTONE -> stringForm.append("+1 adv from next food"); case ItemPool.SUSHI_DOILY -> stringForm.append( "+3 adv from next sushi (automatically used from inventory)"); case ItemPool.GRAINS_OF_SALT -> stringForm.append(