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.
Island Decorator now uses meat drop for dirty thieving brgand from the monster
Arena parameters for Putty Buddy
Remove the method of acquiring Slicked-Back Do to remove some issues with the effect and intrinsic not being recognized as separate
Fix the Oily Woim effect in CoT/bjorn
When using a skill book, instead of checking for multiple possible failure methods, check for success
Fix a few data file entries
The Spooky Gravy Barrow -> The Spooky Gravy Burrow
Some initial Spring Break support
More Spring Break stuff.
Added three Pastaco recipes/items.
Added three skills
7 more recipes/items
Support including messages with curse items. Collect anticheese during breakfast if it is available.
When you get Beach Bucks from Yachtzee! you give up all of your moist beads
Add some Spring Break Beach content
More Spring Break Beach items
Cinco de Mayoween drinks, Brogre Brouture, Ultimate Mind Destroyer
Fix some multiuse flags, add an item
Recognize when the Break Time! register is empty and stop automation
Yachtzee! won't take more than 100 beads
Added some missing Spring Break Items. Some Spring Break skillbook support. Recognise learing Transcendent Olfaction.
Spring Break Beach Coinmasters added.
Fix typo in choice spoiler
Fix some plurals and multiusability flags
Break Time! has a new option
Underwater-only stuff works in The Sunken Party Yacht
Fix the previous commit
giant motorcycle boots are single equip
Sloppy Seconds Diner is not The Sunken Party Yacht
Yolo™ chocolates is multiusable, but KoLmafia thought it was not but thinks otherwise now.
Add support for using Shrap and Volcanometeor Showeruption against Dad Sea Monkee
Added default goals for Spaaace.
Corrupted stardust and pixel orbs use the same counter, so track them both with _corruptedStardustUsed. Sweet tooth gives +1 stomach capacity. The Sunken Party Yacht has underwater penalties.
Some Spookyraven stuff - LOADS still to come
More spookyraven, hopefully avoid debug errors in Bedroom with Ghost Key.
Haunted Laundry Room
Some more items, plus Haunted Boiler Room
Most of what's needed for the stat gain change
Recognize Slow and Steady
spookyraven quest items
Recognize when you can't use older stuff. This isn't used for anything yet.
more spookyraven quest items
Correctly add New Location link to multiple unlocked locations in same zone
Add is_unrestricted( item/familiar/skill/string ) to see if something can be used
Block the use of items/familiars/etc in the current challenge path
Lots of Spookyraven monsters have changed Atk/Def/HP.
Add lastSpookyravenLightsOut, nextSpookyravenStephenRoom and
full-length mirror is a semirare. Add search strings to recognize Lights Out
progress in three locations.
Food/booze/spleen give 0 adventures in Slow and Steady
Fix quest log parsing. At some point the quest log html changed slightly, breaking some quest parsing. Hopefully this fixes it. Also fix to parsing Manor completion. There is a KoL bug with MacGuffin header text on Completed Quest page (%playername rather than actually showing player name), which I've reported.
Sometimes Miscellaneous Quests are Other Quests, cope with that. Also change in name of Sea Monkee's quest.
Lets try a fix that works, shall we ?
Start tracking elemental planes quests, Hidden Temple quest, Spookyraven Babies quest, from quest log. Only have the finished text, if you have the started text, please report it in the bug report forum and I'll add it. Elemental planes quests don't reset on ascension (untested).
Add doll-eye amulet
Track Pool Skill modifiers on items and effects. Add link to "You Gain some Levels" (untested)
Remove screwdriver at the right stage of the untinker quest (untested).
Ghast Iron Gear outfit
Try to fix untinker quest properly. Added two semi-rare monsters.
Using the mortar-dissolving recipe doesn't get rid of it. Getting the wine bomb destroys the unstable fulminate.
KoL explicitly labels certain links following a fight as "againlink"
Get turnsplayed from charpane and api and make available in total_turns_played()
(turns_played() continues to be turnsthisrun)
sugar fairy is multiusable, but KoLmafia thought it was not. Fixed that.
have_familiar() now returns false if you are not allowed to use the familiar. Recall skills at the end of a Slow and Steady run. End of run items for Slow and Steady.
Track Beach Buck visits in Diner as _sloppyDinerBeachBucks. If you've got all you can get today, skip instead of abort when automating. Possessed sugar cube concoctions added.
Black Forest support. Doesn't include clues about Black Mass, if there is a way to survive it. Doesn't have a stop condition for opening Black Market. Does detect Black Market being opened text and sets questL11MacGuffin to step one if it isn't further than that (also does this when visiting Black Market).
Some food/booze spading.
Fitness Giant drops giant gym membership card
Fix Rotting Matilda - Thanks Primogenitor
Update library non-combat choices for new Haunted Library
Don't crash out with an error if you had open second floor as options in library on load. Some (partial) quest tracking additions (questL11Shen, questL11Ron, questM18Swamp, questM19Hippy.
Some improved/fixed early quest tracking - Larva, Rats, Bats.
Support for the new Louvre
Add ASH item.combat_reusable proxy field. The item.reusable field now applies
only to using an item outside of combat.
Fix a few typos in Louvre spoilers or logged encounter names
Add Stephen/Elizabeth Spookyraven, some Myst guild quest tracking, Salsa Satanica.
Lots of power and autosell updates
Quest tracking for Lady Spookyraven's Necklace quest. Adds preference manorDrawerCount to track Drawers checked, and preference poolSkill to track skill learned in Pool non-combat. Adds command "poolskill" which shows your current estimated pool skill, based on current spading on the mechanics. ie. Pool Skill = drunkenness up to 10, -2 for each drunkenness over 10, +1 for each time you've met the pool shark semi-rare up to 10 times, plus bonuses from equipment/effects, plus training in current ascension. The quest log in KoL doesn't show semi-rare or drunkenness portion.
Track Spookyraven Dance quest. Completed Spookyraven Necklance and Dance quests vanish from completed log when the later quests are started, so mark them complete if the later quest is started.
Spookyraven Babies quest tracking.
Fix a few spoiler labels for the Louvre
Recognise failure to cast Spaghetti Breakfast. Track Hippy Quest.
Add "spookyraven" command. Use "spookyraven on" to track Lights Out all the time.
Billiard Room pool balls are slightly better now
Fix errors revealed by checkitems
Crashed Space Ship items/skills/familiar
Arena parameters for Twitching Space Critter, thanks to BDrag0n.
Adventure zones for spaceship event.
space junk is multiusable, but KoLmafia thought it was not - Fixed that but have not tested fix.
Properly predict sombrero stats
Fix output from the "spookyraven" command
Ouija Board, Ouija Board allows turtle tamer buffs
Recognize failure to eat a hot dog from the stand due to being full
Fix outfits.txt entry
Add some Twitch Stream stuff (monsters mainly). I got an Ultimate Mind Destroyer! And so, add tracking for Buff Jimmy quests and Ultimate Mind Destroyer support. Added buffJimmyIngredients preference to track number of ingredients found. The other quests use physical items.
Set flyeredML to 10000 at end of war, regardless of whether Arena quest was completed or not. Should hopefully stop flyering being suggested in aftercore.
Better flyeredML fix. Add QuestDatabase.isQuestFinished(). Correct bad monsters.txt entry.
Add Shadow Avatar of Sneaky Pete as a variant of Your Shadow
The Noob Cave -> Noob Cave
The Frat House (Bombed Back to the Stone Age) The Orcish Frat House (Bombed Back to the Stone Age)
Fix spaces that should be tabs in consequences.txt for the various versions
of Lumpy, the Sinister Sauceblob
Check Familiars are allowed before considering adding to Backpack (untested). You can't take government apart.
Fix typo in modifiers.txt
Unleash the Greash, Shovel Hot Coal, Pull Voice Box String added.
Track Steam Card and Thinknerd Package drops (_steamCardDrops, _thinknerdPackageDrops)
Tracking for the rest of the Spring Break Beach quests. New preferences (tacoDanCocktailSauce, tacoDanFishMeat, brodenBacteria and brodenSprinkles) to track progress that isn't related to items dropping.
Remove quest items when you hand in Spring Break quests (unverified)
Fix bjorn using restricted familiars, and have_familiar() reporting that restricted familiars are available
Quest log entry for Buff Jimmy's Cheeseburger
Methinks the Protesters Doth Protest Too Little is either a clover adventure or a semirare. Track it appropriately.
Some twitch event plurals
Last quest log note for Spring Break Beach
Government is not a drink
Fix a couple of items.
Refactor to make it easier for "checkitems" and "checkeffects" to compare the
modifiers from the description with what we have in modifiers.txt.
We don't make that comparison, yet, but it should be possible to code it now.
Don't run after-adventure scripts after combats that lead directly into noncombats
Fix maximizer behavior when pullable/buyable is selected
Stats for Spookyraven bosses
Read ASH files in UTF-8
Equip requirement changed on blackberry galoshes
When reading ASH scripts, skip Unicode BOM characters at start of lines
Adjust minimum and maximum stat gains from a sombrero
Added some familiar items for new familiar. Raveosity and Clownosity now default to -tie in maximizer. Surgeonosity added as a default and is treated as a normal modifier now, as a set is not required.
Add familiar and equipment.
Add Lit Up effect. Update maximizer help to remove surgeonosity as a special case.
Prevent AdventureRequest.registerEncounter from logging the last "adventure" if
the last URL wasn't really an adventure.
Back out my last submit. Nuts.
Two more Grill items.
Galloping Grill in Throne/Bjorn modifier
Your own black heart also restores full health.
Corrected output of poolskill command based on current spading of semi-rare.
Initial Pyramid Support - largely untested
Tracking for middle chamber, lower chamber, control room unlocks ( non-combat recognition untested). Moved a load of quest related code on combat win from FightRequest to QuestManager.
Only show link to Control room on Tomb Ratchet and Crumbling Wheel once unlocked.
11th anniversary stuff
Added some success messages to check for skill uses.
Track Hot Ashes drops (_hotAshesDrops)
You can use a boring binder clip in Bees Hate You
Show hot ashes drop count in daily deeds and character pane
Better quest tracking of Spookyraven quests, including Lady Spookyraven conversations. Some locations validated before autoadventuring based on quest status. Spookyraven quests update based on browser visits to the manor also.
Detect access to Spring Break Beach. sleazeAirportAlways preference is set when you use the charter document (set it to true manually to save future server hits if you've already done so). _sleazeAirportToday preference is set whenever KoL notices it is available, when you use a ticket, or if you try to adventure there it'll check if that plane is available at the airport, and set it if so.
Fixed quest tracking (hopefully) for Goblin King, Friars and Trapper. Extremity now tracked (currentExtremity). Possible fix for quest status detection for some spring beach quests, as I think ResultProcessor.gainItem() is hit before inventory increments.
Fix Highlands quest tracking.
government is not multiusable, but KoLmafia thought it was AND liquid smoke is multiusable, but KoLmafia thought it was not have been corrected.
little black book modifier, airplane charter plural
Ash soda is now multiusable
Fix stupid error in L9 quest tracking
Update quest text for L9 quest.
Fix typo, peels out has an 's'
Update some messages for killing frat boys during the war so they don't match messages from the Galloping Grill
Remove the Chalky Hand warning in The Haunted Billiards Room
Added effect durations for wads to modifiers.txt
Unlock middle chamber if you are already adventuring there in relay browser, and haven't hit pyramid.php. Hit handleQuestChange on a redirect (eg adventure is a fight) to allow this sort of check.
Add White Citadel changes, improved tracking of Meatcar and White Citadel quests.
Cola Battlefield locations are listed under Rift rather than plains, so show Choice Adventure options under Rift rather than Plains so they appear when Battlefield locations selected.
When stocking the hot dog stand from storage, remove items from storage instead of from inventory
Don't provide a link to use a (now unusable) tomb ratchet when you get an ancient bronze token or ancient bomb
When auto-adventuring in Wine Cellar, don't choose a random corener to go to
since the Wine Cellar no longer has corners.
If Mayor Zapruder hasn't told you to go after Felonia yet, KoL won't let you
go in to the Burrow. Attempting to do so is not an encounter.
Sommelier Bounty is at the new Wine Cellar, combat rate in Whitey's Grove is now 85%, drop rate of white page is 5%.
Only 13 corks required for bounty after wine cellar change.
Update the recipe for making a talisman o' nam from snakehead charrrms
Remove black market map handling. Auto-craft the blackbird or crow when you have both pieces.
When both copperhead charm pieces drop, use that recipe for the Talisman o' Nam and auto-craft it.
Don't auto-create the copperhead talisman if you already have the snakehead talisman
Can meatpaste a picture of you. Am guessing it's not untinkerable, though wiki doesn't relate.
Replace hardcoded adventure IDs with constants. No functional change.
bowl of marinade now correctly marked as multiusable.
Display special KoL announcements from the login page
Picture of You CAN be untinkered
Don't display login page announcements more than once per day
Reset global _ settings daily
Haunted Gallery is now on second floor of Manor.
Fix Zombie Brackets (unverified)
Fix some powers. getting/losing warbear whosits updates coinmaster
Fix demon summoning
You lose cheesebuger receipe when you finish buff jimmy's diner quest.
Add powers for other off-hand quest items.
Fix a few equip requirements and autosell prices
Some Twitch Event stuff (still watching the replay of last night's twitchstream so there will be changes to come)
More twitchy stuff
A few more minor bits of twitchy goodness.
Fix typo on D Roll, Arena stats for Fossil.
Arena parameters for Galloping Grill
Quest tracking for Level 10 and some Level 11 quests (Palindome, Spookyraven, Shen Copperhead, Ron Copperhead, Black Market) quests improved and should read new quest log entries.
Added questL11Black to track the new Black Market quest.
Added zeppelinProtestors to track protestors removed.
Some step positions in existing quest tracking changed, which may affect scripts that use them. Hopefully I caught those occasions. The quest text should now be updated.
Image missing for Fossil skill.
Put Gallery choices on second floor of Manor.
Missed a step in Level 10 quest, also added some missing quest log text.
Update L10 quest correctly on choice adventures.
Level 11 Hidden City Quest tracking. Added four new quest entries to handle the new, temporary hidden city quests (questL11Curses, questL11Business, questL11Doctor, questL11Spare).
Pyramid/Desert quest log tracking. Attempt to set unlocks based on quest states.
Fix the check for the Palindome showing up in the Plains
Do not advance Worship quest when you unlock Hidden Temple unless it is started. If you start it after Hidden Temple is unlocked, advance it straight away.
Improve quest detection. Considers quests that end with /blockquote. Checks for parsed titles including quest title, not the other way around, this prevents Evilometer 'hiding' the quest that follows it.
Add mafia function QuestDatabase.QuestLaterThan that takes a quest as the first parameter. Use it in many places to increase code clarity (in my opinion).
Allow user to request a fax from Easyfax and Faustbot, in addtion to FaxBot, on
Fix function isQuestFinished.
Detect whitelist failures for Faustbot and Easyfax
Option for Lights Out choice adventures now available (choice option displays in ManoRevision 1 locations), sets preference lightsOutAutomation (0 is default, display in browser, 1 is automate/put arrows in the relay browser on correct options, 2 is always skip). Not 100% tested as I ran out of adventures, so use with caution first day!
Tracking for Untinker quest log entries.
Correct detection on lights out choice decision for Library.
Fix a Lights Out typo.
Swamp and Swamp quest support, including Choice Adventures, automation of Swamp Navigation, quest log entries, tracking of unlocked zones.
Fix using "2 Love Me, Vol. 2"
Add ASH and CLI support for other faxbots. These commands will check each bot and use the first one that has the specified monster/command.
faxbot CLI command and ASH function skip bots that are not currently online
Ignore case when sorting available monsters in faxbot lists.
Since every monster from Easyfax is in category None, do not make a category
list for that name, since you can see everything in the All Monsters list
I'm convinced. Default for lights out is to highlight right answer in relay browser/automate. Hopefully this will help someone.
Don't log bogus Adventure when refreshing session.
Make EatItemRequest multiuse munchie pills correctly.
Finishing desert marks Quest.DESERT complete, not Quest.PYRAMID to step11, in line with current quest log.
Correctly encode unicode characters in Preference strings, as specified by
Java's Properties class.
Don't throw an exception trying to do simple line wrapping for an alert box if
there is a stretch of 80 characters with no spaces in it.
"step4", not "step 4"
Don't send mafia into an error state when redirecting to a zone (eg using Grimstone mask and getting redirected to Skid Row).
Track combat turns with Grimstone Golem and show in Character Pane.
Allow a faxbot command to be sent using the CLI command without matching the case that the bot specifies, since all of the bots are case-insensitive
Added two new effects for the Speakeasy drinks. Added Familiar Damage and Gear Drop as supported modifiers.
A singular plural
Maximizer will now suggest Hot Dogs if they are useful and you have room for them.
Initial Speakeasy support. Item adventure/stat gain still needs spading.
Adventure gain for Lucky Lindy. Hopefully fix typo in resetting Fortune Cookie counter, needs testing.
Maybe this fixes Lucky Lindy parsing.
Fix Lucky Lindy properly this time. Add Sockdollager
Properly account for Hollow Leg in all paths
Naughty Sorceress Quest tracking - Note that there are many more steps tracked than there were, so if you use questL13Final in scripts you'll want to revise it. On the plus side, you can now know exactly which tower familiars have already been defeated. Should correctly identify your shadow (untested). Tracking is partially tested. Also a plural added and some fullness spading.
Added Fire Inside, Clan Speakeasy, a couple of old items
Some consumption spading. Some stat gain is a little speculative, but will adjust if necessary. Any help welcomed as always for spading.
Some Speakeasy fixes.
Partial fix for Bladeswitcher disarm move.
Some more consumption spading.
update ultra-rare monster data
Fix a typo
I think this update should log, to GCLI and Session log "Detective Skull Yellow Word found: " and the found word. Unverified.
Highlight finding a speakeasy word in the cli blue. Now also finds words from using fat stacks of cash against copperhead bartender and using 64735 scroll.
Log clan as well as speakeasy words found. Also some item spading.
A few more consumption details
fix a few things from checkpowers and checkitems
Refactor faxbot internal data to have a map from monster name to Monster and a
map from command to Monster. Initial support for letting faxbot command take a
Handle trying to drink speakeasy drink during high school. Some more consumption spading.
Don't show speakeasy drinks in the Item Manager -> Booze in paths where they can't be consumed
Rearrange initialization of monster maps for faxbots to be more sensible; build
them when constructing initial monster lists, not when building category lists.
Make maximizer show hot dogs again. Maximizer only shows hot dogs if not Jarlsberg or Zombie, and only shows speakeasy drinks if not Jarlsberg or in High School.
Extra space in yellow word pattern.
I think that's all consumables now up to date?
Don't produce error message if skip selected for Hidden Park, Hidden Office or Hidden Apartment Choice Adventures.
spooky music box mechanism is a (spookyraven only) banisher. Defaults added for new Fall/Rise non-combats in Library.
Recognise end of Rat quest in KOLHS.
"checkitems" command now compares enchantments from item description with
known modifiers and logs differences.
Fix many modifier errors revealed by this.
There is both item "industrial strength starch" and effect "Industrial Strength
Starch". We can't handle that, for now.
Fix some effect modifiers based on checkeffects
When you get recipe: mortar-dissolving solution, automatically use it, equipping Lord Spookyraven's spectacles if you have them
Be fancier when checking effects & items. Recognize a few more effects
(Slime Resistance and Supercold Resistance and Bast STAT Limiters) from
soup up modifier checking a bit more. Fix a few bad modifiers.
Remove element ordering from modifier comparator; depend on "resistance to all"
simply generating the modifiers in the expected order.
More tweaking of modifier checking.
Now that Food and Booze list Effect/Effect Duration in their description,
checkitems will parse modifiers for those classes of items.
modifiers.txt now has a Foods section and a Boozes section.
Properly recognize Duration: 1 Adventure
Use underscores instead of camel case field names for svn_info ASH function
Increment Smile of Mr A tracking according to the number of casts.
When checking modifiers, actually put description modifiers first, in the
order they appear in the description, followed by additional hand-added
modifers, in the order they appear.
Add hot dogs to Foods section and speakeasy drinks to Boozes section
Refactor several methods that individually split apart and munged modifer
strings to use new Modifier and ModifierList classes.
Fix malformed modifer text for Yearbook Club Camera and Fam:Mini-Adventurer
Modifier value can be null, so don't take an NPE when evaluating it.
A few new turtles, Fortunate Resolve spaded modifiers.
Only remove one white page when using it.
Registering casting of 0 MP spells shouldn't assume that only 1 is ever cast.
modifier keys are no longer canonicalized before being looked up.
Add modifier for "industrial strength starch"
Fix typo in usage for turtle pheremones and add modifier for it
A couple more turtle shells.
When per Full (per drunk, per spleen) is selected, show stat gain per full (per drunk, per spleen) as well as adventures. It doesn't add /full (etc) after mus, myx or mox for space reasons. Hopefully this means things will sort in slowcore by stat per unit (I'm not in it so cannot test) which should be more useful.
Show adventure and soulsauce cost in skill casting panel (also shows swagger for Summon Annoyance, but not the specific amount, as we don't track the number of times the skill is bought).
Show adventure, mp and soulsauce cost in maximizer. (Is Gong the only item the use of which to get a buff costs adventures?)
Check Mirror and Recruit Zombie also cost 1 adventure.
food, booze, and spleen items in fullness.txt, inebriety.txt, and spleenhit.txt
now have the same capitalization as KoL itself uses for them.
capitalize Micromicrobrewery offerings correctly
When logging new food or booze items, keep item name capitalization intact in
the line that will go into fullness.txt or inebriety.txt
Show how much swagger Summon Annoyance will cost in the skill casting panel
Fix familiar modifier parsing
Fix other uses of getModifiers that added a type: string to the front where the case of Type was wrong. Removed fameq: from a check as that isn't placed in front of familiar equipment.
Look for (generated) "fameq:" modifiers in order to apply Familiar Effect
Some turtle choice adventure defaults
Some plurals, multiuses
Allow Summon Leviatuga underwater
Fix the option to pick up Engorged Sausages and You when it is not available
Handle A-boo peak tracking if you are defeated during the Horror. Update appropriate peak tracking when you see a fire in the Highlands, and when getting the quest reward, as a sanity check.
Add epic cluster (and things that pulverize to it).
Keep track of Steam Cards
When fetching a UseSkillRequest for the purpose of simply querying mana cost,
for example, get an "unmodified" instance so that it doesn't reset the buff
target in the cached instance to your own player ID.
A couple of missing defaults for turtle taming.
Modifier expressions need to understand that zones, locations, classes, skills,
etc. are no longer lower-cased.
Experimental - Add verbose option (verboseMaximizer or checkbox on graphical maximizer) which also shows adv duration, uses remaining and/or number in inventory as appropriate. Also adds some missing durations to modifiers.txt.
Simplify code: move some things out of skill casting loop, use Java foreach
rather than explicit iterators when reading cookies at login.
Fix displaying Surgeonosity
Don't parse results from dev pages
Some new appearance potions.
Some KOLHS avatar potions
More avatar potions
And yet more avatar potions. Still missing 5-8 potions I think.
Need to visit main.php when you time-in a session.
Yes, it really is spooky nuggets, not spooky nugget, etc., in modifiers.txt
Sections of modifiers.txt are now alphabetical ignoring case.
They are nuggets, not nugget
If we reduce consumption of a multiusable spleen item to 1 from something
greater than 1, switch from multiuse.php to inv_use.php
Just as with spleen items, if multiusable items are use limited to 1 from a
higher value, switch from multiuse.php to inv_use.php
Some avatar potions from Canadia swamp, still missing at least 4-6 potions.
Add a few more avatar potions discovered via mall search
Since FightRequest.getLastMonsterName does nothing other than call the method of
the same name in MonsterStatusTracker, get rid of that method and call the
latter method instead.
Experimental: when logging actions in combat, log the last encounter name - the
monster name, complete with capital letters, as appropriate - rather than
the lower-cased version of the monster name. This affects only logging, not
what is stored in preferences or passed to consult scripts.
Update a few plurals
Fix Florist Friar modifier checking
Don't generate a use link for items that are currently limited to 0 uses
Add two more avatar potions
Remove Flamin' Whatshisname when you use it to scare Zeppelin protestors, remove unnamed cocktail when it is transformed into Flamin' Whatshisname.
Update some capitalization
Removed some spleen pastes from food section of modifiers.txt (were already in non food/booze section.
Suppressing use links for items found duing a choice chain is too stringent.
For now, back out that check and instead include a check just for dance cards,
the original cause for the change.
Another avatar potion
Add Avatar modifier to effects generated by avatar potions
Add a few twitch event items, effects, and locations. Very preliminary.
Put back accidently removed Surgeonosity. Add Maximum Hooch.
Add Legitimate Shoe Repair, Inc. coinmaster
Fix twich zone names. Caveman Dan's favorite rock. No NPE when finding unknown
Some more twitch stuff, monster drops, new Speakeasy drink, remove cocktail onions in non-combat, detect speakeasy pink password (unverified).
Don't generate debug log on "You gain X unknown thing" message.
Make that AdventureResult check more generic
Some more details of Twitchy stuff
Twitch hat/pants familiar effects.
Add flask flops
Phonus Balonus adventures/fights added.
Adjust Tommy Gun Ammo drop rates
Fix logging of Neandermall and Shoe Repair Shop transactions
Floor on Caveman Dan stats
gumshoes cannot be autosold or discarded
Add a plural
Remove code to check maximumUses before generating a use link
Detect time tower shops being opened based on "town_tower" appearing in Seaside Town. Resets when Seaside Town container document visited.
Do some of what is needed to filter speakeasy drinks in the Item Manager:
don't show drinks you cannot afford, and allow queuing more than one drink
Can summon rare libram summons from skills.php (unverified), typo in Phonus Balonus and plural of cup of lukewarm tea.
Reduce number of queueable Speakeasy drinks based on queued quantity as well as drunk quantity.
"the slime tube" -> "The Slime Tube"
Show boost in predicted scores in Maximuzer when Buddy Bjorn or Crown of Thrones familiar is changed.
Fix some erroneous modifier entries
Soup up the "checkmodifiers" command, run it, and fix a bunch of bogus
modifiers in modifiers.txt
Show number of items creatable in Verbose Maximizer output. In Hardcore/Ronin, limit uses remaining to number on hand + number creatable (unverified, as I have no character currently in Ronin/Hardcore.
When splitting a modifer string into a ModifierList, the modifer separater must
be exactly ": " - a colon and a single space - since the regular expressions
used to parse modifiers from the string all require that. "checkmodifiers"
will therefore report any modifier that is not parsable.
If Black Forest map choice is set to a choice not available, change to manual decision. If we see Black Market in Woods, set quests if necessary.
A large (but probably incomplete - additions in the usual place) list of effects can now be removed by Shake It Off and Hot Tub. As MY experience is that Antidotes are usually shorter in supply than Hot Tub soaks in Hardcore/Ronin, it'll preferentially use hot tubs unless preference "uneffectWithHotTub" is set to false (default is true) when in Hardcore/Ronin. As antidotes are cheap in aftercore, but hot tubs are limited, it doesn't use the hot tub to uneffect in aftercore.
Adds "blackForestProgress" preference. Tracks progress through the black forest, from 0 to 5.
Add items to various choice spoilers so you can click to get description
Staff of Holiday Sensations needs Lotion rather than Phial.
Can only make KOLHS items in High School (but always shown then so you know what you can make, even if you can't make stuff now). Can only make Junk items if you have Worse Homes and Gardens. Can only use Rumplestiltskin's Workshop if you are currently on Grimstone Mask Gnome path.
Sea Monkey's quest tracking. Adds corralUnlocked to track whether Corral is available. Grandma only available once rescued. bigBrotherRescued now set when reading quest log.
Missing sea tracking update.
When reading Macguffin Diary, submit a RelayRequest in order to suppress the
Fix that last submit
Can only redeem Game Shoppe credit out of Hardcore/Ronin. When you rescue Big Brother or Grandma or get a copy of Worse Homes and Gardens, refresh concoction list.
Don't lower-case location when parsing response from Florist Friar.
Make a few local methods private.
Florist: modifiers now say Monster Level: +30 rather than Monster Level: 30.
The latter is the equivalent, but the former is our convention for additive
A couple of Florist plants were commented out, for now reason that I could see.
Boris's Helm gives MP regen.
Add durations for Hot Dog Stand Hot Dogs and Speakeasy drinks. Show price for Speakeasy drinks in Maximizer. Only restrict verbose information in Maximizer by number creatable/ in inventory in Hardcore/Ronin for physical items.
In verbose Maximizer, only show uses remaining for truely limited items. Items limited by inventory show up as number in inventory, and numbers creatable show up as number creatable, so summarizing this is unnecessary.
Refactor mall searching.
If you don't want to limit your search, include x_cheapest=0 in the request;
otherwise KoL itself will limit you to 10 results.
When searching the mall for use by the "buy" command and similar places,
do not hardcode a limit of 10 result; specify 0 and concatenate all the
pages of results into a single list.
fix getting mall prices
Drill sergeant drops flask flops.
Protect against race condition in ItemDatabase.saveCanonicalNames vs.
Support for casting Summon Confiscated Things
More support for casting Summon Confiscated Things
chat scripts need to synchronize on the Interpreter object, since that class is
very much not thread safe.
New items and effects
Add support for Mom buffing. Lion Oil and Bird Rib drops no longer conditional. Recognise successfully using a Grimoire.
Fix for Mom buff disabling after use.
Fix parsing when using Summon Confiscated Things
You can no longer get the top menu style from api.php?what=status. Therefore,
deduce it from the responseText.
If you have the "fancy" topmenu, it redirects to awesomemenu.php. Follow that
Tweak the quick scripts menu we generate if you have the "compact" menu.
Fix multi-purchasing from Coinmasters with no count field
Move topmenu decorator into its own package. Include Quick Scripts menu (if
enabled) on all styles of top menu, not just the "compact" (dropdowns) style
Fix typo which made Mom food buff always an option for hot resistance.
Report failures to get a buff from Mom. Fix tracking of quests from conversations with Grandpa.
Added additional step to pirate quest, so getting fledges is now step 6, and opening Belowdecks is Finished. Reading of step 6 from quest log and setting to finished with Swordfish is untested.
Untested. As BeanstalkPlanted and BeanstalkArmed were not accessible by scripts, and redundant now Jick has added it as step one of the GARBAGE quest, remove that code and change to use GARBAGE quest progress.
Correct some skill durations. Add ash commands adv_per_cast(skill) and soulsauce_per_cast(skill).
Changed function names to adv_cost and soulsauce_cost.
Do a better job of inserting KoLmafia script menus into the topmenu
Parsing of position of wheel in pyramid.
Only include script dropdowns on "normal" and "compact" topmenu styles; "fancy"
(icon) topmenu doesn't get access to relay scripts, for now.
Add sewing kit to coinmasters.txt
Mushroom Wines made from Fun-Guy mushrooms need Superhuman Cocktailcrafting. Mushroom Pastacos needs Transcendental Noodlecraft.
Record date last Ultimate Mind Destroyer obtained in umdLastObtained. Annotate choice in the relay browser to say what you're getting (will only work if umdLastObtained isn't null. In 7 days time we can change that, as null will mean >7 days, whereas today it means we don't know).
Pirate quest tracking updated.
On login (or session refresh), look at your profile to determine your clan
name and ID, rather than depending on the top menu to say if you are in a clan.
Since dusty bottles of wine are no longer used in the Level 11 quest, a lot of
got has become obsolete. Remove it. Also, dusty bottles no longer vary in effect
every ascension, but now have constant effects, regardless of glyph. Deal with
When creating a COncoction, if it is has in itemId, use the official data name
of the item as the concoction name.
Filter out un-trendy familiars for Buddy Bjorn as appropriate to your path
Fix infinite recursion when using PullBudget spinners. Refresh concoctions in
a new thread, not in the Swing thread.
Nemesis quest tracking update. Not 100% tested.
When ConcoctionDatabase has pulls budgeted, non-trendy items should not be
considered as pullable.
Do not include Songs and Expressions in the generic Self-Only skill list.
Don't cast spells in a mood that you can't cast.
Temporary work around for printing strings that start with "/" in ash, avoiding Java bug.
Better workaround for java bug
Move KoLCharacter initialization that allocates AdventureResult objects AFTER
the initialization of KoLCharacter variables that ItemDatabase depends on.
When you use ASH print functions, do not convert < to HTML entities before
writing to the session log, since that is needed only for writing to the CLI
In relay browser:
When giving lack of ultrahydrated warning in Desert, include link to Oasis.
When adventuring in Top of Giant Castle with a Mohawk Wig that you aren't wearing, when you haven't completed the quest, give warning including link to equip it.
When adventuring in Billiards Room without enough Pool Skill to guarantee a win, put a warning. If you have a pool cue that isn't equipped, provide link to equip it. If you have hand chalk but not chalky hand effect, provide link to use it.
Link back to Copperhead Club when Snake drops that Shen wants drop.
Initialize Ascension path early in KoLCharacter. Initialize Modifiers at end
LockableListModel and SortedListModel are now template classes.
For many such objects, declare the type of objects that they will contain.
Define the element type of many LockableListModels
Still more LockableListModels and SortedListModels specify their element type
More element typing in lists
Detect when clan changes, reset information, and update hot dog / speakeasy data.
Allow adventuring in Lower Chamber. I can't fully test til tomorrow.
If Lord Spookyraven is not yet defeated, but is available, you can adventure in Summoning Chamber. Recognise server response if you try to adventure in a location that isn't yet available, but which does tell you this.
Simplify PyramidRequest. No longer need to render a picture in the choice adventure, as KoL provides it. Nothing to parse as it's handled in QuestManager. Only have some little utilities. Fix reporting which chamber setup you are visiting in Lower Chamber.
Removed code relating to removed Choice Adventures in Spookyraven.
Remove lastManorUnlock as it no longer is unlocked, and lastGalleryUnlock as it now unlocks by quest progress. Remove checks for adventures that unlocked them as they no longer exist.
Only set current Clan when you do a Profile Request for yourself. When running checkprofile, use the clan of the profile you are checking, not your own. Effectively reverses some changes in Revision 11212 from June 2012.
When eating or drinking from Restaurants (Hot Dog Stand, Speakeasy, Chez Snootie, MicroBrewery, Hells Kitchen, Crimbo Cafe) via Item Manager, check for PvP stone break, Milk (etc), Ode, Overdrinking as appropriate.
Add default preference for Off the Rack
Quest tracking for Temple Quest and Shirt Quest.
Remove currentFullness and currentSpleenUse, since those no longer need to be tracked between session
Creating a tin cup from a fancy tin beer can is an MUSE recipe, not an SUSE
Fix concoction entry for ballpark hot daub.
Fix runnable in event thread when using familiar item lock checkbox on the
Gear Changer, as well as all sorts of other glitches with tracking locked
When clover protection is active, ten-leaf clovers purchased from the mall
automagically turn into disassembled clovers. Account for that when deciding
whether you've purchased the desired number of clovers.
Ifnore $item[ none ] in ASH add_item_condition() and remove_item_condition()
Fix typo in Desert warning.
The PYEC is not multiusable.
Do not remove items from inventory if they are reusable as a secondary usage.
When the ItemFinder looks for an item in a specific list - inventory, stash, etc. -
if it doesn't find the required amount, give an error
Revisit Pyramid Parsing/logging/automation. Tested most combinations. Add two new helloween candies.
When ASH looks up item names, don't restrict to things in your inventory.
Default to searching all rather than Inventory when looking up items if not specified. Only give an error message if you haven't found enough when searching a location.
Recognize successful mall purchases when in run
Perform Major Whackage on ItemFinder to make API more rational
If searching for items without specifying the list, if the count is negative
(which means "all but that many") or "*" (which means "all"), look at items in
the inventory to decide how many to use.
Fix buying from NPCs while in run
Since clover protection only kicks in for items arriving in inventory, no
need to worry about it when purchasing ten-leaf clovers when you cannot
interact, since they will end up in storage.
AdventureResult.getCount( List) now lets the compiler enforce that the list
contains only AdventureResults.
When making a purchase, if we are automated and not allowed to purchase from
the mall, pre-scan the list to find the first NPC store with the item.
(This is currently moot, since the NPC store will always be first, but I think
that is a bug.)
Sort mall search results that are returned by StoreManager.searchMall so that
NPC stores get inserted into the correct place and that stores with larger
stocks appear before those with fewer items at the same price.
The compare function for a PurchaseRequest needs to use this.getPrice()
rather than this.price, so that subclasses can override it.
When sorting Purchase Request objects, no special check needed to put NPC
stores ahead of PC stores if you are in Hardcore; we will prefer them in any
case because the available quantity is better than any PC store.
If desired, the Relay Browser will now suppress potential malware
Multiusable items, plurals
changed item names. plurals.
Clearly label the "Item Acquisition options that apply only to automated item
Heavy Rains path name
Change "buy" command as follows:
- If you are in Hardcore or Ronin, purchase only from NPCs. Unless:
- "buy from storage xxx" will purchase only for mall stores using storage Meat
- If you are out of Ronin or in aftercore, purchase from cheapest NPC or mall
Fix PurchaseRequest to always use this.getPrice() rather than this.price, so
if you can afford the discounted price of an NPC item but not the full price,
the purchase is still allowed.
Boss Bat and Bonerdagon items have changed. Fix concoction.
Fix regex to recognize Avatar potions to exclude Surgeonosity items
Properly log the start of a Heavy Rains run
Add a few Heavy Rains objects
Add path() function to ModifierExpressions. Use it for Fishy, Oily.
Add some support for using a few of the Heavy Rains skill-granting items
Some Heavy Rains items
Fix path() modifier expression
Handle calling fight.php and choice.php directly when not in a fight or choice
buy_using_storage( count, item ) and buy_using_storage( count, item, limit )
Components of the badass belt are not quest items any more. Additionally, the
ingredients have changed. Autocraft badass belt if you find the new ingredients
after combat only.
More Heavy Rain items found in mall
Prioritize the miniature life preserver when switching to a familiar without equipment on, when in a Heavy Rains run
Add counters to track the window when Heavy Rains monster will show up
Add some tabs.
Add giant rubber spider and rubber cape concoction.
You don't need a wand in Heavy Rains
Heavy Rains skills
Ignore special monsters from Rain Fax
Send all autoCrafting through ResultProcessor.autoCreate.
quantum egg and intragalactic rowboat are obsolete
Belch the Rainbow
Automatically use Lady Spookyraven's telegram after ascending. Add a setting, "autoQuest" (enabled by default), to control this and auto-reading of the mortar-dissolving recipe.
Heavy Rains item. Belch the Rainbow comes from using a beautiful rainbow.
Use localhost instead of 127.0.0.1
Add most Heavy Rains bosses. Do not give a MCD warning for Heavy Rains bosses that don't have special drops.
As before, create McClusky file in postChoice, not when detect binder clip
via item acquisition
Some Heavy Rains quest tracking additions.
Basic Thunder support. Not all tested as I only have one skill which doesn't work out of combat. Doesn't work with automation as thunder does not yet appear in the API. Added ash commands "my_thunder()" which reports current level and "thunder_cost( skill )" which reports thunder oost of skill. Does not report thunder in mafia side bar.
Add my_rain(), my_lightning(), rain_cost( skill ), lightning_cost( skill ). Update thunder, rain, and lighting from api.php.
More Council text recognised in Heavy Rains
Fix for lightning tracking
Allow the Entrance to the Forgotten City and the WUmpus Cave choice adventures
to be configured in the GUI. Your choices for each is to show in browser or skip
Rainbow Gravitation now costs 0 MP.
Add recommended_stat as a proxy value for locations. Most locations don't have a value yet, which is represented by a default of -1.
Add quick scripts menu to the icon topmenu, below the minimoons
Do not specify class="button" for the Exec button; system default style is fine
Add quite a lot of recommended stat levels for zones (based on spading at a high level with 1 mainstat).
A handful more stat requirements
filet of The Fish
More Heavy Rains items
Add Freshwater Fishbonery as a Coinmaster
Add some 0 stat requirement areas. Add Water Level as a modifier. Water Level modifies monster level. Report environment, recommended mainstat, and Water Level (in Heavy Rains) in Location Details.
It's Water Depth, not Water Level. Also, water depth is 0 underwater (I know, I know).
If location is null, don't create debug log and errors. If location is none, it has no depth.
Added Water Depth override. Null locations or locations without environment now default to depth 1. Override only known to be needed at Mist Shrouded Peak so far.
Move clover adventures into encounters.txt. Report clover adventure name in Location Details.
More Heavy Rains Council tracking. Fix clover protection and remove some redundant clover code.
Disable the Weapon and Offhand slots in the Gear Changer in Fistcore
Don't cancel/restart Rains monster counters if the monster in question was created by using Rain Man (untested). Lower Chamber and Summoning Chamber are base depth 2.
More Heavy Rains Council text quest tracking.
Bugbear Pens -> The Bugbear Pen
And another one! (and I love that text)
Track killing Heavy Rains final boss.
Count number of times Belch the Rainbow has been learned in preference skillLevel117. If you've already used one or more, you'll have to set it manually at present. Untested.
Some more quest tracking bits in Heavy Rains, revised some depths.
Thunder Clap is not an all-day banisher
Goblin King's Throneroom is Depth 6, not sure if there is a stat recommendation, probably not as it is not an adventure.php zone and I've only seen stat recommendations in those.
More informative message when attempting to adventure in sewers without items. (Only lightly tested).
Hmm, tavern cellar was depth 5 and 1 yesterday, I got a note it'd been fixed and now it's depth 6.
As might be expected, Cyrpt Boss is at depth 6. You can't tell from the image, but it shrugged stun at 0 ML.
Untested. Ignore fights with semirare etc monsters created by Rain Man skill.
Refactor ignoring semirare/etc monsters from Rain Man
Hey, it's apparently Water Level, depth on the monster mouseover is the bug, so changed it all back again. Relearn skills after prism break in Heavy Rains (untested). Set initial Rain Monster window counters for turns 9-11 (untested). Clear Rain monster (and Bee) window counters after prism break (untested).
Change handling of restricted check when breaking prism as flag originally used is reset during process.
fishbone belt. speakeasy drinks.
Smile of Mr. A has a new skill number. warbear exhaust manifold has a variable
effect. Lots of old IOTMs are now Free Pulls.
Do not block the GUI when updating mall prices from the database
Some items are now multiusable
Since Heavy Rains gives you skills, refresh skills even after the path is restricted
Show actual monster level (rather than water level adjusted monster level) in brackets in sidebar after total monster level. This is what determines Cellar and Oil Peak monsters (and maybe nothing else).
Add location proxy record for water_level which shows base water level unadjusted by effects/items equipped.
Change initial rain monster counter to 8-10.
Item descriptions no longer take Sauceror class & skill into effect when
reporting effect duration of regent potions.
Hippy Quest council text in Heavy Rains. Some monster stat updates. Temporary override for The Enormous Greater-Than Sign depth til requirement spaded.
Since The Smile of Mr. A. no longer appears on the Char Sheet, if the player
has any Golden Mr. Accessories, add the skill to available skills. Also do
that when the player acquires her first Golden Mr. Accessory.
The Temorary Lycanthropy effect (from Blood of the Wereseal) gives you a non-
integral percentage boost to Muscle. KoL truncates that value when generating
the effect Description, but actually uses the full value when adjusting your
Muscle. Note that it does NOT round the percentage value before applying it,
contrary to what the Wiki says and what KoLmafia previously did.
Remove extra spaces
Fix enable/disable of weapon/offhand slots in Gear Changer when not in Fistcore
Don't produce debug log if best in slot is nothing when doing maximization.
Add "test speakeasy" command which will do speakeasy processing the saved
response text from visiting the speakeasy
Add the last Speakeasy drink, and track the demon name used to unlock it. Quest log parsing of the last demon name will come once there is something to parse.
Add -current keyword to Maximizer. This will not consider currently worn equipment, speeding up maximization considerably, but may sometimes suggest changing equipment which doesn't help you (or hinder you).
Add three missing monster phylums.
Add Folder Holder and Ice House to Common stuff you didn't do at Astral Gash. Add some recommended stats.
Untested. Recognise success using Beautiful Rainbow.
Some more recommended stats, a fish monster stats
Last data for rains monsters. Guess at meat drop based on a simple progression (all their other stats have one), and my meat gain so far. If someone does more accurate spading and shows it to be wrong we'll revise it.
Only adventure.php adventure zones have recommended stats.
Recommended stats for The Enormous Greater-Than Sign.
Don't show slot if maximizer thinks you should replace nothing with nothing.
Show strategy chosen for CCS, not monster name.
The LARP card does not give you a discount in the speakeasy.
Some war minimum stat recommendations
Since speakeasy drinks have item numbers (although they cannot be in inventory)
use the Concoction associated with that item number, rather than making a
Remove rock/jam band flyers from inventory when they are used after the war is done
Let speakeasy drinks be consumed from Item Manager again.
Simplify concoction calculations for speakeasy drinks, since they are initialized with the correct total available.
Speakeasy drinks are virtual items. When you drink one, log it as
"drink xxx" rather than simply "Visiting Speakeasy in clan VIP lounge"
As Speakeasy drinks are now items, move checking for maximum uses available from Maximizer to DrinkItemRequest. Add Ish Kabbible adventures.
Remaining war min stat recommendations
Don't generate an NPE when creating an override for a new area.
Twitch zone and monsters.
Handle reducing Chroner / Mercury Blessing count with appropriate actions during Twitch Non-combats.
Chroner trigger and cross
Use the chroner trigger and cross during breakfast
[GL|M|R|S]iators are generic monsters with custom names
Roman monster images
more twitch items
When looking at speakeasy, parse remaining drinks first, before getting
set of available drinks. It is also "one more drink", not "one more drinks".
Handle the comma in Chroner count in shops
Fix Valhalla Decorator when folder holder has empty slots
Add hidden "verboseSpeakeasy" setting to allow verbose logging of visiting
the Speakeasy in the Clan Lounge.
Speakeasy drinks do not require turns to consume
CharPaneDecorator now iterates over an array of TurnCounters, rather than the
Make TurnCounter package thread safe
Sort counter array after it has been extracted from synchronized variable
Track completed Heavy Rains ascensions in heavyRainsPoints