Board index
Programs with AI or Rules Enforcement
Magic: The Gathering - Duels of the Planeswalkers
Programming Talk



Myr Battlesphere
Moderator: CCGHQ Admins
Myr Battlesphere
by 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:
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) > 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) > 0)
</TRIGGER>
<EFFECT>
Object():Register_Set(1,0)
GiveSelfPlusOnePlusZero()
</EFFECT>
<DURATION>
return UntilEndOfTurn()
</DURATION>
</TRIGGERED_ABILITY>
Re: Myr Battlesphere
by 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>
2 posts
• Page 1 of 1
Who is online
Users browsing this forum: No registered users and 7 guests