Exemplo n.º 1
0
        public override void onDeathrattle(Playfield p, Minion m)
        {
            int pos  = m.own ? p.ownMinions.Count : p.enemyMinions.Count;
            int kids = 7 - pos;

            if (kids > 0)
            {
                foreach (KeyValuePair <CardDB.cardIDEnum, int> e in Probabilitymaker.Instance.ownCardsOut)
                {
                    kid = cdb.getCardDataFromID(e.Key);
                    if (kid.tank)
                    {
                        for (int i = 0; i < e.Value; i++)
                        {
                            p.callKid(kid, pos, m.own);
                            kids--;
                            if (kids < 1)
                            {
                                break;
                            }
                        }
                        if (kids < 1)
                        {
                            break;
                        }
                    }
                }
            }
        }
Exemplo n.º 2
0
        public override void getBattlecryEffect(Playfield p, Minion own, Minion target, int choice)
        {
            int kids = 7 - p.ownMinions.Count;

            if (kids > 0)
            {
                foreach (KeyValuePair <CardDB.cardIDEnum, int> e in Probabilitymaker.Instance.ownCardsOut)
                {
                    kid = CardDBI.getCardDataFromID(e.Key);
                    if (kid.deathrattle)
                    {
                        for (int i = 0; i < e.Value; i++)
                        {
                            p.callKid(kid, own.zonepos, own.own);
                            kids--;
                            if (kids < 1)
                            {
                                break;
                            }
                        }
                        if (kids < 1)
                        {
                            break;
                        }
                    }
                }
            }
        }
Exemplo n.º 3
0
        public override void onCardPlay(Playfield p, bool ownplay, Minion target, int choice)
        {
            //if (p.numberofOwnDiedMinion >= 1)
            {
                int i   = 0;
                int pos = ownplay ? p.ownMinions.Count : p.enemyMinions.Count;

                foreach (KeyValuePair <CardDB.cardIDEnum, int> cn in p.OwnDiedMinions)
                {
                    kid = cdb.getCardDataFromID(cn.Key);


                    p.CallKid(kid, pos++, ownplay);
                    i++;
                    if (i == 3 || pos > 7)
                    {
                        break;
                    }
                }
                //if (i=(p.numberofOwnDiedMinion-i) >= 1) p.CallKid(kid, pos, ownplay);


                /*foreach (Handmanager.Handcard hc in p.owncards)
                 * {
                 *  if (hc.card.type == CardDB.cardtype.SPELL&&ownplay)  p.evaluatePenality += 2;
                 *  }*/
            }
        }
Exemplo n.º 4
0
        public override void onCardPlay(Playfield p, bool ownplay, Minion target, int choice)
        {
            int pos  = ownplay ? p.ownMinions.Count : p.enemyMinions.Count;
            int kids = 3;

            {
                if (p.numberofOwnDiedMinion >= 1 && kids > 0)
                {
                    foreach (KeyValuePair <CardDB.cardIDEnum, int> cn in p.OwnDiedMinions)
                    {
                        kid = cdb.getCardDataFromID(cn.Key);

                        if ((TAG_RACE)kid.race == TAG_RACE.MECHANICAL)
                        {
                            p.CallKid(kid, pos, ownplay);
                            kids--;
                            if (kids == 0)
                            {
                                break;
                            }
                        }
                    }
                    //if (p.numberofOwnDiedMinion-i >= 1) p.CallKid(kid, pos, ownplay);
                }
            }
        }
