• Visit Rebornbuddy
  • Visit Panda Profiles
  • Visit LLamamMagic
  • [Bug] Concede next game

    Discussion in 'Hearthbuddy Support' started by Iso, Sep 7, 2016.

    1. Iso

      Iso Member

      Joined:
      Sep 30, 2014
      Messages:
      323
      Likes Received:
      5
      Trophy Points:
      18
      Bot when concedes next game after win doesnt check if "Keep rank" box is still checked.
      Turning off concede still gives up next game in case prev game was a win.
       
    2. Tony

      Tony "The Bee" Staff Member Moderator

      Joined:
      Jan 15, 2010
      Messages:
      128,834
      Likes Received:
      571
      Trophy Points:
      113
      we will check it asap
       
    3. Tony

      Tony "The Bee" Staff Member Moderator

      Joined:
      Jan 15, 2010
      Messages:
      128,834
      Likes Received:
      571
      Trophy Points:
      113
      It's working as intended, when you won the game, you wanted to concede the next game, so the bot stores that so when the next game is played, the rank is kept. Turning off the option means from that point in time forward, it shouldn't concede after winning.
       
    4. Iso

      Iso Member

      Joined:
      Sep 30, 2014
      Messages:
      323
      Likes Received:
      5
      Trophy Points:
      18
      "working as intended"? If you mean it's not bug (as an error in the code) and is mistake in code project - is still bug to me.

      I played my 30 games Unranked with Keep Constructed Rank/MMR ON. After 30th win bot stops with autostop. Now I wanna play some Ranked games. I switch off Keep Constructed Rank/MMR, probably pick another deck and hit Start. Result is -1 star. Was not intended. Defenetly not.

      Code:
      ...
      2016-09-08 18:58:29,203 [6] INFO  Logger (null) - [DefaultBotSettings] AutoConcedeAfterConstructedWin = True.
      2016-09-08 18:58:29,204 [6] INFO  Logger (null) - [DefaultBotSettings] AutoConcedeNextConstructedGame = True.
      ...
      2016-09-08 18:59:06,433 [1] INFO  Logger (null) - [DefaultBotSettings] AutoConcedeAfterConstructedWin = False.
      2016-09-08 18:59:08,867 [1] INFO  Logger (null) - [Start] Now creating the BotThread.
      ...
      2016-09-08 19:00:37,627 [14] INFO  Logger (null) - [GameplayScene_MAIN_ACTION] The next concede delay was rolled to be 2419 [100 - 3000].
      ...
      2016-09-08 19:00:42,565 [14] INFO  Logger (null) - [GameplayScene_MAIN_ACTION] Now setting AutoConcedeNextConstructedGame to 'false' because we just conceded the next constructed game.
      2016-09-08 19:00:42,566 [14] INFO  Logger (null) - [DefaultBotSettings] AutoConcedeNextConstructedGame = False.
      
       

      Attached Files:

    5. pushedx

      pushedx Moderator Moderator Buddy Core Dev

      Joined:
      Sep 24, 2013
      Messages:
      4,252
      Likes Received:
      290
      Trophy Points:
      83
      Hi Iso, I wanted to explain to you the issue you are seeing and what you can do to avoid it.

      The "Keep Constructed Rank/MMR" option is a flag to tell the bot to concede the next non-arena/practice game it is playing. When enabled, and you win a game, the bot stores a value that tells it that it needs to concede the next game.

      So, let's say you want to play games until 2 wins, and keep your stats approximately balanced (approximately, because the logic intentionally allows win creep due to multi-concede chains):

      You start game 1
      You win game 1: bot sets the flag so the next game played will be conceded.
      You start game 2
      Bot concedes game 2 because the flag is set and clears the flag.
      You start game 3
      You win game 3: bot sets the flag so the next game played will be conceded.

      At this point, you have AutoStop set to to stop at 2 wins, not at 2 concedes, so it actually stops. Please note, AutoStop is its own plugin, separate from the bot implementation that you run. HSB only has one bot implementation due to a number of unfortunate reasons, but if it had more, the design of things might make a little more sense because everything isn't tied together (which is why you can reset Stats, and it won't affect AutoStop, and vice-versa).

      The next game you play, the bot still has the flag set. That is because you had the bot stop before it finished balancing your stats. If we cleared the concede flag when you unchecked the option, then you'd see a heavily expedited process of win creep, because you're never conceding after your last game. The flag is global to "constructed", and not tied to individual game modes, because the config system is meant to be used to keep everything organized and separate. That's not to say it might not be better for more logic to try and keep track of which game mode you are in, but these plugins and implementations are simple and work, so it might be a future consideration.

      Obviously though, this isn't desired in your case due to the loss of rank as you mentioned, so here's some tips as to how you can avoid it.

      First, consider making different configs for your different game modes. The initial config is called Default, but if you use it to do a bunch of different things, you'll run into settings conflicts like this. Instead, at startup, type a new name instead of Default, and all your settings will be kept specific to that config. Only use that config for the game modes/decks you have it set to, and you should avoid most issues.

      Second, if you don't want to make different configs, I highly recommend you do though, you need to set AutoStop to stop based on Concedes. One thing that isn't made super clear (because the option has existed long before the AI did it) is that the concede tracking is "win-concede tracking", not the AI conceding in a losing situation. If you were to stop at 2 concedes instead of 2 wins, your stats would be balanced, so when AutoStop actually kicked in, the next game you play will not be a concede.

      Give either of those a try and see if you can find which works best for you, good luck! :)
       
    6. Iso

      Iso Member

      Joined:
      Sep 30, 2014
      Messages:
      323
      Likes Received:
      5
      Trophy Points:
      18
      First of all, thank you for detailed explanation tho I did understand how it is designed before posting a problem.

      Second, both your workarounds seems very reasonable. I have my own workarounds too. But please note, that problem starts when this design will prevent someone from getting like really desired rank due to not implementing one of workarounds. Like legend. Will be a pain. :)

      Third, I somehow missed information how to manage configs - thank you for explanation.

      Fourth, please note that design doesnt assure a balance you mentioned. It does so only in case you never lose. Otherwise it plays "in minus".

      Fifth, Autostop plugin was just an example. I ment any kind of interruption with AutoConcedeNextConstructedGame = True stored. Followed by config/behavior change.

      Taking in consideration all above I cant find any reasoning to keep AutoConcedeNextConstructedGame = True outside of the Bot thread. More harm then good. Am I missing something?
       

    Share This Page