It is currently 25 Apr 2024, 07:23
   
Text Size

Self - Pumping Creatures

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

Self - Pumping Creatures

Postby Rob Cashwalker » 16 Oct 2008, 03:30

This code is to replace the simple basic Pump keyword that mtgrares added in the recent releases. I had already been working on these, with a huge sequence of If blocks to determine the pump values, which he did add... so this can replace that stuff too.

I decided on three keywords, one for P/T only pumps, one for Keyword only pumps, and another for P/T and Keyword pumps.

CardFactory - near the top where the shouldPump method is defined.
Code: Select all
  //self-targeted power and/or toughness pumping abilities
  //-1 means "PTPump" is not found
  //any other int means that "PTPump" was found in the Card keyword
  private final int shouldPTPumpCard(Card c)
  {
    ArrayList a = c.getKeyword();
    for(int i = 0; i < a.size(); i++)
      if(a.get(i).toString().startsWith("PTPump"))
        return i;

    return -1;
  }
  //same thing, for "KPump" - self-targeted keyword adding abilities
  private final int shouldKPumpCard(Card c)
  {
    ArrayList a = c.getKeyword();
    for (int i = 0; i < a.size(); i++)
      if(a.get(i).toString().startsWith("KPump"))
        return i;

    return -1;
  }
  //same thing, for "PTKPump" - self-targeted power and/or toughness pumping
  //plus keyword adding abilities
  private final int shouldPTKPumpCard(Card c)
  {
    ArrayList a = c.getKeyword();
    for (int i = 0; i < a.size(); i++)
      if(a.get(i).toString().startsWith("PTKPump"))
        return i;

    return -1;
  }
