Difference between revisions of "Help:To Do List"

From Kolmafia
Jump to navigation Jump to search
imported>Bale
(13393: stun_skill())
imported>Bale
(157 intermediate revisions by 5 users not shown)
Line 16: Line 16:
  
 
== Missing Stuff ==
 
== Missing Stuff ==
10078: ash function format_dtg
 
10081: ash function format_dtg renamed to be
 
string '''format_date_time(inFormat, dtg, outFormat)'''
 
more info: http://kolmafia.us/showthread.php?8451-time_to_string()-with-parameter&p=64058&viewfull=1#post64058
 
  
  Modify examples on proxy record page because of:
+
  '''test CLI commands:'''
  10122: Add the boolean "fancy" and "candy" fields to item '''proxy records'''.
+
  10147: Initial support for "Crimbo 2011" coinmaster: trade candy for Candy Credits
+
r14764: add "test xpath" to, well, test xpath expressions
  10412: Add $skill '''proxy records''': .dailylimit and .timescast
+
r14767: Expose an xpath function that relay scripts can use after they've invoked visit_url().
  10879: Add a boolean "boss" field to $monster[]
+
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
  
  10227: Add the <s>"'''closet empty'''" CLI command, and</s> the '''empty_closet()''' ASH function.
+
  r15148: Track Xiblaxian holo-wrist-puter drops in '''_holoWristDrops''', and progress toward the next drop in '''_holoWristProgress'''.
  
  r9181, 9183, 9184 & r9190: '''moods''' per slyz's summary here: http://kolmafia.us/showthread.php?8852-Composable-Moods
+
  r15177: Track which keys have been used on the Sorceress Tower door in a setting: '''nsTowerDoorKeysUsed'''
 +
It is a comma separated list.
  
  r10344 Add '''tavern( string goal )''' ASH function.  
+
  r15235: Add buffer '''run_choice( int )''' command. When in a choice adventure, use this to submit the selected option.
goal can be "faucet", "baron", or  "explore" (to explore all remaining unexplored squares).  
+
  With -1 as imput, it will automate the rest of the choice using existing settings.
  r10345 Add ASH '''tavern( "fight" )''' to explore cellar until the Baron's mansion is found
+
   
  and then go in to fight him.
+
  Also add '''run_turn()''', which will work as run_combat() or run_choice( -1 ) depending on whether you are in combat or in a choice.
 
 
  r10753-6 '''get_goals()''' returns a string[int] containing all the conditions that KoLmafia will  
 
try to satisfy. Add g'''oal_exists()''' where you can pass in a goal type (choiceadv, autostop,
 
meat, health, mana, item) and KoLmafia will tell you if there are any goals that match.
 
 
 
'''static''' scope is added!
 
r10765: Add a "final" scope type to ASH which allows data/commands to be executed only
 
once per session.
 
r10772: A final declaration can either take a block, surrounded by {}, or a single
 
command or declaration.
 
r10774: ASH: "final" -> "static"
 
 
 
10922: Add '''get_player_id()''' method to ASH
 
 
 
10937: Add '''minstrel_quest()''' boolean function,
 
which returns true when Clancy has a new quest for you.
 
  
  10971: Added boolean '''hippy_stone_broken()''' function
+
  r15238: Provide '''limit_mode()''' function that returns (currently) null or spelunky.
  
  11023: Make the CLI "attack" command work again. Make "pvp" equivalent to "steal" instead
+
  r15354: Move "equip all familiars" function from the FamiliarTrainingFrame to a new
  of "attack". Added "swagger" as equivalent to "flowers".
+
  module: FamiliarManager. Let ASH use it via boolean '''equip_all_familiars()'''
  
  11055: Added a 2-parameter version of '''to_string()''', where the first parameter can
+
  r15440: Add "'''servants'''" command to list Ed's servants, "'''servant'''" to list status of your current servant,  
currently be an int or float (other types are possible, but didn't seem
+
  and "'''servant TYPE'''" to switch to the servant of the specified type.
  useful), and the second is a format string as defined by the Java
 
String.format() method (which in turn is based on C printf() format strings).
 
For example, "%.2f" will output a float with exactly two digits after the
 
(localized) decimal point.
 
  
  11110: Add ASH function: '''pvp_attacks_left()'''. This is guaranteed accurate only if you
+
  r15441 adds the $servant data type to ASH and the following functions to manipulate them:
have recently looked at the Fight! page. Tracking of PVP fights gained via
 
consumption or familiar action and initialization at login will come later -
 
after api.php is updated to include the figure.
 
 
   
 
   
  Add '''beforePVPScript''' setting which contains a script to be executed before a PVP
+
  int '''to_servant'''( servant )
  attack. At the moment, this is only called from the Relay Browser - and only if
+
  servant to_servant( int )
  relayRunsBeforePVPScript is true
+
  servant to_servant( string )
 +
servant '''my_servant'''()
 +
boolean '''have_servant'''( servant )
 +
boolean '''use_servant'''( servant )
 
   
 
   
  11112: Call beforePVPScript, if present, during automated PVP via the "flowers" command
+
  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
  
  11112: Change ASH '''have_outfit()''' to work with custom outfits, as well as normal outfit
+
  r15466: Add '''chew'''(INT,ITEM) to ASH for cnsuming spleen toxins
Add ASH '''is_wearing_outfit()''' to return TRUE if you are currently wearing the
 
specified custom or normal outfit.
 
  
  10815: Allow certain ASH constants to be used in custom combat settings.
+
  equip [2268] will equip an item by number.
$phylum[] refers to the monster categorization, see the built-in ASH constants documentation for more information.
 
$element[] refers to either the attack or the defense element. As long as one matches, this check will be satisfied. This may limit its usefulness, but we can evaluate it later.
 
$item[] refers to an item that the monster drops. If there are multiple monsters that drop the item, or if you just can't remember which one it is, and your combat strategy happens to depend on it...
 
In order to match, everything that you specify must match. So if you specify an impossible combination, that CCS section will not run.
 
 
[ $element[ spooky ] $item[ hobo nickel ] ]
 
skill entangling noodles
 
skill weapon of the pastalord
 
 
[ bathroom $element[ spooky ] ]
 
attack
 
 
[ $phylum[ beast ] ]
 
skill stomp
 
attack
 
  
  11197: new ASH functions:
+
  r15475: Add '''prefref''' as a built-in gCLI command
boolean '''is_familiar_equipment_locked()'''
 
-returns true if current familiar equipment is locked, otherwise false
 
void '''lock_familiar_equipment(boolean locking)'''
 
-tries to lock/unlock fam equipment accordingly.
 
  
  11208: Add int '''get_clan_id()''' and string '''get_clan_name()''' functions.
+
  r15590: '''Add run_combat( string filter )'''.
  
  11267: Pass chat events along to '''chatbotscript'''. The sender is an empty string,
+
  r15676: Make built-in Sorceress Tower scripts available to scripts.
the channel is "Events", and the message is stripped of its HTML.
 
  
  11432: Add '''is_discardable()''' which will return true even if an item can be autosold,
+
  CLI: '''maze''' [arg]
  so be careful you don't get cheated out of some meat.
+
  CLI: '''door'''
  
  11438: Revert use of gift flag to previous interpretation: KoL has the item marked as
+
  '''hedge_maze( string )'''
  a "Gift Item". Instead, change isGiftable() - which is also used by the ASH
+
  '''tower_door()'''
  is_giftable() function - to allow either the "tradeable" or "gift" flags.
+
  Fix the item.gift proxy field to return the value of the gift flag, rather than
+
The string argument for the maze can be one of:
  being a synonym for is_giftable().
+
  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
  
  11555: Add monster.raw_attack, monster.raw_defense, and monster.raw_hp to return the
+
  r15791: The "pvp" command with no arguments will list available stances and their
  unmodified stats from monsters.txt.
+
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.
  
  11561: Add monster '''image_to_monster( string )''' ASH function for looking up monster by image file name.
+
  r15796: Add ASH function: '''int [string] current_pvp_stances()'''
Add monster.image proxy field for going the other way.
 
  
  11771: experimental: add overloaded maximize() signature in ASH
+
  r15840: Provide  ASH '''string leetify( string )''' function to garble strings.
 
'''maximize( string maximizerString, int maxPrice, int priceLevel, boolean simulate, boolean showEquipment )'''
 
 
returns an aggregate of records with each record containing the fields:
 
**display => display text, as it is shown in the maximizer frame
 
**cmd => actual command string that the maximizer runs to get the boost
 
**score => the boost's score
 
**effect => the effect provided by the boost - if applicable. effect[none] if it is equipment.
 
**item => $item[] that is being suggested for use or equipment
 
**skill => $skill[] that is being suggested
 
 
If the showEquipment argument is false, equipment will be omitted from the results.
 
  
  r11707: Experimental ASH feature: the main() function of imported scripts can now be
+
  r15847: Add "Random Monster Attributes" modifier as provided by dice items and the
  invoked, under the alternate name main@filename()
+
  Curse of Randomness status effect. Add random_attributes proxy field to ASH
  (where 'filename' can be overridden by a 'script' directive, any ".ash"
+
  $monster type. Munge random attributes from monster names is the Random Monster
  suffix is dropped, and non-alphanumeric characters are replaced by
+
  Attribute modifier is > 0, not only if current path is One Crazy Random Summer.
underscores). Note that no spaces are allowed around the @, the whole thing
 
is a single token.
 
  
  r11965: Add my_companion()
+
  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.
  
  r11985: Add the "skeleton" CLI command.
+
  r15937: Add mayosoak command
  
  r12019: Add "eudora" CLI 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
  
  r12060: add ASH get_moods(), returns an aggregate of currently defined mood names.
+
  CLI: wumpus status - Display status of last wumpus cave.
  "mood listall" in the gCLI will also print a list of defined moods.
+
  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
  
  r12062: add ASH get_outfits() and get_custom_outfits()
+
  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.
  
  r12070: Overloaded version of appearance_rates considers monster queue:
+
  r16047: Track Armorer quest (Madness Bakery) as questM25Armorer.
appearance_rates( $location[] location, boolean includeQueue )
 
  
  r12105: maximizerMRULength is now maximizerMRUSize
+
  r16060: Make fixed list of modifier maximizer strings configurable
  That affects this page: [[Hidden_Features#Most_Recently_Used_Modifier_Maximizer_Expression]]
+
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
  
  '''SVN Features added''' by Roippi! SVN integration was (brokenly) implemented in r12141 and more correctly implemented in r12144.
+
  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
FOR USERS:
 
* svn checkout <svnurl> - checks out a svn repository and adds the files from the working copy to the appropriate locations.
 
* svn update - updates all of your installed projects and pushes any changes to the appropriate locations.
 
* svn list - lists installed projects.
 
* svn delete <scriptname> - deletes installed projects and the corresponding files that it pushed. <scriptname> fuzzy matches the script names from svn list.
 
 
FOR SCRIPTERS:
 
You can provide a <nowiki>svn://, http://, or https://</nowiki> link to a valid svn repo. The link does not need to be to the root of the repository.
 
  At the location specified by the url, there are only four permissible folders:
 
* ccs/
 
* data/
 
* images/
 
* relay/
 
* scripts/
 
 
   
 
   
  Any files or directories in the location specified by your url that are not named the above will cause your repo to fail validation and thus it will not be checked out.
+
  Add "'''checkmanuel'''" command which will look up all of you
Within the valid folders, you can nest files however you want.
 
When users check out your project, the files (and nested folders) will be pushed to the corresponding mafia directories.
 
 
   
 
   
  r12157: '''svn increment <projectname>''' and '''svn decrement <projectname>''' moves an installed svn project up/down one revision, respectively.
+
  '''int monster_factoids_available( monster )'''
'''svn update''' can also take <projectname> argument or a <SVNURL> argument. Or just be blank to update everything.
 
r12177 svn inc/dec does the same thing as svn increment/decrement. Because typing stuff is hard.
 
 
   
 
   
  12167: command "'''svn sync'''"
+
  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.
 
   
 
   
  Looks through your working copies for modifications, then checks if that file differs from the local copy. If it differs, the WC file is copied over the local copy one.
+
  '''string monster_manuel_text( monster )'''
Note that this is very different from "svn update" and indeed does not contact the repository server at all.
 
 
   
 
   
  If you are unsure if you want this feature, this is only for people who maintain modifications to the files in their svn/ folders that they want merged in with updates from the repo.
+
  returns the full HTML of the monster manuel entry for the given
  If you are just doing checkout/update operations and don't know what this "merging" business is about, you don't need this feature.
+
  monster. As above, this could have been retained from the previous
   
+
  character; otherwise, it will fetch and cache the text.
Users who want to automatically sync after update operations can set syncAfterSvnUpdate = true.
 
  
  r12153: add '''svnUpdateOnLogin''' (global, default false), which runs svn update before breakfast/loginScript.
+
  r16166: Add ASH function: '''boolean [monster] all_monsters_with_id()'''  
This could be useful if your loginScript has svn dependencies.
 
 
   
 
   
  r12188: add global preference '''_svnUpdated'''
+
  returns a map of all monsters that have a non-zero monster ID. It builds this
  only do login svn update (mediated by svnUpdateOnLogin) at most once per day.
+
  afresh every time you call it, since new monsters can be (temporarily) added
  
  r12181: add preference '''simpleSvnUpdate''' (global, default true)
+
  r16169: Add MonsterManuelManager.flushCache()and expose it to ASH via flush_'''monster_manuel_cache()''' function.
  If true, simply checks if the root of your working copy is at HEAD, skipping it if so.
+
Add a second parameter to MonsterManuelManager.getFactoidsAvailable: boolean
  Speeds up the average update operation by 75% (and is probably nicer on servers).  
+
  cachedOnly says "don't look on the page if the monster is not in the cache,
  Advanced users who have done something like a non-root "svn switch" or are using svn externals should know whether they want to turn this off.
+
  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
Again the ticky box goes at the bottom of general preferences, it is soon time for these to be moved to their own page.
 
  
r12198 new ash svn functions:
 
boolean '''svn_exists'''( String projectname ) - returns true if a valid working copy named projectname exists in the svn/ folder
 
boolean '''svn_at_head'''( String projectname ) - returns true if projectname exists, is a valid WC, and is currently at the same revision # as the repository.
 
This will hit the repo server, so be nice.
 
  
  r12206: initial support for automatic svn dependency installation.
+
  r16171: Add ASH function: '''boolean[monster] get_location_monsters(location)'''  
global preference '''svnInstallDependencies''' (default true) controls whether svn will try to install dependencies.
+
  This has the same info as get_monsters, but returns a (perhaps) more useful aggregate value
   
 
Scripters are now allowed to place a file called dependencies.txt in the top-level of a project.
 
Calling it anything else will fail validation, as before. This special file will not be "pushed" to anywhere locally, it will just remain in the working copy folder.
 
On each line of dependencies.txt, you specify one URL to another SVN project.
 
  
  r12211: preference '''svnShowCommitMessages''' (global, default false) controls whether you want to see new commit messages from svn update operations.
+
  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).
  
  r12215: add ash function: '''record svn_info( String project )'''  
+
  r16218: Add ASH function '''get_stash()''' to retrieve cached view of clan stash
record has the following fields-
 
 
String url: the url that the project was checked out from
 
int revision: the revision that the working copy is at
 
String lastChangedAuthor: the author who committed the last change
 
int lastChangedRev: the revision that most recently modified this working copy (note, not necessarily the same as revision field)
 
String lastChangedDate: the date/time when lastChangedRevision happened
 
  
  r12238: Add _floristPlantsUsed as a comma-separated list and '''florist_available()'''.
+
  r16391: Add ASH '''skill_modifier'''(object, modifiername) (currently only useful for "Skill")
  Add "florist plant [plantname]" to add a plant. [plantname] is case-insensitive, but otherwise must exactly match KoL's name for the plant.
+
  to interpret the specified modifier of an item as a skill object.
Check what is currently planted when you log in.
 
  
  r12244: Add string [location][int] '''get_florist_plants()'''
+
  r16396, r16398 & r16399 : '''Numberology''' command:
   
+
  numberology - lists all the currently possible seeds and what they give you
  example 1...
+
  numberology? N - N is the desired (numeric) result you want. Tell you if it is currently available.
  foreach loc, counter, plant in get_florist_plants() {
+
numberology N - Attempts to get the desired result.
    print( "Location '" + loc + "'" );
+
  For both of these, if it is not currently available, tells you in how many turns it will be available.
    print( "Counter '" + counter + "'" );
 
    print( "Plant '" + plant + "'" );
 
}
 
 
example 2...
 
string [location][int] plants = get_florist_plants();
 
foreach loc in plants {
 
    print( "Location '" + loc + "'" );
 
    string [int] array = plants[ loc ];
 
    foreach index in array {
 
        string plant = array[index];
 
        if ( plant != "" )
 
            print( "Plant = " + plant );
 
    }
 
}
 
  
  r12255: Experimental support for Dad Sea Monkee - untested in-game.
+
  16481: Add $vykea type to ASH
  - When we first see Dad Sea Monkee, parse the clues and solve for them.
+
  vykea my_vykea_companion( )
  - "'''dad'''" CLI command lists the elemental weakness (and spell) for rounds 1-10
+
  int to_int( vykea )
  - element '''dad_sea_monkee_weakness( int round )''' ASH function for consult scripts.
+
  vykea to_vykea( strict_string )
  
  12657: Add "'''cache clear'''" command to remove all cached images from /images
+
  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.
 
   
 
   
  12659: New setting - lastImageCacheClear - records the time when you last cleared the
+
  Note that as a consequence of how the parser is written, it will trim all
  image cache. "'''cache'''" command with no arguments reports that time.
+
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.
  
  12662: Add '''get_ignore_zone_warnings()'''
+
  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
  
  12905: ASH changes:
+
  r16886: Add '''witchess''' command to get Puzzle Champ. This only works if you have solved all puzzles.
'''take_shop( item )''' -> "shop take all item"
 
'''take_shop( num, item )''' -> "shop take num item
 
When these are added, deprecate the take_shop( item, boolean ) command. Let's not use that anymore since it is equal to take_shop(1, item) with extra confusion.
 
  
  12906: Add '''shop_price( item )''' and '''refresh_shop()'''
+
  r16978: Eudora CLI command now returns current correspondent with no argument.
 +
Add ash string eudora() command which returns current correspondent.
 +
Add ash boolean eudora(string) command which takes "penpal", "game" or "xi" and attempts to set that correspondent.
  
  12932: Adds my_discomomentum().
+
  r17023: Add terminal gCLI command
  
  13088: Make Prismatic Damage a real, if derived, modifier name. It cannot be used in
+
  r17136: Track furniture in the Clan Rumpus Room, accessible with '''get_clan_rumpus()'''. Extra Adventures and PvP Fights from furniture are tracked.
  modifiers.txt, bit you can ask for it by name either in ASH or the Maximizer
+
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()
  
  13175: Add ash command my_soulsauce().
+
  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".
  
  13213: Add "debug ash on" and "debug ash off" to turn on and off ASH script tracing
+
  r17283: Add "timespinner" command courtesy of lost.
  ASH tracing goes into ASH_datestamp.txt
+
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).
  
  13222: Add preference banishedMonsters to track banishes. Add ash command is_banished($monsterName[name])
+
  r17290: Add traceprint( string) ASH function
  
  13223: Add "thrall" datatype to ASH.  
+
  r17454: Experimental ASH feature: allow X++, X--, ++X, and --X with their normal meanings: post-increment, post-decrement, pre-increment, and pre-decrement.
New ASH function: thrall my_thrall()
 
  
  13234: New ASH functions: to_thrall( int ), to_thrall( string ), to_int( thrall )
+
  r17460: Add Java-style "for" loop:
  New proxy fields for thralls: .id, .image, .tinyimage, .skill
+
for (INIT [, INIT]* ; CONDITION ; ITERATE [, ITERATE]* ) BODY
 
+
You can have 0 or more INIT statements, which can be of the form
  13256: Add CLI command to buy or sell from a coinmaster:
+
X = EXP (where X is declared already) or
  coinmaster buy nickname item, item ...
+
  TYPE X = EXP (whre X of type TYPE will be declared for use in the BODY scope).
  coinmaster sell nickname item, item, ...
+
 
+
You can have 0 or more ITERATE statements, which can be of the form
  r13280 & r13282: Added Ash functions:
+
X++ or X--
  '''monster_initiative( [monster] )''' - returns initiative + ML penalty
+
  ++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.
  
  13299: Add "'''bugbears'''" command to give status of the 9 Bugbear Mothership zones
+
  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
  13393: Added ash function '''stun_skill()''', returns the character's stun skill based on  lass/preferences.
 
  
 
== Needs Major Work ==
 
== Needs Major Work ==
Line 315: Line 308:
  
 
  Information on moods calling other moods: http://kolmafia.us/showthread.php?8852-Composable-Moods&p=66468&viewfull=1#post66468
 
  Information on moods calling other moods: http://kolmafia.us/showthread.php?8852-Composable-Moods&p=66468&viewfull=1#post66468
 
r10025: Added '''choice''' CLI command, to resolve manual or unsupported choiceadventures
 
Added "choice" CLI command, to resolve manual or unsupported choice
 
adventures without having to visit the relay browser - which might be
 
inconvenient if you're already in the CLI, and don't need to see the full
 
adventure text to decide which option you want. With no parameter, "choice"
 
just lists the options. With a numeric parameter, it picks that option.
 
With any other parameter, it picks the first option containing that text (in
 
either the actual button text, or mafia's spoiler text).
 
  
 
== Needs Code Samples ==
 
== Needs Code Samples ==
Line 330: Line 314:
  
 
Information on how to create a code sample: [[Template:CodeSample]]
 
Information on how to create a code sample: [[Template:CodeSample]]
 +
[[Category:Contributing]]

Revision as of 01:26, 13 December 2016

"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.
r15235: Add buffer run_choice( int ) command. When in a choice adventure, use this to submit the selected option.
With -1 as imput, it will automate the rest of the choice using existing settings.

Also add run_turn(), which will work as run_combat() or run_choice( -1 ) depending on whether you are in combat or in a choice.
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
r15590: Add run_combat( string filter ).
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 )
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
r16886: Add witchess command to get Puzzle Champ. This only works if you have solved all puzzles.
r16978: Eudora CLI command now returns current correspondent with no argument.
Add ash string eudora() command which returns current correspondent.
Add ash boolean eudora(string) command which takes "penpal", "game" or "xi" and attempts to set that correspondent.
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

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