Exemplo n.º 5
0
        public override void onCardPlay(Playfield p, bool ownplay, Minion target, int choice)
        {
            //if (p.numberofOwnDiedMinion >= 1)
            {
                int i   = 0;
                int pos = ownplay ? p.ownMinions.Count : p.enemyMinions.Count;

                if (p.numberofOwnDiedMinion == 1)
                {
                    int posi = ownplay ? p.ownMinions.Count : p.enemyMinions.Count;
                    kid = CardDB.Instance.getCardDataFromID((p.OwnLastDiedMinion == CardDB.cardIDEnum.None) ? CardDB.cardIDEnum.EX1_345t : p.OwnLastDiedMinion); // Shadow of Nothing 0:1 or ownMinion
                    p.CallKid(kid, posi, ownplay, false);
                }
                else
                {
                    foreach (KeyValuePair <CardDB.cardIDEnum, int> cn in p.OwnDiedMinions)
                    {
                        kid = cdb.getCardDataFromID(cn.Key);


                        p.CallKid(kid, pos++, ownplay);
                        i++;
                        if (i == 4 || pos > 7)
                        {
                            break;
                        }
                    }
                }
                //if (i=(p.numberofOwnDiedMinion-i) >= 1) p.CallKid(kid, pos, ownplay);
            }
        }
Exemplo n.º 6
0
        public override void getBattlecryEffect(Playfield p, Minion own, Minion target, int choice)
        {
            if (own.own)
            {
                int    pen           = 0;
                Minion VirtualTarget = null;
                foreach (Minion m in p.ownMinions)//防止不打先放沙德沃克
                {
                    if (m.Ready)
                    {
                        p.evaluatePenality += 5;
                    }
                }
                foreach (KeyValuePair <CardDB.cardIDEnum, int> e in Probabilitymaker.Instance.ownCardsOut)
                {
                    c = cdb.getCardDataFromID(e.Key);

                    if (c.battlecry)
                    {
                        //pen+=10;
                        //if(e.Value>1)pen+=5*(e.Value-1);
                        VirtualTarget = (p.ownMinions.Count != 0 || p.ownMinions.Count != 0)?(p.ownMinions.Count >= p.ownMinions.Count? p.searchRandomMinion(p.ownMinions, searchmode.searchHighestAttack):p.searchRandomMinion(p.enemyMinions, searchmode.searchHighestAttack)):p.enemyHero;

                        c.CardSimulation.getBattlecryEffect(p, own, VirtualTarget, choice);
                        pen++;
                    }
                }
                foreach (KeyValuePair <CardDB.cardIDEnum, int> e in Probabilitymaker.Instance.ownCardsOut)
                {
                    c = cdb.getCardDataFromID(e.Key);
                    if (c.battlecry && e.Value > 1)
                    {
                        //pen+=10;
                        //if(e.Value>1)pen+=5*(e.Value-1);
                        VirtualTarget = (p.ownMinions.Count != 0 || p.ownMinions.Count != 0)?(p.ownMinions.Count >= p.ownMinions.Count? p.searchRandomMinion(p.ownMinions, searchmode.searchHighestAttack):p.searchRandomMinion(p.enemyMinions, searchmode.searchHighestAttack)):p.enemyHero;

                        for (int i = 1; i < e.Value; i++)
                        {
                            c.CardSimulation.getBattlecryEffect(p, own, VirtualTarget, choice);
                            pen++;
                        }
                    }
                }
                p.evaluatePenality -= pen;
            }
        }
Exemplo n.º 7
0
        public void loadPreparedBattlefield(int bfield)
        {
            if (bfield == 0)
            {
                enemyAnzCards = 0;
                this.handCards.Clear();
                Handcard hc1 = new Handcard();
                hc1.position = 1;
                hc1.card     = cdb.getCardDataFromID("EX1_564");//gesichtsloser manipulator
                this.handCards.Add(hc1);
            }

            if (bfield == 1)
            {
                enemyAnzCards = 0;
                this.handCards.Clear();
                Handcard hc1 = new Handcard();
                hc1.position = 1;
                //hc1.card = cdb.getCardDataFromID("CS2_029"); //feuerball
                hc1.card = cdb.getCardDataFromID("NEW1_007"); //feuerball
                this.handCards.Add(hc1);
            }

            if (bfield == 2)
            {
                enemyAnzCards = 0;
                this.handCards.Clear();
                Handcard hc1 = new Handcard();
                hc1.position = 1;
                hc1.card     = cdb.getCardDataFromID("CS1_113"); //gedankenkontrolle
                this.handCards.Add(hc1);
            }
            if (bfield == 3)
            {
                enemyAnzCards = 0;
                this.handCards.Clear();
                Handcard hc1 = new Handcard();
                hc1.position = 1;
                hc1.card     = cdb.getCardDataFromID("CS2_122");//schlachtzugsleiter
                this.handCards.Add(hc1);
            }
        }
Exemplo n.º 8
0
        public override void onCardPlay(Playfield p, bool ownplay, Minion target, int choice)
        {
            p.setNewHeroPower(CardDB.cardIDEnum.ICC_831p, ownplay); // Siphon Life
            if (ownplay)
            {
                p.ownHero.armor += 5;
            }
            else
            {
                p.enemyHero.armor += 5;
            }


            int pos  = ownplay ? p.ownMinions.Count : p.enemyMinions.Count;
            int kids = 7 - pos;

            if (kids > 0)
            {
                p.callKid(CardDB.Instance.getCardDataFromID(CardDB.cardIDEnum.EX1_301), pos, ownplay); //Felguard Taunt
                kids--;

                if (kids > 0)
                {
                    foreach (KeyValuePair <CardDB.cardIDEnum, int> e in Probabilitymaker.Instance.ownCardsOut)
                    {
                        kid = cdb.getCardDataFromID(e.Key);
                        if ((TAG_RACE)kid.race == TAG_RACE.DEMON)
                        {
                            for (int i = 0; i < e.Value; i++)
                            {
                                p.callKid(kid, pos, ownplay);
                                kids--;
                                if (kids < 1)
                                {
                                    break;
                                }
                            }
                            if (kids < 1)
                            {
                                break;
                            }
                        }
                    }
                }
            }
        }
Exemplo n.º 9
0
        public string heroIDtoName(string s)
        {
            switch (s)
            {
            case "HERO_05": return("hunter");

            case "HERO_05a": return("hunter");

            case "HERO_09": return("priest");

            case "HERO_09a": return("priest");

            case "HERO_06": return("druid");

            case "HERO_07": return("warlock");

            case "HERO_03": return("thief");

            case "HERO_04": return("pala");

            case "HERO_04a": return("pala");

            case "HERO_01": return("warrior");

            case "HERO_01a": return("warrior");

            case "HERO_02": return("shaman");

            case "HERO_02a": return("shaman");

            case "HERO_08": return("mage");

            case "HERO_08a": return("mage");

            case "HERO_08b": return("mage");

            case "EX1_323h": return("lordjaraxxus");

            case "BRM_027h": return("ragnarosthefirelord");

            default:
                string retval = cdb.getCardDataFromID(cdb.cardIdstringToEnum(s)).name.ToString();
                return(retval);
            }
        }
Exemplo n.º 10
0
        public int initDeck(int entitiy)
        {
            grave.Clear();
            deck.Clear();
            hand.Clear();
            int e = entitiy;

            foreach (CardDB.cardIDEnum cie in usedCards)
            {
                Handmanager.Handcard card = new Handmanager.Handcard();
                card.card     = cdb.getCardDataFromID(cie);
                card.manacost = card.card.cost;
                card.entity   = e;
                e++;
                deck.Add(card);
            }

            return(e);
        }
Exemplo n.º 11
0
        public override void getBattlecryEffect(Playfield p, Minion own, Minion target, int choice)
        {
            int kids = 7 - p.ownMinions.Count;

            if (kids > 0)
            {
                foreach (KeyValuePair <CardDB.cardIDEnum, int> e in Probabilitymaker.Instance.ownGraveyard)
                {
                    kid = CardDBI.getCardDataFromID(e.Key);
                    if (kid.deathrattle)
                    {
                        for (int i = 0; i < e.Value; i++)
                        {
                            p.callKid(kid, own.zonepos, own.own, true);
                            kids--;
                            if (kids < 1)
                            {
                                break;
                            }
                        }
                        if (kids < 1)
                        {
                            break;
                        }
                    }
                }
            }

            if (kids > 0 && own.own)
            {
                foreach (GraveYardItem m in p.diedMinions.ToArray()) // toArray() because a knifejuggler could kill a minion due to the summon :D
                {
                    CardDB.Card card = CardDB.Instance.getCardDataFromID(m.cardid);
                    if (card.deathrattle)
                    {
                        p.callKid(card, p.ownMinions.Count, m.own);
                    }
                }
            }
        }
