Version 16.0

lostcalpolydude

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.

Finally, if you've got a bug to report, make sure you read up on how to post a detailed bug report. That can be found here. 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: 11862
Cursed kegs and microwaves do not disappear when used

Revision: 11863
Fix the plural for Artist's Crème Brulée Torch of Fury
This entry may break in the future, it looks like there are a few typos

Revision: 11864
Hamethyst bracelets are nodiscard, not hamethyst necklaces

Revision: 11865
"modernize" barrel full of barrels handling somewhat by parsing unsmashed barrels whenever we see barrel.php, rather than parsing it once and then updating state on what /should/ happen when we submit further requests.

Revision: 11866
claybender glasses are single equip

Revision: 11867
if fullness display is enabled ("You gain X Fullness"), update fullness from that rather than from the internal database's value for fullness.

Revision: 11868
Update the URL that is checked to see if there is a new point release

Revision: 11869
Video Game monsters are objects

Revision: 11870
Parse puzzle text from the GamePro walkthru, and set choiceAdventure settings appropriately. Add a Solve button for the maze.
Improve damage estimates at A-Boo Peak for the first two rounds.

Revision: 11871
Fix some puzzle text in the walkthru

Revision: 11872
Don't use a CSA fire-starting kit if it would give pvp fights and your stone is not broken

Revision: 11873
Fix the check for whether a fire-starting kit is set to give pvp fights

Revision: 11874
Attempt to make "again" button work on mist-shrouded peak

Revision: 11875
Do not try to unlock Daily Dungeon rooms when you have keys in inventory but not in your closet. Use a PYEC on locked doors if you have one. Do not remove 2 skeleton keys from inventory when one is used to get past a locked door.

Revision: 11876
Add combats for Video Game dungeons
Fix boss combat entries for Suburb of Dis bosses

Revision: 11877
Add a link to spend fat loot tokens to the pre-ascend page

Revision: 11878
Basic initial support for Avatar of Jarlsberg

Revision: 11879
Link to Jarlsberg's gate when you level up as Jarlsberg instead of your (inaccessible) guild

Revision: 11880
A-Boo Peak cannot do negative damage

Revision: 11881
Moved some choice adventure settings out of item-driven to their respective zones

Revision: 11882
Fix Unknown item found: factoid message during init

Revision: 11883
Add some Avatar of Jarlsberg items and support for skills, including properly recognizing consumption limits

Revision: 11884
Add more Avatar of Jarlsberg items, update character state after you free the king

Revision: 11885
refactor CafeRequest to increment fullness after receiving the response, rather than when registering the request.

Revision: 11886
Add _carrotNoseDrops

Revision: 11887
Jarlsberg can wield chefstaves

Revision: 11888
Jarlsberg will not use the fax machine

Revision: 11889
Jarlsberg will not use blank-out

Revision: 11890
recipe for papier-machine gun

Revision: 11891
Update some monster drops

Revision: 11892
The operation patriot shield works the same for Jarlsberg as it does for a Sauceror
Recognize if a new item is a free pull

Revision: 11893
New Castle items and effects

Revision: 11894
Fix some plurals

Revision: 11895
Initial support for new Giant's Castle. Adds monsters, items, and new locations. TODO: Choice adventures, effects, crafting recipes

Revision: 11896
More castle items

Revision: 11897
Carrot Nose Daily Deed

Revision: 11898
Remaining known castle items, effects, and concoctions. Default choice for new S.O.C.K choice adventure

Revision: 11899
Fix steam-hat concoctions

Revision: 11900
New giants are probably all demihuman like the old giants

Revision: 11901
More Jarlsberg food/booze items

Revision: 11902
Add new castle semirate adventures

Revision: 11903
Do not automatically extend Jarlsberg +combat, -combat, or +ML skills. The combat modifiers are 15%.
Add morbid skull drop rates.

Revision: 11904
Basic support for castle choice adventures

Revision: 11905
Rename the castle choice adventures

Revision: 11906
Do not parse familiars from familiar.php for Avatars of Jarlsberg.

