• Visit Rebornbuddy
  • Visit Panda Profiles
  • Visit LLamamMagic
  • mulligan + calculation tweaks

    Discussion in 'Hearthbuddy Support' started by AnonymusQQ, Nov 21, 2015.

    1. AnonymusQQ

      AnonymusQQ New Member

      Joined:
      Nov 14, 2015
      Messages:
      10
      Likes Received:
      0
      Trophy Points:
      0
      HearthBuddy\Routines\DefaultRoutine\DefaultRoutine .cs (mulligan + calculation tweaks). I have no idea have to do this, but i would really to know how to do. If any of you guys know how, please let me know, Thanks !
      This bot's doing so idiot things..perhaps because there is no mulligan + calculation tweaks for me??? Please help me guys.
       
    2. skychris66

      skychris66 New Member

      Joined:
      Sep 21, 2015
      Messages:
      12
      Likes Received:
      0
      Trophy Points:
      0
      Hi AnonymusQQ

      Copy - past - replaces this DefaultRoutine .cs . into yours replace all
      This routines works good
      anjoy :)



      using System;
      using System.Collections.Generic;
      using System.IO;
      using System.Linq;
      using System.Threading.Tasks;
      using System.Windows.Controls;
      using System.Windows.Data;
      using System.Windows.Documents;
      using System.Windows.Markup;
      using Buddy.Coroutines;
      using HREngine.Bots;
      using IronPython.Modules;
      using log4net;
      using Microsoft.Scripting.Hosting;
      using Triton.Bot;
      using Triton.Common;
      using Triton.Game;
      using Triton.Game.Data;

      //!CompilerOption|AddRef|IronPython.dll
      //!CompilerOption|AddRef|IronPython.Modules.dll
      //!CompilerOption|AddRef|Microsoft.Scripting.dll
      //!CompilerOption|AddRef|Microsoft.Dynamic.dll
      //!CompilerOption|AddRef|Microsoft.Scripting.Metadata.dll
      using Triton.Game.Mapping;

      using Logger = Triton.Common.LogUtilities.Logger;

      namespace HREngine.Bots
      {
      public class DefaultRoutine : IRoutine
      {
      private static readonly ILog Log = Logger.GetLoggerInstanceForType();
      private readonly ScriptManager _scriptManager = new ScriptManager();

      private readonly List<Tuple<string, string>> _mulliganRules = new List<Tuple<string, string>>();

      private int dirtyTargetSource = -1;
      private int stopAfterWins = 30;
      private int concedeLvl = 5; // the rank, till you want to concede
      private int dirtytarget = -1;
      private int dirtychoice = -1;
      private string choiceCardId = "";
      DateTime starttime = DateTime.Now;
      bool enemyConcede = false;

      public bool learnmode = false;
      public bool printlearnmode = true;

      Behavior behave = new BehaviorControl();//change this to new BehaviorRush() for rush mode
      //Behavior behave = new BehaviorRush();

      public DefaultRoutine()
      {

      // Global rules. Never keep a 3+ minion, unless it's deathlord (priest).
      _mulliganRules.Add(new Tuple<string, string>("True", "card.Entity.Cost >= 3 and card.Entity.Id != "FP1_009""));

      // Never keep aldorpeacekeeper.
      _mulliganRules.Add(new Tuple<string, string>("mulliganData.UserClass == TAG_CLASS.PALADIN", "card.Entity.Id == "EX1_382""));

      // Never keep Equality.
      _mulliganRules.Add(new Tuple<string, string>("mulliganData.UserClass == TAG_CLASS.PALADIN", "card.Entity.Id == "EX1_619""));

      // Never keep Tracking.
      _mulliganRules.Add(new Tuple<string, string>("mulliganData.UserClass == TAG_CLASS.HUNTER", "card.Entity.Id == "DS1_184""));

      // Example rule for self.
      //_mulliganRules.Add(new Tuple<string, string>("mulliganData.UserClass == TAG_CLASS.MAGE", "card.Cost >= 5"));

      // Example rule for opponents.
      //_mulliganRules.Add(new Tuple<string, string>("mulliganData.OpponentClass == TAG_CLASS.MAGE", "card.Cost >= 3"));

      // Never keep repentance.
      _mulliganRules.Add(new Tuple<string, string>("mulliganData.UserClass == TAG_CLASS.PALADIN", "card.Entity.Id == "EX1_379""));

      // Never keep aldorpeacekeeper.
      _mulliganRules.Add(new Tuple<string, string>("mulliganData.UserClass == TAG_CLASS.PALADIN", "card.Entity.Id == "EX1_382""));

      // Never keep redemption.
      _mulliganRules.Add(new Tuple<string, string>("mulliganData.UserClass == TAG_CLASS.PALADIN", "card.Entity.Id == "EX1_136""));

      // Never keep Competitive spirit.
      _mulliganRules.Add(new Tuple<string, string>("mulliganData.UserClass == TAG_CLASS.PALADIN", "card.Entity.Id == "AT_073""));

      // Never keep equality
      _mulliganRules.Add(new Tuple<string, string>("mulliganData.UserClass == TAG_CLASS.PALADIN",
      "card.Entity.Id == "EX1_619""));

      // Never keep ironbeakowl
      _mulliganRules.Add(new Tuple<string, string>("mulliganData.UserClass == TAG_CLASS.PALADIN",
      "card.Entity.Id == "CS2_203""));

      // Never keep savageroar
      _mulliganRules.Add(new Tuple<string, string>("mulliganData.UserClass == TAG_CLASS.DRUID",
      "card.Entity.Id == "CS2_011""));

      // Never keep innervate
      _mulliganRules.Add(new Tuple<string, string>("mulliganData.UserClass == TAG_CLASS.DRUID",
      "card.Entity.Id == "EX1_169""));

      // Never keep biggamehunter.
      _mulliganRules.Add(new Tuple<string, string>("mulliganData.UserClass == TAG_CLASS.WARLOCK", "card.Entity.Id == "EX1_005""));

      // Never keep innerfire
      _mulliganRules.Add(new Tuple<string, string>("mulliganData.UserClass == TAG_CLASS.PRIEST", "card.Entity.Id == "CS1_129""));

      // Never keep divinespirit
      _mulliganRules.Add(new Tuple<string, string>("mulliganData.UserClass == TAG_CLASS.PRIEST", "card.Entity.Id == "CS2_236""));

      _mulliganRules.Add(new Tuple<string, string>("mulliganData.UserClass == TAG_CLASS.WARRIOR", "card.Entity.Id == "EX1_005""));

      _mulliganRules.Add(new Tuple<string, string>("mulliganData.UserClass == TAG_CLASS.ROGUE", "card.Entity.Id == "EX1_005""));

      _mulliganRules.Add(new Tuple<string, string>("mulliganData.UserClass == TAG_CLASS.PALADIN", "card.Entity.Id == "EX1_005""));

      _mulliganRules.Add(new Tuple<string, string>("mulliganData.UserClass == TAG_CLASS.MAGE", "card.Entity.Id == "EX1_005""));

      _mulliganRules.Add(new Tuple<string, string>("mulliganData.UserClass == TAG_CLASS.DRUID", "card.Entity.Id == "EX1_005""));

      _mulliganRules.Add(new Tuple<string, string>("mulliganData.UserClass == TAG_CLASS.PRIEST", "card.Entity.Id == "EX1_005""));

      _mulliganRules.Add(new Tuple<string, string>("mulliganData.UserClass == TAG_CLASS.SHAMAN", "card.Entity.Id == "EX1_005""));

      _mulliganRules.Add(new Tuple<string, string>("mulliganData.UserClass == TAG_CLASS.HUNTER", "card.Entity.Id == "EX1_005""));

      // Example rule for matchups.
      //_mulliganRules.Add(new Tuple<string, string>("mulliganData.userClass == TAG_CLASS.HUNTER && mulliganData.OpponentClass == TAG_CLASS.DRUID", "card.Cost >= 2"));

      bool concede = false;

      // play with these settings###################################
      int enfacehp = 15; // hp of enemy when your hero is allowed to attack the enemy face with his weapon
      int mxwde = 0; // numer of boards which are taken to the next deep-lvl
      int twotsamount = 0; // number of boards where the next turn is simulated
      bool enemySecondTurnSim = true; // if he simulates the next players-turn, he also simulates the enemys respons

      bool playaround = true; //play around some enemys aoe-spells?
      //these two probs are >= 0 and <= 100
      int playaroundprob = 50; //probability where the enemy plays the aoe-spell, but your minions will not die through it
      int playaroundprob2 = 80; // probability where the enemy plays the aoe-spell, and your minions can die!

      int amountBoardsInEnemyTurnSim = 70;
      int amountBoardsInEnemyTurnSimSecondStepp = 200;
      int amountBoardsInEnemySecondTurnSim = 70;

      int nextturnsimDeep = 6;
      int nextturnsimMaxWidth = 200;
      int nexttunsimMaxBoards = 400;
      int ImprovedCalculations = 1;

      bool secrets = true; // playing arround enemys secrets

      int alpha = 50; // weight of the second turn in calculation (0<= alpha <= 100)

      HREngine.Bots.Settings.Instance.simulatePlacement = false; //rudiment!!! set this true, and ai will simulate all placements, whether you have a alpha/flametongue/argus
       

    Share This Page