It is currently 06 Sep 2025, 03:38
   
Text Size

Formal Request Thread

Moderator: CCGHQ Admins

Re: Formal Request Thread

Postby RiiakShiNal » 09 Jul 2013, 23:55

Xander9009 wrote:5 left? This makes me happy. :)
That's right 5 left, though I'm currently experiencing some internet problems (download speeds ranging from 0.01Mbps to 22.47 Mbps [0.7 Mbps average] and upload speeds ranging from 0 bps to 2.71 Mbps [0.03 Mbps average], highly intermittent) so even if I finish up tonight I probably won't be able to release until sometime tomorrow afternoon or evening (AT&T is supposed to show up sometime tomorrow to figure out what's wrong, my suspicion is that they did something to the box at the front of the neighborhood that caused it, they are out there just about everyday doing something to it).

Once I release there will be a full list of (non-internal) functions along with parameters (and usage examples), a list of included cards, limitations of the method(s) I used, and of course the downloads. The manual tap functions, tokens, and modified basic land will be in one wad (that way if people want to make their own versions of some cards they can just use that wad), and the other cards and art in their own wads (cards will be separate from art so that if a bug is found they will only need to download the cards and not have to download the art again).
RiiakShiNal
Programmer
 
Posts: 2188
Joined: 16 May 2011, 21:37
Has thanked: 75 times
Been thanked: 497 times

Re: Formal Request Thread

Postby Xander9009 » 10 Jul 2013, 00:11

thefiremind wrote:
Xander9009 wrote:Either of you have any advice for the two that aren't working?
For Hero of Bladehold...

But you are also missing the TOKEN_REGISTRATION block (it needs to stay outside of the ability):
Code: Select all
  <TOKEN_REGISTRATION reservation="1" type="TOKEN_SOLDIER_1_1_W_909003" />
------------------------
For Mirko Vosk...

The point is, your check should be
Code: Select all
card:GetCardType():Test(CARD_TYPE_LAND)
(which returns true or false).
You've got to be my favorite person here.

I changed both and they're working now. With the hero, I knew the player was supposed to be able to choose which player to have the tokens attack, but I didn't think it was possible to do (thank you for proving that wrong). And with the token registration, a) thank you for pointing that out and b) crap, now I have to go fix a few other cards. I've never noticed that block in other cards.

For Mirko, I honestly should have noticed the problem with that one, I was just so certain that the problem was with the way I was going through the cards and counting the lands rather than the way I was checking them, so I didn't even give it a second look.
_______________________________
Community Wad - Community Wad Website - How to Help and Report Bugs
Discord: discord.gg/4AXvHzW
User avatar
Xander9009
Programmer
 
Posts: 2905
Joined: 29 Jun 2013, 07:44
Location: Indiana, United States
Has thanked: 121 times
Been thanked: 445 times

Re: Formal Request Thread

Postby BloodReyvyn » 10 Jul 2013, 00:48

Hello again. :)

I am having an issue with my Drowner Initiate. It asks me for a target before I even pay the {1} (which I know is because it calls that first) but not only doesn't allow me to pay for the ability, it therefore doesn't mill either. I am working on a few other cards and figured I'd plop this here to see how a more adept coder would code this.

I was thinking of making it a separate triggered ability with a delayed trigger or something, but anyway here's my existing code:

