Difference between pages "Help:To Do List" and "Development Environment Setup"

From Kolmafia
(Difference between pages)
Jump to navigation Jump to search
imported>Bale
 
 
Line 1: Line 1:
{{TOCright}}
 
  
== "To Do" List ==
+
== KoLmafia has migrated to  GitHub with gradle builds. ==
 +
Links below this section may be obsolete and should be verified before relying on them.
  
This is a list of stuff that is missing from the wiki or else needs major work. Please help!
+
The good news is that the IDE setup is a lot easier. The bad news is you'll need to take some steps to build anything. In addition, we are discussing changing to a newer required JDK, so even these instructions will not be permanent.
  
  
If you need tips for editing the wiki, find that here: [[Help:Editing]].
+
After succeeding at [[Compiling from Source]] for your platform, you can add set up your KoLMafia source in an Integrated Development Environment (IDE) of your choice.  It is entirely possible to build and change KoLMafia without and IDE and some of the developers do just that.
 +
====Platform-specific Development Tools====
 +
;''Apple's OS X notes on development for Java, including the XCode Tools setup, can make command line work easier.''
 +
::[https://developer.apple.com/library/archive/documentation/Java/Conceptual/Java14Development/02-JavaDevTools/JavaDevTools.html Apple Developer Tools for Java]
 +
====Developer Text Editors====
 +
Choose your favorite, or add your favorite.
 +
;[http://www.barebones.com BBEdit]
 +
:: Mac OS X based text editor
 +
;[https://macromates.com TextMate]
 +
::Another Mac based editor
 +
;[https://www.ultraedit.com Ultra Edit]
 +
::cross-platform text editor
  
*CLI Commands are usually only added to the [[CLI Reference]]. Only very complicated commands require their own page.
+
====IDEs====
 +
This list will be out of date shortly after it's written, but can be updated as newer tools and versions are released.
 +
;[https://www.jetbrains.com/idea/download/ IntelliJ IDEA]
 +
::[[IntelliJ Setup]]
 +
;[http://www.eclipse.org Eclipse]
 +
::[[eclipse Setup]]
 +
;[https://code.visualstudio.com/ VS Code]
 +
::[[VS Code Setup]]
 +
;[https://www.jetbrains.com/idea/download/ NetBeans]
 +
::[[NetBeans Setup]]
 +
;[http://developer.apple.com/tools/xcode/) Xcode] (Mac only)
 +
::[[XCode Setup]]
  
*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.
 
  
 
+
====Source Control Management tools====
== Missing Stuff ==
+
;[http://path/to/something/ TortoiseSVN]
r9181, 9183, 9184 & r9190: '''moods''' per slyz's summary here: http://kolmafia.us/showthread.php?8852-Composable-Moods
+
::[[Tortoise Setup]]
 
 
13213: Add "debug ash on" and "debug ash off" to turn on and off ASH script tracing
 
ASH tracing goes into ASH_datestamp.txt
 
 
 
r14729: add fixedThreadPoolSize pref - diagnostic/fine tuning for limiting the threadpool size.
 
 
 
'''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.
 
 
 
r13980: Add is_unrestricted( item/familiar/skill/string ) to see if something can be used in the current path.
 
 
 
r15102: Add ASH functions:
 
'''string [int] all_normal_outfits()''' -> returns map out all outfit names index by outfit number.
 
'''string outfit_tattoo( string name )''' -> returns image file name of outfit tattoo
 
 
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.
 
 
 
r15115: Parse Chateau furniture when viewed and at login. Make it available through '''get_chateau()'''
 
Add chateauAvailable to track whether you have it (currently only updated by visiting the Mountains),
 
chateauMonster to track the monster in the painting, and _chateauMonsterFought to track if you have fought it.
 
 
 
r15120: Add ASH '''holiday()''' function.
 
returns a string which has one of the following, as appropriate: game/real; game; real; ""
 
 
 
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
 
 
 
== 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|Category:Needs Code Sample]]
 
 
 
Information on how to create a code sample: [[Template:CodeSample]]
 
[[Category:Contributing]]
 

Latest revision as of 01:08, 5 December 2023

KoLmafia has migrated to GitHub with gradle builds.

Links below this section may be obsolete and should be verified before relying on them.

The good news is that the IDE setup is a lot easier. The bad news is you'll need to take some steps to build anything. In addition, we are discussing changing to a newer required JDK, so even these instructions will not be permanent.


After succeeding at Compiling from Source for your platform, you can add set up your KoLMafia source in an Integrated Development Environment (IDE) of your choice. It is entirely possible to build and change KoLMafia without and IDE and some of the developers do just that.

Platform-specific Development Tools

Apple's OS X notes on development for Java, including the XCode Tools setup, can make command line work easier.
Apple Developer Tools for Java

Developer Text Editors

Choose your favorite, or add your favorite.

BBEdit
Mac OS X based text editor
TextMate
Another Mac based editor
Ultra Edit
cross-platform text editor

IDEs

This list will be out of date shortly after it's written, but can be updated as newer tools and versions are released.

IntelliJ IDEA
IntelliJ Setup
Eclipse
eclipse Setup
VS Code
VS Code Setup
NetBeans
NetBeans Setup
Xcode (Mac only)
XCode Setup


Source Control Management tools

TortoiseSVN
Tortoise Setup