コード例 #1
0
    public override IEnumerable<CardTemplate> GetCards()
    {
      yield return Card
        .Named("Fledgling Osprey")
        .ManaCost("{U}")
        .Type("Creature Bird")
        .Text("Fledgling Osprey has flying as long as it's enchanted.")
        .FlavorText("It isn't truly born until its first flight.")
        .Power(1)
        .Toughness(1)
        .TriggeredAbility(p =>
          {
            p.Trigger(new OnAttachmentAttached(c => c.Is().Aura));
            
            p.Effect = () => new ApplyModifiersToSelf(() =>
              {
                var modifier = new AddStaticAbility(Static.Flying);
                
                modifier.AddLifetime(new AttachmentLifetime(self => 
                  self.Modifier.SourceEffect.TriggerMessage<AttachmentAttachedEvent>().Attachment));

                return modifier;
              });
            
            p.UsesStack = false;
          });
    }
コード例 #2
0
ファイル: ManaLeech.cs プロジェクト: leloulight/magicgrove
    public override IEnumerable<CardTemplate> GetCards()
    {
      yield return Card
        .Named("Mana Leech")
        .ManaCost("{2}{B}")
        .Type("Creature Leech")
        .Text(
          "You may choose not to untap Mana Leech during your untap step.{EOL}{T}: Tap target land. It doesn't untap during its controller's untap step for as long as Mana Leech remains tapped.")
        .Power(1)
        .Toughness(1)
        .MayChooseToUntap()
        .ActivatedAbility(p =>
          {
            p.Text =
              "{T}: Tap target land. It doesn't untap during its controller's untap step for as long as Mana Leech remains tapped.";
            p.Cost = new Tap();

            p.Effect = () => new CompoundEffect(
              new TapTargets(),
              new ApplyModifiersToTargets(() =>
                {
                  var modifier = new AddStaticAbility(Static.DoesNotUntap);
                  modifier.AddLifetime(new ModifierSourceGetsUntapedLifetime());
                  return modifier;
                }));

            p.TargetSelector.AddEffect(trg => trg.Is.Card(c => c.Is().Land).On.Battlefield());            
            p.TimingRule(new OnOpponentsTurn(Step.Upkeep));
            p.TargetingRule(new EffectTapLand());
          });
    }
コード例 #3
0
ファイル: ThranGolem.cs プロジェクト: leloulight/magicgrove
    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;
          });
    }
コード例 #4
0
ファイル: Somnophore.cs プロジェクト: leloulight/magicgrove
    public override IEnumerable<CardTemplate> GetCards()
    {
      yield return Card
        .Named("Somnophore")
        .ManaCost("{2}{U}{U}")
        .Type("Creature - Illusion")
        .Text(
          "{Flying}{EOL}Whenever Somnophore deals damage to a player, tap target creature that player controls. That creature doesn't untap during its controller's untap step for as long as Somnophore remains on the battlefield.")
        .Power(2)
        .Toughness(2)
        .SimpleAbilities(Static.Flying)
        .TriggeredAbility(p =>
          {
            p.Text =
              "Whenever Somnophore deals damage to a player, tap target creature that player controls. That creature doesn't untap during its controller's untap step for as long as Somnophore remains on the battlefield.";
            p.Trigger(new OnDamageDealt(playerFilter: delegate { return true; }));

            p.Effect = () => new CompoundEffect(
              new TapTargets(),
              new ApplyModifiersToTargets(() =>
                {
                  var modifier = new AddStaticAbility(Static.DoesNotUntap);
                  modifier.AddLifetime(new PermanentLeavesBattlefieldLifetime(l => l.Modifier.SourceCard));
                  return modifier;
                }));

            p.TargetSelector.AddEffect(trg =>
              {
                trg
                  .Is.Card(tp => tp.Target.Card().Is().Creature &&
                    tp.TriggerMessage<DamageDealtEvent>().Receiver == tp.Target.Controller())
                  .On.Battlefield();

                trg.Message = "Select a creature to tap.";
              });

            p.TargetingRule(new EffectGiveDoesNotUntap());
          }
        );
    }