Board index
Programs with AI or Rules Enforcement
Magic: The Gathering - Duels of the Planeswalkers
New MTG Cards and Decks (2010, 2012, 2013, 2014, 2015, Magic Duels)
Programs with AI or Rules Enforcement
Magic: The Gathering - Duels of the Planeswalkers
New MTG Cards and Decks (2010, 2012, 2013, 2014, 2015, Magic Duels)
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!
Get MTG cards here for your DotP that aren't available anywhere else!
Moderator: CCGHQ Admins
Re: Card Creation Request Thread
by thefiremind » 23 May 2013, 16:08
Why using charge counters when you can declare any type of counter (level included)?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.
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 > 5 and level < 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 > 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 > 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 > 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>
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:
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.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.
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...
Currently busy with life...
-

thefiremind - Programmer
- Posts: 3515
- Joined: 07 Nov 2011, 10:55
- Has thanked: 118 times
- Been thanked: 722 times
Re: Card Creation Request Thread
by becauseafrica » 23 May 2013, 18:42
I have request for Spectral Procession and Kami of False Hope
thank's a lot
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
by 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."
-

BloodReyvyn - Posts: 421
- Joined: 19 May 2013, 13:29
- Has thanked: 53 times
- Been thanked: 40 times
Re: Card Creation Request Thread
by thefiremind » 23 May 2013, 20:20
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.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?
< Former DotP 2012/2013/2014 modder >
Currently busy with life...
Currently busy with life...
-

thefiremind - Programmer
- Posts: 3515
- Joined: 07 Nov 2011, 10:55
- Has thanked: 118 times
- Been thanked: 722 times
Re: Card Creation Request Thread
by 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>
-

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
by 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.
Just getting started: Xander9009's DotP 2014 Community Wad
Need a deck builder: DotP 2014 Deck Builder
Problems Modding: DotP 2014 Frequent Modding Mistakes
Need a deck builder: DotP 2014 Deck Builder
Problems Modding: DotP 2014 Frequent Modding Mistakes
- RiiakShiNal
- Programmer
- Posts: 2189
- Joined: 16 May 2011, 21:37
- Has thanked: 75 times
- Been thanked: 497 times
Re: Card Creation Request Thread
by 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.)"?
-

Master Necro - Posts: 259
- Joined: 24 Apr 2013, 18:25
- Has thanked: 83 times
- Been thanked: 21 times
Re: Card Creation Request Thread
by 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.
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."
-

BloodReyvyn - Posts: 421
- Joined: 19 May 2013, 13:29
- Has thanked: 53 times
- Been thanked: 40 times
Re: Card Creation Request Thread
by 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...
Currently busy with life...
-

thefiremind - Programmer
- Posts: 3515
- Joined: 07 Nov 2011, 10:55
- Has thanked: 118 times
- Been thanked: 722 times
Re: Card Creation Request Thread
by Master Necro » 24 May 2013, 15:30
What about Walking Archive is it possible?
-

Master Necro - Posts: 259
- Joined: 24 Apr 2013, 18:25
- Has thanked: 83 times
- Been thanked: 21 times
Re: Card Creation Request Thread
by sumomole » 24 May 2013, 16:06
Walking Archive is easy to code, in fact, you could try to code it.Master Necro wrote:What about Walking Archive is it possible?
"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 > 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>
-

sumomole - Programmer
- Posts: 611
- Joined: 07 Jun 2011, 08:34
- Has thanked: 51 times
- Been thanked: 234 times
Re: Card Creation Request Thread
by 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.
Yeah the mistake I made was looking for a card that does At the beginning of each player’s upkeep draw a card.
-

Master Necro - Posts: 259
- Joined: 24 Apr 2013, 18:25
- Has thanked: 83 times
- Been thanked: 21 times
Re: Card Creation Request Thread
by 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...

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>
"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."
-

BloodReyvyn - Posts: 421
- Joined: 19 May 2013, 13:29
- Has thanked: 53 times
- Been thanked: 40 times
Re: Card Creation Request Thread
by 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...
- 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 > 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 > 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 < 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 > 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>
-

sumomole - Programmer
- Posts: 611
- Joined: 07 Jun 2011, 08:34
- Has thanked: 51 times
- Been thanked: 234 times
Re: Card Creation Request Thread
by 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."
-

BloodReyvyn - Posts: 421
- Joined: 19 May 2013, 13:29
- Has thanked: 53 times
- Been thanked: 40 times
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