Version 14.1

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: 8306
Decoded cult documents can be used to summon a Spaghetti Elemental.
Add initial support for that Pasta Guardian.

Revision: 8307
Track current estimated number of discarded Instant Karma in pref
"discardedKarma"; decrease it by 3 on ascension. Offer a discard link on the
ascension checklist when appropriate. From a patch by lostcalpolydude.
Fix adventure count of using a drum machine with worm-riding hooks equipped,
courtesy of Atheist Nutter.

Revision: 8308
Mark cult memos as "reusable", so they get a use link and can be used from Item
Manager. When you get decoded cult documents, you lose 5 cult memos.

Revision: 8309
You cannot have a greater than 100% chance of running away.
Since "pastamancer combat entities" are now "pasta guardians", the CLI "entity"
command can now be invoked as the "guardian" command.
Allow Pasta Guardians to be recognized via more than one image.
Improve "guardian" command: the number of summons you've done is not assumed
to be the number of times you summoned your current guardian.

Revision: 8310
chocolate class items are not multi-usable

Revision: 8311
Using items that are incorrectly flagged as multi-usable (such as those fixed
in Revision 8310) now generates an error message, rather than silently failing.

Revision: 8312
In compact sidepane mode, if a counter has a name wrapped in font tags (like
the color-coded He-Boulder recharge counters), it doesn't actually color the
name - that's displayed via a title attribute, which doesn't support markup.
Apply the tags to the text of the turn count, instead. In practice, that
means that the parentheses around the count get colored, as the count itself
is a link with its color specified via CSS. They're not very noticeable, but
there simply isn't anything else there to apply the color to.
Don't try to add HP/MP restore links to the sidepane when in Valhalla, which
was producing index errors.

Revision: 8313
When copying URL string into a RelayRequest for use by an ASH relay override,
don't omit the password hash, if it was present.

Revision: 8314
is_numeric is now is_integer.

Revision: 8315
Fix the "auto" button for choice adventures: follow the choice and display the
resulting page. If that page is a combat, leave it for the user to deal with.

Revision: 8316
Spaghetti Elementals change their name as they grow. Therefore, do not assume
that a new name means you have a new guardian with zero experience. Reset
experience only if the type of the elemental changes.

Revision: 8317
The Legendary Regalia of the Pasta Master gives Pasta Guardians +1 exp per fight

Revision: 8318
Some changes to make it easier to write scripts that present an actual user
interface, in the relay browser:
* Any .ash scripts in the relay folder, with names starting with "relay_",
are collected in a menu shown at the bottom right of the top pane. The list
is rebuilt whenever the top pane is loaded, so the [re] button that mafia
already adds there works to refresh the scripts, too. Selecting one loads it
in the main pane. The relay browser override feature does NOT have to be
enabled for this to work.
* Added ASH predefined string constant __FILE__, which is the filename of the
current script. This allows relay scripts to link or submit a form to
themselves, even if the user has renamed them.
* Added ASH function form_fields(), which returns a string[string] map with
all the name/value pairs from the relay request being handled. Unlike the
existing form_field() function, this allows iterating over all the fields,
and can distinguish a field with a blank value from a nonexistent field.
* Added ASH string functions entity_encode(string) and entity_decode(string),
for converting text that might contain special characters such as ampersands
and angle brackets so that it can safely be displayed in HTML, and for
retrieving such text from form fields.

Revision: 8319
Fix [discard] links in the mini-browser - a de-JavaScript-ifying regex was
mangling them.

Revision: 8320
If you have a level 6 or 7 telescope, don't attempt to retrieve every
possible tower guardian item - just the ones the telescope indicates you
need. From a patch by Atheist Nutter.

Revision: 8321
More complete logging of Pasta Guardian actions

Revision: 8322
If you encounter a French guard turtle, set encounter to "French Guard Turtle"
rather than "Guard Turtle", so that scripts and CCS can distinguish

Revision: 8323
When fighting the Tower guardians, abort cleanly if you run out of adventures
rather than trying to continue with the next step.

Revision: 8324
A search string containing a space would never even attempt a fuzzy match
against an item with no spaces in its name, due to a speed optimization. For
example, "chef in the box" should match "chef-in-the-box", but that was
skipped over as a possibility (because the name didn't contain every
character in the search string), and "clockwork chef-in-the-box" matched
instead - simply because it DOES contain a space. Fixed by removing the
space character from the search string hash before attempting fuzzy matching.

Revision: 8325
The most recent encounter name is now stored in preference "lastEncounter",
so that scripts can tell just what happened in an adventure request. Note
that in the case of combat encounters, the name is the original name of the
monster, before any disambiguation of same-named monsters is performed, or
conversion of random monster names into a generic name (like "normal hobo" in
Hobopolis).

Revision: 8326
Track Canticle of Carboloading in "carboLoading" setting: increment it if you
successfully cast it, zero it if you are a Pastamancer, eat something, and feel
bloated.

Revision: 8327
When we you clear the chessboard and get a queen cookie, increment the setting
"chessboardsCleared".
The effects that depend on that variable max out at 50 chessboards cleared.
Add defensive code to guard against AdventureResults with null names: if we
ever try to create such an object, print a message to the gCLI and give it a
non-null name.
Similarly, when comparing two AdventureResults, if either has a null name,
down't take an exception.

