It is currently 05 Nov 2025, 14:41
   
Text Size

Card Creation Request Thread

User-made mods in DLC (Downloadable Content) form.
Get MTG cards here for your DotP that aren't available anywhere else!

Moderator: CCGHQ Admins

Re: Card Creation Request Thread

Postby thefiremind » 23 May 2013, 16:08

nivmizzet1 wrote:a few pages back I saw a lot of people talking about Transcendent Master, but I haven't seen it posted anywhere yet. I just made it, so I thought I'd post it here.
Why using charge counters when you can declare any type of counter (level included)? :wink:
At the moment I'm working on a level up deck and this is my Transcendent Master:
Code: Select all
<?xml version='1.0' encoding='UTF-8'?>
<CARD_V2>
  <FILENAME text="TRANSCENDENT_MASTER_194917" />
  <CARDNAME text="TRANSCENDENT_MASTER" />
  <TITLE>
    <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Transcendent Master]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Maître transcendant]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Maestro trascendente]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Meister des Transzendenten]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Maestro Trascendente]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[卓絶の達人]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[Transcendent Master]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[Мастер Сверхъестественного]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[Mestre Transcendente]]></LOCALISED_TEXT>
  </TITLE>
  <MULTIVERSEID value="194917" />
  <ARTID value="A194917" />
  <ARTIST name="Steven Belledin" />
  <CASTING_COST cost="{1}{W}{W}" />
  <TYPE metaname="Creature" />
  <SUB_TYPE metaname="Human" order_fr-FR="0" order_es-ES="2" order_de-DE="0" order_it-IT="2" order_jp-JA="0" order_ko-KR="0" order_ru-RU="0" order_pt-BR="0" />
  <SUB_TYPE metaname="Cleric" order_fr-FR="1" order_es-ES="1" order_de-DE="1" order_it-IT="1" order_jp-JA="1" order_ko-KR="1" order_ru-RU="1" order_pt-BR="1" />
  <SUB_TYPE metaname="Avatar" order_fr-FR="2" order_es-ES="0" order_de-DE="2" order_it-IT="0" order_jp-JA="2" order_ko-KR="2" order_ru-RU="2" order_pt-BR="2" />
  <EXPANSION value="ROE" />
  <RARITY metaname="M" />
  <POWER value="3" />
  <TOUGHNESS value="3" />
  <ACTIVATED_ABILITY sorcery_time="1">
    <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Level up {1}]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Montée de niveau {1}]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Subir de nivel {1}.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Stufe aufsteigen {1}]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Aumentare di livello {1}]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[Lvアップ {1}]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[Level up {1}]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[Повышение уровня {1}]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[Subir de nível {1}]]></LOCALISED_TEXT>
    <COST type="Mana" cost="{1}" />
    <RESOLUTION_TIME_ACTION>
    if EffectSource() ~= nil then
       EffectSource():AddCounters( MTG():GetCountersType("LEVEL"), 1 )
    end
    </RESOLUTION_TIME_ACTION>
  </ACTIVATED_ABILITY>
  <STATIC_ABILITY>
    <CONTINUOUS_ACTION>
    ObjectDC():Set_Int( CHARACTERISTIC_LEVEL_UP, 1 )
    </CONTINUOUS_ACTION>
  </STATIC_ABILITY>
  <STATIC_ABILITY>
    <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[LEVEL 6-11  >> 6/6]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[NIVEAU 6-11  >> 6/6]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[NIVEL 6-11  >> 6/6]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[STUFE 6-11  >> 6/6]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[LIVELLO 6-11  >> 6/6]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[Lv 6-11  >> 6/6]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[LEVEL 6-11  >> 6/6]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[УРОВЕНЬ 6-11  >> 6/6]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[NÍVEL 6-11  >> 6/6]]></LOCALISED_TEXT>
    <CONTINUOUS_ACTION layer="7A">
    local level = Object():CountCounters( MTG():GetCountersType("LEVEL") )
    if level &gt; 5 and level &lt; 12 then
       local characteristics = Object():GetCurrentCharacteristics()
       characteristics:Power_Set( 6 )
       characteristics:Toughness_Set( 6 )
    end
    </CONTINUOUS_ACTION>
  </STATIC_ABILITY>
  <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>
    <CONTINUOUS_ACTION>
    local level = Object():CountCounters( MTG():GetCountersType("LEVEL") )
    if level &gt; 5 then
       Object():GetCurrentCharacteristics():Characteristic_Set( CHARACTERISTIC_LIFELINK, 1 )
    end
    </CONTINUOUS_ACTION>
  </STATIC_ABILITY>
  <STATIC_ABILITY>
    <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[LEVEL 12+  >> 9/9]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[NIVEAU 12+  >> 9/9]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[NIVEL 12+  >> 9/9]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[STUFE 12+  >> 9/9]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[LIVELLO 12+  >> 9/9]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[Lv 12+  >> 9/9]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[LEVEL 12+  >> 9/9]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[УРОВЕНЬ 12+  >> 9/9]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[NÍVEL 12+  >> 9/9]]></LOCALISED_TEXT>
    <CONTINUOUS_ACTION layer="7A">
    local level = Object():CountCounters( MTG():GetCountersType("LEVEL") )
    if level &gt; 11 then
       local characteristics = Object():GetCurrentCharacteristics()
       characteristics:Power_Set( 9 )
       characteristics:Toughness_Set( 9 )
    end
    </CONTINUOUS_ACTION>
  </STATIC_ABILITY>
  <STATIC_ABILITY internal="1">
    <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>
  </STATIC_ABILITY>
  <STATIC_ABILITY>
    <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Transcendent Master is indestructible.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Le Maître transcendant est indestructible.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[El Maestro trascendente es indestructible.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Der Meister des Transzendenten ist unzerstörbar.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Il Maestro Trascendente è indistruttibile.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[卓絶の達人は破壊されない。]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[Transcendent Master is indestructible.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[Мастер Сверхъестественного не может быть уничтожен.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[Mestre Transcendente é indestrutível.]]></LOCALISED_TEXT>
    <CONTINUOUS_ACTION>
    local level = Object():CountCounters( MTG():GetCountersType("LEVEL") )
    if level &gt; 11 then
       Object():GetCurrentCharacteristics():Characteristic_Set( CHARACTERISTIC_INDESTRUCTIBLE, 1 )
    end
    </CONTINUOUS_ACTION>
  </STATIC_ABILITY>
  <HELP title="MORE_INFO_BADGE_TITLE_4" body="MORE_INFO_BADGE_BODY_4" zone="ZONE_ANY" />
  <HELP title="MORE_INFO_BADGE_TITLE_8" body="MORE_INFO_BADGE_BODY_8" zone="ZONE_ANY" />
  <HELP title="MORE_INFO_TITLE_LEVELUP" body="MORE_INFO_BODY_LEVELUP" zone="ZONE_ANY" />
  <SFX text="COMBAT_WHITE_MAGIC_LARGE_ATTACK" power_boundary_min="4" power_boundary_max="-1" />
  <SFX text="COMBAT_WHITE_MAGIC_SMALL_ATTACK" power_boundary_min="1" power_boundary_max="3" />
  <AI_COUNTER_SCORE type="LEVEL" score="100" max_counters="12" />
</CARD_V2>
The fake characteristic CHARACTERISTIC_LEVEL_UP allows it to be recognized by Venerated Teacher (of course you need to declare the constant in a LOL file or replace it with a number directly inside each card).

EDIT: Right now I'm starting to thinking that the correct layer to use for P/T setting should be 7B instead of 7A. If you read this:
Gatherer wrote:Effects that set a leveler's power or toughness to a specific value, including the effects from a level symbol's ability, apply in timestamp order. The timestamp of each level symbol's ability is the same as the timestamp of the leveler itself, regardless of when the most recent level counter was put on it.
it seems that for example, if I have a Godhead of Awe in play and then I play a level up creature, when it levels up it overrides the effect of Godhead of Awe. This would be possible by using layer 7B as Godhead of Awe, not 7A. I'll change it.
Last edited by thefiremind on 23 May 2013, 18:56, edited 1 time in total.
< Former DotP 2012/2013/2014 modder >
Currently busy with life...
User avatar
thefiremind
Programmer
 
Posts: 3515
Joined: 07 Nov 2011, 10:55
Has thanked: 118 times
Been thanked: 722 times

Re: Card Creation Request Thread

Postby becauseafrica » 23 May 2013, 18:42

I have request for Spectral Procession and Kami of False Hope
thank's a lot
becauseafrica
 
Posts: 13
Joined: 24 Jan 2012, 07:34
Has thanked: 9 times
Been thanked: 0 time

Re: Card Creation Request Thread

Postby BloodReyvyn » 23 May 2013, 20:17

Quick questions for you, thefiremind, is it better to use the MultiverseID that is generated by your card generator? Does it matter if I make my own for the sake of compatibility?
"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: Card Creation Request Thread

Postby thefiremind » 23 May 2013, 20:20

BloodReyvyn wrote:Quick questions for you, thefiremind, is it better to use the MultiverseID that is generated by your card generator? Does it matter if I make my own for the sake of compatibility?
Do as you like. I think I'll use my own IDs again in DotP2014, as I did for DotP2012: much less problems with other copies of cards in other mods. :lol:
< 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: Card Creation Request Thread

Postby NEMESiS » 24 May 2013, 01:17

So what am i doing wrong with Soul Exchange?

Code: Select all
<?xml version='1.0'?>
<CARD_V2>
  <FILENAME text="SOUL_EXCHANGE_184517" />
  <CARDNAME text="SOUL_EXCHANGE" />
  <TITLE>
    <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Soul Exchange]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Soul Exchange]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Soul Exchange]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Soul Exchange]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Soul Exchange]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[Soul Exchange]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[Soul Exchange]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[Soul Exchange]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[Soul Exchange]]></LOCALISED_TEXT>
  </TITLE>
  <MULTIVERSEID value="184517" />
  <ARTID value="A184517" />
  <ARTIST name="Anthony S. Waters" />
  <CASTING_COST cost="{B}{B}" />
  <TYPE metaname="Sorcery" />
  <EXPANSION value="ME2" />
  <RARITY metaname="U" />
  <UTILITY_ABILITY>
    <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[As an additional cost to cast Soul Exchange, exile a creature you control.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[As an additional cost to cast Soul Exchange, exile a creature you control.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[As an additional cost to cast Soul Exchange, exile a creature you control.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[As an additional cost to cast Soul Exchange, exile a creature you control.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Come costo addizionale per lanciare il Soul Exchange, esilia una creatura che controlli.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[As an additional cost to cast Soul Exchange, exile a creature you control.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[As an additional cost to cast Soul Exchange, exile a creature you control.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[As an additional cost to cast Soul Exchange, exile a creature you control.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[As an additional cost to cast Soul Exchange, exile a creature you control.]]></LOCALISED_TEXT>
   <COST type="Exile" qualifier="Additional">
      <TARGET_DEFINITION id="6">
      local filter = Object():GetFilter()
       filter:Clear()
        filter:AddCardType( CARD_TYPE_CREATURE )
        filter:SetPlayer( EffectController() )
        filter:SetZone( ZONE_IN_PLAY )
        filter:SetHint( HINT_ENEMY, EffectController() )
        filter:NotTargetted()
      </TARGET_DEFINITION>
      <TARGET_DETERMINATION>
      return AtLeastOneTargetFromDefinition(6)
      </TARGET_DETERMINATION>
      <PLAYTIME>
      EffectController():ChooseTarget( 6, "CARD_QUERY_CHOOSE_CREATURE_TO_EXILE", EffectDC():Make_Targets(0) )
      </PLAYTIME></COST>
  </UTILITY_ABILITY>
  <SPELL_ABILITY>
    <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Return target creature card from your graveyard to the battlefield. Put a +2/+2 counter on that creature if the exiled creature was a Thrull.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Return target creature card from your graveyard to the battlefield. Put a +2/+2 counter on that creature if the exiled creature was a Thrull.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Return target creature card from your graveyard to the battlefield. Put a +2/+2 counter on that creature if the exiled creature was a Thrull.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Return target creature card from your graveyard to the battlefield. Put a +2/+2 counter on that creature if the exiled creature was a Thrull.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Rimetti sul campo di battaglia una carta creatura bersaglio dal tuo cimitero. Metti un segnalino +2/+2 su quella creatura se la creatura esiliata era un Thrull.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[Return target creature card from your graveyard to the battlefield. Put a +2/+2 counter on that creature if the exiled creature was a Thrull.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[Return target creature card from your graveyard to the battlefield. Put a +2/+2 counter on that creature if the exiled creature was a Thrull.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[Return target creature card from your graveyard to the battlefield. Put a +2/+2 counter on that creature if the exiled creature was a Thrull.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[Return target creature card from your graveyard to the battlefield. Put a +2/+2 counter on that creature if the exiled creature was a Thrull.]]></LOCALISED_TEXT>
    <TARGET_DETERMINATION>
    local filter = Object():GetFilter()
    filter:Clear()
    filter:AddCardType( CARD_TYPE_CREATURE )
    filter:SetZone( ZONE_GRAVEYARD )
    filter:SetPlayer( Object():GetPlayer() )
    return TargetGoodF()
    </TARGET_DETERMINATION>
    <PLAY_TIME_ACTION target_choosing="1">
    ChooseTarget( "CARD_QUERY_CHOOSE_CREATURE_TO_PUT_INTO_HAND" )
    </PLAY_TIME_ACTION>
    <RESOLUTION_TIME_ACTION>
    if Object():GetTargetCard() ~= nil then
      if Object():GetTargetCard():GetZone() == ZONE_GRAVEYARD then
        Object():GetTargetCard():PutIntoPlay( Object():GetOwner() )
      end
    end
    </RESOLUTION_TIME_ACTION>
    <RESOLUTION_TIME_ACTION>
    local target = EffectDC():Get_Targets(0):Get_CardPtr(0)
    if target ~= nil then   
       target:AddCounters( MTG():PlusOnePlusOneCounters(), 2 )
    end
    </RESOLUTION_TIME_ACTION>
    <AI_BASE_SCORE score="1200" zone="hand" />
  </SPELL_ABILITY>
</CARD_V2>
User avatar
NEMESiS
 
Posts: 460
Joined: 03 Jan 2013, 04:02
Location: Pools of Becoming
Has thanked: 70 times
Been thanked: 21 times

Re: Card Creation Request Thread

Postby RiiakShiNal » 24 May 2013, 02:08

Well, you have quite a bit that's wrong:
  • For the additional cost the type would be "Remove_from_game" not "Exile", but because you have to know whether the card exiled was a Thrull or not you really need to do a "Generic" cost so you can save a protected pointer to the card before exiling it.
  • In the second ability choose which creature to bring back you have it coded like a DotP 2010 card (which obviously won't work in DotP 2013).
    • TargetGoodF() no longer exists and you would be better off splitting this into a TARGET_DEFINITION and TARGET_DETERMINATION block instead of just the TARGET_DETERMINATION.
    • In the PLAY_TIME_ACTION: ChooseTarget(string) no longer exists, you need to specify the player, the TARGET_DEFINITION, and the Target chest to save to. Like EffectController():ChooseTarget( 0, "CARD_QUERY_CHOOSE_CREATURE", EffectDC():Make_Targets(0) )
    • In the first RESOLUTION_TIME_ACTION you would probably be better off using EffectDC():Get_Targets(0):Get_CardPtr(0) rather than Object():GetTargetCard().
    • For PutIntoPlay() you should use EffectController() instead of Object():GetOwner().
    • In the second RESOLUTION_TIME_ACTION you can't use EffectDC():Get_Targets(0):Get_CardPtr(0) because you haven't set that card pointer. A card pointer set in the EffectDC can only be accessed in that ability, it can't be accessed from another ability.
    • Also you don't have a check for sub type Thrull.
RiiakShiNal
Programmer
 
Posts: 2189
Joined: 16 May 2011, 21:37
Has thanked: 75 times
Been thanked: 497 times

Re: Card Creation Request Thread

Postby Master Necro » 24 May 2013, 13:48

Hi, I wanted to code Azorius Guildmage but I'm stuck. Is it possible to code "Counter target activated ability. (Mana abilities can't be targeted.)"?
User avatar
Master Necro
 
Posts: 259
Joined: 24 Apr 2013, 18:25
Has thanked: 83 times
Been thanked: 21 times

Re: Card Creation Request Thread

Postby BloodReyvyn » 24 May 2013, 14:04

Unfortunately no, there's no way to actually physically target the ability in the engine as far as I am aware. You could target the permanent, but that would be pointless since the ability would still be "on the stack" and go through regardless.

I was very sad about this fact when I tried to code Voidmage Husher.
"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: Card Creation Request Thread

Postby thefiremind » 24 May 2013, 14:45

I tried to look for abilities on the stack when I was still searching for a way to code Sigarda, Host of Herons, and even if there are functions that look like they could access abilities on the stack (even if invisible), I couldn't get them to work. So I guess that they are not just invisible, but totally unaccessible.
< 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: Card Creation Request Thread

Postby Master Necro » 24 May 2013, 15:30

What about Walking Archive is it possible?
User avatar
Master Necro
 
Posts: 259
Joined: 24 Apr 2013, 18:25
Has thanked: 83 times
Been thanked: 21 times

Re: Card Creation Request Thread

Postby sumomole » 24 May 2013, 16:06

Master Necro wrote:What about Walking Archive is it possible?
Walking Archive is easy to code, in fact, you could try to code it. :)
"defender" from FOG_BANK_277337
"enter the battlefield with +1/+1 counter" from CLOCKWORK_HYDRA_280084
"At the beginning of each player’s upkeep" from DEFILER_OF_SOULS_276746
"draw a card for each" from FLOW_OF_IDEAS_276806
"count +1/+1 counter on itself" from PRIMORDIAL_HYDRA_277117
"Put a +1/+1 counter on itself" from AJANIS_PRIDEMATE_277082
Code: Select all
  <STATIC_ABILITY>
    <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Defender |(This creature can’t attack.)|]]></LOCALISED_TEXT>
    <CONTINUOUS_ACTION>
    local characteristics = Object():GetCurrentCharacteristics() 
    characteristics:Characteristic_Set( CHARACTERISTIC_DEFENDER, 1 ) 
    </CONTINUOUS_ACTION>
  </STATIC_ABILITY>
  <TRIGGERED_ABILITY internal="1" pre_trigger="1" active_zone="ZONE_TRANSITION">
    <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Walking Archive enters the battlefield with a +1/+1 counter on it.]]></LOCALISED_TEXT>
    <TRIGGER value="ZONECHANGE_TRANSITION" simple_qualifier="self" to_zone="ZONE_IN_PLAY" />
    <RESOLUTION_TIME_ACTION>
    Object():AddCounters( MTG():PlusOnePlusOneCounters(), 1 )
    </RESOLUTION_TIME_ACTION>
  </TRIGGERED_ABILITY>
  <TRIGGERED_ABILITY auto_skip="1">
    <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[At the beginning of each player’s upkeep, that player draws a card for each +1/+1 counter on Walking Archive.]]></LOCALISED_TEXT>
    <TRIGGER value="BEGINNING_OF_STEP">
    return ( TriggerPlayer():MyTurn() ~= 0 ) and  ( MTG():GetStep() == STEP_UPKEEP )
    </TRIGGER>
    <RESOLUTION_TIME_ACTION>
    if TriggerPlayer() ~= nil and EffectSource() ~= nil then
      local NumCards = EffectSource():CountCounters(MTG():PlusOnePlusOneCounters())
      while (NumCards &gt; 0) do
         NumCards = NumCards - 1
         TriggerPlayer():DrawCard()
      end
    end
    </RESOLUTION_TIME_ACTION>
  </TRIGGERED_ABILITY>
  <ACTIVATED_ABILITY>
    <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[{2}{W}{U}: Put a +1/+1 counter on Walking Archive.]]></LOCALISED_TEXT>
    <COST type="Mana" cost="{2}{W}{U}" />
    <RESOLUTION_TIME_ACTION>
    if EffectSource() ~= nil then
       EffectSource():AddCounters( MTG():PlusOnePlusOneCounters(), 1 )
    end
    </RESOLUTION_TIME_ACTION>
  </ACTIVATED_ABILITY>
User avatar
sumomole
Programmer
 
Posts: 611
Joined: 07 Jun 2011, 08:34
Has thanked: 51 times
Been thanked: 234 times

Re: Card Creation Request Thread

Postby Master Necro » 24 May 2013, 16:26

Awesome man! Thanks! :)

