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.
Fix item parsing bug
New Mr. Store items
Crimbonium Mine and Camp
Basic (ie not Adv/stats) data for gamma nog and neutron lollipop
(educated) guess at drop rates in new zone.
Wand of Nagamar is now a quest item
When you win a PvP fight, don't incorrectly parse user messages for items gained
More Huggler Radio messages
Track which BittyCar you have used today in _bittycar
Remove a stick of minin's dynamite when mining uses one. Untested
Since KoL subscription links cannot work through KoLmafia, make them unclickable
Xiblaxian Residence Cube support, untested.
Add summon proxy field to skills.
Advent Calendar food
gamma nog and neutron lollipop stats
Recognize Currency Exchange transactions in Mr. Store
Some consumption spading.
Parse familiar actions in fights to recognize item and Meat gains
Rain Dancin' works outside of Heavy Rains
Match "A hidden surprise!" notes with line breaks
ComboBoxes can have a selected index of -1. The Daily Deeds panel should not
take an ABE when such occurs.
Trim out empty spans from chat messages
Crimbot Factory items
flask of tainted mining oil. Add comment to modifiers.txt for Crimbo Credit
More Crimbo items
efactor CoinmasterData: there is now a buyURL and a sellURL (allowing two
different shop.php) and there is now a sellItems list of AdventureResults.
Added the skeleton of a Crimbo14 Coinmaster.
Don't remove schematics unless they are successfully used.
Fix item removal for sneaky wrapping paper
mining oil, tainted or not), is multiusable
maximum casts for Rainbow Gravitation now checks accessible items, not only
inventory, and will now retrieve the wads from stash, closet, or stash, if
those sources are "accessible" to you.
Crimbot Power !
Can walk away from Build a Crimbot!
Add Crimbot Crimboutfit and toy Crimbot skills. No outfit bonus yet revealed.
Add Summon Holiday Fun! to breakfast
Provide infrastructure to allow a particular coinmaster to deal with multiple
currencies, by returning an appropriate AdventureResult with item/count
associated with a particular bought or sold item.
Add buttons to the Mr. Store coinmaster in the Coinmasters Frame to convert
between Mr. Accessory <-> Uncle Bucks.
Display current Uncle Buck count in the title bar for Mr. Store.
Add Crimbo 2014 coinmaster
Crimbot schematic plurals
Remove a fuel rod from inventory when you build a crimbot
Parse item names in coinmasters.txt as AdventureResults.
When parsing Mr. Store inventory, notice the currency for each item. The
Coinmasters Frame now shows each Mr. Store item with the correct currency and
enables or disables it depending on whether you have enough of the specific
currency required to buy it.
Fix tab in modifier. Fix location of choice adv for adding machine.
No NPE when parsing a response from a coinmaster with no shopid
Crimbo skills added.
Make purchaseable Crimbo 2014 items return true for is_coinmaster_item()
Fix the CoinmasterPurchaseRequest to handle different multiple currencies in
a single coinmaster
The Coinmasters Frame now lets you buy something using a secondary currency
Move autosatisfy and breakfast preferences from GLOBAL to user
Flasks of (tainted) mining oil can only be used 100 at a time
Add 2 dirty Crimbot ROMs
In the Purchase Summary line of the Mall Search Frame, correctly pluralize the
item being bought and correctly name (and pluralize) the currency being spent.
Add rest of Crimbot schematics
Add familiar hatchling to the crimbo shop
21st Dec Advent item
Choco-Crimbots use the chocolate counter
Fix plural for Crimbot schematic: Rollerfeet
When resetting global daily settings, look in list of global settings, not user
Ignore bogus "I am a fish" WIki plurals
Crimbo Plurals and Tiny Plastics
Parse the Crimbo Shrub's decorations when logging in, account for stat gain tuning and count progress toward a PvP fight based on those decorations. Decorations are not yet tracked when they are changed.
Clean up the Mini-Adventurer expression with the new pref() syntax
Update Crimbo Shrub decorations when you change them
Track whether you have decorated the Crimbo Shrub today in _shrubDecorated
Fix PvP fight progress for Crimbo Shrub
Crimbot Power -> Crimbot Outfit Power. Add last Crimbo advent calendar items.
Add Crimbomega award. Eationalize "noted" for PvP fight generating items.
Add WikiUtilities module to deal with looking up stuff on the WIki. For now,
it just has a utilitiy to return the URL of a page. Make ShowDescriptionList
and DebugDatabase use this.
checkplurals no longer prints "default" plurals (i.e., item name + "s") for
items that you have in inventory for which it can use api.php
Add Wiki Name modifiers for Item #13 and zmobie
When converting names to Wiki names, simply omit # characters
Add a few Wiki Name modifiers. Strinp out italic markup when getting WIki URLs
Fix Wiki lookup for 5 problematic items
Throne familiar effects
outfits.txt now has a column to hold the outfit image (tatto).
checkoutfits now outputs outfits.txt, much as checkitems outputs items.txt
The Wiki does not require - and, in fact, does not reliably work - URL encoded
punctuation. Therefore, WikiUtilities no longer URL encodes
Fix some plurals and multiusability
Remove unnecessary indirection from user-submitted URLs.
More equipment can give blindness for the Falls From Sky hard mode fight
Fix ShowDescriptionTable to use WikiUtilities. For items, Wiki lookup must use
the data name, not the annotated name.
red and green rain stick
Improve logged output when you spy on parents through the portal to include sins
If you have a Spinning Wheel in your workshed, use it during Breakfast.
Add ASH functions:
string [int] all_normal_outfits() -> returns map out all outfit names index by
string outfit_tattoo( string name ) -> returns image file name of outfit tattoo
Add missing message to RumpleManager
When deterining whether we can craft, we use ConcoctionDatabase.getFreeCraftingTurns(). Therefore, use that same function in deciding if we need to autoRepairBoxservants.
Some items. Standard is path 22.
Antagonistic Snowman Kit & iceSwagger
Allow sushi creation again
The Crimbo Shrub has no annotations to show if you don't have PVP decorations
Updated copyright notices to 2105
Today is both a Loathing holiday and an Earth holiday. Both holidays are given
by HolidayDatabase.getHoliday(). Therefore, users of that information need to
use contains(), not equals().
New choice adventures in Castle Ground Floor and Black Forest. new quest items
When rendering list cells, use List.selectionForeground (if selected), rather
Fix 1 more renderer to deal with color of selected items better
Set settings that determine whether each seasonal item is available in the
Swagger shop whether or not the item is available in the current season.
Parse Chateau furniture when viewed and at login. Make it available through get_chateau(), and handle modifiers for the ceiling items.
Add chateauAvailable to track whether you have it (currently only updated by visiting the Mountains), chateauMonster to track the monster in the painting, and _chateauMonsterFought to track if you have fought it.
Recognize that painting fights are not semirares.
No handling for the shop currently.
Recognize telescope output again, and store it as before. This isn't actually used yet.
There is no way to recognize more than 5 telescope pieces, but if telescopeUpgrades is set higher then it will not be reduced.
Update chateauMonster when using an alpine watercolor kit
There are multiple URLs for Chateau resting
Conspiracy Island. Track control panel daily usage in _controlPanelUsed. Track omega level in controlPanelOmega.
Add ASH holiday() function
Remove ascension reminders for getting an easter egg balloon, and for blowing up a chef/bartender
Update telescopeUpgrades when looking at Starry-Eyed
Recognise "That item is too old to be used on this path" when eating, drinking or spleening. Untested as I'm not in a Type69 path.
Do not show currently restricted consumables on the Usable tabs in the
Fix (hopefully) Omega tracking
Marked star chart reusable so it is only used up when something is made with it.
Chateau Mantegna consumables.
Don't leave KoLConstants.java modified if Java compilation fails
World's Best Adventurer sash & Confidence!
Handle ice steins and ice-cold six-packs
Fix arena parameters for Mini-Crimbot
Standard is path 22. When use ice steins, retrieve sufficient ice-cold six-packs
Wine Cellar Drop Rates
In the restricted list, Swimming Pool => Clan Swimming Pool
Simplify retrieval of best buffing tool in Hardcore/Ronin; do not unequip it
if it and a weaker tool are both equipped.
Rumplestiltskin's Workshop is now a place.php location. Log it correctly.
RumpleManager now decorates the workshop in the Relay Browser to remind you
what you saw when you looked through the portal and what advanced materials
are needed for each item you can offer to them.
When we visit Chez Snootee or the Gnomish MicroMicroBrewery, the daily special
can be an unknown item. Register it.
The (awesome) food quality is not a modifier, even if it is blue in the desc.
Add bowl of topioca
Fix completion of Bat quest by fixing council text.
Parse reanimator parts when you equip it, regardless of how.
porcelain police baton
Cosmetics Wraith is in Bathroom
Clear RelayAgent's error request whenever adventure, fight, choice, or place is
SpecialOutfit.pieces is now a TreeMap so that items are ordered by slot.
If a new item is part of an outfit, register the new outfit
Add items and outfits for the Noram & Hardcore Standard Ascension rewards
Track Xiblaxian holo-wrist-puter drops in _holoWristDrops, and progress toward the next drop in _holoWristProgress.
When deriving pulverization data, look up modifiers with data name of item
When you drop the weapon in your prime hand, you also drop a weapon in your
topiary nugglet items
Don't assume that image paths start with https:// when loading HTML in to a
RequestFrame. Item Descriptions do not have that, for example.
Accommodate change in Terrarium HTML
Add Aggressive Snowman Kit, Summon Carrot, Aggressive Carrot, and so on.
3 choice adventures in the new lair have only a single choice.
Type69 -> Standard
Missed Type69 -> Standard file
Remove star hat and weapon from default goals for Hole in the Sky.
ASH get_campground() now includes your current dwelling.
The "picture of you" is a known dwelling furnishing.
Maintain a list of "transient" dwelling furnishings which are destroyed when
you change your dwelling.
Remove your current bed when you change your dwelling.
Speed up terrarium parsing.
Track opening of Conspiracy Island Shops. Opens appropriately when visiting bunker (tested), should open when keycard is used (untested) or bunker door clicked on when keycard in inventory (untested) which should also remove keycard from inventory.
When you break Ronin in a restricted path, you should get your terrarium back
Maids are not transient dwelling furnishings.
Calculate hasResult based on the full URL string. Do it only once, when the
final URL is already known.
The topiary nugglet is not "usable" via inv_use.php.
Mazel Tov! has only one choice option and hence has a default of 1
Add spoilers to the 8 rooms of the Hedge Maze where you go left or right
Remove a bunch of dead code from SorceressLairManager.
The "telescope" command now decodes what it sees at the new tower and prints
Very preliminary monsters from new Sorceress lair
When you look low through your telescope, save settings nsChallenge1 through
nsChallenge5 with the string representation of a stat or element
parse the response to skillz.php the same as a response to runskillz.php
Add image for Shrub skills
All locations in the Naughty Sorceress's Tower in which you can fight a monster
are now adventuring locations and log reasonably.
When you insert a key into the tower door, remove it from inventory.
Since the build.xml declares Java 5 compatibility at the source level, ensure that LockableListModel still compiles under JDK5.
If you are suddenly logged out (from logging in at another computer, perhaps), do not let chat requests log you back in
Add a new section for breakfast skills where being in-run is not relevant to using them. Currently only has Summon Annoyance.
Add "test adventure URL" CLI command to see how we translate the given URL
Add Strongest Adventurer Contest and Hottest Adventurer Contest - and the other
stats and elements. Choose the correct one, based on nsChallenge1 and
nsChallenge2 settings, as determined by telescope.
When visit the contest booth (choice 1003), parse text and set those settings
Add various Adventurer Contest monsters to their respective locations.
Ditto for Hedge Maze and Tower monsters.
Track which keys have been used on the Sorceress Tower door in a setting:
Automation of Paranormal Test Lab
New skill numbers for bookshelf skills
More skill number updating
Temporary fix for bookshelf skill casting
Fix use link for star chart. Create use links for freshwater fishbones and
box of old Crimbo decorations is reusable
Recalculate modifiers when you change something in the chateau
Protect against empty responses to chat requests
Better logging for actions in the Chateau. Register it as an NPC shop
When you buy a room furnishing in the Chateau Gift Shop, it doesn't actually
enter inventory. Add it to the list of Chateau furnishings and remove any items
it might have replaced. Recalculate modifiers when you do so.
Simple visits to NPC shop.php do not need to log the URL.
KoL sometimes uses "chateau_rest" and sometimes it uses "cheateau_rest".
Log all rests in the Chateau bed with the turn number in the run, since we
cannot tell from the submitted URL if it will be free.
Add "restUsingChateau" setting. If true (the default), this will use the
chateau, rather than your dwelling, for the "rest" (and "rest free") command
and for the "free disco rest" options in HP and MP restore lists
Setting _chateauDeskHarvested trakcs whether you have looted the item on your
desk yet today
Detect correct URL for sorceress fight and the prism, given new sorceress lair
Remove a lot of dead code relating to the old Sorceress Lair.
Hardcore PVP warning detects new prism URL. Untested
Missing wand warning given before Magic Mirror and Sorceress Fight. Untested.
More sorceress contest monsters. Clicking on Chateau ceiling or nightstand
need not log the URL.
Since there are more sources of free rests, change name of HP and MP restorative
from "free disco rest" to "free rest".
Preemptively assume that if you use a universal key in the Tower Door, the
response text will contain the string "universal key".
Add Topiary Nuggletcrafting Coinmaster
Since the "fishbones" shop was my model for the "topiary" shop, and it was
missing a few missing checks to register properly, fix both shops
When you speculate about a familiar, speculate about the familiar you actually
own, not about a hypothetical 1-lb. familiar of that type (unless you don't
actually own the familiar, in which case a 1-lb. familiar is dandy.)
Add plural for polyester pettipants. Decorate desert exploration with progress
Fix wand and hardcore PVP warnings. Fix setting challenges when visiting the
registration booth at the Sorceress's tower
Add new FOTYs and their familiar items
Tales of Spelunking
Some IotY Familiar stuff
Tales of Spelunking and Powdered Gold drop tracking.
Powdered Gold is not multiusable (yet)
Rooms 2 - 9 of the Hedge Maze are "deferred choices" which get individually
logged with adventure numbers, much as choices in the Gourd's Psychoses do.
Some Spelunky Stuff
Guess at shotgun weapon type
Speluck and Spelunker of Fortune
Set the default for choice 1003 to "4" - which collects your reward, if you have
won all of the Adventurer Contests, and otherwise acts as Manual Control.
If a weapon does not have a type, EquipmentDatabase.getItemType now returns
"weapon" rather than null.
If a combat leads to a choice adventure, continue deferring use links
rusty staff needs weaponsmithing, not armorsmithing
black labels are auto-used when drinking base booze
Rename "Internal Database" to "Encyclopedia".
Remove "Subjunctive KoL" since it has not been updated since before ND-13.
Don't try to pull items that are too old for Standard
Spelunker's Guild prize sack
Fix "meat" stick adventure gain.
Some Spelunky rewards, thanks to Bale/KingBobson.
Spelunker's Gear is an outfit
EVE Quest automation
Let the SorceressLairManager take responsibility for logging various visits
and choice adventures associated with the Sorceress' Tower
Make banishers match plural monsters
You can walk away from the Summoning Chamber when summoning a demon.
Put a blank line in front of "friars" and "summon" commands in session log
The Summoning Chamber is only an adventure location when fighting the boss
If you've already fought the chateau painting monster, subsequent clicks on
the painting need no logging.
Fix logging for visiting various locations on the big island
A few more Spelunky bits
Add PlaceRequest.java as a place holder (heh) for place.php requests that we
don't handle elsewhere. Provides registerRequest and parseResponse.
More place.php logging
Fix Daily Deeds display for Tales of Spelunking
Whack a lot of code to use the new PlaceRequest class
More place.php logging tweaks
Use correct choice # for The Last Temptation
If an adventuring area has no environment associated with it, return "none".
Recognize trying to go to the Mist-Covered Peak or Empty Black Market
Add buffer run_choice( int ) command. When in a choice adventure, use this to submit the selected option. With -1 as imput, it will automate the rest of the choice using existing settings.
Also add run_turn(), which will work as run_combat() or run_choice( -1 ) depending on whether you are in combat or in a choice.
When fixing links in the responseText of a specialCommand so that the
"Adventure again" link works, in addition to not munging a link that starts
SkillBuffFrame not only registers for all the preferences associated with
individual skills, but also for tomeSummons, since that affects tome skills
whn you cannot interact.
ValhallaManager defers firing Preference Listeners until it has finished
Some more Spelunky support. Detect Spelunky limit mode from character pane and API and do not do recovery, moods or mana burning. Provide limit_mode() function that returns (currently) null or spelunky. Detect upgrade perks and report in preference spelunkyUpgrades. Detect (some) unlocks and status and report in preference spelunkyStatus. Log shop transactions. Log upgrades when obtained. More items, locations and monsters.
Add "test dump_disabled_skills" to the gCLI to aid upcoming debugging
When you clear or reset all your skills, rest and update the disabled skills in
Add new Chateau desk item
When updating the combo box for the Ocean Destination from settings, create the
menu before setting the selected index
Add remaining known unlogged place.php actions
Track how many writing desks you have defeated toward getting Lady Spookyraven's necklace in writingDesksDefeated, and display it when you defeat one
Add currentHedgeMazeRoom to track where you are in the hedge maze.
Add choice spoilers to the Tower Mirror.
It's "Mr. Alarm's Office", not "Mr. Alarms's's office"
The "again" link of a fight that leads to choice.php does not look like a choice
that leads to choice.php. In either case, the simple presence of "choice.php" in
the responseText should tell us we are not ready to show deferred use links.
When we experience the effects of a trap in the Hedge Maze, remember the
element involved in nsChallenge3, nsChallenge4, or nsChallenge5; if you
failed to survive, at least we now know the element...
What the... fix a typo.
Add Hot Adventurer #2. Add PeKaJe's Chateau nag for the Astral Gash.
If you completed The Daily Dungeon outside of KoLmafia, recognize that when you try to adventure there
Auto-select correct item (if you have it) for wall of skin and wall of bones
When you find a present under your Crimbo Shrub, log who sent it to you.
Remove obsolete built-in Sorceress quest scripts from menu bar, CLI, and ASH.
fancy calligraphy pens are now free pulls
Add Cereal Arsonist to Hottest Adventurer Contest
Finish removing those ASH functions...
If you have selected an oceanDestination, when you front the Meat and set sail,
pre-fill the Longitude and Latitude input boxes with your chosen destination.
When you acquire the Spookyraven necklace, navigation link to Lady Spookyraven
When she gives you the ghost of a necklace, remove Spookyraven necklace
When you find all of Lady Spookyraven's dancing duds, navigation link to her
When you talk to her, remove those items from inventory
When you acquire the jar of baby ghosts, navigation link to Lady Spookyraven
When she gives you ghost formula, remove jar of baby ghosts.
Baby Z-Rex and Topiary Skunk are combat familiars.
Fix remembering last anticheese day.
CreateItemRequest.makeDough is now a lot smarter about making wads of dough and
flat doughs: it will retrieve from closet, as needed, buy exactly the minimum
necessary number of was of dough to either use as the result or ingredient, and
Some Spelunky Datafile updates.
When we look at the Sorceress's Tower, based on the image, set questL13Final to
unstarted, step1 ... step11, finished. Update existing code to use that scheme.
Recognise limitmode ("spelunky"), and use CharPaneRequest rather than API. In limitmode, inventory and skills are restricted to spelunky ones. Unavailable Inventory can be seen in a new "unlimited" category so you know it isn't lost! Only spelunky equipment can be seen in gear changer, and only spelunky valid slots are active. A number of spelunky tracking preferences added, including number of kills since last non-combat, expected phase of next non-combat, number of sacrifices. Transitions from normal play to limitmode and visa versa should be handled, login during limitmode should work. Spoilers added for Spelunky. In Gear Changer, weapons, hats, pants and offhands that cannot yet be equipped do now appear in dropdowns, but greyed out.
Spelunky tracking tweaks plus shopkeeper
If no Crimbo Shrub decorations are found when checking it (because it has not been decorated yet this ascension), set all non-stat decorations to blank values
Rewrite some parts of LowerCaseEntry to rely on the saved key/value rather than the underlying original entry.
Fix compilation error in Java 5, where AbstractMap.SimpleEntry is not public API.
Add new settings - nsContestants1, nsContestants2, nsContestants3 - to track
how many contestants remain in each contest.
Fix logging of the Hedge Maze choice adventures which each take a turn.
Update pregress of the questL13Final setting as you progress through the tower.
Minor tweaks to logging in various places in the Sorceress Tower.
Add arena parameters for topiary skunk
Fix location checking for quest tracking
Add a chasm link for snow boards
When you get the ghost of a necklace, add "Go talk to Lady Spookyraven on the
Second Floor link".
When you dance with Lady Spookyraven in the Ballroom, add "Go talk to Lady
Spookyraven on the Third Floor" link.
Allow using a grimstone mask to "start" a gnome game even if you didn't bother talking to the parents previously
Add chateu desk daily deed, thanks to PeKaJe
In familairs.txt, store name, not itemId, of familiar larva
If you try to adventure in the Naughty Sorceress's Tower and it does not
redirect to a fight or a choice, you can't go there. You may not be to that
point yet, or you may be past it; without accurate Quest tracking, we can't
tell. For now, simply say "YOu can't adventure there" and stop automation.
Whenever a call to place.php?whichplace=nstower simply returns a responseText
(as opposed to redirecting to fight.php or choice.php), assume it is showing
you the tower and use that to deduce where you are in the quest.
If you are past step1 in the quest, then set nsContestants1, 2, and 3 to 0,
since you have won those contests.
Each choice you take towards the beehive takes a turn. Make sure log records
Whack retrieveItem: bail early if the item is restricted, do not every buy
items made via combining Meat, etc.
Allow creation of "restricted" items, even though you cannot obtain them in
any other way.
When we look at the Tower Door, reconstruct the list of already used keys.
The EquipmentDatabase may not consider familiar items to be "equipment", but
the ItemDatabase should. Don't accidentally exclude the "familiar" radio
button in Equuipment panels of the Item Manager. When rendering items of
equipment, the hover text includes modifiers. Do that for familiar items too.
When retrieving items, do not look in equipment slots or on familiars unless
the item is "equipment".
The plural of "swagger" is "swagger". Use custom AdventureResult that
overrides the getPluralName() method, in order to enable that.
Just as KoL tells you "You acquire a clan trophy" - but it doesn't go in to
inventory, you acquire "7 Years of Bad Luck" when you shatter the mirror in
the Sorceress's Tower. It's a joke. Ignore it.
Various item drop numbers from kolspading
For choice decisions that take an extra turn - looking in to the tower mirror,
heading towards the beehive, fighting the remains of a jilted mistress - the
spoiler now includes a "(1)" to let you know that it will take a turn.
Register the fight with the mistress with a turn number & location, like other
things that take a turn.
When you find crumbling wooden wheels, give a navigation link to control room
Don't increment non-combat count when shopkeeper beaten
First cut at providing Sorceress Tower quest scripts: the HedgeMazeScript
has 4 options: traps, gopher + duck, chihuahua herd +kiwi, and nugglets.
(Only the nugglets have been tested so far). the Tower Door script will
look at the door, "acquire" any missing keys, open the locks and turn the
Only look for results in the body of the response text.
Really ignore 7 Years of Bad Luck. It's just a superstition.
Arena parameters for Golden Monkey & Adventurous Spelunker.
Don't use combat key (canonicalized name) as last monster
Roll back setting last monster name not using encounter key until I figure it
Only increment spelunkyWinCount if you actually win the fight
Whenever possible just use the real KoL monster name, rather than a munged
version of it.
Handle Spelunky tracking with Hostile Work Environment.
Use real capitalization of some monster names when checking quest progress
When calculating effect of Travoltan Trousers and Five-Fingered Discount on
NPC prices, round to an an integer rather than truncating
Monster stats (Atk, Def, HP) for contestants at the Naughty Sorceress Tower,
courtesy of Yendor
Spelunker of Fortune (used)
Take two at discounted NPC prices, since KoL will truncate them.
Fix typos for two of the tower contestants.
Provide ability for PlaceRequests to automatically follow redirects. Use that
when seeing the the Florist Friar is available and when turning the Tower Door
Fix getting a Hatter Buff; need to automatically follow the reirect to choice.php
before submitting the desired choice option.
In theory, the Secret Canadian Mind Control Device and auto-completing the "find
the Untinker's screwdriver" quest should work again.
Fix the names of the PM and DB Nemeses. MacGuffin diary and volcano map are
reusable. When you find the volcano map, give it a "use" link, not a "guild"
link. When you find either a crumbling wooden wheel or a tomb ratchet, the
use link is now "[x+y]", where x is # of wheels and y is # of ratchets.
(What you really care about is getting a total of 10 of either, not a specific
number of the one or the other.)
Fix auto completion of untinker quest
Check for correctly capitalized monster that dropped the Mer-kin lockkey
Yomama, thanks to Yendor. Fix parsing of stats in Spelunky when not buffed. Fire (skill) listener when skill gained as well as when skill lost. Several Daily Deeds now listen for (character) events, such as when we enter or leave Spelunky. As a result Daily Deeds can be considerably shorter during Spelunky (though there are still many things that should vanish in future).
When you get the secret tropical island volcano lair map, automatically use
it to open the volcano. If you found it in a fight in the Relay Browser, force
a topmenu refresh to put a "volcano" link there. Decorate the map with a "read"
link that goes to volcanoisland.php?intro=1, so you can see the introduction.
Most quest log entries for Naughty Sorceress quest now update quest tracking. Steps changed to bring them in line with other quests (step1 now started, stepN now stepN-1). Untested. Remove more Daily Deeds in Limitmode that cannot be accessed in Spelunky. Link to Altar when discovered (untested).
Set warProgress based on reading Quest log in case it is missed in earlier triggers. Lightly tested
When we start tracking a monster's stats, save the original health, attack, and
defense. When you win the fight, use those figures as its "current" figures,
for the purpose of annotating the monster in the Relay Browser.
Fix detecting usage of Jung jars.
Have a "council" link for the batskin belt and skull of the Bonerdagon, as
Wadbat hasn't logged in for over a year, so remove it from Pulverize Panel.
The Red Zeppelin ticket can be purchased with meat
Need to include password hash in uselink for hacienda key, even though it is on
Fix PvP stat loss parsing when either person's message contains " lost "
Fix the previous commit so stat loss parsing won't break for people with " lost " in their name
Remove Spookyraven toys when you get jar of baby ghosts.
picture of you is NOT removed when you upgrade your housing.
It's Lump. It's Lump. does not advance the noncombat counter in Spelunky
When determining how many turns crafting will use, take the sauceror's triple
reagent ability into account.
npc_price() of a Speakeasy drink returns the correct price for it, or 0 if you
can't get it from your clan (no clan, no VIP key, no Speakeasy, no drink...)
When you switch clans, reset clan-specific details and fetch the new clan id and
name, which will trigger looking up hot dogs and speakeasy drinks.
Accomodate variance in format of the Clan Hall
availableSpeakeasyDrink() needs to validate that the argument really is a
Fix the check for beating a black pudding
Add ash function creatable_turns, which returns number of turns needed to create it. creatable_turns(item) returns number of turns to make one item, not taking into account free crafting turns from items/skills/inigos. creatable_turns(item, int) returns the number of turns to make that many items, without taking into account free crafting turns. creatable_turns(item, int, boolean) is the same, but takes account of free crafting turns when boolean is true.
When we go to bigisland.php?action=bossfight, remember that this is an island
war fight (for the purpose of recognizing it is finished) and log it nicer.
Slight refactoring creates ClanManager.changeClan( clanId, clanName ).
Remove duplicate definition of creatable_turns
Dimemaster and Quartersmaster save lastCampVisited for use by IslandManager.
'Allo correctly logs as Hedge Maze (Room 1)
Eliminate extra logging for the hedgemaze; only the choice adventures need it.
"head toward beehive" always needs a (1) on the spoiler.
Fix NPE in FightRequest when finding bounty and last visited location is null.
Better fix for Bounty Item NPE.
Rename DvorakDecorator to DvorakManager; it already has more than a decorator in it
bottle of lovebug pheromones
Change the order of registration to let PlaceRequest come before other handlers
of specific place.php locations. This allows us to use a PlaceRequest to visit
any place, even if there is a specific class that handles it.
Choice adventure 617 now 1056.
Track lovebug unlock in preference "lovebugsUnlocked".
Improve Hidden City logging. Still not quite right, but recognizes tiles you
jump to based on response text, at least
If you require an item with Modifier Maximizer (+equip X) then don't consider other items in that slot, or outfits that would take up that slot. Makes maximization with one or more specified items much faster.
Formatting tweak for Monsters that always get the jump in Area Combat Data.
Suppress logging to simple visits to otherwise unclaimed place.php locations.
Save them in a set and show them with "test places"
Don't add items to the item pool if +equip requirement has already added them.
Tracking for evilness and oil pressure reductions from love bugs. Untested.
As always, use_item.php redirects without ajax and does not redirect with ajax.
Fix Jars of Psychoses to work with both situations.
Fix typos in Sorceress Door locks and elsewhere.
In maximizer, if you force equip a watch, treat it as a watch, not an accessory.
Refactor CoinmastersFrame to depend on listeners, rather than having non-UI
components explicitly telling it to update.
CoinmastersFrame automatically registers a preference listener for each
coinmaster that uses virtual tokens (counted in a property) rather than items
Dispatch more place.php requests
Specify number of hot dogs or speakeasy drinks drunk in session logs.
Rename and/or move some constants from GearChangeFrame and EquipmentRequest to
When processing results, do not pull out and process items wrapped with "rel"
strings first. Locate such items and process the rel string to detect unknown
items, multiusability errors, etc, but unless the item is going to storage,
defer thae actual "add to inventory" - an associated logging - for the rest
of item processing. This preserves the logged order of acquisitions.
Yet More Work on making PlaceRequest do exactly as much as it should for
logging otherwise unhandled place.php requests.
Move "equip all familiars" function from the FamiliarTrainingFrame to a new
module: FamiliarManager. Let ASH use it via boolean equip_all_familiars()
Hopefully fix Lovebug Evilometer updating
Improve logging of Nemesis battle in volcano.
Improve logging of Hidden City opening
Hopefully improve logging of beehive
Make "use * ITEM" work as a mood trigger, whether or not you happen to have any
of the ITEM when you create the trigger
When maximizing, do not remove and equip items that you intend to have equipped. Do not show maximizing options that are unavailable in Spelunky,
Remove debugging code
Stop evilness going negative. Untested.
Fix Chihuahua + Kiwi script
Remove minus sign
Some more shops now use shop.php
Fix a row number
Fix the dispensary
Unbreak stealing items from other familiars.
Guildstores and Tavern now use new shop too
Fix case on Mer-kin rustler.
Check maximum uses of specific items before checking for restoration maximum uses.
If the network gives us a null responseText for some reason, don't take an
exception while ptrying to process it.
KoL decided to have two sets of head/body sections in the response text for
creating something using your last star chart. Is that legal? Regardless, Cope.
Remove extra code for processing results of pixel and star chart creations,
since they are just normal "row" style shops these days.
Now restoration maximum is checked after individual items, ensure individually limited restorers check restoration maximum.
Allow expression effect(effectName) to also use effect(effectId). Note that this is converted internally to name as we don't use IDs as unique identifiers in mafia at present. So you may get some unexpected results if you use effectId to specify an effect whose effectName is not unique.
Lots more shop.php, hopefully all of it
More shop.php cleanup
More shop.php cleanup
Fix use link for when you get the dingy plans to buy dingy planks, not
FotY throne modifiers
Coolest Adventurer -> Coldest Adventurer
Fix logging for getting a beehive to show each step that takes a turn
Evilometer progress from lovebugs and from the monster you kill can be for different areas
Don't set Quest.MANOR to "step3" when you get a wine bomb; do it when you
actually penetrate the suspicious masonry in the cellar, using either the
wine bomb or the mortar-dissolving ingredients. Remove whchever ingredients
you used when you break through the wall.
solid gold jewel
Spleen items are now a thing. Various changes revealed by checkitems.
inv_spleen.php is now a thing, too.
Fix use links for spleen items
Armory and Leggery utensils
Add the Armory and Leggery items to the shop. Parse whichrow values and print them for new items.
Recognize spleen items used from chat
Just as we skip learnSkill for food and drink, skip for spleen.
In case anybody still cares, skip use links for spleen items with B in Beecore
Assume that spleen items are multiusable. Get the correct URL for using them.
Changes to Ccmpact Side Pane in graphical client. Main obvious changes will be lack of gaps in status panel in classes without class meters or when hippy stone unbroken, but it also only displays appropriate information during Spelunky. Also better parsing of gold in Spelunky and supression of disco combat helper if you are a Diso Bandit with Rave skills but currently are playing Spelunky.
Fix errors revealed by checkitems. Update mallprices.txt
Bump version to 16.8