Revision: 8328
Fixing Parenthetical Effects III: The Wrath of the Up-Arrow Links Strikes Back!
Fixed typo in Towering Strength modifier.

Revision: 8329
Added boolean preference "meatDropSpading": if true, then any final combat
meat drop that is impossible based on mafia's current modifiers will print a
message to the CLI and session log, including a list of possible +/-
adjustments that are capable of explaining the discrepancy. This is based
solely on the fact that all base meat drops are integers; the range of
possible drops from the monster isn't considered. This preference is false
by default, and has no UI for turning it on, since the resulting output would
be useless clutter for most users - there WILL be false reports, due to
sporadic meat bonuses such as the navel ring, and possibly due to differences
in rounding behavior.
Item name change: El Hebilla -> La Hebilla.

Revision: 8330
When you figt a sandworm, we set the "again" button to use a drum machine. That
isn't necessarily how you got the sandworm. Instead, simply take the first
link that KoL itself provides, which will be "use another drum machine" (if
you gt the sandworm via drum machine and have more in inventory) or will be
a real "adventure again" location, if your sandworm came from your L10 Boba.

Revision: 8331
Add "hatter" command which tells you what your currently available hats will get
you at the tea party

Revision: 8332
It's March Modifier Madness time!
* Added mainhand(text) function to the modifier expression language, to check
your weapon type. Used this to add the newly-discovered bonus to Expert
Panhandling when wielding a saucepan.
* Added "Candy Drop" numeric modifier, because hey - free candy.
* Added "Familiar Experience" and "DB Combat Damage" numeric modifiers.
* Added "Sombrero Bonus" modifier, to handle the unique "+10 lbs. of
Sombrero" given by the mariachihuahua's familiar equipment. (New modifiers
for "+10 lbs. of Volley/Lep/Fairy" aren't needed, since those are expressible
in terms of existing modifiers.)
* Added "Sporadic Meat Drop" and "Sporadic Item Drop", to specify the average
amounts of bonuses that don't fire in every combat. These are NOT included
in your basic meat/item modifiers (since that would screw up some
calculations, such as determining whether an item drop is guaranteed), but
maximizing those modifiers will include these values in the score.
* Added "Meat Bonus" for sources of a flat meat drop increase, instead of the
usual percentage increase - currently just the ant tools. For now, the
maximizer considers these to be equivalent to a tiny amount of +Meat%, so
that the ant tools can be chosen in preference to familiar equipment that
doesn't increase meat drop at all. A more accurate comparison could be done
by considering the average meat drop in the current location.
* If the meatDropSpading feature triggers when you have a nonzero Sporadic
Meat Drop or Meat Bonus, this is indicated in the results, since this is
almost certainly the source of the discrepancy.

Revision: 8333
Fix for the improved tower guardian item retrieval from Revision 8320: if you have
only 6 telescope upgrades, try to retrieve all of the 6th floor items (the
ones found at the Shore), since you can't tell which one you will need. Not
tested.
If the ASH form_fields() function finds multiple fields with the same name,
it makes the names distinct by adding underscores to the end. This is
necessary in order to read all the values of a <select multiple>.

Revision: 8334
When you switch to using a Stocking Mimic and it does not currently have a
familiar item equipped, leave it that way, rather than stealing one from
another familiar, to give it a chance to create its own special item.

Revision: 8335
ShowDataCommand now tries to match its filter against a version of each data
item with HTML tags stripped out, so that commands like "inv elven limbos"
work as expected.
Clear the error state before launching a .ash relay script, so they can be
used immediately after an error of some sort without having to manually clear
it. Note that this does NOT apply to actual relay overrides, as it appears
that leaving the error state alone is an unfortunate necessity in that case.
In particular, if an override of charpane.php existed, it would be constantly
clearing the error state, which would at least occasionally lose an actual
error that occurred during between-battle processing.

Revision: 8336
Add slppery when wet shield

Revision: 8337
squid ink and fishy speed are not multiusable

Revision: 8338
Fix for string matching: a search string starting with a double-quote still
means "exact match only", but it now tries the match with the quotes both
present and stripped off. This is needed to match things that actually start
with a quote, like $effect["The Disease"].
Added the two missing ASH type conversions from strings: to_slot() and
to_element().
All basic ASH types can now survive round-trip conversion to strings without
any special-casing.

Revision: 8339
When you buy a skill at Meansucker's house, deduct the meat from inventory
Add puzzling trophy
Raver accessories are all SIngle Equip
Add item drops to the ravers from Outside the Club

Revision: 8340
Improvements in file_to_map:
- If there's a bad line in the data file, print the bad line
- If there is insufficient data to fill a nested record, do not replace the
nested record with a null. Leave it filled with defaults.
- if reading record fields by name, handle bogus field names cleanly
- only print a stack trace for unexpected data errors; if we detected the
error, print just the error message.

Revision: 8341
Do not add a council link once the king has been liberated.

Revision: 8342
Add a few plurals

Revision: 8343
Add some nemesis quest goals

Revision: 8344
Added _sealFigurineUses to track daily usage of the depleted uranium seal figurine.

Revision: 8345
Nag if you are a Pastamancer, have carboLoaded between 2 and 9, and are about to
eat noodles.

