Page 1 of 1

.TDX Art File?

PostPosted: 20 May 2013, 17:23
by BloodReyvyn
Probably pretty newb of me to ask, but I've never seen this file format before. What kind of file is this and how do I go about making them?

I have created a fully-working Nearheath Pilgrim, though it has no art on the card. Being a stickler for details, I can't have that, and besides I need a custom personality and deck box, etc. so yeah.

Heh, any and all responses welcome, and for reading, a gift lol...


Nearheath Pilgrim Code:

Code: Select all
<?xml version='1.0'?>
<CARD_V2>
  <FILENAME text="NEARHEATH_PILGRIM_1030501" />
  <CARDNAME text="NEARHEATH_PILGRIM" />
  <TITLE>
      <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Nearheath Pilgrim]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Nearheath Pilgrim]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Nearheath Pilgrim]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Nearheath Pilgrim]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Nearheath Pilgrim]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[Nearheath Pilgrim]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[Nearheath Pilgrim]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[Nearheath Pilgrim]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[Nearheath Pilgrim]]></LOCALISED_TEXT>
  </TITLE>
  <MULTIVERSEID value="1030501" />
  <ARTID value="1030501" />
  <ARTIST name="Erica Yang" />
  <CASTING_COST cost="{1}{W}" />
  <TYPE metaname="Creature" />
  <SUB_TYPE metaname="Human" order_de-DE="0" order_es-ES="1" order_fr-FR="0" order_it-IT="1" order_jp-JA="0" order_ko-KR="0" order_pt-BR="0" order_ru-RU="0" />
  <SUB_TYPE metaname="Cleric" order_de-DE="1" order_es-ES="0" order_fr-FR="1" order_it-IT="0" order_jp-JA="1" order_ko-KR="1" order_pt-BR="1" order_ru-RU="1" />
  <EXPANSION value="DPG" />
  <RARITY metaname="U" />
  <POWER value="2" />
  <TOUGHNESS value="1" />
  <TRIGGERED_ABILITY auto_skip="1" filter_zone="ZONE_IN_PLAY">
    <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Soulbond |(You may pair this creature with another unpaired creature when either enters the battlefield. They remain paired for as long as you control both of them.)|]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Soulbond |(You may pair this creature with another unpaired creature when either enters the battlefield. They remain paired for as long as you control both of them.)|]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Soulbond |(You may pair this creature with another unpaired creature when either enters the battlefield. They remain paired for as long as you control both of them.)|]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Soulbond |(You may pair this creature with another unpaired creature when either enters the battlefield. They remain paired for as long as you control both of them.)|]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Soulbond |(You may pair this creature with another unpaired creature when either enters the battlefield. They remain paired for as long as you control both of them.)|]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[Soulbond |(You may pair this creature with another unpaired creature when either enters the battlefield. They remain paired for as long as you control both of them.)|]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[Soulbond |(You may pair this creature with another unpaired creature when either enters the battlefield. They remain paired for as long as you control both of them.)|]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[Soulbond |(You may pair this creature with another unpaired creature when either enters the battlefield. They remain paired for as long as you control both of them.)|]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[Soulbond |(You may pair this creature with another unpaired creature when either enters the battlefield. They remain paired for as long as you control both of them.)|]]></LOCALISED_TEXT>
    <TRIGGER value="ZONECHANGE_END" to_zone="ZONE_IN_PLAY">
    return (TriggerObject():GetCardType():Test( CARD_TYPE_CREATURE ) ~= 0 and Object():GetCurrentCharacteristics():Characteristic_Get( CHARACTERISTIC_PHASING ) == 0)
    </TRIGGER>
    <TARGET_DEFINITION id="0">
    local filter = Object():GetFilter()
    filter:Clear()
    filter:May()
    filter:NotTargetted()
    if TriggerObject() ~= Object() then
      filter:SetCardInstance( TriggerObject() )
    else
      filter:SetCardInstance( Object() )
      filter:AddExtra( FILTER_EXTRA_FLIP_CARD_INSTANCE )
    end
    filter:AddCharacteristic( CHARACTERISTIC_PHASING )
    filter:AddExtra( FILTER_EXTRA_FLIP_CHARACTERISTICS )
    filter:AddCardType( CARD_TYPE_CREATURE )
    filter:SetZone( ZONE_IN_PLAY )
    filter:SetController( EffectController() )
    filter:SetHint( HINT_ALLIED_ONLY, EffectController() )
    </TARGET_DEFINITION>
    <TARGET_DETERMINATION>
    return AtLeastOneTargetFromDefinition(0)
    </TARGET_DETERMINATION>   
    <RESOLUTION_TIME_ACTION>
    if (EffectSource() ~= nil and
    Object():GetCurrentCharacteristics():Characteristic_Get( CHARACTERISTIC_PHASING ) == 0 and
    Object():GetCardType():Test( CARD_TYPE_CREATURE ) ~= 0 and
    Object():GetController() == EffectController()) then
      EffectController():ChooseTarget( 0, "CARD_QUERY_CHOOSE_CREATURE_TO_PAIR", EffectDC():Make_Targets(0) )
    end
    </RESOLUTION_TIME_ACTION>
    <RESOLUTION_TIME_ACTION>
    local target = EffectDC():Get_Targets(0) and EffectDC():Get_Targets(0):Get_CardPtr(0)
    if target ~= nil then
      ObjectDC():Set_CardPtr(COMPARTMENT_ID_OBJ_SOULBOND, target)
      ObjectDC():Set_PlayerPtr(COMPARTMENT_ID_PLR_PAIRED, EffectController())
    end
    </RESOLUTION_TIME_ACTION>
  </TRIGGERED_ABILITY>
  <TRIGGERED_ABILITY internal="1" filter_zone="ZONE_IN_PLAY">
    <TRIGGER value="ABILITY_RESOLVED">
    if Object():GetCardType():Test( CARD_TYPE_CREATURE ) ~= 0 and ObjectDC():Get_CardPtr(COMPARTMENT_ID_OBJ_SOULBOND) == nil then
      local filter = Object():GetFilter()
      filter:Clear()
      filter:NotTargetted()
      filter:SetZone( ZONE_IN_PLAY )
      filter:AddCardType( CARD_TYPE_CREATURE )
      filter:SetCardInstance( Object() )
      filter:AddExtra( FILTER_EXTRA_FLIP_CARD_INSTANCE )
      filter:SetController( EffectController() ) 
      local others = filter:EvaluateObjects()
      if others &gt; 0 then
        for i=0,others-1 do
          local card = filter:GetNthEvaluatedObject(i)             
          if card ~= nil and card:GetDataChest() ~= nil then   
            local pair = card:GetDataChest():Get_CardPtr(COMPARTMENT_ID_OBJ_SOULBOND)
              if pair ~= nil and pair == Object() then   
              ObjectDC():Set_CardPtr(COMPARTMENT_ID_OBJ_SOULBOND, card)
              ObjectDC():Set_PlayerPtr(COMPARTMENT_ID_PLR_PAIRED, EffectController())
              return true
              end
           end             
          end         
        end         
    end 
    return false
    </TRIGGER>
  </TRIGGERED_ABILITY>
  <STATIC_ABILITY filter_zone="ZONE_IN_PLAY">
    <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[As long as Nearheath Pilgrim is paired with another creature, both creatures have lifelink.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[As long as Nearheath Pilgrim is paired with another creature, both creatures have lifelink.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[As long as Nearheath Pilgrim is paired with another creature, both creatures have lifelink.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[As long as Nearheath Pilgrim is paired with another creature, both creatures have lifelink.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[As long as Nearheath Pilgrim is paired with another creature, both creatures have lifelink.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[As long as Nearheath Pilgrim is paired with another creature, both creatures have lifelink.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[As long as Nearheath Pilgrim is paired with another creature, both creatures have lifelink.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[As long as Nearheath Pilgrim is paired with another creature, both creatures have lifelink.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[As long as Nearheath Pilgrim is paired with another creature, both creatures have lifelink.]]></LOCALISED_TEXT>
    <CONTINUOUS_ACTION layer="8">
    local pair = ObjectDC():Get_CardPtr(COMPARTMENT_ID_OBJ_SOULBOND)
    if pair ~= nil then
       pair:GetCurrentCharacteristics():Characteristic_Set( CHARACTERISTIC_PHASING, 1 )
       Object():GetCurrentCharacteristics():Characteristic_Set( CHARACTERISTIC_PHASING, 1 )
    end
    </CONTINUOUS_ACTION>
    <CONTINUOUS_ACTION layer="6">
    local pair = ObjectDC():Get_CardPtr(COMPARTMENT_ID_OBJ_SOULBOND)
    if pair ~= nil then
       pair:GetCurrentCharacteristics():Characteristic_Set( CHARACTERISTIC_LIFELINK, 1 )
      Object():GetCurrentCharacteristics():Characteristic_Set( CHARACTERISTIC_LIFELINK, 1 )
    end
    </CONTINUOUS_ACTION>
  </STATIC_ABILITY>   
  <TRIGGERED_ABILITY internal="1" filter_zone="ZONE_IN_PLAY">
    <TRIGGER value="ABILITY_RESOLVED">
    local pair = ObjectDC():Get_CardPtr(COMPARTMENT_ID_OBJ_SOULBOND)
    local player = ObjectDC():Get_PlayerPtr(COMPARTMENT_ID_PLR_PAIRED)
    if pair ~= nil and player ~= nil then
      return (pair:GetController() ~= player or Object():GetController() ~= player or pair:GetCardType():Test( CARD_TYPE_CREATURE ) == 0 or Object():GetCardType():Test( CARD_TYPE_CREATURE ) == 0)
    end
      return false
    </TRIGGER>
    <RESOLUTION_TIME_ACTION>
     ObjectDC():Set_CardPtr(COMPARTMENT_ID_OBJ_SOULBOND, nil)
     ObjectDC():Set_PlayerPtr(COMPARTMENT_ID_PLR_PAIRED, nil)
    </RESOLUTION_TIME_ACTION>
  </TRIGGERED_ABILITY>
  <TRIGGERED_ABILITY internal="1" filter_zone="ZONE_IN_PLAY">
    <TRIGGER value="SPELL_RESOLVED">
    local pair = ObjectDC():Get_CardPtr(COMPARTMENT_ID_OBJ_SOULBOND)
    local player = ObjectDC():Get_PlayerPtr(COMPARTMENT_ID_PLR_PAIRED)
    if pair ~= nil and player ~= nil then
      return (pair:GetController() ~= player or Object():GetController() ~= player or pair:GetCardType():Test( CARD_TYPE_CREATURE ) == 0 or Object():GetCardType():Test( CARD_TYPE_CREATURE ) == 0)
    end
      return false
    </TRIGGER>
    <RESOLUTION_TIME_ACTION>
     ObjectDC():Set_CardPtr(COMPARTMENT_ID_OBJ_SOULBOND, nil)
     ObjectDC():Set_PlayerPtr(COMPARTMENT_ID_PLR_PAIRED, nil)
    </RESOLUTION_TIME_ACTION>
  </TRIGGERED_ABILITY>
  <TRIGGERED_ABILITY internal="1" filter_zone="ZONE_IN_PLAY">
    <TRIGGER value="PLAYER_LOSES_GAME">
    local player = ObjectDC():Get_PlayerPtr(COMPARTMENT_ID_PLR_PAIRED)
    if player ~= nil then
      return TriggerPlayer() == player
    end
      return false
    </TRIGGER>
    <RESOLUTION_TIME_ACTION>
     ObjectDC():Set_CardPtr(COMPARTMENT_ID_OBJ_SOULBOND, nil)
     ObjectDC():Set_PlayerPtr(COMPARTMENT_ID_PLR_PAIRED, nil)
    </RESOLUTION_TIME_ACTION>
  </TRIGGERED_ABILITY>
  <TRIGGERED_ABILITY internal="1" filter_zone="ZONE_IN_PLAY">
    <TRIGGER value="ZONECHANGE_BEGIN" simple_qualifier="self" to_zone="ZONE_ANY" from_zone="ZONE_IN_PLAY" />
    <RESOLUTION_TIME_ACTION>
     ObjectDC():Set_CardPtr(COMPARTMENT_ID_OBJ_SOULBOND, nil)
     ObjectDC():Set_PlayerPtr(COMPARTMENT_ID_PLR_PAIRED, nil)
    </RESOLUTION_TIME_ACTION>
  </TRIGGERED_ABILITY>
  <HELP title="MORE_INFO_BADGE_TITLE_2" body="MORE_INFO_BADGE_BODY_2" zone="ZONE_ANY" />
  <HELP title="MORE_INFO_BADGE_TITLE_170" body="MORE_INFO_BADGE_BODY_170" zone="ZONE_ANY" />
  <SFX text="COMBAT_BLADE_LARGE_ATTACK" power_boundary_min="4" power_boundary_max="-1" />
  <SFX text="COMBAT_BLADE_SMALL_ATTACK" power_boundary_min="1" power_boundary_max="3" />
  <AI_BASE_SCORE score="450" zone="ZONE_IN_PLAY" />
</CARD_V2>
Or better yet, here's a link to the XML.

https://www.dropbox.com/s/72o4we93k13z7zt/NEARHEATH_PILGRIM_1030501.zip?v=0rw--

Re: .TDX Art File?

PostPosted: 20 May 2013, 19:16
by thefiremind
viewtopic.php?f=65&t=2956
viewtopic.php?f=65&t=5987
Those tutorials were made for DotP2012 but they still work for DotP2013, except for the deck box which is smaller on 2013 (scroll down and you'll find links to new templates), and you don't need to make frames because it already has all the frames it can use (if you add different ones, you can't tell the game to use them).

Re: .TDX Art File?

PostPosted: 20 May 2013, 20:08
by BloodReyvyn
I kind of figured it out by trial and error, and I totally overlooked the conversion tool in GibbedTools.

Thanks for the links though. It will definitely eliminate a lot of guess work.