StDoodle's Custom Daily Deeds : Relay Browser Version

StDoodle

Minion
Custom Daily Deeds 4.7
Requires KoLmafia r9220

Latest Announcements

1) Setup page now refreshes un-set stuff (so new things will now show up, yay).
2) Support added for Obtuse Angel & Alice's Army Cards
3) Script aborts if no character is logged in (prevents creation of useless data files if rollover hits while using the script)
4) Now requires std_lib.ash (which requires zlib.ash) for my sanity of upkeep. ;)


Attention users of 4.0 - 4.2!

You'll want to run the following on the mafia CLI once to fix some bugs:
Code:
ashq import "relay_Custom_Daily_Deeds.ash"; load_deed_map(); foreach d in deeds { if (d == "ARENABUFF" || d == "DEMONS") { remove deeds[d]; print("Removing " + d); } } save_deed_map();
Alternately, you can just edit those settings out of your data file; but don't mess up! ;)

Attention when upgrading!

You'll need to go to "settings" and hit "save" in order for new features to show up in your list in many cases. Note that this also applies whenever you get new stuff that the script tracks.

Requirements

Requires std_lib.ash (which requires zlib.ash) and htmlform.ash to function. These scripts can be installed in either the "scripts" or "relay" directory, or any subdirectory of either. This script itself must be installed in the top-level of your "relay" directory, and can be accessed by choosing "Custom_Daily_Deeds" from the drop-down menu on the right of the relay browser's top-mid frame.

Revision History
Code:
4.7        add april shower support
4.6        add support for Alice's Army cards
4.5        fix lunch break, fix recognizing new stuff @setup
4.4        abort on no char. logged in; support for Obtuse Angel
4.3        Add zap wand, bag o' tricks, and some tooltips; fix arena & demons display
4.2        Fix check for demon names existing & special demon cases
4.1        Fix check for demon summoning supplies    
4.0        Loads (see post in forum thread)    
3.7        Bump version to trigger updates
3.6        Pumpkin patch (garden)
3.5        More bugfixes
3.4        Bugfixes & GA Pants integration
3.3        "Strategic"    (pool action mispeeling), added hipster, looking glass & tea party, spooky putty
3.2        Fixed a setup display bug & actually updated version
3.1        Added tooltips for most built-in deeds
3.0        Initial release of the relay browser revamp
 

Attachments

  • relay_Custom_Daily_Deeds.ash
    97.3 KB · Views: 375
Last edited:

Winterbay

Active member
Seems to be working so far. One thing though, the link to the forum is currently "http://127.0.0.1:60080/%22%22" which is less than useful :)

It would also be great if it could print the result of the summon/cast in some way that does not force me to go and look in the gCLI afterwards.
 

StDoodle

Minion
Re: link

Do you mean the one in the help / about page? Forgot to edit that in (wrote it before this thread existed). Will fix shortly

Re: feedback

A summary of your results replaces "StDoodle's Custom Daily Deeds v3.0" in the very top table row. Or it should, anyway.

Thanks for testing!
 

Winterbay

Active member
Re: link

Do you mean the one in the help / about page? Forgot to edit that in (wrote it before this thread existed). Will fix shortly

That's indeed the one I was alluding to.

Re: feedback

A summary of your results replaces "StDoodle's Custom Daily Deeds v3.0" in the very top table row. Or it should, anyway.

Thanks for testing!

Currently if I press "cast 1 candy heart" the top of the page changes to "Successfully ran "cast 1 candy heart" on the gCLI." which is great because that tells me if it worked or not, but it would be even better if it said "Successfully ran "cast 1 candy heart" on the gCLI with result "yellow candy heart"" or something to that effect.
 

StDoodle

Minion
...it would be even better if it said "Successfully ran "cast 1 candy heart" on the gCLI with result "yellow candy heart"" or something to that effect.

It would, but that would require an UNGODLY amount of extra work, I'm afraid. As far as I know, there are only two main ways to handle this; parsing an entire day's worth of session logs, twice; or programming in a check of your inventory beforehand, saving it, and then doing so again and running a comparison (because it's a form load, so it's difficult to pass info forward to the next page load, which happens on every button click). I CAN think of ways to make this easier, but they would result in rewriting the code in such a way as to make it more difficult to maintain (stuff all over the place, such that adding new features becomes a PITA). Since avoiding this is one of the major reasons for this re-write, that's not going to happen.

All that being said, if you check out the latest change I've made, you might be satisfied with what it adds. ;)
 

Winterbay

Active member
I completely understand. The workaround you added works just fine as long as I take the time to check the amounts before and after the summoning.

Thanks :)
 

tragus

Member
I look forward to trying out the band-new sparkly wonderfulness. A random note, however, to StDoodle: You link to the Mafia Wiki FAQ points to a non-existant (actually deleted) page. You may wish to change it to point to "http://wiki.kolmafia.us/index.php?title=Help:Frequently_Asked_Questions".
 

jwylot

Member
Thanks Doodle. I really like this, especially the ability to add custom lines. Now I never forget to use a drink-me potion :)
 

rpxx

New member
Thanks for doing this.

I've turned on the display for everything I can turn on, and as far as I can tell, there are still some limited-time-per-day things that aren't tracked. They are:

Going to clan meat tree (or meat whatever)
Getting chips (or soda) from clan chip (or soda) machine
Going to island farm stand post-island-war to get daily meat profits
Going to island arena to get buff
Use glass gnoll eye
Use cheap toaster x3
Use Chester's bag of candy
Use manual of (whatever)
Use ball-in-a-cup
Use handmade hobby horse
Use set of jacks

I have all the "use items" ones triggered through a chat macro, normally, but I don't know how to set your script to run a chat macro rather than a GCLI script, which I don't understand how to do yet.

