SmartStasis -- a complex script for a simple CCS

Winterbay

Active member
Another oddity...why cast blend when we're going to banish?
EDIT: I can see a reason...if jiggles are not tracked right and the script isn't sure if the banish will work, blend, jiggle then killing spells would be a good idea.

The reason is mainly in SmartStasis and the fact that the "jiggle"-command is ambiguous. It can mean so many things so when enqueue_custom gets called and sees "jiggle" it does not know, and probably cannot without checking against what staff you have and what that effect will be, what will happen and so it assumes you need to stun first if you will get hit heavily should you get hit.
 
That makes sense...what about the AoJ attack issue, like this?

Code:
Round 0: chef_rannos wins initiative!
You have the latest batfactors.txt. Will not check again today.
Checking for updates (running BatBrain ver. 1.31.1)...
The string "/\/\^v^/\/\" is not an integer; returning 0 (zlib.ash, line 181)
The string "/\/\^v^/\/\" is not an integer; returning 0 (zlib.ash, line 182)
Running BatBrain version: 1.31.1 (current)
Checking for updates (running SmartStasis ver. 3.18)...
Running SmartStasis version: 3.18 (current)
Checking for updates (running WHAM ver. 5.1)...
Running WHAM version: 5.1 (current)
You have the latest pluralMonsters.txt. Will not check again today.
ATT: 53 (6% × 0.77, death in 109)
DEF: 51 (95.45% × 57.18, win in 1)
HP: 49.35, Value: 496.51 μ, RES: 0
WHAM: Monster HP is 49.35.
WHAM: Running SmartStasis
Profit per round: ActionProfitDamageOtherbase (0μ)0μ--
WHAM: Starting evaluation and performing of attack
WHAM: We are going to 1-shot with attack with your weapon.
Round 1: chef_rannos executes a macro!
Round 1: chef_rannos attacks!
WHAM: Current monster HP is calculated to 49.35
WHAM: Starting evaluation and performing of attack
WHAM: We are going to 1-shot with attack with your weapon.
Round 2: chef_rannos executes a macro!
Round 2: chef_rannos attacks!
WHAM: Current monster HP is calculated to 49.35
WHAM: Starting evaluation and performing of attack
WHAM: We are going to 1-shot with attack with your weapon.
Round 3: chef_rannos executes a macro!
Round 3: chef_rannos attacks!
WHAM: Current monster HP is calculated to 49.35
WHAM: Starting evaluation and performing of attack
WHAM: We are going to 1-shot with attack with your weapon.
Round 4: chef_rannos executes a macro!
Round 4: chef_rannos attacks!

Etc. until it finally stops at round 29...and I one shot with freeze for 160. :D

Is there a way I can just disable attack completely? I have almost every skill permed so it's not like there isn't some other way to easily kill stuff (aftercore WHAM usually uses candyblast, for example). ;)
 

zarqon

Well-known member
3.19 Update

1. Keeping up with the Joneses (evaluated at Joneses = KoL and mafia devs).

  • The Darkness has lost its article.
  • Phyla have been reclassified; also Pluto isn't a planet anymore.
2. Understanding the end times.

  • Set the endscombat flag for appropriate custom actions.
  • Sort the custom actions list so that combat-ending actions are last.
  • Don't bother to stun before combat enders.
  • Don't waste MP and rounds on +items combos when you're going to yellow ray anyway.
3. Better understanding of our insect friends.

  • Summon mayflies to assist in getting fruit goals from fruit golems.
  • Summon mayflies for free pixels towards your digital key.
  • Summon mayflies vs. a bean counter to save a turn fighting a beanbat.
  • Summon mayflies vs. killer bees and whiny pirates for a free runaway when your location has goals but they don't.
Please to enjoy.

@Chef_Rannos: The issue with stunning before banishing ought to disappear with this update. As for the attack issue, since the blacklist was implemented, I have never once had my script use attack in AoJ, and it's not present in my actions table in BatMan RE, so I'm not sure where that error is coming from. Does "Attack with weapon" appear in your actions table in BatMan RE? Hopefully updating everything will magically solve the issue.
 

fxer

Member
I upgraded batbrain/smartstatis but I'm still having problems with yellow beams firing before using putty. If the yellow beam appears on round 2, it fires immediately. If it appears on round 3, then the putty will be used first, on round 2. Wasn't the latest update supposed to push off yellow beaming?

Code:
[180629] Spooky Putty Monster
Encounter: clod hopper
Round 0: fxer wins initiative!
 > Auto-funk: merging 'use 3665' and 'use 185'.
Round 1: fxer executes a macro!
Round 1: fxer tries to steal an item!
Round 2: Morty's yellow eye glares at some nearby car keys. They vanish without a trace. I knew it!
Round 2: fxer casts POINT AT YOUR OPPONENT!
Round 3: Morty swings his eyestalk around and unleashes a massive ray of yellow energy, completely disintegrating your opponent.
You acquire an effect: Everything Looks Yellow (duration: 100 Adventures)
Round 3: fxer wins the fight!
You acquire an item: floaty sand
You acquire an item: floaty sand
You acquire an item: floaty sand
You gain 13 Muscleboundness
You gain 6 Mysteriousness
You gain 14 Chutzpah
 

zarqon

Well-known member
Sorry, that change hasn't been fully implemented yet. BatBrain still yellow rays whenever the yellow eye comes up. But it is at the top of the TODO list.
 

Bale

Minion
SS is failing to properly insult pirates in my current BIG! ascension. A glance reveals a likely cause right here:

Code:
  // insults
   if (my_location().zone == "Island" && have_item($item[pirate fledges]) == 0 &&
       m.phylum == $phylum[pirate] && [COLOR="#FF0000"]monster_attack(m) - monster_level_adjustment() < 100[/COLOR])

Since monster attack is 150 points higher than normal, it isn't unlikely for the value to be over 100. Why was that limitation put into the code? Removing that bit fixed the problem, but I'm very hesitant to mess with something I do not understand.
 

Theraze

Active member
My guess on that was that it was meant to avoid the pirates if you were massively over-ML-ing them. Guessing it was a safety check so players don't end up dead, but... should be safe to remove.
 

zarqon

Well-known member
It was a quick way to filter out pirates from the F'c'le / Poop Deck / Belowdecks, since they all have an attack over 100. Removing the check would mean that you would needlessly insult pirates in the F'c'le before getting your fledges, which is undesirable but otherwise harmless.

There's probably a better solution using the (relatively) recent questM12Pirate property. Does this setting do what I think it does? If someone can tell me what the values of this setting are and when they change, we might be able to have a perfect fix quickly. In particular, I'm looking for a way to check that the F'c'le has been unlocked. Otherwise, it'll have to wait until I get there in my next run.
 

zarqon

Well-known member
That's what the script originally did, which failed when wandering monsters were introduced, so it was changed. However, with the later introduction of phyla that has gone back to being a decent solution. The ideal solution, however, would be to insult any pirates in any zone until you are done with insults, which may be possible depending on what that property contains mid-quest. For example, if someone were faxing in pirate early for some reason, it would be handy if they could also insult that pirate. The location would be $location[none] in that case. Checking location would also fail for attracted pirates who show up in other zones.
 

Theraze

Active member
How about using get_monsters($location[barrrney's barrr]) contains last_monster()? Then you can just check if the pirate is one of the barr pirates...
 

Magus_Prime

Well-known member
Correct me if I'm wrong but wouldn't that check fail if you were adventuring in the Pirate Cove while not in disguise? I can see circumstances where that would happen.
 

Bale

Minion
There's probably a better solution using the (relatively) recent questM12Pirate property. Does this setting do what I think it does? If someone can tell me what the values of this setting are and when they change, we might be able to have a perfect fix quickly. In particular, I'm looking for a way to check that the F'c'le has been unlocked. Otherwise, it'll have to wait until I get there in my next run.

The F'c'le has been unlocked if $strings[step5, finished] contains get_property("questM12Pirate")

unstarted, started, and step1 to step4 indicate that insulting pirates might be warranted.
 
Last edited:

Theraze

Active member
Magus, was that directed at me? No then. If not in disguise, you're adventuring in $location[pirate cove] which is completely different from $location[barrrney's barrr]. Since we're checking for drunk pirates, we only hit the T pirates, not the S pirates.
 

lostcalpolydude

Developer
Staff member
You can get insults while picking up the pirate outfit. It's probably never a good idea to have the insult book then, but if you have it you should use it.
 

Theraze

Active member
So, can we just check the phylum of last_monster() then? And since mafia has a property for how many insults are known, we can stop at 6/7/8/user-defined-variable.
 

Bale

Minion
That's less useful. It is better that it stops looking for insults once the Poop Deck has been unlocked. That saves me the trouble of having to actually define the setting. Better functionality. questM12Pirate is optimal.
 

zarqon

Well-known member
Excellent, thanks Bale. We can now reduce all the checks to (m.phylum == $phylum[pirate] && !($strings[step5, finished] contains get_property("questM12Pirate")), for a significant improvement over the old code.
 
Top