Ascend.ash: hands-off ascension script

dj_d

Member
It's true, ascend.ash is about getting ascended, not about getting there ASAP. I may take a look at the familiar choices at some point but I wouldn't hold anything up on it.

If I do get around to it, though, how would you decide which of those familiars to use? You can hardcode whichever one you want already.
 

zarqon

Well-known member
dj_d: Seems like you could associate familiar types with ascension steps fairly easily, then use ZLib's best_fam() to equip them. This would also mean that Ascend would respect the is_100_run setting.

Only problem is that currently, best_fam() chooses the heaviest of a given type, which is great in the middle of a run when users have already used their favorite familiars, but in the event that all familiars are 1 lb., it will just choose the first match. Some kind of prioritizing needs to be added to that function. I'll probably be able to implement that rather simple modification more quickly than you could implement familiar swapping in Ascend though.

Just throwing that out there as a possibility.
 

dj_d

Member
Sure, but which one do you want? There's no way to programmatically know (trading off volley/meat/etc is nondeterministic), and the desirable strategy often changes from run to run based on equipment, class, goals, etc. That being the case, I figure it's just easier to set it to what you want manually, which you can already do.
 

zarqon

Well-known member
Okay, I've just fixed the best_fam() function in ZLib.

What I meant was that the ascension steps could be associated with familiars in a fairly-easy-to-configure way. If I had to implement this in Ascend, I would probably stop building QuestSteps and LevelUpSteps in the script and load them from data files... and if you do that, those steps could be records with associated familiars. Then users need only edit their data files using ZLib's supported familiar types (and/or specific familiar names), such as "stats" "items" "meat" and the like. Defaults could all be familiar types, since those are impossible to break by lacking familiars (best_fam() returns my_familiar() if no match is found).
 

codster62

Member
Whoops. Sorry about that Italian Hippie. I must have misunderstood. :) Anyways, good luck with creating this... I am sure people will be glad to have a hardcore ascender script.
 

dj_d

Member
@Z: I'm not really making myself clear... what I mean is, I don't really know in advance what familiar I want for a given quest step. Do you? It depends on if I need mana, HP, stats (the usual), blocking, or...? Arguably it's most useful to change familiars within a quest, like grabbing a potato for a boss, but that's a whole 'nother level of complexity. So there may be a common set of optimizations that applies all the time, but if there is, I don't know about it.

So I'd have to ship a data file with it, which I generally hate doing because they inevitably have compatibility issues when you make changes in the code to add or remove a field, and I don't see how it helps much.

Now all that said, if someone wants to put up a list of what familiar is best for each questlevel, I'll happily reconsider (and probably learn a thing or two in the process). But it adds complexity, so I probably won't get to it unless I can see how it's a real help.
 

dj_d

Member
@seamer: you have to change the code so that every time the overdrink function is called, the fourth parameter is false.
 

codster62

Member
If you read recent posts, it will tell you to send the Mr. A to Dj_d, the owner and creator of this script. Hope you enjoy it.
 

Spiny

Member
Oh, thanks :) I got the password but am having trouble unzipping it. Never gives me a slot to plug it in. Im on a mac if that matters.

Use stuffit expander.

From Veracity: if you go and control-click on the .zip file from the Finder, you can specify that you want to open the .zip file with Stuffit Expander - which will prompt you for the password.
 
Last edited:

seamer

New member
I love the package :)

Can all the non-essential files (mostly the *.txt and scripts rarely directly called by the user) be placed into a sub directory by default? Even with just the ascend scripts I have to hunt for the script I want through a long, long list via mafia.

Akin to...
c:\kol\scripts\eatdrink\eatdrinkdrinkdata.txt

My script directory is a mess and I've only been looking at them for a week or two :)
 

dj_d

Member
There were some posts here earlier about it - I don't remember what folks determined. Good news, though, that eatdrink will have a new version soon with no data files.

Also note that you can invoke scripts by just typing "ascend.ash" at the CLI, which is a lot faster than fishing around through the menu.

Glad you like it!
 

zarqon

Well-known member
dj_d - Ah so. But that's also beside my point, which is that the optimal familiar for any given step is "the one you personally like best," and allowing configuration of that would be nice. But in the end, it always comes down to "does the script satisfy the script author?" And if it does, only suggestions which induce dissatisfaction will result in change. :)

@seamer: All of the data files (txt files that are not CLI scripts) can and should be moved to mafia's data directory. They don't belong in the scripts directory anyway. That will go a long way towards cleaning up your scripts dir.

I put the Ascend ASH scripts in their own subdirectory, i.e. scripts/ascend/. And while it might be nice to have that as the default behavior for the zip, unzipping the files in a sensible location is a user responsibility, not dj_d's.
 

CKtheFat

Member
Would it be useful to have the script revert to melee before running LevelUp.ash? In my scenario, the script puts on swashbuckling gear, goes to see if I can fight the crab, says I cannot, and sticks me on the Extreme Slope (though I'd be better off at the Icy Peak, and normally would level up there with my "melee" outfit's extra moxie.)

To revive an older topic, I've run into these little thing again when adventuring between the Haunted Billiards Room and the Guano Junction. The script has me equip the pool cue to adventure me in the haunted billiards room, but decides to level me up. So it sticks me over in the bat cave still equipped with the pool cue, which I can't get hits off of because I'm a moxie class and don't have the muscle stats.
 
Last edited:

dj_d

Member
@Z: right. So if someone shows me a great reason for why each quest step needs its own familiar, that'd be pretty compelling. If not, well - it's low on the todo list.
 

tgetgel

Member
dj_d, after reviewing the code, I totally appreciate the effort that went into this code. Thanks!:D
I do have a few questions though as I am trying to understand.

1. I was looking for where price.ash was used in the files but I did not find it. Did I miss something or is that a leftover that is no longer needed?

2. What is the reason that farm.ash does mallsell() and dailygrind.ash does autosell()? Is it that the code in dailygrind is just more simplified, written first, or only deals with a limited list of items?

3. What is the reasoning behind not summoning demons like greed in farm and dailygrind? Is it the cost of the ingredients (inkwell, tattered scrap of paper, disintegrating quill)? (Friar's and Winklered are both done in farm and dailygrind but are free.) I also noted that the other demons are also not summoned but might be specific to certain quests/areas.
 

traven

New member
Hi dj_d - this is amazing stuff and really helpful to me while I'm at uni. Could you please tell me how to fix these errors?

Working on quest step Aftercore.
goodnight.ash could not be found (dailygrind.ash, line 1)

> call scripts\farm.ash
Function 'spaces_to_underscores' defined multiple times (farm.ash, line 8)

Sorry to be an ash noob! Thanks :)


Edit: fixed the first by commenting out the import
 
Last edited:
Top