Version 13.0

Veracity

Developer
Staff member
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.

Revision: 6887
Add shore.php as a URL which can generaqte clovers

Revision: 6888
Add level at which skill is purchasable from guild to classskills.txt

Revision: 6889
It is possible for inventory.php to both return a message and display our
current equipment. Parse both, in that case.
When you insert a punchcard into an El Vibrato helmet, log it appropriately and
remove the punchcard from inventory.
Ditto for inserting a punchcard into an El Vibrato Megadrone. The five cards
that work in this capacity are now usable from the Item Manager.
(We don't currently remember the punchcard state of the helmet or familiar.)

Revision: 6890
Adds data for the new pickpocket-only items that have been discovered so far.

Revision: 6891
Add Nardz energy beverage as a MP restorative option.
Add developer command "fakeitem <item>" that will add an arbitrary item to mafia's inventory. This is useful for verifying that a new item appears in the right list, with correct consumption data, etc. without having to actually acquire one. Actually using the fake item will fail miserably, of course. Does not appear in the output of "help".

Revision: 6892
Eliminate inconsistent special case handling of "mallsell" item quantities.
Negative numbers now work exactly as they do with all other item-related
commands; previously, if this resulted in exactly one item to be sold, it
would sell all of them instead.
Add ASH put_shop(price, limit, quantity, item) function, allowing you to sell
fewer than your entire stock of an item.

Revision: 6893
Whack how KoLmafia deals with visiting the guild.
- When you visit various NPCs, log it in the session log, which will make
subsequent gains of meat or items a bit more understandable.
- When you buy a skill at the trainer, deduct the meat from your inventory
- Using any of the Guild implements - Still, Wok, or Malus - from the Relay
Browser should correctly handle your inventory of items and your daily count
of Still usages.

Revision: 6894
Don't give "create" links to broken wings, sunken eyes, or spooky fertilizer,
since they essentially always are better served with a link to a map.
Fix attack rating for the gaudy pirate

Revision: 6895
Make local image replacements work properly from the mini-browser in the
Barrel full of Barrels and the wartime/post-war Island.

Revision: 6896
More new pickpocket-only items. Note that pasting of arbitrary items with
unstable quarks is not yet supported, and the software glitch looks likely to
cause some REAL glitches if used from mafia. These will probably not be
fixable until the items are more readily available.

Revision: 6897
Don't perform special-case handling of "use" and "cast" mood actions if there
is more than one command in the action.

Revision: 6898
reorder skills numerically

Revision: 6899
Fix typo

Revision: 6900
Add some new items to equipment.txt

Revision: 6901
Make glass gnoll eye usable, and add it to the list of items used during
breakfast. You can get a free breath mint every day, and that's gnoll eye!

Revision: 6902
Phase 1 of a new feature for tweaking combat behavior without having to
constantly edit a CCS. A Special field has been added to the Adventure
panel, between Action and Goals: it contains icons for the enabled special
actions, each with a tooltip explaining exactly what it does. Clicking in
this area pops up a menu for selecting and configuring special actions. The
four actions implemented so far are:
* Pickpocket before simple actions - on by default, giving the previous
behavior of automatically trying to steal when it seems appropriate. Can now
be turned off, for example in Hobopolis where the determination of
appropriateness doesn't work quite the same.
* Cast Entangling Noodles before simple actions - allows a much wider range
of useful strategies to be set without having to create a CCS, and still
allows the benefit of an automatically set auto-attack.
* Minimum poison level for anti-anti-antidote use - this is a sub-menu for
selecting the threshold at which an antidote will be used in combat. Note
that there is not yet any attempt to ensure that you have an antidote in
inventory; doing that intelligently will require knowing which adventure
locations have poisonous monsters.
* Use MP restorers in combat - if turned off, any skill which you don't have
enough MP to use will simply be skipped. This will result in combat being
aborted if no following actions are capable of finishing off the monster.
Some of the forthcoming special actions will require specification of the
combat round in which they are to be performed; this will be done
automatically for simple battle actions, or via a "special action" line in a
CCS. You can add that line to a CCS now, and it will automatically be
present in a newly-created CCS, but it does nothing yet. Also, there is a
new "skip" action that can be present in a CCS, explicitly doing nothing;
there's no reason to actually enter that in a CCS, but its availability makes
some of the internal workings cleaner.
Clicking "script" in a relay browser battle no longer forces use of a CCS - a
simple battle action constitutes a usable script (and is, in fact, the
strategy the user most recently specified).
Birdform's "look for shiny objects" action is now treated as entirely
equivalent to pickpocketing; it will be used automatically under the same
conditions as pickpocket if a simple battle action is selected, and can be
requested via a "steal" action in a CCS.

Revision: 6903
Initial support for The Dive Bar: monsters, items, effects, skills, recipes.
Consumption data for new booze based on my own limited testing; will update
later after more people have submitted their findings to the Wiki.

Revision: 6904
Make the skills granted by the haiku katana eligible to have stationary
combat buttons.

Revision: 6905
New items and recipes and such

Revision: 6906
Phase 2 of special combat actions: adds actions to identify stone spheres and
bang potions by using them in combat. The potions you have the most of are
identified first, to maximize the chances of you being able to use that
knowledge.
These actions require a "special" line if you're using a CCS; typically this
should go after pickpocketing, Entangling Noodles, and any other preparatory
actions, but before anything that's likely to kill the monster. If you're
using a simple battle action, there is an implied "special" after any
specified pickpocket or Noodles action, before the battle action itself.

Revision: 6907
Fix in-line single-use links.

Revision: 6908
In-line use linke for multi-usable items with more than one in inventory now
behave like KoL's "multiuse" links: you are prompted for how many to use.
Unlike KoL, we pre-fill the text field with the number you have in inventory.

Revision: 6909
When you have more than one of multi-use item, name the use link "use multiple"
rather than simply "use".
Do not add the password hash twice to certain use links.

Revision: 6910
Arena quest helper: whenever you use flyers on a monster, annotate the page
with a message telling you how far along you are in your advertising.
Also display this whenever you visit the arena, before the quest is complete.

Revision: 6911
When you acquire one of the Filthworm Stench effects, provide a link to go
adventure in the appropriate place.

Revision: 6912
When you visit the Nunnery while the war is still going and you have not yet
completed that sidequest, display the progress of the quest: meat recovered,
meat remaining, expected turns remaining to complete at current Meat Drop.

Revision: 6913
Don't deduct meat paste when combining item via crafting until the items are
made - and don't deduct it if you used the Plunger to do the combining.

Revision: 6914
When you tell crafting to "make as many as possible", the checkbox is named
"max", not "makemax".
When posting a form from the relay browser, clear existing form fields, rather
than adding new ones to the end of existing fields. This should solve double
creation for crafting, when accessed via "discoveries".
Remove unnecessary import.

Revision: 6915
Try that again: fix crafting in a way which doesn't break in-line use links.

Revision: 6916
Sigh. more of the same: fix sidebar commands and clover protection

Revision: 6917
Don't decorate the arena if you have completed the sidequest

Revision: 6918
Replaced spaces with tabs for Acoustic Electric Eel

Revision: 6919
Don't register semirare info if the encounter was the result of using a
Spooky Putty sheet.
Extends the recent locations feature to compact mode as well as regular.
Note that this will look VERY strange if you switch modes during a session,
since the links are in different formats depending on the mode in which they
were first encountered. It will look better on your next session, or if you
visit enough different places to push the old mode's locations off of the
list. I'm assuming that nobody switches between modes on a regular basis...

Revision: 6920
Longer duration for Brined Liver from salacious drinks

Revision: 6921
Phase 3 of special combat actions: adds automatic Olfaction/odor extractor
and Spooky Putty sheet actions. When enabled, these actions will prompt you
for the conditions under which you want them to be used; they can also be
enabled via CLI commands "olfact" and "putty". As with the auto-ID actions,
if you are using a CCS it must contain a "special action" line to indicate
when you want the action to take place - perhaps just after Entangling
Noodles, so the monster doesn't get a free hit on you.
The options for these commands are:
* nothing - shows current trigger setting.
* "none" - disables trigger.
* an item, or comma-separated list of items, optionally prefixed with "item"
for clarity - triggers on next monster encountered that is capable of
dropping all the specified items.
* "goals" - as above, but the list of items is taken from your current
conditions. If no one monster is capable of dropping all the items,
triggering will be delayed until enough of the individual goals have been
satisfied for there to be such a monster.
* "monster" followed by a (partial) monster name - triggers on the first
monster encountered with a matching name. The "monster" prefix is required
because many monster names are also unambiguous item names, due to their tiny
plastic or stuffed versions.
* Any trigger specification can be followed by "abort", to stop adventuring
when triggered even if there are unsatisfied goals.
If either of these actions are active, no autoattack will be automatically
set (unless it's Entangling Noodles), so you don't accidentally kill the
monster before tagging it.
Also: the "stop" button on the Adventure panel has been split into two -
"stop now" (with the previous behavior) and "stop after" (which cleanly stops
after the current adventure is processed, never breaking into combat). This
is useful if you realize you've started adventuring with the wrong equipment
or buffs; you want to fix the problem as soon as possible, but having to
finish an interrupted combat in the mini-browser does you no good at all
(unless you were planning to use a free-runaway item).

Revision: 6922
Give wooden stakes an equip link, not a combine link

Revision: 6923
Effect for Donho's Bubbly Ballad

Revision: 6924
Fix use multiple links: actually use the number the user typed, rather than the
maximum available.
When you try to use more of an item than you have, recognize that and say "you
don't have that many xxx", rather than "that doesn't make anything interesting."
If you multi-use anything which doesn't make something, say what you attempted
to use, and how many, in the error message.

Revision: 6925
When a hobo monkey (for example) steals meat on the last round of battle with
the brigands in the Themthar Hills, it's yours, not the nuns'.

Revision: 6926
A recoveryScript can now declare its main() to return a boolean, and if true
is returned, the built-in recovery mechanism will be bypassed. Note that if
the script is for whatever reason unable to recover to the specified level,
yet still wants to bypass built-in recovery, it MUST call abort() to prevent
further adventuring (which would almost certainly fail in this case).

Revision: 6927
Fix logic for determining how many items to pull from storage: automatically
scale back quantity to one only if we are pulling and immediately equipping

Revision: 6928
"fold" command does not attempt to maintain health if you're already at 0 HP.

Revision: 6929
Monster data can now include the name of a poison effect that can be
inflicted on the player. This goes into the 2nd field of monsters.txt,
enclosed in double quotes, separated from other elements in that field by a
single space. Poison data has been added for all monsters listed on the
relevant effect pages of the Wiki, and the version number of the file has
been bumped.
Adventure areas track the most severe poison that can be inflicted by any
monster found there; if this would trigger an in-combat anti-anti-antidote
use, and the player doesn't have a bezoar ring equipped, adventuring there
will ensure that you have an antidote in inventory.
Added antidotes to the list of items that are purchased in bulk when not
under ronin/hardcore restrictions.

Revision: 6930
Last choice of Strung-Up Quartet does NOT "skip adventure". It stops playing a
song.
Add some monster data for the guardians in the Sorceress's tower and anotate
them n the Relay Browser with the item you need to pass them.

Revision: 6931
Fix name of various forms of The Naughty Sorceress to match what KoL itself says
in the HTML of the fight page.

Revision: 6932
Fix "newdata" command to make tradeitems and itemdescs override files that are
more directly comparable to the released files.
When you face a monster in the Sorceress's tower, if you have the necessary item
to defeat it, auto-select it in the dropdown.
Fix "take all" from storage.
Mer-kin fastjuice is not multi-usable.
Add Everlasting Deckswabber item and Chain Chain Chains status effect

Revision: 6933
When a chef or bartender blows up, don't need to put items back into inventory.

Revision: 6934
Heart of White gives +3 to all stats - which is a change from when it was
introduced; when did it change?
Various undersea status effects ameliorate the item drop penalty, as well as
the meat drop penalty.

Revision: 6935
Recognize mushroom field manipulations, even from Relay Browser, and log
appropriately in session log. Track meat expenditures correctly.

Revision: 6936
Fix multi-stage crafting - again. Damn those browsers that sometimes URLencode
field names - and sometimes don't - and sometimes encode field values - and
sometimes don't.

Revision: 6937
ASH expected_damage() was handling elemental resistance wrong: it was treated
as a fraction from 0 to 1, when it was actually a percentage from 0 to 100.
The innate +5% resistance of mysticality classes does not apply to physical
damage.

Revision: 6938
Meat and item drop chances in Location Details are pinned at zero rather than
going negative when the drop rate modifier is below -100%.

Revision: 6939
In an impressive display of market manipulation, Doc Galaktik has bought out
the Market Demon's entire stock of anti-anti-antidotes, and is now the sole
source of this item. The resulting loss of consumer confidence in the item's
quality has reduced its autosell value by 5 Meat.

Revision: 6940
Llama lama gongs are deducted from inventory when used. Don't deduct again
at the resulting choice adventure.

Revision: 6941
Show the number of known pirate insults in the CLI, along with the odds that
gives you in Insult Beer Pong, whenever a new one is learned.
Fix getNegation() of tally items that don't have a meaningful item ID. This
allows zeroing them in the session tally to work correctly.

Revision: 6942
Do not assume that the simple string "wait" in a failed login attempt means
"please wait and try again." The currently visible updates talk about "the
long aWAITed" something. Instead, match on "Please wait".
Also add a specific check for a bad password and abort immediately.

Revision: 6943
Properly handle inventory count of items which redirect to a choice adventure
when used (i.e. llama gongs). Usage from the relay browser gets recorded via
StaticEntity.externalUpdate() calling UseItemRequest.parseConsumption(), so
for consistency UseItemRequest must call parseConsumption itself in this
case.

Revision: 6944
Anemone Mine and The Dive Bar have a 200% penalty, like the Marinara Trench.
All Sea regions have an Initiative Penalty, just as they have a Meat Drop and
an Item Drop Penalty.

Revision: 6945
Fix detection & logging of Drunken Stupor adventuring.
Reset last adventure location if adventure in pyramid's lower chamber, rather
than leaving it set to wherever you adventured before that.

Revision: 6946
Attempt to improve handling of elven limbos gingerbread. Its name is not
displayed consistently (since it's not always shown in an HTML-enabled
context), and there are still some problems with Mall searching, but at least
it appears in your inventory now, and is properly recognized if you do
succeed in buying it.

Revision: 6947
Recognize, for the purpose of logging, when you visit The Plunger, Innabox, or
Mayor Zapruder.
When Mayor Zapruder gives you familiar equipment (because you've previously
eaned the appropriate gravy fairy), remove the appropriate mushroom from your
inventory. (untested)

Revision: 6948
Fix recording of last location

Revision: 6949
Fix modifier for Crotchety, Pining

Revision: 6950
If KoLmafia discovers an unknown skill on your character sheet, lots of NPEs
can result since it contructs a UseItemRequest with a null name. Log the
unknown skill and use the name as found.

Revision: 6951
Fix attack ratings for a couple of monsters

Revision: 6952
Do not use obsolete proxySet system property

Revision: 6953
Adds "sort <aggregate> by <keyExpr>;" statement to ASH. See
http://kolmafia.us/showthread.php?p=10499 for details.

Revision: 6954
Whack how we interact with the hermit:
- Don't subtract worthless items and hermit permits from inventory before we
visit and adjust later if necessary. Subtract items after we know what the
results were.
- Don't automatically consume any 31337 scrolls when you visit the hermit.
- Use 31337 scrolls - one at a time - if necessary, to acquire worthless items.
Do this before adventuring in the sewer to acquire more.

Revision: 6955
Added some item & meat drop data: tomb rat, Briniest Deepests, Dive Bar.

Revision: 6956
Fix bug in my attempt to have the cookie counter ignore any semi-rare monster
encountered via Spooky Putty - the ignore flag was remaining set
indefinitely, not for a single encounter as intended.

Revision: 6957
Corrected familiar weight modifier of Cold Hearted effect.

Revision: 6958
Fix attack rating for Ed the Undying. Fix typo in comment.

Revision: 6959
Soup up handling/logging of clan rumpus room: recognize exactly what equipment
you are visiting and log appropriate message.

Revision: 6960
If the autoBuyPriceLimit preference is zero, presumably due to having an
outdated defaults.txt file from a previous "update", set it to the default of
20,000 so that Mall buying actually works.

Revision: 6961
Fix pumping up moxie: use the Gnomish Gnomads gym when you are in a Moxie sign,
not a Mysticality sign. Oops.
For the purpose of logging do not assume that any visit to gnomes.php is a
Supertinker visit.
Cache user agent.

Revision: 6962
Save user agent when we open up the relay browser. Unfortunately, we can't use
it immediately, since KoL thinks you've logged out if you do so.

Revision: 6963
EquipmentManager.canEquip(), and therefore also ASH can_equip(), now returns
false for softcore-only items in hardcore.

Revision: 6964
Adds modifiers for some previously unknown effects, now that they're
displayed in the effect description.

Revision: 6965
Move debug commands that check item and effect data into their own module.
Effect descriptions now contain details on what the effect does. Parse these
out of the description and generate modifiers, just as we do for items.
Fix many erroneous effect modifiers.

Revision: 6966
Split "checkdata" command into "checkitems" and "checkeffects".
Soup up effect description parsing. Fix modifiers for more effects.

Revision: 6967
Added monster defense values for The Sea.
Added spectral jelly item.

Revision: 6968
When doing scripted combat in Birdform, ignore any request to use items -
either explicitly listed in your CCS, or implicitly used to cure poison.
When automatically visiting the Noob Cave to receive the Welcome Back
adventure, make sure that this doesn't get set as the current adventure
location, and that the conditions aren't cleared.

Revision: 6969
Soup up modifier parsing: allow multiple patterns to define a modifier in
description text.
Do not put an "Unknown Modifiers" section at the end of modifiers.txt. Instead,
each place the modifier in question directly in front of the item or effect
that provides the modifier.

Revision: 6970
Fix editing error that duplicated some item modifiers.

Revision: 6971
The Boozehounds Anonymous token is not consumed if you have not unlocked the
Typical Tavern yet.
When you find one of the Pretentious Artist's items, give a link back to the
artist if you also have the other two.

Revision: 6972
When looking for rewards in Fernswarthy's Basement, do not look for simply
"Fernswarthy's Basement, Level 500" for the otherwise unnamed level, since
that also matches levels 5000 - 5009. Look for that string enclosed in HTML
bold tags, as it will be.

Revision: 6973
Fix modifier for Omphalokepsis. Record modifiers for Frosty the Hitman

Revision: 6974
Track character gender (including changes in the Sleazy Back Alley) so that
the vinyl boots can have their correct moxie modifier. This included adding
an X variable to the modifier expression language, with a value of -1 for
males, 1 for females.
Add numeric modifiers for special item drop categories: food, booze, and
every equipment slot. If any of these are non-zero, they're shown in an
extra line at the bottom of the modifiers popup.

Revision: 6975
Add the Pirate Cove to list of maps which contain adventurable areas within
Using the Orcish Frathouse Blueprints consumes an adventure and logs as such.
The Orcish Frathouse Blueprints are now marked as "usable" and should work as
directed (via choice adventure setting) if used via Item Manager or command.
Given that, make choice adventure for the Frathouse Blueprints configurable.
When checking for successful purchase of a mushroom plot, check for positive
response, not lack of negative one.

Revision: 6976
Try again: make choice from Frathouse Blueprints configurable.

Revision: 6977
Get rid of meaningless return values that are never examined

Revision: 6978
Added fumble formula, concoction of clumsiness, Clumsy, Spectral.

Revision: 6979
Preliminary support choice adventure 309 (Barback): just like the equivalent
Pastamancer deep sea choice, since you can only usefully use the first choice
three times a day, track the number of seaodes (batter) you've obtained and
annotate the choices with this information when you find the choice in the
Relay Browser. We do not yet automatically choose to ignore the adventure if
you've already obtained your daily maximum. Soon...
Certain things (like detecting progress through Hobopolis sewers) print a status
message - even if you are doing the actions in the Relay Browser. Doing those
actions from the GUI enables the display when you are done with the sequence,
but doing them from the Relay Browser leaves the display disabled. I identified
several such cases and changed them to re-enable the GUI, while I consider if
there is a general solution for the issue.

Revision: 6980
When automating adventuring, if you've already summoned three batters or found
three seaodes today, skip the choice adventure that offers to give you more.

Revision: 6981
Fix typo in fumble formula item, add the monster that drops it.
Add MP regeneration of the wizard hat.
Add the various Cotton Candy Carnie byproducts as HP/MP restoratives.

Revision: 6982
Improve how KoLmafia handles password hash, cookies, and user agent.
Save last user agent given by Relay Browser in a setting, although we do
nothing with it, currently.

Revision: 6983
When looking up an item in the NPC store database, use exact name matching
only. A profiling run showed that this was taking an absurdly high
percentage of the time: refreshConcoctions() checks everything to see if it's
available from an NPC store, and for the concoctions that aren't actual items
(i.e. sushi), this was resulting in lengthy, futile attempts at fuzzy
matching.
Rearranged the parsing of item drops from monsters.txt so that it tries
stripping off the drop rate number first. In the vast majority of cases,
this avoids a useless fuzzy matching attempt. (Also fixed a typo in
monsters.txt that was being covered up by the old parsing strategy.)
After these two changes, profiling does not show anything that seems to be
taking an unexpectedly large amount of time.

Revision: 6984
Handle multiple types of elemental damage with no pure physical damage.

Revision: 6985
Recognize when KoL says you didn't log out correctly and try again in 75
seconds, rather than saying "Error detected in login".
After each Relay Browser request is processed, enable the GUI, in case the
reply processing disabled it by printing a status message.

Revision: 6986
Add item drops for Madness Reef monsters

Revision: 6987
Certain items can redirect to a fight or a choice adventure. Do not log it as
encounter if the redirection did not take place. Do not log the encounter twice
if used from the GUI or CLI and the redirection DID take place.
Add a couple of preferences primarily useful for debugging (off by default):
- logDecoratedResponses not only logs the response that KoL sends to a request,
but also the modified version (use links, etc.) that KoLmafia delivers to the
Relay Browser.
- useLastUserAgent uses the user agent of the last Relay Browser session.

Revision: 6988
When parsing inventory, item names are always singular.
When creating an AdventureResult from itemId, don't need to normalize the name
after looking it up.

Revision: 6989
Adds ASH mall_price(item) function, which returns the approximate price at
which the item can be bought. To prevent abuse, this will only perform an
actual Mall search once per item per session; subsequent calls for the same
item will return a cached value. The cache will be updated after a
successful purchase of the item, but not in any other conditions.
Furthermore, the price returned will be that of the 5th one available, which
should be representative of the actual cost of buying a reasonable quantity -
scripts will not be able to take advantage of (or be confused by) mispriced
items.
Mall searches for a specific item are now cached, with a 15 second lifespan.
When comparison shopping, this will allow the chosen item to be purchased
without having to perform another search for it.
Added new CLI commands "cheapest" and "expensive", which take a
comma-separated list of items. On a line by themselves, they will look up
pricing for all the items (subject to the caching described above), and
display a sorted list. If there are further commands on the same line, those
commands will be executed with every occurence of the word "it" being
replaced by the name of the best item (cheapest or most expensive, depending
on which version of the command you used). Example:
"cheapest hi mein; buy 3 it; eat 3 it"
For convenience, these commands accept multiple matches (so the "hi mein" in
the example actually matches all five flavors, rather than producing an
ambiguous name error), and will accept items preceeded by a minus sign to
exclude them from the match (so "cheapest hi mein, -sleazy" would match the
other four flavors only).

Revision: 6990
Use cached Mall prices to more intelligently decide between buying the final
product vs. buying missing ingredients. Note that this still needs some
tuning - in particular, if you are able to create one of the ingredients, it
will be valued at autosell price (the same as if you had it in inventory
already), not taking into account any NPC purchases you'd have to make to
create it.
When creating items from the CLI, don't temporarily turn off
autoSatisfyWithNPCs unless the specified quantity is "*" or negative (in
which case this is necessary in order to calculate a meaningful "as many as
possible" value). This will generally save a call to refreshConcoctions()
that is particularly slow because it actually changes the creatability of
many items.

Revision: 6991
In the Fernswarthy's Basement decorator, add approximate Mall prices to
booster items you don't have in inventory. This greatly slows down the first
page load, but once all the prices are cached it's as fast as ever.
Note that you may need to delete the file relay/basement.js from mafia's root
directory to force it to use the updated version. The symptom is that trying
to use any booster that has to be purchased will produce a "[] has no
matches" error in the CLI.

Revision: 6992
Refactor CampgroundRequest and UseItemRequest to only spend MP, increment
counters, etc. after we know that the request completed successfully.
Resting in your dwelling now logs in the session log and gCLI; it stopped
doing that long ago when Resting ceased to be listed in adventures.txt

Revision: 6993
Refactor creation of AdventureResults.
Creating one from itemId which is not in our database now generates a name
like "unknown item 1332)"

Revision: 6994
A choice adventure gets ADV_PRIORITY

Revision: 6995
When autoadventuring:
- Skip Heart of Very, Very Dark Darkness (5) if don't have inexplicably
glowing rock in inventory.
- Skip How Depressing (7) if don't have spooky glove equipped.
- Skip A Vent Horizon (304) if don't have 200 MP available.
- Skip There is Sauce at the Bottom of the Ocean (305) if don't have
Mer-kin pressureglobe in inventory.

Revision: 6996
(Untested) If the island war is underway, you need War Hippy Fatigues to shop
in the hippy store if you completed the quest as a hippy and Frat Warrior
Fatigues to shop if you completed the quest as a fratboy. Civilians may not
shop in the store until the war is finished.
(Untested) Allow donning of Travoltan Trousers to reduce cost when
shopping at hippy store after the war, since that doesn't require an
outfit. Ditto for Barrrtleby's Barrrgain Books when you have Pirate
Fledges equipped.
When logging purchases from an NPC store, include the store name.
Determine current pirate ephemera from any visit to the bookstore,
including from the Relay Browser, rather than only when you purchase
something from there via the GUI or CLI.

Revision: 6997
In the Basement decorator, make the list of boosters wide enough to show
every item completely, rather than being a fixed width.
Also, handle food items in that list consistently with booze and spleen
items, including disabling them if you don't have enough fullness remaining.

Revision: 6998
When you take off a hat, it is immediately available to your Mad Hatrack.
When you take a hat off your Mad Hatrack, it is immediately available to you.
Ditto for weapons and your Disembodied Hand.
When you wield a two-handed weapon, the gear changer should no longer get
confused about your previous off-hand item.

Revision: 6999
Make TransferItemRequest more robust: when given a list of attachments
including nulls, skip over the nulls without error.
Make CLI "mallsell" command a little more stringent: if it can't match an item
name, give an error and bail, rather than ignoring it.

Revision: 7000
KoL changed the plurals for "gibson" and "vodka and tonic". Fix them.

Revision: 7001
When you talk to Yossarian out of uniform, translate his hints to the actual
name of the adventure location you need to go to for his next tool.

Revision: 7002
Don't refuse to run TransferItemRequests with no attachments; retrieving storage
is an example of such a request.

Revision: 7003
It's http.proxyHost, not simply proxyHost

Revision: 7004
Just as we ignore bogus physical damage messages, ignore bogus elemental damage
messages (like using an ice sickle while in an elemental form).

Revision: 7005
Fix name of "WILL WORK FOR BOOZE" sign.
Fix a few Junkyard subarea names.

Revision: 7006
Fix getting contact list at login.

Revision: 7007
This is an emergency patch for the recent changes in Mall searching. Basic
functionality seems to be restored, and in fact some things work better now
(no more problems buying items with double-quotes in the name), but little
testing has been done. In particular, none of the special cases related to
items with purchase limits, that you may or may not have already purchased
some of today, have been tested at all.

Revision: 7008
Add some consumption data for alewife ale.
If you have access to both the bugbear bakery (outfit) and the Degrassi Knoll
Bakery (muscle sign), prefer using the latter for NPC purchases.

Revision: 7009
Fix Mall searches for elven limbos gingerbread. As far as I can tell, all
tradeable items can now be unambiguously searched for.
Add pseudo-choice adventure popup controlling Mall price lookups in the
Fernswarthy's Basement decorator - never, only items you don't have, all
items.
"cheapest" and "expensive" now allow item names to be preceeded by a plus
sign, in which case they are expanded to the entire zap group including that
item. Example: "cheapest +gimlet" compares all 12 SHC drinks.

Revision: 7010
When you get the heart of the filthworm queen, provide a link to the farm stand

Revision: 7011
8 hobo gristles makes a bounty assignment now

Revision: 7012
Adds a plurality of missing plurals.

Revision: 7013
Avoid taking an NPE doing the tavern quest.

Revision: 7014
Don't loop forever parsing CharSheet if you don't have a familiar equipped.

Revision: 7015
Fix skillid for Suckerpunch

Revision: 7016
Adds "quark" CLI command to gain MP by pasting an item with an unstable
quark. Given a comma-separated list of items, it will choose the best one -
the one that gets you as close as possible to your maximum MP without going
over, that you actually have in inventory (2 in inventory, if the item is on
your "keep one" list). It will not use a quark to gain less than 20 MP (this
number is open to discussion). With no parameters, it chooses from your junk
item list instead. "quark?" will tell you what item it would use.
Adds "unstable quark + junk item" as a MP restorative choice, that just
performs a "quark" command.

Revision: 7017
Don't cache Mall search results if the user hit ESC, or there was otherwise
an error during the search.

Revision: 7018
Allow creating/consuming sushi from the CLI via the "create" command. Thus:
> create 1 magical sneaky rabbit roll
will create and eat the sushi.

Revision: 7019
Properly maintain HP, MP, and moods after a relay browser combat even if it
was finished via the "script" button.
Add Spooky Putty sheet to the list of items that shouldn't be funkslung in
combat if you have more than one.

Revision: 7020
Adventuring in the Desert (Ultrahydrated) is considered to take two turns if
you don't have the effect, due to the automatic visit to the Oasis. This
should prevent missing a semi-rare or other counter that has one turn left.
Moxie classes can now have an automatically-set autoattack if they have
auto-pickpocket turned off.

Revision: 7021
When auto-visiting the Oasis to get Ultrahydrated, try again if this fails -
there are several one-time adventures that can override Glug, Glug, Glug
(although if any of them are available, you shouldn't have been adventuring
in the Desert). If you're still not hydrated, abort.

Revision: 7022
Creating sushi would not auto-buy from mall for two reasons:
- was looking for ingredients by item id, and sushi is a pseudo-item
- white rice has an autosell price of zero and therefore needs special
dispensation as a mall-purchasable item.
Fix both problems.
Add default for choice adventure # 307 (Ode to the Sea)

Revision: 7023
Better consumption data for undersea drinks

Revision: 7024
New URLs for Gemelli's online tools: Louvre mapper, violet fog mapper, etc.

Revision: 7025
Reformat and reorganize a bit of code for clarity and maintainability.
Move hippy store recognition out of externalUpdate and into the method which
handles everything from store.php.
Don't you love it when plurals change? Fix clockwork box servants.

Revision: 7026
Fix recognition of scratch 'n' sniff stickers.

Revision: 7027
Fix visible typo in dialog box. (!)

Revision: 7028
Recognize when you feed a Gluttonous Green Ghost or Spirit Hobo from either
inventory or terrarium. Log appropriately and deduct used items correctly only
if actually succeeded.
The "hobo" and "ghost" commands (and equivalent buttons on Item Manager) now
use the terrarium to force feed multiple items at once to your familiar.

Revision: 7029
When you use a llama lama gong, deduct one from inventory when you see The Gong
Has Been Bung choice adventure.

Revision: 7030
Get rid of unnecessary and incorrect "timein" command.

Revision: 7031
Update lychee chuhai to 20 Brined Liver

Revision: 7032
Initial support for March IOTM. Remove some bogus whitespace in monsters.txt

Revision: 7033
Recognize when you try to force feed your GGG more of an item than you have

Revision: 7034
Since the item database now contains pseudo-items and the ItemFinder can find
those, fix ASH string_to_item to ignore pseudo items and return the default
"none" item with item id = -1

Revision: 7035
If we acquire items of the form "You acquire <x> <plural name>", look up the
item using substring matching on the name, if <x> is greater than 1, since that
is how we can use heuristics to guess at unknown (or changed) plural forms.

Revision: 7036
Reorganize login & initialization a bit to make it clearer what gets reset when
you log off and log in a new character

Revision: 7037
Add vampire pearl and its byproducts.
Add usanality of jub-jub birds (the Bandersnatch's equipcessories),
including via the "fold" command.

Revision: 7038
Adds "update clear" CLI command that will delete any files previously
downloaded by an "update". Giving directions for recovering from
update-related problems should now be much easier.

Revision: 7039
When you logout and log in a different character, update the restore options
panel from the saved preferences of the new character

Revision: 7040
When you log out and log in, make sure that all the special choice options get
updated, not just the simple choiceAdventure settings.
When we acquire an item with an unrecognized name, log it in the gCLI, rather
than adding "Unknown item 0" to the session tally.

Revision: 7041
You can make meat paster and stacks either via crafting or from the inventory.
The former tells you how much meat you lost when it delivers the items, but the
latter does not. Account for the difference and keep the meat tally correct in
the session results.

Revision: 7042
When you use a Hobopolis item that grants a skill, make the skill immediately
available.

Revision: 7043
Only deduct a gong when you get The Gong Has Been Bung
Add arena parameters and main famitem for Frumious Bandersnatch (tx dangerpin!)
Add layout setting for Mine #3

Revision: 7044
Update version to 13.0
 
Top