It is currently 23 Apr 2024, 09:23
   
Text Size

Nemata, Grove Guardian

Moderators: timmermac, Blacksmith, KrazyTheFox, Agetian, friarsol, CCGHQ Admins

Nemata, Grove Guardian

Postby DennisBergkamp » 23 Oct 2008, 15:58

Mr Chaos requested this card awhile ago. As far as I know it works fine except for one minor thing: if you have a bunch of Saprolings, sacrifice one of them to give all your saps +1/+1, then create another Saproling during the same turn AFTER sacrificing a Saproling, the newly created Saproling will get -1/-1 at the end of the turn (and be destroyed).

As for the AI using the first (put token into play) ability, I just made it random (so sometimes he will play a card from his hand, sometimes he'll use his mana to put tokens into play). This is far from ideal.

In cards.txt:

Code: Select all
Nemata, Grove Guardian
4 G G
Legendary Creature Treefolk
no text
4/5
In CardFactory.java:

Code: Select all
//*************** START *********** START **************************
    if(cardName.equals("Nemata, Grove Guardian"))
    {
      final SpellAbility a1 = new Ability(card, "2 G")
      {
       public boolean canPlayAI()
       {
          return MyRandom.random.nextBoolean();
       }
        public void resolve()
        {
          makeToken();
        }
        void makeToken()
        {
          Card c = new Card();

          c.setName("Saproling");

          c.setOwner(card.getController());
          c.setController(card.getController());

          c.setManaCost("G");
          c.setToken(true);
         
          c.addType("Creature");
          c.addType("Saproling");
          c.setAttack(1);
          c.setDefense(1);

          PlayerZone play = AllZone.getZone(Constant.Zone.Play, card.getController());
          play.add(c);
        }//makeToken()
      };//SpellAbility
     
      final SpellAbility a2 = new Ability(card, "0")
      {
        final Command eot1 = new Command()
        {
          public void execute()
          {
           CardList saps = new CardList();
           saps.addAll(AllZone.Human_Play.getCards());
           saps.addAll(AllZone.Computer_Play.getCards());

            saps = saps.getType("Saproling");
           
           for (int i=0; i < saps.size(); i++)
            {
              Card sap = saps.get(i);
                         
                sap.setAttack(sap.getAttack() - 1);
                sap.setDefense(sap.getDefense() - 1);
              
            }
           
          }
        };
        public void resolve()
        {
          //get all saprolings:
         
          CardList saps = new CardList();
          saps.addAll(AllZone.Human_Play.getCards());
          saps.addAll(AllZone.Computer_Play.getCards());

          saps = saps.getType("Saproling");
           
          Card c = getTargetCard();
          PlayerZone hand = AllZone.getZone(Constant.Zone.Hand, c.getOwner());

          if(AllZone.GameAction.isCardInPlay(c))
          {
            //AllZone.getZone(c).remove(c);
           AllZone.GameAction.sacrifice(c);
            
           
            for (int i=0; i < saps.size(); i++)
            {
               Card sap = saps.get(i);
               
               sap.setAttack(sap.getAttack() + 1);
                sap.setDefense(sap.getDefense() + 1);
                              
            }
           
          }
          AllZone.EndOfTurn.addUntil(eot1);
        }
        public boolean canPlayAI()
        {
          return false;
        }
      };//SpellAbility
     
      Input runtime = new Input()
      {
        public void showMessage()
        {
          CardList saps = new CardList(AllZone.getZone(Constant.Zone.Play, card.getController()).getCards());
          saps = saps.getType("Saproling");
         
          stopSetNext(CardFactoryUtil.input_targetSpecific(a2, saps, "Select a Saproling to sacrifice."));
        }
      };
      a1.setDescription("2G: Put a 1/1 green Saproling creature token into play.");
      a1.setStackDescription("Put a 1/1 Saproling into play.");
      card.addSpellAbility(a1);
      a1.setBeforePayMana(new Input_PayManaCost(a1));
     
      card.addSpellAbility(a2);
      a2.setDescription("Sacrifice a Saproling: Saproling creatures get +1/+1 until end of turn");
      a2.setStackDescription("Saprolings get +1/+1 until end of turn.");

      a2.setBeforePayMana(runtime);
    }//*************** END ************ END **************************
User avatar
DennisBergkamp
AI Programmer
 
Posts: 2602
Joined: 09 Sep 2008, 15:46
Has thanked: 0 time
Been thanked: 0 time

Re: Nemata, Grove Guardian

Postby Mr.Chaos » 24 Oct 2008, 06:26

*Does happy dance*
Thanks Dennis!
Now all I have to do is wait for a new compiled version including this card.
I read in another topic that JPB intends to do that in a week or 2.
So I will wait (im)patiently until then.

This my usual way of play with Nemata:
Attach Loxodon Warhammer to a innocent little 1/1 Saproling token and attack with it while having 40+ tokens lying in waiting. (My record was going from zero to 120 tokens in 1 turn using Mycoloth, Rhys the Redeemed, Priest of Titania, Nemata, Grove Guardian, Gaea's Cradle and 2 of those lands that let you untap an elf(forgot the name))
Then ask your opponent that fun question: "Are you going to block that?"
99% of the time, regardless of the answer, you sac a bunch of the remaining tokens and win the game. :lol:
Yes, me and my green decks are loads of fun to play against. :mrgreen: :^o

Disturbing afterthought: Rhys the Redeemed should (based on his multiplying skills) have been a rabbit, not an elf. :lol:
](*,) = coder at work, according to a coder.It does explain some of the bugs. :wink:
Mr.Chaos
Tester
 
Posts: 625
Joined: 06 Sep 2008, 08:15
Has thanked: 0 time
Been thanked: 0 time

Re: Nemata, Grove Guardian

Postby DennisBergkamp » 24 Oct 2008, 15:43

You're welcome!
Those are some nasty combos for sure :)