Yeah the mistake I made was looking for a card that does At the beginning of each player’s upkeep draw a card. :mrgreen:
User avatar
Master Necro
 
Posts: 259
Joined: 24 Apr 2013, 18:25
Has thanked: 83 times
Been thanked: 21 times

Re: Card Creation Request Thread

Postby BloodReyvyn » 24 May 2013, 20:41

Anyone taking up the Lich card? Still can't figure out how to make you sac permanents when you are dealt damage and draw cards instead of gaining life.

This was as far as I got, and I haven't even tested it. Will go do that now I guess...

Code: Select all
<?xml version='1.0' encoding='UTF-8'?>
<CARD_V2>
  <FILENAME text="LICH_202483" />
  <CARDNAME text="LICH" />
  <TITLE>
    <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Lich]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Lich]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Lich]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Lich]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Lich]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[Lich]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[Lich]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[Lich]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[Lich]]></LOCALISED_TEXT>
  </TITLE>
  <MULTIVERSEID value="202483" />
  <ARTID value="A202483" />
  <ARTIST name="Daniel Gelon" />
  <CASTING_COST cost="{B}{B}{B}{B}" />
  <TYPE metaname="Enchantment" />
  <EXPANSION value="ME4" />
  <RARITY metaname="R" />
  <SPELL_ABILITY dangerous="0" filter_zone="ZONE_IN_PLAY">
    <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[As Lich enters the battlefield, you lose life equal to your life total.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[As Lich enters the battlefield, you lose life equal to your life total.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[As Lich enters the battlefield, you lose life equal to your life total.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[As Lich enters the battlefield, you lose life equal to your life total.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Se sta per essere inflitto danno a Dralnu, sacrifica invece altrettanti permanenti.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[As Lich enters the battlefield, you lose life equal to your life total.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[As Lich enters the battlefield, you lose life equal to your life total.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[As Lich enters the battlefield, you lose life equal to your life total.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[As Lich enters the battlefield, you lose life equal to your life total.]]></LOCALISED_TEXT>
    <RESOLUTION_TIME_ACTION>
       local player = TriggerObject():GetPlayer()
       if player ~= nil then
          player:SetLifeTotal(0)
       end
    </RESOLUTION_TIME_ACTION>
  </SPELL_ABILITY>
  <STATIC_ABILITY>
    <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[You don’t lose the game for having 0 or less life.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[You don’t lose the game for having 0 or less life.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[You don’t lose the game for having 0 or less life.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[You don’t lose the game for having 0 or less life.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[{T}: Una carta istantaneo o stregoneria bersaglio nel tuo cimitero ha flashback fino alla fine del turno. Il suo costo di flashback diventa pari al suo costo di mana quando la giochi..]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[You don’t lose the game for having 0 or less life.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[You don’t lose the game for having 0 or less life.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[You don’t lose the game for having 0 or less life.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[You don’t lose the game for having 0 or less life.]]></LOCALISED_TEXT>
    <CONTINUOUS_ACTION layer="8">
    EffectController():GetCurrentCharacteristics():Bool_Set( PLAYER_CHARACTERISTIC_DOESNT_DIE_ON_ZERO_LIFE, 1 )
    </CONTINUOUS_ACTION>
  </STATIC_ABILITY>
  <STATIC_ABILITY>
    <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[If you would gain life, draw that many cards instead.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[If you would gain life, draw that many cards instead.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[If you would gain life, draw that many cards instead.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[If you would gain life, draw that many cards instead.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[If you would gain life, draw that many cards instead.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[If you would gain life, draw that many cards instead.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[If you would gain life, draw that many cards instead.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[If you would gain life, draw that many cards instead.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[If you would gain life, draw that many cards instead.]]></LOCALISED_TEXT>
  </STATIC_ABILITY>
  <TRIGGERED_ABILITY>
    <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Whenever you’re dealt damage, sacrifice that many nontoken permanents. If you can’t, you lose the game.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Whenever you’re dealt damage, sacrifice that many nontoken permanents. If you can’t, you lose the game.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Whenever you’re dealt damage, sacrifice that many nontoken permanents. If you can’t, you lose the game.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Whenever you’re dealt damage, sacrifice that many nontoken permanents. If you can’t, you lose the game.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Whenever you’re dealt damage, sacrifice that many nontoken permanents. If you can’t, you lose the game.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[Whenever you’re dealt damage, sacrifice that many nontoken permanents. If you can’t, you lose the game.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[Whenever you’re dealt damage, sacrifice that many nontoken permanents. If you can’t, you lose the game.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[Whenever you’re dealt damage, sacrifice that many nontoken permanents. If you can’t, you lose the game.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[Whenever you’re dealt damage, sacrifice that many nontoken permanents. If you can’t, you lose the game.]]></LOCALISED_TEXT>
  </TRIGGERED_ABILITY>
  <TRIGGERED_ABILITY>
    <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[When Lich is put into a graveyard from the battlefield, you lose the game.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[When Lich is put into a graveyard from the battlefield, you lose the game.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[When Lich is put into a graveyard from the battlefield, you lose the game.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[When Lich is put into a graveyard from the battlefield, you lose the game.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[When Lich is put into a graveyard from the battlefield, you lose the game.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[When Lich is put into a graveyard from the battlefield, you lose the game.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[When Lich is put into a graveyard from the battlefield, you lose the game.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[When Lich is put into a graveyard from the battlefield, you lose the game.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[When Lich is put into a graveyard from the battlefield, you lose the game.]]></LOCALISED_TEXT>
  </TRIGGERED_ABILITY>
</CARD_V2>
Yeah, that's a no-go, crashes if I start a duel... :roll:
"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: Card Creation Request Thread

Postby sumomole » 25 May 2013, 05:08

BloodReyvyn wrote:Anyone taking up the Lich card? Still can't figure out how to make you sac permanents when you are dealt damage and draw cards instead of gaining life.
This was as far as I got, and I haven't even tested it. Will go do that now I guess...
Yeah, that's a no-go, crashes if I start a duel... :roll:
Lich | Open
Code: Select all
      <TRIGGERED_ABILITY internal="1" pre_trigger="1" active_zone="ZONE_TRANSITION">
        <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[As Lich enters the battlefield, you lose life equal to your life total.]]></LOCALISED_TEXT>
        <TRIGGER value="ZONECHANGE_TRANSITION" simple_qualifier="self" to_zone="ZONE_IN_PLAY" from_zone="ZONE_ANY" />
        <RESOLUTION_TIME_ACTION>
        local life_total = EffectController():GetLifeTotal()
        if life_total &gt; 0 then
           EffectController():LoseLife( life_total )
        end
        </RESOLUTION_TIME_ACTION>
      </TRIGGERED_ABILITY>
      <STATIC_ABILITY>
        <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[You don’t lose the game for having 0 or less life.]]></LOCALISED_TEXT>
        <CONTINUOUS_ACTION layer="8">
        Object():GetController():GetCurrentCharacteristics():Bool_Set( PLAYER_CHARACTERISTIC_DOESNT_DIE_ON_ZERO_LIFE, 1 )
        </CONTINUOUS_ACTION>
      </STATIC_ABILITY>
      <TRIGGERED_ABILITY internal="1" pre_trigger="1">
        <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[If you would gain life, draw that many cards instead.]]></LOCALISED_TEXT>
        <TRIGGER value="PLAYER_GAINED_LIFE" simple_qualifier="controller">
        if TriggerPlayer() ~= nil then
           override = true
           return true
        end
        return false
        </TRIGGER>
        <RESOLUTION_TIME_ACTION>
        local NumCards = GetAmount()
        while (NumCards &gt; 0) do
           NumCards = NumCards - 1
           EffectController():DrawCard()
        end
        </RESOLUTION_TIME_ACTION>
      </TRIGGERED_ABILITY>
      <TRIGGERED_ABILITY>
        <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Whenever you’re dealt damage, sacrifice that many nontoken permanents. If you can’t, you lose the game.]]></LOCALISED_TEXT>
        <TRIGGER value="PLAYER_TOOK_DAMAGE" simple_qualifier="controller" />
        <RESOLUTION_TIME_ACTION>
        local total = 0
        local player = EffectController()
         local amount = Damage():GetAmount()
         local filter = Object():GetFilter()
         filter:Clear()
          filter:NotTargetted()
          filter:SetPlayer( player )
         filter:SetZone( ZONE_IN_PLAY )
        filter:AddExtra(FILTER_EXTRA_NOT_TOKEN)
        filter:AddCardType( CARD_TYPE_ARTIFACT )
        filter:AddCardType( CARD_TYPE_ENCHANTMENT )
        filter:AddCardType( CARD_TYPE_LAND )
        filter:AddCardType( CARD_TYPE_CREATURE )
        filter:AddCardType( CARD_TYPE_PLANESWALKER )
          filter:SetHint( HINT_ENEMY, player )   
        total = filter:Count()
        if total &lt; amount then
          player:LoseGame()
        else
           player:SetTargetCount( amount )
           EffectDC():Set_Int(1, amount)
            for i=0,amount-1 do
               player:SetTargetPrompt( i, "CARD_QUERY_CHOOSE_PERMANENT_TO_SACRIFICE" )
            end
            player:ChooseTargets( NO_VALIDATION, EffectDC():Make_Targets(0) )
        end
        </RESOLUTION_TIME_ACTION>
        <RESOLUTION_TIME_ACTION>
        local amount = EffectDC():Get_Int(1)
        if amount &gt; 0 then
           for i = 0,amount-1 do
              local target = EffectDC():Get_Targets(0):Get_CardPtr(i)
              if target ~= nil then
                 target:Sacrifice(EffectController())
              end
           end
        end
        </RESOLUTION_TIME_ACTION>
      </TRIGGERED_ABILITY>
      <TRIGGERED_ABILITY>
        <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[When Lich is put into a graveyard from the battlefield, you lose the game.]]></LOCALISED_TEXT>
        <TRIGGER value="ZONECHANGE_BEGIN" simple_qualifier="self" to_zone="ZONE_GRAVEYARD" from_zone="ZONE_IN_PLAY" />
        <RESOLUTION_TIME_ACTION>
        EffectController():LoseGame()
        </RESOLUTION_TIME_ACTION>
      </TRIGGERED_ABILITY>
User avatar
sumomole
Programmer
 
Posts: 611
Joined: 07 Jun 2011, 08:34
Has thanked: 51 times
Been thanked: 234 times

Re: Card Creation Request Thread

Postby BloodReyvyn » 25 May 2013, 05:24

Wow, you're a beast. Thanks for clearing that mess up. :)
"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

PreviousNext

Return to New MTG Cards and Decks (2010, 2012, 2013, 2014, 2015, Magic Duels)

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 9298 on 10 Oct 2025, 12:54

Users browsing this forum: No registered users and 6 guests

Login Form