Tips, Tricks and Workarounds
Free Pulls
KoLmafia considers free pulls as completely separate from other items in Hangks. Because there is no resource being consumed by pulling them, they do not use the functions involved in pulls, specifically storage_amount()
and take_storage()
.
To find the quantity of a free pull in Hangks, such as a brick you need to use available_amount()
. To remove a free pull item from Hangks you need to use retrieve_item()
.
Anonymous closures
print()
Capturing an Abort
By default, whenever an ASH function returns false, everything will abort unless you somehow capture the return value (i.e. assigning it to a variable or enclosing it in a control structure). So, if you want to make use of, say, the hermit() function in a way that won't abort if the function returns false, you could:
Save the result as a boolean variable.
boolean fakeBool = hermit(1, $item[Ten-leaf clover]);
Capture the result in an if() conditional.
if(!hermit(1, $item[Ten-leaf clover])) print("Hermit looting failed: continuing on.");
An if() conditional doesn't even have to do anything.
if(hermit(1, $item[Ten-leaf clover])) {}
The most minimalistic method is to capture it with a not operator and parenthesis.
(!hermit(1, $item[Ten-leaf clover]));
Any of these will capture the return value and prevent mafia from aborting.