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



DOTP 2013- PutTokensIntoPlayTappedAndAttacking
Moderator: CCGHQ Admins
DOTP 2013- PutTokensIntoPlayTappedAndAttacking
by DaLosar » 27 Jun 2012, 06:57
Has anyone found its parameters yet? I'm trying to make Geist of Saint Traft using this and I'm having some trouble...
If anyone already used this or PutIntoPlayTappedAndAttacking please help
If anyone already used this or PutIntoPlayTappedAndAttacking please help

Re: DOTP 2013- PutTokensIntoPlayTappedAndAttacking
by Aiodren » 27 Jun 2012, 07:13
PutTokensIntoPlayTappedAndAttacking is actuallly not that hard to implement. I have coded Hero of Bladehold by looking at the code of that one plane, that puts tokens into play for each of your attacking creatures, and it works just fine.
The function needs 4 Parameters: first the token, second the amount of tokens, third the controller and lastly the one, they should be attacking.
I know the last one is slightly against the rules for attacking tokens, because you can't choose new attack targets for them, but without the last parameter it doesn't work
.
Here is my Hero of Bladehold for reference:
The function needs 4 Parameters: first the token, second the amount of tokens, third the controller and lastly the one, they should be attacking.
I know the last one is slightly against the rules for attacking tokens, because you can't choose new attack targets for them, but without the last parameter it doesn't work

Here is my Hero of Bladehold for reference:
- Code: Select all
<?xml version='1.0'?>
<CARD_V2 custom="true">
<FILENAME text="HERO_OF_BLADEHOLD_888819912" />
<CARDNAME text="HERO_OF_BLADEHOLD" />
<TITLE>
<LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Hero Of Bladehold]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Held der Klingenfeste]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[]]></LOCALISED_TEXT>
</TITLE>
<MULTIVERSEID value="888819912" />
<ARTID value="HERO OF BLADEHOLD" />
<FRAMECOLOUR name="W" />
<COLOUR value="W" />
<ARTIST name="Austin Hsu" />
<CASTING_COST cost="{2}{W}{W}" />
<TYPE metaname="Creature" order_de-DE="0" order_es-ES="0" order_fr-FR="0" order_it-IT="0" order_jp-JA="0" />
<SUB_TYPE metaname="Human" order_de-DE="0" order_es-ES="1" order_fr-FR="0" order_it-IT="1" order_jp-JA="0" />
<SUB_TYPE metaname="Knight" order_de-DE="1" order_es-ES="0" order_fr-FR="1" order_it-IT="0" order_jp-JA="1" />
<EXPANSION value="MBS" />
<RARITY metaname="M" />
<POWER value="3" />
<TOUGHNESS value="4" />
<TOKEN_REGISTRATION reservation="4" type="TOKEN_SOLDIER_1_1_277462" />
<TRIGGERED_ABILITY auto_skip="1" badge="BADGE_BATTLE_CRY" filter_zone="ZONE_IN_PLAY">
<LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Battle cry]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Cri de guerre]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Grito de batalla.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Schlachtruf]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Grido di guerra]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[喊声]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[전투함성]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[Боевой клич]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[Grito de guerra]]></LOCALISED_TEXT>
<TRIGGER value="ATTACKING" simple_qualifier="self" />
<FILTER>
return (FilteredCard() ~= Object() and FilteredCard() ~= nil and FilteredCard():GetCardType():Test( CARD_TYPE_CREATURE ) ~= 0 and FilteredCard():GetZone() == ZONE_IN_PLAY and FilteredCard():IsAttacking() ~= 0 )
</FILTER>
<CONTINUOUS_ACTION layer="7C">
if FilteredCard() ~= nil then
local characteristics = FilteredCard():GetCurrentCharacteristics()
if characteristics ~= nil then
characteristics:Power_Add( 1 )
characteristics:Toughness_Add( 0 )
end
end
</CONTINUOUS_ACTION>
<DURATION simple_duration="UntilEOT" />
</TRIGGERED_ABILITY>
<TRIGGERED_ABILITY forced_skip="1">
<LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Whenever Hero of Bladehold attacks, put two 1/1 white Soldier creature tokens onto the battlefield tapped and attacking.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Immer wenn der Held der Klingenfeste angreift, bringe zwei 1/1 weiße Soldat-Kreaturenspielsteine getappt und angreifend ins Spiel.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[]]></LOCALISED_TEXT>
<TRIGGER value="ATTACKING" simple_qualifier="self" />
<RESOLUTION_TIME_ACTION>
local defendingPlayer = TriggerObject():GetPlayerAttacked()
MTG():PutTokensIntoPlayTappedAndAttacking( "TOKEN_SOLDIER_1_1_277462", 2, EffectController(), defendingPlayer )
</RESOLUTION_TIME_ACTION>
<AI_BASE_SCORE score="2400" zone="in_play" />
</TRIGGERED_ABILITY>
</CARD_V2>
Re: DOTP 2013- PutTokensIntoPlayTappedAndAttacking
by thefiremind » 27 Jun 2012, 08:38
Geist of Saint Traft is in one of the locked Ravnica guild decks, so the developers already coded it for us. 

