I decided to not change KoLmafia itself to allow optional arguments for the main() function. For now.
Instead, r323 adds a new configuration variable:
Code:
// Whether or not to exit after doing all the prep work and "free" actions.
// If you want to farm Crimbo, say, set this to false.
boolean run_turns = define_property( "VMF.RunTurns", "boolean", "true" ).to_boolean();
Given that, you could do:
Code:
set VMF.RunTurns=false
VeracityMeatFarm
(does pre-adventuring stuff - consumption, free fights, etc.)
set VMF.RunTurns=true
(farm Crimbo, using some number of turns)
VeracityMeatFarm
(uses up remaining turns and does end-of-day activites)
After one day of doing that with all my characters, I decided that was too hard.
I kept the configuration variable and created a wrapper script to call VMF.
Code:
vmf false
(does pre-adventuring stuff - consumption, free fights, etc.)
(farm Crimbo, using some number of turns)
vmf true
(uses up remaining turns and does end-of-day activites)
This also handles several properties I do not want to deal with while farming outside of VMF:
- sweet synthesis (do not use spleen to boost Meat Drop. use spleen for extra turns)
- special familiars (don't get costumes for Tot. don't lubricate Robortender)
VMF uses vprops, so configuration properties need special handling.
- the properties do not exist if they are "default".
- Therefore, get_property("xxx") -> "" if either the property does not exist (is default) or is actually set to "" (may not be default).
I attach vmf.ash which sets/restores properties correctly.
Use or modify as desired.