One-Click Wossname 1.9
What does it do?
One-Click Wossname (OCW) is designed to complete the entire island war for you automatically. It gets outfits, starts the war, battles for you on both sides, and completes sidequests if so directed. Using Mafia's built-in properties, it tracks your progress on the battlefield and sidequests, so you can run it anytime with no risk of ruining your kill count. OCW uses an external text file ("war plan") to determine the order in which to do everything, so you can rewrite the plan if you prefer a different order.
Whenever you run the script it continues where you left off, even if you've already started the war. When you finish on the battlefield, OCW turns in your battlefield items to the appropriate camps for dimes and quarters, optionally turns all the coins in for meat (default), and then does the Last Stand for you, getting your Wossname. OCW also manages the final battle for non-Wossname plans.
- OCW comes with eighteen war plans to choose from -- four different Wossname plans, and a plan for each of the other IsleWar rewards. Specify the plan for your character by adjusting the ocw_warplan setting.
- OCW will use the specified familiars, outfits, and moods for each sidequest. Like the warplan setting, these are script settings which you can view/edit by typing "zlib vars" in the CLI after you've briefly run the script once to initialize the values. Variables beginning with "ocw_o_" are for outfits, "ocw_f_" for familiars, and "ocw_m_" for moods. In the case of familiars, these can be set to actual familiar names, or to a familiar type recognized by ZLib's best_fam() function (e.g. "items"). If you lack the specified familiar or it is left blank, ocw_f_default will be used. In Boriscore, OCW will use Clancy's lute for the Orchard and any other sidequests you have set to "items"; otherwise, it will prefer Clancy's crumhorn. OCW also uses your "defaultoutfit" setting for adventuring on the battlefield.
- OCW intelligently uses various and sundry items to expedite the sidequests.
- Farm sidequest: uses the "chaos butterfly" shortcut to reduce total number of ducks.
- Arena sidequest: flyers Cyrus the Virus, flyers the Guy Made of Bees, or flyers in the Hole in the Sky, depending on which is estimated to add fewer adventures to your run. Some additions to your custom combat script required.*
- Gremlins sidequest: Attempts to maintain restorative effects by using items. Gremlin-stasising CCS required.*
- Nuns sidequest: uses items to increase meat drop rate (if your 'ocw_nunspeed' setting is true... default is false).
- Lighthouse sidequest: does a few things to maximize combat adventures before getting the barrels. If your CCS throws putty at the lobsterfrogmen, OCW has special handling to use your monster copies rather than continue adventuring.
- OCW will turn in your battlefield items to the appropriate camp for dimes/quarters after fighting everyone.
- If your 'ocw_change_to_meat' setting is true (default), OCW will then trade in your dimes/quarters for the item with a 1000 meat autosell value, and sell them.
- OCW adds no properties to your mafia preferences file.
- Encountering holiday monsters on the battlefield will not affect your kill count.
- Canceling the script mid-combat will not affect your kill count.
- What's more, it's OK to kill some soldiers or complete a sidequest outside of this script (but in mafia). Just be careful to stick with your plan if you decide to do some of it on your own, or you might screw yourself out of the Wossname if you kill too many soldiers or complete a sidequest too early.
- All turns on the battlefield must be completed in Mafia, or Mafia's kill count will be off, causing OCW to behave wrongly.
- Running this script without adding GMOB-flyering, HitS monster-flyering, or gremlin stasising to your CCS could result in your burning quite a lot of adventures!
- Because OCW relies on properties KoLmafia saves to your settings file, changing your setting file or running the script on multiple computers can really mess you up. If you play on multiple machines, use Dropbox or a flash drive.
*Custom Combat Script changes
If you use SmartStasis or any of the combat scripts that rely on it, no further additions to your CCS are required. Otherwise, you will need something to handle flyering the GMOB/Cyrus/other monsters and using the magnet against gremlins (and optionally, something to throw meat vortices at brigands).
How to use it:
- Make sure you have ZLib.
- Unzip wossname.zip in your scripts directory.
- Overwrite the old Wossname 1.9 with the new 1.9 attached below.
- You will notice a preponderance of text files. All of these are the supplied warplans (not scripts), and should be moved to your data directory.
- Change your custom combat script as indicated above.
- If you have just downloaded this script for the first time, run it once, then abort it during version checking. This will initialize your script settings.
- Adjust your script settings to your liking. Make sure all of the "ocw_..." settings, and the "defaultoutfit" setting, in your vars_myname.txt file are set the way you want them.
- Optionally, load the script in a text editor and configure your battlefield item turnin stuff.
- Run the script!
Special thanks to hippymon, Crowther, iniquitous, Miser, degrassi, Mighty Xerxes, EdFox, and Theraze for contributing various code and ideas to this script.
12.22.07 - ver. 1.0.0 posted.
12.23.07 - 1.1.0 changes: integrated Miser's battlefield item turn-in. Also integrated hippymon's cli_execute() removals, and use can_interact() instead of in_hardcore().
12.27.07 - 1.1.1 changes: small change to the method of checking for a flaregun. Thus, also updated the conditions() method to the conditions(1 [, 2 [, 3]]) method discussed below, since that was already changed.
12.29.07 - 1.1.2 changes: small bugfixes: hopefully fixed the flaregun issue once and for all (thanks hippymon), and fixed a bug in the junkyard sidequest (thanks Relim).
1.04.08 - 1.1.3 changes: don't check got_item() for choiceadvs
1.07.08 - 1.1.4 changes: significant change to the method of checking/buying/adventuring for items. New function obtain() replaces the conditions() method.
1.17.08 - 1.2.0 changes: fixed a bug in obtain() where it called retrieve_item() for quest items. Added option to convert your coins to meat after turning in your battlefield items. Better postwar error checking. Added some code to improve flexibility for non-Wossname battle plans. Significant code optimization/rearrangement.
1.18.08 - 1.2.1 changes: check for flyers before adventuring at the bathroom. More print commands. More specific version number (retroactively edited changelog).
1.20.08 - 1.2.2 changes: removed getting daily rewards since mafia 12.0 now does that. Orchard sidequest now loops back if you got screwed by RNG swing. Reset IsleWar properties before starting the war in case of manual ascension.
1.21.08 - 1.2.3 changes: safety checking for picture 31 in case mafia's kill count gets off. Preliminary support for handling final combat and getting Wossname (tested OK). Fixed a typo causing an error after completing the plan.
1.26.08 - 1.2.4 changes: removed redundant safety checking added in 1.2.3. Added version check, so you always know if you're using the current version. Added the ability to specify different warplans for specific characters. Included fewyn's fratboy-only warplan.
1.30.08 - 1.2.5 changes: added initial support for per-step familiar selection.
2.03.08 - 1.3 changes: multifarious! Described here.
2.10.08 - Happy lunar new year from Korea! 1.3.1 changes: moved some things dealing with plan loading to allow for multiple-plans-per-war hacking. Fixed a situation where you would impossibly adventure for the basic frat outfit. Even better prewar checking. A couple more item optimizations. Better feedback if you run out of adventures after a battlefield noncombat. Fixed an out-of-adventures loop when hunting the GMOB.
2.12.08 - 1.3.2 changes: tweaked plan loading. Fixed incorrect filthworm code causing the glands to go unused.
2.20.08 - 1.3.3 changes: many. Gear up after using items to prevent adventuring in unwanted outfit. Check for effects before using items. Rewrite junkyard to use mafia properties and allow ccs. Re-simplify filthworms. obtain() will attempt to pull from storage. Add summon greed demon and winklered to nuns. Add deodorant to GMOB hunting. Return original outfit on script exit.
3.13.08 - 1.3.4 changes: Lockenstockô. Easier-to-understand graceful script exit. Customizable stasis item. Small change to pre-GMOB flyers check.
4.03.08 - 1.3.5 changes: OCW now handles the final combat for non-Wossname plans! Also: to_item("Lockenstock"). Fixed an abort issue with starting the war. Better pre-checking implementation.
4.21.08 - 1.3.6 changes: meat-vortexing the brigands is now automatic! Better postwar feedback in the event of the count being off.
5.12.08 - 1.4.0 changes: Introduced automatic familiar-selection framework. A third of the sidequests are now automatic. Nun sidequest: repaired estimated_adv() calculation (thanks plurialibus), better combat looping, print some useful statistics between combats. Changed "arena 2" to "concert 2".
9.29.08 - 1.4.1 changes: several contributions by other users: junkyard location fix by Rinn, effect check to prevent needless use of snowcones by dj_d, and warplans for all the other IsleWar rewards (!!!) by the_tom77 (in-game: The_Tom777).
12.13.08 - 1.4.2 changes: automatically update bestfamiliars.txt. Fix frat-5-beta warplan. Rearranged fastest.txt so the Arena happens before the Nuns (so OCW can get "Winklered" for the Nuns). A few little code tweaks here and there.
2.07.09 - 1.4.3 changes: remove auto-meat-vortexing. Call restore and between-battle scripts between scripted combats. Update thread URL for version checking.
4.26.09 - 1.5.0 changes: multifarious!
4.27.09 - 1.5.1 changes: fixed a longstanding typo causing OCW to affect combat frequency the wrong way when starting the war!
6.09.09 - 1.5.2 changes: added HitS option for arena quest, in addition to logic to select whether to use the GMoB method or the HitS method to complete the quest. Avoid borking on cli_execute() calls. A few tweaks to obtain(). Fixed broken hippy-0-balloon warplan.
6.14.09 - 1.5.3 changes: Moved out some functions -- now requires ZLib. Don't use deodorant/salt in an untimely fashion during McMillicancuddy sidequest.
7.25.09 - 1.5.4 changes: a few tweaks to HitS selection during arena quest. Major edits to be compatible with new ZLib -- uses script settings instead of variables. Completely refactor gearup_apropos() using the new system. Should be fewer error messages when gearing up now. Fixed longstanding bug with starting the war when doing hippy-only plans.
10.13.09 - 1.5.5 changes: small fix to gearup function; the is_100_run setting is now a familiar, not a boolean.
10.31.09 - 1.5.6 changes: Added preliminary, untested support for Cyrus option to flyers quest. Also get prerequisite hippy/frat outfits if auto-buying is disabled.
11.01.09 - 1.5.7 changes: try unlocking the Soup (still untested). Fix while loop for GMoB (thanks FN Ninja). Slightly more robust checking for flyers quest completion.
2.07.10 - 1.5.8 changes: convert all instances of error() to vprint(). Print which outfit you are equipping. Fixes for frat 5/6 warplans by EdFox.
4.14.12 - 1.6 changes: two years and 1,842 downloads later, an update! Support for various challenge paths, including Avatar of Boris. Added a Wossname warplan for Beecore from EdFox. Majorly reworked familiar determination and outfit farming. Change almost all print() and abort() commands to vprint(). Numerous other small tweaks, including many from Theraze.
7.15.13 - 1.7 changes: rework item turnin to take advantage of mafia's Coinmaster handling. Eliminate friendly warnings by using exact names. This will likely be the last update before 2.0.
7.26.13 - 1.8 changes: Fix buy/sell confusion in previous reworking. Use property to detect war starting. THIS will likely be the last fix before 2.0.
5.28.19 - 1.9 changes: Use ZLib's getvar() rather than directly read vars. Fix problem preventing script from validating. THIS will definitely be the last update before my much-improved script that starts with 'O' drops.