Also, is there a way to make the script hit all of the "you haven't done this yet" buttons at once? (Other than the ones that change your familiar in preparation for adventuring.) Or should I be looking under breakfasting for that kind of thing?
 

StDoodle

Minion
Going to clan meat tree (or meat whatever) No preference
Getting chips (or soda) from clan chip (or soda) machine _chipBags / No preference
Going to island farm stand post-island-war to get daily meat profits No preference
Going to island arena to get buff On my list, but no preference
Use glass gnoll eye No preference
Use cheap toaster x3 _toastSummons
Use Chester's bag of candy _bagOfCandy(?)
Use manual of (whatever) No preference
Use ball-in-a-cup No preference
Use handmade hobby horse No preference
Use set of jacks No preference

Unfortunately, some things are either much harder or plain impossible for my script to handle if there isn't a mafia preference that tracks their use. Of the above items that already have a preference, I can add them easily enough and will do so. (They will likely default to "never show" though, so you'll need to go into "setup" at least once.) Of those that don't, I'd really like to track the arena buff, but I can't find a preference for it. If no one can point me to one, I may make a feature request. I also don't know for sure if the "_bagOfCandy" preference is for Chester's or something else -- don't have one myself.

If you think there's a mafia preference for any of these that I missed, please point it out and I can add support.

Also, one you didn't point out that I've wanted is clovers, which I currently have a custom command for in my settings. ;) Just use "hermit * clover" as the increment command. (Or, if you have clover protection off in mafia & want to be safe, "hermit * clover; use * ten-leaf clover".)

Many of the others, though, are such that there's no advantage to saving them to a particular point in your day, rather than just doing them as you logon. For these (crimbo items & clan stuff) I would suggest adding them to your breakfast routine. Please note this script isn't intended to suplant mafia's breakfast handling; it's simply that certain things you don't want to do all at once (either your MP may be limited, esp. in-run, or they give a temporary effect that you'd want to strategically time). For anything where timing doesn't matter & there isn't already a mafia preference, I have no real intention of adding built-in support unless mafia starts tracking their daily use internally.

I have all the "use items" ones triggered through a chat macro, normally, but I don't know how to set your script to run a chat macro rather than a GCLI script, which I don't understand how to do yet.

I have no clue; trust me, I've tried to get that to work. ;) However, most things could be done via the gCLI, and for such you could set up a custom preference with its own command from the "custom" page of the script. You could even put several in one, with the "increment" command set to something like "use 1 ball-in-a-cup, 1 set of jacks" etc. Or you can set it to an alias if you don't want such a long button. :)

Also, is there a way to make the script hit all of the "you haven't done this yet" buttons at once? (Other than the ones that change your familiar in preparation for adventuring.) Or should I be looking under breakfasting for that kind of thing?

I've given thought to that, but the way the script is coded makes it a pain. All of the buttons / actions are dynamically generated (except the navigation menu & some of the save / delete stuff). The advantage of that is being able to update the script MUCH more easily than my old version, where every additional preference tracked meant adding to the code in a dozen places. :( If there's anything that doesn't matter when it's done (like clan item-gathering and jacks), I'd just remove it from my script's settings & add it to breakfast.
 

slyz

Developer
Of those that don't, I'd really like to track the arena buff, but I can't find a preference for it.
It's "concertVisited" I think.

I also don't know for sure if the "_bagOfCandy" preference is for Chester's or something else -- don't have one myself.
_bagOfCandy tells you if your Stocking Mimic has acquired his Bag of Many Confections today (I didn't know it only did it once per day, but that's what the comment in FightRequest.java says).

You can find all of the Mafia properties corresponding to the options that appear in the Daily Deeds panel in DailyDeedsPanel.java, if you can find your way to Mafia's source. These include, for use in aftercore:
Code:
rageGlandVented
libraryCardUsed
outrageousSombreroUsed
oscusSodaUsed
expressCardUsed
_legendaryBeat
currentMojoFilters
spiceMelangeUsed
_chipBags
_ballpit

and a few that could be ascension-relevant, some of which you already track, if I remember correctly:
Code:
dailyDungeonDone
demonSummoned
nunsVisits
telescopeLookedHigh
friarsBlessingReceived
styxPixieVisited
_hotTubSoaks
_poolGames
_crimboTree
_sealsSummoned
_cameraUsed
spookyPuttyCopiesMade

I didn't put all of them (there are still the free runaways and familiar ones), but it's a solid list to go with =)
 

StDoodle

Minion
Thanks slyz! Most of those I was aware of, but I dunno how I missed "concertVisited"...

Also, there are a few I'd like to add support for eventually, but would really prefer to test first, such as seals, putty (don't have), styx pixie (ugh, don't wanna go back to BM), etc.
 

StDoodle

Minion
What do you need for styx pixie?

The big problem is that, because of some hacked (poor) coding on my script's part, it's sometimes wishy-washy whether new preferences will show. Ie it shouldn't show options for the styx buffs when you aren't in BM, but it would be nice if they were automatically added when you were. Unfortunately, the only solution that's come to me so far would require a massive re-write of my script... which I've already done once.

I thought I would also need to test buff acquisition, but there's apparently a cli command for that now (don't honestly remember seeing it, could have been added after I did BM, or I coulda just been dense).

I suppose in this case I could add it and let others "guinea pig" it for me... I'd rather not, but I also really don't desire to go back to BM. ;)
 

StDoodle

Minion
Indeed, but that doesn't solve the problems in the script itself, which is a complication that arose out of having very modular, dynamically-generated actions & info for each setting.

The real solution would probably be to clarify in the script's documentation that any change in your situation (out-of-run/ronin, bad moon, etc.) may require a redo of the settings (which is the whole point of being able to save different configurations). But ugh, documentation.
 
Top