Ascend.ash: hands-off ascension script

Theraze

Active member
If you're just wanting to see how it works, you could check on either Rinn's quest scripts, or BumCheekAscend, both available here in the forums. Rinn's scripts break things out into modules, so the pirate fledges quest (which includes insulting the pirates) is in Pirate.ash, while BCA has it all in the same file... in that case search for 'insult' and you should find the various functions.
 

fronobulax

Developer
Staff member
3) So I just have to configure the scripts?
Sort of. You also have to make sure you can kill anything you come across with Mafia's default settings. Ascend.ash will make sure you don't fight anything too tough, but if your default attack is your forehead of fury, you may find yourself in a tough spot. You'll need to configure your CCS (I recommend smartstasis and firstthingsfirst.ash) and your restore settings (bale's recovery script is awesome but I'm lazy and just use mafia's built in functionality).

The hint is there on the first page. What you need to do is run SmartStasis with BatBrain. They pretty much handle insults and gremlins and so on. The one exception, last I checked, is that it isn't always going to handle the spectres in the temple so you may want to make them a special monster your CCS or just make sure the default outfit (melee) does enough elemental damage to work.
 

Theraze

Active member
Equipping the hippy outfit is a good bet if you don't have any better maximize planned for the hidden city...
 

tebee

Member
I got a loop when trying to adventure in the castle

Code:
Checking step #34, 'Beanstalk'.
Working on quest step Beanstalk.
Got 1 S.O.C.K. already.
Adventuring for string:
Wheel in the Clouds
Giant's Castle is OK, as it will do <25% of your HP in damage if you get hit.
Giant's Castle is OK, as it will do <25% of your HP in damage if you get hit.
Mood swing complete.
Noncombat found (but not choiceadv).

Checking step #34, 'Beanstalk'........

on looking what was happening in the relay browser I found

You peek your head inside the door of the Castle, and see a bunch of things that might be giants.
The little voice inside your head can't be silent about this, so you decide not to go in there until you get a little heftier.

(You must have at least 95 Moxie to adventure here.)

