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 Real » 28 Dec 2013, 23:34
So, can anyone help?
The following code is what I have.
For Incandescent Soulstoke, the problem is giving the creature haste and sacrifice it at the end step.
As for the Thunderblust, the problem is giving it trample while it has the counter.
The following code is what I have.
For Incandescent Soulstoke, the problem is giving the creature haste and sacrifice it at the end step.
As for the Thunderblust, the problem is giving it trample while it has the counter.
- Code: Select all
<?xml version="1.0" encoding="UTF-8"?>
<CARD_V2 ExportVersion="1">
<FILENAME text="INCANDESCENT_SOULSTOKE_139730" />
<CARDNAME text="INCANDESCENT_SOULSTOKE" />
<TITLE>
<LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Incandescent Soulstoke]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Chauffeur d'âme incandescent]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Atiza alma incandescente]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Weißglühender Seelenverheizer]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Attizza Anima Incandescente]]></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[Carvalma Incandescente]]></LOCALISED_TEXT>
</TITLE>
<MULTIVERSEID value="139730" />
<ARTID value="A139730" />
<ARTIST name="Todd Lockwood" />
<CASTING_COST cost="{2}{R}" />
<TYPE metaname="Creature" />
<SUB_TYPE metaname="Elemental" />
<SUB_TYPE metaname="Shaman" />
<EXPANSION value="PD2" />
<RARITY metaname="R" />
<POWER value="2" />
<TOUGHNESS value="2" />
<STATIC_ABILITY>
<LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Other Elemental creatures you control get +1/+1.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Les autres créatures Élémental que vous contrôlez gagnent +1/+1.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Las otras criaturas Elemental que controlas obtienen +1/+1.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Andere Elementarwesenkreaturen, die du kontrollierst, erhalten +1/+1.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Le altre creature Spiritello che controlli prendono +1/+1.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[あなたがコントロールする他のエレメンタル・クリーチャーは+1/+1の修整を受ける。]]></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[As outras criaturas do tipo Elemental que você controla recebem +1/+1.]]></LOCALISED_TEXT>
<FILTER filter_id="0">
local filter = ClearFilter()
filter:Add( FE_CARD_INSTANCE, OP_NOT, EffectSource() )
filter:Add( FE_SUBTYPE, OP_IS, CREATURE_TYPE_ELEMENTAL )
filter:Add( FE_TYPE, OP_IS, CARD_TYPE_CREATURE )
filter:Add( FE_CONTROLLER, OP_IS, EffectController())
</FILTER>
<CONTINUOUS_ACTION layer="7C" filter_id="0">
if FilteredCard() ~= nil then
local characteristics = FilteredCard():GetCurrentCharacteristics()
characteristics:Power_Add( 1 )
characteristics:Toughness_Add( 1 )
end
</CONTINUOUS_ACTION>
<ACTIVATED_ABILITY>
<LOCALISED_TEXT LanguageCode="en-US"><![CDATA[{1}{R}, {T}: You may put an Elemental creature card from your hand onto the battlefield. That creature gains haste until end of turn. Sacrifice it at the beginning of the next end step.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[{1}{R}, {T}: Vous pouvez mettre en jeu une carte de créature d'élémental de votre main. Cette créature acquiert la célérité jusqu'à la fin du tour. Sacrifiez-la à la fin du tour.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[{1}{R}, {T}: Puedes poner en juego una carta de criatura Elemental de tu mano. Esa criatura gana la habilidad de prisa hasta el final del turno. Sacrifícala al final del turno.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[{1}{R}, {T}: Du kannst eine Elementarwesenkreaturenkarte aus deiner Hand ins Spiel bringen. Diese Kreatur erhält Eile bis zum Ende des Zuges. Opfere sie am Ende des Zuges.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[{1}{R}, {T}: Puoi mettere in gioco una carta creatura Elementale dalla tua mano. Quella creatura ha rapidità fino alla fine del turno. Sacrificala alla fine del turno.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[{1}{R}, {T}: あなたは自分の手札にあるエレメンタル・クリーチャー・カードを1枚場に出してもよい。 そのクリーチャーはターン終了時まで速攻を得る。 ターン終了時にそれを生け贄に捧げる。]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[{1}{R}, {T}: 你可以将一张元素生物牌从你手上放置进场。 该生物获得敏捷异能直到回合结束。 在回合结束时将之牺牲。]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[{1}{R}, {T}: Вы можете положить карту существа-Элементаля из вашей руки в игру. То существо получает Ускорение до конца хода. В конце хода пожертвуйте его.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[{1}{R}, {T}: Você pode colocar um card de criatura do tipo Elemental da sua mão em jogo. Aquela criatura ganha ímpeto até o final do turno. Sacrifique-a no final do turno.]]></LOCALISED_TEXT>
<COST mana_cost="{1}{R}" type="Mana" />
<COST type="TapSelf" />
<RESOLUTION_TIME_ACTION>
local filter = ClearFilter()
filter:Add( FE_SUBTYPE, OP_IS, CREATURE_TYPE_ELEMENTAL )
filter:Add( FE_TYPE, OP_IS, CARD_TYPE_CREATURE )
filter:SetZone( ZONE_HAND, EffectController() )
EffectController():ChooseItem( "CARD_QUERY_CHOOSE_CREATURE_TO_PUT_ONTO_BATTLEFIELD", EffectDC():Make_Targets(0), QUERY_FLAG_MAY )
</RESOLUTION_TIME_ACTION>
<RESOLUTION_TIME_ACTION>
local target = EffectDC():Get_Targets(0):Get_CardPtr(0)
if target ~= nil then
target:PutOntoBattlefield( EffectController() )
end
</RESOLUTION_TIME_ACTION>
</ACTIVATED_ABILITY>
<SFX text="COMBAT_FLAME_LARGE_ATTACK" power_boundary_min="4" power_boundary_max="-1" />
<SFX text="COMBAT_FLAME_SMALL_ATTACK" power_boundary_min="1" power_boundary_max="3" />
<AI_BASE_SCORE score="150" zone="ZONE_BATTLEFIELD" />
</CARD_V2>
- Code: Select all
<?xml version="1.0" encoding="UTF-8"?>
<CARD_V2 ExportVersion="1">
<FILENAME text="THUNDERBLUST_157411" />
<CARDNAME text="THUNDERBLUST" />
<TITLE>
<LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Thunderblust]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Ragefoudre]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Trueno voraz]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Donnerpolterer]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Fulminafuria]]></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[Tormenta Relampejante]]></LOCALISED_TEXT>
</TITLE>
<MULTIVERSEID value="157411" />
<ARTID value="A157411" />
<ARTIST name="Dan Scott" />
<CASTING_COST cost="{2}{R}{R}{R}" />
<TYPE metaname="Creature" />
<SUB_TYPE metaname="Elemental" />
<EXPANSION value="PD2" />
<RARITY metaname="R" />
<POWER value="7" />
<TOUGHNESS value="2" />
<STATIC_ABILITY>
<LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Haste]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Célérité]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Prisa.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Eile]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Rapidità]]></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[Ímpeto]]></LOCALISED_TEXT>
<INTRINSIC characteristic="CHARACTERISTIC_HASTE" />
</STATIC_ABILITY>
<TRIGGERED_ABILITY>
<LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Persist]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Persistance]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Persistir.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Beharrlichkeit]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Persistere]]></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[Persistir]]></LOCALISED_TEXT>
<TRIGGER value="ZONECHANGE_BEGIN" simple_qualifier="self" to_zone="ZONE_GRAVEYARD" from_zone="ZONE_BATTLEFIELD" />
<INTERVENING_IF ignore_resolution_check="1">
if TriggerObject():CountCounters(MTG():MinusOneMinusOneCounters()) == 0 then
return true
else
return false
end
</INTERVENING_IF>
<RESOLUTION_TIME_ACTION>
if TriggerObject() ~= nil then
EffectDC():Protect_CardPtr( COMPARTMENT_ID_PARAM_TRIGGER_OBJECT )
TriggerObject():PutOntoBattlefield( TriggerObject():GetOwner() )
end
</RESOLUTION_TIME_ACTION>
<RESOLUTION_TIME_ACTION>
if TriggerObject() ~= nil then
TriggerObject():AddCounters( MTG():MinusOneMinusOneCounters(), 1)
end
</RESOLUTION_TIME_ACTION>
</TRIGGERED_ABILITY>
<SFX text="COMBAT_LIGHTNING_LARGE_ATTACK" power_boundary_min="4" power_boundary_max="-1" />
<SFX text="COMBAT_LIGHTNING_SMALL_ATTACK" power_boundary_min="1" power_boundary_max="3" />
</CARD_V2>
Re: Formal Request Thread
by drleg3nd » 28 Dec 2013, 23:46
ok just tested card, 2nd ability can be done more than once a turn, last ability removes counter but nothing happens but special effects..
- Kiora | Open
- Code: Select all
<?xml version='1.0' encoding='UTF-8'?>
<CARD_V2 ExportVersion="2">
<FILENAME text="KIORA,_THE_CRASHING_WAVE_812195297" />
<CARDNAME text="KIORA,_THE_CRASHING_WAVE" />
<TITLE>
<LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Kiora, the Crashing Wave]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Kiora, the Crashing Wave]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Kiora, the Crashing Wave]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Kiora, the Crashing Wave]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Kiora, the Crashing Wave]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[Kiora, the Crashing Wave]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[Kiora, the Crashing Wave]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[Kiora, the Crashing Wave]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[Kiora, the Crashing Wave]]></LOCALISED_TEXT>
</TITLE>
<MULTIVERSEID value="812195297" />
<ARTID value="812195297" />
<ARTIST name="Scott M Fischer" />
<CASTING_COST cost="{2}{G}{U}" />
<TYPE metaname="Planeswalker" />
<TYPE metaname="Enchantment" />
<SUB_TYPE metaname="Kiora" />
<EXPANSION value="WWK" />
<RARITY metaname="M" />
<TRIGGERED_ABILITY replacement_effect="1" active_zone="ZONE_TRANSITION">
<LOCALISED_TEXT LanguageCode="en-US"><![CDATA[|(Loyalty 2)|]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[|(Loyauté 2)|]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[|(Lealtad 2)|]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[|(Loyalität 2)|]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[|(Fedeltà 2)|]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[(忠誠 2)]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[|(충성 2)|]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[|(Верность 2)|]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[|(Lealdade 2)|]]></LOCALISED_TEXT>
<COUNTER_REGISTRATION name="Loyalty" proliferate="11" />
<TRIGGER value="ZONECHANGE_TRANSITION" simple_qualifier="self" to_zone="ZONE_BATTLEFIELD" from_zone="ZONE_ANY" />
<RESOLUTION_TIME_ACTION>
if EffectSource() ~= nil then
EffectSource():AddCounters( MTG():GetCountersType("Loyalty"), 2 )
end
</RESOLUTION_TIME_ACTION>
</TRIGGERED_ABILITY>
<ACTIVATED_ABILITY>
<LOCALISED_TEXT LanguageCode="en-US"><![CDATA[(+1): Until your next turn, prevent all damage that would be dealt to and dealt by target permanent an opponent controls.]]></LOCALISED_TEXT>
<AVAILABILITY sorcery_time="1" per_turn_limit="1" />
<COST type="generic">
<PREREQUISITE>
return true
</PREREQUISITE>
<RESOLUTION_TIME_ACTION>
if EffectSource() ~= nil then
PLW_ShutDownDoublingSeason()
EffectSource():AddCounters( MTG():GetCountersType("Loyalty"), 1 )
end
</RESOLUTION_TIME_ACTION>
</COST>
<TARGET tag="CARD_QUERY_CHOOSE_PERMANENT_AN_OPPONENT_CONTROLS" definition="0" compartment="0" count="1" />
<TARGET_DEFINITION id="0">
local filter = ClearFilter()
filter:Add( FE_TEAM, OP_NOT, EffectController():GetTeam() )
PLW_FilterPermanents(filter)
</TARGET_DEFINITION>
<RESOLUTION_TIME_ACTION>
EffectDC():Set_Int( 1, MTG():GetTurnNumber() )
</RESOLUTION_TIME_ACTION>
<CONTINUOUS_ACTION layer="8">
local target = EffectDC():Get_Targets(0):Get_CardPtr(0)
if target ~= nil then
local characteristics = target:GetCurrentCharacteristics()
characteristics:Bool_Set(CHARACTERISTIC_DOESNT_RECEIVE_DAMAGE, 1)
characteristics:Bool_Set(CHARACTERISTIC_DOESNT_DEAL_DAMAGE, 1)
end
</CONTINUOUS_ACTION>
<DURATION>
return EffectDC():Get_Targets(0):Get_CardPtr(0) == nil or PLW_UntilMyNextTurn( EffectDC():Get_Int(1) )
</DURATION>
<SFX text="TARGET_PLASMA_PLAY" />
</ACTIVATED_ABILITY>
<ACTIVATED_ABILITY>
<LOCALISED_TEXT LanguageCode="en-US"><![CDATA[(-1): Draw a card, You may play an additional land this turn.]]></LOCALISED_TEXT>
<AVAILABILITY sorcery_time="1" per_turn_limit="1" />
<COST type="RemoveCountersSelf" amount="1" counter_type="Loyalty" />
<RESOLUTION_TIME_ACTION>
EffectController():DrawCards(1)
</RESOLUTION_TIME_ACTION>
<CONTINUOUS_ACTION layer="8">
local player_characteristics = EffectController():GetCurrentCharacteristics()
player_characteristics:Int_Increment( PLAYER_INTCHARACTERISTIC_EXTRA_LAND_DROPS )
</CONTINUOUS_ACTION>
<DURATION simple_duration="UntilEOT" />
</ACTIVATED_ABILITY>
<ACTIVATED_ABILITY>
<LOCALISED_TEXT LanguageCode="en-US"><![CDATA[(-5): You get an emblem with “At the beginning of your end step, put a 9/9 blue Kraken creature token onto the battlefield.”]]></LOCALISED_TEXT>
<AVAILABILITY sorcery_time="1" per_turn_limit="1" />
<COST type="RemoveCountersSelf" amount="5" counter_type="Loyalty" />
<RESOLUTION_TIME_ACTION>
MTG():CreateDelayedTrigger(1, nil)
</RESOLUTION_TIME_ACTION>
<SFX text="GLOBAL_TIDE_PLAY" />
</ACTIVATED_ABILITY>
<TRIGGERED_ABILITY resource_id="1">
<CLEANUP>
return EffectController() == nil
</CLEANUP>
<TRIGGER value="BEGINNING_OF_PLAYERS_STEP" simple_qualifier="controller">
return MTG():GetStep() == STEP_END_OF_TURN
</TRIGGER>
<RESOLUTION_TIME_ACTION>
MTG():PutTokensOntoBattlefield( "812082656", 1, EffectController() )
</RESOLUTION_TIME_ACTION>
</TRIGGERED_ABILITY>
<TOKEN_REGISTRATION reservation="1" type="812082656" />
<TRIGGERED_ABILITY replacement_effect="1" active_zone="ZONE_ANY">
<TRIGGER value="BEGINNING_OF_STEP">
return MTG():GetStep() == STEP_UPKEEP and MTG():GetTurnNumber() == 0
</TRIGGER>
<RESOLUTION_TIME_ACTION>
PLW_CreateUniqueToken( "_PLANESWALKERS_MANAGER_991800002", "_PLANESWALKERS_MANAGER", EffectController() )
</RESOLUTION_TIME_ACTION>
</TRIGGERED_ABILITY>
<TOKEN_REGISTRATION reservation="1" type="_PLANESWALKERS_MANAGER_991800002" />
<AI_COUNTER_SCORE type="Loyalty" score="100" />
<AI_BASE_SCORE score="600" zone="ZONE_BATTLEFIELD" />
</CARD_V2>
Re: Formal Request Thread
by thefiremind » 29 Dec 2013, 00:18
Isn't it the same as Sneak Attack, which is an official card? Just copy Sneak Attack and change the filter so that it only accepts Elemental creatures.Real wrote:For Incandescent Soulstoke, the problem is giving the creature haste and sacrifice it at the end step.
EDIT: Now that I look at it more carefully, there's a little difference: Incandescent Soulstoke grants haste only until end of turn. This actually shouldn't be a problem in DotP2014 since the only way to maintain haste after the end of turn would be to counter the sacrifice trigger which is impossible in DotP... but if you really want to be precise, change
- Code: Select all
<DURATION>
return (EffectSource() == nil)
</DURATION>
- Code: Select all
<DURATION simple_duration="UntilEOT" />
Real wrote:As for the Thunderblust, the problem is giving it trample while it has the counter.
- Code: Select all
<CONTINUOUS_ACTION layer="6">
if EffectSource() ~= nil and EffectSource():CountCounters( MTG():MinusOneMinusOneCounters() ) > 0 then
EffectSource():GetCurrentCharacteristics():Bool_Set(CHARACTERISTIC_TRAMPLE, 1)
end
</CONTINUOUS_ACTION>

