It is currently 24 Jun 2025, 22:07
   
Text Size

Formal Request Thread

Moderator: CCGHQ Admins

Re: Formal Request Thread

Postby thefiremind » 10 Jul 2013, 08:47

Master Necro wrote:@ thefiremind:

Actually Bloodletter Quill works perfectly now. :)
I know, but I was suggesting a way to make the code cleaner. And you can't see the problem with proliferate until you try a card with proliferate. :mrgreen: I have some ideas about things to try in place of "11" but I need to test them.

EDIT: It seems that "-11" does the trick. Updating the previous post.
< 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 Wolfen » 10 Jul 2013, 11:46

I know it's not really usual, but could someone please make a persona pack mod in case it is possible to change them or introduce them in a mod? I think it would be great to have even more alternatives to the avatars which are already present in game.
User avatar
Wolfen
 
Posts: 7
Joined: 12 Oct 2011, 09:39
Has thanked: 4 times
Been thanked: 0 time

Re: Formal Request Thread

Postby Xander9009 » 10 Jul 2013, 12:12

Master Necro wrote:@ 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...code]

That part doesn't respond correctly and it seams you want to change everything except that.
Sorry, that was because, I was having some problems with it after trying to fix it. I wasn't sure what was causing the issues, so I decided to copy Jund Charm and change it bit by bit until I found why it wasn't working. I was too tired to spot the reason the original wasn't working, though. Thefiremind already pointed it out, it was because the target tags had duplicate ids/compartments. The second ability's actual code was fine, and so it wasn't changed. It wasn't working, but it wasn't the ability's code itself that was messed up. This seems to have all the second two modes working (didn't test the first).

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_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>
-----

thefiremind wrote: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.
I never think about protecting a card. That would have taken me forever to realize :)
_______________________________
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 RiiakShiNal » 10 Jul 2013, 12:25

Normally I would ignore card requests at this point because I'm still busy with my own mods, but I had already made these for testing purposes so:

