It is currently 18 Jul 2025, 22:15
   
Text Size

Formal Request Thread

Moderator: CCGHQ Admins

Re: Formal Request Thread

Postby NeoAnderson » 07 Jan 2014, 16:31

RiiakShiNal wrote:No one has figured out how to code Bestow yet, as technically Bestow is an alternate cost, but trying to change a creature spell into an aura posses problems with targeting and attaching. Several people have worked on it, but as of yet no working approximation exists.
Riiak i just read this post, last days i made a card Dominating Licid it was my first test about turning a creature into an enchantment aura.
Using what i learned i tried to make a working version of Bestow.
I read some posts and i see that also TheFireMind as worked on this Ability, now i made this version but i would be sure that all the MTG rules are respected, so please my skilled friends take a look make some tests and let me know if something is missing.

I choose a random card with this ability : Celestial Archon from Theros set

Here you can find my approximation, let me know what you think and if it is an acceptable solution.
Celestial Archon | Open
Code: Select all
<?xml version='1.0' encoding='UTF-8'?>
<CARD_V2 ExportVersion="1">
  <FILENAME text="CELESTIAL_ARCHON_373503" />
  <CARDNAME text="CELESTIAL_ARCHON" />
  <TITLE>
    <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Celestial Archon]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Archonte céleste]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Arconte celestial]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Himmlischer Archon]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Arconte Celeste]]></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[Arconte Celestial]]></LOCALISED_TEXT>
  </TITLE>
  <MULTIVERSEID value="373503" />
  <ARTID value="373503" />
  <ARTIST name="Matt Stewart" />
  <CASTING_COST cost="{3}{W}{W}" />
  <TYPE metaname="Enchantment" />
  <TYPE metaname="Creature" />
  <SUB_TYPE metaname="Archon" />
  <EXPANSION value="THS" />
  <RARITY metaname="R" />
  <POWER value="4" />
  <TOUGHNESS value="4" />
<UTILITY_ABILITY qualifier="Alternate" active_zone="ZONE_HAND">
    <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Bestow {5}{W}{W}]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Grâce {5}{W}{W}]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Concesión {5}{W}{W}]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Göttergabe {5}{W}{W}]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Conferire {5}{W}{W}]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[授与 {5}{W}{W} (このカードを授与コストで唱えた場合、これはエンチャント]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[권능 {5}{W}{W}]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[Дар {5}{W}{W}]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[Agraciar {5}{W}{W}]]></LOCALISED_TEXT>
    <COST mana_cost="{5}{W}{W}" type="Mana" />
    <COST type="Generic">
    <PREREQUISITE>
    return true
    </PREREQUISITE>
    <RESOLUTION_TIME_ACTION>
      local filter = ClearFilter()
      filter:Add(FE_TYPE, OP_IS, CARD_TYPE_CREATURE)
      EffectController():SetItemCount(1)
      for i = 0, (1-1) do
        EffectController():SetItemPrompt(i, "CARD_QUERY_CHOOSE_CREATURE_TO_ENCHANT" )
      end
      EffectController():ChooseItems( EffectDC():Make_Targets(0) )
    </RESOLUTION_TIME_ACTION>
     <RESOLUTION_TIME_ACTION>
       local target = EffectDC():Get_Targets(0):Get_CardPtr(0)
       if target ~= nil  then
          local delayDC = EffectDC():Make_Chest(1)
          delayDC:Set_CardPtr(0,target)
          delayDC:Protect_CardPtr(0)
          MTG():CreateDelayedTrigger(1, delayDC)
          MTG():CreateDelayedTrigger(2, delayDC)
       end
    </RESOLUTION_TIME_ACTION>
    </COST>
    </UTILITY_ABILITY>

<TRIGGERED_ABILITY resource_id="1" replacement_effect="1" active_zone="ZONE_TRANSITION">
<TRIGGER value="ZONECHANGE_TRANSITION" simple_qualifier="self" to_zone="ZONE_BATTLEFIELD" from_zone="ZONE_ANY" />
<CLEANUP fire_once="1"/>
     <CONTINUOUS_ACTION layer="4">
   local characteristics = Object():GetCurrentCharacteristics()
       local card_type = characteristics:CardType_GetWritable()
       local sub_type = characteristics:SubType_GetWritable()
        sub_type:ClearAllOfType( CARD_TYPE_CREATURE )
   card_type:Clear()
        card_type:Add( CARD_TYPE_ENCHANTMENT )
        sub_type:Add( ENCHANTMENT_TYPE_AURA )
        local target =  EffectDC():Get_CardPtr(0)
        if target ~= nil  then
           Object():Attach(target)
        end
    </CONTINUOUS_ACTION>

   <CONTINUOUS_ACTION layer="7C">
     local parent = EffectDC():Get_CardPtr(0)
      if parent ~= nil then
        parent:GetCurrentCharacteristics():Power_Add( 4 )
       parent:GetCurrentCharacteristics():Toughness_Add( 4 )
      end
    </CONTINUOUS_ACTION>
    <CONTINUOUS_ACTION layer="6">
    local parent = EffectDC():Get_CardPtr(0)
    if parent ~= nil then
       parent:GetCurrentCharacteristics():Bool_Set( CHARACTERISTIC_FLYING, 1 )
       parent:GetCurrentCharacteristics():Bool_Set( CHARACTERISTIC_FIRST_STRIKE, 1 )
    end
    </CONTINUOUS_ACTION>
    <DURATION>
     local target =  EffectDC():Get_CardPtr(0)
     if (target == nil) or (Object() == nil) then
     return true
     end
    </DURATION>
</TRIGGERED_ABILITY>

<TRIGGERED_ABILITY resource_id="2" replacement_effect="1">
 <CLEANUP fire_once="1" />
 <TRIGGER value="ZONECHANGE_CONSIDERED" to_zone="ZONE_ANY" from_zone="ZONE_BATTLEFIELD" pre_trigger="1">
    if TriggerObject() ~= nil and TriggerObject() == EffectDC():Get_CardPtr(0) then
       return true
    end
    return false
    </TRIGGER>
     <CONTINUOUS_ACTION layer="4">
   local characteristics = EffectSource():GetCurrentCharacteristics()
       local card_type = characteristics:CardType_GetWritable()
       local sub_type = characteristics:SubType_GetWritable()
        sub_type:ClearAllOfType( CARD_TYPE_ENCHANTMENT )
   card_type:Clear()
        card_type:Add( CARD_TYPE_CREATURE )
        card_type:Add( CARD_TYPE_ENCHANTMENT )
        sub_type:Add( CREATURE_TYPE_ARCHON )
    </CONTINUOUS_ACTION>
    <DURATION>
     return (Object == nil)
    </DURATION>
</TRIGGERED_ABILITY>

  <STATIC_ABILITY>
    <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Flying, first strike]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Vol, initiative]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Vuela, daña primero.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Fliegend, Erstschlag]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Volare, 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[Voar, iniciativa]]></LOCALISED_TEXT>
    <INTRINSIC characteristic="CHARACTERISTIC_FLYING" />
    <INTRINSIC characteristic="CHARACTERISTIC_FIRST_STRIKE" />
  </STATIC_ABILITY>
  <STATIC_ABILITY>
    <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Enchanted creature gets +4/+4 and has flying and first strike.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[La créature enchantée gagne +4/+4 et a le vol et l’initiative.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[La criatura encantada obtiene +4/+4 y tiene las habilidades de volar y dañar primero.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Die verzauberte Kreatur erhält +4/+4 und hat Flugfähigkeit und Erstschlag.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[La creatura incantata prende +4/+4 e ha volare e attacco improvviso.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[エンチャントされているクリーチャーは、+4/+4の修整を受けるとともに飛行と先制攻撃を持つ。]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[부여된 생물은 +4/+4를 받고 비행 능력과 선제공격 능력을 가진다.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[Зачарованное существо получает +4/+4 и имеет Полет и Первый удар.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[A criatura encantada recebe +4/+4 e tem voar e iniciativa.]]></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>
PLEASE BE INFORMED THIS VERSION IS ABLE TO TARGET ALSO CREATURE WITH SHROUD AND PROTECTION, I MADE REVISED VERSION TO FIX THIS ISSUE.
Last edited by NeoAnderson on 07 Jan 2014, 18:06, edited 3 times in total.
NeoAnderson
 
Posts: 914
Joined: 10 Sep 2013, 07:49
Has thanked: 18 times
Been thanked: 139 times

Re: Formal Request Thread

Postby MC Brodie » 07 Jan 2014, 16:50

Bestow should target the creature so you shouldn't be able to Bestow on something with shroud or protection. It should also trigger things like heroic.
-----------------------------------------------------------------------
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: Formal Request Thread

Postby NeoAnderson » 07 Jan 2014, 18:04

MC Brodie wrote:Bestow should target the creature so you shouldn't be able to Bestow on something with shroud or protection. It should also trigger things like heroic.
The main problem is i am not able to use Target block into Additional cost.
Anyway i made a modify to avoid the targetting of creature with shroud, and also protection.
Please check this version and let me know what you think.
Celestial Archon Revised | Open
Code: Select all
<?xml version='1.0' encoding='UTF-8'?>
<CARD_V2 ExportVersion="1">
  <FILENAME text="CELESTIAL_ARCHON_373503" />
  <CARDNAME text="CELESTIAL_ARCHON" />
  <TITLE>
    <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Celestial Archon]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Archonte céleste]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Arconte celestial]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Himmlischer Archon]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Arconte Celeste]]></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[Arconte Celestial]]></LOCALISED_TEXT>
  </TITLE>
  <MULTIVERSEID value="373503" />
  <ARTID value="373503" />
  <ARTIST name="Matt Stewart" />
  <CASTING_COST cost="{3}{W}{W}" />
  <TYPE metaname="Enchantment" />
  <TYPE metaname="Creature" />
  <SUB_TYPE metaname="Archon" />
  <EXPANSION value="THS" />
  <RARITY metaname="R" />
  <POWER value="4" />
  <TOUGHNESS value="4" />
<UTILITY_ABILITY qualifier="Alternate" active_zone="ZONE_HAND">
    <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Bestow {5}{W}{W}]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Grâce {5}{W}{W}]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Concesión {5}{W}{W}]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Göttergabe {5}{W}{W}]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Conferire {5}{W}{W}]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[授与 {5}{W}{W} (このカードを授与コストで唱えた場合、これはエンチャント]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[권능 {5}{W}{W}]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[Дар {5}{W}{W}]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[Agraciar {5}{W}{W}]]></LOCALISED_TEXT>
    <COST tag="CARD_QUERY_BESTOW_CELESTIAL_ARCHON" />
    <COST mana_cost="{5}{W}{W}" type="Mana" />
    <COST type="Generic">
    <PREREQUISITE>
    return true
    </PREREQUISITE>

    <RESOLUTION_TIME_ACTION>
       MTG():ClearFilterMark()
      local filter = ClearFilter()
      filter:Add(FE_TYPE, OP_IS, CARD_TYPE_CREATURE)
      filter:SetZone( ZONE_BATTLEFIELD )
     local filter_count = filter:EvaluateObjects()
     local characteristics = Object():GetCurrentCharacteristics()
     local card_type = characteristics:CardType_GetWritable()
     local sub_type = characteristics:SubType_GetWritable()
     sub_type:ClearAllOfType( CARD_TYPE_CREATURE )
     card_type:Clear()
     card_type:Add( CARD_TYPE_ENCHANTMENT )
     sub_type:Add( ENCHANTMENT_TYPE_AURA )
             for i=0,filter_count-1 do
                local permanent = filter:GetNthEvaluatedObject(i)
                if permanent:GetCurrentCharacteristics():Bool_Get( CHARACTERISTIC_SHROUD ) == false then
                   if Object():CanAttachTo(permanent) then
                      permanent:MarkForFilter()
                   end
                end
             end
             filter:SetMarkedObjectsOnly()
         EffectController():SetItemCount(1)
         for i = 0, (1-1) do
         EffectController():SetItemPrompt(i, "CARD_QUERY_CHOOSE_CREATURE_TO_ENCHANT" )
         end
         EffectController():ChooseItems( EffectDC():Make_Targets(0) )
    </RESOLUTION_TIME_ACTION>

     <RESOLUTION_TIME_ACTION>
       local target = EffectDC():Get_Targets(0):Get_CardPtr(0)
       if target ~= nil  then
          local delayDC = EffectDC():Make_Chest(1)
          delayDC:Set_CardPtr(0,target)
          delayDC:Protect_CardPtr(0)
          MTG():CreateDelayedTrigger(1, delayDC)
          MTG():CreateDelayedTrigger(2, delayDC)
       end
    </RESOLUTION_TIME_ACTION>
    </COST>
    </UTILITY_ABILITY>