Too bad in the current version of MTGForge those other cards are pretty tricky to make. Mycoloth could probably be done though.
User avatar
DennisBergkamp
AI Programmer
 
Posts: 2602
Joined: 09 Sep 2008, 15:46
Has thanked: 0 time
Been thanked: 0 time

Re: Nemata, Grove Guardian

Postby Mr.Chaos » 25 Oct 2008, 11:24

Mycoloth would be awesome! [-o< (Yes, the combo is wicked, as long as you do not run into red burn or loads of black critterkilling cards. Sacrificing a load of tokens to Mycoloth only to see Terror or Dark Banishing removing it from play is NO FUN!)

Rhys the Redeemed, would he be possible? At least the 3 mana to tap and make 1 token is doable (even if the token has only 1 color), as Imperious Perfect also has a similar ability.
But the 6 mana ability, "copy each token" may be tricky. And messy. I have played games where my Imperious Perfect 's made so many tokens that the game slowed down enormously. Try 12 tokens or more and see what it does speed-wise.
Rhys can get you more than that in no time!

The priest and the cradle are impossible currently, I hope to see them in V2, someday.
Loxodon Warhammer is also impossible I think, as the game currently has no proper way of dealing with cards that attach to others. Seeing how enchantments are treated as a sorcery.
The hammer is probably one step to far right now. Pity. :(
](*,) = coder at work, according to a coder.It does explain some of the bugs. :wink:
Mr.Chaos
Tester
 
Posts: 625
Joined: 06 Sep 2008, 08:15
Has thanked: 0 time
Been thanked: 0 time

Re: Nemata, Grove Guardian

Postby DennisBergkamp » 25 Oct 2008, 21:54

The biggest problem with Rhys the Redeemed is its split manacost. And its abilities' split manacosts... It's not yet supported in V1. Although I guess you can do the abilities by showing all the permutations of the costs, like this:

2 G: Put a 1/1 green and white Elf Warrior creature token into play.
2 W: Put a 1/1 green and white Elf Warrior creature token into play.
4 G G: For each creature token you control, put a token into play that's a copy of that creature.
4 G W: For each creature token you control, put a token into play that's a copy of that creature.
4 W W: For each creature token you control, put a token into play that's a copy of that creature.

Then selecting one of those abilities will generate the correct manacost. Seems kind of redundant, and that still doesn't solve the problem of Rhys' own manacost (G/W). As for the abilities themselves, they're easy to program.

Also I can make tokens that are white and green (currently I think the way in V1 that's done by giving the tokens a manacost of "G W", not sure if this gives them an incorrect converted manacost of 2 or not?). I made Tolsimir Wolfblood and it successfully creates that legendary 2/2 wolf that is both white and green. Interestingly enough, Rhys' second ability would kill that wolf when it copies it, since it's legendary.

Priest and cradle are impossible for now, you're right. Loxodon Warhammer should be possible I think with a bunch of work, since lifelink and equipment still hasn't been implemented.
User avatar
DennisBergkamp
AI Programmer
 
Posts: 2602
Joined: 09 Sep 2008, 15:46
Has thanked: 0 time
Been thanked: 0 time


Return to Forge

Who is online

Users browsing this forum: No registered users and 96 guests


Who is online

In total there are 96 users online :: 0 registered, 0 hidden and 96 guests (based on users active over the past 10 minutes)
Most users ever online was 4143 on 23 Jan 2024, 08:21

Users browsing this forum: No registered users and 96 guests

Login Form