Code: Select all
<?xml version='1.0' encoding='UTF-8'?>
<CARD_V2 ExportVersion="1">
  <FILENAME text="DROWNER_INITIATE_142005" />
  <CARDNAME text="DROWNER_INITIATE" />
  <TITLE>
    <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Drowner Initiate]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Adepte noyeur]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Iniciado ahogador]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Ertränker-Novize]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Iniziato Affogatore]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[溺れさせる者の信徒]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[Drowner Initiate]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[Искусный Топитель]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[Iniciado Afogador]]></LOCALISED_TEXT>
  </TITLE>
  <MULTIVERSEID value="142005" />
  <ARTID value="142005" />
  <ARTIST name="E. M. Gist" />
  <CASTING_COST cost="{U}" />
  <FLAVOURTEXT>
    <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Nothing satisfies a merrow as much as drowning what it cannot have.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Rien ne satisfait plus un suire que noyer ce qu’il ne peut posséder.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Nada satisface más a un merrow que ahogar lo que no puede tener.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Nichts genießt ein Merrow mehr, als das zu ertränken, was er nicht haben kann.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Niente soddisfa maggiormente un merrow che affogare ciò che non può avere.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[自分の手に入らないものを溺れさせることほど、メロウを満足させることはない。]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[Nothing satisfies a merrow as much as drowning what it cannot have.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[Ничто не приносит мерроу большего удовлетворения, чем затопление того, что ему неподвластно.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[Nada dá mais satisfação a um sirenídeo do que afogar o que ele não pode ter.]]></LOCALISED_TEXT>
  </FLAVOURTEXT>
  <TYPE metaname="Creature" />
  <SUB_TYPE metaname="Merfolk" />
  <SUB_TYPE metaname="Wizard" />
  <EXPANSION value="SHM" />
  <RARITY metaname="C" />
  <POWER value="1" />
  <TOUGHNESS value="1" />
  <TRIGGERED_ABILITY>
    <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Whenever a player casts a blue spell, you may pay {1}. If you do, target player puts the top two cards of his or her library into his or her graveyard.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[À chaque fois qu’un joueur joue un sort bleu, vous pouvez payer {1}. Si vous faites ainsi, le joueur ciblé met les deux cartes du dessus de sa bibliothèque dans son cimetière.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Siempre que un jugador juegue un hechizo azul, puedes pagar {1}. Si lo haces, el jugador objetivo pone las dos primeras cartas de su biblioteca en su cementerio.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Immer wenn ein Spieler einen blauen Zauberspruch spielt, kannst du {1} bezahlen. Falls du dies tust, legt ein Spieler deiner Wahl die obersten zwei Karten seiner Bibliothek in seinen Friedhof.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Ogniqualvolta un giocatore lancia una magia blu, puoi pagare {1}. Se lo fai, un giocatore bersaglio mette nel suo cimitero le prime due carte del suo grimorio.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[いずれかのプレイヤーが青の呪文をプレイするたび、プレイヤー1人を対象とする。あなたは{1}を支払ってもよい。 そうした場合、そのプレイヤーは、自分のライブラリーの一番上から2枚のカードを自分の墓地に置く。]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[Whenever a player casts a blue spell, you may pay {1}. If you do, target player puts the top two cards of his or her library into his or her graveyard.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[Каждый раз, когда игрок разыгрывает синее заклинание, вы можете заплатить {1}. Если вы это делаете, целевой игрок кладет две верхние карты своей библиотеки на свое кладбище.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[Toda vez que um jogador joga uma mágica azul, você pode pagar {1}. Se fizer isso, o jogador alvo colocará os dois cards do topo de seu próprio grimório em seu próprio cemitério.]]></LOCALISED_TEXT>
    <TRIGGER value="SPELL_PLAYED">
      return  TriggerObject():GetColour():Test( COLOUR_BLUE )
    </TRIGGER>
    <TARGET tag="CARD_QUERY_CHOOSE_PLAYER_MILL_2" definition="0" compartment="0" count="1" />
    <TARGET_DEFINITION id="0">
      local filter = ClearFilter()
      filter:SetFilterType( FILTER_TYPE_PLAYERS )
    </TARGET_DEFINITION>
    <RESOLUTION_TIME_ACTION>
      local effectController = EffectController()
      if effectController ~= nil then
       if effectController:CanPayResourceCost(1) then
          effectController:BeginNewMultipleChoice()   
          effectController:AddMultipleChoiceAnswer( "CARD_QUERY_DROWNER_INITIATE_PAY_1_AND_MILL2" )   
          effectController:AddMultipleChoiceAnswer( "CARD_QUERY_DROWNER_INITIATE_DO_NOT_MILL2" )   
          effectController:AskMultipleChoiceQuestion( "CARD_QUERY_DROWNER_INITIATE_QUESTION", TriggerObject() )
       end
      end
    </RESOLUTION_TIME_ACTION>
    <RESOLUTION_TIME_ACTION>
      local effectController = EffectController()
      if effectController:CanPayResourceCost(1) then
       local result = effectController:GetMultipleChoiceResult()
       if result == 0 then
         effectController:PayResourceCost( 1 )
          local target = EffectDC():Get_Targets(0):Get_PlayerPtr(0)
          if target ~= nil then
           target:MillCards( 2 )
          end
       end
      end
    </RESOLUTION_TIME_ACTION>
    <AUTO_SKIP>
      if EffectController():CanPayManaCost("{1}") then
       return false
      else
       return true
      end
    </AUTO_SKIP>
  </TRIGGERED_ABILITY>
  <SFX text="COMBAT_BLUNT_LARGE_ATTACK" power_boundary_min="4" power_boundary_max="-1" />
  <SFX text="COMBAT_BLUNT_SMALL_ATTACK" power_boundary_min="1" power_boundary_max="3" />
</CARD_V2>
"There's an experience worse than blindness - it's the certainty that your vision is perfect and the horror that there's no world around you to see."
User avatar
BloodReyvyn
 
Posts: 421
Joined: 19 May 2013, 13:29
Has thanked: 53 times
Been thanked: 40 times

Re: Formal Request Thread

Postby Vervandi » 10 Jul 2013, 01:23

Xander9009,

Thank you very much! You've helped me complete my favorite casual deck. I'll get the cards in over the next couple of days and give you some feedback. Thank you a million times!
Vervandi
 
Posts: 12
Joined: 18 Nov 2012, 04:52
Has thanked: 10 times
Been thanked: 0 time

Re: Formal Request Thread

Postby Xander9009 » 10 Jul 2013, 01:28

BloodReyvyn wrote:Hello again. :)

I am having an issue with my Drowner Initiate. It asks me for a target before I even pay the {1} (which I know is because it calls that first) but not only doesn't allow me to pay for the ability, it therefore doesn't mill either. I am working on a few other cards and figured I'd plop this here to see how a more adept coder would code this.

I was thinking of making it a separate triggered ability with a delayed trigger or something, but anyway here's my existing code:

Code: Select all
<?xml version='1.0' encoding='UTF-8'?>
<CARD_V2 ExportVersion="1">
  <FILENAME text="DROWNER_INITIATE_142005" />
  <CARDNAME text="DROWNER_INITIATE" />
  <TITLE>
    <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Drowner Initiate]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Adepte noyeur]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Iniciado ahogador]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Ertränker-Novize]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Iniziato Affogatore]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[溺れさせる者の信徒]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[Drowner Initiate]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[Искусный Топитель]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[Iniciado Afogador]]></LOCALISED_TEXT>
  </TITLE>
  <MULTIVERSEID value="142005" />
  <ARTID value="142005" />
  <ARTIST name="E. M. Gist" />
  <CASTING_COST cost="{U}" />
  <FLAVOURTEXT>
    <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Nothing satisfies a merrow as much as drowning what it cannot have.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Rien ne satisfait plus un suire que noyer ce qu’il ne peut posséder.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Nada satisface más a un merrow que ahogar lo que no puede tener.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Nichts genießt ein Merrow mehr, als das zu ertränken, was er nicht haben kann.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Niente soddisfa maggiormente un merrow che affogare ciò che non può avere.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[自分の手に入らないものを溺れさせることほど、メロウを満足させることはない。]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[Nothing satisfies a merrow as much as drowning what it cannot have.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[Ничто не приносит мерроу большего удовлетворения, чем затопление того, что ему неподвластно.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[Nada dá mais satisfação a um sirenídeo do que afogar o que ele não pode ter.]]></LOCALISED_TEXT>
  </FLAVOURTEXT>
  <TYPE metaname="Creature" />
  <SUB_TYPE metaname="Merfolk" />
  <SUB_TYPE metaname="Wizard" />
  <EXPANSION value="SHM" />
  <RARITY metaname="C" />
  <POWER value="1" />
  <TOUGHNESS value="1" />
  <TRIGGERED_ABILITY>
    <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Whenever a player casts a blue spell, you may pay {1}. If you do, target player puts the top two cards of his or her library into his or her graveyard.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[À chaque fois qu’un joueur joue un sort bleu, vous pouvez payer {1}. Si vous faites ainsi, le joueur ciblé met les deux cartes du dessus de sa bibliothèque dans son cimetière.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Siempre que un jugador juegue un hechizo azul, puedes pagar {1}. Si lo haces, el jugador objetivo pone las dos primeras cartas de su biblioteca en su cementerio.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Immer wenn ein Spieler einen blauen Zauberspruch spielt, kannst du {1} bezahlen. Falls du dies tust, legt ein Spieler deiner Wahl die obersten zwei Karten seiner Bibliothek in seinen Friedhof.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Ogniqualvolta un giocatore lancia una magia blu, puoi pagare {1}. Se lo fai, un giocatore bersaglio mette nel suo cimitero le prime due carte del suo grimorio.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[いずれかのプレイヤーが青の呪文をプレイするたび、プレイヤー1人を対象とする。あなたは{1}を支払ってもよい。 そうした場合、そのプレイヤーは、自分のライブラリーの一番上から2枚のカードを自分の墓地に置く。]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[Whenever a player casts a blue spell, you may pay {1}. If you do, target player puts the top two cards of his or her library into his or her graveyard.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[Каждый раз, когда игрок разыгрывает синее заклинание, вы можете заплатить {1}. Если вы это делаете, целевой игрок кладет две верхние карты своей библиотеки на свое кладбище.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[Toda vez que um jogador joga uma mágica azul, você pode pagar {1}. Se fizer isso, o jogador alvo colocará os dois cards do topo de seu próprio grimório em seu próprio cemitério.]]></LOCALISED_TEXT>
    <TRIGGER value="SPELL_PLAYED">
      return  TriggerObject():GetColour():Test( COLOUR_BLUE )
    </TRIGGER>
    <TARGET tag="CARD_QUERY_CHOOSE_PLAYER_MILL_2" definition="0" compartment="0" count="1" />
    <TARGET_DEFINITION id="0">
      local filter = ClearFilter()
      filter:SetFilterType( FILTER_TYPE_PLAYERS )
    </TARGET_DEFINITION>
    <RESOLUTION_TIME_ACTION>
      local effectController = EffectController()
      if effectController ~= nil then
       if effectController:CanPayResourceCost(1) then
          effectController:BeginNewMultipleChoice()   
          effectController:AddMultipleChoiceAnswer( "CARD_QUERY_DROWNER_INITIATE_PAY_1_AND_MILL2" )   
          effectController:AddMultipleChoiceAnswer( "CARD_QUERY_DROWNER_INITIATE_DO_NOT_MILL2" )   
          effectController:AskMultipleChoiceQuestion( "CARD_QUERY_DROWNER_INITIATE_QUESTION", TriggerObject() )
       end
      end
    </RESOLUTION_TIME_ACTION>
    <RESOLUTION_TIME_ACTION>
      local effectController = EffectController()
      if effectController:CanPayResourceCost(1) then
       local result = effectController:GetMultipleChoiceResult()
       if result == 0 then
         effectController:PayResourceCost( 1 )
          local target = EffectDC():Get_Targets(0):Get_PlayerPtr(0)
          if target ~= nil then
           target:MillCards( 2 )
          end
       end
      end
    </RESOLUTION_TIME_ACTION>
    <AUTO_SKIP>
      if EffectController():CanPayManaCost("{1}") then
       return false
      else
       return true
      end
    </AUTO_SKIP>
  </TRIGGERED_ABILITY>
  <SFX text="COMBAT_BLUNT_LARGE_ATTACK" power_boundary_min="4" power_boundary_max="-1" />
  <SFX text="COMBAT_BLUNT_SMALL_ATTACK" power_boundary_min="1" power_boundary_max="3" />
</CARD_V2>
Put this
Code: Select all
    <UTILITY_ABILITY resource_id="1">
        <COST mana_cost="{1}" type="Mana" />
    </UTILITY_ABILITY>
between </TRIGGERED_ABILITY> and <SFX text="COMBAT_BLUNT_LARGE_ATTACK"... at the end. Mentor of the Meek has it, too. It's just not very obvious. With that, your code seems to work.

As for it asking for a target before even deciding whether or not to pay, Flameblast Dragon is an official card and does the same thing. At least your code allows the player to pay nothing. Flameblast Dragon makes me pay 1 whether I want to or not (but the card says 'may').

--------

Vervandi wrote:Xander9009,

Thank you very much! You've helped me complete my favorite casual deck. I'll get the cards in over the next couple of days and give you some feedback. Thank you a million times!
You're welcome. :) And thanks to thefiremind and Sumomole for correcting Pendelhaven.
_______________________________
Community Wad - Community Wad Website - How to Help and Report Bugs
Discord: discord.gg/4AXvHzW
User avatar
Xander9009
Programmer
 
Posts: 2905
Joined: 29 Jun 2013, 07:44
Location: Indiana, United States
Has thanked: 121 times
Been thanked: 445 times

Re: Formal Request Thread

Postby BloodReyvyn » 10 Jul 2013, 04:48

Thanks man, I had totally overlooked that, being as I did sort of base the ability around Mentor of the Meek. Got it working great and even made it ignore targeting the player if you can't pay for the ability anyway. I do wish I could target only after paying for the ability, but it's a minor inconvenience at the moment.
"There's an experience worse than blindness - it's the certainty that your vision is perfect and the horror that there's no world around you to see."
User avatar
BloodReyvyn
 
Posts: 421
Joined: 19 May 2013, 13:29
Has thanked: 53 times
Been thanked: 40 times


Re: Formal Request Thread

Postby Master Necro » 10 Jul 2013, 05:24

Updated the posts with new cards! :)

There is a card that is giving me a headache... Bloodletter Quill.. The first ability won't activate could anyone take a look:


Code: Select all
<?xml version="1.0"?>
<CARD_V2 ExportVersion="20">
  <FILENAME text="BLOODLETTER_QUILL_1783928" />
  <CARDNAME text="BLOODLETTER_QUILL" />
  <TITLE>
    <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Bloodletter Quill]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Bloodletter Quill]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Bloodletter Quill]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Bloodletter Quill]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Bloodletter Quill]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[Bloodletter Quill]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[Bloodletter Quill]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[Bloodletter Quill]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[Bloodletter Quill]]></LOCALISED_TEXT>
  </TITLE>
  <MULTIVERSEID value="1783928" />
  <ARTID value="A83928" />
  <ARTIST name="Dan Scott" />
  <CASTING_COST cost="{3}" />
  <TYPE metaname="Artifact" />
  <EXPANSION value="DPI" />
  <RARITY metaname="R" />
  <ACTIVATED_ABILITY>
    <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[{2} , {T} , Put a blood counter on Bloodletter Quill: Draw a card, then lose 1 life for each blood counter on Bloodletter Quill.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[{2} , {T} , Put a blood counter on Bloodletter Quill: Draw a card, then lose 1 life for each blood counter on Bloodletter Quill.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[{2} , {T} , Put a blood counter on Bloodletter Quill: Draw a card, then lose 1 life for each blood counter on Bloodletter Quill.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[{2} , {T} , Put a blood counter on Bloodletter Quill: Draw a card, then lose 1 life for each blood counter on Bloodletter Quill.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[{2} , {T} , Put a blood counter on Bloodletter Quill: Draw a card, then lose 1 life for each blood counter on Bloodletter Quill.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[{2} , {T} , Put a blood counter on Bloodletter Quill: Draw a card, then lose 1 life for each blood counter on Bloodletter Quill.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[{2} , {T} , Put a blood counter on Bloodletter Quill: Draw a card, then lose 1 life for each blood counter on Bloodletter Quill.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[{2} , {T} , Put a blood counter on Bloodletter Quill: Draw a card, then lose 1 life for each blood counter on Bloodletter Quill.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[{2} , {T} , Put a blood counter on Bloodletter Quill: Draw a card, then lose 1 life for each blood counter on Bloodletter Quill.]]></LOCALISED_TEXT>
   <COUNTER_REGISTRATION name="Blood" proliferate="11" />
   <COST type="Mana" mana_cost="{2}" />
   <COST type="TapSelf" />
   <COST type="Generic">
   <RESOLUTION_TIME_ACTION>
    if EffectController() == nil then
       EffectSource():AddCounters( MTG():GetCountersType("Blood"), 1)
    end
    </RESOLUTION_TIME_ACTION>
   </COST>
   <RESOLUTION_TIME_ACTION>
    EffectController():DrawCards(1)
    </RESOLUTION_TIME_ACTION>
   <CONTINUOUS_ACTION>
   if EffectController() == nil then
      player_who_loses_life:LoseLife( card:CountCounters(counter_type) )
   end 
   </CONTINUOUS_ACTION>
  </ACTIVATED_ABILITY>
  <ACTIVATED_ABILITY>
    <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[{U} {B} : Remove a blood counter from Bloodletter Quill.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[{U} {B} : Remove a blood counter from Bloodletter Quill.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[{U} {B} : Remove a blood counter from Bloodletter Quill.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[{U} {B} : Remove a blood counter from Bloodletter Quill.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[{U} {B} : Remove a blood counter from Bloodletter Quill.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[{U} {B} : Remove a blood counter from Bloodletter Quill.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[{U} {B} : Remove a blood counter from Bloodletter Quill.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[{U} {B} : Remove a blood counter from Bloodletter Quill.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[{U} {B} : Remove a blood counter from Bloodletter Quill.]]></LOCALISED_TEXT>
    <COUNTER_REGISTRATION name="Blood" proliferate="11" />
    <COST type="Mana" mana_cost="{U}{B}" />
   <RESOLUTION_TIME_ACTION>
    if EffectController() == nil then
       EffectSource():RemoveCounters( MTG():GetCountersType("Blood"), 1)
    end
    </RESOLUTION_TIME_ACTION>
  </ACTIVATED_ABILITY>
  <AI_COUNTER_SCORE type="Blood" score="100" max_counters="3" />
  <AI_BASE_SCORE score="300" zone="ZONE_BATTLEFIELD" />
</CARD_V2>
User avatar
Master Necro
 
Posts: 259
Joined: 24 Apr 2013, 18:25
Has thanked: 83 times
Been thanked: 21 times

Re: Formal Request Thread

Postby Xander9009 » 10 Jul 2013, 05:38

Master Necro wrote:Updated the posts with new cards! :)

There is a card that is giving me a headache... Bloodletter Quill.. The first ability won't activate could anyone take a look:


Code: Select all
<?xml version="1.0"?>
<CARD_V2 ExportVersion="20">
  <FILENAME text="BLOODLETTER_QUILL_1783928" />
  <CARDNAME text="BLOODLETTER_QUILL" />
  <TITLE>
    <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Bloodletter Quill]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Bloodletter Quill]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Bloodletter Quill]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Bloodletter Quill]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Bloodletter Quill]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[Bloodletter Quill]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[Bloodletter Quill]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[Bloodletter Quill]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[Bloodletter Quill]]></LOCALISED_TEXT>
  </TITLE>
  <MULTIVERSEID value="1783928" />
  <ARTID value="A83928" />
  <ARTIST name="Dan Scott" />
  <CASTING_COST cost="{3}" />
  <TYPE metaname="Artifact" />
  <EXPANSION value="DPI" />
  <RARITY metaname="R" />
  <ACTIVATED_ABILITY>
    <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[{2} , {T} , Put a blood counter on Bloodletter Quill: Draw a card, then lose 1 life for each blood counter on Bloodletter Quill.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[{2} , {T} , Put a blood counter on Bloodletter Quill: Draw a card, then lose 1 life for each blood counter on Bloodletter Quill.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[{2} , {T} , Put a blood counter on Bloodletter Quill: Draw a card, then lose 1 life for each blood counter on Bloodletter Quill.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[{2} , {T} , Put a blood counter on Bloodletter Quill: Draw a card, then lose 1 life for each blood counter on Bloodletter Quill.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[{2} , {T} , Put a blood counter on Bloodletter Quill: Draw a card, then lose 1 life for each blood counter on Bloodletter Quill.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[{2} , {T} , Put a blood counter on Bloodletter Quill: Draw a card, then lose 1 life for each blood counter on Bloodletter Quill.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[{2} , {T} , Put a blood counter on Bloodletter Quill: Draw a card, then lose 1 life for each blood counter on Bloodletter Quill.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[{2} , {T} , Put a blood counter on Bloodletter Quill: Draw a card, then lose 1 life for each blood counter on Bloodletter Quill.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[{2} , {T} , Put a blood counter on Bloodletter Quill: Draw a card, then lose 1 life for each blood counter on Bloodletter Quill.]]></LOCALISED_TEXT>
   <COUNTER_REGISTRATION name="Blood" proliferate="11" />
   <COST type="Mana" mana_cost="{2}" />
   <COST type="TapSelf" />
   <COST type="Generic">
   <RESOLUTION_TIME_ACTION>
    if EffectController() == nil then
       EffectSource():AddCounters( MTG():GetCountersType("Blood"), 1)
    end
    </RESOLUTION_TIME_ACTION>
   </COST>
   <RESOLUTION_TIME_ACTION>
    EffectController():DrawCards(1)
    </RESOLUTION_TIME_ACTION>
   <CONTINUOUS_ACTION>
   if EffectController() == nil then
      player_who_loses_life:LoseLife( card:CountCounters(counter_type) )
   end 
   </CONTINUOUS_ACTION>
  </ACTIVATED_ABILITY>
  <ACTIVATED_ABILITY>
    <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[{U} {B} : Remove a blood counter from Bloodletter Quill.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[{U} {B} : Remove a blood counter from Bloodletter Quill.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[{U} {B} : Remove a blood counter from Bloodletter Quill.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[{U} {B} : Remove a blood counter from Bloodletter Quill.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[{U} {B} : Remove a blood counter from Bloodletter Quill.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[{U} {B} : Remove a blood counter from Bloodletter Quill.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[{U} {B} : Remove a blood counter from Bloodletter Quill.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[{U} {B} : Remove a blood counter from Bloodletter Quill.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[{U} {B} : Remove a blood counter from Bloodletter Quill.]]></LOCALISED_TEXT>
    <COUNTER_REGISTRATION name="Blood" proliferate="11" />
    <COST type="Mana" mana_cost="{U}{B}" />
   <RESOLUTION_TIME_ACTION>
    if EffectController() == nil then
       EffectSource():RemoveCounters( MTG():GetCountersType("Blood"), 1)
    end
    </RESOLUTION_TIME_ACTION>
  </ACTIVATED_ABILITY>
  <AI_COUNTER_SCORE type="Blood" score="100" max_counters="3" />
  <AI_BASE_SCORE score="300" zone="ZONE_BATTLEFIELD" />
</CARD_V2>
Aside from the block that causes loss of life, I don't see an obvious reason it shouldn't work. But that block might be it. The continuous ability.

Try
Code: Select all
   <RESOLUTION_TIME_ACTION>
   if EffectController() ~= nil then
      EffectController():LoseLife( EffectSource():CountCounters(MTG():GetCountersType("Blood")) )
   end 
   </RESOLUTION_TIME_ACTION>
Hopefully a) it works, b) you figure it out, or c) someone else can help because I need some sleep :) Good luck!
_______________________________
Community Wad - Community Wad Website - How to Help and Report Bugs
Discord: discord.gg/4AXvHzW
User avatar
Xander9009
Programmer
 
Posts: 2905
Joined: 29 Jun 2013, 07:44
Location: Indiana, United States
Has thanked: 121 times
Been thanked: 445 times

Re: Formal Request Thread

Postby Master Necro » 10 Jul 2013, 06:05

@ Xander9009 Sadly it didn't work so now I have even more things that perplex me:

1. There is a card that is giving me a headache... Bloodletter Quill.. The first ability won't activate could anyone take a look:


Code: Select all
<?xml version="1.0"?>
<CARD_V2 ExportVersion="20">
  <FILENAME text="BLOODLETTER_QUILL_1783928" />
  <CARDNAME text="BLOODLETTER_QUILL" />
  <TITLE>
    <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Bloodletter Quill]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Bloodletter Quill]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Bloodletter Quill]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Bloodletter Quill]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Bloodletter Quill]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[Bloodletter Quill]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[Bloodletter Quill]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[Bloodletter Quill]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[Bloodletter Quill]]></LOCALISED_TEXT>
  </TITLE>
  <MULTIVERSEID value="1783928" />
  <ARTID value="A83928" />
  <ARTIST name="Dan Scott" />
  <CASTING_COST cost="{3}" />
  <TYPE metaname="Artifact" />
  <EXPANSION value="DPI" />
  <RARITY metaname="R" />
  <ACTIVATED_ABILITY>
    <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[{2} , {T} , Put a blood counter on Bloodletter Quill: Draw a card, then lose 1 life for each blood counter on Bloodletter Quill.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[{2} , {T} , Put a blood counter on Bloodletter Quill: Draw a card, then lose 1 life for each blood counter on Bloodletter Quill.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[{2} , {T} , Put a blood counter on Bloodletter Quill: Draw a card, then lose 1 life for each blood counter on Bloodletter Quill.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[{2} , {T} , Put a blood counter on Bloodletter Quill: Draw a card, then lose 1 life for each blood counter on Bloodletter Quill.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[{2} , {T} , Put a blood counter on Bloodletter Quill: Draw a card, then lose 1 life for each blood counter on Bloodletter Quill.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[{2} , {T} , Put a blood counter on Bloodletter Quill: Draw a card, then lose 1 life for each blood counter on Bloodletter Quill.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[{2} , {T} , Put a blood counter on Bloodletter Quill: Draw a card, then lose 1 life for each blood counter on Bloodletter Quill.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[{2} , {T} , Put a blood counter on Bloodletter Quill: Draw a card, then lose 1 life for each blood counter on Bloodletter Quill.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[{2} , {T} , Put a blood counter on Bloodletter Quill: Draw a card, then lose 1 life for each blood counter on Bloodletter Quill.]]></LOCALISED_TEXT>
   <COUNTER_REGISTRATION name="Blood" proliferate="11" />
   <COST type="Mana" mana_cost="{2}" />
   <COST type="TapSelf" />
   <COST type="Generic">
   <RESOLUTION_TIME_ACTION>
    if EffectController() == nil then
       EffectSource():AddCounters( MTG():GetCountersType("Blood"), 1)
    end
    </RESOLUTION_TIME_ACTION>
   </COST>
   <RESOLUTION_TIME_ACTION>
    EffectController():DrawCards(1)
    </RESOLUTION_TIME_ACTION>
      <RESOLUTION_TIME_ACTION>
   if EffectController() ~= nil then
      EffectController():LoseLife( EffectSource():CountCounters(MTG():GetCountersType("Blood")) )
   end 
   </RESOLUTION_TIME_ACTION>
  </ACTIVATED_ABILITY>
  <ACTIVATED_ABILITY>
    <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[{U} {B} : Remove a blood counter from Bloodletter Quill.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[{U} {B} : Remove a blood counter from Bloodletter Quill.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[{U} {B} : Remove a blood counter from Bloodletter Quill.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[{U} {B} : Remove a blood counter from Bloodletter Quill.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[{U} {B} : Remove a blood counter from Bloodletter Quill.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[{U} {B} : Remove a blood counter from Bloodletter Quill.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[{U} {B} : Remove a blood counter from Bloodletter Quill.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[{U} {B} : Remove a blood counter from Bloodletter Quill.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[{U} {B} : Remove a blood counter from Bloodletter Quill.]]></LOCALISED_TEXT>
    <COUNTER_REGISTRATION name="Blood" proliferate="11" />
    <COST type="Mana" mana_cost="{U}{B}" />
   <RESOLUTION_TIME_ACTION>
    if EffectController() == nil then
       EffectSource():RemoveCounters( MTG():GetCountersType("Blood"), 1)
    end
    </RESOLUTION_TIME_ACTION>
  </ACTIVATED_ABILITY>
  <AI_COUNTER_SCORE type="Blood" score="100" max_counters="3" />
  <AI_BASE_SCORE score="300" zone="ZONE_BATTLEFIELD" />
</CARD_V2>
2. Dimir Charm won't let me choose the second ability (destroy a creature):

Code: Select all
<?xml version="1.0"?>
<CARD_V2 ExportVersion="1">
  <FILENAME text="DIMIR_CHARM_17366473" />
  <CARDNAME text="DIMIR_CHARM" />
  <TITLE>
    <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Dimir Charm]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Dimir Charm]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Dimir Charm]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Dimir Charm]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Dimir Charm]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[Dimir Charm]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[Dimir Charm]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[Dimir Charm]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[Dimir Charm]]></LOCALISED_TEXT>
  </TITLE>
  <MULTIVERSEID value="17366473" />
  <ARTID value="A366473" />
  <ARTIST name="Zoltan Boros" />
  <CASTING_COST cost="{U}{B}" />
  <FLAVOURTEXT>
    <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[“Dangerous to recognize. Deadly not to.”
—Lazav]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[“Dangerous to recognize. Deadly not to.”
—Lazav]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[“Dangerous to recognize. Deadly not to.”
—Lazav]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[“Dangerous to recognize. Deadly not to.”
—Lazav]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[“Dangerous to recognize. Deadly not to.”
—Lazav]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[“Dangerous to recognize. Deadly not to.”
—Lazav]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[“Dangerous to recognize. Deadly not to.”
—Lazav]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[“Dangerous to recognize. Deadly not to.”
—Lazav]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[“Dangerous to recognize. Deadly not to.”
—Lazav]]></LOCALISED_TEXT>
  </FLAVOURTEXT>
  <TYPE metaname="Instant" />
  <EXPANSION value="DPI" />
  <RARITY metaname="U" />
  <SPELL_ABILITY>
    <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Choose one — Counter target sorcery spell; or destroy target creature with power 2 or less; or look at the top three cards of target player's library, then put one back and the rest into that player's graveyard.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Choose one — Counter target sorcery spell; or destroy target creature with power 2 or less; or look at the top three cards of target player's library, then put one back and the rest into that player's graveyard.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Choose one — Counter target sorcery spell; or destroy target creature with power 2 or less; or look at the top three cards of target player's library, then put one back and the rest into that player's graveyard.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Choose one — Counter target sorcery spell; or destroy target creature with power 2 or less; or look at the top three cards of target player's library, then put one back and the rest into that player's graveyard.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Choose one — Counter target sorcery spell; or destroy target creature with power 2 or less; or look at the top three cards of target player's library, then put one back and the rest into that player's graveyard.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[Choose one — Counter target sorcery spell; or destroy target creature with power 2 or less; or look at the top three cards of target player's library, then put one back and the rest into that player's graveyard.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[Choose one — Counter target sorcery spell; or destroy target creature with power 2 or less; or look at the top three cards of target player's library, then put one back and the rest into that player's graveyard.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[Choose one — Counter target sorcery spell; or destroy target creature with power 2 or less; or look at the top three cards of target player's library, then put one back and the rest into that player's graveyard.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[Choose one — Counter target sorcery spell; or destroy target creature with power 2 or less; or look at the top three cards of target player's library, then put one back and the rest into that player's graveyard.]]></LOCALISED_TEXT>
    <MODE_SELECT tag="MODE_CHOOSE_ONE">
      <MODE tag="MODE_DIMIR_COUNTER" index="1" />
      <MODE tag="MODE_DIMIR_DESTRUCTION" index="2" />
      <MODE tag="MODE_DIMIR_CARD" index="3" />
    </MODE_SELECT>
    <TARGET_DEFINITION id="0">
    local filter = ClearFilter()
    filter:SetZone( ZONE_STACK )
    filter:Add (FE_TYPE, OP_IS, CARD_TYPE_SORCERY)
    </TARGET_DEFINITION>
    <RESOLUTION_TIME_ACTION mode="1">
    local target = EffectDC():Get_Targets(0):Get_CardPtr(0)
    if target ~= nil then
       target:CounterSpell()
    end
    </RESOLUTION_TIME_ACTION>
    <TARGET tag="CARD_QUERY_CHOOSE_CREATURE_TO_DESTROY" definition="0" compartment="0" mode="2" count="1" />
    <TARGET_DEFINITION id="0">
    local filter = ClearFilter()
    filter:Add( FE_TYPE, OP_IS, CARD_TYPE_CREATURE )
    filter:Add( FE_POWER, OP_LESS_THAN_OR_EQUAL_TO, 2 )
    </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" />
        <TARGET tag="CARD_QUERY_CHOOSE_PLAYER_TO_VESTIGE_ROT" definition="0" compartment="0" mode="2" 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)
    if target_player ~= nil then
       local answerDC = EffectDC():Make_Targets(1)
       local queryDC = EffectDC():Make_Chest(2)
       for i=0,2 do
          local card = target_player:Library_GetNth(i)
          if card ~= nil then
             queryDC:Set_CardPtr(i, card)
          else
             break
          end
       end
       if answerDC ~= nil and queryDC ~= nil then
          EffectController():ChooseItemFromDC("CARD_QUERY_CHOOSE_CARD_TO_PUT_ONTO_LIBRARY", queryDC, answerDC)
       end
    end
    </RESOLUTION_TIME_ACTION>
    <RESOLUTION_TIME_ACTION>
    local target_player = EffectDC():Get_Targets(0):Get_PlayerPtr(0)
    if target_player ~= nil then
       local chosen_card = EffectDC():Get_Targets(1):Get_CardPtr(0)
       if chosen_card ~= nil then
          local queryDC = EffectDC():Get_Chest(2)
          local num_cards = queryDC:Count()
          for i=0,num_cards-1 do
             local card = queryDC:Get_CardPtr(i)
             if card ~= nil and card ~= chosen_card then
                card:PutInGraveyard()
             end
          end
       end
    end
    </RESOLUTION_TIME_ACTION>
    <AI_SIMPLIFIED_TARGETING compartment="0" hint="HINT_ENEMY" />
  </SPELL_ABILITY>
  <AI_AVAILABILITY type="in_response" response_source="1" />
  <AI_AVAILABILITY window_step="begin_combat" window_turn="their_turn" type="window" />
  <AI_AVAILABILITY window_step="declare_attackers" window_turn="their_turn" type="window" />
  <AI_AVAILABILITY window_step="main_1" window_turn="my_turn" type="window" />
  <AI_AVAILABILITY window_step="declare_blockers" type="window" />
  <AI_AVAILABILITY window_step="end_of_turn" type="window" />
  <AI_AVAILABILITY type="in_response" response_source="1" response_target="1" />
  <AI_AVAILABILITY type="in_response" response_source="1" />
  <AI_AVAILABILITY window_step="end_of_turn" window_turn="their_turn" type="window" />
  <AI_AVAILABILITY window_step="main_1" window_turn="my_turn" type="window" />
  <AI_AVAILABILITY window_step="main_2" window_turn="my_turn" type="window" />
  <AI_BASE_SCORE score="1200" zone="ZONE_HAND" />
</CARD_V2>
3. Mortus Strider won't come back from my Graveyard to my hand:

Code: Select all
<?xml version="1.0"?>
<CARD_V2 ExportVersion="16">
  <FILENAME text="MORTUS_STRIDER_17366449" />
  <CARDNAME text="MORTUS_STRIDER" />
  <TITLE>
    <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Mortus Strider]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Mortus Strider]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Mortus Strider]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Mortus Strider]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Mortus Strider]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[Mortus Strider]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[Mortus Strider]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[Mortus Strider]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[Mortus Strider]]></LOCALISED_TEXT>
  </TITLE>
  <MULTIVERSEID value="17366449" />
  <ARTID value="A366449" />
  <ARTIST name="Tomasz Jedruszek" />
  <CASTING_COST cost="{1}{U}{B}" />
  <FLAVOURTEXT>
    <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Dimir's best agents hide from death itself.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Dimir's best agents hide from death itself.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Dimir's best agents hide from death itself.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Dimir's best agents hide from death itself.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Dimir's best agents hide from death itself.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[Dimir's best agents hide from death itself.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[Dimir's best agents hide from death itself.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[Dimir's best agents hide from death itself.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[Dimir's best agents hide from death itself.]]></LOCALISED_TEXT>
  </FLAVOURTEXT>
  <TYPE metaname="Creature" />
  <SUB_TYPE metaname="Skeleton" />
  <EXPANSION value="DPI" />
  <RARITY metaname="C" />
  <POWER value="1" />
  <TOUGHNESS value="1" />
  <TRIGGERED_ABILITY active_zone="ZONE_ANY">
    <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[When Mortus Strider dies, return it to its owner's hand.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[When Mortus Strider dies, return it to its owner's hand.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[When Mortus Strider dies, return it to its owner's hand.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[When Mortus Strider dies, return it to its owner's hand.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[When Mortus Strider dies, return it to its owner's hand.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[When Mortus Strider dies, return it to its owner's hand.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[When Mortus Strider dies, return it to its owner's hand.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[When Mortus Strider dies, return it to its owner's hand.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[When Mortus Strider dies, return it to its owner's hand.]]></LOCALISED_TEXT>
    <TRIGGER value="ZONECHANGE_BEGIN" to_zone="ZONE_GRAVEYARD" from_zone="ZONE_BATTLEFIELD">
   </TRIGGER>
    <RESOLUTION_TIME_ACTION>
    local card = EffectDC():Get_Targets(0):Get_CardPtr(0)
    if card ~= nil then
       card:PutInHand()
    end
    </RESOLUTION_TIME_ACTION>
  </TRIGGERED_ABILITY>
  <SFX text="COMBAT_CLAW_LARGE_ATTACK" power_boundary_min="4" power_boundary_max="-1" />
  <SFX text="COMBAT_CLAW_SMALL_ATTACK" power_boundary_min="1" power_boundary_max="3" />
  <AI_BASE_SCORE score="450" zone="ZONE_BATTLEFIELD" />
</CARD_V2>
4. Clutch of the Undercity won't take 3 damage from the opponent:

Code: Select all
<?xml version="1.0"?>
<CARD_V2 ExportVersion="1">
  <FILENAME text="CLUTCH_OF_THE_UNDERCITY_1789037" />
  <CARDNAME text="CLUTCH_OF_THE_UNDERCITY" />
  <TITLE>
    <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Clutch of the Undercity]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Clutch of the Undercity]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Clutch of the Undercity]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Clutch of the Undercity]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Clutch of the Undercity]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[Clutch of the Undercity]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[Clutch of the Undercity]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[Clutch of the Undercity]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[Clutch of the Undercity]]></LOCALISED_TEXT>
  </TITLE>
  <MULTIVERSEID value="1789037" />
  <ARTID value="A89037" />
  <ARTIST name="Pete Venters" />
  <CASTING_COST cost="{1}{U}{U}{B}" />
  <TYPE metaname="Instant" />
  <EXPANSION value="DPI" />
  <RARITY metaname="U" />
  <SPELL_ABILITY priority="1">
    <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Return target permanent to its owner's hand. Its controller loses 3 life.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Return target permanent to its owner's hand. Its controller loses 3 life.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Return target permanent to its owner's hand. Its controller loses 3 life.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Return target permanent to its owner's hand. Its controller loses 3 life.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Return target permanent to its owner's hand. Its controller loses 3 life.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[Return target permanent to its owner's hand. Its controller loses 3 life.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[Return target permanent to its owner's hand. Its controller loses 3 life.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[Return target permanent to its owner's hand. Its controller loses 3 life.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[Return target permanent to its owner's hand. Its controller loses 3 life.]]></LOCALISED_TEXT>
    <TARGET tag="CARD_QUERY_CHOOSE_PERMANENT_TO_PUT_INTO_HAND" definition="0" compartment="0" count="1" />
    <TARGET_DEFINITION id="0">
    local filter = ClearFilter()
    filter:Add( FE_IS_PERMANENT, true )
    </TARGET_DEFINITION>
    <RESOLUTION_TIME_ACTION>
    local target = EffectDC():Get_Targets(0):Get_CardPtr(0)
    if  target ~= nil then
       target:PutInHand()
    end 
    </RESOLUTION_TIME_ACTION>
   <RESOLUTION_TIME_ACTION>
    if ( EffectSource() ~= nil ) then   
       EffectSource():DealDamageTo( 3, TriggerPlayer() )
    end
    </RESOLUTION_TIME_ACTION>
    <AI_SIMPLIFIED_TARGETING compartment="0" hint="HINT_ENEMY" />
  </SPELL_ABILITY>
  <ACTIVATED_ABILITY active_zone="ZONE_HAND">
    <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Transmute {1}{U}{B}]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Transmutation {1}{U}{B}]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Transmutar {1}{U}{B}]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Transmutation {1}{U}{B}]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Trasmutare {1}{U}{B}]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[変成 {1}{U}{B}]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[변환 {1}{U}{B}]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[Трансмутация {1}{U}{B}]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[Transmutação {1}{U}{B}]]></LOCALISED_TEXT>
    <COST type="DiscardSelf" />
    <COST mana_cost="{1}{U}{B}" type="Mana" />
    <RESOLUTION_TIME_ACTION>
    local filter = ClearFilter()
    local effectController = EffectController()
    filter:Add( FE_CMC, OP_EQUALS, 4 )
    filter:SetZone( ZONE_LIBRARY, effectController)
    effectController:ChooseItem( "CARD_QUERY_SEARCH_LIBRARY_CMC_4", EffectDC():Make_Targets(0) )
    </RESOLUTION_TIME_ACTION>
    <RESOLUTION_TIME_ACTION>
    local target = EffectDC():Get_Targets(0):Get_CardPtr(0)
    if  target ~= nil then
       target:Reveal()
    end 
    </RESOLUTION_TIME_ACTION>
    <RESOLUTION_TIME_ACTION>
    local target = EffectDC():Get_Targets(0):Get_CardPtr(0)
    if  target ~= nil then
       target:PutInHand()
    end 
    </RESOLUTION_TIME_ACTION>
    <RESOLUTION_TIME_ACTION>
    EffectController():ShuffleLibrary()
    </RESOLUTION_TIME_ACTION>
    <AVAILABILITY sorcery_time="1" />
  </ACTIVATED_ABILITY>
  <AI_BASE_SCORE score="450" zone="ZONE_HAND" />
</CARD_V2>
5. And Dizzy Spell won't take -3/-0 from the opponent:


Code: Select all
<?xml version="1.0"?>
<CARD_V2 ExportVersion="8">
  <FILENAME text="DIZZY_SPELL_1787925" />
  <CARDNAME text="DIZZY_SPELL" />
  <TITLE>
    <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Dizzy Spell]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Dizzy Spell]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Dizzy Spell]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Dizzy Spell]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Dizzy Spell]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[Dizzy Spell]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[Dizzy Spell]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[Dizzy Spell]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[Dizzy Spell]]></LOCALISED_TEXT>
  </TITLE>
  <MULTIVERSEID value="1787925" />
  <ARTID value="A87925" />
  <ARTIST name="Christopher Moeller" />
  <CASTING_COST cost="{U}" />
  <TYPE metaname="Instant" />
  <EXPANSION value="DPI" />
  <RARITY metaname="C" />
  <SPELL_ABILITY>
    <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Target creature gets -3/-0 until end of turn.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Target creature gets -3/-0 until end of turn.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Target creature gets -3/-0 until end of turn.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Target creature gets -3/-0 until end of turn.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Target creature gets -3/-0 until end of turn.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[Target creature gets -3/-0 until end of turn.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[Target creature gets -3/-0 until end of turn.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[Target creature gets -3/-0 until end of turn.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[Target creature gets -3/-0 until end of turn.]]></LOCALISED_TEXT>
    <SFX text="TARGET_PESTS_PLAY" />
    <TARGET tag="CARD_QUERY_CHOOSE_CREATURE_TO_LOSE_3_0" definition="1" compartment="1" count="1" />
    <TARGET_DEFINITION id="0">
    local first_card = EffectDC():Get_Targets(0):Get_CardPtr(0)
    local filter = ClearFilter()
    filter:Add( FE_TYPE, OP_IS, CARD_TYPE_CREATURE )
    end
    </TARGET_DEFINITION>
    <RESOLUTION_ACTION>
    local target1 = EffectDC():Get_Targets(0):Get_CardPtr(0)
    if target2 ~= nil then
       local characteristics = target2:GetCurrentCharacteristics()
       characteristics:Power_Add( -3 )
       characteristics:Toughness_Add( -0 )
    end
    </RESOLUTION_ACTION>
    <DURATION simple_duration="UntilEOT" />
  </SPELL_ABILITY>
  <ACTIVATED_ABILITY active_zone="ZONE_HAND">
    <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Transmute {1}{U}{U}]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Transmutation {1}{U}{U}]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Transmutar {1}{U}{U}]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Transmutation {1}{U}{U}]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Trasmutare {1}{U}{U}]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[変成 {1}{U}{U}]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[변환 {1}{U}{U}]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[Трансмутация {1}{U}{U}]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[Transmutação {1}{U}{U}]]></LOCALISED_TEXT>
    <COST type="DiscardSelf" />
    <COST mana_cost="{1}{U}{U}" type="Mana" />
    <RESOLUTION_TIME_ACTION>
    local filter = ClearFilter()
    local effectController = EffectController()
    filter:Add( FE_CMC, OP_EQUALS, 1 )
    filter:SetZone( ZONE_LIBRARY, effectController)
    effectController:ChooseItem( "CARD_QUERY_SEARCH_LIBRARY_CMC_1", EffectDC():Make_Targets(0) )
    </RESOLUTION_TIME_ACTION>
    <RESOLUTION_TIME_ACTION>
    local target = EffectDC():Get_Targets(0):Get_CardPtr(0)
    if  target ~= nil then
       target:Reveal()
    end 
    </RESOLUTION_TIME_ACTION>
    <RESOLUTION_TIME_ACTION>
    local target = EffectDC():Get_Targets(0):Get_CardPtr(0)
    if  target ~= nil then
       target:PutInHand()
    end 
    </RESOLUTION_TIME_ACTION>
    <RESOLUTION_TIME_ACTION>
    EffectController():ShuffleLibrary()
    </RESOLUTION_TIME_ACTION>
    <AVAILABILITY sorcery_time="1" />
  </ACTIVATED_ABILITY>
  <AI_AVAILABILITY window_step="declare_blockers" type="window" />
  <AI_AVAILABILITY type="in_response" response_target="1" />
  <AI_AVAILABILITY type="in_response" response_source="1" />
  <AI_AVAILABILITY window_step="begin_combat" window_turn="their_turn" type="window" />
  <AI_AVAILABILITY window_step="declare_attackers" window_turn="their_turn" type="window" />
  <AI_AVAILABILITY window_step="main_1" window_turn="my_turn" type="window" />
  <AI_AVAILABILITY window_step="declare_blockers" type="window" />
  <AI_AVAILABILITY window_step="end_of_turn" type="window" />
  <AI_AVAILABILITY type="in_response" response_source="1" response_target="1" />
  <AI_BASE_SCORE score="1200" zone="ZONE_HAND" />
