Version 13.8

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: 7800
When you climb into the well and encounter the giant octopus, remove the memory
of a grappling hook from inventory, if it was there.
Remove bogus "body" tag that precedes "head" tag on topmenu.

Revision: 7801
Fix a few item drops from my own observations of the Nemesis chamber as a
Sauceror. They disagree with what the Wiki says, but my own eyes saw them...
Add an "auto confirm bets in MMG" preference to pre-check all the confirm
checkboxes on the bat page. Danger! Use at own risk!

Revision: 7802
Any Nemesis Cave monster can drop any paper strip.

Revision: 7803
When you visit Big Brother, note how many sand dollars he thinks you have and
adjust inventory if necessary.

Revision: 7804
Pick up item id field and quantity field individually, so that they can appear
in any order in the URL.

Revision: 7805
Add -Xincgc option to Mac OS X application bundle and Debian package (currently not supported by jsmooth for the Windows EXE) to improve startup time.
Categorize platform-specific utilities into folders to make it clear which files need to be replaced, in the event that we switch libraries to get JVM parameter support for the Windows EXE bundle.

Revision: 7806
Remove skeletons folder

Revision: 7807
Add -Xincgc to DMG target

Revision: 7808
Add ASH functions: have_display() and have_shop()
display_amount() will not hit server to fetch display unless have display case.
shop_amount will not hit server to refresh store inventory unless have shop

Revision: 7809
Remove duplicate concoction. Add historical conocoction. Remove nigiri sushi
from inebriety.txt; it is already in fullness.txt, where it belongs.

Revision: 7810
Chat refactoring, which separates ChatManager into several utility classes.
These include a parser (which figures out what kinds of messages were present), a formatter (which normalizes the content), a manager (which does all of the buffer/window/logging management), and a centralized poller/sender (which ensures that all chat requests are managed by KoLmafia).
In order to work around the limitation in KoL chat where blue messages can only be received by one window at a time, we introduce our own 'lastSeen' management (in KoL chat, blue messages do not increment server side lastSeen). While this solves the problem of received messages, sent messages will still only show up in the browser window that sent it (though KoLmafia chat will always be accurate as a result of the centralization).
Chat hasn't been fully tested, so there are likely some things that do not work. Also since a lot of excess code was eliminated in the refactoring, some things may be missing.

Revision: 7811
Disable ajax outfit switching until we better understand KoL's algorithm for
choosing accessory slots.

Revision: 7812
rocky road ice cream has two recipes.
So does a sticky meat kilt.
Add recipe for pink pinkslip slip

Revision: 7813
Handle messages from Dungeon

Revision: 7814
Ensure that external chat messages from relay browser don't get their grafs pre-processed

Revision: 7815
Move ajax command execution to private scope

Revision: 7816
Fix chat not appearing as a main GUI tab if preferences dictate as much

Revision: 7817
Add poolSharkCount setting to track level of spectral pool training

Revision: 7818
Remove delete/recreate file steps when creating output streams

Revision: 7819
Remove extra whitespace that shows up when opening relay chat after opening internal chat

Revision: 7820
Track Under the Knife: "sexChanges" counts the number of times you accept the
operation. "_sexChanged" is true if you've done it today.

Revision: 7821
concoctions update: soup-chucks & rocky road ice cream

Revision: 7822
Changed plural of tap shoes.
Made error message more specific when failing to buy an item in ronin.

Revision: 7823
Recognize chat messages for people who have show tags for current channel deactivated

Revision: 7824
Fix /me handling when show tags for current channel is deactivated

Revision: 7825
Fix chat text re-appearing as event messages due to keeping the wrong pattern matcher

Revision: 7826
Ensure active channels are detected, even if relay browser is opened first

Revision: 7827
Less error prone handling of /channel and /switch commands

Revision: 7828
Better handling of closing the chat window while relay browser chat is still running

Revision: 7829
From Wiki: Arena parameters of Chauvinist Pig and Dancing Frog. Special Cage
Match loss message for Chauvinist Pig.

Revision: 7830
When removing ingredients from inventory, parse sushi type out of creation URL
rather than reading the (truncated) name from the response text.

Revision: 7831
Fix all /listen channels being unlistened when closing chat
Fix double clicking on contact in popup resulting in a window with the wrong key being opened

Revision: 7832
An attempt at better handling of scripts that produce CLI output faster than
the display can be updated, which previously caused the AWT event queue to
grow without bound: Every display update now carries a sequence number,
which is incremented for updates that entirely replace the display (CLS, and
trimming of the display when it gets too big). Updates with an outdated
sequence number are simply ignored. Assuming that updates can be dequeued
and ignored faster than a script can generate and enqueue them, the queue
size should remain bounded.

