Example #1
0
 private static void Shaman(IDictionary <string, CardDef> cards)
 {
     // ---------------------------------------- MINION - SHAMAN
     // [GIL_530] Murkspark Eel - COST:2 [ATK:2/HP:3]
     // - Race: beast, Set: gilneas, Rarity: rare
     // --------------------------------------------------------
     // Text: <b>Battlecry:</b> If your deck has only even-Cost cards, deal_2 damage.
     // --------------------------------------------------------
     // GameTag:
     // - BATTLECRY = 1
     // --------------------------------------------------------
     // PlayReq:
     // - REQ_DRAG_TO_PLAY = 0
     // --------------------------------------------------------
     cards.Add("GIL_530", new CardDef(new Dictionary <PlayReq, int>()
     {
         { PlayReq.REQ_DRAG_TO_PLAY_PRE29933, 0 }
     }, new Power
     {
         // TODO Test: Murkspark Eel_GIL_530
         // play requirement?
         PowerTask = ComplexTask.Create(
             new ConditionTask(EntityType.SOURCE, SelfCondition.HasNoOddCostInDeck),
             new FlagTask(true, new DamageTask(2, EntityType.TARGET)))
     }));
 }
Example #2
0
 private static void Priest(IDictionary <string, CardDef> cards)
 {
     // ---------------------------------------- MINION - PRIEST
     // [GIL_837] Glitter Moth - COST:5 [ATK:4/HP:4]
     // - Race: beast, Set: gilneas, Rarity: epic
     // --------------------------------------------------------
     // Text: <b>Battlecry:</b> If your deck has only odd-Cost cards, double the Health of your other minions.
     // --------------------------------------------------------
     // GameTag:
     // - BATTLECRY = 1
     // --------------------------------------------------------
     cards.Add("GIL_837", new CardDef(new Power
     {
         // TODO Test: Glitter Moth_GIL_837
         PowerTask = ComplexTask.Create(
             new ConditionTask(EntityType.SOURCE, SelfCondition.HasNoEvenCostInDeck),
             new AddEnchantmentTask("GIL_837e", EntityType.MINIONS_NOSOURCE))
     }));
     // ----------------------------------------- SPELL - PRIEST
     // [DS1_233] Mind Blast - COST:2
     // - Fac: neutral, Set: core, Rarity: free
     // --------------------------------------------------------
     // Text: Deal $5 damage to the enemy hero. @spelldmg
     // --------------------------------------------------------
     cards.Add("DS1_233", new CardDef(new Power
     {
         PowerTask = new DamageTask(5, EntityType.OP_HERO, true)
     }));
 }
Example #3
0
        public static Enchant Health(int amount, params RelaCondition[] list)
        {
            var relaConditions = new List <RelaCondition>
            {
                RelaCondition.IsNotSelf
            };

            relaConditions.AddRange(list);
            var result = new Enchant
            {
                EnableConditions = new List <SelfCondition>
                {
                    SelfCondition.IsInZone(Zone.PLAY),
                    SelfCondition.IsNotSilenced
                },
                ApplyConditions = relaConditions,
                Effects         = new Dictionary <GameTag, int>()
                {
                    [GameTag.HEALTH] = amount
                },
                // Health Retention task ...
                RemovalTask = ComplexTask.Create(
                    new IncludeTask(EntityType.MINIONS, new [] { EntityType.SOURCE }),
                    new FilterStackTask(EntityType.SOURCE, relaConditions.ToArray()),
                    new HealthRetentionTask(amount, EntityType.STACK))
            };

            list.ToList().ForEach(p => result.ApplyConditions.Add(p));
            return(result);
        }
Example #4
0
 private static void Paladin(IDictionary <string, CardDef> cards)
 {
     // ---------------------------------------- SPELL - PALADIN
     // [FP1_020] Avenge - COST:1
     // - Set: naxx, Rarity: common
     // --------------------------------------------------------
     // Text: <b>Secret:</b> When one of your minions dies, give a random friendly minion +3/+2.
     // --------------------------------------------------------
     // GameTag:
     // - SECRET = 1
     // --------------------------------------------------------
     cards.Add("FP1_020", new CardDef(new Power
     {
         InfoCardId = "FP1_020e",
         Trigger    = new Trigger(TriggerType.DEATH)
         {
             TriggerSource = TriggerSource.FRIENDLY,
             SingleTask    = ComplexTask.Create(
                 new ConditionTask(EntityType.SOURCE, SelfCondition.IsBoardCount(0)),
                 new FlagTask(false, ComplexTask.Secret(
                                  new RandomTask(1, EntityType.MINIONS),
                                  new AddEnchantmentTask("FP1_020e", EntityType.STACK))))
         }
     }));
 }
Example #5
0
        private static void Mage(IDictionary <string, Power> cards)
        {
            // ------------------------------------------ MINION - MAGE
            // [BRM_002] Flamewaker - COST:3 [ATK:2/HP:4]
            // - Set: brm, Rarity: rare
            // --------------------------------------------------------
            // Text: After you cast a spell, deal 2 damage randomly split among all enemies.
            // --------------------------------------------------------
            cards.Add("BRM_002", new Power {
                Trigger = new Trigger(TriggerType.AFTER_CAST)
                {
                    TriggerSource = TriggerSource.FRIENDLY,
                    SingleTask    = new EnqueueTask(2, ComplexTask.DamageRandomTargets(1, EntityType.ENEMIES, 1))
                }
            });

            // ------------------------------------------- SPELL - MAGE
            // [BRM_003] Dragon's Breath - COST:5
            // - Set: brm, Rarity: common
            // --------------------------------------------------------
            // Text: Deal $4 damage. Costs (1) less for each minion that died this turn. @spelldmg
            // --------------------------------------------------------
            // PlayReq:
            // - REQ_TARGET_TO_PLAY = 0
            // --------------------------------------------------------
            cards.Add("BRM_003", new Power {
                Aura      = AdaptiveCostEffect.NumEachMinionDiedThisTurn,
                PowerTask = ComplexTask.Create(
                    new DamageTask(4, EntityType.TARGET, true))
            });
        }
Example #6
0
 private static void Mage(IDictionary <string, List <Enchantment> > cards)
 {
     // ------------------------------------------- SPELL - MAGE
     // [CS2_031] Ice Lance - COST:1
     // - Fac: neutral, Set: hof, Rarity: common
     // --------------------------------------------------------
     // Text: <b>Freeze</b> a character. If it was already <b>Frozen</b>, deal $4 damage instead. *spelldmg
     // --------------------------------------------------------
     // GameTag:
     // - FREEZE = 1
     // --------------------------------------------------------
     // PlayReq:
     // - REQ_TARGET_TO_PLAY = 0
     // --------------------------------------------------------
     cards.Add("CS2_031", new List <Enchantment> {
         new Enchantment
         {
             Activation = EnchantmentActivation.SPELL,
             SingleTask = ComplexTask.Create(
                 new ConditionTask(EntityType.TARGET, SelfCondition.IsFrozen),
                 ComplexTask.True(new DamageTask(4, EntityType.TARGET, true)),
                 ComplexTask.False(ComplexTask.Freeze(EntityType.TARGET)))
         }
     });
 }
Example #7
0
 // TODO: maybe need some more work here
 public static Trigger WorgenTransform(string cardId, string enchantmentId)
 {
     return(new Trigger(TriggerType.WORGEN_TRANSFORM)
     {
         TriggerActivation = TriggerActivation.HAND,
         SingleTask = ComplexTask.Create(
             new SwapAttackHealthTask(EntityType.SOURCE, enchantmentId),
             new ChangeEntityTask(cardId)),
         RemoveAfterTriggered = true
     });
 }
Example #8
0
        private static void Shaman(IDictionary <string, List <Enchantment> > cards)
        {
            // ----------------------------------------- SPELL - SHAMAN
            // [BRM_011] Lava Shock - COST:2
            // - Set: fp2, Rarity: rare
            // --------------------------------------------------------
            // Text: Deal $2 damage.
            //       Unlock your <b>Overloaded</b> Mana Crystals. *spelldmg
            // --------------------------------------------------------
            // PlayReq:
            // - REQ_TARGET_TO_PLAY = 0
            // --------------------------------------------------------
            // RefTag:
            // - OVERLOAD = 1
            // --------------------------------------------------------
            cards.Add("BRM_011", new List <Enchantment> {
                new Enchantment
                {
                    Activation = EnchantmentActivation.SPELL,
                    SingleTask = ComplexTask.Create(
                        new DamageTask(2, EntityType.TARGET),
                        new SetControllerGameTagTask(GameTag.OVERLOAD_LOCKED, 0)),
                },
            });

            // ---------------------------------------- MINION - SHAMAN
            // [BRM_012] Fireguard Destroyer - COST:4 [ATK:3/HP:6]
            // - Set: fp2, Rarity: common
            // --------------------------------------------------------
            // Text: <b>Battlecry:</b> Gain 1-4 Attack. <b>Overload:</b> (1)
            // --------------------------------------------------------
            // GameTag:
            // - OVERLOAD = 1
            // - BATTLECRY = 1
            // - OVERLOAD_OWED = 1
            // --------------------------------------------------------
            cards.Add("BRM_012", new List <Enchantment> {
                new Enchantment
                {
                    Activation = EnchantmentActivation.BATTLECRY,
                    SingleTask = ComplexTask.Create(
                        new MathRandTask(1, 4),
                        new BuffAttackNumberTask(EntityType.SOURCE))
                },
            });
        }
Example #9
0
 private static void Priest(IDictionary <string, Power> cards)
 {
     // ---------------------------------------- MINION - PRIEST
     // [FP1_023] Dark Cultist - COST:3 [ATK:3/HP:4]
     // - Set: naxx, Rarity: common
     // --------------------------------------------------------
     // Text: <b>Deathrattle:</b> Give a random friendly minion +3 Health.
     // --------------------------------------------------------
     // GameTag:
     // - DEATHRATTLE = 1
     // --------------------------------------------------------
     cards.Add("FP1_023", new Power {
         DeathrattleTask = ComplexTask.Create(
             new RandomTask(1, EntityType.MINIONS),
             new AddEnchantmentTask("FP1_023e", EntityType.TARGET))
     });
 }
