It is currently 17 Sep 2025, 21:35
   
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 Scion of Darkness » 03 Jun 2013, 10:25

Thanks the first 2 cards are fixed but the last one its strange, i cant recall who made the card but the creator made the ability a spell ability so no sacrificing but when i converted it to trigger ability the sacrifice works bur no card search =S
Attachments
BLOOD_SPEAKER_625171.zip
(1.56 KiB) Downloaded 440 times
User avatar
Scion of Darkness
 
Posts: 235
Joined: 27 Aug 2012, 13:14
Has thanked: 17 times
Been thanked: 23 times

Re: Card Creation Request Thread

Postby thefiremind » 03 Jun 2013, 11:18

After the sacrifice happened, EffectSource() will be nil because of the zone change, so you shouldn't check for it anymore. Do it this way:
Code: Select all
    <RESOLUTION_TIME_ACTION>
    if EffectSource() ~= nil and EffectSource():GetController() == EffectController() and Object():GetMultipleChoiceResult() == 0 then
       EffectSource():Sacrifice( EffectController() )
       EffectDC():Set_Int(1, 1)
    end
    </RESOLUTION_TIME_ACTION>
    <RESOLUTION_TIME_ACTION>
    if EffectDC():Get_Int(1) == 1 then
       local filter = Object():GetFilter()
       local player = EffectController()
       player:MarkSearchedLibrary()
       filter:Clear()
       filter:May()
       filter:NotTargetted()
       filter:AddSubType( CREATURE_TYPE_DEMON )
       filter:SetZone( ZONE_LIBRARY )
       filter:SetPlayer( player )
       player:ChooseTarget( NO_VALIDATION, "CARD_QUERY_CHOOSE_CARD_TO_PUT_INTO_HAND", EffectDC():Make_Targets(0) )
    end
    </RESOLUTION_TIME_ACTION>
    <RESOLUTION_TIME_ACTION>
    if EffectDC():Get_Int(1) == 1 then
       local target = EffectDC():Get_Targets(0) and EffectDC():Get_Targets(0):Get_CardPtr(0)
       if target ~= nil then
          target:GuidedReveal( ZONE_LIBRARY, ZONE_HAND )
          target:PutInHand()
       end
    end
    </RESOLUTION_TIME_ACTION>
    <RESOLUTION_TIME_ACTION>
    if EffectDC():Get_Int(1) == 1 then
       EffectController():ShuffleLibrary()
    end
    </RESOLUTION_TIME_ACTION>
I skipped the first RESOLUTION_TIME_ACTION just because it's already OK, don't delete it by mistake. :wink:
< 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 BloodReyvyn » 03 Jun 2013, 20:37

Is Experiment Kraj possible? 'Cuz I will request that since it's my birthday. :P
"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 RiiakShiNal » 03 Jun 2013, 21:54

BloodReyvyn wrote:Is Experiment Kraj possible? 'Cuz I will request that since it's my birthday. :P
No, there is no way to get and assign abilities from other creatures (or cards) unless they are assigned specifically by GrantAbility() using an associated resource_id. Most cards do not have abilities with resource_ids, and even if they did there is no way to iterate through them to grant them.
RiiakShiNal
Programmer
 
Posts: 2189
Joined: 16 May 2011, 21:37
Has thanked: 75 times
Been thanked: 497 times

Re: Card Creation Request Thread

Postby nivmizzet1 » 04 Jun 2013, 01:15

thefiremind wrote:
nivmizzet1 wrote:Is cavern of souls possible?
No.
Sorry, I'm guilty of not doing a search on this occasion. Thanks for taking the time. I didn't think it would be possible, oh well, it's not really an important component of the deck it was going to be in.
nivmizzet1
 
Posts: 617
Joined: 21 Mar 2013, 10:10
Has thanked: 100 times
Been thanked: 25 times

Re: Card Creation Request Thread

Postby drleg3nd » 04 Jun 2013, 01:30

hey guys is Phyrexian Altar and Paleoloth available ? couldnt find in search.thx
drleg3nd
 
Posts: 528
Joined: 14 May 2012, 20:05
Has thanked: 5 times
Been thanked: 30 times

Re: Card Creation Request Thread

Postby gorem2k » 04 Jun 2013, 01:41