Revision: 11907
When encountering a new food or booze item, register the level and the size, print the entry for the corresponding consumable data file, and allow the user to consume the item.
The adventure range will be unknown, so the item will appear at the bottom of the list of food/booze.

Revision: 11908
HITS access is now provided by the rocketship

Revision: 11909
Fix spoiler for Goth Giant choiceadv

Revision: 11910
Exclude files and folders beginning with . from eclipse file searches (to prevent file searches returning results in the .svn directory)

Revision: 11911
soft green echo eyedrop antidote martinis do not take a turn to mix

Revision: 11912
This is lost's refactoring of crafting methods into three enumerations rather
than bitmasks, with a few bugs fixed.

Revision: 11913
Remove debug logging

Revision: 11914
Remove more debug logging. Allow no-create items to be queued.

Revision: 11915
Fix some code issues found using FindBugs

Revision: 11916
You don't need a starfish or wand for the tower as Jarlsberg

Revision: 11917
Add Jarlsberg recipes

Revision: 11918
Add ConcoctionDatabase.getAdventureUsage and getCreationCost to interface with
the internal maps to return 0, if the method is not present, as before

Revision: 11919
Add two Jarlsfoods and the Grill method to concoctions

Revision: 11920
Do not throw StringIndexOutOfBoundsException when "x" is entered as a command in the CLI. Almost certainly fixing symptom and not problem.

Revision: 11921
Add new Castle food and booze

Revision: 11922
In the Castle Basement, show whether you are wearing an amulet rather than how many amulets you have

Revision: 11923
Add Avatar of Jarlsberg drinks, thanks to Darzil @ kolmafia.us.

Revision: 11924
Update KoLMafia copyright message (HEY IT'S 2013 EVERYONE)

Revision: 11925
Recognize Jarlsberg companions

Revision: 11926
Only show Jarlsberg food/booze in the Food/Booze sections of the Item Manager
You need the blackbird hatchling as Jarlsberg

Revision: 11927
Jarlsberg's familiar battle is a combat

Revision: 11928
Add Jarlsberg bosses. Fix thwaitgold entry.

Revision: 11929
Recognize additional MP gain and free rests from Food Coma

Revision: 11930
Do not warn about ruining a 100% familiar run as Jarlsberg

Revision: 11931
Add cosmic six-pack. Only one of each Jarlsberg staff can be made.

Revision: 11932
mediocre lager comes from cosmic six-packs

Revision: 11933
Properly record your path when starting a new Jarlsberg ascension

Revision: 11934
Jarlsberg foods, thanks to Darzil

Revision: 11935
Jarlsberg can drink mediocre lager.

Revision: 11936
Add bounty for Giant's Castle (Top Floor)

Revision: 11937
Add plural and concoction for skeleton skis.

Revision: 11938
don't throw an NPE if a null WeakReference was somehow registered.

Revision: 11939
don't throw NPE if ClanLoungeRequest gets a blank response.

Revision: 11940
Fix a message for parsing the GamePro walkthru

Revision: 11941
When calling an ash script in the cli, allow passing multiple parameters separated by commas

Revision: 11942
When calling an ash script in the cli, allow passing multiple parameters separated by commas IF the args are surrounded by parentheses, as to not break existing scripts

Revision: 11943
Jarlsberg's pan

Revision: 11944
Psychosis phyla, Meatrealm elements

Revision: 11945
El Dia monsters do not use HTML entities in their name

Revision: 11946
Recognize folding Jarlsberg's pan (and Boris's helm) by parsing the response

Revision: 11947
Add missing plurals, thanks to AlbinoRhino @ kolmafia.us.

Revision: 11948
Enable HTTP keep-alive. This should (I hope) noticeably improve end-user performance.
Also remove a bogus network property setting (an integer property was being set to true).

Revision: 11949
let PulverizeRequest pulverize back items

Revision: 11950
don't keep-alive when sharing mall prices.

Revision: 11951
Fix quality listing for some Jarlsberg foods

Revision: 11952
address a memory leak in ChatPoller, add type safety

Revision: 11953
Fat loot tokens are no longer quest items, so remove the reminder to spend them before ascending

Revision: 11954
Add some plurals

