PokemonAutomation / AutoMaxLair

Bot for automating shiny hunting in Dynamax Adventures
GNU General Public License v3.0
25 stars 14 forks source link

Saves the use of a Legendary Ball upon reaching the MAXIMUM_ORE_COST limit to reset the consecutive resets #92

Closed SilverDeoxys563 closed 3 years ago

SilverDeoxys563 commented 3 years ago

Think I covered it all in the title. Was hunting for Mesprit and noticed my count of precious beast balls I had spent some time getting from the White bot on SHA mysteriously went down while I was using the new MAXIMUM_ORE_COST feature, and I figured out what the issue was. :(

image

I'm using this feature in conjunction with STRONG_BOSS mode, btw. That should give you guys the full context. I was hoping to not spend any legendary balls whatsoever except for IFF it finds a shiny, regardless of legendary or not. I guess I can get more balls at some point lol

mfw this is an issue image

I'm thinking there's going to need to be some logic that gets implemented during the catch scene to make it back out and flee, but isn't there something similar already in place for the BALL_SAVER mode when it runs out of ore? Maybe you could call that bit of code here or however it works to help solve this one.

pifopi commented 3 years ago

Hello ! I should have read the issue before answering on discord ! That's the intended way with strong boss. Strong boss doesn't try to reduce the legendary ball usage. That's what ball saver does. If you want to save your legendary ball, you should use BALL SAVER https://discord.com/channels/695809740428673034/722200321916534876/821279699090538516

denvoros commented 3 years ago

Labeling as "won't fix" since it currently isn't within our scope of plans.

We don't have plans to allow hunting shinies when you successfully catch a boss while trying to save the ball. This is because it will still eat your legendary ball, and if you only have one it will force the program to end. We might consider this in the future, but it is not a mode worth investing in at this time since there's no good way to really continue this behavior. We may revisit this in the future, thanks for the suggestion.

denvoros commented 3 years ago

Wait a second, I misread your issue. This is probably a bug. We'll take a look.

denvoros commented 3 years ago

Oh, nevermind, I think I understand what both of you are saying....

This is intended with strong boss since strong boss will reset until you run out of ore. This new mode allows you to set the most ore spent before another reset. I believe it is functioning as intended with STRONG_BOSS, since there is no guarantee for non-legendary shinies or stuff.

SilverDeoxys563 commented 3 years ago

Yeah my post was poorly worded originally, I see that now... let me see if I can word it differently:

What's happening is that on the run where it intends to clear the boss and let the game save after the win, what I was expecting was for it to intentionally not catch the legendary like BALL_SAVER mode would do on a run where it would have run out of ore but needs to continue on to the next seed. Instead, the new MAXIMUM_ORE_COST flag makes it uses a ball and catches the legendary, and saves the fact that it used a ball. This is what I didn't like and was not sure if this was intentional, especially since anything other than the DEFAULT run mode intends to try to save your legendary balls whenever reasonably possible. Even STRONG_BOSS tries to save your balls by resetting on good seeds, right? I just consider taking non-legendary shinies to be worth the use of one legendary ball.

If it catches the legendary and uses the ball on the run that would make the ore count too expensive for it to want to reset, and finds that there were no shinies, it currently doesn't consider that and wastes the ball anyway. Hopefully that makes sense... it's just disappointing and can lead to the legendary balls being used rapidly, especially if the ore count is set to a lower value like 4 or 5--as on the 4th and 5th runs of a winning seed respectively, it will use a ball AND save the fact that it used a ball.

Hope that makes sense lol

pifopi commented 3 years ago

Even STRONG_BOSS tries to save your balls by resetting on good seeds, right? That's rather a side effect :D We reset to keep the seed, not the ball. It just end up doing both. What the maximum ore cost do is like "faking" you don't have enough ore to reset. And in that case, strong boss will still use the legendary ball. That way it has a chance to get a shiny legendary. (Strong boss isn't intended to be used with rare ball) Though, I totally see your point and yes it's a new mode, between strong boss and ball saver

ercdndrs commented 3 years ago

I still agree with the initial appraisal of @denvoros and @pifopi—I think the current bot behaviour is as we intended and I don't think we should change it. Changing STRONG BOSS to skip catching the legendary would reduce the efficiency for other users who are using the mode as intended.

@SilverDeoxys563 if you don't want to spend your rare balls, use BALL SAVER mode or save up on ore beforehand and set MAXIMUM_ORE_COST to 10.