Exemplo n.º 12
0
        public override void onCardPlay(Playfield p, bool ownplay, Minion target, int choice)
        {
            int i = 0;
            //if (p.numberofOwnDiedMinion >= 1)
            {
                int pos = ownplay ? p.ownMinions.Count : p.enemyMinions.Count;
                if (p.numberofOwnDiedMinion == 1)
                {
                    int posi = ownplay ? p.ownMinions.Count : p.enemyMinions.Count;
                    kid = CardDB.Instance.getCardDataFromID((p.OwnLastDiedMinion == CardDB.cardIDEnum.None) ? CardDB.cardIDEnum.EX1_345t : p.OwnLastDiedMinion); // Shadow of Nothing 0:1 or ownMinion
                    p.CallKid(kid, posi, ownplay, false);
                }
                else
                {
                    foreach (KeyValuePair <CardDB.cardIDEnum, int> cn in p.OwnDiedMinions)
                    {
                        kid = cdb.getCardDataFromID(cn.Key);

                        p.CallKid(kid, pos++, ownplay);
                        i++;
                        if (i == 2)
                        {
                            break;
                        }
                    }
                }
                //if (p.numberofOwnDiedMinion-i >= 1) p.CallKid(kid, pos, ownplay);


                /*foreach (Handmanager.Handcard hc in p.owncards)
                 * {
                 *  if (hc.card.type == CardDB.cardtype.SPELL&&ownplay)  p.evaluatePenality += 2;
                 * }
                 */
            }
        }
Exemplo n.º 13
0
        public void loadPreparedBattlefield(int bfield)
        {
            if (bfield == 0)
            {
                currentMana              = 10;
                heroHp                   = 30;
                enemyHp                  = 5;
                heroAtk                  = 0;
                enemyAtk                 = 0;
                heroDefence              = 0;
                enemyDefence             = 0;
                ownheroisread            = false;
                ownheroAlreadyAttacked   = false;
                ownAbilityisReady        = false;
                heroname                 = "druid";
                enemyHeroname            = "warrior";
                this.heroAbility         = this.cdb.getCardDataFromID("CS2_017");
                anzEnemys                = 0;
                anzOwn                   = 0;
                herofrozen               = false;
                enemyfrozen              = false;
                numMinionsPlayedThisTurn = 0;
                cardsPlayedThisTurn      = 0;
                ueberladung              = 0;
                ownMaxMana               = 10;
                enemyMaxMana             = 10;
                enemyWeaponDurability    = 0;
                enemyWeaponAttack        = 0;
                enemyHeroWeapon          = "";

                heroWeaponDurability             = 0;
                heroWeaponAttack                 = 0;
                ownHeroWeapon                    = "";
                heroImmuneToDamageWhileAttacking = false;

                ownPlayerController = 1;


                Minion enemy1 = createNewMinion(cdb.getCardDataFromID("EX1_011"), 0);
                enemy1.Angr  = 4;
                enemy1.Ready = true;
                this.ownMinions.Add(enemy1);
            }

            if (bfield == 1)
            {
                currentMana              = 10;
                heroHp                   = 30;
                enemyHp                  = 30;
                heroAtk                  = 0;
                enemyAtk                 = 0;
                heroDefence              = 0;
                enemyDefence             = 0;
                ownheroisread            = false;
                ownheroAlreadyAttacked   = false;
                ownAbilityisReady        = false;
                heroname                 = "druid";
                enemyHeroname            = "warrior";
                this.heroAbility         = this.cdb.getCardDataFromID("CS2_017");
                anzEnemys                = 0;
                anzOwn                   = 0;
                herofrozen               = false;
                enemyfrozen              = false;
                numMinionsPlayedThisTurn = 0;
                cardsPlayedThisTurn      = 0;
                ueberladung              = 0;
                ownMaxMana               = 10;
                enemyMaxMana             = 10;
                enemyWeaponDurability    = 0;
                enemyWeaponAttack        = 0;
                enemyHeroWeapon          = "";

                heroWeaponDurability             = 0;
                heroWeaponAttack                 = 0;
                ownHeroWeapon                    = "";
                heroImmuneToDamageWhileAttacking = false;

                ownPlayerController = 1;


                Minion enemy1 = createNewMinion(cdb.getCardDataFromID("CS2_152"), 0);
                Minion enemy2 = createNewMinion(cdb.getCardDataFromID("CS2_152"), 1);
                Minion enemy3 = createNewMinion(cdb.getCardDataFromID("EX1_097"), 2);
                Minion enemy4 = createNewMinion(cdb.getCardDataFromID("CS2_152"), 3);
                Minion enemy5 = createNewMinion(cdb.getCardDataFromID("EX1_097"), 4);
                enemy1.stealth = true;
                enemy2.stealth = true;
                enemy4.stealth = true;
                enemy5.stealth = true;
                enemy5.Hp      = 2; enemy5.maxHp = 4;


                this.enemyMinions.Add(enemy1);
                this.enemyMinions.Add(enemy2);
                this.enemyMinions.Add(enemy3);
                this.enemyMinions.Add(enemy4);
                this.enemyMinions.Add(enemy5);
            }

            if (bfield == 2)
            {
                currentMana              = 10;
                heroHp                   = 30;
                enemyHp                  = 30;
                heroAtk                  = 0;
                enemyAtk                 = 0;
                heroDefence              = 0;
                enemyDefence             = 0;
                ownheroisread            = false;
                ownheroAlreadyAttacked   = false;
                ownAbilityisReady        = false;
                heroname                 = "druid";
                enemyHeroname            = "warrior";
                this.heroAbility         = this.cdb.getCardDataFromID("CS2_017");
                anzEnemys                = 0;
                anzOwn                   = 0;
                herofrozen               = false;
                enemyfrozen              = false;
                numMinionsPlayedThisTurn = 0;
                cardsPlayedThisTurn      = 0;
                ueberladung              = 0;
                ownMaxMana               = 10;
                enemyMaxMana             = 10;
                enemyWeaponDurability    = 0;
                enemyWeaponAttack        = 0;
                enemyHeroWeapon          = "";

                heroWeaponDurability             = 0;
                heroWeaponAttack                 = 0;
                ownHeroWeapon                    = "";
                heroImmuneToDamageWhileAttacking = false;

                ownPlayerController = 1;


                Minion enemy1 = createNewMinion(cdb.getCardDataFromID("NEW1_011"), 0);
                Minion enemy2 = createNewMinion(cdb.getCardDataFromID("CS2_152"), 1);
                enemy2.stealth = true;


                this.enemyMinions.Add(enemy1);
                this.enemyMinions.Add(enemy2);
            }
        }
Exemplo n.º 14
0
        CardDB.Card kid3 = CardDB.Instance.getCardDataFromID(CardDB.cardIDEnum.NEW1_032);  //misha


        public override void onCardPlay(Playfield p, bool ownplay, Minion target, int choice)
        {
            p.setNewHeroPower(CardDB.cardIDEnum.TRL_065h, ownplay); //
            if (ownplay)
            {
                p.ownHero.armor += 5;
            }
            else
            {
                p.enemyHero.armor += 5;
            }


            int pos = (ownplay) ? p.ownMinions.Count : p.enemyMinions.Count;

            if (ownplay)
            {
                foreach (KeyValuePair <CardDB.cardIDEnum, int> e in Probabilitymaker.Instance.ownCardsOut)
                {
                    kid = cdb.getCardDataFromID(e.Key);

                    if (kid.type == CardDB.cardtype.SPELL)
                    {
                        {
                            if (kid.Secret)
                            {
                                if (p.ownSecretsIDList.Count < 5 && !p.ownSecretsIDList.Contains(kid.cardIDenum))
                                {
                                    p.ownSecretsIDList.Add(kid.cardIDenum);
                                }
                            }
                            else if (kid.name == CardDB.cardName.unleashthebeast)
                            {
                                p.callKid(kid2, pos, ownplay);
                                p.drawACard(CardDB.cardName.unknown, ownplay, true);
                                if (e.Value > 1)
                                {
                                    p.callKid(kid2, pos, ownplay);
                                }
                            }
                            else if (kid.name == CardDB.cardName.animalcompanion)
                            {
                                if (e.Value > 1)
                                {
                                    p.callKid(kid3, pos, ownplay);
                                }
                                p.callKid(kid3, pos, ownplay);
                            }
                            else if (kid.name == CardDB.cardName.masterscall)
                            {
                                p.drawACard(CardDB.cardName.unknown, ownplay, true);
                                p.drawACard(CardDB.cardName.unknown, ownplay, true);
                                if (e.Value > 1)
                                {
                                    p.drawACard(CardDB.cardName.unknown, ownplay, true);
                                    p.drawACard(CardDB.cardName.unknown, ownplay, true);
                                }
                                p.drawACard(CardDB.cardName.unknown, ownplay, true);
                                if (e.Value > 1)
                                {
                                    p.drawACard(CardDB.cardName.unknown, ownplay, true);
                                }
                            }
                        }
                    }
                }
            }
        }
