//具体策略 public ProfileParameters GetParameters(Board board) { Card z = board.Hand.Find(x => x.Template.Id > 0); Card y = board.Hand.FindLast(x => x.Template.Id > 0); int 流放牌数 = board.Hand.Count(x => x.CurrentCost > 0 && BoardHelper.IsOutCastCard(x, board) == true); int 古尔丹流放牌数 = board.Hand.Count(x => x.CurrentCost > 0 && BoardHelper.IsGuldanOutCastCard(x, board) == true); Bot.Log("流放牌数 = " + (int)(流放牌数 + 古尔丹流放牌数)); //Bot.Log("右:是否流放: " + BoardHelper.IsOutCastCard(y, board)); #region 自定义变量 int twoHpMinionsCount = board.MinionEnemy.Count(minion => minion.CurrentHealth <= 2); //对面小于等于2血的随从数量 int threeHpMinionsCount = board.MinionEnemy.Count(minion => minion.CurrentHealth <= 3) - board.MinionFriend.FindAll(x => x.CurrentAtk >= 3).Count; //对面小于等于3血的随从数量 int fiveHpMinionsCount = board.MinionEnemy.Count(minion => minion.CurrentHealth <= 5) - board.MinionFriend.FindAll(x => x.CurrentAtk >= 5).Count; //对面小于等于5血的随从数量 #endregion #region 攻击模式 var p = new ProfileParameters(BaseProfile.Rush) { DiscoverSimulationValueThresholdPercent = -10 }; int myAttack = 0; int enemyAttack = 0; if (board.MinionFriend != null) { for (int x = 0; x < board.MinionFriend.Count; x++) { myAttack += board.MinionFriend[x].CurrentAtk; } } if (board.MinionEnemy != null) { for (int x = 0; x < board.MinionEnemy.Count; x++) { enemyAttack += board.MinionEnemy[x].CurrentAtk; } } if (board.WeaponEnemy != null) { enemyAttack += board.WeaponEnemy.CurrentAtk; } if ((int)board.EnemyClass == 2 || (int)board.EnemyClass == 7 || (int)board.EnemyClass == 8) { enemyAttack += 1; } else if ((int)board.EnemyClass == 6) { enemyAttack += 2; } if ((board.EnemyAbility.Template.Id == Card.Cards.AT_132_PALADIN || board.EnemyClass == Card.CClass.MAGE || board.EnemyClass == Card.CClass.DRUID) && board.HeroEnemy.CurrentHealth >= 16) { p = new ProfileParameters(BaseProfile.Default) { DiscoverSimulationValueThresholdPercent = -10 }; } if ((board.EnemyAbility.Template.Id == Card.Cards.AT_132_PALADIN || board.EnemyClass == Card.CClass.MAGE || board.EnemyClass == Card.CClass.DRUID) && board.HeroEnemy.CurrentHealth < 16) { p = new ProfileParameters(BaseProfile.Rush) { DiscoverSimulationValueThresholdPercent = -10 }; } #endregion #region 权重初始化 //技能卡 p.CastSpellsModifiers.AddOrUpdate(Card.Cards.BT_490, new Modifier(40)); //吞噬魔法 p.CastSpellsModifiers.AddOrUpdate(Card.Cards.BT_753, new Modifier(120)); //法力燃烧 p.CastSpellsModifiers.AddOrUpdate(Card.Cards.BT_491, new Modifier(50)); //幽灵视觉 p.CastSpellsModifiers.AddOrUpdate(Card.Cards.BT_035, new Modifier(30)); //混乱打击 p.CastSpellsModifiers.AddOrUpdate(Card.Cards.BT_601, new Modifier(30)); //古尔丹的脑袋 p.CastSpellsModifiers.AddOrUpdate(Card.Cards.BT_187, new Modifier(200, board.HeroEnemy.Id)); //日怒 p.CastSpellsModifiers.AddOrUpdate(Card.Cards.HERO_10p_UP, new Modifier(50, board.HeroEnemy.Id)); //恶魔之咬-奇数瞎 //随从卡 p.CastMinionsModifiers.AddOrUpdate(Card.Cards.BT_323, new Modifier(120)); //盲眼监视者 //武器卡 p.CastWeaponsModifiers.AddOrUpdate(Card.Cards.BT_922, new Modifier(50)); //棕红之翼 p.CastWeaponsModifiers.AddOrUpdate(Card.Cards.BT_921, new Modifier(120)); //奥达奇 //硬币 p.CastSpellsModifiers.AddOrUpdate(Card.Cards.TB_011, new Modifier(50)); #endregion #region 随从权重 if (board.ManaAvailable >= 4 && (board.HasCardInHand(Card.Cards.BT_187)) && board.FriendDeckCount >= 2 || board.EnemyClass == Card.CClass.DEMONHUNTER)//DH内战,日怒直接下 { p.CastMinionsModifiers.AddOrUpdate(Card.Cards.BT_187, new Modifier(100)); } else { p.CastMinionsModifiers.AddOrUpdate(Card.Cards.BT_187, new Modifier(180)); }//日怒权重 if (board.ManaAvailable <= 3 && (board.Hand.Exists(x => x.Template.Id == Card.Cards.BT_351) || board.Hand.Exists(x => x.Template.Id == Card.Cards.BT_323) || board.Hand.Exists(x => x.Template.Id == Card.Cards.BT_922) || board.Hand.Exists(x => x.Template.Id == Card.Cards.EX1_066) || board.Hand.Exists(x => x.Template.Id == Card.Cards.BT_352)) && board.Hand.Exists(x => x.Template.Id == Card.Cards.BT_035)) { p.CastSpellsModifiers.AddOrUpdate(Card.Cards.BT_035, new Modifier(400)); }//2费卡牌权重 if (board.ManaAvailable == 1 && board.Hand.Exists(x => x.Template.Id == Card.Cards.GAME_005) && board.Hand.Count(x => x.Template.Id == Card.Cards.BT_490) == 1 && (board.Hand.Exists(x => x.Template.Id == Card.Cards.BT_351) || board.Hand.Exists(x => x.Template.Id == Card.Cards.BT_480)) && !board.Hand.Exists(x => x.Template.Id == Card.Cards.BT_753)) { p.CastMinionsModifiers.AddOrUpdate(Card.Cards.BT_490, new Modifier(400)); }//1费卡牌权重 if (board.ManaAvailable <= 2 && board.Hand.Exists(x => x.Template.Id == Card.Cards.BT_323) && board.Hand.Count(card => card.Template.Id == Card.Cards.BT_601) == 0) { p.CastMinionsModifiers.AddOrUpdate(Card.Cards.BT_323, new Modifier(40)); }//2费之前没古尔丹脑袋,下盲眼监视者 if (board.Hand.Exists(x => x.Template.Id == Card.Cards.BT_323) && BoardHelper.GetPlayableSpellSequence(board).Count == 0 && board.EnemyClass == Card.CClass.WARLOCK) { p.CastMinionsModifiers.AddOrUpdate(Card.Cards.BT_323, new Modifier(40)); }//没可以打的法术,下盲眼监视者 if (board.ManaAvailable == 1 && board.Hand.Exists(x => x.Template.Id == Card.Cards.BT_351) && board.MinionEnemy.Count == 0) { p.CastMinionsModifiers.AddOrUpdate(Card.Cards.FP1_004, new Modifier(40)); }//1费对面没有随从,下战斗邪犬 else if (board.ManaAvailable == 1 && board.Hand.Exists(x => x.Template.Id == Card.Cards.GAME_005) && board.Hand.Count(x => x.Template.Id == Card.Cards.BT_323) == 1 && board.Hand.Exists(x => x.Template.Id == Card.Cards.BT_922)) { p.CastMinionsModifiers.AddOrUpdate(Card.Cards.BT_323, new Modifier(2000)); }//1费手里有棕红和盲眼监视者,不跳费下盲眼监视者 else if (board.ManaAvailable >= 4 && !board.Hand.Exists(x => x.Template.Race == Card.CRace.DEMON)) { p.CastMinionsModifiers.AddOrUpdate(Card.Cards.BT_416, new Modifier(250)); }//手牌没恶魔,降低暴怒权重 if (board.Hand.Exists(x => x.Template.Id == Card.Cards.BT_937) && board.Hand.Count < 2) { p.CastMinionsModifiers.AddOrUpdate(Card.Cards.EX1_612, new Modifier(300)); }//手里没有能打的流放牌,降低流放者权重(作者还没加卡牌是否流放判断) if (board.ManaAvailable == 2 && board.Hand.Exists(x => x.Template.Id == Card.Cards.EX1_066) && !board.Hand.Exists(x => x.Template.Id == Card.Cards.GAME_005) && board.Hand.Exists(x => x.Template.Cost == 2)) { p.CastMinionsModifiers.AddOrUpdate(Card.Cards.EX1_066, new Modifier(600)); }//2费手里有其他2费随从,不打软泥怪 if (board.Hand.Count >= 7) { p.CastSpellsModifiers.AddOrUpdate(Card.Cards.BT_601, new Modifier(300)); }//手牌太多,降低过牌权重 if (BoardHelper.GetPlayableMinionSequence(board).Count < 2 && board.Hand.Exists(x => x.Template.Id == Card.Cards.ULD_215)) { p.CastMinionsModifiers.AddOrUpdate(Card.Cards.BT_352, new Modifier(40)); }//场上随从少于2个,铺场 if (board.WeaponEnemy != null && board.EnemyClass == Card.CClass.DEMONHUNTER)//软泥怪解武器 { if (board.WeaponEnemy.Template.Id == Card.Cards.BT_921) { p.CastMinionsModifiers.AddOrUpdate(Card.Cards.EX1_066, new Modifier(50)); } else { p.CastMinionsModifiers.AddOrUpdate(Card.Cards.EX1_066, new Modifier(600)); } } else { p.CastMinionsModifiers.AddOrUpdate(Card.Cards.EX1_066, new Modifier(50)); } #endregion #region 技能权重 if (board.Hand.Exists(x => x.Template.Id == Card.Cards.BT_514) && twoHpMinionsCount <= 2 && board.MinionEnemy.Sum(x => x.CurrentAtk) <= 4) { p.CastSpellsModifiers.AddOrUpdate(Card.Cards.BT_514, new Modifier(200)); }//对面随从少,降低献祭光环权重 if (twoHpMinionsCount >= 3) { p.CastSpellsModifiers.AddOrUpdate(Card.Cards.BT_514, new Modifier(190 - 40 * twoHpMinionsCount)); }//对面怪多,提高献祭光环 /* * if (board.MinionFriend.Exists(x => x.Template.Id==Card.Cards.BT_002) * && board.Hand.Exists(x => x.Template.Id == Card.Cards.ULD_726) * && board.Hand.FindAll(x => x.Template.Id == Card.Cards.CFM_760).Min(x => x.CurrentCost) <= board.ManaAvailable * && board.Hand.FindAll(x => x.Template.Id == Card.Cards.CFM_760).Min(x => x.CurrentCost) > board.ManaAvailable - 2 * && (!board.Secret.Contains(Cards.Counterspell) || board.FriendGraveyard.Exists(card => CardTemplate.LoadFromId(card).Id == Card.Cards.EX1_287)) * && (!board.Secret.Contains(Cards.ExplosiveRunes)) || board.FriendGraveyard.Exists(card => CardTemplate.LoadFromId(card).Id == Card.Cards.LOOT_101)) * { * p.CastSpellsModifiers.AddOrUpdate(Card.Cards.ULD_726, new Modifier(-700)); * }//场上有流放随从,释放流放牌(暂时未知流放如何判断) */ if (board.ManaAvailable == 4 && !board.Hand.Exists(x => x.Template.Id == Card.Cards.GAME_005) && board.Hand.Count(x => x.Template.Id == Card.Cards.BT_514) >= 1 && twoHpMinionsCount >= 3 && board.MinionFriend.Count <= 1) { p.CastSpellsModifiers.AddOrUpdate(Card.Cards.BT_801, new Modifier(200)); }//4费对面小于2血的怪多,不打眼棱 if ((board.FriendDeckCount <= 6 && board.Hand.Exists(x => x.Template.Id == Card.Cards.BT_035))) { p.CastSpellsModifiers.AddOrUpdate(Card.Cards.BT_035, new Modifier(20)); }//牌库卡不多,提高过牌 if (board.MinionEnemy.Count == 1 && board.MinionEnemy.Exists(x => x.Template.Id == Card.Cards.NEW1_021) && board.MinionFriend.Count == 0 && BoardHelper.GetPlayableSpellSequence(board).Count > 0) { foreach (var card1 in BoardHelper.GetPlayableSpellSequence(board)) { p.CastSpellsModifiers.AddOrUpdate(card1, new Modifier(30)); } }//对面有末日,提高过牌 if (board.ManaAvailable >= 6 && board.Hand.Count <= 5 && board.HasCardInHand(Card.Cards.BT_601)) { p.CastWeaponsModifiers.AddOrUpdate(Card.Cards.BT_601, new Modifier(50)); }//如果当前剩余法力水晶大于等于6,手牌数量小于等于5并且手牌中有古尔丹头颅 if (board.EnemyClass == Card.CClass.MAGE || board.EnemyClass == Card.CClass.PRIEST || board.EnemyClass == Card.CClass.WARLOCK) { p.CastSpellsModifiers.AddOrUpdate(Card.Cards.BT_753, new Modifier(50));//法力燃烧 } #endregion #region 敌方权重 //针对一些随从优先解掉 if (board.MinionEnemy.Any(minion => minion.Template.Id == Card.Cards.BRM_002)) { p.OnBoardBoardEnemyMinionsModifiers.AddOrUpdate(Card.Cards.BRM_002, new Modifier(400)); }//如果对面场上有火妖,提高攻击优先度 if (board.MinionEnemy.Any(minion => minion.Template.Id == Card.Cards.ULD_276)) { p.OnBoardBoardEnemyMinionsModifiers.AddOrUpdate(Card.Cards.ULD_276, new Modifier(110)); }//如果对面场上有202,提高攻击优先度 if (board.MinionEnemy.Any(minion => minion.Template.Id == Card.Cards.GVG_069)) { p.OnBoardBoardEnemyMinionsModifiers.AddOrUpdate(Card.Cards.GVG_069, new Modifier(150)); }//如果对面场上有533,提高攻击优先度 if (board.MinionEnemy.Any(minion => minion.Template.Id == Card.Cards.GVG_084)) { p.OnBoardBoardEnemyMinionsModifiers.AddOrUpdate(Card.Cards.GVG_084, new Modifier(300)); }//如果对面场上有314,提高攻击优先度 if (board.MinionEnemy.Any(minion => minion.Template.Id == Card.Cards.BOT_103)) { p.OnBoardBoardEnemyMinionsModifiers.AddOrUpdate(Card.Cards.BOT_103, new Modifier(120)); }//如果对面场上有露娜,提高攻击优先度 if (board.MinionEnemy.Any(minion => minion.Template.Id == Card.Cards.BOT_407)) { p.OnBoardBoardEnemyMinionsModifiers.AddOrUpdate(Card.Cards.BOT_407, new Modifier(120)); }//如果对面场上有雷云元素,提高攻击优先度 if (!BoardHelper.HasPotentialLethalNextTurn(board) && board.MinionEnemy.Count(minion => minion.Template.Id == Card.Cards.GVG_045t) >= 3 && board.EnemyClass == Card.CClass.WARLOCK) { p.OnBoardBoardEnemyMinionsModifiers.AddOrUpdate(Card.Cards.GVG_045t, new Modifier(150)); }//如果对面场上有1-1小鬼,提高攻击优先度 #endregion #region 武器权重 if ((board.Hand.Exists(x => x.Template.Id == Card.Cards.BT_271) || (board.WeaponFriend != null && board.WeaponFriend.Template.Id == Card.Cards.BT_271)) && board.HeroEnemy.CurrentHealth <= 16) { p.WeaponsAttackModifiers.AddOrUpdate(Card.Cards.BT_271, new Modifier(-1000)); }//如果对面血量小于等于16,提高武器攻击优先度 #endregion return(p); }
//攻击模式 public ProfileParameters GetParameters(Board board) { //version 2.4.1 for 19.0HS var p = new ProfileParameters(BaseProfile.Rush) { DiscoverSimulationValueThresholdPercent = -10 }; p.CastSpellsModifiers.AddOrUpdate(TheCoin, new Modifier(85)); //自定义命名 int a = (board.HeroFriend.CurrentHealth + board.HeroFriend.CurrentArmor) - BoardHelper.GetEnemyHealthAndArmor(board);//敌我血量差 //攻击模式切换 if (board.EnemyClass == Card.CClass.DEMONHUNTER || board.EnemyClass == Card.CClass.HUNTER || board.EnemyClass == Card.CClass.ROGUE || board.EnemyClass == Card.CClass.SHAMAN || board.EnemyClass == Card.CClass.DRUID || board.EnemyClass == Card.CClass.PALADIN || board.EnemyClass == Card.CClass.WARRIOR) { p.GlobalAggroModifier = (int)(a * 0.625 + 110.5); } else { p.GlobalAggroModifier = (int)(a * 0.625 + 110.5); } Bot.Log("攻击性:" + p.GlobalAggroModifier.Value); if (!board.MinionEnemy.Any(x => x.IsTaunt) && (BoardHelper.GetEnemyHealthAndArmor(board) - BoardHelper.GetPotentialMinionDamages(board) - BoardHelper.GetPlayableMinionSequenceDamages(BoardHelper.GetPlayableMinionSequence(board), board) <= BoardHelper.GetTotalBlastDamagesInHand(board))) { p.GlobalAggroModifier = 450; }//如果下一轮可以斩杀对面,攻击性提高 //判定是否过载 // bool guozai; // if (board.LockedMana == 0 // && board.OverloadedMana == 0){ // guozai = false; // }else{ // guozai = true; // } //卡片集合 var ret = new List <Card.Cards>(); //当前剩余的法力水晶 var manaAvailable = board.ManaAvailable; //计算可用水晶数 //如果手上有雷霆绽放,手动计算费用(Wirmate偷懒把雷霆绽放和硬币当成一个东西了) if (board.HasCardInHand(Card.Cards.SCH_427)) { manaAvailable = manaAvailable + (board.Hand.Count(x => x.Template.Id == Card.Cards.SCH_427) * 2); } //如果手上有硬币,手动计算费用(Wirmate偷懒把雷霆绽放和硬币当成一个东西了) if (board.HasCardInHand(Card.Cards.GAME_005)) { manaAvailable = manaAvailable + (board.Hand.Count(x => x.Template.Id == Card.Cards.GAME_005) * 1); } //日志输出 //我方本回合可用水晶 Bot.Log("我方本回合可用水晶:" + board.ManaAvailable); //我方最大法力水晶 Bot.Log("我方最大法力水晶:" + board.MaxMana); //法术提供的可用总水晶上限 Bot.Log("法术提供的可用总水晶上限:" + manaAvailable); //如果对面是奇数骑,优先解掉白银之手新兵 // if (board.EnemyAbility.Template.Id == Card.Cards.HERO_04bp2){ // p.OnBoardBoardEnemyMinionsModifiers.AddOrUpdate(Card.Cards.CS2_101t, new Modifier(200)); // } //如果对面是德,随从大于等于4,优先解场 if (board.EnemyAbility.Template.Id == Card.Cards.HERO_06bp && board.MinionEnemy.Count >= 4 ) { p.GlobalAggroModifier = 40; } int myAttack = 0; int enemyAttack = 0; if (board.MinionFriend != null) { for (int x = 0; x < board.MinionFriend.Count; x++) { myAttack += board.MinionFriend[x].CurrentAtk; } } if (board.MinionEnemy != null) { for (int x = 0; x < board.MinionEnemy.Count; x++) { enemyAttack += board.MinionEnemy[x].CurrentAtk; } } if (board.WeaponEnemy != null) { enemyAttack += board.WeaponEnemy.CurrentAtk; } if ((int)board.EnemyClass == 2 || (int)board.EnemyClass == 7 || (int)board.EnemyClass == 8) { enemyAttack += 1; } else if ((int)board.EnemyClass == 6) { enemyAttack += 2; } //如果下一轮可以斩杀对面提高洛欧塞布 Loatheb ID:FP1_030 if (board.HasCardInHand(Card.Cards.FP1_030) && //洛欧塞布 Loatheb ID:FP1_030 !board.MinionEnemy.Any(x => x.IsTaunt) && (BoardHelper.GetEnemyHealthAndArmor(board) - BoardHelper.GetPotentialMinionDamages(board) - BoardHelper.GetPlayableMinionSequenceDamages(BoardHelper.GetPlayableMinionSequence(board), board) <= BoardHelper.GetTotalBlastDamagesInHand(board)) || myAttack >= (board.HeroEnemy.CurrentHealth) - 5 ) { p.CastMinionsModifiers.AddOrUpdate(Card.Cards.FP1_030, new Modifier(-500)); //洛欧塞布 Loatheb ID:FP1_030 } // //如果下一轮可以斩杀对面提高洛欧塞布 Loatheb ID:FP1_030 // if (board.SecretEnemy == 0 //对手有奥秘 // && !board.MinionEnemy.Any(x => x.IsTaunt) // && (BoardHelper.GetEnemyHealthAndArmor(board) - BoardHelper.GetPotentialMinionDamages(board) - BoardHelper.GetPlayableMinionSequenceDamages(BoardHelper.GetPlayableMinionSequence(board), board) <= BoardHelper.GetTotalBlastDamagesInHand(board)) // ){ // p.GlobalAggroModifier = 450; // } //具体策略 //如果场上多过4个怪,而且手上有洛欧塞布,提高洛欧塞布的优先级 if ((board.MinionFriend.Count >= 4) && (board.ManaAvailable >= 5) && (board.Hand.Exists(x => x.Template.Id == Card.Cards.FP1_030)) ) { p.CastMinionsModifiers.AddOrUpdate(Card.Cards.FP1_030, new Modifier(-50)); } else { p.CastMinionsModifiers.AddOrUpdate(Card.Cards.FP1_030, new Modifier(250)); } //如果对方费用大于5,而且对面是牧师,提高洛欧塞布和古神的优先级 if ((board.EnemyMaxMana >= 5) && (board.EnemyClass == Card.CClass.PRIEST) ) { p.CastMinionsModifiers.AddOrUpdate(Card.Cards.FP1_030, new Modifier(-50)); p.CastMinionsModifiers.AddOrUpdate(Card.Cards.DMF_236, new Modifier(-50)); } //对面是牧师,火车王随便下 if (board.EnemyClass == Card.CClass.PRIEST) { p.CastMinionsModifiers.AddOrUpdate(Card.Cards.EX1_116, new Modifier(-50)); //修改火车王的优先级 //提高雏龙威胁值雏龙 Whelp ID:EX1_116t p.OnBoardBoardEnemyMinionsModifiers.AddOrUpdate(Card.Cards.EX1_116t, new Modifier(100)); } //对面是牧师,随便下 if (board.EnemyClass == Card.CClass.PRIEST) { p.CastMinionsModifiers.AddOrUpdate(Card.Cards.UNG_926, new Modifier(-999)); //身陷绝境的哨卫 Cornered Sentry ID:UNG_926 p.OnBoardBoardEnemyMinionsModifiers.AddOrUpdate(Card.Cards.UNG_076t1, new Modifier(100)); //迅猛龙 Raptor ID:UNG_076t1 } //对面是牧师,厄运信天翁 Bad Luck Albatross ID:DRG_071随便下 if (board.EnemyClass == Card.CClass.PRIEST && board.EnemyClass == Card.CClass.WARLOCK ) { p.CastMinionsModifiers.AddOrUpdate(Card.Cards.DRG_071, new Modifier(-999)); //厄运信天翁 Bad Luck Albatross ID:DRG_071 p.OnBoardBoardEnemyMinionsModifiers.AddOrUpdate(Card.Cards.DRG_071t, new Modifier(100)); //信天翁 Albatross ID:DRG_071t } //对面是牧师,厄运信天翁 Bad Luck Albatross ID:DRG_071随便下 if (board.EnemyClass == Card.CClass.MAGE) { p.CastMinionsModifiers.AddOrUpdate(Card.Cards.DRG_071, new Modifier(-999)); //厄运信天翁 Bad Luck Albatross ID:DRG_071 // p.OnBoardBoardEnemyMinionsModifiers.AddOrUpdate(Card.Cards.DRG_071t, new Modifier(200));//信天翁 Albatross ID:DRG_071t } //对面没随从,降低扫帚和巴罗夫优先级 if (board.MinionEnemy.Count <= 1 && board.HasCardInHand(Card.Cards.SCH_311) ||//活化扫帚 Animated Broomstick ID:SCH_311 board.HasCardInHand(Card.Cards.SCH_526)//巴罗夫领主 Lord Barov ID:SCH_526 ) { p.CastMinionsModifiers.AddOrUpdate(Card.Cards.SCH_311, new Modifier(150)); //活化扫帚 Animated Broomstick ID:SCH_311 p.CastMinionsModifiers.AddOrUpdate(Card.Cards.SCH_526, new Modifier(200)); //巴罗夫领主 Lord Barov ID:SCH_526 } //对面随从大于3,提高巴罗夫 if (board.MinionEnemy.Count > board.MinionFriend.Count && board.HasCardInHand(Card.Cards.SCH_526)//巴罗夫领主 Lord Barov ID:SCH_526 ) { p.CastMinionsModifiers.AddOrUpdate(Card.Cards.SCH_526, new Modifier(-20)); //巴罗夫领主 Lord Barov ID:SCH_526 } //海盗战策略 //当手上有圣剑扳手 Wrenchcalibur ID:DAL_063时,提高升级和334优先级 if (board.WeaponFriend != null && (board.WeaponFriend.Template.Id == Card.Cards.DAL_063) &&//圣剑扳手 Wrenchcalibur ID:DAL_063 board.HasCardInHand(Card.Cards.EX1_409) ||//升级 Upgrade! ID:EX1_409 board.HasCardInHand(Card.Cards.OG_315) ||//血帆教徒 Bloodsail Cultist ID:OG_315 board.HasCardInHand(Card.Cards.NEW1_024) //绿皮船长 Captain Greenskin ID:NEW1_024 ) { ; } { p.CastSpellsModifiers.AddOrUpdate(Card.Cards.EX1_409, new Modifier(-999)); //升级 Upgrade! ID:EX1_409 p.CastMinionsModifiers.AddOrUpdate(Card.Cards.OG_315, new Modifier(-999)); //血帆教徒 Bloodsail Cultist ID:OG_315 p.CastMinionsModifiers.AddOrUpdate(Card.Cards.NEW1_024, new Modifier(-999)); //绿皮船长 Captain Greenskin ID:NEW1_024 } //当手上有海盗之锚 Ancharrr ID:DRG_025时,提高升级和334优先级 if (board.WeaponFriend != null && (board.WeaponFriend.Template.Id == Card.Cards.DRG_025) && board.HasCardInHand(Card.Cards.EX1_409) ||//升级 Upgrade! ID:EX1_409 board.HasCardInHand(Card.Cards.OG_315) ||//血帆教徒 Bloodsail Cultist ID:OG_315 board.HasCardInHand(Card.Cards.NEW1_024) //绿皮船长 Captain Greenskin ID:NEW1_024 ) { ; } { p.CastSpellsModifiers.AddOrUpdate(Card.Cards.EX1_409, new Modifier(-9999)); //升级 Upgrade! ID:EX1_409 p.CastMinionsModifiers.AddOrUpdate(Card.Cards.OG_315, new Modifier(-9999)); //血帆教徒 Bloodsail Cultist ID:OG_315 p.CastMinionsModifiers.AddOrUpdate(Card.Cards.NEW1_024, new Modifier(-999)); //绿皮船长 Captain Greenskin ID:NEW1_024 } //当手上有海盗之锚 Ancharrr ID:DRG_025时,降低炸弹刀优先值,降低波力优先值 if (board.WeaponFriend != null && (board.WeaponFriend.Template.Id == Card.Cards.DRG_025) &&//海盗之锚 Ancharrr ID:DRG_025 board.WeaponFriend.CurrentDurability >= 1 && board.HasCardInHand(Card.Cards.OG_312) ||// Card.Cards.OG_312,//恩佐斯的副官 board.HasCardInHand(Card.Cards.DAL_063) ||//Card.Cards.DAL_063,//圣剑扳手 board.HasCardInHand(Card.Cards.DRG_055) ||//藏宝匪贼 Hoard Pillager ID:DRG_055 board.HasCardInHand(Card.Cards.DMF_521) //吞剑艺人 Sword Eater ID:DMF_521 ) { ; } { p.CastMinionsModifiers.AddOrUpdate(Card.Cards.OG_312, new Modifier(999)); //Card.Cards.OG_312,//恩佐斯的副官 p.CastWeaponsModifiers.AddOrUpdate(Card.Cards.DAL_063, new Modifier(999)); //Card.Cards.DAL_063,//圣剑扳手 p.CastMinionsModifiers.AddOrUpdate(Card.Cards.DRG_055, new Modifier(999)); //藏宝匪贼 Hoard Pillager ID:DRG_055 p.CastMinionsModifiers.AddOrUpdate(Card.Cards.DMF_521, new Modifier(999)); //吞剑艺人 Sword Eater ID:DMF_521 } //当手上有Card.Cards.DAL_063,//圣剑扳手时,降低海盗刀优先值,降低波力优先值 if (board.WeaponFriend != null && (board.WeaponFriend.Template.Id == Card.Cards.DAL_063) &&//Card.Cards.DAL_063,//圣剑扳手 board.WeaponFriend.CurrentDurability >= 1 && board.HasCardInHand(Card.Cards.OG_312) ||// Card.Cards.OG_312,//恩佐斯的副官 board.HasCardInHand(Card.Cards.DRG_025) ||//海盗之锚 Ancharrr ID:DRG_025 board.HasCardInHand(Card.Cards.DRG_055) ||//藏宝匪贼 Hoard Pillager ID:DRG_055 board.HasCardInHand(Card.Cards.DMF_521) //吞剑艺人 Sword Eater ID:DMF_521 ) { ; } { p.CastMinionsModifiers.AddOrUpdate(Card.Cards.OG_312, new Modifier(999)); //Card.Cards.OG_312,//恩佐斯的副官 p.CastWeaponsModifiers.AddOrUpdate(Card.Cards.DRG_025, new Modifier(999)); //海盗之锚 Ancharrr ID:DRG_025 p.CastMinionsModifiers.AddOrUpdate(Card.Cards.DRG_055, new Modifier(999)); //藏宝匪贼 Hoard Pillager ID:DRG_055 p.CastMinionsModifiers.AddOrUpdate(Card.Cards.DMF_521, new Modifier(999)); //吞剑艺人 Sword Eater ID:DMF_521 } //当手上有断颚之刃 Jawbreaker ID:DMF_521t 时,降低海盗刀优先值,降低波力优先值 if (board.WeaponFriend != null && (board.WeaponFriend.Template.Id == Card.Cards.DMF_521t) && board.WeaponFriend.CurrentDurability >= 1 && board.HasCardInHand(Card.Cards.OG_312) ||// Card.Cards.OG_312,//恩佐斯的副官 board.HasCardInHand(Card.Cards.DRG_025) ||//海盗之锚 Ancharrr ID:DRG_025 board.HasCardInHand(Card.Cards.DRG_055) ||//藏宝匪贼 Hoard Pillager ID:DRG_055 board.HasCardInHand(Card.Cards.DMF_521) ||//吞剑艺人 Sword Eater ID:DMF_521 board.HasCardInHand(Card.Cards.DAL_063) //Card.Cards.DAL_063,//圣剑扳手 ) { ; } { p.CastMinionsModifiers.AddOrUpdate(Card.Cards.OG_312, new Modifier(999)); //Card.Cards.OG_312,//恩佐斯的副官 p.CastWeaponsModifiers.AddOrUpdate(Card.Cards.DRG_025, new Modifier(999)); //海盗之锚 Ancharrr ID:DRG_025 p.CastMinionsModifiers.AddOrUpdate(Card.Cards.DRG_055, new Modifier(999)); //藏宝匪贼 Hoard Pillager ID:DRG_055 p.CastMinionsModifiers.AddOrUpdate(Card.Cards.DMF_521, new Modifier(999)); //吞剑艺人 Sword Eater ID:DMF_521 p.CastWeaponsModifiers.AddOrUpdate(Card.Cards.DAL_063, new Modifier(999)); //Card.Cards.DAL_063,//圣剑扳手 } //当手上没有有海盗之锚 Ancharrr ID:DRG_025时,降低升级优先值,降低波力优先值 if (board.HasCardInHand(Card.Cards.EX1_409) &&//升级 Upgrade! ID:EX1_409 !(board.WeaponFriend != null && board.WeaponFriend.Template.Id == Card.Cards.DRG_025) || //海盗之锚 Ancharrr ID:DRG_025 !(board.WeaponFriend != null && board.WeaponFriend.Template.Id == Card.Cards.DAL_063) //Card.Cards.DAL_063,//圣剑扳手 ) { ; } { p.CastSpellsModifiers.AddOrUpdate(Card.Cards.EX1_409, new Modifier(300));//升级 Upgrade! ID:EX1_409 } //当手上有锈蚀铁钩 Rusty Hook ID:OG_058时,降低升级和334优先级 if ((board.WeaponFriend != null && board.WeaponFriend.Template.Id == Card.Cards.OG_058) && //锈蚀铁钩 Rusty Hook ID:OG_058 board.HasCardInHand(Card.Cards.EX1_409) ||//升级 Upgrade! ID:EX1_409 board.HasCardInHand(Card.Cards.OG_315) ||//血帆教徒 Bloodsail Cultist ID:OG_315 board.HasCardInHand(Card.Cards.NEW1_024) //绿皮船长 Captain Greenskin ID:NEW1_024 ) { ; } { p.CastSpellsModifiers.AddOrUpdate(Card.Cards.EX1_409, new Modifier(300)); //升级 Upgrade! ID:EX1_409 p.CastMinionsModifiers.AddOrUpdate(Card.Cards.OG_315, new Modifier(300)); //血帆教徒 Bloodsail Cultist ID:OG_315 p.CastMinionsModifiers.AddOrUpdate(Card.Cards.NEW1_024, new Modifier(300)); //绿皮船长 Captain Greenskin ID:NEW1_024 } //当手上有重斧 Heavy Axe ID:EX1_409t时,降低升级和334优先级 if ((board.WeaponFriend != null && board.WeaponFriend.Template.Id == Card.Cards.EX1_409t) &&//重斧 Heavy Axe ID:EX1_409t board.HasCardInHand(Card.Cards.EX1_409) ||//升级 Upgrade! ID:EX1_409 board.HasCardInHand(Card.Cards.OG_315) ||//血帆教徒 Bloodsail Cultist ID:OG_315 board.HasCardInHand(Card.Cards.NEW1_024) //绿皮船长 Captain Greenskin ID:NEW1_024 ) { ; } { p.CastSpellsModifiers.AddOrUpdate(Card.Cards.EX1_409, new Modifier(300)); //升级 Upgrade! ID:EX1_409 p.CastMinionsModifiers.AddOrUpdate(Card.Cards.OG_315, new Modifier(300)); //血帆教徒 Bloodsail Cultist ID:OG_315 p.CastMinionsModifiers.AddOrUpdate(Card.Cards.NEW1_024, new Modifier(300)); //绿皮船长 Captain Greenskin ID:NEW1_024 } //if (board.ManaAvailable < 7 // && board.Hand.Exists(x => x.Template.Id == Card.Cards.DRG_025)) //{ // p.CastWeaponsModifiers.AddOrUpdate(Card.Cards.DRG_025, new Modifier(-50));//7费前优先挂海盗之锚 //} if (board.Hand.Exists(x => x.Template.Id == Card.Cards.DAL_063) &&//Card.Cards.DAL_063,//圣剑扳手 board.EnemyClass == Card.CClass.PRIEST || //对方是牧师 board.EnemyClass == Card.CClass.MAGE //对方是法师 ) { p.CastWeaponsModifiers.AddOrUpdate(Card.Cards.DAL_063, new Modifier(-50));//牧师优先挂扳手 } if (board.Hand.Exists(x => x.Template.Id == Card.Cards.BT_124) &&//海盗藏品 Corsair Cache ID:BT_124 board.EnemyClass == Card.CClass.PRIEST || //对方是牧师 board.EnemyClass == Card.CClass.MAGE //对方是法师 ) { p.CastSpellsModifiers.AddOrUpdate(Card.Cards.BT_124, new Modifier(-50)); //海盗藏品 Corsair Cache ID:BT_124 } //八爪鱼 { int shoupaiCount = board.Hand.Count; p.CastMinionsModifiers.AddOrUpdate(Card.Cards.ULD_177, new Modifier(80 * (shoupaiCount - 5)));//八爪巨怪 Octosari ID:ULD_177 } //场上有八爪鱼,手牌小于等于3,优先把八爪鱼送了 if (board.HasCardOnBoard(Card.Cards.ULD_177) &&//八爪巨怪 Octosari ID:ULD_177 board.Hand.Count <= 3 ) { p.OnBoardFriendlyMinionsValuesModifiers.AddOrUpdate(Card.Cards.ULD_177, new Modifier(-20));//八爪巨怪 Octosari ID:ULD_177 } //书虫 if (board.Hand.Count <= 3 && board.HasCardInHand(Card.Cards.SCH_142) //贪婪的书虫 Voracious Reader ID:SCH_142 ) { p.CastMinionsModifiers.AddOrUpdate(Card.Cards.SCH_142, new Modifier(-40)); //贪婪的书虫 Voracious Reader ID:SCH_142 } else { p.CastMinionsModifiers.AddOrUpdate(Card.Cards.SCH_142, new Modifier(300)); //贪婪的书虫 Voracious Reader ID:SCH_142 } //如果场上有鲨鳍后援 Sharkfin Fan ID:TRL_507 ,手上有空中炮艇 Skybarge ID:DRG_023,手上有刀,提高空中炮艇优先级 if (board.HasCardOnBoard(Card.Cards.TRL_507) && board.HasCardInHand(Card.Cards.DRG_023) && board.WeaponFriend != null ) { p.CastMinionsModifiers.AddOrUpdate(Card.Cards.DRG_023, new Modifier(-999)); } //空降歹徒 if (board.Hand.Count >= 5 && board.Hand.Count == 1 ) { p.CastMinionsModifiers.AddOrUpdate(Card.Cards.DRG_023, new Modifier(-20)); } //武器优先值 p.CastWeaponsModifiers.AddOrUpdate(Card.Cards.DRG_025, new Modifier(-80)); //海盗之锚 Ancharrr ID:DRG_025 p.CastWeaponsModifiers.AddOrUpdate(Card.Cards.DAL_063, new Modifier(-80)); ///圣剑扳手 Wrenchcalibur ID:DAL_063 //武器攻击保守性 p.WeaponsAttackModifiers.AddOrUpdate(Card.Cards.OG_058, new Modifier(-50)); //锈蚀铁钩 Rusty Hook ID:OG_058 p.WeaponsAttackModifiers.AddOrUpdate(Card.Cards.DRG_025, new Modifier(-200)); //海盗之锚 Ancharrr ID:DRG_025 p.WeaponsAttackModifiers.AddOrUpdate(Card.Cards.EX1_409t, new Modifier(-50)); //重斧 Heavy Axe ID:EX1_409t p.WeaponsAttackModifiers.AddOrUpdate(Card.Cards.DAL_063, new Modifier(-50)); //Card.Cards.DAL_063,//圣剑扳手 p.WeaponsAttackModifiers.AddOrUpdate(Card.Cards.DMF_521t, new Modifier(-50)); //断颚之刃 Jawbreaker ID:DMF_521t //法术 p.CastSpellsModifiers.AddOrUpdate(Card.Cards.EX1_409, new Modifier(50)); //升级 Upgrade! ID:EX1_409 p.CastSpellsModifiers.AddOrUpdate(Card.Cards.BT_124, new Modifier(-40)); //海盗藏品 Corsair Cache ID:BT_124 //随从 // p.CastMinionsModifiers.AddOrUpdate(Card.Cards.AT_075, new Modifier(150)); //战马训练师 Warhorse Trainer ID:AT_075 p.CastMinionsModifiers.AddOrUpdate(Card.Cards.SCH_311, new Modifier(150)); //活化扫帚 Animated Broomstick ID:SCH_311 p.CastMinionsModifiers.AddOrUpdate(Card.Cards.DMF_521, new Modifier(-5)); //吞剑艺人 Sword Eater ID:DMF_521 // p.CastMinionsModifiers.AddOrUpdate(Card.Cards.SCH_526, new Modifier(200)); //巴罗夫领主 Lord Barov ID:SCH_526 // p.CastMinionsModifiers.AddOrUpdate(Card.Cards.DMF_240, new Modifier(-350));//救赎者洛萨克森 Lothraxion the Redeemed ID:DMF_240 //不送的怪 p.OnBoardFriendlyMinionsValuesModifiers.AddOrUpdate(Card.Cards.SCH_142, new Modifier(300)); //修饰贪婪的书虫 Voracious Reader ID:SCH_142 p.OnBoardFriendlyMinionsValuesModifiers.AddOrUpdate(Card.Cards.DRG_023, new Modifier(300)); //修饰空中炮艇 Skybarge ID:DRG_023 p.OnBoardFriendlyMinionsValuesModifiers.AddOrUpdate(Card.Cards.GVG_075, new Modifier(300)); //修饰船载火炮 p.OnBoardFriendlyMinionsValuesModifiers.AddOrUpdate(Card.Cards.TRL_507, new Modifier(300)); //修饰鲨鳍后援 Sharkfin Fan ID:TRL_507 // p.OnBoardFriendlyMinionsValuesModifiers.AddOrUpdate(Card.Cards.DMF_237, new Modifier(500)); //修饰狂欢报幕员 Carnival Barker ID:DMF_237,数值越高越保守,就是不会拿去交换随从 //武器优先值 // p.CastWeaponsModifiers.AddOrUpdate(Card.Cards.DRG_025, new Modifier(-80));//海盗之锚 Ancharrr ID:DRG_025 //武器攻击保守性 // p.WeaponsAttackModifiers.AddOrUpdate(Card.Cards.OG_058, new Modifier(-20));//锈蚀铁钩 Rusty Hook ID:OG_058 //法术 // p.CastSpellsModifiers.AddOrUpdate(Card.Cards.CS2_087, new Modifier(150));//力量祝福 Blessing of Might ID:CS2_087 // p.CastSpellsModifiers.AddOrUpdate(Card.Cards.SCH_138, new Modifier(50));//威能祝福 Blessing of Authority ID:SCH_138 // p.CastSpellsModifiers.AddOrUpdate(Card.Cards.UNG_961, new Modifier(40));//适者生存 Adaptation ID:UNG_961 // p.CastSpellsModifiers.AddOrUpdate(Card.Cards.BOT_909, new Modifier(-40));//水晶学 Crystology ID:BOT_909 // p.CastSpellsModifiers.AddOrUpdate(Card.Cards.DMF_244, new Modifier(100));//游园日 Day at the Faire ID:DMF_244 // p.CastSpellsModifiers.AddOrUpdate(Card.Cards.DMF_244t, new Modifier(-20));//游园日 Day at the Faire ID:DMF_244t //场上有5个及以上的随从就不要用詹迪斯·巴罗夫 Jandice Barov ID:SCH_351 if (board.MinionFriend.Count >= 5 && board.HasCardInHand(Card.Cards.SCH_351) ) { p.CastMinionsModifiers.AddOrUpdate(Card.Cards.SCH_351, new Modifier(600)); //詹迪斯·巴罗夫 Jandice Barov ID:SCH_351 Bot.Log("随从太多不用詹迪斯·巴罗夫"); } //如果对面是奇数骑,优先解掉白银之手新兵、狂欢报幕员、夜色镇执法官 if (board.EnemyAbility.Template.Id == Card.Cards.HERO_04bp2) { p.OnBoardBoardEnemyMinionsModifiers.AddOrUpdate(Card.Cards.CS2_101t, new Modifier(200)); //白银之手新兵 p.OnBoardBoardEnemyMinionsModifiers.AddOrUpdate(Card.Cards.DMF_237, new Modifier(210)); //狂欢报幕员 Carnival Barker ID:DMF_237 p.OnBoardBoardEnemyMinionsModifiers.AddOrUpdate(Card.Cards.OG_310, new Modifier(220)); //夜色镇执法官 Steward of Darkshire ID:OG_310 } if (board.Hand.Count <= 3 && board.HasCardInHand(Card.Cards.SCH_142) //贪婪的书虫 Voracious Reader ID:SCH_142 ) { p.CastMinionsModifiers.AddOrUpdate(Card.Cards.SCH_142, new Modifier(-40)); //贪婪的书虫 Voracious Reader ID:SCH_142 } else { p.CastMinionsModifiers.AddOrUpdate(Card.Cards.SCH_142, new Modifier(300)); //贪婪的书虫 Voracious Reader ID:SCH_142 } //场上有书虫,提高手里硬币优先值 if (board.HasCardOnBoard(Card.Cards.SCH_142) && //贪婪的书虫 Voracious Reader ID:SCH_142 board.HasCardInHand(Card.Cards.GAME_005) ) { p.CastSpellsModifiers.AddOrUpdate(Card.Cards.GAME_005, new Modifier(-10)); } //奇数骑技能提高 // p.CastSpellsModifiers.AddOrUpdate(Card.Cards.HERO_04bp2, new Modifier(-20)); //提高战斗邪犬威胁值 p.OnBoardBoardEnemyMinionsModifiers.AddOrUpdate(Card.Cards.BT_351, new Modifier(200)); //优先用任务 if (board.HasCardInHand(Card.Cards.SW_028) && board.HasCardInHand(Card.Cards.GAME_005) ) { p.CastSpellsModifiers.AddOrUpdate(Card.Cards.SW_028, new Modifier(-9999)); //开进码头 Raid the Docks ID:SW_028 p.CastSpellsModifiers.AddOrUpdate(Card.Cards.GAME_005, new Modifier(200)); //硬币 Bot.Log("不叫硬币直接交任务"); } //随从数小于5直接拍船长 if (board.MinionFriend.Count <= 5 && board.HasCardInHand(Card.Cards.SW_028t5) ) { p.CastMinionsModifiers.AddOrUpdate(Card.Cards.SW_028t5, new Modifier(-9999)); //船长洛卡拉 Cap'n Rokara ID:SW_028t5 Bot.Log("随从数量少于5直接拍船长"); } return(p); }