• Visit Rebornbuddy
  • [Custom Deck] Silverfish AI

    Discussion in 'Archives' started by obtkamer, Jul 11, 2014.

    1. Nummus83

      Nummus83 Member

      Joined:
      Sep 19, 2011
      Messages:
      62
      Likes Received:
      0
      Trophy Points:
      6
      Anyone able to make an educated guess as to why I can only select Silverfish control or rush in the custom deck-section of the bot, and not the mulligan?

      -nummus
       
    2. 4kage

      4kage New Member

      Joined:
      Nov 7, 2014
      Messages:
      2
      Likes Received:
      0
      Trophy Points:
      0
      calculating stuff... 23:31:50.6288
      calculating ended! 23:31:50.6768
      play action
      play: Druid of the Claw target nothing
      should place minion left of your first minion (0 0)

      target failure...

      play action
      play: Druid of the Claw target nothing
      should place minion left of your first minion (0 0)


      and cant play this unit "Druid of the Claw" cant target 1 or 2 buff
       
    3. N3HL

      N3HL Member

      Joined:
      Mar 9, 2014
      Messages:
      41
      Likes Received:
      1
      Trophy Points:
      8
      Lol it doesn't change anything. You wouldn't even notice the difference.
       
    4. dagoso

      dagoso New Member

      Joined:
      Jul 22, 2012
      Messages:
      93
      Likes Received:
      0
      Trophy Points:
      0
      this custom deck sucks. always making the wrong choice.
       
    5. Vector

      Vector New Member

      Joined:
      Nov 11, 2014
      Messages:
      3
      Likes Received:
      0
      Trophy Points:
      0
      @obtkamer

      How do you change the mulligan around? When I make it 3 instead of 4, it still stays at 4. Also, can't get hunters mark or freezing trap to be taken off either. I have changed it both in the rush and control sections too but think that's for HC not HB... example below (changes in bold).

      public class HBMulligan : ICustomMulligan
      {
      private const int MaximumCost = 3;
      public IEnumerator DoMulligan()
      {
      Helpfunctions.Instance.ErrorLog("handle mulligan");
      List<HSCard> list = TritonHS.GetMulliganCards();

      HSCard enemyPlayer = TritonHS.EnemyHero;
      HSCard ownPlayer = TritonHS.OurHero;
      string enemName = Hrtprozis.Instance.heroIDtoName(enemyPlayer.Id);
      string ownName = Hrtprozis.Instance.heroIDtoName(ownPlayer.Id);

      if (Mulligan.Instance.hasmulliganrules(ownName, enemName))
      {

      List<Mulligan.CardIDEntity> celist = new List<Mulligan.CardIDEntity>();
      foreach (HSCard item in list)
      {
      if (item.Id != "GAME_005")// dont mulligan coin
      {
      celist.Add(new Mulligan.CardIDEntity(item.Id, item.EntityId));
      }
      }
      List<int> mullientitys = Mulligan.Instance.whatShouldIMulligan(celist, ownName, enemName);
      foreach (HSCard item in list)
      {
      if (mullientitys.Contains(item.EntityId))
      {
      Helpfunctions.Instance.ErrorLog("Rejecting Mulligan Card " + item.Name + " because of your rules");
      TritonHS.ToggleMulliganCard(item);
      yield return Coroutine.Sleep(1000);
      }
      }


      }
      else
      {
      foreach (HSCard item in list)
      {
      if (item.Cost >= 3)
      {
      Helpfunctions.Instance.ErrorLog("Rejecting Mulligan Card " + item.Name + " because it cost is >= 3.");

      TritonHS.ToggleMulliganCard(item);
      yield return Coroutine.Sleep(1000);
      continue;
      }
      if (item.Id == "EX1_308" || item.Id == "EX1_622" || item.Id == "EX1_005" || item.Id == "EX1_611" || item.Id == "CS2_084")
      {
      Helpfunctions.Instance.ErrorLog("Rejecting Mulligan Card " + item.Name + " because it is soulfire or shadow word: death");
      TritonHS.ToggleMulliganCard(item);
      yield return Coroutine.Sleep(1000);
      }
      }
      }



      yield return Coroutine.Sleep(1000);
      TritonHS.EndMulligan();
       
      Last edited: Nov 11, 2014
    6. jacks

      jacks Member

      Joined:
      Nov 3, 2012
      Messages:
      50
      Likes Received:
      0
      Trophy Points:
      6
      I was playing on arena when a player used ( legendary card ( Nozdormu ) player only have 15 seconds to take their turns .) I lost the round because the short time while there was a lot of card on board .
      if It is possible to conceder the time frame and skip any unnecessary action .
       
    7. runittwiice

      runittwiice New Member

      Joined:
      Mar 7, 2014
      Messages:
      310
      Likes Received:
      0
      Trophy Points:
      0
      Is it normal that the Silverfish.exe just keeps saying "wait for board"?
       
    8. kaime

      kaime New Member

      Joined:
      Jun 11, 2012
      Messages:
      127
      Likes Received:
      0
      Trophy Points:
      0
      Holy Light healed enemy minion.

      Code:
      #######################################################################
      start calculations, current time: 13:40:19 V113.9 rush 3000 face 15 ets 40 ets2 20 ents 20
      #######################################################################
      mana 10/10
      emana 10
      own secretsCount: 0
      enemy secretsCount: 0 ;
      player:
      0 0 0 2
      ownhero:
      pala 30 30 0 False False 36 True 0 False 0 0
      weapon: 0 0 unknown
      ability: True CS2_101
      osecrets: 
      enemyhero:
      warrior 30 30 2 False False 4
      weapon: 4 1 gorehowl
      ability: true CS2_102
      fatigue: 16 0 15 0
      OwnMinions:
      silverhandrecruit CS2_101t zp:1 e:80 A:1 H:1 mH:1 rdy:True natt:0
      EnemyMinions:
      spitefulsmith CS2_221 zp:1 e:32 A:4 H:4 mH:6 rdy:True ex silenced
      armorsmith EX1_402 zp:2 e:19 A:1 H:4 mH:4 rdy:False ex ptt
      Own Handcards: 
      pos 1 holylight 2 entity 46 CS2_089
      pos 2 consecration 4 entity 61 CS2_093
      pos 3 spellbreaker 4 entity 50 EX1_048
      pos 4 guardianofkings 7 entity 59 CS2_088
      Enemy cards: 2
      ownDiedMinions: 
      enemyDiedMinions: 
      og: 864,1;21,1;706,1;115,1;507,2;803,1;510,1;82,1;656,1;
      eg: 797,1;232,1;415,1;109,1;869,1;298,2;756,1;209,1;503,1;
      received 13:40:19:0543 actions to do:
      play id 46 target 32 pos 1
      attack 80 enemy 4
      play id 59 pos 2
      set best action-----------------------------------
      -a-
      play id 46 target 32 pos 1
      
      -a-
      attacker: 80 enemy: 4
      
      -a-
      play id 59 pos 2
      
      nmgsim-
      nmgsime-
      play id 46 target 32 pos 1
      
      play: Holy Light target: Spiteful Smith choice: 0
      recalc-check###########
      enemyhero changed 30 30 4 2 2 2 1 1 False False False False
      #######################################################################
       
    9. Naughtbutaservant

      Naughtbutaservant New Member

      Joined:
      Nov 11, 2014
      Messages:
      1
      Likes Received:
      0
      Trophy Points:
      0
      I don't know if you are aware (or if someone already mentioned this glitch). I constantly see my Shaman making the mistake of using a Totemic might on a turn that he will eventually use Totemic Call. I could be wrong, but this sounds like the incorrect play 100% of the time.

      Is there anything that can be done about this?
       
    10. runittwiice

      runittwiice New Member

      Joined:
      Mar 7, 2014
      Messages:
      310
      Likes Received:
      0
      Trophy Points:
      0
      Anyone?

      When I add a "test.txt" file to the map, the Silver.exe starts simulating stuff and then crashes?
       
    11. alvinma

      alvinma New Member

      Joined:
      Sep 12, 2014
      Messages:
      38
      Likes Received:
      0
      Trophy Points:
      0
      The download link in the main thread always gives you the latest version
       
    12. jacks

      jacks Member

      Joined:
      Nov 3, 2012
      Messages:
      50
      Likes Received:
      0
      Trophy Points:
      6
      Question 1 .
      what I need to change on silverfish_HB.cs to make the bot calculate and play,attck,use abilities without any delay ?

      Question 2 .
      need more info regarding these numbers .

      int amountBoardsInEnemyTurnSim = 40;
      int amountBoardsInEnemyTurnSimSecondStepp = 200;
      int amountBoardsInEnemySecondTurnSim = 20;

      int nextturnsimDeep = 6;
      int nextturnsimMaxWidth = 20;
      int nexttunsimMaxBoards = 200;
       
    13. donleon

      donleon New Member

      Joined:
      Oct 18, 2014
      Messages:
      14
      Likes Received:
      0
      Trophy Points:
      0
      Missbehaviour:

      The bot should have had lethal on an enemy mage, but missplaced the defender or argus so that only one minion got buffed. The mage survived with 1 hp.

      In general it would be awesome if the bot would get a function that "if number of minions >=2 always place defender of argus between them" because even if the bot was protecting some priority target ( which usually he doesn´t ) it is an unecessary loss of buffs /stats.

      File-Upload.net - UILogg_2014-11-15_14-49-24.txt
       
    14. donleon

      donleon New Member

      Joined:
      Oct 18, 2014
      Messages:
      14
      Likes Received:
      0
      Trophy Points:
      0
      Hi botmaker,

      2 more general remarks:

      The bot plays "earth shock" on targets and hexes them afterwards ( shaman )

      also he is extremely conservative while playing nerubian egg. can you make it so that it is a priority to get it on the field ? it is more useful early to bait out silences, hexes or simply counter AoE clear than always just playing it last when its the only option left.

      thank you very much in advance.
       
    15. Kublai

      Kublai New Member

      Joined:
      Oct 25, 2014
      Messages:
      18
      Likes Received:
      0
      Trophy Points:
      0
      Heroic Strike waste

      Hi, I've just seen the AI playing Heroic Strike just after attacking with the weapon instead of playing Jungle Panther and so effectively wasting 4 damage.
      Could have lethal two rounds after with that damage in hand :-(
      View attachment UILogg_2014-11-21_23-16-21.txt
       
    16. stefsot

      stefsot New Member

      Joined:
      Nov 20, 2014
      Messages:
      20
      Likes Received:
      0
      Trophy Points:
      0
      it keeps using life tap on warlock constantly losing a lot of health, is there a settings I shoud change?
       
    17. obtkamer

      obtkamer New Member

      Joined:
      May 27, 2014
      Messages:
      261
      Likes Received:
      4
      Trophy Points:
      0
      so my vacances are over and i have time for you guys :D

      @tumbum (coin issue) its a bug with hrtbuddy

      @lsqlhl5862 https://www.thebuddyforum.com/heart...custom-deck-silverfish-ai-82.html#post1667060

      @Jack you find the exe somewhere on my github page, to use it copy it to the rigth place (Data folder) and change this line frome false to true:
      this.useExternalProcess = true;

      and the speed is in the most cases the same, simply because your tested boards are to small :D

      which number related to = Boards calculated each depth level .?

      there is not such an setting (only in the second turn simulation:
      int nextturnsimMaxWidth = 10;)

      which number related to = Childs board kept for next depth level search .?

      int mxwde = 3000;


      which number related to = Boards kept for enemy turn simulation .?

      there is not such an setting! only a number for on how much boards are the second turn simulation is performed int twotsamount = 256; (if you use silver.exe set it to 1000 and above)

      @ik777 the placement setting is only recomended with the exe :D

      @jacks the second turn simulation uses (up to) 32 cores.

      @kaime jeah, because silver.rush have his own settings. just search for this a second time: settings#####################

      @Vector did you tried the mulligan-stuff i posted? (see link above)

      @jacks i have to lower the settings in the nozdurm case :D

      @runittwice you have to activate it in source and copy it into the right folder(see above)
      and please dont put a empty test.exe in the same folder as the silver.exe! (it have to contain a board to simulate (the stuff you should post in an correct bugreport!)

      @NaughtbutToLongName i look at this can you post a uai-log?

      @jacks for the delay: i created a special version, with some log for the timings.will post it later!
      edit use this one and send me crawler + uai log:

      https://drive.google.com/file/d/0BxhxijYPL-BGMGxWVWhfdG42Yzg/view?usp=sharing

      and read https://www.thebuddyforum.com/heart...custom-deck-silverfish-ai-83.html#post1668004 for your settings.

      @all thanks for your reports, im going to look at it soon.
       
      Last edited: Nov 22, 2014
    18. laria

      laria Well-Known Member

      Joined:
      Jan 15, 2010
      Messages:
      5,386
      Likes Received:
      36
      Trophy Points:
      48
      I think one should mulligan the kill enemy with an attack value of 5 or higher as a priest,not much use at the start of the game
       
    19. Vector

      Vector New Member

      Joined:
      Nov 11, 2014
      Messages:
      3
      Likes Received:
      0
      Trophy Points:
      0
      Was able to figure it out in the Silverfish_BH file. Just needed to reboot the game itself to put it into effect (I guess the changes didn't go into effect until then).

      Also, the crawler code allows for the mulligan to be different for Rush and Control. However, the HB code seems to only allow for one type of mulligan in the HB file itself. Any way to emulate crawler and have it different for the different play types?

      Also, not sure if anyone has reported this bug yet but after a frost trap is played on a card - that card is put back on the field even with its higher cost despite it not being the best option. It happened on a flame imp that i played (see log).
       

      Attached Files:

      Last edited: Nov 22, 2014
    20. godshades

      godshades New Member

      Joined:
      Nov 23, 2014
      Messages:
      14
      Likes Received:
      0
      Trophy Points:
      0

    Share This Page