Example #10
0
 private static void Hunter(IDictionary <string, Power> cards)
 {
     // ---------------------------------------- MINION - HUNTER
     // [FP1_011] Webspinner - COST:1 [ATK:1/HP:1]
     // - Race: beast, Set: naxx, Rarity: common
     // --------------------------------------------------------
     // Text: <b>Deathrattle:</b> Add a random Beast card to your hand.
     // --------------------------------------------------------
     // GameTag:
     // - DEATHRATTLE = 1
     // --------------------------------------------------------
     cards.Add("FP1_011", new Power {
         DeathrattleTask = ComplexTask.Create(
             new RandomMinionTask(GameTag.CARDRACE, (int)Race.BEAST),
             new AddStackTo(EntityType.HAND))
     });
 }
Example #11
0
        private static void Hunter(IDictionary <string, List <Enchantment> > cards)
        {
            // ----------------------------------------- SPELL - HUNTER
            // [BRM_013] Quick Shot - COST:2
            // - Set: fp2, Rarity: common
            // --------------------------------------------------------
            // Text: Deal $3 damage.
            //       If your hand is empty, draw a card. *spelldmg
            // --------------------------------------------------------
            // GameTag:
            // - AFFECTED_BY_SPELL_POWER = 1
            // --------------------------------------------------------
            // PlayReq:
            // - REQ_TARGET_TO_PLAY = 0
            // --------------------------------------------------------
            cards.Add("BRM_013", new List <Enchantment> {
                new Enchantment
                {
                    Activation = EnchantmentActivation.SPELL,
                    SingleTask = ComplexTask.Create(
                        new DamageTask(3, EntityType.TARGET, true),
                        new ConditionTask(EntityType.SOURCE, SelfCondition.IsHandEmpty),
                        new FlagTask(true, new DrawTask()))
                },
            });

            // ---------------------------------------- MINION - HUNTER
            // [BRM_014] Core Rager - COST:4 [ATK:4/HP:4]
            // - Race: beast, Set: fp2, Rarity: rare
            // --------------------------------------------------------
            // Text: <b>Battlecry:</b> If your hand is empty, gain +3/+3.
            // --------------------------------------------------------
            // GameTag:
            // - BATTLECRY = 1
            // --------------------------------------------------------
            cards.Add("BRM_014", new List <Enchantment> {
                new Enchantment
                {
                    Activation = EnchantmentActivation.BATTLECRY,
                    SingleTask = ComplexTask.Create(
                        new ConditionTask(EntityType.SOURCE, SelfCondition.IsHandEmpty),
                        new FlagTask(true, new BuffTask(Buffs.AttackHealth(3), EntityType.SOURCE)))
                },
            });
        }
Example #12
0
 private static void Rogue(IDictionary <string, Power> cards)
 {
     // ----------------------------------------- MINION - ROGUE
     // [FP1_026] Anub'ar Ambusher - COST:4 [ATK:5/HP:5]
     // - Set: naxx, Rarity: common
     // --------------------------------------------------------
     // Text: <b>Deathrattle:</b> Return a random friendly minion to your hand.
     // --------------------------------------------------------
     // GameTag:
     // - DEATHRATTLE = 1
     // --------------------------------------------------------
     cards.Add("FP1_026", new Power {
         // TODO AnubarAmbusher_FP1_026 test
         DeathrattleTask = ComplexTask.Create(
             new RandomTask(1, EntityType.MINIONS),
             new ReturnHandTask(EntityType.STACK))
     });
 }
Example #13
0
 private static void Shaman(IDictionary <string, Power> cards)
 {
     // ----------------------------------------- SPELL - SHAMAN
     // [FP1_025] Reincarnate - COST:2
     // - Set: naxx, Rarity: common
     // --------------------------------------------------------
     // Text: Destroy a minion, then return it to life with full Health.
     // --------------------------------------------------------
     // PlayReq:
     // - REQ_TARGET_TO_PLAY = 0
     // - REQ_MINION_TARGET = 0
     // --------------------------------------------------------
     cards.Add("FP1_025", new Power {
         PowerTask = ComplexTask.Create(
             new DestroyTask(EntityType.TARGET, true),
             new CopyTask(EntityType.TARGET, Zone.PLAY))
     });
 }
Example #14
0
        private static void Mage(IDictionary <string, Power> cards)
        {
            // ------------------------------------------- SPELL - MAGE
            // [CS2_031] Ice Lance - COST:1
            // - Fac: neutral, Set: hof, Rarity: common
            // --------------------------------------------------------
            // Text: <b>Freeze</b> a character. If it was already <b>Frozen</b>, deal $4 damage instead. @spelldmg
            // --------------------------------------------------------
            // GameTag:
            // - FREEZE = 1
            // --------------------------------------------------------
            // PlayReq:
            // - REQ_TARGET_TO_PLAY = 0
            // --------------------------------------------------------
            cards.Add("CS2_031", new Power {
                PowerTask = ComplexTask.Create(
                    new ConditionTask(EntityType.TARGET, SelfCondition.IsFrozen),
                    ComplexTask.True(new DamageTask(4, EntityType.TARGET, true)),
                    ComplexTask.False(ComplexTask.Freeze(EntityType.TARGET)))
            });

            // ------------------------------------------- SPELL - MAGE
            // [EX1_295] Ice Block - COST:3
            // - Fac: neutral, Set: expert1, Rarity: epic
            // --------------------------------------------------------
            // Text: <b>Secret:</b> When your hero takes fatal damage, prevent it and become <b>Immune</b> this turn.
            // --------------------------------------------------------
            // GameTag:
            // - SECRET = 1
            // --------------------------------------------------------
            // RefTag:
            // - IMMUNE = 1
            // --------------------------------------------------------
            cards.Add("EX1_295", new Power {
                Trigger = new Trigger(TriggerType.PREDAMAGE)
                {
                    TriggerSource = TriggerSource.HERO,
                    Condition     = SelfCondition.IsHeroLethalPreDamaged,
                    FastExecution = true,
                    SingleTask    = ComplexTask.Secret(
                        new AddEnchantmentTask("EX1_295o", EntityType.HERO))
                }
            });
        }
Example #15
0
 private static void Warlock(IDictionary <string, Power> cards)
 {
     // --------------------------------------- MINION - WARLOCK
     // [FP1_022] Voidcaller - COST:4 [ATK:3/HP:4]
     // - Race: demon, Set: naxx, Rarity: common
     // --------------------------------------------------------
     // Text: <b>Deathrattle:</b> Put a random Demon from your hand into the battlefield.
     // --------------------------------------------------------
     // GameTag:
     // - DEATHRATTLE = 1
     // --------------------------------------------------------
     cards.Add("FP1_022", new Power {
         DeathrattleTask = ComplexTask.Create(
             new IncludeTask(EntityType.HAND),
             new FilterStackTask(SelfCondition.IsRace(Race.DEMON)),
             new RandomTask(1, EntityType.STACK),
             new SummonTask())
     });
 }
Example #16
0
 private static void Druid(IDictionary <string, Power> cards)
 {
     // ------------------------------------------ SPELL - DRUID
     // [FP1_019] Poison Seeds - COST:4
     // - Set: naxx, Rarity: common
     // --------------------------------------------------------
     // Text: Destroy all minions and summon 2/2 Treants to replace them.
     // --------------------------------------------------------
     cards.Add("FP1_019", new Power {
         PowerTask = ComplexTask.Create(
             new CountTask(EntityType.MINIONS),
             new CountTask(EntityType.OP_MINIONS, 1),
             new DestroyTask(EntityType.ALLMINIONS, true),
             new EnqueueNumberTask(new SummonTask("FP1_019t")),
             new MathMultiplyTask(0),
             new MathNumberIndexTask(0, 1, MathOperation.ADD),
             new EnqueueNumberTask(new SummonOpTask("FP1_019t")))
     });
 }
Example #17
0
        private static void Warlock(IDictionary <string, List <Enchantment> > cards)
        {
            // ---------------------------------------- SPELL - WARLOCK
            // [BRM_005] Demonwrath - COST:3
            // - Set: fp2, Rarity: rare
            // --------------------------------------------------------
            // Text: Deal $2 damage to all non-Demon minions. *spelldmg
            // --------------------------------------------------------
            // GameTag:
            // - AFFECTED_BY_SPELL_POWER = 1
            // --------------------------------------------------------
            cards.Add("BRM_005", new List <Enchantment> {
                new Enchantment
                {
                    Activation = EnchantmentActivation.SPELL,
                    SingleTask = ComplexTask.Create(
                        new IncludeTask(EntityType.ALLMINIONS),
                        new FilterStackTask(SelfCondition.IsNotRace(Race.DEMON)),
                        new DamageTask(2, EntityType.STACK, true))
                },
            });

            // --------------------------------------- MINION - WARLOCK
            // [BRM_006] Imp Gang Boss - COST:3 [ATK:2/HP:4]
            // - Race: demon, Set: fp2, Rarity: common
            // --------------------------------------------------------
            // Text: Whenever this minion takes damage, summon a 1/1 Imp.
            // --------------------------------------------------------
            cards.Add("BRM_006", new List <Enchantment> {
                new Enchantment
                {
                    Area       = EnchantmentArea.SELF,
                    Activation = EnchantmentActivation.BOARD_ZONE,
                    Trigger    = new TriggerBuilder().Create()
                                 .EnableConditions(SelfCondition.IsInZone(Zone.PLAY), SelfCondition.IsNotSilenced)
                                 .ApplyConditions(RelaCondition.IsOther(SelfCondition.IsTagValue(GameTag.TO_BE_DESTROYED, 0)))
                                 .TriggerEffect(GameTag.DAMAGE, 1)
                                 .SingleTask(new SummonTask("BRM_006t", SummonSide.RIGHT))
                                 .Build()
                }
            });
        }
