Board index
Programs with AI or Rules Enforcement
Magic: The Gathering - Duels of the Planeswalkers
New MTG Cards and Decks (2010, 2012, 2013, 2014, 2015, Magic Duels)
2014




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

I suppose in case anyone needs it for something similar, here's the working code:
- Convincing Mirage | Open
- Code: Select all
<?xml version='1.0' encoding='UTF-8'?>
<CARD_V2 ExportVersion="1">
<FILENAME text="CONVINCING_MIRAGE_909190161" />
<CARDNAME text="CONVINCING_MIRAGE" />
<TITLE>
<LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Convincing Mirage]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Mirage convaincant]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Espejismo convincente]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Überzeugendes Trugbild]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Miraggio Convincente]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[見紛う蜃気楼]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[Convincing Mirage]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[Убедительный Мираж]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[Miragem Convincente]]></LOCALISED_TEXT>
</TITLE>
<MULTIVERSEID value="909190161" />
<ARTID value="909190161" />
<ARTIST name="Ryan Pancoast" />
<CASTING_COST cost="{1}{U}" />
<FLAVOURTEXT>
<LOCALISED_TEXT LanguageCode="en-US"><![CDATA[“Where are we? You must learn to ask more useful questions than that.”]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[« Où sommes-nous ? Tu dois apprendre à poser des questions plus utiles. »]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[“¿Dónde estamos? Debes aprender a hacer preguntas más útiles que esa.”]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[„Wo wir sind? Du musst lernen, sinnvollere Fragen zu stellen.”]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[“Dove siamo? Devi imparare a fare domande più utili di questa.”]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[「ここはどこだ、だって? もっと意味のある質問をしてくれよ。」]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[“Where are we? You must learn to ask more useful questions than that.”]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[«Где мы? Ты должен научиться задавать более полезные вопросы».]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[“Onde estamos? Você deve aprender a fazer perguntas mais úteis que esta.”]]></LOCALISED_TEXT>
</FLAVOURTEXT>
<TYPE metaname="Enchantment" />
<SUB_TYPE metaname="Aura" />
<EXPANSION value="M10" />
<RARITY metaname="C" />
<SPELL_ABILITY attach_definition="0">
<LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Enchant land]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Enchanter : terrain]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Encantar tierra.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Landverzauberung]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Incanta terra]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[エンチャント(土地)]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[대지에게 부여]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[Зачаровать землю]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[Encantar terreno]]></LOCALISED_TEXT>
<TARGET tag="CARD_QUERY_CHOOSE_LAND_TO_ENCHANT" definition="0" compartment="0" count="1" />
<TARGET_DEFINITION id="0">
local filter = ClearFilter()
filter:Add( FE_TYPE, OP_IS, CARD_TYPE_LAND )
</TARGET_DEFINITION>
<RESOLUTION_TIME_ACTION>
local target = EffectDC():Get_Targets(0):Get_CardPtr(0)
if ((target ~= nil) and (EffectSource() ~= nil)) then
EffectSource():Attach( target )
end
</RESOLUTION_TIME_ACTION>
<AI_SIMPLIFIED_TARGETING compartment="0" hint="HINT_NEUTRAL" />
</SPELL_ABILITY>
<TRIGGERED_ABILITY replacement_query="1" linked_ability_group="1" active_zone="ZONE_TRANSITION">
<LOCALISED_TEXT LanguageCode="en-US"><![CDATA[As Convincing Mirage enters the battlefield, choose a basic land type.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Au moment où le Mirage convaincant arrive sur le champ de bataille, choisissez un type de terrain de base.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[En cuanto el Espejismo convincente entre al campo de batalla, elige un tipo de tierra básica.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Sowie das Überzeugende Trugbild ins Spiel kommt, bestimme einen Standardlandtyp.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Mentre il Miraggio Convincente entra nel campo di battaglia, scegli un tipo di terra base.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[見紛う蜃気楼が戦場に出るに際し、基本土地タイプを1つ選ぶ。]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[As Convincing Mirage enters the battlefield, choose a basic land type.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[При выходе Убедительного Миража на поле битвы, выберите тип базовой земли.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[Conforme Miragem Convincente entra no campo de batalha, escolha um tipo de terreno básico.]]></LOCALISED_TEXT>
<TRIGGER value="ZONECHANGE_TRANSITION" simple_qualifier="self" to_zone="ZONE_BATTLEFIELD" from_zone="ZONE_ANY" />
<RESOLUTION_TIME_ACTION>
EffectController():ChooseColour( "CARD_QUERY_CHOOSE_COLOUR", true )
</RESOLUTION_TIME_ACTION>
<RESOLUTION_TIME_ACTION>
LinkedDC():Set_Int(0, GetChosenColour() )
</RESOLUTION_TIME_ACTION>
</TRIGGERED_ABILITY>
<STATIC_ABILITY linked_ability_group="1">
<LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Enchanted land is the chosen type.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Le terrain enchanté est du type choisi.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[La tierra encantada es del tipo elegido.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Das verzauberte Land ist jetzt ein Land dieses Typs.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[La terra incantata è del tipo scelto.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[エンチャントされている土地は、選ばれたタイプである。]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[Enchanted land is the chosen type.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[Зачарованная земля является землей выбранного типа.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[O terreno encantado é do tipo escolhido.]]></LOCALISED_TEXT>
<CONTINUOUS_ACTION layer="4">
local parent = EffectSource():GetParent()
local colour = LinkedDC():Get_Int(0)
if parent ~= nil then
if colour ~= nil then
local characteristics = parent:GetCurrentCharacteristics()
local subtype = characteristics:SubType_GetWritable()
subtype:ClearAllOfType( CARD_TYPE_LAND )
if colour == 1 then
subtype:Add( LAND_TYPE_PLAINS )
elseif colour == 2 then
subtype:Add( LAND_TYPE_ISLAND )
elseif colour == 3 then
subtype:Add( LAND_TYPE_SWAMP )
elseif colour == 4 then
subtype:Add( LAND_TYPE_MOUNTAIN )
else
subtype:Add( LAND_TYPE_FOREST )
end
end
end
</CONTINUOUS_ACTION>
<CONTINUOUS_ACTION layer="6">
local colour = LinkedDC():Get_Int(0)
local characteristics = EffectSource():GetParent():GetCurrentCharacteristics()
if colour ~= nil then
if characteristics ~= nil then
characteristics:LoseAllAbilities()
end
end
</CONTINUOUS_ACTION>
</STATIC_ABILITY>
</CARD_V2>
_______________________________
Community Wad - Community Wad Website - How to Help and Report Bugs
Discord: discord.gg/4AXvHzW
Community Wad - Community Wad Website - How to Help and Report Bugs
Discord: discord.gg/4AXvHzW
-
Xander9009 - Programmer
- Posts: 2905
- Joined: 29 Jun 2013, 07:44
- Location: Indiana, United States
- Has thanked: 121 times
- Been thanked: 445 times
Re: Formal Request Thread
by thefiremind » 16 Jul 2013, 08:31
About coding conspire with LinkedDC, I was sure that LinkedDC doesn't work inside a COST block... are you sure that the code works? And linked_ability_group="1" is missing in the UTILITY_ABILITY.
< Former DotP 2012/2013/2014 modder >
Currently busy with life...
Currently busy with life...
-
thefiremind - Programmer
- Posts: 3515
- Joined: 07 Nov 2011, 10:55
- Has thanked: 118 times
- Been thanked: 722 times
Re: Formal Request Thread
by sumomole » 16 Jul 2013, 08:41
You can't del the GrantAbility, since the nonbasic land and other permanent use mana ability to produce mana, however basic land is an exception, it produces mana base its land type, doesn't need any extra ability. This‘s Spreading Seas I coded, it's very similar to Convincing Mirage.Xander9009 wrote:I didn't know that simply giving the land a certain subtype would grant the mana ability automatically. That explains why the color changing and mana production were working even though it was giving errors. The LoseAllAbilities seemed to be working. Nonetheless, I moved it to its own layer 6 block. As for "characteristics:GrantAbility(colour)" I though it must be working since the mana was being produced correctly, so I figured the parent:grantability was working (even thought I should have known better).sumomole wrote:Mybe it's characteristics:GrantAbility(colour). And LoseAllAbilities and GrantAbility should in layer="6". And grant ability should only use for nonbasic land.
- Code: Select all
<STATIC_ABILITY>
<LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Enchanted land is an Island.]]></LOCALISED_TEXT>
<CONTINUOUS_ACTION layer="4">
local parent = EffectSource():GetParent()
if parent ~= nil then
local characteristics = parent:GetCurrentCharacteristics()
local sub_type = characteristics:SubType_GetWritable()
sub_type:ClearAllOfType( CARD_TYPE_LAND )
sub_type:Add(LAND_TYPE_ISLAND)
end
</CONTINUOUS_ACTION>
<CONTINUOUS_ACTION layer="6">
local parent = EffectSource():GetParent()
if parent ~= nil then
local characteristics = parent:GetCurrentCharacteristics()
characteristics:LoseAllAbilities()
end
</CONTINUOUS_ACTION>
<CONTINUOUS_ACTION layer="6">
local parent = EffectSource():GetParent()
if parent ~= nil and parent:GetSuperType():Test( SUPERTYPE_BASIC ) == false then
parent:GetCurrentCharacteristics():GrantAbility(0)
end
</CONTINUOUS_ACTION>
</STATIC_ABILITY>
I have tested Memory Sluice and it works as long as the triggered ability has linked_ability_group="1", UTILITY_ABILITY doesn't need it. But I didn't try Wort, the Raidmother, so I guess BloodReyvyn simple copy this code will cause some unknown bugs.thefiremind wrote:About coding conspire with LinkedDC, I was sure that LinkedDC doesn't work inside a COST block... are you sure that the code works? And linked_ability_group="1" is missing in the UTILITY_ABILITY.
CARD_CONSIDERED_FOR_TARGETTING and SecondaryObject():GetZone() == ZONE_STACK just prevent the spell be played, but you also can put a spell from hand to stack even if this creature is the only creature on the battlefield, but since there is no legal target, so it can't be play and will back to hand, this will be an endless loop, I have encountered this problem when I try Emrakul.Xander9009 wrote:
- Fiendslayer Paladin - Tested | Open
- Code: Select all
<?xml version='1.0' encoding='UTF-8'?>
<CARD_V2 ExportVersion="1">
<FILENAME text="FIENDSLAYER_PALADIN_909370786" />
<CARDNAME text="FIENDSLAYER_PALADIN" />
<TITLE>
<LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Fiendslayer Paladin]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Paladin tueur de perfides]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Paladín matamalvados]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Unholdjagender Paladin]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Paladino Ammazzademoni]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[鬼斬の聖騎士]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[마귀를 퇴치하는 성기사]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[Паладин, Истребитель Демонов]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[Paladino Demonicida]]></LOCALISED_TEXT>
</TITLE>
<MULTIVERSEID value="909370786" />
<ARTID value="909370786" />
<ARTIST name="Wesley Burt" />
<CASTING_COST cost="{1}{W}{W}" />
<TYPE metaname="Creature" />
<SUB_TYPE metaname="Human" />
<SUB_TYPE metaname="Knight" />
<EXPANSION value="M14" />
<RARITY metaname="R" />
<POWER value="2" />
<TOUGHNESS value="2" />
<STATIC_ABILITY>
<LOCALISED_TEXT LanguageCode="en-US"><![CDATA[First strike ]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Initiative Lien de vieLe Paladin tueur de perfides ne peut pas être la cible de sorts noirs ou rouges que vos adversaires contrôlent.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Daña primero. Vínculo vital.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Erstschlag LebensverknüpfungDer Unholdjagende Paladin kann nicht das Ziel von schwarzen oder roten Zaubersprüchen sein, die deine Gegner kontrollieren.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Attacco improvviso ]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[先制攻撃 絆魂鬼斬の聖騎士は、あなたの対戦相手がコントロールする黒や赤の呪文の対象にならない。]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[선제공격 생명연결마귀를 퇴치하는 성기사는 상대가 조종하는 적색 또는 흑색 주문의 목표가 될 수 없다.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[Первый удар Цепь жизниПаладин, Истребитель Демонов не может быть целью черных или красных заклинаний под контролем ваших оппонентов.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[Iniciativa Vínculo com a vidaPaladino Demonicida não pode ser alvo de mágicas pretas nem vermelhas que seus oponentes controlem.]]></LOCALISED_TEXT>
<INTRINSIC characteristic="CHARACTERISTIC_FIRST_STRIKE" />
</STATIC_ABILITY>
<STATIC_ABILITY>
<LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Lifelink]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Lien de vie]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Vínculo vital.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Lebensverknüpfung]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Legame vitale]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[絆魂]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[생명연결]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[Цепь жизни]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[Vínculo com a vida]]></LOCALISED_TEXT>
<INTRINSIC characteristic="CHARACTERISTIC_LIFELINK" />
</STATIC_ABILITY>
<TRIGGERED_ABILITY replacement_effect="1">
<LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Fiendslayer Paladin can’t be the target of black or red spells your opponents control.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Fiendslayer Paladin can’t be the target of black or red spells your opponents control.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Fiendslayer Paladin can’t be the target of black or red spells your opponents control.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Fiendslayer Paladin can’t be the target of black or red spells your opponents control.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Il Paladino Ammazzademoni non può essere bersaglio di magie nere o rosse controllate dai tuoi avversari.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[Fiendslayer Paladin can’t be the target of black or red spells your opponents control.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[Fiendslayer Paladin can’t be the target of black or red spells your opponents control.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[Fiendslayer Paladin can’t be the target of black or red spells your opponents control.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[Fiendslayer Paladin can’t be the target of black or red spells your opponents control.]]></LOCALISED_TEXT>
<TRIGGER value="CARD_CONSIDERED_FOR_TARGETTING" simple_qualifier="self" pre_trigger="1">
if SecondaryObject()~= nil and TriggerObject()~= nil then
if ( SecondaryObject():GetColour():Test(COLOUR_BLACK) or SecondaryObject():GetColour():Test(COLOUR_RED) ) and SecondaryObject():GetZone() == ZONE_STACK and SecondaryObject():GetController():GetTeam() ~= TriggerObject():GetController():GetTeam() then
return true
else
return false
end
end
</TRIGGER>
</TRIGGERED_ABILITY>
<HELP title="MORE_INFO_BADGE_TITLE_4" body="MORE_INFO_BADGE_BODY_4" zone="ZONE_ANY" />
<SFX text="COMBAT_BLUNT_LARGE_ATTACK" power_boundary_min="4" power_boundary_max="-1" />
<SFX text="COMBAT_BLUNT_SMALL_ATTACK" power_boundary_min="1" power_boundary_max="3" />
</CARD_V2>
-
sumomole - Programmer
- Posts: 611
- Joined: 07 Jun 2011, 08:34
- Has thanked: 51 times
- Been thanked: 234 times
Re: Formal Request Thread
by Xander9009 » 16 Jul 2013, 10:38
Ironically, Emrakul is the card I got that from. Is there any actual downside to it? The computer seems to recognize that doing so would be useless and while I can put the spell on the stack, the return to my hand is immediate. Does it activate spell played abilities or anything?sumomole wrote:CARD_CONSIDERED_FOR_TARGETTING and SecondaryObject():GetZone() == ZONE_STACK just prevent the spell be played, but you also can put a spell from hand to stack even if this creature is the only creature on the battlefield, but since there is no legal target, so it can't be play and will back to hand, this will be an endless loop, I have encountered this problem when I try Emrakul.
I can try to remake it using protection like Kev's Emrakul does, but I don't know how to protect against only opponents' spells. But that will have to wait awhile since I'm heading to bed.
As for Convincing Mirage, I'll be sure to update that. I happened across the card you mentioned a couple of hours ago, but I hadn't looked at it yet.
_______________________________
Community Wad - Community Wad Website - How to Help and Report Bugs
Discord: discord.gg/4AXvHzW
Community Wad - Community Wad Website - How to Help and Report Bugs
Discord: discord.gg/4AXvHzW
-
Xander9009 - Programmer
- Posts: 2905
- Joined: 29 Jun 2013, 07:44
- Location: Indiana, United States
- Has thanked: 121 times
- Been thanked: 445 times
Re: Formal Request Thread
by sumomole » 16 Jul 2013, 11:05
Here, I think your code is right, just need the second part to prevent CARD_CONSIDERED_FOR_TARGETTING effect when the spell is still in hand.Xander9009 wrote:Ironically, Emrakul is the card I got that from. Is there any actual downside to it? The computer seems to recognize that doing so would be useless and while I can put the spell on the stack, the return to my hand is immediate. Does it activate spell played abilities or anything?sumomole wrote:CARD_CONSIDERED_FOR_TARGETTING and SecondaryObject():GetZone() == ZONE_STACK just prevent the spell be played, but you also can put a spell from hand to stack even if this creature is the only creature on the battlefield, but since there is no legal target, so it can't be play and will back to hand, this will be an endless loop, I have encountered this problem when I try Emrakul.
I can try to remake it using protection like Kev's Emrakul does, but I don't know how to protect against only opponents' spells. But that will have to wait awhile since I'm heading to bed.
As for Convincing Mirage, I'll be sure to update that. I happened across the card you mentioned a couple of hours ago, but I hadn't looked at it yet.
-
sumomole - Programmer
- Posts: 611
- Joined: 07 Jun 2011, 08:34
- Has thanked: 51 times
- Been thanked: 234 times
Re: Formal Request Thread
by BloodReyvyn » 16 Jul 2013, 11:45
I ended up having to tweak it a bit, but the code as it exists now is:sumomole wrote:I have tested Memory Sluice and it works as long as the triggered ability has linked_ability_group="1", UTILITY_ABILITY doesn't need it. But I didn't try Wort, the Raidmother, so I guess BloodReyvyn simple copy this code will cause some unknown bugs.
- Code: Select all
<?xml version='1.0' encoding='UTF-8'?>
<CARD_V2 ExportVersion="1">
<FILENAME text="WORT_THE_RAIDMOTHER_147379" />
<CARDNAME text="WORT_THE_RAIDMOTHER" />
<TITLE>
<LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Wort, the Raidmother]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Moût, la Mère-pilleuse]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Mosto, madre incursora]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Wurz, die Mutter aller Überfälle]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Larva, la Madre Razziatrice]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[略奪の母、汁婆]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[Wort, the Raidmother]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[Бражка, Мамаша Налетчиков]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[Mosto, a Mãe-de-Ataque]]></LOCALISED_TEXT>
</TITLE>
<MULTIVERSEID value="147379" />
<ARTID value="9720003" />
<ARTIST name="Dave Allsop" />
<CASTING_COST cost="{4}{R/G}{R/G}" />
<SUPERTYPE metaname="Legendary" />
<TYPE metaname="Creature" />
<SUB_TYPE metaname="Goblin" />
<SUB_TYPE metaname="Shaman" />
<EXPANSION value="SHM" />
<RARITY metaname="R" />
<POWER value="3" />
<TOUGHNESS value="3" />
<TRIGGERED_ABILITY>
<LOCALISED_TEXT LanguageCode="en-US"><![CDATA[When Wort, the Raidmother enters the battlefield, put two 1/1 red and green Goblin Warrior creature tokens onto the battlefield.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Quand Moût, la Mère-pilleuse arrive en jeu, mettez en jeu deux jetons de créature 1/1 rouge et verte Gobelin et Guerrier.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Cuando Mosto, madre incursora entre en juego, pon en juego dos fichas de criatura Guerrero Trasgo rojas y verdes 1/1.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Wenn Wurz, die Mutter aller Überfälle, ins Spiel kommt, bringe zwei 1/1 rote und grüne <i>(Goblin, Krieger)</i>-Kreaturenspielsteine ins Spiel.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Quando Larva, la Madre Razziatrice entra nel campo di battaglia, metti sul campo di battaglia due pedine creatura Guerriero Goblin 1/1 rosse e verdi.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[略奪の母、汁婆が場に出たとき、赤であり緑である1/1のゴブリン・戦士・クリーチャー・トークンを2体場に出す。]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[When Wort, the Raidmother enters the battlefield, put two 1/1 red and green Goblin Warrior creature tokens onto the battlefield.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[Когда Бражка, Мамаша Налетчиков входит в игру, положите в игру две фишки существа 1/1 красный и зеленый Гоблин Воин.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[Quando Mosto, a Mãe-de-Ataque, entrar em jogo, coloque em jogo duas fichas de criatura vermelha e verde 1/1 do tipo Goblin Guerreiro.]]></LOCALISED_TEXT>
<TRIGGER value="ZONECHANGE_END" simple_qualifier="self" to_zone="ZONE_BATTLEFIELD" />
<RESOLUTION_TIME_ACTION>
MTG():PutTokensOntoBattlefield( "TOKEN_GOBLIN_WARRIOR_11RG_972011", 2, EffectController() )
</RESOLUTION_TIME_ACTION>
</TRIGGERED_ABILITY>
<STATIC_ABILITY>
<LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Each red or green instant or sorcery spell you cast has conspire.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Chaque sort d’éphémère ou de rituel rouge ou vert que vous jouez a la conspiration.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Cada hechizo de instantáneo o conjuro rojo o verde que juegues tiene la habilidad de conspirar.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Alle roten oder grünen Spontanzauber oder Hexereien, die du spielst, haben Verschwören.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Ogni magia istantaneo o stregoneria verde o rossa che lanci ha cospirare.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[あなたがプレイする赤か緑である各インスタント呪文や各ソーサリー呪文は共謀を持つ。]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[Each red or green instant or sorcery spell you cast has conspire.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[Каждое разыгрываемое вами красное или зеленое мгновенное заклинание или заклинание волшебства имеет Заговор.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[Cada mágica instantânea ou de feitiço vermelha ou verde que você joga tem conspirar.]]></LOCALISED_TEXT>
<FILTER filter_id="0">
local filter = ClearFilter()
filter:SetZone(ZONE_HAND)
filter:Add( FE_CONTROLLER, OP_IS, EffectController() )
local subfilter = filter:AddSubFilter_Or()
subfilter:Add(FE_TYPE, OP_IS, CARD_TYPE_INSTANT)
subfilter:Add(FE_TYPE, OP_IS, CARD_TYPE_SORCERY)
</FILTER>
<CONTINUOUS_ACTION layer="6" filter_id="0">
if FilteredCard() ~= nil then
FilteredCard():GetCurrentCharacteristics():GrantAbility(1)
FilteredCard():GetCurrentCharacteristics():GrantAbility(2)
end
</CONTINUOUS_ACTION>
</STATIC_ABILITY>
<TOKEN_REGISTRATION reservation="1" type="TOKEN_GOBLIN_WARRIOR_11RG_972011" />
<SFX text="COMBAT_BLUNT_LARGE_ATTACK" power_boundary_min="4" power_boundary_max="-1" />
<SFX text="COMBAT_BLUNT_SMALL_ATTACK" power_boundary_min="1" power_boundary_max="3" />
<UTILITY_ABILITY resource_id="1" qualifier="Additional">
<LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Conspire]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Conspiration]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Conspirar.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Verschwören]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Cospirare]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[共謀]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[Conspire]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[Заговор]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[Conspirar]]></LOCALISED_TEXT>
<COST type="Generic">
<PREREQUISITE>
return true
</PREREQUISITE>
<RESOLUTION_TIME_ACTION>
MTG():ClearFilterMark()
local filter = ClearFilter()
filter:Add( FE_IS_TAPPED, false )
filter:Add( FE_TYPE, OP_IS, CARD_TYPE_CREATURE )
filter:Add( FE_CONTROLLER, OP_IS, EffectController() )
local numCards = filter:EvaluateObjects()
for i=0,(numCards-1) do
local card = filter:GetNthEvaluatedObject(i)
if card ~= nil and card:GetColour():TestAny(EffectSource():GetColour()) then
card:MarkForFilter()
end
end
filter:SetMarkedObjectsOnly()
if filter:CountStopAt(2) == 2 then
EffectController():SetItemCount( 2 )
for i = 0,(2-1) do
EffectController():SetItemPrompt (i, "CARD_QUERY_CHOOSE_CREATURE_TAP" )
end
EffectController():ChooseItems( EffectDC():Make_Targets(1), QUERY_FLAG_MAY )
end
</RESOLUTION_TIME_ACTION>
<RESOLUTION_TIME_ACTION>
local targetDC = EffectDC():Get_Targets(1)
if targetDC ~= nil then
local target_a = targetDC:Get_CardPtr(0)
local target_b = targetDC:Get_CardPtr(1)
if target_a ~= nil and target_b ~= nil then
LinkedDC():Set_Int(10, LinkedDC():Get_Int(10)+1)
target_a:Tap()
target_b:Tap()
end
end
</RESOLUTION_TIME_ACTION>
</COST>
</UTILITY_ABILITY>
<TRIGGERED_ABILITY resource_id="2" active_zone="ZONE_STACK" linked_ability_group="1">
<TRIGGER value="SPELL_PLAYED" simple_qualifier="self">
return LinkedDC():Get_Int(10) > 0
</TRIGGER>
<RESOLUTION_TIME_ACTION>
local target = TriggerObjectLKI()
local effectController = EffectController()
local conspired = LinkedDC():Get_Int(10)
if target ~= nil and conspired > 0 then
for i = 0,(conspired-1) do
local copy = effectController:CopySpell( target )
effectController:ChooseNewTargets( copy )
end
end
</RESOLUTION_TIME_ACTION>
</TRIGGERED_ABILITY>
</CARD_V2>
I was going to try the linked ability groups, but honestly I have no need of this card right now so I just heaped it in my unfinished cards folder until such a time I want to actually use it and put more effort into it.
Got a few other projects lined up before that though.

