> last_monster
Returned: bee swarm
> monster_attack
Returned: 1
> monster_defense
Returned: 1
> monster_hp
Returned: 0
if (m == $monster[none] || monster_attack(m) == 0 || monster_attack(m) == monster_level_adjustment())
adj.att = to_int(vars["unknown_ml"]);
if (m == $monster[none] || monster_defense(m) == 0 || monster_defense(m) == monster_level_adjustment())
adj.def = to_int(vars["unknown_ml"]);
if (m == $monster[none] || monster_hp(m) == 0 || monster_hp(m) == monster_level_adjustment())
adj.dmg[$element[none]] = to_int(vars["unknown_ml"]);
if (m == $monster[none] || (monster_attack(m) == 1 && monster_defense(m) == 1 && monster_hp(m) == 0) || monster_attack(m) == monster_level_adjustment())
adj.att = to_int(vars["unknown_ml"]);
if (m == $monster[none] || (monster_attack(m) == 1 && monster_defense(m) == 1 && monster_hp(m) == 0) || monster_defense(m) == monster_level_adjustment())
adj.def = to_int(vars["unknown_ml"]);
if (m == $monster[none] || (monster_attack(m) == 1 && monster_defense(m) == 1 && monster_hp(m) == 0) || monster_hp(m) == monster_level_adjustment())
adj.dmg[$element[none]] = to_int(vars["unknown_ml"]);
Big Creepy Spider (ATT 16, DEF 15, HP 16)
Brutus, the Toga-Clad Lout (ATT 0, DEF 0, HP 295)
Completely Different Spider (ATT 16, DEF 15, HP 16)
Crate (ATT 16, DEF 15, HP 16)
Danglin' Chad (ATT 0, DEF 0, HP 315)
Don Crimbo (ATT 0, DEF 0, HP 1000015)
Drunken Half-Orc Hobo (ATT 16, DEF 15, HP 16)
Essence of Tofu (ATT 0, DEF 0, HP 80)
Fiendish Can of Asparagus (ATT 16, DEF 15, HP 16)
Fluffy Bunny (ATT 16, DEF 15, HP 16)
Frog (ATT 3, DEF 3, HP 3)
Gorgolok, the Demonic Hellseal (ATT 0, DEF 0, HP 415)
Hellseal guardian (ATT 0, DEF 0, HP 225)
Hellseal pup (ATT 0, DEF 0, HP 103)
Hung-over Half-Orc Hobo (ATT 16, DEF 15, HP 16)
Lumpy, the Demonic Sauceblob (ATT 0, DEF 0, HP 515)
Monty Basingstoke-Pratt, IV (ATT 0, DEF 0, HP 255)
Mother hellseal (ATT 0, DEF 0, HP 172)
Mother Slime (ATT 0, DEF 0, HP 3015)
n Bottles of Beer on a Golem (ATT 15, DEF 15, HP 15)
A n Stone Golem (ATT 15, DEF 15, HP 15)
A n-Dimensional Horror (ATT 15, DEF 15, HP 15)
A n-Headed Hydra (ATT 15, DEF 15, HP 15)
Newt (ATT 3, DEF 3, HP 3)
Possessed Can of Tomatoes (ATT 16, DEF 15, HP 16)
Protector Spectre (ATT 0, DEF 165, HP 131)
Rushing Bum (ATT 16, DEF 15, HP 16)
Salamander (ATT 3, DEF 3, HP 3)
Skate Board Member (ATT 0, DEF 0, HP 765)
Sleeping Knob Goblin Guard (ATT 16, DEF 15, HP 16)
Slow Talkin' Elliot (ATT 0, DEF 0, HP 215)
Sub-Assistant Knob Mad Scientist (ATT 16, DEF 16, HP 16)
The Beast with n Ears (ATT 15, DEF 15, HP 15)
The Beast with n Eyes (ATT 15, DEF 15, HP 15)
The Big Wisniewski (ATT 0, DEF 0, HP 2015)
The Demon Spirit of New Wave (ATT 0, DEF 0, HP 515)
The Ghost of Fernswarthy's n great-grandfather (ATT 15, DEF 15, HP 15)
The Man (ATT 0, DEF 0, HP 2015)
The Whole Kingdom (ATT 16, DEF 15, HP 10000015)
Undead Elbow Macaroni (ATT 16, DEF 16, HP 16)
Unearthed Monstrosity (ATT 0, DEF 0, HP 515)
vprint("You are fighting a " + to_string(foe) + ". Mafia considers that this monster has an attack of " + monster_attack() + " or " + monster_attack(foe) + " when given a monster name.", 9);
vprint("Mafia further considers that this monster has a defense value of " + monster_defense() + " or " + monster_defense(foe) + " when given a monster name.", 9);
vprint("Mafia further further considers that this monster has a HP value of " + monster_hp() + " or " + monster_hp(foe) + " when given a monster name.", 9);
vprint("Your current ML-adjustment is: " + monster_level_adjustment() + ".", 9);
You are fighting a beebee queue. Mafia considers that this monster has an attack of 1 or 0 when given a monster name.
Mafia further considers that this monster has a defense value of 1 or 0 when given a monster name.
Mafia further further considers that this monster has a HP value of 0 or 0 when given a monster name.
Your current ML-adjustment is: 0.
> ash last_monster()
Returned: beebee queue
res.append("; abort \"BatBrain abort: poisoned\"; endif; if hpbelow "+ceil(m_regular()+1)+"; abort \"BatBrain abort: Danger, Will Robinson\"; endif; ");
res.append("; abort \"BatBrain abort: poisoned\"; endif; if hpbelow "+ceil(m_dpr(0,0)+1)+"; abort \"BatBrain abort: Danger, Will Robinson\"; endif; ");
[575] Barrrney's Barrr
Encounter: Yes, You're a Rock Starrr
Encounter: tetchy pirate
Strategy: D:\Mafia\ccs\PM.ccs [default]
Round 0: winterbay wins initiative!
You lose 12 hit points
1 MP costs 5.882353µ.
1 HP costs 1.7647059µ.
bottle of rum (20.0 @ +30.0): 35µ * 26.0% = 9.1
cocktail napkin (10.0 @ +30.0): 25µ * 13.0% = 3.25
Value of stat gain: 185µ
bottle of rum (20.0 @ +30.0): 35µ * 26.0% = 9.1
cocktail napkin (10.0 @ +30.0): 25µ * 13.0% = 3.25
Value of stat gain: 185µ
Monster value: 253.35
You will die in 7 rounds.
Your attack will kill the monster in 4 rounds.
Profit per round: Action Profit Damage Other base; Rogue Program (0µ) 34.94µ 5.94 (0 µ/dmg) 31.5% stun chance MP: 5.94
Building options...
Options built! (25 actions)
Building custom actions...
Custom actions built! (1 actions)
Custom action: use 5120 (no stun)
Executing macro: scrollwhendone; sub batround; if haseffect 436 || haseffect 8 || haseffect 264 || haseffect 282 || haseffect 283 || haseffect 284; abort "BatBrain abort: poisoned"; endif; if hpbelow 12; abort "BatBrain abort: Danger, Will Robinson"; endif; endsub; use 5120; call batround;
Round 1: winterbay executes a macro!
Pirate insults known: 1 (0.00%)
Round 1: winterbay uses the Massive Manual of Marauder Mockery!
You acquire an effect: Embarrassed (duration: 1 Adventure)
Round 2: tetchy pirate takes 2 damage.
Round 2: tetchy pirate takes 4 damage.
You lose 13 hit points
Building options...
Options built! (25 actions)
Stasis action chosen: attack
Stasis loop complete.
SmartStasisStun => 3.0
Executing macro: scrollwhendone; sub batround; if haseffect 436 || haseffect 8 || haseffect 264 || haseffect 282 || haseffect 283 || haseffect 284; abort "BatBrain abort: poisoned"; endif; if hpbelow 1; abort "BatBrain abort: Danger, Will Robinson"; endif; endsub; skill 3004; call batround;
Round 2: winterbay executes a macro!
Round 2: winterbay casts ENTANGLING NOODLES!
Building options...
Options built! (24 actions)
SmartStasis complete.
1) Don't include a low HP abort at all. Allow people to macro themselves to death.
2) Take that abort out of batround. Instead, include a separate abort after each queued action, and only if the estimated stun at that point in the combat is 0.
Sorry? That's not an option -- adding a setting does not solve the problem of aborting when stuns are in effect.
I'm not sure solution 2) would work. If I understand correctly, when you add an "abort <condition>" line in a KoL macro, it stays active for the rest of the macro. So if your macro contains several "abort hpbelow X" lines, they will all stay active for the duration of the macro.
case $monster[queen bee]:
case $monster[beebee king]:
foreach el in $elements[]
mres[el] = 0.5;
mres[$element[none]] = 0.5;
break;