Example #18
0
        private static void Hunter(IDictionary <string, CardDef> cards)
        {
            // ---------------------------------------- MINION - HUNTER
            // [BRM_014] Core Rager - COST:4 [ATK:4/HP:4]
            // - Race: beast, Set: brm, Rarity: rare
            // --------------------------------------------------------
            // Text: <b>Battlecry:</b> If your hand is empty, gain +3/+3.
            // --------------------------------------------------------
            // GameTag:
            // - BATTLECRY = 1
            // --------------------------------------------------------
            cards.Add("BRM_014", new CardDef(new Power
            {
                PowerTask = ComplexTask.Create(
                    new ConditionTask(EntityType.SOURCE, SelfCondition.IsHandEmpty),
                    new FlagTask(true, new AddEnchantmentTask("BRM_014e", EntityType.SOURCE))),
            }));

            // ----------------------------------------- SPELL - HUNTER
            // [BRM_013] Quick Shot - COST:2
            // - Set: brm, Rarity: common
            // --------------------------------------------------------
            // Text: Deal $3 damage.
            //       If your hand is empty, draw a card. @spelldmg
            // --------------------------------------------------------
            // GameTag:
            // - AFFECTED_BY_SPELL_POWER = 1
            // --------------------------------------------------------
            // PlayReq:
            // - REQ_TARGET_TO_PLAY = 0
            // --------------------------------------------------------
            cards.Add("BRM_013", new CardDef(new Dictionary <PlayReq, int>()
            {
                { PlayReq.REQ_TARGET_TO_PLAY, 0 }
            }, new Power
            {
                PowerTask = ComplexTask.Create(
                    new DamageTask(3, EntityType.TARGET, true),
                    new ConditionTask(EntityType.SOURCE, SelfCondition.IsHandEmpty),
                    new FlagTask(true, new DrawTask()))
            }));
        }
Example #19
0
        private static void Rogue(IDictionary <string, List <Enchantment> > cards)
        {
            // ------------------------------------------ SPELL - ROGUE
            // [BRM_007] Gang Up - COST:2
            // - Set: fp2, Rarity: common
            // --------------------------------------------------------
            // Text: Choose a minion. Shuffle 3 copies of it into your deck.
            // --------------------------------------------------------
            // PlayReq:
            // - REQ_MINION_TARGET = 0
            // - REQ_TARGET_TO_PLAY = 0
            // --------------------------------------------------------
            cards.Add("BRM_007", new List <Enchantment> {
                new Enchantment
                {
                    Activation = EnchantmentActivation.SPELL,
                    SingleTask = ComplexTask.Create(
                        new CopyTask(EntityType.TARGET, 3),
                        new AddStackTo(EntityType.DECK))
                },
            });

            // ----------------------------------------- MINION - ROGUE
            // [BRM_008] Dark Iron Skulker - COST:5 [ATK:4/HP:3]
            // - Set: fp2, Rarity: rare
            // --------------------------------------------------------
            // Text: <b>Battlecry:</b> Deal 2 damage to all undamaged enemy minions.
            // --------------------------------------------------------
            // GameTag:
            // - BATTLECRY = 1
            // --------------------------------------------------------
            cards.Add("BRM_008", new List <Enchantment> {
                new Enchantment
                {
                    Activation = EnchantmentActivation.BATTLECRY,
                    SingleTask = ComplexTask.Create(
                        new IncludeTask(EntityType.OP_MINIONS),
                        new FilterStackTask(SelfCondition.IsUndamaged),
                        new DamageTask(2, EntityType.STACK))
                },
            });
        }
Example #20
0
 private static void Paladin(IDictionary <string, CardDef> cards)
 {
     // ---------------------------------------- SPELL - PALADIN
     // [EX1_349] Divine Favor - COST:3
     // - Fac: neutral, Set: expert1, Rarity: rare
     // --------------------------------------------------------
     // Text: Draw cards until you have as many in hand as your opponent.
     // --------------------------------------------------------
     cards.Add("EX1_349", new CardDef(new Power
     {
         PowerTask = ComplexTask.Create(
             new FuncNumberTask(p =>
         {
             Controller controller = p.Controller;
             int diffHands         = controller.Opponent.HandZone.Count - controller.HandZone.Count;
             return(diffHands > 0 ? diffHands : 0);
         }),
             new DrawNumberTask())
     }));
 }
Example #21
0
        private static void Druid(IDictionary <string, CardDef> cards)
        {
            // ----------------------------------------- MINION - DRUID
            // [GIL_130] Gloom Stag - COST:5 [ATK:2/HP:6]
            // - Race: beast, Set: gilneas, Rarity: epic
            // --------------------------------------------------------
            // Text: <b>Taunt</b>
            //       <b>Battlecry:</b> If your deck has only odd-Cost cards, gain +2/+2.
            // --------------------------------------------------------
            // GameTag:
            // - TAUNT = 1
            // - BATTLECRY = 1
            // --------------------------------------------------------
            cards.Add("GIL_130", new CardDef(new Power
            {
                PowerTask = ComplexTask.Create(
                    new ConditionTask(EntityType.SOURCE, SelfCondition.HasNoEvenCostInDeck),
                    new FlagTask(true, new AddEnchantmentTask("GIL_130e", EntityType.SOURCE)))
            }));

            // ------------------------------------------ SPELL - DRUID
            // [EX1_161] Naturalize - COST:1
            // - Fac: neutral, Set: expert1, Rarity: common
            // --------------------------------------------------------
            // Text: Destroy a minion.
            //       Your opponent draws 2_cards.
            // --------------------------------------------------------
            // PlayReq:
            // - REQ_TARGET_TO_PLAY = 0
            // - REQ_MINION_TARGET = 0
            // --------------------------------------------------------
            cards.Add("EX1_161", new CardDef(new Dictionary <PlayReq, int>()
            {
                { PlayReq.REQ_TARGET_TO_PLAY, 0 }, { PlayReq.REQ_MINION_TARGET, 0 }
            }, new Power
            {
                PowerTask = ComplexTask.Create(
                    new DestroyTask(EntityType.TARGET),
                    new EnqueueTask(2, new DrawOpTask()))
            }));
        }
Example #22
0
 private static void Mage(IDictionary <string, Power> cards)
 {
     // ------------------------------------------- SPELL - MAGE
     // [FP1_018] Duplicate - COST:3
     // - Set: naxx, Rarity: common
     // --------------------------------------------------------
     // Text: <b>Secret:</b> When a friendly minion dies, put 2 copies of it into your hand.
     // --------------------------------------------------------
     // GameTag:
     // - SECRET = 1
     // --------------------------------------------------------
     cards.Add("FP1_018", new Power {
         Trigger = new Trigger(TriggerType.DEATH)
         {
             TriggerSource = TriggerSource.FRIENDLY,
             SingleTask    = ComplexTask.Create(
                 new ConditionTask(EntityType.SOURCE, SelfCondition.IsHandFull),
                 new FlagTask(false, ComplexTask.Secret(
                                  new CopyTask(EntityType.TARGET, Zone.HAND, 2))))
         }
     });
 }
Example #23
0
        private static void Priest(IDictionary <string, List <Enchantment> > cards)
        {
            // ----------------------------------------- SPELL - PRIEST
            // [BRM_017] Resurrect - COST:2
            // - Set: fp2, Rarity: rare
            // --------------------------------------------------------
            // Text: Summon a random friendly minion that died this game.
            // --------------------------------------------------------
            // PlayReq:
            // - REQ_NUM_MINION_SLOTS = 1
            // - REQ_FRIENDLY_MINION_DIED_THIS_GAME = 0
            // --------------------------------------------------------
            cards.Add("BRM_017", new List <Enchantment> {
                new Enchantment
                {
                    Activation = EnchantmentActivation.SPELL,
                    SingleTask = ComplexTask.SummonRandomMinionThatDied(),
                },
            });

            // ---------------------------------------- MINION - PRIEST
            // [BRM_004] Twilight Whelp - COST:1 [ATK:2/HP:1]
            // - Race: dragon, Set: fp2, Rarity: common
            // --------------------------------------------------------
            // Text: <b>Battlecry:</b> If you're holding a Dragon, gain +2 Health.
            // --------------------------------------------------------
            // GameTag:
            // - BATTLECRY = 1
            // --------------------------------------------------------
            cards.Add("BRM_004", new List <Enchantment> {
                new Enchantment
                {
                    Activation = EnchantmentActivation.BATTLECRY,
                    SingleTask = ComplexTask.Create(
                        new ConditionTask(EntityType.SOURCE, SelfCondition.IsDragonInHand),
                        new FlagTask(true, new BuffTask(Buffs.Health(2), EntityType.SOURCE)))
                },
            });
        }
Example #24
0
        private static void Warrior(IDictionary <string, List <Enchantment> > cards)
        {
            // ---------------------------------------- SPELL - WARRIOR
            // [BRM_015] Revenge - COST:2
            // - Set: fp2, Rarity: rare
            // --------------------------------------------------------
            // Text: Deal $1 damage to all minions. If you have 12 or less Health, deal $3 damage instead. *spelldmg
            // --------------------------------------------------------
            cards.Add("BRM_015", new List <Enchantment> {
                new Enchantment
                {
                    Activation = EnchantmentActivation.SPELL,
                    SingleTask = ComplexTask.Create(
                        new ConditionTask(EntityType.HERO, SelfCondition.IsHealth(12, RelaSign.LEQ))),
                },
            });

            // --------------------------------------- MINION - WARRIOR
            // [BRM_016] Axe Flinger - COST:4 [ATK:2/HP:5]
            // - Set: fp2, Rarity: common
            // --------------------------------------------------------
            // Text: Whenever this minion takes damage, deal 2 damage to the enemy hero.
            // --------------------------------------------------------
            cards.Add("BRM_016", new List <Enchantment> {
                new Enchantment
                {
                    Area       = EnchantmentArea.SELF,
                    Activation = EnchantmentActivation.BOARD_ZONE,
                    Trigger    = new TriggerBuilder().Create()
                                 .EnableConditions(SelfCondition.IsInZone(Zone.PLAY), SelfCondition.IsNotSilenced)
                                 .ApplyConditions(RelaCondition.IsOther(SelfCondition.IsTagValue(GameTag.TO_BE_DESTROYED, 0)))
                                 .TriggerEffect(GameTag.DAMAGE, 1)
                                 .SingleTask(new DamageTask(2, EntityType.OP_HERO))
                                 .Build()
                }
            });
        }
Example #25
0
        private static void Mage(IDictionary <string, CardDef> cards)
        {
            // ------------------------------------------ MINION - MAGE
            // [GIL_838] Black Cat - COST:3 [ATK:3/HP:3]
            // - Race: beast, Set: gilneas, Rarity: common
            // --------------------------------------------------------
            // Text: <b>Spell Damage +1</b>
            //        <b>Battlecry:</b> If your deck has only odd-Cost cards, draw a card.
            // --------------------------------------------------------
            // GameTag:
            // - SPELLPOWER = 1
            // - BATTLECRY = 1
            // --------------------------------------------------------
            cards.Add("GIL_838", new CardDef(new Power
            {
                // TODO Test: Black Cat_GIL_838
                PowerTask = ComplexTask.Create(
                    new ConditionTask(EntityType.SOURCE, SelfCondition.HasNoEvenCostInDeck),
                    new FlagTask(true, new DrawTask()))
            }));

            // ------------------------------------------- SPELL - MAGE
            // [CS2_031] Ice Lance - COST:1
            // - Fac: neutral, Set: hof, Rarity: common
            // --------------------------------------------------------
            // Text: <b>Freeze</b> a character. If it was already <b>Frozen</b>, deal $4 damage instead. @spelldmg
            // --------------------------------------------------------
            // GameTag:
            // - FREEZE = 1
            // ------------------------------------st--------------------
            // PlayReq:
            // - REQ_TARGET_TO_PLAY = 0
            // --------------------------------------------------------
            cards.Add("CS2_031", new CardDef(new Dictionary <PlayReq, int>()
            {
                { PlayReq.REQ_TARGET_TO_PLAY, 0 }
            }, new Power
            {
                PowerTask = ComplexTask.Create(
                    new ConditionTask(EntityType.TARGET, SelfCondition.IsFrozen),
                    ComplexTask.True(new DamageTask(4, EntityType.TARGET, true)),
                    ComplexTask.False(ComplexTask.Freeze(EntityType.TARGET)))
            }));

            // ------------------------------------------- SPELL - MAGE
            // [EX1_295] Ice Block - COST:3
            // - Fac: neutral, Set: expert1, Rarity: epic
            // --------------------------------------------------------
            // Text: <b>Secret:</b> When your hero takes fatal damage, prevent it and become <b>Immune</b> this turn.
            // --------------------------------------------------------
            // GameTag:
            // - SECRET = 1
            // --------------------------------------------------------
            // RefTag:
            // - IMMUNE = 1
            // --------------------------------------------------------
            cards.Add("EX1_295", new CardDef(new Power
            {
                Trigger = new Trigger(TriggerType.PREDAMAGE)
                {
                    TriggerSource = TriggerSource.HERO,
                    Condition     = SelfCondition.IsHeroLethalPreDamaged,
                    FastExecution = true,
                    SingleTask    = ComplexTask.Secret(
                        new AddEnchantmentTask("EX1_295o", EntityType.HERO))
                }
            }));
        }