and I was only 94 :(

Do we need a check in somewhere to prevent this?

Tom
 

shazbot

Member
After wrapping up the macguffin quest, I had some odd behavior-

Code:
[2172] The Lower Chambers (Empty/Rubble)
Encounter: Ed the Undying
Strategy: /Users/student/Library/Application Support/KoLmafia/ccs/default.ccs [default]
Round 0: oh shazbot loses initiative!
You lose 44 hit points
Monster value: 467.5
Profit per round: ActionProfitDamageOtherbase; Stocking Mimic (18.17μ)-21.21μ4.52 (-4.02 MPD)Att: -1.47 (-0.78 DPR) Def: -1.47 HP: 5.05 MP: 5.05
1 MP costs 8.0 meat.
This monster is not your huckleberry.
Round 1: oh shazbot executes a macro!
Round 1: oh shazbot attacks!
You lose 45 hit points
Round 2: oh shazbot attacks!
You lose 45 hit points
Round 3: oh shazbot attacks!
You lose 36 hit points
Round 4: oh shazbot attacks!
You gain 47 hit points
You gain 47 Muscularity Points
Round 5: oh shazbot wins the fight!
You acquire an item: BitterSweetTarts
You gain 49 Muscleboundness
You gain 17 Enchantedness
You gain 19 Sarcasm

Encounter: Ed the Undying
Round 0: oh shazbot wins initiative!
Combat!

You're fighting Ed the Undying

You triumphantly step over the mummy's fallen husk, and reach for the Holy MacGuffin within the sarcophagus. It is nearly within your grasp, when you suddenly feel a bony grip on your ankle. Not that easy, kiddo. Undying, remember?

Hell, you mutter. I was hoping you were just bluffing.

Nope.

You get the jump on him.

(select an item)334 scroll (1)30669 scroll (1)33398 scroll (7)anti-anti-antidote (4)chaos butterfly (8)cocktail napkin (1)disease (7)facsimile dictionary (1)fancy bath salts (4)flaregun (1)gob of wet hair (4)handful of sand (1)handful of sawdust (3)inkwell (2)Knob Goblin superseltzer (1)meat vortex (7)Mountain Stream soda (8)photoprotoneutron torpedo (4)plot hole (9)pygmy blowgun (1)razor-sharp can lid (2)rocky raccoon (2)roofie (1)shard of double-ice (2)sonar-in-a-biscuit (2)spectre scepter (1)tattered scrap of paper (4)The Big Book of Pirate Insults (1)
(select an item)334 scroll (1)30669 scroll (1)33398 scroll (7)anti-anti-antidote (4)chaos butterfly (8)cocktail napkin (1)disease (7)facsimile dictionary (1)fancy bath salts (4)flaregun (1)gob of wet hair (4)handful of sand (1)handful of sawdust (3)inkwell (2)Knob Goblin superseltzer (1)meat vortex (7)Mountain Stream soda (8)photoprotoneutron torpedo (4)plot hole (9)pygmy blowgun (1)razor-sharp can lid (2)rocky raccoon (2)roofie (1)shard of double-ice (2)sonar-in-a-biscuit (2)spectre scepter (1)tattered scrap of paper (4)The Big Book of Pirate Insults (1)
(select a skill)CLEESH (10 Muscularity Points)Transcendent Olfaction (40 Muscularity Points)Clobber (0 Muscularity Points)
KoLmafia thinks it is round 2 but KoL thinks it is round 1
Combat!

You're fighting Ed the Undying
You twiddle your thumbs.

(select an item)334 scroll (1)30669 scroll (1)33398 scroll (7)anti-anti-antidote (4)chaos butterfly (8)cocktail napkin (1)disease (7)facsimile dictionary (1)fancy bath salts (4)flaregun (1)gob of wet hair (4)handful of sand (1)handful of sawdust (3)inkwell (2)Knob Goblin superseltzer (1)meat vortex (7)Mountain Stream soda (8)photoprotoneutron torpedo (4)plot hole (9)pygmy blowgun (1)razor-sharp can lid (2)rocky raccoon (2)roofie (1)shard of double-ice (2)sonar-in-a-biscuit (2)spectre scepter (1)tattered scrap of paper (4)The Big Book of Pirate Insults (1)
(select an item)334 scroll (1)30669 scroll (1)33398 scroll (7)anti-anti-antidote (4)chaos butterfly (8)cocktail napkin (1)disease (7)facsimile dictionary (1)fancy bath salts (4)flaregun (1)gob of wet hair (4)handful of sand (1)handful of sawdust (3)inkwell (2)Knob Goblin superseltzer (1)meat vortex (7)Mountain Stream soda (8)photoprotoneutron torpedo (4)plot hole (9)pygmy blowgun (1)razor-sharp can lid (2)rocky raccoon (2)roofie (1)shard of double-ice (2)sonar-in-a-biscuit (2)spectre scepter (1)tattered scrap of paper (4)The Big Book of Pirate Insults (1)
(select a skill)CLEESH (10 Muscularity Points)Transcendent Olfaction (40 Muscularity Points)Clobber (0 Muscularity Points)
Checking step #37, 'Macguffin'.
Working on quest step Macguffin.
Resetting mind control device...
KoLmafia thinks it is round 3 but KoL thinks it is round 1
Mind control device reset.
Black market found.
Diary obtained.
KoLmafia thinks it is round 4 but KoL thinks it is round 1
Revealing the oasis...
Conditions list cleared.
Condition added: Choices Left: 1
Choices Left: 1

Round 4: oh shazbot executes a macro!

[2173] Desert (Unhydrated)
Round 4: oh shazbot attacks!
KoLmafia thinks it is round 5 but KoL thinks it is round 2
You lose 42 hit points
Round 5: oh shazbot attacks!
You lose 36 hit points
Round 6: oh shazbot attacks!
Round 7: oh shazbot attacks!
Round 8: oh shazbot wins the fight!
You gain 55 Beefiness
You gain 12 Wizardliness
You gain 22 Cheek

Encounter: Ed the Undying
Strategy: /Users/student/Library/Application Support/KoLmafia/ccs/default.ccs [default]
Round 0: oh shazbot wins initiative!
Monster value: 467.5
Profit per round: ActionProfitDamageOtherbase; Stocking Mimic (18.17μ)-21.21μ4.52 (-4.02 MPD)Att: -1.47 (-0.78 DPR) Def: -1.47 HP: 5.05 MP: 5.05
1 MP costs 8.0 meat.
This monster is not your huckleberry.
Round 1: oh shazbot executes a macro!
Round 1: oh shazbot attacks!
You lose 43 hit points
Round 2: oh shazbot attacks!
You gain 46 hit points
You gain 46 Muscularity Points
Round 3: oh shazbot wins the fight!
You gain 57 Strengthliness
You gain 19 Wizardliness
You gain 11 Sarcasm
Encounter: Ed the Undying
Strategy: /Users/student/Library/Application Support/KoLmafia/ccs/default.ccs [default]
Round 0: oh shazbot wins initiative!
Monster value: 467.5
Profit per round: ActionProfitDamageOtherbase; Stocking Mimic (18.17μ)-61.63μ4.52 (-4.02 MPD)Att: -1.47 (-0.78 DPR) Def: -1.47 HP: 5.05 MP: 5.05
1 MP costs 8.0 meat.
This monster is not your huckleberry.
Round 1: oh shazbot executes a macro!
Round 1: oh shazbot attacks!
You gain 47 hit points
You gain 47 Muscularity Points
Round 2: oh shazbot wins the fight!
You gain 54 Strongness
You gain 14 Magicalness
You gain 18 Roguishness
You don't have any spooky putty monsters.
MCD: Desert (Unhydrated) has no known combats.

Request 2 of 33 (Beach: Desert (Unhydrated)) in progress...

[2176] Desert (Unhydrated)
Encounter: Ed the Undying
Strategy: /Users/student/Library/Application Support/KoLmafia/ccs/default.ccs [default]
Round 0: oh shazbot wins initiative!
Monster value: 467.5
Profit per round: ActionProfitDamageOtherbase; Stocking Mimic (18.17μ)-61.63μ4.52 (-4.02 MPD)Att: -1.47 (-0.78 DPR) Def: -1.47 HP: 5.05 MP: 5.05
1 MP costs 8.0 meat.
This monster is not your huckleberry.
Round 1: oh shazbot executes a macro!
Round 1: oh shazbot attacks!
You gain 190 Meat.
Round 2: oh shazbot wins the fight!
You gain 42 Beefiness
You gain 28 Enchantedness
You gain 14 Smarm

Encounter: Ed the Undying
Strategy: /Users/student/Library/Application Support/KoLmafia/ccs/default.ccs [default]
Round 0: oh shazbot wins initiative!
Monster value: 467.5
Profit per round: ActionProfitDamageOtherbase; Stocking Mimic (18.17μ)-61.63μ4.52 (-4.02 MPD)Att: -1.47 (-0.78 DPR) Def: -1.47 HP: 5.05 MP: 5.05
1 MP costs 8.0 meat.
This monster is not your huckleberry.
Round 1: oh shazbot executes a macro!
Round 1: oh shazbot attacks!
Round 2: oh shazbot wins the fight!
You gain 45 Strengthliness
You gain a Muscle point!
You gain 23 Wizardliness
You gain 16 Chutzpah
Encounter: Ed the Undying
Strategy: /Users/student/Library/Application Support/KoLmafia/ccs/default.ccs [default]
Round 0: oh shazbot wins initiative!
Holy MacGuffin (100.0 @ +5.0): 0.0 meat * 100.0% = 0.0
Holy MacGuffin (100.0 @ +5.0): 0.0 meat * 100.0% = 0.0
Monster value: 467.5
Profit per round: ActionProfitDamageOtherbase; Stocking Mimic (18.17μ)-61.63μ4.52 (-4.02 MPD)Att: -1.47 (-0.78 DPR) Def: -1.47 HP: 5.05 MP: 5.05
1 MP costs 8.0 meat.
This monster is not your huckleberry.
Round 1: oh shazbot executes a macro!
Round 1: oh shazbot attacks!
Round 2: oh shazbot wins the fight!
You gain 43 Muscleboundness
You gain 23 Mysteriousness
You gain 18 Cheek
You acquire an item: Holy MacGuffin
You don't have any spooky putty monsters.
MCD: Desert (Unhydrated) has no known combats.

Request 3 of 33 (Beach: Desert (Unhydrated)) in progress...

[2179] Desert (Unhydrated)
Encounter: A Wrong Turn at Albuquerque
You acquire an effect: Prestidigysfunction (duration: 5 Adventures)

You don't have any spooky putty monsters.
MCD: Desert (Unhydrated) has no known combats.

Request 4 of 33 (Beach: Desert (Unhydrated)) in progress...

[2180] Desert (Unhydrated)
Encounter: Oh No, Not Raid!
You lose 102 hit points

You don't have any spooky putty monsters.
MCD: Desert (Unhydrated) has no known combats.

Request 5 of 33 (Beach: Desert (Unhydrated)) in progress...

[2181] Desert (Unhydrated)
Encounter: What Were You Expecting?
You acquire an effect: Sunburned (duration: 5 Adventures)

You don't have any spooky putty monsters.
MCD: Desert (Unhydrated) has no known combats.

Request 6 of 33 (Beach: Desert (Unhydrated)) in progress...

[2182] Desert (Unhydrated)
Encounter: Still Suits Run Deep
You lose 60 hit points
You acquire an effect: Majorly Poisoned (duration: 5 Adventures)

You don't have any spooky putty monsters.
MCD: Desert (Unhydrated) has no known combats.

Request 7 of 33 (Beach: Desert (Unhydrated)) in progress...

[2183] Desert (Unhydrated)
Encounter: The Far Side of Sanity
You acquire an effect: Tenuous Grip on Reality (duration: 5 Adventures)
KoLmafia declares world peace.

So the problem with wrapping up the Ed fight is (probably?) macguffin, but the behavior that was really confusing was adventuring repeatedly in the desert unhydrated. AFAIK, nothing good comes from that. Though, maybe it's a macguffin problem as well, so maybe I should pose this in macguffin's discussion. But it seems like it never visited teh council to wrap up the quest so it thought it was still on that quest (speculation). Manually visited council, ran ascend again, and it resumed fine.
 

fronobulax

Developer
Staff member
This was an Ascend problem. MacGuffin does not handle defeating Ed.

I have seen a similar problem before and agree that it is the result of interactions between Ascend and MacGuffin and not a MacGuffin problem. For the record, Ascend does not call MacGuffin directly. Rather it imports it and uses some routines. I'd like to change that but it won't be happening any time soon.
 

tebee

Member
That problem with adventuring unhydrated after defeating Ed occurs when Mafia screws up when visiting the council. Sometimes this fails , the noticeable symptom being that if you click council button in Mafia you get a blank screen, but visiting in the relay browser works. I assume this is a Mafia bug.

But because you never get to visit them and take the MacGuffin back the quest log does not get updated and so ascend assumes you are at an earlier stage in the quest and trys to re-do one of the bits you have already done.
 

tebee

Member
Next I suppose you'll be wanting me to do a bug report ?

Can I just do a feature request that Mafia developers acquire pre-cognition and mind reading skills instead?
 

fronobulax

Developer
Staff member
Next I suppose you'll be wanting me to do a bug report ?

Can I just do a feature request that Mafia developers acquire pre-cognition and mind reading skills instead?

I'm sensing a tone of voice that will not lead to pleasant things. What you described as a "mafia bug" sounded to me like the expected behavior in the presence of lag or any other network problem that prevents mafia from recognizing that a page request has been satisfied. That being the case a feature request with a feasible solution to a problem that plagues almost every networked application would be appropriate. Similarly, if you do not think your network could be implicated in any way then it probably is a legitimate Bug Report and should be treated that way.

Thank you.
 

tebee

Member
Ah Fronobulax ! - the voice of conciliation and reason as always, but 'tis not necessarily in this case. Firstly I have far too much respect for Veracity and her work to taunt her in such a low manner and secondly the remark was meant as a mild chiding to myself, as it is not really reasonable to expect the developers to fix that which I have not been prepared to spend the time to tell them about.

I'd better go and waste some more of my valuable time and write that bug report to explain why I characterize this as a bug.

Tom
 

shazbot

Member
I hit the issue with knoll.php returning a blank page when doing the screwdriver quest. I see that a few others hit it, but it looks like either the solution was a few pages past or not resolved. So I just added if (in_muscle_sign()) before the call to visit_url("knoll.php?smith"); (around line 537 in the Untinker function).

EDIT: After adjusting it and burning several adventures in the knoll, I realized that Ascend never accepted the quest from the Untinkerer. Unfortunately I already accepted it and completed it so I couldn't debug it. If no one else figures it out, I'll try to look into it next Ascension.
 
Last edited:

Theraze

Active member
It's been mentioned before, but the code to actually accept is something like this:
PHP:
 if (contains_text(visit_url("forestvillage.php?place=untinker"),"I lost my screwdriver somewhere"))
  visit_url("forestvillage.php?place=untinker&action=screwquest");

Basically, if your visit to the Untinker says "I lost my screwdriver somewhere", you need to accept the quest with action=screwquest. :)
 

