Fate-Grand-Automata / FGA

Auto-battle app for F/GO Android
https://fate-grand-automata.github.io
MIT License
1.39k stars 266 forks source link

Prompt for manual input if the battle script fails (especially before final wave) #1645

Open danilaml opened 11 months ago

danilaml commented 11 months ago

Preparation

Describe the feature

As discussed on discord, this feature is useful when you are running not 100% consistent setup (say 99%), or FGA messes up due lag spikes (which can't be dealt with by increasing delays, like on my device, since those are while rare are not consistent and can take up to 10 seconds).

If the script assumed that there will be NP on wave 2 and then it'll switch to wave 3, but for some reason it didn't happen when expected, there is almost no way for FGA to automatically recover. Most often it'll try to facecard wave 2 and even if it succeeds, it'll definitely fail on wave3 since the buffs will be gone and it'll be almost impossible to blindly face card.

So I propose in such situations (could be controlled via simple checkbox option) to just stop prompting user for a manual input, as it can currently do when failing to find the specified support after some number of retries. Since currently it'll require manual intervention anyway, but the user will be faced will "party wipe" screen and will have to decide to either waste time/AP or use CS/sq to revive.

jbradford5739 commented 11 months ago

Nero Fest runs getting totally derailed by lag spikes has been driving me crazy, so very in favor of this; I'd love to not have to intervene at all, but if I have to, I'd rather do so before one or more turns have been wasted trying to face card through a wave.

balthanon commented 7 months ago

I was about to write an issue for this same problem after I found a couple of my runs dead today. It seems to me like you could actually handle checking for a failure fairly easily by being able to set how many rounds in a wave you'll allow before considering the run a failure.

For instance, if you're expecting a script to take 3 turns every time, you might specify that any time you have two rounds on a single wave it fails back to manual entry (and ideally trigger a notification sound). If your script and spam options are a bit more resilient, you might let it run a round or two on each wave, but if it goes over 3 you can assume something went disastrously wrong and it needs manual intervention.

Ideally, I think this would be something you would want to set per wave as well (since you might be face carding an entire wave), likely in the same place you indicate face card and servant priority.