Board index
Programs with AI or Rules Enforcement
Magic: The Gathering - Duels of the Planeswalkers
New MTG Cards and Decks (2010, 2012, 2013, 2014, 2015, Magic Duels)
2014




Formal Request Thread
Moderator: CCGHQ Admins
Re: Formal Request Thread
by sumomole » 15 Dec 2013, 17:01
I remember this problem exists in 2012 (or 2013, I can't remember), but 2014 has no problem.RiiakShiNal wrote:You may have issues trying to get Staff of Domination to work simply because I think the upper limit on simultaneous usable activated abilities on a card is 4 and Staff of Domination needs 5. All of the abilities on Staff of Domination are obviously possible to make though (they are all pretty simple). You may be able to fake it by combining two abilities into a single activated ability with a MODE that uses CanPayManaCost() and PayManaCost() to get around the limit for number of usable activated abilities.

-
sumomole - Programmer
- Posts: 611
- Joined: 07 Jun 2011, 08:34
- Has thanked: 51 times
- Been thanked: 234 times
Re: Formal Request Thread
by NeoAnderson » 15 Dec 2013, 17:05
I just made the first one :Deadpoolmtg wrote:Hi guys, me again.
Can someone code these cards?
Goblin Welder
Metalworker
Kuldotha Forgemaster
Staff of Domination
Gamble
Sphere of Resistance
Spellskite(Not necessary, but usable)
With them MUD(Metalworker) will be possible to play![]()
(Sorry for the consecutive/massive requests)
- Goblin Welder | Open
- Code: Select all
<?xml version='1.0' encoding='UTF-8'?>
<CARD_V2 ExportVersion="1">
<FILENAME text="GOBLIN_WELDER_13001" />
<CARDNAME text="GOBLIN_WELDER" />
<TITLE>
<LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Goblin Welder]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Goblin Welder]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Goblin Welder]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Goblin Welder]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Goblin Welder]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[Goblin Welder]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[Goblin Welder]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[Goblin Welder]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[Goblin Welder]]></LOCALISED_TEXT>
</TITLE>
<MULTIVERSEID value="13001" />
<ARTID value="13001" />
<ARTIST name="Scott M. Fischer" />
<CASTING_COST cost="{R}" />
<FLAVOURTEXT>
<LOCALISED_TEXT LanguageCode="en-US"><![CDATA[“I wrecked your metal guy, boss. But look I made you an ashtray.”]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[“I wrecked your metal guy, boss. But look I made you an ashtray.”]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[“I wrecked your metal guy, boss. But look I made you an ashtray.”]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[“I wrecked your metal guy, boss. But look I made you an ashtray.”]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[“I wrecked your metal guy, boss. But look I made you an ashtray.”]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[“I wrecked your metal guy, boss. But look I made you an ashtray.”]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[“I wrecked your metal guy, boss. But look I made you an ashtray.”]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[“I wrecked your metal guy, boss. But look I made you an ashtray.”]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[“I wrecked your metal guy, boss. But look I made you an ashtray.”]]></LOCALISED_TEXT>
</FLAVOURTEXT>
<TYPE metaname="Creature" />
<SUB_TYPE metaname="Goblin" />
<SUB_TYPE metaname="Artificer" />
<EXPANSION value="GU" />
<RARITY metaname="R" />
<POWER value="1" />
<TOUGHNESS value="1" />
<ACTIVATED_ABILITY>
<LOCALISED_TEXT LanguageCode="en-US"><![CDATA[{T}: Choose target artifact a player controls and target artifact card in that player’s graveyard. If both targets are still legal as this ability resolves, that player simultaneously sacrifices the artifact and returns the artifact card to the battlefield.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[{T}: Choose target artifact a player controls and target artifact card in that player’s graveyard. If both targets are still legal as this ability resolves, that player simultaneously sacrifices the artifact and returns the artifact card to the battlefield.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[{T}: Choose target artifact a player controls and target artifact card in that player’s graveyard. If both targets are still legal as this ability resolves, that player simultaneously sacrifices the artifact and returns the artifact card to the battlefield.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[{T}: Choose target artifact a player controls and target artifact card in that player’s graveyard. If both targets are still legal as this ability resolves, that player simultaneously sacrifices the artifact and returns the artifact card to the battlefield.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[{T}: Scegli un artefatto bersaglio controllato da un giocatore e una carta artefatto bersaglio nel cimitero di quel giocatore. Se entrambi i bersagli sono ancora legali quando questa abilità si risolve, quel giocatore simultaneamente sacrifica l’artefatto e rimette nel campo di battaglia la carta artefatto.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[{T}: Choose target artifact a player controls and target artifact card in that player’s graveyard. If both targets are still legal as this ability resolves, that player simultaneously sacrifices the artifact and returns the artifact card to the battlefield.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[{T}: Choose target artifact a player controls and target artifact card in that player’s graveyard. If both targets are still legal as this ability resolves, that player simultaneously sacrifices the artifact and returns the artifact card to the battlefield.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[{T}: Choose target artifact a player controls and target artifact card in that player’s graveyard. If both targets are still legal as this ability resolves, that player simultaneously sacrifices the artifact and returns the artifact card to the battlefield.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[{T}: Choose target artifact a player controls and target artifact card in that player’s graveyard. If both targets are still legal as this ability resolves, that player simultaneously sacrifices the artifact and returns the artifact card to the battlefield.]]></LOCALISED_TEXT>
<COST type="TapSelf" />
<RESOLUTION_TIME_ACTION>
local filter = ClearFilter()
filter:Add( FE_TYPE, OP_IS, CARD_TYPE_ARTIFACT )
filter:SetZone( ZONE_BATTLEFIELD )
EffectController():ChooseItem( "CARD_QUERY_CHOOSE_ARTIFACT_TO_SACRIFICE", EffectDC():Make_Targets(0) )
</RESOLUTION_TIME_ACTION>
<RESOLUTION_TIME_ACTION>
local filter = ClearFilter()
local oArtifact = EffectDC():Get_Targets(0) and EffectDC():Get_Targets(0):Get_CardPtr(0)
if oArtifact ~= nil then
local oPlayer = oArtifact:GetController()
if oPlayer ~= nil then
filter:Add(FE_TYPE, OP_IS, CARD_TYPE_ARTIFACT)
filter:SetZone( ZONE_GRAVEYARD, oPlayer )
EffectController():ChooseItem( "CARD_QUERY_CHOOSE_ARTIFACT_TO_PUT_ONTO_BATTLEFIELD", EffectDC():Make_Targets(1) )
end
end
</RESOLUTION_TIME_ACTION>
<RESOLUTION_TIME_ACTION>
local target = EffectDC():Get_Targets(0) and EffectDC():Get_Targets(0):Get_CardPtr(0)
local secondtarget = EffectDC():Get_Targets(1) and EffectDC():Get_Targets(1):Get_CardPtr(0)
if target ~= nil and secondtarget ~= nil then
local delayDC = EffectDC():Make_Chest(1)
delayDC:Set_CardPtr(0, target)
delayDC:Protect_CardPtr(0)
delayDC:Set_CardPtr(1, secondtarget)
delayDC:Protect_CardPtr(1)
MTG():CreateDelayedTrigger(1, delayDC)
end
</RESOLUTION_TIME_ACTION>
</ACTIVATED_ABILITY>
<TRIGGERED_ABILITY resource_id="1">
<TRIGGER value="ABILITY_RESOLVED">
local target = EffectDC():Get_CardPtr(0)
local secondtarget = EffectDC():Get_CardPtr(1)
local oController = target:GetController()
if TriggerObject() == EffectSource() and target ~= nil and secondtarget ~= nil and oController ~= nil then
return true
else
return false
end
</TRIGGER>
<CLEANUP fire_once="1" />
<RESOLUTION_TIME_ACTION>
local target = EffectDC():Get_CardPtr(0)
local secondtarget = EffectDC():Get_CardPtr(1)
local oController = target:GetController()
if target ~= nil and secondtarget ~= nil and EffectController() ~= nil and oController ~= nil then
oController:Sacrifice( target )
secondtarget:PutOntoBattlefield( oController )
end
</RESOLUTION_TIME_ACTION>
</TRIGGERED_ABILITY>
<SFX text="COMBAT_BLUNT_LARGE_ATTACK" power_boundary_min="4" power_boundary_max="-1" />
<SFX text="COMBAT_BLUNT_SMALL_ATTACK" power_boundary_min="1" power_boundary_max="3" />
</CARD_V2>
GOBLIN_WELDER_13001.zip
- Card XML + TDX
- (579.02 KiB) Downloaded 281 times
I can confirm what sumomole said i have a test card Chrome mox boost with 10 activable abilities.sumomole wrote:I remember this problem exists in 2012 (or 2013, I can't remember), but 2014 has no problem.RiiakShiNal wrote:You may have issues trying to get Staff of Domination to work simply because I think the upper limit on simultaneous usable activated abilities on a card is 4 and Staff of Domination needs 5. All of the abilities on Staff of Domination are obviously possible to make though (they are all pretty simple). You may be able to fake it by combining two abilities into a single activated ability with a MODE that uses CanPayManaCost() and PayManaCost() to get around the limit for number of usable activated abilities.
- NeoAnderson
- Posts: 914
- Joined: 10 Sep 2013, 07:49
- Has thanked: 18 times
- Been thanked: 139 times
Re: Formal Request Thread
by sumomole » 15 Dec 2013, 17:38
Goblin Welder's ability has two targets, you have to use TARGET_DEFINITION rather than RESOLUTION_TIME_ACTION to choose them. I think this is a simple effect that dosen't need delay triggered ability, you can put Sacrificeand and PutOntoBattlefield in activated ability.NeoAnderson wrote:I just made the first one :
PS: I think you understand the meaning of dependency="1". if not, look CONE_OF_FLAME_337849.XML and EVANGELIZE_365873.XML.
- untested | Open
- Code: Select all
<ACTIVATED_ABILITY>
<LOCALISED_TEXT LanguageCode="en-US"><![CDATA[{T}: Choose target artifact a player controls and target artifact card in that player’s graveyard. If both targets are still legal as this ability resolves, that player simultaneously sacrifices the artifact and returns the artifact card to the battlefield.]]></LOCALISED_TEXT>
<COST type="TapSelf" />
<TARGET tag="CARD_QUERY_CHOOSE_ARTIFACT_TO_SACRIFICE" definition="0" compartment="0" count="1" dependency="1" />
<TARGET tag="CARD_QUERY_CHOOSE_ARTIFACT_TO_PUT_ONTO_BATTLEFIELD" definition="1" compartment="1" count="1" />
<TARGET_DEFINITION id="0">
local filter = ClearFilter()
filter:Add( FE_TYPE, OP_IS, CARD_TYPE_ARTIFACT )
</TARGET_DEFINITION>
<TARGET_DEFINITION id="1">
local filter = ClearFilter()
filter:SetZone( ZONE_GRAVEYARD )
filter:Add( FE_TYPE, OP_IS, CARD_TYPE_ARTIFACT )
local first_card = EffectDC():Get_Targets(0):Get_CardPtr(0)
if first_card ~= nil then
filter:Add( FE_OWNER, OP_IS, first_card:GetPlayer() )
end
</TARGET_DEFINITION>
<RESOLUTION_TIME_ACTION>
local first_target = EffectDC():Get_Targets(0):Get_CardPtr(0)
local second_target = EffectDC():Get_Targets(1):Get_CardPtr(0)
if first_target ~= nil and second_target ~= nil then
EffectController():Sacrifice( first_target )
second_target:PutOntoBattlefield( EffectController() )
end
</RESOLUTION_TIME_ACTION>
</ACTIVATED_ABILITY>
-
sumomole - Programmer
- Posts: 611
- Joined: 07 Jun 2011, 08:34
- Has thanked: 51 times
- Been thanked: 234 times
Re: Formal Request Thread
by NeoAnderson » 15 Dec 2013, 18:26
Thanks Sumomole,sumomole wrote:Goblin Welder's ability has two targets, you have to use TARGET_DEFINITION rather than RESOLUTION_TIME_ACTION to choose them. I think this is a simple effect that dosen't need delay triggered ability, you can put Sacrificeand and PutOntoBattlefield in activated ability.NeoAnderson wrote:I just made the first one :
PS: I think you understand the meaning of dependency="1". if not, look CONE_OF_FLAME_337849.XML and EVANGELIZE_365873.XML.
- untested | Open
- Code: Select all
<ACTIVATED_ABILITY>
<LOCALISED_TEXT LanguageCode="en-US"><![CDATA[{T}: Choose target artifact a player controls and target artifact card in that player’s graveyard. If both targets are still legal as this ability resolves, that player simultaneously sacrifices the artifact and returns the artifact card to the battlefield.]]></LOCALISED_TEXT>
<COST type="TapSelf" />
<TARGET tag="CARD_QUERY_CHOOSE_ARTIFACT_TO_SACRIFICE" definition="0" compartment="0" count="1" dependency="1" />
<TARGET tag="CARD_QUERY_CHOOSE_ARTIFACT_TO_PUT_ONTO_BATTLEFIELD" definition="1" compartment="1" count="1" />
<TARGET_DEFINITION id="0">
local filter = ClearFilter()
filter:Add( FE_TYPE, OP_IS, CARD_TYPE_ARTIFACT )
</TARGET_DEFINITION>
<TARGET_DEFINITION id="1">
local filter = ClearFilter()
filter:SetZone( ZONE_GRAVEYARD )
filter:Add( FE_TYPE, OP_IS, CARD_TYPE_ARTIFACT )
local first_card = EffectDC():Get_Targets(0):Get_CardPtr(0)
if first_card ~= nil then
filter:Add( FE_OWNER, OP_IS, first_card:GetPlayer() )
end
</TARGET_DEFINITION>
<RESOLUTION_TIME_ACTION>
local first_target = EffectDC():Get_Targets(0):Get_CardPtr(0)
local second_target = EffectDC():Get_Targets(1):Get_CardPtr(0)
if first_target ~= nil and second_target ~= nil then
EffectController():Sacrifice( first_target )
second_target:PutOntoBattlefield( EffectController() )
end
</RESOLUTION_TIME_ACTION>
</ACTIVATED_ABILITY>
Yeah you're right i think Target definition will be more compliant to the card ability.
But i am not sure about the other part.
- Code: Select all
filter:Add( FE_TYPE, OP_IS, CARD_TYPE_ARTIFACT )
local first_card = EffectDC():Get_Targets(0):Get_CardPtr(0)
if first_card ~= nil then
filter:Add( FE_OWNER, OP_IS, first_card:GetPlayer() )
2. I use a delayed trigger just because the ability text says "If both targets are still legal as this ability resolves," For this reason i made the trigger so when the ability resolve the trigger can apply the effect. I think should be different if you consider an ability going to resolve and whe an ability resolve.
3. About Target Dependency it should be linked to the indexed target right?
4. I also made Metalworker :
- Metalworker | Open
- Code: Select all
<?xml version='1.0' encoding='UTF-8'?>
<CARD_V2 ExportVersion="1">
<FILENAME text="METALWORKER_15246" />
<CARDNAME text="METALWORKER" />
<TITLE>
<LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Metalworker]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Metalworker]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Metalworker]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Metalworker]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Metalworker]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[Metalworker]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[Metalworker]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[Metalworker]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[Metalworker]]></LOCALISED_TEXT>
</TITLE>
<MULTIVERSEID value="15246" />
<ARTID value="15246" />
<ARTIST name="Hazeltine" />
<CASTING_COST cost="{3}" />
<FLAVOURTEXT>
<LOCALISED_TEXT LanguageCode="en-US"><![CDATA[“At this rate I fully expect to be replaced by a clockwork golem by year’s end.”
—Barrin]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[“At this rate I fully expect to be replaced by a clockwork golem by year’s end.”
—Barrin]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[“At this rate I fully expect to be replaced by a clockwork golem by year’s end.”
—Barrin]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[“At this rate I fully expect to be replaced by a clockwork golem by year’s end.”
—Barrin]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[“At this rate I fully expect to be replaced by a clockwork golem by year’s end.”
—Barrin]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[“At this rate I fully expect to be replaced by a clockwork golem by year’s end.”
—Barrin]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[“At this rate I fully expect to be replaced by a clockwork golem by year’s end.”
—Barrin]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[“At this rate I fully expect to be replaced by a clockwork golem by year’s end.”
—Barrin]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[“At this rate I fully expect to be replaced by a clockwork golem by year’s end.”
—Barrin]]></LOCALISED_TEXT>
</FLAVOURTEXT>
<TYPE metaname="Artifact" />
<TYPE metaname="Creature" />
<SUB_TYPE metaname="Construct" />
<EXPANSION value="CG" />
<RARITY metaname="R" />
<POWER value="1" />
<TOUGHNESS value="2" />
<ACTIVATED_ABILITY>
<LOCALISED_TEXT LanguageCode="en-US"><![CDATA[{T}: Reveal any number of artifact cards in your hand. Add {2} to your mana pool for each card revealed this way.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[{T}: Reveal any number of artifact cards in your hand. Add {2} to your mana pool for each card revealed this way.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[{T}: Reveal any number of artifact cards in your hand. Add {2} to your mana pool for each card revealed this way.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[{T}: Reveal any number of artifact cards in your hand. Add {2} to your mana pool for each card revealed this way.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[{T}: Rivela un qualsiasi numero di carte artefatto dalla tua mano. Aggiungi {2} alla tua riserva di mana per ogni carta rivelata in questo modo.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[{T}: Reveal any number of artifact cards in your hand. Add {2} to your mana pool for each card revealed this way.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[{T}: Reveal any number of artifact cards in your hand. Add {2} to your mana pool for each card revealed this way.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[{T}: Reveal any number of artifact cards in your hand. Add {2} to your mana pool for each card revealed this way.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[{T}: Reveal any number of artifact cards in your hand. Add {2} to your mana pool for each card revealed this way.]]></LOCALISED_TEXT>
<COST type="TapSelf" />
<RESOLUTION_TIME_ACTION>
local filter = ClearFilter()
filter:Add( FE_TYPE, OP_IS, CARD_TYPE_ARTIFACT )
filter:SetZone( ZONE_HAND, EffectController() )
local oNumArtifacts = filter:Count()
EffectController():SetItemCount( oNumArtifacts )
for i = 0, (oNumArtifacts - 1) do
EffectController():SetItemPrompt(i, "CARD_QUERY_CHOOSE_CARD_TO_REVEAL" )
end
EffectController():ChooseItems( EffectDC():Make_Targets(0), QUERY_FLAG_UP_TO )
</RESOLUTION_TIME_ACTION>
<RESOLUTION_TIME_ACTION>
local oTargets = EffectDC():Get_Targets(0):Count()
local player = EffectController()
if player ~= nil then
for i = 0, (oTargets - 1) do
local card = EffectDC():Get_Targets(0) and EffectDC():Get_Targets(0):Get_CardPtr(i)
if card ~= nil then
card:Reveal()
end
end
end
</RESOLUTION_TIME_ACTION>
<PLAY_TIME_ACTION>
RSN_MarkManaAbilityStart()
</PLAY_TIME_ACTION>
<RESOLUTION_TIME_ACTION>
local oTargets = EffectDC():Get_Targets(0):Count()
if (EffectSource() ~= nil ) and oTargets > 0 then
local oManatoAdd = oTargets*2
RSN_ProduceNoTrigger( "{1}", oManatoAdd )
end
</RESOLUTION_TIME_ACTION>
<RESOLUTION_TIME_ACTION>
RSN_EliminateExtraManaTokens()
</RESOLUTION_TIME_ACTION>
<RESOLUTION_TIME_ACTION>
S_DisplayManaPool(EffectController())
RSN_MarkManaAbilityEnd()
</RESOLUTION_TIME_ACTION>
</ACTIVATED_ABILITY>
<TOKEN_REGISTRATION reservation="1" type="RSN_TOKEN_MANA_C" />
<SFX text="COMBAT_BLUNT_LARGE_ATTACK" power_boundary_min="4" power_boundary_max="-1" />
<SFX text="COMBAT_BLUNT_SMALL_ATTACK" power_boundary_min="1" power_boundary_max="3" />
</CARD_V2>
METALWORKER_15246.zip
- Card XML + TDX
- (396.31 KiB) Downloaded 265 times
Last edited by NeoAnderson on 15 Dec 2013, 18:55, edited 1 time in total.
- NeoAnderson
- Posts: 914
- Joined: 10 Sep 2013, 07:49
- Has thanked: 18 times
- Been thanked: 139 times
Re: Formal Request Thread
by RiiakShiNal » 15 Dec 2013, 18:51
I could have sworn I saw a problem with the number of activated abilities in DotP 2014, though maybe the problem I encountered had some other conditions to it. Regardless, if you have been able to get 10 activated abilities to work then there should be no problem with making Staff of Domination.NeoAnderson wrote:I can confirm what sumomole said i have a test card Chrome mox boost with 10 activable abilities.sumomole wrote:I remember this problem exists in 2012 (or 2013, I can't remember), but 2014 has no problem.
It should not be a delayed trigger the text there just means that at the beginning of the RESOLUTION_TIME_ACTION you need to check to make sure that both targets are still valid (not nil) then sacrifice and return to the battlefield all in the same action (same action is as close to simultaneous as we can get). So it is better not to use a delayed trigger here.NeoAnderson wrote:2. I use a delayed trigger just because the ability text says "If both targets are still legal as this ability resolves," For this reason i made the trigger so when the ability resolve the trigger can apply the effect. I think should be different if you consider an ability going to resolve and whe an ability resolve.
Just getting started: Xander9009's DotP 2014 Community Wad
Need a deck builder: DotP 2014 Deck Builder
Problems Modding: DotP 2014 Frequent Modding Mistakes
Need a deck builder: DotP 2014 Deck Builder
Problems Modding: DotP 2014 Frequent Modding Mistakes
- RiiakShiNal
- Programmer
- Posts: 2188
- Joined: 16 May 2011, 21:37
- Has thanked: 75 times
- Been thanked: 497 times
Re: Formal Request Thread
by NeoAnderson » 15 Dec 2013, 19:02
Yeah should be easy to make it. The abilities are not complex.RiiakShiNal wrote:I could have sworn I saw a problem with the number of activated abilities in DotP 2014, though maybe the problem I encountered had some other conditions to it. Regardless, if you have been able to get 10 activated abilities to work then there should be no problem with making Staff of Domination.NeoAnderson wrote:I can confirm what sumomole said i have a test card Chrome mox boost with 10 activable abilities.sumomole wrote:I remember this problem exists in 2012 (or 2013, I can't remember), but 2014 has no problem.
Ok thanks guys, for the clarification, i made it so just to be sure, sometimes the MTG text is a bit ambiguous.RiiakShiNal wrote:It should not be a delayed trigger the text there just means that at the beginning of the RESOLUTION_TIME_ACTION you need to check to make sure that both targets are still valid (not nil) then sacrifice and return to the battlefield all in the same action (same action is as close to simultaneous as we can get). So it is better not to use a delayed trigger here.NeoAnderson wrote:2. I use a delayed trigger just because the ability text says "If both targets are still legal as this ability resolves," For this reason i made the trigger so when the ability resolve the trigger can apply the effect. I think should be different if you consider an ability going to resolve and whe an ability resolve.
Here there is the revised version :
- Goblin Welder | Open
- Code: Select all
<?xml version='1.0' encoding='UTF-8'?>
<CARD_V2 ExportVersion="1">
<FILENAME text="GOBLIN_WELDER_13001" />
<CARDNAME text="GOBLIN_WELDER" />
<TITLE>
<LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Goblin Welder]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Goblin Welder]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Goblin Welder]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Goblin Welder]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Goblin Welder]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[Goblin Welder]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[Goblin Welder]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[Goblin Welder]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[Goblin Welder]]></LOCALISED_TEXT>
</TITLE>
<MULTIVERSEID value="13001" />
<ARTID value="13001" />
<ARTIST name="Scott M. Fischer" />
<CASTING_COST cost="{R}" />
<FLAVOURTEXT>
<LOCALISED_TEXT LanguageCode="en-US"><![CDATA[“I wrecked your metal guy, boss. But look I made you an ashtray.”]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[“I wrecked your metal guy, boss. But look I made you an ashtray.”]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[“I wrecked your metal guy, boss. But look I made you an ashtray.”]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[“I wrecked your metal guy, boss. But look I made you an ashtray.”]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[“I wrecked your metal guy, boss. But look I made you an ashtray.”]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[“I wrecked your metal guy, boss. But look I made you an ashtray.”]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[“I wrecked your metal guy, boss. But look I made you an ashtray.”]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[“I wrecked your metal guy, boss. But look I made you an ashtray.”]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[“I wrecked your metal guy, boss. But look I made you an ashtray.”]]></LOCALISED_TEXT>
</FLAVOURTEXT>
<TYPE metaname="Creature" />
<SUB_TYPE metaname="Goblin" />
<SUB_TYPE metaname="Artificer" />
<EXPANSION value="GU" />
<RARITY metaname="R" />
<POWER value="1" />
<TOUGHNESS value="1" />
<ACTIVATED_ABILITY>
<LOCALISED_TEXT LanguageCode="en-US"><![CDATA[{T}: Choose target artifact a player controls and target artifact card in that player’s graveyard. If both targets are still legal as this ability resolves, that player
simultaneously sacrifices the artifact and returns the artifact card to the battlefield.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[{T}: Choose target artifact a player controls and target artifact card in that player’s graveyard. If both targets are still legal as this ability resolves, that player
simultaneously sacrifices the artifact and returns the artifact card to the battlefield.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[{T}: Choose target artifact a player controls and target artifact card in that player’s graveyard. If both targets are still legal as this ability resolves, that player
simultaneously sacrifices the artifact and returns the artifact card to the battlefield.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[{T}: Choose target artifact a player controls and target artifact card in that player’s graveyard. If both targets are still legal as this ability resolves, that player
simultaneously sacrifices the artifact and returns the artifact card to the battlefield.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[{T}: Scegli un artefatto bersaglio controllato da un giocatore e una carta artefatto bersaglio nel cimitero di quel giocatore. Se entrambi i bersagli sono ancora legali
quando questa abilità si risolve, quel giocatore simultaneamente sacrifica l’artefatto e rimette nel campo di battaglia la carta artefatto.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[{T}: Choose target artifact a player controls and target artifact card in that player’s graveyard. If both targets are still legal as this ability resolves, that player
simultaneously sacrifices the artifact and returns the artifact card to the battlefield.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[{T}: Choose target artifact a player controls and target artifact card in that player’s graveyard. If both targets are still legal as this ability resolves, that player
simultaneously sacrifices the artifact and returns the artifact card to the battlefield.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[{T}: Choose target artifact a player controls and target artifact card in that player’s graveyard. If both targets are still legal as this ability resolves, that player
simultaneously sacrifices the artifact and returns the artifact card to the battlefield.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[{T}: Choose target artifact a player controls and target artifact card in that player’s graveyard. If both targets are still legal as this ability resolves, that player
simultaneously sacrifices the artifact and returns the artifact card to the battlefield.]]></LOCALISED_TEXT>
<COST type="TapSelf" />
<TARGET tag="CARD_QUERY_CHOOSE_ARTIFACT_TO_SACRIFICE" definition="0" compartment="0" count="1" dependency="1" />
<TARGET tag="CARD_QUERY_CHOOSE_ARTIFACT_TO_PUT_ONTO_BATTLEFIELD" definition="1" compartment="1" count="1" />
<TARGET_DEFINITION id="0">
local filter = ClearFilter()
filter:Add( FE_TYPE, OP_IS, CARD_TYPE_ARTIFACT )
</TARGET_DEFINITION>
<TARGET_DEFINITION id="1">
local filter = ClearFilter()
local oArtifact = EffectDC():Get_Targets(0) and EffectDC():Get_Targets(0):Get_CardPtr(0)
if oArtifact ~= nil then
local oPlayer = oArtifact:GetController()
if oPlayer ~= nil then
filter:Add(FE_TYPE, OP_IS, CARD_TYPE_ARTIFACT)
filter:SetZone( ZONE_GRAVEYARD, oPlayer )
end
end
</TARGET_DEFINITION>
<RESOLUTION_TIME_ACTION>
local target = EffectDC():Get_Targets(0) and EffectDC():Get_Targets(0):Get_CardPtr(0)
local secondtarget = EffectDC():Get_Targets(1) and EffectDC():Get_Targets(1):Get_CardPtr(0)
local oController = target:GetController()
if target ~= nil and secondtarget ~= nil and EffectController() ~= nil and oController ~= nil then
oController:Sacrifice( target )
secondtarget:PutOntoBattlefield( oController )
end
</RESOLUTION_TIME_ACTION>
</ACTIVATED_ABILITY>
<SFX text="COMBAT_BLUNT_LARGE_ATTACK" power_boundary_min="4" power_boundary_max="-1" />
<SFX text="COMBAT_BLUNT_SMALL_ATTACK" power_boundary_min="1" power_boundary_max="3" />
</CARD_V2>
GOBLIN_WELDER_13001.zip
- Card Revised + TDX
- (578.84 KiB) Downloaded 258 times
- NeoAnderson
- Posts: 914
- Joined: 10 Sep 2013, 07:49
- Has thanked: 18 times
- Been thanked: 139 times
Re: Formal Request Thread
by NeoAnderson » 15 Dec 2013, 19:21
Another requested card by Deadpoolmtg
TESTED :
Another card requested Gamble
Here the part of the code of the first version :
Another card requested Sphere of Resistance
- Kuldotha Forgemaster | Open
- Code: Select all
<?xml version='1.0' encoding='UTF-8'?>
<CARD_V2 ExportVersion="1">
<FILENAME text="KULDOTHA_FORGEMASTER_215098" />
<CARDNAME text="KULDOTHA_FORGEMASTER" />
<TITLE>
<LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Kuldotha Forgemaster]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Maître-forgeron de Kuldotha]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Maestro de fragua de Kuldotha]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Kuldotha-Schmiedemeister]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Mastro Forgiatore di Kuldotha]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[カルドーサの鍛冶場主]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[Kuldotha Forgemaster]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[Хозяин Кулдотской Кузницы]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[Mestre de Forja de Kuldotha]]></LOCALISED_TEXT>
</TITLE>
<MULTIVERSEID value="215098" />
<ARTID value="215098" />
<ARTIST name="jD" />
<CASTING_COST cost="{5}" />
<FLAVOURTEXT>
<LOCALISED_TEXT LanguageCode="en-US"><![CDATA[The goblins say it used to be larger, before it began to stoke the Great Furnace with pieces of itself.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Les gobelins affirment qu’il était autrefois plus grand, puis il a commencé à alimenter le Grand Fourneau avec ses propres pièces.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Los trasgos dicen que antes era más grande, antes de alimentar el Gran Horno con piezas de sí mismo.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Die Goblins behaupten, er sei früher größer gewesen, bevor er angefangen hat, die Große Schmelze mit Stücken von sich anzuheizen.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[I goblin dicono che un tempo fosse più grande, prima di iniziare ad alimentare la Grande Fornace con i suoi pezzi.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[ゴブリンが言うには、こいつはかつてもっと大きかったが、それも自分の部品を大焼炉にくべるまでのことだった。]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[The goblins say it used to be larger, before it began to stoke the Great Furnace with pieces of itself.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[Гоблины говорят, что он был еще больше, пока не начал топить Великое Горнило кусками самого себя.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[Os goblins dizem que ele costumava ser maior, antes que começasse a alimentar a Grande Fornalha com pedaços dele mesmo.]]></LOCALISED_TEXT>
</FLAVOURTEXT>
<TYPE metaname="Artifact" />
<TYPE metaname="Creature" />
<SUB_TYPE metaname="Construct" />
<EXPANSION value="SOM" />
<RARITY metaname="R" />
<POWER value="3" />
<TOUGHNESS value="5" />
<ACTIVATED_ABILITY>
<LOCALISED_TEXT LanguageCode="en-US"><![CDATA[{T}, Sacrifice three artifacts: Search your library for an artifact card and put it onto the battlefield. Then shuffle your library.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[{T}, sacrifiez trois artefacts : Cherchez dans votre bibliothèque une carte d’artefact et mettez-la sur le champ de bataille. Mélangez ensuite votre bibliothèque.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[{T}, sacrificar tres artefactos: Busca en tu biblioteca una carta de artefacto y ponla en el campo de batalla. Luego baraja tu biblioteca.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[{T}, opfere drei Artefakte: Durchsuche deine Bibliothek nach einer Artefaktkarte und bringe sie ins Spiel. Mische danach deine Bibliothek.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[{T}, Sacrifica tre artefatti: Passa in rassegna il tuo grimorio per una carta artefatto e mettila sul campo di battaglia. Poi rimescola il tuo grimorio.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[{T}, アーティファクトを3つ生け贄に捧げる:あなたのライブラリーからアーティファクト・カードを1枚探し、それを戦場に出す。 その後あなたのライブラリーを切り直す。]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[{T}, Sacrifice three artifacts: Search your library for an artifact card and put it onto the battlefield. Then shuffle your library.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[{T}, пожертвуйте три артефакта: найдите в вашей библиотеке карту артефакта и положите ее на поле битвы. Затем перетасуйте вашу библиотеку.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[{T}, Sacrifique três artefatos: Procure um card de artefato em seu grimório e coloque-o no campo de batalha. Depois, embaralhe seu grimório.]]></LOCALISED_TEXT>
<COST type="TapSelf" />
<COST type="Sacrifice" definition="0" compartment="1" query_tag="CARD_QUERY_CHOOSE_ARTIFACT_TO_SACRIFICE" item_count="3" />
<COST_DEFINITION id="0">
local filter = ClearFilter()
filter:Add(FE_TYPE, OP_IS, CARD_TYPE_ARTIFACT)
</COST_DEFINITION>
<RESOLUTION_TIME_ACTION>
local filter = ClearFilter()
filter:Add(FE_TYPE, OP_IS, CARD_TYPE_ARTIFACT)
filter:SetZone(ZONE_LIBRARY, EffectController())
EffectController():ChooseItem( "CARD_QUERY_CHOOSE_ARTIFACT_TO_PUT_ONTO_BATTLEFIELD", EffectDC():Make_Targets(0) )
</RESOLUTION_TIME_ACTION>
<RESOLUTION_TIME_ACTION>
local target = EffectDC():Get_Targets(0) and EffectDC():Get_Targets(0):Get_CardPtr(0)
if target ~= nil then
target:PutOntoBattlefield( EffectController() )
end
</RESOLUTION_TIME_ACTION>
<RESOLUTION_TIME_ACTION>
EffectController():ShuffleLibrary()
</RESOLUTION_TIME_ACTION>
</ACTIVATED_ABILITY>
<SFX text="COMBAT_BLUNT_LARGE_ATTACK" power_boundary_min="4" power_boundary_max="-1" />
<SFX text="COMBAT_BLUNT_SMALL_ATTACK" power_boundary_min="1" power_boundary_max="3" />
</CARD_V2>
KULDOTHA_FORGEMASTER_215098.zip
- Card XML + TDX
- (514.05 KiB) Downloaded 324 times
TESTED :
- Staff of Domination TESTED | Open
- Code: Select all
<?xml version='1.0' encoding='UTF-8'?>
<CARD_V2 ExportVersion="1">
<FILENAME text="STAFF_OF_DOMINATION_50162" />
<CARDNAME text="STAFF_OF_DOMINATION" />
<TITLE>
<LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Staff of Domination]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Bâton de domination]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Bastón de dominación]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Stab des Beherrschens]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Bastone della Dominazione]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[威圧の杖]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[Staff of Domination]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[Staff of Domination]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[Cajado da Dominação]]></LOCALISED_TEXT>
</TITLE>
<MULTIVERSEID value="50162" />
<ARTID value="50162" />
<ARTIST name="Ben Thompson" />
<CASTING_COST cost="{3}" />
<TYPE metaname="Artifact" />
<EXPANSION value="5DN" />
<RARITY metaname="R" />
<ACTIVATED_ABILITY>
<LOCALISED_TEXT LanguageCode="en-US"><![CDATA[{1}: Untap Staff of Domination.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[{1} : Dégagez le Bâton de domination.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[{1}: Endereza el Bastón de dominación.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[{1}: Enttappe den Stab des Beherrschens.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[{1}: STAPpa il Bastone della Dominazione.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[{1}:威圧の杖をアンタップする。]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[{1}: Untap Staff of Domination.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[{1}: Untap Staff of Domination.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[{1}: Desvira Cajado da Dominação.]]></LOCALISED_TEXT>
<COST mana_cost="{1}" type="Mana" />
<RESOLUTION_TIME_ACTION>
if EffectSource() ~= nil then
EffectSource():Untap()
end
</RESOLUTION_TIME_ACTION>
</ACTIVATED_ABILITY>
<ACTIVATED_ABILITY>
<LOCALISED_TEXT LanguageCode="en-US"><![CDATA[{2}, {T}: You gain 1 life.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[{2}, {T} : Vous gagnez 1 point de vie.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[{2}, {T}: Ganas 1 vida.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[{2}, {T}: Du erhältst 1 Lebenspunkt dazu.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[{2}, {T}: Guadagni 1 punto vita.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[{2}, {T}:あなたは1点のライフを得る。]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[{2}, {T}: You gain 1 life.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[{2}, {T}: You gain 1 life.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[{2}, {T}: Você ganha 1 ponto de vida]]></LOCALISED_TEXT>
<COST mana_cost="{2}" type="Mana" />
<COST type="TapSelf" />
<RESOLUTION_TIME_ACTION>
if EffectSource() ~= nil and EffectController() ~= nil then
EffectController():GainLife(1)
end
</RESOLUTION_TIME_ACTION>
</ACTIVATED_ABILITY>
<ACTIVATED_ABILITY>
<LOCALISED_TEXT LanguageCode="en-US"><![CDATA[{3}, {T}: Untap target creature.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[{3}, {T} : Dégagez la créature ciblée.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[{3}, {T}: Endereza la criatura objetivo.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[{3}, {T}: Enttappe eine Kreatur deiner Wahl.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[{3}, {T}: STAPpa una creatura bersaglio.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[{3}, {T}:クリーチャー1体を対象とし、それをアンタップする。]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[{3}, {T}: Untap target creature.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[{3}, {T}: Untap target creature.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[{3}, {T}: Desvira a criatura alvo.]]></LOCALISED_TEXT>
<COST mana_cost="{3}" type="Mana" />
<COST type="TapSelf" />
<TARGET tag="CARD_QUERY_CHOOSE_CREATURE_UNTAP" definition="0" compartment="0" count="1" />
<TARGET_DEFINITION id="0">
local filter = ClearFilter()
filter:Add( FE_TYPE, OP_IS, CARD_TYPE_CREATURE )
</TARGET_DEFINITION>
<RESOLUTION_TIME_ACTION>
local target = EffectDC():Get_Targets(0) and EffectDC():Get_Targets(0):Get_CardPtr(0)
if target ~= nil then
target:Untap()
end
</RESOLUTION_TIME_ACTION>
</ACTIVATED_ABILITY>
<ACTIVATED_ABILITY>
<LOCALISED_TEXT LanguageCode="en-US"><![CDATA[{4}, {T}: Tap target creature.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[{4}, {T} : Engagez la créature ciblée.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[{4}, {T}: Gira la criatura objetivo.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[{4}, {T}: Tappe eine Kreatur deiner Wahl.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[{4}, {T}: TAPpa una creatura bersaglio.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[{4}, {T}:クリーチャー1体を対象とし、それをタップする。]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[{4}, {T}: Tap target creature.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[{4}, {T}: Tap target creature.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[{4}, {T}: Vira a criatura alvo.]]></LOCALISED_TEXT>
<COST mana_cost="{4}" type="Mana" />
<COST type="TapSelf" />
<TARGET tag="CARD_QUERY_CHOOSE_CREATURE_TAP" definition="0" compartment="0" count="1" />
<TARGET_DEFINITION id="0">
local filter = ClearFilter()
filter:Add( FE_TYPE, OP_IS, CARD_TYPE_CREATURE )
</TARGET_DEFINITION>
<RESOLUTION_TIME_ACTION>
local target = EffectDC():Get_Targets(0) and EffectDC():Get_Targets(0):Get_CardPtr(0)
if target ~= nil then
target:Tap()
end
</RESOLUTION_TIME_ACTION>
</ACTIVATED_ABILITY>
<ACTIVATED_ABILITY>
<LOCALISED_TEXT LanguageCode="en-US"><![CDATA[{5}, {T}: Draw a card.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[{5}, {T} : Piochez une carte.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[{5}, {T}: Roba una carta.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[{5}, {T}: Ziehe eine Karte.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[{5}, {T}: Pesca una carta.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[{5}, {T}:カードを1枚引く。]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[{5}, {T}: Draw a card.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[{5}, {T}: Draw a card.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[{5}, {T}: Compre um card.]]></LOCALISED_TEXT>
<COST mana_cost="{5}" type="Mana" />
<COST type="TapSelf" />
<RESOLUTION_TIME_ACTION>
if EffectSource() ~= nil and EffectController() ~= nil then
EffectController():DrawCards(1)
end
</RESOLUTION_TIME_ACTION>
</ACTIVATED_ABILITY>
</CARD_V2>
STAFF_OF_DOMINATION_50162.zip
- Card XML + TDX
- (565.86 KiB) Downloaded 254 times
Another card requested Gamble
- Gamble | Open
- Code: Select all
<?xml version='1.0' encoding='UTF-8'?>
<CARD_V2 ExportVersion="1">
<FILENAME text="GAMBLE_10654" />
<CARDNAME text="GAMBLE" />
<TITLE>
<LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Gamble]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Gamble]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Gamble]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Gamble]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Gamble]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[Gamble]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[Gamble]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[Gamble]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[Gamble]]></LOCALISED_TEXT>
</TITLE>
<MULTIVERSEID value="10654" />
<ARTID value="10654" />
<ARTIST name="Andrew Goldhawk" />
<CASTING_COST cost="{R}" />
<FLAVOURTEXT>
<LOCALISED_TEXT LanguageCode="en-US"><![CDATA[When you’ve got nothing, you might as well trade it for something else.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[When you’ve got nothing, you might as well trade it for something else.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[When you’ve got nothing, you might as well trade it for something else.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[When you’ve got nothing, you might as well trade it for something else.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[When you’ve got nothing, you might as well trade it for something else.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[When you’ve got nothing, you might as well trade it for something else.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[When you’ve got nothing, you might as well trade it for something else.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[When you’ve got nothing, you might as well trade it for something else.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[When you’ve got nothing, you might as well trade it for something else.]]></LOCALISED_TEXT>
</FLAVOURTEXT>
<TYPE metaname="Sorcery" />
<EXPANSION value="UZ" />
<RARITY metaname="R" />
<SPELL_ABILITY>
<LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Search your library for a card, put that card into your hand, discard a card at random, then shuffle your library.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Search your library for a card, put that card into your hand, discard a card at random, then shuffle your library.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Search your library for a card, put that card into your hand, discard a card at random, then shuffle your library.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Search your library for a card, put that card into your hand, discard a card at random, then shuffle your library.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Passa in rassegna il tuo grimorio per una carta, aggiungila alla tua mano, poi scarta una carta a caso. Poi rimescola il tuo grimorio.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[Search your library for a card, put that card into your hand, discard a card at random, then shuffle your library.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[Search your library for a card, put that card into your hand, discard a card at random, then shuffle your library.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[Search your library for a card, put that card into your hand, discard a card at random, then shuffle your library.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[Search your library for a card, put that card into your hand, discard a card at random, then shuffle your library.]]></LOCALISED_TEXT>
<RESOLUTION_TIME_ACTION>
local filter = ClearFilter()
filter:SetZone(ZONE_LIBRARY, EffectController())
EffectController():ChooseItem( "CARD_QUERY_TUTOR", EffectDC():Make_Targets(0) )
</RESOLUTION_TIME_ACTION>
<RESOLUTION_TIME_ACTION>
local target = EffectDC():Get_Targets(0) and EffectDC():Get_Targets(0):Get_CardPtr(0)
if target ~= nil then
target:PutInHand()
end
</RESOLUTION_TIME_ACTION>
<RESOLUTION_TIME_ACTION>
local filter = ClearFilter()
local player = EffectController()
filter:SetZone(ZONE_HAND, player)
filter:EvaluateObjects()
local target = filter:GetRandomEvaluatedObject()
if player ~= nil and target ~= nil then
target:Discard()
end
</RESOLUTION_TIME_ACTION>
<RESOLUTION_TIME_ACTION>
EffectController():ShuffleLibrary()
</RESOLUTION_TIME_ACTION>
</SPELL_ABILITY>
</CARD_V2>
Here the part of the code of the first version :
- Code: Select all
<RESOLUTION_TIME_ACTION>
local player = EffectController()
if player ~= nil then
player:DiscardRandomCard()
end
</RESOLUTION_TIME_ACTION>
GAMBLE_10654.zip
- Card XML + TDX
- (539.37 KiB) Downloaded 289 times
Another card requested Sphere of Resistance
- Sphere of Resistance | Open
- Code: Select all
<?xml version='1.0' encoding='UTF-8'?>
<CARD_V2 ExportVersion="1">
<FILENAME text="SPHERE_OF_RESISTANCE_6160" />
<CARDNAME text="SPHERE_OF_RESISTANCE" />
<TITLE>
<LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Sphere of Resistance]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Sphere of Resistance]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Sphere of Resistance]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Sphere of Resistance]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Sfera della resistenza]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[Sphere of Resistance]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[Sphere of Resistance]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[Sphere of Resistance]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[Sphere of Resistance]]></LOCALISED_TEXT>
</TITLE>
<MULTIVERSEID value="6160" />
<ARTID value="6160" />
<ARTIST name="Doug Chaffee" />
<CASTING_COST cost="{2}" />
<FLAVOURTEXT>
<LOCALISED_TEXT LanguageCode="en-US"><![CDATA[A sphere pushes equally in all directions.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[A sphere pushes equally in all directions.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[A sphere pushes equally in all directions.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[A sphere pushes equally in all directions.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[A sphere pushes equally in all directions.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[A sphere pushes equally in all directions.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[A sphere pushes equally in all directions.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[A sphere pushes equally in all directions.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[A sphere pushes equally in all directions.]]></LOCALISED_TEXT>
</FLAVOURTEXT>
<TYPE metaname="Artifact" />
<EXPANSION value="EX" />
<RARITY metaname="R" />
<TRIGGERED_ABILITY replacement_effect="1">
<LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Spells cost {1} more to cast.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Spells cost {1} more to cast.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Spells cost {1} more to cast.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Spells cost {1} more to cast.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Le magie costano {1} in più per essere lanciate.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[Spells cost {1} more to cast.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[Spells cost {1} more to cast.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[Spells cost {1} more to cast.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[Spells cost {1} more to cast.]]></LOCALISED_TEXT>
<TRIGGER value="CONSIDERED_FOR_CAST" pre_trigger="1" >
return TriggerObject():GetCardType():Test(CARD_TYPE_LAND) == false
</TRIGGER>
<RESOLUTION_TIME_ACTION>
if TriggerObject() ~= nil then
TriggerObject():IncreaseCost(1)
end
</RESOLUTION_TIME_ACTION>
</TRIGGERED_ABILITY>
</CARD_V2>
SPHERE_OF_RESISTANCE_6160.zip
- Card XML + TDX
- (561.01 KiB) Downloaded 241 times
- NeoAnderson
- Posts: 914
- Joined: 10 Sep 2013, 07:49
- Has thanked: 18 times
- Been thanked: 139 times
Re: Formal Request Thread
by NeoAnderson » 16 Dec 2013, 02:01
Riiak i was thinking about this situation and i would ask you some questions,RiiakShiNal wrote:I'm pretty sure Spellskite is not possible as I don't think there is any way to force a single target to become a specific card and I don't think there is any way to allow changing of only one target on a given spell. Obviously changing targets on abilities is not possible as we aren't even able to counter abilities much less mess with them.
1. The single target should be possible to change or i think so i have seen this card : Swerve it is coded and it is referred just to the spell who has a single target. Am i wrong?
2. Is completely tested that is not possible to change targets from abilities?
I was thinking about this solution but i really don't know if could work :
a. Using the triggers BECAME_TARGET_OF_ABILITY and BECAME_TARGET_OF_SPELL
These triggers return as secondary object the card or the spell who is targetting the card.
b. retrieve the datachest of secondary object with SecondaryObject():GetDataChest()
c. choose an item from the chest with ChooseItemFromDC
d. set the new target into this data chest saving the new pointer overwriting the ChoosedItemFromDC pointer.
Obviously if this idea could be realized there still some other things to adjust.
For example this is a trigger condition and make it work with an activated ability require to work with datachest.
Spellskite case, we use this trigger to save each targets and card who is targetting into an RSN_Object chest, when we activate the ability we retrieve the info of current targeted cards from the RSN_Object chest.
This is just an idea but i would know your opinion and also TheFireMind, Somomole, and other friends

- NeoAnderson
- Posts: 914
- Joined: 10 Sep 2013, 07:49
- Has thanked: 18 times
- Been thanked: 139 times
Re: Formal Request Thread
by RiiakShiNal » 16 Dec 2013, 03:18
Wrong. Swerve is coded so that you only have to worry about spells with only one target. Spellskite, however, can affect spells with more than one target, but only allows the changing of one target so you can't use ChooseNewTargets() which is the only way to change a spell's targets. And even then that doesn't cover changing a specific target to Spellskite.NeoAnderson wrote:1. The single target should be possible to change or i think so i have seen this card : Swerve it is coded and it is referred just to the spell who has a single target. Am i wrong?
No, it hasn't been completely tested, but again you can't change just one target because ChooseNewTargets() only works on all targets. Also you still can't overcome the problem of changing just one specific target to Spellskite. GetDataChest() does not work as expected as a real ObjectDC() no longer exists so it returns nil.NeoAnderson wrote:2. Is completely tested that is not possible to change targets from abilities?
I was thinking about this solution but i really don't know if could work :
a. Using the triggers BECAME_TARGET_OF_ABILITY and BECAME_TARGET_OF_SPELL
These triggers return as secondary object the card or the spell who is targetting the card.
b. retrieve the datachest of secondary object with SecondaryObject():GetDataChest()
c. choose an item from the chest with ChooseItemFromDC
d. set the new target into this data chest saving the new pointer overwriting the ChoosedItemFromDC pointer.
Just getting started: Xander9009's DotP 2014 Community Wad
Need a deck builder: DotP 2014 Deck Builder
Problems Modding: DotP 2014 Frequent Modding Mistakes
Need a deck builder: DotP 2014 Deck Builder
Problems Modding: DotP 2014 Frequent Modding Mistakes
- RiiakShiNal
- Programmer
- Posts: 2188
- Joined: 16 May 2011, 21:37
- Has thanked: 75 times
- Been thanked: 497 times
Re: Formal Request Thread
by sumomole » 16 Dec 2013, 15:57
Yes, it can't be coded in 2013, but 2014 could, use depends_on_X = "1" (WAVE_OF_INDIFFERENCE_348532).thefiremind wrote:Well, sumomole probably knows better, but there's something that worries me about this card: can the game prevent you from choosing a value forMisplay wrote:This change was made for the "fantasy flavour" of the game.
PS: Don't know if this could help, but here's the code of Skeletal Scrying for DotP 2013 (written by Sumomole).that is higher than the cards in your graveyard? I'm afraid it can't.

-
sumomole - Programmer
- Posts: 611
- Joined: 07 Jun 2011, 08:34
- Has thanked: 51 times
- Been thanked: 234 times
Re: Formal Request Thread
by NeoAnderson » 16 Dec 2013, 17:13
Hey Sumomole, you're right but i have encountered a problem.sumomole wrote:Yes, it can't be coded in 2013, but 2014 could, use depends_on_X = "1" (WAVE_OF_INDIFFERENCE_348532).thefiremind wrote:Well, sumomole probably knows better, but there's something that worries me about this card: can the game prevent you from choosing a value forMisplay wrote:This change was made for the "fantasy flavour" of the game.
PS: Don't know if this could help, but here's the code of Skeletal Scrying for DotP 2013 (written by Sumomole).that is higher than the cards in your graveyard? I'm afraid it can't.
The depends_on_X works only into Target block?
Because i tried to use it into Cost block to make the additional cost but it cannot limit the X value.
Probably it cannot be used into an Utility ability.
I made a working card but there is a formal mistake because the exiled card are not a cost but an effect.
I left the utility block useless. Any idea how to fix this?
- Skeletal Scrying | Open
- Code: Select all
<?xml version='1.0' encoding='UTF-8'?>
<CARD_V2 ExportVersion="1">
<FILENAME text="SKELETAL_SCRYING_29958" />
<CARDNAME text="SKELETAL_SCRYING" />
<TITLE>
<LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Skeletal Scrying]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Regard du squelette]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Adivinación esquelética]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Knochen-Hellseherei]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Premonizione Scheletrica]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[Skeletal Scrying]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[Skeletal Scrying]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[Skeletal Scrying]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[Osseomancia]]></LOCALISED_TEXT>
</TITLE>
<MULTIVERSEID value="29958" />
<ARTID value="29958" />
<ARTIST name="Bob Petillo" />
<CASTING_COST cost="{X}{B}" />
<TYPE metaname="Instant" />
<EXPANSION value="OD" />
<RARITY metaname="U" />
<UTILITY_ABILITY qualifier="Additional">
<LOCALISED_TEXT LanguageCode="en-US"><![CDATA[As an additional cost to cast Skeletal Scrying, exile X cards from your graveyard.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[En tant que coût supplémentaire pour jouer le Regard du squelette, retirez de la partie X cartes de votre cimetière de la partie.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Como coste adicional para jugar la Adivinación esquelética, remueve del juego X cartas de tu cementerio.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Entferne als zusätzliche Kosten, um Knochen-Hellseherei zu spielen, X Karten aus deinem Friedhof ganz aus dem Spiel.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Come costo addizionale per lanciare la Premonizione Scheletrica, esilia X carte dal tuo cimitero.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[As an additional cost to cast Skeletal Scrying, exile X cards from your graveyard.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[As an additional cost to cast Skeletal Scrying, exile X cards from your graveyard.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[As an additional cost to cast Skeletal Scrying, exile X cards from your graveyard.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[Como um custo adicional para jogar Osteomancia, remova de jogo X cards de seu cemitério.]]></LOCALISED_TEXT>
</UTILITY_ABILITY>
<SPELL_ABILITY>
<LOCALISED_TEXT LanguageCode="en-US"><![CDATA[You draw X cards and you lose X life.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Vous piochez X cartes et vous perdez X points de vie.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Roba X cartas y pierde X vidas.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Du ziehst X Karten und verlierst X Lebenspunkte.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Pesca X carte e perdi X punti vita.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[You draw X cards and you lose X life.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[You draw X cards and you lose X life.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[You draw X cards and you lose X life.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[Você compra X cards e perde X pontos de vida.]]></LOCALISED_TEXT>
<TARGET_DEFINITION id="0">
local filter = ClearFilter()
filter:SetZone( ZONE_GRAVEYARD, EffectController() )
</TARGET_DEFINITION>
<TARGET tag="CARD_QUERY_CHOOSE_CARD_TO_EXILE_FROM_A_GRAVEYARD" definition="0" compartment="0" depends_on_X="1">
MTG():SetTargetCount(GetEffectX())
</TARGET>
<RESOLUTION_TIME_ACTION>
local count = GetEffectX()
for i = 0, count-1 do
local target_card = EffectDC():Get_Targets(0):Get_CardPtr(i)
if target_card ~= nil then
target_card:Exile()
end
end
</RESOLUTION_TIME_ACTION>
<RESOLUTION_TIME_ACTION>
if EffectController() ~= nil then
local count = GetEffectX()
EffectController():DrawCards(count)
end
</RESOLUTION_TIME_ACTION>
<RESOLUTION_TIME_ACTION>
if EffectController() ~= nil then
local count = GetEffectX()
EffectController():LoseLife(count)
end
</RESOLUTION_TIME_ACTION>
</SPELL_ABILITY>
</CARD_V2>
- NeoAnderson
- Posts: 914
- Joined: 10 Sep 2013, 07:49
- Has thanked: 18 times
- Been thanked: 139 times
Re: Formal Request Thread
by sumomole » 16 Dec 2013, 17:33
if depends_on_X can only be used in target, we can make a "at_random"+"not_targeted"+"depends_on_X" target to limit X, and additional cost can be coded as usual.NeoAnderson wrote:Hey Sumomole, you're right but i have encountered a problem.
The depends_on_X works only into Target block?
Because i tried to use it into Cost block to make the additional cost but it cannot limit the X value.
Probably it cannot be used into an Utility ability.
I made a working card but there is a formal mistake because the exiled card are not a cost but an effect.
I left the utility block useless. Any idea how to fix this?
EDIT: In target definition, you'd better add filter:Add( FE_CARD_INSTANCE, OP_NOT, EffectSource() ), because the card may be cast from graveyard.
-
sumomole - Programmer
- Posts: 611
- Joined: 07 Jun 2011, 08:34
- Has thanked: 51 times
- Been thanked: 234 times
Re: Formal Request Thread
by NeoAnderson » 16 Dec 2013, 17:52
Ok I have to admit my ignorance, i understand your suggestion about the filter:Add( FE_CARD_INSTANCE, OP_NOT, EffectSource() ),sumomole wrote:if depends_on_X can only be used in target, we can make a "at_random"+"not_targeted"+"depends_on_X" target to limit X, and additional cost can be coded as usual.
EDIT: In target definition, you'd better add filter:Add( FE_CARD_INSTANCE, OP_NOT, EffectSource() ), because the card may be cast from graveyard.
But about the other tags you suggest to use i cannot understand how to use them.

Are you suggesting to make a fake Target block into main spell, just to limit the X upper limit and make a generic additional cost to exile the cards?
- NeoAnderson
- Posts: 914
- Joined: 10 Sep 2013, 07:49
- Has thanked: 18 times
- Been thanked: 139 times
Re: Formal Request Thread
by sumomole » 16 Dec 2013, 17:57
NeoAnderson wrote:Ok I have to admit my ignorance, i understand your suggestion about the filter:Add( FE_CARD_INSTANCE, OP_NOT, EffectSource() ),
But about the other tags you suggest to use i cannot understand how to use them.
- untested | Open
- Code: Select all
<UTILITY_ABILITY qualifier="Additional">
<LOCALISED_TEXT LanguageCode="en-US"><![CDATA[As an additional cost to cast Skeletal Scrying, exile X cards from your graveyard.]]></LOCALISED_TEXT>
<COST type="Generic">
<PREREQUISITE>
return true
</PREREQUISITE>
<RESOLUTION_TIME_ACTION>
if GetEffectX() > 0 then
local filter = ClearFilter()
filter:SetZone( ZONE_GRAVEYARD, EffectController() )
filter:Add( FE_CARD_INSTANCE, OP_NOT, EffectSource() )
EffectController():SetItemCount(GetEffectX())
for i = 0, (GetEffectX()-1) do
EffectController():SetItemPrompt(i, "CARD_QUERY_CHOOSE_CARD_TO_EXILE_FROM_A_GRAVEYARD" )
end
EffectController():ChooseItems( EffectDC():Make_Targets(1) )
end
</RESOLUTION_TIME_ACTION>
<RESOLUTION_TIME_ACTION>
local targetDC = EffectDC():Get_Targets(1)
if targetDC ~= nil then
local number = targetDC:Count()
for i = 0, (number-1) do
local target = targetDC:Get_CardPtr(i)
target:Exile()
end
end
</RESOLUTION_TIME_ACTION></COST>
</UTILITY_ABILITY>
<SPELL_ABILITY>
<LOCALISED_TEXT LanguageCode="en-US"><![CDATA[You draw X cards and you lose X life.]]></LOCALISED_TEXT>
<TARGET tag="CARD_QUERY_CHOOSE_CREATURE_TO_EXILE" definition="0" compartment="0" depends_on_X="1" at_random="1" not_targeted="1">
MTG():SetTargetCount(GetEffectX())
</TARGET>
<TARGET_DEFINITION id="0">
local filter = ClearFilter()
filter:SetZone( ZONE_GRAVEYARD, EffectController() )
filter:Add( FE_CARD_INSTANCE, OP_NOT, EffectSource() )
</TARGET_DEFINITION>
<RESOLUTION_TIME_ACTION>
EffectController():DrawCards(GetEffectX())
</RESOLUTION_TIME_ACTION>
<RESOLUTION_TIME_ACTION>
EffectController():LoseLife(GetEffectX())
</RESOLUTION_TIME_ACTION>
</SPELL_ABILITY>
-
sumomole - Programmer
- Posts: 611
- Joined: 07 Jun 2011, 08:34
- Has thanked: 51 times
- Been thanked: 234 times
Re: Formal Request Thread
by NeoAnderson » 16 Dec 2013, 18:22
Ok i got it, I can confirm it works, as i was supposing, at_random (select random targets), not_targeted (hide targets selection) so in this way we hide the targetting action and at same way we can use depends_on_X to limit the X cost.sumomole wrote:
- untested | Open
- Code: Select all
<UTILITY_ABILITY qualifier="Additional">
<LOCALISED_TEXT LanguageCode="en-US"><![CDATA[As an additional cost to cast Skeletal Scrying, exile X cards from your graveyard.]]></LOCALISED_TEXT>
<COST type="Generic">
<PREREQUISITE>
return true
</PREREQUISITE>
<RESOLUTION_TIME_ACTION>
if GetEffectX() > 0 then
local filter = ClearFilter()
filter:SetZone( ZONE_GRAVEYARD, EffectController() )
filter:Add( FE_CARD_INSTANCE, OP_NOT, EffectSource() )
EffectController():SetItemCount(GetEffectX())
for i = 0, (GetEffectX()-1) do
EffectController():SetItemPrompt(i, "CARD_QUERY_CHOOSE_CARD_TO_EXILE_FROM_A_GRAVEYARD" )
end
EffectController():ChooseItems( EffectDC():Make_Targets(1) )
end
</RESOLUTION_TIME_ACTION>
<RESOLUTION_TIME_ACTION>
local targetDC = EffectDC():Get_Targets(1)
if targetDC ~= nil then
local number = targetDC:Count()
for i = 0, (number-1) do
local target = targetDC:Get_CardPtr(i)
target:Exile()
end
end
</RESOLUTION_TIME_ACTION></COST>
</UTILITY_ABILITY>
<SPELL_ABILITY>
<LOCALISED_TEXT LanguageCode="en-US"><![CDATA[You draw X cards and you lose X life.]]></LOCALISED_TEXT>
<TARGET tag="CARD_QUERY_CHOOSE_CREATURE_TO_EXILE" definition="0" compartment="0" depends_on_X="1" at_random="1" not_targeted="1">
MTG():SetTargetCount(GetEffectX())
</TARGET>
<TARGET_DEFINITION id="0">
local filter = ClearFilter()
filter:SetZone( ZONE_GRAVEYARD, EffectController() )
filter:Add( FE_CARD_INSTANCE, OP_NOT, EffectSource() )
</TARGET_DEFINITION>
<RESOLUTION_TIME_ACTION>
EffectController():DrawCards(GetEffectX())
</RESOLUTION_TIME_ACTION>
<RESOLUTION_TIME_ACTION>
EffectController():LoseLife(GetEffectX())
</RESOLUTION_TIME_ACTION>
</SPELL_ABILITY>
Thanks my friend it will be useful for future coding.

Final card Skeletal Scrying collaboration with Sumomole

- Skeletal Scrying | Open
- Code: Select all
<?xml version='1.0' encoding='UTF-8'?>
<CARD_V2 ExportVersion="1">
<FILENAME text="SKELETAL_SCRYING_29958" />
<CARDNAME text="SKELETAL_SCRYING" />
<TITLE>
<LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Skeletal Scrying]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Regard du squelette]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Adivinación esquelética]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Knochen-Hellseherei]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Premonizione Scheletrica]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[Skeletal Scrying]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[Skeletal Scrying]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[Skeletal Scrying]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[Osseomancia]]></LOCALISED_TEXT>
</TITLE>
<MULTIVERSEID value="29958" />
<ARTID value="29958" />
<ARTIST name="Bob Petillo" />
<CASTING_COST cost="{X}{B}" />
<TYPE metaname="Instant" />
<EXPANSION value="OD" />
<RARITY metaname="U" />
<UTILITY_ABILITY qualifier="Additional">
<LOCALISED_TEXT LanguageCode="en-US"><![CDATA[As an additional cost to cast Skeletal Scrying, exile X cards from your graveyard.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[En tant que coût supplémentaire pour jouer le Regard du squelette, retirez de la partie X cartes de votre cimetière de la partie.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Como coste adicional para jugar la Adivinación esquelética, remueve del juego X cartas de tu cementerio.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Entferne als zusätzliche Kosten, um Knochen-Hellseherei zu spielen, X Karten aus deinem Friedhof ganz aus dem Spiel.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Come costo addizionale per lanciare la Premonizione Scheletrica, esilia X carte dal tuo cimitero.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[As an additional cost to cast Skeletal Scrying, exile X cards from your graveyard.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[As an additional cost to cast Skeletal Scrying, exile X cards from your graveyard.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[As an additional cost to cast Skeletal Scrying, exile X cards from your graveyard.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[Como um custo adicional para jogar Osteomancia, remova de jogo X cards de seu cemitério.]]></LOCALISED_TEXT>
<COST type="Generic">
<PREREQUISITE>
return true
</PREREQUISITE>
<RESOLUTION_TIME_ACTION>
if GetEffectX() > 0 then
local filter = ClearFilter()
filter:SetZone( ZONE_GRAVEYARD, EffectController() )
filter:Add( FE_CARD_INSTANCE, OP_NOT, EffectSource() )
EffectController():SetItemCount(GetEffectX())
for i = 0, (GetEffectX()-1) do
EffectController():SetItemPrompt(i, "CARD_QUERY_CHOOSE_CARD_TO_EXILE_FROM_A_GRAVEYARD" )
end
EffectController():ChooseItems( EffectDC():Make_Targets(1) )
end
</RESOLUTION_TIME_ACTION>
<RESOLUTION_TIME_ACTION>
local targetDC = EffectDC():Get_Targets(1)
if targetDC ~= nil then
local number = targetDC:Count()
for i = 0, (number-1) do
local target = targetDC:Get_CardPtr(i)
target:Exile()
end
end
</RESOLUTION_TIME_ACTION>
</COST>
</UTILITY_ABILITY>
<SPELL_ABILITY>
<LOCALISED_TEXT LanguageCode="en-US"><![CDATA[You draw X cards and you lose X life.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Vous piochez X cartes et vous perdez X points de vie.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Roba X cartas y pierde X vidas.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Du ziehst X Karten und verlierst X Lebenspunkte.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Pesca X carte e perdi X punti vita.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[You draw X cards and you lose X life.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[You draw X cards and you lose X life.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[You draw X cards and you lose X life.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[Você compra X cards e perde X pontos de vida.]]></LOCALISED_TEXT>
<TARGET tag="CARD_QUERY_CHOOSE_CREATURE_TO_EXILE" definition="0" compartment="0" depends_on_X="1" at_random="1" not_targeted="1">
MTG():SetTargetCount(GetEffectX())
</TARGET>
<TARGET_DEFINITION id="0">
local filter = ClearFilter()
filter:SetZone( ZONE_GRAVEYARD, EffectController() )
filter:Add( FE_CARD_INSTANCE, OP_NOT, EffectSource() )
</TARGET_DEFINITION>
<RESOLUTION_TIME_ACTION>
EffectController():DrawCards(GetEffectX())
</RESOLUTION_TIME_ACTION>
<RESOLUTION_TIME_ACTION>
EffectController():LoseLife(GetEffectX())
</RESOLUTION_TIME_ACTION>
</SPELL_ABILITY>
</CARD_V2>
SKELETAL_SCRYING_29958.zip
- Card XML + TDX
- (366.13 KiB) Downloaded 191 times
- NeoAnderson
- Posts: 914
- Joined: 10 Sep 2013, 07:49
- Has thanked: 18 times
- Been thanked: 139 times
Who is online
Users browsing this forum: No registered users and 5 guests