Revision: 8346
Add new TT TT item/skill/effect: Curiosity of Br'er Tarrypin.
Fix "unknown item" messages when adding a wildcard condition, and number
format exception if adding one with no explicit quantity.

Revision: 8347
Recognize the current level of the three slimy skills from their description
even when done from the relay browser, not just by internal request.

Revision: 8348
Added pool buttons to the Daily Deeds panel

Revision: 8349
Added some of today's buggy items, although not the familiar itself.
Added ConsequenceManager, with data file consequences.txt, as a framework for
applying a regular expression to specific pages and performing actions based
on the results, such as setting preferences. The currently supported
consequences can trigger on an item, skill, or effect description page; the
skill level check for the slimy skills is now in this form, and there are
also now checks for the chess cookie effects, ballpit bonus, and the
Landscaper's leafblower +ML value.
On the first login of each day, one of these descriptions will be loaded
(sequentially), so mafia will eventually be synchronized with the player
state even without the player opening the descriptions while mafia is
running.
Setting debugConsequences=true will print a message whenever a consequence is
triggered.

Revision: 8350
Added the rest of the bugged items - and they are quite buggy, indeed: they
turned up some fundamental problems in mafia's handling of canonical strings,
which I think I've fixed.
I added aliases for the items with bugged names, so that you can type them
without having to know obscure key sequences, or the corresponding character
entity names: "bugged bonnet", "bugged meat stabbing club", "bugged Knob
Goblin love potion", "bugged old school Mafia knickerbockers", and "bugged
Talisman of Baio".

Revision: 8351
Added optional automatic update & submission of Mall prices to kolmafia.us,
controlled by preference sharePriceData (found in the General section).

Revision: 8352
Perform calculations for buffed stat & HP/HP predictions in double precision,
as this appears to better match the game's actual calculations.

Revision: 8353
panicked kernel is a free pull. puzzling ribbon. clear carboloading counter.

Revision: 8354
Don't consider an oyster egg drop in the Barrel Full Of Barrels to be a
spleen drop for the purposes of determining the pattern of the barrels.

Revision: 8355
Added "Raveosity" bitmap modifier, based on current spading of what's
necessary to enter the DB Nemesis dance club. The value is shown on the
sidepane, in the same place as Clownosity and Hobo Power (priority is Hobo >
Rave > Clown), and "maximize 7 raveosity" is supported.