CardFactory - normal card definition section.
Code: Select all
  //Creatures with simple, self-targeted mana-activated keyword adding abilities
  //-1 means not found
  while(shouldKPumpCard(card) != -1)
  {
    int n = shouldKPumpCard(card);
    if(n != -1)
    {
      String parse = card.getKeyword().get(n).toString();
      card.removeKeyword(parse);

      String k[] = parse.split(":");

      final String manaCost = k[0].substring(6);
      final String keyword = k[1];

      final Command untilEOT = new Command()
      {
        public void execute()
        {
          if(AllZone.GameAction.isCardInPlay(card))
          {
            card.removeKeyword(keyword);
          }
        }
      };

      SpellAbility ability = new Ability_Activated(card, manaCost)
      {
        public boolean canPlayAI() {return CardFactoryUtil.AI_doesCreatureAttack(card);}
        public boolean canPlay()
        {
            return CardFactoryUtil.canUseAbility(card);
        }
        public void resolve()
        {
          if(AllZone.GameAction.isCardInPlay(card))
          {
            card.addKeyword(keyword);
           
            card.abilityUsed++;

            AllZone.EndOfTurn.addUntil(untilEOT);
          }
        }
      };

      String Desc = new String();
      Desc = cardName + " gains " + keyword + " until end of turn.";

      ability.setDescription(manaCost + " : " + Desc);
      ability.setStackDescription(Desc);

      card.addSpellAbility(ability);
    }//if (should pump card)
  }//while - card has more pump keywords - Blistering Dieflyn has two pump keywords


    //Creatures with simple, self-targeted mana-activated power and/or toughness
    //pumping abilities
    //is the card  "self pumper" like Furnance Whelp - this card gets +1/+1 until end of turn?
    //-1 means not found
    while(shouldPTPumpCard(card) != -1)
    {
      int n = shouldPTPumpCard(card);
      if(n != -1)
      {
        String parse = card.getKeyword().get(n).toString();
        card.removeKeyword(parse);

        final int attack[] = new int[1];
        final int defense[] = new int[1];

        String k[] = parse.split(":");
        String pt[] = k[1].split("/");

        final String manaCost = k[0].substring(7);
        attack[0] = Integer.parseInt(pt[0]);
        defense[0] = Integer.parseInt(pt[1]);

        final Command untilEOT = new Command()
        {
          public void execute()
          {
            if(AllZone.GameAction.isCardInPlay(card))
            {
              card.setAttack(card.getAttack() - attack[0]);
              card.setDefense(card.getDefense() - defense[0]);
            }
          }
        };

        SpellAbility ability = new Ability_Activated(card, manaCost)
        {
          public boolean canPlayAI()
          {
              if (card.getDefense() + defense[0] < 1) // no point if it would kill the creature outright
                  return false;
              return CardFactoryUtil.AI_doesCreatureAttack(card);
          }
          public boolean canPlay()
          {
              return CardFactoryUtil.canUseAbility(card);
          }
          public void resolve()
          {
            if(AllZone.GameAction.isCardInPlay(card))
            {
              card.setAttack(card.getAttack() + attack[0]);
              card.setDefense(card.getDefense() + defense[0]);
             
              card.abilityUsed++;

              AllZone.EndOfTurn.addUntil(untilEOT);
            }
          }
        };

        String Desc = new String();
        Desc = cardName + " gets ";
        if (attack[0] > 0)
            Desc = Desc + "+" + attack[0];
        else
            Desc = Desc + attack[0];
        Desc = Desc + "/";
        if (defense[0] > 0)
            Desc = Desc + "+" + defense[0];
        else
            Desc = Desc + defense[0];
        Desc = Desc + " until end of turn.";

        ability.setDescription(manaCost + " : " + Desc);
        ability.setStackDescription(Desc);

        card.addSpellAbility(ability);
      }//if (should pump card)
    }//while - card has more pump keywords - Blistering Dieflyn has two pump keywords

    //Creatures with simple, self-targeted mana-activated power and/or toughness
    //pumping plus keyword adding abilities
    //is the card  "self pumper" like Furnance Whelp - this card gets +1/+1 until end of turn?
    //-1 means not found
    while(shouldPTKPumpCard(card) != -1)
    {
      int n = shouldPTKPumpCard(card);
      if(n != -1)
      {
        String parse = card.getKeyword().get(n).toString();
        card.removeKeyword(parse);
 
        final int attack[] = new int[1];
        final int defense[] = new int[1];

        String k[] = parse.split(":");
        String ptk[] = k[1].split("/");

        final String manaCost = k[0].substring(8);

        attack[0] = Integer.parseInt(ptk[0]);
        defense[0] = Integer.parseInt(ptk[1]);
        final String keyword = ptk[2];
 
        final Command untilEOT = new Command()
        {
          public void execute()
          {
            if(AllZone.GameAction.isCardInPlay(card))
            {
              card.removeKeyword(keyword);
              card.setAttack(card.getAttack() - attack[0]);
              card.setDefense(card.getDefense() - defense[0]);

            }
          }
        };
 
        SpellAbility ability = new Ability_Activated(card, manaCost)
        {
          public boolean canPlayAI()
          {
              if (card.getDefense() + defense[0] < 1) // no point if it would kill the creature outright
                  return false;
              return CardFactoryUtil.AI_doesCreatureAttack(card);
          }
          public boolean canPlay()
          {
              return CardFactoryUtil.canUseAbility(card);
          }
          public void resolve()
          {
            if(AllZone.GameAction.isCardInPlay(card))
            {
              card.addKeyword(keyword);
              card.setAttack(card.getAttack() + attack[0]);
              card.setDefense(card.getDefense() + defense[0]);
             
              card.abilityUsed++;

              AllZone.EndOfTurn.addUntil(untilEOT);
            }
          }
        };
 
        String Desc = new String();
        Desc = cardName + " gets ";
        if (attack[0] > 0)
            Desc = Desc + "+" + attack[0];
        else
            Desc = Desc + attack[0];
        Desc = Desc + "/";
        if (defense[0] > 0)
            Desc = Desc + "+" + defense[0];
        else
            Desc = Desc + defense[0];
        Desc = Desc + " and gains " + keyword + " until end of turn.";
 
        ability.setDescription(manaCost + " : " + Desc);
        ability.setStackDescription(Desc);
 
        card.addSpellAbility(ability);
      }//if (should pump card)
    }//while - card has more pump keywords - Blistering Dieflyn has two pump keywords
