The following is an abbreviated version of the Subversion commit message logs. Please keep in mind that these messages are intended for other developers and they take the files which were modified into context in order to limit the amount of verbage. In general, they are not intended for general audiences and should not be treated as "official" documentation -- they are informal and abbreviated, at best.
If you do not understand what something says, try looking at the full version of the revision by following the accompanying link for the revision. The only difference is that the files which were modified will be listed, and sometimes, you can guess what happened from file names (though not always). If you still have no idea what happened, that's okay -- it probably doesn't relate to what you're doing with KoLmafia. ^_~
Furthermore, not everything marked as "fixed" is guaranteed to be fixed, not all changes are guaranteed to have a change. This is due the fact that both time and turns are finite and only a limited number of things can be tested. Some changes go in untested, assuming they would work, when they actually don't due to erroneous assumptions; alpha testers occasionally will be able to give feedback, but it's not always possible.
For example, if you read the revision logs for what changed between 10.2 and 10.3, the plus sign choice adventure was meant to get a use link. Something as seemingly insignificant as KoL using two spaces instead of one space in the sentence "It's actually a book. Read it." would mean the change didn't actually work -- anyone can verify that, in fact, the change didn't work for this very reason. If you ever encounter something like that, a non-accusatory mention of it (non-accusatory meaning anything that neither implies "ZOMG FALSE ADVERTISING" nor "You guys said this was fixed, but...") somewhere will usually result in the problem getting addressed.
Finally, if you've got a bug to report, make sure you read up on how to post a detailed bug report. While the rules outlined apply specifically to bugs related to scripting, many of them are applicable to KoLmafia bug reports in general. Most importantly, I hate the words "annoying" and "frustrating". Never use them when describing a bug/feature. Ever. Thanks. The abridged revision logs follow.
Track whether chaos butterfly has been used in combat this ascension
Breath Out banish is reset on rollover
Fix adventure yield for voodoo snuff
Add Plumber Power (numeric) and Plumber Stat (string) modifiers. Add Maximizer shortcuts:
"plumber" - equip best plumber tool for your primestat, if you have one, else best plumber tool.
"cold plumber" - equip best flower tool and a frosty button
When maximizing, parse boolean modifiers after numeric modifiers but before shortcuts.
We expect to not automatically redirect to place.php?whichplace=edunder
When automating adventures, automate multi-fights correctly.
When a choiceAdventureScript leaves you in a different choice, allow the script to be
called again on the other choice.
Quit automating choice if last option reidirected (to a fight)
Fix choice automation with multiple steps and improve adventure validation
Apparently the colossal free-range mushroom arrives on day 11, not 12
Allow configuring choiceAdventure791 in GUI to "skip adventure" with via option 6
Remove choice options for Lets Make a Deal! Add choice options for A Sietch in Time
Remove "Unspaded" from notes of campfire foods since, in fact, they have been spaded
Restore behavior of synthesize command to allow two of the same candy.
The Terrarium has a new format for showing your current familiar
When decorating astral gash, fetch the croptype of your garden in order to tell you what
you currently have, rather than figuring it out from the current crop
DOn't double URLDecode commands from the Browser CLI window
Track whether oil and boo peak fires are lit and actually progress to step3
Ed should skip straight to step1 for the garbage quest
Don't abort if we are deferring clover protection
Initial support for sinistral homunculus and Left-Hand Man.
Left-Hand Man can equip offhand items
new offhand items from Left-Hand Man
Two more offhands from the Left-Hand Man
Detect when a fight follows a choice. WHen automating with adv1 or adventure, automate that fight.
This allows run_choice( XXX, false ) to work forrectly in a choiceAdventureScript.
Add ASH function fight_follows_choice(). If you called run_choice() like that and it really did
redirect to a fight, this will be true, and you your script can call run_combat() - although a
choiceAdventureScript probably should not.
Better quest tracking and adventure validation for The Bat Hole
Left-Hand Man action figure found in mall
More dealing with Left-Hand Man's image
Creating the Talisman o'Namsilat suffices to "start" the Palindome quest.
Fix NPE when you don't have a familiar equipped.
redirectedCommand, specialCommand, parameterizedCommand must be decoded twice, since they are submitted by buttons
rather than by direct HTML links
Move icrm_extend.js to icrm_extend.1.js
Wiki has changed expected format of search terms
Saklad5's Underwater Familiar patch: all "underwater" type familiars have intrinsic Underwater Familiar modifier
Having your Left-Hand Man carrying your UV-resistant compass is as good as carrying it yourself
Add Murgatroyd diode and enhanced signal receiver and concoction
It is "Amun", not "Amum".
Check items that stopped working after Crimbo. Grinding sausages needs to retrieve all necessary
magical sausage casings.
Modernize Maximizer code up to Java 7
Fix Bat Hole adventure validatation
If a choice redirects to a fight which is immediately lost and leads to another choice,
return from the choiceAdventureScript which was handling the original choice.
Fix quest progression for questM20Necklace and questM16Temple
The Artist has both townwrong_artist_quest and townwrong_artist_noquest actions
You don't need to look at the plains to see a beanstalk in order to enable
adventuring in the Penultimate Fantasy Airship
Require stench resistance to automate adventures in Guano Junction
colossal free-range mushrooms are tradeable
chipped coffee cup
Add Dark Gyffte to paths that have restrictions on HP/MP restoratives.
Add use-limiters to restoratives which are path-limited
Only restores have a restoration maximum
If the Powerful Glove is accessible, it's buff skills are castable, via magic:
we'll swap it in before casting, if you don't have it equipped.
f you don't have a plumber tool that matches your mainstat, look up the best plumber
tool you have regardless of mainstat - and save it
If you can recover HP or MP with a restorative, it is not banned in your path
When mining at the volcano, don't increment turns_spent in your previous location
Fix OOB error with bad parameters to latte command. Add the final latte ingredient,
now that you can obtain it with using the Left-Hand Man
If a Fight Page does not contain a monster image, attempt to locate the top of the fight another way.
For now, do process tables embedded in tables after other table elements.
work boots and fancy boots are an "Item Mutex" set for the Maximizer.
work boots and fancy boots are mutually exclusive. If you have one equipped and want to equip the other
choose the same slot
Change choice spoiler tor 805/1 to "talk with Gnasir"
Arena parameters for Left-Hand Man
Remove errant foreach that was interfering with an iterator
Capitalization matters in encounter names. Set quest properties when we light
the fires on A-Boo Peak and Oil Peak
Further simplification of validation for getting to the Airship
Allow // comments in plural string constants.
Add ASH function my_garden_type() which returns a string:
pumpkin, peppermint, skeleton, beer, winter, thanksgarden, grass, mushroom
Add additional item to campground corresponding to SEED (DAYS)
If you don't have a garden, my_garden_type() returns "none"
red coin, red plumber's boots, Plumber Jump
When clear crop in campground, remove both the crop and the crop seed objects
Maximizer does not consider dieting pill as a reasonable spleen toxin in TCRS
If you have a Mat Hatrack or a Fancypants Scarecrow equipped, when selecting familiar items to
put on it in the Gear Changer, do not display the non-familiar-item modifiers.
Don't include Familiar Effect on biss warnings in the Relay Browser unless
you have a familiar that can wear the item
Add more "method chaining" variants of ASH functions where the object you are dealing with comes
before the count.
boolean adventure( location, int count, string filter )
void add_item_condition( item, int count )
void remove_item_condition( item, int count )
boolean buy( item, int count )
boolean buy( item, int count, int limit )
boolean buy_using_storage( item, int count )
boolean buy_using_storage( item, int count, int limit )
boolean put_closet( item )
boolean put_closet( item, int count )
boolean put_stash( item, int count )
boolean put_display( item, int count )
boolean take_closet( item, int count )
boolean take_storage( item, int count )
boolean take_display( item, int count )
boolean take_stash( item, int count )
boolean autosell_stash( item, int count )
boolean hermit( item, int count )
boolean use_skill( skill, int count )
boolean use_skill( skill, int count, target )
boolean equip( item, slot )
Very preliminary support for drippy wine, drippy caviar, and drippy nugget
Add _drippyCaviarUsed, _drippyNuggetUsed, _drippyWineUsed properties
Add drippyJuice property
More drippy items
Coinmaster for Drip Institute Armory. The Dripping Trees. drippy tree.
Since the Drip Institute is "not temporary content", I moved the Coinmaster from EVents to Always Available.
drippy tree is not affected by ML
Simply quest location checking to use a switch statement rather than a long if-then-elseif chin
Move checking for A-Boo Peak, Oil Peak, and Haunted Billiards Room.
KoL says that "drippy" is an OCRS modifier, but "drippy tree" is in Manuel. Cope.
Decrement drippyJuice when you encounter the Drippy House on the Prairie choice adventure
Both drippy tree and drippy bat have "drippy" as an OCRS modifier, but "drippy"
is part of their name, per Manuel. Ignore "drippy" OCRS modifier.
The Drippy House on the Prairie has anothe choice option which uses up your Drippy Juice.
Deduct one Drippy Juice for each choice other than "9" - Leave
drippy shield and drippy snail shell
When freeing the king requires resetting skills - Avatar, Heavy Rains, Nuclear Autumn -
check Powerful Glove skills
decrement "drippyJuice" when you enter The Drippy Forest.
Add drippyBatsUnlocked and drippyShieldUnlocked
Add "checkmeat" command which checks KoLmafia's meat drop data vs. the KoL Wiki
Improvements to checkmeat command. Believe the Wiki for many - but not all - discrepancies.
Personal Meat Drop spading. Elemental Charter Item Drop spading from PeKaJe
Update quest progress in Path of the Plumber for bat, goblin, cyrpt, and trapper wuests when you
defeat the boss. Ditto for Dark Gyffte for the cyrpt and trapper quests
If mafia prints an ash stack trace then unconditionally echo it to the session log as well. Does not work for ash exceptions that are thrown and displayed by Java. Only lightly tested.
drippy plum stuff
Correct drippyJuice pref if mafia thinks you can adventure but you can't
Updated nohookah tag on some status effects
Fix check for sewer test items
When you set the "currentMood" property, inform the MoodManager.
You lose the drippy snail shell when you show it to Jeremy Scientist.
For the Red Snapper, KoL tracks "merkin", although we call them "mer-kin"
Add _saplingsPlanted property to track how many saplings we've planted in the Arrrboretum today.
The Thing in the Basement, its boddy parts, and the Eye skills
Fix more monster Meat Drops from spading. scary pirate requires a Wiki Name attribute.
If gazing at sky at your getaway campsite does not grant an effect, synchronize properties
New Content: something called a "green rocket" is avaialle in he General Store. Today.
Add it to the items you can buy from the General Store.
New Content: an item called "reen rocket" is available from the eneral Store on Dependence Day only.
Only one firework can be used on Dependence Day. Track in _fireworkUsed
Add +1 superduperheated metal as a default goal for The Bunbblin' Caldera
Add "checkskills" command to compare KoL's skill descriptions with KoLmafia's database
Add "test newskill NUM" command to register a new skill.
Registering a new skill now prints skill modifiers, if it is a passive skill.
Fix four images and a few modifiers for passive skills
Any cold resistance is enough to adventure in the post-quest Icy Peak
Fix Meat drops for 4 monsters and item drops for 2 monsters.
Invoking Genie from main.php Breakfast suggestions invokes a choice but also requests main.php?bfastXXX.
That should not interrupt choice processing.
When you turn your drippy truncheon into a drippy state, you lose the truncheon.
Fix adventure tield of drippy items. Remove duplicate modifier. Update comment
Let counterScript be FUNCTION@SCRIPT rather than just SCRIPT. If the latter, function is "main", as before
Mechanical Songbird is Fairy Effectivness 1.5, not Fairy 1.5
Don't execute toplevel of a counterScript unless you are executing main()
Added current_round() function to ASH
Fix sausage grinding calculations. Add Arrrbor Day to svnrepo.
Add nohookah flag to a bunch of effects, per ikzann
An ASH script can define coercion functions for typedefs and records: to_string( VALUE ), for example.
When parsing, compile in calls to those, as apparopriate: assignments, function arguments, return values, etc.
ANY_TYPE has a null name
FunctionInvocation needs to provide getRawType, just like a FunctionCall
Track unaccompanied miner usage
Implicit coercion efficiency mods: update param lists in place and search only for MatchType.EXACT
A ternary operator's rawType is the type of its left side.
Fix recognition of Hobopolis hobos
Track resistance modifiers from Curse of Exposure
Support named groups in ASH regex
changes from checkeffects and checkitems
Bump version to 20.4