예제 #1
0
        public static void GenerateWhiteAndBlackListForSpecialDeck(DeckType typeOfDeck)
        {
            switch (typeOfDeck)
            {
            case DeckType.MECH:
                MainLists.whiteList.Add("GVG_085");   //Annoy-o-Tron
                MainLists.whiteList.Add("GVG_030");   //Anodized Robo Cub
                MainLists.whiteList.Add("GVG_082");   //Clockwork Gnome
                MainLists.whiteList.Add("GVG_023");   //Goblin Auto-Barber
                MainLists.whiteList.Add("GVG_006");   //Mechwarper
                MainLists.whiteList.Add("GVG_103");   //Micro Machine
                MainLists.whiteList.Add("GVG_058");   //Shielded Minibot
                MainLists.whiteList.Add("GVG_002");   //Snowchugger
                MainLists.whiteList.Add("GVG_051");   //Warbot
                MainLists.whiteList.Add("GVG_037");   //Whirling Zap-o-matic
                MainLists.whiteList.Add("GVG_072");   //Shadowboxer
                MainLists.whiteList.Add("GVG_048");   //Metaltooth Leaper
                MainLists.whiteList.Add("GVG_093");   //Target Dummy
                MainLists.whiteList.Add("GVG_107");   //Enhance-o Mechano
                MainLists.whiteList.Add("GVG_013");   //Cogmaster
                MainLists.whiteList.Add("GVG_102");   //Tinkertown Technician

                MainLists.blackList.Add("GVG_069");   //Antique Healbot
                MainLists.blackList.Add("AT_096");    //Clockwork Knight
                MainLists.blackList.Add("GVG_076");   //Explosive Sheep
                MainLists.blackList.Add("GVG_079");   //Force-Tank MAX
                MainLists.blackList.Add("GVG_078");   //Mechanical Yeti
                MainLists.blackList.Add("GVG_096");   //Piloted Shredder
                MainLists.blackList.Add("GVG_044");   //Spider Tank
                MainLists.blackList.Add("EX1_006");   //Alarm-o-Bot
                MainLists.blackList.Add("GVG_091");   //Arcane Nullifier X-21
                MainLists.blackList.Add("GVG_062");   //Cobalt Guardian
                MainLists.blackList.Add("EX1_102");   //Demolisher
                MainLists.blackList.Add("GVG_020");   //Fel Cannon
                MainLists.blackList.Add("GVG_027");   //Iron Sensei
                MainLists.blackList.Add("GVG_094");   //Jeeves
                MainLists.blackList.Add("GVG_034");   //Mech-Bear-Cat
                MainLists.blackList.Add("GVG_055");   //Screwjank Clunker
                MainLists.blackList.Add("GVG_086");   //Siege Engine
                MainLists.blackList.Add("GVG_123");   //Soot Spewer
                MainLists.blackList.Add("GVG_083");   //Upgraded Repair Bot
                MainLists.blackList.Add("GVG_077");   //Anima Golem
                MainLists.blackList.Add("GVG_121");   //Clockwork Giant
                MainLists.blackList.Add("GVG_107");   //Enhance-o Mechano
                MainLists.blackList.Add("GVG_106");   //Junkbot
                MainLists.blackList.Add("GVG_119");   //Blingtron 3000
                MainLists.blackList.Add("GVG_007");   //Flame Leviathan
                MainLists.blackList.Add("GVG_016");   //Fel Reaver
                MainLists.blackList.Add("GVG_105");   //Piloted Sky Golem
                MainLists.blackList.Add("GVG_113");   //Foe Reaper 4000

                //Warrior cards
                MainLists.whiteList.Add("CS2_106");    //Fiery War Axe
                MainLists.whiteList.Add("EX1_402");    //Armorsmith
                MainLists.whiteList.Add("FP1_021");    //Death's Bite

                MainLists.blackList.Add("CS2_105");    //Heroic Strike
                MainLists.blackList.Add("CS2_112");    //Arcanite Reaper
                MainLists.blackList.Add("GVG_055");    //Screwjank Clunker
                MainLists.blackList.Add("NEW1_011");   //Kor'kron Elite
                MainLists.blackList.Add("EX1_408");    //Mortal Strike
                MainLists.blackList.Add("GVG_110");    //Dr. Boom

                //Mage cards
                MainLists.whiteList.Add("EX1_277");    //Arcane Missiles
                MainLists.whiteList.Add("NEW1_012");   //Mana Wyrm
                MainLists.whiteList.Add("CS2_024");    //Frostbolt
                MainLists.whiteList.Add("GVG_002");    //Snowchugger

                MainLists.blackList.Add("BRM_002");    //Flamewaker
                MainLists.blackList.Add("CS2_029");    //Fireball
                MainLists.blackList.Add("GVG_004");    //Goblin Blastmage
                MainLists.blackList.Add("EX1_559");    //Archmage Antonidas
                MainLists.blackList.Add("FP1_030");    //Loatheb
                break;

            case DeckType.OTK_WARRIOR:
                if (MainLists.HandCards_BoardCards.Any(x => x.Id.ToString() == "EX1_412")) //Raging Worgen
                {
                    MainLists.whiteList.Add("EX1_607");                                    //Inner Rage
                }
                else
                {
                    MainLists.blackList.Add("EX1_607"); //Inner Rage
                }
                MainLists.whiteList.Add("FP1_024");     //Unstable Ghoul
                MainLists.whiteList.Add("CS2_106");     //Fiery War Axe
                MainLists.whiteList.Add("CS2_104");     //Rampage
                MainLists.whiteList.Add("FP1_021");     //Death's Bite
                MainLists.whiteList.Add("CS2_103");     //Charge
                MainLists.whiteList.Add("EX1_096");     //Loot Hoarder
                MainLists.whiteList.Add("EX1_412");     //Raging Worgen
                MainLists.whiteList.Add("EX1_400");     //Whirlwind
                MainLists.whiteList.Add("EX1_007");     //Acolyte of Pain

                if (MainLists.OpponentClass == Card.CClass.HUNTER)
                {
                    MainLists.whiteList.Add("EX1_606");    //Shield Block
                }
                else
                {
                    MainLists.blackList.Add("EX1_606"); //Shield Block
                }
                MainLists.blackList.Add("EX1_049");     //Youthful Brewmaster
                MainLists.blackList.Add("EX1_603");     //Cruel Taskmaster
                MainLists.blackList.Add("CS2_108");     //Execute
                MainLists.blackList.Add("EX1_410");     //Shield Slam
                MainLists.blackList.Add("EX1_391");     //Slam
                MainLists.blackList.Add("EX1_604");     //Frothing Berserker
                MainLists.blackList.Add("EX1_407");     //Brawl
                MainLists.blackList.Add("CS2_203");     //Ironbeak Owl
                MainLists.blackList.Add("CS2_147");     //Gnomish Inventor
                MainLists.blackList.Add("BRM_028");     //Emperor Thaurissan
                MainLists.blackList.Add("GVG_069");     //Antique Healbot
                break;

            case DeckType.MIRACLE_ROGUE:
                MainLists.whiteList.Add("CS2_072");                                          //Backstab
                MainLists.whiteList.Add("EX1_613");                                          //Edwin VanCleef
                MainLists.whiteList.Add("EX1_134");                                          //SI:7 Agent
                MainLists.whiteList.Add("EX1_131");                                          //Defias Ringleader

                if (MainLists.HandCards_BoardCards.Any(x => x.Id.ToString() == "CS2_233") && //Blade Flurry
                    MainLists.HandCards_BoardCards.Any(x => x.Id.ToString() == "CS2_074"))   //Deadly Poison
                {
                    MainLists.whiteList.Add("CS2_074");                                      //Deadly Poison
                    MainLists.whiteList.Add("CS2_233");                                      //Blade Flurry
                }
                else
                {
                    if (MainLists.OpponentClass == Card.CClass.PRIEST)
                    {
                        MainLists.whiteList.Add("CS2_074");     //Deadly Poison
                    }
                    else
                    {
                        MainLists.blackList.Add("CS2_074"); //Deadly Poison
                    }
                    MainLists.blackList.Add("CS2_233");     //Blade Flurry
                }
                if (MainLists.OpponentClass == Card.CClass.HUNTER)
                {
                    MainLists.blackList.Add("EX1_129");    //Fan of Knives
                }
                else
                {
                    MainLists.blackList.Add("EX1_129"); //Fan of Knives
                }
                MainLists.blackList.Add("EX1_124");     //Eviscerate
                MainLists.blackList.Add("CS2_075");     //Sinister Strike
                MainLists.blackList.Add("CS2_233");     //Blade Flurry
                MainLists.blackList.Add("EX1_012");     //Bloodmage Thalnos
                MainLists.blackList.Add("EX1_144");     //Shadowstep
                MainLists.blackList.Add("EX1_095");     //Gadgetzan Auctioneer
                MainLists.blackList.Add("CS2_073");     //Cold Blood
                MainLists.blackList.Add("EX1_116");     //Leeroy Jenkins
                MainLists.blackList.Add("CS2_117");     //Earthen Ring Farseer
                MainLists.blackList.Add("EX1_128");     //Conceal
                MainLists.blackList.Add("EX1_145");     //Preparation
                MainLists.blackList.Add("EX1_581");     //Sap
                MainLists.blackList.Add("EX1_278");     //Shiv

                MainLists.blackList.Add("EX1_284");     //Azure Drake
                MainLists.blackList.Add("CS2_080");     //Assassin's Blade
                break;

            case DeckType.PIRAT_ROGUE:
                if (MainLists.OpponentClass != Card.CClass.MAGE)
                {
                    MainLists.whiteList.Add("AT_029");     //Buccaneer
                    MainLists.whiteList.Add("GVG_025");    //One-eyed Cheat
                    MainLists.whiteList.Add("CS2_146");    //Southsea Deckhand
                    MainLists.whiteList.Add("EX1_096");    //Loot Hoarder
                }
                else
                {
                    MainLists.blackList.Add("AT_029");                                     //Buccaneer
                    MainLists.blackList.Add("GVG_025");                                    //One-eyed Cheat
                    MainLists.blackList.Add("CS2_146");                                    //Southsea Deckhand
                    MainLists.blackList.Add("EX1_096");                                    //Loot Hoarder
                }
                if (MainLists.HandCards_BoardCards.Any(x => x.Id.ToString() == "CS2_074")) //Deadly Poison
                {
                    MainLists.whiteList.Add("NEW1_022");                                   //Dread Corsair
                }
                else
                {
                    MainLists.blackList.Add("NEW1_022"); //Dread Corsair
                }
                MainLists.whiteList.Add("CS2_074");      //Deadly Poison
                MainLists.whiteList.Add("EX1_134");      //SI:7 Agent
                MainLists.whiteList.Add("GVG_075");      //Ship's Cannon
                MainLists.whiteList.Add("EX1_124");      //Eviscerate

                MainLists.blackList.Add("AT_033");       //Burgle
                MainLists.blackList.Add("AT_032");       //Shady Dealer
                MainLists.blackList.Add("CS2_233");      //Blade Flurry
                MainLists.blackList.Add("CS2_077");      //Sprint
                MainLists.blackList.Add("EX1_012");      //Bloodmage Thalnos
                MainLists.blackList.Add("NEW1_018");     //Bloodsail Raider
                MainLists.blackList.Add("NEW1_027");     //Southsea Captain
                MainLists.blackList.Add("AT_070");       //Skycap'n Kragg
                MainLists.blackList.Add("EX1_284");      //Azure Drake
                MainLists.blackList.Add("CS2_080");      //Assassin's Blade
                MainLists.blackList.Add("GVG_022");      //Tinker's Sharpsword Oil
                break;

            case DeckType.MURLOC:
                if (MainLists.OpponentClass != Card.CClass.MAGE)
                {
                    MainLists.whiteList.Add("EX1_506");    //Murloc Tidehunter
                    MainLists.whiteList.Add("EX1_029");    //Leper Gnome
                    MainLists.whiteList.Add("EX1_508");    //Grimscale Oracle
                }
                else
                {
                    MainLists.blackList.Add("EX1_506");    //Murloc Tidehunter
                    MainLists.blackList.Add("EX1_029");    //Leper Gnome
                    MainLists.blackList.Add("EX1_508");    //Grimscale Oracle
                }

                if (MainLists.HandCards_BoardCards.Count(x => x.Id.ToString() == "EX1_302") >= 2)
                {
                    string mortailCoilString =
                        MainLists.HandCards_BoardCards.First(x => x.Id.ToString() == "EX1_302").Id.ToString();

                    MainLists.chosenCards.Add(CardTemplate.StringToCard(mortailCoilString));
                    MainLists.blackList.Add(mortailCoilString);
                }
                else
                {
                    MainLists.whiteList.Add("EX1_302"); //Mortal Coil
                }
                MainLists.whiteList.Add("EX1_507");     //Murloc Warleader
                MainLists.whiteList.Add("EX1_509");     //Murloc Tidecaller
                MainLists.whiteList.Add("EX1_554");     //Snake Trap
                MainLists.whiteList.Add("EX1_319");     //Flame Imp
                MainLists.whiteList.Add("CS2_065");     //Voidwalker
                MainLists.whiteList.Add("EX1_508");     //Grimscale Oracle
                MainLists.whiteList.Add("EX1_004");     //Young Priestess
                MainLists.whiteList.Add("GVG_064");     //Puddlestomper
                MainLists.whiteList.Add("NEW1_019");    //Knife Juggler
                MainLists.whiteList.Add("CS2_059");     //Blood Imp

                bool havingEnoughLowDropMinions =
                    MainLists.HandCards_BoardCards.Count(x => x.Type == Card.CType.MINION && x.Cost <= 2) >= 2;

                if (havingEnoughLowDropMinions)
                {
                    MainLists.whiteList.Add("EX1_366");    //Sword of Justice
                }
                else
                {
                    MainLists.blackList.Add("EX1_366"); //Sword of Justice
                }
                MainLists.blackList.Add("CS2_168");     //Murloc Raider
                MainLists.blackList.Add("GVG_040");     //Siltfin Spiritwalker
                MainLists.blackList.Add("CS2_173");     //Bluegill Warrior
                MainLists.blackList.Add("CS2_203");     //Ironbeak Owl
                MainLists.blackList.Add("FP1_004");     //Mad Scientist
                MainLists.blackList.Add("EX1_062");     //Old Murk-Eye
                MainLists.blackList.Add("EX1_116");     //Leeroy Jenkins
                MainLists.blackList.Add("EX1_538");     //Unleash the Hounds
                MainLists.blackList.Add("EX1_539");     //Kill Command
                MainLists.blackList.Add("NEW1_031");    //Animal Companion
                MainLists.blackList.Add("EX1_536");     //Eaglehorn Bow
                MainLists.blackList.Add("BRM_013");     //Quick Shot
                MainLists.blackList.Add("EX1_610");     //Explosive Trap
                MainLists.blackList.Add("EX1_316");     //Power Overwhelming
                MainLists.blackList.Add("EX1_308");     //Soulfire
                MainLists.blackList.Add("EX1_089");     //Arcane Golem
                MainLists.blackList.Add("EX1_103");     //Coldlight Seer
                MainLists.blackList.Add("CS2_188");     //Abusive Sergeant
                MainLists.blackList.Add("EX1_162");     //Dire Wolf Alpha
                MainLists.blackList.Add("EX1_093");     //Defender of Argus
                MainLists.blackList.Add("EX1_136");     //Redemption
                MainLists.blackList.Add("AT_122");      //Gormok the Impaler
                MainLists.blackList.Add("AT_076");      //Murloc Knight
                MainLists.blackList.Add("NEW1_017");    //Hungry Crab
                MainLists.blackList.Add("EX1_310");     //Doomguard
                MainLists.blackList.Add("GVG_045");     //Imp-losion

                if (Combos.HasOneTwoThreeMurlocCombo())
                {
                    Combos.AddMurlocComboToLists();
                }
                break;

            case DeckType.HANDLOCK_WAROCK:
                /*whitelist > blacklist*/
                foreach (CardTemplate handCardsBoardCard in MainLists.HandCards_BoardCards)
                {
                    MainLists.blackList.Add(handCardsBoardCard.Id.ToString());
                }

                MainLists.whiteList.Add("EX1_302");    //Mortal Coil
                MainLists.whiteList.Add("GVG_015");    //Darkbomb
                MainLists.whiteList.Add("CS2_062");    //Hellfire
                MainLists.whiteList.Add("FP1_001");    //Zombie Chow
                MainLists.whiteList.Add("EX1_043");    //Twilight Drake

                if (MainLists.OpponentClass == Card.CClass.ROGUE ||
                    MainLists.OpponentClass == Card.CClass.WARRIOR)
                {
                    MainLists.whiteList.Add("EX1_066");    //Acidic Swamp Ooze
                }
                if (MainLists.OpponentClass != Card.CClass.HUNTER && MainLists.OpponentClass != Card.CClass.MAGE)
                {
                    MainLists.whiteList.Add("EX1_105");    //Mountain Giant
                }
                break;
            }
        }