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 gorem2k » 31 May 2013, 04:59

Ink-Treader Nephilim:
Whenever a player casts an instant or sorcery spell, if that spell targets only Ink-Treader Nephilim, copy the spell for each other creature that spell could target. Each copy targets a different one of those creatures.
ok so copies don't count. :?

that would've been wicked.
so, your card is working fine. tnks!
gorem2k
 
Posts: 464
Joined: 01 Apr 2013, 04:21
Has thanked: 48 times
Been thanked: 33 times

Re: Card Creation Request Thread

Postby BloodReyvyn » 31 May 2013, 07:33

I have been trying to code Omen Machine, but it still lets players draw the exiled cards... :|

Code: Select all
<?xml version='1.0' encoding='UTF-8'?>
<CARD_V2>
  <FILENAME text="OMEN_MACHINE_233042" />
  <CARDNAME text="OMEN_MACHINE" />
  <TITLE>
    <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Omen Machine]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Machine à présages]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Máquina de presagios]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Omenmaschine]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Macchina dei Presagi]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[前兆の機械]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[Omen Machine]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[Машина Предзнаменования]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[Máquina do Agouro]]></LOCALISED_TEXT>
  </TITLE>
  <MULTIVERSEID value="233042" />
  <ARTID value="A233042" />
  <ARTIST name="David Rapoza" />
  <CASTING_COST cost="{6}" />
  <TYPE metaname="Artifact" />
  <EXPANSION value="NPH" />
  <RARITY metaname="R" />
  <STATIC_ABILITY>
    <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Players can’t draw cards.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Les joueurs ne peuvent pas piocher de cartes.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Los jugadores no pueden robar cartas.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Spieler können keine Karten ziehen.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[I giocatori non possono pescare carte.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[プレイヤーはカードを引けない。]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[Players can’t draw cards.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[Игроки не могут брать карты.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[Os jogadores não podem comprar cards.]]></LOCALISED_TEXT>
    <TRIGGER value="DREW_CARD" simple_qualifier="controller">
         override = 1
         return true
    </TRIGGER>
  </STATIC_ABILITY>
  <TRIGGERED_ABILITY auto_skip="1" filter_zone="ZONE_IN_PLAY">
    <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[At the beginning of each player’s draw step, that player exiles the top card of his or her library. If it’s a land card, the player puts it onto the battlefield. Otherwise, the player casts it without paying its mana cost if able.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Au début de l’étape de pioche de chaque joueur, ce joueur exile la première carte de sa bibliothèque. Si c’est une carte de terrain, le joueur la met sur le champ de bataille. Sinon, le joueur la lance sans payer son coût de mana si possible.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Al comienzo del paso de robar de cada jugador, ese jugador exilia la primera carta de su biblioteca. Si es una carta de tierra, la pone en el campo de batalla. De lo contrario, ese jugador la lanza sin pagar su coste de maná si puede.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Zu Beginn des Ziehsegments jedes Spielers schickt dieser die oberste Karte seiner Bibliothek ins Exil. Falls diese Karte ein Land ist, bringt der Spieler sie ins Spiel. Sonst wirkt der Spieler sie, ohne ihre Manakosten zu bezahlen, falls möglich.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[All’inizio dell’acquisizione di ogni giocatore, quel giocatore esilia la prima carta del suo grimorio. Se è una carta terra, il giocatore la mette sul campo di battaglia. Altrimenti, il giocatore la lancia senza pagare il suo costo di mana, se può farlo.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[各プレイヤーのドロー・ステップの開始時に、そのプレイヤーは自分のライブラリーの一番上のカードを追放する。 それが土地カードである場合、そのプレイヤーはそれを戦場に出す。 そうでない場合、そのプレイヤーは可能ならそれを、それのマナ・コストを支払うことなく唱える。]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[At the beginning of each player’s draw step, that player exiles the top card of his or her library. If it’s a land card, the player puts it onto the battlefield. Otherwise, the player casts it without paying its mana cost if able.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[В начале шага взятия карты каждого игрока тот игрок изгоняет верхнюю карту своей библиотеки. Если это карта земли, игрок кладет ее на поле битвы. В противном случае игрок разыгрывает ее без уплаты ее мана-стоимости, если это возможно.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[No início da etapa de compra de cada jogador, aquele jogador exila o card do topo do próprio grimório. Se for um card de terreno, o jogador o coloca no campo de batalha. Do contrário, o jogador o conjura sem pagar seu custo de mana se estiver apto.]]></LOCALISED_TEXT>
    <TRIGGER value="BEGINNING_OF_STEP">
      return ( TriggerPlayer():MyTurn() ~= 0 ) and ( MTG():GetStep() == STEP_DRAW )
    </TRIGGER>
    <RESOLUTION_TIME_ACTION>
      local player = TriggerPlayer()
      if player ~= nil then
         local card = player:Library_GetNth(0)
         if card == nil then
          return false
         end
         local chest = EffectDC():Get_Chest(0)
         if (chest == nil) then
          chest = EffectDC():Make_Chest(0)
         end
         card:RemoveFromGame()
         if card ~= nil then
          card:Set_CardPtr(0, card)
         end
         if card:GetCardType():Test( CARD_TYPE_LAND ) == 1 then
          card:PutIntoPlay( player )
         else
        player:SetTargetPrompt( 0, "CARD_QUERY_CHOOSE_CARD_TO_PLAY" )
          player:ChooseTargetsFromDCWithFlags( NO_VALIDATION, browser, EffectDC():Make_Targets(0), QUERY_FLAG_CAN_BE_FINISHED_EARLY + QUERY_FLAG_CAN_BE_FINISHED_EARLY_FOR_AI_AS_WELL )
               card:PlayFreeFromAnywhere( player )
          end
    end
    </RESOLUTION_TIME_ACTION>
</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."
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 » 31 May 2013, 07:56

BloodReyvyn wrote:I have been trying to code Omen Machine, but it still lets players draw the exiled cards
The first ability:
1. TRIGGER is used in TRIGGERED_ABILITY, not STATIC_ABILITY.
2. override = true should be used with internal="1" and pre_trigger="1", and because this effect isn't a instead effect, so you need use priority="20" to ensure it resolves before ohter instead effect.

the second ability | Open
Code: Select all
  <TRIGGERED_ABILITY>
    <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[At the beginning of each player’s draw step, that player exiles the top card of his or her library. If it’s a land card, the player puts it onto the battlefield. Otherwise, the player casts it without paying its mana cost if able.]]></LOCALISED_TEXT>
    <TRIGGER value="BEGINNING_OF_STEP">
    return ( TriggerPlayer():MyTurn() ~= 0 ) and  ( MTG():GetStep() == STEP_DRAW )
    </TRIGGER>
    <RESOLUTION_TIME_ACTION>
    local player = TriggerPlayer()
    if player ~= nil then
      local card = player:Library_GetTop()
      if card ~= nil then
         EffectDC():Set_CardPtr(0, card)
         EffectDC():Protect_CardPtr(0)
         card:GuidedReveal( ZONE_LIBRARY , ZONE_REMOVED_FROM_GAME )
         card:RemoveFromGame()
      end
    end
    </RESOLUTION_TIME_ACTION>
    <RESOLUTION_TIME_ACTION>
    local player = TriggerPlayer()
    local card = EffectDC():Get_CardPtr(0)
    if player ~= nil and card ~= nil then
      if card:GetCardType():Test( CARD_TYPE_LAND ) ~= 0 then
        card:PutIntoPlay( player )
       elseif card:CanBePlayed( player ) then
        card:PlayFreeFromAnywhere( player )
      end
    end
    </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 thefiremind » 31 May 2013, 08:39

sumomole wrote:Perhaps become target doesn't work for copy spell that doesn't need to choose new target
That's exactly what I think, but I don't think that it's correct rule-wise, it's just an engine limitation. Well, I think I could make Ink-Treader Nephilim itself fire the missing BECAME_TARGET triggers... let me try.

EDIT: OK, now it's better, but still not perfect. You can get the new Ink-Treader Nephilim here, but it still won't work with Wild Defiance because I can't set the SecondaryObject from the FireTrigger function. It works with Petrahydrox, though. :lol: If someone finds a better way to code it, please let me know.

EDIT 2: About sumomole's Livewire Lash, I don't know if it's part of the "test", but there's something slightly wrong: it says "target of a spell", not "target of an instant or sorcery spell". This excludes Auras, for example. You should check SecondaryObject():GetZone() == ZONE_STACK, this is the check for spells (as hinted by Emrakul, the Aeons Torn with its protection). Actually I don't know if this counts abilities as well... they are on the stack even if they are invisible. It would need testing.
Last edited by thefiremind on 31 May 2013, 09:16, 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 BloodReyvyn » 31 May 2013, 09:15

Still a few problems with Omen Machine.

1) Players still can draw cards after the exile > play effect takes place.

2) I am pairing this with Teferi, Mage of Zhalfir for a hard lock combo deck, but opponents are able to play the exiled spells, despite the fact that they shouldn't be able due to Teferi's sorcery-speed restriction.

I probably put something in the wrong place, but I'm burnt so here's the code as it exists now. I'll check before work in the morning. G'night all.

Code: Select all
<?xml version='1.0' encoding='UTF-8'?>
<CARD_V2>
  <FILENAME text="OMEN_MACHINE_233042" />
  <CARDNAME text="OMEN_MACHINE" />
  <TITLE>
    <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Omen Machine]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Machine à présages]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Máquina de presagios]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Omenmaschine]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Macchina dei Presagi]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[前兆の機械]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[Omen Machine]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[Машина Предзнаменования]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[Máquina do Agouro]]></LOCALISED_TEXT>
  </TITLE>
  <MULTIVERSEID value="233042" />
  <ARTID value="A233042" />
  <ARTIST name="David Rapoza" />
  <CASTING_COST cost="{6}" />
  <TYPE metaname="Artifact" />
  <EXPANSION value="NPH" />
  <RARITY metaname="R" />
  <TRIGGERED_ABILITY auto_skip="1" filter_zone="ZONE_IN_PLAY">
    <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Players can’t draw cards.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Les joueurs ne peuvent pas piocher de cartes.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Los jugadores no pueden robar cartas.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Spieler können keine Karten ziehen.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[I giocatori non possono pescare carte.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[プレイヤーはカードを引けない。]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[Players can’t draw cards.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[Игроки не могут брать карты.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[Os jogadores não podem comprar cards.]]></LOCALISED_TEXT>
    <TRIGGER value="DREW_CARD" simple_qualifier="controller">
         internal="1"
         pre_trigger="1"
         priority="20"
         override = 1
         return true
    </TRIGGER>
  </TRIGGERED_ABILITY>
  <TRIGGERED_ABILITY>
    <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[At the beginning of each player’s draw step, that player exiles the top card of his or her library. If it’s a land card, the player puts it onto the battlefield. Otherwise, the player casts it without paying its mana cost if able.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Au début de l’étape de pioche de chaque joueur, ce joueur exile la première carte de sa bibliothèque. Si c’est une carte de terrain, le joueur la met sur le champ de bataille. Sinon, le joueur la lance sans payer son coût de mana si possible.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Al comienzo del paso de robar de cada jugador, ese jugador exilia la primera carta de su biblioteca. Si es una carta de tierra, la pone en el campo de batalla. De lo contrario, ese jugador la lanza sin pagar su coste de maná si puede.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Zu Beginn des Ziehsegments jedes Spielers schickt dieser die oberste Karte seiner Bibliothek ins Exil. Falls diese Karte ein Land ist, bringt der Spieler sie ins Spiel. Sonst wirkt der Spieler sie, ohne ihre Manakosten zu bezahlen, falls möglich.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[All’inizio dell’acquisizione di ogni giocatore, quel giocatore esilia la prima carta del suo grimorio. Se è una carta terra, il giocatore la mette sul campo di battaglia. Altrimenti, il giocatore la lancia senza pagare il suo costo di mana, se può farlo.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[各プレイヤーのドロー・ステップの開始時に、そのプレイヤーは自分のライブラリーの一番上のカードを追放する。 それが土地カードである場合、そのプレイヤーはそれを戦場に出す。 そうでない場合、そのプレイヤーは可能ならそれを、それのマナ・コストを支払うことなく唱える。]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[At the beginning of each player’s draw step, that player exiles the top card of his or her library. If it’s a land card, the player puts it onto the battlefield. Otherwise, the player casts it without paying its mana cost if able.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[В начале шага взятия карты каждого игрока тот игрок изгоняет верхнюю карту своей библиотеки. Если это карта земли, игрок кладет ее на поле битвы. В противном случае игрок разыгрывает ее без уплаты ее мана-стоимости, если это возможно.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[No início da etapa de compra de cada jogador, aquele jogador exila o card do topo do próprio grimório. Se for um card de terreno, o jogador o coloca no campo de batalha. Do contrário, o jogador o conjura sem pagar seu custo de mana se estiver apto.]]></LOCALISED_TEXT>
    <TRIGGER value="BEGINNING_OF_STEP">
    return ( TriggerPlayer():MyTurn() ~= 0 ) and  ( MTG():GetStep() == STEP_DRAW )
    </TRIGGER>
    <RESOLUTION_TIME_ACTION>
    local player = TriggerPlayer()
    if player ~= nil then
      local card = player:Library_GetTop()
      if card ~= nil then
         EffectDC():Set_CardPtr(0, card)
         EffectDC():Protect_CardPtr(0)
         card:GuidedReveal( ZONE_LIBRARY , ZONE_REMOVED_FROM_GAME )
         card:RemoveFromGame()
      end
    end
    </RESOLUTION_TIME_ACTION>
    <RESOLUTION_TIME_ACTION>
    local player = TriggerPlayer()
    local card = EffectDC():Get_CardPtr(0)
    if player ~= nil and card ~= nil then
      if card:GetCardType():Test( CARD_TYPE_LAND ) ~= 0 then
        card:PutIntoPlay( player )
       elseif card:CanBePlayed( player ) then
        card:PlayFreeFromAnywhere( player )
      end
    end
    </RESOLUTION_TIME_ACTION>
</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."
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 » 31 May 2013, 09:20

BloodReyvyn wrote:Since this is the Request thread, I am going to request a card for a change: Sisters of Stone Death.
Search the old post you will find Sisters of Stone Death can't be coded. :(

BloodReyvyn wrote:1) Players still can draw cards after the exile > play effect takes place.
Code: Select all
  <TRIGGERED_ABILITY internal="1" pre_trigger="1" priority="20">
    <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Players can’t draw cards.]]></LOCALISED_TEXT>
    <TRIGGER value="DREW_CARD">
    override = true
    return true
    </TRIGGER>
  </TRIGGERED_ABILITY>
BloodReyvyn wrote:Awesome, that works great. :) I ended up using "ZONE_ANY" because the AI was in fact able to still play cards with flashback at instant speed.
Teferi, Mage of Zhalfir (w/ Art): https://www.dropbox.com/s/z3uew39gf61i9 ... ip?v=0rc-s
I find some error from your Teferi, Mage of Zhalfir, and I think the third ability of it is simpler to use PLAYER_CHARACTERISTIC_CANT_CAST_SPELLS, of course the effect should be same. :lol:
Teferi, Mage of Zhalfir | Open
Code: Select all
  <STATIC_ABILITY active_zone="ZONE_ANY">
    <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Flash]]></LOCALISED_TEXT>
    <CONTINUOUS_ACTION>
    local characteristics = Object():GetCurrentCharacteristics()
    characteristics:Characteristic_Set( CHARACTERISTIC_FLASH, 1 )
    </CONTINUOUS_ACTION>
  </STATIC_ABILITY>
  <STATIC_ABILITY filter_zone="ZONE_ANY">
    <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Creature cards you own that aren’t on the battlefield have flash.]]></LOCALISED_TEXT>
    <FILTER>
    local filteredCard = FilteredCard()
    local objectPlayer = Object():GetController()
    return ((filteredCard ~= nil) and  (filteredCard:GetOwner() == objectPlayer) and (filteredCard:GetCardType():Test( CARD_TYPE_CREATURE ) ~= 0) and (filteredCard:GetZone() ~= (ZONE_IN_PLAY)))
    </FILTER>
    <CONTINUOUS_ACTION layer="6">
    if FilteredCard() ~= nil then
       local characteristics = FilteredCard():GetCurrentCharacteristics()
       if characteristics ~= nil then
          characteristics:Characteristic_Set( CHARACTERISTIC_FLASH, 1 )
       end
    end
    </CONTINUOUS_ACTION>
  </STATIC_ABILITY>
  <STATIC_ABILITY filter_zone="ZONE_PLAYER">
    <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Each opponent can cast spells only any time he or she could cast a sorcery.]]></LOCALISED_TEXT>
    <FILTER>
    return Opponents() and FilteredPlayer():SorceryTime() == 0
    </FILTER>
    <CONTINUOUS_ACTION layer="8">
    if FilteredPlayer() ~= nil then
      local characteristics = FilteredPlayer():GetCurrentCharacteristics()
      characteristics:Bool_Set( PLAYER_CHARACTERISTIC_CANT_CAST_SPELLS, 1 )
    end
    </CONTINUOUS_ACTION>
  </STATIC_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 thefiremind » 31 May 2013, 09:43