That token deck kind of took a toll on me what with all the cards that make their own tokens, it's like making two cards in one.
"There's an experience worse than blindness - it's the certainty that your vision is perfect and the horror that there's no world around you to see."
-
BloodReyvyn - Posts: 421
- Joined: 19 May 2013, 13:29
- Has thanked: 53 times
- Been thanked: 40 times
Re: Formal Request Thread
by drleg3nd » 16 Jul 2013, 15:12
hey guys could use some help with this one. I coulda sworn we had unleash available but couldn't find it.
- | Open
- <?xml version='1.0' encoding='UTF-8'?>
<CARD_V2 ExportVersion="1">
<FILENAME text="EXAVA_RAKDOS_BLOOD_WITCH_1285369055" />
<CARDNAME text="EXAVA_RAKDOS_BLOOD_WITCH" />
<TITLE>
<LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Exava, Rakdos Blood Witch]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Exava, sorcière sanguinaire de Rakdos]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Exava, bruja sangrienta rakdos]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Exava, Bluthexe der Rakdos]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Exava, Strega di Sangue Rakdos]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[ラクドスの血魔女、イクサヴァ]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[락도스 혈마녀 엑사바]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[Экзава, Кровавая Ведьма Ракдосов]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[Exava, Rakdos Blood Witch]]></LOCALISED_TEXT>
</TITLE>
<MULTIVERSEID value="1285369055" />
<ARTID value="1285369055" />
<ARTIST name="Aleksi Briclot" />
<CASTING_COST cost="{2}{B}{R}" />
<SUPERTYPE metaname="Legendary" />
<TYPE metaname="Creature" />
<SUB_TYPE metaname="Human" />
<SUB_TYPE metaname="Cleric" />
<EXPANSION value="DGM" />
<RARITY metaname="R" />
<POWER value="3" />
<TOUGHNESS value="3" />
<STATIC_ABILITY>
<LOCALISED_TEXT LanguageCode="en-US"><![CDATA[First strike, haste]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Initiative, célérité]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Daña primero, prisa.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Erstschlag, Eile]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Attacco improvviso, rapidità]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[先制攻撃、速攻]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[선제공격, 신속]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[Первый удар, УскорениеБезудержностьКаждое другое существо под вашим контролем, на котором есть жетон +1/+1, имеет Ускорение.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[First strike, haste]]></LOCALISED_TEXT>
</STATIC_ABILITY>
<STATIC_ABILITY>
<LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Unleash]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Emportement]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Desatar.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Entfesselt]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Scatenare]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[解鎖]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[속박해제]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[Unleash]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[Unleash]]></LOCALISED_TEXT>
</STATIC_ABILITY>
<STATIC_ABILITY>
<LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Each other creature you control with a +1/+1 counter on it has haste.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Chaque autre créature que vous contrôlez avec un marqueur +1/+1 sur elle a la célérité.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Cada otra criatura que controlas con un contador +1/+1 sobre ella tiene la habilidad de prisa.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Jede andere Kreatur, die du kontrollierst und auf der mindestens eine +1/+1-Marke liegt, hat Eile.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Ogni altra creatura con un segnalino +1/+1 che controlli ha rapidità.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[あなたがコントロールする+1/+1カウンターが置かれている他の各クリーチャーは速攻を持つ。]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[당신이 조종하는 다른 생물 중 +1/+1 카운터를 가진 각 생물은 신속 능력을 가진다.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[Each other creature you control with a +1/+1 counter on it has haste.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[Each other creature you control with a +1/+1 counter on it has haste.]]></LOCALISED_TEXT>
</STATIC_ABILITY>
<SFX text="COMBAT_BLUNT_LARGE_ATTACK" power_boundary_min="4" power_boundary_max="-1" />
<SFX text="COMBAT_BLUNT_SMALL_ATTACK" power_boundary_min="1" power_boundary_max="3" />
</CARD_V2>
Re: Formal Request Thread
by Scion of Darkness » 16 Jul 2013, 15:27
I've coded descendant's path to my sliver deck, but now i cant test it here at work, can someone see if it works please?
- Code: Select all
<?xml version='1.0'?>
<CARD_V2>
<FILENAME text="DESCENDANT'S_PATH_14040077" />
<CARDNAME text="DESCENDANT'S_PATH" />
<TITLE>
<LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Descendants' Path]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Descendants' Path]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Descendants' Path]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Descendants' Path]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Descendants' Path]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[Descendants' Path]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[Descendants' Path]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[Descendants' Path]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[Descendants' Path]]></LOCALISED_TEXT>
</TITLE>
<MULTIVERSEID value="14040077" />
<ARTID value="14040077" />
<ARTIST name="Terese Nielsen" />
<CASTING_COST cost="{2}{G}" />
<TYPE metaname="Enchantment" />
<EXPANSION value="DDD" />
<RARITY metaname="R" />
<TRIGGERED_ABILITY>
<LOCALISED_TEXT LanguageCode="en-US"><![CDATA[At the beginning of your upkeep, reveal the top card of your library. If it’s a creature card that shares a creature type with a creature you control, you may cast that card without paying its mana cost. Otherwise, put that card on the bottom of your library.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Au début de votre entretien, révélez la carte du dessus de votre bibliothèque. Si c’est une carte de créature qui partage un type de créature avec une créature que vous contrôlez, vous pouvez lancer cette carte sans payer son coût de mana. Sinon, mettez-la au-dessous de votre bibliothèque.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Al comienzo de tu mantenimiento, muestra la primera carta de tu biblioteca. Si es una carta de criatura que comparte un tipo de criatura con una criatura que controlas, puedes lanzar esa carta sin pagar su coste de maná. De lo contrario, pon esa carta en el fondo de tu biblioteca.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Zeige zu Beginn deines Versorgungssegments die oberste Karte deiner Bibliothek offen vor. Falls es sich um eine Kreaturenkarte handelt, die mit einer Kreatur, die du kontrollierst, einen Kreaturentyp gemeinsam hat, kannst du diese Karte wirken, ohne ihre Manakosten zu bezahlen. Lege die Karte sonst unter deine Bibliothek.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[All’inizio del tuo mantenimento, rivela la prima carta del tuo grimorio. Se è una carta creatura che condivide un tipo di creatura con una creatura che controlli, puoi lanciare quella carta senza pagare il suo costo di mana. Altrimenti, mettila in fondo al tuo grimorio.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[あなたのアップキープの開始時に、あなたのライブラリーの一番上のカードを公開する。 もしそれがあなたがコントロールするいずれかのクリーチャーと共通のクリーチャー・タイプを持つクリーチャー・カードである場合、あなたはそのカードをそれのマナ・コストを支払うことなく唱えてもよい。そうでない場合、そのカードをあなたのライブラリーの一番下に置く。]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[당신의 유지단 시작에, 당신의 서고 맨 위의 카드를 공개한다. 그 카드가 당신이 조종하는 생물과 같은 유형의 생물 카드일 경우, 당신은 마나비용을 지불하지 않고 그 카드를 발동할 수 있다. 그렇지 않을 경우, 그 카드를 당신의 서고 맨 밑에 놓는다.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[В начале вашего шага поддержки покажите верхнюю карту вашей библиотеки. Если это карта существа с таким же типом существа, как у существа под вашим контролем, вы можете разыграть ту карту без уплаты ее мана-стоимости. В противном случае положите ту карту в низ вашей библиотеки.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[No início de sua manutenção, revele o card do topo de seu grimório. Se for um card de criatura que compartilha um tipo de criatura com uma criatura que você controla, você poderá conjurar aquele card sem pagar seu custo de mana. Caso contrário, coloque aquele card no fundo de seu grimório.]]></LOCALISED_TEXT>
<TRIGGER value="BEGINNING_OF_PLAYERS_STEP" simple_qualifier="controller">
return MTG():GetStep() == STEP_UPKEEP
</TRIGGER>
<RESOLUTION_TIME_ACTION>
local card = EffectController():Library_GetTop()
if topOfLibrary ~= nil then
local cardType = topOfLibrary:GetCardType()
card:Reveal()
if cardType:Test( CARD_TYPE_CREATURE ) then
EffectDC():Set_CardPtr( 0, card )
else
card:PutOnBottomOfLibrary()
end
end
</RESOLUTION_TIME_ACTION>
<RESOLUTION_TIME_ACTION>
local effectController = EffectController()
local card = EffectDC():Get_CardPtr(0)
if card~= nil then
if effectController ~= nil then
effectController:BeginNewMultipleChoice()
effectController:AddMultipleChoiceAnswer( "CARD_QUERY_DESCENDANT_CAST_CARD_WITHOUT_PYING_ITS_MANA_COST", effectController:CanCastSpellForFree(card) )
effectController:AddMultipleChoiceAnswer( "CARD_PUT_BOTTOM" )
effectController:AskMultipleChoiceQuestion( "CARD_QUERY_DESCENDANTS_QUESTION", card )
end
end
</RESOLUTION_TIME_ACTION>
<RESOLUTION_TIME_ACTION>
local card = EffectDC():Get_CardPtr(0)
local result = EffectController():GetMultipleChoiceResult()
if card ~= nil then
if result == 0 and EffectController():CanCastSpellForFree(card) then
EffectController():CastSpellForFree(card)
else
card:PutOnBottomOfLibrary()
end
end
</RESOLUTION_TIME_ACTION>
</TRIGGERED_ABILITY>
<AI_BASE_SCORE score="450" zone="ZONE_IN_PLAY" />
</CARD_V2>
-
Scion of Darkness - Posts: 235
- Joined: 27 Aug 2012, 13:14
- Has thanked: 17 times
- Been thanked: 23 times
Re: Formal Request Thread
by RiiakShiNal » 16 Jul 2013, 15:28
thefiremind posted Unleash heredrleg3nd wrote:hey guys could use some help with this one. I coulda sworn we had unleash available but couldn't find it.
Edit:
I can already see it's not going to work as is (the first RESOLUTION_TIME_ACTION is screwed up, after that it looks okay).Scion of Darkness wrote:I've coded descendant's path to my sliver deck, but now i cant test it here at work, can someone see if it works please?
- "topOfLibrary" is used without being defined.
- You defined "card", then test to see if "topOfLibrary" is not nil (you didn't define it so either it will crash or the condition will say it is nil, either way it won't work).
- "cardType" is being defined using the wrong variable.
Just getting started: Xander9009's DotP 2014 Community Wad
Need a deck builder: DotP 2014 Deck Builder
Problems Modding: DotP 2014 Frequent Modding Mistakes
Need a deck builder: DotP 2014 Deck Builder
Problems Modding: DotP 2014 Frequent Modding Mistakes
- RiiakShiNal
- Programmer
- Posts: 2188
- Joined: 16 May 2011, 21:37
- Has thanked: 75 times
- Been thanked: 497 times
Re: Formal Request Thread
by Scion of Darkness » 16 Jul 2013, 15:37
one more ability request for the stack =) MORBID
thanks
thanks
-
Scion of Darkness - Posts: 235
- Joined: 27 Aug 2012, 13:14
- Has thanked: 17 times
- Been thanked: 23 times
Re: Formal Request Thread
by thefiremind » 16 Jul 2013, 15:53
As for hellbent, morbid is only a keyword, not an ability, so what you are actually asking is "how do i check if at least one creature died this turn?". I think that interrogations can handle that, but since there are no exact examples of it in the official cards, my code might need a further level of complication (like adding the player to the interrogation and a loop over the players):Scion of Darkness wrote:one more ability request for the stack =) MORBID
- Morbid check (untested) | Open
- Code: Select all
local interrogation = MTG():ClearInterrogationQuery()
interrogation:SetFromZone( ZONE_BATTLEFIELD )
interrogation:SetToZone( ZONE_GRAVEYARD )
interrogation:SetType( CARD_TYPE_CREATURE )
if interrogation:Count( INTERROGATE_CARDS_MOVED_ZONE, INTERROGATE_THIS_TURN, 1 ) == 1 then
-- Morbid check positive
else
-- Morbid check negative
end

< 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: Formal Request Thread
by Master Necro » 16 Jul 2013, 16:20
Just reporting, Graft doesn't work when I play a creature with graft it directly goes to the graveyard(I'm guessing it is because graft doesn't trigger and it has 0/0).thefiremind wrote:Forecast (and ninjutsu, for that matter) can't be made on DotP2014 except for when they have monocolored mana costs or no mana costs, this is the reason.
Convoke and overload are still impossible or requiring too many approximations to be feasible (until someone proves I'm wrong).
Bloodrush has different effects depending on the creature, the only standard part is the DiscardSelf cost: if you start from cycling it's not really that hard to make.
Haunt needs a different implementation for creatures and non-creatures. I remember getting stuck on something for the non-creature implementation in DotP2013, so I'll leave it to someone else unless I need to make a card with haunt for one of my decks.
Unleash and graft aren't really difficult, I think they should work like this:
- Unleash (untested) | Open
- Code: Select all
<TRIGGERED_ABILITY replacement_query="1" active_zone="ZONE_TRANSITION">
<LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Unleash]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Scatenare]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Entfesselt]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Emportement]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Desatar.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[解鎖]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[속박해제]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[Безудержность]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[Liberar]]></LOCALISED_TEXT>
<TRIGGER value="ZONECHANGE_TRANSITION" simple_qualifier="self" to_zone="ZONE_BATTLEFIELD" />
<RESOLUTION_TIME_ACTION>
if EffectSource() ~= nil then
EffectSource():AddCounters( MTG():PlusOnePlusOneCounters(), 1 )
end
</RESOLUTION_TIME_ACTION>
<MAY tag="CARD_QUERY_UNLEASH" always_prompt="1" />
</TRIGGERED_ABILITY>
<STATIC_ABILITY>
<CONTINUOUS_ACTION layer="8">
local source = EffectSource()
if source ~= nil and source:CountCounters( MTG():PlusOnePlusOneCounters() ) > 0 then
source:GetCurrentCharacteristics():Characteristic_Set(CHARACTERISTIC_CANT_BLOCK, 1)
end
</CONTINUOUS_ACTION>
</STATIC_ABILITY>but please test them before adding them to the first page, I'm not sure how the MAY blocks will work, especially with unleash.
- Graft (untested) | Open
- Code: Select all
<TRIGGERED_ABILITY replacement_effect="1" active_zone="ZONE_TRANSITION">
<TRIGGER value="ZONECHANGE_TRANSITION" simple_qualifier="self" to_zone="ZONE_BATTLEFIELD" from_zone="ZONE_ANY" />
<RESOLUTION_TIME_ACTION>
if EffectSource() ~= nil then
-- change the amount of counters here for Graft 2, 3, etc.
EffectSource():AddCounters( MTG():PlusOnePlusOneCounters(), 1 )
end
</RESOLUTION_TIME_ACTION>
</TRIGGERED_ABILITY>
<TRIGGERED_ABILITY>
<LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Graft 1]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Greffe 1]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Injertar 1]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Pfropfen 1]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Innesto 1]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[移植 1]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[Graft 1]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[Прививка 1.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[Enxerto 1]]></LOCALISED_TEXT>
<TRIGGER value="ZONECHANGE_END" to_zone="ZONE_BATTLEFIELD" from_zone="ZONE_ANY">
return TriggerObject():GetCardType():Test(CARD_TYPE_CREATURE) and TriggerObject() ~= EffectSource()
</TRIGGER>
<INTERVENING_IF>
return EffectSource() ~= nil and TriggerObject() ~= nil and EffectSource():CountCounters( MTG():PlusOnePlusOneCounters() ) > 0
</INTERVENING_IF>
<RESOLUTION_TIME_ACTION>
if EffectSource() ~= nil and TriggerObject() ~= nil then
TriggerObject():AddCounters( MTG():PlusOnePlusOneCounters(), 1 )
EffectSource():RemoveCounters( MTG():PlusOnePlusOneCounters(), 1 )
end
</RESOLUTION_TIME_ACTION>
<MAY tag="CARD_QUERY_GRAFT" always_prompt="1" />
<AUTO_SKIP>
return EffectSource() == nil or TriggerObject() == nil
</AUTO_SKIP>
</TRIGGERED_ABILITY>
-
Master Necro - Posts: 259
- Joined: 24 Apr 2013, 18:25
- Has thanked: 83 times
- Been thanked: 21 times
Re: Formal Request Thread
by thefiremind » 16 Jul 2013, 18:00
I copied the trigger from Primordial Hydra and substituted GetPaidX() with 1, so I don't know what's wrong.
< Former DotP 2012/2013/2014 modder >
Currently busy with life...
Currently busy with life...
-
thefiremind - Programmer
- Posts: 3515
- Joined: 07 Nov 2011, 10:55
- Has thanked: 118 times
- Been thanked: 722 times
Re: Formal Request Thread
by Master Necro » 16 Jul 2013, 18:07
Take a look here is Simic Initiate:thefiremind wrote:I copied the trigger from Primordial Hydra and substituted GetPaidX() with 1, so I don't know what's wrong.
- Code: Select all
<?xml version="1.0"?>
<CARD_V2 ExportVersion="10">
<FILENAME text="SIMIC_INITIATE_17107441" />
<CARDNAME text="SIMIC_INITIATE" />
<TITLE>
<LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Simic Initiate]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Simic Initiate]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Simic Initiate]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Simic Initiate]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Simic Initiate]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[Simic Initiate]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[Simic Initiate]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[Simic Initiate]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[Simic Initiate]]></LOCALISED_TEXT>
</TITLE>
<MULTIVERSEID value="17107441" />
<ARTID value="A107441" />
<ARTIST name="Dany Orizio" />
<CASTING_COST cost="{G}" />
<TYPE metaname="Creature" />
<SUB_TYPE metaname="Human" />
<SUB_TYPE metaname="Mutant" />
<EXPANSION value="DPI" />
<RARITY metaname="C" />
<POWER value="0" />
<TOUGHNESS value="0" />
<TRIGGERED_ABILITY>
<LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Graft 1 (This creature enters the battlefield with a +1/+1 counter on it. Whenever another creature enters the battlefield, you may move a +1/+1 counter from this creature onto it.)]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Graft 1 (This creature enters the battlefield with a +1/+1 counter on it. Whenever another creature enters the battlefield, you may move a +1/+1 counter from this creature onto it.)]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Graft 1 (This creature enters the battlefield with a +1/+1 counter on it. Whenever another creature enters the battlefield, you may move a +1/+1 counter from this creature onto it.)]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Graft 1 (This creature enters the battlefield with a +1/+1 counter on it. Whenever another creature enters the battlefield, you may move a +1/+1 counter from this creature onto it.)]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Graft 1 (This creature enters the battlefield with a +1/+1 counter on it. Whenever another creature enters the battlefield, you may move a +1/+1 counter from this creature onto it.)]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[Graft 1 (This creature enters the battlefield with a +1/+1 counter on it. Whenever another creature enters the battlefield, you may move a +1/+1 counter from this creature onto it.)]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[Graft 1 (This creature enters the battlefield with a +1/+1 counter on it. Whenever another creature enters the battlefield, you may move a +1/+1 counter from this creature onto it.)]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[Graft 1 (This creature enters the battlefield with a +1/+1 counter on it. Whenever another creature enters the battlefield, you may move a +1/+1 counter from this creature onto it.)]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[Graft 1 (This creature enters the battlefield with a +1/+1 counter on it. Whenever another creature enters the battlefield, you may move a +1/+1 counter from this creature onto it.)]]></LOCALISED_TEXT>
<TRIGGER value="ZONECHANGE_END" to_zone="ZONE_BATTLEFIELD" from_zone="ZONE_ANY">
return TriggerObject():GetCardType():Test(CARD_TYPE_CREATURE) and TriggerObject() ~= EffectSource()
</TRIGGER>
<INTERVENING_IF>
return EffectSource() ~= nil and TriggerObject() ~= nil and EffectSource():CountCounters( MTG():PlusOnePlusOneCounters() ) > 0
</INTERVENING_IF>
<RESOLUTION_TIME_ACTION>
if EffectSource() ~= nil and TriggerObject() ~= nil then
TriggerObject():AddCounters( MTG():PlusOnePlusOneCounters(), 1 )
EffectSource():RemoveCounters( MTG():PlusOnePlusOneCounters(), 1 )
end
</RESOLUTION_TIME_ACTION>
<MAY tag="CARD_QUERY_GRAFT" always_prompt="1" />
<AUTO_SKIP>
return EffectSource() == nil or TriggerObject() == nil
</AUTO_SKIP>
</TRIGGERED_ABILITY>
<SFX text="COMBAT_GREEN_MAGIC_LARGE_ATTACK" power_boundary_min="4" power_boundary_max="-1" />
<SFX text="COMBAT_GREEN_MAGIC_SMALL_ATTACK" power_boundary_min="1" power_boundary_max="3" />
</CARD_V2>
-
Master Necro - Posts: 259
- Joined: 24 Apr 2013, 18:25
- Has thanked: 83 times
- Been thanked: 21 times
Re: Formal Request Thread
by RiiakShiNal » 16 Jul 2013, 18:12
That would be because you missed part of the ability. This whole block:
- Code: Select all
<TRIGGERED_ABILITY replacement_effect="1" active_zone="ZONE_TRANSITION">
<TRIGGER value="ZONECHANGE_TRANSITION" simple_qualifier="self" to_zone="ZONE_BATTLEFIELD" from_zone="ZONE_ANY" />
<RESOLUTION_TIME_ACTION>
if EffectSource() ~= nil then
-- change the amount of counters here for Graft 2, 3, etc.
EffectSource():AddCounters( MTG():PlusOnePlusOneCounters(), 1 )
end
</RESOLUTION_TIME_ACTION>
</TRIGGERED_ABILITY>
Just getting started: Xander9009's DotP 2014 Community Wad
Need a deck builder: DotP 2014 Deck Builder
Problems Modding: DotP 2014 Frequent Modding Mistakes
Need a deck builder: DotP 2014 Deck Builder
Problems Modding: DotP 2014 Frequent Modding Mistakes
- RiiakShiNal
- Programmer
- Posts: 2188
- Joined: 16 May 2011, 21:37
- Has thanked: 75 times
- Been thanked: 497 times
Who is online
Users browsing this forum: No registered users and 3 guests