public override IEnumerable<CardTemplate> GetCards()
    {
      yield return Card
        .Named("Endoskeleton")
        .ManaCost("{2}")
        .Type("Artifact")
        .Text(
          "You may choose not to untap Endoskeleton during your untap step.{EOL}{2},{T}: Target creature gets +0/+3 for as long as Endoskeleton remains tapped.")
        .MayChooseToUntap()
        .ActivatedAbility(p =>
          {
            p.Text = "{2},{T}: Target creature gets +0/+3 for as long as Endoskeleton remains tapped.";
            p.Cost = new AggregateCost(
              new PayMana(2.Colorless(), ManaUsage.Abilities),
              new Tap());

            p.Effect = () => new ApplyModifiersToTargets(() =>
              {
                var modifier = new AddPowerAndToughness(0, 3);
                modifier.AddLifetime(new ModifierSourceGetsUntapedLifetime());
                return modifier;
              });

            p.TargetSelector.AddEffect(trg => trg.Is.Creature().On.Battlefield());
            p.TimingRule(new PumpTargetCardTimingRule(untilEot: false));
            p.TargetingRule(new EffectPumpInstant(0, 3, untilEot: false));
          });
    }
Exemple #2
0
    public override IEnumerable<CardTemplate> GetCards()
    {
      yield return Card
        .Named("Thran Golem")
        .ManaCost("{5}")
        .Type("Artifact Creature Golem")
        .Text("As long as Thran Golem is enchanted, it gets +2/+2 and has flying, first strike, and trample.")
        .FlavorText("Karn felt more secure about his value to Urza when he realized he didn't need regular trimming.")
        .Power(3)
        .Toughness(3)
        .TriggeredAbility(p =>
          {
            p.Trigger(new OnAttachmentAttached(c => c.Is().Aura));
            p.Effect = () =>
              {
                return new ApplyModifiersToSelf(
                  () =>
                    {
                      var modifier = new AddPowerAndToughness(2, 2);
                      modifier.AddLifetime(UntilAttached());
                      return modifier;
                    },
                  () =>
                    {
                      var modifier = new AddStaticAbility(Static.Flying);
                      modifier.AddLifetime(UntilAttached());
                      return modifier;
                    },
                  () =>
                    {
                      var modifier = new AddStaticAbility(Static.FirstStrike);
                      modifier.AddLifetime(UntilAttached());
                      return modifier;
                    },
                  () =>
                    {
                      var modifier = new AddStaticAbility(Static.Trample);
                      modifier.AddLifetime(UntilAttached());
                      return modifier;
                    });
              };

            p.UsesStack = false;
          });
    }