Exemplo n.º 15
0
        CardDB.Card kid3 = CardDB.Instance.getCardDataFromID(CardDB.cardIDEnum.NEW1_032);  //misha

        public override void onCardPlay(Playfield p, bool ownplay, Minion target, int choice)
        {
            p.setNewHeroPower(CardDB.cardIDEnum.TRL_065h, ownplay); //
            if (ownplay)
            {
                p.ownHero.armor += 5;
            }
            else
            {
                p.enemyHero.armor += 5;
            }

            int pos = (ownplay) ? p.ownMinions.Count : p.enemyMinions.Count;

            if (ownplay)
            {
                foreach (KeyValuePair <CardDB.cardIDEnum, int> e in Probabilitymaker.Instance.ownCardsOut)
                {
                    kid = cdb.getCardDataFromID(e.Key);

                    if (kid.type == CardDB.cardtype.SPELL && kid.name != CardDB.cardName.zuljin)
                    {
                        {
                            if (kid.Secret)
                            {
                                if (p.ownSecretsIDList.Count < 5 && !p.ownSecretsIDList.Contains(kid.cardIDenum))
                                {
                                    p.ownSecretsIDList.Add(kid.cardIDenum);
                                }
                            }
                            else
                            {
                                for (int i = 0; i < e.Value; i++)
                                {
                                    kid.CardSimulation.onCardPlay(p, ownplay, (p.ownMinions.Count != 0 || p.ownMinions.Count != 0)?(p.ownMinions.Count >= p.ownMinions.Count? p.searchRandomMinion(p.ownMinions, searchmode.searchHighestAttack):p.searchRandomMinion(p.enemyMinions, searchmode.searchHighestAttack)):p.enemyHero, 2);
                                }
                            }

//(p.ownMinions.Count!=0||p.ownMinions.Count!=0)?(p.ownMinions.Count>=p.ownMinions.Count? p.searchRandomMinion(p.ownMinions, searchmode.searchHighestAttack):p.searchRandomMinion(p.enemyMinions, searchmode.searchHighestAttack)):p.ownHero

                            /*
                             *          else if(kid.name == CardDB.cardName.猛兽出笼)
                             * {
                             *  p.CallKid(kid2, pos, ownplay);
                             *  p.drawACard(CardDB.cardName.unknown, ownplay, true);
                             *  if(e.Value>1)p.CallKid(kid2, pos, ownplay);
                             * }
                             * else if(kid.name == CardDB.cardName.animalcompanion)
                             * {
                             *  if(e.Value>1)p.CallKid(kid3, pos, ownplay);
                             *  p.CallKid(kid3, pos, ownplay);
                             * }
                             * else if(kid.name == CardDB.cardName.主人的召唤)
                             * {
                             *  p.drawACard(CardDB.cardName.unknown, ownplay, true);
                             *  if(e.Value>1)
                             *  {
                             *      p.drawACard(CardDB.cardName.unknown, ownplay, true);
                             *  }
                             * }
                             * else if(kid.name == CardDB.cardName.标记射击)
                             * {
                             *  p.drawACard(CardDB.cardName.unknown, ownplay, true);
                             *  if(e.Value>1)
                             *  {
                             *      p.drawACard(CardDB.cardName.unknown, ownplay, true);
                             *  }
                             * }
                             * else if(kid.name == CardDB.cardName.deadlyshot)//致命射击
                             * {
                             *  Minion m = p.searchRandomMinion(ownplay ? p.enemyMinions : p.ownMinions, searchmode.searchLowestHP);
                             *  if (m != null) p.minionGetDestroyed(m);
                             *  if(e.Value>1)
                             *  {
                             *      m = p.searchRandomMinion(ownplay ? p.enemyMinions : p.ownMinions, searchmode.searchLowestHP);
                             *      if (m != null) p.minionGetDestroyed(m);
                             *  }
                             * }*/
                        }
                    }
                }
            }
        }
