Exemplo n.º 1
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.Create(
                    new ConditionTask(EntityType.SOURCE, SelfCondition.IsZoneCount(Zone.SECRET, 5)),
                    new FlagTask(false, ComplexTask.Create(
                                     new IncludeTask(EntityType.DECK),
                                     new FilterStackTask(SelfCondition.IsSecret),
                                     new FuncPlayablesTask(stack =>
                {
                    if (stack.Count == 0)
                    {
                        return(null);
                    }

                    Controller c = stack[0].Controller;
                    do
                    {
                        IPlayable pick = Util.Choose(stack);
                        if (c.SecretZone.Any(p => p.Card.AssetId == pick.Card.AssetId))
                        {
                            stack.Remove(pick);
                            continue;
                        }

                        c.DeckZone.Remove(pick);
                        pick.Power.Trigger?.Activate(pick);
                        c.SecretZone.Add((Spell)pick);
                        if (c == c.Game.CurrentPlayer)
                        {
                            pick.IsExhausted = true;
                        }
                        break;
                    } while (stack.Count > 0);

                    return(null);
                }))))
            });

            // --------------------------------------- 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);
                    })
                }
            });