sumomole wrote:I think the third ability of it is simpler to use PLAYER_CHARACTERISTIC_CANT_CAST_SPELLS, of course the effect should be same. :lol:
That's my fault, I often forget about that characteristic... #-o
< 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 sumomole » 31 May 2013, 09:53

thefiremind wrote:EDIT 2: About sumomole's Livewire Lash, I don't know if it's part of the "test", but there's something slightly wrong: it says "target of a spell", not "target of an instant or sorcery spell". This excludes Auras, for example. You should check SecondaryObject():GetZone() == ZONE_STACK, this is the check for spells (as hinted by Emrakul, the Aeons Torn with its protection). Actually I don't know if this counts abilities as well... they are on the stack even if they are invisible. It would need testing.
Yes, I change TRIGGER_BECAME_TARGET to TRIGGER_TARGETS_CHOSEN, and because it just for test with Ink-Treader Nephilim, so I limit it to instant or sorcery. I will del that, and this is my Livewire Lash. Please see if there is anything wrong? :)
Attachments
Livewire Lash.zip
(107.49 KiB) Downloaded 365 times
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 thefiremind » 31 May 2013, 10:08

I think you made a good set of conditions for SecondaryObject, but I can't really understand what you are doing on this card and on Wild Defiance with all those ObjectDC registers... :?
< 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 sumomole » 31 May 2013, 11:15