Exemplo n.º 16
0
        public string heroIDtoName(string s)
        {
            switch (s)
            {
            case "HERO_01": return("warrior");

            case "HERO_01a": return("warrior");

            case "HERO_01b": return("warrior");

            case "HERO_01c": return("warrior");

            case "ICC_834": return("warrior");

            case "BOT_238": return("warrior");

            case "DRG_650": return("warrior");

            case "DRG_650t2": return("warrior");

            case "DRG_650t3": return("warrior");

            case "HERO_02": return("shaman");

            case "HERO_02a": return("shaman");

            case "HERO_02b": return("shaman");

            case "HERO_02c": return("shaman");

            case "HERO_02d": return("shaman");

            case "HERO_02e": return("shaman");

            case "ICC_481": return("shaman");

            case "GIL_504": return("shaman");

            case "DRG_620": return("shaman");

            case "DRG_620t2": return("shaman");

            case "DRG_620t3": return("shaman");

            case "HERO_03": return("thief");

            case "HERO_03a": return("thief");

            case "HERO_03b": return("thief");

            case "ICC_827": return("thief");

            case "DRG_610": return("thief");

            case "DRG_610t2": return("thief");

            case "DRG_610t3": return("thief");

            case "HERO_04": return("pala");

            case "HERO_04a": return("pala");

            case "HERO_04b": return("pala");

            case "HERO_04c": return("pala");

            case "HERO_04d": return("pala");

            case "ICC_829": return("pala");

            case "HERO_05": return("hunter");

            case "HERO_05a": return("hunter");

            case "HERO_05b": return("hunter");

            case "HERO_05c": return("hunter");

            case "ICC_828": return("hunter");

            case "TRL_065": return("hunter");

            case "HERO_06": return("druid");

            case "HERO_06a": return("druid");

            case "HERO_06b": return("druid");

            case "HERO_06c": return("druid");

            case "HERO_06d": return("druid");

            case "ICC_832": return("druid");

            case "HERO_07": return("warlock");

            case "HERO_07a": return("warlock");

            case "HERO_07b": return("warlock");

            case "HERO_07c": return("warlock");

            case "ICC_831": return("warlock");

            case "DRG_600": return("warlock");

            case "DRG_600t2": return("warlock");

            case "DRG_600t3": return("warlock");

            case "HERO_08": return("mage");

            case "HERO_08a": return("mage");

            case "HERO_08b": return("mage");

            case "HERO_08c": return("mage");

            case "ICC_833": return("mage");

            case "YOD_009": return("mage");

            case "HERO_09": return("priest");

            case "HERO_09a": return("priest");

            case "HERO_09b": return("priest");

            case "HERO_09c": return("priest");

            case "ICC_830": return("priest");

            case "DRG_660": return("priest");

            case "DRG_660t2": return("priest");

            case "DRG_660t3": return("priest");

            case "HERO_10": return("demonhunter");

            case "HERO_10a": return("demonhunter");

            case "EX1_323h": return("lordjaraxxus");

            case "BRM_027h": return("ragnarosthefirelord");

            default:
                string retval = cdb.getCardDataFromID(cdb.cardIdstringToEnum(s)).name.ToString();
                return(retval);
            }
        }