<TRIGGERED_ABILITY resource_id="1" replacement_effect="1" active_zone="ZONE_TRANSITION">
<TRIGGER value="ZONECHANGE_TRANSITION" simple_qualifier="self" to_zone="ZONE_BATTLEFIELD" from_zone="ZONE_ANY" />
<CLEANUP fire_once="1"/>
     <CONTINUOUS_ACTION layer="4">
   local characteristics = Object():GetCurrentCharacteristics()
       local card_type = characteristics:CardType_GetWritable()
       local sub_type = characteristics:SubType_GetWritable()
        sub_type:ClearAllOfType( CARD_TYPE_CREATURE )
   card_type:Clear()
        card_type:Add( CARD_TYPE_ENCHANTMENT )
        sub_type:Add( ENCHANTMENT_TYPE_AURA )
        local target =  EffectDC():Get_CardPtr(0)
        if target ~= nil  then
           Object():Attach(target)
        end
    </CONTINUOUS_ACTION>

   <CONTINUOUS_ACTION layer="7C">
     local parent = EffectDC():Get_CardPtr(0)
      if parent ~= nil then
        parent:GetCurrentCharacteristics():Power_Add( 4 )
       parent:GetCurrentCharacteristics():Toughness_Add( 4 )
      end
    </CONTINUOUS_ACTION>
    <CONTINUOUS_ACTION layer="6">
    local parent = EffectDC():Get_CardPtr(0)
    if parent ~= nil then
       parent:GetCurrentCharacteristics():Bool_Set( CHARACTERISTIC_FLYING, 1 )
       parent:GetCurrentCharacteristics():Bool_Set( CHARACTERISTIC_FIRST_STRIKE, 1 )
    end
    </CONTINUOUS_ACTION>
    <DURATION>
     local target =  EffectDC():Get_CardPtr(0)
     if (target == nil) or (Object() == nil) then
     return true
     end
    </DURATION>
</TRIGGERED_ABILITY>

<TRIGGERED_ABILITY resource_id="2" replacement_effect="1">
 <CLEANUP fire_once="1" />
 <TRIGGER value="ZONECHANGE_CONSIDERED" to_zone="ZONE_ANY" from_zone="ZONE_BATTLEFIELD" pre_trigger="1">
    if TriggerObject() ~= nil and TriggerObject() == EffectDC():Get_CardPtr(0) then
       return true
    end
    return false
    </TRIGGER>
     <CONTINUOUS_ACTION layer="4">
   local characteristics = EffectSource():GetCurrentCharacteristics()
       local card_type = characteristics:CardType_GetWritable()
       local sub_type = characteristics:SubType_GetWritable()
        sub_type:ClearAllOfType( CARD_TYPE_ENCHANTMENT )
   card_type:Clear()
        card_type:Add( CARD_TYPE_CREATURE )
        card_type:Add( CARD_TYPE_ENCHANTMENT )
        sub_type:Add( CREATURE_TYPE_ARCHON )
    </CONTINUOUS_ACTION>
    <DURATION>
     return (Object == nil)
    </DURATION>
</TRIGGERED_ABILITY>

  <STATIC_ABILITY>
    <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Flying, first strike]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Vol, initiative]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Vuela, daña primero.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Fliegend, Erstschlag]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Volare, 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[Voar, iniciativa]]></LOCALISED_TEXT>
    <INTRINSIC characteristic="CHARACTERISTIC_FLYING" />
    <INTRINSIC characteristic="CHARACTERISTIC_FIRST_STRIKE" />
  </STATIC_ABILITY>
  <STATIC_ABILITY>
    <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Enchanted creature gets +4/+4 and has flying and first strike.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[La créature enchantée gagne +4/+4 et a le vol et l’initiative.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[La criatura encantada obtiene +4/+4 y tiene las habilidades de volar y dañar primero.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Die verzauberte Kreatur erhält +4/+4 und hat Flugfähigkeit und Erstschlag.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[La creatura incantata prende +4/+4 e ha volare e attacco improvviso.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[エンチャントされているクリーチャーは、+4/+4の修整を受けるとともに飛行と先制攻撃を持つ。]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[부여된 생물은 +4/+4를 받고 비행 능력과 선제공격 능력을 가진다.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[Зачарованное существо получает +4/+4 и имеет Полет и Первый удар.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[A criatura encantada recebe +4/+4 e tem voar e iniciativa.]]></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>
Last edited by NeoAnderson on 08 Jan 2014, 02:36, edited 1 time in total.
NeoAnderson
 
Posts: 914
Joined: 10 Sep 2013, 07:49
Has thanked: 18 times
Been thanked: 139 times

Re: Formal Request Thread

Postby MC Brodie » 07 Jan 2014, 18:44

NeoAnderson wrote:
MC Brodie wrote:Bestow should target the creature so you shouldn't be able to Bestow on something with shroud or protection. It should also trigger things like heroic.
The main problem is i am not able to use Target block into Additional cost.
Anyway i made a modify to avoid the targetting of creature with shroud, and also protection.
Please check this version and let me know what you think.
Celestial Archon Revised | Open
Code: Select all
<?xml version='1.0' encoding='UTF-8'?>
<CARD_V2 ExportVersion="1">
  <FILENAME text="CELESTIAL_ARCHON_373503" />
  <CARDNAME text="CELESTIAL_ARCHON" />
  <TITLE>
    <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Celestial Archon]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Archonte céleste]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Arconte celestial]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Himmlischer Archon]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Arconte Celeste]]></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[Arconte Celestial]]></LOCALISED_TEXT>
  </TITLE>
  <MULTIVERSEID value="373503" />
  <ARTID value="373503" />
  <ARTIST name="Matt Stewart" />
  <CASTING_COST cost="{3}{W}{W}" />
  <TYPE metaname="Enchantment" />
  <TYPE metaname="Creature" />
  <SUB_TYPE metaname="Archon" />
  <EXPANSION value="THS" />
  <RARITY metaname="R" />
  <POWER value="4" />
  <TOUGHNESS value="4" />
<UTILITY_ABILITY qualifier="Alternate" active_zone="ZONE_HAND">
    <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Bestow {5}{W}{W}]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Grâce {5}{W}{W}]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Concesión {5}{W}{W}]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Göttergabe {5}{W}{W}]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Conferire {5}{W}{W}]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[授与 {5}{W}{W} (このカードを授与コストで唱えた場合、これはエンチャント]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[권능 {5}{W}{W}]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[Дар {5}{W}{W}]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[Agraciar {5}{W}{W}]]></LOCALISED_TEXT>
    <COST tag="CARD_QUERY_BESTOW_CELESTIAL_ARCHON" />
    <COST mana_cost="{5}{W}{W}" type="Mana" />
    <COST type="Generic">
    <PREREQUISITE>
    return true
    </PREREQUISITE>

    <RESOLUTION_TIME_ACTION>
       MTG():ClearFilterMark()
      local filter = ClearFilter()
      filter:Add(FE_TYPE, OP_IS, CARD_TYPE_CREATURE)
      filter:SetZone( ZONE_BATTLEFIELD )
     local filter_count = filter:EvaluateObjects()
     local characteristics = Object():GetCurrentCharacteristics()
     local card_type = characteristics:CardType_GetWritable()
     local sub_type = characteristics:SubType_GetWritable()
     sub_type:ClearAllOfType( CARD_TYPE_CREATURE )
     card_type:Clear()
     card_type:Add( CARD_TYPE_ENCHANTMENT )
     sub_type:Add( ENCHANTMENT_TYPE_AURA )
             for i=0,filter_count-1 do
                local permanent = filter:GetNthEvaluatedObject(i)
                if permanent:GetCurrentCharacteristics():Bool_Get( CHARACTERISTIC_SHROUD ) == false then
                   if Object():CanAttachTo(permanent) then
                      permanent:MarkForFilter()
                   end
                end
             end
             filter:SetMarkedObjectsOnly()
         EffectController():SetItemCount(1)
         for i = 0, (1-1) do
         EffectController():SetItemPrompt(i, "CARD_QUERY_CHOOSE_CREATURE_TO_ENCHANT" )
         end
         EffectController():ChooseItems( EffectDC():Make_Targets(0) )
    </RESOLUTION_TIME_ACTION>

     <RESOLUTION_TIME_ACTION>
       local target = EffectDC():Get_Targets(0):Get_CardPtr(0)
       if target ~= nil  then
          local delayDC = EffectDC():Make_Chest(1)
          delayDC:Set_CardPtr(0,target)
          delayDC:Protect_CardPtr(0)
          MTG():CreateDelayedTrigger(1, delayDC)
          MTG():CreateDelayedTrigger(2, delayDC)
       end
    </RESOLUTION_TIME_ACTION>
    </COST>
    </UTILITY_ABILITY>

<TRIGGERED_ABILITY resource_id="1" replacement_effect="1" active_zone="ZONE_TRANSITION">
<TRIGGER value="ZONECHANGE_TRANSITION" simple_qualifier="self" to_zone="ZONE_BATTLEFIELD" from_zone="ZONE_ANY" />
<CLEANUP fire_once="1"/>
     <CONTINUOUS_ACTION layer="4">
   local characteristics = Object():GetCurrentCharacteristics()
       local card_type = characteristics:CardType_GetWritable()
       local sub_type = characteristics:SubType_GetWritable()
        sub_type:ClearAllOfType( CARD_TYPE_CREATURE )
   card_type:Clear()
        card_type:Add( CARD_TYPE_ENCHANTMENT )
        sub_type:Add( ENCHANTMENT_TYPE_AURA )
        local target =  EffectDC():Get_CardPtr(0)
        if target ~= nil  then
           Object():Attach(target)
        end
    </CONTINUOUS_ACTION>

   <CONTINUOUS_ACTION layer="7C">
     local parent = EffectDC():Get_CardPtr(0)
      if parent ~= nil then
        parent:GetCurrentCharacteristics():Power_Add( 4 )
       parent:GetCurrentCharacteristics():Toughness_Add( 4 )
      end
    </CONTINUOUS_ACTION>
    <CONTINUOUS_ACTION layer="6">
    local parent = EffectDC():Get_CardPtr(0)
    if parent ~= nil then
       parent:GetCurrentCharacteristics():Bool_Set( CHARACTERISTIC_FLYING, 1 )
       parent:GetCurrentCharacteristics():Bool_Set( CHARACTERISTIC_FIRST_STRIKE, 1 )
    end
    </CONTINUOUS_ACTION>
    <DURATION>
     local target =  EffectDC():Get_CardPtr(0)
     if (target == nil) or (Object() == nil) then
     return true
     end
    </DURATION>
</TRIGGERED_ABILITY>

<TRIGGERED_ABILITY resource_id="2" replacement_effect="1">
 <CLEANUP fire_once="1" />
 <TRIGGER value="ZONECHANGE_CONSIDERED" to_zone="ZONE_ANY" from_zone="ZONE_BATTLEFIELD" pre_trigger="1">
    if TriggerObject() ~= nil and TriggerObject() == EffectDC():Get_CardPtr(0) then
       return true
    end
    return false
    </TRIGGER>
     <CONTINUOUS_ACTION layer="4">
   local characteristics = EffectSource():GetCurrentCharacteristics()
       local card_type = characteristics:CardType_GetWritable()
       local sub_type = characteristics:SubType_GetWritable()
        sub_type:ClearAllOfType( CARD_TYPE_ENCHANTMENT )
   card_type:Clear()
        card_type:Add( CARD_TYPE_CREATURE )
        card_type:Add( CARD_TYPE_ENCHANTMENT )
        sub_type:Add( CREATURE_TYPE_ARCHON )
    </CONTINUOUS_ACTION>
    <DURATION>
     return (Object == nil)
    </DURATION>