thefiremind wrote:I think you made a good set of conditions for SecondaryObject, but I can't really understand what you are doing on this card and on Wild Defiance with all those ObjectDC registers... :?
Because TRIGGER_BECAME_TARGET has a bug, if you use Flames of the Firebrand to target Ashenmoor Liege three times, you will lose 12 life. :shock:
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 thefiremind » 31 May 2013, 11:22

sumomole wrote:
thefiremind wrote:I think you made a good set of conditions for SecondaryObject, but I can't really understand what you are doing on this card and on Wild Defiance with all those ObjectDC registers... :?
Because TRIGGER_BECAME_TARGET has a bug, if you use Flames of the Firebrand to target Ashenmoor Liege three times, you will lose 12 life. :shock:
Uhm... I had to think about it for a moment, but yeah, that's a bug... and it affects 2 official cards, so those developers really didn't like to work too much... :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 sumomole » 31 May 2013, 11:50

thefiremind wrote:
sumomole wrote:
thefiremind wrote:I think you made a good set of conditions for SecondaryObject, but I can't really understand what you are doing on this card and on Wild Defiance with all those ObjectDC registers... :?
Because TRIGGER_BECAME_TARGET has a bug, if you use Flames of the Firebrand to target Ashenmoor Liege three times, you will lose 12 life. :shock:
Uhm... I had to think about it for a moment, but yeah, that's a bug... and it affects 2 official cards, so those developers really didn't like to work too much... :lol:
These two cards are coded in last summer, now I think we can use DuelDataChest to instead of ObjectDC, just like the code of Vorel of the Hull Clade.
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 CrazyJawas » 01 Jun 2013, 13:59