Baleful Strix | Open
Code: Select all
<?xml version='1.0'?>
<CARD_V2>
   <FILENAME text="RSN_BALEFUL_STRIX_265156" />
   <CARDNAME text="BALEFUL_STRIX" />
   <TITLE>
      <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Baleful Strix]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Sinistre strix]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Strix maléfico]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Unheilskauz]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Strige Funesto]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[悪意の大梟]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[Baleful Strix]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[Baleful Strix]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[Baleful Strix]]></LOCALISED_TEXT>
   </TITLE>
   <MULTIVERSEID value="265156" />
   <ARTID value="RSN265156" />
   <ARTIST name="Nils Hamm" />
   <CASTING_COST cost="{U}{B}" />
   <FLAVOURTEXT>
      <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Its beak rends flesh and bone, exposing the tender marrow of dream.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Son bec déchire la chair et taille l’os exposant à l’air libre la tendre moelle du rêve.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Su pico rasga carne y hueso, exponiendo el suave tuétano del sueño.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Sein Schnabel zerreißt Fleisch und Knochen, bis er das zarte Innere der Träume freilegt.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Il suo becco squarcia carne e ossa, mettendo allo scoperto la tenera essenza dei sogni.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[その嘴は肉と骨を裂き、柔らかな夢の随を剥き出しにする。]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[Its beak rends flesh and bone, exposing the tender marrow of dream.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[Its beak rends flesh and bone, exposing the tender marrow of dream.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[Its beak rends flesh and bone, exposing the tender marrow of dream.]]></LOCALISED_TEXT>
   </FLAVOURTEXT>
   <TYPE metaname="Artifact" />
   <TYPE metaname="Creature" />
   <SUB_TYPE metaname="Bird" />
   <EXPANSION value="P12" />
   <RARITY metaname="U" />
   <POWER value="1" />
   <TOUGHNESS value="1" />
   <HELP title="MORE_INFO_BADGE_TITLE_10" body="MORE_INFO_BADGE_BODY_10" zone="ZONE_ANY" />
   <STATIC_ABILITY commaspace="0">
      <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>
   <HELP title="MORE_INFO_BADGE_TITLE_3" body="MORE_INFO_BADGE_BODY_3" zone="ZONE_ANY" />
   <STATIC_ABILITY commaspace="1">
      <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Deathtouch]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Contact mortel]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Toque mortal.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Todesberührung]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Tocco letale]]></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[Toque mortífero]]></LOCALISED_TEXT>
      <INTRINSIC characteristic="CHARACTERISTIC_DEATHTOUCH" />
   </STATIC_ABILITY>
   <TRIGGERED_ABILITY>
      <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[When Baleful Strix enters the battlefield, draw a card.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Quand le Sinistre strix arrive sur le champ de bataille, piochez une carte.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Cuando el Strix maléfico entre al campo de batalla, roba una carta.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Wenn der Unheilskauz ins Spiel kommt, ziehe eine Karte.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Quando lo Strige Funesto entra nel campo di battaglia, pesca una carta.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[悪意の大梟が戦場に出たとき、カードを1枚引く。]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[When Baleful Strix enters the battlefield, draw a card.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[When Baleful Strix enters the battlefield, draw a card.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[When Baleful Strix enters the battlefield, draw a card.]]></LOCALISED_TEXT>
      <TRIGGER value="ZONECHANGE_END" simple_qualifier="self" to_zone="ZONE_BATTLEFIELD" />
      <RESOLUTION_TIME_ACTION>
         EffectController():DrawCards(1)
      </RESOLUTION_TIME_ACTION>
   </TRIGGERED_ABILITY>
</CARD_V2>
Parasitic Strix | Open
Code: Select all
<?xml version='1.0'?>
<CARD_V2>
   <FILENAME text="RSN_PARASITIC_STRIX_175021" />
   <CARDNAME text="PARASITIC_STRIX" />
   <TITLE>
      <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Parasitic Strix]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Strix parasite]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Strix parasitario]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Parasitischer Kauz]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Strige Parassita]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[寄生的な大梟]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[Parasitic Strix]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[Неясыть-Паразит]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[Estrige Parasita]]></LOCALISED_TEXT>
   </TITLE>
   <MULTIVERSEID value="175021" />
   <ARTID value="RSN175021" />
   <ARTIST name="Steven Belledin" />
   <CASTING_COST cost="{2}{U}" />
   <FLAVOURTEXT>
      <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[After finding no sustenance on the edges of Grixis, it turned to the skies of Bant.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[N’ayant pas trouvé de quoi se nourrir aux frontières de Grixis, il se concentra sur le ciel de Bant.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Tras no encontrar sustento en los bordes de Grixis, se volvió hacia los cielos de Bant.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Nachdem er an den Grenzen von Grixis keine Nahrung fand, wandte er sich dem Himmel über Bant zu.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Non trovando nutrimento nelle terre di Grixis, decise di passare ai cieli di Bant.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[それはグリクシスの境界で何も食料を見つけられず、バントの空へ向き直った。]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[After finding no sustenance on the edges of Grixis, it turned to the skies of Bant.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[Не найдя пропитания на окраинах Гриксиса, птица взяла курс на Бэнт.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[Após não encontrar nenhum alimento nos confins de Grixis, ela voltou-se aos céus de Bant.]]></LOCALISED_TEXT>
   </FLAVOURTEXT>
   <TYPE metaname="Artifact" />
   <TYPE metaname="Creature" />
   <SUB_TYPE metaname="Bird" />
   <EXPANSION value="CFX" />
   <RARITY metaname="C" />
   <POWER value="2" />
   <TOUGHNESS value="2" />
   <HELP title="MORE_INFO_BADGE_TITLE_10" body="MORE_INFO_BADGE_BODY_10" zone="ZONE_ANY" />
   <STATIC_ABILITY commaspace="0">
      <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>
      <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[When Parasitic Strix comes into play, if you control a black permanent, target player loses 2 life and you gain 2 life.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Quand le Strix parasite arrive en jeu, si vous contrôlez un permanent noir, le joueur ciblé perd 2 points de vie et vous gagnez 2 points de vie.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Cuando el Strix parasitario entre en juego, si controlas un permanente negro, el jugador objetivo pierde 2 vidas y tú ganas 2 vidas.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Falls du eine schwarze bleibende Karte kontrollierst, wenn der Parasitische Kauz ins Spiel kommt, verliert ein Spieler deiner Wahl 2 Lebenspunkte, und du erhältst 2 Lebenspunkte dazu.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Quando lo Strige Parassita entra in gioco, se controlli un permanente nero, un giocatore bersaglio perde 2 punti vita e tu guadagni 2 punti vita.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[寄生的な大梟が場に出たとき、あなたが黒のパーマネントをコントロールしている場合、プレイヤー1人を対象とする。そのプレイヤーは2点のライフを失い、あなたは2点のライフを得る。]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[When Parasitic Strix comes into play, if you control a black permanent, target player loses 2 life and you gain 2 life.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[Когда Неясыть-Паразит входит в игру, если под вашим контролем есть черный перманент, целевой игрок теряет 2 жизни, а вы получаете 2 жизни.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[Quando Estrige Parasita entrar em jogo, se você controlar uma permanente preta, o jogador alvo perderá 2 pontos de vida e você ganhará 2 pontos de vida.]]></LOCALISED_TEXT>
      <TRIGGER value="ZONECHANGE_END" simple_qualifier="self" to_zone="ZONE_BATTLEFIELD" />
      <INTERVENING_IF>
         local oFilter = ClearFilter()
         oFilter:Add( FE_COLOUR, OP_IS, COLOUR_BLACK )
         oFilter:Add( FE_CONTROLLER, OP_IS, EffectController())
         oFilter:Add( FE_IS_PERMANENT, true )
         local nTotal = oFilter:Count()
         if (nTotal &gt; 0) then
            return true
         else
            return false
         end
      </INTERVENING_IF>
      <TARGET tag="CARD_QUERY_CHOOSE_PLAYER_LOSE_2" definition="0" compartment="0" count="1" />
      <TARGET_DEFINITION id="0">
         local oFilter = ClearFilter()
         oFilter:SetFilterType( FILTER_TYPE_PLAYERS )
      </TARGET_DEFINITION>
      <RESOLUTION_TIME_ACTION>
         local oTargetPlayer = EffectDC():Get_Targets(0):Get_PlayerPtr(0)
         if (oTargetPlayer ~= nil) then
            oTargetPlayer:LoseLife( 2 )
            EffectController():GainLife( 2 )
         end
      </RESOLUTION_TIME_ACTION>
      <AI_SIMPLIFIED_TARGETING compartment="0" hint="HINT_ENEMY_ONLY" />
   </TRIGGERED_ABILITY>
</CARD_V2>
Tidehollow Strix | Open
Code: Select all
<?xml version='1.0'?>
<CARD_V2>
   <FILENAME text="RSN_TIDEHOLLOW_STRIX_175015" />
   <CARDNAME text="TIDEHOLLOW_STRIX" />
   <TITLE>
      <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Tidehollow Strix]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Strix de la Mer creuse]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Strix de Marea Hueca]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Gezeitenleere-Kauz]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Strige di Mareacava]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[潮の虚ろの大梟]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[Tidehollow Strix]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[Неясыть Приливных Пещер]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[Strix da Grota das Marés]]></LOCALISED_TEXT>
   </TITLE>
   <MULTIVERSEID value="175015" />
   <ARTID value="RSN175015" />
   <ARTIST name="Cyril Van Der Haegen" />
   <CASTING_COST cost="{U}{B}" />
   <FLAVOURTEXT>
      <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[The scullers beneath Esper keep strixes as trained pets, and set them loose when a fare refuses to pay.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Les passeurs sous Esper ont des strix comme animaux familiers, qu’ils lâchent sur ceux qui refusent de payer leur passage.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Los barqueros bajo Esper tienen strixes amaestrados que liberan cuando alguien se niega a pagar.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Die Ruderer unter Esper halten sich Käuze als Haustiere und lassen sie los, wenn ein Fahrgast nicht bezahlen will.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[I rematori sotto Esper hanno gli strigi come animali addestrati e li liberano quando un passeggero rifiuta di pagare.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[エスパーの支配下の漕ぎ手は大梟をペットとして飼いならし、運賃を拒んだ者にそれを解き放つ。]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[The scullers beneath Esper keep strixes as trained pets, and set them loose when a fare refuses to pay.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[Кормчие эсперского подземного мира приручают неясытей, спуская их с привязи, когда путники отказываются оплачивать перевоз.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[Os remadores sob Esper usam os strixes como animais de estimação treinados, liberando-os quando alguém se recusa a pagar.]]></LOCALISED_TEXT>
   </FLAVOURTEXT>
   <TYPE metaname="Artifact" />
   <TYPE metaname="Creature" />
   <SUB_TYPE metaname="Bird" />
   <EXPANSION value="ALA" />
   <RARITY metaname="C" />
   <POWER value="2" />
   <TOUGHNESS value="1" />
   <HELP title="MORE_INFO_BADGE_TITLE_10" body="MORE_INFO_BADGE_BODY_10" zone="ZONE_ANY" />
   <STATIC_ABILITY commaspace="0">
      <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>
   <HELP title="MORE_INFO_BADGE_TITLE_3" body="MORE_INFO_BADGE_BODY_3" zone="ZONE_ANY" />
   <STATIC_ABILITY commaspace="0">
      <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Deathtouch]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Contact mortel]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Toque mortal.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Todesberührung]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Tocco letale]]></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[Toque mortífero]]></LOCALISED_TEXT>
      <INTRINSIC characteristic="CHARACTERISTIC_DEATHTOUCH" />
   </STATIC_ABILITY>
</CARD_V2>
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, 14:50

thefiremind wrote:It seems that "-11" does the trick. Updating the previous post.
Well, that's easier than expected. That's always nice. :)

I've got a question, do you know of a way to make mana by removing tokens? Cloudpost is being annoying. I had it working mostly, but the 4 mana one would produce was only usable on one spell because the game doesn't seem to keep track of mana left in the mana pool. I decided to tap to add mana counters and then have a mana ability which costs the removal of one counter for 1 mana and then remove all counters at the end of each step. Unfortunately, it doesn't seem to remove counters and still taps (for one mana). Second, do you know of a way to remove the counters without the stack? Like, a block type that I can use that will allow for instant changes?

For the record, I tried copying the Cloudpost from 2013. That's what led to it only being usable for a single spell. I'll post the code just in case, but I can probably get it if you can tell me how to produce mana from a token.

Cloudpost | Open
Code: Select all
<CARD_STUFF>
  <TRIGGERED_ABILITY replacement_effect="1" active_zone="ZONE_TRANSITION">
    <LOCALISED_TEXT...LOCALISED_TEXT>
   <TRIGGER value="ZONECHANGE_TRANSITION" simple_qualifier="self" to_zone="ZONE_BATTLEFIELD" from_zone="ZONE_ANY" pre_trigger="1" />
    <RESOLUTION_TIME_ACTION>
    if TriggerObject() ~= nil then
        TriggerObject():Tap()
    end
    </RESOLUTION_TIME_ACTION>
  </TRIGGERED_ABILITY>
   <ACTIVATED_ABILITY>
    <LOCALISED_TEXT...LOCALISED_TEXT>
   <COST type="TapSelf" />
   <COUNTER_REGISTRATION name="Mana" proliferate="11" />
   <RESOLUTION_TIME_ACTION>
   local filter = ClearFilter()
    filter:Add( FE_SUBTYPE, OP_IS, LAND_TYPE_LOCUS )
    local loci_count = filter:Count()
   if loci_count ~= 0 then
      if EffectController() ~= nil then
         EffectSource():AddCounters( MTG():GetCountersType("Mana"), loci_count )
      end
   end
   </RESOLUTION_TIME_ACTION>
   </ACTIVATED_ABILITY>
   <TRIGGERED_ABILITY>
   <TRIGGER value="END_OF_PLAYERS_STEP" simple_qualifier="controller">
    return MTG():GetStep() == STEP_DRAW or MTG():GetStep() == STEP_MAIN_1 or MTG():GetStep() == STEP_COMBAT or MTG():GetStep() == STEP_MAIN_2 or MTG():GetStep() == STEP_CLEANUP
    </TRIGGER>
   <RESOLUTION_TIME_ACTION>
   if EffectController() ~= nil then
      if EffectSource():CountCounters(MTG():GetCountersType("Mana")) ~= 0 then
         EffectSource():RemoveCounters( EffectSource():CountCounters(MTG():GetCountersType("Mana")) )
      end
   end
   </RESOLUTION_TIME_ACTION>
   </TRIGGERED_ABILITY>
   <MANA_ABILITY>
   <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Remove a Mana counter from Cloudpost: Add {1} to your mana pool.]]></LOCALISED_TEXT>
   <COST type="RemoveCountersSelf" item_count="1" amount="1" counter_type="Mana" />
   <PRODUCES amount="{1}" />
   </MANA_ABILITY>
</CARD_V2>
----
I forgot to ask in general about an example of a card with "copy... and has this ability". Looking at Thespian's Stage .
_______________________________
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, 14:59

That doesn't work because the MANA_ABILITY only recognizes TapSelf as a valid cost: you can put another cost, you can even specify no cost, it will be treated as TapSelf anyway. You need to use the stack if you want to do something more complicated, and that's why I'm keeping away from complicated mana abilities: I don't think they are worth the approximation.

"Copy... and has this ability" is the same as Evil Twin, you just need to write the ability twice, once for the original card and once with resource_id to grant to itself when it copies something.
< 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 Xander9009 » 10 Jul 2013, 15:07

Darn. I hadn't realized it wasn't possible. I guess I'll go back to the way it worked in 2013. Not perfect, but better than nothing.

I thought about Evil Twin, but I didn't think that would work because the ability didn't actually refer to itself. I'll give it a shot if you think it will, though. Thanks.

Edit: I see now why the ability granting worked.
Last edited by Xander9009 on 10 Jul 2013, 16:12, edited 1 time in total.
_______________________________
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, 16:07

thefiremind wrote: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)
Thanks and thanks for the lesson. :)

Xander9009 wrote:
Master Necro wrote:@ 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...code]

That part doesn't respond correctly and it seams you want to change everything except that.
Sorry, that was because, I was having some problems with it after trying to fix it. I wasn't sure what was causing the issues, so I decided to copy Jund Charm and change it bit by bit until I found why it wasn't working. I was too tired to spot the reason the original wasn't working, though. Thefiremind already pointed it out, it was because the target tags had duplicate ids/compartments. The second ability's actual code was fine, and so it wasn't changed. It wasn't working, but it wasn't the ability's code itself that was messed up. This seems to have all the second two modes working (didn't test the first).

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_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>
-----

thefiremind wrote: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.
I never think about protecting a card. That would have taken me forever to realize :)
Thanks man. :)

And updated new cards to the list.