</TRIGGERED_ABILITY>

  <STATIC_ABILITY>
    <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Flying, first strike]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Vol, initiative]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Vuela, daña primero.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Fliegend, Erstschlag]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Volare, 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[Voar, iniciativa]]></LOCALISED_TEXT>
    <INTRINSIC characteristic="CHARACTERISTIC_FLYING" />
    <INTRINSIC characteristic="CHARACTERISTIC_FIRST_STRIKE" />
  </STATIC_ABILITY>
  <STATIC_ABILITY>
    <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Enchanted creature gets +4/+4 and has flying and first strike.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[La créature enchantée gagne +4/+4 et a le vol et l’initiative.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[La criatura encantada obtiene +4/+4 y tiene las habilidades de volar y dañar primero.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Die verzauberte Kreatur erhält +4/+4 und hat Flugfähigkeit und Erstschlag.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[La creatura incantata prende +4/+4 e ha volare e attacco improvviso.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[エンチャントされているクリーチャーは、+4/+4の修整を受けるとともに飛行と先制攻撃を持つ。]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[부여된 생물은 +4/+4를 받고 비행 능력과 선제공격 능력을 가진다.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[Зачарованное существо получает +4/+4 и имеет Полет и Первый удар.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[A criatura encantada recebe +4/+4 e tem voar e iniciativa.]]></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>
CELESTIAL_ARCHON_373503.zip
I know that's the problem. Personally I'm not a fan of this approach. There are a number of cards that care if they are targeted. Even ones available in the core game like most of the illusions creatures or Gaea's Revenge. In most cases it's an ok approximation and if someone wants to play a bestow creature bad enough it could work. Though they should be aware of the limitations and know they can't make a bestow/heroic deck or kill an opponents Phantasmal Image by bestowing it.

For cases like these I've seen other forum members suggest coming up with a custom ability/card that behaves like the original but can be coded within the engine limitations
-----------------------------------------------------------------------
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: Formal Request Thread

Postby warum » 07 Jan 2014, 20:03

Deadpoolmtg wrote:Hi guys, i need these two cards to make the deck Jund Depths, winner of SCG Open Legacy(1/5/2014) .

Thespian's Stage
Dark Depths (i'm realy surprised to not see this card in any WAD)
I'd second this one. It's an interesting deck.
warum
 
Posts: 55
Joined: 09 Dec 2013, 13:39
Has thanked: 0 time
Been thanked: 2 times

Re: Formal Request Thread

Postby NeoAnderson » 07 Jan 2014, 22:50

MC Brodie wrote:
NeoAnderson wrote:
MC Brodie wrote:Bestow should target the creature so you shouldn't be able to Bestow on something with shroud or protection. It should also trigger things like heroic.
The main problem is i am not able to use Target block into Additional cost.
Anyway i made a modify to avoid the targetting of creature with shroud, and also protection.
Please check this version and let me know what you think.
Celestial Archon Revised | Open
Code: Select all
<?xml version='1.0' encoding='UTF-8'?>
<CARD_V2 ExportVersion="1">
  <FILENAME text="CELESTIAL_ARCHON_373503" />
  <CARDNAME text="CELESTIAL_ARCHON" />
  <TITLE>
    <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Celestial Archon]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Archonte céleste]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Arconte celestial]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Himmlischer Archon]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Arconte Celeste]]></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[Arconte Celestial]]></LOCALISED_TEXT>
  </TITLE>
  <MULTIVERSEID value="373503" />
  <ARTID value="373503" />
  <ARTIST name="Matt Stewart" />
  <CASTING_COST cost="{3}{W}{W}" />
  <TYPE metaname="Enchantment" />
  <TYPE metaname="Creature" />
  <SUB_TYPE metaname="Archon" />
  <EXPANSION value="THS" />
  <RARITY metaname="R" />
  <POWER value="4" />
  <TOUGHNESS value="4" />
<UTILITY_ABILITY qualifier="Alternate" active_zone="ZONE_HAND">
    <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Bestow {5}{W}{W}]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Grâce {5}{W}{W}]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Concesión {5}{W}{W}]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Göttergabe {5}{W}{W}]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Conferire {5}{W}{W}]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[授与 {5}{W}{W} (このカードを授与コストで唱えた場合、これはエンチャント]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[권능 {5}{W}{W}]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[Дар {5}{W}{W}]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[Agraciar {5}{W}{W}]]></LOCALISED_TEXT>
    <COST tag="CARD_QUERY_BESTOW_CELESTIAL_ARCHON" />
    <COST mana_cost="{5}{W}{W}" type="Mana" />
    <COST type="Generic">
    <PREREQUISITE>
    return true
    </PREREQUISITE>

    <RESOLUTION_TIME_ACTION>
       MTG():ClearFilterMark()
      local filter = ClearFilter()
      filter:Add(FE_TYPE, OP_IS, CARD_TYPE_CREATURE)
      filter:SetZone( ZONE_BATTLEFIELD )
     local filter_count = filter:EvaluateObjects()
     local characteristics = Object():GetCurrentCharacteristics()
     local card_type = characteristics:CardType_GetWritable()
     local sub_type = characteristics:SubType_GetWritable()
     sub_type:ClearAllOfType( CARD_TYPE_CREATURE )
     card_type:Clear()
     card_type:Add( CARD_TYPE_ENCHANTMENT )
     sub_type:Add( ENCHANTMENT_TYPE_AURA )
             for i=0,filter_count-1 do
                local permanent = filter:GetNthEvaluatedObject(i)
                if permanent:GetCurrentCharacteristics():Bool_Get( CHARACTERISTIC_SHROUD ) == false then
                   if Object():CanAttachTo(permanent) then
                      permanent:MarkForFilter()
                   end
                end
             end
             filter:SetMarkedObjectsOnly()
         EffectController():SetItemCount(1)
         for i = 0, (1-1) do
         EffectController():SetItemPrompt(i, "CARD_QUERY_CHOOSE_CREATURE_TO_ENCHANT" )
         end
         EffectController():ChooseItems( EffectDC():Make_Targets(0) )
    </RESOLUTION_TIME_ACTION>

     <RESOLUTION_TIME_ACTION>
       local target = EffectDC():Get_Targets(0):Get_CardPtr(0)
       if target ~= nil  then
          local delayDC = EffectDC():Make_Chest(1)
          delayDC:Set_CardPtr(0,target)
          delayDC:Protect_CardPtr(0)
          MTG():CreateDelayedTrigger(1, delayDC)
          MTG():CreateDelayedTrigger(2, delayDC)
       end
    </RESOLUTION_TIME_ACTION>
    </COST>
    </UTILITY_ABILITY>

<TRIGGERED_ABILITY resource_id="1" replacement_effect="1" active_zone="ZONE_TRANSITION">
<TRIGGER value="ZONECHANGE_TRANSITION" simple_qualifier="self" to_zone="ZONE_BATTLEFIELD" from_zone="ZONE_ANY" />
<CLEANUP fire_once="1"/>
     <CONTINUOUS_ACTION layer="4">
   local characteristics = Object():GetCurrentCharacteristics()
       local card_type = characteristics:CardType_GetWritable()
       local sub_type = characteristics:SubType_GetWritable()
        sub_type:ClearAllOfType( CARD_TYPE_CREATURE )
   card_type:Clear()
        card_type:Add( CARD_TYPE_ENCHANTMENT )
        sub_type:Add( ENCHANTMENT_TYPE_AURA )
        local target =  EffectDC():Get_CardPtr(0)
        if target ~= nil  then
           Object():Attach(target)
        end
    </CONTINUOUS_ACTION>

   <CONTINUOUS_ACTION layer="7C">
     local parent = EffectDC():Get_CardPtr(0)
      if parent ~= nil then
        parent:GetCurrentCharacteristics():Power_Add( 4 )
       parent:GetCurrentCharacteristics():Toughness_Add( 4 )
      end
    </CONTINUOUS_ACTION>
    <CONTINUOUS_ACTION layer="6">
    local parent = EffectDC():Get_CardPtr(0)
    if parent ~= nil then
       parent:GetCurrentCharacteristics():Bool_Set( CHARACTERISTIC_FLYING, 1 )
       parent:GetCurrentCharacteristics():Bool_Set( CHARACTERISTIC_FIRST_STRIKE, 1 )
    end
    </CONTINUOUS_ACTION>
    <DURATION>
     local target =  EffectDC():Get_CardPtr(0)
     if (target == nil) or (Object() == nil) then
     return true
     end
    </DURATION>
</TRIGGERED_ABILITY>

<TRIGGERED_ABILITY resource_id="2" replacement_effect="1">
 <CLEANUP fire_once="1" />
 <TRIGGER value="ZONECHANGE_CONSIDERED" to_zone="ZONE_ANY" from_zone="ZONE_BATTLEFIELD" pre_trigger="1">
    if TriggerObject() ~= nil and TriggerObject() == EffectDC():Get_CardPtr(0) then
       return true
    end
    return false
    </TRIGGER>
     <CONTINUOUS_ACTION layer="4">
   local characteristics = EffectSource():GetCurrentCharacteristics()
       local card_type = characteristics:CardType_GetWritable()
       local sub_type = characteristics:SubType_GetWritable()
        sub_type:ClearAllOfType( CARD_TYPE_ENCHANTMENT )
   card_type:Clear()
        card_type:Add( CARD_TYPE_CREATURE )
        card_type:Add( CARD_TYPE_ENCHANTMENT )
        sub_type:Add( CREATURE_TYPE_ARCHON )
    </CONTINUOUS_ACTION>
    <DURATION>
     return (Object == nil)
    </DURATION>
</TRIGGERED_ABILITY>

  <STATIC_ABILITY>
    <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Flying, first strike]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Vol, initiative]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Vuela, daña primero.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Fliegend, Erstschlag]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Volare, 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[Voar, iniciativa]]></LOCALISED_TEXT>
    <INTRINSIC characteristic="CHARACTERISTIC_FLYING" />
    <INTRINSIC characteristic="CHARACTERISTIC_FIRST_STRIKE" />
  </STATIC_ABILITY>
  <STATIC_ABILITY>
    <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Enchanted creature gets +4/+4 and has flying and first strike.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[La créature enchantée gagne +4/+4 et a le vol et l’initiative.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[La criatura encantada obtiene +4/+4 y tiene las habilidades de volar y dañar primero.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Die verzauberte Kreatur erhält +4/+4 und hat Flugfähigkeit und Erstschlag.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[La creatura incantata prende +4/+4 e ha volare e attacco improvviso.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[エンチャントされているクリーチャーは、+4/+4の修整を受けるとともに飛行と先制攻撃を持つ。]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[부여된 생물은 +4/+4를 받고 비행 능력과 선제공격 능력을 가진다.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[Зачарованное существо получает +4/+4 и имеет Полет и Первый удар.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[A criatura encantada recebe +4/+4 e tem voar e iniciativa.]]></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>
I know that's the problem. Personally I'm not a fan of this approach. There are a number of cards that care if they are targeted. Even ones available in the core game like most of the illusions creatures or Gaea's Revenge. In most cases it's an ok approximation and if someone wants to play a bestow creature bad enough it could work. Though they should be aware of the limitations and know they can't make a bestow/heroic deck or kill an opponents Phantasmal Image by bestowing it.For cases like these I've seen other forum members suggest coming up with a custom ability/card that behaves like the original but can be coded within the engine limitations
If we accept few compromises, i think we can get something closer to the real mechanics of this ability.
I have rewrote the card, now :
1. It can't target cards with shroud.
2. It can't target cards with protection.
3. It can't taeget cards who are protected by targetting, like Gaea's Revenge.
4. If target cards like Illusions cards they will trigger and resolve their effects.

Probably the only thing we cannot resolve is that we can play Bestow also if there are not all suitable targets, but the targetting will be skipped and the card will be cast as a enchantment creature as normal cast.

I think this is a reasonable approximation, please let me know your opinions.


Celestial Archon REVISED 2.0 | Open
Code: Select all
<?xml version='1.0' encoding='UTF-8'?>
<CARD_V2 ExportVersion="1">
  <FILENAME text="CELESTIAL_ARCHON_373503" />
  <CARDNAME text="CELESTIAL_ARCHON" />
  <TITLE>
    <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Celestial Archon]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Archonte céleste]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Arconte celestial]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Himmlischer Archon]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Arconte Celeste]]></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[Arconte Celestial]]></LOCALISED_TEXT>
  </TITLE>
  <MULTIVERSEID value="373503" />
  <ARTID value="373503" />
  <ARTIST name="Matt Stewart" />
  <CASTING_COST cost="{3}{W}{W}" />
  <TYPE metaname="Enchantment" />
  <TYPE metaname="Creature" />
  <SUB_TYPE metaname="Archon" />
  <EXPANSION value="THS" />
  <RARITY metaname="R" />
  <POWER value="4" />
  <TOUGHNESS value="4" />
