Board index
Programs with AI or Rules Enforcement
Magic: The Gathering - Duels of the Planeswalkers
Programming Talk



The Mimeoplasm (Untested)
Moderator: CCGHQ Admins
7 posts
• Page 1 of 1
The Mimeoplasm (Untested)
by volrathxp » 05 Sep 2014, 01:01
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>
volrathxp
Re: The Mimeoplasm (Untested)
by thefiremind » 05 Sep 2014, 08:13
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.
< Former DotP 2012/2013/2014 modder >
Currently busy with life...
Currently busy with life...
-
thefiremind - Programmer
- Posts: 3515
- Joined: 07 Nov 2011, 10:55
- Has thanked: 118 times
- Been thanked: 722 times
Re: The Mimeoplasm (Untested)
by Kithkin » 05 Sep 2014, 08:47
Just in case you are looking for the hi-res art
The Mimeoplasm -- http://velinov.deviantart.com/art/The-M ... -212967918

The Mimeoplasm -- http://velinov.deviantart.com/art/The-M ... -212967918
-
Kithkin - Posts: 456
- Joined: 21 Feb 2014, 07:12
- Location: Cologne, GERMANY
- Has thanked: 11 times
- Been thanked: 56 times
Re: The Mimeoplasm (Untested)
by volrathxp » 05 Sep 2014, 12:25
Yeah, I was thinking about that. I will have to stick him in a deck and run through some tests, methinks and try that.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.
volrathxp
Re: The Mimeoplasm (Untested)
by volrathxp » 05 Sep 2014, 12:26
I also just realized I need to fix the EffectController() line in the filter since Mimeoplasm can pull from any yard. d'oh.
volrathxp
Re: The Mimeoplasm (Untested)
by thefiremind » 05 Sep 2014, 16:38
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>
< Former DotP 2012/2013/2014 modder >
Currently busy with life...
Currently busy with life...
-
thefiremind - Programmer
- Posts: 3515
- Joined: 07 Nov 2011, 10:55
- Has thanked: 118 times
- Been thanked: 722 times
Re: The Mimeoplasm (Untested)
by volrathxp » 05 Sep 2014, 18:03
Yep. I got him working, I just needed to remove the may clause and check for creatures.thefiremind wrote:I made an attempt at The Mimeoplasm's ability, cleaning your code in the process: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.
- 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>

volrathxp
7 posts
• Page 1 of 1
Who is online
Users browsing this forum: No registered users and 7 guests