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.
get_player_name() will now do a /whois if the name is not currently known by the ContactManager
Left Hand Man dropped equipment powers
Item drop rates thanks to Ryo Sangnoir
plit "Potions" and "Avatar Potions" into their own sections in modifiers.txt, rather than
dumping them in to "Everything Else". Fix checkitems to output those sections.
Done hardcode Linebreak in stack trace.
Restore the 2 NBSP and the "at " that was accidentally removed from ASH stack trace lines.
Few more trivial things to make the Guzzler shop work correctly.
Java strings take Unicode. Use it.
Fix use link when you get Guzzlrbucks to go to shop
You can disambiguate item names with item id when setting goals. Therefore, when displaying the goal -
including as one of the results of ASH get_goals() - include the item id if the name is ambiguous
Add Buttery Boy and Guzzlr cocktail set
Since GenieRequest requires that the genie bottle be "accessible", use retrieveItem to
pull it into inventory, if needed, before trying to use it.
Add rest of Guzzlr cocktails, effects, recipes
Fix capitalization of X-dimensional horror
Fix Daily Deed check for vote monsters. Untested.
Guzzlr item plurals. Count daily uses of Expert Corner Cutting
You can walk away from talking to the Meatsmith, Doc Galactic, and the Armror
Remove duplicated code when accounting for free crafting turns
Add monster aliases to monster id sets so that ASH can find them.
When searching for a function with a particular match type, search parent scope with the same match type
When searching for matching functions, go all the way up the scope tree for a particular
combination of matchType/varArgs before moving to next combination
Disambiguate Spookyraven library key in default goals for the Haunted billards room
Allow autoCoercion to basic types as well as typedefs and records
Roll back coerceon to base types, since it doesn't work well in expressions
o a better job of auto-coersion in string concatenation
Guzzlr tablet is now an accessory that you can tap (redirecting to a choice)
Tracking for Guzzlr Tablet quests
Plumbers don't drink booze, so don't show them booze in the booze panel of the item manager.
Fix spoiler for getting Fantasy Realm arrest warrent
Fix location matching for Guzzlr quests
Fix some bugs with Guzzlr choice and quest tracking
Fix autoCoercion when assigning into a typedef.
Fix multiply defined function error for functions with different typedefs with the same base type
Typedef types are equal only if they have the same name.
"validate" now prints the raw type f function parameters not the base type.
Adjust opening Relay Server to not exit if can't bind a socket to listen on per patch from Ryo_Sangnoir
Lighter defeats the protester being attacked as well as a nearby group. Not tested.
Further simplifications for auto-coercion
Track resolution rare summons
oasis monster is an elemental. Nogs-on-the-Cobs
Add 17 keys from spreadsheet. Guzzlr zap group
Low Key Summer recognition
Manual of Lock Picking item and Lock Picking skill
Refactor: move all Tower Door support from SorceressLairManager to new TowerDoorManager
Add reset of Low-Key lock data from spreadsheet
Fix platinum guzzlr quest regex
Add actions for all Tower Door locks in Low-Key
Add "tower" or "lowkey" command to print the lock/key status of the tower door in the Sorceress's Lair
Supposedly finish support for Low-Key tower door
Powers for low-key path keys. Fix typo in help text of timespinner command
Further improvments to lock data for Low-Key tower door
More Tower Door fixes
Fix actions for low-key locks. Add "tower needed" to list only needed keys
Add Encounter to get each Low-Key key into the Lock database
Recognize unlocking of a Low-Key lock. Thwaitgold keyhole spider statuette. Manual of Lock Picking
Lock Picking can be cast once per ascension. track in "lockPicked" property
Use singular when defining Guzzlt token.
KoL modifier changes. Recignize Low-Key Summer image in ascension record. Fix comments.
Make Tower Door script use Lock Picking, if available and needed
Use GET to open locks
Premium Guzzlt cocktails need a coctail crafting kit
Add marshroom and Extra Spongy
When obtain last of Lady Spookyraven's dancing items, update quest to step2
Set Black Forest quest to tep1 when you get the black map.
Modernize code in FloristRequest
Don't generate error messages if KoL returns an obsolete adventure location in the Florist's watering schedule.
Add some images for monsters with variable images
Experimental: Perform monster disambiguation via images using image => monster lookup in a map,
rather than via a long change of string operations.
Add preference for whether the strange leaflet has been completed (via mafia's leaflet automation)
The Drip: New setting "dripAdventuresSinceAscension". Setting "drippyBatsUnlocked" is now
an integer, not a boolean. Each time you disturb bats in the Drippy House, add 7. Each
time you fight a bat, subtract 1. Set combat percentage of The Dripping Trees to 100,
which is correct, since the single non-combat is on a schedule, not random.
Adjust dripAdventuresSinceAscension, if necessary, when you encounter the Drippy House on the Prairie.
Combat rate for The Drippy Trees is 100% except when the non-combat is next, at which point it is 0%
Add .combat_percent proxy record field for a $location object in ASH.
WHen looking up adventure names supplied by KoL itself, do not do fuzzy matching.
Add property - frenchGuardTurtlesFreed - for tracking turtles freed during the Nemesis quest
Reverse order of checks for freeing guard turtle vs. French guard turtle, since Wiki seems
to say that a reugular guard turtle gets both messages.
Only increment one of guardTurtlesFreed and frenchGuardTurtlesFreed
semirare encounter in the Red Zeppelin is "Red Fox" (the actual name of the monster) rather than
The Red Fox (the supposed name of the encounter.
DOn't parse equipment on equipment.php?which=2 if ajax=1 or ftext=
Remarkable Elba Kramer appears Inside the Palindome. Add monster ID for ultra-rare monsters from Wiki.
About those ultrarare monster ids: they were on the WIki, with no explanation about where
they came from. Not Manuel, obviously. I just noticed that two monsters had duplicate IDs.
I conclude that somebody just pulled the IDs out of their ass.
Add paraffin pseudoaccordion as a buff tool for casting AT buffs
bag of Iunion Stones and Iunion Crown
Track started gold and platinum guzzlr quests on start, track total number of completed quests for the day, fix abandoning quests not resetting props
Include default for _guzzlrDeliveries
Add new type of script (spadingScript). Replaces meatDropSpading. Includes events for meat drop, combat rounds and all three consumption types
Add SpadingManager class that somehow wasnt included in the last commit
Updated drop rates thanks to Ryo Sangnoir
Add additional param for spadingScripts (string of metadata, content of which is dependent on event type
Fix some Spookyraven combat rates (thanks to Aenimus LAR spading)
Add spadingScript events for using (and multiusing) items, as well as for choice adventures
Update some effect quality and attributes from excavator data
If timing in recognizes it is now the next day, turn it into aa regular login.
If you try to logout during rollover - every request will redirect to main.php - skip the logoutScript
When looking for an exact no-substring monster-name match, allow for KoL
including "the " in fron of the monster name, even though that is not actually
part of the monster name.
AscensionPath.Path is now an object that has a name, id, image, isAvatar, and description.
KoLCharacter uses this rather than String path names. AfterLifeRequest and AccountRequest
use this to map from path IDs to path objects.
ASH now has int my_path_id(), string path_Id_to_name(int), int path_name_to_id(string)
Fix some formatting. path_name_to_id() now returns -1 if given bogus path name.
Add missing switch case break to Guzzlr quest abandonment
Guzzlrbucks now have both "Lets Guzzle!" and "tap" links
Don't prematurely set kingLiberated as Ed
Item drops for haunted nursery. More refactoring using AscensionPath.Path
Record maximizer string to gCLI and session log.
Add new consume type to SpadingManager (CONSUME_REUSABLE) and update statuseffects attributes based on Excavator data
Update some item and effect data based on KoL changelog. Debatably not worth my time, but apparently it was worth theirs so seems sensible
Fix strings matched to detect clover adventures to not trigger simply on "puff of smoke"
Track daily volcoino drop from lucky gold ring in _luckyGoldRingVolcoino, thanks to Miser
KoL includes MONSTERID in fight response text. Use it!
Guzzlrbuck and pirate fork are not consumed when "used". Semi-tested.
Fix use links for Guzzlrbucks
No more gaudy key from the gaudy pirate
If we can't find MONSTERID but there is no darkness.gif, print response text to DEBUG log
Monster ID for X-32-D Combat Snowman. We no longer have/need DUMMY monsters.
Attempt to look up monster by name if MONSTERID is not present in a fight.
If we are currently in a fight, do not register requests other than fight.php, since
they will immediately redirect to fight.php.
When parsing store inventory, don't skip past the (nonexistant) header if your store is empty.
Don't set daily elemental airport properties to true if you fail to visit the
airplane or an adventuring location.
Add missing choice option in GUI configuration for choice adventure 670
Add autoscend to SVN repository for Script Manager
When we learn a new monster or a changed monster ID via MONSTERID, register the
new monster or changed id for the rest of the session, as well as logging it
to the gCLI and session log
WHen we initially parse a combat encounter and create a MonsterData, set the lastMOnster
in the MonsterStatusTracker immediately, rather than waiting for it to be re-created
later from the monster name.
Some more drippy items
Add new secondary item attributes: paste, smith, cook, mix. Add new item proxy
record fields: pasteable, smithable, cookable, mixable. Fix checkitems to check
crafting item properties, Backfill all items with crafting properties from their
item descriptions. Add drippy orb.
Seven more drip items and 2 drip status effects
Add some drippy concoctions
Trigger SpadingManager after all processing is done on item use
The Drip is now a zone. The Dripping Trees and The Dripping Hall are locations in The Drip.
drippy reveler is a monster in The Dripping Hall. Track asdventures since ascension sperately
for trees and hall: drippingTreesAdventuresSinceAscension & drippingHallAdventuresSinceAscension.
Spoilers for The Hall in the Hall. More items and concoctions.
Create trans-ascension counter for Mmmmmmayonnaise
Add use link decorator to fizzing spore pods when appropriate
End Mmmmmmayonnaise counters when you hit the choice
Don't validate battleAction if we're using a combat filter
add lustrous drippy orb. fix choice # for The Hall oin the Hall. fix some equipment powers
ince KoL is now providing MONSTERID with every round, we shouldn't need to look up
monsters by name if it is not present. Keep that code, just in case, but log the
fight responseText if we get no MONSTERID and it is not the darkness.
If automating an adventure leaves you in a choice, automate the choice
Don't set spookyraven tracking for locations we've already cleared in that quest
fix dripping meat staff image. fix spookyraven library choice spoiler
gooey drippy candy bar
drippy bromide and gory dripping orb
Add Excavator to SVN script repository director.
When sending image files from image cache to browser, include an Access-Control-Allow-Origin header field.
Add drippingHallUnlocked property, set when you visit Jeremy with the fingernail or when you see The Hall in The Drip
CoinmasterFrame will not show you the drippy shield unless you have unlocked it and don't already have one.
Add _drippingHallDooRevision 1 (2, 3, 4) properties to track which doors you have been through today.
Allow "iii/" as well as "images/" to start a file in the KoL images directory
suppressPowerPixellation will cosnetic effects on monster image from PowerfulGlove
extraCosmeticModifiers will add OCRS cosmetic modifiers to monster images
gory dripping orb -> gory drippy orb. bitterskin is a neutral effect.
Add modifier formulae for MP and Booze Drop on Guzzlr tablet. HP is still a mystery (and its always possible we find out that MP has a higher cap)
Add spadingScript hook for PvP fights
Adventure validation: Dripping Hall must be unlocked. The Drip requires a Drip harness.
Equip Drip harness if you have one but equipped, when automating any adventure in The Drip.
Add choice configuration for Revolting Venting.
drippingHallAdventuresSinceAscension only increments if you defeat a drippy reveler or take
The Hall in the Hall NC.
If you get a drippy pilsner from the NC, remve a drippy stein.
If you buy a drippy candy bar, subtract 10000 Meat.
Add dynamic choice spoilers for The Hall in the Hall
Log Turn # when you visit Dr. Awkward's Office.
When checking Limitmode zones for Batfellow and Spelunky, check root zone of the location, rather than simply parent zone.
Add KoLCharacter.estimatedPoolSkill, which takes equipment, training, semirares, and inebriety into account.
Use this for the choice spoiler for The Hall in the Hall.
When you transform a monster, next time we parse a fight page, extract the new monster using the new MONSTERID comment.
Once you transform a monster, reparse it using MONSTERID, etc. every round for the rest of the fight
since ocrs modifiers, etc. do not appear the very next round, but a later one. This is bug reported.
Fix checking zones in Limitmode
When you transform a monster via CLEESH or Macrometeorite or CHEAT CODE: REPLACE ENEMY, attempt to
figure out what the new monster is by looking at the name and perhaps image in the newpic()
text will have the MONSTERID, but this will usually let you know what it is before submitting an action.
Sometimes a ten-leaf clover "vanishes" in a puff of smoke.
If a combat filter aborts, that aborts the combat and the enclosing script.
If a combat filter does an "exit", exit from script after combat completes
It does not take turns to adventure in Spelunky or Batfello
New property - drippyOrbsClaimed - incremented when you laim a drippy orb in The Hall in the Hall
Possibly adjust drippyOrbsClaimed based on current pool skill if you fail to claim a drippy orb.
Add "test choicespoilers CHOICE" command
Fixes from checkitems
test choicespoilers works only on choices with dynamic spoilers. Don't NPE if given a
choice without dynamic spoilers
Bump version to 20.6