<UTILITY_ABILITY qualifier="Alternate" active_zone="ZONE_HAND">
    <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Bestow {5}{W}{W}]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Grâce {5}{W}{W}]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Concesión {5}{W}{W}]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Göttergabe {5}{W}{W}]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Conferire {5}{W}{W}]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[授与 {5}{W}{W} (このカードを授与コストで唱えた場合、これはエンチャント]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[권능 {5}{W}{W}]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[Дар {5}{W}{W}]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[Agraciar {5}{W}{W}]]></LOCALISED_TEXT>
    <COST tag="CARD_QUERY_BESTOW_CELESTIAL_ARCHON" />
    <COST mana_cost="{5}{W}{W}" type="Mana" />
    <COST type="Generic">
    <PREREQUISITE>
       MTG():ClearFilterMark()
      local filter = ClearFilter()
      filter:Add(FE_TYPE, OP_IS, CARD_TYPE_CREATURE)
      filter:SetZone( ZONE_BATTLEFIELD )
     local filter_count = filter:EvaluateObjects()
     local characteristics = Object():GetCurrentCharacteristics()
     local card_type = characteristics:CardType_GetWritable()
     local sub_type = characteristics:SubType_GetWritable()
     sub_type:ClearAllOfType( CARD_TYPE_CREATURE )
     card_type:Clear()
     card_type:Add( CARD_TYPE_ENCHANTMENT )
     sub_type:Add( ENCHANTMENT_TYPE_AURA )
             for i=0,filter_count-1 do
                local permanent = filter:GetNthEvaluatedObject(i)
                if permanent:GetCurrentCharacteristics():Bool_Get( CHARACTERISTIC_SHROUD ) == false then
                   if Object():CanAttachTo(permanent) then
                      permanent:MarkForFilter()
                   end
                end
             end
             filter:SetMarkedObjectsOnly()
      local count = filter:Count()
      if count &gt; 0 then
       return true
      else
       return false
      end
    </PREREQUISITE>

     <RESOLUTION_TIME_ACTION>
       if  Object() ~= nil then
          local delayDC = EffectDC():Make_Chest(1)
          delayDC:Set_CardPtr(0, Object())
          delayDC:Protect_CardPtr(0)
          MTG():CreateDelayedTrigger(1, delayDC)
       end
    </RESOLUTION_TIME_ACTION>
    </COST>
    </UTILITY_ABILITY>

<TRIGGERED_ABILITY resource_id="1" replacement_query="1" active_zone="ZONE_TRANSITION">
  <TRIGGER value="ZONECHANGE_CONSIDERED" simple_qualifier="self" to_zone="ZONE_BATTLEFIELD" from_zone="ZONE_ANY" pre_trigger="1" />
<CLEANUP fire_once="1"/>

<TARGET tag="CARD_QUERY_CHOOSE_CREATURE_TO_ENCHANT" definition="0" compartment="0" count="1" />
      <TARGET_DEFINITION id="0">
    local filter = ClearFilter()
    filter:Add( FE_TYPE, OP_IS, CARD_TYPE_CREATURE )
    </TARGET_DEFINITION>

     <PLAY_TIME_ACTION>
       if  Object() ~= nil then
          local target =  EffectDC():Get_Targets(0):Get_CardPtr(0)
        if target ~= nil  then
          local delayDC = EffectDC():Make_Chest(2)
          delayDC:Set_CardPtr(0, target)
          delayDC:Protect_CardPtr(0)
          MTG():CreateDelayedTrigger(2, delayDC)
        end
       end
    </PLAY_TIME_ACTION>
     <CONTINUOUS_ACTION layer="4">
        local target =  EffectDC():Get_Targets(0):Get_CardPtr(0)
        if target ~= nil  then
      local characteristics = Object():GetCurrentCharacteristics()
          local card_type = characteristics:CardType_GetWritable()
          local sub_type = characteristics:SubType_GetWritable()
           sub_type:ClearAllOfType( CARD_TYPE_CREATURE )
      card_type:Clear()
           card_type:Add( CARD_TYPE_ENCHANTMENT )
           sub_type:Add( ENCHANTMENT_TYPE_AURA )
           Object():Attach(target)
        end
    </CONTINUOUS_ACTION>

   <CONTINUOUS_ACTION layer="7C">
     local parent = EffectDC():Get_Targets(0):Get_CardPtr(0)
      if parent ~= nil then
        parent:GetCurrentCharacteristics():Power_Add( 4 )
       parent:GetCurrentCharacteristics():Toughness_Add( 4 )
      end
    </CONTINUOUS_ACTION>
    <CONTINUOUS_ACTION layer="6">
    local parent = EffectDC():Get_Targets(0):Get_CardPtr(0)
    if parent ~= nil then
       parent:GetCurrentCharacteristics():Bool_Set( CHARACTERISTIC_FLYING, 1 )
       parent:GetCurrentCharacteristics():Bool_Set( CHARACTERISTIC_FIRST_STRIKE, 1 )
    end
    </CONTINUOUS_ACTION>
    <DURATION>
     local target =  EffectDC():Get_Targets(0):Get_CardPtr(0)
     if (target == nil) or (Object() == nil) then
     return true
     end
    </DURATION>
</TRIGGERED_ABILITY>

<TRIGGERED_ABILITY resource_id="2" replacement_effect="1">
 <CLEANUP fire_once="1" />
 <TRIGGER value="ZONECHANGE_CONSIDERED" to_zone="ZONE_ANY" from_zone="ZONE_BATTLEFIELD" pre_trigger="1">
    if TriggerObject() ~= nil and TriggerObject() == EffectDC():Get_CardPtr(0) then
       return true
    end
    return false
    </TRIGGER>
     <CONTINUOUS_ACTION layer="4">
   local characteristics = Object():GetCurrentCharacteristics()
       local card_type = characteristics:CardType_GetWritable()
       local sub_type = characteristics:SubType_GetWritable()
        sub_type:ClearAllOfType( CARD_TYPE_ENCHANTMENT )
   card_type:Clear()
        card_type:Add( CARD_TYPE_CREATURE )
        card_type:Add( CARD_TYPE_ENCHANTMENT )
        sub_type:Add( CREATURE_TYPE_ARCHON )
    </CONTINUOUS_ACTION>
    <DURATION>
     return (Object == nil)
    </DURATION>