Revision: 8356
Added ASH item_drops_array() function for getting more detailed monster drop
info than is possible with the existing item_drops() function. As with
item_drops(), it is available in 1-arg (takes a monster arg) and 0-arg (uses
the monster you're currently fighting) versions. The result is an array of
records with three fields: drop (an item), rate (an int, normally a
percentage), and type (a string). Currently defined types are:
empty string - normal item drop.
"0" - no drop rate info available.
"n" - non-pickpocketable item drop.
"c" - conditional drop.
"p" - pickpocket-only drop.
"b" - bounty drop.
Anonymous records are now given a name including a hex hash value, to make
them distinct. Previously, any anonymous record value could be assigned to
ANY variable of an anonymous record type, because the record names were the
same!

Revision: 8357
Counters expiring 1 or 2 turns in the future (as can be reported when
adventuring in a location like the Shore that takes multiple turns) are no
longer deleted on delivery; they will be re-reported when the counter
actually expires.

Revision: 8358
Add Baby Bugged Bugbear. Do not take an NPE if you grow an unknown familiar.

Revision: 8359
Preliminary support for the Legendary Beat quest items.
[use] links no longer appear for items with a level requirement you don't
meet - perhaps most noticeable for any Instant Karma received in the king's
letter.

Revision: 8360
Log & remove from inventory any fruit inserted into Prof. Jacking's pneumatic
tubes.
checkplurals now writes empty lines for missing item IDs, to make it easier
to merge the results into itemdescs.txt.

Revision: 8361
tiny fly glasses are pan-familiar equipment.
Preliminary support for Jacking choice adventures.
Detect correct choice form for first choice spoiler.

Revision: 8362
The keepskill value for "(no skill)" when ascending has reportedly changed
from 0 to -1. Won't test.

Revision: 8363
Don't show the DB combo helper if the combat has been lost or run away from.
This also fixed a problem with deferred [use] links (such as from
pickpocketed items) not showing up until the next combat you actually won.
Properly handle deletion of stationary combat buttons for skills you no
longer have, if relaySkillButtonCount isn't the default of 5.

Revision: 8364
Add "volcano slime" command to visit the slime drums post-nemesis

Revision: 8365
Added "_legendaryBeat" boolean pref, and a Daily Deed to use that item.

Revision: 8366
Tiny fly glasses give familiar exp, not player exp.
Adjusted the hidden bonus for each pair of the future +item accessories from
5% to 10%, based on spading by top1214.

Revision: 8367
Only highlight a raver's special move if you haven't learned it yet.

Revision: 8368
If you do not have the CAB enabled, a link to fight.php in the fight page does
not indicate that the fight is continuing - for non-terminal forms of Ed or Her
Naughtiness.

Revision: 8369
Detect hardcore state solely by the presence of text on the charsheet - the
test for drop-path buttons on the account page was failing in BM aftercore.
The Ancient Protector Spirit's drops are all conditonal.

Revision: 8370
Seegar's banjo is a stringed instrument. Fix powers of epic hats.

Revision: 8371
Fixed problem with Hagnk's items not showing up in Item Manager lists unless
an item is queued.

Revision: 8372
More ConsequenceManager stuff:
Added patterns to update mafia's idea of the current monster that is trailed,
puttied, or camera-ed when the corresponding description is viewed.
Added capability to apply a consequence to the initial page load of a combat,
possibly returning a more specific monster name. Lots of previously
hard-coded monster disambiguations are now in this format, and a new one is
added: Ed now has all 7 undying forms disambiguated, with correct HP values
for each.

Revision: 8373
The substat progress bars in Player Status now have tooltips telling you the
point level at which you'll next be able to equip something new.

Revision: 8374
Refactor familiar item data handling: rather than having hard-coded data in
multiple locations, the data files are now the definitive source for item
weight bonus & equipability. Only the truly exceptional familiars
(chameleon, hatrack, hand) have hard-coded data now.
Two modifiers were added to support this: boolean "Generic" (true for
universal equipment), string "Equips On" (holds a |-separated list of
familiar types). Neither is needed for the basic familiar-specific item
listed in familiars.txt.
This should fix the problems with the Bugged Bugbear's equipment.

Revision: 8375
Recognize and log all forms of monster transmogrification (CLEESH, the bugged
bugbear equivalent, Boba Fettucini sandworm conversion, and hopefully any
future instances) via the JavaScript function call to change the monster pic
& name, rather than the varying text reporting the action.

Revision: 8376
Start of overhaul of Louvre mapper, to more accurately predict where the
exits lead. The automatic mapper is NOT changed yet, but manual adventuring
in the Louvre will show calculated probabilities for each unmapped exit. At
the moment, the probabilities are based solely on the uneven distribution of
exit permutations, but the framework is now in place for more accurate
predictions based on correlations between locations.
Faulty modifier expressions now consistently return zero rather than a random
value.

Revision: 8377
Removed definition of and references to launch_ui which was a leftover from a now abandoned attempt to provide for scripted user interfaces.

Revision: 8378
Further improvements to Louvre mapping: the observed correlations and
constraints between consecutive locations are now taken into account when
predicting exits. Occasionally, given enough other mapped locations, it can
make a definite prediction about a previously unvisited location. This still
applies to manual adventuring ONLY; auto-mapping will continue to use the
old, sub-optimal method until I have more confidence in the new algorithm's
correctness.
If reporting a problem with this feature, please include the output from:
get louvreLayout

Revision: 8379
Update a couple Nemesis Island monsters and add the flyest of shirts

Revision: 8380
Ensure updated skate park and telescope

Revision: 8381
Added "crimbotree" command and daily deeds button
use "crimbotree" to check the tree and discover days remaining.
use "crimbotree get" to acquire your present.
In the preferences:
_crimboTree is true when a tree is discovered in the VIP lounge.
crimboTreeDays is reset to 7 when you get a present.
crimboTreeDays is 0 when a present is waiting.

Revision: 8382
Detect modification of a map within a foreach loop and throw a runtime error

Revision: 8383
Add traveling trader item

Revision: 8384
Look for VIP key in freepull list, not storage

Revision: 8385
When you teke the Hellevator, log the floor you end up on in the gCLI and
session log

Revision: 8386
Restore the ability to remove the current key from a map being iterated over
via a foreach loop. This includes removal from within a nested loop, and
removal of keys at all levels of a multidimensional map.

Revision: 8387
Since Rodoric the Staffcrafter is so picky about the brand of his beer,
perform interchangeable ingredient substitutions on normal (<= 2 ingredient)
crafting recipes only.

Revision: 8388
Fixed grammar in message when using Hey Daze Map was unsuccessful.

Revision: 8389
More tweaks to Louvre exit prediction: locations with a single mapped exit
weren't being handled as well as they could.
Item change: plexiglass pike pike is now plexiglass pikestaff.

Revision: 8390
Jacking zones:
Added some plurals
Added some conditions
Added monsters and drops (no percentages on the item drops yet)
(No spade data was available for combat frequency in these zones)

Revision: 8391
Commented out "Nemesis Quest" option in the menus since it isn't active.

Revision: 8392
And yet another tweak to Louvre mapping: it can now sometimes make a definite
prediction, given only the mappings of the preceding and following locations.

Revision: 8393
stuff

Revision: 8394
Count 4-d cameras used in "camerasUsed". Drop rates for looking glass food.

Revision: 8395
Added steal rates for all pickpocket-only items.
Added "Pickpocket Chance" numeric modifier, with two known sources.

Revision: 8396
VERY preliminary support for using combat macros in the relay browser: there
is now half-assed logging of actions performed by the macro, and round
numbers are shown for all rounds (replacing KoL's hr for rounds after the
first one).

Revision: 8397
Avoid problems with getting the jump with a combat macro autoattack set.
Added temporary debugging feature: "set macroLens=true" will reveal a text
field in the combat form (non-CAB only) in which you can directly type a
combat macro to execute. You wouldn't want to actually play the game this
way, but it's a far more convenient way of experimenting with macros than
constantly going to the macro editor. You must have at least one saved macro
for this to work, and mafia's combat hotkeys are disabled - you wouldn't be
able to type numbers in the field, otherwise.

Revision: 8398
Update info for Beefy Bodyguard Bat

Revision: 8399
Further support for parsing combats with multiple rounds per page: this seems
to be mostly working now, although there are undoubtedly still bugs. Haiku
combat parsing is definitely broken at the moment.
On the plus side, skills set as an auto-attack now trigger the same
consequences (such as Birdform counters) as a normal use.

Revision: 8400
Fix ASH comments:
# starts a full-line comment
// starts a comment which consumes the rest of the line. It no longer must be
the only thing on a line
/* and */ enclose a comment which can span multiple lines or can be embedded
within a line. Those tokens no longer must be alone on a line.

Revision: 8401
Provide assignments with operator to ASH: += -= *= /= %= work with interger
or float variables or composite references; += also works with strings.

Revision: 8402
Fix Barrels decorator due to server-side change.

Revision: 8403
Fix burrowgrub usage parsing to handle multi-round combat pages.
Add an [edit macros] link to the final combat page.
Add a JavaScript hook to the macro editor page for possible future
implementation of a syntax checker.

Revision: 8404
Fix problem with DB combat helper that was causing blank combat pages.

Revision: 8405
Finish handling of multi-round combat results in haiku format, including the
possibility of changing format in mid-page due to casting The 17 Cuts in a
macro. Combat parsing should now be fully functional again, although I've
undoubtedly overlooked something - please report any anomalies.

Revision: 8406
Improve handling of malformed combat macro results. Note that there is
currently a server-side bug causing "skill" commands with an ID (rather than
a skill name) to be misreported: this revision will avoid a blank relay
browser page, but the combat won't actually be logged correctly.
Added an error trap in GenericRequest that should make it less likely for
botched parsing to result in a blank relay browser page.
Added basic syntax checker for combat macros, available on both the macro
management page, and on the fight page itself if you've set macroLens to
reveal the on-the-fly macro field. The check is automatically performed
after 2 seconds of inactivity.

Revision: 8407
Don't switch guardians in the Crystal Orb on a [look] instead of a [use].

Revision: 8408
Sort Azazel's steel quest rewards to the top in their respective Item Manager
consuption lists.

Revision: 8409
The ASH 'function not defined' error message now suggests the possibility
that an update to mafia or some imported script might be necesary.

Revision: 8410
When you read Uncle Romulus, you learn Curiosity of Br'er Tarrypin

Revision: 8411
New Traveling Trader item

Revision: 8412
Auto-select items needed for the three Nemesis Cave doors. Tested only for DB.

Revision: 8413
Fix NPE when an effect is lost during combat, such as removal of Beaten Up by
a personal massager.
A lot of code related to the CCS macrofier has been added, however it is not
yet in a usable state and is disabled.

Revision: 8414
Autoselect boring spaghetti or tomato juice of powerful power at nemesis door 3

Revision: 8415
Fix problem with round numbering when a consult script finishes the fight.
CCS execution should now always continue with the next line after a consult,
regardless of how many rounds the script took.

Revision: 8416
Initial release of CCS macrofication: there are still some differences from
round-by-round combat (for example, in-combat MP restoration isn't working
yet), but combats can now generally be converted into a KoL macro and
resolved in a single page load, as long as they contain only eligible
actions. Ineligible actions currently include "consult" (utterly impossible
to macrofy), "jiggle" (no macro equivalent yet), and "delevel" (tricky to
duplicate in a macro).
There are a couple of inherent differences in macro combat actions:
* After a CLEESH, or other monster transformation, combat continues with the
same CCS section, rather than possibly jumping to a section that applies to
the new monster. If "skill CLEESH" is the final action, an attack loop is
added to finish off the amphibian.
* CCS "abort after" will always abort automation afterwards if the section
contains this command, rather than only aborting if combat reached that line
of the section.
Setting pref "macroDebug" to true will display the generated macro for each
combat in the gCLI. This is the most human-readable format of the macro; a
more optimized version, with uncalled and empty subroutines stripped out,
appears in the debug log. (And the version of the macro actually sent to the
server further has comments and leading whitespace stripped out.)
The CCS editor will now accept "use" as a synonym for "item", for
compatibility with KoL macros.

Revision: 8417
Basic item info for Crown of Thrones

Revision: 8418
Track Slimeling fullness as requested at KoLMafia.us. Compiles but otherwise untested.

Revision: 8419
Macrofied combat now fully supports the in-combat MP restore option.
Attempted use of an unavailable skill in macrofied combat is now ignored
without error, just as in round-by-round combat. This handles cases such as
multiple casts of Entangling Noodles or other limited-use skills, and skills
that you have insuffient MP to use (if you don't have in-combat restoration
enabled).

Revision: 8420
Cinco Mayo Lager.
Log when put familiar into Crown of Thrones or take one out.
Arena parameters for BRICKO chick.

Revision: 8421
Add Underworld sapling, Underworld Bonsai, and miniature pruning shears

Revision: 8422
CCS "jiggle" command is now macrofiable.
Macros displayed by the macroDebug setting now have basic indentation rules
applied, for readability.
The macro syntax checker has been updated with several recently added
commands. You may need to delete the file relay/macrohelper.js to get the
new version (1.1) to appear.
Vials of brown slime aren't multi-usable.

Revision: 8423
Recognize familiar actions that occur after an attack that does damage.

Revision: 8424
Add last semi-rare location to CLI counter expiration message as requested at kolmafia.us

Revision: 8425
If the Bling of the New Wave is equipped, simple combat actions with
pickpocket enabled will make a second pickpocket attempt.
Bumped all of the Dungeon of Doom monsters' stats by 20, as an approximation
until accurate stats get posted on the Wiki.

Revision: 8426
Do not consider distributable drops from clan dungeon bosses as actual item
acquisitions.
The Creepy Clown is spooky, not sleazy. Well, maybe a little sleazy.

Revision: 8427
Allow mafia to acquire several divine items from the mall, as requested at kolmafia.us.

Revision: 8428
Various improvements to disco combos:
In the DB combat helper, the combo names are now buttons which will submit
the entire combo as a macro. The buttons will be disabled if you don't have
enough MP for the entire sequence, or there's already a possible combo in
progress.
Added "Random Rave" combo, which only exists while you know all three rave
skills, but not all six rave combos - it will be an arbitrary sequence of the
three skills that doesn't correspond to a combo you know.
Added "combo" CCS action to perform a combo by name - "combo rave nirvana",
for example. It works in both macrofied and round-by-round combat. MP
restoration (if enabled) is performed once, for the total amount needed by
the combo, and likewise all every-round actions (like automatic antidote use)
are suppressed during the combo, to avoid breaking it. The action will be
skipped without error if you're not a DB, don't know some of the individual
skills, don't know the combo itself in the case of rave combos, or have
insufficient MP for the entire combo and don't have in-combat restoration
enabled.

Revision: 8429
Adjusted indentation to conform to convention.

Revision: 8430
Adjusted indentation to conform to convention. Made code to decrement by one and bound below by zero somewhat less verbose.

Revision: 8431
Added slimelingFullness and initialized it to 0.0.

Revision: 8432
Bookshelf becomes available when the king is liberated, not if/when you later recall your skills.

Revision: 8433
Update bitter pill concoction which requires adv saucecrafting.
Also added manual tag to bitter pill concoction since this is an expensive item to create.

Revision: 8434
Hopefully final tweak to Louvre exit prediction, based on an apparently exact
model of how the game generates them. This still applies to manual
adventuring only; this is the last chance for anyone to point out any
problems with the predictions before they start driving automated Louvre
mapping.

Revision: 8435
A bit more support for the Crown of Thrones: the enthroned familiar is
tracked, shown by the "equip" command, and has experience added at the end of
each combat. However, there is still no way to enthrone from mafia, and
modifiers from the familiar aren't tracked.

Revision: 8436
Fix parsing of familiar names in the presence of an enthroned familiar.

Revision: 8437
Fix recognition of HTML-containing item names in your store inventory.

Revision: 8438
Fix handling of "as many as possible" option at the Crackpot Mystic - the
field value apparently changed at some point.

Revision: 8439
Gear Changer now displays the modifiers of the currently highlighted item or
outfit along the right side of the window.
Increment camerasUsed on the actual use of a 4-d camera, not on the
acquisition of a shaking camera; that was generating false counts due to the
inventory adjustments that combat-producing items do when used.
Added prefs "mayflyExperience" (reset per ascension) and "_mayflySummons"
(reset daily) to track mayfly use.

Revision: 8440
Added missing p to outfits.txt to correct misspelling of the name of the Arbor Day Apparel

Revision: 8441
Support for the Kegger in the Woods

Revision: 8442
When you turn in phone numbers, you lose them.
Update various monster stats courtesy of Relim.

Revision: 8443
Update HP of Dungeon of Doom monsters from Wiki.
Update Attack and Defense of Dungeon of Doom monsters from RT's spading.
Update HP, Attack, and Defense of Enormous Greater-Than Sign monsters from the
equivalent Dungeon of Doom monsters.

Revision: 8444
Adjust item drops for the Kegger in the Woods

Revision: 8445
Fix some item data

Revision: 8446
smoldering box is usable.

Revision: 8447
"combo rave steal" in a CCS no longer gets misinterpreted as a pickpocket.
Modifiers are now processed for a familiar in the Crown of Thrones. For the
various familiars that restore HP and/or MP on the first three rounds of
combat, I've assigned a HP/MP Regen modifier equal to one round's restoration
- since that's all you're guaranteed to get, if the combat is finished
quickly.

Revision: 8448
A Pastamancer wearing a spaghetti cult robe into the Temple loses the robe

Revision: 8449
Adjust certain monster item drop rates

Revision: 8450
Added CLI "enthrone" command. The Crown of Thrones is automatically equipped
first, unlike the chat command. Enthroning your current familiar will put it
back in your terrarium first, so that "enthrone" and "familiar" commands can
be given in either order without errors.
"enthrone" also added as a subcommand to "whatif".
Custom outfits with "T=familiar" in the name will enthrone that familiar when
put on. Obviously, the outfit should include the Crown for this to make
sense!
Familiar changing from within mafia is now done via an ajax request, and
should be slightly faster since your entire terrarium isn't being loaded.
"/familiar none" from chat no longer leaves mafia thinking you have a
familiar.
Putting your familiar back in the terrarium now cancels any item lock.

Revision: 8451
Added two ASH functions for dealing with the Crown of Thrones:
familiar my_enthroned_familiar()
boolean enthrone_familiar(familiar)
The output of "equip" now indicates if the familiar item is locked.

Revision: 8452
A CCS section can now contain many of the combat macro commands, which are
passed thru unchanged in a macrofied combat, or ignored completely if the
combat can't be macrofied: scrollwhendone, mark, goto, call, sub/endsub,
if/endif, and while/endwhile. There are two intentional omissions: "icon"
(which is meaningless in an on-the-fly macro) and "repeat" (which isn't safe
to use with mafia's combat actions, as they may expand to more than one macro
action). If you want an action to be repeated until the combat is over,
either put an explicit loop around it, or simply let it be the final command
in the CCS section in which case mafia will loop it for you.
An arbitrary macro command can be inserted in a CCS by enclosing it in double
quotes. This would be useful for newly-added commands (prior to explicit
mafia support being added), and also to override any mafia augmentation of
the command. For example, "pickpocket" (with the quotes) would
unconditionally attempt to steal an item, even if mafia thinks the monster
has no drops, or that all drops are guaranteed due to your item drop
modifier. (You might be planning to run away after a successful pickpocket,
perhaps.)
If you have a CCS section named [global prefix], its contents will be
macrofied prior to the section that matches the monster name or location (or
ignored in round-by-round combat). You can use it to define subroutines that
can be used from any CCS section. It would also be the ideal place to put a
"scrollwhendone" command if you want that globally enabled.
The CCS editor no longer inserts line numbers in each section, as they are no
longer very useful in the presence of macro loops, conditionals, and
subroutines that make the line number entirely unrelated to the round number.
Existing line numbers will disappear the first time you edit and save the
CCS. You can still manually type a number followed by a colon at the start
of a line, as a shortcut for replicating the previous line until the
specified line number is reached.
The CCS editor's "help" button now works in both view and edit modes.

Revision: 8453
Don't try to do breakfast stuff in lounge if your VIP key is not retriveable or
if you are not in a clan.

Revision: 8454
After you solve a chessboard, offer the chance to use another reflection of a
map, if you have any in inventory.

Revision: 8455
Add comments starting with "#" as a valid CCS line, for compatibility with
KoL combat macros.
CCS macro commands now have basic indentation applied when the CCS is saved.
(This isn't currently doing any real syntax checking, so "endif" will
unindent after a "while", for example.)

Revision: 8456
Add cancel button to the CCS editor, based on a patch by Garyzx.

Revision: 8457
If an effect's default extender is a "use" or similiar command that
references an unknown item name, the Maximizer now assumes that it's an
unidentified item (such as a DoD potion or slime vial), and hides it by
default. (With the Include option checked, such commands will appear
grayed-out, with a prefix of "identify &".)
If an error occurs when equipping items due to a CLI "maximize" command, the
failing item is added to the GUI list so that it can be retried, not just the
remaining equipment items.

Revision: 8458
Fixes to contact list:
- The "retrieveContacts" setting (default to true) determines whether KoLmafia
retreives your mail contacts. If it ever tries to retrieve them and finds none,
it sets it to false - and will never again to try to retrieve them, even if you
subsequently add some. This can't work; the only way to determine that we need
not retrieve contacts is to try and therefore find that it was a waste of time.
Therefore, delete this setting.
- Whenever you log in as a new user, clear and refill the contact list from the
new user's contacts.
- The contact list is used to set the "target" list on the SkillBuffFrame.
Unfortunately, it is set once and therefore doesn not change to reflect a
new user's list. Fix that.

Revision: 8459
Fix FamiliarData.getModifiedWeight() in the presence of a familiar weight
percentage modifier - a division by 100 was missing.
The three current sources of that modifier don't stack, so take the minimum
rather than adding values together.

Revision: 8460
Rats are in Tavern Cellar, not Typical Tavern

Revision: 8461
When equipping a previous item after a breakage, familiar items require an
additional check - that the item can be equipped on your current familiar.
Ignore the bogus lead necklace drops from the initial Arena visit with a BBB.

Revision: 8462
Add HP for cave boy frat pledge.
Since using a Reflection of a Map uses an adventure (unless you put it away),
log it in the session log as doing so.

Revision: 8463
In round-by-round combat, abort if MP restoration is requested and required
in Birdform (since none of the normal restoratives are usable), rather than
crashing due to a stack overflow.
In macrofied combat, always call the MP restore subroutine before skills if
requested, even in Birdform; instead, omit all of the item-based restoratives
from the sub. This better matches the abort behavior of round-by-round
combat, and opens the possibility of supporting the few Birdform-usable
restoratives (Consume Burrowgrub, for one).

Revision: 8464
Recognize "damage (with a quote in front) as an indicator of combat damage;
used by one of the magilaser blastercannon's hit messages.
Added the latest trick-or-treat items & effect, and various missing plurals.

Revision: 8465
Parse response for a simple visit to the clan VIP lounge, since visiting the
crimbo tree to see when the present will be available is a side effect of
such parsing.

Revision: 8466
Give the frilly skirt an [equip] link, not a [combine] link.

Revision: 8467
half of a memo and snakehead charm are both conditional drops

Revision: 8468
Preliminary support for the Rogue Program, including familiar data and some
of the arcade rewards.

Revision: 8469
Coinmaster support for Game Grid tickets.
Add some monster stats

Revision: 8470
Session logging for visiting playin arcade games: log turn # and deduct a token,
as appropriate.

Revision: 8471
Any acquisition message including "an effect" is now considered ineligible for a [use] link automatically, rather than needing an explicit list of effects that have the same name as an item.
In the Barrel full of Barrels, only 1-spleen items are considered a valid indication of a stat item barrel. This should fix problems with spleen familiar drops that happen to occur when fighting a mimic.
The Usable panel in the Item Manager now includes items with only a secondary use, such as curse items. The "use item" button now behaves more like the CLI "use" command: for example, if an equipment item has some alternate use link, the button will invoke that, rather than wearing the item.

Revision: 8472
Fix coffee pixie stick

Revision: 8473
Add the Shoot Web skill, granted by the plastic spider ring.
Add the Knight in White Satin's missing shield drop.

Revision: 8474
An attempt to fix "Cannot find monster" errors with certain monsters that
have nonstandard images - the image lacks the usual id=monpic, but there is
still the span with id=monname, so use that instead to locate the top level
of the HTML.

Revision: 8475
In the built-in send mail interface, the filter for item attachments now
allows gift as well as tradeable items.
Added a version of InputFieldUtilities.multiple() that takes a filter
parameter, as the filter field it uses inherently overrides any filter on the
underlying list - this was keeping the item attachment filter from working at
all.
Added missing monster data for El Vibrato Island.

Revision: 8476
The mana burning behavior is now split into two settings - a "start burning
at" percentage (new pref "manaBurningTrigger") and a "burn down to"
percentage (existing pref "manaBurningThreshold"). This should be more
efficient, since MP is burned in larger chunks, and allows better control
over libram summoning. If the start percentage is less than or equal to the
down-to percentage, you get the old behavior.

Revision: 8477
Added Ball Pit and Snack Machine to Daily Deeds. Remobved used imports.

Revision: 8478
Add a display of your current tokens and tickets in the arcade.
When starting a game of DemonStar, give a warning if the player has a weapon
with a power not between 50 and 150, or has no hat or pants equipped. The
details are subject to change as the game becomes better understood, but this
should prevent wasting turns and a token on a game that would be impossible
to win.

Revision: 8479
Fix usability of marrrmalade

Revision: 8480
Add "arcadeGameHints" preference, defaulting to false, to control Relay Browser
additions to arcade games.
Initial support for Fighters of Fighting:
- Log rounds in session log showing moves, HP of both fighters, and points
- (if preference is true) add choice spoilers, designating move choices as
Good, Fair, Poor, or Fail

Revision: 8481
Fix one of Serenity's threat messages.
If you use Static Combat Buttons, the "auto" button now takes the "Good" choice
in Fighters of Fighting.

Revision: 8482
When parsing fights, find the monname span and walk up the tree to the first
center (or body) node, rather than always going up 6 levels. Hopefully, this
will accomadate the subtly different parse tree that battles with large BRICKO
beasts supply, which was causing us to cut off parsing after the first action
in the round.

Revision: 8483
Add stats and items for various BRICKO beasts

Revision: 8484
Fights with autoattack have an extra "center" tag. Therefore, when deciding
what to parse in a fight, go one level up from the "center" tag.

Revision: 8485
Fix plural for carbonated water lily

Revision: 8486
Another attempt at distinguishing distributable clan items from normal item
drops.
Gun cleaning kit is not multi-usable.
Macro syntax checker updated to v1.2: no longer suggests quote marks around
multi-word parameters to the monstername predicate.

Revision: 8487
powdered donut gived Powdered effect

Revision: 8488
We used to locate the top of the fight text by looking for the monpic image.
Apparently, some monsters do not have that tag, so we switched to looking for
the monname span. Unfortunately, haiku combats have a monpic but no monname.
Therefore, look first for monpic (which works for almost every comabt) and only
look for monname if no monpic is found.
Give ilthy knitted dread sacks an "outfit" use link, not a "combine link.
The inflatable baseball bat has some modifiers now.

Revision: 8489
Input frames can be CLOSED as well as CANCELLED. Take no actionin either case.

Revision: 8490
Allow a [global prefix] CCS section to contribute to a generated macro, even
if a simple battle action is being used.
Bricks claim to be a gift item, but can't be given to other players via kmail
- they can only be thrown. Mark them as a display-only item, instead.
Update the filter on the built-in kmail attachment list, so that untradeable
items are hidden from the start.
If an opera mask is equipped, restore MP before any skill use, rather than
using up your existing MP before any restoration. This maximizes the benefit
from the mask.
When equipment is removed in combat by Zombo, update the equipment and
inventory lists appropriately. Not tested.
Fun Bluegrass Fusion delevels by 20.

Revision: 8491
Support for Vanya's Castle

Revision: 8492
Only transform wielded whips when you obtain the replacement while adventuring.
I.e., taking a pixel chain whip out of your closet does not automatically
replace a wielded pixel whip.

Revision: 8493
Fix for special MP recovery behavior when an opera mask is worn - it was
failing if you already had enough MP for the entire request.
Funk Bluegrass Fusion's deleveling isn't doubled by Stealth Mistletoe.

Revision: 8494
Comment out buffbots pointing to http://www.jick-nerfed.us/ as the site is no longer operational.

Revision: 8495
Add pixel stopwatch and associated adventure

Revision: 8496
A few food level changes and such pointed out by checkitems
Updata mall prices

Revision: 8497
Bump version to 14.1
 
Top