can anyone please make this mulgian
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using SmartBotUI;
using SmartBotUI.Settings;
namespace SmartBotUI.Mulligan
{
[Serializable]
public class bMulliganProfile : MulliganProfile
{
public bMulliganProfile() : base()
{
}
public override List<Card> HandleMulligan(List<Card> Choices, CClass opponentClass, CClass ownClass)
{
List<Card> CardsToKeep = new List<Card>();
List<string> WhiteList = new List<string>();
List<string> BlackList = new List<string>();
bool HasCoin = Choices.Count > 3;
/* Setup Keep List */
WhiteList.Add("GAME_005"); //Coin
WhiteList.Add("GVG_058"); //Shielded Minibot
WhiteList.Add("NEW1_019"); //Knife Juggler
WhiteList.Add("AT_079"); //Mysterious Challenger
WhiteList.Add("CS2_188"); //Abusive Sergeant
WhiteList.Add("EX1_029"); //Leper Gnome
WhiteList.Add("EX1_080"); //Secretkeeper
WhiteList.Add("FP1_002"); //Haunted Creeper
/* Setup Ignore List */
BlackList.Add("FP1_020"); //Avenge
BlackList.Add("AT_073"); //Competitive Spirit
BlackList.Add("EX1_130"); //Noble Sacrifice
BlackList.Add("EX1_136"); //Redemption
BlackList.Add("EX1_379"); //Repentance
BlackList.Add("GVG_096"); //Piloted Shredder
var gotRedemption = false;
var gotShielded = false;
foreach (Card c in Choices)
{
if (c.Name == "EX1_136") // Redemption
{
gotRedemption = true;
}
if (c.Name == "GVG_058") // Shielded Minibot
{
gotShielded = true;
}
if (gotShielded && gotRedemption)
{
BlackList.Remove("EX1_136");// Redemption
}
}
var gotKnife = false;
var gotNoble = false;
foreach (Card c in Choices)
{
if (c.Name == "NEW1_019") // Knife
{
gotKnife = true;
}
if (c.Name == "EX1_130") // Noble
{
gotNoble = true;
}
if (gotNoble && gotKnife)
{
BlackList.Remove("EX1_130"); // Noble
}
}
/* Setup Logic to Keep or Ignore Cards Depending on Situation */
/* ---Paladin Logic---
foreach (Card c in Choices)
{
if (c.Name == "FP1_004") //Mad Scientist
{
BlackList.Add("EX1_130"); //Noble Sacrifice
}
}*/
if(opponentClass == CClass.HUNTER)
{
WhiteList.Add("GVG_061"); //Muster for Battle
}
if(opponentClass == CClass.PRIEST)
{
WhiteList.Add("GVG_096"); //Piloted Shredder
}
if(opponentClass == CClass.PALADIN)
{
}
if(opponentClass == CClass.WARLOCK)
{
WhiteList.Add("GVG_061"); //Muster for Battle
}
if(opponentClass == CClass.WARRIOR)
{
WhiteList.Add("GVG_061"); //Muster for Battle
WhiteList.Add("GVG_096"); //Piloted Shredder
}
if(opponentClass == CClass.SHAMAN)
{
WhiteList.Add("GVG_061"); //Muster for Battle
WhiteList.Add("GVG_096"); //Piloted Shredder
}
if(opponentClass == CClass.DRUID)
{
WhiteList.Add("GVG_096"); //Piloted Shredder
WhiteList.Add("GVG_061"); //Muster for Battle
}
if(opponentClass == CClass.MAGE)
{
WhiteList.Add("GVG_061"); //Muster for Battle
}
if(opponentClass == CClass.ROGUE)
{
WhiteList.Add("GVG_096"); //Piloted Shredder
WhiteList.Add("GVG_061"); //Muster for Battle
}
/*--------------------------------------------------------------*/
foreach(Card s in Choices)
{
if(BlackList.Contains(s.Name))
continue;
bool KeptAlreadyOne = false;
bool AllowDoublon = false;
foreach(Card cc in CardsToKeep)
{
if(cc.Name == s.Name)
KeptAlreadyOne = true;
}
if(WhiteList.Contains(s.Name) && KeptAlreadyOne && AllowDoublon)
{
CardsToKeep.Add(s);
continue;
}
else if(WhiteList.Contains(s.Name) && !KeptAlreadyOne)
{
CardsToKeep.Add(s);
continue;
}
}
return CardsToKeep;
}
}
}
for hearthbuddy ?