It is currently 20 Apr 2024, 00:25
   
Text Size

Myr Battlesphere

Moderator: CCGHQ Admins

Myr Battlesphere

Postby spiwy » 22 Apr 2011, 19:27

Hey there! I'm making a Myr Deck so i've coded Myr Battlesphere, but there's a problem with the code which i can't locate. When it taps the Myr, the first one it taps gives it +2/+0 instead +1/+0 and i don't know why. I used the Devour mechanism developed by the community to tap the Myr.

Here's the code:

Code: Select all
      <TRIGGERED_ABILITY tag="MYR_BATTLESPHERE_RULE_1" layer="0" auto_skip="1" >
         <TRIGGER value="COMES_INTO_PLAY">
            return SelfTriggered()
         </TRIGGER>
         <EFFECT>
            PutTokensIntoPlay( "Myr_Token_SOM",4 )
         </EFFECT>
      </TRIGGERED_ABILITY>
      <TRIGGERED_ABILITY tag="MYR_BATTLESPHERE_RULE_2" layer="0"   >
         <TRIGGER value="ATTACKING">
            return SelfTriggered()
         </TRIGGER>
         <EFFECT>
            Object():Register_Set(0,1)
         </EFFECT>
      </TRIGGERED_ABILITY>
      <TRIGGERED_ABILITY layer="0" forced_skip="1" >
         <TRIGGER value="ABILITY_RESOLVED">
            return ( SelfTriggered() and Object():Register_Get(0) &gt; 0 )
         </TRIGGER>
         <PRE_EFFECT>
            Object():GetFilter():Clear()
            Object():GetFilter():NotTargetted()
            Object():GetFilter():AddCardType( CARD_TYPE_CREATURE )
            Object():GetFilter():AddSubType( CREATURE_TYPE_MYR )
            Object():GetFilter():AddExtra( FILTER_EXTRA_CREATURE_UNTAPPED )
            Object():GetFilter():SetZone( ZONE_IN_PLAY )
            Object():GetFilter():SetPlayer( Object():GetController() )
            Object():GetFilter():May()
            ChooseTarget( "CHOOSEMYRTOTAP" )
         </PRE_EFFECT>
         <EFFECT>
            if (Object():GetTargetCard() ~= nil) then
               Object():GetTargetCard():Tap()
               Object():Register_Set(1,1)
            else
              Object():Register_Clear(0)
            end
         </EFFECT>
      </TRIGGERED_ABILITY>
      <TRIGGERED_ABILITY layer="0" forced_skip="1">
         <TRIGGER value="ABILITY_RESOLVED">
            return (SelfTriggered() and Object():Register_Get(1) &gt; 0)
         </TRIGGER>
         <EFFECT>
            Object():Register_Set(1,0)
            GiveSelfPlusOnePlusZero()
         </EFFECT>
         <DURATION>
            return UntilEndOfTurn()
         </DURATION>
      </TRIGGERED_ABILITY>      
spiwy
 
Posts: 24
Joined: 15 Mar 2011, 14:21
Location: Spain
Has thanked: 1 time
Been thanked: 0 time

Re: Myr Battlesphere

Postby spiwy » 22 Apr 2011, 20:42

Finally figured it out and added support for the damaging ability, it's a mere workaround so it can bug easy, i'll try to fix it in the final release

Code: Select all
      <TRIGGERED_ABILITY tag="MYR_BATTLESPHERE_RULE_2" layer="0"   >
         <TRIGGER value="ATTACKING">
            return SelfTriggered()
         </TRIGGER>
         <EFFECT>
            Object():Register_Set(0,1)
         </EFFECT>
      </TRIGGERED_ABILITY>
      <TRIGGERED_ABILITY layer="0" forced_skip="1" >
         <TRIGGER value="ABILITY_RESOLVED">
            return ( SelfTriggered() and Object():Register_Get(0) ~= 0 )
         </TRIGGER>
         <PRE_EFFECT>
            Object():GetFilter():Clear()
            Object():GetFilter():NotTargetted()
            Object():GetFilter():AddCardType( CARD_TYPE_CREATURE )
            Object():GetFilter():AddSubType( CREATURE_TYPE_MYR )
            Object():GetFilter():AddExtra( FILTER_EXTRA_CREATURE_UNTAPPED )
            Object():GetFilter():SetZone( ZONE_IN_PLAY )
            Object():GetFilter():SetPlayer( Object():GetController() )
            Object():GetFilter():May()
            ChooseTarget( "CHOOSEMYRTOTAP" )
         </PRE_EFFECT>
         <EFFECT>
            if (Object():GetTargetCard() ~= nil) then
               Object():GetTargetCard():Tap()
               Object():Register_Set(1,1)
               Object():Register_Inc(5)
            else
              Object():Register_Set(0,0)
              Object():GetPlayerAttacked():DealDamage( Object():Register_Get(5), Object() )
              Object():Register_Set(5,0)
            end
         </EFFECT>
      </TRIGGERED_ABILITY>
      <TRIGGERED_ABILITY layer="0" forced_skip="1">
         <TRIGGER value="ABILITY_RESOLVED">
            return (SelfTriggered() and Object():Register_Get(1) ~= 0)
         </TRIGGER>
         <PRE_EFFECT>
            Object():Register_Set(1,0)
         </PRE_EFFECT>
         <EFFECT>
            GiveSelfPlusOnePlusZero()
         </EFFECT>
         <DURATION>
            return UntilEndOfTurn()
         </DURATION>
      </TRIGGERED_ABILITY>
spiwy
 
Posts: 24
Joined: 15 Mar 2011, 14:21
Location: Spain
Has thanked: 1 time
Been thanked: 0 time


Return to Programming Talk

Who is online

Users browsing this forum: No registered users and 32 guests


Who is online

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

Login Form