Revision: 7833
Added ASH function visit_url(string, boolean); if the 2nd parameter is false,
the URL will be retrieved via a GET request even if it contains parameters.
If it is true, behaves just the same as the 1-arg version.
Reordered some items in mafia's sidepane so that the refresh button is always
clickable, even if the window is small enough that the modifiers display
entirely overlaps it.

Revision: 7834
Choice 376 is Ancient Temple (unlocked) and 367 is Ancient Temple (the Wiki
has them backwards). Unlocking the ancient temple should now remove the two
stone half circles from inventory.

Revision: 7835
Minor performance improvements to chat

Revision: 7836
Re-add option to add gCLI to chat

Revision: 7837
Improved recognition of password hash changes when changing a password

Revision: 7838
Fix private message windows not reopening after they've been closed

Revision: 7839
Update to highlighting to avoid chat being mangled when highlights are applied (may result in a performance penalty due to the frequent toLowerCase calls).

Revision: 7840
Initial support for Stocking Mimic and Dec 1 Advent items

Revision: 7841
Combat item count adjustment is now done after normal result parsing, so that
combat items acquired during combat are not momentarily double-counted (a
condition that may not ever get corrected, if the item was immediately used,
ending the combat). Also, the first item in the popup was never being
adjusted.
Fixed parsing of the hiddencity altar option, and corrected the help string.
Filthy chocolate lucre is now multi-usable.

Revision: 7842
Save paths as relative rather than as absolute, provided they are located within two folders of the KoLmafia root location. Improve recognition of these relative paths when loading the relay browser in Windows.

Revision: 7843
Fix dungeon channel messages not being recognized due to negative player IDs

Revision: 7844
Fix null pointer exception when writing headers with a null form connection

Revision: 7845
Generate pseudo responses for chat messages to ensure that proper headers are applied to them (in case missing headers causes problems in some browsers).

Revision: 7846
Switch to getCanonicalPath instead of getAbsolutePath

Revision: 7847
Better handling of default relay browser

Revision: 7848
Fix relative path handling when the parent directory is the root of a drive/mount

Revision: 7849
Fix Javascript and cached images not loading on Windows

Revision: 7850
When calling an ASH function recursively, save variable bindings from all
nested scopes, not just the top-level scope.
The outermost call to any function (and therefore, ALL calls to non-recursive
functions) no longers saves bindings at all, as that's pointless.

Revision: 7851
Restore bindings even on outermost/non-recursive calls, so that variable
values aren't retained in memory unnecessarily.

Revision: 7852
ASH extract_items() and extract_meat() now delete any spaces immediately
after a hyphen, which are sometimes present in kmailed item's names.

Revision: 7853
Recognize when the filthworm queen has been slain.

Revision: 7854
Reorganize Underwater locations based upon their penalty levels (and to match the wiki ordering).
Added dance card as a possible condition.
Added 8 any paper strip as a possible condition.

Revision: 7855
Add drop rates for memories of DNA.
Marked groupie spangles conditional.

Revision: 7856
Adjusted max weight for Stocking Mimic.

Revision: 7857
Added new section to Daily Deeds panel to track adventures gained from familiars and equipment.
Added some logic to remove hottub and telescope buttons while unavailable in bad moon.

Revision: 7858
InventoryManager.getAccessibleCount() now counts items equipped by all your
other familiars, in addition to your current equipment. (This doesn't affect
ASH available_amount(), but perhaps it should.)
Modifier Maximizer now supports "switch <fam>" to consider switching to a
different familiar.
Maximizer will not consider any item you don't actually have unless it has an
actual benefit - that protection previously only applied to items that would
be bought from the Mall, not NPC purchases/creation/etc.
Maximizing "adv" now implies "-tie". In the unlikely event that someone
wants to use the tiebreaker in this case, spelling the modifier in full as
"adventures" bypasses this.

Revision: 7859
Adjust the conditions list for the Marinara Trench to make bubbling tempura batter the default.

Revision: 7860
Change the way numbers are parsed (only remove commas, assume all other characters are meant to be part of the number). This should address the problem where floats are not parsed properly when they are in scientific notation, or whatever that is officially called. It may introduce other problems where people relied on the automatic non-decimal character removal, but we'll address those as time goes on.

Revision: 7861
Fix login-related number parsing errors resulting from previous commit.

Revision: 7862
Rather than crash when failing to parse an integer, just print a stack trace

Revision: 7863
Fix parse problems when checking against pulverize data and current amount in stock during mall searches

Revision: 7864
Return the same value as would be returned in the old parsing strategy to avoid regression issues while we track down other places where more exact parsing is needed

Revision: 7865
Fix integer parsing when trying to determine equipment power when deriving pulverize results

Revision: 7866
Remove trailing space when parsing integer

Revision: 7867
Only parse skillId when the name of the action starts with the word 'skill' to avoid parse exceptions

