SmartStasis -- a complex script for a simple CCS

lostcalpolydude

Developer
Staff member
80% runaways always get used. 50% runaways normally get used, but not with a parasol unless it's the last day of a run. I don't know much about HC, but it's possible that someone would make a single parasol and want to just use 100% runaways over several days (seems reasonable for a 5 day run).

so.. am i the only one having problems getting Smartstasis to w*rk anymore?

Aww, the "r" in there prevents me from turning the annoyingly-used * into a much funnier word.
 

Bale

Minion
What? Why would SS do anything when you were adventuring manually?

Because I like to hit the "script" button for non-challenging battles to save effort, particularly when I expect to insult pirates, flyer or spam attack. Saves me effort. (And my DAM can handle most fights.) I don't want to run away just because I forgot to set goals.

SS is not only for automatic adventuring. I love automatic combats for manual adventuring to save me real-life time.
 

Crowther

Active member
I doubt this will be much help, but I figured I'd add another data point onto the Saucy Salve thing. Last time there was an update, I let it replace my hacked batfactors and saucy salve returned. It didn't seem so bad a high levels. Maybe it was wasting MP, maybe that was the best way to stasis anyway, because it didn't do any damage to the monster. Then next run at low levels, I noticed my hipster fights weren't being stasis'd like they should be. Turns out SmartStasis was telling DestroyAllMonsters that Saucy Salve was the best option for statis and it wasn't worth doing. That's wrong, because there were other options more valuable (Sing, Suckerpunch, etc). I removed Saucy Salve again and hipster stasis returned to normal.
I'm burned out on this bug and really don't think that will help.
 

Aoi

New member
Hmm. I was running this in conjunction with Bumcheek Ascend earlier and it decided to Release the Boots on a still-needed Lobsterfrogman. Did I break something along the way, or is there no built-in protection against that?
 

Winterbay

Active member
SS stomps everything it can unless you have what that monster drops set as a goal, unless unless you have that type of paste as a goal as well.
I guess the Lobsterfrogman in question was acquired with a fax or an arrow and as such BCCAscend didn't have gunpowder as a goal and stomped it. An unlucky combination of events from how things are coded and probably unavoidable as it stands now.
 

zarqon

Well-known member
Sorry for my inattentiveness to my scripts lately -- I'm finding a new job and a new house at the same time, always a rather stressful experience.

@Bale: Aha. There is a 'script' button? And here I added an "Automate" button into my fight.ash, which evidently was a needless waste of scripting time! But back on point, so far you haven't voiced any objections to actual proposed logic. Do you have any?

@Crowther: Thanks for the additional info. This is on my list as well, but so far there haven't been any flashes of inspiration.

@Aoi: That sounds like a bug, unless BumcheekAscend doesn't set the barrels as goals, in which case it's expected behavior. Can you confirm whether or not the barrels were set as goals at the time?

Either way, I think it would probably be a worthwhile addition to stomping logic to avoid stomping monsters in zones which only contain one monster. I'll put that in for the next update.
 

Winterbay

Active member
BCCAscend does set the barrels as a goal, but only while on the actual beach, if you fax a lobsterfrogman it won't do that. It could, but it doesn't at the moment :)
 

Aoi

New member
BCCAscend does set the barrels as a goal, but only while on the actual beach, if you fax a lobsterfrogman it won't do that. It could, but it doesn't at the moment :)

Ding! This-- it was a Badly Romantic LFM and would therefore not have the goal set. Guess I'll just make it manual in the CCS.
 

zarqon

Well-known member
I think that may introduce a valid case for special handling in has_goal(), actually. Some things should probably be considered goals, even if you haven't set them as goals -- the barrels when you haven't yet completed the lighthouse quest is one such example, since the probability approaches 0% that anyone would fight a lobsterfrogman during the war without intending to complete that quest. Can you think of any other such examples?

We'll want to be careful about implementation here, because it's also probable that considering unspecified items as goals may screw other things up. Perhaps the special handling should only go as far up the tree as has_goal(monster), or perhaps it should only consider special handling for monsters that == last_monster(). I'll give it some thought. In the meantime, threadie feedback is always appreciated.
 

roippi

Developer
I think that may introduce a valid case for special handling in has_goal(), actually.

Definite case where special handling would be appreciated.

Other cases.. well, generally any time an arrowed monster that drops something shows up, I'd say. If there's any way to programmatically determine that a monster is an arrowed monster, that'd be cool. Otherwise things like ghosts and ASCII would be good to hardcode.
 

Bale

Minion
@Bale: Aha. There is a 'script' button? And here I added an "Automate" button into my fight.ash, which evidently was a needless waste of scripting time! But back on point, so far you haven't voiced any objections to actual proposed logic. Do you have any?

I simply dislike the whole feature and need to be able to turn it off. Because I use manual adventuring without goals -- as noted. I think it should be opt-in, not opt-out, since people can get screwed over by this if they use SS as I do.

I'll leave it to the other respondants in this thread (who would actually use this) to help you fine tune it.
 
Last edited:

zarqon

Well-known member
@Bale: I must reiterate that adventuring with no specified goals does not apply to 2/3 of the proposed logic. For "under your level" runaways -- the remaining 1/3 -- those would be controlled with a setting. Right now I'm thinking the setting will be a float, representing the percentage of your mainstat below which qualifying monsters of that ML will be auto-run-away-from. Default something like 0.2. If you set this to 1.0 it would try to use free runaways against any monster with a ML < your mainstat, and if you set it to 0 it would never use under-level runaways. All under-level free runaways would be skipped in aftercore, regardless of the setting.

@roippi: Brilliant! That's a better general-purpose solution. It's unlikely that anyone would ever want to stomp either "item monsters" (dolphins, faxes, copies, puddings, sandworms) or "wandering monsters" (holiday monsters, nemesis assassins, arrowed monsters, hipster fights). So, if either a) your location is $location[none] or 2) the monster you are facing does not normally occur in the zone, don't stomp it. Also, don't run away. That is a considerable step up in intelligence for the stomping logic. Thanks for the idea!
 

Theraze

Active member
SmartStasis keeps hanging up on this:
Run SmartStasis! (0 profit to stasis with fat stacks of cash -- low)
Profit per round: ActionProfitDamageOtherbase (0μ)0μ--
Custom action: use 821 (no stun)
Custom action: use 822 (no stun)
Custom action: use 823 (no stun)
Custom action: use 824 (no stun)
Custom action: use 825 (no stun)
Custom action: use 826 (no stun)
Custom action: use 827 (no stun)
Round 1: Theraze executes a macro!
Round 1: Theraze uses the bubbly potion!
Basically, it's trying to ID the potions in a softcore run, but can't because it isn't doing a check for if the potion has be_good first.

I just threw a be_good check on the end, and that fixed it. Like so:
if (get_property("lastBangPotion"+i) == "" && item_amount(to_item(i)) > to_int(get_property("autoPotionID") == "false") && be_good(to_item(i)))
 

Bale

Minion
@Bale: I must reiterate that adventuring with no specified goals does not apply to 2/3 of the proposed logic. For "under your level" runaways -- the remaining 1/3 -- those would be controlled with a setting. Right now I'm thinking the setting will be a float, representing the percentage of your mainstat below which qualifying monsters of that ML will be auto-run-away-from. Default something like 0.2. If you set this to 1.0 it would try to use free runaways against any monster with a ML < your mainstat, and if you set it to 0 it would never use under-level runaways. All under-level free runaways would be skipped in aftercore, regardless of the setting.

There's also the currently implemented boot stomps. Could I turn those off with a zlib setting please instead of having to comment them out?
 

Winterbay

Active member
Can anyone come up with a good idea why SS decided to spam SUCKERPUNCH for 28 rounds in this fight?
Code:
Request 1 of 219 (Lab: Cobb's Knob Laboratory) in progress...

[713]     Cobb's Knob Laboratory
Encounter: Knob Goblin Mad Scientist
Strategy:     C:\Privat\Dropbox\Mafia\ccs\PM.ccs [default]
Round 0: winterbay wins     initiative!
1 HP costs 2.286μ. ( 166 / 166 )
1     MP costs 8μ. ( 82 / 163 )
ATT: 50 (6% × 1.71, death     in 1620)
DEF: 45 (97.73% × 65.17 (13)     (3) (3)     (3) (3),     win in 360000)
HP: 35, Value: 406.39     μ
WHAM: Monster HP is 35.0.
WHAM:     Running SmartStasis
Profit per round:                             Action                          Profit                          Damage                          Other                                      base (0μ)                          0μ                          --                                                
    Round 1: winterbay executes a macro!
Round 1: winterbay tries to steal     an item!
Round 2: winterbay executes a macro!
Round 2: winterbay     casts SUCKERPUNCH!
Round 3: knob goblin mad scientist takes 1 damage.
Round     3: knob goblin mad scientist drops 1 attack power.
Round 3: knob goblin     mad scientist drops 1 defense.
Round 3: winterbay casts SUCKERPUNCH!
Round     4: knob goblin mad scientist takes 1 damage.
Round 4: knob goblin mad     scientist drops 1 attack power.
Round 4: knob goblin mad scientist     drops 1 defense.
Round 4: winterbay casts SUCKERPUNCH!
Round 5: knob     goblin mad scientist takes 1 damage.
Round 5: knob goblin mad scientist     drops 1 attack power.
Round 5: knob goblin mad scientist drops 1     defense.
Round 5: winterbay casts SUCKERPUNCH!
Round 6: knob goblin     mad scientist takes 1 damage.
Round 6: knob goblin mad scientist drops     1 attack power.
Round 6: knob goblin mad scientist drops 1 defense.
Round     6: winterbay casts SUCKERPUNCH!
Round 7: knob goblin mad scientist     takes 1 damage.
Round 7: knob goblin mad scientist drops 1 attack power.
Round     7: knob goblin mad scientist drops 1 defense.
Round 7: winterbay casts     SUCKERPUNCH!
Round 8: knob goblin mad scientist takes 1 damage.
Round     8: knob goblin mad scientist drops 1 attack power.
Round 8: knob goblin     mad scientist drops 1 defense.
Round 8: winterbay casts SUCKERPUNCH!
Round     9: knob goblin mad scientist takes 1 damage.
Round 9: knob goblin mad     scientist drops 1 attack power.
Round 9: knob goblin mad scientist     drops 1 defense.
Round 9: winterbay casts SUCKERPUNCH!
Round 10:     knob goblin mad scientist takes 1 damage.
Round 10: knob goblin mad     scientist drops 1 attack power.
Round 10: knob goblin mad scientist     drops 1 defense.
Round 10: winterbay casts SUCKERPUNCH!
Round 11:     knob goblin mad scientist takes 1 damage.
Round 11: knob goblin mad     scientist drops 1 attack power.
Round 11: knob goblin mad scientist     drops 1 defense.
Round 11: winterbay casts SUCKERPUNCH!
Round 12:     knob goblin mad scientist takes 1 damage.
Round 12: knob goblin mad     scientist drops 1 attack power.
Round 12: knob goblin mad scientist     drops 1 defense.
Round 12: winterbay casts SUCKERPUNCH!
Round 13:     knob goblin mad scientist takes 1 damage.
Round 13: knob goblin mad     scientist drops 1 attack power.
Round 13: knob goblin mad scientist     drops 1 defense.
Round 13: winterbay casts SUCKERPUNCH!
Round 14:     knob goblin mad scientist takes 1 damage.
Round 14: knob goblin mad     scientist drops 1 attack power.
Round 14: knob goblin mad scientist     drops 1 defense.
Round 14: winterbay casts SUCKERPUNCH!
Round 15:     knob goblin mad scientist takes 1 damage.
Round 15: knob goblin mad     scientist drops 1 attack power.
Round 15: knob goblin mad scientist     drops 1 defense.
Round 15: winterbay casts SUCKERPUNCH!
Round 16:     knob goblin mad scientist takes 1 damage.
Round 16: knob goblin mad     scientist drops 1 attack power.
Round 16: knob goblin mad scientist     drops 1 defense.
Round 16: winterbay casts SUCKERPUNCH!
Round 17:     knob goblin mad scientist takes 1 damage.
Round 17: knob goblin mad     scientist drops 1 attack power.
Round 17: knob goblin mad scientist     drops 1 defense.
Round 17: winterbay casts SUCKERPUNCH!
Round 18:     knob goblin mad scientist takes 1 damage.
Round 18: knob goblin mad     scientist drops 1 attack power.
Round 18: knob goblin mad scientist     drops 1 defense.
Round 18: winterbay casts SUCKERPUNCH!
Round 19:     knob goblin mad scientist takes 1 damage.
Round 19: knob goblin mad     scientist drops 1 attack power.
Round 19: knob goblin mad scientist     drops 1 defense.
Round 19: winterbay casts SUCKERPUNCH!
Round 20:     knob goblin mad scientist takes 1 damage.
Round 20: knob goblin mad     scientist drops 1 attack power.
Round 20: knob goblin mad scientist     drops 1 defense.
Round 20: winterbay casts SUCKERPUNCH!
Round 21:     knob goblin mad scientist takes 1 damage.
Round 21: knob goblin mad     scientist drops 1 attack power.
Round 21: knob goblin mad scientist     drops 1 defense.
Round 21: winterbay casts SUCKERPUNCH!
Round 22:     knob goblin mad scientist takes 1 damage.
Round 22: knob goblin mad     scientist drops 1 attack power.
Round 22: knob goblin mad scientist     drops 1 defense.
Round 22: winterbay casts SUCKERPUNCH!
Round 23:     knob goblin mad scientist takes 1 damage.
Round 23: knob goblin mad     scientist drops 1 attack power.
Round 23: knob goblin mad scientist     drops 1 defense.
Round 23: winterbay casts SUCKERPUNCH!
Round 24:     knob goblin mad scientist takes 1 damage.
Round 24: knob goblin mad     scientist drops 1 attack power.
Round 24: knob goblin mad scientist     drops 1 defense.
Round 24: winterbay casts SUCKERPUNCH!
Round 25:     knob goblin mad scientist takes 1 damage.
Round 25: knob goblin mad     scientist drops 1 attack power.
Round 25: knob goblin mad scientist     drops 1 defense.
Round 25: winterbay casts SUCKERPUNCH!
Round 26:     knob goblin mad scientist takes 1 damage.
Round 26: knob goblin mad     scientist drops 1 attack power.
Round 26: knob goblin mad scientist     drops 1 defense.
Round 26: winterbay casts SUCKERPUNCH!
Round 27:     knob goblin mad scientist takes 1 damage.
Round 27: knob goblin mad     scientist drops 1 attack power.
Round 27: knob goblin mad scientist     drops 1 defense.
Round 27: winterbay casts SUCKERPUNCH!
Round 28:     knob goblin mad scientist takes 1 damage.
Round 28: knob goblin mad     scientist drops 1 attack power.
Round 28: knob goblin mad scientist     drops 1 defense.
WHAM: Starting evaluation and     performing of attack
WHAM: You won't kill     the monster before 30 rounds with your basic attack.
WHAM:     The monster will take more than 30 rounds to kill you.
WHAM:     We are going to 1-shot with Stream of Sauce.
Round 28: winterbay     executes a macro!
KoLmafia thinks it is round 29 but KoL thinks it is     round 28
WHAM: Current monster HP is calculated to     9.0
You're on your own, partner.
Click     here to continue in the relay browser.

Execution aborted due to 28 > 25 which is where I've currently set WHAM to abort back to manual control. My setup was:

Code:
> status

Name: winterbay
Class:     Disco Bandit

Lv: 11
HP: 166 / 166
MP: 87 / 163

Mus:     105 (69), tnp = 107
Mys: 95 (69), tnp = 6
Mox: 169 (110), tnp = 53

Advs:     218
Meat: 19,340
Drunk: 19

> effects

3     of 3 AT buffs active.
Butt-Rock Hair (5)
Smooth Movements (9)
♫     The Sonata of Sneakiness (9)
♫ Fat Leon's Phat Loot Lyric (59)
Leash     of Linguini (69)
Everything Looks Yellow (141)
Disco State of Mind     (798)
♫ The Moxious Madrigal (803)

>     wear

Hat: double-ice cap
Weapon: ocarina of space
Off-hand:     (none)
Shirt: astral shirt
Pants: black greaves

Acc. 1:     pirate fledges
Acc. 2: badass belt (2)
Acc. 3: Talisman o' Nam

Pet:     Li'l Xenomorph (21 lbs)
Item: (none)

Edit: The good news is it's repeatable under those circumstances so here's a new combat with verbosity at 9:
Code:
Request 1 of 2 (Lab: Cobb's Knob Laboratory) in progress...

[726] Cobb's Knob Laboratory
Encounter: Knob Goblin Mad Scientist
Strategy: C:\Privat\Dropbox\Mafia\ccs\PM.ccs [default]
Round 0: winterbay wins initiative!
Running ZLib version: r34 (current)
1 HP costs 2.286μ. ( 159 / 166 )
1 MP costs 8μ. ( 121 / 164 )
Running BatBrain version: 1.16 (current)
Running SmartStasis version: 3.11 (current)
Running WHAM version: 1.4 (current)
We currently think that the round number is: 0
Knob Goblin love potion (10.0 @ +50.0): 85μ * 15.0% = 12.75
Knob Goblin seltzer (15.0 @ +50.0): 50μ * 22.5% = 11.25
Knob Goblin steroids (10.0 @ +50.0): 125μ * 15.0% = 18.75
Value of stat gain: 303.64μ
Knob Goblin love potion (10.0 @ +50.0): 85μ * 15.0% = 12.75
Knob Goblin seltzer (15.0 @ +50.0): 50μ * 22.5% = 11.25
Knob Goblin steroids (10.0 @ +50.0): 125μ * 15.0% = 18.75
Value of stat gain: 303.64μ
ATT: 50 (6% × 1.71, death in 1552)
DEF: 45 (97.73% × 65.17 (13) (3) (3) (3) (3), win in 360000)
HP: 35, Value: 406.39 μ
Parsed round number: 1
Building options...
Options built! (42 actions)
We currently think that the round number is: 1
WHAM: You are fighting a Knob Goblin Mad Scientist. Mafia considers that this monster has an attack of 50 or 50 when given a monster name.
WHAM: Mafia further considers that this monster has a defense value of 45 or 45 when given a monster name.
WHAM: Mafia further further considers that this monster has a HP value of 35 or 35 when given a monster name.
WHAM: Your current ML-adjustment is: 10.
WHAM: Setting up variables via BatBrain
WHAM: Monster HP is 35.0.
WHAM: Running SmartStasis
SmartStasis starting.
Profit per round: ActionProfitDamageOtherbase (0μ)0μ--
Building custom actions...
Queued: pickpocket
Building options...
Options built! (42 actions)
Custom actions built! (0 actions)
Executing macro: scrollwhendone; sub batround; if haseffect 8 || haseffect 264 || haseffect 282 || haseffect 283 || haseffect 284; abort "BatBrain abort: poisoned"; endif; endsub; pickpocket; call batround; if hpbelow 3; abort "BatBrain abort: Danger, Will Robinson"; endif; 
Round 1: winterbay executes a macro!
Round 1: winterbay tries to steal an item!
You acquire an item: Knob Goblin love potion
Happened: pickpocket
Parsed round number: 2
You snatched a Knob Goblin love potion (85μ)!
Knob Goblin seltzer (15.0 @ +50.0): 50μ * 22.5% = 11.25
Knob Goblin steroids (10.0 @ +50.0): 125μ * 15.0% = 18.75
Value of stat gain: 303.64μ
Revised monster value: 393.64
Happened: stolen
Building options...
Options built! (42 actions)
Stasis action chosen: skill 5021
Knob Goblin seltzer (15.0 @ +50.0): 50μ * 22.5% = 11.25
Knob Goblin steroids (10.0 @ +50.0): 125μ * 15.0% = 18.75
Value of stat gain: 303.64μ
Attack action chosen: attack
Top of the stasis loop.
Queued: skill 5021
Building options...
Options built! (42 actions)
Executing macro: scrollwhendone; sub batround; if haseffect 8 || haseffect 264 || haseffect 282 || haseffect 283 || haseffect 284; abort "BatBrain abort: poisoned"; endif; endsub; sub batsub1; skill 5021; call batround; endsub; call batsub1; repeat hasskill 5021 && (!hpbelow 159.0 && hpbelow 166 && !mpbelow 121.0 && !pastround 27); if hpbelow 3; abort "BatBrain abort: Danger, Will Robinson"; endif; 
Round 2: winterbay executes a macro!
Round 2: winterbay casts SUCKERPUNCH!
Round 3: knob goblin mad scientist takes 1 damage.
Round 3: knob goblin mad scientist drops 1 attack power.
Round 3: knob goblin mad scientist drops 1 defense.
Round 3: winterbay casts SUCKERPUNCH!
Round 4: knob goblin mad scientist takes 1 damage.
Round 4: knob goblin mad scientist drops 1 attack power.
Round 4: knob goblin mad scientist drops 1 defense.
Round 4: winterbay casts SUCKERPUNCH!
Round 5: knob goblin mad scientist takes 1 damage.
Round 5: knob goblin mad scientist drops 1 attack power.
Round 5: knob goblin mad scientist drops 1 defense.
Round 5: winterbay casts SUCKERPUNCH!
Round 6: knob goblin mad scientist takes 1 damage.
Round 6: knob goblin mad scientist drops 1 attack power.
Round 6: knob goblin mad scientist drops 1 defense.
Round 6: winterbay casts SUCKERPUNCH!
Round 7: knob goblin mad scientist takes 1 damage.
Round 7: knob goblin mad scientist drops 1 attack power.
Round 7: knob goblin mad scientist drops 1 defense.
Round 7: winterbay casts SUCKERPUNCH!
Round 8: knob goblin mad scientist takes 1 damage.
Round 8: knob goblin mad scientist drops 1 attack power.
Round 8: knob goblin mad scientist drops 1 defense.
Round 8: winterbay casts SUCKERPUNCH!
Round 9: knob goblin mad scientist takes 1 damage.
Round 9: knob goblin mad scientist drops 1 attack power.
Round 9: knob goblin mad scientist drops 1 defense.
Round 9: knob goblin mad scientist takes 15 damage.
You lose 2 hit points
Running ZLib version: r34 (current)
Running Character Info Toolbox version: 0.6
Happened: skill 5021
Happened: skill 5021
Happened: skill 5021
Happened: skill 5021
Happened: skill 5021
Happened: skill 5021
Happened: skill 5021
Parsed round number: 9
Building options...
Options built! (42 actions)
Stasis action chosen: skill 4014
Knob Goblin seltzer (15.0 @ +50.0): 50μ * 22.5% = 11.25
Knob Goblin steroids (10.0 @ +50.0): 125μ * 15.0% = 18.75
Value of stat gain: 303.64μ
Attack action chosen: attack
This monster is not your huckleberry.
Stasis loop complete.
This monster is not your huckleberry.
SmartStasis complete.
WHAM: Running SmartStasis took 7.313 seconds.
We currently think that the round number is: 9
WHAM: Starting evaluation and performing of attack
We currently think that the round number is: 9
WHAM: You will kill the monster in 2 rounds with your basic attack.
WHAM: The monster will take more than 30 rounds to kill you.
rounds_to_kill: 2, round_limit: 21, maxround: 30, die_rounds(): 21890, hitchance("attack"): 0.97727275
WHAM: Expected received damage per round: 0.07175144, Rounds to kill: 2, Expected damage: 13.0, Hit chance: 1.0
WHAM: Monster is weak. We are just going to bash its head in. It'll take 2 rounds.
Queued: attack
Building options...
Options built! (42 actions)
Executing macro: scrollwhendone; sub batround; if haseffect 8 || haseffect 264 || haseffect 282 || haseffect 283 || haseffect 284; abort "BatBrain abort: poisoned"; endif; endsub; sub batsub1; attack; call batround; endsub; call batsub1; repeat ; if hpbelow 3; abort "BatBrain abort: Danger, Will Robinson"; endif; 
Round 9: winterbay executes a macro!
Round 9: winterbay attacks!
Round 10: knob goblin mad scientist takes 93 damage.
Round 10: winterbay wins the fight!
You gain 63 Meat
After Battle: Grot smiles on the inside. Unlike all other life-forms, it's doing it literally, with its second set of jaws.
You gain 8 Fortitude
You gain 7 Enchantedness
You gain 9 Sarcasm
Running ZLib version: r34 (current)
Running Character Info Toolbox version: 0.6
Happened: attack
Parsed round number: 0
End of combat detected!
WHAM: Evaluating the attack and performing it took 9.172 seconds.
We currently think that the round number is: 31
 
Last edited:

Frosttfire

New member
i get an error off of this line and i cant figure out what to do :(
if (my_class() == $class[disco bandit] && have_equipped($item[bling of the new wave])) enqueue(to_event("pickpocket",to_spread(0,"physical"),""),"!match \"You acquire an item\" && !times 2");
 

Donavin69

Member
Several times today, I haven't seen it before, I have had an issue where DAM would call SS, and SS would report that it should use Intimidating Bellow, and then not do it:
PHP:
Run SmartStasis! (417 profit to stasis with Intimidating Bellow -- good enough)
DestroyAllMonsters starts now! (0mp option Mighty Axing -- killrounds: 2, dierounds: 2)

With Verbosity = 8:
PHP:
[734] Giant's Castle
Encounter: Raver Giant
Strategy: C:\KOLMafia\ccs\default.ccs [default]
Round 0: pawn69 wins initiative!
Running ZLib version: r34 (current)
1 HP costs 11.333μ. ( 144 / 288 )
1 MP costs 17μ. ( 60 / 75 )
Running BatBrain version: 1.18 (current)
Running SmartStasis version: 3.12 (current)
Running Destroy All Monsters version: 0.3.3.4 (current)
Angry Farmer candy (30.0 @ +75.874825): 137μ * 52.762447% = 72.28455
giant needle (30.0 @ +75.874825): 165μ * 52.762447% = 87.05804
Mick's IcyVapoHotness Rub (30.0 @ +75.874825): 141μ * 52.762447% = 74.39505
rave whistle (5.0 @ +75.874825): 220μ * 8.793741% = 19.34623
Value of stat gain: 371.88μ
Angry Farmer candy (30.0 @ +75.874825): 137μ * 52.762447% = 72.28455
giant needle (30.0 @ +75.874825): 165μ * 52.762447% = 87.05804
Mick's IcyVapoHotness Rub (30.0 @ +75.874825): 141μ * 52.762447% = 74.39505
rave whistle (5.0 @ +75.874825): 220μ * 8.793741% = 19.34623
Value of stat gain: 371.88μ
ATT: 140 (94% × 72.29, death in 3)
DEF: 126 (95.45% × 132.42, win in 1550000)
HP: 150, Value: 804.96 μ
Parsed round number: 1
Stasis action chosen: skill 11011 (profit: 401.82)
Run SmartStasis! (401 profit to stasis with Intimidating Bellow -- good enough)
Profit per round: ActionProfitDamageOtherbase (0μ)0μ--
Stasis action chosen: skill 11011 (profit: 401.82)
DestroyAllMonsters starts now! (0mp option Mighty Axing -- killrounds: 2, dierounds: 3)
Destroy with: Mighty Axing
Queued: skill 11000
Destroy with: Mighty Axing
Queued: skill 11000
skill 11000; call batround; if hpbelow 74; abort "BatBrain abort: Danger, Will Robinson"; endif;
skill 11000; call batround; if hpbelow 74; abort "BatBrain abort: Danger, Will Robinson"; endif;
Executing macro: scrollwhendone; sub batround; if haseffect 8 || haseffect 264 || haseffect 282 || haseffect 283 || haseffect 284; abort "BatBrain abort: poisoned"; endif; endsub; skill 11000; call batround; if hpbelow 74; abort "BatBrain abort: Danger, Will Robinson"; endif; skill 11000; call batround; if hpbelow 74; abort "BatBrain abort: Danger, Will Robinson"; endif; 
Round 1: pawn69 executes a macro!
Round 1: pawn69 casts MIGHTY AXING!
Round 2: raver giant takes 113 damage.
You lose 77 hit points
Happened: skill 11000
Parsed round number: 2
Unable to enqueue empty action.
You're on your own, partner.
 
Is there anyway to get SS to just try to identify one !potion/sphere per combat please? Make it stop doing this..
Code:
Run SmartStasis! (310 profit to stasis with Intimidating Bellow -- good enough)
Round 1: weatherboy executes a macro!
Round 1: weatherboy uses the milky potion!
Round 2: guy with a pitchfork, and his wife takes 15 damage.
You lose 51 hit points
Round 2: weatherboy uses the bubbly potion!
Round 3: weatherboy uses the cloudy potion!
You lose 52 hit points
DestroyAllMonsters starts now! (0mp option Mighty Axing -- killrounds: 2, dierounds: 1)

If SS had taken just one round to id one !potion rather than three rounds, I'd have survived the combat. It also would have been nice if SS had cast Bellow before doing the throws as well like it said it should.
 
Top