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 mr friendly guy » 31 Aug 2013, 05:56
I am new to this, but playing around I have managed to code Glimpse the Unthinkable.
My question is, how do we code for exiling a card from the opponent's Library. Cards like Denying Wind, Lord of the Void, Nightveil Specter have this facility. I am kind of interested in experimenting and creating my own cards as well as coding for existing cards as well.
- | Open
- <?xml version='1.0' encoding='UTF-8'?>
<CARD_V2 ExportVersion="1">
<FILENAME text="GLIMPSE_THE_UNTHINKABLE_83597" />
<CARDNAME text="GLIMPSE_THE_UNTHINKABLE" />
<TITLE>
<LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Glimpse the Unthinkable]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Aperçu de l’inimaginable]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Vislumbrar lo impensable]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Schimmer des Undenkbaren]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Cogliere l’Inconcepibile]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[不可思の一瞥]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[Glimpse the Unthinkable]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[Невообразимый намек]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[Vislumbre do Inimaginável]]></LOCALISED_TEXT>
</TITLE>
<MULTIVERSEID value="83597" />
<ARTID value="83597" />
<ARTIST name="Brandon Kitkouski" />
<CASTING_COST cost="{U}{B}" />
<FLAVOURTEXT>
<LOCALISED_TEXT LanguageCode="en-US"><![CDATA[“I am confident that if anyone actually penetrates our facades, even the most perceptive would still be fundamentally unprepared for the truth of House Dimir.”
—Szadek]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[« Je suis sûr que même si quelqu’un perçait notre secret, même les plus perspicaces ne sauraient se préparer à la vérité sur la Maison Dimir. »
—Szadek]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[“Estoy convencido de que si alguien lograra penetrar nuestra fachada, ni siquiera los más perceptivos estarían preparados para ver la verdad sobre la Casa Dimir.”
—Szadek]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[„Ich bin überzeugt, dass niemand die Wahrheit über das Haus Dimir erkennen könnte, auch wenn Leute unsere Fassaden durchdringen würden.”
—Szadek]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[“Sono sicuro che se qualcuno dovesse oltrepassare le nostre facciate, anche il più perspicace sarebbe completamente impreparato alla verità sulla Casata Dimir.”
—Szadek]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[我らの建前を見抜けるどんな鋭い者がいたとしても、ディミーア家の真実に対する構えはまったくできていないだろう。
――ザデック]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[“I am confident that if anyone actually penetrates our facades, even the most perceptive would still be fundamentally unprepared for the truth of House Dimir.”
—Szadek]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[“Я убежден, что если кому-то удастся и в самом деле попасть за наши стены, даже самые проницательные окажутся совершенно неподготовленными к тому, что есть Дом Димиров на самом деле”.
—Задек]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[“Estou certo de que se alguém ultrapassar nossa fachada, mesmo a pessoa mais perspicaz, ainda assim não estará realmente preparado para a verdade da Casa Dimir.”
—Szadek]]></LOCALISED_TEXT>
</FLAVOURTEXT>
<TYPE metaname="Sorcery" />
<EXPANSION value="RAV" />
<RARITY metaname="R" />
<SPELL_ABILITY>
<LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Target player puts the top ten cards of his or her library into his or her graveyard.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Le joueur ciblé met les dix cartes du dessus de sa bibliothèque dans son cimetière.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[El jugador objetivo pone las diez cartas de la parte superior de su biblioteca en su cementerio.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Ein Spieler deiner Wahl legt die obersten 10 Karten seiner Bibliothek auf seinen Friedhof.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Il giocatore bersaglio mette nel proprio cimitero le prime dieci carte del proprio grimorio.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[プレイヤー1人を対象とする。そのプレイヤーは、自分のライブラリーの一番上のカード10枚を自分の墓地に置く。]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[Target player puts the top ten cards of his or her library into his or her graveyard.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[Целевой игрок помещает десять верхних карт своей библиотеки на свое кладбище.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[O jogador alvo coloca os dez primeiros cards de seu grimório em seu cemitério.]]></LOCALISED_TEXT>
<TARGET tag="CARD_QUERY_CHOOSE_PLAYER_MILL_10" definition="0" compartment="0" count="1" />
<TARGET_DEFINITION id="0">
local filter = ClearFilter()
filter:SetFilterType( FILTER_TYPE_PLAYERS )
filter:Add( FE_TEAM, OP_NOT, EffectController():GetTeam() )
</TARGET_DEFINITION>
<RESOLUTION_TIME_ACTION>
local target = EffectDC():Get_Targets(0):Get_PlayerPtr(0)
if target ~= nil then
target:MillCards( 10 )
end
</RESOLUTION_TIME_ACTION>
</SPELL_ABILITY>
</CARD_V2>
My question is, how do we code for exiling a card from the opponent's Library. Cards like Denying Wind, Lord of the Void, Nightveil Specter have this facility. I am kind of interested in experimenting and creating my own cards as well as coding for existing cards as well.
- mr friendly guy
- Posts: 85
- Joined: 23 Aug 2013, 12:03
- Has thanked: 2 times
- Been thanked: 1 time
Re: Formal Request Thread
by sumomole » 31 Aug 2013, 06:39
Glimpse the Unthinkable target players, including yourself and your teammate, so you need to del filter:Add(FE_TEAM, OP_NOT, EffectController():GetTeam()).mr friendly guy wrote:I am new to this, but playing around I have managed to code Glimpse the Unthinkable.
My question is, how do we code for exiling a card from the opponent's Library. Cards like Denying Wind, Lord of the Void, Nightveil Specter have this facility. I am kind of interested in experimenting and creating my own cards as well as coding for existing cards as well.
Exile a card from anywhere use card:Exile(), and Lord of the Void is in my mod, you can look at it.
EDIT: You'd better not directly use the official multiverse ID, that may cause conflicts, you can add a two-digit prefix, and all used prefixes are here, you have to avoid them.
-
sumomole - Programmer
- Posts: 611
- Joined: 07 Jun 2011, 08:34
- Has thanked: 51 times
- Been thanked: 234 times
Re: Formal Request Thread
by mr friendly guy » 31 Aug 2013, 07:55
I must admit, I haven't noticed it prevents me targeting myself. Literally I just took a Mind Sculpt card, changed to Glimpse the Unthinkable wording, casting cost etc, and changed the Mill value from 7 to 10.sumomole wrote:Glimpse the Unthinkable target players, including yourself and your teammate, so you need to del filter:Add(FE_TEAM, OP_NOT, EffectController():GetTeam()).mr friendly guy wrote:I am new to this, but playing around I have managed to code Glimpse the Unthinkable.
My question is, how do we code for exiling a card from the opponent's Library. Cards like Denying Wind, Lord of the Void, Nightveil Specter have this facility. I am kind of interested in experimenting and creating my own cards as well as coding for existing cards as well.
Exile a card from anywhere use card:Exile(), and Lord of the Void is in my mod, you can look at it.
EDIT: You'd better not directly use the official multiverse ID, that may cause conflicts, you can add a two-digit prefix, and all used prefixes are here, you have to avoid them.
Thanks for the tip. I will have a look at Lord of the Void.
- mr friendly guy
- Posts: 85
- Joined: 23 Aug 2013, 12:03
- Has thanked: 2 times
- Been thanked: 1 time
Re: Formal Request Thread
by Siggi » 31 Aug 2013, 08:04
If Possible I would like to Request following Cards
March of the Machines
Mycosynth Lattice
Enchanted Evening
Xenograft
Conspiracy
Thanks very much
March of the Machines
Mycosynth Lattice
Enchanted Evening
Xenograft
Conspiracy
Thanks very much
Re: Formal Request Thread
by drleg3nd » 31 Aug 2013, 21:11
hey guys i would like to request Descent into Madness
- Descent into Madness | Open
- Code: Select all
<?xml version='1.0' encoding='UTF-8'?>
<CARD_V2 ExportVersion="1">
<FILENAME text="DESCENT_INTO_MADNESS_812240119" />
<CARDNAME text="DESCENT_INTO_MADNESS" />
<TITLE>
<LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Descent into Madness]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Descente dans la folie]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Descenso a la locura]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Abstieg in den Wahnsinn]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Discesa nella Follia]]></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[Descida para a Loucura]]></LOCALISED_TEXT>
</TITLE>
<MULTIVERSEID value="812240119" />
<ARTID value="812240119" />
<ARTIST name="Anthony Francisco" />
<CASTING_COST cost="{3}{B}{B}" />
<FLAVOURTEXT>
<LOCALISED_TEXT LanguageCode="en-US"><![CDATA[The stairs lead down in both directions.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Cet escalier descend dans les deux directions.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Las escaleras descienden en ambas direcciones.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Die Stufen führen in beide Richtungen nach unten.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Le scale scendono in entrambe le direzioni.]]></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[A escada desce em ambas as direções.]]></LOCALISED_TEXT>
</FLAVOURTEXT>
<TYPE metaname="Enchantment" />
<EXPANSION value="AVR" />
<RARITY metaname="M" />
<TRIGGERED_ABILITY>
<LOCALISED_TEXT LanguageCode="en-US"><![CDATA[At the beginning of your upkeep, put a despair counter on Descent into Madness, then each player exiles X permanents he or she controls and/or cards from his or her hand, where X is the number of despair counters on Descent into Madness.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Au début de votre entretien, mettez un marqueur « désespoir » sur la Descente dans la folie, puis chaque joueur exile X permanents qu’il contrôle et/ou cartes de sa main, X étant le nombre de marqueurs « désespoir » sur la Descente dans la folie.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Al comienzo de tu mantenimiento, pon un contador de desesperación sobre el Descenso a la locura, luego cada jugador exilia X permanentes que controla y/o cartas de su mano, donde X es el número de contadores de desesperación sobre el Descenso a la locura.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Lege zu Beginn deines Versorgungssegments eine Verzweiflungsmarke auf den Abstieg in den Wahnsinn. Danach schickt jeder Spieler X bleibende Karten, die er kontrolliert, und/oder Karten von seiner Hand ins Exil, wobei X die Anzahl der Verzweiflungsmarken auf dem Abstieg in den Wahnsinn ist.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[All’inizio del tuo mantenimento, metti un segnalino disperazione sulla Discesa nella Follia, poi ogni giocatore esilia X permanenti che controlla e/o carte dalla sua mano, dove X è il numero di segnalini disperazione sulla Discesa nella Follia.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[あなたのアップキープ開始時に、狂気堕ちの上に絶望カウンターを1個置く。その後各プレイヤーは自分がコントロールするパーマネントか自分の手札のカード(あるいはその組み合わせ)をX個追放する。Xは狂気堕ちの上に置かれた絶望カウンターの総数に等しい。]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[당신의 유지단 시작에, 광기로의 타락에 절망 카운터 한 개를 올려놓은 후, 각 플레이어는 자신이 조종하는 지속물 X개 및/또는 자신의 손에서 카드 X장을 추방한다. X는 광기로의 타락이 가진 절망 카운터의 개수다.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[В начале вашего шага поддержки положите один жетон отчаяния на Погружение в Безумие, затем каждый игрок изгоняет X перманентов под своим контролем и карт из своей руки, где X — количество жетонов отчаяния на Погружении в Безумие.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[No início de sua manutenção, coloque um marcador de desespero sobre Descida para a Loucura. Depois, cada jogador exila X permanentes que ele controle e/ou cards da própria mão, sendo X igual ao número de marcadores de desespero sobre Descida para a Loucura.]]></LOCALISED_TEXT>
</TRIGGERED_ABILITY>
</CARD_V2>
Re: Formal Request Thread
by gorem2k » 31 Aug 2013, 21:38
wow this one is interesting, I can see clever math calculations on the way to determinate which cards are possible to exile in hand and on battlefield zones for each player without screwing up...drleg3nd wrote:hey guys i would like to request Descent into Madness
drl3gnd, why you always come up with difficult cards?
I will try this one soon.
EDIT: I wonder if we can combine these two zones in 1 queryDC?
EDIT2: well, I don't know how to.. so here's the beginning unfinished code if you want, I've removed the second resolution because heh it didn't work.
- Code: Select all
<TRIGGERED_ABILITY>
<LOCALISED_TEXT LanguageCode="en-US"><![CDATA[At the beginning of your upkeep, put a despair counter on Descent into Madness, then each player exiles X permanents he or she controls and/or cards from his or her hand, where X is the number of despair counters on Descent into Madness.]]></LOCALISED_TEXT>
<COUNTER_REGISTRATION name="Despair" proliferate="11" />
<TRIGGER value="BEGINNING_OF_PLAYERS_STEP" simple_qualifier="controller">
return MTG():GetStep() == STEP_UPKEEP
</TRIGGER>
<RESOLUTION_TIME_ACTION>
if EffectSource() ~= nil then
EffectSource():AddCounters( MTG():GetCountersType("Despair"), 1)
end
</RESOLUTION_TIME_ACTION>
</TRIGGERED_ABILITY>
Last edited by gorem2k on 01 Sep 2013, 00:11, edited 2 times in total.
Re: Formal Request Thread
by thefiremind » 31 Aug 2013, 22:18
Sure you can. It will appear a bit weird to select cards on the battlefield as if they were somewhere else, but the alternative would be to ask for each zone separately without the chance to go back to the previous zone, which would probably be worse.gorem2k wrote:EDIT: I wonder if we can combine these two zones in 1 queryDC?
< 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 loookaz » 01 Sep 2013, 11:09
hi guys
i would like to kindly request Shriekmaw
and Massacre Wurm
i am making nice Rock type deck
and those cards would be perfect for it:)
i would like to kindly request Shriekmaw
and Massacre Wurm
i am making nice Rock type deck
and those cards would be perfect for it:)
Last edited by loookaz on 01 Sep 2013, 12:20, edited 1 time in total.
Najlepsze lekcje angielskiego w Warszawie:
http://www.englishwithlucas.com/
https://www.facebook.com/angielski.z.Lucasem
http://www.englishwithlucas.com/
https://www.facebook.com/angielski.z.Lucasem
- loookaz
- Posts: 131
- Joined: 01 Dec 2012, 10:56
- Location: Warsaw, Poland
- Has thanked: 22 times
- Been thanked: 2 times
Re: Formal Request Thread
by drleg3nd » 01 Sep 2013, 13:07
hehe thnx gorem, i'll try it out..i know you guys like challenge and i like to try different decks so these cards are beneficial to both of usgorem2k wrote:wow this one is interesting, I can see clever math calculations on the way to determinate which cards are possible to exile in hand and on battlefield zones for each player without screwing up...drleg3nd wrote:hey guys i would like to request Descent into Madness
drl3gnd, why you always come up with difficult cards?
I will try this one soon.
EDIT: I wonder if we can combine these two zones in 1 queryDC?
EDIT2: well, I don't know how to.. so here's the beginning unfinished code if you want, I've removed the second resolution because heh it didn't work.
- Code: Select all
<TRIGGERED_ABILITY>
<LOCALISED_TEXT LanguageCode="en-US"><![CDATA[At the beginning of your upkeep, put a despair counter on Descent into Madness, then each player exiles X permanents he or she controls and/or cards from his or her hand, where X is the number of despair counters on Descent into Madness.]]></LOCALISED_TEXT>
<COUNTER_REGISTRATION name="Despair" proliferate="11" />
<TRIGGER value="BEGINNING_OF_PLAYERS_STEP" simple_qualifier="controller">
return MTG():GetStep() == STEP_UPKEEP
</TRIGGER>
<RESOLUTION_TIME_ACTION>
if EffectSource() ~= nil then
EffectSource():AddCounters( MTG():GetCountersType("Despair"), 1)
end
</RESOLUTION_TIME_ACTION>
</TRIGGERED_ABILITY>

edit:since im not home yet,just to be sure..this code is not finished in what way ? what should i be expecting ? at a glance it looks like it will add a counter at upkeep but nothing else
Re: Formal Request Thread
by Aiodren » 01 Sep 2013, 16:37
Hey guys! With Jace, Architect of Thought in the game, wouldn't it be possible now to include Fact or Fiction and Sphinx of Uthuun as well? Like calculate the potential score of the 5 cards and do piles with roughly equal points, as done in Liliana's ultimate. Or am i missing something important here?
Re: Formal Request Thread
by thefiremind » 01 Sep 2013, 18:08
Yes, it should be possible. It's just that before making Planeswalkers together with gorem2k I haven't had the idea of implementing the AI part that way.Aiodren wrote:Hey guys! With Jace, Architect of Thought in the game, wouldn't it be possible now to include Fact or Fiction and Sphinx of Uthuun as well? Like calculate the potential score of the 5 cards and do piles with roughly equal points, as done in Liliana's ultimate. Or am i missing something important here?

< 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 gorem2k » 01 Sep 2013, 19:39
right, it doesn't do much, I have another one which will at least ask to exile from hand. as you can see, I've tried to evaluate objects from hand and battlefield then put in one queryDC but failed.drleg3nd wrote:since im not home yet,just to be sure..this code is not finished in what way ? what should i be expecting ? at a glance it looks like it will add a counter at upkeep but nothing else
- despair #2 | Open
- Code: Select all
<TRIGGERED_ABILITY>
<LOCALISED_TEXT LanguageCode="en-US"><![CDATA[At the beginning of your upkeep, put a despair counter on Descent into Madness, then each player exiles X permanents he or she controls and/or cards from his or her hand, where X is the number of despair counters on Descent into Madness.]]></LOCALISED_TEXT>
<COUNTER_REGISTRATION name="Despair" proliferate="11" />
<TRIGGER value="BEGINNING_OF_PLAYERS_STEP" simple_qualifier="controller">
return MTG():GetStep() == STEP_UPKEEP
</TRIGGER>
<RESOLUTION_TIME_ACTION>
if EffectSource() ~= nil then
EffectSource():AddCounters( MTG():GetCountersType("Despair"), 1)
end
</RESOLUTION_TIME_ACTION>
<RESOLUTION_TIME_ACTION repeating="1">
local n = MTG():GetActionRepCount()
local num_Players = MTG():GetNumberOfPlayers()
if (n < num_Players) then
-- local queryDC = EffectDC():Make_Chest(n+1)
local player = MTG():GetNthPlayer(n)
local filter = ClearFilter()
filter:SetZone( ZONE_HAND, player )
-- local secondSubFilter = filter:AddSubFilter_And()
-- secondSubFilter:Add(FE_ZONE, OP_IS, ZONE_BATTLEFIELD )
-- secondSubFilter:Add(FE_CONTROLLER, OP_IS, player)
-- local num_cards = filter:EvaluateObjects()
-- if num_cards >0 then
-- for t = 0, (num_cards-1) do
-- local card = filter:GetNthEvaluatedObject(t)
-- if card ~= nil then
-- queryDC:Set_CardPtr(t, card)
-- end
-- end
-- end
local numItemsToExile = EffectSource():CountCounters( MTG():GetCountersType("Despair") )
player:SetItemCount( numItemsToExile )
for i = 0, (numItemsToExile-1) do
player:SetItemPrompt( i, "CARD_QUERY_CHOOSE_CARD_TO_EXILE" )
end
-- player:ChooseItemsFromDC( EffectDC():Get_Chest(n+1), EffectDC():Make_Targets(n+1) )
player:ChooseItems( EffectDC():Make_Targets(n+1) )
return true
else
for i = 0, (num_Players-1) do
local player = MTG():GetNthPlayer(i)
local numExile = EffectDC():Get_Targets(i+1):Count()
for j = 0, (numExile-1) do
local cardToExile = EffectDC():Get_Targets(i+1):Get_CardPtr(j)
cardToExile:Exile()
end
end
return false
end
</RESOLUTION_TIME_ACTION>
</TRIGGERED_ABILITY>
Re: Formal Request Thread
by drleg3nd » 01 Sep 2013, 19:44
found wurm in dotp2013 wad..here ya goloookaz wrote:hi guys
i would like to kindly request Shriekmaw
and Massacre Wurm
i am making nice Rock type deck
and those cards would be perfect for it:)
- Massacre Wurm | Open
- Code: Select all
<TRIGGERED_ABILITY>
<LOCALISED_TEXT LanguageCode="en-US"><![CDATA[When Massacre Wurm enters the battlefield, creatures your opponents control get -2/-2 until end of turn.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Quand la Guivre du massacre arrive sur le champ de bataille, les créatures que vos adversaires contrôlent gagnent -2/-2 jusqu’à la fin du tour.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Cuando la Sierpe de la masacre entre al campo de batalla, las criaturas que controlan tus oponentes obtienen -2/-2 hasta el final del turno.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Wenn der Massakerwurm ins Spiel kommt, erhalten alle Kreaturen, die deine Gegner kontrollieren, -2/-2 bis zum Ende des Zuges.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Quando il Wurm della Strage entra nel campo di battaglia, le creature controllate dai tuoi avversari prendono -2/-2 fino alla fine del turno.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[虐殺のワームが戦場に出たとき、あなたの対戦相手がコントロールするクリーチャーはターン終了時まで-2/-2の修整を受ける。]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[학살자 웜이 전장에 들어올 때, 상대가 조종하는 생물들은 턴종료까지 -2/-2를 받는다.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[Когда Вурм Побоища выходит на поле битвы, существа под контролем ваших оппонентов получают -2/-2 до конца хода.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[Quando Vorme do Massacre entra no campo de batalha, as criaturas que seus oponentes controlam recebem -2/-2 até o final do turno.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="zh-CN"><![CDATA[当屠戮亚龙进战场时,由对手操控的生物得-2/-2直到回合结束。]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="zh-HK"><![CDATA[當屠戮亞龍進戰場時,由對手操控的生物得-2/-2直到回合結束。]]></LOCALISED_TEXT>
<SFX text="GLOBAL_MASSACRE_PLAY" />
<TRIGGER value="ZONECHANGE_END" simple_qualifier="self" to_zone="ZONE_BATTLEFIELD" />
<FILTER filter_id="0">
local filter = ClearFilter()
filter:Add( FE_TYPE, OP_IS, CARD_TYPE_CREATURE )
filter:Add( FE_TEAM, OP_NOT, EffectController():GetTeam() )
</FILTER>
<CONTINUOUS_ACTION layer="7C" filter_id="0">
if FilteredCard() ~= nil then
local characteristics = FilteredCard():GetCurrentCharacteristics()
characteristics:Power_Add( -2 )
characteristics:Toughness_Add( -2 )
end
</CONTINUOUS_ACTION>
<DURATION simple_duration="UntilEOT" />
</TRIGGERED_ABILITY>
<TRIGGERED_ABILITY>
<LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Whenever a creature an opponent controls dies, that player loses 2 life.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[À chaque fois qu’une créature qu’un adversaire contrôle meurt, ce joueur perd 2 points de vie.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Siempre que una criatura que controle un oponente muera, ese jugador pierde 2 vidas.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Immer wenn eine Kreatur stirbt, die ein Gegner kontrolliert, verliert dieser Spieler 2 Lebenspunkte.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Ogniqualvolta una creatura controllata da un avversario muore, quel giocatore perde 2 punti vita.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[いずれかの対戦相手がコントロールするクリーチャーが1体死亡するたび、そのプレイヤーは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[Toda vez que uma criatura que um oponente controla morre, aquele jogador perde 2 pontos de vida.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="zh-CN"><![CDATA[每当由对手操控的一个生物从战场进入坟墓场时,该牌手失去2点生命。]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="zh-HK"><![CDATA[每當由對手操控的一個生物從戰場進入墳墓場時,該玩家失去2點生命。]]></LOCALISED_TEXT>
<TRIGGER value="ZONECHANGE_BEGIN" to_zone="ZONE_GRAVEYARD" from_zone="ZONE_BATTLEFIELD">
return TriggerObject():GetCardType():Test( CARD_TYPE_CREATURE ) and TriggerObject():GetPlayer():GetTeam() ~= EffectController():GetTeam()
</TRIGGER>
<RESOLUTION_TIME_ACTION>
local player = TriggerObjectLKI():GetPlayer()
if player ~= nil then
player:LoseLife(2)
end
</RESOLUTION_TIME_ACTION>
</TRIGGERED_ABILITY>
Re: Formal Request Thread
by Aiodren » 01 Sep 2013, 22:10
I coded Fact or Fiction by shamelessly copy-pasting from jace and liliana and making adjustments where necessarythefiremind wrote:Yes, it should be possible. It's just that before making Planeswalkers together with gorem2k I haven't had the idea of implementing the AI part that way.I'm not "reserving" those cards to be coded by me, though, at least for now: I have another problem to solve first.


For anyone interested here's the code
- Code: Select all
<?xml version='1.0' encoding='UTF-8'?>
<CARD_V2 ExportVersion="1">
<FILENAME text="FACT_OR_FICTION_373325" />
<CARDNAME text="FACT_OR_FICTION" />
<TITLE>
<LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Fact or Fiction]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Fait ou fiction]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Realidad o ficción]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Fakt oder Fiktion]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Certezza o Finzione]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[嘘か真か]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[Fact or Fiction]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[Fact or Fiction]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[Fact or Fiction]]></LOCALISED_TEXT>
</TITLE>
<MULTIVERSEID value="373325" />
<ARTID value="FACT OR FICTION" />
<ARTIST name="Matt Cavotta" />
<CASTING_COST cost="{3}{U}" />
<FLAVOURTEXT>
<LOCALISED_TEXT LanguageCode="en-US"><![CDATA[“Try to pretend like you understand what’s important.”]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[« Fais au moins semblant de suivre. »]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[“Intenta pretender que entiendes lo que es importante.”]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[„Tu wenigstens so, als ob du verstündest, was wichtig ist.”]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[“Cerca di far finta di capire cosa è importante.”]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[「何が重要かわかっているふりでもするがいい。」]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[“Try to pretend like you understand what’s important.”]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[“Try to pretend like you understand what’s important.”]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[“Try to pretend like you understand what’s important.”]]></LOCALISED_TEXT>
</FLAVOURTEXT>
<TYPE metaname="Instant" />
<EXPANSION value="V13" />
<RARITY metaname="M" />
<SPELL_ABILITY>
<LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Reveal the top five cards of your library. An opponent separates those cards into two piles. Put one pile into your hand and the other into your graveyard.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Révélez les cinq cartes du dessus de votre bibliothèque. Un adversaire sépare ces cartes en deux tas. Mettez un tas dans votre main et l’autre dans votre cimetière.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Muestra las cinco cartas de la parte superior de tu biblioteca. Un oponente separa esas cartas en dos montones. Pon un montón en tu mano y el otro en tu cementerio.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Decke die obersten fünf Karten deiner Bibliothek auf. Ein Gegner teilt diese Karten auf zwei Haufen auf. Nimm die Karten des einen Haufens auf deine Hand und lege die anderen auf deinen Friedhof.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Rivela le prime cinque carte del tuo grimorio. Un avversario separa quelle carte in due pile. Aggiungi alla tua mano una pila e metti l’altra nel tuo cimitero.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[あなたのライブラリーの一番上から5枚のカードを公開する。 いずれかの対戦相手は、それらのカードを2つの束に分ける。 一方の束をあなたの手札に加え、もう一方をあなたの墓地に置く。]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[Reveal the top five cards of your library. An opponent separates those cards into two piles. Put one pile into your hand and the other into your graveyard.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[Reveal the top five cards of your library. An opponent separates those cards into two piles. Put one pile into your hand and the other into your graveyard.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[Reveal the top five cards of your library. An opponent separates those cards into two piles. Put one pile into your hand and the other into your graveyard.]]></LOCALISED_TEXT>
<RESOLUTION_TIME_ACTION>
local queryDC = EffectDC():Make_Chest(1)
for i=0,4 do
local card = EffectController():Library_GetNth(i)
if card ~= nil then
card:Reveal()
queryDC:Set_CardPtr(i, card)
end
end
</RESOLUTION_TIME_ACTION>
<RESOLUTION_TIME_ACTION>
local filter = ClearFilter()
filter:SetFilterType(FILTER_TYPE_PLAYERS)
filter:Add( FE_TEAM, OP_NOT, EffectController():GetTeam() )
EffectController():ChooseItem( "CARD_QUERY_CHOOSE_OPPONENT", EffectDC():Make_Targets(0) )
</RESOLUTION_TIME_ACTION>
<RESOLUTION_TIME_ACTION>
local opponent = EffectDC():Get_Targets(0):Get_PlayerPtr(0)
if opponent ~= nil then
local filter = ClearFilter()
local queryDC = EffectDC():Get_Chest(1)
local answerDC = EffectDC():Make_Targets(2)
local count = queryDC:Count()
if opponent:IsAI() then
local scores_array = {}
local total_score = 0
for i=0,count-1 do
scores_array[i] = queryDC:Get_CardPtr(i):CalcPotentialScore()
total_score = total_score + scores_array[i]
end
local half_total_score = total_score / 2
local temp_score = 0
for i=0,count-1 do
answerDC:Set_CardPtr(i, queryDC:Get_CardPtr(i))
temp_score = temp_score + scores_array[i]
if temp_score >= half_total_score then
break
end
end
else
filter:SetZone( ZONE_LIBRARY, EffectController() )
filter:SetPortion( count )
opponent:SetItemCount(count)
for i=0,count-1 do
opponent:SetItemPrompt(i, "PLW_CARD_QUERY_CHOOSE_CARD_TO_PILE")
end
opponent:ChooseItems(answerDC, QUERY_FLAG_UP_TO)
end
end
</RESOLUTION_TIME_ACTION>
<RESOLUTION_TIME_ACTION>
local queryDC = EffectDC():Get_Chest(1)
local answerDC = EffectDC():Get_Targets(2)
for i=0,queryDC:Count()-1 do
local card = queryDC:Get_CardPtr(i)
local was_selected = false
for j=0,answerDC:Count()-1 do
if card == answerDC:Get_CardPtr(j) then
was_selected = true
break
end
end
if was_selected == false then
queryDC:QueryUnselect_CardPtr(i)
end
end
EffectController():ChooseItemFromDC( "PLW_CARD_QUERY_SELECT_PILE_TO_PUT_INTO_HAND", queryDC, EffectDC():Make_Targets(3), QUERY_FLAG_MAY )
</RESOLUTION_TIME_ACTION>
<RESOLUTION_TIME_ACTION>
local queryDC = EffectDC():Get_Chest(1)
local answerDC = EffectDC():Get_Targets(2)
local decision = EffectDC():Get_Targets(3) and EffectDC():Get_Targets(3):Get_CardPtr(0)
for i=0,queryDC:Count()-1 do
local card = queryDC:Get_CardPtr(i)
local was_selected = false
for j=0,answerDC:Count()-1 do
if card == answerDC:Get_CardPtr(j) then
was_selected = true
break
end
end
if decision ~= nil then
-- I chose the selected pile, so answerDC goes to the hand, the rest goes to the graveyard
if was_selected then
card:GuidedReveal(ZONE_LIBRARY, ZONE_HAND)
card:PutInHand()
else
card:PutInGraveyard()
end
else
-- I chose the unselected pile, so it's the other way around
if was_selected then
card:PutInGraveyard()
else
card:GuidedReveal(ZONE_LIBRARY, ZONE_HAND)
card:PutInHand()
end
end
end
</RESOLUTION_TIME_ACTION>
</SPELL_ABILITY>
</CARD_V2>
Last edited by Aiodren on 14 Sep 2013, 18:17, edited 1 time in total.
Who is online
Users browsing this forum: No registered users and 21 guests