Revision: 7868
Fix parsing of infinite-duration effects

Revision: 7869
If given a zero-length string, interpret that to be zero when parsing numeric values

Revision: 7870
Fix clan stash and run away threshold parsing

Revision: 7871
Switch to UTF-8 as the default local file encoding, but leave Latin-1 as the assumed encoding for remote files if no encoding is provided in the connection headers.

Revision: 7872
Make sure that we return 0 when parsing integer values of completely non-numeric strings (regression issue)

Revision: 7873
Fix parsing exceptions when parsing effect names in ASH scripts

Revision: 7874
Notice when your cyber-mattock breaks in battle.
Add Bruised Jaw
Fix some consumption stats for Crimbo candies

Revision: 7875
Recognize /l as equivalent to /listen
Recognize /c as equivalent to /channel

Revision: 7876
When processing /listen messages, make sure to open the correct buffer/window rather than always opening a window corresponding to the channel name

Revision: 7877
Provide an isNumeric and an isFloat routine to minimize code duplication
Reorganize integer parsing to better recognize floats followed by 'm' or 'k'
Properly handle non-numeric adventure ids when they are encountered during adventuring

Revision: 7878
Fix parsing of mallsell command

Revision: 7879
Add fancy chocolate car

Revision: 7880
Add new items, effects, familiars, skills, etc.

Revision: 7881
Add some support for Crimbo Town:
- When you turn in elf resistance buttons to Don Crimbo, deduct from inventory
- When you start an 11 game or double down in an 11 game, deduct Crimbux
- When you play the slot machine, deduct Crimbux
- Starting an 11 game or playing the slot machine takes turns. Honor counters.

Revision: 7882
It's Antarctic Ice Tea, not Iced Tea.
Fix consumption data for Crimbo Cafe items
Add pair of bolt cutters

Revision: 7883
Fix recognition of the Crimbo Cafe

Revision: 7884
Deduct meat from inventory when you buy Crimbux at the change machine

Revision: 7885
Change Coinmasters: the title of the frame show only the coins that correspond
to the tab you are currently viewing, rather than all types of coins separated
by slashes.
Initial implementation of the Crimbo Cartel as a coinmaster with Crimbux as
currency. Not actually TESTED yet (except to see how the UI works), since none
of my characters are prepared to spend any Crimbux yet...

Revision: 7886
Fix parsing of last adventure id when last adventure id is non-numeric

Revision: 7887
Recognize /f shorthand for /friends

Revision: 7888
Fix generating of clan snapshot for clans bigger than 100 players
Fix parse exceptions that come up when trying to generate a clan snapshot

Revision: 7889
Remove extra debug printing

Revision: 7890
Add daily crimbo elf drops. At outfit id for Snowman Suit

Revision: 7891
Allow ode (and only ode) to be cast with a lesser weapon when out of Ronin

Revision: 7892
Daily Elf

Revision: 7893
Add a variety of plurals

Revision: 7894
Mark filthy poultice and gauze garter as combat items

Revision: 7895
More straightforward skill weapon retrieval strategy to take into account existing skill weapons

Revision: 7896
Elf of the Day

Revision: 7897
When you buy or sell something to a coinmaster, immediately update token count
in frame title.
Fix purchasing from the Crimbo Cartel
Fix exception generated when you log out with chat open

Revision: 7898
When we discard an item from the familiar item slot (read: sugar shield), don't
leave it in inventory.

Revision: 7899
Fix location details for toy factory. add throwing wrench and live wire to drops

Revision: 7900
Fix consumption data for crimbo candy

Revision: 7901
When reading zaplist, use canonical name of items: jabañeror pepper,
rather than having a unicode tilde n character.

Revision: 7902
When we read effects from the CharPane, if we succeed in locating the effect by
ID, use our own internal name for it, rather than what appears on the charpane
(which can include unexpected Unicode character entities).
When parsing Custom Combat scripts, "stealth" does not mean "steal"

Revision: 7903
First attempt at Stealth Mistletoe: if it's round 2 and you hung up some
mistletoe, custom combat scripts (and button) should still allow you to steal.

Revision: 7904
Visiting Mr. Store with no Mr. Accessories no longer gets NumberFormatException

Revision: 7905
made the slimeling growable

Revision: 7906
Update a few extra pounds and curative carol

Revision: 7907
Penguin of the day

Revision: 7908
Shorten pattern for 3rd time helmet (on mad hatrack) message.

Revision: 7909
Mark various hp, mp, and hpmp items as combat usable

Revision: 7910
Add speed limit shield, penguin of the day, and advent prize of the day

Revision: 7911
Don't double process meat expenditures from NPC stores

Revision: 7912
Penguin of the day

Revision: 7913
night vision goggles -> night-vision goggles