fronobulax

Developer
Staff member
I supposedly fixed mafia so that if it thinks you need to untinker and have not completed the quest and asks you about it, mafia will actually accept and complete the quest if you let it. So the problem here is that ascend may undertake the quest before it is absolutely necessary and as released it doesn't accept the quest properly, correct?
 

shazbot

Member
I supposedly fixed mafia so that if it thinks you need to untinker and have not completed the quest and asks you about it, mafia will actually accept and complete the quest if you let it. So the problem here is that ascend may undertake the quest before it is absolutely necessary and as released it doesn't accept the quest properly, correct?

Correct, it attempted to do the Untinkerer quest somewhere after the tavern and before the goblin king, IIRC.
 

shazbot

Member
I'm being lazy by asking this before I go digging in deep in the code, but what does Ascend do differently than calling EatDrink straight up? Because I have my variables set to have eatdrink tweaked enough so that it will go for a high adventure drink (like a El dios de la muerte drink) for the final drink of the day, but not for the middle. Such that, if I do a simulation with 0 max food, drink, spleen and tell it to overdrink, it will drink a corpsedriver. But the last two days I missed when Ascend was wrapping up and it drank a roll in the hay for the final adventure, not a corpse* drink.
 

fronobulax

Developer
Staff member
Ascend actually calls EatDrinkWrapper which closets meat so that no matter what, EatDrink will never blow a daily budget. Look at the zlib variable ascend_EatDrinkBudget. My guess is that it is lower than you might like.

Basically the wrapper will closet all your meat but the remaining daily budget, run eatDrink, and restore the meat from the closet. Note that this means any meat EatDrink spends to build boxen or restore MP in order to cast Ode will not be used on consumables or ingredients. That would be the first thing I would look at.

Note that this is not the same as calling EatDrink directly.
 

shazbot

Member
Ascend actually calls EatDrinkWrapper which closets meat so that no matter what, EatDrink will never blow a daily budget. Look at the zlib variable ascend_EatDrinkBudget. My guess is that it is lower than you might like.

Basically the wrapper will closet all your meat but the remaining daily budget, run eatDrink, and restore the meat from the closet. Note that this means any meat EatDrink spends to build boxen or restore MP in order to cast Ode will not be used on consumables or ingredients. That would be the first thing I would look at.

Note that this is not the same as calling EatDrink directly.

Hmm... so I'm in HC so it's not an issue with buying consumables. But if it uses that ascend-EatDrinkBudget also for deciding on what drinks to consume (in terms of their value), then that could be what's throwing off my expectation. I'll dig a bit deeper around that. Thanks!
 
Top