Btw, just out of curiosity did anyone make progress on Haunt, Overload and Graft abilities? [-o<
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 damienx45 » 10 Jul 2013, 17:36

User avatar
damienx45
 
Posts: 69
Joined: 07 Mar 2013, 00:19
Has thanked: 4 times
Been thanked: 0 time

Re: Formal Request Thread

Postby BloodReyvyn » 10 Jul 2013, 18:27

Ugh, having another small issue with a card, Merrow Reejerey, in that it's ability doesn't seem to trigger when I play merfolk spells. Thanks in advance for the help, you guys rock.

Code: Select all
<?xml version='1.0' encoding='UTF-8'?>
<CARD_V2 ExportVersion="1">
  <FILENAME text="MERROW_REEJEREY_139702" />
  <CARDNAME text="MERROW_REEJEREY" />
  <TITLE>
    <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Merrow Reejerey]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Reejerey suire]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Reejerey merrow]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Merrow-Rittersmann]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Reejerey Merrow]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[メロウの騎兵]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[Merrow Reejerey]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[Вожак Мерроу]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[Reejerey Sirenídeo]]></LOCALISED_TEXT>
  </TITLE>
  <MULTIVERSEID value="139702" />
  <ARTID value="139702" />
  <ARTIST name="Greg Staples" />
  <CASTING_COST cost="{2}{U}" />
  <FLAVOURTEXT>
    <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Steady and silent as the deep current, the reejerey guides the course of the school.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Aussi stable et silencieux que le courant profond, le reejerey guide la course du banc.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Firme y silencioso como la corriente profunda, el reejerey guía a todo el cardumen.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Still und stetig wie die Tiefenströmung leitet der Rittersmann den Schwarm in die richtige Richtung.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Saldo e silenzioso come la corrente più profonda, il reejerey guida il corso del suo banco.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[騎兵は流れの深みのように、静かに確実に群れを導いていく。]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[Steady and silent as the deep current, the reejerey guides the course of the school.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[Уверенный и молчаливый, как глубоководное течение, вожак плывет впереди стаи.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[Estáveis e silenciosos como as correntes profundas, os reejerey orientam o curso do cardume.]]></LOCALISED_TEXT>
  </FLAVOURTEXT>
  <TYPE metaname="Creature" />
  <SUB_TYPE metaname="Merfolk" />
  <SUB_TYPE metaname="Soldier" />
  <EXPANSION value="LRW" />
  <RARITY metaname="U" />
  <POWER value="2" />
  <TOUGHNESS value="2" />
  <STATIC_ABILITY>
    <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Other Merfolk creatures you control get +1/+1.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Les autres créatures Ondin que vous contrôlez gagnent +1/+1.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Las otras criaturas Tritón que controlas obtienen +1/+1.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Andere Meervolkkreaturen, die du kontrollierst, erhalten +1/+1.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Le altre creature Tritone che controlli prendono +1/+1.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[あなたがコントロールする他のマーフォーク・クリーチャーは+1/+1の修整を受ける。]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[Other Merfolk creatures you control get +1/+1.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[Другие существа-Мерфолки под вашим контролем получают +1/+1.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[As outras criaturas do tipo Tritão que você controla recebem +1/+1.]]></LOCALISED_TEXT>
    <FILTER filter_id="0">
      local filter = ClearFilter()
        filter:Add(FE_CARD_INSTANCE, OP_NOT, EffectSource() )
        filter:Add(FE_SUBTYPE, OP_IS, CREATURE_TYPE_MERFOLK)
        filter:Add( FE_TYPE, OP_IS, CARD_TYPE_CREATURE)
        filter:Add(FE_CONTROLLER, OP_IS, EffectController() )
    </FILTER>
    <CONTINUOUS_ACTION layer="7C" filter_id="0">
      if FilteredCard() ~= nil then
       local characteristics = FilteredCard():GetCurrentCharacteristics()
       characteristics:Power_Add( 1 )
       characteristics:Toughness_Add( 1 )
      end
    </CONTINUOUS_ACTION>
  </STATIC_ABILITY>
  <TRIGGERED_ABILITY>
    <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Whenever you cast a Merfolk spell, you may tap or untap target permanent.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[À chaque fois que vous jouez un sort d’ondin, vous pouvez engager ou dégager le permanent ciblé.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Siempre que juegues un hechizo de Tritón, puedes enderezar o girar el permanente objetivo.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Immer wenn du einen Meervolk-Zauberspruch spielst, kannst du eine bleibende Karte deiner Wahl tappen oder enttappen.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Ogniqualvolta lanci una magia Tritone, puoi TAPpare o STAPpare un permanente bersaglio.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[あなたがいずれかのマーフォーク呪文をプレイするたび、パーマネント1つを対象とする。あなたはそれをタップまたはアンタップしてもよい。]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[Whenever you cast a Merfolk spell, you may tap or untap target permanent.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[Каждый раз, когда вы разыгрываете заклинание Мерфолка, вы можете повернуть или развернуть целевой перманент.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[Toda vez que você joga uma mágica de Tritão, você pode virar ou desvirar a permanente alvo.]]></LOCALISED_TEXT>
    <TRIGGER value="SPELL_PLAYED" simple_qualifier="objectyoucontrol">
      return  TriggerObject():GetSubtype():Test( CREATURE_TYPE_MERFOLK )
    </TRIGGER>
    <TARGET tag="CARD_QUERY_CHOOSE_PERMANENT_TO_TAP_OR_UNTAP" definition="0" compartment="0" count="1" />
    <RESOLUTION_TIME_ACTION>
      local effectController = EffectController()
      if effectController ~= nil then
       effectController:BeginNewMultipleChoice()   
       effectController:AddMultipleChoiceAnswer( "CARD_QUERY_MERROW_REEJEREY_TAP_PERMANENT" )   
       effectController:AddMultipleChoiceAnswer( "CARD_QUERY_MERROW_REEJEREY_UNTAP_PERMANENT" )   
       effectController:AskMultipleChoiceQuestion( "CARD_QUERY_MERROW_REEJEREY_QUESTION", TriggerObject() )
      end
    </RESOLUTION_TIME_ACTION>
    <RESOLUTION_TIME_ACTION>
      local target = EffectDC():Get_Targets(0):Get_CardPtr(0)
      if target ~= nil then
       local result = effectController:GetMultipleChoiceResult()
       if result == 0 then
          target:Tap()
        else
          target:Untap()
        end
      end
    </RESOLUTION_TIME_ACTION>
  </TRIGGERED_ABILITY>
  <SFX text="COMBAT_BLUNT_LARGE_ATTACK" power_boundary_min="4" power_boundary_max="-1" />
  <SFX text="COMBAT_BLUNT_SMALL_ATTACK" power_boundary_min="1" power_boundary_max="3" />
</CARD_V2>
EDIT: I was also wondering if Grimoire Thief was possible in 2014.
"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 thefiremind » 10 Jul 2013, 18:34

You have a TARGET block without a TARGET_DEFINITION, so it doesn't trigger because there are no targets available... it doesn't even know what it can target... :P

Other than that, "you may tap or untap target permanent" can be coded in a shorter way:
Code: Select all
    <TARGET tag="CARD_QUERY_CHOOSE_PERMANENT_TO_TAP_OR_UNTAP" 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
       if target:IsTapped() then
          target:Untap()
       else
          target:Tap()
       end
    end
    </RESOLUTION_TIME_ACTION>
    <MAY tag="DO_YOU_WANT_TO_TAP_OR_UNTAP_THIS_PERMANENT" always_prompt="1" />
    <AI_SIMPLIFIED_TARGETING compartment="0" hint="HINT_NEUTRAL" />
This will ask you if you want to tap or untap the permanent with the meaning of doing something at all: if you choose yes, the permanent will be untapped if it's tapped or tapped if it's untapped; if you choose no, nothing will happen.

BloodReyvyn wrote:EDIT: I was also wondering if Grimoire Thief was possible in 2014.
I think it is. My only doubt is if the AI can understand how to use it.
< 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 drleg3nd » 10 Jul 2013, 18:46

sumomole wrote:
drleg3nd wrote:hey guys this is my first attempt at coding.. or learning how to copy and paste(whichever you prefer)..can you guys help me out on how to code these cards I would really appreciate it .thx
Untested
Orzhov Charm | Open
Code: Select all
<?xml version='1.0' encoding='UTF-8'?>
<CARD_V2 ExportVersion="1">
  <FILENAME text="ORZHOV_CHARM_1285366436" />
  <CARDNAME text="ORZHOV_CHARM" />
  <TITLE>
    <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Orzhov Charm]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Charme d’Orzhov]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Amuleto orzhov]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Orzhov-Amulett]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Talismano Orzhov]]></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[Amuleto Orzhov]]></LOCALISED_TEXT>
  </TITLE>
  <MULTIVERSEID value="1285366436" />
  <ARTID value="1285366436" />
  <ARTIST name="Zoltan Boros" />
  <CASTING_COST cost="{W}{B}" />
  <TYPE metaname="Instant" />
  <EXPANSION value="GTC" />
  <RARITY metaname="U" />
  <SPELL_ABILITY>
    <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Choose one — Return target creature you control and all Auras you control attached to it to their owner’s hand; or destroy target creature and you lose life equal to its toughness; or return target creature card with converted mana cost 1 or less from your graveyard to the battlefield.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Choisissez l’un — Renvoyez la créature ciblée que vous contrôlez et toutes les auras que vous contrôlez qui lui sont attachées dans la main de son propriétaire ; ou détruisez une créature ciblée et vous perdez un nombre de points de vie égal à son endurance ; ou renvoyez sur le champ de bataille depuis votre cimetière une carte de créature ayant un coût converti de mana inférieur ou égal à 1.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Elige uno: Regresa la criatura objetivo que controlas y todas las auras que controlas anexadas a ella a la mano de su propietario; o destruye la criatura objetivo y pierdes una cantidad de vidas igual a su resistencia; o regresa la carta de criatura objetivo con un coste de maná convertido de 1 o menos de tu cementerio al campo de batalla.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Bestimme eines — Bringe eine Kreatur deiner Wahl, die du kontrollierst, und alle an sie angelegten Auren, die du kontrollierst, auf die Hand ihrer Besitzer zurück; oder zerstöre eine Kreatur deiner Wahl und du verlierst ebenso viele Lebenspunkte wie deren Widerstandskraft beträgt; oder bringe eine Kreaturenkarte deiner Wahl mit umgewandelten Manakosten von 1 oder weniger aus deinem Friedhof ins Spiel zurück.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Scegli uno — Fai tornare una creatura bersaglio che controlli e tutte le Aure che controlli assegnate ad essa in mano ai rispettivi proprietari; oppure distruggi una creatura bersaglio e perdi punti vita pari alla sua costituzione; oppure rimetti sul campo di battaglia una carta creatura bersaglio con costo di mana convertito pari o inferiore a 1 dal tuo cimitero.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[以下の3つから1つを選ぶ。「あなたがコントロールするクリーチャー1体を対象とし、それとそれにつけられているあなたがコントロールするすべてのオーラをオーナーの手札に戻す。」「クリーチャー1体を対象とする。それを破壊し、あなたはそれのタフネスに等しい点数のライフを失う。」「あなたの墓地にある点数で見たマナ・コストが1以下のクリーチャー・カード1枚を対象とし、それを戦場に戻す。」]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[하나를 선택한다 — 당신이 조종하는 생물 한 개를 목표로 정한다. 그 생물과 그 생물에 부착된 모든 마법진 중 당신이 조종하는 모든 마법진을 소유자의 손으로 되돌린다; 또는 생물 한 개를 목표로 정한다. 그 생물을 파괴하고 당신은 그 생물의 방어력만큼 생명점을 잃는다; 또는 당신의 무덤에서 전환마나비용이 1 이하인 생물 카드 한 장을 목표로 정한다. 그 카드를 전장으로 되돌린다.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[Выберите одно — верните целевое существо под вашим контролем и все прикрепленные к нему Ауры под вашим контролем в руку их владельца; или уничтожьте целевое существо, и вы теряете количество жизней, равное его выносливости; или верните целевую карту существа с конвертированной мана-стоимостью 1 или меньше из вашего кладбища на поле битвы.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[Escolha um — Devolva a criatura alvo que você controla e todas as Auras que você controla anexadas a ela para a mão do dono delas; ou destrua a criatura alvo e perca uma quantidade de pontos de vida igual à resistência dela; ou devolva o card de criatura alvo com custo de mana convertido igual ou inferior a 1 de seu cemitério para o campo de batalha.]]></LOCALISED_TEXT>
    <SFX text="CASTER_RETETHER_PLAY" />
    <MODE_SELECT tag="MODE_CHOOSE_ONE">
      <MODE tag="MODE_ORZHOV_UNSUMMON" index="1" />
      <MODE tag="MODE_ORZHOV_TERROR" index="2" />
      <MODE tag="MODE_ORZHOV_ZOMBIFY" index="3" />
    </MODE_SELECT>
    <TARGET tag="CARD_QUERY_CHOOSE_CREATURE_TO_PUT_INTO_HAND" definition="0" compartment="0" mode="1" count="1" />
    <TARGET_DEFINITION id="0">
    local filter = ClearFilter()
    filter:Add( FE_TYPE, OP_IS, CARD_TYPE_CREATURE )
    filter:Add( FE_CONTROLLER, OP_IS, EffectController())
    </TARGET_DEFINITION>
    <RESOLUTION_TIME_ACTION mode="1">
    local filter = ClearFilter()
    local target = EffectDC():Get_Targets(0):Get_CardPtr(0)
    if target ~= nil then
      filter:Add( FE_PARENT_CARD, OP_IS, target)
      filter:Add( FE_SUBTYPE, OP_IS, ENCHANTMENT_TYPE_AURA )
      filter:Add( FE_CONTROLLER, OP_IS, EffectController())
      local numCards = filter:EvaluateObjects()
      for i=0,(numCards-1) do
         local card = filter:GetNthEvaluatedObject(i)
         if card ~= nil then
           card:PutInHand()
         end
      end
       target:PutInHand()
    end 
    </RESOLUTION_TIME_ACTION>
    <TARGET tag="CARD_QUERY_CHOOSE_CREATURE_TO_DESTROY" definition="1" compartment="1" mode="2" count="1" />
    <TARGET_DEFINITION id="0">
    local filter = ClearFilter()
    filter:Add( FE_TYPE, OP_IS, CARD_TYPE_CREATURE )
    </TARGET_DEFINITION>
    <RESOLUTION_TIME_ACTION mode="2">
    local target = EffectDC():Get_Targets(0):Get_CardPtr(0)
    if target ~= nil then   
      local toughness = target:GetCurrentCharacteristics():Toughness_Get()
      EffectDC():Set_Int( 3, toughness )
    end
    </RESOLUTION_TIME_ACTION>
    <RESOLUTION_TIME_ACTION mode="2">
    local target = EffectDC():Get_Targets(0):Get_CardPtr(0)
    if target ~= nil then   
       target:Destroy() 
    end
    </RESOLUTION_TIME_ACTION>
    <RESOLUTION_TIME_ACTION mode="2">
    local amount = EffectDC():Get_Int(3)
    EffectController():LoseLife( amount )
    </RESOLUTION_TIME_ACTION>
    <TARGET tag="CARD_QUERY_CHOOSE_CREATURE_RETURN_TO_BATTLEFIELD" definition="2" compartment="2" mode="3" count="1" />
    <TARGET_DEFINITION id="2">
    local filter = ClearFilter()
    filter:Add( FE_TYPE, OP_IS, CARD_TYPE_CREATURE )
    filter:Add( FE_CMC, OP_LESS_THAN_OR_EQUAL_TO, 1 )
    filter:SetZone( ZONE_GRAVEYARD, EffectController() )
    </TARGET_DEFINITION>
    <RESOLUTION_TIME_ACTION mode="3">
    local target = EffectDC():Get_Targets(2):Get_CardPtr(0)
    if target ~= nil then
       target:PutOntoBattlefield( EffectController() )
    end 
    </RESOLUTION_TIME_ACTION>
    <AI_SIMPLIFIED_TARGETING compartment="1" 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>
Path To Bravery | Open
Code: Select all
<?xml version='1.0' encoding='UTF-8'?>
<CARD_V2 ExportVersion="1">
  <FILENAME text="PATH_TO_BRAVERY_1285366437" />
  <CARDNAME text="PATH_TO_BRAVERY" />
  <TITLE>
    <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Path To Bravery]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Path To Bravery]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Path To Bravery]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Path To Bravery]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Path To Bravery]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[Path To Bravery]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[Path To Bravery]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[Path To Bravery]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[Path To Bravery]]></LOCALISED_TEXT>
  </TITLE>
  <MULTIVERSEID value="1285366437" />
  <ARTID value="1285366437" />
  <ARTIST name="Chris Rahn" />
  <CASTING_COST cost="{2}{W}" />
  <TYPE metaname="Enchantment" />
  <EXPANSION value="M14" />
  <RARITY metaname="R" />
  <STATIC_ABILITY>
    <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[As long as your life total is greater than or equal to your starting life total, creatures you control get +1/+1.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[As long as your life total is greater than or equal to your starting life total, creatures you control get +1/+1.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[As long as your life total is greater than or equal to your starting life total, creatures you control get +1/+1.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[As long as your life total is greater than or equal to your starting life total, creatures you control get +1/+1.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[As long as your life total is greater than or equal to your starting life total, creatures you control get +1/+1.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[As long as your life total is greater than or equal to your starting life total, creatures you control get +1/+1.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[As long as your life total is greater than or equal to your starting life total, creatures you control get +1/+1.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[As long as your life total is greater than or equal to your starting life total, creatures you control get +1/+1.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[As long as your life total is greater than or equal to your starting life total, creatures you control get +1/+1.]]></LOCALISED_TEXT>
    <FILTER filter_id="0">
    local filter = ClearFilter()
    filter:Add( FE_TYPE, OP_IS, CARD_TYPE_CREATURE  )
    filter:Add( FE_CONTROLLER, OP_IS, EffectController())
    </FILTER>
    <CONTINUOUS_ACTION layer="7C" filter_id="0">
    if FilteredCard() ~= nil then
       local life = EffectController():GetLifeTotal()
      if (EffectController():GetTeam():IsSharedLifeTotal() == false and life &gt;= 20) or life &gt;= 30 then
         local characteristics = FilteredCard():GetCurrentCharacteristics()
         characteristics:Power_Add( 1 )
         characteristics:Toughness_Add( 1 )
      end
    end
    </CONTINUOUS_ACTION>
  </STATIC_ABILITY>
  <TRIGGERED_ABILITY>
    <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Whenever one or more creatures you control attack, you gain life equal to the number of attacking creatures.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Whenever one or more creatures you control attack, you gain life equal to the number of attacking creatures.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Whenever one or more creatures you control attack, you gain life equal to the number of attacking creatures.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Whenever one or more creatures you control attack, you gain life equal to the number of attacking creatures.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Whenever one or more creatures you control attack, you gain life equal to the number of attacking creatures.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[Whenever one or more creatures you control attack, you gain life equal to the number of attacking creatures.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[Whenever one or more creatures you control attack, you gain life equal to the number of attacking creatures.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[Whenever one or more creatures you control attack, you gain life equal to the number of attacking creatures.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[Whenever one or more creatures you control attack, you gain life equal to the number of attacking creatures.]]></LOCALISED_TEXT>
    <TRIGGER value="ATTACKERS_DECLARED">
    local filter = ClearFilter()
    filter:Add( FE_IS_ATTACKING, true )
    filter:Add( FE_CONTROLLER, OP_IS, EffectController() )
    local numCreaturesAttacking = filter:Count()
    if numCreaturesAttacking &gt;0 then
       EffectDC():Set_Int( 0, numCreaturesAttacking)
       return true
    end
    return false
    </TRIGGER>
    <RESOLUTION_TIME_ACTION>
    EffectController():GainLife(EffectDC():Get_Int(0))
    </RESOLUTION_TIME_ACTION>
  </TRIGGERED_ABILITY>
</CARD_V2>
Rhox Faithmender | Open
Code: Select all
<?xml version='1.0' encoding='UTF-8'?>
<CARD_V2 ExportVersion="1">
  <FILENAME text="RHOX_FAITHMENDER_1285279987" />
  <CARDNAME text="RHOX_FAITHMENDER" />
  <TITLE>
    <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Rhox Faithmender]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Ravaudeur de foi rhox]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Rhox reparador de fe]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Rhox-Glaubensheiler]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Rhox Rigenerafede]]></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[Rhox Remendador de Fé]]></LOCALISED_TEXT>
  </TITLE>
  <MULTIVERSEID value="1285279987" />
  <ARTID value="1285279987" />
  <ARTIST name="Wesley Burt" />
  <CASTING_COST cost="{3}{W}" />
  <FLAVOURTEXT>
    <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Rhoxes who live long enough to retire from war lend support with their extensive knowledge of combat injuries.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Les rhoxs qui vivent suffisamment vieux pour prendre leur retraite soutiennent toujours l’effort de guerre en y contribuant leurs vastes connaissances des blessures de combat.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Los rhox que viven lo suficiente como para retirarse de la guerra dan su apoyo con su gran conocimiento de las heridas de combate.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Rhoxe, die lange genug leben, um zu alt für das Kriegshandwerk zu sein, dienen mit ihrem umfangreichen Wissen über Kampfverletzungen.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[I rhox che vivono abbastanza a lungo da ritirarsi dalla guerra forniscono sostegno con la loro vasta conoscenza delle ferite di guerra.]]></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[Os rhoxes que vivem tempo suficiente para se aposentarem da guerra oferecem apoio com sua extensa sabedoria sobre as feridas de combate.]]></LOCALISED_TEXT>
  </FLAVOURTEXT>
  <TYPE metaname="Creature" />
  <SUB_TYPE metaname="Rhino" />
  <SUB_TYPE metaname="Monk" />
  <EXPANSION value="M13" />
  <RARITY metaname="R" />
  <POWER value="1" />
  <TOUGHNESS value="5" />
  <STATIC_ABILITY>
    <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Lifelink]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Lien de vie]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Vínculo vital.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Lebensverknüpfung]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Legame vitale]]></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[Vínculo com a vida]]></LOCALISED_TEXT>
    <INTRINSIC characteristic="CHARACTERISTIC_LIFELINK" />
  </STATIC_ABILITY>
  <TRIGGERED_ABILITY replacement_effect="1">
    <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[If you would gain life, you gain twice that much life instead.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Si vous deviez gagner des points de vie, vous gagnez deux fois ce nombre de points de vie à la place.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Si fueras a ganar vida, en vez de eso, ganas el doble de esas vidas.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Falls du Lebenspunkte dazuerhalten würdest, erhältst du stattdessen doppelt so viele Lebenspunkte dazu.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Se stai per guadagnare punti vita, ne guadagni invece il doppio.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[あなたがライフを得る場合、代わりにあなたはその2倍の点数のライフを得る。]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[당신이 생명점을 얻으려고 하면, 그 대신에 그것의 두 배만큼의 생명점을 얻는다.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[Если вы должны получить определенное количество жизней, вы получаете их вдвое больше вместо этого.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[Se você for ganhar pontos de vida, em vez disso, ganhará o dobro daquela quantidade em pontos de vida.]]></LOCALISED_TEXT>
    <TRIGGER value="PLAYER_GAINED_LIFE" simple_qualifier="controller" pre_trigger="1" />
    <RESOLUTION_TIME_ACTION>
    SetAmount( GetAmount() * 2 )
    </RESOLUTION_TIME_ACTION>
  </TRIGGERED_ABILITY>
  <HELP title="MORE_INFO_BADGE_TITLE_4" body="MORE_INFO_BADGE_BODY_4" zone="ZONE_ANY" />
  <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>
Vizkopa Guildmage | Open
Code: Select all
<?xml version='1.0' encoding='UTF-8'?>
<CARD_V2 ExportVersion="1">
  <FILENAME text="VIZKOPA_GUILDMAGE_1285366371" />
  <CARDNAME text="VIZKOPA_GUILDMAGE" />
  <TITLE>
    <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Vizkopa Guildmage]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Ghildmage de Vizkopa]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Maga del gremio de Vizkopa]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Vizkopa-Gildenmagierin]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Maga della Gilda di Vizkopa]]></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[Mago de Guilda de Vizkopa]]></LOCALISED_TEXT>
  </TITLE>
  <MULTIVERSEID value="1285366371" />
  <ARTID value="1285366371" />
  <ARTIST name="Tyler Jacobson" />
  <CASTING_COST cost="{W}{B}" />
  <TYPE metaname="Creature" />
  <SUB_TYPE metaname="Human" />
  <SUB_TYPE metaname="Wizard" />
  <EXPANSION value="GTC" />
  <RARITY metaname="U" />
  <POWER value="2" />
  <TOUGHNESS value="2" />
  <ACTIVATED_ABILITY>
    <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[{1}{W}{B}: Target creature gains lifelink until end of turn.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[{1}{W}{B} : La créature ciblée acquiert le lien de vie jusqu’à la fin du tour.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[{1}{W}{B}: La criatura objetivo gana la habilidad de vínculo vital hasta el final del turno.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[{1}{W}{B}: Eine Kreatur deiner Wahl erhält Lebensverknüpfung bis zum Ende des Zuges.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[{1}{W}{B}: Una creatura bersaglio ha legame vitale fino alla fine del turno.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[{1}{W}{B}:クリーチャー1体を対象とする。それはターン終了時まで絆魂を得る。{1}{W}{B}:このターン、あなたがライフを得るたび、各対戦相手はそれぞれその点数に等しい点数のライフを失う。]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[{1}{W}{B}: 생물 한 개를 목표로 정한다. 그 생물은 턴종료까지 생명연결 능력을 얻는다.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[{1}{W}{B}: целевое существо получает Цепь жизни до конца хода.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[{1}{W}{B}: A criatura alvo ganha vínculo com a vida até o final do turno.]]></LOCALISED_TEXT>
    <COST mana_cost="{1}{W}{B}" type="Mana" />
    <TARGET tag="CARD_QUERY_CHOOSE_CREATURE_GAIN_LIFELINK" definition="0" compartment="0" count="1" />
    <TARGET_DEFINITION id="0">
    local filter = ClearFilter()
    filter:Add(FE_CONTROLLER, OP_IS, EffectController() )
    filter:Add( FE_TYPE, OP_IS, CARD_TYPE_CREATURE )
    </TARGET_DEFINITION>
    <CONTINUOUS_ACTION layer="6">
    local target = EffectDC():Get_Targets(0):Get_CardPtr(0)
    if target ~= nil then
       local characteristics = target:GetCurrentCharacteristics()
       characteristics:Bool_Set( CHARACTERISTIC_LIFELINK, 1 )
    end
    </CONTINUOUS_ACTION>
    <DURATION simple_duration="UntilEOT" />
    <AI_AVAILABILITY window_step="declare_blockers" type="window" />
    <AI_AVAILABILITY type="in_response" response_source="1" />
  </ACTIVATED_ABILITY>
  <ACTIVATED_ABILITY>
    <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[{1}{W}{B}: Whenever you gain life this turn, each opponent loses that much life.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[{1}{W}{B} : À chaque fois que vous gagnez des points de vie ce tour-ci, chaque adversaire perd autant de points de vie.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[{1}{W}{B}: Siempre que ganes vidas este turno, cada oponente pierde esa misma cantidad de vidas.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[{1}{W}{B}: Immer wenn du in diesem Zug Lebenspunkte dazuerhältst, verliert jeder Gegner ebenso viele Lebenspunkte.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[{1}{W}{B}: Ogniqualvolta guadagni punti vita in questo turno, ogni avversario perde altrettanti punti vita.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[{1}{W}{B}: Whenever you gain life this turn, each opponent loses that much life.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[{1}{W}{B}: 당신이 이 턴에 생명을 얻을 때마다 각 상대는 그만큼의 생명점을 잃는다.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[{1}{W}{B}: каждый раз, когда вы получаете жизни в этом ходу, каждый оппонент теряет столько же жизней.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[{1}{W}{B}: Toda vez que você ganhar pontos de vida neste turno, cada oponente perderá a mesma quantidade de pontos de vida.]]></LOCALISED_TEXT>
    <COST mana_cost="{1}{W}{B}" type="Mana" />
    <RESOLUTION_TIME_ACTION>
    MTG():CreateDelayedTrigger(2, nil)
    </RESOLUTION_TIME_ACTION>
    <AI_AVAILABILITY type="in_response" response_source="1" />
  </ACTIVATED_ABILITY>
  <TRIGGERED_ABILITY resource_id="1">
    <CLEANUP simple_cleanup="EndOfTurn" />
    <TRIGGER value="PLAYER_GAINED_LIFE" simple_qualifier="controller" />
    <RESOLUTION_TIME_ACTION>
    local life_gained = GetAmount()
    for i=0,MTG():GetNumberOfPlayers()-1 do
      local player = MTG():GetNthPlayer( i )
      if player ~= nil and player:GetTeam() ~= EffectController():GetTeam() then
        player:LoseLife( life_gained )
      end   
    end 
    </RESOLUTION_TIME_ACTION>
  </TRIGGERED_ABILITY>
  <SFX text="COMBAT_BLUNT_LARGE_ATTACK" power_boundary_min="4" power_boundary_max="-1" />
  <SFX text="COMBAT_BLUNT_SMALL_ATTACK" power_boundary_min="1" power_boundary_max="3" />
</CARD_V2>
just noticed orzhov charm 2nd and 3rd ability doesn't work.. does anybody see what could be wrong ? thx
drleg3nd
 
Posts: 528
Joined: 14 May 2012, 20:05
Has thanked: 5 times
Been thanked: 30 times

Re: Formal Request Thread

Postby thefiremind » 10 Jul 2013, 19:12

There are some IDs that don't match between TARGET, TARGET_DEFINITION, etc., I'm sure sumomole will spot them without needing further explanations. :)

On an unrelated note, I just tried to use the AddCountersSelf cost, but it didn't work. Either it can't be used alone (I tried to use it alone), or it doesn't work at all. If that's so, I'm sorry for giving wrong information, but I was really sure it would have worked: you can find AddCounters listed as a possible cost inside the executable.
< 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 sumomole » 10 Jul 2013, 19:13

drleg3nd wrote:just noticed orzhov charm 2nd and 3rd ability doesn't work.. does anybody see what could be wrong ? thx
Sorry, the second ability numbers is wrong, and third ability is ok.
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 )
    </TARGET_DEFINITION>
    <RESOLUTION_TIME_ACTION mode="2">
    local target = EffectDC():Get_Targets(1):Get_CardPtr(0)
    if target ~= nil then   
      local toughness = target:GetCurrentCharacteristics():Toughness_Get()
      EffectDC():Set_Int( 3, toughness )
    end
    </RESOLUTION_TIME_ACTION>
    <RESOLUTION_TIME_ACTION mode="2">
    local target = EffectDC():Get_Targets(1):Get_CardPtr(0)
    if target ~= nil then   
       target:Destroy()
    end
    </RESOLUTION_TIME_ACTION>
User avatar
sumomole
Programmer
 
Posts: 611
Joined: 07 Jun 2011, 08:34
Has thanked: 51 times
Been thanked: 234 times

Re: Formal Request Thread

Postby Xander9009 » 11 Jul 2013, 01:34

I've got two cards that won't work properly. I only know the reason for one. The one hose reason I know is Sundering Titan which won't trigger. I think the reason is that it requires each target to be present, which means it'll only trigger when all 5 types of basic land are on the battlefield. How can I make it work when lands are missing (since it's fairly rare that all 5 types are present unless it's a 4 player game)? Current code for the ability.

Sundering Titan | Open
Code: Select all
  <TRIGGERED_ABILITY>
    <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[When Sundering Titan enters the battlefield or leaves the battlefield, choose a land of each basic land type, then destroy those lands.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[When Sundering Titan enters the battlefield or leaves the battlefield, choose a land of each basic land type, then destroy those lands.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[When Sundering Titan enters the battlefield or leaves the battlefield, choose a land of each basic land type, then destroy those lands.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[When Sundering Titan enters the battlefield or leaves the battlefield, choose a land of each basic land type, then destroy those lands.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Quando il Titano Frantumatore entra o lascia il campo di battaglia, scegli una terra di ciascun tipo di terra base, poi distruggi quelle terre.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[When Sundering Titan enters the battlefield or leaves the battlefield, choose a land of each basic land type, then destroy those lands.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[When Sundering Titan enters the battlefield or leaves the battlefield, choose a land of each basic land type, then destroy those lands.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[When Sundering Titan enters the battlefield or leaves the battlefield, choose a land of each basic land type, then destroy those lands.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[When Sundering Titan enters the battlefield or leaves the battlefield, choose a land of each basic land type, then destroy those lands.]]></LOCALISED_TEXT>
   <TRIGGER value="ZONECHANGE_END" simple_qualifier="self" to_zone="ZONE_BATTLEFIELD" />
   <TRIGGER value="ZONECHANGE_BEGIN" simple_qualifier="self" to_zone="ZONE_ANY" from_zone="ZONE_BATTLEFIELD" />
   <TARGET tag="CARD_QUERY_CHOOSE_LAND_TO_DESTROY" definition="0" compartment="0" count="1" />
   <TARGET tag="CARD_QUERY_CHOOSE_LAND_TO_DESTROY" definition="1" compartment="1" count="1" />
   <TARGET tag="CARD_QUERY_CHOOSE_LAND_TO_DESTROY" definition="2" compartment="2" count="1" />
   <TARGET tag="CARD_QUERY_CHOOSE_LAND_TO_DESTROY" definition="3" compartment="3" count="1" />
   <TARGET tag="CARD_QUERY_CHOOSE_LAND_TO_DESTROY" definition="4" compartment="4" count="1" />
   <TARGET_DEFINITION id="0">
   local filter = ClearFilter()
   filter:Add( FE_SUBTYPE, OP_IS, LAND_TYPE_PLAINS )
   </TARGET_DEFINITION>
   <TARGET_DEFINITION id="1">
   local filter = ClearFilter()
   filter:Add( FE_SUBTYPE, OP_IS, LAND_TYPE_ISLAND )
   </TARGET_DEFINITION>
   <TARGET_DEFINITION id="2">
   local filter = ClearFilter()
   filter:Add( FE_SUBTYPE, OP_IS, LAND_TYPE_SWAMP )
   </TARGET_DEFINITION>
   <TARGET_DEFINITION id="3">
   local filter = ClearFilter()
   filter:Add( FE_SUBTYPE, OP_IS, LAND_TYPE_MOUNTAIN )
   </TARGET_DEFINITION>
   <TARGET_DEFINITION id="4">
   local filter = ClearFilter()
   filter:Add( FE_SUBTYPE, OP_IS, LAND_TYPE_FOREST )
   </TARGET_DEFINITION>
   <RESOLUTION_TIME_ACTION>
   local targetA = EffectDC():Get_Targets(0):Get_CardPtr(0)
    local targetB = EffectDC():Get_Targets(1):Get_CardPtr(0)
   local targetC = EffectDC():Get_Targets(2):Get_CardPtr(0)
    local targetD = EffectDC():Get_Targets(3):Get_CardPtr(0)
   local targetE = EffectDC():Get_Targets(4):Get_CardPtr(0)
   if targetA ~= nil then
      targetA:Destroy()
   end
   if targetB ~= nil then
      targetB:Destroy()
   end
   if targetC ~= nil then
      targetC:Destroy()
   end
   if targetD ~= nil then
      targetD:Destroy()
   end
   if targetE ~= nil then
      targetE:Destroy()
   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" />
   <AI_SIMPLIFIED_TARGETING compartment="3" hint="HINT_ENEMY_ONLY" />
   <AI_SIMPLIFIED_TARGETING compartment="4" hint="HINT_ENEMY_ONLY" />
  </TRIGGERED_ABILITY>
The other card is Golem Artisan. I can't get it actually affect the targeted creature. It targets, resolves, and nothing happens. I got all the other cards worked out for the deck. I've got the ability coded like this:

In the process of copying the code, I noticed each of the target variables were looking for players:
Code: Select all
local target = EffectDC():Get_Targets(1):Get_PlayerPtr(0)
_______________________________
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

PreviousNext

Return to 2014

Who is online

Users browsing this forum: No registered users and 6 guests

Main Menu

User Menu

Our Partners


Who is online

In total there are 6 users online :: 0 registered, 0 hidden and 6 guests (based on users active over the past 10 minutes)
Most users ever online was 4143 on 23 Jan 2024, 08:21

Users browsing this forum: No registered users and 6 guests

Login Form