It is currently 26 Jun 2025, 18:29
   
Text Size

Formal Request Thread

Moderator: CCGHQ Admins

Re: Formal Request Thread

Postby Xander9009 » 16 Jul 2013, 07:32

sumomole wrote:Mybe it's characteristics:GrantAbility(colour). And LoseAllAbilities and GrantAbility should in layer="6". And grant ability should only use for nonbasic land.
I didn't know that simply giving the land a certain subtype would grant the mana ability automatically. That explains why the color changing and mana production were working even though it was giving errors. The LoseAllAbilities seemed to be working. Nonetheless, I moved it to its own layer 6 block. As for "characteristics:GrantAbility(colour)" I though it must be working since the mana was being produced correctly, so I figured the parent:grantability was working (even thought I should have known better). Working with no errors now. Thank you :)

I suppose in case anyone needs it for something similar, here's the working code:
Convincing Mirage | Open
Code: Select all
<?xml version='1.0' encoding='UTF-8'?>
<CARD_V2 ExportVersion="1">
  <FILENAME text="CONVINCING_MIRAGE_909190161" />
  <CARDNAME text="CONVINCING_MIRAGE" />
  <TITLE>
    <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Convincing Mirage]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Mirage convaincant]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Espejismo convincente]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Überzeugendes Trugbild]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Miraggio Convincente]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[見紛う蜃気楼]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[Convincing Mirage]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[Убедительный Мираж]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[Miragem Convincente]]></LOCALISED_TEXT>
  </TITLE>
  <MULTIVERSEID value="909190161" />
  <ARTID value="909190161" />
  <ARTIST name="Ryan Pancoast" />
  <CASTING_COST cost="{1}{U}" />
  <FLAVOURTEXT>
    <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[“Where are we? You must learn to ask more useful questions than that.”]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[« Où sommes-nous ? Tu dois apprendre à poser des questions plus utiles. »]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[“¿Dónde estamos? Debes aprender a hacer preguntas más útiles que esa.”]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[„Wo wir sind? Du musst lernen, sinnvollere Fragen zu stellen.”]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[“Dove siamo? Devi imparare a fare domande più utili di questa.”]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[「ここはどこだ、だって?  もっと意味のある質問をしてくれよ。」]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[“Where are we? You must learn to ask more useful questions than that.”]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[«Где мы? Ты должен научиться задавать более полезные вопросы».]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[“Onde estamos? Você deve aprender a fazer perguntas mais úteis que esta.”]]></LOCALISED_TEXT>
  </FLAVOURTEXT>
  <TYPE metaname="Enchantment" />
  <SUB_TYPE metaname="Aura" />
  <EXPANSION value="M10" />
  <RARITY metaname="C" />
  <SPELL_ABILITY attach_definition="0">
      <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Enchant land]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Enchanter : terrain]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Encantar tierra.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Landverzauberung]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Incanta terra]]></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[Encantar terreno]]></LOCALISED_TEXT>
      <TARGET tag="CARD_QUERY_CHOOSE_LAND_TO_ENCHANT" definition="0" compartment="0" count="1" />
      <TARGET_DEFINITION id="0">
         local filter = ClearFilter()
         filter:Add( FE_TYPE, OP_IS, CARD_TYPE_LAND )
      </TARGET_DEFINITION>
      <RESOLUTION_TIME_ACTION>
         local target = EffectDC():Get_Targets(0):Get_CardPtr(0)
         if ((target ~= nil) and (EffectSource() ~= nil)) then
            EffectSource():Attach( target )
         end
      </RESOLUTION_TIME_ACTION>
      <AI_SIMPLIFIED_TARGETING compartment="0" hint="HINT_NEUTRAL" />
   </SPELL_ABILITY>
   <TRIGGERED_ABILITY replacement_query="1" linked_ability_group="1" active_zone="ZONE_TRANSITION">
    <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[As Convincing Mirage enters the battlefield, choose a basic land type.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Au moment où le Mirage convaincant arrive sur le champ de bataille, choisissez un type de terrain de base.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[En cuanto el Espejismo convincente entre al campo de batalla, elige un tipo de tierra básica.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Sowie das Überzeugende Trugbild ins Spiel kommt, bestimme einen Standardlandtyp.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Mentre il Miraggio Convincente entra nel campo di battaglia, scegli un tipo di terra base.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[見紛う蜃気楼が戦場に出るに際し、基本土地タイプを1つ選ぶ。]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[As Convincing Mirage enters the battlefield, choose a basic land type.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[При выходе Убедительного Миража на поле битвы, выберите тип базовой земли.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[Conforme Miragem Convincente entra no campo de batalha, escolha um tipo de terreno básico.]]></LOCALISED_TEXT>
   <TRIGGER value="ZONECHANGE_TRANSITION" simple_qualifier="self" to_zone="ZONE_BATTLEFIELD" from_zone="ZONE_ANY" />
   <RESOLUTION_TIME_ACTION>
    EffectController():ChooseColour( "CARD_QUERY_CHOOSE_COLOUR", true )
    </RESOLUTION_TIME_ACTION>
    <RESOLUTION_TIME_ACTION>
    LinkedDC():Set_Int(0, GetChosenColour() )
    </RESOLUTION_TIME_ACTION>
   </TRIGGERED_ABILITY>
  <STATIC_ABILITY linked_ability_group="1">
    <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Enchanted land is the chosen type.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Le terrain enchanté est du type choisi.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[La tierra encantada es del tipo elegido.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Das verzauberte Land ist jetzt ein Land dieses Typs.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[La terra incantata è del tipo scelto.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[エンチャントされている土地は、選ばれたタイプである。]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[Enchanted land is the chosen type.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[Зачарованная земля является землей выбранного типа.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[O terreno encantado é do tipo escolhido.]]></LOCALISED_TEXT>
   <CONTINUOUS_ACTION layer="4">
    local parent = EffectSource():GetParent()
   local colour = LinkedDC():Get_Int(0)
    if parent ~= nil then
      if colour ~= nil then
         local characteristics = parent:GetCurrentCharacteristics()
         local subtype = characteristics:SubType_GetWritable()
         subtype:ClearAllOfType( CARD_TYPE_LAND )
         if colour == 1 then
            subtype:Add( LAND_TYPE_PLAINS )
         elseif colour == 2 then
            subtype:Add( LAND_TYPE_ISLAND )
         elseif colour == 3 then
            subtype:Add( LAND_TYPE_SWAMP )
         elseif colour == 4 then
            subtype:Add( LAND_TYPE_MOUNTAIN )
         else
            subtype:Add( LAND_TYPE_FOREST )
         end

      end
    end
    </CONTINUOUS_ACTION>
   <CONTINUOUS_ACTION layer="6">
   local colour = LinkedDC():Get_Int(0)
   local characteristics = EffectSource():GetParent():GetCurrentCharacteristics()
   if colour ~= nil then
      if characteristics ~= nil then
         characteristics:LoseAllAbilities()

      end
   end
   </CONTINUOUS_ACTION>
  </STATIC_ABILITY>
</CARD_V2>
_______________________________
Community Wad - Community Wad Website - How to Help and Report Bugs
Discord: discord.gg/4AXvHzW
User avatar
Xander9009
Programmer
 
Posts: 2905
Joined: 29 Jun 2013, 07:44
Location: Indiana, United States
Has thanked: 121 times
Been thanked: 445 times

Re: Formal Request Thread

Postby thefiremind » 16 Jul 2013, 08:31

About coding conspire with LinkedDC, I was sure that LinkedDC doesn't work inside a COST block... are you sure that the code works? And linked_ability_group="1" is missing in the UTILITY_ABILITY.
< 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: Formal Request Thread

Postby sumomole » 16 Jul 2013, 08:41

Xander9009 wrote:
sumomole wrote:Mybe it's characteristics:GrantAbility(colour). And LoseAllAbilities and GrantAbility should in layer="6". And grant ability should only use for nonbasic land.
I didn't know that simply giving the land a certain subtype would grant the mana ability automatically. That explains why the color changing and mana production were working even though it was giving errors. The LoseAllAbilities seemed to be working. Nonetheless, I moved it to its own layer 6 block. As for "characteristics:GrantAbility(colour)" I though it must be working since the mana was being produced correctly, so I figured the parent:grantability was working (even thought I should have known better).
You can't del the GrantAbility, since the nonbasic land and other permanent use mana ability to produce mana, however basic land is an exception, it produces mana base its land type, doesn't need any extra ability. This‘s Spreading Seas I coded, it's very similar to Convincing Mirage.
Code: Select all
  <STATIC_ABILITY>
    <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Enchanted land is an Island.]]></LOCALISED_TEXT>
    <CONTINUOUS_ACTION layer="4">
    local parent = EffectSource():GetParent()
    if parent ~= nil then
       local characteristics = parent:GetCurrentCharacteristics()
       local sub_type = characteristics:SubType_GetWritable()
       sub_type:ClearAllOfType( CARD_TYPE_LAND )
       sub_type:Add(LAND_TYPE_ISLAND)
    end
    </CONTINUOUS_ACTION>
    <CONTINUOUS_ACTION layer="6">
    local parent = EffectSource():GetParent()
    if parent ~= nil then
       local characteristics = parent:GetCurrentCharacteristics()
       characteristics:LoseAllAbilities()
    end
    </CONTINUOUS_ACTION>
    <CONTINUOUS_ACTION layer="6">
    local parent = EffectSource():GetParent()
    if parent ~= nil and parent:GetSuperType():Test( SUPERTYPE_BASIC ) == false then
      parent:GetCurrentCharacteristics():GrantAbility(0)
    end
    </CONTINUOUS_ACTION>
  </STATIC_ABILITY>
thefiremind wrote:About coding conspire with LinkedDC, I was sure that LinkedDC doesn't work inside a COST block... are you sure that the code works? And linked_ability_group="1" is missing in the UTILITY_ABILITY.
I have tested Memory Sluice and it works as long as the triggered ability has linked_ability_group="1", UTILITY_ABILITY doesn't need it. But I didn't try Wort, the Raidmother, so I guess BloodReyvyn simple copy this code will cause some unknown bugs.

Xander9009 wrote:
Fiendslayer Paladin - Tested | Open
Code: Select all
<?xml version='1.0' encoding='UTF-8'?>
<CARD_V2 ExportVersion="1">
  <FILENAME text="FIENDSLAYER_PALADIN_909370786" />
  <CARDNAME text="FIENDSLAYER_PALADIN" />
  <TITLE>
    <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Fiendslayer Paladin]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Paladin tueur de perfides]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Paladín matamalvados]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Unholdjagender Paladin]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Paladino Ammazzademoni]]></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[Paladino Demonicida]]></LOCALISED_TEXT>
  </TITLE>
  <MULTIVERSEID value="909370786" />
  <ARTID value="909370786" />
  <ARTIST name="Wesley Burt" />
  <CASTING_COST cost="{1}{W}{W}" />
  <TYPE metaname="Creature" />
  <SUB_TYPE metaname="Human" />
  <SUB_TYPE metaname="Knight" />
  <EXPANSION value="M14" />
  <RARITY metaname="R" />
  <POWER value="2" />
  <TOUGHNESS value="2" />
  <STATIC_ABILITY>
    <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[First strike ]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Initiative Lien de vieLe Paladin tueur de perfides ne peut pas être la cible de sorts noirs ou rouges que vos adversaires contrôlent.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Daña primero. Vínculo vital.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Erstschlag LebensverknüpfungDer Unholdjagende Paladin kann nicht das Ziel von schwarzen oder roten Zaubersprüchen sein, die deine Gegner kontrollieren.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Attacco improvviso ]]></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[Iniciativa Vínculo com a vidaPaladino Demonicida não pode ser alvo de mágicas pretas nem vermelhas que seus oponentes controlem.]]></LOCALISED_TEXT>
   <INTRINSIC characteristic="CHARACTERISTIC_FIRST_STRIKE" />
  </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>
    <INTRINSIC characteristic="CHARACTERISTIC_LIFELINK" />
  </STATIC_ABILITY>
  <TRIGGERED_ABILITY replacement_effect="1">
    <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Fiendslayer Paladin can’t be the target of black or red spells your opponents control.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Fiendslayer Paladin can’t be the target of black or red spells your opponents control.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Fiendslayer Paladin can’t be the target of black or red spells your opponents control.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Fiendslayer Paladin can’t be the target of black or red spells your opponents control.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Il Paladino Ammazzademoni non può essere bersaglio di magie nere o rosse controllate dai tuoi avversari.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[Fiendslayer Paladin can’t be the target of black or red spells your opponents control.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[Fiendslayer Paladin can’t be the target of black or red spells your opponents control.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[Fiendslayer Paladin can’t be the target of black or red spells your opponents control.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[Fiendslayer Paladin can’t be the target of black or red spells your opponents control.]]></LOCALISED_TEXT>
   <TRIGGER value="CARD_CONSIDERED_FOR_TARGETTING" simple_qualifier="self" pre_trigger="1">
    if SecondaryObject()~= nil and TriggerObject()~= nil then
       if ( SecondaryObject():GetColour():Test(COLOUR_BLACK) or SecondaryObject():GetColour():Test(COLOUR_RED) ) and SecondaryObject():GetZone() == ZONE_STACK and SecondaryObject():GetController():GetTeam() ~= TriggerObject():GetController():GetTeam() then
          return true
       else
          return false
       end
    end
    </TRIGGER>
  </TRIGGERED_ABILITY>
  <HELP title="MORE_INFO_BADGE_TITLE_4" body="MORE_INFO_BADGE_BODY_4" zone="ZONE_ANY" />
  <SFX text="COMBAT_BLUNT_LARGE_ATTACK" power_boundary_min="4" power_boundary_max="-1" />
  <SFX text="COMBAT_BLUNT_SMALL_ATTACK" power_boundary_min="1" power_boundary_max="3" />
</CARD_V2>
CARD_CONSIDERED_FOR_TARGETTING and SecondaryObject():GetZone() == ZONE_STACK just prevent the spell be played, but you also can put a spell from hand to stack even if this creature is the only creature on the battlefield, but since there is no legal target, so it can't be play and will back to hand, this will be an endless loop, I have encountered this problem when I try Emrakul.
User avatar
sumomole
Programmer
 
Posts: 611
Joined: 07 Jun 2011, 08:34
Has thanked: 51 times
Been thanked: 234 times

Re: Formal Request Thread

Postby Xander9009 » 16 Jul 2013, 10:38

sumomole wrote:CARD_CONSIDERED_FOR_TARGETTING and SecondaryObject():GetZone() == ZONE_STACK just prevent the spell be played, but you also can put a spell from hand to stack even if this creature is the only creature on the battlefield, but since there is no legal target, so it can't be play and will back to hand, this will be an endless loop, I have encountered this problem when I try Emrakul.
Ironically, Emrakul is the card I got that from. Is there any actual downside to it? The computer seems to recognize that doing so would be useless and while I can put the spell on the stack, the return to my hand is immediate. Does it activate spell played abilities or anything?

I can try to remake it using protection like Kev's Emrakul does, but I don't know how to protect against only opponents' spells. But that will have to wait awhile since I'm heading to bed.

As for Convincing Mirage, I'll be sure to update that. I happened across the card you mentioned a couple of hours ago, but I hadn't looked at it yet.
_______________________________
Community Wad - Community Wad Website - How to Help and Report Bugs
Discord: discord.gg/4AXvHzW
User avatar
Xander9009
Programmer
 
Posts: 2905
Joined: 29 Jun 2013, 07:44
Location: Indiana, United States
Has thanked: 121 times
Been thanked: 445 times

Re: Formal Request Thread

Postby sumomole » 16 Jul 2013, 11:05

Xander9009 wrote:
sumomole wrote:CARD_CONSIDERED_FOR_TARGETTING and SecondaryObject():GetZone() == ZONE_STACK just prevent the spell be played, but you also can put a spell from hand to stack even if this creature is the only creature on the battlefield, but since there is no legal target, so it can't be play and will back to hand, this will be an endless loop, I have encountered this problem when I try Emrakul.
Ironically, Emrakul is the card I got that from. Is there any actual downside to it? The computer seems to recognize that doing so would be useless and while I can put the spell on the stack, the return to my hand is immediate. Does it activate spell played abilities or anything?

I can try to remake it using protection like Kev's Emrakul does, but I don't know how to protect against only opponents' spells. But that will have to wait awhile since I'm heading to bed.

As for Convincing Mirage, I'll be sure to update that. I happened across the card you mentioned a couple of hours ago, but I hadn't looked at it yet.
Here, I think your code is right, just need the second part to prevent CARD_CONSIDERED_FOR_TARGETTING effect when the spell is still in hand.
User avatar
sumomole
Programmer
 
Posts: 611
Joined: 07 Jun 2011, 08:34
Has thanked: 51 times
Been thanked: 234 times

Re: Formal Request Thread

Postby BloodReyvyn » 16 Jul 2013, 11:45

sumomole wrote:I have tested Memory Sluice and it works as long as the triggered ability has linked_ability_group="1", UTILITY_ABILITY doesn't need it. But I didn't try Wort, the Raidmother, so I guess BloodReyvyn simple copy this code will cause some unknown bugs.
I ended up having to tweak it a bit, but the code as it exists now is:

Code: Select all
<?xml version='1.0' encoding='UTF-8'?>
<CARD_V2 ExportVersion="1">
  <FILENAME text="WORT_THE_RAIDMOTHER_147379" />
  <CARDNAME text="WORT_THE_RAIDMOTHER" />
  <TITLE>
    <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Wort, the Raidmother]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Moût, la Mère-pilleuse]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Mosto, madre incursora]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Wurz, die Mutter aller Überfälle]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Larva, la Madre Razziatrice]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[略奪の母、汁婆]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[Wort, the Raidmother]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[Бражка, Мамаша Налетчиков]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[Mosto, a Mãe-de-Ataque]]></LOCALISED_TEXT>
  </TITLE>
  <MULTIVERSEID value="147379" />
  <ARTID value="9720003" />
  <ARTIST name="Dave Allsop" />
  <CASTING_COST cost="{4}{R/G}{R/G}" />
  <SUPERTYPE metaname="Legendary" />
  <TYPE metaname="Creature" />
  <SUB_TYPE metaname="Goblin" />
  <SUB_TYPE metaname="Shaman" />
  <EXPANSION value="SHM" />
  <RARITY metaname="R" />
  <POWER value="3" />
  <TOUGHNESS value="3" />
  <TRIGGERED_ABILITY>
    <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[When Wort, the Raidmother enters the battlefield, put two 1/1 red and green Goblin Warrior creature tokens onto the battlefield.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Quand Moût, la Mère-pilleuse arrive en jeu, mettez en jeu deux jetons de créature 1/1 rouge et verte Gobelin et Guerrier.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Cuando Mosto, madre incursora entre en juego, pon en juego dos fichas de criatura Guerrero Trasgo rojas y verdes 1/1.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Wenn Wurz, die Mutter aller Überfälle, ins Spiel kommt, bringe zwei 1/1 rote und grüne <i>(Goblin, Krieger)</i>-Kreaturenspielsteine ins Spiel.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Quando Larva, la Madre Razziatrice entra nel campo di battaglia, metti sul campo di battaglia due pedine creatura Guerriero Goblin 1/1 rosse e verdi.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[略奪の母、汁婆が場に出たとき、赤であり緑である1/1のゴブリン・戦士・クリーチャー・トークンを2体場に出す。]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[When Wort, the Raidmother enters the battlefield, put two 1/1 red and green Goblin Warrior creature tokens onto the battlefield.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[Когда Бражка, Мамаша Налетчиков входит в игру, положите в игру две фишки существа 1/1 красный и зеленый Гоблин Воин.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[Quando Mosto, a Mãe-de-Ataque, entrar em jogo, coloque em jogo duas fichas de criatura vermelha e verde 1/1 do tipo Goblin Guerreiro.]]></LOCALISED_TEXT>
    <TRIGGER value="ZONECHANGE_END" simple_qualifier="self" to_zone="ZONE_BATTLEFIELD" />
    <RESOLUTION_TIME_ACTION>
      MTG():PutTokensOntoBattlefield( "TOKEN_GOBLIN_WARRIOR_11RG_972011", 2, EffectController() )
    </RESOLUTION_TIME_ACTION>
  </TRIGGERED_ABILITY>
  <STATIC_ABILITY>
    <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Each red or green instant or sorcery spell you cast has conspire.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Chaque sort d’éphémère ou de rituel rouge ou vert que vous jouez a la conspiration.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Cada hechizo de instantáneo o conjuro rojo o verde que juegues tiene la habilidad de conspirar.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Alle roten oder grünen Spontanzauber oder Hexereien, die du spielst, haben Verschwören.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Ogni magia istantaneo o stregoneria verde o rossa che lanci ha cospirare.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[あなたがプレイする赤か緑である各インスタント呪文や各ソーサリー呪文は共謀を持つ。]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[Each red or green instant or sorcery spell you cast has conspire.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[Каждое разыгрываемое вами красное или зеленое мгновенное заклинание или заклинание волшебства имеет Заговор.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[Cada mágica instantânea ou de feitiço vermelha ou verde que você joga tem conspirar.]]></LOCALISED_TEXT>
    <FILTER filter_id="0">
      local filter = ClearFilter()
      filter:SetZone(ZONE_HAND)
      filter:Add( FE_CONTROLLER, OP_IS, EffectController() )
      local subfilter = filter:AddSubFilter_Or()
        subfilter:Add(FE_TYPE, OP_IS, CARD_TYPE_INSTANT)
        subfilter:Add(FE_TYPE, OP_IS, CARD_TYPE_SORCERY)
    </FILTER>
    <CONTINUOUS_ACTION layer="6" filter_id="0">
      if FilteredCard() ~= nil then
       FilteredCard():GetCurrentCharacteristics():GrantAbility(1)
       FilteredCard():GetCurrentCharacteristics():GrantAbility(2)
      end
    </CONTINUOUS_ACTION>
  </STATIC_ABILITY>
  <TOKEN_REGISTRATION reservation="1" type="TOKEN_GOBLIN_WARRIOR_11RG_972011" />
  <SFX text="COMBAT_BLUNT_LARGE_ATTACK" power_boundary_min="4" power_boundary_max="-1" />
  <SFX text="COMBAT_BLUNT_SMALL_ATTACK" power_boundary_min="1" power_boundary_max="3" />
  <UTILITY_ABILITY resource_id="1" qualifier="Additional">
    <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Conspire]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Conspiration]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Conspirar.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Verschwören]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Cospirare]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[共謀]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[Conspire]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[Заговор]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[Conspirar]]></LOCALISED_TEXT>
    <COST type="Generic">
    <PREREQUISITE>
      return true
    </PREREQUISITE>
    <RESOLUTION_TIME_ACTION>
      MTG():ClearFilterMark()
      local filter = ClearFilter()
      filter:Add( FE_IS_TAPPED, false )
      filter:Add( FE_TYPE, OP_IS, CARD_TYPE_CREATURE )
      filter:Add( FE_CONTROLLER, OP_IS, EffectController() )
      local numCards = filter:EvaluateObjects()
      for i=0,(numCards-1) do
        local card = filter:GetNthEvaluatedObject(i)
        if card ~= nil and card:GetColour():TestAny(EffectSource():GetColour()) then
          card:MarkForFilter()
        end
      end
      filter:SetMarkedObjectsOnly()
      if filter:CountStopAt(2) == 2 then
        EffectController():SetItemCount( 2 )
        for i = 0,(2-1) do
          EffectController():SetItemPrompt (i, "CARD_QUERY_CHOOSE_CREATURE_TAP" )
        end
        EffectController():ChooseItems( EffectDC():Make_Targets(1), QUERY_FLAG_MAY )
      end
    </RESOLUTION_TIME_ACTION>
    <RESOLUTION_TIME_ACTION>
      local targetDC = EffectDC():Get_Targets(1)
      if targetDC ~= nil then
        local target_a = targetDC:Get_CardPtr(0)
        local target_b = targetDC:Get_CardPtr(1)
        if target_a ~= nil and target_b ~= nil then
          LinkedDC():Set_Int(10, LinkedDC():Get_Int(10)+1)
          target_a:Tap()
          target_b:Tap()
        end
      end
    </RESOLUTION_TIME_ACTION>
    </COST>
  </UTILITY_ABILITY>
  <TRIGGERED_ABILITY resource_id="2" active_zone="ZONE_STACK" linked_ability_group="1">
    <TRIGGER value="SPELL_PLAYED" simple_qualifier="self">
    return LinkedDC():Get_Int(10) &gt; 0
    </TRIGGER>
    <RESOLUTION_TIME_ACTION>
    local target = TriggerObjectLKI()
    local effectController = EffectController()
    local conspired = LinkedDC():Get_Int(10)
    if target ~= nil and conspired &gt; 0 then
      for i = 0,(conspired-1) do
         local copy = effectController:CopySpell( target )
         effectController:ChooseNewTargets( copy )
      end
    end
    </RESOLUTION_TIME_ACTION>
  </TRIGGERED_ABILITY>
