Bug - Not A Bug Rave Combo Helper fails to learn any combos

slyz

Developer
Mafia's "fight action" counter isn't supposed to be equal to KoL's combat round number. We really should disable that very informative message.

I remember looking at the rave learning problem, and I don't think Mafia's round counter will solve the issue. The problem was probably on the side of DiscoCombatHelper.parseFightRound() in DiscoCombatHelper.java. Specifically, any time you submit anything that isn't a Rave Skill to fight.php, Mafia will reset the move sequence. Mafia will think that any action breaks the combo, even when it doesn't.

According the the KoL Wiki, thumb twiddling should break the combo, but apparently it doesn't.
 

Catch-22

Active member
I remember looking at the rave learning problem, and I don't think Mafia's round counter will solve the issue. The problem was probably on the side of DiscoCombatHelper.parseFightRound() in DiscoCombatHelper.java. Specifically, any time you submit anything that isn't a Rave Skill to fight.php, Mafia will reset the move sequence. Mafia will think that any action breaks the combo, even when it doesn't.
Yeah I see what you're talking about, perhaps we should allow twiddling as well as rave skills.

Mafia's "fight action" counter isn't supposed to be equal to KoL's combat round number. We really should disable that very informative message.

I noticed that if your combat action starts with twiddle (I guess you can twiddle on purpose for certain reasons) that the FightRequest.preparatoryRounds counter gets decremented, which in turn affects the roundIndex(). I'm wondering if, although this may not be affecting the rave combo helper, it may have an effect on the macrofier if a combat script was misbehaving? Perhaps FightRequest.preparatoryRounds should be decremented if the responseText indicates that a thumb twiddle has occured, rather than if the next action to be performed is an intentional twiddle.
 

slyz

Developer
Perhaps FightRequest.preparatoryRounds should be decremented if the responseText indicates that a thumb twiddle has occured, rather than if the next action to be performed is an intentional twiddle.
I haven't looked at that part of FightRequest for a while. We have several counters (initialRound, currentRound and preparatoryRounds), and different ways of managing combat: round by round or via multi-round macros. The whole thing has been needing a good looking at for a long time, which was why the "Kolmafia thinks it is round #" message was added in the first place.
 

Oddly enough, not running for me :/

I remember looking at the rave learning problem, and I don't think Mafia's round counter will solve the issue. The problem was probably on the side of DiscoCombatHelper.parseFightRound() in DiscoCombatHelper.java. Specifically, any time you submit anything that isn't a Rave Skill to fight.php, Mafia will reset the move sequence. Mafia will think that any action breaks the combo, even when it doesn't.

Because I am of the "test everything" mindset:

[1821] Giant's Castle
Encounter: Goth Giant
Round 0: Morgoth1145 wins initiative!
KoLmafia thinks it is round 2 but KoL thinks it is round 1
KoLmafia thinks it is round 3 but KoL thinks it is round 1
Round 3: Morgoth1145 casts RUN LIKE THE WIND!
KoLmafia thinks it is round 4 but KoL thinks it is round 2
Round 4: Morgoth1145 casts POP AND LOCK IT!
KoLmafia thinks it is round 5 but KoL thinks it is round 3
You lose 17 hit points
Round 5: Morgoth1145 casts BREAK IT ON DOWN!
KoLmafia thinks it is round 6 but KoL thinks it is round 4
Round 6: Morgoth1145 attacks!
KoLmafia thinks it is round 7 but KoL thinks it is round 5
Round 7: Morgoth1145 attacks!
KoLmafia thinks it is round 8 but KoL thinks it is round 6
Round 8: Morgoth1145 wins the fight!

I wiped out my known rave skills, and only did twiddling at the beginning, before trying to do a rave combo. KoLMafia didn't learn it.

[1824] Giant's Castle
Encounter: Alphabet Giant
Round 0: Morgoth1145 wins initiative!
KoLmafia thinks it is round 2 but KoL thinks it is round 1
KoLmafia thinks it is round 3 but KoL thinks it is round 1
Round 3: Morgoth1145 executes a macro!
Round 3: Morgoth1145 casts RUN LIKE THE WIND!
KoLmafia thinks it is round 4 but KoL thinks it is round 2
Round 4: Morgoth1145 casts POP AND LOCK IT!
Round 5: Morgoth1145 casts BREAK IT ON DOWN!
Round 6: Morgoth1145 executes a macro!
Round 6: Morgoth1145 casts DISCO DANCE OF DOOM!
KoLmafia thinks it is round 7 but KoL thinks it is round 5
You learned a new Rave Combo!
Run Like the Wind + Pop and Lock It + Break It On Down -> Rave Bleeding
Round 7: Morgoth1145 casts DISCO DANCE II: ELECTRIC BOOGALOO!
Disco combo: Disco Nirvana
You acquire an effect: Disco Nirvana (duration: 1 Adventure)
Round 8: Morgoth1145 wins the fight!