I'm trying to code Sterling Grove using Greater Auramancy.
It gives shroud to every creatures I control so I think there's a problem with card's filter:

Code: Select all
<FILTER>
    local filteredCard = FilteredCard()
    local objectPlayer = EffectController()
    return (filteredCard:GetCardType():Test( CARD_TYPE_ENCHANTMENT ) ~= 0) and
    (filteredCard:GetPlayer() == objectPlayer) and
    (filteredCard ~= nil and
    filteredCard ~= Object() and
    filteredCard:GetZone() == ZONE_IN_PLAY)
    </FILTER>
is it because of " filteredCard ~= nil and " ?

EDIT: nevermind... I forgot Ascetism was maybe in play while testing! :oops:
gorem2k
 
Posts: 464
Joined: 01 Apr 2013, 04:21
Has thanked: 48 times
Been thanked: 33 times

Re: Card Creation Request Thread

Postby RiiakShiNal » 04 Jun 2013, 02:02

Your filter should not affect creatures at all, but if your ability is set with filter_zone="ZONE_IN_PLAY" then you can simplify the filter like this:
Code: Select all
<FILTER>
  return FilteredCard() ~= nil and FilteredCard() ~= Object() and EnchantmentsYouControl()
</FILTER>
EnchantmentsYouControl() is defined in FILTERS.LOL in Data_Core.wad (if you were wondering where I got that from, DotP2013 LOL files decoded).

"And"ing conditions together means that ALL "and"ed conditions must be true for the result to be true.

Edit: Just noticed your edit. #-o
RiiakShiNal
Programmer
 
Posts: 2189
Joined: 16 May 2011, 21:37
Has thanked: 75 times
Been thanked: 497 times

Re: Card Creation Request Thread

Postby sumomole » 04 Jun 2013, 02:48

drleg3nd wrote:hey guys is Phyrexian Altar and Paleoloth available ? couldnt find in search.thx
Attachments
cards.zip
(230.89 KiB) Downloaded 315 times
Last edited by sumomole on 04 Jun 2013, 07:29, edited 1 time in total.
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 drleg3nd » 04 Jun 2013, 03:51

hey sumo thx for the code but i dont know how to put this in xml lol
drleg3nd
 
Posts: 528
Joined: 14 May 2012, 20:05
Has thanked: 5 times
Been thanked: 30 times

Re: Card Creation Request Thread

Postby sumomole » 04 Jun 2013, 07:29

drleg3nd wrote:hey sumo thx for the code but i dont know how to put this in xml lol
ok
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 MC Brodie » 04 Jun 2013, 22:49

I am trying to code Riku of Two Reflections and I'm having problems with his copy instant/sorcery ability. Part of the problem is I don't understand the magic rules on how the card works. I have the came up with the following code and it works but I don't think it is right. First, I have it set up as an activated ability that can only be activated when the owner casts an instant/sorcery. I don't know if this is technically right but it works. I have his copy creature set up as a triggered ability that works when the owner casts a non-creature spell but I couldn't figure out how to get new targets from the copied instnat/sorcery. Secondly, the way I have card coded, you can continuously copy the spell if you have the mana. Again I don't know if this how the card is suppose to work or not. Any help is appreciated.

Code: Select all
  <ACTIVATED_ABILITY>
    <COST type="Mana" cost="{U}{R}" />
    <TARGET_DEFINITION id="0">
    local filter = Object():GetFilter()
    filter:Clear()
    filter:AddCardType( CARD_TYPE_INSTANT )
    filter:AddCardType( CARD_TYPE_SORCERY )
    filter:SetController( EffectController() )
    filter:SetZone( ZONE_STACK )
    filter:SetHint( HINT_NEUTRAL, EffectController() )
    </TARGET_DEFINITION>
    <TARGET_DETERMINATION>
    return AtLeastOneTargetFromDefinition(0)
    </TARGET_DETERMINATION>
    <PLAY_TIME_ACTION target_choosing="1">
    EffectController():ChooseTarget( 0, "CARD_QUERY_CHOOSE_SPELL_TO_COPY", EffectDC():Make_Targets(0) )
    </PLAY_TIME_ACTION>
    <RESOLUTION_TIME_ACTION>
    local target = EffectDC():Get_Targets(0):Get_CardPtr(0)
    if target ~= nil then
       EffectController():CopySpellWithNewTargets( target )
    end
    </RESOLUTION_TIME_ACTION>
  </ACTIVATED_ABILITY>