</CARD_V2>
So my card are very insubordinate, so please help me get them in order.
User avatar
Master Necro
 
Posts: 259
Joined: 24 Apr 2013, 18:25
Has thanked: 83 times
Been thanked: 21 times

Re: Formal Request Thread

Postby Xander9009 » 10 Jul 2013, 06:38

Master Necro wrote:@ Xander9009 Sadly it didn't work so now I have even more things that perplex me:

1. There is a card that is giving me a headache... Bloodletter Quill.. The first ability won't activate could anyone take a look:


[code...code]

2. Dimir Charm won't let me choose the second ability (destroy a creature):

[code...code]

3. Mortus Strider won't come back from my Graveyard to my hand:

[code...code]

4. And Clutch of the Undercity won't take 3 damage from the opponent:

[code...code]

So my card are very insubordinate, so please help me get them in order.
Turns out I have to stay up for another hour or so. I had already noticed that my previous advice didn't work. I tried using the code provided by thefiremind for removing a +1/+1 counter from a creature I control ( Zameck Guildmage ) as part of a cost and partially succeeded. But the problem is that it has me targetting an artifact (because that's as far as I've gotten so far). Still working on that.

I think I can help with the Mortus Strider. The trigger should be one line
Code: Select all
<TRIGGER value="ZONECHANGE_BEGIN" to_zone="ZONE_GRAVEYARD" from_zone="ZONE_BATTLEFIELD" />
    <RESOLUTION_TIME_ACTION>
