public override void OnCastMinion(Board board, Card minion, Card target) { switch (minion.Template.Id) { case Card.Cards.EX1_007: //Acolyte of Pain, ID: EX1_007 if (BoardHelper.CanBeImmediatelyKilledByEnemy(board, minion) && board.Hand.Count < CARDS_IN_HAND_THRESHHOLD) { MinionCastGlobalCost += GetCardValue(board, minion) * 0.3f; } break; case Card.Cards.EX1_402: //Armorsmith, ID: EX1_402 if (BoardHelper.CanBeImmediatelyKilledByEnemy(board, minion) && !BoardHelper.CanPlayCard(board, _enragingSpells, minion.CurrentCost)) { MinionCastGlobalCost += GetCardValue(board, minion) * 0.5f; } break; case Card.Cards.EX1_012: //Bloodmage Thalnos, ID: EX1_012 if (BoardHelper.CanBeImmediatelyKilledByEnemy(board, minion) || board.Hand.Count > CARDS_IN_HAND_THRESHHOLD || !BoardHelper.CanPlayCard(board, Card.Cards.EX1_400, minion.CurrentCost)) // EX1_400 - whirlwind { MinionCastGlobalCost += GetCardValue(board, minion) * 0.5f; } break; case Card.Cards.EX1_603: //Cruel Taskmaster, ID: EX1_603 if ((target.CurrentHealth == 1 && !BoardHelper.IsOwnMinion(board, target)) || BoardHelper.CanEnrageOrGetArmor(board, _enragingSpells, _enrageableMinions) || BoardHelper.CanExecute(board, MIN_VALUE_EXECUTE, minion.CurrentCost)) { MinionCastGlobalValue += 0; // GetCardValue(board, minion) * 1.3f; } else { MinionCastGlobalCost += GetCardValue(board, minion) * 0.5f; } break; case Card.Cards.NEW1_022: //Dread Corsair, ID: NEW1_022 if (BoardHelper.CanPlayDreadCorsair(board, minion)) { MinionCastGlobalValue += GetCardValue(board, minion) * 1.3f; } else { MinionCastGlobalCost += GetCardValue(board, minion) * 0.5f; } break; case Card.Cards.GVG_110: //Dr. Boom break; case Card.Cards.EX1_604: //Frothing Berserker if (BoardHelper.CanBeImmediatelyKilledByEnemy(board, minion) && !BoardHelper.CanCharge(board, minion) && !BoardHelper.CanPlayTaunt(board, minion.CurrentCost)) { MinionCastGlobalCost += GetCardValue(board, minion) * 0.5f; } if (!BoardHelper.CanBePlayedAndEnraged(board, _enragingSpells, minion) || !BoardHelper.CanCharge(board, minion) || !BoardHelper.CanPlayTaunt(board, minion.CurrentCost)) { MinionCastGlobalCost += GetCardValue(board, minion) * 0.3f; } break; case Card.Cards.CS2_147: //Gnomish Inventor break; case Card.Cards.BRM_019: //Grim Patron if ((BoardHelper.CanBeImmediatelyKilledByEnemy(board, minion) && !BoardHelper.CanBePlayedAndEnraged(board, _enragingSpells, minion)) || !(BoardHelper.CanCharge(board, minion) && BoardHelper.AnyEnemyTargets(board, 2))) { MinionCastGlobalCost += GetCardValue(board, minion) * 2f; } break; case Card.Cards.EX1_084: //Warsong Commander if (!BoardHelper.CanPlayWarsongCommander(board, minion)) { MinionCastGlobalCost += GetCardValue(board, minion) * 2f; } break; case Card.Cards.BRMA03_1: //Emperor Thaurissan if (board.Hand.Count < 3) { MinionCastGlobalCost += GetCardValue(board, minion) * 0.5f; } if (board.Hand.Count > 5) { MinionCastGlobalValue += GetCardValue(board, minion) * 1.2f; } break; case Card.Cards.EX1_414: //Grommash Hellscream, ID: EX1_414 if (!BoardHelper.CanBePlayedAndEnraged(board, _enragingSpells, minion)) { MinionCastGlobalCost += GetCardValue(board, minion) * 0.5f; } break; case Card.Cards.FP1_024: //Unstable Ghoul, ID: FP1_024 if (board.MinionEnemy.Count == 0 || !BoardHelper.CanEnrageOrGetArmor(board, _enragingSpells, _enrageableMinions)) { MinionCastGlobalCost += GetCardValue(board, minion) * 0.5f; } break; } if (BoardHelper.IsFirstMove(board)) { OnFirstAction(board, minion, target, true, false, false); } //DebugLog("MINION: " + minion.Template.Name + ", standard value: " + GetCardValue(board, minion) + ", added value: " + MinionCastGlobalValue + ", added cost: " + MinionCastGlobalCost + "; TARGET: " + ", standard value: " + GetCardValue(board, target)); //DebugBestLog("BEST MINION: " + minion.Template.Name + ", standard value: " + GetCardValue(board, minion) + ", added value: " + MinionCastGlobalValue + ", added cost: " + MinionCastGlobalCost + "; TARGET: " + ", standard value: " + GetCardValue(board, target)); }