Page 1 of 1

Umbral Mantle

PostPosted: 08 Jul 2009, 04:30
by zerker2000
Yes, I Am a fan of untap abilities :P.
First off, please correct me if I'm wrong on these:
SpellAbility:
Code: Select all
  public void setSourceCard(Card c) {sourceCard=c;}
Card:
Code: Select all
  public void addSpellAbility(SpellAbility a) {spellAbility.add(a);>a.setSourceCard(this);<}
Now, with those agreed on, here's the card:
Code: Select all
    if (cardName.equals("Umbral Mantle"))
    {
       final Ability equip = new Ability(card, "0")
       {
          public void resolve()
          {
             if (AllZone.GameAction.isCardInPlay(getTargetCard()) && CardFactoryUtil.canTarget(card, getTargetCard()) )
             {
                if (card.isEquipping())
                {
                   Card crd = card.getEquipping().get(0);
                   if (crd.equals(getTargetCard()) )
                      return;
                   
                   card.unEquipCard(crd);
                }
             
                card.equipCard(getTargetCard());
             }
          }
          
          public boolean canPlay()
          {
             return AllZone.getZone(card).is(Constant.Zone.Play) &&           
                      AllZone.Phase.getActivePlayer().equals(card.getController()) &&
                      !AllZone.Phase.getPhase().equals("End of Turn") &&
                   !AllZone.Phase.getPhase().equals(Constant.Phase.Combat_Declare_Blockers_InstantAbility);
          }
          

          public boolean canPlayAI()
            {
              return false;
            }
       };//equip ability

       
       final Ability untapboost=new Ability (card, "3")
      {
          public void resolve(){
            getSourceCard().addTempAttackBoost(2);
            getSourceCard().addTempDefenseBoost(2);
            getSourceCard().untap();
         }
         public boolean canPlay(){return (getSourceCard().isTapped() && !getSourceCard().hasSickness() && super.canPlay());}
      };//equiped creature's ability
      
       Command onEquip = new Command()
       {   
         private static final long serialVersionUID = 1L;

         public void execute()
           {
            if (card.isEquipping())
             {
               Card crd=card.getEquipping().get(0);
               untapboost.setDescription("3, Untap:"+crd+" gets +2/+2 until end of turn");
                untapboost.setStackDescription(crd+ " - +2/+2 until EOT");
               
               crd.addSpellAbility(untapboost);
             }
           }//execute()
       };//Command
      

       Command onUnEquip = new Command()
       {   
         private static final long serialVersionUID = -3427116314295067303L;

         public void execute()
           {
            if (card.isEquipping())
             {
                Card crd = card.getEquipping().get(0);
                crd.removeSpellAbility(untapboost);
             }
            
           }//execute()
       };//Command
       
       equip.setBeforePayMana(CardFactoryUtil.input_targetCreature(equip));
       
       equip.setDescription("Equip: 1");
       card.addSpellAbility(equip);
       
       card.setEquip(onEquip);
       card.setUnEquip(onUnEquip);
    } //*************** END ************ END **************************