Example #26
0
        private static void Neutral(IDictionary <string, Power> cards)
        {
            // --------------------------------------- MINION - NEUTRAL
            // [FP1_001] Zombie Chow - COST:1 [ATK:2/HP:3]
            // - Set: naxx, Rarity: common
            // --------------------------------------------------------
            // Text: <b>Deathrattle:</b> Restore 5 Health to the enemy hero.
            // --------------------------------------------------------
            // GameTag:
            // - DEATHRATTLE = 1
            // --------------------------------------------------------
            cards.Add("FP1_001", new Power {
                DeathrattleTask = new HealTask(5, EntityType.OP_HERO)
            });

            // --------------------------------------- MINION - NEUTRAL
            // [FP1_002] Haunted Creeper - COST:2 [ATK:1/HP:2]
            // - Race: beast, Set: naxx, Rarity: common
            // --------------------------------------------------------
            // Text: <b>Deathrattle:</b> Summon two 1/1 Spectral Spiders.
            // --------------------------------------------------------
            // GameTag:
            // - DEATHRATTLE = 1
            // --------------------------------------------------------
            cards.Add("FP1_002", new Power {
                DeathrattleTask = new EnqueueTask(2, new SummonTask("FP1_002t", SummonSide.DEATHRATTLE))
            });

            // --------------------------------------- MINION - NEUTRAL
            // [FP1_003] Echoing Ooze - COST:2 [ATK:1/HP:2]
            // - Set: naxx, Rarity: epic
            // --------------------------------------------------------
            // Text: <b>Battlecry:</b> Summon an exact copy of this minion at the end of the turn.
            // --------------------------------------------------------
            // GameTag:
            // - BATTLECRY = 1
            // --------------------------------------------------------
            cards.Add("FP1_003", new Power {
                PowerTask = ComplexTask.Create(
                    new SetGameTagTask(GameTag.CUSTOM_KEYWORD_EFFECT, 1, EntityType.SOURCE),
                    new SetGameTagTask(GameTag.TAG_SCRIPT_DATA_NUM_1, 1, EntityType.SOURCE),
                    new SetGameTagTask(GameTag.MULTIPLY_BUFF_VALUE, 1, EntityType.SOURCE)),
                Trigger = new Trigger(TriggerType.TURN_END)
                {
                    SingleTask = ComplexTask.Create(
                        new ConditionTask(EntityType.SOURCE, SelfCondition.IsTagValue(GameTag.CUSTOM_KEYWORD_EFFECT, 1)),
                        new FlagTask(true, ComplexTask.Create(
                                         new SetGameTagTask(GameTag.CUSTOM_KEYWORD_EFFECT, 0, EntityType.SOURCE),
                                         new SummonCopyTask(EntityType.SOURCE, side: SummonSide.RIGHT)))),
                    RemoveAfterTriggered = true
                }
            });

            // --------------------------------------- MINION - NEUTRAL
            // [FP1_004] Mad Scientist - COST:2 [ATK:2/HP:2]
            // - Set: naxx, Rarity: common
            // --------------------------------------------------------
            // Text: <b>Deathrattle:</b> Put a <b>Secret</b> from your deck into the battlefield.
            // --------------------------------------------------------
            // GameTag:
            // - DEATHRATTLE = 1
            // --------------------------------------------------------
            // RefTag:
            // - SECRET = 1
            // --------------------------------------------------------
            cards.Add("FP1_004", new Power {
                DeathrattleTask = ComplexTask.PutSecretFromDeck
            });

            // --------------------------------------- MINION - NEUTRAL
            // [FP1_005] Shade of Naxxramas - COST:3 [ATK:2/HP:2]
            // - Set: naxx, Rarity: epic
            // --------------------------------------------------------
            // Text: <b>Stealth.</b> At the start of your turn, gain +1/+1.
            // --------------------------------------------------------
            // GameTag:
            // - STEALTH = 1
            // --------------------------------------------------------
            cards.Add("FP1_005", new Power {
                Trigger = new Trigger(TriggerType.TURN_START)
                {
                    SingleTask = new AddEnchantmentTask("FP1_005e", EntityType.SOURCE)
                }
            });

            // --------------------------------------- MINION - NEUTRAL
            // [FP1_007] Nerubian Egg - COST:2 [ATK:0/HP:2]
            // - Set: naxx, Rarity: rare
            // --------------------------------------------------------
            // Text: <b>Deathrattle:</b> Summon a 4/4 Nerubian.
            // --------------------------------------------------------
            // GameTag:
            // - DEATHRATTLE = 1
            // --------------------------------------------------------
            cards.Add("FP1_007", new Power {
                DeathrattleTask = new SummonTask("FP1_007t", SummonSide.DEATHRATTLE)
            });

            // --------------------------------------- MINION - NEUTRAL
            // [FP1_008] Spectral Knight - COST:5 [ATK:4/HP:6]
            // - Set: naxx, Rarity: common
            // --------------------------------------------------------
            // Text: Can't be targeted by spells or Hero Powers.
            // --------------------------------------------------------
            // GameTag:
            // - CANT_BE_TARGETED_BY_SPELLS = 1
            // - CANT_BE_TARGETED_BY_HERO_POWERS = 1
            // --------------------------------------------------------
            cards.Add("FP1_008", null);

            // --------------------------------------- MINION - NEUTRAL
            // [FP1_009] Deathlord - COST:3 [ATK:2/HP:8]
            // - Set: naxx, Rarity: rare
            // --------------------------------------------------------
            // Text: <b>Taunt. Deathrattle:</b> Your opponent puts a minion from their deck into the battlefield.
            // --------------------------------------------------------
            // GameTag:
            // - TAUNT = 1
            // - DEATHRATTLE = 1
            // --------------------------------------------------------
            cards.Add("FP1_009", new Power {
                DeathrattleTask = ComplexTask.Create(
                    new IncludeTask(EntityType.OP_DECK),
                    new FilterStackTask(SelfCondition.IsMinion),
                    new RandomTask(1, EntityType.STACK),
                    new SummonStackTask())
            });

            // --------------------------------------- MINION - NEUTRAL
            // [FP1_010] Maexxna - COST:6 [ATK:2/HP:8]
            // - Race: beast, Set: naxx, Rarity: legendary
            // --------------------------------------------------------
            // Text: <b>Poisonous</b>
            // --------------------------------------------------------
            // GameTag:
            // - ELITE = 1
            // - POISONOUS = 1
            // --------------------------------------------------------
            cards.Add("FP1_010", null);

            // --------------------------------------- MINION - NEUTRAL
            // [FP1_012] Sludge Belcher - COST:5 [ATK:3/HP:5]
            // - Set: naxx, Rarity: rare
            // --------------------------------------------------------
            // Text: <b>Taunt
            //       Deathrattle:</b> Summon a 1/2 Slime with <b>Taunt</b>.
            // --------------------------------------------------------
            // GameTag:
            // - TAUNT = 1
            // - DEATHRATTLE = 1
            // --------------------------------------------------------
            cards.Add("FP1_012", new Power {
                DeathrattleTask = new SummonTask("FP1_012t", SummonSide.DEATHRATTLE)
            });

            // --------------------------------------- MINION - NEUTRAL
            // [FP1_013] Kel'Thuzad - COST:8 [ATK:6/HP:8]
            // - Set: naxx, Rarity: legendary
            // --------------------------------------------------------
            // Text: At the end of each turn, summon all friendly minions that died this turn.
            // --------------------------------------------------------
            // GameTag:
            // - ELITE = 1
            // --------------------------------------------------------
            cards.Add("FP1_013", new Power {
                Trigger = new Trigger(TriggerType.TURN_END)
                {
                    EitherTurn = true,
                    SingleTask = ComplexTask.SummonAllFriendlyDiedThisTurn()
                }
            });

            // --------------------------------------- MINION - NEUTRAL
            // [FP1_014] Stalagg - COST:5 [ATK:7/HP:4]
            // - Set: naxx, Rarity: legendary
            // --------------------------------------------------------
            // Text: <b>Deathrattle:</b> If Feugen also died this game, summon Thaddius.
            // --------------------------------------------------------
            // GameTag:
            // - ELITE = 1
            // - DEATHRATTLE = 1
            // --------------------------------------------------------
            cards.Add("FP1_014", new Power {
                DeathrattleTask = new FuncNumberTask(src =>
                {
                    Controller c = src.Controller;
                    if ((c.GraveyardZone.Any(p => p.Card.AssetId == 1797 && p.ToBeDestroyed) ||
                         c.Opponent.GraveyardZone.Any(p => p.Card.AssetId == 1797 && p.ToBeDestroyed)) &&
                        !c.BoardZone.IsFull)
                    {
                        Generic.SummonBlock.Invoke(c.Game, (Minion)Entity.FromCard(c, Cards.FromId("FP1_014t")), -1, src);
                    }

                    return(0);
                })
            });

            // --------------------------------------- MINION - NEUTRAL
            // [FP1_015] Feugen - COST:5 [ATK:4/HP:7]
            // - Set: naxx, Rarity: legendary
            // --------------------------------------------------------
            // Text: <b>Deathrattle:</b> If Stalagg also died this game, summon Thaddius.
            // --------------------------------------------------------
            // GameTag:
            // - ELITE = 1
            // - DEATHRATTLE = 1
            // --------------------------------------------------------
            cards.Add("FP1_015", new Power {
                DeathrattleTask = new FuncNumberTask(src =>
                {
                    Controller c = src.Controller;
                    if ((c.GraveyardZone.Any(p => p.Card.AssetId == 1796 && p.ToBeDestroyed) ||
                         c.Opponent.GraveyardZone.Any(p => p.Card.AssetId == 1796 && p.ToBeDestroyed)) &&
                        !c.BoardZone.IsFull)
                    {
                        Generic.SummonBlock.Invoke(c.Game, (Minion)Entity.FromCard(c, Cards.FromId("FP1_014t")), -1, src);
                    }

                    return(0);
                })
            });

            // --------------------------------------- MINION - NEUTRAL
            // [FP1_016] Wailing Soul - COST:4 [ATK:3/HP:5]
            // - Set: naxx, Rarity: rare
            // --------------------------------------------------------
            // Text: <b>Battlecry: Silence</b> your other minions.
            // --------------------------------------------------------
            // GameTag:
            // - BATTLECRY = 1
            // --------------------------------------------------------
            // RefTag:
            // - SILENCE = 1
            // --------------------------------------------------------
            cards.Add("FP1_016", new Power {
                PowerTask = new SilenceTask(EntityType.MINIONS_NOSOURCE)
            });

            // --------------------------------------- MINION - NEUTRAL
            // [FP1_017] Nerub'ar Weblord - COST:2 [ATK:1/HP:4]
            // - Set: naxx, Rarity: common
            // --------------------------------------------------------
            // Text: Minions with <b>Battlecry</b> cost (2) more.
            // --------------------------------------------------------
            // GameTag:
            // - AURA = 1
            // --------------------------------------------------------
            // RefTag:
            // - BATTLECRY = 1
            // --------------------------------------------------------
            cards.Add("FP1_017", new Power {
                Aura = new Aura(AuraType.HANDS, Effects.AddCost(2))
                {
                    Condition = SelfCondition.IsBattlecryMinion
                }
            });

            // --------------------------------------- MINION - NEUTRAL
            // [FP1_024] Unstable Ghoul - COST:2 [ATK:1/HP:3]
            // - Set: naxx, Rarity: common
            // --------------------------------------------------------
            // Text: <b>Taunt</b>. <b>Deathrattle:</b> Deal 1 damage to all minions.
            // --------------------------------------------------------
            // GameTag:
            // - TAUNT = 1
            // - DEATHRATTLE = 1
            // --------------------------------------------------------
            cards.Add("FP1_024", new Power {
                DeathrattleTask = new DamageTask(1, EntityType.ALLMINIONS)
            });

            // --------------------------------------- MINION - NEUTRAL
            // [FP1_027] Stoneskin Gargoyle - COST:3 [ATK:1/HP:4]
            // - Set: naxx, Rarity: common
            // --------------------------------------------------------
            // Text: At the start of your turn, restore this minion to full Health.
            // --------------------------------------------------------
            cards.Add("FP1_027", new Power {
                Trigger = new Trigger(TriggerType.TURN_START)
                {
                    SingleTask = new HealFullTask(EntityType.SOURCE)
                }
            });

            // --------------------------------------- MINION - NEUTRAL
            // [FP1_028] Undertaker - COST:1 [ATK:1/HP:2]
            // - Set: naxx, Rarity: common
            // --------------------------------------------------------
            // Text: Whenever you summon a minion with <b>Deathrattle</b>, gain +1 Attack.
            // --------------------------------------------------------
            // RefTag:
            // - DEATHRATTLE = 1
            // --------------------------------------------------------
            cards.Add("FP1_028", new Power {
                Trigger = new Trigger(TriggerType.SUMMON)
                {
                    TriggerSource = TriggerSource.FRIENDLY,
                    Condition     = SelfCondition.IsDeathrattleMinion,
                    SingleTask    = new AddEnchantmentTask("FP1_028e", EntityType.SOURCE)
                }
            });

            // --------------------------------------- MINION - NEUTRAL
            // [FP1_029] Dancing Swords - COST:3 [ATK:4/HP:4]
            // - Set: naxx, Rarity: common
            // --------------------------------------------------------
            // Text: <b>Deathrattle:</b> Your opponent draws a card.
            // --------------------------------------------------------
            // GameTag:
            // - DEATHRATTLE = 1
            // --------------------------------------------------------
            cards.Add("FP1_029", new Power {
                DeathrattleTask = new DrawOpTask()
            });

            // --------------------------------------- MINION - NEUTRAL
            // [FP1_030] Loatheb - COST:5 [ATK:5/HP:5]
            // - Set: naxx, Rarity: legendary
            // --------------------------------------------------------
            // Text: <b>Battlecry:</b> Enemy spells cost (5) more next turn.
            // --------------------------------------------------------
            // GameTag:
            // - ELITE = 1
            // - BATTLECRY = 1
            // --------------------------------------------------------
            cards.Add("FP1_030", new Power {
                PowerTask = new AddEnchantmentTask("FP1_030e", EntityType.OP_CONTROLLER)
            });

            // --------------------------------------- MINION - NEUTRAL
            // [FP1_031] Baron Rivendare - COST:4 [ATK:1/HP:7]
            // - Set: naxx, Rarity: legendary
            // --------------------------------------------------------
            // Text: Your minions trigger their <b>Deathrattles</b> twice.
            // --------------------------------------------------------
            // GameTag:
            // - ELITE = 1
            // - AURA = 1
            // --------------------------------------------------------
            // RefTag:
            // - DEATHRATTLE = 1
            // --------------------------------------------------------
            cards.Add("FP1_031", new Power {
                Aura = new Aura(AuraType.CONTROLLER, new Effect(GameTag.EXTRA_MINION_DEATHRATTLES_BASE, EffectOperator.SET, 1))
            });
        }