CardFactoryUtil - replace the existing code for handling this, also make sure to get rid of the other attempt at controlling the turn count. Yeah, I don't like it being a hard-coded list either, but this is what mtgrares left for us.... Probably should write a keyword handler - "PlayAbilityLimit:n".
Code: Select all
  //yes this is more hacky code
  //Object[0] is the cardname
  //Object[1] is the max number of times it can be used per turn
  //Object[1] has to be an Object like Integer and not just an int
  private static Object[][] AbilityLimits =
  {
    {"Azimaet Drake"    , new Integer(1)},
    {"Drake Hatchling"  , new Integer(1)},
    {"Fire Drake"       , new Integer(1)},
    {"Plated Rootwalla" , new Integer(1)},
    {"Rootwalla"        , new Integer(1)},
    {"Spitting Drake"   , new Integer(1)},

    {"Phyrexian Battleflies"   , new Integer(2)},
    {"Pit Imp"                 , new Integer(2)},
    {"Roterothopter"           , new Integer(2)},
    {"Vampire Bats"            , new Integer(2)},
  };

  public static boolean canUseAbility(Card card)
  {
    int found = -1;

    //try to find card name in AbilityLimits[][]
    for(int i = 0; i < AbilityLimits.length; i++)
      if(AbilityLimits[i][0].equals(card.getName()))
        found = i;

    if(found == -1)
      return true;

    //card was found
    if(card.abilityTurnUsed != AllZone.Phase.getTurn())
    {
      card.abilityTurnUsed = AllZone.Phase.getTurn();
      card.abilityUsed = 0;
    }

    Integer check = (Integer) AbilityLimits[found][1];
    return card.abilityUsed <= check.intValue();
  }//canUseAbility(Card card)
Cards.txt - replaces any existing cards with Pump keywords, they should be all together. This list hasn't been updated with Alara.
Code: Select all
Azimaet Drake
2 U
Creature Drake
Play this ability only once each turn.
1/3
Flying
PTPump U:+1/+0

Breathstealer
2 B
Creature Nightstalker
no text
2/2
PTPump B:+1/+0

Cavern Crawler
2 R
Creature Insect
no text
0/3
Mountainwalk
PTPump: R:+1/-1

Cobalt Golem
4
Artifact Creature Golem
no text
2/3
KPump: 1 U:Flying

Dauthi Mercenary
2 B
Creature Dauthi Knight Mercenary
no text
2/1
Shadow
PTPump 1 B:+1/0

Deeptread Merrow
1 U
Creature Merfolk Rogue
no text
2/1
KPump U:Islandwalk

Drake Hatchling
2 U
Creature Drake
Play this ability only once each turn.
1/3
Flying
PTPump U:+1/+0


Ebony Treefolk
1 B G
Creature Treefolk
no text
3/3
PTPump B G:+1/+1

Enslaved Scout
2 R
Creature Goblin Scout
no text
2/2
KPump 2:Mountainwalk

Fire Drake
1 R R
Creature Drake
Play this ability only once each turn.
1/2
Flying
PTPump R:+1/+0

Flowstone Crusher
3 R R
Creature Beast
no text
4/4
PTPump R:+1/-1

Flowstone Giant
2 R R
Creature Giant
no text
3/3
PTPump R:+2/-2

Flowstone Hellion
4 R
Creature Hellion Beast
no text
3/3
Haste
PTPump 0:+1/-1

Flowstone Mauler
4 R R
Creature Beast
no text
4/5
Trample
PTPump R:+1/-1

Flowstone Shambler
2 R
Creature Beast
no text
2/2
PTPump R:+1/-1

Flowstone Thopter
7
Artifact Creature Thopter
no text
4/4
PTKPump 1:+1/-1/Flying

Flowstone Wall
2 R
Creature Wall
no text
0/6
Defender
PTPump R:+1/-1

Flowstone Wyvern
3 R R
Creature Drake
no text
3/3
Flying
PTPump R:+2/-2

Folk of the Pines
4 G
Creature Dryad
no text
2/5
PTPump 1 G:+1/+0

Glintwing Invoker
4 U
Creature Human Wizard Mutant
no text
3/3
PTKPump 7 U:+3/+3/Flying

Hematite Golem
4
Artifact Creature Golem
no text
1/4
PTPump 1 R:+2/+0

Henge Guardian
5
Artifact Creature Dragon Wurm
no text
3/4
KPump 2:Trample

Hooded Kavu
2 R
Creature Kavu
no text
2/2
KPump B:Fear

Igneous Golem
5
Artifact Creature Golem
no text
3/4
KPump 2:Trample

Lionheart Maverick
W
Creature Human Knight
no text
1/1
Vigilance
PTPump 4 W:+1/+2