If you mean that each ability doesn't exclude the other ones for the same turn when used, then you didn't properly add Kiora as a known Planeswalker. You have a comma in FILENAME and CARDNAME, maybe you didn't put it in the LOL file, I'd suggest to remove it from the name rather than adding it to the LOL file (punctuation in FILENAME and CARDNAME is allowed but it's a bad habit if you want coherence with the official cards). Remember to remove it from the actual file name as well.drleg3nd wrote:2nd ability can be done more than once a turn
If you called your token TOKEN_KRAKEN_9_9_U_812082656, then you must write all of that in the code, not just the Multiverse ID. All the other cards that produce tokens should serve as example for that.drleg3nd wrote:last ability removes counter but nothing happens but special effects..
< 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: Formal Request Thread
by Real » 29 Dec 2013, 03:31
Thanks TFM!
For those who may be interested in these two cards
For those who may be interested in these two cards
- Attachments
-
Elemental.zip
- (858.29 KiB) Downloaded 288 times
Re: Formal Request Thread
by RiiakShiNal » 29 Dec 2013, 14:58
ZONE_CEASED_TO_EXIST is used for tokens that are no longer on the battlefield and spell copies that are no longer on the stack, since they have "ceased to exist" they don't exist and thus can't be recalled by Ring of Ma'ruf because you can't "own" what doesn't exist. As far as I know there are no cards that explicitly use that zone because nothing in that zone actually "exists" and I doubt it would work properly if a card actually tried to use it.NeoAnderson wrote:About Ring of Ma'ruf so Exile zone is not out of game and what about ZONE_CEASED_TO_EXIST ? What does means this zone? Is there some cards who are using that zone?
What Ring of Ma'ruf actually does is allows you to bring a card from your collection (that was not used in the deck, though in tournaments it would most likely be limited to your sideboard) and put that card in your hand (the next time that turn that you would draw a card) to use in the game. The DotP engine does not allow us to access any cards not in the decks that were brought into the match other than registered tokens (as they aren't loaded) so Ring of Ma'ruf is completely impossible to code.
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 Orangewaggs » 29 Dec 2013, 16:01
Is it possible that someone could code Zur-Taa Druid.
Please and thank you
Please and thank you
-
Orangewaggs - Posts: 17
- Joined: 18 Dec 2013, 23:39
- Has thanked: 8 times
- Been thanked: 0 time
Re: Formal Request Thread
by NeoAnderson » 29 Dec 2013, 16:24
Thanks Riiak, i was wondering about the meaning of this ZONE now is clear.RiiakShiNal wrote:ZONE_CEASED_TO_EXIST is used for tokens that are no longer on the battlefield and spell copies that are no longer on the stack, since they have "ceased to exist" they don't exist and thus can't be recalled by Ring of Ma'ruf because you can't "own" what doesn't exist. As far as I know there are no cards that explicitly use that zone because nothing in that zone actually "exists" and I doubt it would work properly if a card actually tried to use it.
What Ring of Ma'ruf actually does is allows you to bring a card from your collection (that was not used in the deck, though in tournaments it would most likely be limited to your sideboard) and put that card in your hand (the next time that turn that you would draw a card) to use in the game. The DotP engine does not allow us to access any cards not in the decks that were brought into the match other than registered tokens (as they aren't loaded) so Ring of Ma'ruf is completely impossible to code.
I have another silly question.
When we have a card with an Activable ability available only during the upkeep, how can we activate it if the game autoskip the upkeep step?
I mean if we don't have any trigger this step will not give us possibility to interact.
To avoid this problem i am using an empty trigger for these kind of cards, so while the card is triggering we can activate the ability, but i would know if there is something i am missing, because this is a way to walk around the problem, but probably i am missing something more clean and simple, like some to change into game settings?
- NeoAnderson
- Posts: 914
- Joined: 10 Sep 2013, 07:49
- Has thanked: 18 times
- Been thanked: 139 times
Re: Formal Request Thread
by MC Brodie » 29 Dec 2013, 19:30
Yea I think a trigger with an empty Resolution time action is the only way for the game to give you time during the upkeep. I know you said you already have something working but you could do something like Kev did for Eternal Dragon or you could use the invisible token manager thefiremind has posted here:NeoAnderson wrote:I have another silly question.
When we have a card with an Activable ability available only during the upkeep, how can we activate it if the game autoskip the upkeep step?
I mean if we don't have any trigger this step will not give us possibility to interact.
To avoid this problem i am using an empty trigger for these kind of cards, so while the card is triggering we can activate the ability, but i would know if there is something i am missing, because this is a way to walk around the problem, but probably i am missing something more clean and simple, like some to change into game settings?
- Eternal Dragon Upkeep Trigger | Open
- Code: Select all
<TRIGGERED_ABILITY active_zone="ZONE_GRAVEYARD" priority="-10">
<TRIGGER value="BEGINNING_OF_PLAYERS_STEP" simple_qualifier="controller">
local player = EffectController()
local filter = ClearFilter()
filter:SetZone( ZONE_GRAVEYARD, player )
filter:Add( FE_CARD_NAME, OP_IS, "ETERNAL_DRAGON" )
if filter:EvaluateObjects() > 0 then
if EffectSource() == filter:GetNthEvaluatedObject(0) then
return ( MTG():GetStep() == STEP_UPKEEP ) and ( player:CanPayManaCost("{3}{W}{W}") )
end
end
return false
</TRIGGER>
<RESOLUTION_TIME_ACTION />
<AUTO_SKIP no_effect_source="1" />
</TRIGGERED_ABILITY>
-----------------------------------------------------------------------
Song of the Day: 46 and 2 (cover)
Song of the Day: 46 and 2 (cover)
Re: Formal Request Thread
by NeoAnderson » 29 Dec 2013, 20:00
Thanks my friend,MC Brodie wrote:Yea I think a trigger with an empty Resolution time action is the only way for the game to give you time during the upkeep. I know you said you already have something working but you could do something like Kev did for Eternal Dragon or you could use the invisible token manager thefiremind has posted here:NeoAnderson wrote:I have another silly question.
When we have a card with an Activable ability available only during the upkeep, how can we activate it if the game autoskip the upkeep step?
I mean if we don't have any trigger this step will not give us possibility to interact.
To avoid this problem i am using an empty trigger for these kind of cards, so while the card is triggering we can activate the ability, but i would know if there is something i am missing, because this is a way to walk around the problem, but probably i am missing something more clean and simple, like some to change into game settings?
- Eternal Dragon Upkeep Trigger | Open
- Code: Select all
<TRIGGERED_ABILITY active_zone="ZONE_GRAVEYARD" priority="-10">
<TRIGGER value="BEGINNING_OF_PLAYERS_STEP" simple_qualifier="controller">
local player = EffectController()
local filter = ClearFilter()
filter:SetZone( ZONE_GRAVEYARD, player )
filter:Add( FE_CARD_NAME, OP_IS, "ETERNAL_DRAGON" )
if filter:EvaluateObjects() > 0 then
if EffectSource() == filter:GetNthEvaluatedObject(0) then
return ( MTG():GetStep() == STEP_UPKEEP ) and ( player:CanPayManaCost("{3}{W}{W}") )
end
end
return false
</TRIGGER>
<RESOLUTION_TIME_ACTION />
<AUTO_SKIP no_effect_source="1" />
</TRIGGERED_ABILITY>
I already know i can set some check into upkeep trigger, and generally i used to add these checks when there is something to check, but sometimes we have cards that doesn't need to check anything, so in that case i just let them trigger always during my upkeep.
CanPayManaCost, is ok but there is a problem with manual mana cards, this means that you should add the mana before the check the mana availability, and this give you few seconds to do it.
- NeoAnderson
- Posts: 914
- Joined: 10 Sep 2013, 07:49
- Has thanked: 18 times
- Been thanked: 139 times
Re: Formal Request Thread
by MC Brodie » 29 Dec 2013, 23:12
I'm sorry I'm having another one of those brain failure moments and I cannot figure out what I'm doing wrong. I am trying to code the activated ability of Deadeye Navigator and I cannot get the exiled card to return to the battlefield. I am the worst with these types of cards that require exiling and returning to the battlefield. Here is what I have.
- Deadeye Navigator | Open
- Code: Select all
<ACTIVATED_ABILITY resource_id="0">
<LOCALISED_TEXT LanguageCode="en-US"><![CDATA[{1}{U}: Exile this creature, then return it to the battlefield under your control.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[{1}{U}: Exilez cette créature, puis renvoyez-la sur le champ de bataille sous votre contrôle.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[{1}{U}: Exilia a esta criatura, luego regrésala al campo de batalla bajo tu control.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[{1}{U}: Schicke diese Kreatur ins Exil und bringe sie dann unter deiner Kontrolle ins Spiel zurück.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[{1}{U}: Esilia questa creatura, poi rimettila sul campo di battaglia sotto il tuo controllo.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[{1}{U}: あなたはこのクリーチャーを追放し、その後それをあなたのコントロール下で戦場に戻す」を持つ。]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[{1}{U}: 이 생물을 추방한 후 당신의 조종하에 전장으로 되돌린다”라는 능력을 갖는다.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[{1}{U}: изгоните это существо, затем верните его на поле битвы под вашим контролем.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[{1}{U}: Exile esta criatura e depois a devolva ao campo de batalha sob o seu controle.]]></LOCALISED_TEXT>
<COST mana_cost="{1}" type="Mana" />
<RESOLUTION_TIME_ACTION>
if EffectSource() ~= nil then
EffectDC():Set_CardPtr( 0, EffectSource() )
EffectDC():Protect_CardPtr( COMPARTMENT_ID_EFFECT_SOURCE )
EffectSource():Exile()
end
</RESOLUTION_TIME_ACTION>
<RESOLUTION_TIME_ACTION>
local creature = EffectDC():Get_CardPtr(0)
if creature ~= nil then
creature:PutOntoBattlefield( EffectController() )
end
</RESOLUTION_TIME_ACTION>
<AI_AVAILABILITY window_step="end_of_turn" window_turn="their_turn" type="window" />
<AI_AVAILABILITY window_step="declare_attackers" window_turn="their_turn" type="window" />
<AI_AVAILABILITY window_step="main_2" window_turn="my_turn" type="window" />
<AI_AVAILABILITY window_step="main_1" window_turn="my_turn" type="window" />
<AI_AVAILABILITY type="in_response" response_source="1" />
<AI_AVAILABILITY type="in_response" response_target="1" />
</ACTIVATED_ABILITY>
-----------------------------------------------------------------------
Song of the Day: 46 and 2 (cover)
Song of the Day: 46 and 2 (cover)
Re: Formal Request Thread
by NeoAnderson » 29 Dec 2013, 23:51
The issue is about the follow line :MC Brodie wrote:I'm sorry I'm having another one of those brain failure moments and I cannot figure out what I'm doing wrong. I am trying to code the activated ability of Deadeye Navigator and I cannot get the exiled card to return to the battlefield. I am the worst with these types of cards that require exiling and returning to the battlefield. Here is what I have.
- Deadeye Navigator | Open
- Code: Select all
<ACTIVATED_ABILITY resource_id="0">
<LOCALISED_TEXT LanguageCode="en-US"><![CDATA[{1}{U}: Exile this creature, then return it to the battlefield under your control.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[{1}{U}: Exilez cette créature, puis renvoyez-la sur le champ de bataille sous votre contrôle.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[{1}{U}: Exilia a esta criatura, luego regrésala al campo de batalla bajo tu control.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[{1}{U}: Schicke diese Kreatur ins Exil und bringe sie dann unter deiner Kontrolle ins Spiel zurück.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[{1}{U}: Esilia questa creatura, poi rimettila sul campo di battaglia sotto il tuo controllo.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[{1}{U}: あなたはこのクリーチャーを追放し、その後それをあなたのコントロール下で戦場に戻す」を持つ。]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[{1}{U}: 이 생물을 추방한 후 당신의 조종하에 전장으로 되돌린다”라는 능력을 갖는다.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[{1}{U}: изгоните это существо, затем верните его на поле битвы под вашим контролем.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[{1}{U}: Exile esta criatura e depois a devolva ao campo de batalha sob o seu controle.]]></LOCALISED_TEXT>
<COST mana_cost="{1}" type="Mana" />
<RESOLUTION_TIME_ACTION>
if EffectSource() ~= nil then
EffectDC():Set_CardPtr( 0, EffectSource() )
EffectDC():Protect_CardPtr( COMPARTMENT_ID_EFFECT_SOURCE )
EffectSource():Exile()
end
</RESOLUTION_TIME_ACTION>
<RESOLUTION_TIME_ACTION>
local creature = EffectDC():Get_CardPtr(0)
if creature ~= nil then
creature:PutOntoBattlefield( EffectController() )
end
</RESOLUTION_TIME_ACTION>
<AI_AVAILABILITY window_step="end_of_turn" window_turn="their_turn" type="window" />
<AI_AVAILABILITY window_step="declare_attackers" window_turn="their_turn" type="window" />
<AI_AVAILABILITY window_step="main_2" window_turn="my_turn" type="window" />
<AI_AVAILABILITY window_step="main_1" window_turn="my_turn" type="window" />
<AI_AVAILABILITY type="in_response" response_source="1" />
<AI_AVAILABILITY type="in_response" response_target="1" />
</ACTIVATED_ABILITY>
- Code: Select all
EffectDC():Protect_CardPtr( COMPARTMENT_ID_EFFECT_SOURCE )
- Code: Select all
EffectDC():Protect_CardPtr(0)
If you want to to keep the code :
- Code: Select all
EffectDC():Protect_CardPtr( COMPARTMENT_ID_EFFECT_SOURCE )
- Code: Select all
<RESOLUTION_TIME_ACTION>
if EffectSource() ~= nil then
EffectDC():Protect_CardPtr( COMPARTMENT_ID_EFFECT_SOURCE )
EffectSource():Exile()
end
</RESOLUTION_TIME_ACTION>
<RESOLUTION_TIME_ACTION>
local creature = EffectSource()
if creature ~= nil then
creature:PutOntoBattlefield( EffectController() )
end
</RESOLUTION_TIME_ACTION>
- Code: Select all
EffectDC():Set_CardPtr( 0, EffectSource() )
And in the second resolution you will refer to the card using normally EffectSource() instead of EffectDC().
Anyway as you coded you will not see any effect, the card seems to remain on the battlefield, because the zone change is to fast.
You will understand that it has gained again the summon sickness this means that has left the battlefield and then is returned.
Last edited by NeoAnderson on 30 Dec 2013, 00:04, 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 MC Brodie » 30 Dec 2013, 00:04
Yes that worked, thank you. But to those of you that coded Aetherling, why do you protect the COMPARTMENT_ID_EFFECT_SOURCE instead of protecting the specific card pointer ID in the data chest?
Now that I see your edited post that helps a lot. Thank you! As I said, I cannot stand these cards that need to save information in chests across zone transitions.
Now that I see your edited post that helps a lot. Thank you! As I said, I cannot stand these cards that need to save information in chests across zone transitions.
-----------------------------------------------------------------------
Song of the Day: 46 and 2 (cover)
Song of the Day: 46 and 2 (cover)
Re: Formal Request Thread
by NeoAnderson » 30 Dec 2013, 00:17
You're welcome my friend, unfortunatelly i am not a programmer, so for detailed explainations you should wait for Riiak TheFireMind or Sumomole.MC Brodie wrote:Yes that worked, thank you. But to those of you that coded Aetherling, why do you protect the COMPARTMENT_ID_EFFECT_SOURCE instead of protecting the specific card pointer ID in the data chest?
Now that I see your edited post that helps a lot. Thank you! As I said, I cannot stand these cards that need to save information in chests across zone transitions.
About your last question about Ætherling, if you are talking about the TheFireMind version, inside the first resolution block he has protected the EffectSource pointer and exiled the creature, then in the second Resolution after checked that the EffectSource is not nil, he saved into a DelayedDC to create the delayed trigger.
If you read the rule of the card :
"Ætherling's first ability will return it to the battlefield only if that ability also exiled it. If Ætherling left the battlefield in response to that ability, it won't return, even if it was exiled by another spell or ability."
This could explain this solution, if something counter the ability the delayed trigger doesn't have to be created.
Anyway coding the same card could have many different way, not only one.
- NeoAnderson
- Posts: 914
- Joined: 10 Sep 2013, 07:49
- Has thanked: 18 times
- Been thanked: 139 times
Re: Formal Request Thread
by thefiremind » 30 Dec 2013, 00:25
Well, because AEtherling exiles itself, so the specific card pointer is the EffectSource pointer.MC Brodie wrote:Yes that worked, thank you. But to those of you that coded Aetherling, why do you protect the COMPARTMENT_ID_EFFECT_SOURCE instead of protecting the specific card pointer ID in the data chest?

EDIT: I started to write this post before NeoAnderson's edit (yeah I have been slow

< 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: Formal Request Thread
by NeoAnderson » 30 Dec 2013, 01:03
You are going forward with the age my friend!thefiremind wrote:Well, because AEtherling exiles itself, so the specific card pointer is the EffectSource pointer.MC Brodie wrote:Yes that worked, thank you. But to those of you that coded Aetherling, why do you protect the COMPARTMENT_ID_EFFECT_SOURCE instead of protecting the specific card pointer ID in the data chest?You are making a useless action in saving EffectSource to a different register: just protect it and then retrieve it directly. If you save it to a different register, and you plan on retrieving it from there, then that's the register that needs to be protected.
EDIT: I started to write this post before NeoAnderson's edit (yeah I have been slow), so it may be no longer useful. I'll leave it anyway, just in case.

I am joking all i have learned here is thanks to you, Riaak, and Sumomole.
Hey i have made this topic :
http://www.slightlymagic.net/forum/viewtopic.php?f=109&t=13096
Could someone of you check the list of the card i have not coded and let me know if someone could be coded?
Probably just 2 with some compromises (Metamorphosis as i discussed with Riiak) and (Nafs Asp if we decide how the player affected can pay anytime to prevent the damage)
I also have a question :
Now i am coding Antiquities Set, the card Primal Clay, the normal ability of this card is easy to code but i have a doubt about these additional Rules :
7/1/2012: If another permanent enters the battlefield as a copy of Primal Clay, the controller of that permanent will get to make a new choice. The copy won't necessarily have the same power, toughness, and abilities as the original.
7/1/2012: If a creature that's already on the battlefield becomes a copy of Primal Clay, it copies the power, toughness, and abilities that were chosen for Primal Clay when it entered the battlefield.
Honestly i can't figure a way to retrieve information when a spell is copying the card.
I could check when it BECAME_TARGET_OF_SPELL or ABILITY but not when its values are copied.
- 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 4 guests