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 thefiremind » 11 Oct 2013, 08:55
Here's Sylvan Primordial. The other cards need mana functions so I'll leave them to other modders.drleg3nd wrote:hope my requests didn't get lost ..
- Sylvan Primordial (tested) | Open
- Code: Select all
<?xml version='1.0' encoding='UTF-8'?>
<CARD_V2 ExportVersion="1">
<FILENAME text="SYLVAN_PRIMORDIAL_366282" />
<CARDNAME text="SYLVAN_PRIMORDIAL" />
<TITLE>
<LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Sylvan Primordial]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Primordial sylvestre]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Primordial silvano]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Waldurwesen]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Primordiale Silvano]]></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[Primordial Silvestre]]></LOCALISED_TEXT>
</TITLE>
<MULTIVERSEID value="366282" />
<ARTID value="366282" />
<ARTIST name="Stephan Martiniere" />
<CASTING_COST cost="{5}{G}{G}" />
<TYPE metaname="Creature" />
<SUB_TYPE metaname="Avatar" />
<EXPANSION value="GTC" />
<RARITY metaname="R" />
<POWER value="6" />
<TOUGHNESS value="8" />
<STATIC_ABILITY>
<LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Reach]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Portée]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Alcance.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Reichweite]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Raggiungere]]></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[Alcance]]></LOCALISED_TEXT>
<INTRINSIC characteristic="CHARACTERISTIC_REACH" />
</STATIC_ABILITY>
<TRIGGERED_ABILITY>
<LOCALISED_TEXT LanguageCode="en-US"><![CDATA[When Sylvan Primordial enters the battlefield, for each opponent, destroy target noncreature permanent that player controls. For each permanent destroyed this way, search your library for a Forest card and put that card onto the battlefield tapped. Then shuffle your library.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Quand le Primordial sylvestre arrive sur le champ de bataille, pour chaque adversaire, détruisez un permanent non-créature ciblé que ce joueur contrôle. Pour chaque permanent détruit de cette manière, cherchez une carte de forêt dans votre bibliothèque et mettez-la sur le champ de bataille engagée. Mélangez ensuite votre bibliothèque.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Cuando el Primordial silvano entre al campo de batalla, por cada oponente, destruye el permanente objetivo que no sea criatura que controla ese jugador. Por cada permanente destruido de esta manera, busca una carta de bosque en tu biblioteca y pon esa carta en el campo de batalla girada. Luego baraja tu biblioteca.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Wenn das Waldurwesen ins Spiel kommt, zerstöre von jedem Gegner eine bleibende Karte deiner Wahl, die keine Kreatur ist und die dieser Spieler kontrolliert. Durchsuche für jede so zerstörte bleibende Karte deine Bibliothek nach einer Wald-Karte und bringe diese Karte getappt ins Spiel. Mische danach deine Bibliothek.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Quando il Primordiale Silvano entra nel campo di battaglia, per ogni avversario, distruggi un permanente non creatura bersaglio controllato da quel giocatore. Per ogni permanente distrutto in questo modo, passa in rassegna il tuo grimorio per una carta Foresta e mettila sul campo di battaglia TAPpata. Poi rimescola il tuo grimorio.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[When Sylvan Primordial enters the battlefield, for each opponent, destroy target noncreature permanent that player controls. For each permanent destroyed this way, search your library for a Forest card and put that card onto the battlefield tapped. Then shuffle your library.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[녹지의 원시정령이 전장에 들어올 때, 각 상대마다 그가 조종하는 지속물 중 생물이 아닌 지속물 한 개를 목표로 정한다. 그 지속물들을 파괴한다. 이렇게 파괴된 지속물 한 개당 당신의 서고에서 숲 카드 한 장을 찾아 탭된 채로 전장에 놓는다. 그러고 나서 당신의 서고를 섞는다.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[Когда Первородный Дух Леса выходит на поле битвы, для каждого оппонента уничтожьте целевой не являющийся существом перманент под контролем того игрока. За каждый перманент, уничтоженный таким образом, найдите в вашей библиотеке карту Леса и положите ее на поле битвы повернутой. Затем перетасуйте вашу библиотеку.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[When Sylvan Primordial enters the battlefield, for each opponent, destroy target noncreature permanent that player controls. For each permanent destroyed this way, search your library for a Forest card and put that card onto the battlefield tapped. Then shuffle your library.]]></LOCALISED_TEXT>
<TRIGGER value="ZONECHANGE_END" simple_qualifier="self" to_zone="ZONE_BATTLEFIELD" />
<TARGET tag="CARD_QUERY_CHOOSE_NONCREATURE_PERMANENT_TO_DESTROY" definition="0" compartment="0">
if MTG():GetNumberOfStartingPlayers() > 0 then
local player = MTG():GetNthStartingPlayer(0)
if player ~= nil and player:GetTeam() ~= EffectController():GetTeam() then
-- applicable, single target
MTG():SetTargetCount(1)
return
end
end
-- not applicable
MTG():SetTargetCount(0)
</TARGET>
<TARGET tag="CARD_QUERY_CHOOSE_NONCREATURE_PERMANENT_TO_DESTROY" definition="1" compartment="1">
if MTG():GetNumberOfStartingPlayers() > 1 then
local player = MTG():GetNthStartingPlayer(1)
if player ~= nil and player:GetTeam() ~= EffectController():GetTeam() then
-- applicable, single target
MTG():SetTargetCount(1)
return
end
end
-- not applicable
MTG():SetTargetCount(0)
</TARGET>
<TARGET tag="CARD_QUERY_CHOOSE_NONCREATURE_PERMANENT_TO_DESTROY" definition="2" compartment="2">
if MTG():GetNumberOfStartingPlayers() > 2 then
local player = MTG():GetNthStartingPlayer(2)
if player ~= nil and player:GetTeam() ~= EffectController():GetTeam() then
-- applicable, single target
MTG():SetTargetCount(1)
return
end
end
-- not applicable
MTG():SetTargetCount(0)
</TARGET>
<TARGET tag="CARD_QUERY_CHOOSE_NONCREATURE_PERMANENT_TO_DESTROY" definition="3" compartment="3">
if MTG():GetNumberOfStartingPlayers() > 3 then
local player = MTG():GetNthStartingPlayer(3)
if player ~= nil and player:GetTeam() ~= EffectController():GetTeam() then
-- applicable, single target
MTG():SetTargetCount(1)
return
end
end
-- not applicable
MTG():SetTargetCount(0)
</TARGET>
<TARGET_DEFINITION id="0">
local filter = ClearFilter()
if MTG():GetNumberOfStartingPlayers() > 0 then
filter:Add( FE_CONTROLLER, OP_IS, MTG():GetNthStartingPlayer(0) )
filter:Add(FE_IS_PERMANENT, true)
filter:Add(FE_TYPE, OP_NOT, CARD_TYPE_CREATURE)
end
</TARGET_DEFINITION>
<TARGET_DEFINITION id="1">
local filter = ClearFilter()
if MTG():GetNumberOfStartingPlayers() > 1 then
filter:Add( FE_CONTROLLER, OP_IS, MTG():GetNthStartingPlayer(1) )
filter:Add(FE_IS_PERMANENT, true)
filter:Add(FE_TYPE, OP_NOT, CARD_TYPE_CREATURE)
end
</TARGET_DEFINITION>
<TARGET_DEFINITION id="2">
local filter = ClearFilter()
if MTG():GetNumberOfStartingPlayers() > 2 then
filter:Add( FE_CONTROLLER, OP_IS, MTG():GetNthStartingPlayer(2) )
filter:Add(FE_IS_PERMANENT, true)
filter:Add(FE_TYPE, OP_NOT, CARD_TYPE_CREATURE)
end
</TARGET_DEFINITION>
<TARGET_DEFINITION id="3">
local filter = ClearFilter()
if MTG():GetNumberOfStartingPlayers() > 3 then
filter:Add( FE_CONTROLLER, OP_IS, MTG():GetNthStartingPlayer(3) )
filter:Add(FE_IS_PERMANENT, true)
filter:Add(FE_TYPE, OP_NOT, CARD_TYPE_CREATURE)
end
</TARGET_DEFINITION>
<RESOLUTION_TIME_ACTION>
local found_targets = EffectDC():Make_Chest(4)
local num_players = MTG():GetNumberOfStartingPlayers()
for i=0,num_players-1 do
local targetDC = EffectDC():Get_Targets(i)
if targetDC ~= nil then
local target = targetDC:Get_CardPtr(0)
if target ~= nil then
found_targets:Set_Int(i, 1)
target:Destroy()
end
end
end
</RESOLUTION_TIME_ACTION>
<RESOLUTION_TIME_ACTION>
local destroyed = 0
local found_targets = EffectDC():Get_Chest(4)
local num_players = MTG():GetNumberOfStartingPlayers()
for i=0,num_players-1 do
local targetDC = EffectDC():Get_Targets(i)
if targetDC ~= nil then
if found_targets:Get_Int(i) == 1 and targetDC:Get_CardPtr(0) == nil then
-- the target was there, but now it's not, so it has been destroyed
destroyed = destroyed + 1
end
end
end
if destroyed > 0 then
local filter = ClearFilter()
local controller = EffectController()
filter:Add(FE_SUBTYPE, OP_IS, LAND_TYPE_FOREST)
filter:SetZone(ZONE_LIBRARY, controller)
controller:SetItemCount(destroyed)
for i=0,destroyed-1 do
controller:SetItemPrompt(i, "CARD_QUERY_CHOOSE_LAND_FOREST_TO_PUT_ONTO_BATTLEFIELD")
end
controller:ChooseItems( EffectDC():Make_Targets(5) )
end
</RESOLUTION_TIME_ACTION>
<RESOLUTION_TIME_ACTION>
local targetDC = EffectDC():Get_Targets(5)
if targetDC ~= nil then
for i=0,targetDC:Count()-1 do
local target_card = targetDC:Get_CardPtr(i)
if target_card ~= nil then
target_card:PutOntoBattlefieldTapped( EffectController() )
end
end
end
</RESOLUTION_TIME_ACTION>
</TRIGGERED_ABILITY>
<HELP title="MORE_INFO_BADGE_TITLE_5" body="MORE_INFO_BADGE_BODY_5" zone="ZONE_ANY" />
<SFX text="COMBAT_GAEA_ATTACK" power_boundary_min="1" power_boundary_max="-1" />
<AI_BASE_SCORE score="900" zone="ZONE_HAND" />
</CARD_V2>
--------------------------
I think Nightveil Specter has been requested more than once, and nobody ever made one, right? So here it is.
- Nightveil Specter (tested) | Open
- Code: Select all
<?xml version='1.0' encoding='UTF-8'?>
<CARD_V2 ExportVersion="1">
<FILENAME text="NIGHTVEIL_SPECTER_366242" />
<CARDNAME text="NIGHTVEIL_SPECTER" />
<TITLE>
<LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Nightveil Specter]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Spectre voilenuit]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Espectro velo nocturno]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Nachtschleiergespenst]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Spettro Velo Notturno]]></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[Espectro do Véu da Noite]]></LOCALISED_TEXT>
</TITLE>
<MULTIVERSEID value="366242" />
<ARTID value="366242" />
<ARTIST name="Min Yum" />
<CASTING_COST cost="{U/B}{U/B}{U/B}" />
<TYPE metaname="Creature" />
<SUB_TYPE metaname="Specter" />
<EXPANSION value="GTC" />
<RARITY metaname="R" />
<POWER value="2" />
<TOUGHNESS value="3" />
<STATIC_ABILITY>
<LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Flying]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Vol]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Vuela.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Fliegend]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Volare]]></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[Voar]]></LOCALISED_TEXT>
<INTRINSIC characteristic="CHARACTERISTIC_FLYING" />
</STATIC_ABILITY>
<TRIGGERED_ABILITY linked_ability_group="1">
<LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Whenever Nightveil Specter deals combat damage to a player, that player exiles the top card of his or her library.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[À chaque fois que le Spectre voilenuit inflige des blessures de combat à un joueur, ce joueur exile la carte du dessus de sa bibliothèque.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Siempre que el Espectro velo nocturno haga daño de combate a un jugador, ese jugador exilia la primera carta de su biblioteca.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Immer wenn das Nachtschleiergespenst einem Spieler Kampfschaden zufügt, schickt dieser Spieler die oberste Karte seiner Bibliothek ins Exil.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Ogniqualvolta lo Spettro Velo Notturno infligge danno da combattimento a un giocatore, quel giocatore esilia la prima carta del suo grimorio.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[夜帷の死霊がプレイヤー1人に戦闘ダメージを与えるたび、そのプレイヤーは自分のライブラリーの一番上のカードを追放する。]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[밤장막 스펙터가 플레이어에게 전투피해를 입힐 때마다, 그 플레이어는 자신의 서고 맨 위의 카드를 추방한다.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[Каждый раз, когда Призрак Ночного Покрова наносит боевые повреждения игроку, тот игрок изгоняет верхнюю карту своей библиотеки.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[Toda vez que Espectro do Véu da Noite causa dano de combate a um jogador, aquele jogador exila o card do topo do próprio grimório.]]></LOCALISED_TEXT>
<TRIGGER value="SOURCE_DEALS_DAMAGE_TO_PLAYER" simple_qualifier="self" damage_type="combat" />
<RESOLUTION_TIME_ACTION>
local top = SecondaryPlayer() and SecondaryPlayer():Library_GetTop()
if top ~= nil then
local index = LinkedDC():Get_Int(0)
local linkedDC = LinkedDC():Get_Chest(1)
if linkedDC == nil then
linkedDC = LinkedDC():Make_Chest(1)
end
linkedDC:Set_CardPtr(index, top)
linkedDC:Protect_CardPtr(index)
LinkedDC():Int_Inc(0)
top:Exile()
end
</RESOLUTION_TIME_ACTION>
</TRIGGERED_ABILITY>
<STATIC_ABILITY linked_ability_group="1">
<LOCALISED_TEXT LanguageCode="en-US"><![CDATA[You may play cards exiled with Nightveil Specter.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Vous pouvez jouer les cartes exilées par le Spectre voilenuit.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Puedes jugar las cartas exiliadas con el Espectro velo nocturno.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Du kannst mit dem Nachtschleiergespenst ins Exil geschickte Karten spielen.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Puoi giocare le carte esiliate con lo Spettro Velo Notturno.]]></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[Você pode jogar cards exilados com Espectro do Véu da Noite.]]></LOCALISED_TEXT>
<CONTINUOUS_ACTION layer="8">
local linkedDC = LinkedDC():Get_Chest(1)
if linkedDC ~= nil then
local count = LinkedDC():Get_Int(0)
for i=0,count-1 do
local card = linkedDC:Get_CardPtr(i)
if card ~= nil then
card:GetCurrentCharacteristics():GrantAbility(0)
end
end
end
</CONTINUOUS_ACTION>
</STATIC_ABILITY>
<UTILITY_ABILITY resource_id="0" qualifier="Normal_Cast" origin_controller_can_use="1" active_zone="ZONE_EXILE">
<LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Play this card from exile.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Jouez cette carte depuis l’exil.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Juega esta carta desde el exilio.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Diese Karte aus dem Exil spielen.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Gioca questa carta dall’esilio.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[Play this card from exile.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[Play this card from exile.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[Play this card from exile.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[Jogue este card a partir do exílio.]]></LOCALISED_TEXT>
</UTILITY_ABILITY>
<HELP title="MORE_INFO_BADGE_TITLE_10" body="MORE_INFO_BADGE_BODY_10" zone="ZONE_ANY" />
<SFX text="COMBAT_CHOP_LARGE_ATTACK" power_boundary_min="4" power_boundary_max="-1" />
<SFX text="COMBAT_CHOP_SMALL_ATTACK" power_boundary_min="1" power_boundary_max="3" />
<AI_BASE_SCORE score="450" zone="ZONE_BATTLEFIELD" />
</CARD_V2>
- "NailOnto" code | Open
- Code: Select all
<RESOLUTION_TIME_ACTION>
local linkedDC = LinkedDC():Get_Chest(1)
if EffectSource() ~= nil and linkedDC ~= nil then
local count = LinkedDC():Get_Int(0)
for i=0,count-1 do
local card = linkedDC:Get_CardPtr(i)
if card ~= nil then
card:NailOnto( EffectSource() )
end
end
end
</RESOLUTION_TIME_ACTION>
- Attachments
-
NIGHTVEIL_SPECTER_366242.zip
- Unprefixed, tested, illustration included
- (104.8 KiB) Downloaded 239 times
-
SYLVAN_PRIMORDIAL_366282.zip
- Unprefixed, tested, illustration included
- (114.29 KiB) Downloaded 236 times
< 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 Kieran » 11 Oct 2013, 10:35
Thanks drleg3nd! And thank you as well TFM! Lastly, can someone provide a HQ pic for Ember Swallower?
Re: Formal Request Thread
by Kieran » 11 Oct 2013, 12:31
Below is the code I stitched for Slaughter Games. Can someone take a look @ it and let me know if it's good. I don't have time to test it right now because I have some more assignments to finish but I'll test it later.
- Code: Select all
<?xml version='1.0' encoding='UTF-8'?>
<CARD_V2 ExportVersion="1">
<FILENAME text="SLAUGHTER_GAMES_290532" />
<CARDNAME text="SLAUGHTER_GAMES" />
<TITLE>
<LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Slaughter Games]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Jeux de massacre]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Juegos de masacre]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Schlachtspielchen]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Gioco al Massacro]]></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[Jogos de Matança]]></LOCALISED_TEXT>
</TITLE>
<MULTIVERSEID value="290532" />
<ARTID value="290532" />
<ARTIST name="Steve Prescott" />
<CASTING_COST cost="{2}{B}{R}" />
<TYPE metaname="Sorcery" />
<EXPANSION value="RTR" />
<RARITY metaname="R" />
<SPELL_ABILITY>
<LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Slaughter Games can’t be countered by spells or abilities.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Les Jeux de massacre ne peuvent pas être contrecarrés par des sorts ou des capacités.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Juegos de masacre no puede ser contrarrestado por hechizos o habilidades.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Schlachtspielchen kann nicht von Zaubersprüchen oder Fähigkeiten neutralisiert werden.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Il Gioco al Massacro non può essere neutralizzato da magie o abilità.]]></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[Jogos de Matança não pode ser anulado por mágicas ou habilidades.]]></LOCALISED_TEXT>
<CONTINUOUS_ACTION layer="8">
if EffectSource() ~= nil then
local characteristics = EffectSource():GetCurrentCharacteristics()
characteristics:Bool_Set( CHARACTERISTIC_CANT_BE_COUNTERED, 1 )
end
</CONTINUOUS_ACTION>
</SPELL_ABILITY>
<SPELL_ABILITY>
<LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Name a nonland card. Search target opponent’s graveyard, hand, and library for any number of cards with that name and exile them. Then that player shuffles his or her library.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Nommez une carte non-terrain. Cherchez dans le cimetière, la main et la bibliothèque de l’adversaire ciblé n’importe quel nombre de cartes avec ce nom et exilez-les. Ce joueur mélange ensuite sa bibliothèque.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Nombra una carta que no sea tierra. Busca en el cementerio, mano y biblioteca del oponente objetivo cualquier cantidad de cartas con ese nombre y exílialas. Luego ese jugador baraja su biblioteca.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Benenne eine Karte, die kein Land ist. Durchsuche den Friedhof, die Hand und die Bibliothek eines Gegners deiner Wahl nach einer beliebigen Anzahl an Karten mit diesem Namen und schicke sie ins Exil. Dieser Spieler mischt dann seine Bibliothek.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Nomina una carta non terra. Passa in rassegna il cimitero, la mano e il grimorio di un avversario bersaglio per un qualsiasi numero di carte con quel nome ed esiliale. Poi quel giocatore rimescola il suo grimorio.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[対戦相手1人を対象とし、土地でないカード名を1つ指定する。そのプレイヤーの墓地と手札とライブラリーから、その名前を持つカードを望む枚数探し、それらを追放する。その後、そのプレイヤーは自分のライブラリーを切り直す。]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[상대 한 명을 목표로 정한다. 대지가 아닌 카드 한 장을 호명한다. 그 상대의 무덤, 손, 서고에서 그 이름의 카드를 원하는 만큼 찾아서 추방한다. 그러고 나서 그 플레이어는 자신의 서고를 섞는다.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[Назовите карту, не являющуюся землей. Найдите на кладбище, в руке и в библиотеке целевого оппонента любое количество карт с тем именем и изгоните их. Затем тот игрок тасует свою библиотеку.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[Nomeie um card que não seja um terreno. Procure um número qualquer de cards com o mesmo nome daquele card no cemitério, na mão e no grimório do oponente alvo e exile-os. Depois, aquele jogador embaralha seu próprio grimório.]]></LOCALISED_TEXT>
<SFX text="TARGET_PESTS_PLAY" />
<TARGET tag="CARD_QUERY_CHOOSE_CARD_TO_EXILE" definition="0" compartment="0" count="1" />
<TARGET_DEFINITION id="0">
local filter = ClearFilter()
filter:SetFilterType( FILTER_TYPE_PLAYERS )
</TARGET_DEFINITION>
<RESOLUTION_TIME_ACTION>
local target = EffectDC():Get_Targets(0):Get_CardPtr(0)
if target ~= nil then
local owner = target:GetOwner()
EffectDC():Set_PlayerPtr(1, owner)
end
</RESOLUTION_TIME_ACTION>
<RESOLUTION_TIME_ACTION>
local target = EffectDC():Get_PlayerPtr(1)
if target ~= nil then
local chosenCard = EffectDC():Get_Targets(0):Get_CardPtr(0)
local effectController = EffectController()
local filter = ClearFilter()
filter:Add( FE_CARD_NAME, OP_IS, chosenCard )
filter:SetZone( ZONE_HAND, target)
local cardsInZone = filter:Count()
EffectController():SetItemCount( cardsInZone )
for i = 0, (cardsInZone-1) do
effectController:SetItemPrompt( i, "CARD_QUERY_CHOOSE_CARD_TO_EXILE" )
end
effectController:ChooseItems( EffectDC():Make_Targets(2), QUERY_FLAG_UP_TO )
end
</RESOLUTION_TIME_ACTION>
<RESOLUTION_TIME_ACTION>
local target = EffectDC():Get_PlayerPtr(1)
if target ~= nil then
local chosenCard = EffectDC():Get_Targets(0):Get_CardPtr(0)
local effectController = EffectController()
local filter = ClearFilter()
filter:Add( FE_CARD_NAME, OP_IS, chosenCard )
filter:SetZone( ZONE_GRAVEYARD, target)
local cardsInZone = filter:Count()
EffectController():SetItemCount( cardsInZone )
for i = 0, (cardsInZone-1) do
effectController:SetItemPrompt( i, "CARD_QUERY_CHOOSE_CARD_TO_EXILE" )
end
effectController:ChooseItems( EffectDC():Make_Targets(3), QUERY_FLAG_UP_TO )
end
</RESOLUTION_TIME_ACTION>
<RESOLUTION_TIME_ACTION>
local target = EffectDC():Get_PlayerPtr(1)
if target ~= nil then
local chosenCard = EffectDC():Get_Targets(0):Get_CardPtr(0)
local effectController = EffectController()
local filter = ClearFilter()
filter:Add( FE_CARD_NAME, OP_IS, chosenCard )
filter:SetZone( ZONE_LIBRARY, target)
local cardsInZone = filter:Count()
EffectController():SetItemCount( cardsInZone )
for i = 0, (cardsInZone-1) do
effectController:SetItemPrompt( i, "CARD_QUERY_CHOOSE_CARD_TO_EXILE" )
end
if cardsInZone > 0 then
effectController:ChooseItems( EffectDC():Make_Targets(4), QUERY_FLAG_UP_TO )
else
effectController:ChooseItems( EffectDC():Make_Targets(4), QUERY_FLAG_CAN_BE_FINISHED_EARLY_CANCEL_EDITION )
end
end
</RESOLUTION_TIME_ACTION>
<RESOLUTION_TIME_ACTION>
for i = 2, 4 do
local compartmentDC = EffectDC():Get_Targets(i)
if compartmentDC ~= nil then
local cardsInCompartment = compartmentDC:Count()
if cardsInCompartment > 0 then
for j = 0, (cardsInCompartment-1) do
local card = compartmentDC:Get_CardPtr(j)
if card ~= nil then
card:Exile()
end
end
end
end
end
</RESOLUTION_TIME_ACTION>
<RESOLUTION_TIME_ACTION>
local target = EffectDC():Get_PlayerPtr(1)
if target ~= nil then
target:ShuffleLibrary()
end
</RESOLUTION_TIME_ACTION>
<AI_SIMPLIFIED_TARGETING compartment="0" hint="HINT_ENEMY" />
</SPELL_ABILITY>
</CARD_V2>
Re: Formal Request Thread
by thefiremind » 11 Oct 2013, 13:55
You are targetting an opponent with a target query that says "CARD_QUERY_CHOOSE_CARD_TO_EXILE", but this is not critical. The problem is that I can't see you asking for a card name anywhere in the code, so I'm pretty sure there's something wrong. You need to see if someone already made an example of "name a card" ability. I made a set of functions for that purpose for DotP2013, but I don't know who worked on it for DotP2014... if anyone ever did.
Last edited by thefiremind on 11 Oct 2013, 15:40, edited 1 time in total.
< 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 MC Brodie » 11 Oct 2013, 14:38
I don't know how people can code cards like Slaughter Games or Pithing Needle since the player has to name a card. The big problem I can think of is the only way to name a card is to use a multiple choice list and you would need to have localised text files for each card name. Technically, you should have every card in magic available in the multiple choice list. You could cheat the list by checking the deck you see playing against and only putting the cards in your opponents deck in the multiple choice list. Though I don't think anyone found a way to do variable localised text so you would still need to define the localized text for each deck you intend to play against.
I know sumomole has worked on some of this. Take a look at his mod. Maybe he can prove everything I just said false.
Edit - Sorry for the late response. I started typing it but had to go to a meeting. I see TFM has already answered. I posted it anyway incase you might find some of it useful
I know sumomole has worked on some of this. Take a look at his mod. Maybe he can prove everything I just said false.
Edit - Sorry for the late response. I started typing it but had to go to a meeting. I see TFM has already answered. I posted it anyway incase you might find some of it useful
-----------------------------------------------------------------------
Song of the Day: 46 and 2 (cover)
Song of the Day: 46 and 2 (cover)
Re: Formal Request Thread
by jacque » 11 Oct 2013, 15:10
Just coded it... I think it is working as it should... Tested in FFA, 4 players total, you get to see all 4 revealed cards together. and each player loses the life according to the CMC accordingly... So yea... test it yourself and see what I meant... *din look into going player by player to reveal*... Enjoy =)
PS: Sorry, rushing to bed, nodding away already... had a very tiring day today...
- Attachments
-
DUSKMANTLE_SEER_366310.rar
- TESTED FFA 4P, TWICE...
- (113.42 KiB) Downloaded 224 times
Learn making your own cards today!!!
Click on
if a post/reply helped you.
I stitch old cards together to make new ones...
~ Jacque, the confused
Click on

I stitch old cards together to make new ones...
~ Jacque, the confused
Re: Formal Request Thread
by thefiremind » 11 Oct 2013, 15:40
I updated my "name a card" functions to DotP2014. You can find the result 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 Kieran » 11 Oct 2013, 15:46
Well, I did see that Cabal Therapy had the "Name a nonland card' phrase and Surgical Extraction had the second effect. Below is the 2014 codes for Cabal Therapy and Surgical Extraction. I think sumomole is the author of the code and I do remember Slaughter Games and Counterbore working properly for 2013. I requested Counterbore for 2014 earlier some time ago but it never surfaced. I'm not sure who coded Surgical Extraction but I tested it and the card seemed to work correctly.
Edit: I put the 2013 XML codes for Counterbore and Slaughter Games @ the end of this post if anyone wanted to see their structure.
Cabal Therapy 2014 XML
Surgical Extraction 2014 XML
Counterbore 2013 XML
Slaughter Games 2013 XML
Edit: I put the 2013 XML codes for Counterbore and Slaughter Games @ the end of this post if anyone wanted to see their structure.
Cabal Therapy 2014 XML
- Code: Select all
<?xml version="1.0"?>
<CARD_V2 ExportVersion="3">
<FILENAME text="CABAL_THERAPY_628438" />
<CARDNAME text="CABAL_THERAPY" />
<TITLE>
<LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Cabal Therapy]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Kabbalistische Therapie]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Terapia de la Cábala]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Thérapie de la Coterie]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Terapia della Cabala]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[Cabal Therapy]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[Cabal Therapy]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[Cabal Therapy]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[Terapia da Cabala]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="zh-CN"><![CDATA[柯帮疗法]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="zh-HK"><![CDATA[柯幫療法]]></LOCALISED_TEXT>
</TITLE>
<MULTIVERSEID value="628438" />
<ARTID value="628438" />
<ARTIST name="Raymond Swanland" />
<CASTING_COST cost="{B}" />
<TYPE metaname="Sorcery" />
<EXPANSION value="DPI" />
<RARITY metaname="U" />
<SPELL_ABILITY>
<LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Name a nonland card. Target player reveals his or her hand and discards all cards with that name.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Nommez une carte non-terrain. Le joueur ciblé révèle sa main et se défausse de toutes les cartes avec ce nom.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Nombra una carta que no sea tierra. El jugador objetivo muestra su mano y descarta de ahí todas las cartas que tengan ese nombre.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Benenne eine Karte, die kein Land ist. Ein Spieler deiner Wahl zeigt die Karten auf seiner Hand offen vor und wirft alle Karten darunter ab, die diesen Namen haben.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Nomina una carta non terra. Il giocatore bersaglio rivela la propria mano e scarta da essa tutte le carte con quel nome.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[Name a nonland card. Target player reveals his or her hand and discards all cards with that name.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[Name a nonland card. Target player reveals his or her hand and discards all cards with that name.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[Name a nonland card. Target player reveals his or her hand and discards all cards with that name.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[Nomeie um card que não seja um terreno. O jogador alvo revela sua própria mão e descarta todos os cards com aquele nome.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="zh-CN"><![CDATA[说出一个非地牌的名称。目标牌手展示其手牌,并弃掉所有该名称的牌。]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="zh-HK"><![CDATA[說出一個非地牌的名稱。目標玩家展示其手牌,並棄掉所有該名稱的牌。]]></LOCALISED_TEXT>
<SFX text="TARGET_PESTS_PLAY" />
<TARGET tag="CARD_QUERY_CHOOSE_PLAYER_DISCARD_NONLAND_CARD" definition="0" compartment="0" count="1" />
<TARGET_DEFINITION id="0">
local filter = ClearFilter()
filter:SetFilterType( FILTER_TYPE_PLAYERS )
</TARGET_DEFINITION>
<RESOLUTION_TIME_ACTION>
local target_player = EffectDC():Get_Targets(0):Get_PlayerPtr(0)
local player = EffectController()
if target_player ~= nil then
local filterDC = EffectDC():Make_Chest(2)
S_FillAlphabeticChest(filterDC, target_player, S_SELECT_PLAYER, 1)
player:SetItemCount( 1 )
player:SetItemPrompt( 0, "CARD_QUERY_CHOOSE_NONLAND_CARD_TO_DISCARD" )
player:ChooseItemsFromDC( filterDC, EffectDC():Make_Targets(1) )
end
</RESOLUTION_TIME_ACTION>
<RESOLUTION_TIME_ACTION>
local target_player = EffectDC():Get_Targets(0):Get_PlayerPtr(0)
if target_player ~= nil then
target_player:RevealHand()
end
</RESOLUTION_TIME_ACTION>
<FILTER filter_id="0">
local filter = ClearFilter()
filter:SetZone( ZONE_HAND )
filter:Add( FE_LUA_CONDITION, 1, EffectController(), EffectDC())
</FILTER>
<FILTER_CONDITION id="1">
local target_player = EffectDC():Get_Targets(0):Get_PlayerPtr(0)
local target_card = EffectDC():Get_Targets(1):Get_CardPtr(0)
if FilteredCard() ~= nil and target_player ~= nil and target_card ~= nil then
return (FilteredCard():GetCardName() == target_card:GetCardName() and FilteredCard():GetOwner() == target_player)
end
return false
</FILTER_CONDITION>
<RESOLUTION_TIME_ACTION filter_id="0">
if FilteredCard() ~= nil then
FilteredCard():Discard()
end
</RESOLUTION_TIME_ACTION>
<AI_SIMPLIFIED_TARGETING compartment="0" hint="HINT_ENEMY_ONLY" />
</SPELL_ABILITY>
<UTILITY_ABILITY qualifier="Flashback" active_zone="ZONE_GRAVEYARD">
<LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Flashback — Sacrifice a creature.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Flashback — Sacrifiez une créature.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Retrospectiva — Sacrificar una criatura.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Rückblendee — Opfere eine Kreatur.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Flashback — Sacrifica una creatura.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[フラッシュバック ― クリーチャーを1体生け贄に捧げる。]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[회상 — 생물 한 개를 희생한다.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[Воспоминание — Пожертвуйте существо.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[Recapitular — Sacrifique uma criatura.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="zh-CN"><![CDATA[返照~牺牲一个生物。]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="zh-HK"><![CDATA[返照~犧牲一個生物。]]></LOCALISED_TEXT>
<COST type="Sacrifice" definition="0" compartment="3" query_tag="CARD_QUERY_CHOOSE_CREATURE_TO_SACRIFICE" item_count="1" />
<COST_DEFINITION id="0">
local filter = ClearFilter()
filter:Add( FE_TYPE, OP_IS, CARD_TYPE_CREATURE )
filter:Add( FE_CONTROLLER, OP_IS, EffectController() )
</COST_DEFINITION>
</UTILITY_ABILITY>
<HELP title="MORE_INFO_TITLE_FLASHBACK" body="MORE_INFO_BODY_FLASHBACK" zone="ZONE_ANY" />
<AI_BASE_SCORE score="450" zone="ZONE_HAND" />
</CARD_V2>
Surgical Extraction 2014 XML
- Code: Select all
<?xml version="1.0"?>
<CARD_V2 ExportVersion="3">
<FILENAME text="SURGICAL_EXTRACTION_628480" />
<CARDNAME text="SURGICAL_EXTRACTION" />
<TITLE>
<LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Surgical Extraction]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Extraction chirurgicale]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Extracción quirúrgica]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Chirurgische Extraktion]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Estrazione Chirurgica]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[外科的摘出]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[Surgical Extraction]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[Хирургическое Извлечение]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[Extração Cirúrgica]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="zh-CN"><![CDATA[手术摘除]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="zh-HK"><![CDATA[手術摘除]]></LOCALISED_TEXT>
</TITLE>
<MULTIVERSEID value="628480" />
<ARTID value="628480" />
<ARTIST name="Steven Belledin" />
<CASTING_COST cost="{B/P}" />
<TYPE metaname="Instant" />
<EXPANSION value="DPI" />
<RARITY metaname="R" />
<SPELL_ABILITY>
<LOCALISED_TEXT LanguageCode="en-US"><![CDATA[|(|{J} |can be paid with either| {B} |or 2 life.)|]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[|(|{J} |peut être payé au choix avec| {B} |ou 2 points de vie.)|]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[|(|{J} |puede pagarse con| {B} |o con 2 vidas.)|]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[|(|{J} |kann entweder mit| {B} |oder 2 Lebenspunkten bezahlt werden.)|]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[|(|{J} |può essere pagato con| {B} |o con 2 punti vita.)|]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[({J}は{B}でも2点のライフでも支払うことができる。)]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[|(|{J} |can be paid with either| {B} |or 2 life.)|]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[|(За| {J} |можно заплатить либо| {B}|, либо 2 жизни.)|]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[|(|{J} |pode ser pago com| {B} |ou 2 pontos de vida.)|]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="zh-CN"><![CDATA[({J}可用{B}或2点生命来支付。)]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="zh-HK"><![CDATA[({J}可用{B}或2點生命來支付。)]]></LOCALISED_TEXT>
</SPELL_ABILITY>
<SPELL_ABILITY>
<LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Choose target card in a graveyard other than a basic land card. Search its owner’s graveyard, hand, and library for any number of cards with the same name as that card and exile them. Then that player shuffles his or her library.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Choisissez une carte ciblée dans un cimetière autre qu’une carte de terrain de base. Cherchez dans le cimetière, la main et la bibliothèque de son propriétaire n’importe quel nombre de cartes ayant le même nom que cette carte et exilez-les. Ce joueur mélange ensuite sa bibliothèque.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Elige una carta objetivo en un cementerio que no sea una carta de tierra básica. Busca en el cementerio, mano y biblioteca de su propietario cualquier cantidad de cartas con el nombre de esa carta y exílialas. Luego ese jugador baraja su biblioteca.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Bestimme eine Karte deiner Wahl in einem Friedhof, die kein Standardland ist. Durchsuche den Friedhof, die Hand und die Bibliothek ihres Besitzers nach einer beliebigen Anzahl an Karten mit demselben Namen wie jene Karte und schicke sie ins Exil. Dieser Spieler mischt dann seine Bibliothek.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Scegli una carta bersaglio in un cimitero diversa da una carta terra base. Passa in rassegna il cimitero, la mano e il grimorio del suo proprietario per un qualsiasi numero di carte con lo stesso nome di quella carta ed esiliale. Poi quel giocatore rimescola il suo grimorio.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[いずれかの墓地にある基本土地カードでないカード1枚を対象とする。 それのオーナーの墓地と手札とライブラリーから、そのカードと同じ名前を持つカードを望む枚数探し、それらを追放する。 その後、そのプレイヤーは自分のライブラリーを切り直す。]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[Choose target card in a graveyard other than a basic land card. Search its owner’s graveyard, hand, and library for any number of cards with the same name as that card and exile them. Then that player shuffles his or her library.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[Выберите находящуюся на кладбище целевую карту, не являющуюся картой базовой земли. Найдите на кладбище, в руке и в библиотеке ее владельца любое количество карт с таким же именем, как у нее, и изгоните их. Затем тот игрок тасует свою библиотеку.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[Escolha um card alvo de um cemitério que não seja um terreno básico. Procure um número qualquer de cards com o mesmo nome daquele card no cemitério, na mão e no grimório de seu dono e exile-os. Depois, aquele jogador embaralha seu próprio grimório.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="zh-CN"><![CDATA[选择在坟墓场中的目标牌,且不能是基本地。自其拥有者的坟墓场、手牌、以及牌库中搜寻任意数量与其同名的牌,并放逐这些牌。然后该牌手将他的牌库洗牌。]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="zh-HK"><![CDATA[選擇在墳墓場中的目標牌,且不能是基本地。自其擁有者的墳墓場、手牌、以及牌庫中搜尋任意數量與其同名的牌,並放逐這些牌。然後該玩家將他的牌庫洗牌。]]></LOCALISED_TEXT>
<TARGET tag="CARD_QUERY_CHOOSE_CARD_TO_EXILE" definition="0" compartment="0" count="1" />
<TARGET_DEFINITION id="0">
local filter = ClearFilter()
local subfilter = filter:AddSubFilter_Or()
subfilter:Add( FE_SUPERTYPE, OP_NOT, SUPERTYPE_BASIC )
subfilter:Add( FE_TYPE, OP_NOT, CARD_TYPE_LAND)
filter:SetZone( ZONE_GRAVEYARD )
</TARGET_DEFINITION>
<RESOLUTION_TIME_ACTION>
local target = EffectDC():Get_Targets(0):Get_CardPtr(0)
if target ~= nil then
local owner = target:GetOwner()
EffectDC():Set_PlayerPtr(1, owner)
end
</RESOLUTION_TIME_ACTION>
<RESOLUTION_TIME_ACTION>
local target = EffectDC():Get_PlayerPtr(1)
if target ~= nil then
local chosenCard = EffectDC():Get_Targets(0):Get_CardPtr(0)
local effectController = EffectController()
local filter = ClearFilter()
filter:Add( FE_CARD_NAME, OP_IS, chosenCard )
filter:SetZone( ZONE_HAND, target)
local cardsInZone = filter:Count()
EffectController():SetItemCount( cardsInZone )
for i = 0, (cardsInZone-1) do
effectController:SetItemPrompt( i, "CARD_QUERY_CHOOSE_CARD_TO_EXILE" )
end
effectController:ChooseItems( EffectDC():Make_Targets(2), QUERY_FLAG_UP_TO )
end
</RESOLUTION_TIME_ACTION>
<RESOLUTION_TIME_ACTION>
local target = EffectDC():Get_PlayerPtr(1)
if target ~= nil then
local chosenCard = EffectDC():Get_Targets(0):Get_CardPtr(0)
local effectController = EffectController()
local filter = ClearFilter()
filter:Add( FE_CARD_NAME, OP_IS, chosenCard )
filter:SetZone( ZONE_GRAVEYARD, target)
local cardsInZone = filter:Count()
EffectController():SetItemCount( cardsInZone )
for i = 0, (cardsInZone-1) do
effectController:SetItemPrompt( i, "CARD_QUERY_CHOOSE_CARD_TO_EXILE" )
end
effectController:ChooseItems( EffectDC():Make_Targets(3), QUERY_FLAG_UP_TO )
end
</RESOLUTION_TIME_ACTION>
<RESOLUTION_TIME_ACTION>
local target = EffectDC():Get_PlayerPtr(1)
if target ~= nil then
local chosenCard = EffectDC():Get_Targets(0):Get_CardPtr(0)
local effectController = EffectController()
local filter = ClearFilter()
filter:Add( FE_CARD_NAME, OP_IS, chosenCard )
filter:SetZone( ZONE_LIBRARY, target)
local cardsInZone = filter:Count()
EffectController():SetItemCount( cardsInZone )
for i = 0, (cardsInZone-1) do
effectController:SetItemPrompt( i, "CARD_QUERY_CHOOSE_CARD_TO_EXILE" )
end
if cardsInZone > 0 then
effectController:ChooseItems( EffectDC():Make_Targets(4), QUERY_FLAG_UP_TO )
else
effectController:ChooseItems( EffectDC():Make_Targets(4), QUERY_FLAG_CAN_BE_FINISHED_EARLY_CANCEL_EDITION )
end
end
</RESOLUTION_TIME_ACTION>
<RESOLUTION_TIME_ACTION>
for i = 2, 4 do
local compartmentDC = EffectDC():Get_Targets(i)
if compartmentDC ~= nil then
local cardsInCompartment = compartmentDC:Count()
if cardsInCompartment > 0 then
for j = 0, (cardsInCompartment-1) do
local card = compartmentDC:Get_CardPtr(j)
if card ~= nil then
card:Exile()
end
end
end
end
end
</RESOLUTION_TIME_ACTION>
<RESOLUTION_TIME_ACTION>
local target = EffectDC():Get_PlayerPtr(1)
if target ~= nil then
target:ShuffleLibrary()
end
</RESOLUTION_TIME_ACTION>
<AI_SIMPLIFIED_TARGETING compartment="0" hint="HINT_ENEMY" />
</SPELL_ABILITY>
<AI_BASE_SCORE score="750" zone="ZONE_HAND" />
</CARD_V2>
Counterbore 2013 XML
- Code: Select all
<?xml version='1.0'?>
<CARD_V2>
<FILENAME text="COUNTERBORE_153966" />
<CARDNAME text="COUNTERBORE" />
<TITLE>
<LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Counterbore]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Contreforet]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Contrataladro]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Loch im Kopf]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Foro Neutralizzatore]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[呪文穿ち]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[Counterbore]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[Высверливание]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[Nuliperfurador]]></LOCALISED_TEXT>
</TITLE>
<MULTIVERSEID value="153966" />
<ARTID value="RSN153966" />
<ARTIST name="Wayne England" />
<CASTING_COST cost="{3}{U}{U}" />
<TYPE metaname="Instant" />
<EXPANSION value="SHM" />
<RARITY metaname="R" />
<SPELL_ABILITY filter_zone="ZONE_ANY">
<LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Counter target spell. Search its controller's graveyard, hand, and library for all cards with the same name as that spell and remove them from the game. Then that player shuffles his or her library.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Contrecarrez le sort ciblé. Cherchez dans le cimetière, la main et la bibliothèque de son contrôleur toutes les cartes ayant le même nom que ce sort et retirez-les de la partie. Ce joueur mélange ensuite sa bibliothèque.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Contrarresta el hechizo objetivo. Busca en el cementerio, mano y biblioteca de su controlador todas las cartas con el mismo nombre que ese hechizo y remuévelas del juego. Luego ese jugador baraja su biblioteca.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Neutralisiere einen Zauberspruch deiner Wahl. Durchsuche den Friedhof, die Hand und die Bibliothek seines Besitzers nach allen Karten mit dem gleichen Namen wie jener Zauberspruch und entferne sie ganz aus dem Spiel. Dieser Spieler mischt dann seine Bibliothek.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Neutralizza una magia bersaglio. Passa in rassegna il cimitero, la mano e il grimorio del suo controllore per tutte le carte con lo stesso nome di quella magia e rimuovile dal gioco. Poi quel giocatore rimescola il suo grimorio.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[呪文1つを対象とし、それを打ち消す。 それのコントローラーの墓地と手札とライブラリーから、その呪文と同じ名前を持つカードをすべて探し、それらをゲームから取り除く。 その後、そのプレイヤーは自分のライブラリーを切り直す。]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[Counter target spell. Search its controller's graveyard, hand, and library for all cards with the same name as that spell and remove them from the game. Then that player shuffles his or her library.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[Отмените целевое заклинание. Найдите на кладбище, в руке и в библиотеке контролирующего его игрока все карты с тем же именем, что и то заклинание, и удалите их из игры. Затем тот игрок тасует свою библиотеку.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[Anule a mágica alvo. Procure no cemitério, na mão e no grimório de seu controlador por todos os cards com o mesmo nome daquela mágica e remova-os de jogo. Depois, aquele jogador embaralha seu próprio grimório.]]></LOCALISED_TEXT>
<TARGET_DEFINITION id="0">
local filter = Object():GetFilter()
filter:Clear()
filter:SetZone( ZONE_STACK )
filter:SetStackObjectType( STACK_OBJECT_CARD )
filter:SetHint( HINT_ENEMY_ONLY, EffectController() )
</TARGET_DEFINITION>
<TARGET_DETERMINATION>
return AtLeastOneTargetFromDefinition(0)
</TARGET_DETERMINATION>
<PLAY_TIME_ACTION target_choosing="1">
EffectController():ChooseTarget( 0, "CARD_QUERY_CHOOSE_SPELL_TO_COUNTER", EffectDC():Make_Targets(0) )
</PLAY_TIME_ACTION>
<RESOLUTION_TIME_ACTION ignore_filter="1">
local oCard = EffectSource():GetTargetCard()
if oCard ~= nil then
EffectDC():Set_ProtectedCardPtr( 0, oCard )
EffectDC():Set_PlayerPtr( 1, oCard:GetPlayer() )
oCard:CounterSpell()
end
</RESOLUTION_TIME_ACTION>
<RESOLUTION_TIME_ACTION>
local oFilter = EffectSource():GetFilter()
local oPlayer = EffectDC():Get_PlayerPtr( 1 )
local oCard = EffectDC():Get_ProtectedCardPtr( 0 )
for i=0,2 do
oFilter:Clear()
oFilter:SetPlayer( oPlayer )
if (i == 0) then
oFilter:SetZone( ZONE_GRAVEYARD )
elseif (i == 1) then
oFilter:SetZone( ZONE_HAND )
else
oFilter:SetZone( ZONE_LIBRARY )
end
oFilter:AddCardName( oCard:GetCardName() )
local nCount = oFilter:EvaluateObjects()
if (nCount > 0) then
for j=0,nCount-1 do
local oFoundCard = oFilter:GetNthEvaluatedObject( j )
if (oFoundCard ~= nil) then
oFoundCard:RemoveFromGame()
end
end
end
end
</RESOLUTION_TIME_ACTION>
<RESOLUTION_TIME_ACTION>
local oPlayer = EffectDC():Get_PlayerPtr( 1 )
oPlayer:ShuffleLibrary()
</RESOLUTION_TIME_ACTION>
</SPELL_ABILITY>
<AI_BASE_SCORE score="1050" zone="ZONE_HAND" />
</CARD_V2>
Slaughter Games 2013 XML
- Code: Select all
<?xml version='1.0'?>
<CARD_V2>
<FILENAME text="SLAUGHTER_GAMES_624672" />
<CARDNAME text="SLAUGHTER_GAMES" />
<TITLE>
<LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Slaughter Games]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Slaughter Games]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Slaughter Games]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Slaughter Games]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Slaughter Games]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[Slaughter Games]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[Slaughter Games]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[Slaughter Games]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[Slaughter Games]]></LOCALISED_TEXT>
</TITLE>
<MULTIVERSEID value="624672" />
<ARTID value="624672" />
<ARTIST name="Steve Prescott" />
<CASTING_COST cost="{2}{B}{R}" />
<TYPE metaname="Sorcery" />
<EXPANSION value="DPG" />
<RARITY metaname="R" />
<STATIC_ABILITY filter_zone="ZONE_ANY" active_zone="ZONE_STACK">
<LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Slaughter Games can’t be countered by spells or abilities.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Slaughter Games can’t be countered by spells or abilities.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Slaughter Games can’t be countered by spells or abilities.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Slaughter Games can’t be countered by spells or abilities.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Slaughter Games can’t be countered by spells or abilities.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[Slaughter Games can’t be countered by spells or abilities.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[Slaughter Games can’t be countered by spells or abilities.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[Slaughter Games can’t be countered by spells or abilities.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[Slaughter Games can’t be countered by spells or abilities.]]></LOCALISED_TEXT>
<CONTINUOUS_ACTION>
local characteristics = Object():GetCurrentCharacteristics()
characteristics:Characteristic_Set( CHARACTERISTIC_CANT_BE_COUNTERED, 1 )
</CONTINUOUS_ACTION>
</STATIC_ABILITY>
<SPELL_ABILITY dangerous="1" filter_zone="ZONE_IN_PLAY">
<LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Name a nonland card. Search target opponent’s graveyard, hand, and library for any number of cards with that name and exile them. Then that player shuffles his or her library.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Name a nonland card. Search target opponent’s graveyard, hand, and library for any number of cards with that name and exile them. Then that player shuffles his or her library.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Name a nonland card. Search target opponent’s graveyard, hand, and library for any number of cards with that name and exile them. Then that player shuffles his or her library.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Name a nonland card. Search target opponent’s graveyard, hand, and library for any number of cards with that name and exile them. Then that player shuffles his or her library.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Name a nonland card. Search target opponent’s graveyard, hand, and library for any number of cards with that name and exile them. Then that player shuffles his or her library.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[Name a nonland card. Search target opponent’s graveyard, hand, and library for any number of cards with that name and exile them. Then that player shuffles his or her library.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[Name a nonland card. Search target opponent’s graveyard, hand, and library for any number of cards with that name and exile them. Then that player shuffles his or her library.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[Name a nonland card. Search target opponent’s graveyard, hand, and library for any number of cards with that name and exile them. Then that player shuffles his or her library.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[Name a nonland card. Search target opponent’s graveyard, hand, and library for any number of cards with that name and exile them. Then that player shuffles his or her library.]]></LOCALISED_TEXT>
<TARGET_DEFINITION id="0">
local filter = Object():GetFilter()
filter:Clear()
filter:SetFilterType( FILTER_TYPE_PLAYERS + FILTER_TYPE_OPPONENTS)
filter:SetOwner( EffectController() )
filter:SetHint( HINT_ENEMY, EffectController() )
</TARGET_DEFINITION>
<TARGET_DETERMINATION>
return AtLeastOneTargetFromDefinition(0)
</TARGET_DETERMINATION>
<PLAY_TIME_ACTION target_choosing="1">
EffectController():ChooseTarget( 0, "CARD_QUERY_CHOOSE_PLAYER", EffectDC():Make_Targets(0) )
</PLAY_TIME_ACTION>
<RESOLUTION_TIME_ACTION>
local target_player = EffectDC():Get_Targets(0):Get_PlayerPtr(0)
if target_player ~= nil then
local player = EffectController()
local filter = Object():GetFilter()
local unique = 0
filter:Clear()
filter:NotTargetted()
filter:SetZone( ZONE_ANYWHERE )
filter:AddExtra(FILTER_EXTRA_NOT_TOKEN)
filter:AddCardType( CARD_TYPE_ARTIFACT )
filter:AddCardType( CARD_TYPE_CREATURE )
filter:AddCardType( CARD_TYPE_ENCHANTMENT )
filter:AddCardType( CARD_TYPE_INSTANT )
filter:AddCardType( CARD_TYPE_SORCERY )
local filter_count = filter:EvaluateObjects()
if filter_count > 0 then
local discardDC = EffectDC():Make_Chest(2)
local j = 0
for i=0,filter_count-1 do
local card = filter:GetNthEvaluatedObject(i)
if card ~= nil then
if j > 0 then
for k=0,j-1 do
if card:GetCardName() == discardDC:Get_CardPtr(k):GetCardName() then
unique = 1
end
end
end
if card:GetCardType():Test( CARD_TYPE_LAND ) == 0 and unique == 0 then
discardDC:Set_CardPtr(j, card)
j = j + 1
end
unique = 0
end
end
end
end
</RESOLUTION_TIME_ACTION>
<RESOLUTION_TIME_ACTION>
local browser = EffectDC():Get_Chest(2)
local player = EffectController()
if player ~= nil then
if browser ~= nil then
player:SetTargetCount( 1 )
player:SetTargetPrompt( 0, "CARD_QUERY_CHOOSE_CARD" )
player:ChooseTargetsFromDC( NO_VALIDATION, browser, EffectDC():Make_Targets(1) )
end
end
</RESOLUTION_TIME_ACTION>
<RESOLUTION_TIME_ACTION repeating="1">
local n = MTG():GetActionRepCount() + 4
local target_player = EffectDC():Get_Targets(0):Get_PlayerPtr(0)
if target_player ~= nil and EffectDC():Get_Targets(1) ~= nil then
local target_card = EffectDC():Get_Targets(1):Get_CardPtr(0)
if target_card ~= nil then
if n < 7 then
local filter = Object():GetFilter()
local player = EffectController()
if n == 4 then
player:MarkSearchedLibrary()
end
filter:Clear()
filter:NotTargetted()
filter:AddCardName( target_card:GetCardName())
filter:May()
filter:SetZone( n )
filter:SetPlayer( target_player )
player:SetTargetCount( 100 )
for k=0,99 do
player:SetTargetPrompt( k, "CARD_QUERY_CHOOSE_CARD_TO_EXILE" )
end
player:ChooseTargetsWithFlags( NO_VALIDATION, EffectDC():Make_Targets(n), QUERY_FLAG_CAN_BE_FINISHED_EARLY + QUERY_FLAG_CAN_BE_FINISHED_EARLY_FOR_AI_AS_WELL)
return true
else
for i = 4,6 do
if EffectDC():Get_Targets(i) ~= nil then
for j = 0,99 do
local target = EffectDC():Get_Targets(i):Get_CardPtr(j)
if target ~= nil then
target:GuidedReveal( target:GetErstwhileZone(), ZONE_REMOVED_FROM_GAME )
target:RemoveFromGame()
end
end
end
end
target_player:ShuffleLibrary()
return false
end
else
return false
end
else
return false
end
</RESOLUTION_TIME_ACTION>
</SPELL_ABILITY>
</CARD_V2>
Re: Formal Request Thread
by thefiremind » 11 Oct 2013, 15:53
So there was someone who worked on "name a card" for DotP2014... well, the choice about which functions you want to use is yours. I'm sure that sumomole's code is adapted from my DotP2013 code as well, so suit yourself.
In my DotP2014 I moved the filter selection outside of the functions so that no selection constants are needed anymore: I feel it's easier to use this way.

< 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 Kieran » 11 Oct 2013, 16:54
I'll use your codes since you provide a great way to safeguard against free scying of a library. Now, I wonder how difficult it is to make these requested cards:
Brain Pry
Mindblaze (wasn't requested but I wouldn't mind having it)
Reap Intellect
Thought Hemorrhage (wasn't requested but if someone wants to try)
Shimian Specter
Brain Pry
Mindblaze (wasn't requested but I wouldn't mind having it)
Reap Intellect
Thought Hemorrhage (wasn't requested but if someone wants to try)
Last edited by Kieran on 12 Oct 2013, 07:09, edited 1 time in total.
Re: Formal Request Thread
by loookaz » 11 Oct 2013, 22:45
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 thefiremind » 11 Oct 2013, 23:03
Here's how I would make it by using only official cards:loookaz wrote:Reap and Sow
Choose one -> any card with modes. Savage Beating can do the trick, of course the query strings will need to be changed:
- | Open
- Code: Select all
<MODE_SELECT tag="MODE_CHOOSE_ONE">
<MODE tag="CARD_QUERY_REAP_AND_SOW_MODE_1_DESTROY" index="1" />
<MODE tag="CARD_QUERY_REAP_AND_SOW_MODE_2_TUTOR" index="2" />
</MODE_SELECT>
- | Open
- Code: Select all
<TARGET tag="CARD_QUERY_CHOOSE_LAND_TO_DESTROY" definition="0" compartment="0" count="1" />
<TARGET_DEFINITION id="0">
local filter = ClearFilter()
filter:Add( FE_TYPE, OP_IS, CARD_TYPE_LAND )
</TARGET_DEFINITION>
<RESOLUTION_TIME_ACTION>
local target = EffectDC():Get_Targets(0):Get_CardPtr(0)
if target ~= nil then
target:Destroy()
end
</RESOLUTION_TIME_ACTION>
<AI_SIMPLIFIED_TARGETING compartment="0" hint="HINT_ENEMY_ONLY" />
- | Open
- Code: Select all
<RESOLUTION_TIME_ACTION>
local filter = ClearFilter()
local effectController = EffectController()
filter:Add( FE_TYPE, OP_IS, CARD_TYPE_LAND )
filter:SetZone( ZONE_LIBRARY, effectController)
effectController:ChooseItem( "CARD_QUERY_CHOOSE_LAND_TO_PUT_ONTO_BATTLEFIELD", EffectDC():Make_Targets(0) )
</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>
<RESOLUTION_TIME_ACTION>
EffectController():ShuffleLibrary()
</RESOLUTION_TIME_ACTION>
- | Open
- Code: Select all
<UTILITY_ABILITY qualifier="Entwine">
-- Localised entwine text omitted
<COST mana_cost="{1}{G}" type="Mana" />
<ABILITY_TEXT tag="CARD_QUERY_ENTWINE_1_G" />
</UTILITY_ABILITY>
<HELP title="MORE_INFO_TITLE_ENTWINE" body="MORE_INFO_BODY_ENTWINE" zone="ZONE_ANY" />
- Reap and Sow abilities (untested) | Open
- Code: Select all
<SPELL_ABILITY>
-- Localised ability text omitted
<MODE_SELECT tag="MODE_CHOOSE_ONE">
<MODE tag="CARD_QUERY_REAP_AND_SOW_MODE_1_DESTROY" index="1" />
<MODE tag="CARD_QUERY_REAP_AND_SOW_MODE_2_TUTOR" index="2" />
</MODE_SELECT>
<TARGET tag="CARD_QUERY_CHOOSE_LAND_TO_DESTROY" definition="0" compartment="0" count="1" mode="1" />
<TARGET_DEFINITION id="0">
local filter = ClearFilter()
filter:Add( FE_TYPE, OP_IS, CARD_TYPE_LAND )
</TARGET_DEFINITION>
<RESOLUTION_TIME_ACTION mode="1">
local target = EffectDC():Get_Targets(0):Get_CardPtr(0)
if target ~= nil then
target:Destroy()
end
</RESOLUTION_TIME_ACTION>
<AI_SIMPLIFIED_TARGETING compartment="0" hint="HINT_ENEMY_ONLY" />
<RESOLUTION_TIME_ACTION mode="2">
local filter = ClearFilter()
local effectController = EffectController()
filter:Add( FE_TYPE, OP_IS, CARD_TYPE_LAND )
filter:SetZone( ZONE_LIBRARY, effectController)
effectController:ChooseItem( "CARD_QUERY_CHOOSE_LAND_TO_PUT_ONTO_BATTLEFIELD", EffectDC():Make_Targets(1) )
</RESOLUTION_TIME_ACTION>
<RESOLUTION_TIME_ACTION mode="2">
local target = EffectDC():Get_Targets(1):Get_CardPtr(0)
if target ~= nil then
target:PutOntoBattlefield( EffectController() )
end
</RESOLUTION_TIME_ACTION>
<RESOLUTION_TIME_ACTION mode="2">
EffectController():ShuffleLibrary()
</RESOLUTION_TIME_ACTION>
</SPELL_ABILITY>
<UTILITY_ABILITY qualifier="Entwine">
-- Localised entwine text omitted
<COST mana_cost="{1}{G}" type="Mana" />
<ABILITY_TEXT tag="CARD_QUERY_ENTWINE_1_G" />
</UTILITY_ABILITY>
<HELP title="MORE_INFO_TITLE_ENTWINE" body="MORE_INFO_BODY_ENTWINE" zone="ZONE_ANY" />

< 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 jacque » 12 Oct 2013, 00:52
Kieran I posted a Shimian somewhereKieran wrote:I'll use your codes since you provide a great way to safeguard against free scying of a library. Now, I wonder how difficult it is to make these requested cards:
Shimian Specter
EDIT: Here... viewtopic.php?f=109&t=11726&start=165#p134947
Learn making your own cards today!!!
Click on
if a post/reply helped you.
I stitch old cards together to make new ones...
~ Jacque, the confused
Click on

I stitch old cards together to make new ones...
~ Jacque, the confused
Re: Formal Request Thread
by Kieran » 12 Oct 2013, 05:39
Got it. Thanks! And here are the last two cads needed to complete the Soul of the Vampire deck:
Spirit En-dal
Tainted Fields
Edit: I can't seem to get Counterbore to work properly. Will someone take a look @ this code and let me know what's wrong?
Spirit En-dal
Tainted Fields
Edit: I can't seem to get Counterbore to work properly. Will someone take a look @ this code and let me know what's wrong?
- Code: Select all
<?xml version='1.0' encoding='UTF-8'?>
<CARD_V2 ExportVersion="1">
<FILENAME text="COUNTERBORE_153966" />
<CARDNAME text="COUNTERBORE" />
<TITLE>
<LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Counterbore]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Contreforet]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Contrataladro]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Loch im Kopf]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Foro Neutralizzatore]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[呪文穿ち]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[Counterbore]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[Высверливание]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[Nuliperfurador]]></LOCALISED_TEXT>
</TITLE>
<MULTIVERSEID value="153966" />
<ARTID value="153966" />
<ARTIST name="Wayne England" />
<CASTING_COST cost="{3}{U}{U}" />
<TYPE metaname="Instant" />
<EXPANSION value="SHM" />
<RARITY metaname="R" />
<SPELL_ABILITY>
<LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Counter target spell. Search its controller’s graveyard, hand, and library for all cards with the same name as that spell and exile them. Then that player shuffles his or her library.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Contrecarrez le sort ciblé. Cherchez dans le cimetière, la main et la bibliothèque de son contrôleur toutes les cartes ayant le même nom que ce sort et retirez-les de la partie. Ce joueur mélange ensuite sa bibliothèque.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Contrarresta el hechizo objetivo. Busca en el cementerio, mano y biblioteca de su controlador todas las cartas con el mismo nombre que ese hechizo y remuévelas del juego. Luego ese jugador baraja su biblioteca.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Neutralisiere einen Zauberspruch deiner Wahl. Durchsuche den Friedhof, die Hand und die Bibliothek seines Besitzers nach allen Karten mit dem gleichen Namen wie jener Zauberspruch und entferne sie ganz aus dem Spiel. Dieser Spieler mischt dann seine Bibliothek.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Neutralizza una magia bersaglio. Passa in rassegna il cimitero, la mano e il grimorio del suo controllore per tutte le carte con lo stesso nome di quella magia ed esiliale. Poi quel giocatore rimescola il suo grimorio.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[呪文1つを対象とし、それを打ち消す。 それのコントローラーの墓地と手札とライブラリーから、その呪文と同じ名前を持つカードをすべて探し、それらをゲームから取り除く。 その後、そのプレイヤーは自分のライブラリーを切り直す。]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[Counter target spell. Search its controller’s graveyard, hand, and library for all cards with the same name as that spell and exile them. Then that player shuffles his or her library.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[Отмените целевое заклинание. Найдите на кладбище, в руке и в библиотеке контролирующего его игрока все карты с тем же именем, что и то заклинание, и удалите их из игры. Затем тот игрок тасует свою библиотеку.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[Anule a mágica alvo. Procure no cemitério, na mão e no grimório de seu controlador por todos os cards com o mesmo nome daquela mágica e remova-os de jogo. Depois, aquele jogador embaralha seu próprio grimório.]]></LOCALISED_TEXT>
<SFX text="TARGET_PLASMA_PLAY" />
<TARGET tag="CARD_QUERY_CHOOSE_SPELL_TO_COUNTER" definition="0" compartment="0" count="1" />
<TARGET_DEFINITION id="0">
local filter = ClearFilter()
filter:SetZone( ZONE_STACK )
</TARGET_DEFINITION>
<RESOLUTION_TIME_ACTION>
local target = EffectDC():Get_Targets(0):Get_CardPtr(0)
if target ~= nil then
target:CounterSpell()
end
</RESOLUTION_TIME_ACTION>
<AI_SIMPLIFIED_TARGETING compartment="0" hint="HINT_ENEMY_ONLY" />
<TARGET tag="CARD_QUERY_CHOOSE_CARD_TO_EXILE" definition="0" compartment="0" count="1" />
<TARGET_DEFINITION id="0">
local filter = ClearFilter()
filter:SetFilterType( FILTER_TYPE_PLAYERS )
</TARGET_DEFINITION>
<RESOLUTION_TIME_ACTION>
local target = EffectDC():Get_Targets(0):Get_CardPtr(0)
if target ~= nil then
local owner = target:GetOwner()
EffectDC():Set_PlayerPtr(1, owner)
end
</RESOLUTION_TIME_ACTION>
<RESOLUTION_TIME_ACTION>
local target = EffectDC():Get_PlayerPtr(1)
if target ~= nil then
local chosenCard = EffectDC():Get_Targets(0):Get_CardPtr(0)
local effectController = EffectController()
local filter = ClearFilter()
filter:Add( FE_CARD_NAME, OP_IS, chosenCard )
filter:SetZone( ZONE_HAND, target)
local cardsInZone = filter:Count()
EffectController():SetItemCount( cardsInZone )
for i = 0, (cardsInZone-1) do
effectController:SetItemPrompt( i, "CARD_QUERY_CHOOSE_CARD_TO_EXILE" )
end
effectController:ChooseItems( EffectDC():Make_Targets(2), QUERY_FLAG_UP_TO )
end
</RESOLUTION_TIME_ACTION>
<RESOLUTION_TIME_ACTION>
local target = EffectDC():Get_PlayerPtr(1)
if target ~= nil then
local chosenCard = EffectDC():Get_Targets(0):Get_CardPtr(0)
local effectController = EffectController()
local filter = ClearFilter()
filter:Add( FE_CARD_NAME, OP_IS, chosenCard )
filter:SetZone( ZONE_GRAVEYARD, target)
local cardsInZone = filter:Count()
EffectController():SetItemCount( cardsInZone )
for i = 0, (cardsInZone-1) do
effectController:SetItemPrompt( i, "CARD_QUERY_CHOOSE_CARD_TO_EXILE" )
end
effectController:ChooseItems( EffectDC():Make_Targets(3), QUERY_FLAG_UP_TO )
end
</RESOLUTION_TIME_ACTION>
<RESOLUTION_TIME_ACTION>
local target = EffectDC():Get_PlayerPtr(1)
if target ~= nil then
local chosenCard = EffectDC():Get_Targets(0):Get_CardPtr(0)
local effectController = EffectController()
local filter = ClearFilter()
filter:Add( FE_CARD_NAME, OP_IS, chosenCard )
filter:SetZone( ZONE_LIBRARY, target)
local cardsInZone = filter:Count()
EffectController():SetItemCount( cardsInZone )
for i = 0, (cardsInZone-1) do
effectController:SetItemPrompt( i, "CARD_QUERY_CHOOSE_CARD_TO_EXILE" )
end
if cardsInZone > 0 then
effectController:ChooseItems( EffectDC():Make_Targets(4), QUERY_FLAG_UP_TO )
else
effectController:ChooseItems( EffectDC():Make_Targets(4), QUERY_FLAG_CAN_BE_FINISHED_EARLY_CANCEL_EDITION )
end
end
</RESOLUTION_TIME_ACTION>
<RESOLUTION_TIME_ACTION>
for i = 2, 4 do
local compartmentDC = EffectDC():Get_Targets(i)
if compartmentDC ~= nil then
local cardsInCompartment = compartmentDC:Count()
if cardsInCompartment > 0 then
for j = 0, (cardsInCompartment-1) do
local card = compartmentDC:Get_CardPtr(j)
if card ~= nil then
card:Exile()
end
end
end
end
end
</RESOLUTION_TIME_ACTION>
<RESOLUTION_TIME_ACTION>
local target = EffectDC():Get_PlayerPtr(1)
if target ~= nil then
target:ShuffleLibrary()
end
</RESOLUTION_TIME_ACTION>
<AI_SIMPLIFIED_TARGETING compartment="0" hint="HINT_ENEMY" />
</SPELL_ABILITY>
</CARD_V2>
Who is online
Users browsing this forum: No registered users and 6 guests