Llanowar Cavalry
2 G
Creature Human Soldier
no text
1/4
KPump W:Vigilance

Malachite Golem
6
Artifact Creature Golem
no text
5/3
KPump 1 G:Trample

Mesa Falcon
1 W
Creature Bird
no text
1/1
Flying
PTPump 1 W:+0/+1

Patagia Golem
4
Artifact Creature Golem
no text
2/3
KPump 3:Flying

Pavel Maliki
4 B R
Legendary Creature Human
no text
5/3
PTPump B R:+1/+0

Pearl Dragon
4 W W
Creature Dragon
no text
4/4
Flying
PTPump 1 W:+0/+1

Phyrexian Battleflies
B
Creature Insect
Play this ability no more than twice each turn.
0/1
Flying
PTPump B:+1/+0

Pit Imp
B
Creature Imp
Play this ability no more than twice each turn.
0/1
Flying
PTPump B:+1/+0

Plated Rootwalla
4 G
Creature Lizard
Play this ability only once each turn.
3/3
PTPump 2 G:+3/+3

River Merfolk
U U
Creature Merfolk
no text
2/1
KPump U:Mountainwalk

Roofstalker Wight
1 B
Creature Zombie
no text
2/1
KPump 1 U:Flying

Rootwalla
2 G
Creature Lizard
Play this ability only once each turn.
2/2
PTPump 1 G:+2/+2

Roterothopter
1
Artifact Creature Thopter
Play this ability no more than twice each turn.
0/2
Flying
PTPump 2:+1/+0

Serpentine Kavu
4 G
Creature Kavu
no text
4/4
KPump R:Haste

Shambling Strider
4 G G
Creature Yeti
no text
5/5
PTPump R G:+1/-1

Soltari Crusader
2 W
Creature Soltari Knight
no text
2/1
Shadow

Soltari Emissary
1 W
Creature Soltari Soldier
no text
2/1
KPump W:Shadow

Spitting Drake
3 R
Creature Drake
Play this ability only once each turn.
2/2
Flying
PTPump R:+1/+0

Stonewood Invoker
1 G
Creature Elf Mutant
no text
2/2
PTPump 7 G:+5/+5

Torch Drake
3 U
Creature Drake
no text
2/2
Flying
PTPump 1 R:+1/+0

Vampire Bats
B
Creature Bat
Play this ability no more than twice each turn.
0/1
Flying
PTPump B:+1/+0

Viashino Grappler
2 R
Creature Viashino
no text
3/1
KPump G:Trample

Wall of Fire
1 R R
Creature Wall
no text
0/5
Defender
PTPump R:+1/+0

Wall of Lava
1 R R
Creature Wall
no text
1/3
PTPump R:+1/+1

Wall of Opposition
3 R R
Creature Wall
no text
0/6
Defender
PTPump 1:+1/+0

Wall of Water
1 U U
Creature Wall
no text
0/5
Defender
PTPump U:+1/+0

Yavimaya Ancients
3 G G
Creature Treefolk
no text
2/7
PTPump G:+1/-2

Dirtwater Wraith
3 B
Creature Wraith
no text
1/3
Swampwalk
PTPump B:+1/+0

Thunder Wall
1 U U
Creature Wall
no text
0/2
Defender
PTPump U:+1/+1

AEtherflame Wall
1 R
Creature Wall
no text
0/4
Defender
Shadow
PTPump R:+1/+0

Viashino Slasher
1 R
Creature Viashino Warrior
no text
1/2
PTPump R:+1/+1

Loch Korrigan
3 B
Creature Spirit
no text
1/1
PTPump U:+1/+1
PTPump B:+1/+1

Steam Spitter
4 G
Creature Spider
no text
1/5
Reach
PTPump R:+1/+0

Dungeon Shade
3 B
Creature Shade Spirit
no text
1/1
Flying
PTPump B:+1/+1

Fetid Horror
3 B
Creature Shade Horror
no text
1/2
PTPump B:+1/+1

Whispering Shade
3 B
Creature Shade
no text
1/1
Swampwalk
PTPump B:+1/+1

Undercity Shade
4 B
Creature Shade
no text
1/1
Fear
PTPump B:+1/+1

Shade of Trokair
3 W
Creature Shade
suspend not implemented
1/2
PTPump W:+1/+1

Looming Shade
2 B
Creature Shade
no text
1/1
PTPump B:+1/+1