Oddly enough, though, doing the exact same thing but hitting the Random Rave button instead of the individual skills? It did learn it.

Also, when I was in the middle of a Rave combo but then decided that I wanted to do a Disco combo, it didn't have the Disco macro buttons enabled:

[1828] Giant's Castle
Encounter: Furry Giant
Round 0: Morgoth1145 wins initiative!
Round 1: Morgoth1145 casts BREAK IT ON DOWN!
Round 2: Morgoth1145 casts RUN LIKE THE WIND!
KoLmafia thinks it is round 4 but KoL thinks it is round 3
Round 4: Morgoth1145 casts POP AND LOCK IT!
KoLmafia thinks it is round 5 but KoL thinks it is round 4
You acquire an effect: Rave Concentration (duration: 1 Adventure)
Round 5: Morgoth1145 casts DISCO DANCE OF DOOM!
KoLmafia thinks it is round 6 but KoL thinks it is round 5
Round 6: Morgoth1145 casts DISCO DANCE II: ELECTRIC BOOGALOO!
KoLmafia thinks it is round 7 but KoL thinks it is round 6
Disco combo: Disco Nirvana
You acquire an effect: Disco Nirvana (duration: 1 Adventure)
Round 7: Morgoth1145 attacks!
KoLmafia thinks it is round 8 but KoL thinks it is round 7
Round 8: Morgoth1145 wins the fight!

Even after the Disco Dance of Doom the Rave skill was still showing up in the combat sequence. Apparently KoLMafia doesn't know the difference, so while you guys are poking at the handler, that also seems to be broken.

Oddly:
[1829] Giant's Castle
Encounter: Raver Giant
Round 0: Morgoth1145 wins initiative!
KoLmafia thinks it is round 2 but KoL thinks it is round 1
KoLmafia thinks it is round 3 but KoL thinks it is round 1
Round 3: Morgoth1145 casts BREAK IT ON DOWN!
KoLmafia thinks it is round 4 but KoL thinks it is round 2
Round 4: Morgoth1145 casts RUN LIKE THE WIND!
KoLmafia thinks it is round 5 but KoL thinks it is round 3
Round 5: Morgoth1145 casts POP AND LOCK IT!
KoLmafia thinks it is round 6 but KoL thinks it is round 4
You learned a new Rave Combo!
Break It On Down + Run Like the Wind + Pop and Lock It -> Rave Concentration

I tried the first experiment again, clicking the individual skill buttons and not the macro, and it learned it this time. It's not a skill that it had to wait and figure out, but should that really have made a difference?
 
Last edited:

Catch-22

Active member
Hi Morgoth, the information can probably be ascertained by piecing together different steps taken in this thread, but if it's possible are you able to recap concisely how to reproduce the weird behavior in a step by step way? I'll try to ascend as DB next chance I get and that way I don't have to post builds around the place if I can reproduce it myself.
 
Alrighty, step by step. (The tldr version: play with twiddling your thumbs during combat at different points):

Test 1: Enter combat
Click something that makes you twiddle your thumbs (evermore to be called "twiddle", I used the "Last Adventure" link)
twiddle
Click the run like the wind button (you can substitute this sequence for another if you want. You probably want to try the Rave Bleeding one since that's what acted weird, so long as KoLMafia doesn't know it.)
Click the Pop And Lock It button.
Click the Break it on Down button. (And watch KoLMafia not learn the skill...at least, that's what it did for me.)
End combat however you care (wasting some time if it's a skill like disco bleeding. I seem to have used attacking in the first test and a disco combo in the second, I wonder if that's significant...I'll have to check sometime.)

Test 2: Enter combat
twiddle
twiddle
Click the "random rave" button (again, best if it is Rave Bleeding, if you want to keep the teststhe same.)
End combat however (again, wasting time however. I seem to have used Disco Nirvana.)

Test 3: Enter combat
Break it on down button (going for rave concentration, it seems, but it doesn't much matter)
Run like the Wind button
twiddle
Pop and Lock it button. (Combo finished, but KoLMafia doesn't know it. Also, doesn't show buttons to allow you to do a disco combo macro at this point)
Disco Dance of Doom button (at this point, the combo minder list thingy above the helper box said "pop and lock it, disco dance of doom")
Disco Dance II: Electric Boogaloo button.
End combat however.

Test 4: Enter combat
twiddle
twiddle
Random Rave button (mine was Rave Concentration, should work for any effect that Mafia can learn instantly)
end combat however.
 
Top