- Code: Select all
<?xml version='1.0'?>
<CARD_V2>
<FILENAME text="GEIST_OF_SAINT_TRAFT_277037" />
<CARDNAME text="GEIST_OF_SAINT_TRAFT" />
<TITLE>
<LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Geist of Saint Traft]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Geist de Saint Traft]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Geist de San Traft]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Geist von Sankt Traft]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Geist di San Traft]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[聖トラフトの霊]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[성 트라프트의 심령]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[Привидение Святого Трафта]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[Geist de Santo Traft]]></LOCALISED_TEXT>
</TITLE>
<MULTIVERSEID value="277037" />
<ARTID value="139449" />
<ARTIST name="Igor Kieryluk" />
<CASTING_COST cost="{1}{W}{U}" />
<SUPERTYPE metaname="Legendary" />
<TYPE metaname="Creature" />
<SUB_TYPE metaname="Spirit" order_de-DE="0" order_es-ES="1" order_fr-FR="0" order_it-IT="1" order_jp-JA="0" order_ko-KR="0" order_pt-BR="0" order_ru-RU="0" />
<SUB_TYPE metaname="Cleric" order_de-DE="1" order_es-ES="0" order_fr-FR="1" order_it-IT="0" order_jp-JA="1" order_ko-KR="1" order_pt-BR="1" order_ru-RU="1" />
<EXPANSION value="DPG" />
<RARITY metaname="M" />
<POWER value="2" />
<TOUGHNESS value="2" />
<STATIC_ABILITY filter_zone="ZONE_IN_PLAY">
<LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Hexproof]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Défense talismanique]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Antimaleficio.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Fluchsicher]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Anti-malocchio]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[呪禁]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[방호]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[Порчеустойчивость]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[Resistência à magia]]></LOCALISED_TEXT>
<CONTINUOUS_ACTION>
local characteristics = Object():GetCurrentCharacteristics()
characteristics:Characteristic_Set( CHARACTERISTIC_HEXPROOF, 1 )
</CONTINUOUS_ACTION>
</STATIC_ABILITY>
<TRIGGERED_ABILITY auto_skip="1">
<LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Whenever Geist of Saint Traft attacks, put a 4/4 white Angel creature token with flying onto the battlefield tapped and attacking. Exile that token at end of combat.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[À chaque fois que le Geist de Saint Traft attaque, mettez sur le champ de bataille un jeton de créature 4/4 blanche Ange avec le vol, engagé et attaquant. Exilez ce jeton à la fin du combat.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Siempre que el Geist de San Traft ataque, pon en el campo de batalla una ficha de criatura Ángel blanco 4/4 con la habilidad de volar, girado y atacando. Exilia esa ficha al final del combate.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Immer wenn der Geist von Sankt Traft angreift, bringe einen 4/4 weißen Engel-Kreaturenspielstein mit Flugfähigkeit getappt und angreifend ins Spiel. Schicke den Spielstein am Ende des Kampfes ins Exil.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Ogniqualvolta il Geist di San Traft attacca, metti sul campo di battaglia una pedina creatura Angelo 4/4 bianca con volare TAPpata e attaccante. Esilia quella pedina alla fine del combattimento.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[聖トラフトの霊が攻撃するたび、タップ状態で攻撃している飛行を持つ白の4/4の天使・クリーチャー・トークンを1体戦場に出す。 戦闘終了時に、そのトークンを追放する。]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[성 트라프트의 심령이 공격할 때마다, 비행 능력을 가진 4/4 백색 천사 생물 토큰 한 개를 탭되어서 공격하고 있는 채로 전장에 놓는다. 전투종료에 그 토큰을 추방한다.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[Каждый раз, когда Привидение Святого Трафта атакует, положите на поле битвы одну фишку существа 4/4 белый Ангел с Полетом повернутой и атакующей. Изгоните ту фишку в конце боя.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[Toda vez que Geist de Santo Traft atacar, coloque no campo de batalha uma ficha de criatura branca 4/4 do tipo Anjo com voar virada e atacando. Exile aquela ficha no final do combate.]]></LOCALISED_TEXT>
<TRIGGER value="ATTACKING" simple_qualifier="self" />
<TARGET_DEFINITION id="0">
local filter = Object():GetFilter()
filter:Clear()
filter:SetOwner( EffectController() )
filter:SetFilterType( FILTER_TYPE_PLAYERS + FILTER_TYPE_OPPONENTS)
filter:SetHint( HINT_ENEMY_ONLY, EffectController() )
filter:NotTargetted()
</TARGET_DEFINITION>
<RESOLUTION_TIME_ACTION>
EffectController():ChooseTarget( 0, "CARD_QUERY_CHOOSE_PLAYER_TO_ANGEL", EffectDC():Make_Targets(0) )
</RESOLUTION_TIME_ACTION>
<RESOLUTION_TIME_ACTION>
local count = 1
local delayDC = EffectDC():Make_Chest(1)
local attacked_player = EffectDC():Get_Targets(0):Get_PlayerPtr(0)
MTG():PutTokensIntoPlayTappedAndAttacking("TOKEN_ANGEL_4_4_F_GEIST_22", count, EffectController(), attacked_player, delayDC:Make_Chest(0) )
MTG():CreateDelayedTrigger(2, delayDC)
</RESOLUTION_TIME_ACTION>
</TRIGGERED_ABILITY>
<TRIGGERED_ABILITY auto_skip="1" resource_id="2">
<TRIGGER value="BEGINNING_OF_STEP">
return ( MTG():GetStep() == STEP_END_OF_COMBAT and TriggerPlayer() == EffectController() )
</TRIGGER>
<CLEANUP fire_once="1" />
<RESOLUTION_TIME_ACTION>
local i = 0
local token_chest = EffectDC():Get_Chest(0)
if token_chest ~= nil then
local token = token_chest:Get_NthCardPtr(0)
while (token ~= nil) do
token:RemoveFromGame()
i = i+1
token = token_chest:Get_NthCardPtr(i)
end
end
</RESOLUTION_TIME_ACTION>
</TRIGGERED_ABILITY>
<TOKEN_REGISTRATION reservation="1" type="TOKEN_ANGEL_4_4_F_GEIST_22" />
<HELP title="MORE_INFO_BADGE_TITLE_10" body="MORE_INFO_BADGE_BODY_10" zone="ZONE_ANY" />
<HELP title="MORE_INFO_BADGE_TITLE_21" body="MORE_INFO_BADGE_BODY_21" zone="ZONE_ANY" />
<SFX text="COMBAT_BLADE_LARGE_ATTACK" power_boundary_min="4" power_boundary_max="-1" />
<SFX text="COMBAT_BLADE_SMALL_ATTACK" power_boundary_min="1" power_boundary_max="3" />
<AI_BASE_SCORE score="900" zone="ZONE_IN_PLAY" />
</CARD_V2>
< Former DotP 2012/2013/2014 modder >
Currently busy with life...
Currently busy with life...
-
thefiremind - Programmer
- Posts: 3515
- Joined: 07 Nov 2011, 10:55
- Has thanked: 118 times
- Been thanked: 722 times
Re: DOTP 2013- PutTokensIntoPlayTappedAndAttacking
by DaLosar » 27 Jun 2012, 14:40
Thanks guys, thats exactly what I needed! Where can I find those locked Ravnica decks? Are they some of the decks on the magic 2013 folder, or are they only avaliable on the non-Steam platforms?thefiremind wrote:Geist of Saint Traft is in one of the locked Ravnica guild decks, so the developers already coded it for us.
(...)
Note that it allows the player to choose the attack target for the Angel token. I think it's true for any card with this mechanic, unless differently specified. Ninjutsu, for example, wants the Ninja to attack the same player as the substituted creature, but it's clearly written in the Planechase 2012 FAQs.
Re: DOTP 2013- PutTokensIntoPlayTappedAndAttacking
by thefiremind » 27 Jun 2012, 15:19
I found them by extracting the game for Xbox. I read somewhere that the Xbox Live administrators prefer to pack everything at once and then distribute unlock keys, rather than distribute other big packages later.DaLosar wrote:Thanks guys, thats exactly what I needed! Where can I find those locked Ravnica decks? Are they some of the decks on the magic 2013 folder, or are they only avaliable on the non-Steam platforms?
As long as the link for downloading those decks works, you can find it here:
viewtopic.php?f=62&t=6784&start=75#p91296
Note that they lack of their TEXT_PERMANENT XML's, so if you unlock the decks and use them in the game (you just have to set content_pack="0" instead of "1" and add always_available="true"), you'll see them with the usual [CAPITAL_NAMES_INSIDE_PARENTHESES], and some card queries will probably be without localised text, too. But it's nice to have other cards ready.
< Former DotP 2012/2013/2014 modder >
Currently busy with life...
Currently busy with life...
-
thefiremind - Programmer
- Posts: 3515
- Joined: 07 Nov 2011, 10:55
- Has thanked: 118 times
- Been thanked: 722 times
Re: DOTP 2013- PutTokensIntoPlayTappedAndAttacking
by BlindWillow » 19 Jul 2012, 03:19
The rules for Hero of Bladehold state that:
Myself, I coded two triggers: one for two-player games and one for multi-player games. The former looks like Aiodren's above. The latter uses ChooseTargetsWithFlags() with QUERY_FLAG_CAN_BE_FINISHED_EARLY so that the player can choose zero (tokens attack same player as Hero), one, or two opponents. So far it seems to be working for me. I'm not sure how well the AI would use it, though. Here's the relevant code:
So it's not simply a matter of putting the tokens onto the battlefield attacking (at least not in multiplayer games like Planechase).you choose which opponent or planeswalker an opponent controls that each token is attacking when it is put onto the battlefield.
Myself, I coded two triggers: one for two-player games and one for multi-player games. The former looks like Aiodren's above. The latter uses ChooseTargetsWithFlags() with QUERY_FLAG_CAN_BE_FINISHED_EARLY so that the player can choose zero (tokens attack same player as Hero), one, or two opponents. So far it seems to be working for me. I'm not sure how well the AI would use it, though. Here's the relevant code:
- Code: Select all
<TRIGGERED_ABILITY LKI_shield_effect_source="1" dangerous="1" filter_zone="ZONE_IN_PLAY">
<LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Whenever Hero of Bladehold attacks, put two 1/1 white Soldier creature tokens onto the battlefield tapped and attacking.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[À chaque fois que l’Héroïne de Fortcoutel attaque, mettez sur le champ de bataille deux jetons de créature 1/1 blanche Soldat, engagés et attaquants.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Siempre que el Héroe de Fortaleza del Filo ataque, pon en el campo de batalla dos fichas de criatura Soldado blancas 1/1 giradas y atacando.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Immer wenn der Held der Klingenfeste angreift, bringe zwei 1/1 weiße Soldat-Kreaturenspielsteine getappt und angreifend ins Spiel.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Ogniqualvolta l’Eroina di Rifugio delle Lame attacca, metti sul campo di battaglia due pedine creatura Soldato 1/1 bianche TAPpate e attaccanti.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[刃砦の英雄が攻撃するたび、タップ状態で攻撃している白の1/1の兵士・クリーチャー・トークンを2体戦場に出す。]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[Whenever Hero of Bladehold attacks, put two 1/1 white Soldier creature tokens onto the battlefield tapped and attacking.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[Каждый раз когда Герой Блэйдхолда атакует, положите на поле битвы две фишки существа 1/1 белый Солдат повернутыми и атакующими.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[Toda vez que Herói de Bladehold atacar, coloque no campo de batalha duas fichas de criatura brancas 1/1 do tipo Soldado viradas e atacando.]]></LOCALISED_TEXT>
<TRIGGER value="ATTACKING" simple_qualifier="self">
return MTG():GetNumberOfPlayers() == 2
</TRIGGER>
<RESOLUTION_TIME_ACTION>
local delayDC = EffectDC():Make_Chest(1)
local player = TriggerObject():GetPlayerAttacked()
if player ~= nil then
MTG():PutTokensIntoPlayTappedAndAttacking( "TOKEN_SOLDIER_1_1_277462", 2, EffectController(), player, delayDC:Make_Chest(0) )
end
MTG():CreateDelayedTrigger(2, delayDC)
</RESOLUTION_TIME_ACTION>
</TRIGGERED_ABILITY>
<TRIGGERED_ABILITY LKI_shield_effect_source="1" dangerous="1" filter_zone="ZONE_IN_PLAY">
<TRIGGER value="ATTACKING" simple_qualifier="self">
return MTG():GetNumberOfPlayers() > 2
</TRIGGER>
<TARGET_DEFINITION id="0">
local filter = Object():GetFilter()
filter:Clear()
filter:SetFilterType( FILTER_TYPE_PLAYERS + FILTER_TYPE_OPPONENTS)
filter:SetOwner( EffectController() )
filter:SetHint( HINT_ENEMY_ONLY, EffectController() )
filter:NotTargetted()
</TARGET_DEFINITION>
<TARGET_DETERMINATION>
return AtLeastOneTargetFromDefinition(0)
</TARGET_DETERMINATION>
<PLAY_TIME_ACTION target_choosing="1">
local player = EffectController()
player:SetTargetCount(2)
player:SetTargetPrompt( 0, "CARD_QUERY_CHOOSE_OPPONENT_BLADEHOLD" )
player:SetTargetPrompt( 1, "CARD_QUERY_CHOOSE_OPPONENT_BLADEHOLD" )
player:ChooseTargetsWithFlags( 0 , EffectDC():Make_Targets(0), QUERY_FLAG_CAN_BE_FINISHED_EARLY + QUERY_FLAG_CAN_BE_FINISHED_EARLY_FOR_AI_AS_WELL )
</PLAY_TIME_ACTION>
<RESOLUTION_TIME_ACTION>
local delayDC = EffectDC():Make_Chest(1)
if EffectDC():Get_Targets(0):Get_PlayerPtr(0) == nil then
local player = TriggerObject():GetPlayerAttacked()
if player ~= nil then
MTG():PutTokensIntoPlayTappedAndAttacking( "TOKEN_SOLDIER_1_1_277462", 2, EffectController(), player, delayDC:Make_Chest(0) )
end
elseif EffectDC():Get_Targets(0):Get_PlayerPtr(1) == nil then
local player = EffectDC():Get_Targets(0):Get_PlayerPtr(0)
if player ~= nil then
MTG():PutTokensIntoPlayTappedAndAttacking( "TOKEN_SOLDIER_1_1_277462", 2, EffectController(), player, delayDC:Make_Chest(0) )
end
else
for i=0,1 do
local player = EffectDC():Get_Targets(0):Get_PlayerPtr(i)
if player ~= nil then
MTG():PutTokensIntoPlayTappedAndAttacking( "TOKEN_SOLDIER_1_1_277462", 1, EffectController(), player, delayDC:Make_Chest(i) )
end
end
end
MTG():CreateDelayedTrigger(2, delayDC)
</RESOLUTION_TIME_ACTION>
</TRIGGERED_ABILITY>
<TOKEN_REGISTRATION reservation="1" type="TOKEN_SOLDIER_1_1_277462" />
- BlindWillow
- Posts: 213
- Joined: 19 Jul 2012, 00:26
- Has thanked: 11 times
- Been thanked: 46 times
Re: DOTP 2013- PutTokensIntoPlayTappedAndAttacking
by BlindWillow » 20 Jul 2012, 02:29
Was just looking through the future Ravnica guild decks that thefiremind posted and came across Hero of Bladehold in what looks to be the Selesnya deck (DECK_0016_ST). Here's the relevant code:
- Code: Select all
<TRIGGERED_ABILITY auto_skip="1" filter_zone="ZONE_IN_PLAY">
<LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Whenever Hero of Bladehold attacks, put two 1/1 white Soldier creature tokens onto the battlefield tapped and attacking.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[À chaque fois que l’Héroïne de Fortcoutel attaque, mettez sur le champ de bataille deux jetons de créature 1/1 blanche Soldat, engagés et attaquants.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Siempre que el Héroe de Fortaleza del Filo ataque, pon en el campo de batalla dos fichas de criatura Soldado blancas 1/1 giradas y atacando.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Immer wenn der Held der Klingenfeste angreift, bringe zwei 1/1 weiße Soldat-Kreaturenspielsteine getappt und angreifend ins Spiel.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Ogniqualvolta l’Eroina di Rifugio delle Lame attacca, metti sul campo di battaglia due pedine creatura Soldato 1/1 bianche TAPpate e attaccanti.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[刃砦の英雄が攻撃するたび、タップ状態で攻撃している白の1/1の兵士・クリーチャー・トークンを2体戦場に出す。]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[블레이드홀드의 영웅이 공격할 때마다, 1/1 백색 병사 생물 토큰 두 개를 탭되어 공격하고 있는 채로 전장에 놓는다.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[Каждый раз, когда Герой Блэйдхолда атакует, положите на поле битвы две фишки существа 1/1 белый Солдат повернутыми и атакующими.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[Toda vez que Herói de Bladehold atacar, coloque no campo de batalha duas fichas de criatura brancas 1/1 do tipo Soldado viradas e atacando.]]></LOCALISED_TEXT>
<TRIGGER value="ATTACKING" simple_qualifier="self" />
<TARGET_DEFINITION id="0">
local filter = Object():GetFilter()
filter:Clear()
filter:SetOwner( EffectController() )
filter:SetFilterType( FILTER_TYPE_PLAYERS + FILTER_TYPE_OPPONENTS)
filter:SetHint( HINT_ENEMY_ONLY, EffectController() )
filter:NotTargetted()
</TARGET_DEFINITION>
<RESOLUTION_TIME_ACTION>
EffectController():ChooseTarget( 0, "CARD_QUERY_CHOOSE_PLAYER_TO_SOLDIER", EffectDC():Make_Targets(0) )
</RESOLUTION_TIME_ACTION>
<RESOLUTION_TIME_ACTION>
EffectController():ChooseTarget( 0, "CARD_QUERY_CHOOSE_PLAYER_TO_SOLDIER", EffectDC():Make_Targets(1) )
</RESOLUTION_TIME_ACTION>
<RESOLUTION_TIME_ACTION>
local player_a = EffectDC():Get_Targets(0):Get_PlayerPtr(0)
local player_b = EffectDC():Get_Targets(1):Get_PlayerPtr(0)
MTG():PutTokensIntoPlayTappedAndAttacking( "TOKEN_SOLDIER_1_1_300248", 1, EffectController(), player_a )
MTG():PutTokensIntoPlayTappedAndAttacking( "TOKEN_SOLDIER_1_1_300248", 1, EffectController(), player_b )
</RESOLUTION_TIME_ACTION>
</TRIGGERED_ABILITY>
<TOKEN_REGISTRATION reservation="1" type="TOKEN_SOLDIER_1_1_300248" />
- BlindWillow
- Posts: 213
- Joined: 19 Jul 2012, 00:26
- Has thanked: 11 times
- Been thanked: 46 times
7 posts
• Page 1 of 1
Who is online
Users browsing this forum: No registered users and 3 guests