Hoar Shade
3 B
Creature Shade
no text
1/2
PTPump B:+1/+1

Frozen Shade
2 B
Creature Shade
no text
0/1
PTPump B:+1/+1

Pygmy Pyrosaur
1 R
Creature Lizard
no text
1/1
This creature cannot block
PTPump R:+1/+0

Parapet Watchers
2 U
Creature Kithkin Soldier
no text
2/2
PTPump W:+0/+1
PTPump U:+0/+1

Stone Kavu
4 G
Creature Kavu
no text
3/3
PTPump R:+1/+0
PTPump W:+0/+1

Firescreamer
3 B
Creature Kavu
no text
2/2
PTPump R:+1/+0

Moonwing Moth
1 W W
Creature Insect
no text
2/1
Flying
PTPump W:+0/+1

Killer Bees
1 G G
Creature Insect
no text
0/1
Flying
PTPump G:+1/+1

Firefly
3 R
Creature Insect
no text
1/1
Flying
PTPump R:+1/+0

Carrion Ants
2 B B
Creature Insect
no text
0/1
PTPump 1:+1/+1

Kjeldoran Outrider
1 W
Creature Human Soldier
no text
2/2
PTPump W:+0/+1

Honor Guard
W
Creature Human Soldier
no text
1/1
PTPump W:+0/+1

Storm Shaman
2 R
Creature Human Cleric Shaman
no text
0/4
PTPump R:+1/+0

Primeval Shambler
4 B
Creature Horror Mercenary
no text
3/3
PTPump B:+1/+1

Viscerid Deepwalker
4 U
Creature Homarid Warrior
no text
2/3
PTPump U:+1/+0

Colos Yearling
2 R
Creature Goat Beast
no text
1/1
Mountainwalk
PTPump R:+1/+0

Granite Gargoyle
2 R
Creature Gargoyle
no text
2/2
Flying
PTPump R:+0/+1

Loxodon Stalwart
3 W W
Creature Elephant Soldire
no text
3/3
Vigilance
PTPump W:+0/+1

Vengeful Firebrand
3 R
Creature Elemental Warrior
no text
5/2
PTPump R:+1/+0

Pyre Charger
R R
Creature Elemental Warrior
no text
1/1
Haste
PTPump R:+1/+0

Flamekin Brawler
R
Creature Elemental Warrior
no text
0/2
PTPump R:+1/+0

Sea Spirit
4 U
Creature Elemental Spirit
no text
2/3
PTPump U:+1/+0

Flame Spirit
4 R
Creature Elemental Spirit
no text
2/3
PTPump R:+1/+0

Tower Drake
2 U
Creature Drake
no text
2/1
Flying
PTPump W:+0/+1

Pardic Dragon
4 R R
Creature Dragon
no text
4/4
Flying
PTPump R:+1/+0

Chartooth Cougar
5 R
Creature Cat Beast
no text
4/4
PTPump R:+1/+0

Aven Flock
4 W
Creature Bird Soldie
no text
2/3
Flying
PTPump W:+0/+1

Ridgeline Rager
2 R
Creature Beast
no text
1/2
PTPump R:+1/+0

Adarkar Sentinel
5
Artifact Creature Soldier
no text
3/3
PTPump 1:+0/+1

Dragon Engine
3
Artifact Creature Construct
no text
1/3
PTPump 2:+1/+0

Blistering Dieflyn
3 R
Creature Imp
no text
0/1
Flying
PTPump B:+1/+0
PTPump R:+1/+0

Capashen Templar
2 W
Creature Human Knight
no text
2/2
PTPump W:+0/+1

Balshan Collaborator
3 U
Creature Bird Soldier
no text
2/2
Flying
PTPump B:+1/+1
Common.txt - should already be in there.. just in case here it is again.
Code: Select all
Angelfire Crusader
Aven Flock
Azimaet Drake
Breathstealer
Capashen Templar
Cavern Crawler
Colos Yearling
Cobalt Golem
Deeptread Merrow
Dirtwater Wraith
Drake Hatchling
Enslaved Scout
Fetid Horror
Flamekin Brawler
Flowstone Giant
Flowstone Shambler
Flowstone Wall
Folk of the Pines
Frozen Shade
Furnace Spirit
Glintwing Invoker
Hematite Golem
Hoar Shade
Honor Guard
Hooded Kavu
Kitsune Loreweaver
Kjeldoran Outrider
Lionheart Maverick
Llanowar Cavalry
Looming Shade
Malachite Golem
Manta Riders
Mesa Falcon
Moonwing Moth
Phyrexian Battleflies
Pit Imp
Plated Rootwalla
Pygmy Pyrosaur
Ridgeline Rager
Roofstalker Wight
Rootwalla
Roterothopter
Serpentine Kavu
Shambling Strider
Stonewood Invoker
Torch Drake
Tower Drake
Vampire Bats
Viashino Grappler
Viashino Slasher
Whiptongue Frog
Whispering Shade
Yavimaya Ancients
Uncommon.txt
Code: Select all
Adarkar Sentinel
Balshan Collaborator
Carrion Ants
Dauthi Mercenary
Ebony Treefolk
Fire Drake
Firefly
Firescreamer
Flame Spirit
Flowstone Crusher
Flowstone Hellion
Flowstone Thopter
Furnace Whelp
Goblin Balloon Brigade
Greater Forgeling
Henge Guardian
Igneous Golem
Killer Bees
Killer Whale
Loxodon Stalwart
Patagia Golem
Pavel Maliki
Primeval Shambler
Pyre Charger
Sea Spirit
Soltari Crusader
Spitting Drake
Steam Spitter
Storm Shaman
Thunder Wall
Undercity Shade
Wall of Fire
Wall of Lava
Wall of Opposition
Wall of Water
Rare.txt
Code: Select all
Dragon Engine
Flowstone Mauler
Flowstone Wyvern
Granite Gargoyle
Nantuko Shade
Pearl Dragon
River Merfolk
Shivan Dragon
Soltari Emissary
card-pics.txt
Code: Select all
Adarkar Sentinel         http://resources.wizards.com/Magic/Cards/IA/en-us/Card2392.jpg
Angelfire Crusader         http://resources.wizards.com/Magic/Cards/AP/en-us/Card21253.jpg
Aven Flock               http://resources.wizards.com/Magic/Cards/9ED/en-us/Card82999.jpg
Azimaet Drake            http://resources.wizards.com/Magic/Cards/MI/en-us/Card3324.jpg
Balshan Collaborator      http://resources.wizards.com/Magic/Cards/TOR/en-us/Card32915.jpg
Breathstealer            http://resources.wizards.com/Magic/Cards/MI/en-us/Card3278.jpg
Capashen Templar         http://resources.wizards.com/Magic/Cards/CG/en-us/Card15762.jpg
Carrion Ants            http://resources.wizards.com/Magic/Cards/4E/en-us/Card2092.jpg
Cavern Crawler            http://resources.wizards.com/Magic/Cards/MM/en-us/Card19610.jpg
Colos Yearling            http://resources.wizards.com/Magic/Cards/CG/en-us/Card15195.jpg
Cobalt Golem            http://resources.wizards.com/Magic/Cards/MRD/en-us/Card48053.jpg
Dauthi Mercenary         http://resources.wizards.com/Magic/Cards/TE/en-us/Card4652.jpg
Deeptread Merrow         http://resources.wizards.com/Magic/Cards/LRW/EN/Card142352.jpg
Dirtwater Wraith         http://resources.wizards.com/Magic/Cards/MI/en-us/Card3286.jpg
Dragon Engine            http://resources.wizards.com/Magic/Cards/6E/en-us/Card15412.jpg
Drake Hatchling            http://resources.wizards.com/Magic/Cards/MM/en-us/Card19565.jpg
Dungeon Shade            http://resources.wizards.com/Magic/Cards/ST/en-us/Card5142.jpg
Ebony Treefolk            http://resources.wizards.com/Magic/Cards/AP/en-us/Card29450.jpg
Enslaved Scout            http://resources.wizards.com/Magic/Cards/AL/en-us/Card3169.jpg
Fetid Horror            http://resources.wizards.com/Magic/Cards/MI/en-us/Card3292.jpg
Fire Drake               http://resources.wizards.com/Magic/Cards/5E/en-us/Card4047.jpg
Firefly                  http://resources.wizards.com/Magic/Cards/TE/en-us/Card4813.jpg
Firescreamer            http://resources.wizards.com/Magic/Cards/IN/en-us/Card23017.jpg
Flame Spirit            http://resources.wizards.com/Magic/Cards/6E/en-us/Card14626.jpg
Flamekin Brawler         http://resources.wizards.com/Magic/Cards/LRW/EN/Card139461.jpg
Flowstone Crusher         http://resources.wizards.com/Magic/Cards/9ED/en-us/Card84124.jpg
Flowstone Giant            http://resources.wizards.com/Magic/Cards/TE/en-us/Card4816.jpg
Flowstone Hellion         http://resources.wizards.com/Magic/Cards/ST/en-us/Card5153.jpg
Flowstone Mauler         http://resources.wizards.com/Magic/Cards/ST/en-us/Card5154.jpg
Flowstone Shambler         http://resources.wizards.com/Magic/Cards/9ED/en-us/Card84120.jpg
Flowstone Thopter         http://resources.wizards.com/Magic/Cards/NE/en-us/Card21398.jpg
Flowstone Wall            http://resources.wizards.com/Magic/Cards/NE/en-us/Card21336.jpg
Flowstone Wyvern         http://resources.wizards.com/Magic/Cards/TE/en-us/Card4818.jpg
Folk of the Pines         http://resources.wizards.com/Magic/Cards/IA/en-us/Card2559.jpg
Frozen Shade            http://resources.wizards.com/Magic/Cards/5E/en-us/Card3846.jpg
Furnace Spirit            http://resources.wizards.com/Magic/Cards/ST/en-us/Card5160.jpg
Furnace Whelp            http://resources.wizards.com/Magic/Cards/10E/EN/Card130386.jpg
Glintwing Invoker         http://resources.wizards.com/Magic/Cards/LGN/en-us/Card44204.jpg
Goblin Balloon Brigade      http://resources.wizards.com/Magic/Cards/9ED/en-us/Card84540.jpg
Granite Gargoyle         http://resources.wizards.com/Magic/Cards/3E/en-us/Card1297.jpg
Greater Forgeling         http://resources.wizards.com/Magic/Cards/RAV/en-us/Card87934.jpg
Hematite Golem            http://resources.wizards.com/Magic/Cards/MRD/en-us/Card48055.jpg
Henge Guardian            http://resources.wizards.com/Magic/Cards/MM/en-us/Card19770.jpg
Hoar Shade               http://resources.wizards.com/Magic/Cards/IA/en-us/Card2455.jpg
Honor Guard               http://resources.wizards.com/Magic/Cards/10E/EN/Card129595.jpg
Hooded Kavu               http://resources.wizards.com/Magic/Cards/IN/en-us/Card23061.jpg
Igneous Golem            http://resources.wizards.com/Magic/Cards/MI/en-us/Card3253.jpg
Killer Bees               http://resources.wizards.com/Magic/Cards/5E/en-us/Card3990.jpg
Killer Whale            http://resources.wizards.com/Magic/Cards/BD/en-us/Card26638.jpg
Kjeldoran Outrider         http://resources.wizards.com/Magic/Cards/CSP/en-us/Card121188.jpg
Lionheart Maverick         http://resources.wizards.com/Magic/Cards/GPT/en-us/Card96841.jpg
Llanowar Cavalry         http://resources.wizards.com/Magic/Cards/IN/en-us/Card23322.jpg
Looming Shade            http://resources.wizards.com/Magic/Cards/10E/EN/Card129628.jpg
Loxodon Stalwart         http://resources.wizards.com/Magic/Cards/5DN/en-us/Card73567.jpg
Malachite Golem            http://resources.wizards.com/Magic/Cards/MRD/en-us/Card48056.jpg
Manta Riders            http://resources.wizards.com/Magic/Cards/TE/en-us/Card4711.jpg
Mesa Falcon               http://resources.wizards.com/Magic/Cards/6E/en-us/Card16427.jpg
Moonwing Moth            http://resources.wizards.com/Magic/Cards/SOK/en-us/Card84643.jpg
Nantuko Shade            http://resources.wizards.com/Magic/Cards/TOR/en-us/Card35053.jpg
Patagia Golem            http://resources.wizards.com/Magic/Cards/8ED/en-us/Card45465.jpg
Pavel Maliki            http://resources.wizards.com/Magic/Cards/LE/en-us/Card1674.jpg
Pearl Dragon            http://resources.wizards.com/Magic/Cards/6E/en-us/Card15446.jpg
Phyrexian Battleflies      http://resources.wizards.com/Magic/Cards/IN/en-us/Card23023.jpg
Pit Imp                  http://resources.wizards.com/Magic/Cards/TE/en-us/Card4677.jpg
Plated Rootwalla         http://resources.wizards.com/Magic/Cards/EX/en-us/Card5201.jpg
Primeval Shambler         http://resources.wizards.com/Magic/Cards/8ED/en-us/Card45312.jpg
Pygmy Pyrosaur            http://resources.wizards.com/Magic/Cards/7E/en-us/Card15879.jpg
Pyre Charger            http://resources.wizards.com/Magic/Cards/SHM/EN/Card159399.jpg
Ridgeline Rager            http://resources.wizards.com/Magic/Cards/8ED/en-us/Card45346.jpg
River Merfolk            http://resources.wizards.com/Magic/Cards/FE/en-us/Card1888.jpg
Roofstalker Wight         http://resources.wizards.com/Magic/Cards/RAV/en-us/Card87945.jpg
Rootwalla               http://resources.wizards.com/Magic/Cards/TE/en-us/Card4786.jpg
Roterothopter            http://resources.wizards.com/Magic/Cards/HM/en-us/Card2908.jpg
Sea Spirit               http://resources.wizards.com/Magic/Cards/5E/en-us/Card3940.jpg
Serpentine Kavu            http://resources.wizards.com/Magic/Cards/IN/en-us/Card23105.jpg
Shambling Strider         http://resources.wizards.com/Magic/Cards/BD/en-us/Card26611.jpg
Shivan Dragon            http://resources.wizards.com/Magic/Cards/10E/EN/Card129730.jpg
Soltari Crusader         http://resources.wizards.com/Magic/Cards/TE/en-us/Card4899.jpg
Soltari Emissary         http://resources.wizards.com/Magic/Cards/TE/en-us/Card4900.jpg
Spitting Drake            http://resources.wizards.com/Magic/Cards/6E/en-us/Card15418.jpg
Steam Spitter            http://resources.wizards.com/Magic/Cards/CSP/en-us/Card121240.jpg
Stonewood Invoker         http://resources.wizards.com/Magic/Cards/LGN/en-us/Card43534.jpg
Storm Shaman            http://resources.wizards.com/Magic/Cards/7E/en-us/Card15834.jpg
Thunder Wall            http://resources.wizards.com/Magic/Cards/IA/en-us/Card2540.jpg
Torch Drake               http://resources.wizards.com/Magic/Cards/GPT/en-us/Card97218.jpg
Tower Drake               http://resources.wizards.com/Magic/Cards/IN/en-us/Card22974.jpg
Undercity Shade            http://resources.wizards.com/Magic/Cards/RAV/en-us/Card88951.jpg
Vampire Bats            http://resources.wizards.com/Magic/Cards/10E/EN/Card135195.jpg
Viashino Grappler         http://resources.wizards.com/Magic/Cards/IN/en-us/Card22930.jpg
Viashino Slasher         http://resources.wizards.com/Magic/Cards/RAV/en-us/Card83605.jpg
Wall of Fire            http://resources.wizards.com/Magic/Cards/10E/EN/Card136284.jpg
Wall of Lava            http://resources.wizards.com/Magic/Cards/IA/en-us/Card2659.jpg
Wall of Opposition         http://resources.wizards.com/Magic/Cards/CH/en-us/Card2852.jpg
Wall of Water            http://resources.wizards.com/Magic/Cards/4E/en-us/Card2197.jpg
Whiptongue Frog            http://resources.wizards.com/Magic/Cards/EX/en-us/Card6057.jpg
Whispering Shade         http://resources.wizards.com/Magic/Cards/OD/en-us/Card29734.jpg
Yavimaya Ancients         http://resources.wizards.com/Magic/Cards/AL/en-us/Card3156.jpg
The Force will be with you, Always.
User avatar
Rob Cashwalker
Programmer
 
Posts: 2167
Joined: 09 Sep 2008, 15:09
Location: New York
Has thanked: 5 times
Been thanked: 40 times

Return to Forge

Who is online

Users browsing this forum: No registered users and 162 guests


Who is online

In total there are 162 users online :: 0 registered, 0 hidden and 162 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 162 guests

Login Form