But I think the actual problem is that it's looking for a "target". In the resolution, 'card' is set to a target, but the card doesn't doesn't target anything. Try card = EffectSource() instead.

-------

For Clutch of the Undercity the problem might be that TriggerPlayer() refers to the player whose spell triggered the ability. But, it's not a triggered ability (and if it was, then you would be the triggerplayer). Instead, put this before the permanent is moved
Code: Select all
<RESOLUTION_TIME_ACTION>
    local target = EffectDC():Get_Targets(0):Get_CardPtr(0)
    if target ~= nil then
       local controller = target:GetPlayer()
       EffectDC():Set_PlayerPtr(1, controller)
    end
    </RESOLUTION_TIME_ACTION>
And put this after the permanent is moved
Code: Select all
    <RESOLUTION_TIME_ACTION>
    local player = EffectDC():Get_PlayerPtr(1)
    if player ~= nil then   
       player:LoseLife( 3 )
    end
    </RESOLUTION_TIME_ACTION>
Also, note that it is changed to LosesLife() rather than damage. This, by the way, I pulled directly from Crib Swap and Qountersquall. So, if it doesn't work, look at those two.

-------

Now for the charm, I'd start by making sure each target block has a unique id. Right now they're all set to 0. Then, make sure each reference to a target block refers to the correct id. Don't forget the Make_Targets(1) which will also need its own id. Finally, the resolution blocks each need a mode="#" where the # is which mode it should be active for. Only the first resolution has it set.