</TRIGGERED_ABILITY>

  <STATIC_ABILITY>
    <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Flying, first strike]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Vol, initiative]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Vuela, daña primero.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Fliegend, Erstschlag]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Volare, 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[Voar, iniciativa]]></LOCALISED_TEXT>
    <INTRINSIC characteristic="CHARACTERISTIC_FLYING" />
    <INTRINSIC characteristic="CHARACTERISTIC_FIRST_STRIKE" />
  </STATIC_ABILITY>
  <STATIC_ABILITY>
    <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Enchanted creature gets +4/+4 and has flying and first strike.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[La créature enchantée gagne +4/+4 et a le vol et l’initiative.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[La criatura encantada obtiene +4/+4 y tiene las habilidades de volar y dañar primero.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Die verzauberte Kreatur erhält +4/+4 und hat Flugfähigkeit und Erstschlag.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[La creatura incantata prende +4/+4 e ha volare e attacco improvviso.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[エンチャントされているクリーチャーは、+4/+4の修整を受けるとともに飛行と先制攻撃を持つ。]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[부여된 생물은 +4/+4를 받고 비행 능력과 선제공격 능력을 가진다.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[Зачарованное существо получает +4/+4 и имеет Полет и Первый удар.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[A criatura encantada recebe +4/+4 e tem voar e iniciativa.]]></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>
THIS VERSION WILL SELECT ONLY SUITABLE TARGETS (CANNOT TARGET CARDS LIKE Gaea's Revenge).
2. I have a question about the alternate costs, when we play an altenate cost, it is displayed a multiple choice where the first answer is the normal casting cost, the second one is the alternate cost. How can we add a Tag for the second answer? I mean the first answer is displayed also with casting cost, the second one just display "[]". Someone know how and where can i add a tag="CARD_QUERY_....." to display custom text?
Attachments
CELESTIAL_ARCHON_373503.zip
CARD REV 2.0 XML + TDX
(588.27 KiB) Downloaded 290 times
NeoAnderson
 
Posts: 914
Joined: 10 Sep 2013, 07:49
Has thanked: 18 times
Been thanked: 139 times

Re: Formal Request Thread

Postby drleg3nd » 08 Jan 2014, 01:11

sorry to be a bother but just wanna repost on my request of Tyrant of Discord. thx
also Kudos Neo for making bestow, when i get home i'll try it and let ya know...now if we can just get those fuse cards.... :)
drleg3nd
 
Posts: 528
Joined: 14 May 2012, 20:05
Has thanked: 5 times
Been thanked: 30 times

Re: Formal Request Thread

Postby NeoAnderson » 08 Jan 2014, 02:35

drleg3nd wrote:sorry to be a bother but just wanna repost on my request of Tyrant of Discord. thx
also Kudos Neo for making bestow, when i get home i'll try it and let ya know...now if we can just get those fuse cards.... :)
I just coded it, i made few quick test so please test it again and let me know if is ok.
Tyrant of Discord | Open
Code: Select all
<?xml version='1.0' encoding='UTF-8'?>
<CARD_V2 ExportVersion="1">
  <FILENAME text="TYRANT_OF_DISCORD_276194" />
  <CARDNAME text="TYRANT_OF_DISCORD" />
  <TITLE>
    <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Tyrant of Discord]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Tyran de la discorde]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Tirano de la discordia]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Tyrann der Zwietracht]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Tiranno della Discordia]]></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[Tirano da Discórdia]]></LOCALISED_TEXT>
  </TITLE>
  <MULTIVERSEID value="276194" />
  <ARTID value="276194" />
  <ARTIST name="Richard Wright" />
  <CASTING_COST cost="{4}{R}{R}{R}" />
  <TYPE metaname="Creature" />
  <SUB_TYPE metaname="Elemental" />
  <EXPANSION value="AVR" />
  <RARITY metaname="R" />
  <POWER value="7" />
  <TOUGHNESS value="7" />
  <TRIGGERED_ABILITY>
    <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[When Tyrant of Discord enters the battlefield, target opponent chooses a permanent he or she controls at random and sacrifices it. If a nonland permanent is sacrificed this way, repeat this process.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Quand le Tyran de la discorde arrive sur le champ de bataille, l’adversaire ciblé choisit au hasard un permanent qu’il contrôle et le sacrifie. Si un permanent non-terrain est sacrifié de cette manière, répétez ce processus.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Cuando el Tirano de la discordia entre al campo de batalla, el oponente objetivo elige al azar un permanente que controla y sacrifica ese permanente. Si un permanente que no sea tierra es sacrificado de esta manera, repite este proceso.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Wenn der Tyrann der Zwietracht ins Spiel kommt, bestimmt ein Gegner deiner Wahl zufällig eine bleibende Karte, die er kontrolliert, und opfert sie. Wenn auf diese Weise eine bleibende Karte, die kein Land ist, geopfert wird, wiederholst du diesen Vorgang.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Quando il Tiranno della Discordia entra nel campo di battaglia, un avversario bersaglio sceglie a caso un permanente che controlla e lo sacrifica. Se un permanente non terra viene sacrificato in questo modo, ripeti questo procedimento.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[不和の暴君が戦場に出たとき、対戦相手1人を対象とする。そのプレイヤーは自分がコントロールするパーマネント1つを無作為に選び、それを生け贄に捧げる。 これにより土地でないパーマネントが生け贄に捧げられた場合、この手順を繰り返す。]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[불화의 폭군이 전장에 들어올 때, 상대 한 명을 목표로 정한다. 그 상대는 자신이 조종하는 지속물 한 개를 무작위로 정해서 희생한다. 이렇게 해서 대지가 아닌 지속물이 희생될 경우, 이 과정을 반복한다.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[Когда Тиран Раздора выходит на поле битвы, целевой оппонент случайным образом выбирает перманент под своим контролем и жертвует его. Если таким образом был пожертвован не являющийся землей перманент, повторите этот процесс.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[Quando Tirano da Discórdia entra no campo de batalha, o oponente alvo escolhe aleatoriamente uma permanente que ele controle e a sacrifica. Se uma permanente que não seja um terreno for sacrificada dessa maneira, repita o processo.]]></LOCALISED_TEXT>
<TRIGGER value="ZONECHANGE_END" simple_qualifier="self" to_zone="ZONE_BATTLEFIELD" />
<TARGET tag="CARD_QUERY_CHOOSE_OPPONENT" definition="0" compartment="0" count="1" />
<TARGET_DEFINITION id="0">
  local filter = ClearFilter()
 filter:SetFilterType( FILTER_TYPE_PLAYERS )
 filter:Add( FE_TEAM, OP_NOT, EffectController():GetTeam() )
</TARGET_DEFINITION>

<RESOLUTION_TIME_ACTION repeating="1">
    local target_player = EffectDC():Get_Targets(0):Get_PlayerPtr(0)
    if target_player ~= nil then
       local filter = ClearFilter()
       filter:Add( FE_CONTROLLER, OP_IS, target_player )
       local subfilter = filter:AddSubFilter_Or()
       subfilter:Add( FE_TYPE, OP_IS, CARD_TYPE_ARTIFACT )
       subfilter:Add( FE_TYPE, OP_IS, CARD_TYPE_CREATURE )
       subfilter:Add( FE_TYPE, OP_IS, CARD_TYPE_ENCHANTMENT )
       subfilter:Add( FE_TYPE, OP_IS, CARD_TYPE_LAND )
       subfilter:Add( FE_TYPE, OP_IS, CARD_TYPE_PLANESWALKER )
       local filter_count = filter:EvaluateObjects()
       if filter_count &gt; 0 then
         local card = filter:GetRandomEvaluatedObject()
         if card ~= nil then
            card:GuidedReveal( card:GetZone() , card:GetZone() )
             if card:GetCardType():Test( CARD_TYPE_LAND )==false then
             target_player:Sacrifice(card)
                 return true
             else
           target_player:Sacrifice(card)
             end
          end
       end
   end
   return false
</RESOLUTION_TIME_ACTION>
</TRIGGERED_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>
Last edited by NeoAnderson on 08 Jan 2014, 13:00, edited 1 time in total.
NeoAnderson
 
Posts: 914
Joined: 10 Sep 2013, 07:49
Has thanked: 18 times
Been thanked: 139 times

Re: Formal Request Thread

Postby drleg3nd » 08 Jan 2014, 03:33

NeoAnderson wrote:
drleg3nd wrote:sorry to be a bother but just wanna repost on my request of Tyrant of Discord. thx
also Kudos Neo for making bestow, when i get home i'll try it and let ya know...now if we can just get those fuse cards.... :)
I just coded it, i made few quick test so please test it again and let me know if is ok.
Tyrant of Discord | Open
Code: Select all
<?xml version='1.0' encoding='UTF-8'?>
<CARD_V2 ExportVersion="1">
  <FILENAME text="TYRANT_OF_DISCORD_276194" />
  <CARDNAME text="TYRANT_OF_DISCORD" />
  <TITLE>
    <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Tyrant of Discord]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Tyran de la discorde]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Tirano de la discordia]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Tyrann der Zwietracht]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Tiranno della Discordia]]></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[Tirano da Discórdia]]></LOCALISED_TEXT>
  </TITLE>
  <MULTIVERSEID value="276194" />
  <ARTID value="276194" />
  <ARTIST name="Richard Wright" />
  <CASTING_COST cost="{4}{R}{R}{R}" />
  <TYPE metaname="Creature" />
  <SUB_TYPE metaname="Elemental" />
  <EXPANSION value="AVR" />
  <RARITY metaname="R" />
  <POWER value="7" />
  <TOUGHNESS value="7" />
  <TRIGGERED_ABILITY>
    <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[When Tyrant of Discord enters the battlefield, target opponent chooses a permanent he or she controls at random and sacrifices it. If a nonland permanent is sacrificed this way, repeat this process.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Quand le Tyran de la discorde arrive sur le champ de bataille, l’adversaire ciblé choisit au hasard un permanent qu’il contrôle et le sacrifie. Si un permanent non-terrain est sacrifié de cette manière, répétez ce processus.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Cuando el Tirano de la discordia entre al campo de batalla, el oponente objetivo elige al azar un permanente que controla y sacrifica ese permanente. Si un permanente que no sea tierra es sacrificado de esta manera, repite este proceso.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Wenn der Tyrann der Zwietracht ins Spiel kommt, bestimmt ein Gegner deiner Wahl zufällig eine bleibende Karte, die er kontrolliert, und opfert sie. Wenn auf diese Weise eine bleibende Karte, die kein Land ist, geopfert wird, wiederholst du diesen Vorgang.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Quando il Tiranno della Discordia entra nel campo di battaglia, un avversario bersaglio sceglie a caso un permanente che controlla e lo sacrifica. Se un permanente non terra viene sacrificato in questo modo, ripeti questo procedimento.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[不和の暴君が戦場に出たとき、対戦相手1人を対象とする。そのプレイヤーは自分がコントロールするパーマネント1つを無作為に選び、それを生け贄に捧げる。 これにより土地でないパーマネントが生け贄に捧げられた場合、この手順を繰り返す。]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[불화의 폭군이 전장에 들어올 때, 상대 한 명을 목표로 정한다. 그 상대는 자신이 조종하는 지속물 한 개를 무작위로 정해서 희생한다. 이렇게 해서 대지가 아닌 지속물이 희생될 경우, 이 과정을 반복한다.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[Когда Тиран Раздора выходит на поле битвы, целевой оппонент случайным образом выбирает перманент под своим контролем и жертвует его. Если таким образом был пожертвован не являющийся землей перманент, повторите этот процесс.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[Quando Tirano da Discórdia entra no campo de batalha, o oponente alvo escolhe aleatoriamente uma permanente que ele controle e a sacrifica. Se uma permanente que não seja um terreno for sacrificada dessa maneira, repita o processo.]]></LOCALISED_TEXT>
<TRIGGER value="ZONECHANGE_END" simple_qualifier="self" to_zone="ZONE_BATTLEFIELD" />
<TARGET tag="CARD_QUERY_CHOOSE_OPPONENT" definition="0" compartment="0" count="1" />
<TARGET_DEFINITION id="0">
  local filter = ClearFilter()
 filter:SetFilterType( FILTER_TYPE_PLAYERS )
 filter:Add( FE_TEAM, OP_NOT, EffectController():GetTeam() )
</TARGET_DEFINITION>

<RESOLUTION_TIME_ACTION repeating="1">
    local target_player = EffectDC():Get_Targets(0):Get_PlayerPtr(0)
    if target_player ~= nil then
       local filter = ClearFilter()
       filter:Add( FE_CONTROLLER, OP_IS, target_player )
       local subfilter = filter:AddSubFilter_Or()
       subfilter:Add( FE_TYPE, OP_IS, CARD_TYPE_ARTIFACT )
       subfilter:Add( FE_TYPE, OP_IS, CARD_TYPE_CREATURE )
       subfilter:Add( FE_TYPE, OP_IS, CARD_TYPE_ENCHANTMENT )
       subfilter:Add( FE_TYPE, OP_IS, CARD_TYPE_LAND )
       subfilter:Add( FE_TYPE, OP_IS, CARD_TYPE_PLANESWALKER )
       local filter_count = filter:EvaluateObjects()
       if filter_count &gt; 0 then
         local card = filter:GetRandomEvaluatedObject()
         if card ~= nil then
            card:GuidedReveal( card:GetZone() , card:GetZone() )
             if card:GetCardType():Test( CARD_TYPE_LAND ) then
             target_player:Sacrifice(card)
                 return true
             else
           target_player:Sacrifice(card)
             end
          end
       end
   end
   return false
</RESOLUTION_TIME_ACTION>
</TRIGGERED_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>
TYRANT_OF_DISCORD_276194.zip
Thanks Neo for your help, i have not tried Celestial Archon Yet but i attempted to make Boon Satyr off your code since i wanted that card for one of my decks, let me know if it is correct.
Boon Satyr | Open
Code: Select all
<?xml version='1.0' encoding='UTF-8'?>
<CARD_V2 ExportVersion="1">
  <FILENAME text="BOON_SATYR_812373509" />
  <CARDNAME text="BOON_SATYR" />
  <TITLE>
    <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Boon Satyr]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Satyre de faveur]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Sátiro de las dádivas]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Segenspendender Satyr]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Satiro Infervorato]]></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[Sátiro Abençoado]]></LOCALISED_TEXT>
  </TITLE>
  <MULTIVERSEID value="812373509" />
  <ARTID value="812373509" />
  <ARTIST name="Wesley Burt" />
  <CASTING_COST cost="{1}{G}{G}" />
  <TYPE metaname="Enchantment" />
  <TYPE metaname="Creature" />
  <SUB_TYPE metaname="Satyr" />
  <EXPANSION value="THS" />
  <RARITY metaname="R" />
  <POWER value="4" />
  <TOUGHNESS value="2" />
  <STATIC_ABILITY>
    <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Flash]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Flash]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Destello.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Aufblitzen]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Lampo]]></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[Lampejo]]></LOCALISED_TEXT>
    <INTRINSIC characteristic="CHARACTERISTIC_FLASH" />
  </STATIC_ABILITY>
  <UTILITY_ABILITY qualifier="Alternate" active_zone="ZONE_HAND">
    <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Bestow {3}{G}{G}]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Grâce {3}{G}{G}]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Concesión {3}{G}{G}.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Göttergabe {3}{G}{G}]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Conferire {3}{G}{G}]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[授与 {3}{G}{G} (このカードを授与コストで唱えた場合、これはエンチャント]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[권능 {3}{G}{G}]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[Дар {3}{G}{G}]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[Agraciar {3}{G}{G}]]></LOCALISED_TEXT>
  <COST tag="CARD_QUERY_BESTOW_BOON_SATYR" />
    <COST mana_cost="{3}{G}{G}" type="Mana" />
    <COST type="Generic">
    <PREREQUISITE>
       MTG():ClearFilterMark()
      local filter = ClearFilter()
      filter:Add(FE_TYPE, OP_IS, CARD_TYPE_CREATURE)
      filter:SetZone( ZONE_BATTLEFIELD )
     local filter_count = filter:EvaluateObjects()
     local characteristics = Object():GetCurrentCharacteristics()
     local card_type = characteristics:CardType_GetWritable()
     local sub_type = characteristics:SubType_GetWritable()
     sub_type:ClearAllOfType( CARD_TYPE_CREATURE )
     card_type:Clear()
     card_type:Add( CARD_TYPE_ENCHANTMENT )
     sub_type:Add( ENCHANTMENT_TYPE_AURA )
             for i=0,filter_count-1 do
                local permanent = filter:GetNthEvaluatedObject(i)
                if permanent:GetCurrentCharacteristics():Bool_Get( CHARACTERISTIC_SHROUD ) == false then
                   if Object():CanAttachTo(permanent) then
                      permanent:MarkForFilter()
                   end
                end
             end
             filter:SetMarkedObjectsOnly()
      local count = filter:Count()
      if count &gt; 0 then
       return true
      else
       return false
      end
    </PREREQUISITE>

     <RESOLUTION_TIME_ACTION>
       if  Object() ~= nil then
          local delayDC = EffectDC():Make_Chest(1)
          delayDC:Set_CardPtr(0, Object())
          delayDC:Protect_CardPtr(0)
          MTG():CreateDelayedTrigger(1, delayDC)
       end
    </RESOLUTION_TIME_ACTION>
    </COST>
    </UTILITY_ABILITY>

<TRIGGERED_ABILITY resource_id="1" replacement_query="1" active_zone="ZONE_TRANSITION">
  <TRIGGER value="ZONECHANGE_CONSIDERED" simple_qualifier="self" to_zone="ZONE_BATTLEFIELD" from_zone="ZONE_ANY" pre_trigger="1" />
<CLEANUP fire_once="1"/>

<TARGET tag="CARD_QUERY_CHOOSE_CREATURE_TO_ENCHANT" definition="0" compartment="0" count="1" />
      <TARGET_DEFINITION id="0">
    local filter = ClearFilter()
    filter:Add( FE_TYPE, OP_IS, CARD_TYPE_CREATURE )
    </TARGET_DEFINITION>

     <PLAY_TIME_ACTION>
       if  Object() ~= nil then
          local target =  EffectDC():Get_Targets(0):Get_CardPtr(0)
        if target ~= nil  then
          local delayDC = EffectDC():Make_Chest(2)
          delayDC:Set_CardPtr(0, target)
          delayDC:Protect_CardPtr(0)
          MTG():CreateDelayedTrigger(2, delayDC)
        end
       end
    </PLAY_TIME_ACTION>
     <CONTINUOUS_ACTION layer="4">
        local target =  EffectDC():Get_Targets(0):Get_CardPtr(0)
        if target ~= nil  then
      local characteristics = Object():GetCurrentCharacteristics()
          local card_type = characteristics:CardType_GetWritable()
          local sub_type = characteristics:SubType_GetWritable()
           sub_type:ClearAllOfType( CARD_TYPE_CREATURE )
      card_type:Clear()
           card_type:Add( CARD_TYPE_ENCHANTMENT )
           sub_type:Add( ENCHANTMENT_TYPE_AURA )
           Object():Attach(target)
        end
    </CONTINUOUS_ACTION>

   <CONTINUOUS_ACTION layer="7C">
     local parent = EffectDC():Get_Targets(0):Get_CardPtr(0)
      if parent ~= nil then
        parent:GetCurrentCharacteristics():Power_Add( 4 )
       parent:GetCurrentCharacteristics():Toughness_Add( 2 )
      end
    </CONTINUOUS_ACTION>
    <DURATION>
     local target =  EffectDC():Get_Targets(0):Get_CardPtr(0)
     if (target == nil) or (Object() == nil) then
     return true
     end
    </DURATION>
</TRIGGERED_ABILITY>

<TRIGGERED_ABILITY resource_id="2" replacement_effect="1">
 <CLEANUP fire_once="1" />
 <TRIGGER value="ZONECHANGE_CONSIDERED" to_zone="ZONE_ANY" from_zone="ZONE_BATTLEFIELD" pre_trigger="1">
    if TriggerObject() ~= nil and TriggerObject() == EffectDC():Get_CardPtr(0) then
       return true
    end
    return false
    </TRIGGER>
     <CONTINUOUS_ACTION layer="4">
   local characteristics = Object():GetCurrentCharacteristics()
       local card_type = characteristics:CardType_GetWritable()
       local sub_type = characteristics:SubType_GetWritable()
        sub_type:ClearAllOfType( CARD_TYPE_ENCHANTMENT )
   card_type:Clear()
        card_type:Add( CARD_TYPE_CREATURE )
        card_type:Add( CARD_TYPE_ENCHANTMENT )
        sub_type:Add( CREATURE_TYPE_ARCHON )
    </CONTINUOUS_ACTION>
    <DURATION>
     return (Object == nil)
    </DURATION>
</TRIGGERED_ABILITY>
  <STATIC_ABILITY>
    <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Enchanted creature gets +4/+2.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[La créature enchantée gagne +4/+2.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[La criatura encantada obtiene +4/+2.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Die verzauberte Kreatur erhält +4/+2.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[La creatura incantata prende +4/+2.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[エンチャントされているクリーチャーは+4/+2の修整を受ける。]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[부여된 생물은 +4/+2를 받는다.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[Зачарованное существо получает +4/+2.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[A criatura encantada recebe +4/+2.]]></LOCALISED_TEXT>
  </STATIC_ABILITY>
  <HELP title="MORE_INFO_BADGE_TITLE_12" body="MORE_INFO_BADGE_BODY_12" 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>
drleg3nd
 
Posts: 528
Joined: 14 May 2012, 20:05
Has thanked: 5 times
Been thanked: 30 times

Re: Formal Request Thread

Postby NeoAnderson » 08 Jan 2014, 04:13

drleg3nd wrote:
NeoAnderson wrote:
drleg3nd wrote:sorry to be a bother but just wanna repost on my request of Tyrant of Discord. thx
also Kudos Neo for making bestow, when i get home i'll try it and let ya know...now if we can just get those fuse cards.... :)
I just coded it, i made few quick test so please test it again and let me know if is ok.
Tyrant of Discord | Open
Code: Select all
<?xml version='1.0' encoding='UTF-8'?>
<CARD_V2 ExportVersion="1">
  <FILENAME text="TYRANT_OF_DISCORD_276194" />
  <CARDNAME text="TYRANT_OF_DISCORD" />
  <TITLE>
    <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Tyrant of Discord]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Tyran de la discorde]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Tirano de la discordia]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Tyrann der Zwietracht]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Tiranno della Discordia]]></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[Tirano da Discórdia]]></LOCALISED_TEXT>
  </TITLE>
  <MULTIVERSEID value="276194" />
  <ARTID value="276194" />
  <ARTIST name="Richard Wright" />
  <CASTING_COST cost="{4}{R}{R}{R}" />
  <TYPE metaname="Creature" />
  <SUB_TYPE metaname="Elemental" />
  <EXPANSION value="AVR" />
  <RARITY metaname="R" />
  <POWER value="7" />
  <TOUGHNESS value="7" />
  <TRIGGERED_ABILITY>
    <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[When Tyrant of Discord enters the battlefield, target opponent chooses a permanent he or she controls at random and sacrifices it. If a nonland permanent is sacrificed this way, repeat this process.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Quand le Tyran de la discorde arrive sur le champ de bataille, l’adversaire ciblé choisit au hasard un permanent qu’il contrôle et le sacrifie. Si un permanent non-terrain est sacrifié de cette manière, répétez ce processus.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Cuando el Tirano de la discordia entre al campo de batalla, el oponente objetivo elige al azar un permanente que controla y sacrifica ese permanente. Si un permanente que no sea tierra es sacrificado de esta manera, repite este proceso.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Wenn der Tyrann der Zwietracht ins Spiel kommt, bestimmt ein Gegner deiner Wahl zufällig eine bleibende Karte, die er kontrolliert, und opfert sie. Wenn auf diese Weise eine bleibende Karte, die kein Land ist, geopfert wird, wiederholst du diesen Vorgang.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Quando il Tiranno della Discordia entra nel campo di battaglia, un avversario bersaglio sceglie a caso un permanente che controlla e lo sacrifica. Se un permanente non terra viene sacrificato in questo modo, ripeti questo procedimento.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[不和の暴君が戦場に出たとき、対戦相手1人を対象とする。そのプレイヤーは自分がコントロールするパーマネント1つを無作為に選び、それを生け贄に捧げる。 これにより土地でないパーマネントが生け贄に捧げられた場合、この手順を繰り返す。]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[불화의 폭군이 전장에 들어올 때, 상대 한 명을 목표로 정한다. 그 상대는 자신이 조종하는 지속물 한 개를 무작위로 정해서 희생한다. 이렇게 해서 대지가 아닌 지속물이 희생될 경우, 이 과정을 반복한다.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[Когда Тиран Раздора выходит на поле битвы, целевой оппонент случайным образом выбирает перманент под своим контролем и жертвует его. Если таким образом был пожертвован не являющийся землей перманент, повторите этот процесс.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[Quando Tirano da Discórdia entra no campo de batalha, o oponente alvo escolhe aleatoriamente uma permanente que ele controle e a sacrifica. Se uma permanente que não seja um terreno for sacrificada dessa maneira, repita o processo.]]></LOCALISED_TEXT>
<TRIGGER value="ZONECHANGE_END" simple_qualifier="self" to_zone="ZONE_BATTLEFIELD" />
<TARGET tag="CARD_QUERY_CHOOSE_OPPONENT" definition="0" compartment="0" count="1" />
<TARGET_DEFINITION id="0">
  local filter = ClearFilter()
 filter:SetFilterType( FILTER_TYPE_PLAYERS )
 filter:Add( FE_TEAM, OP_NOT, EffectController():GetTeam() )
</TARGET_DEFINITION>

<RESOLUTION_TIME_ACTION repeating="1">
    local target_player = EffectDC():Get_Targets(0):Get_PlayerPtr(0)
    if target_player ~= nil then
       local filter = ClearFilter()
       filter:Add( FE_CONTROLLER, OP_IS, target_player )
       local subfilter = filter:AddSubFilter_Or()
       subfilter:Add( FE_TYPE, OP_IS, CARD_TYPE_ARTIFACT )
       subfilter:Add( FE_TYPE, OP_IS, CARD_TYPE_CREATURE )
       subfilter:Add( FE_TYPE, OP_IS, CARD_TYPE_ENCHANTMENT )
       subfilter:Add( FE_TYPE, OP_IS, CARD_TYPE_LAND )
       subfilter:Add( FE_TYPE, OP_IS, CARD_TYPE_PLANESWALKER )
       local filter_count = filter:EvaluateObjects()
       if filter_count &gt; 0 then
         local card = filter:GetRandomEvaluatedObject()
         if card ~= nil then
            card:GuidedReveal( card:GetZone() , card:GetZone() )
             if card:GetCardType():Test( CARD_TYPE_LAND ) then
             target_player:Sacrifice(card)
                 return true
             else
           target_player:Sacrifice(card)
             end
          end
       end
   end
   return false
</RESOLUTION_TIME_ACTION>
</TRIGGERED_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>
The attachment TYRANT_OF_DISCORD_276194.zip is no longer available
Thanks Neo for your help, i have not tried Celestial Archon Yet but i attempted to make Boon Satyr off your code since i wanted that card for one of my decks, let me know if it is correct.
Boon Satyr | Open
Code: Select all
<?xml version='1.0' encoding='UTF-8'?>
<CARD_V2 ExportVersion="1">
  <FILENAME text="BOON_SATYR_812373509" />
  <CARDNAME text="BOON_SATYR" />
  <TITLE>
    <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Boon Satyr]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Satyre de faveur]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Sátiro de las dádivas]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Segenspendender Satyr]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Satiro Infervorato]]></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[Sátiro Abençoado]]></LOCALISED_TEXT>
  </TITLE>
  <MULTIVERSEID value="812373509" />
  <ARTID value="812373509" />
  <ARTIST name="Wesley Burt" />
  <CASTING_COST cost="{1}{G}{G}" />
  <TYPE metaname="Enchantment" />
  <TYPE metaname="Creature" />
  <SUB_TYPE metaname="Satyr" />
  <EXPANSION value="THS" />
  <RARITY metaname="R" />
  <POWER value="4" />
  <TOUGHNESS value="2" />
  <STATIC_ABILITY>
    <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Flash]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Flash]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Destello.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Aufblitzen]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Lampo]]></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[Lampejo]]></LOCALISED_TEXT>
    <INTRINSIC characteristic="CHARACTERISTIC_FLASH" />
  </STATIC_ABILITY>
  <UTILITY_ABILITY qualifier="Alternate" active_zone="ZONE_HAND">
    <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Bestow {3}{G}{G}]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Grâce {3}{G}{G}]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Concesión {3}{G}{G}.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Göttergabe {3}{G}{G}]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Conferire {3}{G}{G}]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[授与 {3}{G}{G} (このカードを授与コストで唱えた場合、これはエンチャント]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[권능 {3}{G}{G}]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[Дар {3}{G}{G}]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[Agraciar {3}{G}{G}]]></LOCALISED_TEXT>
  <COST tag="CARD_QUERY_BESTOW_BOON_SATYR" />
    <COST mana_cost="{3}{G}{G}" type="Mana" />
    <COST type="Generic">
    <PREREQUISITE>
       MTG():ClearFilterMark()
      local filter = ClearFilter()
      filter:Add(FE_TYPE, OP_IS, CARD_TYPE_CREATURE)
      filter:SetZone( ZONE_BATTLEFIELD )
     local filter_count = filter:EvaluateObjects()
     local characteristics = Object():GetCurrentCharacteristics()
     local card_type = characteristics:CardType_GetWritable()
     local sub_type = characteristics:SubType_GetWritable()
     sub_type:ClearAllOfType( CARD_TYPE_CREATURE )
     card_type:Clear()
     card_type:Add( CARD_TYPE_ENCHANTMENT )
     sub_type:Add( ENCHANTMENT_TYPE_AURA )
             for i=0,filter_count-1 do
                local permanent = filter:GetNthEvaluatedObject(i)
                if permanent:GetCurrentCharacteristics():Bool_Get( CHARACTERISTIC_SHROUD ) == false then
                   if Object():CanAttachTo(permanent) then
                      permanent:MarkForFilter()
                   end
                end
             end
             filter:SetMarkedObjectsOnly()
      local count = filter:Count()
      if count &gt; 0 then
       return true
      else
       return false
      end
    </PREREQUISITE>

     <RESOLUTION_TIME_ACTION>
       if  Object() ~= nil then
          local delayDC = EffectDC():Make_Chest(1)
          delayDC:Set_CardPtr(0, Object())
          delayDC:Protect_CardPtr(0)
          MTG():CreateDelayedTrigger(1, delayDC)
       end
    </RESOLUTION_TIME_ACTION>
    </COST>
    </UTILITY_ABILITY>

<TRIGGERED_ABILITY resource_id="1" replacement_query="1" active_zone="ZONE_TRANSITION">
  <TRIGGER value="ZONECHANGE_CONSIDERED" simple_qualifier="self" to_zone="ZONE_BATTLEFIELD" from_zone="ZONE_ANY" pre_trigger="1" />
<CLEANUP fire_once="1"/>

<TARGET tag="CARD_QUERY_CHOOSE_CREATURE_TO_ENCHANT" definition="0" compartment="0" count="1" />
      <TARGET_DEFINITION id="0">
    local filter = ClearFilter()
    filter:Add( FE_TYPE, OP_IS, CARD_TYPE_CREATURE )
    </TARGET_DEFINITION>

     <PLAY_TIME_ACTION>
       if  Object() ~= nil then
          local target =  EffectDC():Get_Targets(0):Get_CardPtr(0)
        if target ~= nil  then
          local delayDC = EffectDC():Make_Chest(2)
          delayDC:Set_CardPtr(0, target)
          delayDC:Protect_CardPtr(0)
          MTG():CreateDelayedTrigger(2, delayDC)
        end
       end
    </PLAY_TIME_ACTION>
     <CONTINUOUS_ACTION layer="4">
        local target =  EffectDC():Get_Targets(0):Get_CardPtr(0)
        if target ~= nil  then
      local characteristics = Object():GetCurrentCharacteristics()
          local card_type = characteristics:CardType_GetWritable()
          local sub_type = characteristics:SubType_GetWritable()
           sub_type:ClearAllOfType( CARD_TYPE_CREATURE )
      card_type:Clear()
           card_type:Add( CARD_TYPE_ENCHANTMENT )
           sub_type:Add( ENCHANTMENT_TYPE_AURA )
           Object():Attach(target)
        end
    </CONTINUOUS_ACTION>

   <CONTINUOUS_ACTION layer="7C">
     local parent = EffectDC():Get_Targets(0):Get_CardPtr(0)
      if parent ~= nil then
        parent:GetCurrentCharacteristics():Power_Add( 4 )
       parent:GetCurrentCharacteristics():Toughness_Add( 2 )
      end
    </CONTINUOUS_ACTION>
    <DURATION>
     local target =  EffectDC():Get_Targets(0):Get_CardPtr(0)
     if (target == nil) or (Object() == nil) then
     return true
     end
    </DURATION>
</TRIGGERED_ABILITY>

<TRIGGERED_ABILITY resource_id="2" replacement_effect="1">
 <CLEANUP fire_once="1" />
 <TRIGGER value="ZONECHANGE_CONSIDERED" to_zone="ZONE_ANY" from_zone="ZONE_BATTLEFIELD" pre_trigger="1">
    if TriggerObject() ~= nil and TriggerObject() == EffectDC():Get_CardPtr(0) then
       return true
    end
    return false
    </TRIGGER>
     <CONTINUOUS_ACTION layer="4">
   local characteristics = Object():GetCurrentCharacteristics()
       local card_type = characteristics:CardType_GetWritable()
       local sub_type = characteristics:SubType_GetWritable()
        sub_type:ClearAllOfType( CARD_TYPE_ENCHANTMENT )
   card_type:Clear()
        card_type:Add( CARD_TYPE_CREATURE )
        card_type:Add( CARD_TYPE_ENCHANTMENT )
        sub_type:Add( CREATURE_TYPE_ARCHON )
    </CONTINUOUS_ACTION>
    <DURATION>
     return (Object == nil)
    </DURATION>
</TRIGGERED_ABILITY>
  <STATIC_ABILITY>
    <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Enchanted creature gets +4/+2.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[La créature enchantée gagne +4/+2.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[La criatura encantada obtiene +4/+2.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Die verzauberte Kreatur erhält +4/+2.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[La creatura incantata prende +4/+2.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[エンチャントされているクリーチャーは+4/+2の修整を受ける。]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[부여된 생물은 +4/+2를 받는다.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[Зачарованное существо получает +4/+2.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[A criatura encantada recebe +4/+2.]]></LOCALISED_TEXT>
  </STATIC_ABILITY>
  <HELP title="MORE_INFO_BADGE_TITLE_12" body="MORE_INFO_BADGE_BODY_12" 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>
This card is really similar to the one i made, so i think it should work without any problems. I haven't code other cards with Bestow because i was waiting also for the opinion of our skilled friends, like Riiak, TheFireMind and Sumomole, they can tell better if this approximation can be acceptable. Anyway you can make some tests and let me know if you find something wrong.

UPDATE : I just realized i have read wrong the card Tyrant of Discord i made it reapeating when sacrifice land cards, but should be the inverse. sorry for the mistake. please download this modified version :-)

Tyrant of Discord | Open
Code: Select all
<?xml version='1.0' encoding='UTF-8'?>
<CARD_V2 ExportVersion="1">
  <FILENAME text="TYRANT_OF_DISCORD_276194" />
  <CARDNAME text="TYRANT_OF_DISCORD" />
  <TITLE>
    <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Tyrant of Discord]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Tyran de la discorde]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Tirano de la discordia]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Tyrann der Zwietracht]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Tiranno della Discordia]]></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[Tirano da Discórdia]]></LOCALISED_TEXT>
  </TITLE>
  <MULTIVERSEID value="276194" />
  <ARTID value="276194" />
  <ARTIST name="Richard Wright" />
  <CASTING_COST cost="{4}{R}{R}{R}" />
  <TYPE metaname="Creature" />
  <SUB_TYPE metaname="Elemental" />
  <EXPANSION value="AVR" />
  <RARITY metaname="R" />
  <POWER value="7" />
  <TOUGHNESS value="7" />
  <TRIGGERED_ABILITY>
    <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[When Tyrant of Discord enters the battlefield, target opponent chooses a permanent he or she controls at random and sacrifices it. If a nonland permanent is sacrificed this way, repeat this process.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Quand le Tyran de la discorde arrive sur le champ de bataille, l’adversaire ciblé choisit au hasard un permanent qu’il contrôle et le sacrifie. Si un permanent non-terrain est sacrifié de cette manière, répétez ce processus.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Cuando el Tirano de la discordia entre al campo de batalla, el oponente objetivo elige al azar un permanente que controla y sacrifica ese permanente. Si un permanente que no sea tierra es sacrificado de esta manera, repite este proceso.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Wenn der Tyrann der Zwietracht ins Spiel kommt, bestimmt ein Gegner deiner Wahl zufällig eine bleibende Karte, die er kontrolliert, und opfert sie. Wenn auf diese Weise eine bleibende Karte, die kein Land ist, geopfert wird, wiederholst du diesen Vorgang.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Quando il Tiranno della Discordia entra nel campo di battaglia, un avversario bersaglio sceglie a caso un permanente che controlla e lo sacrifica. Se un permanente non terra viene sacrificato in questo modo, ripeti questo procedimento.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[不和の暴君が戦場に出たとき、対戦相手1人を対象とする。そのプレイヤーは自分がコントロールするパーマネント1つを無作為に選び、それを生け贄に捧げる。 これにより土地でないパーマネントが生け贄に捧げられた場合、この手順を繰り返す。]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[불화의 폭군이 전장에 들어올 때, 상대 한 명을 목표로 정한다. 그 상대는 자신이 조종하는 지속물 한 개를 무작위로 정해서 희생한다. 이렇게 해서 대지가 아닌 지속물이 희생될 경우, 이 과정을 반복한다.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[Когда Тиран Раздора выходит на поле битвы, целевой оппонент случайным образом выбирает перманент под своим контролем и жертвует его. Если таким образом был пожертвован не являющийся землей перманент, повторите этот процесс.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[Quando Tirano da Discórdia entra no campo de batalha, o oponente alvo escolhe aleatoriamente uma permanente que ele controle e a sacrifica. Se uma permanente que não seja um terreno for sacrificada dessa maneira, repita o processo.]]></LOCALISED_TEXT>
<TRIGGER value="ZONECHANGE_END" simple_qualifier="self" to_zone="ZONE_BATTLEFIELD" />
<TARGET tag="CARD_QUERY_CHOOSE_OPPONENT" definition="0" compartment="0" count="1" />
<TARGET_DEFINITION id="0">
  local filter = ClearFilter()
 filter:SetFilterType( FILTER_TYPE_PLAYERS )
 filter:Add( FE_TEAM, OP_NOT, EffectController():GetTeam() )
</TARGET_DEFINITION>

<RESOLUTION_TIME_ACTION repeating="1">
    local target_player = EffectDC():Get_Targets(0):Get_PlayerPtr(0)
    if target_player ~= nil then
       local filter = ClearFilter()
       filter:Add( FE_CONTROLLER, OP_IS, target_player )
       local subfilter = filter:AddSubFilter_Or()
       subfilter:Add( FE_TYPE, OP_IS, CARD_TYPE_ARTIFACT )
       subfilter:Add( FE_TYPE, OP_IS, CARD_TYPE_CREATURE )
       subfilter:Add( FE_TYPE, OP_IS, CARD_TYPE_ENCHANTMENT )
       subfilter:Add( FE_TYPE, OP_IS, CARD_TYPE_LAND )
       subfilter:Add( FE_TYPE, OP_IS, CARD_TYPE_PLANESWALKER )
       local filter_count = filter:EvaluateObjects()
       if filter_count &gt; 0 then
         local card = filter:GetRandomEvaluatedObject()
         if card ~= nil then
            card:GuidedReveal( card:GetZone() , card:GetZone() )
             if card:GetCardType():Test( CARD_TYPE_LAND ) == false then
             target_player:Sacrifice(card)
                 return true
             else
           target_player:Sacrifice(card)
             end
          end
       end
   end
   return false
</RESOLUTION_TIME_ACTION>
</TRIGGERED_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>
TYRANT_OF_DISCORD_276194 rev.zip
Card XML REV.A + TDX
(546.99 KiB) Downloaded 225 times
NeoAnderson
 
Posts: 914
Joined: 10 Sep 2013, 07:49
Has thanked: 18 times
Been thanked: 139 times

Re: Formal Request Thread

Postby thefiremind » 08 Jan 2014, 10:41

NeoAnderson wrote:I haven't code other cards with Bestow because i was waiting also for the opinion of our skilled friends, like Riiak, TheFireMind and Sumomole, they can tell better if this approximation can be acceptable.
You can check your card against the rules you find here:
http://wiki.mtgsalvation.com/article/Bestow
and see how much rule-compliant it is.
As far as I can understand from the code, you are transforming the Aura into a creature if the parent leaves the battlefield. Unfortunately, I think that the "becomes unattached" also includes the scenario where the parent gains protection from the Aura's color. I might be wrong, though.
And they say that they regret having made such a complicated mechanic as suspend... according to me, bestow is much harder to understand, once you get out of the basic interactions.
< 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 NeoAnderson » 08 Jan 2014, 12:59

thefiremind wrote:
NeoAnderson wrote:I haven't code other cards with Bestow because i was waiting also for the opinion of our skilled friends, like Riiak, TheFireMind and Sumomole, they can tell better if this approximation can be acceptable.
You can check your card against the rules you find here:
http://wiki.mtgsalvation.com/article/Bestow
and see how much rule-compliant it is.
As far as I can understand from the code, you are transforming the Aura into a creature if the parent leaves the battlefield. Unfortunately, I think that the "becomes unattached" also includes the scenario where the parent gains protection from the Aura's color. I might be wrong, though.
And they say that they regret having made such a complicated mechanic as suspend... according to me, bestow is much harder to understand, once you get out of the basic interactions.
Ok i have read the rules and i think you're right, i haven't considered that an aura can be detached by other effect that doesn't complains to remove from battlefield the parent. Anyway i think we can duplicate a trigger adding the condition TRIGGER_UNATTACHED_FROM_CREATURE, what you think?

About the concept of my Bestow approximation is the follow :

1. When you cast using Bestow cost the card check for suitable targets (unfortunately i can't use target block into alternative cost, so the target checking is limitated, card's with protection from targetting are considered legal target during this step)
To check the suitable target i turn it into an aura spell and check with CanAttachTo, this effect should end when it is launched into the stack.
2. Into the stack we select the real target and here we understand if there are suitable targets, if yes it is turned into an Aura spell and is attached to that creature, if there are no suitable targets, it resolves as a creature spell.
3. As you said once it is attached it turns back to a creature when the parent card will leave the battlefield.
NeoAnderson
 
Posts: 914
Joined: 10 Sep 2013, 07:49
Has thanked: 18 times
Been thanked: 139 times

Re: Formal Request Thread

Postby neuro » 08 Jan 2014, 14:18

Hi everyone,
I have been reading this forum for 1 month and thanks to you I can create my own decks to play itYou guys do wonderfull job.

My first post to forum is for request which is not nice but these are 2 humble (i think easy to implement and not buggable) requests for my boros deck.

Brute Force, Stun Sniper.

I could not find any deck containing these cards.

Thanks everyone.
neuro
 
Posts: 4
Joined: 08 Jan 2014, 14:10
Has thanked: 0 time
Been thanked: 0 time

Re: Formal Request Thread

Postby RiiakShiNal » 08 Jan 2014, 14:59

neuro wrote:Hi everyone,
I have been reading this forum for 1 month and thanks to you I can create my own decks to play itYou guys do wonderfull job.

My first post to forum is for request which is not nice but these are 2 humble (i think easy to implement and not buggable) requests for my boros deck.

Brute Force, Stun Sniper.

I could not find any deck containing these cards.

Thanks everyone.
These are both good cards to learn how to make your own cards:

Brute Force is a red Giant Growth (official card).

Stun Sniper requires slightly more work as you can pull most of the ability from Rod of Ruin (official card), but you will need to change the cost to be {1} instead of {3} and remove the SetFilterType() line so that you can only target creatures (not players). "Tap that creature" can be pulled from Stabbing Pain (official card).
RiiakShiNal
Programmer
 
Posts: 2188
Joined: 16 May 2011, 21:37
Has thanked: 75 times
Been thanked: 497 times

Re: Formal Request Thread

Postby NeoAnderson » 08 Jan 2014, 15:04

According with TheFireMind pointings, i have revised (again :-)) Bestow implementation.

Main modifies :
1. Change the restoring of creature status, now it turns back to a creature from aura status if :

A. The parent becomes nil
B. The parent changes zone
C. The parent is simply detached.
D. The parent becomes an illegal target.
E. The parent gains protection from the Aura(type, colour...)


2. The Effect onto parent card ends if :
A. The Aura change zone
B. The Aura is detached.
C. The Aura Becomes nil

D. The parent gains protection from the Aura(type, colour...)


Main code changes :
I have replaced the Trigger ZONECHAGE_CONSIDERED with UNATTACHED_FROM_CREATURE this will include a lot of situations not considered by the first trigger. Unfortunately it doesn't include when the the aura changes zone, so to avoid to keep ZONECHAGE_CONSIDERED trigger i have added a LinkedDC variable to end the aura effect. I also had to add some conditions to the effect duration.

Celestial Archon REV 3.0 | Open
Code: Select all
<?xml version='1.0' encoding='UTF-8'?>
<CARD_V2 ExportVersion="1">
  <FILENAME text="CELESTIAL_ARCHON_373503" />
  <CARDNAME text="CELESTIAL_ARCHON" />
  <TITLE>
    <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Celestial Archon]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Archonte céleste]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Arconte celestial]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Himmlischer Archon]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Arconte Celeste]]></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[Arconte Celestial]]></LOCALISED_TEXT>
  </TITLE>
  <MULTIVERSEID value="373503" />
  <ARTID value="373503" />
  <ARTIST name="Matt Stewart" />
  <CASTING_COST cost="{3}{W}{W}" />
  <TYPE metaname="Enchantment" />
  <TYPE metaname="Creature" />
  <SUB_TYPE metaname="Archon" />
  <EXPANSION value="THS" />
  <RARITY metaname="R" />
  <POWER value="4" />
  <TOUGHNESS value="4" />
<UTILITY_ABILITY qualifier="Alternate" active_zone="ZONE_HAND">
    <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Bestow {5}{W}{W}]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Grâce {5}{W}{W}]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Concesión {5}{W}{W}]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Göttergabe {5}{W}{W}]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Conferire {5}{W}{W}]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[授与 {5}{W}{W} (このカードを授与コストで唱えた場合、これはエンチャント]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[권능 {5}{W}{W}]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[Дар {5}{W}{W}]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[Agraciar {5}{W}{W}]]></LOCALISED_TEXT>
    <COST tag="CARD_QUERY_BESTOW_CELESTIAL_ARCHON" />
    <COST mana_cost="{5}{W}{W}" type="Mana" />
    <COST type="Generic">
    <PREREQUISITE>
       MTG():ClearFilterMark()
      local filter = ClearFilter()
      filter:Add(FE_TYPE, OP_IS, CARD_TYPE_CREATURE)
      filter:SetZone( ZONE_BATTLEFIELD )
     local filter_count = filter:EvaluateObjects()
     local characteristics = Object():GetCurrentCharacteristics()
     local card_type = characteristics:CardType_GetWritable()
     local sub_type = characteristics:SubType_GetWritable()
     sub_type:ClearAllOfType( CARD_TYPE_CREATURE )
     card_type:Clear()
     card_type:Add( CARD_TYPE_ENCHANTMENT )
     sub_type:Add( ENCHANTMENT_TYPE_AURA )
             for i=0,filter_count-1 do
                local permanent = filter:GetNthEvaluatedObject(i)
                if permanent:GetCurrentCharacteristics():Bool_Get( CHARACTERISTIC_SHROUD ) == false then
                   if Object():CanAttachTo(permanent) then
                      permanent:MarkForFilter()
                   end
                end
             end
             filter:SetMarkedObjectsOnly()
      local count = filter:Count()
      if count &gt; 0 then
       return true
      else
       return false
      end
    </PREREQUISITE>

     <RESOLUTION_TIME_ACTION>
       if  Object() ~= nil then
          local delayDC = EffectDC():Make_Chest(1)
          delayDC:Set_CardPtr(0, Object())
          delayDC:Protect_CardPtr(0)
          MTG():CreateDelayedTrigger(1, delayDC)
          MTG():CreateDelayedTrigger(3, delayDC)
       end
    </RESOLUTION_TIME_ACTION>
    </COST>
    </UTILITY_ABILITY>

<TRIGGERED_ABILITY resource_id="1" linked_ability_group="1" replacement_query="1" active_zone="ZONE_TRANSITION">
  <TRIGGER value="ZONECHANGE_CONSIDERED" simple_qualifier="self" to_zone="ZONE_BATTLEFIELD" from_zone="ZONE_ANY" pre_trigger="1" />
<CLEANUP fire_once="1"/>

<TARGET tag="CARD_QUERY_CHOOSE_CREATURE_TO_ENCHANT" definition="0" compartment="0" count="1" />
      <TARGET_DEFINITION id="0">
    local filter = ClearFilter()
    filter:Add( FE_TYPE, OP_IS, CARD_TYPE_CREATURE )
    </TARGET_DEFINITION>

     <PLAY_TIME_ACTION>
       if  Object() ~= nil then
          local target =  EffectDC():Get_Targets(0):Get_CardPtr(0)
        if target ~= nil  then
          LinkedDC():Set_Int(0,1)
        end
       end
    </PLAY_TIME_ACTION>
     <CONTINUOUS_ACTION layer="4">
        local target =  EffectDC():Get_Targets(0):Get_CardPtr(0)
        if target ~= nil  then
      local characteristics = Object():GetCurrentCharacteristics()
          local card_type = characteristics:CardType_GetWritable()
          local sub_type = characteristics:SubType_GetWritable()
           sub_type:ClearAllOfType( CARD_TYPE_CREATURE )
      card_type:Clear()
           card_type:Add( CARD_TYPE_ENCHANTMENT )
           sub_type:Add( ENCHANTMENT_TYPE_AURA )
           Object():Attach(target)
        end
    </CONTINUOUS_ACTION>

   <CONTINUOUS_ACTION layer="7C">
     local parent = EffectDC():Get_Targets(0):Get_CardPtr(0)
      if parent ~= nil then
        parent:GetCurrentCharacteristics():Power_Add( 4 )
       parent:GetCurrentCharacteristics():Toughness_Add( 4 )
      end
    </CONTINUOUS_ACTION>
    <CONTINUOUS_ACTION layer="6">
    local parent = EffectDC():Get_Targets(0):Get_CardPtr(0)
    if parent ~= nil then
       parent:GetCurrentCharacteristics():Bool_Set( CHARACTERISTIC_FLYING, 1 )
       parent:GetCurrentCharacteristics():Bool_Set( CHARACTERISTIC_FIRST_STRIKE, 1 )
    end
    </CONTINUOUS_ACTION>
    <DURATION>
     local target =  EffectDC():Get_Targets(0):Get_CardPtr(0)
     if (target == nil) or (target:GetCardType():Test(CARD_TYPE_CREATURE) == false) or (Object() == nil) or (LinkedDC():Get_Int(0) == 2) or (Object():GetZone() == ZONE_GRAVEYARD) or (Object():GetZone() == ZONE_HAND) or (Object():GetZone() == ZONE_EXILE) or (Object():GetZone() == ZONE_LIBRARY) then
     return true
     end
    </DURATION>
</TRIGGERED_ABILITY>

<TRIGGERED_ABILITY resource_id="3" linked_ability_group="1" replacement_effect="1">
 <TRIGGER value="UNATTACHED_FROM_CREATURE" simple_qualifier="self" pre_trigger="1"/>
 <CLEANUP fire_once="1" />

        <RESOLUTION_TIME_ACTION>
          LinkedDC():Set_Int(0,2)
       </RESOLUTION_TIME_ACTION>

     <CONTINUOUS_ACTION layer="4">
   local characteristics = Object():GetCurrentCharacteristics()
       local card_type = characteristics:CardType_GetWritable()
       local sub_type = characteristics:SubType_GetWritable()
        sub_type:ClearAllOfType( CARD_TYPE_ENCHANTMENT )
   card_type:Clear()
        card_type:Add( CARD_TYPE_CREATURE )
        card_type:Add( CARD_TYPE_ENCHANTMENT )
        sub_type:Add( CREATURE_TYPE_ARCHON )
    </CONTINUOUS_ACTION>
    <DURATION>
     return (Object == nil)
    </DURATION>
</TRIGGERED_ABILITY>

  <STATIC_ABILITY>
    <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Flying, first strike]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Vol, initiative]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Vuela, daña primero.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Fliegend, Erstschlag]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Volare, 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[Voar, iniciativa]]></LOCALISED_TEXT>
    <INTRINSIC characteristic="CHARACTERISTIC_FLYING" />
    <INTRINSIC characteristic="CHARACTERISTIC_FIRST_STRIKE" />
  </STATIC_ABILITY>
  <STATIC_ABILITY>
    <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Enchanted creature gets +4/+4 and has flying and first strike.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[La créature enchantée gagne +4/+4 et a le vol et l’initiative.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[La criatura encantada obtiene +4/+4 y tiene las habilidades de volar y dañar primero.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Die verzauberte Kreatur erhält +4/+4 und hat Flugfähigkeit und Erstschlag.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[La creatura incantata prende +4/+4 e ha volare e attacco improvviso.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[エンチャントされているクリーチャーは、+4/+4の修整を受けるとともに飛行と先制攻撃を持つ。]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[부여된 생물은 +4/+4를 받고 비행 능력과 선제공격 능력을 가진다.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[Зачарованное существо получает +4/+4 и имеет Полет и Первый удар.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[A criatura encantada recebe +4/+4 e tem voar e iniciativa.]]></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>
I am sorry if i am revising continuosly this card, but as you can understand it is a new ability implementation, so until we reach an acceptable approximation this can happens.
Riiak i would also receive you comments about it hope we can define an acceptable compromise with Bestow.
Last edited by NeoAnderson on 08 Jan 2014, 23:42, edited 1 time in total.
NeoAnderson
 
Posts: 914
Joined: 10 Sep 2013, 07:49
Has thanked: 18 times
Been thanked: 139 times

PreviousNext

Return to 2014

Who is online

Users browsing this forum: Majestic-12 [Bot] and 10 guests

Main Menu

User Menu

Our Partners


Who is online

In total there are 11 users online :: 1 registered, 0 hidden and 10 guests (based on users active over the past 10 minutes)
Most users ever online was 7303 on 15 Jul 2025, 20:46

Users browsing this forum: Majestic-12 [Bot] and 10 guests

Login Form