Example #27
0
        private static void Neutral(IDictionary <string, List <Enchantment> > cards)
        {
            // --------------------------------------- MINION - NEUTRAL
            // [EX1_016] Sylvanas Windrunner - COST:6 [ATK:5/HP:5]
            // - Set: hof, Rarity: legendary
            // --------------------------------------------------------
            // Text: <b>Deathrattle:</b> Take
            //       control of a random
            //       enemy minion.
            // --------------------------------------------------------
            // GameTag:
            // - ELITE = 1
            // - DEATHRATTLE = 1
            // --------------------------------------------------------
            cards.Add("EX1_016", new List <Enchantment> {
                new Enchantment
                {
                    Activation = EnchantmentActivation.DEATHRATTLE,
                    SingleTask = ComplexTask.Create(
                        new RandomTask(1, EntityType.OP_MINIONS),
                        new ControlTask(EntityType.STACK))
                }
            });

            // --------------------------------------- MINION - NEUTRAL
            // [EX1_062] Old Murk-Eye - COST:4 [ATK:2/HP:4]
            // - Race: murloc, Fac: neutral, Set: hof, Rarity: legendary
            // --------------------------------------------------------
            // Text: <b>Charge</b>. Has +1 Attack for each other Murloc on the battlefield.
            // --------------------------------------------------------
            // GameTag:
            // - ELITE = 1
            // - CHARGE = 1
            // --------------------------------------------------------
            cards.Add("EX1_062", new List <Enchantment> {
                // TODO [EX1_062] Old Murk-Eye && Test: Old Murk-Eye_EX1_062
                new Enchantment
                {
                    //Activation = null,
                    //SingleTask = null,
                }
            });

            // --------------------------------------- MINION - NEUTRAL
            // [EX1_112] Gelbin Mekkatorque - COST:6 [ATK:6/HP:6]
            // - Fac: alliance, Set: hof, Rarity: legendary
            // --------------------------------------------------------
            // Text: <b>Battlecry:</b> Summon an AWESOME invention.
            // --------------------------------------------------------
            // Entourage: Mekka1, Mekka2, Mekka3, Mekka4
            // --------------------------------------------------------
            // GameTag:
            // - ELITE = 1
            // - BATTLECRY = 1
            // --------------------------------------------------------
            cards.Add("EX1_112", new List <Enchantment> {
                // TODO [EX1_112] Gelbin Mekkatorque && Test: Gelbin Mekkatorque_EX1_112
                new Enchantment
                {
                    Activation = EnchantmentActivation.BATTLECRY,
                    SingleTask = null,
                },
            });

            // --------------------------------------- MINION - NEUTRAL
            // [EX1_284] Azure Drake - COST:5 [ATK:4/HP:4]
            // - Race: dragon, Fac: neutral, Set: hof, Rarity: rare
            // --------------------------------------------------------
            // Text: <b>Spell Damage +1</b>. <b>Battlecry:</b> Draw a card.
            // --------------------------------------------------------
            // GameTag:
            // - SPELLPOWER = 1
            // - BATTLECRY = 1
            // --------------------------------------------------------
            cards.Add("EX1_284", new List <Enchantment> {
                new Enchantment
                {
                    Area       = EnchantmentArea.HERO,
                    Activation = EnchantmentActivation.BOARD,
                    Enchant    = Auras.SpellPowerDamage(1)
                },
                new Enchantment
                {
                    Activation = EnchantmentActivation.BATTLECRY,
                    SingleTask = new DrawTask()
                }
            });

            // --------------------------------------- MINION - NEUTRAL
            // [EX1_298] Ragnaros the Firelord - COST:8 [ATK:8/HP:8]
            // - Race: elemental, Fac: neutral, Set: hof, Rarity: legendary
            // --------------------------------------------------------
            // Text: Can't attack. At the end of your turn, deal 8 damage to a random enemy.
            // --------------------------------------------------------
            // GameTag:
            // - ELITE = 1
            // - CANT_ATTACK = 1
            // --------------------------------------------------------
            cards.Add("EX1_298", new List <Enchantment> {
                new Enchantment
                {
                    Area       = EnchantmentArea.CONTROLLER,
                    Activation = EnchantmentActivation.BOARD,
                    Trigger    = new TriggerBuilder().Create()
                                 .EnableConditions(SelfCondition.IsInZone(Zone.PLAY), SelfCondition.IsNotSilenced)
                                 .TriggerEffect(GameTag.TURN_START, -1)
                                 .SingleTask(ComplexTask.DamageRandomTargets(1, EntityType.ENEMIES, 8))
                                 .Build()
                }
            });

            // --------------------------------------- MINION - NEUTRAL
            // [NEW1_016] Captain's Parrot - COST:2 [ATK:1/HP:1]
            // - Race: beast, Set: hof, Rarity: epic
            // --------------------------------------------------------
            // Text: <b>Battlecry:</b> Draw a Pirate from your deck.
            // --------------------------------------------------------
            // GameTag:
            // - BATTLECRY = 1
            // --------------------------------------------------------
            cards.Add("NEW1_016", new List <Enchantment> {
                // TODO [NEW1_016] Captain's Parrot && Test: Captain's Parrot_NEW1_016
                new Enchantment
                {
                    Activation = EnchantmentActivation.BATTLECRY,
                    SingleTask = null,
                },
            });

            // --------------------------------------- MINION - NEUTRAL
            // [PRO_001] Elite Tauren Chieftain - COST:5 [ATK:5/HP:5]
            // - Set: hof, Rarity: legendary
            // --------------------------------------------------------
            // Text: <b>Battlecry:</b> Give both players the power to ROCK! (with a Power Chord card)
            // --------------------------------------------------------
            // Entourage: PRO_001a, PRO_001b, PRO_001c
            // --------------------------------------------------------
            // GameTag:
            // - ELITE = 1
            // - BATTLECRY = 1
            // --------------------------------------------------------
            cards.Add("PRO_001", new List <Enchantment> {
                // TODO [PRO_001] Elite Tauren Chieftain && Test: Elite Tauren Chieftain_PRO_001
                new Enchantment
                {
                    Activation = EnchantmentActivation.BATTLECRY,
                    SingleTask = null,
                },
            });
        }
Example #28
0
        private static void Neutral(IDictionary <string, Power> cards)
        {
            // --------------------------------------- MINION - NEUTRAL
            // [EX1_016] Sylvanas Windrunner - COST:6 [ATK:5/HP:5]
            // - Set: hof, Rarity: legendary
            // --------------------------------------------------------
            // Text: <b>Deathrattle:</b> Take
            //       control of a random
            //       enemy minion.
            // --------------------------------------------------------
            // GameTag:
            // - ELITE = 1
            // - DEATHRATTLE = 1
            // --------------------------------------------------------
            cards.Add("EX1_016", new Power {
                DeathrattleTask = ComplexTask.Create(
                    new RandomTask(1, EntityType.OP_MINIONS),
                    new ControlTask(EntityType.STACK))
            });

            // --------------------------------------- MINION - NEUTRAL
            // [EX1_050] Coldlight Oracle - COST:3 [ATK:2/HP:2]
            // - Race: murloc, Fac: neutral, Set: expert1, Rarity: rare
            // --------------------------------------------------------
            // Text: <b>Battlecry:</b> Each player draws 2 cards.
            // --------------------------------------------------------
            // GameTag:
            // - BATTLECRY = 1
            // --------------------------------------------------------
            cards.Add("EX1_050", new Power {
                PowerTask = ComplexTask.Create(
                    new EnqueueTask(2, new DrawTask()),
                    new EnqueueTask(2, new DrawOpTask()))
            });

            // --------------------------------------- MINION - NEUTRAL
            // [EX1_062] Old Murk-Eye - COST:4 [ATK:2/HP:4]
            // - Race: murloc, Fac: neutral, Set: hof, Rarity: legendary
            // --------------------------------------------------------
            // Text: <b>Charge</b>. Has +1 Attack for each other Murloc on the battlefield.
            // --------------------------------------------------------
            // GameTag:
            // - ELITE = 1
            // - CHARGE = 1
            // --------------------------------------------------------
            cards.Add("EX1_062", new Power {
                Aura = new AdaptiveEffect(GameTag.ATK, EffectOperator.ADD, p =>
                {
                    int i = 0;
                    foreach (Minion m in p.Controller.BoardZone)
                    {
                        if (m.Race == Race.MURLOC)
                        {
                            i++;
                        }
                    }
                    return(i);
                })
            });

            // --------------------------------------- MINION - NEUTRAL
            // [EX1_112] Gelbin Mekkatorque - COST:6 [ATK:6/HP:6]
            // - Fac: alliance, Set: hof, Rarity: legendary
            // --------------------------------------------------------
            // Text: <b>Battlecry:</b> Summon an AWESOME invention.
            // --------------------------------------------------------
            // Entourage: Mekka1, Mekka2, Mekka3, Mekka4
            // --------------------------------------------------------
            // GameTag:
            // - ELITE = 1
            // - BATTLECRY = 1
            // --------------------------------------------------------
            cards.Add("EX1_112", new Power {
                // TODO [EX1_112] Gelbin Mekkatorque && Test: Gelbin Mekkatorque_EX1_112
                //PowerTask = null,
                //Trigger = null,
            });

            // --------------------------------------- MINION - NEUTRAL
            // [EX1_284] Azure Drake - COST:5 [ATK:4/HP:4]
            // - Race: dragon, Fac: neutral, Set: hof, Rarity: rare
            // --------------------------------------------------------
            // Text: <b>Spell Damage +1</b>
            //       <b>Battlecry:</b> Draw a card.
            // --------------------------------------------------------
            // GameTag:
            // - SPELLPOWER = 1
            // - BATTLECRY = 1
            // --------------------------------------------------------
            cards.Add("EX1_284", new Power {
                PowerTask = new DrawTask()
            });

            // --------------------------------------- MINION - NEUTRAL
            // [EX1_298] Ragnaros the Firelord - COST:8 [ATK:8/HP:8]
            // - Race: elemental, Fac: neutral, Set: hof, Rarity: legendary
            // --------------------------------------------------------
            // Text: Can't attack. At the end of your turn, deal 8 damage to a random enemy.
            // --------------------------------------------------------
            // GameTag:
            // - ELITE = 1
            // - CANT_ATTACK = 1
            // --------------------------------------------------------
            cards.Add("EX1_298", new Power {
                Trigger = new Trigger(TriggerType.TURN_END)
                {
                    SingleTask = ComplexTask.DamageRandomTargets(1, EntityType.ENEMIES, 8)
                }
            });

            // --------------------------------------- MINION - NEUTRAL
            // [EX1_620] Molten Giant - COST:25 [ATK:8/HP:8]
            // - Set: expert1, Rarity: epic
            // --------------------------------------------------------
            // Text: Costs (1) less for each damage your hero has taken.
            // --------------------------------------------------------
            cards.Add("EX1_620", new Power {
                Aura = new AdaptiveCostEffect(EffectOperator.SUB, p => p.Controller.Hero.Damage)
            });

            // --------------------------------------- MINION - NEUTRAL
            // [NEW1_016] Captain's Parrot - COST:2 [ATK:1/HP:1]
            // - Race: beast, Set: hof, Rarity: epic
            // --------------------------------------------------------
            // Text: <b>Battlecry:</b> Draw a Pirate from your deck.
            // --------------------------------------------------------
            // GameTag:
            // - BATTLECRY = 1
            // --------------------------------------------------------
            cards.Add("NEW1_016", new Power {
                // TODO [NEW1_016] Captain's Parrot && Test: Captain's Parrot_NEW1_016
                //PowerTask = null,
                //Trigger = null,
            });

            // --------------------------------------- MINION - NEUTRAL
            // [PRO_001] Elite Tauren Chieftain - COST:5 [ATK:5/HP:5]
            // - Set: hof, Rarity: legendary
            // --------------------------------------------------------
            // Text: <b>Battlecry:</b> Give both players the power to ROCK! (with a Power Chord card)
            // --------------------------------------------------------
            // Entourage: PRO_001a, PRO_001b, PRO_001c
            // --------------------------------------------------------
            // GameTag:
            // - ELITE = 1
            // - BATTLECRY = 1
            // --------------------------------------------------------
            cards.Add("PRO_001", new Power {
                // TODO [PRO_001] Elite Tauren Chieftain && Test: Elite Tauren Chieftain_PRO_001
                //PowerTask = null,
                //Trigger = null,
            });
        }