</CARD_V2>
Unfortunately it does prompt you to tap 2 creatures to copy the spell, but after the cost is paid nothing happens until the game ends (win or lose) and then it gets stuck on the loading screen and crashes. Oh well, it was worth trying anyway.

I was going to try the linked ability groups, but honestly I have no need of this card right now so I just heaped it in my unfinished cards folder until such a time I want to actually use it and put more effort into it.

Got a few other projects lined up before that though. ;)

That token deck kind of took a toll on me what with all the cards that make their own tokens, it's like making two cards in one.
"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: Formal Request Thread

Postby drleg3nd » 16 Jul 2013, 15:12

hey guys could use some help with this one. I coulda sworn we had unleash available but couldn't find it.
| Open
<?xml version='1.0' encoding='UTF-8'?>
<CARD_V2 ExportVersion="1">
<FILENAME text="EXAVA_RAKDOS_BLOOD_WITCH_1285369055" />
<CARDNAME text="EXAVA_RAKDOS_BLOOD_WITCH" />
<TITLE>
<LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Exava, Rakdos Blood Witch]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Exava, sorcière sanguinaire de Rakdos]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Exava, bruja sangrienta rakdos]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Exava, Bluthexe der Rakdos]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Exava, Strega di Sangue Rakdos]]></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[Exava, Rakdos Blood Witch]]></LOCALISED_TEXT>
</TITLE>
<MULTIVERSEID value="1285369055" />
<ARTID value="1285369055" />
<ARTIST name="Aleksi Briclot" />
<CASTING_COST cost="{2}{B}{R}" />
<SUPERTYPE metaname="Legendary" />
<TYPE metaname="Creature" />
<SUB_TYPE metaname="Human" />
<SUB_TYPE metaname="Cleric" />
<EXPANSION value="DGM" />
<RARITY metaname="R" />
<POWER value="3" />
<TOUGHNESS value="3" />
<STATIC_ABILITY>
<LOCALISED_TEXT LanguageCode="en-US"><![CDATA[First strike, haste]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Initiative, célérité]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Daña primero, prisa.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Erstschlag, Eile]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Attacco improvviso, rapidità]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[先制攻撃、速攻]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[선제공격, 신속]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[Первый удар, УскорениеБезудержностьКаждое другое существо под вашим контролем, на котором есть жетон +1/+1, имеет Ускорение.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[First strike, haste]]></LOCALISED_TEXT>
</STATIC_ABILITY>
<STATIC_ABILITY>
<LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Unleash]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Emportement]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Desatar.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Entfesselt]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Scatenare]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[解鎖]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[속박해제]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[Unleash]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[Unleash]]></LOCALISED_TEXT>
</STATIC_ABILITY>
<STATIC_ABILITY>
<LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Each other creature you control with a +1/+1 counter on it has haste.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Chaque autre créature que vous contrôlez avec un marqueur +1/+1 sur elle a la célérité.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Cada otra criatura que controlas con un contador +1/+1 sobre ella tiene la habilidad de prisa.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Jede andere Kreatur, die du kontrollierst und auf der mindestens eine +1/+1-Marke liegt, hat Eile.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Ogni altra creatura con un segnalino +1/+1 che controlli ha rapidità.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[あなたがコントロールする+1/+1カウンターが置かれている他の各クリーチャーは速攻を持つ。]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[당신이 조종하는 다른 생물 중 +1/+1 카운터를 가진 각 생물은 신속 능력을 가진다.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[Each other creature you control with a +1/+1 counter on it has haste.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[Each other creature you control with a +1/+1 counter on it has haste.]]></LOCALISED_TEXT>
</STATIC_ABILITY>
<SFX text="COMBAT_BLUNT_LARGE_ATTACK" power_boundary_min="4" power_boundary_max="-1" />
<SFX text="COMBAT_BLUNT_SMALL_ATTACK" power_boundary_min="1" power_boundary_max="3" />
</CARD_V2>
drleg3nd
 
Posts: 528
Joined: 14 May 2012, 20:05
Has thanked: 5 times
Been thanked: 30 times

Re: Formal Request Thread

Postby Scion of Darkness » 16 Jul 2013, 15:27

I've coded descendant's path to my sliver deck, but now i cant test it here at work, can someone see if it works please?

Code: Select all
<?xml version='1.0'?>
<CARD_V2>
  <FILENAME text="DESCENDANT'S_PATH_14040077" />
  <CARDNAME text="DESCENDANT'S_PATH" />
  <TITLE>
    <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Descendants' Path]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Descendants' Path]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Descendants' Path]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Descendants' Path]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Descendants' Path]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[Descendants' Path]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[Descendants' Path]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[Descendants' Path]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[Descendants' Path]]></LOCALISED_TEXT>
  </TITLE>
  <MULTIVERSEID value="14040077" />
  <ARTID value="14040077" />
  <ARTIST name="Terese Nielsen" />
  <CASTING_COST cost="{2}{G}" />
  <TYPE metaname="Enchantment" />
  <EXPANSION value="DDD" />
  <RARITY metaname="R" />
   <TRIGGERED_ABILITY>
    <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[At the beginning of your upkeep, reveal the top card of your library. If it’s a creature card that shares a creature type with a creature you control, you may cast that card without paying its mana cost. Otherwise, put that card on the bottom of your library.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Au début de votre entretien, révélez la carte du dessus de votre bibliothèque. Si c’est une carte de créature qui partage un type de créature avec une créature que vous contrôlez, vous pouvez lancer cette carte sans payer son coût de mana. Sinon, mettez-la au-dessous de votre bibliothèque.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Al comienzo de tu mantenimiento, muestra la primera carta de tu biblioteca. Si es una carta de criatura que comparte un tipo de criatura con una criatura que controlas, puedes lanzar esa carta sin pagar su coste de maná. De lo contrario, pon esa carta en el fondo de tu biblioteca.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Zeige zu Beginn deines Versorgungssegments die oberste Karte deiner Bibliothek offen vor. Falls es sich um eine Kreaturenkarte handelt, die mit einer Kreatur, die du kontrollierst, einen Kreaturentyp gemeinsam hat, kannst du diese Karte wirken, ohne ihre Manakosten zu bezahlen. Lege die Karte sonst unter deine Bibliothek.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[All’inizio del tuo mantenimento, rivela la prima carta del tuo grimorio. Se è una carta creatura che condivide un tipo di creatura con una creatura che controlli, puoi lanciare quella carta senza pagare il suo costo di mana. Altrimenti, mettila in fondo al tuo grimorio.]]></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[No início de sua manutenção, revele o card do topo de seu grimório. Se for um card de criatura que compartilha um tipo de criatura com uma criatura que você controla, você poderá conjurar aquele card sem pagar seu custo de mana. Caso contrário, coloque aquele card no fundo de seu grimório.]]></LOCALISED_TEXT>
    <TRIGGER value="BEGINNING_OF_PLAYERS_STEP" simple_qualifier="controller">
    return MTG():GetStep() == STEP_UPKEEP
    </TRIGGER>
   <RESOLUTION_TIME_ACTION>
    local card = EffectController():Library_GetTop()
   if topOfLibrary ~= nil then
   local cardType = topOfLibrary:GetCardType()
   card:Reveal()
    if cardType:Test( CARD_TYPE_CREATURE ) then
       EffectDC():Set_CardPtr( 0, card )
    else
          card:PutOnBottomOfLibrary()
       end
    end
    </RESOLUTION_TIME_ACTION>
    <RESOLUTION_TIME_ACTION>
    local effectController = EffectController()
    local card = EffectDC():Get_CardPtr(0)
    if card~= nil then
       if effectController ~= nil then
          effectController:BeginNewMultipleChoice()   
          effectController:AddMultipleChoiceAnswer( "CARD_QUERY_DESCENDANT_CAST_CARD_WITHOUT_PYING_ITS_MANA_COST", effectController:CanCastSpellForFree(card) )   
          effectController:AddMultipleChoiceAnswer( "CARD_PUT_BOTTOM" )   
          effectController:AskMultipleChoiceQuestion( "CARD_QUERY_DESCENDANTS_QUESTION", card )
       end
    end
    </RESOLUTION_TIME_ACTION>
    <RESOLUTION_TIME_ACTION>
    local card = EffectDC():Get_CardPtr(0)
    local result = EffectController():GetMultipleChoiceResult()
    if card ~= nil then
       if result == 0 and EffectController():CanCastSpellForFree(card) then
          EffectController():CastSpellForFree(card)
       else
          card:PutOnBottomOfLibrary()
       end
    end
    </RESOLUTION_TIME_ACTION>
  </TRIGGERED_ABILITY>
  <AI_BASE_SCORE score="450" zone="ZONE_IN_PLAY" />
</CARD_V2>
User avatar
Scion of Darkness
 
Posts: 235
Joined: 27 Aug 2012, 13:14
Has thanked: 17 times
Been thanked: 23 times

Re: Formal Request Thread

Postby RiiakShiNal » 16 Jul 2013, 15:28

drleg3nd wrote:hey guys could use some help with this one. I coulda sworn we had unleash available but couldn't find it.
thefiremind posted Unleash here

Edit:
Scion of Darkness wrote:I've coded descendant's path to my sliver deck, but now i cant test it here at work, can someone see if it works please?
I can already see it's not going to work as is (the first RESOLUTION_TIME_ACTION is screwed up, after that it looks okay).
  • "topOfLibrary" is used without being defined.
  • You defined "card", then test to see if "topOfLibrary" is not nil (you didn't define it so either it will crash or the condition will say it is nil, either way it won't work).
  • "cardType" is being defined using the wrong variable.
RiiakShiNal
Programmer
 
Posts: 2188
Joined: 16 May 2011, 21:37
Has thanked: 75 times
Been thanked: 497 times

Re: Formal Request Thread

Postby Scion of Darkness » 16 Jul 2013, 15:37

one more ability request for the stack =) MORBID


thanks
User avatar
Scion of Darkness
 
Posts: 235
Joined: 27 Aug 2012, 13:14
Has thanked: 17 times
Been thanked: 23 times

Re: Formal Request Thread

Postby thefiremind » 16 Jul 2013, 15:53

Scion of Darkness wrote:one more ability request for the stack =) MORBID
As for hellbent, morbid is only a keyword, not an ability, so what you are actually asking is "how do i check if at least one creature died this turn?". I think that interrogations can handle that, but since there are no exact examples of it in the official cards, my code might need a further level of complication (like adding the player to the interrogation and a loop over the players):
Morbid check (untested) | Open
Code: Select all
local interrogation = MTG():ClearInterrogationQuery()
interrogation:SetFromZone( ZONE_BATTLEFIELD )
interrogation:SetToZone( ZONE_GRAVEYARD )
interrogation:SetType( CARD_TYPE_CREATURE )
if interrogation:Count( INTERROGATE_CARDS_MOVED_ZONE, INTERROGATE_THIS_TURN, 1 ) == 1 then
   -- Morbid check positive
else
   -- Morbid check negative
end
By the way, I admit I didn't notice that interrogations have 2 distinct functions to call (Count and Test) when I was trying to make Aurelia work without LinkedDC. :oops:
< 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: Formal Request Thread

Postby Master Necro » 16 Jul 2013, 16:20

thefiremind wrote:Forecast (and ninjutsu, for that matter) can't be made on DotP2014 except for when they have monocolored mana costs or no mana costs, this is the reason.

Convoke and overload are still impossible or requiring too many approximations to be feasible (until someone proves I'm wrong :P).

Bloodrush has different effects depending on the creature, the only standard part is the DiscardSelf cost: if you start from cycling it's not really that hard to make.

Haunt needs a different implementation for creatures and non-creatures. I remember getting stuck on something for the non-creature implementation in DotP2013, so I'll leave it to someone else unless I need to make a card with haunt for one of my decks.

Unleash and graft aren't really difficult, I think they should work like this:
Unleash (untested) | Open
Code: Select all
  <TRIGGERED_ABILITY replacement_query="1" active_zone="ZONE_TRANSITION">
    <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Unleash]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Scatenare]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Entfesselt]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Emportement]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Desatar.]]></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[Liberar]]></LOCALISED_TEXT>
    <TRIGGER value="ZONECHANGE_TRANSITION" simple_qualifier="self" to_zone="ZONE_BATTLEFIELD" />
    <RESOLUTION_TIME_ACTION>
    if EffectSource() ~= nil then
       EffectSource():AddCounters( MTG():PlusOnePlusOneCounters(), 1 )
    end
    </RESOLUTION_TIME_ACTION>
    <MAY tag="CARD_QUERY_UNLEASH" always_prompt="1" />
  </TRIGGERED_ABILITY>
  <STATIC_ABILITY>
    <CONTINUOUS_ACTION layer="8">
    local source = EffectSource()
    if source ~= nil and source:CountCounters( MTG():PlusOnePlusOneCounters() ) &gt; 0 then
       source:GetCurrentCharacteristics():Characteristic_Set(CHARACTERISTIC_CANT_BLOCK, 1)
    end
    </CONTINUOUS_ACTION>
  </STATIC_ABILITY>
Graft (untested) | Open
Code: Select all
  <TRIGGERED_ABILITY replacement_effect="1" active_zone="ZONE_TRANSITION">
    <TRIGGER value="ZONECHANGE_TRANSITION" simple_qualifier="self" to_zone="ZONE_BATTLEFIELD" from_zone="ZONE_ANY" />
    <RESOLUTION_TIME_ACTION>
    if EffectSource() ~= nil then
       -- change the amount of counters here for Graft 2, 3, etc.
       EffectSource():AddCounters( MTG():PlusOnePlusOneCounters(), 1 )
    end
    </RESOLUTION_TIME_ACTION>
  </TRIGGERED_ABILITY>
  <TRIGGERED_ABILITY>
    <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Graft 1]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Greffe 1]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Injertar 1]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Pfropfen 1]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Innesto 1]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[移植 1]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[Graft 1]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[Прививка 1.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[Enxerto 1]]></LOCALISED_TEXT>
    <TRIGGER value="ZONECHANGE_END" to_zone="ZONE_BATTLEFIELD" from_zone="ZONE_ANY">
    return TriggerObject():GetCardType():Test(CARD_TYPE_CREATURE) and TriggerObject() ~= EffectSource()
    </TRIGGER>
    <INTERVENING_IF>
    return EffectSource() ~= nil and TriggerObject() ~= nil and EffectSource():CountCounters( MTG():PlusOnePlusOneCounters() ) &gt; 0
    </INTERVENING_IF>
    <RESOLUTION_TIME_ACTION>
    if EffectSource() ~= nil and TriggerObject() ~= nil then
       TriggerObject():AddCounters( MTG():PlusOnePlusOneCounters(), 1 )
       EffectSource():RemoveCounters( MTG():PlusOnePlusOneCounters(), 1 )
    end
    </RESOLUTION_TIME_ACTION>
    <MAY tag="CARD_QUERY_GRAFT" always_prompt="1" />
    <AUTO_SKIP>
    return EffectSource() == nil or TriggerObject() == nil
    </AUTO_SKIP>
  </TRIGGERED_ABILITY>
but please test them before adding them to the first page, I'm not sure how the MAY blocks will work, especially with unleash.
Just reporting, Graft doesn't work when I play a creature with graft it directly goes to the graveyard(I'm guessing it is because graft doesn't trigger and it has 0/0).
User avatar
Master Necro
 
Posts: 259
Joined: 24 Apr 2013, 18:25
Has thanked: 83 times
Been thanked: 21 times

Re: Formal Request Thread

Postby thefiremind » 16 Jul 2013, 18:00

I copied the trigger from Primordial Hydra and substituted GetPaidX() with 1, so I don't know what's wrong.
< 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: Formal Request Thread

Postby Master Necro » 16 Jul 2013, 18:07

thefiremind wrote:I copied the trigger from Primordial Hydra and substituted GetPaidX() with 1, so I don't know what's wrong.
Take a look here is Simic Initiate:

Code: Select all
<?xml version="1.0"?>
<CARD_V2 ExportVersion="10">
  <FILENAME text="SIMIC_INITIATE_17107441" />
  <CARDNAME text="SIMIC_INITIATE" />
  <TITLE>
    <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Simic Initiate]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Simic Initiate]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Simic Initiate]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Simic Initiate]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Simic Initiate]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[Simic Initiate]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[Simic Initiate]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[Simic Initiate]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[Simic Initiate]]></LOCALISED_TEXT>
  </TITLE>
  <MULTIVERSEID value="17107441" />
  <ARTID value="A107441" />
  <ARTIST name="Dany Orizio" />
  <CASTING_COST cost="{G}" />
  <TYPE metaname="Creature" />
  <SUB_TYPE metaname="Human" />
  <SUB_TYPE metaname="Mutant" />
  <EXPANSION value="DPI" />
  <RARITY metaname="C" />
  <POWER value="0" />
  <TOUGHNESS value="0" />
  <TRIGGERED_ABILITY>
    <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Graft 1 (This creature enters the battlefield with a +1/+1 counter on it. Whenever another creature enters the battlefield, you may move a +1/+1 counter from this creature onto it.)]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Graft 1 (This creature enters the battlefield with a +1/+1 counter on it. Whenever another creature enters the battlefield, you may move a +1/+1 counter from this creature onto it.)]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Graft 1 (This creature enters the battlefield with a +1/+1 counter on it. Whenever another creature enters the battlefield, you may move a +1/+1 counter from this creature onto it.)]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Graft 1 (This creature enters the battlefield with a +1/+1 counter on it. Whenever another creature enters the battlefield, you may move a +1/+1 counter from this creature onto it.)]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Graft 1 (This creature enters the battlefield with a +1/+1 counter on it. Whenever another creature enters the battlefield, you may move a +1/+1 counter from this creature onto it.)]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[Graft 1 (This creature enters the battlefield with a +1/+1 counter on it. Whenever another creature enters the battlefield, you may move a +1/+1 counter from this creature onto it.)]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[Graft 1 (This creature enters the battlefield with a +1/+1 counter on it. Whenever another creature enters the battlefield, you may move a +1/+1 counter from this creature onto it.)]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[Graft 1 (This creature enters the battlefield with a +1/+1 counter on it. Whenever another creature enters the battlefield, you may move a +1/+1 counter from this creature onto it.)]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[Graft 1 (This creature enters the battlefield with a +1/+1 counter on it. Whenever another creature enters the battlefield, you may move a +1/+1 counter from this creature onto it.)]]></LOCALISED_TEXT>
    <TRIGGER value="ZONECHANGE_END" to_zone="ZONE_BATTLEFIELD" from_zone="ZONE_ANY">
    return TriggerObject():GetCardType():Test(CARD_TYPE_CREATURE) and TriggerObject() ~= EffectSource()
    </TRIGGER>
    <INTERVENING_IF>
    return EffectSource() ~= nil and TriggerObject() ~= nil and EffectSource():CountCounters( MTG():PlusOnePlusOneCounters() ) &gt; 0
    </INTERVENING_IF>
    <RESOLUTION_TIME_ACTION>
    if EffectSource() ~= nil and TriggerObject() ~= nil then
       TriggerObject():AddCounters( MTG():PlusOnePlusOneCounters(), 1 )
       EffectSource():RemoveCounters( MTG():PlusOnePlusOneCounters(), 1 )
    end
    </RESOLUTION_TIME_ACTION>
    <MAY tag="CARD_QUERY_GRAFT" always_prompt="1" />
    <AUTO_SKIP>
    return EffectSource() == nil or TriggerObject() == nil
    </AUTO_SKIP>
  </TRIGGERED_ABILITY>
  <SFX text="COMBAT_GREEN_MAGIC_LARGE_ATTACK" power_boundary_min="4" power_boundary_max="-1" />
  <SFX text="COMBAT_GREEN_MAGIC_SMALL_ATTACK" power_boundary_min="1" power_boundary_max="3" />
</CARD_V2>
User avatar
Master Necro
 
Posts: 259
Joined: 24 Apr 2013, 18:25
Has thanked: 83 times
Been thanked: 21 times

Re: Formal Request Thread

Postby RiiakShiNal » 16 Jul 2013, 18:12

That would be because you missed part of the ability. This whole block:
Code: Select all
  <TRIGGERED_ABILITY replacement_effect="1" active_zone="ZONE_TRANSITION">
    <TRIGGER value="ZONECHANGE_TRANSITION" simple_qualifier="self" to_zone="ZONE_BATTLEFIELD" from_zone="ZONE_ANY" />
    <RESOLUTION_TIME_ACTION>
    if EffectSource() ~= nil then
       -- change the amount of counters here for Graft 2, 3, etc.
       EffectSource():AddCounters( MTG():PlusOnePlusOneCounters(), 1 )
    end
    </RESOLUTION_TIME_ACTION>
  </TRIGGERED_ABILITY>
RiiakShiNal
Programmer
 
Posts: 2188
Joined: 16 May 2011, 21:37
Has thanked: 75 times
Been thanked: 497 times

PreviousNext

Return to 2014

Who is online

Users browsing this forum: No registered users and 3 guests

Main Menu

User Menu

Our Partners


Who is online

In total there are 3 users online :: 0 registered, 0 hidden and 3 guests (based on users active over the past 10 minutes)
Most users ever online was 5050 on 26 Jun 2025, 06:02

Users browsing this forum: No registered users and 3 guests

Login Form