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: 20276
Don't nag about Ode if you are in G-Lover with no access or desire to use buffbots
Revision: 20277
Move handling of consumable flags (like martini, pizza, lasagna etc) to inebriety.txt and fullness.txt
Revision: 20278
Fix consumable flag bug and add new flags for martinis and some missing pizzas
Revision: 20279
SpinMaster lathe
Revision: 20280
Probably fix the link provided when unpacking a lathe
Revision: 20281
WHen generating up arrow links in the charpane, do not do mall searches to decide if you can
acquire by creation the item that generates the effect.
Revision: 20282
If looking up shop.php ROWs, if there is a Results: section before the actual shop inventory,
do another find() to get the actual shop name.
Revision: 20283
Add more missing WINE, MARTINI and SAUCY tags. Create new SALAD, BEER and CANNED tags
Revision: 20284
Update OSXAdapter to use Desktop and Taskbar functions, if you are running at last Java 9, since come Java 14,
the old way of doing things is broken
Revision: 20285
Initial lathe woods and items
Revision: 20286
Your SpinMaster™ lathe is a coinmaster. Add ancient redwood. Add Lathed Livery.
Revision: 20287
Add three more items to the SpinMaster lathe coinmaster
Revision: 20288
bundles of lathing wood. Visit Your SpinMaster™ lathe at breakfast.
Revision: 20289
Only visit lathe at breakfast if you have one
Revision: 20290
Add _spinmasterLatheVisited. Only visit the lathe during breakfast if it hasn't already been visited.
Revision: 20291
Add purpleheart logs and purpleheart "pants".
Revision: 20292
You don't "unlock" items in YOur SpinMaster lathe; items are available only if you have the currency.
Therefore, continue to learn new items, if any, but simply add them to the coinmaster buyitems
(and purchase requests, etc.) when detected. Lathed Livery is a zapgroup. Equipment powers.
Guzzlr tablet is no longer a free pull
Revision: 20293
Expeirmental: If you have jython in your classpath, run python files from the commandline. Watch this space
Revision: 20294
Revert python stuff for now
Revision: 20295
Add TMate SVNKit license
Revision: 20296
Update SVNKit to 1.10.1. Updated required libraries.
Revision: 20297
Initial support for dripwood slab and drippy diadem. Remove zap group for Lated Livery items
Revision: 20298
Add boolean _redwoodRainStickUsed property to track/control the once-per-day usage of the redwood rain stick
Revision: 20299
Recognize Grey Goo
Revision: 20300
Modernize a lot of code to eliminate lots of unchecked references
Revision: 20301
Grey Goo locations, effect
Revision: 20302
eliminate deprecated explicit boxing
Revision: 20303
Clearer Neverending Party spoilers
Revision: 20304
Fix hundreds of compiler warnings. 2267 remain, using Java 14.
Revision: 20305
Add coinmaster entry for drippy diadem. giant turkey leg easier to equip.
Revision: 20306
Eliminate all [static] warnings - calling a static methid as if it is an instance method
Revision: 20307
Fix REVISION
Revision: 20308
Fix compiler warnings in most of ASH and some CLI commands
Revision: 20309
Resolve some compiler warnings.
Revision: 20310
Add log_n function. One argument for natural log, two arguments for log base n
Revision: 20311
Fight text is now required to contain a MONSTERID
Revision: 20312
fix a few food and booze entries
Revision: 20313
Fix many compiler warnings in Gear Change Frame. Render items names prettier.
Revision: 20314
Whack Gear Change Frame to update the equipment lists (the GUI models) in the Swing Event thread.
Revision: 20315
Don't update slot -1
Revision: 20316
Handle changing familiar equipment via inv_equip.php
Revision: 20317
Add shop_limit function to fetch the limit set for an item in your shop
Revision: 20318
Grey Goo monsters and items
Revision: 20319
Goocore Ronin lasts 10000 turns. Visiting the Goo Prism takes a turn.
Revision: 20320
ASH "new" constructor for a record is expected to coerce expressions into int, float, string, or boolean.
It did not do so. Make it corece as needed.
Revision: 20321
Log daycount when first got Shen Copperhead, Nightclub Owner. Thanks to fredg1 @ Kolmafia.us
Revision: 20322
goo monsters have multiple images
Revision: 20323
Use release="8" in the jvac ant task. WARNING: requires ant 1.9.8 or later
Revision: 20324
Add fistful of wood shavings. Don't show unavailable skills at the gash as "skills you have not learned".
Revision: 20325
plurak
Revision: 20326
Initialize KoLCharacter.currentModifiers early in class initialization,
before subsequent classes get initialized that want to refer to it.
Revision: 20327
Add zap group for rare oyster eggs
Revision: 20328
Passive skills without Gs are ineffective in G-Lover
Revision: 20329
minor item changes from latest KoL changelog
Revision: 20330
Do not try to calculate dwarf runes in the warehouse if KoL did not give you an item
Revision: 20331
Fix Meat drop for the ghost of Phil Bunion
Revision: 20332
Adjust monster appearance rates based on Red-Nosed Snapper tracking, thanks to fredg1
Revision: 20333
PVP Seasoning. gregooball. Item drop for dismal swamp b
ss" monsters.
Revision: 20334
New Lyle and IOTM stuff
Revision: 20335
More pocket drops from spreadsheet or mall
Revision: 20336
onyx, alabaster, muffins
Revision: 20337
More cargo shorts stuff
Revision: 20338
cargo shorts stuff
Revision: 20339
cargo short effects
Revision: 20340
More cargo short items
Revision: 20341
Start adding data for Cargo Cultist Shorts. This isn't used for anything yet.
Revision: 20342
6 cargo cultist shorts effects
Revision: 20343
two more items, 2 more effects
Revision: 20344
More items and effects
Revision: 20345
support for onyx and alabaster chess pieces and fancy chess set
Revision: 20346
Completely whack how the item lists that back up the models in the Gear Changer get updated.
Code is much simpler and should be much easier to maintain, but is it correct?
Revision: 20347
Recognize "You've already played today" message for the fancy chess bpard
Revision: 20348
Using a desk bell redirects to a fight.
Revision: 20349
Initial implemen tation of CargoCultistShortsRequest. Adds properties "cargoPocketsEmptied" (a comma-dlimited
list of pockets you have emptied this ascension) and "_cargoPocketEmptied" (a boolean denoting whether you have
picked a pocket yet today).
Revision: 20350
Add simple "cargo" command to manipulate your Cargo Cultist Shorts
Revision: 20351
Log an error when you've already picked a pocket in your Cargo Cultist Shorts today.
Revision: 20352
Cargo Cultist SHorts monsters
Revision: 20353
plurals. use links for Cargo Cultist SHorts
Revision: 20354
Soup up CargoCultistSHortsRequest to keep the set of picked pockets up to date.
Load from setting when you log in, update and save to setting when you pick a pocket.
"cargo" command with no arguments prints picked pockets without going to KoL.
"cargo inspect" goes to KoL to refresh setting and then prints picked pockets.
Revision: 20355
If your Cargo Cultist Shorts redirect to a fight, set _cargoPocketPicked property.
Revision: 20356
When a cargo pocket redirects to a fight, save the pocket to set of picked pockets
Revision: 20357
Yeg's Motel slippers
Revision: 20358
There are paths through a try block that do not set a variable referenced in the finally block. Guard
Revision: 20359
The Familiar Item slot in the Gear Changer is now managed by that class itself, rather than EquipmentManager
Revision: 20360
The CargoCultistPantsRequest will now perform HP/MP recovery before picking a pocket that leads to a free fight.
Revision: 20361
Cargo Cultist Shorts free fight map is now Integer => MonsterData
Revision: 20362
plural for Yeg's Motel stationery. Cargo Cultist Shorts are not a Free Pull.
Handle "That pocket is empty" when you try to pick a pocket you already used this ascension.
Revision: 20363
External requests do not interrupt (count as walking away from) a choice adventure
--Thi line, and those below, will be ignored--
M src/net/sourceforge/kolmafia/request/CargoCultistShortsRequest.java
M src/net/sourceforge/kolmafia/session/ChoiceManager.java
Revision: 20364
Experimental: look for (waterlogged) scraps of paper in Cargo Cultist Shorts pockets.
Save in cargoPocketScraps or cargoPocketWaterloggedScraps property, as appropriate.
Revision: 20365
Separate pocket scrap messages with "|", not ","
Revision: 20366
Plural for Yeg's Motel hand soap. Non-waterlogged scraps of paper give syllables of
a per-ascension demon name that grant's Yeg's Power. Waterlogged scraps give an encrypted
poem. Log those, but they do no vary per player, so don't save in a property.
Revision: 20367
Add Yeg's Blessing, thanks to Lacey Jones
Revision: 20368
Yeg's Motel plurals
Revision: 20369
desk bell monster item drops frpm spading spreadsheet
Revision: 20370
Log the message on notes that are wrapped around Meat, In case you want to solve the puzzle yourself.
Add "test pocket POCKET" command
Revision: 20371
Updates to Yeg items and effects
Revision: 20372
desk bell monsters scale at 15
Revision: 20373
Yeg's Keeping
Revision: 20374
Include a couple items in mafia's header to debug logs.
Revision: 20375
Familiars that carry equipment grant you skills provided by the equipment they are wearing.
Correctly add and remove such skills when you remove or change what such familiars are carrying.
Revision: 20376
When you change familiars, forget conditional skills from the previous familiar and gain conditional skills from the new one.
Revision: 20377
Handle conditional skills when equipping/unequipping current familiar via familiar.php
Revision: 20378
Use famid when unequipping familiars, rather than whichfam
Revision: 20379
Remove obsolete private methods. Dripping trees and hall are nowander
Revision: 20380
When "setting" your current familiar (as from api.php), do nothing if it is already your current familiar
All TransferItemRequests will now abort (with appropriate message) if you are in a fight or a choice.
ClanManager.getStash() will not even attept to retrieve (with no error) if you are in a fight or choice.
Revision: 20381
Add dump functionality to ASH, from fredg1
Revision: 20382
Revision: 20383
Add voting_booth_initiatives function to ASH to allow you to forecast initiatives for a the voting booth. This also includes Java ports of the seeded random functions KoL use on the server, so should be generally applicable when this sort of spading is done
Revision: 20384
voting_booth_initiatives function now returns boolean [string] because there are sometimes conflicting modifiers. Also added a format class-as-int format to theorize about nonexistent classes (perhaps in an avatar path)
Revision: 20385
Add "test take-choice CHOICE DECISION [FIELD=VALUE]...
FIx patter for detecting carg shorts pocket scraps: can be <B> as well as <b>
Revision: 20386
Add some secondary usages to test regex so test doesn't fail
Revision: 20387
Experimental - return a long for HP and MP values in table, not sometimes an Integer and sometimes a long. Rework the associated sort.
Revision: 20388
Correct/simplify cargoPocketScraps property to not include the encoded "number" part of the value,
since that does not vary from player to player. Convert previous format to new format, if required.
Revision: 20389
First pass of all 666 Cargo Cultist Shorts pockets
Revision: 20390
A lot of line/star pockets are really Unknown, since they were incorrectly implented originally
and have been repaired. FIx these when they have been spaded.
Revision: 20391
Reorganize pocket categories inpired by WIki
Revision: 20392
Expose internal method that updates candy prices in the Synthesis frame to ASH as void update_candy_prices()
Revision: 20393
Parse cultshorts.txt into Pocket objects. Add "cargo pocket N" comand to see what is a pocket.
Revision: 20394
Pretty up the display of items a bit
Revision: 20395
Allow "cargo pocket NNN" to be used not-logged-in, since it looks up the PocketDatabase,
rather than sending requests to KoL.
Remove temporary code from CargoCultistShortsRequest now that we have PocketDatabase
Remove debug printing when initializing the PocketDatabase.
Revision: 20396
Log unknown pockets when loading pocket data. Prettier "type" logging for effects.
Disambiguate effect names, if needed. Spreadsheet has data for two of the Unknown pockets.
Revision: 20397
When initializing PocketDatabase, create ArrayLists containg scrap syllables and poem half-verses in order
Revision: 20398
Do the same thing for Meat pocket clues
Revision: 20399
Rather than hardcoding pocket numbers when constructing demon name, let PocketDatabse
give the pockets in the order needed
Revision: 20400
cargo jokes, poem, scraps, and meat. Fix another Unknown pocket
Revision: 20401
More dealing with scrollbars. fred1
Revision: 20402
Improve demon name recognition. Fix previously Unknown pocket. "cargo demon" is a sunonym for "cargo scraps"
Revision: 20403
Handle not having any demon scraps known yet
Revision: 20404
When save scraps property, save the pockets in the order that they provide syllables for the demon name
Revision: 20405
Add "Restore" pocket type which grants a full HP/MP restoration and an effect.
Log Yeg demon name in gCLI and session log when found, as well as saving it in
the demon13 property
Revision: 20406
fruitfilm is classified by KoL as a potion but, strangely, it does not grant an effect.
Treat it as an Item in the PocketDatabase.
Revision: 20407
get rid of "Unknown" PocketType. Dramatically simply code for maintaining maps of
pockets by pocket type.
Revision: 20408
Add "cargo count type TYPE" command
Revision: 20409
Pockets with a "common" effect - multiple sources - are now type Comoon.
Add "cargo list type TYPE" to see all the pockets of a given type.
Revision: 20410
Use HashMaps rather than TreeMaps for Pocket maps. Eliminate redundata "cargo" subcommands.
Revision: 20411
Wiki now has duration for Cold Dead Hands effect. Reformat stream sorting for code clarity.
Revision: 20412
Add support for "cargo count effect EFFECT" and "cargo list effect EFFECT".
Revision: 20413
Add a spading hook to place.php
Revision: 20414
Further simply class structure of Pockets. Augment "caro" command:
cargo count item ITEM
cargo list item ITEM
cargo list monster MONSTER
Pockets that grant two effects now appear in the "list" of pockets for both effects. They will
sort lower than the single effect pockets, since those lists are sorted high to low by duration.
Revision: 20415
Add "checking" to cargo command: any command which would actually pick a pocket can be invoked with "cargo?",
which will tell you which pocket would be selected.
Add "cargo item", "cargo effect", and "cargo monster" commands to pick a pocket.
Revision: 20416
Add "cargo list stat STAT", "cargo stat STAT", and "cargo? stat STAT"
Revision: 20417
Add some familiar attributes to familiars.txt from Excavator (and from the wiki in a few places) and update Adventurous Spelunker to deal physical damage
Revision: 20418
cargo command allows monsters, effects, and items to be specified by id #, as well as by name.
When specified by name, use case-insensitive lookup but normalize names to agree with the actual
item, effect, or monster
Revision: 20419
Add "cargo effect XXX" as a source to all status effects that can be found in the cargo cultist shorts.
Revision: 20420
Use effect name rather than effect number in "cargo" commands in statuseffects.txt
Revision: 20421
The Tunnel of LOVE is accessible while faling down drunk
Revision: 20422
Fix NullPointerException when inspecting quality and attributes on effects that are not in the EffectsDatabase
Revision: 20423
Cartopgraphy book and skill
Revision: 20424
Initial ASH support for Cargo Cultist Shorts. NOTE: the whole API is here,
EXCEPT for pick_pocket() - the thing which actually goes to KoL to use the shorts.
Everything that is here queries the internal database and various properties.
Let's get feedback on whether this is what is needed, before (easily) finishing.
Revision: 20425
Add ASH functions: joke_pockets, pocket_joke, and pick_pocket
Revision: 20426
No navigation link to combine RGB picels in Kingdom of Exploathing.
Revision: 20427
Expand displayed text for "help cargo". Add ASH function: pocket_set restoration_pockets()
Revision: 20428
Add Cartographic status effects
Revision: 20429
consumption data for flask of moonshine and (blueberry/bran/chocolate chip) muffin
Revision: 20430
Teach the Maximizer about the Cargo Cultist Shorts
Revision: 20431
Log taking the Downtown Train. Property "muffinOnOrder" starts aas "none"
but can be "blueberry muffin", "bran muffin", or "chocolate chip muffin",
if KoLmafia observed you ordering a muffin.
Revision: 20432
When you are about to submit a request to buy a muffin, remove the earthenware muffin tin from inventory
Revision: 20433
Don't report "unhandled redirect" to place.php?whichplace=monorail
Add a pre-gash nag if you have an earthenware muffin tin and no muffin on order
Clear muffin on order if you visit the muffin counter and it offer to make you a muffin
Revision: 20434
"" -> "none" for muffinOnOrder
Revision: 20435
Also add a nag to eat your muffin and order another, if you have a muffin in inventory
Revision: 20436
CargoCultistShortsRequest can redirect to a fight. If it does, automate it, as we do
for genie fights, chateau fights, and many others.
Revision: 20437
Since the decisions for choice 1308 are variable, look at response text, rather than option to
decide whether you just ordered a muffin. Also remove ingredients when you buy a muffin tin.
Revision: 20438
Better processing of intrinsics gained (or lost) in battle
Revision: 20439
You can't look at the previous choice respopnse if there wasn't a previous choice
Revision: 20440
Teach UseLinkDecorator about intrinsics
Revision: 20441
Don't annotae monster in Realy Browser if you cannot find the 'monname' span
Revision: 20442
Add "pockets" link to Cargo Cultists Shorts AFTER adding regular use links for pants
Revision: 20443
Bad Moon adventure "Oil Be Seeing You" is now in Pandamonium Slums rather than Deep Fat Friars Gate
Revision: 20444
Gingerbread City tracking improvments, thanks to fredg1
Revision: 20445
Added can_equip(familiar, item) to check if a familiar is able to equip an item
Revision: 20446
Fix a couple of Stats pockets in the cult shorts
Revision: 20447
Cartographic effects are shruggable
Revision: 20448
Update TCRS seeds, much thanks to 3BH
Revision: 20449
Add Map the Monsters, track Map the Monsters (_monstersMapped), track if the charge is currently active (mappingMonsters)
Revision: 20450
Properly support the preferences that I just added
Revision: 20451
When you use a tiny bottle of absinthe, start the three Wormwood counters immediately.
Do NOT set them when the charpane (or api.php) says you are Absinthe-Minded.
Include fredg1's patch to allow "counters nowarn Wormwood" to work.
Revision: 20452
Add "counter stop LABEL" to clear only counters with specified LABEL.
Revision: 20453
Improved support for IntelliJ, thanks to MCroft.
Revision: 20454
Add simple "catch" statement to ASH:
string catch STATEMENT; or string catch { BLOCK } will execute the STATEMENT or BLOCK and capture an error value,
permitting the script to continue executing.
Revision: 20455
Fix cargo shorts pocket 12
Revision: 20456
Fix the "catch" keyword in ASH returning a value.
Revision: 20457
Comprehensive Cartographic Compendium choice adventure spoilers from 3BH @ Kolmfia.us
Revision: 20458
Possible fix for null pointer reported in maximization under some circumstances
Revision: 20459
Track daily Hippy Island Farm items collected (_hippyFarmItemsCollected), thanks mgreen52!
Revision: 20460
It's _farmerItemsCollected, not _hippyFarmItemsCollected
Revision: 20461
Replace monster names in the monster map adventure with their mafia names (to disambiguate between ninja snowmen, gremlins etc) when spoilers are enabled
Revision: 20462
Add "unpicked TYPE" to "cargo count" and "cargo list" commands
Revision: 20463
Fix usage string for cargo command
Revision: 20464
Whack usage of api.php (which doesn't work in Valhalla) to avoid issues in Valhalla
Revision: 20465
Handle redirects to login.php (timein) before checking redirects from afterlife.php
Revision: 20466
Fix spoilers for choice 1428, per landamus
Revision: 20467
Fix choice 1428 for real
Revision: 20468
Robustify code to make sure standard restrictions are read whenever you log in or ascend.
Revision: 20469
in postAscension, mark that we are no long in Valhalla before refreshing the session
Revision: 20470
Radio KoL is dead. Long live Radio KoL.
Revision: 20471
Fix pocket 603 per Wiki
Revision: 20472
Do not hardcode 1000 as the length of ROnin when checking "interaction" via the charpane.
Revision: 20473
Add "cargo pick #" command (synonym of "cargo #")
Revision: 20474
Add three new functions that provide timestamp support in ASH - int now_to_int(), int date_to_timestamp( string format, string date ) and int timestamp_to_date( int timestamp, string format )
Revision: 20475
Added some quality and attribute data to statuseffects from Excavator
Revision: 20476
Add note to debug lug thanks to MCroft @ KoLmafia.us
Add more info to interpreter exception (untested).
Revision: 20477
Add Interpreter.InterpreterState enum, rather than having final string constants for state.
Soup up catch to catch captured values, script errors, and java errors
Revision: 20478
Simplify Catch: only need a single ParseNode class to handle standalone and value versions
Revision: 20479
Fix parsing "catch as a value" with a block and with an expression.
All sorts of ASH Parser cleanups suggested by IntelliJ.
Revision: 20480
Get focus for last created window as per MCroft @ KoLmafia.us. Also some lint clean up while we're there.
Revision: 20481
Add svn.fail.on.error build property per Mcroft
Revision: 20482
Only recalculate COncoction stat gains if your class has changed since last time.
Revision: 20483
Simplify setting of classname/classtype. Recognize Plumber.
Revision: 20484
Dirty Pear doubles bonus sleaze damage
Revision: 20485
gCLI login command error handling
Revision: 20486
Close Hot Key for standard windows (ctrl/cmd-w)
Revision: 20487
OSX Badge Icon support check
Revision: 20488
Change Maxmimizer filters from radio buttons to checkboxes (multi-type filtering)
Revision: 20489
retro superhero cape
Revision: 20490
Added tracking for the retro cape configuration, added skills (only equipment-based skills are currently gated), added modifiers based on cape configuration
Revision: 20491
Macro followed by item not found not aborting as expected.
Revision: 20492
Added retrocape CLI command and fixed bug in cape config tracking
Revision: 20493
Added retrocape CLI command class
Revision: 20494
retrocape skills depend on preferences
Revision: 20495
Fixed potential security issue
Revision: 20496
Update Maximizer Equipment Scope in Preferences
Revision: 20497
Optional radio-button style functionality to maximizer filter checkboxes
Revision: 20498
Fix restricted access to some files since
Revision: 20495
Revision: 20499
The Knoll is not available in Gray Goo. Thanks to fredg1 @ kolmafia.us
Revision: 20500
Just as we no longer compare the displaed item name with the actual item name from items.txt when parsing results, do not compare parsed effect name with effect name in statuseffects.txt
Revision: 20501
Maximizer for CLI should not create things.
Revision: 20502
Need to sort scrap, meat, and poem pockets rather than return initial set since
they could have been filetered (unpicked, for example)
Revision: 20503
maximizer with createOnHand pref NPE fix
Revision: 20504
Added directory for external jars needed to build KoLmafia src, build file to include them and rhino jar in anticipation of other changes to come momentarily.
Revision: 20505
Support for KoLscripting in Javascript. Thanks to ikzann @ kolmafia.us
Revision: 20506
Better step3 detection for Spookyraven Manor thanks to fredg1 @ Kolmafia.us Untested (by me).
Revision: 20507
Added documentation to ItemProxy. Planning to add documentation like this to all of the ProxyRecordValue classes and use them to generate documentation for the wiki and for JS typing.
Revision: 20508
handle multiple loc= lines in the same counter when reading prefs.
Revision: 20509
ikzann's fix to allow certain scripts to work
Revision: 20510
Update .classpath for those environments that use it and the "new" build convention. ikzann @ kolmafia.us
Revision: 20511
Correctly convert anonymous RuntimeLibrary records to JavaScript POJOs
Revision: 20512
Fix ProxyRecords returned from other ProxyRecords in JS (this and the last commit by ikzann)
Revision: 20513
itemDrop
Revision: 20514
Adds "jsref" command, an analogue of "ashref" for the JavaScript integration
Also does some things IntelliJ suggested that seemed smart
Revision: 20515
Monorail spoilers. Lightly tested. Thanks fredg1 @ kolmafia.us
Revision: 20516
fixes the bad error message when using a nonexistent function in javascript ikzann @ kolmafia
Revision: 20517
Fix data errors detected by checkitems and checkeffects
Revision: 20518
Slay the Dead cleanses an additional evil in the Cyrpt.
Revision: 20519
added help target
updated notes target to pure ANT task
Revision: 20520
This is a big patch to set up consult scripts, "lifecycle" scripts (choiceAdventureScript, betweenBattleScript, etc.), and combat filter functions. I think this mostly completes the refactoring to pull all the non-ASH-specific stuff apart from the ASH code, but it's still a little bit messy. From ikzann
Revision: 20521
Implement `require` so that ash and other JS scripts can be imported in JavaScript. Thanks @ikzann.
Also I fixed a few minor IntelliJ code analysis issues
Revision: 20522
build.xml changes to support new src/jar model
fixed ant exec and ant javadoc targets
added ant test to dist target dependencies
Revision: 20523
This patch should handle relay scripts correctly, both override scripts and those from the menu. Notably, in order to avoid breaking backwards compatibility with e.g. Guide, I've added a new GET argument to the relay menu scripts that triggers execution of any relay_x.js script vs simply returning it as a JS file. Guide calls its main JS file "relay_Guide.js." Thanks @ikzann
Revision: 20524
Several fixes for require. Thanks @ikzann
Revision: 20525
Improve enumerated type equality in JS. Thanks @ikzann
Revision: 20526
fixed issue with maximizer equipment scope not applying
Revision: 20527
Update to SVNKit 1.10.2 by using their jars instead of compiling their source. Some lint in SVNManager and replace a deprecated SVNKit call.
Revision: 20528
Fixes some bugs with argument inversion on library functions, and some type conversion issues. It also reworks some of the proxy record code to work in a more consistent way. Thanks @ikzann
Revision: 20529
Moves the standard library onto require("kolmafia") instead of a global. It also fixes some of the interrupt problems. Thanks @ikzann
Revision: 20530
Reintroduce some missing imports that break the build
Revision: 20531
Oh it was just files missing. Whoops!
Revision: 20532
Fix NEP quest tracking spoiler
Revision: 20533
Better detection of multi-step crafting. Thanks to fredg1
Revision: 20534
Added FlatLaf Themes (17 Light Themes and 43 Dark Themes) to Look and Feel Dropdown
Updated several elements to support light and dark themes
Revision: 20535
Tweaked size of AdventureSelect countField
Revision: 20536
Update smoresEaten correctly (Xande1 @ kolmafia.us) and some lint.
Revision: 20537
Fix Javascript sandbox as per ikzann
Revision: 20538
Exclude Path of the Plumber from traincost (thanks Philmasterplus)
Revision: 20539
Added "sword" keyword to maximizer, equivalent to the "club" keyword, but for swords.
Revision: 20540
Add Ghost of Crimbo hatchlings and box o' ghosts items
Add familiars and make them updat eachothers' experience counters, ensure they cannot equip things
Add effects from Ghost of Crimbo Carols
Update Ghost Dog Chow to recognise not being consumed when used on a Ghost of Crimbo
Revision: 20541
Parse skills from the charpane by id first, name as a fallback. Thanks @philmasterplus
Revision: 20542
Add first three days of 2020 advent calendar items
Use the `event(December)` modifier expression in some places where `Various` was being used instead
Apply `event(December)` automatically to newly discovered items whose modifiers only apply in December (previously December was being picked up as a Class)
Fix missing tab in some of the items I added for the December IoTM in a previous revision
Revision: 20543
Delete htmlcleaner source and replace with htmlcleaner-2.24.jar
Revision: 20544
Make adventure count field wider, thanks to philmasterplus
Revision: 20545
Create and set _gingerbreadClockVisited - fredg1 - Untested by me
Revision: 20546
Use more soothing colors for sidebar in dark mode (tnx philmasterplus)
Revision: 20547
Provide nicer darkmode colors for Location Details panel. I didn't even know we had a location details panel. now I do, and it looks better in Darkmode.
Revision: 20548
Address some hiccups in parsing charsheet for skills as per philmasterplus.
Revision: 20549
Pixie charge does not increment when you have the absinthe-minded effect active
Revision: 20550
Fix JS-based relay scripts. Thanks @philmasterplus!
Revision: 20551
Fix bug so that Slay the Dead evilness effect is registered correctly
Revision: 20552
Update .classpath gfor htmlcleaner.
Revision: 20553
More skills from charsheet tweaks.
Revision: 20554
Disambiguate some same named skills.
Revision: 20555
* Support retrocape in the Maximizer. NOTE: the retrocape command now equips the cape as well as reconfiguring it, bringing it in line with other similar commands like snowsuit and edpiece.
* Reset the retrocape prefs on ascension
* Fix typo in the status of one of the Ghosts of Crimbo as a stat0 familiar
* Add throne info to the other Ghosts of Crimbo
Revision: 20556
This effectively reverts
Revision: 20458
Revision: 20557
Stdlib fuctions fix for JS from philmasterplus
Revision: 20558
Fix a JS problem with importing ASH scripts that overload functions - ikzann
Revision: 20559
Some items and effects, mostly Crimbo 2020
Revision: 20560
Scrollable Filtered Lists (like Maximizer Results and adventure select) now use a - sign in the first character as an indicator to omit the search term (like google search)
Revision: 20561
Fix for js access to proxy records - ikzann
Revision: 20562
Maximizer tweak to deal with reduced scores (and test that fails without the fix and works with it!) Ryo_Sangnoir
Revision: 20563
Recalculate adjustments at start of maximization and refactored tests - Ryo_Sangnoir
Revision: 20564
Categorize HP/MP restorers in the auto-restoration panel (thank you, philmasterplus)
Revision: 20565
Fix Text Colors panel in Options (thanks, philmasterplus)
Revision: 20566
new command is_dark_mode for Ash (philmasterplus)
Revision: 20567
jsref filter now case insensitive, like ashref.
Revision: 20568
soolar's Maximizer keyword bonus enhancement
Revision: 20569
monospaced font for mushroom plot - philmasterplus
Revision: 20570
Add thee drive buttons. They are a mutex group. Items for donated stuff. Government shipments
cannot have an inline use link. Spread Crimbo Cheer choice can be walked away from
Revision: 20571
Crimbo Town 2020
Revision: 20572
Re-added @Veracity's the mutex group for crimbo drive buttons
Revision: 20573
Forgot to add some files
Revision: 20574
plurals
Revision: 20575
Reintroduce familiar weight parsing for familiars you haven't used yet
Revision: 20576
Fix Bee capitalization
Revision: 20577
Show +candy next to +food and +booze in the sidepane hover popup. Thanks @kalaleq!
Revision: 20578
Correctly track ghost max base weight, and add a getMaxBaseWeight function to FamiliarData to do so
Revision: 20579
- New crimbo skillbooks (one has a typo which we can just update when they fix)
- Remaining crimbo coinmaster items
- Add overflowing gift basket to breakfast
- Add summon skills to breakfast skills
- Add free rest skill
Revision: 20580
updated subscription cocoa dispenser to tradeable per wiki and user requests
Revision: 20581
New type of lifecycle script that can run when you click a player in the Chat interface. The script takes playerName (string), playerId (string) and channel (string)
Revision: 20582
Fix coinmasters.txt for crimbo 2020 stores
Revision: 20583
added monsterid to predicates for Combat Macros (per kol wiki)
Revision: 20584
Fix data files and associated test thanks to Ryo Sangnoir
Revision: 20585
Crimbo stuff
Revision: 20586
A quick test that checks field counts in internal data files. Useful because it will catch space instead of tab errors faster than the various check commands.
Revision: 20587
Add some of the svn delete activity logging to the session log. Untested.
Revision: 20588
tiny plastic Penny
Revision: 20589
More logging for svn deletes.
Revision: 20590
bumped version for combat macro helper to 1.5
Revision: 20591
add CharSheetRequestTest and data files
add DebugDatabaseTest for tests that are working
Revision: 20592
overflowing gift basket is reusable
Revision: 20593
* Support coat of paint IotY
* Refactor the way we check items whose modifiers change from time to time which are, as a result, now updated when you visit the item description
* Add spading hook for when you visit an item description for an item that changes from time to time
* Minimal support for the crystal ball (no mechanics but they're in items.txt and stuff)
Revision: 20594
plurals
Revision: 20595
Fix afterlife.ash to get map friles from "data".
Revision: 20596
Support crystal ball predictions
Currently any existing prediction is invalidated when a new encounter is... encountered. Then if the end of that encounter results in a new prediction, we log it. If spading lets us hone this then the predictions will probably just get better while the API for users of scripters will remain the same.
Revision: 20597
Happy New Year!
Revision: 20598
Some code tidying
* Removed unused imports across codebase
* Fixed last dangling jsdocs and fixed a typoed copyright
Revision: 20599
More code tidying
* Remove unnecessary escapes in regexes
* Remove unnecessary type casting
* Remove unnecessary StringBuilding
* General semi-automated code deduplication and simplification
Revision: 20600
Yet more code tidying
* Private members need not be final (they cannot be overridden)
* Many members could be made final and so were
* Made some unnecessary arguments into local variables
* Simplified some unnecessary conversions of strings to strings
* Removed extra semicolons
Revision: 20601
Add some excavator data
* Mosquito is a bug
* Crimbo skillbook food/candy/booze effects are good and hookahable
* Chubby and Plump bean is worth a whole simple candy
* They fixed the spelling mistake in Twist and and Eye and so shall we
Revision: 20602
Apparently this doesn't work on CI even though it works on my PC
Revision: 20603
Adjust fortune teller Standard checking to match KoL's name
Revision: 20604
Added serialVersionUID. Might temporarily break adventure and queue persistance but that didn't happen in limited testing.
Revision: 20605
Some more InteliiJ lead improvements, this time taking advantage of all the most modern Java syntax up to Java 1.8
Revision: 20606
* Update the skill types for the crimbo summoners
* Track cocoa dispenser daily usage (_cocoaDispenserUsed) and add it to breakfast items
* Track universal seasoning daily usage (_universalSeasoningUsed) and current status (universalSeasoningActive)
* Some small changes based on IntelliJ analysis
Revision: 20607
Revert 20605
Revision: 20608
Added another serialVersionUID. Might temporarily break adventure and queue persistance but that didn't happen in limited testing.
Revision: 20609
Escape some text in JS error messages - philmasterplus
Revision: 20610
Adventure range for bowl full of jelly & eye with a twist, monsterid for Sssshhsssblllrrggghsssssggggrrgglsssshhssslblgl
Revision: 20611
Fix modifiers typo - Ryo_Sangnoir
Revision: 20612
Crimbo Town is gone
Revision: 20613
Added a test to maybe catch a static cause of a compareTo contract violation for Concoctions. Lint on anither test.
Revision: 20614
Started tracking daily limits for usable items in a data file instead of code. There's lots more work to do on this (support spells/food/booze/spleen, use this list to set the props on use too) but it should make adding daily use limits a lot easier! And now you can use maxdailyuses on usable items.
Also support holidays in modifier_eval (through `event`) though I didn't use this in the daily limit stuff in the end.
Revision: 20615
Daily Deeds patch (text bug plus refactoring)
Revision: 20616
Ascension Rewards - thanks to Ryo_Sangoir
Revision: 20617
Tweaked test but still doesn't run. 10K by 10K by 10K is too many combos for my system.
Revision: 20618
Crystal ball fixes
* Support crystal ball message now appearing at the beginning of combat
* Support bold tags around predicted monster name
* Support one missing prediction string
Revision: 20619
Commerce Ghost further support
* Track the item the ghost of commerce asks you for
* Track the commerce ghost item quest being completed
* Add a "from mall" modifier to the "buy" command to force buying from the mall if possible
Revision: 20620
Remove valueOf() as per philmasterplus
Revision: 20621
Mark some effects with "nopvp" that were missing it
Revision: 20622
* Add correct max for pump up high tops and add a key to the top of the dailylimits.txt file
* Add an increment function to DailyLimitDatabase - it would be great to eventually use it!
Revision: 20623
Rename crimbo20 cafe consumables & lower ranges, mark as Unspaded as wiki appears incorrect
Revision: 20624
* Recognise items, skills and effects from the new IotM
* Track daily use of every skill (int "_feel<emotion>Used")
* Track last monster that meets criteria for nostalgia
Revision: 20625
* Make the emotion skills actually available to cast
* Change the nostalgic monster prop from "feelsNostaligcMonster" to "feelNostalgicMonster" and reset it on ascension
* Remove some duplicated items in items.txt
Revision: 20626
More fixes for Emotionally Chipped
* Added the banisher for Feel Hatred
* Track the combat skills properly (previously were looking for them to be cast like regular skills!)
* Add default acquisition commands for the effects
Revision: 20627
Fix Item.seller and Item.buyer throwing errors in JavaScript (thanks @philmasterplus)
Revision: 20628
get_stash() no longer checks existence of a shop instead of clan stash (thanks @philmasterplus)
Revision: 20629
Special case bufferToFile so it works from JS (by converting the first string param to a buffer (thanks @philmasterplus)
Revision: 20630
Add spoilers for Decorate your Tent
Revision: 20631
Track multi-casting of emotion skills
Revision: 20632
ash put_shop() enhancement to allow the quantity param to take a float and convert it to an int instead of using the bitwise representation of a float as the quantity to put in the shop.
Revision: 20633
https fix for ircm_extend solves 2nd space in search element issue for inventory (h/t Philmasterplus
Revision: 20634
Recognise "You, Robot" and limit consumables accordingly (thanks @dark_adonis)
Revision: 20635
* Parse "You, Robot" scraps and energy, show them in the mafia UI
* Make them accessible via ash (my_robot_scraps(), my_robot_energy())
* Do not visit the campground when in "You, Robot"
* Define prefs for tracking body parts (coming soon!)
Revision: 20636
Add missing change for recognizing Robot (thanks @dark_adonis)
Revision: 20637
* Store the robot configuration as a number (except CPU upgrades)
* Apply modifiers from robot configuration
* Parse robot configuration from charpane, reassembly station and on session refresh
* Disallow potion taking, equips and familiars if player isn't configured for them
Revision: 20638
* "Energy" and "Scrap" modifiers for indicating how much energy and scrap is awarded at the end of each fight
Revision: 20639
Do not check the vote monster counter if the voting booth is not accessible (i.e. in standard 2021+)
Revision: 20640
Fix the CPU upgrade regex
Revision: 20641
Robocore needs to update status from the charpane (for now? I've put in a request)
Revision: 20642
No Guild in Robocore
Revision: 20643
Actually added the energy and scraps functions to the scripting runtime library, and added a function to let you know if you can access a guild in your current ascension.
Revision: 20644
Fix energy matcher
Revision: 20645
Moved robocore into if/else group for charpane to prevent DBs from failing having too many additional status labels and crashing.
Revision: 20646
Track `statbotUses`, `_chronolithActivations` and `_energyCollected`
At the moment we don't know a good way to correct your energy collected (it seems to be randomized?) so we just dumbly increment the existing value
Revision: 20647
Add robo-battery item
Revision: 20648
You, Robot skills. Thanks @Ryo_Sangnoir
Revision: 20649
Added council text (thanks @cat from Discord!)
Revision: 20650
Recognise that slots/familiar have been unequipped when you change robot configuration to one that does not support them
Revision: 20651
Fix Your Campfire requests not being processed from the relay browser
Revision: 20652
Add another overload to can_equip - can_equip(familiar) tells you if it is possible under your current restrictions to equip a given familiar. Note that it doesn't check if you actually have the familiar.
Revision: 20653
Torso Awaregness -> Torso Awareness
Revision: 20654
Decorating your tent consumed a burnt stick
Revision: 20655
Track questM05Toot having been finished by its absence from the quest log
Revision: 20656
Add a TutorialRequest to track the Toot quest without refreshing your questlog
Revision: 20657
Potted Power Plant Support
* Add items (+ recipes)
* Track stalk status ("_pottedPowerPlant")
* Add Shocking Lick skill, track charges ("shockingLickCharges") and uses (untested)
* Allow "notes" for non consumables to be displayed in the inventory list renderer
* Support path function in restore expressions
* Add item effects and restores
* Support harvesting batteries in breakfast ("harvestBatteries{Soft,Hard}core")
Revision: 20658
You, Robot fixes
* Add bosses to the monsters database
* Fix reading scraps > 1000
* Do not need a Wand of Nagamar
* Fix tracking hats and familiars
* Restore skills and campsite after freeing the king
Revision: 20659
Batteries are consumed on use
Revision: 20660
Added nosmash to some items that were missing it. Thanks @philmasterplus
Revision: 20661
Do not unescape JS scripts. Warning - this may break some js scripts, just use the &escapedform; instead. Thanks @philmasterplus.
Revision: 20662
Better tracking for slot to equip a Powerful Glove. THanks @dark_adonis, we'll see if this works.
Revision: 20663
macrame net -> hemp net
Revision: 20664
Track shocking licks even if they deal damage instead of instakilling
Revision: 20665
New content for St Yuley Tide's Day
Revision: 20666
Changes displayed memory label from KB to MB
Revision: 20667
Fix some tab vs space typos discovered by a ailing test
Revision: 20668
Fredg1's fix for some mistakenly labelled items.
Revision: 20669
fleetwood mac 'n' cheese doesn't take a turn to craft
Revision: 20670
Support for backup camera IotM
Revision: 20671
Spectral Pickle Factory -> The Spectral Pickle Factory
Revision: 20672
Update some code so that non-fancy Pastamastery recipes are supported
Revision: 20673
Prevent locations not present in combats.txt from causing an NPE when you try to read their native combat rate
Revision: 20674
Reset backup camera prefs on ascension
Revision: 20675
Fix some small robo bugs
Revision: 20676
When converting ash functions to camel case for JavaScript, better handling for unusual snake-casing (see https://kolmafia.us/threads/javascr...f-function-name-has-leading-underscore.25939/)
Revision: 20677
Warn the user if they try to grind more than 23 sausages in a day - this can be an expensive typo otherwise.
Revision: 20678
Added a get_workshed() function to the runtime library (thanks 3BH!)
Revision: 20679
Fix typo in Do You Crush What I Crush modifier string
Revision: 20680
Add my_session_results() function to the runtime library which you can use to see how many pirate insults, hobo parts, and other pseudo-items you have acquired this session
Revision: 20681
Fix swim laps and sprints for degenerate players with so many stats they break 1k laps
Revision: 20682
Track daily Poke-Grow Fertilizer drops (because there are max 3)
Revision: 20683
Default backupCameraMode is "meat" on ascension
Revision: 20684
Track yellow pixels dropped by the Puck Family when enthroned or enbjorned
Revision: 20685
Searching the mall for an item name that refers to multiple items one of which is untradeable resulted in a non-response. So, that's fixed!
Revision: 20686
Don't silence stdout as per Obeliks
Revision: 20687
cli color support as per Obeliks
Revision: 20688
Update jar file
Revision: 20689
Make HTTP request headers case insensitive -- thanks Fredg and Philmaster+
Revision: 20690
clipboardPatchFile
Revision: 20691
Use KoLAdventure.lastVisitedLocation() to check for Guzzlr progress instead of KoLAdventure.lastLocationName because the former will still match even if you're fighting an attunement tentacle
Revision: 20692
DMT choice counting is nothing to do with the monster that is being fought, its just basic delay on the zone (i.e. wanderers/tentacles do decrement it and copies of DMT monsters fought outsode of the zone do not)
Revision: 20693
Get the maximizer to consider changing mode on the backup camera
Revision: 20694
Fix typo in choice adventure 1433 spoiler
Revision: 20695
Use try-with-resource in Checkpoints. Thanks to @fredg1 for the initial work
Revision: 20696
Some changes to maximum item use data surfacing
* RestoresDatabase now uses UseItemRequest's maximumUses function for item restores
* $item dailyusesleft record now uses UseItemRequest's maximumUses function
Revision: 20697
Incorrect item id for the charged druidic orb. Thanks @fredg1
Revision: 20698
Added some additional static and non-interrupting request types (thanks @fredg1)
Revision: 20699
Correctly parse damage from an unusual spelunky shotgun hit message
Revision: 20700
Unversion ide specific files.
Revision: 20701
Handle single-cast skills that don't cost MP
Revision: 20702
Two small fixes from @fredg1. Something was probably broken with defeating lolmec before this patch.
Revision: 20703
Add try/catch around AnsiConsole.systemInstall().
I didn't add any tests for this, but I did check that it initializes
(falling back to default behavior with no colors) if I throw an
unconditional exception beforehand, and it continues to compile and
provide me with colors if I don't have that exception in place.
Revision: 20704
Catch LinkageErrors in KoLmafiaTUI.
Errors are not exceptions, and _usually_ should not be caught. This
case is recoverable.
Revision: 20705
Simplify G-Lover and Beecore checks, apply them to harvesting batteries
Revision: 20706
Revert to
Revision: 20704
Revision: 20707
* Do not try to use portable power plant in G-Lover
* Do not show sweet synthesis when "spleen" is filtered out of maximizer
Revision: 20708
Have a fresh perspective on price for each alternative effect source in the maximizer
Revision: 20709
Multi-using batteries gives a corresponding number of Shocking Lick charges
Revision: 20710
Handle modifiers that cannot be applied to Left-Hand Man or Disembodied Hand, do not apply them for the maximizer either
Revision: 20711
Initial support for the short order cook
Revision: 20712
Add scrolling to the Scripts menu
Revision: 20713
Add arena rank for short order chef
Harvest batteries in breakfast by default
Revision: 20714
Update some modifiers for the shorter-order chef
Revision: 20715
* Expand width of script scroller to match widest item
* Show 25 scripts at once not 15
Revision: 20716
Add madcarew to authors.txt (a little late!)
Revision: 20717
Green Rocket no longer available on Dependence Day
Revision: 20718
Allow deferred checks in Checkpoint.
I'm actually not sure if this is necessary, but it accurately replicates the behaviour we had before we moved to try-with-resources
Revision: 20719
Fix NPE in UseItemCommand
Revision: 20720
Fix breakable equipment breakage not registering on familiars
setEquipment needs to setItem on the KoLCharacter.currentFamiliar. It used to do this until it was accidentally removed ~10 months ago.
Revision: 20721
Support for Quantum Terrarium challenge path
Revision: 20722
Marked two items as simple candies
Revision: 20723
Restore the familiar popup menu and show favorite familiars as icon grid instead of giving them 1 row each
Revision: 20724
Fix 3 missing favourite familiars and tooltip remaining on no familiar
Revision: 20725
Allow relay requests to begin with https:// when validating the referer as the user could be reverse proxying the relay browser with ssl
Revision: 20726
Added path rewards for QT
Revision: 20727
Add snapper command and error out if you try to use it (or the Grim Brother command) in QT
Revision: 20728
Add plural to quantum of familiar item
Revision: 20729
Stop infinite loops on Quantum Terrarium requests
Revision: 20730
Fix snapper command for mer-kin
Revision: 20731
Grim Brother and Red-Nosed Snapper now usable in Quantum Terrarium
Revision: 20732
Refactor Phylum parser to accept doubles and allow the use of "merkin" without a hyphen
Revision: 20733
Add missing line from last commit
Revision: 20734
Use iterators when managing ScriptMRUList,
Revision: 20735
Fix have_familiar and other issues where maifa thinks you have a familiar in your terrarium because you saw it during QT
Revision: 20736
Aloow runtime library functions that are called with a named reference to another callback function (i.e. combat filters) to be supplied a function as an argument in JavaScript
e.g.
```js
adventure(1, Location.get("The Dire Warren"), (round, monster, page) => "attack");
```
Revision: 20737
stained glass shiv used to be a ranged weapon, now it's a melee weapon. updated req. stat to match current desc (and make it a meelee weapon).
Revision: 20738
JavaScript combat macros can now be executed with access to their parent scope
Tested against this bit of code working, which now does.
```js
const { print, adv1 } = require("kolmafia");
const runAdventure = (action) => {
let monster = null;
adv1(Location.get("The Dire Warren"), 1, (round, m, text) => {
monster = m;
return action;
});
print(monster);
};
function main() {
runAdventure("runaway");
}
module.exports.main = main;
```
ote that the macro is able to access `action`, and to change the value of `monster`.
Revision: 20739
Do not check Quantum Terrarium if player is in a fight or choice or other chained adventure that denies access to other pages
Revision: 20740
Add default params for adv1 such that, if omitted, the second parameter is -1 and the third is ""
Revision: 20741
Add spoilers for boxing day spa effects
Revision: 20742
Fixes issue where peeking at the choice adventure for abandoning a Guzzlr quest ruins platinum quest tracking
Revision: 20743
When considering overwrites triggered by SVN, match directory and file name, not just file name. Limit scope on some script searches.
Revision: 20744
Slime Hates It still applies in Noobcore
Revision: 20745
Make cultist shorts monsters as NOCOPY
Revision: 20746
Imported files added to Parser.imports too late to prevent circular reference - tnx Fredg
Revision: 20747
Some QT fixes
Revision: 20748
Support for familiar scrapbook
Revision: 20749
Fix Quantum Terrarium Request parsing breaking on melodramedary
Revision: 20750
Familiar scrapbook missing from equipment.txt
Revision: 20751
Consider experience percentage modifier when maximizing for experience, assuming that the monster's base exp will be the player's level * 2
Revision: 20752
Rename `feelNostalgicMonster` pref to be named `lastCopyableMonster` (remember, commit releases don't make any promises for consistency - change your scripts!)
Revision: 20753
Improve stat mod accuracy
* Make mafia's calculation for expected stat gain (e.g. from `numeric_modifier("Muscle Experience")`) much more accurate
* Make calculations for said modifiers consider mime army insignias
* Use same calculation for estimated base experience from a monster for maximizer and the idle modifier calculator
Next step is to consider stat-tuners in the maximizer!
Revision: 20754
Fix bonus ML being considered bad for stat gain
The function for calculating base exp sitting in KoLCharacter was subtracting instead of adding bonus ML and as such reusing it in the maximizer caused that issue to surface in a more well used area of the project.
Revision: 20755
More stat estimation fixes for the maximizer!
Revision: 20756
Track ensorcelee and its modifiers when in Dark Gyffte. Better late than never!
Revision: 20757
Clean up configurables in the maximizer
Revision: 20758
Apply vampyric cloake ensorcel bonus to character and in maximizer for Dark Gyffte
Revision: 20759
Show your boring familiar pictures is a 100 turn banish that is not reset on rollover
Revision: 20760
Catch familiar scrapbook activations in the correct place.
I had previously moved this in testing - I'm sure you can get it to show up outside of a familiar action, but maybe something changed, or maybe something else is going on
Revision: 20761
Remove both crop and seed of previous garden when using a new one
Revision: 20762
Add 'logPreferenceChangeFilter', which is a comma separated list of preferences to not log when logPreferenceChange is enabled
Revision: 20763
Only assess a request for whether we should check the next familiar in QT if it is not a redirect
Also fix flashing familiar icon after each turn
Revision: 20764
Define some extra non-interrupting requests. Thanks @fredg1
Revision: 20765
Make slots and stats into proper proxy records just to make JS casting easier
Revision: 20766
Clear familiars after a QT run (and keep track of quantumPoints for those interested)
Revision: 20767
I feel like I've earned this
Revision: 20768
Set "already used this today" Tunnel of LOVE decision to automatically be leave and stop accidentally getting locked in it
Revision: 20769
Add missing crystal ball prediction string
Revision: 20770
jsref recognises JS camel case functions
Revision: 20771
Refactor Eudora support, add new function `eudora_item` which gives you the item used to unlock the current eudora
Revision: 20772
Add underwater familiar support to the Robortender
Revision: 20773
Revert "Add underwater familiar support to the Robortender"
This reverts commit bb035b5ea9c336f4f7e10eec07dd75167aadcfe5.
The commit in question broke the build, as noted by several others.
Revision: 20774
Add underwater familiar support to the Robortender
Revision: 20775
Add three missing skills from 2021 standard reward items
Revision: 20776
Added some error handling for sweet synthesis if the inventory is out of sync
Revision: 20777
And now do the same without spelling and grammar errors
Revision: 20778
Add is_casual() function that returns value from api.php, untested
Revision: 20779
Fix misplaced space typo
Revision: 20780
JavaScript runtime no longer interrupts when library functions return false
Revision: 20781
Add more familiar types to shorter-order cook
Revision: 20782
Initial support for July IotM
Revision: 20783
Check for null ensorcel Modifiers in applyVampyricCloakeModifiers() to handle phylums not listed in modifiers.txt
Revision: 20784
Use correct firework price
Revision: 20785
Clan Fireworks Shop is not a coinmaster, so treat it more like the General Store and remove coinmaster handling
Revision: 20786
Fix nemesis quest "started" tracking. Thanks @philmasterplus
Revision: 20787
Check the correct floor of the VIP lounge for the fireworks shop
Revision: 20788
Add some substat ranges etc to previously "unspaded" consumables
Revision: 20789
Improve retrocape conditional skill handling
Revision: 20790
Chest X-Rays still expend a charge when used against a boss or special monster
Revision: 20791
Allow user to configure safety margin used in the basement overlay
Revision: 20792
Only check 1/day purchases on the actual fireworks shop page
Revision: 20793
Add explosive equipment to equipment.txt
Revision: 20794
Manually multicast Invisible Avatar
Revision: 20795
Improve fireworks shop handling
Visits the shop for you so that KoL recognises that you have one
Revision: 20796
Add runtime library functions `clear_food_helper()` and `clear_booze_helper()`
Revision: 20797
Add user_prompt command for asking for text input from the user at runtime
There are three functions currently:
* `string user_prompt(string message)`
* `string user_prompt(string message, int timeoutInMillis, string defaultValue)`
* `string user_prompt(string message, aggregate options)`
Note two things:
1. There is not currently a timeout-able option select function. It's harder to do so I've left it for now
2. Whatever type of aggregate you pass as options you will get a string in return. This could be changed in the future
Revision: 20798
Something broken in GN, now not broken. Thanks @Phillammon
Revision: 20799
Fix cancel button on user_prompt popups
Revision: 20800
Add meteorite fragment items pulverize data
Revision: 20801
`string_modifier`'s first arg can be an item. Always could have been.
Revision: 20802
Track whether KGB flywheel is charged (so we can be sure of the +11 clicks)
Revision: 20803
get_workshed() null check
Revision: 20804
Fix negative weight buddy-bjorn and crown-of-thrones in maximizer being ignored if those items aren't currently equipped. Add "bonus-carry" keyword which gives a bonus to that familiar being carried in crown or bjorn same as the bonus keyword for equipment
Revision: 20805
Backout 20804, more testing is required as it wasn't working consistently
Revision: 20806
Don't warn about buying a Red Zeppelin ticket in Way of the Surprising Fist
Revision: 20807
Support for Our Daily Candles
Revision: 20808
Consider Ew the Humanity and A Beastly Odor in combat data calculations
This is assuming it adds 2 copies of the phylum like the snapper. If that's wrong we just need to change the number
Revision: 20809
Handle queue tracking for crystal ball monsters better
Revision: 20810
Handle queue tracking and appearance_rates for saber forces
Revision: 20811
Make items.txt consistent with equipment.txt.
There were a few items that were incorrectly formatted, and one that
was missing outright (Abracandalabra).
Revision: 20812
Add actual power for Abracandalabra.
Thanks, Rinn!
Revision: 20813
Fix eudora matching in Valhalla decorator
Revision: 20814
Fix more nemesis quest tracking (thanks @philmasterplus)
Revision: 20815
Reverse Yoda-style comparisons in Parser.java.
en.wikipedia.org
Courtesy of fredg1 at kolmafia.us, as part of a broader refactor as
part of adding language server features for ASH.
In particular, this is useful in Java for null-safe comparisons, at
the expense of code that reads more awkwardly. (It's often widely used
to avoid accidentally performing an assignment instead of an equality
check.)
we've looked at the logic for Parser.currentToken() and concluded that
it can never return null; thus, this should be a safe change to make.
As an added bonus, fredg also fixed a potential NullPointerException
in Parser.parseJavaFor in making this change across the board.
This will be useful in simplifying a follow-up change that refactors
Parser to use Line and Token classes.
Revision: 20816
Add a rudimentary ParserTest.
This tests whether a provided script is well-formed, and if not, what
error message is raised.
This also disables a couple of very slow ConcoctionTest cases, and
upgrades JUnit to 4.13 for access to assertThrows.
(I have no objections to upgrading to JUnit 5, but my impression is
that we'll need to rewrite our tests for that. If we want to do it, we
should do it sooner rather than later.)
Revision: 20817
Add an ASH string template test.
Courtesy of fredg1 @ kolmafia.us.
Revision: 20818
Add coverage targets via OpenClover.
Some notes:
As commented in build.xml, invoke this via
ant -lib lib/testjar coverage clover.report
This will recompile all the files with coverage by adding
instrumentation after each statement, then generate a coverage report
that can be viewed at clover/clover_html/dashboard.html. You may need
to `ant clean` first to remove non-covered class files.
You must manually specify -lib to include clover.jar in Ant's
classpath, as was strongly recommended by OpenClover's installation
guide. (The alternatives were either "install clover manually into
Ant's default classpath" or "edit the build.xml to use a
less-comprehensive <clover-instr> command"; both of these seemed much
more intrusive than requiring an extra runtime flag.
Also as noted in comments: OpenClover is unable to perform
statement-level instrumentation for methods that are too large, due to
a JVM limitation (bytecode for methods must be <= 64K in size). This
applies to two classes, which incidentally don't have any test
coverage anyways.
I've attempted to separate out the coverage targets to minimize impact
on non-coverage builds, but please file a bug or otherwise let us know
if this is not the case.
Revision: 20819
Add some string parsing tests.
Courtesy of fredg1 @ kolmafia.us.
Note that plural typed constants as well as (singular?) typed
constants are also handled by Parser.parseString.
Revision: 20820
Clarify message when an effect does not have a specific method to uneffect.
Revision: 20821
Add Clover optimization.
This actually does two things to speed up coverage builds.
First, it tweaks the weird javac srcdir / destdir that I needed to set
up in order to get all the files to be properly instrumented, such
that Ant's heuristic for detecting whether files have changed
succeeds. As a result, for new coverage runs, we no longer need to
rebuild everything from scratch.
Second, this enables Clover's "test optimization" (which I maintain
would be better named "test caching") which caches test results and
skips any unchanged tests.
Anyone using the previous `ant coverage` command should get this for
free.
Note that if you get into a weird scenario where Clover is
consistently unable to optimize tests, you may need to delete
.clover/coverage.db.snapshot before rerunning.
Revision: 20822
Fix coverage issues with last commit.
The previous commit seems like it resulted in some backsliding in
behavior, namely we lost instrumentation of code files if we did a
clean recompilation of the source files.
I've checked multiple times that this continues to instrument the
files in question from a clean build as well as from an incremental
build.
Revision: 20823
Two tests because I wanted to. KoLDatabaseTest is in Google Java format if anyone is curious. The changes to KoLDatabase were suggested by a lint analysis and a null check was added because the absence broke the first iteration of testing. coverage++
Revision: 20824
Add more Parser tests, courtesy of fredg1.
This also adds some tests of `script` / `import` in ASH.
Revision: 20825
Add more string / typed constant parsing cases.
Again, courtesy of fredg1.
Note that a number of test cases are commented out, as we anticipate
their corresponding error messages will change (for the better, in
many cases) as a result of the upcoming Parser.java refactor(s).
Revision: 20826
coverage++ There are opportunities to make RollingLinkedList more robust but since KoLmafia seems to behave without them they were not done (yet).
Revision: 20827
Only coerce map keys for Javascript, not values.
JS object keys are only representable with certain types, but their
values are not.
There will continue to be some ASH types that can't be represented,
such as item[ item ]. This should be viable if we use JS Maps instead,
but I haven't tried that out..
Revision: 20828
coverage++
Revision: 20829
Fix the check for whether you can use experimental carbon fiber pasta additive
Revision: 20830
A bunch of support for the Wildfire path
All that is missing is the new shop (so you won't be able to use "buy" on them just for now) and some thorough testing.
Revision: 20831
Remove extra space in item data, discovered by running Tests!
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: 20276
Don't nag about Ode if you are in G-Lover with no access or desire to use buffbots
Revision: 20277
Move handling of consumable flags (like martini, pizza, lasagna etc) to inebriety.txt and fullness.txt
Revision: 20278
Fix consumable flag bug and add new flags for martinis and some missing pizzas
Revision: 20279
SpinMaster lathe
Revision: 20280
Probably fix the link provided when unpacking a lathe
Revision: 20281
WHen generating up arrow links in the charpane, do not do mall searches to decide if you can
acquire by creation the item that generates the effect.
Revision: 20282
If looking up shop.php ROWs, if there is a Results: section before the actual shop inventory,
do another find() to get the actual shop name.
Revision: 20283
Add more missing WINE, MARTINI and SAUCY tags. Create new SALAD, BEER and CANNED tags
Revision: 20284
Update OSXAdapter to use Desktop and Taskbar functions, if you are running at last Java 9, since come Java 14,
the old way of doing things is broken
Revision: 20285
Initial lathe woods and items
Revision: 20286
Your SpinMaster™ lathe is a coinmaster. Add ancient redwood. Add Lathed Livery.
Revision: 20287
Add three more items to the SpinMaster lathe coinmaster
Revision: 20288
bundles of lathing wood. Visit Your SpinMaster™ lathe at breakfast.
Revision: 20289
Only visit lathe at breakfast if you have one
Revision: 20290
Add _spinmasterLatheVisited. Only visit the lathe during breakfast if it hasn't already been visited.
Revision: 20291
Add purpleheart logs and purpleheart "pants".
Revision: 20292
You don't "unlock" items in YOur SpinMaster lathe; items are available only if you have the currency.
Therefore, continue to learn new items, if any, but simply add them to the coinmaster buyitems
(and purchase requests, etc.) when detected. Lathed Livery is a zapgroup. Equipment powers.
Guzzlr tablet is no longer a free pull
Revision: 20293
Expeirmental: If you have jython in your classpath, run python files from the commandline. Watch this space
Revision: 20294
Revert python stuff for now
Revision: 20295
Add TMate SVNKit license
Revision: 20296
Update SVNKit to 1.10.1. Updated required libraries.
Revision: 20297
Initial support for dripwood slab and drippy diadem. Remove zap group for Lated Livery items
Revision: 20298
Add boolean _redwoodRainStickUsed property to track/control the once-per-day usage of the redwood rain stick
Revision: 20299
Recognize Grey Goo
Revision: 20300
Modernize a lot of code to eliminate lots of unchecked references
Revision: 20301
Grey Goo locations, effect
Revision: 20302
eliminate deprecated explicit boxing
Revision: 20303
Clearer Neverending Party spoilers
Revision: 20304
Fix hundreds of compiler warnings. 2267 remain, using Java 14.
Revision: 20305
Add coinmaster entry for drippy diadem. giant turkey leg easier to equip.
Revision: 20306
Eliminate all [static] warnings - calling a static methid as if it is an instance method
Revision: 20307
Fix REVISION
Revision: 20308
Fix compiler warnings in most of ASH and some CLI commands
Revision: 20309
Resolve some compiler warnings.
Revision: 20310
Add log_n function. One argument for natural log, two arguments for log base n
Revision: 20311
Fight text is now required to contain a MONSTERID
Revision: 20312
fix a few food and booze entries
Revision: 20313
Fix many compiler warnings in Gear Change Frame. Render items names prettier.
Revision: 20314
Whack Gear Change Frame to update the equipment lists (the GUI models) in the Swing Event thread.
Revision: 20315
Don't update slot -1
Revision: 20316
Handle changing familiar equipment via inv_equip.php
Revision: 20317
Add shop_limit function to fetch the limit set for an item in your shop
Revision: 20318
Grey Goo monsters and items
Revision: 20319
Goocore Ronin lasts 10000 turns. Visiting the Goo Prism takes a turn.
Revision: 20320
ASH "new" constructor for a record is expected to coerce expressions into int, float, string, or boolean.
It did not do so. Make it corece as needed.
Revision: 20321
Log daycount when first got Shen Copperhead, Nightclub Owner. Thanks to fredg1 @ Kolmafia.us
Revision: 20322
goo monsters have multiple images
Revision: 20323
Use release="8" in the jvac ant task. WARNING: requires ant 1.9.8 or later
Revision: 20324
Add fistful of wood shavings. Don't show unavailable skills at the gash as "skills you have not learned".
Revision: 20325
plurak
Revision: 20326
Initialize KoLCharacter.currentModifiers early in class initialization,
before subsequent classes get initialized that want to refer to it.
Revision: 20327
Add zap group for rare oyster eggs
Revision: 20328
Passive skills without Gs are ineffective in G-Lover
Revision: 20329
minor item changes from latest KoL changelog
Revision: 20330
Do not try to calculate dwarf runes in the warehouse if KoL did not give you an item
Revision: 20331
Fix Meat drop for the ghost of Phil Bunion
Revision: 20332
Adjust monster appearance rates based on Red-Nosed Snapper tracking, thanks to fredg1
Revision: 20333
PVP Seasoning. gregooball. Item drop for dismal swamp b
ss" monsters.
Revision: 20334
New Lyle and IOTM stuff
Revision: 20335
More pocket drops from spreadsheet or mall
Revision: 20336
onyx, alabaster, muffins
Revision: 20337
More cargo shorts stuff
Revision: 20338
cargo shorts stuff
Revision: 20339
cargo short effects
Revision: 20340
More cargo short items
Revision: 20341
Start adding data for Cargo Cultist Shorts. This isn't used for anything yet.
Revision: 20342
6 cargo cultist shorts effects
Revision: 20343
two more items, 2 more effects
Revision: 20344
More items and effects
Revision: 20345
support for onyx and alabaster chess pieces and fancy chess set
Revision: 20346
Completely whack how the item lists that back up the models in the Gear Changer get updated.
Code is much simpler and should be much easier to maintain, but is it correct?
Revision: 20347
Recognize "You've already played today" message for the fancy chess bpard
Revision: 20348
Using a desk bell redirects to a fight.
Revision: 20349
Initial implemen tation of CargoCultistShortsRequest. Adds properties "cargoPocketsEmptied" (a comma-dlimited
list of pockets you have emptied this ascension) and "_cargoPocketEmptied" (a boolean denoting whether you have
picked a pocket yet today).
Revision: 20350
Add simple "cargo" command to manipulate your Cargo Cultist Shorts
Revision: 20351
Log an error when you've already picked a pocket in your Cargo Cultist Shorts today.
Revision: 20352
Cargo Cultist SHorts monsters
Revision: 20353
plurals. use links for Cargo Cultist SHorts
Revision: 20354
Soup up CargoCultistSHortsRequest to keep the set of picked pockets up to date.
Load from setting when you log in, update and save to setting when you pick a pocket.
"cargo" command with no arguments prints picked pockets without going to KoL.
"cargo inspect" goes to KoL to refresh setting and then prints picked pockets.
Revision: 20355
If your Cargo Cultist Shorts redirect to a fight, set _cargoPocketPicked property.
Revision: 20356
When a cargo pocket redirects to a fight, save the pocket to set of picked pockets
Revision: 20357
Yeg's Motel slippers
Revision: 20358
There are paths through a try block that do not set a variable referenced in the finally block. Guard
Revision: 20359
The Familiar Item slot in the Gear Changer is now managed by that class itself, rather than EquipmentManager
Revision: 20360
The CargoCultistPantsRequest will now perform HP/MP recovery before picking a pocket that leads to a free fight.
Revision: 20361
Cargo Cultist Shorts free fight map is now Integer => MonsterData
Revision: 20362
plural for Yeg's Motel stationery. Cargo Cultist Shorts are not a Free Pull.
Handle "That pocket is empty" when you try to pick a pocket you already used this ascension.
Revision: 20363
External requests do not interrupt (count as walking away from) a choice adventure
--Thi line, and those below, will be ignored--
M src/net/sourceforge/kolmafia/request/CargoCultistShortsRequest.java
M src/net/sourceforge/kolmafia/session/ChoiceManager.java
Revision: 20364
Experimental: look for (waterlogged) scraps of paper in Cargo Cultist Shorts pockets.
Save in cargoPocketScraps or cargoPocketWaterloggedScraps property, as appropriate.
Revision: 20365
Separate pocket scrap messages with "|", not ","
Revision: 20366
Plural for Yeg's Motel hand soap. Non-waterlogged scraps of paper give syllables of
a per-ascension demon name that grant's Yeg's Power. Waterlogged scraps give an encrypted
poem. Log those, but they do no vary per player, so don't save in a property.
Revision: 20367
Add Yeg's Blessing, thanks to Lacey Jones
Revision: 20368
Yeg's Motel plurals
Revision: 20369
desk bell monster item drops frpm spading spreadsheet
Revision: 20370
Log the message on notes that are wrapped around Meat, In case you want to solve the puzzle yourself.
Add "test pocket POCKET" command
Revision: 20371
Updates to Yeg items and effects
Revision: 20372
desk bell monsters scale at 15
Revision: 20373
Yeg's Keeping
Revision: 20374
Include a couple items in mafia's header to debug logs.
Revision: 20375
Familiars that carry equipment grant you skills provided by the equipment they are wearing.
Correctly add and remove such skills when you remove or change what such familiars are carrying.
Revision: 20376
When you change familiars, forget conditional skills from the previous familiar and gain conditional skills from the new one.
Revision: 20377
Handle conditional skills when equipping/unequipping current familiar via familiar.php
Revision: 20378
Use famid when unequipping familiars, rather than whichfam
Revision: 20379
Remove obsolete private methods. Dripping trees and hall are nowander
Revision: 20380
When "setting" your current familiar (as from api.php), do nothing if it is already your current familiar
All TransferItemRequests will now abort (with appropriate message) if you are in a fight or a choice.
ClanManager.getStash() will not even attept to retrieve (with no error) if you are in a fight or choice.
Revision: 20381
Add dump functionality to ASH, from fredg1
Revision: 20382
Revision: 20383
Add voting_booth_initiatives function to ASH to allow you to forecast initiatives for a the voting booth. This also includes Java ports of the seeded random functions KoL use on the server, so should be generally applicable when this sort of spading is done
Revision: 20384
voting_booth_initiatives function now returns boolean [string] because there are sometimes conflicting modifiers. Also added a format class-as-int format to theorize about nonexistent classes (perhaps in an avatar path)
Revision: 20385
Add "test take-choice CHOICE DECISION [FIELD=VALUE]...
FIx patter for detecting carg shorts pocket scraps: can be <B> as well as <b>
Revision: 20386
Add some secondary usages to test regex so test doesn't fail
Revision: 20387
Experimental - return a long for HP and MP values in table, not sometimes an Integer and sometimes a long. Rework the associated sort.
Revision: 20388
Correct/simplify cargoPocketScraps property to not include the encoded "number" part of the value,
since that does not vary from player to player. Convert previous format to new format, if required.
Revision: 20389
First pass of all 666 Cargo Cultist Shorts pockets
Revision: 20390
A lot of line/star pockets are really Unknown, since they were incorrectly implented originally
and have been repaired. FIx these when they have been spaded.
Revision: 20391
Reorganize pocket categories inpired by WIki
Revision: 20392
Expose internal method that updates candy prices in the Synthesis frame to ASH as void update_candy_prices()
Revision: 20393
Parse cultshorts.txt into Pocket objects. Add "cargo pocket N" comand to see what is a pocket.
Revision: 20394
Pretty up the display of items a bit
Revision: 20395
Allow "cargo pocket NNN" to be used not-logged-in, since it looks up the PocketDatabase,
rather than sending requests to KoL.
Remove temporary code from CargoCultistShortsRequest now that we have PocketDatabase
Remove debug printing when initializing the PocketDatabase.
Revision: 20396
Log unknown pockets when loading pocket data. Prettier "type" logging for effects.
Disambiguate effect names, if needed. Spreadsheet has data for two of the Unknown pockets.
Revision: 20397
When initializing PocketDatabase, create ArrayLists containg scrap syllables and poem half-verses in order
Revision: 20398
Do the same thing for Meat pocket clues
Revision: 20399
Rather than hardcoding pocket numbers when constructing demon name, let PocketDatabse
give the pockets in the order needed
Revision: 20400
cargo jokes, poem, scraps, and meat. Fix another Unknown pocket
Revision: 20401
More dealing with scrollbars. fred1
Revision: 20402
Improve demon name recognition. Fix previously Unknown pocket. "cargo demon" is a sunonym for "cargo scraps"
Revision: 20403
Handle not having any demon scraps known yet
Revision: 20404
When save scraps property, save the pockets in the order that they provide syllables for the demon name
Revision: 20405
Add "Restore" pocket type which grants a full HP/MP restoration and an effect.
Log Yeg demon name in gCLI and session log when found, as well as saving it in
the demon13 property
Revision: 20406
fruitfilm is classified by KoL as a potion but, strangely, it does not grant an effect.
Treat it as an Item in the PocketDatabase.
Revision: 20407
get rid of "Unknown" PocketType. Dramatically simply code for maintaining maps of
pockets by pocket type.
Revision: 20408
Add "cargo count type TYPE" command
Revision: 20409
Pockets with a "common" effect - multiple sources - are now type Comoon.
Add "cargo list type TYPE" to see all the pockets of a given type.
Revision: 20410
Use HashMaps rather than TreeMaps for Pocket maps. Eliminate redundata "cargo" subcommands.
Revision: 20411
Wiki now has duration for Cold Dead Hands effect. Reformat stream sorting for code clarity.
Revision: 20412
Add support for "cargo count effect EFFECT" and "cargo list effect EFFECT".
Revision: 20413
Add a spading hook to place.php
Revision: 20414
Further simply class structure of Pockets. Augment "caro" command:
cargo count item ITEM
cargo list item ITEM
cargo list monster MONSTER
Pockets that grant two effects now appear in the "list" of pockets for both effects. They will
sort lower than the single effect pockets, since those lists are sorted high to low by duration.
Revision: 20415
Add "checking" to cargo command: any command which would actually pick a pocket can be invoked with "cargo?",
which will tell you which pocket would be selected.
Add "cargo item", "cargo effect", and "cargo monster" commands to pick a pocket.
Revision: 20416
Add "cargo list stat STAT", "cargo stat STAT", and "cargo? stat STAT"
Revision: 20417
Add some familiar attributes to familiars.txt from Excavator (and from the wiki in a few places) and update Adventurous Spelunker to deal physical damage
Revision: 20418
cargo command allows monsters, effects, and items to be specified by id #, as well as by name.
When specified by name, use case-insensitive lookup but normalize names to agree with the actual
item, effect, or monster
Revision: 20419
Add "cargo effect XXX" as a source to all status effects that can be found in the cargo cultist shorts.
Revision: 20420
Use effect name rather than effect number in "cargo" commands in statuseffects.txt
Revision: 20421
The Tunnel of LOVE is accessible while faling down drunk
Revision: 20422
Fix NullPointerException when inspecting quality and attributes on effects that are not in the EffectsDatabase
Revision: 20423
Cartopgraphy book and skill
Revision: 20424
Initial ASH support for Cargo Cultist Shorts. NOTE: the whole API is here,
EXCEPT for pick_pocket() - the thing which actually goes to KoL to use the shorts.
Everything that is here queries the internal database and various properties.
Let's get feedback on whether this is what is needed, before (easily) finishing.
Revision: 20425
Add ASH functions: joke_pockets, pocket_joke, and pick_pocket
Revision: 20426
No navigation link to combine RGB picels in Kingdom of Exploathing.
Revision: 20427
Expand displayed text for "help cargo". Add ASH function: pocket_set restoration_pockets()
Revision: 20428
Add Cartographic status effects
Revision: 20429
consumption data for flask of moonshine and (blueberry/bran/chocolate chip) muffin
Revision: 20430
Teach the Maximizer about the Cargo Cultist Shorts
Revision: 20431
Log taking the Downtown Train. Property "muffinOnOrder" starts aas "none"
but can be "blueberry muffin", "bran muffin", or "chocolate chip muffin",
if KoLmafia observed you ordering a muffin.
Revision: 20432
When you are about to submit a request to buy a muffin, remove the earthenware muffin tin from inventory
Revision: 20433
Don't report "unhandled redirect" to place.php?whichplace=monorail
Add a pre-gash nag if you have an earthenware muffin tin and no muffin on order
Clear muffin on order if you visit the muffin counter and it offer to make you a muffin
Revision: 20434
"" -> "none" for muffinOnOrder
Revision: 20435
Also add a nag to eat your muffin and order another, if you have a muffin in inventory
Revision: 20436
CargoCultistShortsRequest can redirect to a fight. If it does, automate it, as we do
for genie fights, chateau fights, and many others.
Revision: 20437
Since the decisions for choice 1308 are variable, look at response text, rather than option to
decide whether you just ordered a muffin. Also remove ingredients when you buy a muffin tin.
Revision: 20438
Better processing of intrinsics gained (or lost) in battle
Revision: 20439
You can't look at the previous choice respopnse if there wasn't a previous choice
Revision: 20440
Teach UseLinkDecorator about intrinsics
Revision: 20441
Don't annotae monster in Realy Browser if you cannot find the 'monname' span
Revision: 20442
Add "pockets" link to Cargo Cultists Shorts AFTER adding regular use links for pants
Revision: 20443
Bad Moon adventure "Oil Be Seeing You" is now in Pandamonium Slums rather than Deep Fat Friars Gate
Revision: 20444
Gingerbread City tracking improvments, thanks to fredg1
Revision: 20445
Added can_equip(familiar, item) to check if a familiar is able to equip an item
Revision: 20446
Fix a couple of Stats pockets in the cult shorts
Revision: 20447
Cartographic effects are shruggable
Revision: 20448
Update TCRS seeds, much thanks to 3BH
Revision: 20449
Add Map the Monsters, track Map the Monsters (_monstersMapped), track if the charge is currently active (mappingMonsters)
Revision: 20450
Properly support the preferences that I just added
Revision: 20451
When you use a tiny bottle of absinthe, start the three Wormwood counters immediately.
Do NOT set them when the charpane (or api.php) says you are Absinthe-Minded.
Include fredg1's patch to allow "counters nowarn Wormwood" to work.
Revision: 20452
Add "counter stop LABEL" to clear only counters with specified LABEL.
Revision: 20453
Improved support for IntelliJ, thanks to MCroft.
Revision: 20454
Add simple "catch" statement to ASH:
string catch STATEMENT; or string catch { BLOCK } will execute the STATEMENT or BLOCK and capture an error value,
permitting the script to continue executing.
Revision: 20455
Fix cargo shorts pocket 12
Revision: 20456
Fix the "catch" keyword in ASH returning a value.
Revision: 20457
Comprehensive Cartographic Compendium choice adventure spoilers from 3BH @ Kolmfia.us
Revision: 20458
Possible fix for null pointer reported in maximization under some circumstances
Revision: 20459
Track daily Hippy Island Farm items collected (_hippyFarmItemsCollected), thanks mgreen52!
Revision: 20460
It's _farmerItemsCollected, not _hippyFarmItemsCollected
Revision: 20461
Replace monster names in the monster map adventure with their mafia names (to disambiguate between ninja snowmen, gremlins etc) when spoilers are enabled
Revision: 20462
Add "unpicked TYPE" to "cargo count" and "cargo list" commands
Revision: 20463
Fix usage string for cargo command
Revision: 20464
Whack usage of api.php (which doesn't work in Valhalla) to avoid issues in Valhalla
Revision: 20465
Handle redirects to login.php (timein) before checking redirects from afterlife.php
Revision: 20466
Fix spoilers for choice 1428, per landamus
Revision: 20467
Fix choice 1428 for real
Revision: 20468
Robustify code to make sure standard restrictions are read whenever you log in or ascend.
Revision: 20469
in postAscension, mark that we are no long in Valhalla before refreshing the session
Revision: 20470
Radio KoL is dead. Long live Radio KoL.
Revision: 20471
Fix pocket 603 per Wiki
Revision: 20472
Do not hardcode 1000 as the length of ROnin when checking "interaction" via the charpane.
Revision: 20473
Add "cargo pick #" command (synonym of "cargo #")
Revision: 20474
Add three new functions that provide timestamp support in ASH - int now_to_int(), int date_to_timestamp( string format, string date ) and int timestamp_to_date( int timestamp, string format )
Revision: 20475
Added some quality and attribute data to statuseffects from Excavator
Revision: 20476
Add note to debug lug thanks to MCroft @ KoLmafia.us
Add more info to interpreter exception (untested).
Revision: 20477
Add Interpreter.InterpreterState enum, rather than having final string constants for state.
Soup up catch to catch captured values, script errors, and java errors
Revision: 20478
Simplify Catch: only need a single ParseNode class to handle standalone and value versions
Revision: 20479
Fix parsing "catch as a value" with a block and with an expression.
All sorts of ASH Parser cleanups suggested by IntelliJ.
Revision: 20480
Get focus for last created window as per MCroft @ KoLmafia.us. Also some lint clean up while we're there.
Revision: 20481
Add svn.fail.on.error build property per Mcroft
Revision: 20482
Only recalculate COncoction stat gains if your class has changed since last time.
Revision: 20483
Simplify setting of classname/classtype. Recognize Plumber.
Revision: 20484
Dirty Pear doubles bonus sleaze damage
Revision: 20485
gCLI login command error handling
Revision: 20486
Close Hot Key for standard windows (ctrl/cmd-w)
Revision: 20487
OSX Badge Icon support check
Revision: 20488
Change Maxmimizer filters from radio buttons to checkboxes (multi-type filtering)
Revision: 20489
retro superhero cape
Revision: 20490
Added tracking for the retro cape configuration, added skills (only equipment-based skills are currently gated), added modifiers based on cape configuration
Revision: 20491
Macro followed by item not found not aborting as expected.
Revision: 20492
Added retrocape CLI command and fixed bug in cape config tracking
Revision: 20493
Added retrocape CLI command class
Revision: 20494
retrocape skills depend on preferences
Revision: 20495
Fixed potential security issue
Revision: 20496
Update Maximizer Equipment Scope in Preferences
Revision: 20497
Optional radio-button style functionality to maximizer filter checkboxes
Revision: 20498
Fix restricted access to some files since
Revision: 20495
Revision: 20499
The Knoll is not available in Gray Goo. Thanks to fredg1 @ kolmafia.us
Revision: 20500
Just as we no longer compare the displaed item name with the actual item name from items.txt when parsing results, do not compare parsed effect name with effect name in statuseffects.txt
Revision: 20501
Maximizer for CLI should not create things.
Revision: 20502
Need to sort scrap, meat, and poem pockets rather than return initial set since
they could have been filetered (unpicked, for example)
Revision: 20503
maximizer with createOnHand pref NPE fix
Revision: 20504
Added directory for external jars needed to build KoLmafia src, build file to include them and rhino jar in anticipation of other changes to come momentarily.
Revision: 20505
Support for KoLscripting in Javascript. Thanks to ikzann @ kolmafia.us
Revision: 20506
Better step3 detection for Spookyraven Manor thanks to fredg1 @ Kolmafia.us Untested (by me).
Revision: 20507
Added documentation to ItemProxy. Planning to add documentation like this to all of the ProxyRecordValue classes and use them to generate documentation for the wiki and for JS typing.
Revision: 20508
handle multiple loc= lines in the same counter when reading prefs.
Revision: 20509
ikzann's fix to allow certain scripts to work
Revision: 20510
Update .classpath for those environments that use it and the "new" build convention. ikzann @ kolmafia.us
Revision: 20511
Correctly convert anonymous RuntimeLibrary records to JavaScript POJOs
Revision: 20512
Fix ProxyRecords returned from other ProxyRecords in JS (this and the last commit by ikzann)
Revision: 20513
itemDrop
Revision: 20514
Adds "jsref" command, an analogue of "ashref" for the JavaScript integration
Also does some things IntelliJ suggested that seemed smart
Revision: 20515
Monorail spoilers. Lightly tested. Thanks fredg1 @ kolmafia.us
Revision: 20516
fixes the bad error message when using a nonexistent function in javascript ikzann @ kolmafia
Revision: 20517
Fix data errors detected by checkitems and checkeffects
Revision: 20518
Slay the Dead cleanses an additional evil in the Cyrpt.
Revision: 20519
added help target
updated notes target to pure ANT task
Revision: 20520
This is a big patch to set up consult scripts, "lifecycle" scripts (choiceAdventureScript, betweenBattleScript, etc.), and combat filter functions. I think this mostly completes the refactoring to pull all the non-ASH-specific stuff apart from the ASH code, but it's still a little bit messy. From ikzann
Revision: 20521
Implement `require` so that ash and other JS scripts can be imported in JavaScript. Thanks @ikzann.
Also I fixed a few minor IntelliJ code analysis issues
Revision: 20522
build.xml changes to support new src/jar model
fixed ant exec and ant javadoc targets
added ant test to dist target dependencies
Revision: 20523
This patch should handle relay scripts correctly, both override scripts and those from the menu. Notably, in order to avoid breaking backwards compatibility with e.g. Guide, I've added a new GET argument to the relay menu scripts that triggers execution of any relay_x.js script vs simply returning it as a JS file. Guide calls its main JS file "relay_Guide.js." Thanks @ikzann
Revision: 20524
Several fixes for require. Thanks @ikzann
Revision: 20525
Improve enumerated type equality in JS. Thanks @ikzann
Revision: 20526
fixed issue with maximizer equipment scope not applying
Revision: 20527
Update to SVNKit 1.10.2 by using their jars instead of compiling their source. Some lint in SVNManager and replace a deprecated SVNKit call.
Revision: 20528
Fixes some bugs with argument inversion on library functions, and some type conversion issues. It also reworks some of the proxy record code to work in a more consistent way. Thanks @ikzann
Revision: 20529
Moves the standard library onto require("kolmafia") instead of a global. It also fixes some of the interrupt problems. Thanks @ikzann
Revision: 20530
Reintroduce some missing imports that break the build
Revision: 20531
Oh it was just files missing. Whoops!
Revision: 20532
Fix NEP quest tracking spoiler
Revision: 20533
Better detection of multi-step crafting. Thanks to fredg1
Revision: 20534
Added FlatLaf Themes (17 Light Themes and 43 Dark Themes) to Look and Feel Dropdown
Updated several elements to support light and dark themes
Revision: 20535
Tweaked size of AdventureSelect countField
Revision: 20536
Update smoresEaten correctly (Xande1 @ kolmafia.us) and some lint.
Revision: 20537
Fix Javascript sandbox as per ikzann
Revision: 20538
Exclude Path of the Plumber from traincost (thanks Philmasterplus)
Revision: 20539
Added "sword" keyword to maximizer, equivalent to the "club" keyword, but for swords.
Revision: 20540
Add Ghost of Crimbo hatchlings and box o' ghosts items
Add familiars and make them updat eachothers' experience counters, ensure they cannot equip things
Add effects from Ghost of Crimbo Carols
Update Ghost Dog Chow to recognise not being consumed when used on a Ghost of Crimbo
Revision: 20541
Parse skills from the charpane by id first, name as a fallback. Thanks @philmasterplus
Revision: 20542
Add first three days of 2020 advent calendar items
Use the `event(December)` modifier expression in some places where `Various` was being used instead
Apply `event(December)` automatically to newly discovered items whose modifiers only apply in December (previously December was being picked up as a Class)
Fix missing tab in some of the items I added for the December IoTM in a previous revision
Revision: 20543
Delete htmlcleaner source and replace with htmlcleaner-2.24.jar
Revision: 20544
Make adventure count field wider, thanks to philmasterplus
Revision: 20545
Create and set _gingerbreadClockVisited - fredg1 - Untested by me

Revision: 20546
Use more soothing colors for sidebar in dark mode (tnx philmasterplus)
Revision: 20547
Provide nicer darkmode colors for Location Details panel. I didn't even know we had a location details panel. now I do, and it looks better in Darkmode.
Revision: 20548
Address some hiccups in parsing charsheet for skills as per philmasterplus.
Revision: 20549
Pixie charge does not increment when you have the absinthe-minded effect active
Revision: 20550
Fix JS-based relay scripts. Thanks @philmasterplus!
Revision: 20551
Fix bug so that Slay the Dead evilness effect is registered correctly
Revision: 20552
Update .classpath gfor htmlcleaner.
Revision: 20553
More skills from charsheet tweaks.
Revision: 20554
Disambiguate some same named skills.
Revision: 20555
* Support retrocape in the Maximizer. NOTE: the retrocape command now equips the cape as well as reconfiguring it, bringing it in line with other similar commands like snowsuit and edpiece.
* Reset the retrocape prefs on ascension
* Fix typo in the status of one of the Ghosts of Crimbo as a stat0 familiar
* Add throne info to the other Ghosts of Crimbo
Revision: 20556
This effectively reverts
Revision: 20458
Revision: 20557
Stdlib fuctions fix for JS from philmasterplus
Revision: 20558
Fix a JS problem with importing ASH scripts that overload functions - ikzann
Revision: 20559
Some items and effects, mostly Crimbo 2020
Revision: 20560
Scrollable Filtered Lists (like Maximizer Results and adventure select) now use a - sign in the first character as an indicator to omit the search term (like google search)
Revision: 20561
Fix for js access to proxy records - ikzann
Revision: 20562
Maximizer tweak to deal with reduced scores (and test that fails without the fix and works with it!) Ryo_Sangnoir
Revision: 20563
Recalculate adjustments at start of maximization and refactored tests - Ryo_Sangnoir
Revision: 20564
Categorize HP/MP restorers in the auto-restoration panel (thank you, philmasterplus)
Revision: 20565
Fix Text Colors panel in Options (thanks, philmasterplus)
Revision: 20566
new command is_dark_mode for Ash (philmasterplus)
Revision: 20567
jsref filter now case insensitive, like ashref.
Revision: 20568
soolar's Maximizer keyword bonus enhancement
Revision: 20569
monospaced font for mushroom plot - philmasterplus
Revision: 20570
Add thee drive buttons. They are a mutex group. Items for donated stuff. Government shipments
cannot have an inline use link. Spread Crimbo Cheer choice can be walked away from
Revision: 20571
Crimbo Town 2020
Revision: 20572
Re-added @Veracity's the mutex group for crimbo drive buttons
Revision: 20573
Forgot to add some files
Revision: 20574
plurals
Revision: 20575
Reintroduce familiar weight parsing for familiars you haven't used yet
Revision: 20576
Fix Bee capitalization
Revision: 20577
Show +candy next to +food and +booze in the sidepane hover popup. Thanks @kalaleq!
Revision: 20578
Correctly track ghost max base weight, and add a getMaxBaseWeight function to FamiliarData to do so
Revision: 20579
- New crimbo skillbooks (one has a typo which we can just update when they fix)
- Remaining crimbo coinmaster items
- Add overflowing gift basket to breakfast
- Add summon skills to breakfast skills
- Add free rest skill
Revision: 20580
updated subscription cocoa dispenser to tradeable per wiki and user requests
Revision: 20581
New type of lifecycle script that can run when you click a player in the Chat interface. The script takes playerName (string), playerId (string) and channel (string)
Revision: 20582
Fix coinmasters.txt for crimbo 2020 stores
Revision: 20583
added monsterid to predicates for Combat Macros (per kol wiki)
Revision: 20584
Fix data files and associated test thanks to Ryo Sangnoir
Revision: 20585
Crimbo stuff
Revision: 20586
A quick test that checks field counts in internal data files. Useful because it will catch space instead of tab errors faster than the various check commands.
Revision: 20587
Add some of the svn delete activity logging to the session log. Untested.
Revision: 20588
tiny plastic Penny
Revision: 20589
More logging for svn deletes.
Revision: 20590
bumped version for combat macro helper to 1.5
Revision: 20591
add CharSheetRequestTest and data files
add DebugDatabaseTest for tests that are working
Revision: 20592
overflowing gift basket is reusable
Revision: 20593
* Support coat of paint IotY
* Refactor the way we check items whose modifiers change from time to time which are, as a result, now updated when you visit the item description
* Add spading hook for when you visit an item description for an item that changes from time to time
* Minimal support for the crystal ball (no mechanics but they're in items.txt and stuff)
Revision: 20594
plurals
Revision: 20595
Fix afterlife.ash to get map friles from "data".
Revision: 20596
Support crystal ball predictions
Currently any existing prediction is invalidated when a new encounter is... encountered. Then if the end of that encounter results in a new prediction, we log it. If spading lets us hone this then the predictions will probably just get better while the API for users of scripters will remain the same.
Revision: 20597
Happy New Year!
Revision: 20598
Some code tidying
* Removed unused imports across codebase
* Fixed last dangling jsdocs and fixed a typoed copyright
Revision: 20599
More code tidying
* Remove unnecessary escapes in regexes
* Remove unnecessary type casting
* Remove unnecessary StringBuilding
* General semi-automated code deduplication and simplification
Revision: 20600
Yet more code tidying
* Private members need not be final (they cannot be overridden)
* Many members could be made final and so were
* Made some unnecessary arguments into local variables
* Simplified some unnecessary conversions of strings to strings
* Removed extra semicolons
Revision: 20601
Add some excavator data
* Mosquito is a bug
* Crimbo skillbook food/candy/booze effects are good and hookahable
* Chubby and Plump bean is worth a whole simple candy
* They fixed the spelling mistake in Twist and and Eye and so shall we
Revision: 20602
Apparently this doesn't work on CI even though it works on my PC
Revision: 20603
Adjust fortune teller Standard checking to match KoL's name
Revision: 20604
Added serialVersionUID. Might temporarily break adventure and queue persistance but that didn't happen in limited testing.
Revision: 20605
Some more InteliiJ lead improvements, this time taking advantage of all the most modern Java syntax up to Java 1.8
Revision: 20606
* Update the skill types for the crimbo summoners
* Track cocoa dispenser daily usage (_cocoaDispenserUsed) and add it to breakfast items
* Track universal seasoning daily usage (_universalSeasoningUsed) and current status (universalSeasoningActive)
* Some small changes based on IntelliJ analysis
Revision: 20607
Revert 20605
Revision: 20608
Added another serialVersionUID. Might temporarily break adventure and queue persistance but that didn't happen in limited testing.
Revision: 20609
Escape some text in JS error messages - philmasterplus
Revision: 20610
Adventure range for bowl full of jelly & eye with a twist, monsterid for Sssshhsssblllrrggghsssssggggrrgglsssshhssslblgl
Revision: 20611
Fix modifiers typo - Ryo_Sangnoir
Revision: 20612
Crimbo Town is gone
Revision: 20613
Added a test to maybe catch a static cause of a compareTo contract violation for Concoctions. Lint on anither test.
Revision: 20614
Started tracking daily limits for usable items in a data file instead of code. There's lots more work to do on this (support spells/food/booze/spleen, use this list to set the props on use too) but it should make adding daily use limits a lot easier! And now you can use maxdailyuses on usable items.
Also support holidays in modifier_eval (through `event`) though I didn't use this in the daily limit stuff in the end.
Revision: 20615
Daily Deeds patch (text bug plus refactoring)
Revision: 20616
Ascension Rewards - thanks to Ryo_Sangoir
Revision: 20617
Tweaked test but still doesn't run. 10K by 10K by 10K is too many combos for my system.
Revision: 20618
Crystal ball fixes
* Support crystal ball message now appearing at the beginning of combat
* Support bold tags around predicted monster name
* Support one missing prediction string
Revision: 20619
Commerce Ghost further support
* Track the item the ghost of commerce asks you for
* Track the commerce ghost item quest being completed
* Add a "from mall" modifier to the "buy" command to force buying from the mall if possible
Revision: 20620
Remove valueOf() as per philmasterplus
Revision: 20621
Mark some effects with "nopvp" that were missing it
Revision: 20622
* Add correct max for pump up high tops and add a key to the top of the dailylimits.txt file
* Add an increment function to DailyLimitDatabase - it would be great to eventually use it!
Revision: 20623
Rename crimbo20 cafe consumables & lower ranges, mark as Unspaded as wiki appears incorrect
Revision: 20624
* Recognise items, skills and effects from the new IotM
* Track daily use of every skill (int "_feel<emotion>Used")
* Track last monster that meets criteria for nostalgia
Revision: 20625
* Make the emotion skills actually available to cast
* Change the nostalgic monster prop from "feelsNostaligcMonster" to "feelNostalgicMonster" and reset it on ascension
* Remove some duplicated items in items.txt
Revision: 20626
More fixes for Emotionally Chipped
* Added the banisher for Feel Hatred
* Track the combat skills properly (previously were looking for them to be cast like regular skills!)
* Add default acquisition commands for the effects
Revision: 20627
Fix Item.seller and Item.buyer throwing errors in JavaScript (thanks @philmasterplus)
Revision: 20628
get_stash() no longer checks existence of a shop instead of clan stash (thanks @philmasterplus)
Revision: 20629
Special case bufferToFile so it works from JS (by converting the first string param to a buffer (thanks @philmasterplus)
Revision: 20630
Add spoilers for Decorate your Tent
Revision: 20631
Track multi-casting of emotion skills
Revision: 20632
ash put_shop() enhancement to allow the quantity param to take a float and convert it to an int instead of using the bitwise representation of a float as the quantity to put in the shop.
Revision: 20633
https fix for ircm_extend solves 2nd space in search element issue for inventory (h/t Philmasterplus
Revision: 20634
Recognise "You, Robot" and limit consumables accordingly (thanks @dark_adonis)
Revision: 20635
* Parse "You, Robot" scraps and energy, show them in the mafia UI
* Make them accessible via ash (my_robot_scraps(), my_robot_energy())
* Do not visit the campground when in "You, Robot"
* Define prefs for tracking body parts (coming soon!)
Revision: 20636
Add missing change for recognizing Robot (thanks @dark_adonis)
Revision: 20637
* Store the robot configuration as a number (except CPU upgrades)
* Apply modifiers from robot configuration
* Parse robot configuration from charpane, reassembly station and on session refresh
* Disallow potion taking, equips and familiars if player isn't configured for them
Revision: 20638
* "Energy" and "Scrap" modifiers for indicating how much energy and scrap is awarded at the end of each fight
Revision: 20639
Do not check the vote monster counter if the voting booth is not accessible (i.e. in standard 2021+)
Revision: 20640
Fix the CPU upgrade regex
Revision: 20641
Robocore needs to update status from the charpane (for now? I've put in a request)
Revision: 20642
No Guild in Robocore
Revision: 20643
Actually added the energy and scraps functions to the scripting runtime library, and added a function to let you know if you can access a guild in your current ascension.
Revision: 20644
Fix energy matcher
Revision: 20645
Moved robocore into if/else group for charpane to prevent DBs from failing having too many additional status labels and crashing.
Revision: 20646
Track `statbotUses`, `_chronolithActivations` and `_energyCollected`
At the moment we don't know a good way to correct your energy collected (it seems to be randomized?) so we just dumbly increment the existing value
Revision: 20647
Add robo-battery item
Revision: 20648
You, Robot skills. Thanks @Ryo_Sangnoir
Revision: 20649
Added council text (thanks @cat from Discord!)
Revision: 20650
Recognise that slots/familiar have been unequipped when you change robot configuration to one that does not support them
Revision: 20651
Fix Your Campfire requests not being processed from the relay browser
Revision: 20652
Add another overload to can_equip - can_equip(familiar) tells you if it is possible under your current restrictions to equip a given familiar. Note that it doesn't check if you actually have the familiar.
Revision: 20653
Torso Awaregness -> Torso Awareness
Revision: 20654
Decorating your tent consumed a burnt stick
Revision: 20655
Track questM05Toot having been finished by its absence from the quest log
Revision: 20656
Add a TutorialRequest to track the Toot quest without refreshing your questlog
Revision: 20657
Potted Power Plant Support
* Add items (+ recipes)
* Track stalk status ("_pottedPowerPlant")
* Add Shocking Lick skill, track charges ("shockingLickCharges") and uses (untested)
* Allow "notes" for non consumables to be displayed in the inventory list renderer
* Support path function in restore expressions
* Add item effects and restores
* Support harvesting batteries in breakfast ("harvestBatteries{Soft,Hard}core")
Revision: 20658
You, Robot fixes
* Add bosses to the monsters database
* Fix reading scraps > 1000
* Do not need a Wand of Nagamar
* Fix tracking hats and familiars
* Restore skills and campsite after freeing the king
Revision: 20659
Batteries are consumed on use
Revision: 20660
Added nosmash to some items that were missing it. Thanks @philmasterplus
Revision: 20661
Do not unescape JS scripts. Warning - this may break some js scripts, just use the &escapedform; instead. Thanks @philmasterplus.
Revision: 20662
Better tracking for slot to equip a Powerful Glove. THanks @dark_adonis, we'll see if this works.
Revision: 20663
macrame net -> hemp net
Revision: 20664
Track shocking licks even if they deal damage instead of instakilling
Revision: 20665
New content for St Yuley Tide's Day
Revision: 20666
Changes displayed memory label from KB to MB
Revision: 20667
Fix some tab vs space typos discovered by a ailing test

Revision: 20668
Fredg1's fix for some mistakenly labelled items.
Revision: 20669
fleetwood mac 'n' cheese doesn't take a turn to craft
Revision: 20670
Support for backup camera IotM
Revision: 20671
Spectral Pickle Factory -> The Spectral Pickle Factory
Revision: 20672
Update some code so that non-fancy Pastamastery recipes are supported
Revision: 20673
Prevent locations not present in combats.txt from causing an NPE when you try to read their native combat rate
Revision: 20674
Reset backup camera prefs on ascension
Revision: 20675
Fix some small robo bugs
Revision: 20676
When converting ash functions to camel case for JavaScript, better handling for unusual snake-casing (see https://kolmafia.us/threads/javascr...f-function-name-has-leading-underscore.25939/)
Revision: 20677
Warn the user if they try to grind more than 23 sausages in a day - this can be an expensive typo otherwise.
Revision: 20678
Added a get_workshed() function to the runtime library (thanks 3BH!)
Revision: 20679
Fix typo in Do You Crush What I Crush modifier string
Revision: 20680
Add my_session_results() function to the runtime library which you can use to see how many pirate insults, hobo parts, and other pseudo-items you have acquired this session
Revision: 20681
Fix swim laps and sprints for degenerate players with so many stats they break 1k laps
Revision: 20682
Track daily Poke-Grow Fertilizer drops (because there are max 3)
Revision: 20683
Default backupCameraMode is "meat" on ascension
Revision: 20684
Track yellow pixels dropped by the Puck Family when enthroned or enbjorned
Revision: 20685
Searching the mall for an item name that refers to multiple items one of which is untradeable resulted in a non-response. So, that's fixed!
Revision: 20686
Don't silence stdout as per Obeliks
Revision: 20687
cli color support as per Obeliks
Revision: 20688
Update jar file
Revision: 20689
Make HTTP request headers case insensitive -- thanks Fredg and Philmaster+
Revision: 20690
clipboardPatchFile
Revision: 20691
Use KoLAdventure.lastVisitedLocation() to check for Guzzlr progress instead of KoLAdventure.lastLocationName because the former will still match even if you're fighting an attunement tentacle
Revision: 20692
DMT choice counting is nothing to do with the monster that is being fought, its just basic delay on the zone (i.e. wanderers/tentacles do decrement it and copies of DMT monsters fought outsode of the zone do not)
Revision: 20693
Get the maximizer to consider changing mode on the backup camera
Revision: 20694
Fix typo in choice adventure 1433 spoiler
Revision: 20695
Use try-with-resource in Checkpoints. Thanks to @fredg1 for the initial work
Revision: 20696
Some changes to maximum item use data surfacing
* RestoresDatabase now uses UseItemRequest's maximumUses function for item restores
* $item dailyusesleft record now uses UseItemRequest's maximumUses function
Revision: 20697
Incorrect item id for the charged druidic orb. Thanks @fredg1
Revision: 20698
Added some additional static and non-interrupting request types (thanks @fredg1)
Revision: 20699
Correctly parse damage from an unusual spelunky shotgun hit message
Revision: 20700
Unversion ide specific files.
Revision: 20701
Handle single-cast skills that don't cost MP
Revision: 20702
Two small fixes from @fredg1. Something was probably broken with defeating lolmec before this patch.
Revision: 20703
Add try/catch around AnsiConsole.systemInstall().
I didn't add any tests for this, but I did check that it initializes
(falling back to default behavior with no colors) if I throw an
unconditional exception beforehand, and it continues to compile and
provide me with colors if I don't have that exception in place.
Revision: 20704
Catch LinkageErrors in KoLmafiaTUI.
Errors are not exceptions, and _usually_ should not be caught. This
case is recoverable.
Revision: 20705
Simplify G-Lover and Beecore checks, apply them to harvesting batteries
Revision: 20706
Revert to
Revision: 20704
Revision: 20707
* Do not try to use portable power plant in G-Lover
* Do not show sweet synthesis when "spleen" is filtered out of maximizer
Revision: 20708
Have a fresh perspective on price for each alternative effect source in the maximizer
Revision: 20709
Multi-using batteries gives a corresponding number of Shocking Lick charges
Revision: 20710
Handle modifiers that cannot be applied to Left-Hand Man or Disembodied Hand, do not apply them for the maximizer either
Revision: 20711
Initial support for the short order cook
Revision: 20712
Add scrolling to the Scripts menu
Revision: 20713
Add arena rank for short order chef
Harvest batteries in breakfast by default
Revision: 20714
Update some modifiers for the shorter-order chef
Revision: 20715
* Expand width of script scroller to match widest item
* Show 25 scripts at once not 15
Revision: 20716
Add madcarew to authors.txt (a little late!)
Revision: 20717
Green Rocket no longer available on Dependence Day
Revision: 20718
Allow deferred checks in Checkpoint.
I'm actually not sure if this is necessary, but it accurately replicates the behaviour we had before we moved to try-with-resources
Revision: 20719
Fix NPE in UseItemCommand
Revision: 20720
Fix breakable equipment breakage not registering on familiars
setEquipment needs to setItem on the KoLCharacter.currentFamiliar. It used to do this until it was accidentally removed ~10 months ago.
Revision: 20721
Support for Quantum Terrarium challenge path
Revision: 20722
Marked two items as simple candies
Revision: 20723
Restore the familiar popup menu and show favorite familiars as icon grid instead of giving them 1 row each
Revision: 20724
Fix 3 missing favourite familiars and tooltip remaining on no familiar
Revision: 20725
Allow relay requests to begin with https:// when validating the referer as the user could be reverse proxying the relay browser with ssl
Revision: 20726
Added path rewards for QT
Revision: 20727
Add snapper command and error out if you try to use it (or the Grim Brother command) in QT
Revision: 20728
Add plural to quantum of familiar item
Revision: 20729
Stop infinite loops on Quantum Terrarium requests
Revision: 20730
Fix snapper command for mer-kin
Revision: 20731
Grim Brother and Red-Nosed Snapper now usable in Quantum Terrarium
Revision: 20732
Refactor Phylum parser to accept doubles and allow the use of "merkin" without a hyphen
Revision: 20733
Add missing line from last commit
Revision: 20734
Use iterators when managing ScriptMRUList,
Revision: 20735
Fix have_familiar and other issues where maifa thinks you have a familiar in your terrarium because you saw it during QT
Revision: 20736
Aloow runtime library functions that are called with a named reference to another callback function (i.e. combat filters) to be supplied a function as an argument in JavaScript
e.g.
```js
adventure(1, Location.get("The Dire Warren"), (round, monster, page) => "attack");
```
Revision: 20737
stained glass shiv used to be a ranged weapon, now it's a melee weapon. updated req. stat to match current desc (and make it a meelee weapon).
Revision: 20738
JavaScript combat macros can now be executed with access to their parent scope
Tested against this bit of code working, which now does.
```js
const { print, adv1 } = require("kolmafia");
const runAdventure = (action) => {
let monster = null;
adv1(Location.get("The Dire Warren"), 1, (round, m, text) => {
monster = m;
return action;
});
print(monster);
};
function main() {
runAdventure("runaway");
}
module.exports.main = main;
```
ote that the macro is able to access `action`, and to change the value of `monster`.
Revision: 20739
Do not check Quantum Terrarium if player is in a fight or choice or other chained adventure that denies access to other pages
Revision: 20740
Add default params for adv1 such that, if omitted, the second parameter is -1 and the third is ""
Revision: 20741
Add spoilers for boxing day spa effects
Revision: 20742
Fixes issue where peeking at the choice adventure for abandoning a Guzzlr quest ruins platinum quest tracking
Revision: 20743
When considering overwrites triggered by SVN, match directory and file name, not just file name. Limit scope on some script searches.
Revision: 20744
Slime Hates It still applies in Noobcore
Revision: 20745
Make cultist shorts monsters as NOCOPY
Revision: 20746
Imported files added to Parser.imports too late to prevent circular reference - tnx Fredg
Revision: 20747
Some QT fixes
Revision: 20748
Support for familiar scrapbook
Revision: 20749
Fix Quantum Terrarium Request parsing breaking on melodramedary
Revision: 20750
Familiar scrapbook missing from equipment.txt
Revision: 20751
Consider experience percentage modifier when maximizing for experience, assuming that the monster's base exp will be the player's level * 2
Revision: 20752
Rename `feelNostalgicMonster` pref to be named `lastCopyableMonster` (remember, commit releases don't make any promises for consistency - change your scripts!)
Revision: 20753
Improve stat mod accuracy
* Make mafia's calculation for expected stat gain (e.g. from `numeric_modifier("Muscle Experience")`) much more accurate
* Make calculations for said modifiers consider mime army insignias
* Use same calculation for estimated base experience from a monster for maximizer and the idle modifier calculator
Next step is to consider stat-tuners in the maximizer!
Revision: 20754
Fix bonus ML being considered bad for stat gain
The function for calculating base exp sitting in KoLCharacter was subtracting instead of adding bonus ML and as such reusing it in the maximizer caused that issue to surface in a more well used area of the project.
Revision: 20755
More stat estimation fixes for the maximizer!
Revision: 20756
Track ensorcelee and its modifiers when in Dark Gyffte. Better late than never!
Revision: 20757
Clean up configurables in the maximizer
Revision: 20758
Apply vampyric cloake ensorcel bonus to character and in maximizer for Dark Gyffte
Revision: 20759
Show your boring familiar pictures is a 100 turn banish that is not reset on rollover
Revision: 20760
Catch familiar scrapbook activations in the correct place.
I had previously moved this in testing - I'm sure you can get it to show up outside of a familiar action, but maybe something changed, or maybe something else is going on
Revision: 20761
Remove both crop and seed of previous garden when using a new one
Revision: 20762
Add 'logPreferenceChangeFilter', which is a comma separated list of preferences to not log when logPreferenceChange is enabled
Revision: 20763
Only assess a request for whether we should check the next familiar in QT if it is not a redirect
Also fix flashing familiar icon after each turn
Revision: 20764
Define some extra non-interrupting requests. Thanks @fredg1
Revision: 20765
Make slots and stats into proper proxy records just to make JS casting easier
Revision: 20766
Clear familiars after a QT run (and keep track of quantumPoints for those interested)
Revision: 20767
I feel like I've earned this

Revision: 20768
Set "already used this today" Tunnel of LOVE decision to automatically be leave and stop accidentally getting locked in it
Revision: 20769
Add missing crystal ball prediction string
Revision: 20770
jsref recognises JS camel case functions
Revision: 20771
Refactor Eudora support, add new function `eudora_item` which gives you the item used to unlock the current eudora
Revision: 20772
Add underwater familiar support to the Robortender
Revision: 20773
Revert "Add underwater familiar support to the Robortender"
This reverts commit bb035b5ea9c336f4f7e10eec07dd75167aadcfe5.
The commit in question broke the build, as noted by several others.
Revision: 20774
Add underwater familiar support to the Robortender
Revision: 20775
Add three missing skills from 2021 standard reward items
Revision: 20776
Added some error handling for sweet synthesis if the inventory is out of sync
Revision: 20777
And now do the same without spelling and grammar errors

Revision: 20778
Add is_casual() function that returns value from api.php, untested
Revision: 20779
Fix misplaced space typo
Revision: 20780
JavaScript runtime no longer interrupts when library functions return false
Revision: 20781
Add more familiar types to shorter-order cook
Revision: 20782
Initial support for July IotM
Revision: 20783
Check for null ensorcel Modifiers in applyVampyricCloakeModifiers() to handle phylums not listed in modifiers.txt
Revision: 20784
Use correct firework price
Revision: 20785
Clan Fireworks Shop is not a coinmaster, so treat it more like the General Store and remove coinmaster handling
Revision: 20786
Fix nemesis quest "started" tracking. Thanks @philmasterplus
Revision: 20787
Check the correct floor of the VIP lounge for the fireworks shop
Revision: 20788
Add some substat ranges etc to previously "unspaded" consumables
Revision: 20789
Improve retrocape conditional skill handling
Revision: 20790
Chest X-Rays still expend a charge when used against a boss or special monster
Revision: 20791
Allow user to configure safety margin used in the basement overlay
Revision: 20792
Only check 1/day purchases on the actual fireworks shop page
Revision: 20793
Add explosive equipment to equipment.txt
Revision: 20794
Manually multicast Invisible Avatar
Revision: 20795
Improve fireworks shop handling
Visits the shop for you so that KoL recognises that you have one
Revision: 20796
Add runtime library functions `clear_food_helper()` and `clear_booze_helper()`
Revision: 20797
Add user_prompt command for asking for text input from the user at runtime
There are three functions currently:
* `string user_prompt(string message)`
* `string user_prompt(string message, int timeoutInMillis, string defaultValue)`
* `string user_prompt(string message, aggregate options)`
Note two things:
1. There is not currently a timeout-able option select function. It's harder to do so I've left it for now
2. Whatever type of aggregate you pass as options you will get a string in return. This could be changed in the future
Revision: 20798
Something broken in GN, now not broken. Thanks @Phillammon
Revision: 20799
Fix cancel button on user_prompt popups
Revision: 20800
Add meteorite fragment items pulverize data
Revision: 20801
`string_modifier`'s first arg can be an item. Always could have been.
Revision: 20802
Track whether KGB flywheel is charged (so we can be sure of the +11 clicks)
Revision: 20803
get_workshed() null check
Revision: 20804
Fix negative weight buddy-bjorn and crown-of-thrones in maximizer being ignored if those items aren't currently equipped. Add "bonus-carry" keyword which gives a bonus to that familiar being carried in crown or bjorn same as the bonus keyword for equipment
Revision: 20805
Backout 20804, more testing is required as it wasn't working consistently
Revision: 20806
Don't warn about buying a Red Zeppelin ticket in Way of the Surprising Fist
Revision: 20807
Support for Our Daily Candles
Revision: 20808
Consider Ew the Humanity and A Beastly Odor in combat data calculations
This is assuming it adds 2 copies of the phylum like the snapper. If that's wrong we just need to change the number
Revision: 20809
Handle queue tracking for crystal ball monsters better
Revision: 20810
Handle queue tracking and appearance_rates for saber forces
Revision: 20811
Make items.txt consistent with equipment.txt.
There were a few items that were incorrectly formatted, and one that
was missing outright (Abracandalabra).
Revision: 20812
Add actual power for Abracandalabra.
Thanks, Rinn!
Revision: 20813
Fix eudora matching in Valhalla decorator
Revision: 20814
Fix more nemesis quest tracking (thanks @philmasterplus)
Revision: 20815
Reverse Yoda-style comparisons in Parser.java.
Yoda conditions - Wikipedia
part of adding language server features for ASH.
In particular, this is useful in Java for null-safe comparisons, at
the expense of code that reads more awkwardly. (It's often widely used
to avoid accidentally performing an assignment instead of an equality
check.)
we've looked at the logic for Parser.currentToken() and concluded that
it can never return null; thus, this should be a safe change to make.
As an added bonus, fredg also fixed a potential NullPointerException
in Parser.parseJavaFor in making this change across the board.
This will be useful in simplifying a follow-up change that refactors
Parser to use Line and Token classes.
Revision: 20816
Add a rudimentary ParserTest.
This tests whether a provided script is well-formed, and if not, what
error message is raised.
This also disables a couple of very slow ConcoctionTest cases, and
upgrades JUnit to 4.13 for access to assertThrows.
(I have no objections to upgrading to JUnit 5, but my impression is
that we'll need to rewrite our tests for that. If we want to do it, we
should do it sooner rather than later.)
Revision: 20817
Add an ASH string template test.
Courtesy of fredg1 @ kolmafia.us.
Revision: 20818
Add coverage targets via OpenClover.
Some notes:
As commented in build.xml, invoke this via
ant -lib lib/testjar coverage clover.report
This will recompile all the files with coverage by adding
instrumentation after each statement, then generate a coverage report
that can be viewed at clover/clover_html/dashboard.html. You may need
to `ant clean` first to remove non-covered class files.
You must manually specify -lib to include clover.jar in Ant's
classpath, as was strongly recommended by OpenClover's installation
guide. (The alternatives were either "install clover manually into
Ant's default classpath" or "edit the build.xml to use a
less-comprehensive <clover-instr> command"; both of these seemed much
more intrusive than requiring an extra runtime flag.
Also as noted in comments: OpenClover is unable to perform
statement-level instrumentation for methods that are too large, due to
a JVM limitation (bytecode for methods must be <= 64K in size). This
applies to two classes, which incidentally don't have any test
coverage anyways.
I've attempted to separate out the coverage targets to minimize impact
on non-coverage builds, but please file a bug or otherwise let us know
if this is not the case.
Revision: 20819
Add some string parsing tests.
Courtesy of fredg1 @ kolmafia.us.
Note that plural typed constants as well as (singular?) typed
constants are also handled by Parser.parseString.
Revision: 20820
Clarify message when an effect does not have a specific method to uneffect.
Revision: 20821
Add Clover optimization.
This actually does two things to speed up coverage builds.
First, it tweaks the weird javac srcdir / destdir that I needed to set
up in order to get all the files to be properly instrumented, such
that Ant's heuristic for detecting whether files have changed
succeeds. As a result, for new coverage runs, we no longer need to
rebuild everything from scratch.
Second, this enables Clover's "test optimization" (which I maintain
would be better named "test caching") which caches test results and
skips any unchanged tests.
Anyone using the previous `ant coverage` command should get this for
free.
Note that if you get into a weird scenario where Clover is
consistently unable to optimize tests, you may need to delete
.clover/coverage.db.snapshot before rerunning.
Revision: 20822
Fix coverage issues with last commit.
The previous commit seems like it resulted in some backsliding in
behavior, namely we lost instrumentation of code files if we did a
clean recompilation of the source files.
I've checked multiple times that this continues to instrument the
files in question from a clean build as well as from an incremental
build.
Revision: 20823
Two tests because I wanted to. KoLDatabaseTest is in Google Java format if anyone is curious. The changes to KoLDatabase were suggested by a lint analysis and a null check was added because the absence broke the first iteration of testing. coverage++
Revision: 20824
Add more Parser tests, courtesy of fredg1.
This also adds some tests of `script` / `import` in ASH.
Revision: 20825
Add more string / typed constant parsing cases.
Again, courtesy of fredg1.
Note that a number of test cases are commented out, as we anticipate
their corresponding error messages will change (for the better, in
many cases) as a result of the upcoming Parser.java refactor(s).
Revision: 20826
coverage++ There are opportunities to make RollingLinkedList more robust but since KoLmafia seems to behave without them they were not done (yet).
Revision: 20827
Only coerce map keys for Javascript, not values.
JS object keys are only representable with certain types, but their
values are not.
There will continue to be some ASH types that can't be represented,
such as item[ item ]. This should be viable if we use JS Maps instead,
but I haven't tried that out..
Revision: 20828
coverage++
Revision: 20829
Fix the check for whether you can use experimental carbon fiber pasta additive
Revision: 20830
A bunch of support for the Wildfire path
All that is missing is the new shop (so you won't be able to use "buy" on them just for now) and some thorough testing.
Revision: 20831
Remove extra space in item data, discovered by running Tests!

Last edited: