PDA

View Full Version : Spam attack and save servers



zarqon
11-05-2010, 08:39 PM
I think a common case in CCS's is


1: consult script.ash
2: attack

Due to the "consult" in the first line, mafia is unable to auto-macrofy, even if the consult script does nothing. So, for these cases, I recommend changing that to


1: consult script.ash
2: consult spamattack.ash

It's the simplest thing ever -- it simply submits a macro that spams attack over and over. But it definitely speeds things along and is therefore an improvement over the previous!

Just thought I'd share this in the interest of saving server hits.

StDoodle
11-05-2010, 09:13 PM
Why not just include the macro in the initial consult script? ;)

Rinn
11-05-2010, 11:50 PM
Mafia should be able to figure out if the remaining commands in a ccs don't contain a script, and just send a macro for them at that point.

zarqon
11-06-2010, 08:47 AM
My consult scripts at least are modular -- one handles initial actions, another handles stasis if it's appropriate. If I made FTF send this macro afterwards I'm fairly sure there would be a spate of enraged comments.

Rinn: agreed, that would be a nice feature.

Bale
11-06-2010, 08:50 AM
buffer spamact(string whattodo) {
return visit_url("fight.php?action=macro&macrotext=mark mafiafinal\n"+whattodo+"\ngoto mafiafinal");
}

Minor criticism. To improve legibility and shorten the script by two characters, you can end a line in a macro with a semi-colon. Like this:


buffer spamact(string whattodo) {
return visit_url("fight.php?action=macro&macrotext=mark mafiafinal;"+whattodo+";goto mafiafinal");
}

zarqon
11-06-2010, 09:22 AM
Haha, I just ganked the macro code straight from mafia's output when it auto-macrofies. I still haven't actually done more than peruse KoL's macro documentation. Thanks for chipping in. :)

Fluxxdog
11-06-2010, 11:43 AM
I take it this is part of your work on your consult script suite? Already using it and it's working wonderfully ^^

Theraze
11-06-2010, 06:42 PM
Yeah, used this last night and it was significantly faster on the weapon attacks. Thanks! :)

Winterbay
11-30-2010, 07:57 AM
I just rememeberd this thread and boy does it make some things faster. Thanks :)

Winterbay
04-13-2011, 12:11 PM
I've poked around a bit in my version of this and made it cast spells if you are a myst class. It generates a macro of up to 7 spells (entangling noodles, 5 dynamically generated spells followed by spaghetti spear or salsaballs depending on class) and executes that. It also makes sure that you have enough MP when you start casting for the planned spells. It does not take advantage of sauce synergy and the handling of elemental spell bonuses could be better, but since unless you tune your spells they are randomly choosen it's a bit more work than I have time for atm to fix.

xKiv
04-13-2011, 04:15 PM
but since unless you tune your spells they are randomly choosen

At least pasta spells are never randomly the wrong element (unless the only correct element is physical, iirc).
And sauce spells don't tune with flavour anyway.

shazbot
05-04-2011, 02:53 PM
@Winterbay Whenever I run your spamattack as run_combat, I get the following

Expected ), found , (spamattack.ash, line 132)

Which leads me to wonder if it's actually working (I don't see any combat messages, but that may be an effect of running server side macros).

Theraze
05-04-2011, 03:02 PM
shazbot, he's moved WAY on from that point. :) I'd suggest either using Winterbay's version from http://kolmafia.us/showthread.php?6445-BatBrain-a-central-nervous-system-for-consult-scripts&p=49275&viewfull=1#post49275 or if you want to try an alternative, Bale's version from http://kolmafia.us/showthread.php?6445-BatBrain-a-central-nervous-system-for-consult-scripts&p=49411&viewfull=1#post49411 as either of those should be significantly better than the one you're trying to use.

Winterbay
05-04-2011, 03:31 PM
@Winterbay Whenever I run your spamattack as run_combat, I get the following

Expected ), found , (spamattack.ash, line 132)

Which leads me to wonder if it's actually working (I don't see any combat messages, but that may be an effect of running server side macros).

As Theraze said I've made some improvements to it since then. This is the current version and requires BatBrain to work. I should take a look at the new functions in batbrain as well but won't have time for a week or so, but this one seems to be working just fine at least, I've been running it myself for the last ascencion.

Theraze
06-09-2011, 07:40 PM
Has there been any work on tweaking this? I've been playing with my own copy today to try to make it consider all of my skills, and it seems to be working, but if there's better out there... I have tweaked my will_attack to both consider how many rounds at left (30-initround) as well as trying to make it consider hitchance, which is why it decided to 3-hit them in the following quote, where it decided to 3-hit a bee. And succeeded in its goal.
[1794] Haunted Gallery
Encounter: Queen Bee
Strategy: ccs\default.ccs [default]
Round 0: Theraze wins initiative!
Monster value: 312.5
You will die in 8 rounds.
Your attack will kill the monster in 3 rounds.
Profit per round: Action Profit Damage Other base; Cuddlefish (0µ) 0µ -- 33.75% stun chance
SpamAttack: Monster HP is 134.0
SpamAttack: We are going to 3-shot with Lunging Thrust-Smack, Lunging Thrust-Smack and Clobber.
Round 1: Theraze executes a macro!
Round 1: Theraze casts LUNGING THRUST-SMACK!
Round 2: queen bee takes 50 damage.
Round 2: queen bee takes 2 damage.
You gain 4 hit points
Round 2: Grorg gives your opponent a biiiiiig hug, preventing her from attacking you.
Round 2: Theraze casts LUNGING THRUST-SMACK!
Round 3: queen bee takes 68 damage.
Round 3: queen bee takes 3 damage.
You gain 6 hit points
Round 3: queen bee takes 2 damage.
You lose 44 hit points
Round 3: Theraze casts CLOBBER!
Round 4: queen bee takes 10 damage.
Round 4: Theraze wins the fight!
You gain 17 Strongness
You gain 5 Wizardliness
You gain 10 Chutzpah

I did initially have to comment out sub_hp_restore because it errors out if you don't have any restore options, but think it's fixed up. This is still a work in progress, but... happy to implement any good tweaks to make it more flexible.

Winterbay
06-10-2011, 07:51 AM
My current version - attached - (which still doesn't do anything useful for muscle or moxie classes or even take their skills into account) is working very nicely. The latest improvement was to make sure that if it there is a cheaper way of killing the monster then it does that (I mean just becasue I can one shot the monster with a saucegeyser at level 3 doesn't mean that it's a good idea when 5 salsaballs does the trick...).

It also still isn't using the full predictive abilities of batbrain but it's moving closer to that...

Edit: Also, yeah the restore sub is wonky and in the attached version it doesn't really do anything even though the code is there. I might take a look at yours to see what it does :)

Theraze
06-10-2011, 01:48 PM
Just a quick note... it still has legacy Bees Hate You code. You can probably save a bunch of meat by removing that. Unless you really love overkilling, in which case it's fine. :D

Winterbay
06-10-2011, 02:03 PM
I just ran into a bee that batbrain considered to have a HP of 175. At level 2. Somehow its HP got set to 5 with my ML set to 5 which lead Batbrain to see "monster_hp() == monster_level_adjustment()" and adding 170. Setting ML to 0 after the fight gave a HP of 2 and resetting it to 5 gave a HP of 6 so I have no idea how that happened...

Theraze
06-10-2011, 02:59 PM
It's the part in BatBrain where it does this sort of thing:
if (m == $monster[none] || monster_attack(m) == 0 || monster_attack(m) == monster_level_adjustment())
If attack/defense/hp is ever set to the same as MCD, it decides that it must be because it's unknown, not because it's a scaling mob or whatever else might be causing it. Attack of 0 or attack of MCD, both mean the monster is unknown.

Problem is that defense should be calculated at ceil(MCD*.9) and hp should be done as ceil(MCD*.75) as the unknowns, since those are the standard modifications... That being said, I believe in the case of truly unknown monsters, the stats stay at 0 despite MCD. As is evidenced here:
> current_mcd

Returned: 10

> monster_attack dirty old

Returned: 0 Guess I should report that as a BatBrain bug for next update, eh? Though I should test it in battle as well as outside...

Yep, swarm of ghuol whelps:
> current_mcd

Returned: 10

> monster_attack

Returned: 0

Winterbay
06-10-2011, 03:22 PM
Yes, I know the reason. The interesting thing is that despite that the monster should have (according to Mafia when prompted outside of battle) 2 and 6 HP at 0 and 5 MCD respectively it said 5 in battle which is odd.
But yes, since unkowns are now set to 0 and doesn't scale with ML we can (hopefully) safely assume that everything that isn't spaded will stay at 0 and remove that second check.

Theraze
06-10-2011, 03:47 PM
Might be ceil/floor rounding fun or something similar. But yeah, should be able to remove those checks now, simplify things a bit.

Only skills I'm having issues with on my testing with the SpamAttack is the turtle combos... If it's going to do 3 headbutts and a toss, it's easier/safer to just do a single full combo and finish it like that. Among other things, because combining shieldbutt into the combo means it's not going to miss, which is good for the top tier bees when you're a muscle class. :) The problem is that the combos aren't directly skills, per se... Need to see if I can figure out a good way to parse the entire skill-options list in SpamAttack directly. Might be able to just mangle the get_action slightly... Hmm...

Winterbay
06-10-2011, 04:00 PM
They aren't? They are listed in batfactors with skill-IDs at least...


skill 2003 Headbutt {0.1,0.15,0.2}*helmetpower physical regular
skill 2005 Shieldbutt {0.1,0.15,0.2}*shieldpower physical att -5, regular
skill 2015 Kneebutt {0.1,0.15,0.2}*pantspower physical stun 0.45, regular
skill 2103 Head + Knee Combo {0.1,0.15,0.2}*(helmetpower+pantspower) physical stun 0.45, regular
skill 2105 Head + Shield Combo {0.1,0.15,0.2}*(helmetpower+shieldpower) physical att -5, regular
skill 2106 Knee + Shield Combo {0.1,0.15,0.2}*(pantspower+shieldpower) physical stun 0.45, att -5, regular
skill 2107 Head + Knee + Shield Combo 0.15*(helmetpower+pantspower+shieldpower) physical stun 0.45, att -5, regular

Theraze
06-10-2011, 04:17 PM
Well, they weren't being picked. Possibly because it wasn't considering hit chance, but... eh.

I've tweaked how my system works now though... it only goes through your actual options instead of parsing all possible skills. Most awesome recent fight, against a Queen Bee.
SpamAttack: We are going to 5-shot with Offensive Joke, Lunging Thrust-Smack, Lunging Thrust-Smack, Lunging Thrust-Smack and Clobber. Clobber wasn't actually needed because the third LTS killed it, but... sweet success. :) I'm using the following to parse combat skills:
foreach i,opt in opts
if (contains_text(opt.id,"skill "))
allmyskills[count(allmyskills)] = to_skill(to_int(excise(opt.id,"skill ","")));


Reuploading. This is a modified version of the one you posted ~9 hours ago that should be more class-agnostic.

Winterbay
06-10-2011, 05:06 PM
Man that generated a lot of options... Even with my limited skillset I got 4723 possible combinations :)
In my latest battle against a bat it decided that number 4721 was the correct one (3 salsaballs) which I would agree was the correct choice.
Seems like a good change which I'll integrate.

Rinn
06-12-2011, 01:58 AM
I've been having pretty good luck with this, but I just noticed it was causing me to get beaten up in the haunted bedroom during a pasta bm run



[1098] Haunted Bedroom
Encounter: One Nightstand
choice.php?pwd&whichchoice=83&option=2
Encounter: animated nightstand
Round 0: Epicgamer wins initiative!
> You will die in 2 rounds.
> Your attack will kill the monster in 12 rounds.
> Running out of adventures to use your summons. Summoning...
Round 1: Epicgamer executes a macro!
Round 1: Epicgamer casts ENTANGLING NOODLES!
Round 2: Epicgamer summons Ponpan the Spice Ghost!
Round 3: You conjure up a swirling cloud of spicy dried couscous, and there is a crackle of psychokinetic energy as Ponpan possesses it.
Round 3: Ponpan shakes some of the spice into your opponent's eyes as he gets accustomed to his new body.
Round 3: animated nightstand (mahogany) drops 5 attack power.
Round 3: animated nightstand (mahogany) drops 5 defense.
Round 3: Ponpan engulfs your opponent's head, raising a choking cloud of spice.
Round 3: animated nightstand (mahogany) drops 2 attack power.
Round 3: animated nightstand (mahogany) drops 4 defense.
> SpamAttack: Monster HP is 170.0.
> SpamAttack: We are going to 3-shot with Weapon of the Pastalord, Cannelloni Cannon and Cannelloni Cannon.
Round 3: Epicgamer executes a macro!
Round 3: Epicgamer casts WEAPON OF THE PASTALORD!
Round 4: animated nightstand (mahogany) takes 103 damage.
Round 4: Ponpan raises his power bands and fires a cloud of confusing spice at your opponent.
Round 4: animated nightstand (mahogany) drops 7 attack power.
Round 4: animated nightstand (mahogany) drops 4 defense.
Round 4: Epicgamer casts CANNELLONI CANNON!
Round 5: animated nightstand (mahogany) takes 27 damage.
Round 5: Ponpan engulfs your opponent's head, raising a choking cloud of spice.
Round 5: animated nightstand (mahogany) drops 8 attack power.
Round 5: animated nightstand (mahogany) drops 6 defense.
You lose 57 hit points
Round 5: Epicgamer casts CANNELLONI CANNON!
Round 6: animated nightstand (mahogany) takes 32 damage.
Round 6: Ponpan asks your opponent if it is getting enough oxygen, which is pretty much guaranteed to be "no," because of the choking cloud of spice around its head.
Round 6: animated nightstand (mahogany) drops 7 attack power.
Round 6: animated nightstand (mahogany) drops 7 defense.
You lose 50 hit points
> You've had the crap beaten out of you... attempting to find some more crap.
In this case two weapons and a cannon would have safely killed the monster, this happened a few times. I'm using the version Theraze just attached, my ccs is just smartstasis then spamattack.

Edit also this:


[1159] Hidden City (Square 9)
Encounter: ancient protector spirit
Round 0: Epicgamer wins initiative!
> You will die in 3 rounds.
> Your attack will kill the monster in 85 rounds.
Round 1: Epicgamer executes a macro!
Round 1: Epicgamer casts ENTANGLING NOODLES!
> SpamAttack: Monster HP is 85.0.
> SpamAttack: We are going to 2-shot with Weapon of the Pastalord and Ravioli Shurikens.
Round 2: Epicgamer executes a macro!
Round 2: Epicgamer casts WEAPON OF THE PASTALORD!
Round 3: ancient protector spirit takes 1 damage.
Round 3: Epicgamer casts RAVIOLI SHURIKENS!
Round 4: ancient protector spirit takes 14 damage.
> SpamAttack: We are going to 1-shot with Weapon of the Pastalord.
Round 4: Epicgamer executes a macro!
Round 4: Epicgamer casts WEAPON OF THE PASTALORD!
Round 5: ancient protector spirit takes 1 damage.
> SpamAttack: We are going to 1-shot with Weapon of the Pastalord.
Round 5: Epicgamer executes a macro!
Round 5: Epicgamer casts WEAPON OF THE PASTALORD!
Round 6: ancient protector spirit takes 1 damage.
You lose 41 hit points


I was probably going to lose this fight regardless, but it shouldn't have considered weapon against a physically resistant monster, that might be an issue with batbrain.

Theraze
06-12-2011, 04:45 AM
Probably was BatBrain thinking it would work... mine just went through the Hidden City successfully yesterday. In my current-tweak copy, I'm trying to see if there's a way to make it able to schedule out more than 5 steps easily/programically instead of manually recursing, as well as having it only schedule as many steps out as are actually safe... so if it thinks you'll die in 3 rounds, it needs to 2 shot. If it thinks you'll die and there's nothing safe that will likely succeed, abort and let you either run or try to out-think BatBrain.

Winterbay
06-12-2011, 06:33 AM
The enqueue feature in batbrain should allow you to test for if you die or not, but I've not managed to perfect a system where it reverts the queue yet even though I have some small ideas on how to do it.

Also, the problem here is trying to be cost efficient versus spamming high level attacks to kill something, the earlier version I had was likely to go Weapon of the Pastalord as soon as you couldn't kill it with 2 Salsaballs if you had those two as your only options even though a third Salsaball would kill it without any problems. I guess a setting for "overkill" could be useful where if you set it to say 10 it would try to go for monster_hp+10 rather than monster_hp and thus possibly adding one more highlevel skill.

Protector spirit could be a problem with batbrain somehow thinking you got falvour of magic on and thus pastalord would work.

Edit: This version should not do things that will kill you. I will not take into account that you might be using noodles yet, since without my modification to SmartStasis that I run myself casting of it beforehand is not really detectable in an easy way (the support for that edit si still in there, but shouldn't affect anything for those that don't run my version anyway).

Theraze
06-12-2011, 04:33 PM
So, here's my current version. It also has death-round detection, though it uses BatBrain's die_rounds instead of trying to guess itself. This does have the benefit of actually working based on stuns such as having Entangling Noodles pre-cast by SmartStasis.

Another tweak... variable max-rounds, depending on how long you'd like it to calculate it all out. Adds a zlib variable named spamattack_rounds that defaults to 5. This will automatically increment if it can't find anything that will kill the monster in your max rounds, but you won't die in another round... so if you'll die in 9 rounds, and you have your spamattack_rounds set to 5, it might increase it up to 9, but not 10. Note that if your spamattack_rounds gets set too high, you're looking at a LONG calculation time, since the amount of options increases exponentially, but this should provide for easy safe-automation.

This is what it does if you can't safely kill a monster:
SpamAttack: Monster HP is 150.0.
Macro called on empty queue!
SpamAttack: We would die in 2 and have 0 0 28 374 1460 0 0 0 0 0 as our options
You're on your own, partner. So for 1 and 2 shots, I have no options. There are 28 3-shot options, 374 4-shot, and 1460 5-shot options. As my calculation is still set to 5 max-rounds, 6-10 have no options.

The main flaw it currently has is not considering hit-chance or adding in new stuns very well. Otherwise, it's been working fairly well for me.

Rinn
06-13-2011, 04:19 AM
I think one of the problems might be related to batbrain not using a range for the damage a spell is going to do. In cases where it's very likely you're going to die if you don't cast spells in the right order you'd probably want to assume the worse case damage instead of the average damage.

Theraze
06-13-2011, 07:01 AM
Actually, I've survived usually longer than die_rounds() has guessed. Especially since I'm mostly using cuttlefish this ascension series. But it's when I'm fighting the upper tier bees that it gets to be a problem... I miss them enough that I lose a fair amount of battles.

Rinn
06-14-2011, 05:42 AM
Here's another combat that went unexpectedly



[1421] Frat House
Encounter: War Pledge
Round 0: Epicgamer wins initiative!
> You will die in 3 rounds.
> Your attack will kill the monster in 8 rounds.
Round 1: Epicgamer executes a macro!
Round 1: Epicgamer summons Ponpan the Spice Ghost!
Round 2: You conjure up a swirling cloud of spicy dried couscous, and there is a crackle of psychokinetic energy as Ponpan possesses it.
Round 2: Ponpan shakes some of the spice into your opponent's eyes as he gets accustomed to his new body.
Round 2: war pledge drops 5 attack power.
Round 2: war pledge drops 5 defense.
Round 2: Ponpan asks your opponent if he is getting enough oxygen, which is pretty much guaranteed to be "no," because of the choking cloud of spice around his head.
Round 2: war pledge drops 8 attack power.
Round 2: war pledge drops 1 defense.
You lose 43 hit points
Round 2: Epicgamer executes a macro!
Round 2: Epicgamer casts ENTANGLING NOODLES!
Round 3: Ponpan engulfs your opponent's head, raising a choking cloud of spice.
Round 3: war pledge drops 7 attack power.
Round 3: war pledge drops 8 defense.
> SpamAttack: Monster HP is 180.0.
> SpamAttack: We are going to 1-shot with Weapon of the Pastalord.
Round 3: Epicgamer executes a macro!
Round 3: Epicgamer casts WEAPON OF THE PASTALORD!
Round 4: war pledge takes 87 damage.
Round 4: Ponpan raises his power bands and fires a cloud of confusing spice at your opponent.
Round 4: war pledge drops 6 attack power.
Round 4: war pledge drops 5 defense.
> SpamAttack: We are going to 3-shot with Cannelloni Cannon, Cannelloni Cannon and Ravioli Shurikens.
Round 4: Epicgamer executes a macro!
Round 4: Epicgamer casts CANNELLONI CANNON!
Round 5: war pledge takes 28 damage.
Round 5: Ponpan engulfs your opponent's head, raising a choking cloud of spice.
Round 5: war pledge drops 1 attack power.
Round 5: war pledge drops 9 defense.
You lose 32 hit points
> SpamAttack: We are going to 2-shot with Cannelloni Cannon and Cannelloni Cannon.
Round 5: Epicgamer executes a macro!
Round 5: Epicgamer casts CANNELLONI CANNON!
Round 6: war pledge takes 64 damage.
Round 6: Ponpan raises his power bands and fires a cloud of confusing spice at your opponent.
Round 6: war pledge drops 5 attack power.
Round 6: war pledge drops 3 defense.
You lose 29 hit points
> You've had the crap beaten out of you... attempting to find some more crap.

Winterbay
06-14-2011, 07:20 AM
> SpamAttack: Monster HP is 180.0.
> SpamAttack: We are going to 1-shot with Weapon of the Pastalord.
Round 3: Epicgamer executes a macro!
Round 3: Epicgamer casts WEAPON OF THE PASTALORD!
Round 4: war pledge takes 87 damage.


That is... quite a discrepancy in the damage expected and the damage given...
Does War pledges have spell resistance?
What are your:
spell damage percent, buffed mys, spell damage and spell damage elemental bonuses (boni?)?

slyz
06-14-2011, 07:30 AM
I'm not sure how BatBrain handles Weapon of the Pastalord when you have Flavour running. If you had the wrong Flavor (the sleaze one), half of the WoP damage would be turned to sleaze damage and reduced to one.

Winterbay
06-14-2011, 07:55 AM
I'll test that in a few minutes when my multi is done farming and I can log in on a character that has mp and skills :)

Edit:
Tested and it appears to be factoring that in correctly. Running with spirit of garlic:


SpamAttack: Weapon of the Pastalord 190.0 potential damage.


With Spirit of Bacon Grease:


SpamAttack: Weapon of the Pastalord 102.745 potential damage.


So it most defintely lowers the expected damage against the sleaze monster with that effect on.

Theraze
06-14-2011, 01:22 PM
The problem is if you aren't tuning your damage, then it works based on average damage... Also, "spell resistance" is just when the spell misses, so that didn't happen...

Since Canelloni Cannon varied from 28 to 64, we can make a very strong assumption that Epicgamer was just running untuned in this battle. And while we can hope really hard in those cases, we can't always make guarantees.

Winterbay
06-14-2011, 01:34 PM
I'm unsure of the KoL terms but the high level bees have a 50% damage reduction from spells, which is what I would define as spell resistance, making me miss more is not what I would put under spell resistance...

Also, seeing as I am guessing this is the same run as the previous strangeness then we can be pretty sure that Epicgamer is running unattuned since it's in a BM run. The randomness of pastaspells are why I like saucespells so much better :)

Rinn
06-14-2011, 04:36 PM
Bad moon pastamancer is literally the worst run imaginable.

Winterbay
06-14-2011, 04:59 PM
I would definitely recommend getting Fearful fettucini... A lot less swing with that one.

Rinn
06-14-2011, 05:35 PM
Maybe if I wasn't already hemorrhaging meat from restoring mp, honestly I'd rather just make the run take a few days longer and powerlevel moxie then deal with the restore issues since it's already entirely not fun.

Winterbay
06-14-2011, 05:48 PM
True, I seem to remember that I actually went out of my way to build myself a chef staff to help with the MP issues. But since it already seems to be using Weapon of the Pastalord I think it might actually be cheaper to use Fearful since that is likely to hit for more in average while costing the same to cast (and nothing to get, apart from the turns to find it).

Theraze
06-15-2011, 12:25 AM
Yeah... when I ran BM pasta, I ran it as a moxie plinker. Slow, but at least it didn't make me depressed in an extra-tragic way.

Rinn
06-17-2011, 10:37 PM
SpamAttack is getting stuck fighting a beefy bodyguard bat in a bees hate you run, here's the output with verbosity set to 10. I included the smart stasis output incase it's relevant.

I'm on r9466.



[20] Boss Bat's Lair
Encounter: beefy bodyguard bat
Strategy: C:\Users\jkirchoff\Documents\My Dropbox\kolmafia\ccs\ascension.ccs [default]
Round 0: Epicgamer wins initiative!
You lose 17 hit points
1 MP costs 17.0μ.
1 HP costs 4.4884486μ.
Value of stat gain: 412.5μ
Value of stat gain: 412.5μ
Monster: Beefy Bodyguard Bat, ATT: 70, DEF: 62, HP: 68, Value: 800
Profit per round: ActionProfitDamageOtherbase; Mini-Hipster (10.15μ)88.37μ0 (16.45) (16.45) Actual: 32.9 (-0.31 μ/dmg)Att: -0.35 (-0.16 DPR) Def: -0.35 HP: 3.64 MP: 3.64
Building options...
Evaluating 'zone(sea)*floor(min(800,18.0)/4)'...
Evaluating 'min(20.0+3,10)+floor(sqrt(max(20.0-7,0)))'...
Evaluating '325.5*zone(sea)'...
Evaluating '1.0*(5.5+min(0.07*16.0,15)+min(4.0,25)+0.0)'...
Evaluating '1.0*(12+min(0.15*16.0,20)+min(4.0,40)+0.0)'...
Evaluating '1.0*(28+min(0.25*16.0,30)+min(4.0,60)+0.0)'...
Evaluating '1.0*(2.5+min(4.0,5)+0.0)'...
Evaluating '1.0*(12+min(0.15*16.0,20)+min(4.0,40))'...
Evaluating '1.0*(28+min(0.25*16.0,30)+min(4.0,60)+0.0)'...
Evaluating '1.0*(3.5+min(0.1*16.0,10)+min(4.0+0.0,10))'...
Evaluating '1.0*(16+min(0.2*16.0,25)+min(4.0+0.0,15))'...
Evaluating '1.0*(22+min(0.3*16.0,30)+min(4.0+0.0,25))'...
Evaluating '1.0*(2.5+min(4.0+0.0,5))'...
Evaluating '(1+0.5*0.0)*1.0*(16+min(0.2*16.0,25)+min(4.0+0.0, 15))'...
Evaluating '1.0*(16+min(0.2*16.0,25)+min(4.0+0.0,15))'...
Options built! (50 actions)
You will die in 7 rounds.
Your attack will kill the monster in 2 rounds.
Building custom actions...
Custom actions built! (0 actions)
Executing macro: scrollwhendone; sub batround; if haseffect 436 || haseffect 8 || haseffect 264 || haseffect 282 || haseffect 283 || haseffect 284; abort "BatBrain abort: poisoned"; endif; endsub; skill 5005; skill 5008; call batround; if hpbelow 18; abort "BatBrain abort: Danger, Will Robinson"; endif;
Round 1: Epicgamer executes a macro!
Round 1: Epicgamer casts DISCO DANCE OF DOOM!
Round 2: beefy bodyguard bat takes 8 damage.
Round 2: beefy bodyguard bat drops 5 attack power.
Round 2: beefy bodyguard bat drops 5 defense.
You lose 14 hit points
Round 2: Epicgamer casts DISCO DANCE II: ELECTRIC BOOGALOO!
Round 3: beefy bodyguard bat takes 8 damage.
You acquire an effect: Disco Nirvana (duration: 1 Adventure)
Round 3: beefy bodyguard bat drops 7 attack power.
Round 3: beefy bodyguard bat drops 7 defense.
You lose 11 hit points
Building options...
Evaluating 'zone(sea)*floor(min(800,18.0)/4)'...
Evaluating 'min(20.0+3,10)+floor(sqrt(max(20.0-7,0)))'...
Evaluating '325.5*zone(sea)'...
Evaluating '1.0*(5.5+min(0.07*16.0,15)+min(4.0,25)+0.0)'...
Evaluating '1.0*(12+min(0.15*16.0,20)+min(4.0,40)+0.0)'...
Evaluating '1.0*(28+min(0.25*16.0,30)+min(4.0,60)+0.0)'...
Evaluating '1.0*(2.5+min(4.0,5)+0.0)'...
Evaluating '1.0*(12+min(0.15*16.0,20)+min(4.0,40))'...
Evaluating '1.0*(28+min(0.25*16.0,30)+min(4.0,60)+0.0)'...
Evaluating '1.0*(3.5+min(0.1*16.0,10)+min(4.0+0.0,10))'...
Evaluating '1.0*(16+min(0.2*16.0,25)+min(4.0+0.0,15))'...
Evaluating '1.0*(22+min(0.3*16.0,30)+min(4.0+0.0,25))'...
Evaluating '1.0*(2.5+min(4.0+0.0,5))'...
Evaluating '(1+0.5*0.0)*1.0*(16+min(0.2*16.0,25)+min(4.0+0.0, 15))'...
Evaluating '1.0*(16+min(0.2*16.0,25)+min(4.0+0.0,15))'...
Options built! (50 actions)
Stasis action chosen: skill 7061
Top of the stasis loop.
Stasis action chosen: skill 7061
Stasis action chosen: skill 7061
Executing macro: scrollwhendone; sub batround; if haseffect 436 || haseffect 8 || haseffect 264 || haseffect 282 || haseffect 283 || haseffect 284; abort "BatBrain abort: poisoned"; endif; endsub; sub batsub1; skill 7061; call batround; endsub; call batsub1; repeat !hpbelow 104.0 && hpbelow 105.0 && !mpbelow 48.0 && mpbelow 49.0 && !pastround 28; if hpbelow 18; abort "BatBrain abort: Danger, Will Robinson"; endif;
Round 3: Epicgamer executes a macro!
Round 3: Epicgamer casts SPRING RAINDROP ATTACK!
You gain 19 hit points
You gain 23 Mojo Points
Round 4: Converse hops on your back for an ironic piggy-back ride. You feel a little stronger after hauling all of that irony around.
You gain 3 Strengthliness
You lose 11 hit points
Building options...
Evaluating 'zone(sea)*floor(min(800,18.0)/4)'...
Evaluating 'min(20.0+3,10)+floor(sqrt(max(20.0-7,0)))'...
Evaluating '325.5*zone(sea)'...
Evaluating '1.0*(5.5+min(0.07*16.0,15)+min(4.0,25)+0.0)'...
Evaluating '1.0*(12+min(0.15*16.0,20)+min(4.0,40)+0.0)'...
Evaluating '1.0*(28+min(0.25*16.0,30)+min(4.0,60)+0.0)'...
Evaluating '1.0*(2.5+min(4.0,5)+0.0)'...
Evaluating '1.0*(12+min(0.15*16.0,20)+min(4.0,40))'...
Evaluating '1.0*(28+min(0.25*16.0,30)+min(4.0,60)+0.0)'...
Evaluating '1.0*(3.5+min(0.1*16.0,10)+min(4.0+0.0,10))'...
Evaluating '1.0*(16+min(0.2*16.0,25)+min(4.0+0.0,15))'...
Evaluating '1.0*(22+min(0.3*16.0,30)+min(4.0+0.0,25))'...
Evaluating '1.0*(2.5+min(4.0+0.0,5))'...
Evaluating '(1+0.5*0.0)*1.0*(16+min(0.2*16.0,25)+min(4.0+0.0, 15))'...
Evaluating '1.0*(16+min(0.2*16.0,25)+min(4.0+0.0,15))'...
Options built! (46 actions)
Stasis action chosen: skill 3004
Top of the stasis loop.
Stasis action chosen: skill 3004
Stasis action chosen: skill 3004
Executing macro: scrollwhendone; sub batround; if haseffect 436 || haseffect 8 || haseffect 264 || haseffect 282 || haseffect 283 || haseffect 284; abort "BatBrain abort: poisoned"; endif; endsub; sub batsub1; skill 3004; call batround; endsub; call batsub1; repeat !hpbelow 112.0 && hpbelow 113.0 && !mpbelow 71.0 && mpbelow 72.0 && !pastround 28;
Round 4: Epicgamer executes a macro!
Round 4: Epicgamer casts ENTANGLING NOODLES!
Building options...
Evaluating 'zone(sea)*floor(min(800,18.0)/4)'...
Evaluating 'min(20.0+3,10)+floor(sqrt(max(20.0-7,0)))'...
Evaluating '325.5*zone(sea)'...
Evaluating '1.0*(5.5+min(0.07*16.0,15)+min(4.0,25)+0.0)'...
Evaluating '1.0*(12+min(0.15*16.0,20)+min(4.0,40)+0.0)'...
Evaluating '1.0*(28+min(0.25*16.0,30)+min(4.0,60)+0.0)'...
Evaluating '1.0*(2.5+min(4.0,5)+0.0)'...
Evaluating '1.0*(12+min(0.15*16.0,20)+min(4.0,40))'...
Evaluating '1.0*(28+min(0.25*16.0,30)+min(4.0,60)+0.0)'...
Evaluating '1.0*(3.5+min(0.1*16.0,10)+min(4.0+0.0,10))'...
Evaluating '1.0*(16+min(0.2*16.0,25)+min(4.0+0.0,15))'...
Evaluating '1.0*(22+min(0.3*16.0,30)+min(4.0+0.0,25))'...
Evaluating '1.0*(2.5+min(4.0+0.0,5))'...
Evaluating '(1+0.5*0.0)*1.0*(16+min(0.2*16.0,25)+min(4.0+0.0, 15))'...
Evaluating '1.0*(16+min(0.2*16.0,25)+min(4.0+0.0,15))'...
Options built! (45 actions)
Stasis action chosen: skill 4014
This monster is not your huckleberry.
Stasis loop complete.
SmartStasis complete.
1 MP costs 17.0μ.
1 HP costs 4.4884486μ.
Value of stat gain: 412.5μ
SpamAttack: You are fighting a Beefy Bodyguard Bat. Mafia considers that this monster has an attack of 58 or 70 when given a monster name.
SpamAttack: Mafia further considers that this monster has a defense value of 50 or 62 when given a monster name.
SpamAttack: Mafia further further considers that this monster has a HP value of 52 or 68 when given a monster name.
SpamAttack: Your current ML-adjustment is: 18.
Building options...
Evaluating 'zone(sea)*floor(min(800,18.0)/4)'...
Evaluating 'min(20.0+3,10)+floor(sqrt(max(20.0-7,0)))'...
Evaluating '325.5*zone(sea)'...
Evaluating '1.0*(5.5+min(0.07*16.0,15)+min(4.0,25)+0.0)'...
Evaluating '1.0*(12+min(0.15*16.0,20)+min(4.0,40)+0.0)'...
Evaluating '1.0*(28+min(0.25*16.0,30)+min(4.0,60)+0.0)'...
Evaluating '1.0*(2.5+min(4.0,5)+0.0)'...
Evaluating '1.0*(12+min(0.15*16.0,20)+min(4.0,40))'...
Evaluating '1.0*(28+min(0.25*16.0,30)+min(4.0,60)+0.0)'...
Evaluating '1.0*(3.5+min(0.1*16.0,10)+min(4.0+0.0,10))'...
Evaluating '1.0*(16+min(0.2*16.0,25)+min(4.0+0.0,15))'...
Evaluating '1.0*(22+min(0.3*16.0,30)+min(4.0+0.0,25))'...
Evaluating '1.0*(2.5+min(4.0+0.0,5))'...
Evaluating '(1+0.5*0.0)*1.0*(16+min(0.2*16.0,25)+min(4.0+0.0, 15))'...
Evaluating '1.0*(16+min(0.2*16.0,25)+min(4.0+0.0,15))'...
Options built! (45 actions)
SpamAttack: Monster HP is 52.0.
SpamAttack: You will kill the monster in 2 rounds with your basic attack.
SpamAttack: The monster will take 8 rounds to kill you.
Edit: Also got stuck on the boss bat, but killed a mumblebee with no issue. Next it killed a Harem Girl, then got stuck on a Harem Guard.

Magus_Prime
07-08-2011, 05:31 PM
Spamattack isn't choosing skills/attacks well for some reason. This is for a Disco Bandit in a Bees Hate You run. I have Shieldbutt HC permed and I do have a shield equipped. The problem is that the equipped weapon is a ranged weapon and spamattack is choosing Shieldbutt when another Cannelloni Cannon would have done the trick.

This is with KOLMafia r9601.

I'm using the version of spamattack that Theraze posted in post #23 of this topic. Any thoughts? Here is the output with zlib verbosity set to 8.


[1040] Black Forest
Encounter: blackberry bush
Round 0: Arbos wins initiative!
1 MP costs 17.0μ.
1 HP costs 5.093633μ.
blackberry (15.0 @ +45.0): 70μ * 21.75% = 15.225
blackberry (15.0 @ +45.0): 70μ * 21.75% = 15.225
blackberry (15.0 @ +45.0): 70μ * 21.75% = 15.225
Value of stat gain: 745.94μ
Profit per round: ActionProfitDamageOtherbase; Levitating Potato (0μ)0μ--45% stun chance
blackberry (15.0 @ +45.0): 70μ * 21.75% = 15.225
blackberry (15.0 @ +45.0): 70μ * 21.75% = 15.225
blackberry (15.0 @ +45.0): 70μ * 21.75% = 15.225
Value of stat gain: 745.94μ
Monster: Blackberry Bush, ATT: 217, DEF: 198, HP: 233, Value: 791.61
You will die in 4 rounds.
Your attack will kill the monster in 62 rounds.
Stasis action chosen: skill 3004
Executing macro: scrollwhendone; sub batround; if haseffect 8 || haseffect 264 || haseffect 282 || haseffect 283 || haseffect 284; abort "BatBrain abort: poisoned"; endif; endsub; skill 3004; call batround;
Round 1: Arbos executes a macro!
Round 1: Arbos casts ENTANGLING NOODLES!
1 MP costs 17.0μ.
1 HP costs 5.093633μ.
blackberry (15.0 @ +45.0): 70μ * 21.75% = 15.225
blackberry (15.0 @ +45.0): 70μ * 21.75% = 15.225
blackberry (15.0 @ +45.0): 70μ * 21.75% = 15.225
Value of stat gain: 745.94μ
SpamAttack: Monster HP is 233.0.
SpamAttack: You won't kill the monster before 30 rounds with your basic attack.
SpamAttack: The monster will take 4 rounds to kill you.
SpamAttack: The data suggests that we five-shot the monster.
SpamAttack: We are going to 5-shot with Cannelloni Cannon, Cannelloni Cannon, Cannelloni Cannon, Cannelloni Cannon and Shieldbutt.
Executing macro: scrollwhendone; sub batround; if haseffect 8 || haseffect 264 || haseffect 282 || haseffect 283 || haseffect 284; abort "BatBrain abort: poisoned"; endif; endsub; skill 3005; call batround; if hpbelow 51; abort "BatBrain abort: Danger, Will Robinson"; endif; skill 3005; call batround; if hpbelow 51; abort "BatBrain abort: Danger, Will Robinson"; endif; skill 3005; call batround; if hpbelow 51; abort "BatBrain abort: Danger, Will Robinson"; endif; skill 3005; call batround; if hpbelow 51; abort "BatBrain abort: Danger, Will Robinson"; endif; skill 2005; call batround; if hpbelow 48; abort "BatBrain abort: Danger, Will Robinson"; endif;
Round 2: Arbos executes a macro!
Round 2: Arbos casts CANNELLONI CANNON!
Round 3: blackberry bush takes 47 damage.
Round 3: Arbos casts CANNELLONI CANNON!
Round 4: blackberry bush takes 44 damage.
Round 4: Oswald entangles your opponent with powerful vines, preventing it from attacking you.
Round 4: Arbos casts CANNELLONI CANNON!
Round 5: blackberry bush takes 50 damage.
Round 5: Arbos casts CANNELLONI CANNON!
Round 6: blackberry bush takes 47 damage.
Round 6: Oswald entangles your opponent with powerful vines, preventing it from attacking you.
This skill is useless with ranged weapons.
You're on your own, partner.
Click here to continue in the relay browser.
Round 7: Arbos attacks!
KoLmafia thinks it is round 8 but KoL thinks it is round 7
Round 8: Oswald entangles your opponent with powerful vines, preventing it from attacking you.
Round 8: Arbos casts CANNELLONI CANNON!
KoLmafia thinks it is round 9 but KoL thinks it is round 8
Round 9: blackberry bush takes 51 damage.
Round 9: Arbos wins the fight!
You gain 10 Beefiness
You gain 2 Mysteriousness
You gain 24 Sarcasm
You gain a Moxie point!

Theraze
07-08-2011, 05:41 PM
Not sure why you'd prefer the one from 23 over 28, but... eh. :)

Skills being available when they won't actually do damage is actually a BatBrain issue that zarqon is currently working on. Though I believe the one he was specifically looking at was LTS with ranged weapons instead of Shieldbutt, the same problem remains... KoL presents it as an option, so mafia presents it as an option, so BatBrain parses it as a valid option. It should work once BB gets its next update, probably. :)

Anyways, here's a modified form of the post 28 spamattack... this one has the same variable round ability, but will set its round count back if it doesn't manage to find a successful round. That means if you end up fighting a king bee with 0 mp and no restoratives, it won't leave you stuck with 10 maxround when it aborts to let you flee for your life, thereby making every fight where you actually do have mp take a VERY long time to process...

Theraze
07-10-2011, 06:24 AM
Dislike double-posting, but... sometimes changes warrant it. Anyways, found a bug in my #44 spamattack... it considers anything above 1 round to have an extra automatic damage... so a 2-shot will have 3 rounds of your familiar and gear doing damage, a 5-shot will have 6 rounds of protection, etc. This means that it was overly optimistic on your chances on all sorts of things...

Attached is my more paranoid knee-jerk response... I was going to make this version anyways, then realized the bug that was part of the issue. The attached version doesn't consider familiar or other non-retaliatory damage as worth considering for protection. This means it's likely to overkill currently, but if it considers a kill as possible, it should always work. Barring missing on a muscle skill or something similar.

Prefer it to still consider familiar damage? Go to where the # on the rounds are, remove the # (just the symbol) and the line after it, which is exactly the same as the # line except missing the "+ dmg_dealt(baseround().dmg" at the end...

Theraze
08-25-2011, 08:51 PM
Triple posting! But hey, it's been a month and a half, so it's probably okay. Anyways, newest version of my spamattack included here. I rescinded my knee-jerk response but am still somewhat annoyed by the damage prediction. Eh, so it goes. Anyways, the base problem is that it does all the calculation in the script itself... it calls dmg_dealt and those, but does it on each individual skill, so delevelling and stuns and those aren't properly considered. Believe that Winterbay was having the same problem. Ah well.

Anyways, this version does better at properly setting the spamattack_rounds back if it fails to find the proper amount. If you abort out of combat, it still leaves it confused, but otherwise it should be able to have you set rounds down to 2 or 3 as your preference and if it can't find a way to do it, should raise it up... to 10, if need be, and then drop it back to whatever you prefer. I'll probably be looking at this code again to try to make it not screw up the setting if you decide you don't want it to think through how to kill powerful enemies in 10 rounds using lots of skills... that takes a while.

The biggest problem I've found is that it's horrible about predicting damage based on type. Elemental damage types appears to be ignored... it'll try to use fearful fet on spooky monsters, etc. There's probably some way to make this work, but I'd have thought that dmg_dealt should be against the current mob. Anyways, not sure... best/easiest way is probably to generate a full enqueue stack as it goes, but... I haven't looked yet into how to do that properly. :)

tragus
08-30-2011, 10:29 PM
Hmmmm. Here I am in my first Kittycore Bad Moon Run. I alternate between running turns by hand (due to item usage and general fiddly-ness) and letting Mafia do its thing. Earlier today, I update to SS 3.6 but only just tried some automated turns in the F'c'le and got:
[915] F'c'le
Encounter: cleanly pirate
Strategy: C:\Documents and Settings\marvitp\Desktop\Dropbox\KoLMafia-Otto\ccs\Smart_DB_BM.ccs [pirate]
Round 0: tragus wins initiative!
Round 0: tragus tries to steal an item! (auto-attack)
SpamAttack: Monster HP is 90.0.
Macro called on empty queue!
SpamAttack: We would die in 20 and have 0 0 0 0 0 0 0 0 0 0 as our options
SpamAttack: Unable to figure out a combat strategy, please fight the battle yourself
You're on your own, partner.

My css is really simple:
[ default ]
consult SmartStasis.ash
consult spamattack.ash

[ pirate ]
consult SmartStasis.ash
consult spamattack.ash


Note that I'm able to kill the pirates by hand in 4-7 rounds. Am I doing something wrong? Well, at first, I thought the problem was with SS, but it turns out to be some issues with spamattack.ash. For now, I've put it out of commission, and will try to look into the script a bit later.

Theraze
08-31-2011, 03:34 AM
SpamAttack is semi-stupid in that it doesn't know about different elements, moxious maneuver for alternate to-hit, etc. DAM does a better job with that sort of stuff.

Bale
08-31-2011, 04:51 AM
DAM does a better job because it relies more on BatBrain so I don't even have to write code for those things. BatBrain proves that bats are more intelligent than I am.

Winterbay
08-31-2011, 05:07 AM
1) I'm glad to see that that is not my version :)
2) SpamAttack does know about MM and other such things. Mine at least uses it. Also, I've never had any problem with things of different elements being attacked by the wrong element, even though I know it happens.
3) My local copy is set to attack by hand if you can kill it before the fight runs out of rounds, it can't kill you before you can kill it and you have at least a 50% chance of hitting it. That last number can be tweaked to fit the current play style.

Theraze
08-31-2011, 05:41 AM
2) Oh, it uses it... but if it's the only way for it to hit them, it tends to not consider it. You can test that by doing some major moxie maximization... I've done >200 moxie <40 muscle in one of my few SC runs. SA, at least mine, doesn't think that MM will work in time if you have a melee weapon equipped, even when it easily one-hits the target.
3) Mine has the same bit, also defaulted to 50% I believe. Since it didn't mention it, and we got to the skill calculation phase, apparently it doesn't believe that 15-20 regular attacks will kill the pirates.

Winterbay
08-31-2011, 06:16 AM
2) Oh, it uses it... but if it's the only way for it to hit them, it tends to not consider it. You can test that by doing some major moxie maximization... I've done >200 moxie <40 muscle in one of my few SC runs. SA, at least mine, doesn't think that MM will work in time if you have a melee weapon equipped, even when it easily one-hits the target.
3) Mine has the same bit, also defaulted to 50% I believe. Since it didn't mention it, and we got to the skill calculation phase, apparently it doesn't believe that 15-20 regular attacks will kill the pirates.

2) Oh. Hmm. Odd. I mean there's really no change to it in that case is there? If it discards the use in that case I feel that may be a BatBrain bug. The problem is of course the MM costs MP and if you're low on that then enqueueing 5 MMs won't work anyway.
3) Which is interesting since tragus specifically states that he can kill it with 4-7 attacks. My guess is that his hitchance is lower than 50% which means it skipped that part.

Theraze
08-31-2011, 02:04 PM
2) DAM knows about that because it actually enqueues the actions instead of just speculating about the raw data on them.
3) He didn't say 4-7 attack with weapons, he said "able to kill the pirates by hand in 4-7 rounds" which to me, suggests he's doing actual commands to them. Lending credence to my belief that it's a thing about SA not knowing complex combat strategy.

Winterbay
08-31-2011, 02:27 PM
2) I've been trying to get mine to do that as well, but always fail on trying to revert the queue one step back in order to try another permutation. I noticed that Bale had a potential solution to that in DAM so may look at that some more and try and implement it when I have more time.
3) True :) I shoul dnot read things into things that aren't explicitly stated in the things I guess...

tragus
09-01-2011, 04:10 PM
To clarify, "able to kill the pirates by hand in 4-7 rounds" meant "able to kill pirate by pressing 'attack' while yielding a ranged weapon for 4 to 7 times" AND/OR "letting Kolmafia unconditionally use 'attack with weapon' in a CSS for 4 to 7 rounds".

I've obviously not been following the Mafia fora well recently. What is DAM and where can I find more information?

Theraze
09-01-2011, 11:53 PM
Post 385 in the BatBrain thread (http://kolmafia.us/showthread.php?6445-BatBrain-a-central-nervous-system-for-consult-scripts&p=58625&viewfull=1#post58625) has the Destroy All Monsters script, as well as an updated batfactors and a semi-updated (great for use with itself, not so good if you were following other updates) BatBrain. Most of the updates are in there, but it's missing the one that says certain commands don't work with a ranged weapon, so SmartStasis might decide that LTS is the best stasis command for you or something else similarly bizarre. Anyways, DAM is way more awesome than (my version of) SpamAttack.

Huh... just did 4-7 moxie weapon attack rounds? Weird... wonder why kill_rounds and die_rounds weren't being accurate. Anyways, DAM does a better job.

Bale
09-02-2011, 02:17 AM
Post 385 in the BatBrain thread (http://kolmafia.us/showthread.php?6445-BatBrain-a-central-nervous-system-for-consult-scripts&p=58625&viewfull=1#post58625) has the Destroy All Monsters script, as well as an updated batfactors and a semi-updated (great for use with itself, not so good if you were following other updates) BatBrain. Most of the updates are in there, but it's missing the one that says certain commands don't work with a ranged weapon, so SmartStasis might decide that LTS is the best stasis command for you or something else similarly bizarre. Anyways, DAM is way more awesome than (my version of) SpamAttack.

Huh... just did 4-7 moxie weapon attack rounds? Weird... wonder why kill_rounds and die_rounds weren't being accurate. Anyways, DAM does a better job.

Just updated batfactors in that post to use more accurate formulas for Fistcore skills

Winterbay
11-30-2011, 07:05 AM
So, the recent change to BatBrain breaks the Spamattack-versions posted in this thread so here is my current iteration in case anyone is still interested. It comes with a big freaking warning not to run it while out of ronin or in aftercore (at least if you've emptied Hangks) since that will make very fight take way too long. If your inventory is devoid of most combat items it will run somewhat smoothly though.

zarqon
11-30-2011, 07:49 AM
Post 385 in the BatBrain thread has the Destroy All Monsters script

Yes it does. I'd appreciate if it didn't, now that it has its own thread. Let's combat combat script confusion!

Bale
11-30-2011, 08:10 AM
What combat script in the BB thread? I don't see one!

zarqon
11-30-2011, 08:43 AM
Well played, sir!