Example #29
0
        private static void Neutral(IDictionary <string, Power> cards)
        {
            // --------------------------------------- MINION - NEUTRAL
            // [FP1_001] Zombie Chow - COST:1 [ATK:2/HP:3]
            // - Set: naxx, Rarity: common
            // --------------------------------------------------------
            // Text: <b>Deathrattle:</b> Restore 5 Health to the enemy hero.
            // --------------------------------------------------------
            // GameTag:
            // - DEATHRATTLE = 1
            // --------------------------------------------------------
            cards.Add("FP1_001", new Power {
                DeathrattleTask = new HealTask(5, EntityType.OP_HERO)
            });

            // --------------------------------------- MINION - NEUTRAL
            // [FP1_002] Haunted Creeper - COST:2 [ATK:1/HP:2]
            // - Race: beast, Set: naxx, Rarity: common
            // --------------------------------------------------------
            // Text: <b>Deathrattle:</b> Summon two 1/1 Spectral Spiders.
            // --------------------------------------------------------
            // GameTag:
            // - DEATHRATTLE = 1
            // --------------------------------------------------------
            cards.Add("FP1_002", new Power {
                DeathrattleTask = new EnqueueTask(2, new SummonTask("FP1_002t", SummonSide.DEATHRATTLE))
            });

            // --------------------------------------- MINION - NEUTRAL
            // [FP1_003] Echoing Ooze - COST:2 [ATK:1/HP:2]
            // - Set: naxx, Rarity: epic
            // --------------------------------------------------------
            // Text: <b>Battlecry:</b> Summon an exact copy of this minion at the end of the turn.
            // --------------------------------------------------------
            // GameTag:
            // - BATTLECRY = 1
            // --------------------------------------------------------
            cards.Add("FP1_003", new Power {
                PowerTask = ComplexTask.Create(
                    new SetGameTagTask(GameTag.CUSTOM_KEYWORD_EFFECT, 1, EntityType.SOURCE),
                    new SetGameTagTask(GameTag.TAG_SCRIPT_DATA_NUM_1, 1, EntityType.SOURCE),
                    new SetGameTagTask(GameTag.MULTIPLY_BUFF_VALUE, 1, EntityType.SOURCE)),
                Trigger = new Trigger(TriggerType.TURN_END)
                {
                    SingleTask = ComplexTask.Create(
                        new ConditionTask(EntityType.SOURCE, SelfCondition.IsTagValue(GameTag.CUSTOM_KEYWORD_EFFECT, 1)),
                        new FlagTask(true, ComplexTask.Create(
                                         new SetGameTagTask(GameTag.CUSTOM_KEYWORD_EFFECT, 0, EntityType.SOURCE),
                                         new SummonCopyTask(EntityType.SOURCE, SummonSide.RIGHT)))),
                    RemoveAfterTriggered = true
                }
            });

            // --------------------------------------- MINION - NEUTRAL
            // [FP1_004] Mad Scientist - COST:2 [ATK:2/HP:2]
            // - Set: naxx, Rarity: common
            // --------------------------------------------------------
            // Text: <b>Deathrattle:</b> Put a <b>Secret</b> from your deck into the battlefield.
            // --------------------------------------------------------
            // GameTag:
            // - DEATHRATTLE = 1
            // --------------------------------------------------------
            // RefTag:
            // - SECRET = 1
            // --------------------------------------------------------
            cards.Add("FP1_004", new Power {
                DeathrattleTask = ComplexTask.PutSecretFromDeck
            });

            // --------------------------------------- MINION - NEUTRAL
            // [FP1_005] Shade of Naxxramas - COST:3 [ATK:2/HP:2]
            // - Set: naxx, Rarity: epic
            // --------------------------------------------------------
            // Text: <b>Stealth.</b> At the start of your turn, gain +1/+1.
            // --------------------------------------------------------
            // GameTag:
            // - STEALTH = 1
            // --------------------------------------------------------
            cards.Add("FP1_005", new Power {
                Trigger = new Trigger(TriggerType.TURN_START)
                {
                    SingleTask = new AddEnchantmentTask("FP1_005e", EntityType.SOURCE)
                }
            });

            // --------------------------------------- MINION - NEUTRAL
            // [FP1_007] Nerubian Egg - COST:2 [ATK:0/HP:2]
            // - Set: naxx, Rarity: rare
            // --------------------------------------------------------
            // Text: <b>Deathrattle:</b> Summon a 4/4 Nerubian.
            // --------------------------------------------------------
            // GameTag:
            // - DEATHRATTLE = 1
            // --------------------------------------------------------
            cards.Add("FP1_007", new Power {
                DeathrattleTask = new SummonTask("FP1_007t", SummonSide.DEATHRATTLE)
            });

            // --------------------------------------- MINION - NEUTRAL
            // [FP1_008] Spectral Knight - COST:5 [ATK:4/HP:6]
            // - Set: naxx, Rarity: common
            // --------------------------------------------------------
            // Text: Can't be targeted by spells or Hero Powers.
            // --------------------------------------------------------
            // GameTag:
            // - CANT_BE_TARGETED_BY_SPELLS = 1
            // - CANT_BE_TARGETED_BY_HERO_POWERS = 1
            // --------------------------------------------------------
            cards.Add("FP1_008", null);

            // --------------------------------------- MINION - NEUTRAL
            // [FP1_009] Deathlord - COST:3 [ATK:2/HP:8]
            // - Set: naxx, Rarity: rare
            // --------------------------------------------------------
            // Text: <b>Taunt. Deathrattle:</b> Your opponent puts a minion from their deck into the battlefield.
            // --------------------------------------------------------
            // GameTag:
            // - TAUNT = 1
            // - DEATHRATTLE = 1
            // --------------------------------------------------------
            cards.Add("FP1_009", new Power {
                DeathrattleTask = ComplexTask.Create(
                    new IncludeTask(EntityType.OP_DECK),
                    new FilterStackTask(SelfCondition.IsMinion),
                    new RandomTask(1, EntityType.STACK),
                    new SummonStackTask())
            });

            // --------------------------------------- MINION - NEUTRAL
            // [FP1_010] Maexxna - COST:6 [ATK:2/HP:8]
            // - Race: beast, Set: naxx, Rarity: legendary
            // --------------------------------------------------------
            // Text: <b>Poisonous</b>
            // --------------------------------------------------------
            // GameTag:
            // - ELITE = 1
            // - POISONOUS = 1
            // --------------------------------------------------------
            cards.Add("FP1_010", null);

            // --------------------------------------- MINION - NEUTRAL
            // [FP1_012] Sludge Belcher - COST:5 [ATK:3/HP:5]
            // - Set: naxx, Rarity: rare
            // --------------------------------------------------------
            // Text: <b>Taunt
            //       Deathrattle:</b> Summon a 1/2 Slime with <b>Taunt</b>.
            // --------------------------------------------------------
            // GameTag:
            // - TAUNT = 1
            // - DEATHRATTLE = 1
            // --------------------------------------------------------
            cards.Add("FP1_012", new Power {
                DeathrattleTask = new SummonTask("FP1_012t", SummonSide.DEATHRATTLE)
            });

            // --------------------------------------- MINION - NEUTRAL
            // [FP1_013] Kel'Thuzad - COST:8 [ATK:6/HP:8]
            // - Set: naxx, Rarity: legendary
            // --------------------------------------------------------
            // Text: At the end of each turn, summon all friendly minions that died this turn.
            // --------------------------------------------------------
            // GameTag:
            // - ELITE = 1
            // --------------------------------------------------------
            cards.Add("FP1_013", new Power {
                Trigger = new Trigger(TriggerType.TURN_END)
                {
                    EitherTurn = true,
                    SingleTask = new FuncNumberTask(src =>
                    {
                        Controller c            = src.Controller;
                        int num                 = c.NumFriendlyMinionsThatDiedThisTurn;
                        GraveyardZone graveyard = c.GraveyardZone;
                        if (graveyard.Count == 0)
                        {
                            return(0);
                        }
                        int i = graveyard.Count - 1;
                        int j = 0;
                        do
                        {
                            if (graveyard[i] is Minion m && m.ToBeDestroyed)
                            {
                                Generic.SummonBlock.Invoke(c, (Minion)Entity.FromCard(c, m.Card), -1);
                                j++;
                            }
                            i--;
                        } while (j < num && i >= 0);

                        return(0);
                    })
                }
            });
Example #30
0
        private static void Neutral(IDictionary <string, List <Enchantment> > cards)
        {
            // --------------------------------------- MINION - NEUTRAL
            // [BRM_019] Grim Patron - COST:5 [ATK:3/HP:3]
            // - Set: fp2, Rarity: rare
            // --------------------------------------------------------
            // Text: Whenever this minion survives damage, summon another Grim Patron.
            // --------------------------------------------------------
            cards.Add("BRM_019", new List <Enchantment> {
                new Enchantment
                {
                    Area       = EnchantmentArea.SELF,
                    Activation = EnchantmentActivation.BOARD_ZONE,
                    Trigger    = new TriggerBuilder().Create()
                                 .EnableConditions(SelfCondition.IsInZone(Zone.PLAY), SelfCondition.IsNotSilenced)
                                 .ApplyConditions(RelaCondition.IsOther(SelfCondition.IsTagValue(GameTag.TO_BE_DESTROYED, 0)))
                                 .TriggerEffect(GameTag.DAMAGE, 1)
                                 .SingleTask(new SummonTask("BRM_019", SummonSide.RIGHT))
                                 .Build()
                }
            });

            // --------------------------------------- MINION - NEUTRAL
            // [BRM_020] Dragonkin Sorcerer - COST:4 [ATK:3/HP:5]
            // - Race: dragon, Set: fp2, Rarity: common
            // --------------------------------------------------------
            // Text: Whenever <b>you</b> target this minion with a spell, gain +1/+1.
            // --------------------------------------------------------
            cards.Add("BRM_020", new List <Enchantment> {
                new Enchantment
                {
                    Area       = EnchantmentArea.HAND,
                    Activation = EnchantmentActivation.BOARD_ZONE,
                    Trigger    = Triggers.FriendlySpellTargetingMe(new BuffTask(Buffs.AttackHealth(1), EntityType.SOURCE))
                }
            });

            // --------------------------------------- MINION - NEUTRAL
            // [BRM_022] Dragon Egg - COST:1 [ATK:0/HP:2]
            // - Set: fp2, Rarity: rare
            // --------------------------------------------------------
            // Text: Whenever this minion takes damage, summon a 2/1 Whelp.
            // --------------------------------------------------------
            cards.Add("BRM_022", new List <Enchantment> {
                new Enchantment
                {
                    Area       = EnchantmentArea.SELF,
                    Activation = EnchantmentActivation.BOARD_ZONE,
                    Trigger    = new TriggerBuilder().Create()
                                 .EnableConditions(SelfCondition.IsInZone(Zone.PLAY), SelfCondition.IsNotSilenced)
                                 .TriggerEffect(GameTag.DAMAGE, 1)
                                 .SingleTask(new SummonTask("BRM_004t", SummonSide.RIGHT))
                                 .Build()
                }
            });

            // --------------------------------------- MINION - NEUTRAL
            // [BRM_024] Drakonid Crusher - COST:6 [ATK:6/HP:6]
            // - Race: dragon, Set: fp2, Rarity: common
            // --------------------------------------------------------
            // Text: <b>Battlecry:</b> If your opponent has 15 or less Health, gain +3/+3.
            // --------------------------------------------------------
            // GameTag:
            // - BATTLECRY = 1
            // --------------------------------------------------------
            cards.Add("BRM_024", new List <Enchantment> {
                new Enchantment
                {
                    Activation = EnchantmentActivation.BATTLECRY,
                    SingleTask = ComplexTask.Create(
                        new ConditionTask(EntityType.OP_HERO, SelfCondition.IsHealth(15, RelaSign.LEQ)),
                        new FlagTask(true, new BuffTask(Buffs.AttackHealth(2), EntityType.SOURCE)))
                },
            });

            // --------------------------------------- MINION - NEUTRAL
            // [BRM_025] Volcanic Drake - COST:6 [ATK:6/HP:4]
            // - Race: dragon, Set: fp2, Rarity: common
            // --------------------------------------------------------
            // Text: Costs (1) less for each minion that died this turn.
            // --------------------------------------------------------
            cards.Add("BRM_025", new List <Enchantment> {
                new Enchantment
                {
                    Area       = EnchantmentArea.SELF,
                    Activation = EnchantmentActivation.HAND_ZONE,
                    Enchant    = Auras.CostFunc(
                        owner => - (owner.Controller.NumFriendlyMinionsThatDiedThisTurn +
                                    owner.Controller.Opponent.NumFriendlyMinionsThatDiedThisTurn))
                }
            });

            // --------------------------------------- MINION - NEUTRAL
            // [BRM_026] Hungry Dragon - COST:4 [ATK:5/HP:6]
            // - Race: dragon, Set: fp2, Rarity: common
            // --------------------------------------------------------
            // Text: <b>Battlecry:</b> Summon a random 1-Cost minion for your opponent.
            // --------------------------------------------------------
            // GameTag:
            // - BATTLECRY = 1
            // --------------------------------------------------------
            cards.Add("BRM_026", new List <Enchantment> {
                new Enchantment
                {
                    Activation = EnchantmentActivation.BATTLECRY,
                    SingleTask = ComplexTask.Create(
                        new RandomMinionTask(GameTag.COST, 1),
                        new SummonOpTask()),
                },
            });

            // --------------------------------------- MINION - NEUTRAL
            // [BRM_027] Majordomo Executus - COST:9 [ATK:9/HP:7]
            // - Set: fp2, Rarity: legendary
            // --------------------------------------------------------
            // Text: <b>Deathrattle:</b> Replace your hero with Ragnaros, the Firelord.
            // --------------------------------------------------------
            // GameTag:
            // - ELITE = 1
            // - DEATHRATTLE = 1
            // --------------------------------------------------------
            cards.Add("BRM_027", new List <Enchantment> {
                new Enchantment
                {
                    Activation = EnchantmentActivation.DEATHRATTLE,
                    SingleTask = new ReplaceHeroTask("BRM_027h", "BRM_027p"),
                },
            });

            // --------------------------------------- MINION - NEUTRAL
            // [BRM_028] Emperor Thaurissan - COST:6 [ATK:5/HP:5]
            // - Set: fp2, Rarity: legendary
            // --------------------------------------------------------
            // Text: At the end of your turn, reduce the Cost of cards in your hand by (1).
            // --------------------------------------------------------
            // GameTag:
            // - ELITE = 1
            // --------------------------------------------------------
            cards.Add("BRM_028", new List <Enchantment> {
                new Enchantment
                {
                    Area       = EnchantmentArea.CONTROLLER,
                    Activation = EnchantmentActivation.BOARD_ZONE,
                    Trigger    = new TriggerBuilder().Create()
                                 .EnableConditions(SelfCondition.IsInZone(Zone.PLAY), SelfCondition.IsNotSilenced)
                                 .TriggerEffect(GameTag.TURN_START, -1)
                                 .SingleTask(new BuffTask(Buffs.Cost(-1), EntityType.HAND))
                                 .Build()
                }
            });

            // --------------------------------------- MINION - NEUTRAL
            // [BRM_029] Rend Blackhand - COST:7 [ATK:8/HP:4]
            // - Set: fp2, Rarity: legendary
            // --------------------------------------------------------
            // Text: <b>Battlecry:</b> If you're holding a Dragon, destroy a <b>Legendary</b> minion.
            // --------------------------------------------------------
            // GameTag:
            // - ELITE = 1
            // - BATTLECRY = 1
            // --------------------------------------------------------
            // PlayReq:
            // - REQ_MINION_TARGET = 0
            // - REQ_TARGET_IF_AVAILABLE_AND_DRAGON_IN_HAND = 0
            // - REQ_LEGENDARY_TARGET = 0
            // --------------------------------------------------------
            cards.Add("BRM_029", new List <Enchantment> {
                new Enchantment
                {
                    Activation = EnchantmentActivation.BATTLECRY,
                    SingleTask = new DestroyTask(EntityType.TARGET)
                },
            });

            // --------------------------------------- MINION - NEUTRAL
            // [BRM_030] Nefarian - COST:9 [ATK:8/HP:8]
            // - Race: dragon, Set: fp2, Rarity: legendary
            // --------------------------------------------------------
            // Text: <b>Battlecry:</b> Add 2 random spells to your hand <i>(from your opponent's class)</i>.
            // --------------------------------------------------------
            // GameTag:
            // - ELITE = 1
            // - BATTLECRY = 1
            // --------------------------------------------------------
            cards.Add("BRM_030", new List <Enchantment> {
                new Enchantment
                {
                    Activation = EnchantmentActivation.BOARD_ZONE,
                    SingleTask = new EnqueueTask(2, ComplexTask.Create(
                                                     new RandomCardTask(EntityType.OP_HERO),
                                                     new AddStackTo(EntityType.HAND))),
                }
            });

            // --------------------------------------- MINION - NEUTRAL
            // [BRM_031] Chromaggus - COST:8 [ATK:6/HP:8]
            // - Race: dragon, Set: fp2, Rarity: legendary
            // --------------------------------------------------------
            // Text: Whenever you draw a card, put another copy into your hand.
            // --------------------------------------------------------
            // GameTag:
            // - ELITE = 1
            // --------------------------------------------------------
            cards.Add("BRM_031", new List <Enchantment> {
                new Enchantment
                {
                    Area       = EnchantmentArea.CONTROLLER,
                    Activation = EnchantmentActivation.BOARD_ZONE,
                    Trigger    = new TriggerBuilder().Create()
                                 .EnableConditions(SelfCondition.IsNotDead, SelfCondition.IsNotSilenced)
                                 .TriggerEffect(GameTag.LAST_CARD_DRAWN, 0)
                                 .SingleTask(ComplexTask.Create(
                                                 new IncludeTask(EntityType.SOURCE),
                                                 new FuncPlayablesTask(p =>
                    {
                        Controller controller = p[0].Controller;
                        return(new List <IPlayable> {
                            controller.Game.IdEntityDic[controller.LastCardDrawn]
                        });
                    }),
                                                 new CopyTask(EntityType.STACK, 1),
                                                 new AddStackTo(EntityType.HAND)))
                                 .Build()
                }
            });

            // --------------------------------------- MINION - NEUTRAL
            // [BRM_033] Blackwing Technician - COST:3 [ATK:2/HP:4]
            // - Fac: neutral, Set: fp2, Rarity: common
            // --------------------------------------------------------
            // Text: <b>Battlecry:</b> If you're holding a Dragon, gain +1/+1.
            // --------------------------------------------------------
            // GameTag:
            // - BATTLECRY = 1
            // --------------------------------------------------------
            cards.Add("BRM_033", new List <Enchantment> {
                new Enchantment
                {
                    Activation = EnchantmentActivation.BATTLECRY,
                    SingleTask = ComplexTask.Create(
                        new ConditionTask(EntityType.SOURCE, SelfCondition.IsDragonInHand),
                        new FlagTask(true, new BuffTask(Buffs.AttackHealth(1), EntityType.SOURCE)))
                },
            });

            // --------------------------------------- MINION - NEUTRAL
            // [BRM_034] Blackwing Corruptor - COST:5 [ATK:5/HP:4]
            // - Fac: neutral, Set: fp2, Rarity: common
            // --------------------------------------------------------
            // Text: <b>Battlecry:</b> If you're holding a Dragon, deal 3 damage.
            // --------------------------------------------------------
            // GameTag:
            // - BATTLECRY = 1
            // --------------------------------------------------------
            // PlayReq:
            // - REQ_TARGET_IF_AVAILABLE_AND_DRAGON_IN_HAND = 0
            // --------------------------------------------------------
            cards.Add("BRM_034", new List <Enchantment> {
                new Enchantment
                {
                    Activation = EnchantmentActivation.BATTLECRY,
                    SingleTask = ComplexTask.Create(
                        new ConditionTask(EntityType.SOURCE, SelfCondition.IsDragonInHand),
                        new FlagTask(true, new DamageTask(3, EntityType.TARGET)))
                },
            });
        }