Page 1 of 1

The Mimeoplasm (Untested)

PostPosted: 05 Sep 2014, 01:01
by volrathxp
So I've been looking at this guy, because he's fun to play with, and I built this up. Not sure how well it works, as it's not tested yet, but looking to make sure I'm on the right track here.

The Mimeoplasm (Untested) | Open
Code: Select all
<?xml version='1.0' encoding='UTF-8'?>
<CARD_V2 ExportVersion="1">
  <FILENAME text="THE_MIMEOPLASM_1000338445" />
  <CARDNAME text="THE_MIMEOPLASM" />
  <TITLE>
    <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[The Mimeoplasm]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[The Mimeoplasm]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[The Mimeoplasm]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[The Mimeoplasm]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[The Mimeoplasm]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[The Mimeoplasm]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[The Mimeoplasm]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[The Mimeoplasm]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[The Mimeoplasm]]></LOCALISED_TEXT>
  </TITLE>
  <MULTIVERSEID value="1000338445" />
  <ARTID value="1000338445" />
  <ARTIST name="Svetlin Velinov" />
  <CASTING_COST cost="{2}{G}{U}{B}" />
  <SUPERTYPE metaname="Legendary" />
  <TYPE metaname="Creature" />
  <SUB_TYPE metaname="Ooze" />
  <EXPANSION value="CM1" />
  <RARITY metaname="M" />
  <POWER value="0" />
  <TOUGHNESS value="0" />
  <TRIGGERED_ABILITY replacement_query="1" active_zone="ZONE_TRANSITION">
    <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[As The Mimeoplasm enters the battlefield, you may exile two creature cards from graveyards. If you do, it enters the battlefield as a copy of one of those cards with a number of additional +1/+1 counters on it equal to the power of the other card.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[As The Mimeoplasm enters the battlefield, you may exile two creature cards from graveyards. If you do, it enters the battlefield as a copy of one of those cards with a number of additional +1/+1 counters on it equal to the power of the other card.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[As The Mimeoplasm enters the battlefield, you may exile two creature cards from graveyards. If you do, it enters the battlefield as a copy of one of those cards with a number of additional +1/+1 counters on it equal to the power of the other card.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[As The Mimeoplasm enters the battlefield, you may exile two creature cards from graveyards. If you do, it enters the battlefield as a copy of one of those cards with a number of additional +1/+1 counters on it equal to the power of the other card.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Mentre Il Mimoplasma entra nel campo di battaglia, puoi esiliare due carte creatura dai cimiteri. Se lo fai, entra nel campo di battaglia come copia di una di quelle carte con un numero di segnalini +1/+1 addizionali pari alla forza dell’altra carta]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[As The Mimeoplasm enters the battlefield, you may exile two creature cards from graveyards. If you do, it enters the battlefield as a copy of one of those cards with a number of additional +1/+1 counters on it equal to the power of the other card.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[As The Mimeoplasm enters the battlefield, you may exile two creature cards from graveyards. If you do, it enters the battlefield as a copy of one of those cards with a number of additional +1/+1 counters on it equal to the power of the other card.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[As The Mimeoplasm enters the battlefield, you may exile two creature cards from graveyards. If you do, it enters the battlefield as a copy of one of those cards with a number of additional +1/+1 counters on it equal to the power of the other card.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[As The Mimeoplasm enters the battlefield, you may exile two creature cards from graveyards. If you do, it enters the battlefield as a copy of one of those cards with a number of additional +1/+1 counters on it equal to the power of the other card.]]></LOCALISED_TEXT>
 <TRIGGER value="ZONECHANGE_TRANSITION" simple_qualifier="self" to_zone="ZONE_BATTLEFIELD" from_zone="ZONE_ANY" />
      <RESOLUTION_TIME_ACTION>
    local filter = ClearFilter()
    filter:Add( FE_TYPE, OP_IS, CARD_TYPE_CREATURE )
    filter:Add( FE_CONTROLLER, OP_IS, EffectController() )
    filter:SetZone( ZONE_GRAVEYARD ) 
    EffectController():ChooseItem( "CARD_QUERY_CHOOSE_CREATURE_TO_EXILE_CLONE", EffectDC():Make_Targets(0), QUERY_FLAG_MAY )
    EffectController():ChooseItem( "CARD_QUERY_CHOOSE_CREATURE_TO_EXILE_PT", EffectDC():Make_Targets(1), QUERY_FLAG_MAY )
    </RESOLUTION_TIME_ACTION>
   <RESOLUTION_TIME_ACTION>
    local target_creature = EffectDC():Get_Targets(0):Get_CardPtr(0)
    if ( target_creature ~= nil ) then   
       target_creature:StoreCopiableValues(EffectDC():Make_Chest(1))   -- this grabs the copiable values from the target and puts them into a datachest
       EffectSource():UseCopiableValues(EffectDC():Get_Chest(1))      -- this needs to be here to refire any other transition triggers (e.g. devour)
       EffectDC():Protect_CardPtr( COMPARTMENT_ID_EFFECT_SOURCE )          -- this stops the effect from being wiped when we complete the zonechange
    end
    local target_creature2 = EffectDC():Get_Targets(1):Get_CardPtr(0)
   if ( target_creature2 ~= nil) then
      local power = target_creature2:GetCurrentCharacteristics():Power_Get()
      
      EffectSource():AddCounters( MTG():PlusOnePlusOneCounters():power )
   end
    </RESOLUTION_TIME_ACTION>
    <RESOLUTION_TIME_ACTION>
   local target_creature = EffectDC():Get_Targets(0):Get_CardPtr(0)

      local target_creature2 = EffectDC():Get_Targets(1):Get_CardPtr(0)

   if target_creature ~= nil then

      target_creature:Exile()

   end

   if target_creature2 ~= nil then

      target_creature2:Exile()

   end
    </RESOLUTION_TIME_ACTION>
      <CONTINUOUS_ACTION layer="1">
    if EffectSource() ~= nil and EffectDC():Get_Chest(1) ~= nil then
       EffectSource():UseCopiableValues(EffectDC():Get_Chest(1))
   
    -- if you want to do other things as part of the copy effect, DO SO HERE
       -- e.g EffectSource():GetCurrentCharacteristics():GrantAbility(1)
       -- e.g EffectSource():GetCurrentCharacteristics():Power_Set(7)
       -- e.g EffectSource():GetCurrentCharacteristics():Toughness_Set(7)
    end
    </CONTINUOUS_ACTION>
      <DURATION>
    return (EffectSource() == nil)
    </DURATION>
 </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>

Re: The Mimeoplasm (Untested)

PostPosted: 05 Sep 2014, 08:13
by thefiremind
I have never tried, but I think you can't put 2 queries inside the same action, you probably need to split the first RESOLUTION_TIME_ACTION in 2 (and repeat the filtering for each one). You are also using register #1 both for the second target and the copiable values, you need to change one of them.

Re: The Mimeoplasm (Untested)

PostPosted: 05 Sep 2014, 08:47
by Kithkin
Just in case you are looking for the hi-res art :D

The Mimeoplasm -- http://velinov.deviantart.com/art/The-M ... -212967918

Re: The Mimeoplasm (Untested)

PostPosted: 05 Sep 2014, 12:25
by volrathxp
thefiremind wrote:I have never tried, but I think you can't put 2 queries inside the same action, you probably need to split the first RESOLUTION_TIME_ACTION in 2 (and repeat the filtering for each one). You are also using register #1 both for the second target and the copiable values, you need to change one of them.
Yeah, I was thinking about that. I will have to stick him in a deck and run through some tests, methinks and try that.

Re: The Mimeoplasm (Untested)

PostPosted: 05 Sep 2014, 12:26
by volrathxp
I also just realized I need to fix the EffectController() line in the filter since Mimeoplasm can pull from any yard. d'oh.

Re: The Mimeoplasm (Untested)

PostPosted: 05 Sep 2014, 16:38
by thefiremind
I made an attempt at The Mimeoplasm's ability, cleaning your code in the process:
The Mimeoplasm's ability code (untested) | Open
Code: Select all
    <RESOLUTION_TIME_ACTION>
    local filter = ClearFilter()
    filter:Add(FE_TYPE, OP_IS, CARD_TYPE_CREATURE)
    filter:SetZone(ZONE_GRAVEYARD)
    if filter:CountStopAt(2) == 2 then
       EffectController():ChooseItem( "CARD_QUERY_CHOOSE_CREATURE_TO_EXILE_CLONE", EffectDC():Make_Targets(0), QUERY_FLAG_MAY )
    end
    </RESOLUTION_TIME_ACTION>
    <RESOLUTION_TIME_ACTION>
    local target1 = EffectDC():Get_Targets(0) and EffectDC():Get_Targets(0):Get_CardPtr(0)
    if target1 ~= nil then
       local filter = ClearFilter()
       filter:Add(FE_TYPE, OP_IS, CARD_TYPE_CREATURE)
       filter:SetZone(ZONE_GRAVEYARD)
       filter:Add(FE_CARD_INSTANCE, OP_NOT, target1)
       EffectController():ChooseItem( "CARD_QUERY_CHOOSE_CREATURE_TO_EXILE_PT", EffectDC():Make_Targets(1) )
    end
    </RESOLUTION_TIME_ACTION>
    <RESOLUTION_TIME_ACTION>
    local target1 = EffectDC():Get_Targets(0) and EffectDC():Get_Targets(0):Get_CardPtr(0)
    if target1 ~= nil then
       target1:StoreCopiableValues( EffectDC():Make_Chest(2) )
       EffectSource():UseCopiableValues( EffectDC():Get_Chest(2) )
       EffectDC():Protect_CardPtr(COMPARTMENT_ID_EFFECT_SOURCE)
    end
    </RESOLUTION_TIME_ACTION>
    <RESOLUTION_TIME_ACTION>
    local target1 = EffectDC():Get_Targets(0) and EffectDC():Get_Targets(0):Get_CardPtr(0)
    if target1 ~= nil then
       target1:Exile()
    end
    local target2 = EffectDC():Get_Targets(1) and EffectDC():Get_Targets(1):Get_CardPtr(0)
    if target2 ~= nil then
       EffectSource():AddCounters( MTG():PlusOnePlusOneCounters(), target2:GetCurrentCharacteristics():Power_Get() )
       target2:Exile()
    end
    </RESOLUTION_TIME_ACTION>
    <CONTINUOUS_ACTION layer="1">
    if EffectSource() ~= nil and EffectDC():Get_Chest(2) ~= nil then
       EffectSource():UseCopiableValues( EffectDC():Get_Chest(2) )
    end
    </CONTINUOUS_ACTION>
    <DURATION>
    return EffectSource() == nil
    </DURATION>
I checked for the presence of at least 2 creatures in graveyards and I removed the "may" from the second choice because Gatherer says you can't choose just one creature, either 2 or none. So as soon as you chose the first one you are bound to choose the second.

Re: The Mimeoplasm (Untested)

PostPosted: 05 Sep 2014, 18:03
by volrathxp
thefiremind wrote:I made an attempt at The Mimeoplasm's ability, cleaning your code in the process:
The Mimeoplasm's ability code (untested) | Open
Code: Select all
    <RESOLUTION_TIME_ACTION>
    local filter = ClearFilter()
    filter:Add(FE_TYPE, OP_IS, CARD_TYPE_CREATURE)
    filter:SetZone(ZONE_GRAVEYARD)
    if filter:CountStopAt(2) == 2 then
       EffectController():ChooseItem( "CARD_QUERY_CHOOSE_CREATURE_TO_EXILE_CLONE", EffectDC():Make_Targets(0), QUERY_FLAG_MAY )
    end
    </RESOLUTION_TIME_ACTION>
    <RESOLUTION_TIME_ACTION>
    local target1 = EffectDC():Get_Targets(0) and EffectDC():Get_Targets(0):Get_CardPtr(0)
    if target1 ~= nil then
       local filter = ClearFilter()
       filter:Add(FE_TYPE, OP_IS, CARD_TYPE_CREATURE)
       filter:SetZone(ZONE_GRAVEYARD)
       filter:Add(FE_CARD_INSTANCE, OP_NOT, target1)
       EffectController():ChooseItem( "CARD_QUERY_CHOOSE_CREATURE_TO_EXILE_PT", EffectDC():Make_Targets(1) )
    end
    </RESOLUTION_TIME_ACTION>
    <RESOLUTION_TIME_ACTION>
    local target1 = EffectDC():Get_Targets(0) and EffectDC():Get_Targets(0):Get_CardPtr(0)
    if target1 ~= nil then
       target1:StoreCopiableValues( EffectDC():Make_Chest(2) )
       EffectSource():UseCopiableValues( EffectDC():Get_Chest(2) )
       EffectDC():Protect_CardPtr(COMPARTMENT_ID_EFFECT_SOURCE)
    end
    </RESOLUTION_TIME_ACTION>
    <RESOLUTION_TIME_ACTION>
    local target1 = EffectDC():Get_Targets(0) and EffectDC():Get_Targets(0):Get_CardPtr(0)
    if target1 ~= nil then
       target1:Exile()
    end
    local target2 = EffectDC():Get_Targets(1) and EffectDC():Get_Targets(1):Get_CardPtr(0)
    if target2 ~= nil then
       EffectSource():AddCounters( MTG():PlusOnePlusOneCounters(), target2:GetCurrentCharacteristics():Power_Get() )
       target2:Exile()
    end
    </RESOLUTION_TIME_ACTION>
    <CONTINUOUS_ACTION layer="1">
    if EffectSource() ~= nil and EffectDC():Get_Chest(2) ~= nil then
       EffectSource():UseCopiableValues( EffectDC():Get_Chest(2) )
    end
    </CONTINUOUS_ACTION>
    <DURATION>
    return EffectSource() == nil
    </DURATION>
I checked for the presence of at least 2 creatures in graveyards and I removed the "may" from the second choice because Gatherer says you can't choose just one creature, either 2 or none. So as soon as you chose the first one you are bound to choose the second.
Yep. I got him working, I just needed to remove the may clause and check for creatures. :)