KeltiThePastaQueen
New member
Title says it all, really. I think this would be kind of handy as a goal no matter what zone one is in.
[B]famdrop[/B] => ashq string d; string n;string f = my_familiar().to_string();switch(f) {case "Li'l Xenomorph":d="transponder";n="transporter transponder";break;case "Baby Sandworm":d="agua";n="agua de vida";break;case "Green Pixie":d="absinthe";n="tiny bottle of absinthe";break;case "Llama Lama":d="gong";n="llama gong";break;case "Astral Badger":d="astral";n="astral mushroom";break;case "Rogue Program":d="token";n="game grid token";break;default: return false;}int num=5-get_property("_"+d+"Drops").to_int();if(num>0)cli_execute("goals add "+num+" "+n);
One problem I have is that if I had familiar A out when I start automating turns, and the automation stops with familiar B, Mafia will try to equip familiar A's equipment on familiar B.
Yeah, any time you have a piece of equipment intentionally permanently changed while automatically adventuring, it will always attempt to change it back when the automation stops, regardless of whether bBS or mood is used to call it, even if you don't have the equipment anymore. Very annoying when you morph stinky cheese mid automation.Mafia will try to equip familiar A's equipment on familiar B. I never really looked into it, but adding a cli_execute("checkpoint"); didn't solve this. It never was enough of a bother to actually make a bug report though ^^
package net.sourceforge.kolmafia.textui.command;
import net.sourceforge.kolmafia.KoLmafia;
import net.sourceforge.kolmafia.RequestThread;
import net.sourceforge.kolmafia.SpecialOutfit;
public class OutfitCheckpointCommand
extends AbstractCommand
{
public OutfitCheckpointCommand()
{
this.usage = " [clear] - remembers [or forgets] current equipment, use \"outfit checkpoint\" to restore.";
}
public void run( final String cmd, String parameters )
{
parameters = parameters.trim();
if ( !parameters.equals( "clear" ) )
{
SpecialOutfit.createExplicitCheckpoint();
KoLmafia.updateDisplay( "Internal checkpoint created." );
RequestThread.enableDisplayIfSequenceComplete();
return;
}
else if ( parameters.equals( "clear" ))
{
SpecialOutfit.forgetCheckpoints();
KoLmafia.updateDisplay( "Checkpoints cleared." );
}
}
}
What would happen if the checkpoint existed for a good reason, such as currently wearing the KGE suit to purchase seltzer?
SpecialOutfit.createImplicitCheckpoint();
InventoryManager.retrieveItem( item, false );
SpecialOutfit.restoreImplicitCheckpoint();
/**
* Method to remove all active checkpoints, in cases where restoring the original
* outfit is undesirable (currently, Fernswarthy's Basement).
*/
public static final void forgetCheckpoints()
{
SpecialOutfit.implicitPoints.clear();
SpecialOutfit.explicitPoints.clear();
}
checkpoint [clear] - remembers [or forgets] current equipment, use "outfit checkpoint" to restore.
This should mean there's a new checkpoint created and restored around the request for any NPC store purchase.