Revision: 7914
Update some details for night-vision goggles.

Revision: 7915
When reading a file into a map, if there are insufficient data fields on a line,
use default values for remaining fields

Revision: 7916
Penguin of the day

Revision: 7917
Do not double count Meat spent at cafes

Revision: 7918
Advent item of the day. Penguin of the day. Lose quest items when you gain
contraption. When you acquire (crimbuck, lucre, sand dollar), update title of
current Coinmaster panel, if appropriate.

Revision: 7919
Trap NumberFormatException in ASH and give an informative message, including
file and line, rather than printing a useless stack trace.

Revision: 7920
On the Item Manager, when you are looking at the closet and click the "use"
button, move the selected items to inventory and then use them, rather than
trying to acquire them from storage, the mall, or from parts.

Revision: 7921
Make sure that we are parsing integers following "You gain", "You lose", or "You
spend", to keep from being fooled by, for example, "You lose interest".
First cut at support for Crimbo Tree: log when you visit it.
Crimbo day items. Crimbo tree items, skill, effects, familiar, ...

Revision: 7922
Add descids for Crimbo Candy Cookbook and red-and-green sweater

Revision: 7923
Add "candy" as a secondary use for items

Revision: 7924
Added some crimbo item plurals

Revision: 7925
Be a little more robust in how we ask the restaurant or brewery for the daily
special. If you cannot visit one or the other because of your zodiac sign,
say so.

Revision: 7926
lways open game.php to start Relay Browser.

Revision: 7927
Keep track of compact mode for charpane and topmenu seperately.

Revision: 7928
Trim whitespace from start and end of strings before parsing as an integer

Revision: 7929
Refactor ASH operator evaluation and allow < <= >= > to be applied to strings.

Revision: 7930
VIP lounge is available one the king has been liberated.

Revision: 7931
Add a couple more crimbo plurals

Revision: 7932
When you visit the shore, add a 35-turn counter to let you space out your
visits, if you wish.

Revision: 7933
For mana burning: decouple casting of summoning skills from non-mood skills;
you can now have mana burning cast breakfast skills, libram skills, and so on
without having it boost temporary non-mood effects

Revision: 7934
If you take a shore trip which does not give you an item and already have a
counter going, keep it.

Revision: 7935
Give the player a warning screen if they try to use an infernal seal figurine in
the relay browser but are not wielding a club

Revision: 7936
Warn user to wield a club if attempting to use a seal figurine from the Item
Manager without a club equipped.

Revision: 7937
Just as we do with the clan stash, remember when one's display case or store's
sold item list is retrieved.
ASH display_amount(), shop_amount(), and stash_amount() now look at those
status variables to decide whether to refresh the list, rather than assuming
that an empty list means it hasn't been read yet.
Clear the clan, display case, and store caches when you switch characters.

Revision: 7938
If you log out while in chat, you can get a null response to a request. Don't
take an NPE if you do so.

Revision: 7939
Correctly parse "You gain" and "You spent" messages from visiting NPC stores and
do not modify your Meat balance based on the quantity you acquired, as must be
done for purchasing from mall stores.

Revision: 7940
Fix mafiatization of function and go to menus if compact top menu desired.
Add Craft and Log Out to compact function menu
Do not try to look at vinyl boots after you have logged out.

Revision: 7941
ASH: interpret <anything> + <string> as a string concatenation, rather than only
<string> + <anything>

Revision: 7942
Allow "aggregate" as a imple ASH type. The only thing you can do with a variable
of such a type is to pass it to a function that accepts any aggregate, such as
map_to_file.

Revision: 7943
You can Summon Crimbo Candy once per day. Add that skill to breakfast. Untested.

Revision: 7944
Add ASH function: boolean is_numeric( string );

Revision: 7945
If you attempt to call to_string() with an argument that cannot be converted
to a string (an aggregate, for example), the ASH parser infinitely recursed
trying to find a function that could do it. Don't do that.
If you define a typedef and specify that it is the return type of a function,
you should be able to return a variable (or function call) that has the base
type. Now you can.

Revision: 7946
ASH to_int() now simply prints informative error messages, complete with file
and line, when given bogus input, rather than stopping execution of the script.
Bogus input returns whatever int used to be returned.

Revision: 7947
Crimbo Town has faded into the mists:
- The Crimbo Cafe is not open
- The Crimbo Cartel is no longer available on Coinmasters
- The Crimbo Town adventuring areas are now in Crimbo09 (Retired), not Holiday

Revision: 7948
Arena parameters for Snow Angel

Revision: 7949
Add stinky cheese ball and its squishables

Revision: 7950
Update mallprices.txt. Add Static Shock and Give Your Opponent the Stinkeye
combat skills. (Unverified)

Revision: 7951
Bump version to 13.8
 
Top