Attached is a patch to kolmafia which tracks how full your slimeling is, and displays it next to its name (like the bander, lama, sandworm, or pixie tracking).
UPDATED: now resets properly on ascension, and tracks fractional fullness.
UPDATED: now resets properly on ascension, and tracks fractional fullness.
Code:
Index: src/net/sourceforge/kolmafia/webui/CharPaneDecorator.java
===================================================================
--- src/net/sourceforge/kolmafia/webui/CharPaneDecorator.java (revision 8297)
+++ src/net/sourceforge/kolmafia/webui/CharPaneDecorator.java (working copy)
@@ -152,6 +152,8 @@
fam.getModifiedWeight() / 5;
case FamiliarPool.HARE:
return Preferences.getInteger( "extraRolloverAdventures" ) + " adv";
+ case FamiliarPool.SLIMELING:
+ return "~" + Preferences.getFloat( "slimelingFullness" ) + " full";
}
return null;
}
Index: src/net/sourceforge/kolmafia/session/ValhallaManager.java
===================================================================
--- src/net/sourceforge/kolmafia/session/ValhallaManager.java (revision 8297)
+++ src/net/sourceforge/kolmafia/session/ValhallaManager.java (working copy)
@@ -233,6 +233,7 @@
public static final void resetPerAscensionCounters()
{
+ Preferences.setFloat( "slimelingFullness", (float) 0.0 );
Preferences.setInteger( "currentBountyItem", 0 );
Preferences.setString( "currentHippyStore", "none" );
Preferences.setString( "currentWheelPosition", "muscle" );
Index: src/net/sourceforge/kolmafia/request/UseItemRequest.java
===================================================================
--- src/net/sourceforge/kolmafia/request/UseItemRequest.java (revision 8297)
+++ src/net/sourceforge/kolmafia/request/UseItemRequest.java (working copy)
@@ -58,6 +58,7 @@
import net.sourceforge.kolmafia.objectpool.FamiliarPool;
import net.sourceforge.kolmafia.objectpool.ItemPool;
import net.sourceforge.kolmafia.persistence.AdventureDatabase;
+import net.sourceforge.kolmafia.persistence.EquipmentDatabase;
import net.sourceforge.kolmafia.persistence.ConcoctionDatabase;
import net.sourceforge.kolmafia.persistence.FamiliarDatabase;
import net.sourceforge.kolmafia.persistence.ItemDatabase;
@@ -3553,6 +3554,16 @@
String name = item.getName();
String useString = "feed " + count + " " + name + " to " + familiar.getRace();
+ // estimate slimeling charges
+ if (id == FamiliarPool.SLIMELING)
+ {
+ // round down for now, since we don't know how this really works
+ float charges = item.getCount() * EquipmentDatabase.getPower(item.getItemId()) / 10.0F;
+ Preferences.setFloat("slimelingFullness", Preferences.getFloat("slimelingFullness") + charges);
+ // Preferences.increment( "slimelingFullness", charges );
+ useString += " (estimated " + charges + " charges)";
+ }
+
RequestLogger.updateSessionLog();
RequestLogger.updateSessionLog( useString );
Index: src/net/sourceforge/kolmafia/request/FightRequest.java
===================================================================
--- src/net/sourceforge/kolmafia/request/FightRequest.java (revision 8297)
+++ src/net/sourceforge/kolmafia/request/FightRequest.java (working copy)
@@ -1843,6 +1843,15 @@
}
}
+ // "[slimeling] leaps on your opponent, sliming it for XX damage. It's inspiring!"
+ if ( responseText.indexOf( "leaps on your opponent" ) != -1 )
+ {
+ Preferences.setFloat("slimelingFullness", Preferences.getFloat("slimelingFullness") - 1.0F);
+ // Preferences.increment( "slimelingFullness", -1 );
+ if (Preferences.getFloat("slimelingFullness") < 0.0)
+ Preferences.setFloat("slimelingFullness",(float) 0.0);
+ }
+
// "As you're trying to get away, you sink in the silty muck on
// the sea floor. You manage to get yourself unmired, but your
// greaves seem to have gotten instantly rusty in the process..."
Last edited: