Help:To Do List: Difference between revisions
Jump to navigation
Jump to search
imported>Bale →Missing Stuff: r16309: Add "test manuel" command |
imported>AlbinoRhino No edit summary |
||
(53 intermediate revisions by 3 users not shown) | |||
Line 16: | Line 16: | ||
== Missing Stuff == | == Missing Stuff == | ||
'''test CLI commands:''' | '''test CLI commands:''' | ||
Line 34: | Line 28: | ||
This is how test newitem is used! | This is how test newitem is used! | ||
http://kolmafia.us/showthread.php?17365-When-detecting-new-items-detect-new-outfits-too&p=119368&viewfull=1#post119368 | http://kolmafia.us/showthread.php?17365-When-detecting-new-items-detect-new-outfits-too&p=119368&viewfull=1#post119368 | ||
r15741, Now "test newitem descId" no longer requires itemId. | |||
r15176: Add "test adventure URL" CLI command to see how we translate the given URL | r15176: Add "test adventure URL" CLI command to see how we translate the given URL | ||
Line 49: | Line 43: | ||
r16309: Add "test manuel" command which will process a loaded HTML file as if it were the response to a visit to Monster Manuel. | r16309: Add "test manuel" command which will process a loaded HTML file as if it were the response to a visit to Monster Manuel. | ||
http://kolmafia.us/showthread.php?19094-shrine-to-the-Barrel-god-(Sept-2015-IotM)&p=128256&viewfull=1#post128256 | |||
r15928: Add "test monster" command to parse the monster out of the saved HTML and save | r15928: Add "test monster" command to parse the monster out of the saved HTML and save | ||
it where ASH's last_monster() function will fetch it. | it where ASH's last_monster() function will fetch it. | ||
r16496: Add "test spleen X" to set your current spleen use to X (as far as KoLmafia knows; obviously it does not actually change KoL's value). | |||
r16508: Add "test numberology adventureDelta spleenDelta" | |||
r16519: Add "test stats X" to set all three stat values to X substats (if X > 0). | |||
r17296: Add "test cookies" command to see values of the "special" cookies we track. | |||
r17446: Soup up "test crop" command to allow specifying current crop and test crop. | |||
Fix crop "is better than" test to only include count when comparing identical crop type | |||
r17507: Experimental: ItemDatabase keeps a set of all item ids for each item name. | |||
> test itemids seal tooth | |||
seal tooth has 1 itemid: 2 | |||
> test itemids Staff of Ed | |||
Staff of Ed has 2 itemids: 2325, 7961 | |||
> test itemids ancient amulet | |||
ancient amulet has 2 itemids: 2180, 7963 | |||
r17520 does the same for effects: | |||
> test effectids Got Milk | |||
Got Milk has 1 effectid: 211 | |||
> test effectids A Little Bit Evil | |||
A Little Bit Evil has 6 effectids: 597, 598, 599, 600, 601, 602 | |||
r15148: Track Xiblaxian holo-wrist-puter drops in '''_holoWristDrops''', and progress toward the next drop in '''_holoWristProgress'''. | r15148: Track Xiblaxian holo-wrist-puter drops in '''_holoWristDrops''', and progress toward the next drop in '''_holoWristProgress'''. | ||
Line 66: | Line 77: | ||
r15177: Track which keys have been used on the Sorceress Tower door in a setting: '''nsTowerDoorKeysUsed''' | r15177: Track which keys have been used on the Sorceress Tower door in a setting: '''nsTowerDoorKeysUsed''' | ||
It is a comma separated list. | It is a comma separated list. | ||
r15238: Provide '''limit_mode()''' function that returns (currently) null or spelunky. | r15238: Provide '''limit_mode()''' function that returns (currently) null or spelunky. | ||
Line 106: | Line 112: | ||
r15475: Add '''prefref''' as a built-in gCLI command | r15475: Add '''prefref''' as a built-in gCLI command | ||
r15676: Make built-in Sorceress Tower scripts available to scripts. | r15676: Make built-in Sorceress Tower scripts available to scripts. | ||
Line 205: | Line 210: | ||
r16218: Add ASH function '''get_stash()''' to retrieve cached view of clan stash | r16218: Add ASH function '''get_stash()''' to retrieve cached view of clan stash | ||
r16391: Add ASH '''skill_modifier'''(object, modifiername) (currently only useful for "Skill") | |||
to interpret the specified modifier of an item as a skill object. | |||
r16396, r16398 & r16399 : '''Numberology''' command: | |||
numberology - lists all the currently possible seeds and what they give you | |||
numberology? N - N is the desired (numeric) result you want. Tell you if it is currently available. | |||
numberology N - Attempts to get the desired result. | |||
For both of these, if it is not currently available, tells you in how many turns it will be available. | |||
16481: Add $vykea type to ASH | |||
vykea my_vykea_companion( ) | |||
int to_int( vykea ) | |||
vykea to_vykea( strict_string ) | |||
r16790: Add ASH function int [int] reverse_numberology([int adv_delta, int spleen_delta]). | |||
The return value is a map from result IDs to input seeds that generate said results. | |||
adv_delta and spleen_delta, which both default to 0, allow one to obtain forecasts on upcoming options. | |||
http://kolmafia.us/showthread.php?19664-ASH-command(s)-for-Numberology&p=133467&viewfull=1#post133467 | |||
r17909: Add ASH function: string numberology_prize( number ) | |||
r16800: Add multi-line string support to ASH. In order to specify a multi-line string, | |||
you must explicitly escape the end-of-line by placing a backslash (\) at the end of the line. | |||
Note that as a consequence of how the parser is written, it will trim all | |||
leading and trailing whitespace for each of these lines via Java's | |||
String.trim() method. Previously, this was irrelevant in the context of ASH | |||
strings, but now that ASH strings can span multiple lines, it is worth | |||
mentioning. If you want to have whitespace at the beginning of the line, | |||
just escape the first character of the line. | |||
r16866: Add aggregate literals to ASH. | |||
http://kolmafia.us/showthread.php?20103-16866-Add-aggregate-literals-to-ASH-The-main-use-of-these-is-likely-for-initializa | |||
http://kolmafia.us/showthread.php?10685-Map-literals-in-ASH-(potential-feature)&p=134150#post134150 | |||
r17658: http://kolmafia.us/showthread.php?10685-Map-literals-in-ASH-(potential-feature)&p=140128#post140128 | |||
r16886: Add '''witchess''' command to get Puzzle Champ. This only works if you have solved all puzzles. | |||
r17023: Add terminal gCLI command | |||
r17136: Track furniture in the Clan Rumpus Room, accessible with '''get_clan_rumpus()'''. Extra Adventures and PvP Fights from furniture are tracked. | |||
If your clan has a ball pit, the last entry in get_clan_rumpus() will indicate how many balls are in it. | |||
r17471: get_clan_rumpus() now returns int [string] map of furniture names. | |||
http://kolmafia.us/showthread.php?21006-Improve-return-value-of-get_clan_rumpus() | |||
r17151: Add ASH and CLI support for stocking mall stores from Hagnk's. | |||
boolean '''put_shop_using_storage(int price, int limit, item it)''' | |||
boolean '''put_shop_using_storage(int price, int limit, int qty, item it)''' | |||
and extends the CLI commands mallsell and shop. | |||
put_shop() works by batching requests for "shop put". Similarly, buy_using_storage() puts together requests via "buy using storage". | |||
r17283: Add "timespinner" command courtesy of lost. | |||
Add "timespinner" command courtesy of lost. | |||
timespinner list food -> list available foods | |||
timespinner eat FOOD -> Spin and Munch on the specified food | |||
r17284: Allow pranking with timespinner | |||
r17286: Add "timespinner list monsters [filter]". This will show all monsters that should be available in the Time-Spinner, optionally filtered (case-insensitive). | |||
r17290: Add traceprint( string) ASH function | |||
r17454: Experimental ASH feature: allow X++, X--, ++X, and --X with their normal meanings: post-increment, post-decrement, pre-increment, and pre-decrement. | |||
r17460: Add Java-style "for" loop: | |||
for (INIT [, INIT]* ; CONDITION ; ITERATE [, ITERATE]* ) BODY | |||
You can have 0 or more INIT statements, which can be of the form | |||
X = EXP (where X is declared already) or | |||
TYPE X = EXP (whre X of type TYPE will be declared for use in the BODY scope). | |||
You can have 0 or more ITERATE statements, which can be of the form | |||
X++ or X-- | |||
++X or -- X | |||
X OPER EXP (where OPER can be =, +=, -=, etc. | |||
BODY can be a single statement ending with a ; or a block enclosed in {}, with no ; at the end, just like and other loop. | |||
break, continue, return, or exit are allowed within BODY, just like any loop. | |||
r17477: Add boolean '''can_still_steal()''' function to ASH, which calls the same function | |||
that Stationary Buttons use do decide whether to enable or disable the "steal" button | |||
r17612: ASH has a function to return all the candy in a given tier: | |||
item [int] '''candy_for_tier'''( int tier ) | |||
The "'''checkcandy'''" command will list all unspaded candy or will tell you the candy type of each of its arguments. | |||
r17613: More Sweet Synthesis stuff: ASH functions: | |||
boolean '''sweet_synthesis'''( item candy1, item candy2 ) | |||
effect '''sweet_synthesis_result'''( item candy1, item candy2 ) | |||
item [int] '''sweet_synthesis_pairings'''( effect result, item candy1 ) | |||
r17629: Add candy_for_tier() and sweet_synthesis_pairing() ASH functions that have a "flags" argument, | |||
in which you can specify filtering. 0 = no filtering, 1 = available, 2 = allowed, 3 = available and allowed. | |||
r17637: Add "synthesize" command: synthesize CANDY1, CANDY2 - combines candies to get an effect | |||
synthesize? CANDY1, CANDY2 - tells you about the candies and the effect | |||
r17644: To automatically select pairs of candy, add some ASH functions: | |||
item [int] sweet_synthesis_pair( effect ) | |||
item [int] sweet_synthesis_pair( effect, flags ) | |||
For the desired effect, pick a suitable pair of candies. | |||
If you are in-run, it will use only "available" candy and will prefer candies that you have more of. | |||
If you are post-run, it will consider all candies and will choose the pair with the lowest total mall price. | |||
If you want to force "available" candies post-run, use flags = 1. | |||
boolean sweet_synthesis( effect ) | |||
boolean sweet_synthesis( effect, flags ) | |||
The same, but it will actually perform Sweet Synthesis to get the effect. | |||
http://kolmafia.us/showthread.php?21144-Rethinking-Candy&p=139996&viewfull=1#post139996 | |||
r17645: Add CLI commands: | |||
synthesize EFFECT | |||
synthesize? EFFECT | |||
r17673: Add "shop reprice" command and reprice_shop() ash function | |||
r17677: edpiece? command tells you the effects of the various decorations, as well as telling you which one is currently equipped. | |||
r17817: Added CLI command "absorb" | |||
r17819: Add ASH function to interface to KoL's /count chat command: | |||
int slash_count( item it ) | |||
r17845: Add my_absorbs() ash function | |||
r17892: Add a bunch of ASH support for doing interesting things with properties: | |||
http://kolmafia.us/showthread.php?21570-Properties&p=141625&viewfull=1#post141625 | |||
http://kolmafia.us/showthread.php?21570-Properties&p=141629&viewfull=1#post141629 | |||
boolean [string] get_all_properties( string filter, boolean global ) | |||
boolean property_exists( string name ) | |||
boolean property_exists( string name, boolean global ) | |||
boolean property_has_default( string name ) | |||
string property_default_value( string name ) | |||
string get_property( string name, boolean global ) | |||
string remove_property( string name ) | |||
string remove_property( string name, boolean global ) | |||
boolean rename_property( string old_name, string new_name ) | |||
r17911: Add ASH convenience functions: | |||
boolean starts_with( string value, string prefix ); | |||
boolean ends_with( string value, string suffix ); | |||
r17912: Add ASH function to get the full unambiguous card name from the Deck of Every Card: | |||
string every_card_name( string name ) | |||
r17921: Add ASH get_closet() and get_storage() commands: | |||
int [item] get_closet(); | |||
int [item] get_storage(); | |||
r17936: Add ASH function: void mood_execute( int multiplicity ) | |||
multiplicity determines the minimum number of casts (or items) a given trigger will use; if | |||
the mood trigger is "cast 1 SKILL", multiplicty 3 will treat it as "cast 3 SKILL". | |||
multiplicity = -1 is what KoLmafia uses internally for between battle checks. | |||
multiplicity = 0 is what the CLI command "mood execute" uses. | |||
r17937-8: Add ASH function: string [int] available_choice_options( boolean spoilers ) | |||
If the argument is "true", the Relay Browser choice spoilers will be appended to KoL's choice choice text (in parentheses). | |||
r17969/17970 adds the "spacegate" command. | |||
spacegate vaccine X | |||
(where X is 1, 2, or 3) will visit the Spacegate Vaccinator to get the appropriate vaccine. | |||
r18000: Add ASH function: int my_session_meat() which tracks how much meat the character has gained | |||
or lost since login via character actions; mall sales and incoming kmail containing meat | |||
will increment my_meat(), but not this value. | |||
r18040: When you define a map with value as a zero-length array, file_to_map can | |||
now populate it. The values will be variable-length array literals that | |||
consume all the data values from the line of your file. Thus: keyVALUE(VALUE)* | |||
You can now use foreach to iterate over an aggregate literal. | |||
http://kolmafia.us/showthread.php?21742-Best-way-to-load-questslog-txt&p=143001&viewfull=1#post143001 | |||
== Needs Major Work == | == Needs Major Work == |
Latest revision as of 01:16, 25 May 2017
"To Do" List
This is a list of stuff that is missing from the wiki or else needs major work. Please help!
If you need tips for editing the wiki, find that here: Help:Editing.
- CLI Commands are usually only added to the CLI Reference. Only very complicated commands require their own page.
- ASH commands need to be listed on their category page as well as on the Ash Functions list.
- It is not necessary to always create a code sample, although it is preferred.
- If you don't add a code sample, please remember to add needscode=yes| to the page.
Missing Stuff
test CLI commands: r14764: add "test xpath" to, well, test xpath expressions r14767: Expose an xpath function that relay scripts can use after they've invoked visit_url(). http://kolmafia.us/showthread.php?16722-the-DOM-regex-scalability-and-other-jargony-words http://kolmafia.us/showthread.php?16764-xpath-primer r14967: Add "test mchat" command which can be used after "test load JSONFILE" This is how test newitem is used! http://kolmafia.us/showthread.php?17365-When-detecting-new-items-detect-new-outfits-too&p=119368&viewfull=1#post119368 r15741, Now "test newitem descId" no longer requires itemId. r15176: Add "test adventure URL" CLI command to see how we translate the given URL r15239: Add "test dump_disabled_skills" to the gCLI to aid upcoming debugging r15606: Add "test encounter URL" command. r15874: Add "test leet NAME" command to check if KoL monster names get translated successfully from their 1337 versions. r15883: "test load HTMLFILE" followed by "test aagain" will print the Adventure Again URL from that page. r16275: "test visit-choice" now prints the various choice options available on the loaded HTML text. r16309: Add "test manuel" command which will process a loaded HTML file as if it were the response to a visit to Monster Manuel. http://kolmafia.us/showthread.php?19094-shrine-to-the-Barrel-god-(Sept-2015-IotM)&p=128256&viewfull=1#post128256 r15928: Add "test monster" command to parse the monster out of the saved HTML and save it where ASH's last_monster() function will fetch it. r16496: Add "test spleen X" to set your current spleen use to X (as far as KoLmafia knows; obviously it does not actually change KoL's value). r16508: Add "test numberology adventureDelta spleenDelta" r16519: Add "test stats X" to set all three stat values to X substats (if X > 0). r17296: Add "test cookies" command to see values of the "special" cookies we track. r17446: Soup up "test crop" command to allow specifying current crop and test crop. Fix crop "is better than" test to only include count when comparing identical crop type r17507: Experimental: ItemDatabase keeps a set of all item ids for each item name. > test itemids seal tooth seal tooth has 1 itemid: 2 > test itemids Staff of Ed Staff of Ed has 2 itemids: 2325, 7961 > test itemids ancient amulet ancient amulet has 2 itemids: 2180, 7963 r17520 does the same for effects: > test effectids Got Milk Got Milk has 1 effectid: 211 > test effectids A Little Bit Evil A Little Bit Evil has 6 effectids: 597, 598, 599, 600, 601, 602
r15148: Track Xiblaxian holo-wrist-puter drops in _holoWristDrops, and progress toward the next drop in _holoWristProgress.
r15177: Track which keys have been used on the Sorceress Tower door in a setting: nsTowerDoorKeysUsed It is a comma separated list.
r15238: Provide limit_mode() function that returns (currently) null or spelunky.
r15354: Move "equip all familiars" function from the FamiliarTrainingFrame to a new module: FamiliarManager. Let ASH use it via boolean equip_all_familiars()
r15440: Add "servants" command to list Ed's servants, "servant" to list status of your current servant, and "servant TYPE" to switch to the servant of the specified type.
r15441 adds the $servant data type to ASH and the following functions to manipulate them: int to_servant( servant ) servant to_servant( int ) servant to_servant( string ) servant my_servant() boolean have_servant( servant ) boolean use_servant( servant ) Additionally, it has the following proxy fields: int id string name int level int experience string image, string level1_ability string level7_ability string level14_ability string level21_ability
r15466: Add chew(INT,ITEM) to ASH for cnsuming spleen toxins
equip [2268] will equip an item by number.
r15475: Add prefref as a built-in gCLI command
r15676: Make built-in Sorceress Tower scripts available to scripts.
CLI: maze [arg] CLI: door
hedge_maze( string ) tower_door() The string argument for the maze can be one of: traps - 4 turns, all traps gopher or duck - 7 turns gopher and duck chihuahua or kiwi - 7 turns chihuahua and kiwi nugglets - 10 turns, all nugglets
r15791: The "pvp" command with no arguments will list available stances and their associated option number. You now can now specify a stance by either name or number. The "pvp" command now requires you to choose a stance, since it can no longer choose a reaosnable default based on your stats.
r15796: Add ASH function: int [string] current_pvp_stances()
r15840: Provide ASH string leetify( string ) function to garble strings.
r15847: Add "Random Monster Attributes" modifier as provided by dice items and the Curse of Randomness status effect. Add random_attributes proxy field to ASH $monster type. Munge random attributes from monster names is the Random Monster Attribute modifier is > 0, not only if current path is One Crazy Random Summer.
r15922: Add Familiar Script. This script will run after changing familiars, before automatically changing familiar equipment. The script should have a boolean main() function. Returning true will cause normal familiar equipiment switching to be skipped, while false will lead to it running after the script returns.
r15937: Add mayosoak command
r15959: Add knowledge of familiar drop counters to FamiliarData, New ASH proxy fields for $familiar data type: drop_name = short name of the thing that drops drop_item = if it is a single item, the $item. Otherwise, $item[none] drops_today = how many things this familiar has dropped so far today drops_limit = the maximum number of available drops from this familiar today
CLI: wumpus status - Display status of last wumpus cave. r16014: Add "wumpus replay FILE" command to process the session log of a wumpus exploration and make deductions, etc. r16015: Add "wumpus reset" CLI command to clear in-memory Wumpus cave state
r16044:The "cheat" command is a synonym for the "play" command. options: play random - play a random card (1 draw) cheat phylum PHYLUM - cheat (5 draws) a fight with specified phylum cheat stat STAT - cheat (5 draws) 500 substats of specified stat cheat buff BUFF - cheat (5 draws) 20 turns of the specified buff, either by name or by effect: muscle, mysticality, moxie, item drop (or items), initiative cheat CARD - cheat (5 draws) the specified card name. PHYLUM, STAT, BUFF, and CARD all use fuzzy matching.
r16047: Track Armorer quest (Madness Bakery) as questM25Armorer.
r16060: Make fixed list of modifier maximizer strings configurable set maximizerList. Default value is: mainstat | mus | mys | mox | familiar weight | HP | MP | ML | DA | DR | +combat -tie | -combat -tie | initiative | exp | meat drop | item drop | 2.0 meat, 1.0 item | item, sea | weapon dmg | ranged dmg | elemental dmg | spell dmg | adv | pvp fights | hot res | cold res | spooky res | stench res | sleaze res | all res | mp regen | ML, 0.001 slime res | 4 clownosity, -tie | 7 raveosity, -tie | surgeonosity | +four songs
r16163: For all monsters where our name differs from Manuel's, add a new attribute: Manuel: "MANUEL NAME" Add .manuelName proxy field for ASH $monster data type Add "checkmanuel" command which will look up all of you int monster_factoids_available( monster ) returns number of factoids currently retained in memory. Note that this can be more than the currently logged in character knows, since we don't flush the factoids from a previous login if you know all three factoids. string monster_manuel_text( monster ) returns the full HTML of the monster manuel entry for the given monster. As above, this could have been retained from the previous character; otherwise, it will fetch and cache the text.
r16166: Add ASH function: boolean [monster] all_monsters_with_id() returns a map of all monsters that have a non-zero monster ID. It builds this afresh every time you call it, since new monsters can be (temporarily) added
r16169: Add MonsterManuelManager.flushCache()and expose it to ASH via flush_monster_manuel_cache() function. Add a second parameter to MonsterManuelManager.getFactoidsAvailable: boolean cachedOnly says "don't look on the page if the monster is not in the cache, because we have already looked at the page and the monster wasn't there." Expose this to ASH by changing monster_factoids_available() parameters: monster, boolean
r16171: Add ASH function: boolean[monster] get_location_monsters(location) This has the same info as get_monsters, but returns a (perhaps) more useful aggregate value
r16200: Mayominder CLi command. Sets (buying if needed) Mayo Minder to a particular Mayo. Can specify Mayo name or use a description (adv, stat, food, drunk or bmc).
r16218: Add ASH function get_stash() to retrieve cached view of clan stash
r16391: Add ASH skill_modifier(object, modifiername) (currently only useful for "Skill") to interpret the specified modifier of an item as a skill object.
r16396, r16398 & r16399 : Numberology command: numberology - lists all the currently possible seeds and what they give you numberology? N - N is the desired (numeric) result you want. Tell you if it is currently available. numberology N - Attempts to get the desired result. For both of these, if it is not currently available, tells you in how many turns it will be available.
16481: Add $vykea type to ASH vykea my_vykea_companion( ) int to_int( vykea ) vykea to_vykea( strict_string )
r16790: Add ASH function int [int] reverse_numberology([int adv_delta, int spleen_delta]). The return value is a map from result IDs to input seeds that generate said results. adv_delta and spleen_delta, which both default to 0, allow one to obtain forecasts on upcoming options. http://kolmafia.us/showthread.php?19664-ASH-command(s)-for-Numberology&p=133467&viewfull=1#post133467
r17909: Add ASH function: string numberology_prize( number )
r16800: Add multi-line string support to ASH. In order to specify a multi-line string, you must explicitly escape the end-of-line by placing a backslash (\) at the end of the line. Note that as a consequence of how the parser is written, it will trim all leading and trailing whitespace for each of these lines via Java's String.trim() method. Previously, this was irrelevant in the context of ASH strings, but now that ASH strings can span multiple lines, it is worth mentioning. If you want to have whitespace at the beginning of the line, just escape the first character of the line.
r16866: Add aggregate literals to ASH. http://kolmafia.us/showthread.php?20103-16866-Add-aggregate-literals-to-ASH-The-main-use-of-these-is-likely-for-initializa http://kolmafia.us/showthread.php?10685-Map-literals-in-ASH-(potential-feature)&p=134150#post134150 r17658: http://kolmafia.us/showthread.php?10685-Map-literals-in-ASH-(potential-feature)&p=140128#post140128
r16886: Add witchess command to get Puzzle Champ. This only works if you have solved all puzzles.
r17023: Add terminal gCLI command
r17136: Track furniture in the Clan Rumpus Room, accessible with get_clan_rumpus(). Extra Adventures and PvP Fights from furniture are tracked. If your clan has a ball pit, the last entry in get_clan_rumpus() will indicate how many balls are in it. r17471: get_clan_rumpus() now returns int [string] map of furniture names. http://kolmafia.us/showthread.php?21006-Improve-return-value-of-get_clan_rumpus()
r17151: Add ASH and CLI support for stocking mall stores from Hagnk's. boolean put_shop_using_storage(int price, int limit, item it) boolean put_shop_using_storage(int price, int limit, int qty, item it) and extends the CLI commands mallsell and shop. put_shop() works by batching requests for "shop put". Similarly, buy_using_storage() puts together requests via "buy using storage".
r17283: Add "timespinner" command courtesy of lost. Add "timespinner" command courtesy of lost. timespinner list food -> list available foods timespinner eat FOOD -> Spin and Munch on the specified food r17284: Allow pranking with timespinner r17286: Add "timespinner list monsters [filter]". This will show all monsters that should be available in the Time-Spinner, optionally filtered (case-insensitive).
r17290: Add traceprint( string) ASH function
r17454: Experimental ASH feature: allow X++, X--, ++X, and --X with their normal meanings: post-increment, post-decrement, pre-increment, and pre-decrement.
r17460: Add Java-style "for" loop: for (INIT [, INIT]* ; CONDITION ; ITERATE [, ITERATE]* ) BODY You can have 0 or more INIT statements, which can be of the form X = EXP (where X is declared already) or TYPE X = EXP (whre X of type TYPE will be declared for use in the BODY scope). You can have 0 or more ITERATE statements, which can be of the form X++ or X-- ++X or -- X X OPER EXP (where OPER can be =, +=, -=, etc. BODY can be a single statement ending with a ; or a block enclosed in {}, with no ; at the end, just like and other loop. break, continue, return, or exit are allowed within BODY, just like any loop.
r17477: Add boolean can_still_steal() function to ASH, which calls the same function that Stationary Buttons use do decide whether to enable or disable the "steal" button
r17612: ASH has a function to return all the candy in a given tier: item [int] candy_for_tier( int tier ) The "checkcandy" command will list all unspaded candy or will tell you the candy type of each of its arguments.
r17613: More Sweet Synthesis stuff: ASH functions: boolean sweet_synthesis( item candy1, item candy2 ) effect sweet_synthesis_result( item candy1, item candy2 ) item [int] sweet_synthesis_pairings( effect result, item candy1 )
r17629: Add candy_for_tier() and sweet_synthesis_pairing() ASH functions that have a "flags" argument, in which you can specify filtering. 0 = no filtering, 1 = available, 2 = allowed, 3 = available and allowed.
r17637: Add "synthesize" command: synthesize CANDY1, CANDY2 - combines candies to get an effect synthesize? CANDY1, CANDY2 - tells you about the candies and the effect
r17644: To automatically select pairs of candy, add some ASH functions: item [int] sweet_synthesis_pair( effect ) item [int] sweet_synthesis_pair( effect, flags ) For the desired effect, pick a suitable pair of candies. If you are in-run, it will use only "available" candy and will prefer candies that you have more of. If you are post-run, it will consider all candies and will choose the pair with the lowest total mall price. If you want to force "available" candies post-run, use flags = 1. boolean sweet_synthesis( effect ) boolean sweet_synthesis( effect, flags ) The same, but it will actually perform Sweet Synthesis to get the effect. http://kolmafia.us/showthread.php?21144-Rethinking-Candy&p=139996&viewfull=1#post139996
r17645: Add CLI commands: synthesize EFFECT synthesize? EFFECT
r17673: Add "shop reprice" command and reprice_shop() ash function
r17677: edpiece? command tells you the effects of the various decorations, as well as telling you which one is currently equipped.
r17817: Added CLI command "absorb"
r17819: Add ASH function to interface to KoL's /count chat command: int slash_count( item it )
r17845: Add my_absorbs() ash function
r17892: Add a bunch of ASH support for doing interesting things with properties: http://kolmafia.us/showthread.php?21570-Properties&p=141625&viewfull=1#post141625 http://kolmafia.us/showthread.php?21570-Properties&p=141629&viewfull=1#post141629 boolean [string] get_all_properties( string filter, boolean global ) boolean property_exists( string name ) boolean property_exists( string name, boolean global ) boolean property_has_default( string name ) string property_default_value( string name ) string get_property( string name, boolean global ) string remove_property( string name ) string remove_property( string name, boolean global ) boolean rename_property( string old_name, string new_name )
r17911: Add ASH convenience functions: boolean starts_with( string value, string prefix ); boolean ends_with( string value, string suffix );
r17912: Add ASH function to get the full unambiguous card name from the Deck of Every Card: string every_card_name( string name )
r17921: Add ASH get_closet() and get_storage() commands: int [item] get_closet(); int [item] get_storage();
r17936: Add ASH function: void mood_execute( int multiplicity ) multiplicity determines the minimum number of casts (or items) a given trigger will use; if the mood trigger is "cast 1 SKILL", multiplicty 3 will treat it as "cast 3 SKILL". multiplicity = -1 is what KoLmafia uses internally for between battle checks. multiplicity = 0 is what the CLI command "mood execute" uses.
r17937-8: Add ASH function: string [int] available_choice_options( boolean spoilers ) If the argument is "true", the Relay Browser choice spoilers will be appended to KoL's choice choice text (in parentheses).
r17969/17970 adds the "spacegate" command. spacegate vaccine X (where X is 1, 2, or 3) will visit the Spacegate Vaccinator to get the appropriate vaccine.
r18000: Add ASH function: int my_session_meat() which tracks how much meat the character has gained or lost since login via character actions; mall sales and incoming kmail containing meat will increment my_meat(), but not this value.
r18040: When you define a map with value as a zero-length array, file_to_map can now populate it. The values will be variable-length array literals that consume all the data values from the line of your file. Thus: keyVALUE(VALUE)* You can now use foreach to iterate over an aggregate literal. http://kolmafia.us/showthread.php?21742-Best-way-to-load-questslog-txt&p=143001&viewfull=1#post143001
Needs Major Work
Proxy Records is only slightly better than a placeholder.
In r10047, the adventure tab interface was altered. Fix SinginSally's guide on pages... http://wiki.kolmafia.us/index.php?title=KoLmafia_Guide:_Attack_Script http://wiki.kolmafia.us/index.php?title=KoLmafia_Guide:_Custom_Combat_Script http://wiki.kolmafia.us/index.php?title=KoLmafia_Guide:_Goal-Oriented_Adventuring
Information on moods calling other moods: http://kolmafia.us/showthread.php?8852-Composable-Moods&p=66468&viewfull=1#post66468
Needs Code Samples
There is a list of all pages that require code samples: Category:Needs Code Sample
Information on how to create a code sample: Template:CodeSample