Revision: 11955
You can use a titanium assault umbrella to unlock the Ground Floor of the Castle

Revision: 11956
Fix the item number for the titanium assault umbrella

Revision: 11957
There's no more need to remove A-Boo clues from inventory when encountering The Horror.
Add spoilers and settings for "A Moment of Reflection" and a few Memories adventures.

Revision: 11958
Add the Jiggle string modifier. Display the string modifiers of the currently highlighted item in the Gear Changer.

Revision: 11959
fix chatpoller NPE, add some chat-related type safety

Revision: 11960
Fix compiler error

Revision: 11961
fix session logging for ascending as an Avatar of Jarlsberg

Revision: 11962
HP for Video Game Dungeon monsters is based on muscle, not moxie

Revision: 11963
Racecar Bob got a new puppy.
This line, and those below, will be ignored--
M src/data/monsters.txt

Revision: 11964
When unknown choice encounter encountered, log choices to session log, not DEBUG

Revision: 11965
Display your current companion in the side panel. Recognize the ingredient cost of conjuring a companion. Add my_companion(). Reset your companion when you ascend. Track the daily use of Jarlsberg's ingredient-conjuring skills.

Revision: 11966
Fix companion recognition from api.php

Revision: 11967
Do not show the Familiar Effect string modifier in the Gear Changer frame.

Revision: 11968
fix matching for hatter command

Revision: 11969
New sea content

Revision: 11970
die -> das. der

Revision: 11971
Add plural, update diving gear modifiers

Revision: 11972
Fishy pipe daily deed
Mark fishy pipe reusable

Revision: 11973
Make $skill[].class return Jarlsberg for his skills. Fix to_class( int ) for Jarlsberg.

Revision: 11974
More sea content

Revision: 11975
Update sea cape, add support for saltwaterbed

Revision: 11976
More sea content. Update GamePro magazine plural to match KoL's fix.

Revision: 11977
You can speed up the Castle top floor with a mohawk wig. Add Mer-Kin rustler drops.

Revision: 11978
The scroll of Puddingskin gives Puddingskin. Tan gnat is a bug.

Revision: 11979
Display proper spoiler text for (not) wearing a mohawk wig for the Punk Rock Giant

Revision: 11980
Consummate cold cuts has a new plural. Add jam band. Add Wisniewski phylum.

Revision: 11981
Do not throw an NPE when a Doppelshifter turns into a Happy Medium

Revision: 11982
take_storage() returns false when you fail to pull an item, and can be used for free pull items. Do not pull a VIP key in Bad Moon since you cannot access the lounge.

Revision: 11983
Do not check Chez or the Microbrewery as Jarlsberg

Revision: 11984
Uncomment the code added in Revision 11825 by Roippi to add spoilers for the Twin Peaks Lodge adventure.

Revision: 11985
Add support for the "Skeletons and The Closet" choice adventure. Add the "skeleton" CLI command.

Revision: 11986
Track usage of the limited-use Jarlsberg jiggles in the following preferences:
_jiggleCheese
_jiggleCream
_jiggleLife
_jiggleSteak
Track the currently Creamed monster in _jiggleCreamedMonster.

Revision: 11987
Add the Avatar of Jarlsberg Staves daily deed. Track monsters banished with the Cheese Staff in _jiggleCheesedMonsters.

Revision: 11988
Fix parsing of charges left from Jarlsberg staves' descriptions. Fix Jarlsberg staves Daily Deed.

Revision: 11989
Display monsters banished with the Cheese Staff in the "Banished Monsters" daily deed instead of the "Avatar of Jarlberg Staves" daily deed.
Parse monsters banished with the Cheese Staff from the item's description.
Display the monster banished with Unleash Nanites in the "Banished Monsters" daily deed.

Revision: 11990
Fix FamiliarPool.NANORHINO familiar number.

Revision: 11991
Try to fix parsing of quest status from Council texts that contains "You acquire..." messages.
Add tracking for the different Bat Quest steps.
Fix council text for the start of the Goblin Quest.

Revision: 11992
More recognition that Jarlsberg can only consume his own food and booze

Revision: 11993
Parse items in Hagnk's and your closet that are only shown on custom tabs

