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




Theros Cards
Moderator: CCGHQ Admins
Theros Cards
by BlindWillow » 05 Sep 2013, 22:03
Been working on Gift of Immortality from the new set. Here's what I've got so far:
Edit: I think I'll make this thread about all the Theros cards I'm toying around with (and anyone else's who wants to contribute too).
Edit 2: Links to cards.
Gift of Immortality, Battlewise Hoplite
Fleecemane Lion
Polukranos, World Eater
Master of Waves
Bident of Thassa
Gods of Theros (Updated)
Spear of Heliod
Sylvan Caryatid
Anax and Cymede
Ordeal of Thassa
Curse of the Swine, Prophet of Kruphix
Temple lands
Mistcutter Hydra
Whip of Erebos
- Code: Select all
<?xml version="1.0"?>
<CARD_V2 ExportVersion="35">
<FILENAME text="GIFT_OF_IMMORTALITY_177927002" />
<CARDNAME text="GIFT_OF_IMMORTALITY" />
<TITLE>
<LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Gift of Immortality]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Don d’immortalité]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Don de inmortalidad]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Gabe der Unsterblichkeit]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Dono dell’Immortalità]]></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[Dádiva da Imortalidade]]></LOCALISED_TEXT>
</TITLE>
<MULTIVERSEID value="177927002" />
<ARTID value="177927002" />
<ARTIST name="Matt Stewart" />
<CASTING_COST cost="{W}" />
<TYPE metaname="Enchantment" />
<SUB_TYPE metaname="Aura" />
<EXPANSION value="DPI" />
<RARITY metaname="R" />
<SPELL_ABILITY attach_definition="0">
<LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Enchant creature]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Enchanter : créature]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Encantar criatura.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Verzaubert eine Kreatur]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Incanta creatura]]></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 criatura]]></LOCALISED_TEXT>
<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>
<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_ALLIED" />
</SPELL_ABILITY>
<TRIGGERED_ABILITY>
<LOCALISED_TEXT LanguageCode="en-US"><![CDATA[When enchanted creature dies, return that card to the
battlefield under its owner’s control. Return Gift of Immortality to the battlefield attached to that
creature at the beginning of the next end step.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Quand la créature enchantée meurt, renvoyez cette carte
sur le champ de bataille sous le contrôle de son propriétaire. Renvoyez le Don d’immortalité sur le champ
de bataille, attaché à cette créature, au début de la prochaine étape de fin.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Cuando la criatura encantada muera, regresa esa carta
al campo de batalla bajo el control de su propietario. Regresa el Don de inmortalidad al campo de batalla
anexado a esa criatura al comienzo del próximo paso final.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Wenn die verzauberte Kreatur stirbt, bringe ihre Karte
unter der Kontrolle ihres Besitzers ins Spiels zurück. Bringe zu Beginn des nächsten Endsegments die Gabe
der Unsterblichkeit an diese Kreatur angelegt ins Spiel zurück.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Quando la creatura incantata muore, rimetti quella
carta sul campo di battaglia sotto il controllo del suo proprietario. Rimetti sul campo di battaglia il
Dono dell’Immortalità assegnato a quella creatura all’inizio della prossima sottofase finale.]]
></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[When enchanted creature dies, return that card to the
battlefield under its owner’s control. Return Gift of Immortality to the battlefield attached to that
creature at the beginning of the next end step.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[When enchanted creature dies, return that card to the
battlefield under its owner’s control. Return Gift of Immortality to the battlefield attached to that
creature at the beginning of the next end step.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[When enchanted creature dies, return that card to the
battlefield under its owner’s control. Return Gift of Immortality to the battlefield attached to that
creature at the beginning of the next end step.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[Quando a criatura encantada morrer, devolva aquele card
ao campo de batalha sob o controle de seu dono. Devolva Dádiva da Imortalidade ao campo de batalha
anexada àquela criatura no início da próxima etapa final.]]></LOCALISED_TEXT>
<TRIGGER value="ZONECHANGE_BEGIN" to_zone="ZONE_GRAVEYARD" from_zone="ZONE_BATTLEFIELD">
return TriggerObject() == EffectSourceLKI():GetParent()
</TRIGGER>
<RESOLUTION_TIME_ACTION>
if TriggerObject() ~= nil then
EffectDC():Set_CardPtr(0, TriggerObject())
EffectDC():Protect_CardPtr(0)
TriggerObject():PutOntoBattlefield( TriggerObject():GetOwner() )
end
</RESOLUTION_TIME_ACTION>
<RESOLUTION_TIME_ACTION>
local source = EffectSourceLKI()
local parent = EffectDC():Get_CardPtr(0)
if (source ~= nil and parent ~= nil) then
local delayDC = EffectDC():Make_Chest(1)
delayDC:Set_CardPtr(0, parent)
MTG():CreateDelayedTrigger(1, delayDC)
end
</RESOLUTION_TIME_ACTION>
<AUTO_SKIP no_effect_source="1" />
</TRIGGERED_ABILITY>
<TRIGGERED_ABILITY resource_id="1">
<TRIGGER value="BEGINNING_OF_STEP">
return MTG():GetStep() == STEP_END_OF_TURN
</TRIGGER>
<CLEANUP fire_once="1" />
<RESOLUTION_TIME_ACTION>
local source = EffectSource()
local parent = EffectDC():Get_CardPtr(0)
if (source ~= nil and parent ~= nil) then
if source:CanAttachTo( parent ) then
source:PutOntoBattlefieldAttachedTo( EffectController(), parent )
end
end
</RESOLUTION_TIME_ACTION>
<AUTO_SKIP>
return EffectSource() == nil or EffectDC():Get_CardPtr(0) == nil
</AUTO_SKIP>
</TRIGGERED_ABILITY>
<AI_BASE_SCORE score="600" zone="ZONE_BATTLEFIELD" />
<AI_BASE_SCORE score="1050" zone="ZONE_HAND" />
<AI_BASE_SCORE score="600" type="Parent" zone="ZONE_BATTLEFIELD" />
</CARD_V2>
Edit: I think I'll make this thread about all the Theros cards I'm toying around with (and anyone else's who wants to contribute too).
Edit 2: Links to cards.
Gift of Immortality, Battlewise Hoplite
Fleecemane Lion
Polukranos, World Eater
Master of Waves
Bident of Thassa
Gods of Theros (Updated)
Spear of Heliod
Sylvan Caryatid
Anax and Cymede
Ordeal of Thassa
Curse of the Swine, Prophet of Kruphix
Temple lands
Mistcutter Hydra
Whip of Erebos
Last edited by BlindWillow on 18 Sep 2013, 00:19, edited 9 times in total.
- BlindWillow
- Posts: 213
- Joined: 19 Jul 2012, 00:26
- Has thanked: 11 times
- Been thanked: 46 times
Re: Gift of Immortality
by RiiakShiNal » 05 Sep 2013, 23:20
You might want to try using TriggerObjectLKI() to establish the parent in the second RESOLUTION_TIME_ACTION rather than using a pointer that is saved in the first RESOLUTION_TIME_ACTION. The reason for this is because if multiple enchant the creature then the first one to resolve will put the creature on the battlefield and subsequent copies will fail to have a valid TriggerObject() because the card has already changed zones (which will cause no parent pointer to be set on the EffectDC() so parent will always be nil for the subsequent copies).
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: Gift of Immortality
by BlindWillow » 05 Sep 2013, 23:35
Yeah, I just realized that was my problem. Another way that seems to work but may cause other problems is to make my second RESOLUTION_TIME_ACTION a PLAY_TIME_ACTION. I will try TriggerObjectLKI(), though. That seems like the most appropriate solution.
- BlindWillow
- Posts: 213
- Joined: 19 Jul 2012, 00:26
- Has thanked: 11 times
- Been thanked: 46 times
Re: Gift of Immortality
by RiiakShiNal » 05 Sep 2013, 23:44
Until we get rulings on Gatherer we can only guess at what should really happen in the case a creature enchanted with multiple copies of Gift of Immortality dies, but given the wording I would assume that they all would come back as the text to return Gift of Immortality is a separate sentence and does not seem to depend on the card actually bringing back the creature (only that it is still on the battlefield at end of turn). If, however, the rulings state that only one will come back then you could always revert to the version you already posted.
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: Gift of Immortality
by BlindWillow » 05 Sep 2013, 23:48
I tried a simple switch to TriggerObjectLKI() and that appears to crash the game. Perhaps it doesn't like it when the first Gift triggers, and I need to use just TriggerObject() then?
- BlindWillow
- Posts: 213
- Joined: 19 Jul 2012, 00:26
- Has thanked: 11 times
- Been thanked: 46 times
Re: Gift of Immortality
by BlindWillow » 06 Sep 2013, 00:28
Well, I guess I will stick with PLAY_TIME_ACTION. It works. I doubt any problems will arise from using that instead of a RESOLUTION_TIME_ACTION, but I will keep testing it out in different scenarios. Here's the final code:
- Code: Select all
<?xml version="1.0"?>
<CARD_V2 ExportVersion="35">
<FILENAME text="GIFT_OF_IMMORTALITY_177927002" />
<CARDNAME text="GIFT_OF_IMMORTALITY" />
<TITLE>
<LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Gift of Immortality]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Don d’immortalité]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Don de inmortalidad]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Gabe der Unsterblichkeit]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Dono dell’Immortalità]]></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[Dádiva da Imortalidade]]></LOCALISED_TEXT>
</TITLE>
<MULTIVERSEID value="177927002" />
<ARTID value="177927002" />
<ARTIST name="Matt Stewart" />
<CASTING_COST cost="{2}{W}" />
<TYPE metaname="Enchantment" />
<SUB_TYPE metaname="Aura" />
<EXPANSION value="DPI" />
<RARITY metaname="R" />
<SPELL_ABILITY attach_definition="0">
<LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Enchant creature]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Enchanter : créature]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Encantar criatura.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Verzaubert eine Kreatur]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Incanta creatura]]></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 criatura]]></LOCALISED_TEXT>
<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>
<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_ALLIED" />
</SPELL_ABILITY>
<TRIGGERED_ABILITY>
<LOCALISED_TEXT LanguageCode="en-US"><![CDATA[When enchanted creature dies, return that card to the
battlefield under its owner’s control. Return Gift of Immortality to the battlefield attached to that
creature at the beginning of the next end step.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Quand la créature enchantée meurt, renvoyez cette carte
sur le champ de bataille sous le contrôle de son propriétaire. Renvoyez le Don d’immortalité sur le champ
de bataille, attaché à cette créature, au début de la prochaine étape de fin.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Cuando la criatura encantada muera, regresa esa carta
al campo de batalla bajo el control de su propietario. Regresa el Don de inmortalidad al campo de batalla
anexado a esa criatura al comienzo del próximo paso final.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Wenn die verzauberte Kreatur stirbt, bringe ihre Karte
unter der Kontrolle ihres Besitzers ins Spiels zurück. Bringe zu Beginn des nächsten Endsegments die Gabe
der Unsterblichkeit an diese Kreatur angelegt ins Spiel zurück.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Quando la creatura incantata muore, rimetti quella
carta sul campo di battaglia sotto il controllo del suo proprietario. Rimetti sul campo di battaglia il
Dono dell’Immortalità assegnato a quella creatura all’inizio della prossima sottofase finale.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[When enchanted creature dies, return that card to the
battlefield under its owner’s control. Return Gift of Immortality to the battlefield attached to that
creature at the beginning of the next end step.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[When enchanted creature dies, return that card to the
battlefield under its owner’s control. Return Gift of Immortality to the battlefield attached to that
creature at the beginning of the next end step.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[When enchanted creature dies, return that card to the
battlefield under its owner’s control. Return Gift of Immortality to the battlefield attached to that
creature at the beginning of the next end step.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[Quando a criatura encantada morrer, devolva aquele card
ao campo de batalha sob o controle de seu dono. Devolva Dádiva da Imortalidade ao campo de batalha
anexada àquela criatura no início da próxima etapa final.]]></LOCALISED_TEXT>
<TRIGGER value="ZONECHANGE_BEGIN" to_zone="ZONE_GRAVEYARD" from_zone="ZONE_BATTLEFIELD">
return TriggerObject() == EffectSourceLKI():GetParent()
</TRIGGER>
<PLAY_TIME_ACTION>
local source = EffectSourceLKI()
local parent = TriggerObject()
if (source ~= nil and parent ~= nil) then
local delayDC = EffectDC():Make_Chest(1)
delayDC:Set_CardPtr(0, parent)
delayDC:Protect_CardPtr(0)
MTG():CreateDelayedTrigger(1, delayDC)
end
</PLAY_TIME_ACTION>
<RESOLUTION_TIME_ACTION>
if TriggerObject() ~= nil then
TriggerObject():PutOntoBattlefield( TriggerObject():GetOwner() )
end
</RESOLUTION_TIME_ACTION>
<AUTO_SKIP no_effect_source="1" />
</TRIGGERED_ABILITY>
<TRIGGERED_ABILITY resource_id="1">
<TRIGGER value="BEGINNING_OF_STEP">
return MTG():GetStep() == STEP_END_OF_TURN
</TRIGGER>
<CLEANUP fire_once="1" />
<RESOLUTION_TIME_ACTION>
local source = EffectSource()
local parent = EffectDC():Get_CardPtr(0)
if (source ~= nil and parent ~= nil) then
if source:CanAttachTo( parent ) then
source:PutOntoBattlefieldAttachedTo( EffectController(), parent )
end
end
</RESOLUTION_TIME_ACTION>
<AUTO_SKIP>
return EffectSource() == nil or EffectDC():Get_CardPtr(0) == nil
</AUTO_SKIP>
</TRIGGERED_ABILITY>
<AI_BASE_SCORE score="600" zone="ZONE_BATTLEFIELD" />
<AI_BASE_SCORE score="1050" zone="ZONE_HAND" />
<AI_BASE_SCORE score="600" type="Parent" zone="ZONE_BATTLEFIELD" />
</CARD_V2>
- Attachments
-
gift_of_immortality.zip
- (113.82 KiB) Downloaded 520 times
-
battlewise_hoplite.zip
- (112.13 KiB) Downloaded 456 times
- BlindWillow
- Posts: 213
- Joined: 19 Jul 2012, 00:26
- Has thanked: 11 times
- Been thanked: 46 times
Re: Gift of Immortality
by Tejahn » 06 Sep 2013, 05:01
Thanks BlindWillow! I'll be sure to give these a try.
Re: Gift of Immortality
by thefiremind » 06 Sep 2013, 08:42
I guess that the correct way to code Gift of Immortality would be to protect the EffectSource inside the trigger condition, so that you can still point to it in a resolution time action. But I think your implementation won't give any problems, either.
Just one question: I saw you found a lot of localised text for a card that isn't on Gatherer... did you write it manually? It shouldn't surprise me since I translated Elspeth, Sun Champion in a lot of languages by stitching text from other cards together, but I'm asking anyway in case you found it somewhere.
Just one question: I saw you found a lot of localised text for a card that isn't on Gatherer... did you write it manually? It shouldn't surprise me since I translated Elspeth, Sun Champion in a lot of languages by stitching text from other cards together, but I'm asking anyway in case you found it somewhere.
< 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: Gift of Immortality
by BlindWillow » 06 Sep 2013, 14:09
I used the card image gallery for Theros on magicthegathering.com and just changed my language/location setting (link at page bottom), being sure to clear my cache after changing the setting to get the right card images. It does mean you have to type in the card text, though (the card titles, at least, are given in copiable text below each card image). That's why there's no non-Roman alphabet languages in my translations for the card text. Most people would say, I'm sure, just wait for it to show up on Gatherer. I guess I'm not that patient.thefiremind wrote:Just one question: I saw you found a lot of localised text for a card that isn't on Gatherer... did you write it manually?

- BlindWillow
- Posts: 213
- Joined: 19 Jul 2012, 00:26
- Has thanked: 11 times
- Been thanked: 46 times
Re: Theros Cards
by BlindWillow » 06 Sep 2013, 18:45
Next Theros card I've cooked up is Fleecemane Lion (so much for Watchwolf, I guess).
Here's the code:
Two, does anyone think an availability tag should be set up, either for the AI to keep it from using it unnecessarily or to go ahead and make things simpler for human users and shut the Monstrosity ability down when it's already monstrous?
Finally, it would be kind of cool to come up with a monstrous badge. Is that difficult to do? I know thefiremind added a wither badge, but that was already somewhat set up in the base game, right?
Here's the code:
- Code: Select all
<?xml version="1.0"?>
<CARD_V2 ExportVersion="1">
<FILENAME text="FLEECEMANE_LION_177927003" />
<CARDNAME text="FLEECEMANE_LION" />
<TITLE>
<LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Fleecemane Lion]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Lion à crinière bouclée]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[León melena de lana]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Vliesmähnen-Löwe]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Leone Vellocriniera]]></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[Leão da Juba Lanosa]]></LOCALISED_TEXT>
</TITLE>
<MULTIVERSEID value="177927003" />
<ARTID value="177927003" />
<ARTIST name="Slawomir Maniak" />
<CASTING_COST cost="{G}{W}" />
<TYPE metaname="Creature" />
<SUB_TYPE metaname="Cat" />
<EXPANSION value="DPI" />
<RARITY metaname="R" />
<POWER value="3" />
<TOUGHNESS value="3" />
<ACTIVATED_ABILITY linked_ability_group="1">
<LOCALISED_TEXT LanguageCode="en-US"><![CDATA[{3}{G}{W}: Monstrosity 1.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[{3}{G}{W} : Monstruosité 1.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[{3}{G}{W}: Monstruosidad 1.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[{3}{G}{W}: Monstrum 1.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[{3}{G}{W}: Mostruosità 1.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[{3}{G}{W}: Monstrosity 1.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[{3}{G}{W}: Monstrosity 1.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[{3}{G}{W}: Monstrosity 1.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[{3}{G}{W}: Monstruosidade 1.]]></LOCALISED_TEXT>
<COST type="Mana" mana_cost="{3}{G}{W}" />
<RESOLUTION_TIME_ACTION>
if (EffectSource() ~= nil and LinkedDC():Get_Int(0) ~= 1) then
EffectSource():AddCounters( MTG():PlusOnePlusOneCounters(), 1)
end
</RESOLUTION_TIME_ACTION>
<RESOLUTION_TIME_ACTION>
if LinkedDC():Get_Int(0) ~= 1 then
LinkedDC():Set_Int(0, 1)
end
</RESOLUTION_TIME_ACTION>
<AI_AVAILABILITY window_step="begin_combat" window_turn="my_turn" type="window" />
<AI_AVAILABILITY window_step="declare_attackers" window_turn="their_turn" type="window" />
<AI_AVAILABILITY type="in_response" response_target="1" />
<AI_AVAILABILITY type="in_response" response_source="1" />
<AI_AVAILABILITY window_step="end_of_turn" window_turn="their_turn" type="window" />
</ACTIVATED_ABILITY>
<STATIC_ABILITY linked_ability_group="1">
<LOCALISED_TEXT LanguageCode="en-US"><![CDATA[As long as Fleecemane Lion is monstrous, it has hexproof and indestructible.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Tant que le Lion à crinière bouclée est monstrueux, il a la défense talismanique et l’indestructible.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Mientras el León melena de lana sea monstruoso, tiene las habilidades de antimaleficio e indestructible.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Solange der Vliesmähnen-Löwe monströs ist, hat er Fluchsicherheit und Unzerstörbarkeit.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Fintanto che il Leone Vellocriniera è mostruoso, ha anti-malocchio e indistruttibile.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[As long as Fleecemane Lion is monstrous, it has hexproof and indestructible.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[As long as Fleecemane Lion is monstrous, it has hexproof and indestructible.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[As long as Fleecemane Lion is monstrous, it has hexproof and indestructible.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[Enquanto Leão da Juba Lanosa for monstruoso, ele terá resistência a magia e será indestrutível.]]></LOCALISED_TEXT>
<CONTINUOUS_ACTION layer="6">
if EffectSource() ~= nil then
local characteristics = EffectSource():GetCurrentCharacteristics()
if LinkedDC():Get_Int(0) == 1 then
characteristics:Bool_Set( CHARACTERISTIC_INDESTRUCTIBLE, 1 )
characteristics:Bool_Set( CHARACTERISTIC_HEXPROOF, 1 )
end
end
</CONTINUOUS_ACTION>
</STATIC_ABILITY>
<HELP title="MORE_INFO_TITLE_MONSTROSITY" body="MORE_INFO_BODY_MONSTROSITY" zone="ZONE_ANY" />
<HELP title="MORE_INFO_BADGE_TITLE_21" body="MORE_INFO_BADGE_BODY_21" zone="ZONE_ANY" />
<HELP title="MORE_INFO_BADGE_TITLE_8" body="MORE_INFO_BADGE_BODY_8" zone="ZONE_ANY" />
<SFX text="COMBAT_CLAW_LARGE_ATTACK" power_boundary_min="4" power_boundary_max="-1" />
<SFX text="COMBAT_CLAW_SMALL_ATTACK" power_boundary_min="1" power_boundary_max="3" />
</CARD_V2>
Two, does anyone think an availability tag should be set up, either for the AI to keep it from using it unnecessarily or to go ahead and make things simpler for human users and shut the Monstrosity ability down when it's already monstrous?
Finally, it would be kind of cool to come up with a monstrous badge. Is that difficult to do? I know thefiremind added a wither badge, but that was already somewhat set up in the base game, right?
- Attachments
-
fleecemane_lion.zip
- (99.16 KiB) Downloaded 626 times
- BlindWillow
- Posts: 213
- Joined: 19 Jul 2012, 00:26
- Has thanked: 11 times
- Been thanked: 46 times
Re: Theros Cards
by thefiremind » 06 Sep 2013, 18:57
You could add an availability that works just for the AI...BlindWillow wrote:Two, does anyone think an availability tag should be set up, either for the AI to keep it from using it unnecessarily or to go ahead and make things simpler for human users and shut the Monstrosity ability down when it's already monstrous?
- Code: Select all
return EffectController():IsAI() == false or <condition for the AI>
It isn't difficult... it's impossible.BlindWillow wrote:Finally, it would be kind of cool to come up with a monstrous badge. Is that difficult to do? I know thefiremind added a wither badge, but that was already somewhat set up in the base game, right?

< 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: Theros Cards
by jacque » 07 Sep 2013, 10:21
Anyone planning to work on Master of Waves?
Learn making your own cards today!!!
Click on
if a post/reply helped you.
I stitch old cards together to make new ones...
~ Jacque, the confused
Click on

I stitch old cards together to make new ones...
~ Jacque, the confused
Re: Theros Cards
by BlindWillow » 07 Sep 2013, 16:42
Working on another monstrosity card: Polukranos. Everything works fine except, for some reason, no damage is dealt by the triggered ability (which I have set up as a delayed trigger). Here's the code:
- Code: Select all
<?xml version="1.0"?>
<CARD_V2 ExportVersion="1">
<FILENAME text="POLUKRANOS_WORLD_EATER_177373384" />
<CARDNAME text="POLUKRANOS_WORLD_EATER" />
<TITLE>
<LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Polukranos, World Eater]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Polukranos, dévoreur de mondes]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Polukranos, el devoramundos]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Polukranos der Weltenverschlinger]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Polikranos, Divoratore di Mondi]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[世界を喰らう者、ポルクラノス]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[Polukranos, World Eater]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[Polukranos, World Eater]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[Polucrano, Devorador de Mundos]]></LOCALISED_TEXT>
</TITLE>
<MULTIVERSEID value="177373384" />
<ARTID value="177373384" />
<ARTIST name="Karl Kopinski" />
<CASTING_COST cost="{2}{G}{G}" />
<SUPERTYPE metaname="Legendary" />
<TYPE metaname="Creature" />
<SUB_TYPE metaname="Hydra" />
<EXPANSION value="DPI" />
<RARITY metaname="M" />
<POWER value="5" />
<TOUGHNESS value="5" />
<ACTIVATED_ABILITY linked_ability_group="1">
<LOCALISED_TEXT LanguageCode="en-US"><![CDATA[{X}{X}{G}: Monstrosity X.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[{X}{X}{G} : Monstruosité X.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[{X}{X}{G}: Monstruosidad X.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[{X}{X}{G}: Monstrum X.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[{X}{X}{G}: Mostruosità X.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[{X}{X}{G}:怪物化Xを行う。]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[{X}{X}{G}: Monstrosity X.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[{X}{X}{G}: Monstrosity X.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[{X}{X}{G}: Monstruosidade X.]]></LOCALISED_TEXT>
<COST type="Mana" mana_cost="{X}{X}{G}" />
<RESOLUTION_TIME_ACTION>
if (EffectSource() ~= nil and LinkedDC():Get_Int(0) ~= 1) then
EffectSource():AddCounters( MTG():PlusOnePlusOneCounters(), GetEffectX())
end
</RESOLUTION_TIME_ACTION>
<RESOLUTION_TIME_ACTION>
if LinkedDC():Get_Int(0) ~= 1 then
LinkedDC():Set_Int(0, 1)
local delayDC = EffectDC():Make_Chest(1)
delayDC:Set_Int(0, GetEffectX())
MTG():CreateDelayedTrigger(1, delayDC)
end
</RESOLUTION_TIME_ACTION>
<AI_AVAILABILITY window_step="begin_combat" window_turn="my_turn" type="window" />
<AI_AVAILABILITY window_step="declare_attackers" window_turn="their_turn" type="window" />
<AI_AVAILABILITY type="in_response" response_target="1" />
<AI_AVAILABILITY type="in_response" response_source="1" />
<AI_AVAILABILITY window_step="end_of_turn" window_turn="their_turn" type="window" />
</ACTIVATED_ABILITY>
<STATIC_ABILITY>
<LOCALISED_TEXT LanguageCode="en-US"><![CDATA[When Polukranos, World Eater becomes monstrous, it deals X damage divided as you choose among any number of target creatures your opponents control. Each of those creatures deals damage equal to its power to Polukranos.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Quand Polukranos, dévoreur de mondes devient monstrueux, il inflige X blessures réparties comme vous le désirez entre n’importe quel nombre de créatures ciblées que vos adversaires contrôlent. Chacune de ces créatures inflige à Polukranos un nombre de blessures égal à sa force.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Cuando Polukranos, el devoramundos se convierta en monstruoso, hace X puntos de daño dividos como elijas entre cualquier número de criaturas objetivo que controlan tus oponentes. Cada una de esas criaturas hace daño igual a su fuerza a Polukranos.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Wenn Polukranos der Weltenverschlinger monströs wird, fügt er X Schadenspunkte zu, deren Aufteilung auf eine beliebige Anzahl an Kreaturen deiner Wahl, die deine Gegner kontrollieren, du bestimmst. Jede dieser Kreaturen fügt Polukranos Schadenspunkte in Höhe ihrer Stärke zu.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Quando Polikranos, Divoratore di Mondi diventa mostruoso, infligge X danni suddivisi a tua scelta tra un qualsiasi numero di creature bersaglio controllate dai tuoi avversari. Ognuna di quelle creature infligge danno pari alla propria forza a Polikranos.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[世界を喰らう者、ポルクラノスが怪物的になったとき、望む数のあなたの対戦相手がコントロールするクリーチャーを対象とする。世界を喰らう者、ポルクラノスはそれらに、X点のダメージをあなたの望むように分割して与える。それらの各クリーチャーは、それぞれのパワーに等しい点数のダメージを世界を喰らう者、ポルクラノスに与える。]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[When Polukranos, World Eater becomes monstrous, it deals X damage divided as you choose among any number of target creatures your opponents control. Each of those creatures deals damage equal to its power to Polukranos.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[When Polukranos, World Eater becomes monstrous, it deals X damage divided as you choose among any number of target creatures your opponents control. Each of those creatures deals damage equal to its power to Polukranos.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[Quando Polucrano, Devorador de Mundos, torna-se monstruoso, ele causa X pontos de dano dividos à sua escolha entre qualquer número de criaturas alvo que seus oponentes controlam. Cada uma daquelas criaturas causa uma quantidade de dano igual ao próprio poder a Polucrano.]]></LOCALISED_TEXT>
</STATIC_ABILITY>
<TRIGGERED_ABILITY resource_id="1">
<SFX text="TARGET_BITE_PLAY" />
<TRIGGER value="ABILITY_RESOLVED" simple_qualifier="self" />
<TARGET tag="CARD_QUERY_CHOOSE_DEAL_1_DAMAGE" definition="0" compartment="0" damage_assignment="1">
MTG():SetTargetCount( EffectDC():Get_Int(0) )
</TARGET>
<TARGET_DEFINITION id="0">
local filter = ClearFilter()
filter:Add( FE_TYPE, OP_IS, CARD_TYPE_CREATURE )
filter:Add( FE_TEAM, OP_NOT, EffectController():GetTeam() )
</TARGET_DEFINITION>
<RESOLUTION_TIME_ACTION>
local source = EffectSourceLKI()
local targetDC = EffectDC():Get_Targets(0)
local num_targets = EffectDC():Get_Int(0)
for i=0,(num_targets-1) do
local target_creature = targetDC:Get_CardPtr(i)
local damage = targetDC:Get_Assignment(i)
if ( target_creature ~= nil ) then
local power = target_creature:GetCurrentCharacteristics():Power_Get()
source:DealDamageTo(damage, target_creature)
target_creature:DealDamageTo(power, source)
end
end
</RESOLUTION_TIME_ACTION>
<CLEANUP fire_once="1" />
<AI_SIMPLIFIED_TARGETING compartment="0" hint="HINT_ENEMY_ONLY" />
</TRIGGERED_ABILITY>
<HELP title="MORE_INFO_TITLE_MONSTROSITY" body="MORE_INFO_BODY_MONSTROSITY" zone="ZONE_ANY" />
<SFX text="COMBAT_KHALNI_HYDRA_ATTACK" power_boundary_min="1" power_boundary_max="-1" />
<AI_BASE_SCORE score="750" zone="ZONE_BATTLEFIELD" />
</CARD_V2>
- BlindWillow
- Posts: 213
- Joined: 19 Jul 2012, 00:26
- Has thanked: 11 times
- Been thanked: 46 times
Re: Theros Cards
by thefiremind » 07 Sep 2013, 18:06
I think that the idea is good, but you need to put the target in a different compartment since you are already using register 0 for saving your X value (or save the X value in another register, whichever you prefer).BlindWillow wrote:Anyone spot anything here? Is there a better way to handle the damage dealing ability? I'm using Inferno Titan as a model here.
< 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: Theros Cards
by BlindWillow » 07 Sep 2013, 20:02
That worked! I switched the register from 0 to 1 for storing the X value. I've attached the .xml and artwork (Kopinski's, as what Johann Bodin has up on his website doesn't seem to match the card art on magicthegathering.com) for any who are interested.
- Attachments
-
polukranos.zip
- (112.05 KiB) Downloaded 464 times
- BlindWillow
- Posts: 213
- Joined: 19 Jul 2012, 00:26
- Has thanked: 11 times
- Been thanked: 46 times
Who is online
Users browsing this forum: No registered users and 9 guests