-----------------------------------------------------------------------
Song of the Day: 46 and 2 (cover)
MC Brodie
 
Posts: 310
Joined: 01 Jun 2013, 00:10
Has thanked: 44 times
Been thanked: 34 times

Re: Card Creation Request Thread

Postby BloodReyvyn » 04 Jun 2013, 23:32

I believe Riku has already been made, just in case you didn't know. ;)

I have been toiling for 3 days to get Urborg, Tomb of Yawgmoth up and working, since somewhere someone had mentioned it not possible to do correctly. Is there no way to add additional land types to lands or make them "count as" another land type?

I got this far with the code, which adds an activated ability to add one black to your mana pool. I only added that part because the additional land type wasn't showing up and I was making sure my filter was working correctly.

Code: Select all
<?xml version='1.0' encoding='UTF-8'?>
<CARD_V2>
  <FILENAME text="URBORG_TOMB_OF_YAWGMOTH_287330" />
  <CARDNAME text="URBORG_TOMB_OF_YAWGMOTH" />
  <TITLE>
    <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Urborg, Tomb of Yawgmoth]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Urborg, Tomb of Yawgmoth]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Urborg, Tomb of Yawgmoth]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Urborg, Tomb of Yawgmoth]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Urborg, Tomb of Yawgmoth]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[Urborg, Tomb of Yawgmoth]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[Urborg, Tomb of Yawgmoth]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[Urborg, Tomb of Yawgmoth]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[Urborg, Tomb of Yawgmoth]]></LOCALISED_TEXT>
  </TITLE>
  <MULTIVERSEID value="287330" />
  <ARTID value="A287330" />
  <ARTIST name="John Avon" />
  <CASTING_COST cost="" />
  <FLAVOURTEXT>
    <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[“Yawgmoth’s corpse is a wound in the universe. His foul blood seeps out, infecting the land with his final curse.”
Lord Windgrace]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[“Yawgmoth’s corpse is a wound in the universe. His foul blood seeps out, infecting the land with his final curse.”
Lord Windgrace]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[“Yawgmoth’s corpse is a wound in the universe. His foul blood seeps out, infecting the land with his final curse.”
Lord Windgrace]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[“Yawgmoth’s corpse is a wound in the universe. His foul blood seeps out, infecting the land with his final curse.”
Lord Windgrace]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[“Yawgmoth’s corpse is a wound in the universe. His foul blood seeps out, infecting the land with his final curse.”
Lord Windgrace]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[“Yawgmoth’s corpse is a wound in the universe. His foul blood seeps out, infecting the land with his final curse.”
Lord Windgrace]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[“Yawgmoth’s corpse is a wound in the universe. His foul blood seeps out, infecting the land with his final curse.”
Lord Windgrace]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[“Yawgmoth’s corpse is a wound in the universe. His foul blood seeps out, infecting the land with his final curse.”
Lord Windgrace]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[“Yawgmoth’s corpse is a wound in the universe. His foul blood seeps out, infecting the land with his final curse.”
Lord Windgrace]]></LOCALISED_TEXT>
  </FLAVOURTEXT>
  <SUPERTYPE metaname="Legendary" />
  <TYPE metaname="Land" />
  <EXPANSION value="V12" />
  <RARITY metaname="M" />
  <STATIC_ABILITY filter_zone="ZONE_IN_PLAY">
    <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Each land is a Swamp in addition to its other land types.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Each land is a Swamp in addition to its other land types.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Each land is a Swamp in addition to its other land types.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Each land is a Swamp in addition to its other land types.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Ogni terra è una Palude in aggiunta ai suoi altri tipi di terra.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[Each land is a Swamp in addition to its other land types.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[Each land is a Swamp in addition to its other land types.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[Each land is a Swamp in addition to its other land types.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[Each land is a Swamp in addition to its other land types.]]></LOCALISED_TEXT>
    <FILTER>
      return (FilteredCard() ~= nil and
      FilteredCard():GetCardType():Test( CARD_TYPE_LAND ) ~= 0)
    </FILTER>
    <CONTINUOUS_ACTION layer="4">
      if FilteredCard() ~= nil then
       FilteredCard():AddSubTypeTo( "LAND_TYPE_SWAMP", FilteredCard() )
      end
    </CONTINUOUS_ACTION>
    <CONTINUOUS_ACTION layer="6">
      if FilteredCard() ~= nil then
       FilteredCard():GetCurrentCharacteristics():GrantAbility(1)
      end
    </CONTINUOUS_ACTION>
  </STATIC_ABILITY>
  <MANA_ABILITY resource_id="1" immunity="0">
    <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[{T}: Add {B} toy your mana pool.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[{T}: Add {B} toy your mana pool.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[{T}: Add {B} toy your mana pool.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[{T}: Add {B} toy your mana pool.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[{T}: Add {B} toy your mana pool.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[{T}: Add {B} toy your mana pool.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[{T}: Add {B} toy your mana pool.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[{T}: Add {B} toy your mana pool.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[{T}: Add {B} toy your mana pool.]]></LOCALISED_TEXT>
    <COST type="TapSelf" />
    <PRODUCES amount="{B}" />
  </MANA_ABILITY>
</CARD_V2>
Here is code for Riku of Two Reflections:

Code: Select all
<?xml version='1.0'?>
<CARD_V2>
  <FILENAME text="RIKU_OF_TWO_REFLECTIONS_236469" />
  <CARDNAME text="RIKU_OF_TWO_REFLECTIONS" />
  <TITLE>
    <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Riku of Two Reflections]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Riku der Doppelspiegler]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Riku de los Dos Reflejos]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Riku aux deux reflets]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Riku dei Due Riflessi]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[二(ふた)つ反(はん)射(しゃ)のリクー]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[Riku of Two Reflections]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[Riku of Two Reflections]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[Riku of Two Reflections]]></LOCALISED_TEXT>
  </TITLE>
  <MULTIVERSEID value="236469" />
  <ARTID value="137535" />
  <ARTIST name="Izzy" />
  <CASTING_COST cost="{2}{U}{R}{G}" />
  <SUPERTYPE metaname="Legendary" />
  <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="Wizard" 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="CMD" />
  <RARITY metaname="M" />
  <POWER value="2" />
  <TOUGHNESS value="2" />
  <TRIGGERED_ABILITY>
    <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Whenever you cast an instant or sorcery spell, you may pay {U}{R}. If you do, copy that spell. You may choose new targets for the copy.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[À chaque fois que vous lancez un sort d’éphémère ou de rituel, vous pouvez payer {U}{R}. Si vous faites ainsi, copiez ce sort. Vous pouvez choisir de nouvelles cibles pour cette copie.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Immer wenn du einen Spontanzauber oder eine Hexerei wirkst, kannst du {U}{R} bezahlen. Falls du dies tust, kopiere diesen Zauberspruch. Du kannst neue Ziele für die Kopie bestimmen.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Siempre que lances un hechizo instantáneo o conjuro, puedes pagar {U}{R}. Si lo haces, copia ese hechizo. Puedes elegir nuevos objetivos para la copia.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Ogniqualvolta lanci una magia istantaneo o stregoneria, puoi pagare {U}{R}. Se lo fai, copia quella magia. Puoi scegliere nuovi bersagli per la copia.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[あなたがインスタント呪文かソーサリー呪文を1つ唱えるたび、あなたは{U}{R}を支払ってもよい。 そうした場合、その呪文をコピーする。 あなたはそのコピーの新しい対象を選んでもよい。]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[Whenever you cast an instant or sorcery spell, you may pay {U}{R}. If you do, copy that spell. You may choose new targets for the copy.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[Whenever you cast an instant or sorcery spell, you may pay {U}{R}. If you do, copy that spell. You may choose new targets for the copy.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[Whenever you cast an instant or sorcery spell, you may pay {U}{R}. If you do, copy that spell. You may choose new targets for the copy.]]></LOCALISED_TEXT>
    <TRIGGER value="SPELL_PLAYED" simple_qualifier="objectyoucontrol">
    return TriggerObject():GetCardType():Test( CARD_TYPE_INSTANT ) ~= 0 or TriggerObject():GetCardType():Test( CARD_TYPE_SORCERY ) ~= 0
    </TRIGGER>
    <COST type="mana" cost="{U}{R}" qualifier="conditional" />
    <RESOLUTION_TIME_ACTION conditional="if">
    EffectController():CopySpellWithNewTargets( TriggerObject() )
    </RESOLUTION_TIME_ACTION>
  </TRIGGERED_ABILITY>
  <TRIGGERED_ABILITY>
    <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Whenever another nontoken creature enters the battlefield under your control, you may pay {G}{U}. If you do, put a token that’s a copy of that creature onto the battlefield.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[À chaque fois qu’une autre créature non-jeton arrive sur le champ de bataille sous votre contrôle, vous pouvez payer {G}{U}. Si vous faites ainsi, mettez sur le champ de bataille un jeton qui est une copie de cette créature.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Immer wenn eine andere Kreatur, die kein Spielstein ist, unter deiner Kontrolle ins Spiel kommt, kannst du {G}{U} bezahlen. Falls du dies tust, bringe einen Spielstein ins Spiel, der eine Kopie dieser Kreatur ist.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Siempre que otra criatura que no sea ficha entre al campo de batalla bajo tu control, puedes pagar {G}{U}. Si lo haces, pon en el campo de batalla una ficha que es una copia de esa criatura.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Ogniqualvolta un’altra creatura non pedina entra nel campo di battaglia sotto il tuo controllo, puoi pagare {G}{U}. Se lo fai, metti sul campo di battaglia una pedina che è una copia di quella creatura.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[他のトークンでないクリーチャーが1体あなたのコントロール下で戦場に出るたび、あなたは{G}{U}を支払ってもよい。 そうした場合、そのクリーチャーのコピーであるトークンを1つ戦場に出す。]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[Whenever another nontoken creature enters the battlefield under your control, you may pay {G}{U}. If you do, put a token that’s a copy of that creature onto the battlefield.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[Whenever another nontoken creature enters the battlefield under your control, you may pay {G}{U}. If you do, put a token that’s a copy of that creature onto the battlefield.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[Whenever another nontoken creature enters the battlefield under your control, you may pay {G}{U}. If you do, put a token that’s a copy of that creature onto the battlefield.]]></LOCALISED_TEXT>
    <TRIGGER value="ZONECHANGE_END" to_zone="ZONE_IN_PLAY" simple_qualifier="objectyoucontrol">
    return TriggerObject() ~= Object() and TriggerObject():GetCardType():Test( CARD_TYPE_CREATURE ) ~= 0 and TriggerObject():IsToken() == 0
    </TRIGGER>
    <COST type="mana" cost="{G}{U}" qualifier="conditional" />
    <RESOLUTION_TIME_ACTION conditional="if">
    if TriggerObject() ~= nil then
       MTG():PutTokensIntoPlayFromSpec( TriggerObject():GetSpec(), 1, EffectController() )
    end
    </RESOLUTION_TIME_ACTION>
  </TRIGGERED_ABILITY>
  <SFX text="COMBAT_PLASMA_LARGE_ATTACK" power_boundary_min="4" power_boundary_max="-1" />
  <SFX text="COMBAT_PLASMA_SMALL_ATTACK" power_boundary_min="1" power_boundary_max="3" />
  <AI_BASE_SCORE score="1800" zone="ZONE_IN_PLAY" />
</CARD_V2>
As far as the rules go, the ability only would trigger once to you playing the spell from your hand. Copies are never "cast" and are simply put onto the stack, which is why copies of spells won't trigger Storm, thank god.
"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 MC Brodie » 04 Jun 2013, 23:38

Whoops I see that now. I can't read. I didn't see it there when I first searched the thread. Now I get to compare the right way vs. the wrong way in how to code a card.
-----------------------------------------------------------------------
Song of the Day: 46 and 2 (cover)
MC Brodie
 
Posts: 310
Joined: 01 Jun 2013, 00:10
Has thanked: 44 times
Been thanked: 34 times

Re: Card Creation Request Thread

Postby BloodReyvyn » 04 Jun 2013, 23:59

Also, I am having issues with Killing Wave, in where if you just hit the cancel button, you neither have to sacrifice creatures or pay life for keeping them... which apparently the AI agrees is a good idea, making it kind of useless. lol

The code is actually from DECK_1400_CORE_ST. I swear it worked the first time I used it, but not since.

Code: Select all
    <RESOLUTION_TIME_ACTION repeating="1">
    local n = MTG():GetActionRepCount()
    local x = GetObjectX()
    local num_players = MTG():GetNumberOfPlayers()
    local playerindex = n/2
    local parity = n % 2
    local player = MTG():GetNthPlayer(playerindex)
    local filter = Object():GetFilter()
    MTG():ClearFilterMarkedObjectsInZone( ZONE_IN_PLAY )
    filter:Clear()
    filter:NotTargetted()
    filter:SetZone( ZONE_IN_PLAY )
    filter:AddCardType( CARD_TYPE_CREATURE )
    if player ~= nil and n &lt; num_players*2 then
       filter:SetController(player)
       local max_targets = filter:Count()
       local max_rescues = player:GetLifeTotal() / x
       if max_rescues &gt; max_targets then
          max_rescues = max_targets
       end
       local min_targets = max_targets - max_rescues
       if parity == 0 then
          if min_targets &gt; 0 then
             player:SetTargetCount(min_targets)
             for i=0,min_targets-1 do
                player:SetTargetPrompt( i, "CARD_QUERY_CHOOSE_CREATURE_TO_SACRIFICE" )
             end
             player:ChooseTargets( NO_VALIDATION, EffectDC():Make_Targets(n) )
          end
       else
          if max_rescues &gt; 0 then
             if min_targets &gt; 0 and EffectDC():Get_Targets(n-1) ~= nil then
                local filter_count = filter:EvaluateObjects()
                for i=0,filter_count-1 do
                   local candidate = filter:GetNthEvaluatedObject(i)
                   local already_targetted = 0
                   for j=0,min_targets-1 do
                      if EffectDC():Get_Targets(n-1):Get_CardPtr(j) == candidate then
                         already_targetted = 1
                         break
                      end
                   end
                   if already_targetted == 0 then
                      candidate:MarkForFilter()
                   end
                end
                filter:SetMarkedObjectsOnly()
             end
             filter:SetHint( HINT_ENEMY, player )
             player:SetTargetCount(max_rescues)
             for i=0,max_rescues-1 do
                player:SetTargetPrompt( i, "CARD_QUERY_CHOOSE_CREATURE_TO_SACRIFICE" )
             end
             player:ChooseTargetsWithFlags( NO_VALIDATION, EffectDC():Make_Targets(n), QUERY_FLAG_CAN_BE_FINISHED_EARLY + QUERY_FLAG_CAN_BE_FINISHED_EARLY_FOR_AI_AS_WELL )
          end
       end
       return true
    else
       local player_max_targets = {}
       local player_rescued = {}
       for i=0,num_players-1 do
          player = MTG():GetNthPlayer(i)
          filter:SetController(player)
          player_max_targets[i] = filter:Count()
          player_rescued[i] = player_max_targets[i]
       end
       local target_array = {}
       local target_index = 0
       for i=0,n-1 do
          local targetDC = EffectDC():Get_Targets(i)
          if targetDC ~= nil then
             local player_index = i/2
             for j=0,player_max_targets[player_index]-1 do
                local target = targetDC:Get_CardPtr(j)
                if target ~= nil then
                   target_array[target_index] = target
                   target_index = target_index + 1
                   player_rescued[player_index] = player_rescued[player_index] - 1
                end
             end
             
          end
       end
       for i=0,num_players-1 do
          MTG():GetNthPlayer(i):LoseLife( x*player_rescued[i] )
       end
       for i=0,target_index-1 do
          target_array[target_index]:Sacrifice( target_array[target_index]:GetController() )
       end
    end
    return false
    </RESOLUTION_TIME_ACTION>
"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 29 guests

Main Menu

User Menu

Our Partners


Who is online

In total there are 29 users online :: 0 registered, 0 hidden and 29 guests (based on users active over the past 10 minutes)
Most users ever online was 7967 on 09 Sep 2025, 23:08

Users browsing this forum: No registered users and 29 guests

Login Form