Revision: 11994
For the Twin Peak +item test, fix exclusion of fairy +item, and also exclude Clancy and Eggman. Include +food drops.

Revision: 11995
Change check for +item% from familiars in the spoiler for the Great Overlook Lodge choice adventure.

Revision: 11996
Add initiative for lots of monsters. Return -1 for monster.base_initiative when initiative is unknown to distinguish that case from a known value of 0.

Revision: 11997
Differentiate Pooltergeist from Pooltergeist (Ultra-Rare). Abort if the latter is encountered.
Untested, unfortunately.

Revision: 11998
Finish adding the Pooltergeist (Ultra-Rare).

Revision: 11999
Restore the fix used by Holatuwol in Revision 9876 to only show relay browser warnings when entering the Daily dungeon.

Revision: 12000
Fix tracking for the following council quests:
- L06 Friars start
- L08 Trapper step 5
- L09 Topping end
- L11 McGuffin start
- L11 Pyramid steps 2-6
Fix check to allow auto-adventuring at the Shrouded Peak and and add a check to allow auto-adventuring in the Highlands.

Revision: 12001
Modify Cosmic Kitchen requests to conform to the KoL change.

Revision: 12002
Fix logging and response parsing for the Cosmic Kitchen.

Revision: 12003
New sea items, new libram

Revision: 12004
fix expression errors for some taffy effects

Revision: 12005
Made a typo fixing a typo. De typo the redetypoed typo

Revision: 12006
Correct rowToId

Revision: 12007
Parse response from Cosmic Cooking when executed from Relay Browser or visit_url

Revision: 12008
Fix spectral pickle monsters

Revision: 12009
Fix Vinegavotte

Revision: 12010
fix for concurrency issue: calling functions in relay overrides at the same time as CLI scripts causes data corruption.

Revision: 12011
expand the synchronization block in FunctionCall in order to make UserDefinedFunctions thread-safe as well.

Revision: 12012
default value for choiceAdventure678

Revision: 12013
allow vial of squid ink to be fuzzy matched

Revision: 12014
allow quest items to be fuzzy matched, irrespective of their tradeability.
revert Revision 12011, since UserDefinedFunctions are immune to cross-interpreter interference.

Revision: 12015
Make LibraryFunction thread safe, obviating synchronization in FunctionCall

Revision: 12016
Refactor functions and function calling to pass array of values to called
function and bind parameter variable references only in UserDefinedFunction.

Revision: 12017
Remove no longer needed variable

Revision: 12018
When invoking an ASH script from the CLI, parse for input parameters for main,
as always, but build an array of Values, rather than setting the variable
references directly. Call the main function with the value array.

Revision: 12019
Add "eudora" CLI command. Add a reminder to switch your current correspondent before ascending.

Revision: 12020
don't throw an NPE if familiar training aborts.

Revision: 12021
Add the _raveStealCount preference to track successful rave steal combos on monsters other than the Volcano Island monsters.
In the macrofier, skip "combo Rave Steal" when you reach 30 Rave Steals, unless you are fighting a Volcano Island monster.
Add 9th anniversary item.

Revision: 12022
Update Mr. Store parsing for the new layout

Revision: 12023
Block most requests with null referers

Revision: 12024
mer-kin gladiator mask lets you breathe underwater

Revision: 12025
vampire cape -> vampire collar

Revision: 12026
Add plural for teflon swim fins. The spooky vampire now drops a vampire collar.

Revision: 12027
Mark some items as multi-usable. Correct a couple of typos.

Revision: 12028
More Sea items and effects.
Update parsing of Spell Critical Percent and Elemental Resistance modifiers.

Revision: 12029
Recognize that cozy weapons are breakable equipment and treat them as such.
Add concoctions for cozy weapons.

Revision: 12030
Tiny code improvement with no visible effect

Revision: 12031
Fix Jarlsberg staff creation

Revision: 12032
Add Mer-Kin Deepcity and the Caliginous Abyss adventure locations and monsters. Add Mer-Kin outfits.
Fix typo in equipment.txt.

Revision: 12033
Add combats and underwater pressure for Mer-kin Deepcity locations.