So far, with those changes, I have the following, but I have no idea if it works, I've only looked at it briefly. I'll test in a few minutes.

Dimir Charm | Open
Code: Select all
<?xml version="1.0"?>
<CARD_V2 ExportVersion="1">
  <FILENAME text="DIMIR_CHARM_17366473" />
  <CARDNAME text="DIMIR_CHARM" />
  <TITLE>
    <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Dimir Charm]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Dimir Charm]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Dimir Charm]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Dimir Charm]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Dimir Charm]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[Dimir Charm]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[Dimir Charm]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[Dimir Charm]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[Dimir Charm]]></LOCALISED_TEXT>
  </TITLE>
  <MULTIVERSEID value="17366473" />
  <ARTID value="A366473" />
  <ARTIST name="Zoltan Boros" />
  <CASTING_COST cost="{U}{B}" />
  <FLAVOURTEXT>
    <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[“Dangerous to recognize. Deadly not to.”
—Lazav]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[“Dangerous to recognize. Deadly not to.”
—Lazav]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[“Dangerous to recognize. Deadly not to.”
—Lazav]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[“Dangerous to recognize. Deadly not to.”
—Lazav]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[“Dangerous to recognize. Deadly not to.”
—Lazav]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[“Dangerous to recognize. Deadly not to.”
—Lazav]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[“Dangerous to recognize. Deadly not to.”
—Lazav]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[“Dangerous to recognize. Deadly not to.”
—Lazav]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[“Dangerous to recognize. Deadly not to.”
—Lazav]]></LOCALISED_TEXT>
  </FLAVOURTEXT>
  <TYPE metaname="Instant" />
  <EXPANSION value="DPI" />
  <RARITY metaname="U" />
  <SPELL_ABILITY>
    <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Choose one — Counter target sorcery spell; or destroy target creature with power 2 or less; or look at the top three cards of target player's library, then put one back and the rest into that player's graveyard.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Choose one — Counter target sorcery spell; or destroy target creature with power 2 or less; or look at the top three cards of target player's library, then put one back and the rest into that player's graveyard.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Choose one — Counter target sorcery spell; or destroy target creature with power 2 or less; or look at the top three cards of target player's library, then put one back and the rest into that player's graveyard.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Choose one — Counter target sorcery spell; or destroy target creature with power 2 or less; or look at the top three cards of target player's library, then put one back and the rest into that player's graveyard.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Choose one — Counter target sorcery spell; or destroy target creature with power 2 or less; or look at the top three cards of target player's library, then put one back and the rest into that player's graveyard.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[Choose one — Counter target sorcery spell; or destroy target creature with power 2 or less; or look at the top three cards of target player's library, then put one back and the rest into that player's graveyard.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[Choose one — Counter target sorcery spell; or destroy target creature with power 2 or less; or look at the top three cards of target player's library, then put one back and the rest into that player's graveyard.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[Choose one — Counter target sorcery spell; or destroy target creature with power 2 or less; or look at the top three cards of target player's library, then put one back and the rest into that player's graveyard.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[Choose one — Counter target sorcery spell; or destroy target creature with power 2 or less; or look at the top three cards of target player's library, then put one back and the rest into that player's graveyard.]]></LOCALISED_TEXT>
    <MODE_SELECT tag="MODE_CHOOSE_ONE">
      <MODE tag="MODE_DIMIR_COUNTER" index="1" />
      <MODE tag="MODE_DIMIR_DESTRUCTION" index="2" />
      <MODE tag="MODE_DIMIR_CARD" index="3" />
    </MODE_SELECT>
    <TARGET_DEFINITION id="0">
    local filter = ClearFilter()
    filter:SetZone( ZONE_STACK )
    filter:Add (FE_TYPE, OP_IS, CARD_TYPE_SORCERY)
    </TARGET_DEFINITION>
    <RESOLUTION_TIME_ACTION mode="1">
    local target = EffectDC():Get_Targets(0):Get_CardPtr(0)
    if target ~= nil then
       target:CounterSpell()
    end
    </RESOLUTION_TIME_ACTION>
    <TARGET tag="CARD_QUERY_CHOOSE_CREATURE_TO_DESTROY" definition="1" compartment="0" mode="2" count="1" />
    <TARGET_DEFINITION id="1">
    local filter = ClearFilter()
    filter:Add( FE_TYPE, OP_IS, CARD_TYPE_CREATURE )
    filter:Add( FE_POWER, OP_LESS_THAN_OR_EQUAL_TO, 2 )
    </TARGET_DEFINITION>
    <RESOLUTION_TIME_ACTION mode="2">
    local target = EffectDC():Get_Targets(1):Get_CardPtr(0)
    if target ~= nil then
       target:Destroy()
    end
    </RESOLUTION_TIME_ACTION>
    <AI_SIMPLIFIED_TARGETING compartment="0" hint="HINT_ENEMY_ONLY" />
    <TARGET tag="CARD_QUERY_CHOOSE_PLAYER_TO_VESTIGE_ROT" definition="3" compartment="0" mode="3" count="1" />
    <TARGET_DEFINITION id="3">
    local filter = ClearFilter()
    filter:SetFilterType(FILTER_TYPE_PLAYERS)
    </TARGET_DEFINITION>
    <RESOLUTION_TIME_ACTION mode="3">
    local target_player = EffectDC():Get_Targets(3):Get_PlayerPtr(0)
    if target_player ~= nil then
       local answerDC = EffectDC():Make_Targets(4)
       local queryDC = EffectDC():Make_Chest(2)
       for i=0,2 do
          local card = target_player:Library_GetNth(i)
          if card ~= nil then
             queryDC:Set_CardPtr(i, card)
          else
             break
          end
       end
       if answerDC ~= nil and queryDC ~= nil then
          EffectController():ChooseItemFromDC("CARD_QUERY_CHOOSE_CARD_TO_PUT_ONTO_LIBRARY", queryDC, answerDC)
       end
    end
    </RESOLUTION_TIME_ACTION>
    <RESOLUTION_TIME_ACTION mode="3">
    local target_player = EffectDC():Get_Targets(3):Get_PlayerPtr(0)
    if target_player ~= nil then
       local chosen_card = EffectDC():Get_Targets(4):Get_CardPtr(0)
       if chosen_card ~= nil then
          local queryDC = EffectDC():Get_Chest(2)
          local num_cards = queryDC:Count()
          for i=0,num_cards-1 do
             local card = queryDC:Get_CardPtr(i)
             if card ~= nil and card ~= chosen_card then
                card:PutInGraveyard()
             end
          end
       end
    end
    </RESOLUTION_TIME_ACTION>
    <AI_SIMPLIFIED_TARGETING compartment="0" hint="HINT_ENEMY" />
  </SPELL_ABILITY>
  <AI_AVAILABILITY type="in_response" response_source="1" />
  <AI_AVAILABILITY window_step="begin_combat" window_turn="their_turn" type="window" />
  <AI_AVAILABILITY window_step="declare_attackers" window_turn="their_turn" type="window" />
  <AI_AVAILABILITY window_step="main_1" window_turn="my_turn" type="window" />
  <AI_AVAILABILITY window_step="declare_blockers" type="window" />
  <AI_AVAILABILITY window_step="end_of_turn" type="window" />
  <AI_AVAILABILITY type="in_response" response_source="1" response_target="1" />
  <AI_AVAILABILITY type="in_response" response_source="1" />
  <AI_AVAILABILITY window_step="end_of_turn" window_turn="their_turn" type="window" />
  <AI_AVAILABILITY window_step="main_1" window_turn="my_turn" type="window" />
  <AI_AVAILABILITY window_step="main_2" window_turn="my_turn" type="window" />
  <AI_BASE_SCORE score="1200" zone="ZONE_HAND" />
</CARD_V2>
Edit: Alright, I got the Quill working. It appears that generic cost blocks require a <PREREQUISITE> block. I simply used
Code: Select all
<PREREQUISITE>
      return true
      </PREREQUISITE>
before the resolution block and it now works. The entire code for that ability looks like this
Code: Select all
<ACTIVATED_ABILITY>
    <LOCALISED_TEXT...LOCALISED_TEXT>
   <COUNTER_REGISTRATION name="Blood" proliferate="11" />
   <COST type="Mana" mana_cost="{2}" />
   <COST type="TapSelf" />
   <COST type="generic">
      <PREREQUISITE>
      return true
      </PREREQUISITE>
     
      <RESOLUTION_TIME_ACTION>
      if EffectSource() ~= nil then
         EffectSource():AddCounters( MTG():GetCountersType("Blood"), 1 )
      end
      </RESOLUTION_TIME_ACTION>
    </COST>
   <RESOLUTION_TIME_ACTION>
    EffectController():DrawCards(1)
   </RESOLUTION_TIME_ACTION>
   <RESOLUTION_TIME_ACTION>
   if EffectController() ~= nil then
      EffectController():LoseLife( EffectSource():CountCounters(MTG():GetCountersType("Blood")) )
   end 
   </RESOLUTION_TIME_ACTION>
  </ACTIVATED_ABILITY>
_______________________________
Community Wad - Community Wad Website - How to Help and Report Bugs
Discord: discord.gg/4AXvHzW
User avatar
Xander9009
Programmer
 
Posts: 2905
Joined: 29 Jun 2013, 07:44
Location: Indiana, United States
Has thanked: 121 times
Been thanked: 445 times

Re: Formal Request Thread

Postby Master Necro » 10 Jul 2013, 07:10

@Xander9009:

Thanks dude! I've tested the cards and this is how it goes:

Dimir Charm : It now lets me pick the destroy option but it doesn't destroy the creature.

Bloodletter Quill: Works perfectly.

Mortus Strider: Still doesn't work.

Clutch of the Undercity: Works perfectly.

Dizzy Spell: I know you didn't touch it but worth saying still doesn't work.. :mrgreen:
User avatar
Master Necro
 
Posts: 259
Joined: 24 Apr 2013, 18:25
Has thanked: 83 times
Been thanked: 21 times

Re: Formal Request Thread

Postby Xander9009 » 10 Jul 2013, 08:18

Master Necro wrote:@Xander9009:

Thanks dude! I've tested the cards and this is how it goes:

Dimir Charm : It now lets me pick the destroy option but it doesn't destroy the creature.

Bloodletter Quill: Works perfectly.

Mortus Strider: Still doesn't work.

Clutch of the Undercity: Works perfectly.

Dizzy Spell: I know you didn't touch it but worth saying still doesn't work.. :mrgreen:
Furthest I can get on Dimir Charm is the following. I redid it partly from scratch by copying from Izzet Charm and modifying. Its last ability which I modified from Brainstorm still doesn't work properly. It's close, but not quite there.

Dimir Charm | Open
Code: Select all
<?xml version="1.0"?>
<CARD_V2 ExportVersion="1">
  <FILENAME text="DIMIR_CHARM_17366473" />
  <CARDNAME text="DIMIR_CHARM" />
  <TITLE>
    <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Dimir Charm]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Dimir Charm]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Dimir Charm]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Dimir Charm]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Dimir Charm]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[Dimir Charm]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[Dimir Charm]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[Dimir Charm]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[Dimir Charm]]></LOCALISED_TEXT>
  </TITLE>
  <MULTIVERSEID value="17366473" />
  <ARTID value="A366473" />
  <ARTIST name="Zoltan Boros" />
  <CASTING_COST cost="{U}{B}" />
  <FLAVOURTEXT>
    <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[“Dangerous to recognize. Deadly not to.”
—Lazav]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[“Dangerous to recognize. Deadly not to.”
—Lazav]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[“Dangerous to recognize. Deadly not to.”
—Lazav]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[“Dangerous to recognize. Deadly not to.”
—Lazav]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[“Dangerous to recognize. Deadly not to.”
—Lazav]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[“Dangerous to recognize. Deadly not to.”
—Lazav]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[“Dangerous to recognize. Deadly not to.”
—Lazav]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[“Dangerous to recognize. Deadly not to.”
—Lazav]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[“Dangerous to recognize. Deadly not to.”
—Lazav]]></LOCALISED_TEXT>
  </FLAVOURTEXT>
  <TYPE metaname="Instant" />
  <EXPANSION value="DPI" />
  <RARITY metaname="U" />
  <SPELL_ABILITY>
    <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Choose one — Counter target sorcery spell; or destroy target creature with power 2 or less; or look at the top three cards of target player's library, then put one back and the rest into that player's graveyard.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Choose one — Counter target sorcery spell; or destroy target creature with power 2 or less; or look at the top three cards of target player's library, then put one back and the rest into that player's graveyard.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Choose one — Counter target sorcery spell; or destroy target creature with power 2 or less; or look at the top three cards of target player's library, then put one back and the rest into that player's graveyard.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Choose one — Counter target sorcery spell; or destroy target creature with power 2 or less; or look at the top three cards of target player's library, then put one back and the rest into that player's graveyard.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Choose one — Counter target sorcery spell; or destroy target creature with power 2 or less; or look at the top three cards of target player's library, then put one back and the rest into that player's graveyard.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[Choose one — Counter target sorcery spell; or destroy target creature with power 2 or less; or look at the top three cards of target player's library, then put one back and the rest into that player's graveyard.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[Choose one — Counter target sorcery spell; or destroy target creature with power 2 or less; or look at the top three cards of target player's library, then put one back and the rest into that player's graveyard.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[Choose one — Counter target sorcery spell; or destroy target creature with power 2 or less; or look at the top three cards of target player's library, then put one back and the rest into that player's graveyard.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[Choose one — Counter target sorcery spell; or destroy target creature with power 2 or less; or look at the top three cards of target player's library, then put one back and the rest into that player's graveyard.]]></LOCALISED_TEXT>
    <MODE_SELECT tag="MODE_CHOOSE_ONE">
      <MODE tag="MODE_DIMIR_COUNTER" index="1" />
      <MODE tag="MODE_DIMIR_DESTRUCTION" index="2" />
      <MODE tag="MODE_DIMIR_CARD" index="3" />
    </MODE_SELECT>
    <TARGET tag="CARD_QUERY_CHOOSE_SPELL_TO_COUNTER" definition="0" compartment="0" mode="1" count="1" />
    <TARGET_DEFINITION id="0">
    local filter = ClearFilter()
    filter:SetZone( ZONE_STACK )
    filter:Add( FE_TYPE, OP_NOT, CARD_TYPE_CREATURE )
   filter:Add( FE_TYPE, OP_IS, CARD_TYPE_SORCERY )
    </TARGET_DEFINITION>
    <RESOLUTION_TIME_ACTION mode="1">
    local target = EffectDC():Get_Targets(0):Get_CardPtr(0)
    if target ~= nil then
       target:CounterSpell()
    end
    </RESOLUTION_TIME_ACTION>
    <TARGET tag="CARD_QUERY_CHOOSE_CREATURE_TO_DESTROY" definition="1" compartment="1" mode="2" count="1" />
    <TARGET_DEFINITION id="1">
    local filter = ClearFilter()
    filter:Add( FE_TYPE, OP_IS, CARD_TYPE_CREATURE )
   filter:Add( FE_POWER, OP_LESS_THAN_OR_EQUAL_TO, 2 )
    </TARGET_DEFINITION>
    <RESOLUTION_TIME_ACTION mode="2">
    local target_creature = EffectDC():Get_Targets(1):Get_CardPtr(0)
    if target_creature ~= nil then
       target_creature:Destroy()
    end
    </RESOLUTION_TIME_ACTION>
    <TARGET tag="CARD_QUERY_CHOOSE_PLAYER_TO_VESTIGE_ROT" definition="2" compartment="2" mode="3" count="1" />
    <TARGET_DEFINITION id="2">
    local filter = ClearFilter()
    filter:SetFilterType(FILTER_TYPE_PLAYERS)
    </TARGET_DEFINITION>
    <RESOLUTION_TIME_ACTION mode="3">
    local answerDC = EffectDC():Make_Targets(3)
    local queryDC = EffectDC():Make_Chest(1)
    local player = EffectController()
   local targetPlayer = EffectDC():Get_Targets(2):Get_PlayerPtr(0)
    for i=0,(2) do
       local card = targetPlayer:Library_GetNth(i)
       
       if card ~= nil then
          queryDC:Set_CardPtr(i, card)
       else
          break
       end
    end
    if answerDC ~= nil and queryDC ~= nil then
       player:ChooseItemFromDC( "CARD_QUERY_CHOOSE_A_CARD_TOP_OF_LIBRARY", queryDC, answerDC)
    end
    </RESOLUTION_TIME_ACTION>
    <RESOLUTION_TIME_ACTION mode="3">
    local target = EffectDC():Get_Targets(3):Get_CardPtr(0)
    if  target ~= nil then
       target:PutOnTopOfLibrary()
    end 
    </RESOLUTION_TIME_ACTION>
    <RESOLUTION_TIME_ACTION mode="3">
    local queryDC = EffectDC():Get_Chest(1)
    local num_cards = queryDC:Count()
    for i=0,num_cards-1 do
       local card = queryDC:Get_CardPtr(i)
       if card ~= nil then
          card:PutInGraveyard()
       end
    end
    </RESOLUTION_TIME_ACTION>
    <AI_SIMPLIFIED_TARGETING compartment="0" hint="HINT_ENEMY_ONLY" />
    <AI_SIMPLIFIED_TARGETING compartment="1" hint="HINT_ENEMY_ONLY" />
   <AI_SIMPLIFIED_TARGETING compartment="2" hint="HINT_ENEMY_ONLY" />
  </SPELL_ABILITY>
  <AI_AVAILABILITY type="in_response" response_source="1" />
  <AI_AVAILABILITY window_step="begin_combat" window_turn="their_turn" type="window" />
  <AI_AVAILABILITY window_step="declare_attackers" window_turn="their_turn" type="window" />
  <AI_AVAILABILITY window_step="main_1" window_turn="my_turn" type="window" />
  <AI_AVAILABILITY window_step="declare_blockers" type="window" />
  <AI_AVAILABILITY window_step="end_of_turn" type="window" />
  <AI_AVAILABILITY type="in_response" response_source="1" response_target="1" />
  <AI_AVAILABILITY type="in_response" response_source="1" />
  <AI_AVAILABILITY window_step="end_of_turn" window_turn="their_turn" type="window" />
  <AI_AVAILABILITY window_step="main_1" window_turn="my_turn" type="window" />
  <AI_AVAILABILITY window_step="main_2" window_turn="my_turn" type="window" />
  <AI_BASE_SCORE score="1200" zone="ZONE_HAND" />
</CARD_V2>
I didn't correct Dizzy Spell because I didn't notice it. It's a bit a mess :)

Please don't be offended if I tell you a bunch of stuff you already know. I don't know what you know and what you don't, so I'll just explain my reasons for everything, and if it helps, great; if you already knew that, no harm.

I see two things that might make it not work. The first reason I think it's not working is because the <TARGET tag...> has definition="1" but the target block has id 0. Changing the target tag to have definition 0 so it matches the target block. (While you're there, you might change the compartment to 0 as well. But that doesn't really matter, it just looks cleaner.)

So
Code: Select all
<TARGET tag="CARD_QUERY_CHOOSE_CREATURE_TO_LOSE_3_0" definition="1" compartment="1" count="1" />
becomes
Code: Select all
<TARGET tag="CARD_QUERY_CHOOSE_CREATURE_TO_LOSE_3_0" definition="0" compartment="0" count="1" />
The second reason is that resolution blocks are used for events, things like draw a card, kill a creature, do some damage. Things that persist like "until end of turn, do this" need continuous blocks. Furthermore, they need a layer telling them what they're modifying. In this case, they're modifying power and toughness (by adding and subtracting, not by making it equal something ['gets +1/+1 until end of turn' vs 'becomes 1/1 until end of turn') so look ok the layers page on the wiki to see which layer it should be. In this case, it's 7C. So the
Code: Select all
<RESOLUTION_ACTION>
should be replaced with
Code: Select all
<CONTINUOUS_ACTION layer="7C">
Don't forget to change the closing tag, also.

Next up, the target block has an 'end' at the end. There's no 'if' or 'for' or anything like that, so there doesn't need to be an 'end'. That same block also has the variable 'first_card', but 'first_card' is never used. So you could just delete that entire line. Like the compartment, it doesn't matter, but it doesn't need to be there.

Code: Select all
    <TARGET_DEFINITION id="0">
    local first_card = EffectDC():Get_Targets(0):Get_CardPtr(0)
    local filter = ClearFilter()
    filter:Add( FE_TYPE, OP_IS, CARD_TYPE_CREATURE )
    end
    </TARGET_DEFINITION>
becomes
Code: Select all
    <TARGET_DEFINITION id="0">
    local filter = ClearFilter()
    filter:Add( FE_TYPE, OP_IS, CARD_TYPE_CREATURE )
    </TARGET_DEFINITION>
Finally, in the resolution block (the one we changed to continuous), you make 'target1' and then ask about 'target2', but 'target2' doesn't exist, because you named it 'target1'. Replace both with simply "target" and do the same in the next line for the characteristics.
Code: Select all
    <RESOLUTION_ACTION>
    local target1 = EffectDC():Get_Targets(0):Get_CardPtr(0)
    if target2 ~= nil then
       local characteristics = target2:GetCurrentCharacteristics()
       characteristics:Power_Add( -3 )
       characteristics:Toughness_Add( -0 )
    end
    </RESOLUTION_ACTION>
becomes
Code: Select all
     <RESOLUTION_ACTION>
    local target = EffectDC():Get_Targets(0):Get_CardPtr(0)
    if target ~= nil then
       local characteristics = target:GetCurrentCharacteristics()
       characteristics:Power_Add( -3 )
       characteristics:Toughness_Add( -0 )
    end
    </RESOLUTION_ACTION>
Combining those gives us this. I don't know it'll will make the card work, but here's the result.
Dizzy Spell | Open
Code: Select all
    <TARGET tag="CARD_QUERY_CHOOSE_CREATURE_TO_LOSE_3_0" definition="0" compartment="0" count="1" />
    <TARGET_DEFINITION id="0">
    local filter = ClearFilter()
    filter:Add( FE_TYPE, OP_IS, CARD_TYPE_CREATURE )
    </TARGET_DEFINITION>
    <CONTINUOUS_ACTION layer="7C">
    local target = EffectDC():Get_Targets(0):Get_CardPtr(0)
    if target ~= nil then
       local characteristics = target:GetCurrentCharacteristics()
       characteristics:Power_Add( -3 )
       characteristics:Toughness_Add( -0 )
    end
    </CONTINUOUS_ACTION>
    <DURATION simple_duration="UntilEOT" />
  </SPELL_ABILITY>
_______________________________
Community Wad - Community Wad Website - How to Help and Report Bugs
Discord: discord.gg/4AXvHzW
User avatar
Xander9009
Programmer
 
Posts: 2905
Joined: 29 Jun 2013, 07:44
Location: Indiana, United States
Has thanked: 121 times
Been thanked: 445 times

Re: Formal Request Thread

Postby thefiremind » 10 Jul 2013, 08:29

NOTE: Post subject to edits, I just turned the PC on and I missed a lot of posts here so I'll approach them one step at a time.

About Bloodletter Quill, you can code the blood counter addition in an easier way: the game doesn't support only RemoveCounters as standard cost, but also AddCounters. Try this instead of the generic cost:
Code: Select all
<COST type="AddCountersSelf" item_count="1" amount="1" counter_type="Blood" />
There's another small problem: blood counters are "bad" counters, so you don't want to proliferate them on yourself. Change proliferate="11" with proliferate="-11".

BloodReyvyn wrote:I am having an issue with my Drowner Initiate. It asks me for a target before I even pay the {1} (which I know is because it calls that first)
For those who don't know, this is rule-compliant: targets always need to be declared before resolution, but everything else happens on resolution, so even if it's a bit weird, you need to choose your target before you actually decide if you'll make something to that target.
And about the resource cost, if you want to avoid using the UTILITY_ABILITY you can use CanPayManaCost("{1}") and PayManaCost("{1}"). As far as I know there are no differences, aside from the UTILITY_ABILITY making the code easily reusable because you need to change the cost only in one place.

Mortus Strider needs to have its EffectSource() protected if you want to be able to address it after zone change. The ZONECHANGE_BEGIN trigger is triggered when the zone change hasn't happened yet, but resolution happens after the zone change anyway. So:
Code: Select all
    <TRIGGER value="ZONECHANGE_BEGIN" to_zone="ZONE_GRAVEYARD" from_zone="ZONE_BATTLEFIELD">
    -- This happens BEFORE zone change
    EffectDC():Protect_CardPtr(COMPARTMENT_ID_EFFECT_SOURCE)
    return true
    </TRIGGER>
    <RESOLUTION_TIME_ACTION>
    -- This happens AFTER zone change
    if EffectSource() ~= nil then
       EffectSource():PutInHand()
    end
    </RESOLUTION_TIME_ACTION>
(Of course you can skip the comments :lol:)

Dimir Charm is a mess, you need to put each different target in a different compartment and give each TARGET_DEFINITION a different ID, matching them with their TARGET blocks after that.
I made a picture that should help understanding... at least I hope so!
It's the code from Jund Charm (official card), and I linked the IDs that match:
Image(Click to enlarge)
Last edited by thefiremind on 10 Jul 2013, 09:21, edited 5 times in total.
< Former DotP 2012/2013/2014 modder >
Currently busy with life...
User avatar
thefiremind
Programmer
 
Posts: 3515
Joined: 07 Nov 2011, 10:55
Has thanked: 118 times
Been thanked: 722 times

Re: Formal Request Thread

Postby Master Necro » 10 Jul 2013, 08:38

@ Xander9009:

Dizzy spell works! :)

But I do not understand what are you doing to Dimir Charm, the problem is in the second ability, this part of the code:

Code: Select all
<TARGET tag="CARD_QUERY_CHOOSE_CREATURE_TO_DESTROY" definition="1" compartment="1" mode="2" count="1" />
    <TARGET_DEFINITION id="1">
    local filter = ClearFilter()
    filter:Add( FE_TYPE, OP_IS, CARD_TYPE_CREATURE )
   filter:Add( FE_POWER, OP_LESS_THAN_OR_EQUAL_TO, 2 )
    </TARGET_DEFINITION>
    <RESOLUTION_TIME_ACTION mode="2">
    local target_creature = EffectDC():Get_Targets(1):Get_CardPtr(0)
    if target_creature ~= nil then
       target_creature:Destroy()
    end
    </RESOLUTION_TIME_ACTION>
That part doesn't respond correctly and it seams you want to change everything except that.

@ thefiremind:

Actually Bloodletter Quill works perfectly now. :)
User avatar
Master Necro
 
Posts: 259
Joined: 24 Apr 2013, 18:25
Has thanked: 83 times
Been thanked: 21 times

PreviousNext

Return to 2014

Who is online

Users browsing this forum: No registered users and 17 guests

Main Menu

User Menu

Our Partners


Who is online

In total there are 17 users online :: 0 registered, 0 hidden and 17 guests (based on users active over the past 10 minutes)
Most users ever online was 7303 on 15 Jul 2025, 20:46

Users browsing this forum: No registered users and 17 guests

Login Form