Exemple #1
0
        protected override void Modify(Card card)
        {
            card.Text = "You cannot rest or prepare."
                   + "<br/><br/>"
                   + "<b>Trophy:</b> Attack -1"
                   + "<br/><br/>" + "<b>Village/Dungeon:</b> Select 2 random cards from your hand <i>(excluding this card).</i>  "
                   + "You may destroy 1 of them to destroy this card.";

            card.AddEventHandler(
                events => events.Subscribe<CardDrawnToHand>(
                    ev =>
                        {
                            if (ev.Card == card)
                                card.Player.ValidActions = card.Player.ValidActions.Except(new[] {PlayerAction.Prepare, PlayerAction.Rest});
                        }));

            card.CreateAbility()
                .Description("Select 2 random cards from your hand. You may destroy 1 of them to destroy this card.")
                .SelectCards(x => x.Select().FromRandomHandSelection(2, c => c != card)
                                           .Caption("Curse of War").Message("Destroy 1 card."))
                .OnCardsSelected(x =>
                    {
                        x.Player.DestroyCard(x.Selected.First(), card.Name);
                        x.Player.DestroyCard(card, card.Name);
                    })
                .Condition(p => p.Hand.Count >= 3)
                .On(Phase.Village, Phase.Dungeon);
        }
Exemple #2
0
        protected override void Modify(Card card)
        {
            card.CreateAbility()
                .DestroyCard("Destroy a hero.", c => c.IsHero())
                .On(Phase.Battle);

            card.AddEventHandler(events => events.Subscribe<DungeonHallRefilled>(e => KeepStramstFromAdvancing(card, e)));
        }
Exemple #3
0
        protected override void Modify(Card card)
        {
            base.Modify(card);
            card.PotentialPhysicalAttack = () => 2;

            card.CreateAbility()
                .EquipWeapon(Attr.PhysicalAttack, 2)
                .On(Phase.Equip);

            card.AddEventHandler(
                events =>
                events.Subscribe<SelectingCards>(
                    message =>
                        {
                            if (message.TriggeringAbility != null && message.TriggeringAbility.Phase == Phase.Battle && card.IsEquipped)
                                message.Selection.Remove(card.GetEquipped().First());
                        }));
        }
        protected override void Modify(Card card)
        {
            base.Modify(card);

            card.PotentialPhysicalAttack = () => 5;

            card.CreateAbility()
                .EquipWeapon((player, hero) =>
                                 {
                                     hero.AddModifier(new SetMod(card, Attr.PhysicalAttack, 0));
                                     hero.AddModifier(new SetMod(card, Attr.MagicalAttack, 0));
                                 }).On(Phase.Equip);

            card.AddEventHandler(events => events.Subscribe<AttackRankSelected>(e =>
                                                              {
                                                                  if (e.AttackedRank.Number >= 2 && card.IsEquipped)
                                                                      card.GetEquipped().First().AddModifier(new PlusMod(card, Attr.PhysicalAttack, 5));
                                                              }));
        }
        protected override void Modify(Card card)
        {
            card.CreateAbility()
                .Description("If this is the first ability you use this turn, destroy this card. You cannot use any more abilities this turn.")
                .Action(x =>
                {
                    x.Player.DestroyCard(card, card.Name);
                    x.Player.ActiveAbilities.RemoveAll(a => a.Card.Owner == CardOwner.Player);
                })
                .On(Phase.Village, Phase.Dungeon);

            // Add event handler that removes this card's abilities when player uses another card's ability (except equipping)
            card.AddEventHandler(events => events.Subscribe<CardAbilityUsed>(e =>
            {
                var usedCard = e.Ability.Card;
                if (e.Ability.Phase != Phase.Equip && usedCard.Owner == CardOwner.Player && usedCard != card)
                    usedCard.Player.ActiveAbilities.RemoveAll(x => x.Card == card);
            }));
        }