This is easy to fix.Moods fire before automatic adventuring or after relay adventuring.
In the GUI this is advantageous since it prepares the mood before your encounter. In the relay browser this does not ensure that the player has the correct buffs before adventuring, so it is clearly disadvantageous.
Currently, we call between battle checks - script, moods, hp restore, mp restore - in KoLAdventure when we are about to adventure.
Currently, the Relay Browser will do moods, HP recover, and MP recovery when it gets a char pane refresh and sees that you've used a turn. However, the RelayRequest knows when it is "about to adventure" and could easily call between battle checks - script, moods, hp restore, mp restore - before letting you do that.
What is the "it" that tries to "compensate for this flaw"? The mood manager? The mood manager has no idea whether it is called because of automatic adventuring or manual adventuring. Therefore, you are describing current behavior for either automated or manual adventuring.It tries to compensate for this flaw by always leaving 1 turn of buff, so that the next adventure is already buffed.
Looks like that could go in your betweenBattleScript.There is one drawback to this: It would break some things if moods were run before the turn instead of after. For example, I have a script that runs unconditionally as part of my mood. In this moodScript...
PHP:if(item_amount($item[evil eye]) > 0) use(item_amount($item[evil eye]), $item[evil eye]);
That automatically uses my evil eyes as I gain them.
... or unless it was in your betweenBattleScript which is executed when you are about to adventure in the Nook.If that was run before my turn instead of afterwards it may often take me one more turn to complete the Nook, unless I manually use the last evil eye.
Emphasis added. Why do you need it to run after adventuring, rather than before, as when autoadventuring? If running before the adventure is correct for automated adventuring, why would it not also be correct for manual adventuring?If you want to run moods are run before manually adventuring, then betweenBattleScripts need to run after adventuring in the relay browser so that I can move my moodScript stuff to a betweenBattleScript and keep the functionality.
Well, ok, that would make it consistent. However, would change the current behavior of between battle scripts for automated adventuring, since they currently run before adventuring. Why do you need that to change?Moods should run before all adventures regardless of relay or automatic and betweenBattleScripts should run after all adventures regardless of relay or automatic. That would solve things nicely.
I'm inclined to run between battle scripts before adventuring when automating adventuring (the current behavior) and also before adventuring in the relay browser (new behavior, consistent with the current behavior of automated adventuring).
I agree with 1.To summarize this feature request, since it is a little complex and everything needs to work together.
- Make moods run consistently before adventures in both the GUI and relay browser.
- Fix betweenBattleScript to run after relay browser adventure as well as GUI.
- Change moods to automatically recast buffs that increase stats at 1 turn remaining and other buffs at 0 turns remaining.
I don't see the motivation for 2. It would be a change for automated adventuring. Justify it in another Feature Request. Or, perhaps, splitting betweenBattleScript into postBattleScript and preBattleScript is the desired Feature. Currently, betweenBattleScript is a preBattleScript.
I think 3 is reasonable. I think it could stand its own Feature Request, as well, since this will be a standalone change to moods, once mood execution is consistent in automated or manual adventuring.
Yes it would. moods, HP recovery, MP recovery, and the betweenBattleScript are the "between battle actions".That would be cool, the mood thing still wouldn't be consistent but at least we'd have something firing before an adventure in the relay browser.