Revision: 12034
Revert null referer blocking change

Revision: 12035
Fix Crappy Mer-kin Disguise outfit.

Revision: 12036
Fix fishy pipe entry

Revision: 12037
Fix "use link" for rusty hedge trimmers. Again.

Revision: 12038
Log the zone adventured in when ignoring a stat warning

Revision: 12039
Fix sauerkraut and sour cream quality

Revision: 12040
update questM13Escape questlog entry

Revision: 12041
refactoring: move global quest handling out of CouncilFrame into its own type

Revision: 12042
Track rare taffy summons

Revision: 12043
Add plurals, halloween candies

Revision: 12044
preliminary quest log handling for questL09 step2 sub-quests
clean up some formatting in QuestManager

Revision: 12045
reverse start and end values for boo and oil peaks

Revision: 12046
fix general storage/equipment storage item manage panel header persistence

Revision: 12047
update twinPeakProgress after successfully taking the respective choiceadventures.
(for posterity: twinPeakProgress is a nibble bitmask with least significant bit set for the first choice and the most significant for the fourth)

Revision: 12048
gracefully handle broken HTML in council text matching

Revision: 12049
Fix quest log completion text for the level 3 quest.

Revision: 12050
fix quest log regex for quests with <p> embedded in them

Revision: 12051
Add Grandma shop, fix Pixel shop, refactor Jarlsberg shop

Revision: 12052
Finish adding support for Grandma's shop. Remove new item detection for the Pixel shop since item ids are no longer present.

Revision: 12053
Update star chart crafting

Revision: 12054
Mer-kin Temple boss drops

Revision: 12055
Fix parsing of text for Single Equip

Revision: 12056
Fix Pigsticker of Violence

Revision: 12057
Add some plurals, update item names in modifiers

Revision: 12058
Only parse for star chart crafting when star chart crafting was attempted

Revision: 12059
Add new crafting methods and skills to output for the "recipe" command

Revision: 12060
add ASH get_moods(), returns an aggregate of currently defined mood names.
"mood listall" in the gCLI will also print a list of defined moods.

Revision: 12061
reset peak progress preferences on ascension

Revision: 12062
add ASH get_outfits() and get_custom_outfits()

Revision: 12063
Experimental support for adventure queue tracking. For now the only user-facing feature is a new $location proxy field.
Users may notice a small .ser file in their data directory. This contains the serialized adventure queue information. As of right now, serialization (i.e. disk I/O) only happens during login/logout, which is probably for the best, though data loss will occur if mafia is not closed properly.
Also, of course, there are in reality two queues per zone: a combat and noncombat one. For now we only track the combat one. Adding the noncom one is actually pretty straightforward (though less useful) but let's work the kinks out of the first one before we go deeper.

Revision: 12064
fix NPE if last location is $location[none]

Revision: 12065
fix serialization on *nix

Revision: 12066
starting hats now smash into useless powder

Revision: 12067
do a better job of resolving last visited location name for adventure queue

Revision: 12068
re-fix $location[none] NPE

Revision: 12069
after deserializing, check if there are any new zones that should be added to the adventure queue, adding them if so

Revision: 12070
More adventure queue support
-Do a better job of canonicalizing (that's a word) monster names.
-Show queue-affected encounter rates in Location Details pane (not yet influenced by things such as olfaction).
-Overloaded version of appearance_rates:
appearance_rates( $location[] location, boolean includeQueue )

Revision: 12071
Big Brother sells black glass

Revision: 12072
add autostop for end of giant's castle quest
rename .queue proxy record to .combat_queue

Revision: 12073
goofballs -> bottle of goofballs

Revision: 12074
don't unequip breakables after adventure sequences in which something broke but we replaced it.
If a "previous" item was equipped in lieu of the breakable, replace instances of the breakable in all outfit checkpoints with the previous item. This might be slightly undesirable in some fringe cases, but it has to be better than replacing all instances with nothing.

Revision: 12075
Maximizer: consider leaving equipment slots empty if (and only if) they are currently empty. This implies that -tie will now leave the slot empty if nothing available has a >0 score.
Affects familiar equipment too.

Revision: 12076
Update monster initiative and phyla values based on new Manuel data

Revision: 12077
Document "dump" keyword in maximizer help

Revision: 12078
teach maximizer that "skeleton" command uses a skeleton

Revision: 12079
fix CheckedItem NPE

Revision: 12080
update karma count dynamically on valhalla decorator as you click through the prompt.

Revision: 12081
Fix recognition of very ... angry cavebugbears

Revision: 12082
provide a relay warning if you forget to apply chalk in the billiards room (and you haven't yet gotten the key, and you have a pool cue, etc.)

Revision: 12083
The Mer-kin bladeswitcher can remove your weapon

Revision: 12084
Add noncombat adventure queue support. Note that upgrading to this revision will unfortunately clear your current combat queue. Sorry, hopefully not a big deal for anyone.
This is pretty naive in its handling; superlikelies will still get counted, and I don't even know what will happen for choice adventures that lead to a combat. Choice adventure chains should (hopefully) only have the initial choice put in the queue.
Add .noncombat_queue as a $location proxy.

Revision: 12085
don't show the billiards room relay warning if you have not yet burned the requisite 5 turns of delay()

Revision: 12086
fix logging after new billiards warning, and also kung fu warning (and future-proof against it happening again when more warnings are added)

Revision: 12087
Clothing of Loathing recipes, Dad Sea Monkee drops, Temple effects

Revision: 12088
Sea holster

Revision: 12089
Do not try to unlock your guild in Zombiecore and Avatar of Jarlsberg.
Fix spoiler for the There's No Ability Like Possibility choice adventure.
That gum you like gives Sugar Rush.

Revision: 12090
Don't prompt about the MCD for the Boss Bat until it can actually show up

Revision: 12091
Drop rates and pressure penalties for the sea

Revision: 12092
Fix the check for when the Boss Bat can show up

Revision: 12093
fix a couple modifiers

Revision: 12094
code reorganization: group relay warning methods in a dispatch method together instead of inlined in run()

Revision: 12095
Fix updating of twinPeakProgress

Revision: 12096
update oilPeakProgress after defeating oil monsters

Revision: 12097
decrement booPeakProgress by 2 when a ghost is killed

Revision: 12098
Stick-Knife of Loathing is now a knife

Revision: 12099
update booPeakProgress after The Horror... choice adventure

Revision: 12100
also give consolation quest progress if beaten up from The Horror...

Revision: 12101
add nonsensical autosell values for some items

Revision: 12102
Fix the damage displayed for A-Boo Peak

Revision: 12103
fix regression bug caused by out-of-place bracket

Revision: 12104
re-fix the fix of The Horror, which I thought was fixed but now the fix is fixed

Revision: 12105
maximizer MRU is now opt-out.
MRU places your last few entries (default: 5) in the top of the maximizer dropdown. Size of this list can be controlled by setting maximizerMRUSize; setting it to 0 will turn off this feature. Default maximizer entries will remain at the bottom of the dropdown under a JSeparator (AKA: a line).
I know that it is perhaps confusing for maximizerMRULength to turn into maximizerMRUSize for no apparent reason, but it was the simplest way to reset that pref to default for everyone.

Revision: 12106
Fix a few monster entries

Revision: 12107
Sea bosses

Revision: 12108
print dolphin thefts to session log

Revision: 12109
Future-proof guild unlocking for new classes being added

Revision: 12110
Add some plurals

Revision: 12111
CSA all-purpose soap isn't multiusable

Revision: 12112
Fully delete preferences that start with _ and are not defined in defaults.txt on rollover rather than setting them to a blank string.
Suppress CLI output when setting a _pref that is not defined in defaults.txt.

Revision: 12113
Preliminary support for BIG! path

Revision: 12114
Account for extra ML in BIG! path

Revision: 12115
You don't get any free runaways when you are BIG

Revision: 12116
big pants

Revision: 12117
Thwaitgold Goliath beetle statuette

Revision: 12118
Update coinmasters to match KoL's change

Revision: 12119
Update mallprices and some item data. Change the URL for sourceforge links in Release Notes

Revision: 12120
Bump version to 16.0
 
Top