Hey guys,

I had been watching Multieyemeteors videos on youtube about modded decks and decided to give it a try. I've managed to make some basic cards but i'm looking for a bit of help with one i'm working on just now. I was trying to make Hidden Spider but I couldn't see a way to change a card's primary type, in this case changing an enchantment to a creature. Even if I could remove it's original type would be enough. I've got the trigger working fine at the moment but if I just add the creature type it make this horrible creature/enchantment compound card which seems to crash the game. Do you have any advice on how I could get this to work?

Thanks
CrazyJawas
 
Posts: 3
Joined: 01 Jun 2013, 13:47
Has thanked: 2 times
Been thanked: 0 time

Re: Card Creation Request Thread

Postby thefiremind » 01 Jun 2013, 14:18

CrazyJawas wrote:I was trying to make Hidden Spider but I couldn't see a way to change a card's primary type, in this case changing an enchantment to a creature. Even if I could remove it's original type would be enough. I've got the trigger working fine at the moment but if I just add the creature type it make this horrible creature/enchantment compound card which seems to crash the game. Do you have any advice on how I could get this to work?
I'm not sure if it works since some of the functions that mess with types/sub-types/supertypes aren't accessible, but the way to do that should be:
Code: Select all
    <CONTINUOUS_ACTION layer="3">
    local source = EffectSource()
    if source ~= nil then
       local characteristics = source:GetCurrentCharacteristics()
       characteristics:CardType_GetWritable(source):Clear()
       characteristics:CardType_GetWritable(source):Add( CARD_TYPE_CREATURE, source )
    end
    </CONTINUOUS_ACTION>
The doubt is whether Clear() is accessible for card types or not.

Anyway you'll have to deal with another problem: CHARACTERISTIC_FLYING isn't enabled when the spell is on the stack, so you can't check if a spell has flying. The only way to do that would be to search the spell's card name in a list of creature cards with flying... but that list would be huuuuuge. :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 CrazyJawas » 01 Jun 2013, 14:31

Thanks thefiremind, thats great.

But yeah i've misread that card, the trigger isn't as easy as I thought. I had just been doing it when it came into play but I suppose that's wrong.

Code: Select all
<TRIGGER value="ZONECHANGE_END" to_zone="ZONE_IN_PLAY">
    return (TriggerObject() ~= Object() and TriggerObject():GetCardType():Test( CARD_TYPE_CREATURE ) ~= 0 and TriggerObject():GetCurrentCharacteristics():Characteristic_Get( CHARACTERISTIC_FLYING ) ~= 0)
   </TRIGGER>
CrazyJawas
 
Posts: 3
Joined: 01 Jun 2013, 13:47
Has thanked: 2 times
Been thanked: 0 time

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