Page 1 of 1

Monoblack varient

PostPosted: 18 Mar 2009, 19:44
by GandoTheBard
Vengeance Ltd.

60 Total Cards

19 Creatures
-------------
4x Gravedigger
4x Highway Robber
3x Maggot Carrier
1x Rathi Assassin
1x Royal Assassin
3x Sengir Vampire
3x Shriekmaw

21 Spells
----------
2x Animate Dead
1x Beacon of Unrest
1x Bitterblossom
3x Charcoal Diamond
1x Demonic Tutor
2x Diabolic Tutor
1x Engineered Plague
3x Expunge
2x Hymn to Tourach
1x Liliana Vess
1x Mox Jet
3x Tendrils of Corruption

20 Land
--------
20x Swamp

the monoblack deck the Quest mode has now is moderately difficult if you have a bad start...this one should be harder (I mercifully left out the hippies and disks.) Maybe those go in the hard version? Haven't tested this at all.

Re: Monoblock varient

PostPosted: 18 Mar 2009, 19:55
by GandoTheBard
Even without the hippies this deck is feirce.

Re: Monoblack varient

PostPosted: 20 Mar 2009, 17:03
by Chris H.
I played against this deck several times, good deck. I would suggest that it is a stronger deck for towards the endof the quest. :D

I tried to find the Engineered Plague spell in the source code and I could not track it down. You only have one of these in the deck anyway. I am not sure how effective it will be. :(

Re: Monoblack varient

PostPosted: 20 Mar 2009, 19:44
by DennisBergkamp
Yes, currently the AI will only select "Sliver".
The code for Engineered Plague can be found in both CardFactory.java:

Code: Select all
 //*************** START *********** START **************************
    if(cardName.equals("Conspiracy") || cardName.equals("Cover of Darkness") || cardName.equals("Door of Destinies") ||
       cardName.equals("Engineered Plague") || cardName.equals("Shared Triumph") || cardName.equals("Belbe's Portal"))
    {
       final String[] input = new String[1];
       final String player = card.getController();
       
       final SpellAbility ability = new Ability(card, "0")
       {
          public void resolve()
          {
             if (player.equals(Constant.Player.Human))
             {
                input[0] =  (String)JOptionPane.showInputDialog(null, "Which creature type?", "Pick type", JOptionPane.QUESTION_MESSAGE);
                
                if (input[0].equals("Legendary") || input[0].equals("Artifact") || input[0].equals("Enchantment"))
                   input[0] = "";
                //TODO: some more input validation, case-sensitivity, etc.
                
                input[0] = input[0].trim(); //this is to prevent "cheating", and selecting multiple creature types,eg "Goblin Soldier"
             }
             else
             {
                input[0] = "Sliver"; //what to put here for the AI???
             }
             
             card.setChosenType(input[0]);
          }
       };//ability
       Command intoPlay = new Command()
        {
          public void execute()
          {
            ability.setStackDescription("When " + card.getName() + " comes into play, choose a creature type.");
            AllZone.Stack.add(ability);
          }
        };
        card.setComesIntoPlay(intoPlay);
       
    }//*************** END ************ END **************************
and GameActionUtil.java:

Code: Select all
public static Command Engineered_Plague = new Command()
   {

      CardList gloriousAnthemList = new CardList();

      public void execute()
      {

         CardList list = gloriousAnthemList;
         Card c;
         // reset all cards in list - aka "old" cards
         for (int i = 0; i < list.size(); i++)
         {
            c = list.get(i);
            c.addSemiPermanentAttackBoost(1);
            c.addSemiPermanentDefenseBoost(1);
         }

         list.clear();
         CardList cards = new CardList();
         cards.addAll(AllZone.Human_Play.getCards());
         cards.addAll(AllZone.Computer_Play.getCards());
         cards = cards.getName("Engineered Plague");

         for (int outer = 0; outer < cards.size(); outer++)
         {
            Card card = cards.get(outer);
            
            CardList creature = new CardList();
            creature.addAll(AllZone.Human_Play.getCards());
            creature.addAll(AllZone.Computer_Play.getCards());
            creature = creature.getType(card.getChosenType());

            for (int i = 0; i < creature.size(); i++)
            {
               c = creature.get(i);
               if(c.getType().contains(card.getChosenType()))
               {
                  c.addSemiPermanentAttackBoost(-1);
                  c.addSemiPermanentDefenseBoost(-1);
               }
               gloriousAnthemList.add(c);
               
            }// for inner
         }// for outer
      }// execute()
   }; //Engineered Plague

Re: Monoblack varient

PostPosted: 20 Mar 2009, 20:35
by GandoTheBard
Replace the plague with a disk then. :0

Re: Monoblack varient

PostPosted: 20 Mar 2009, 22:08
by Chris H.
DennisBergkamp wrote:Yes, currently the AI will only select "Sliver".
The code for Engineered Plague can be found in both CardFactory.java:

and GameActionUtil.java:
This is a case of a double d'oh for me #-o #-o

I forgot to replace the source code folder on my desktop which contained the source from the previous version. No woder I could not find the code for the new cards. :roll: