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 Rari » 27 Aug 2013, 04:48
I would think you could just follow the mana production withMC Brodie wrote:On a different note I have a rules question. I am trying to code Ancient Tomb. Does "tapped for mana" mean anything special? I was going to code the damage part using <TRIGGER value="BECAME_TAPPED" simple_qualifier="self" /> but I don't know if that is correct. I also don't think <COST type="Life" amount="2" /> is correct since its damage not a loss of life.
- Code: Select all
EffectSourceLKI():DealDamageTo( 2, EffectController() )
Please help yourself to my collection of DoTP artwork. Pretty cards for everyone!
Re: Formal Request Thread
by Rari » 27 Aug 2013, 07:37
I realize this is shiny and new, but anyone have any ideas about coding the new Bestow mechanic? All I've gotten for my trouble so far are crashes.
Please help yourself to my collection of DoTP artwork. Pretty cards for everyone!
Re: Formal Request Thread
by thefiremind » 27 Aug 2013, 08:45
I'm about to have a try at Paradox Haze and I think I'll use the interrogation to count the beginning phases, which is the same as counting the upkeep steps with that implementation.MC Brodie wrote:Could you save the number of extra upkeeps in a player data chest? At the first upkeep clear a player data chest then have the hazes add counters to it. You might be able to control the looping that way.
EDIT: No, it seems that beginning phases cannot be counted through interrogation.
The BECAME_TAPPED_FOR_MANA trigger is bugged and doesn't fire automatically, but I think it does if you use RiiakShiNal's mana functions, which is actually the only way to make Ancient Tomb work properly.MC Brodie wrote:On a different note I have a rules question. I am trying to code Ancient Tomb. Does "tapped for mana" mean anything special?
That wouldn't work because the MANA_ABILITY only accepts tapping as cost.MC Brodie wrote:I also don't think <COST type="Life" amount="2" /> is correct since its damage not a loss of life.
It wouldn't be possible with a MANA_ABILITY, but with RiiakShiNal's mana functions this is the way to do that.Rari wrote:I would think you could just follow the mana production with
- Code: Select all
EffectSourceLKI():DealDamageTo( 2, EffectController() )
Look inside RiiakShiNal's mod and I'm sure you'll find an example similar to Ancient Tomb (maybe Ancient Tomb itself).
I have no clear ideas, but if I start to work on it I have a path to follow... it depends on whether this path leads to something that works or not.Rari wrote:I realize this is shiny and new, but anyone have any ideas about coding the new Bestow mechanic? All I've gotten for my trouble so far are crashes.

----------------------------------------
EDIT 2: Here's my Paradox Haze, but there's something wrong that I can't understand:
- Paradox Haze (NOT WORKING) | Open
- Code: Select all
<?xml version='1.0' encoding='UTF-8'?>
<CARD_V2 ExportVersion="1">
<FILENAME text="PARADOX_HAZE_109721" />
<CARDNAME text="PARADOX_HAZE" />
<TITLE>
<LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Paradox Haze]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Brume de paradoxe]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Bruma paradojal]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Paradoxer Dunst]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Foschia Paradossale]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[逆説のもや]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[Paradox Haze]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[Туман Парадоксов]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[Bruma do Paradoxo]]></LOCALISED_TEXT>
</TITLE>
<MULTIVERSEID value="109721" />
<ARTID value="109721" />
<ARTIST name="Greg Staples" />
<CASTING_COST cost="{2}{U}" />
<FLAVOURTEXT>
<LOCALISED_TEXT LanguageCode="en-US"><![CDATA[“Keep your pace steady through the haze, lest you step on the heels of your future self or trip the self a moment behind you.”
—Teferi]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[« Traversez la brume d’un pas régulier, vous risqueriez autrement de marcher sur le talon de votre avenir, ou de faire trébucher votre passé. »
—Téfeiri]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[“Mantén tu paso firme en la bruma, no sea cuestión de que pises los talones de tu yo futuro o te topes con tu yo de un momento pasado.”
—Teferi]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[„Behalte deine Geschwindigkeit im Dunst gleichmäßig, damit du nicht deinem zukünftigen Ich auf die Fersen trittst oder dein Ich einen Moment hinter dir zum Stolpern bringst.”
—Teferi]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[“Mantieni il passo costante attraverso la foschia, altrimenti potresti pestare i talloni del te stesso nel futuro o far inciampare il te stesso che ti sta seguendo.”
—Teferi]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[もやの中でも自分のペースを乱すな。未来のお前の足の上に着地しなければ、一瞬前の自分に足を引っ掛けられるぞ。
――テフェリー]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[“Keep your pace steady through the haze, lest you step on the heels of your future self or trip the self a moment behind you.”
—Teferi]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[«Держи свой путь прямо через туман, не то ты будешь наступать себе же на пятки или вернешься в свое прошлое»,
Тефери]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[“Mantenha o passo firme através da bruma, a fim de que não pise nos calcanhares do seu ”eu“ futuro nem tropece no seu ”eu“ de um minuto atrás.”
— Teferi]]></LOCALISED_TEXT>
</FLAVOURTEXT>
<TYPE metaname="Enchantment" />
<SUB_TYPE metaname="Aura" />
<EXPANSION value="TSP" />
<RARITY metaname="U" />
<SPELL_ABILITY attach_definition="0">
<LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Enchant player]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Enchanter : joueur]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Encantar jugador.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Spielerverzauberung]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Incanta giocatore]]></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 jogador]]></LOCALISED_TEXT>
<TARGET tag="CARD_QUERY_CHOOSE_PLAYER_TO_VESTIGE_ROT" definition="0" compartment="0" count="1" />
<TARGET_DEFINITION id="0">
local filter = ClearFilter()
filter:SetFilterType(FILTER_TYPE_PLAYERS)
</TARGET_DEFINITION>
<RESOLUTION_TIME_ACTION>
local target = EffectDC():Get_Targets(0):Get_PlayerPtr(0)
if target ~= nil and EffectSource() ~= nil then
EffectSource():AttachToPlayer(target)
end
</RESOLUTION_TIME_ACTION>
<AI_SIMPLIFIED_TARGETING compartment="0" hint="HINT_ALLIED_ONLY" />
</SPELL_ABILITY>
<TRIGGERED_ABILITY linked_ability_group="1">
<LOCALISED_TEXT LanguageCode="en-US"><![CDATA[At the beginning of enchanted player’s first upkeep each turn, that player gets an additional upkeep step after this step.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Au début du premier entretien du joueur enchanté à chaque tour, ce joueur gagne une étape d’entretien supplémentaire après cette étape.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Al comienzo del primer mantenimiento de cada turno del jugador encantado, ese jugador obtiene un mantenimiento adicional después de este paso.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Zu Beginn des ersten Versorgungssegments des verzauberten Spielers erhält dieser Spieler ein zusätzliches Versorgungssegment nach diesem Segment.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[All’inizio del primo mantenimento del giocatore incantato in ogni turno, quel giocatore gioca un mantenimento addizionale dopo questa sottofase.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[エンチャントされているプレイヤーの各ターンの最初のアップキープの開始時に、そのプレイヤーはこのステップの直後に追加のアップキープ・ステップを得る。]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[At the beginning of enchanted player’s first upkeep each turn, that player gets an additional upkeep step after this step.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[В начале первого шага поддержки на каждом ходу зачарованного игрока этот игрок получает дополнительный шаг поддержки после окончания первого.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[No início da primeira manutenção do jogador encantado a cada turno, aquele jogador recebe uma etapa de manutenção adicional após esta etapa.]]></LOCALISED_TEXT>
<TRIGGER value="BEGINNING_OF_PLAYERS_STEP">
if MTG():GetStep() == STEP_UPKEEP and TriggerPlayer() == EffectSource():GetParentPlayer() and LinkedDC():Get_Int(0) ~= 1 then
LinkedDC():Set_Int(0, 1)
return true
end
return false
</TRIGGER>
<RESOLUTION_TIME_ACTION>
local delayDC = EffectDC():Make_Chest(1)
delayDC:Set_PlayerPtr( 0, TriggerPlayer() )
for i=0,1 do
MTG():CreateDelayedTrigger(1, delayDC)
end
</RESOLUTION_TIME_ACTION>
<RESOLUTION_TIME_ACTION>
MTG():TakeAdditionalPhase(PHASE_BEGINNING)
</RESOLUTION_TIME_ACTION>
<SFX text="GLOBAL_WARP_PLAY" />
</TRIGGERED_ABILITY>
<TRIGGERED_ABILITY resource_id="1" replacement_effect="1">
<CLEANUP fire_once="1" />
<TRIGGER value="BEGINNING_OF_PLAYERS_STEP" pre_trigger="1">
return MTG():GetPhase() == PHASE_BEGINNING and MTG():GetStep() ~= STEP_UPKEEP and TriggerPlayer() == EffectDC():Get_PlayerPtr(0)
</TRIGGER>
<RESOLUTION_TIME_ACTION>
MTG():SkipStep()
</RESOLUTION_TIME_ACTION>
</TRIGGERED_ABILITY>
<TRIGGERED_ABILITY linked_ability_group="1" replacement_effect="1">
<TRIGGER value="BEGINNING_OF_STEP">
return MTG():GetStep() == STEP_CLEANUP
</TRIGGER>
<RESOLUTION_TIME_ACTION>
LinkedDC():Set_Int(0, 0)
</RESOLUTION_TIME_ACTION>
</TRIGGERED_ABILITY>
<AI_BASE_SCORE score="300" zone="ZONE_BATTLEFIELD" />
</CARD_V2>
< 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 mr friendly guy » 27 Aug 2013, 14:59
Can you put a link to download it. I am no coder, but presumably I would need a compiler to convert that code into something the game can use.Parabolic wrote:
I'm no coder, but I cobbled together a Staff of Domination today, taking pieces of code from various mods.
Thanks. Using TFM Leyline of Deity card created for the Planeswalker test deck, it makes it easy to get the combo cards right out to test. Metalworker plus 2 artifacts in hand, plus Voltaic Construct leads to infinite mana combo. I am going to have fun constructing that deck.
- mr friendly guy
- Posts: 85
- Joined: 23 Aug 2013, 12:03
- Has thanked: 2 times
- Been thanked: 1 time
Re: Formal Request Thread
by East Bay » 27 Aug 2013, 15:23
I edited a mana token to deal 1 damage to the controller when it comes into play. Same with Horizon Canopy, Grove of the Burnwillows ect. You can find Ancient Tomb in my affinity deck.thefiremind wrote:The BECAME_TAPPED_FOR_MANA trigger is bugged and doesn't fire automatically, but I think it does if you use RiiakShiNal's mana functions, which is actually the only way to make Ancient Tomb work properly.MC Brodie wrote:On a different note I have a rules question. I am trying to code Ancient Tomb. Does "tapped for mana" mean anything special?
Re: Formal Request Thread
by RiiakShiNal » 27 Aug 2013, 15:27
The BECAME_TAPPED_FOR_MANA trigger must be fired manually as the game does not fire it (not even for basic lands). I do include firing that event in my manual mana functions, though it is only fired when manually activating mana abilities, auto-tap mana from basic lands will not fire it (engine limitation).thefiremind wrote:The BECAME_TAPPED_FOR_MANA trigger is bugged and doesn't fire automatically, but I think it does if you use RiiakShiNal's mana functions, which is actually the only way to make Ancient Tomb work properly.MC Brodie wrote:On a different note I have a rules question. I am trying to code Ancient Tomb. Does "tapped for mana" mean anything special?
However, Ancient Tomb does not have the text "tapped for mana", the damage it does is part of the mana ability and should occur immediately after adding

I actually have coded Ancient Tomb (though it is not in the currently released version):thefiremind wrote:That wouldn't work because the MANA_ABILITY only accepts tapping as cost.MC Brodie wrote:I also don't think <COST type="Life" amount="2" /> is correct since its damage not a loss of life.It wouldn't be possible with a MANA_ABILITY, but with RiiakShiNal's mana functions this is the way to do that.Rari wrote:I would think you could just follow the mana production with
- Code: Select all
EffectSourceLKI():DealDamageTo( 2, EffectController() )
Look inside RiiakShiNal's mod and I'm sure you'll find an example similar to Ancient Tomb (maybe Ancient Tomb itself).
- Ancient Tomb | Open
- Code: Select all
<?xml version='1.0'?>
<CARD_V2>
<FILENAME text="RSN_ANCIENT_TOMB_288994" />
<CARDNAME text="ANCIENT_TOMB" />
<TITLE>
<LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Ancient Tomb]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Ancient Tomb]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Ancient Tomb]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Ancient Tomb]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Ancient Tomb]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[Ancient Tomb]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[Ancient Tomb]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[Ancient Tomb]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[Ancient Tomb]]></LOCALISED_TEXT>
</TITLE>
<MULTIVERSEID value="288994" />
<ARTID value="RSN288994" />
<ARTIST name="Colin MacNeil" />
<CASTING_COST cost="" />
<FLAVOURTEXT>
<LOCALISED_TEXT LanguageCode="en-US"><![CDATA[There is no glory to be gained in the kingdom of the dead.
—Vec tomb inscription]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[There is no glory to be gained in the kingdom of the dead.
—Vec tomb inscription]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[There is no glory to be gained in the kingdom of the dead.
—Vec tomb inscription]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[There is no glory to be gained in the kingdom of the dead.
—Vec tomb inscription]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[There is no glory to be gained in the kingdom of the dead.
—Vec tomb inscription]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[There is no glory to be gained in the kingdom of the dead.
—Vec tomb inscription]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[There is no glory to be gained in the kingdom of the dead.
—Vec tomb inscription]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[There is no glory to be gained in the kingdom of the dead.
—Vec tomb inscription]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[There is no glory to be gained in the kingdom of the dead.
—Vec tomb inscription]]></LOCALISED_TEXT>
</FLAVOURTEXT>
<TYPE metaname="Land" />
<EXPANSION value="RLM" />
<RARITY metaname="M" />
<ACTIVATED_ABILITY forced_skip="1">
<LOCALISED_TEXT LanguageCode="en-US"><![CDATA[{T}: Add {2} to your mana pool. Ancient Tomb deals 2 damage to you.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[{T}: Add {2} to your mana pool. Ancient Tomb deals 2 damage to you.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[{T}: Add {2} to your mana pool. Ancient Tomb deals 2 damage to you.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[{T}: Add {2} to your mana pool. Ancient Tomb deals 2 damage to you.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[{T}: Add {2} to your mana pool. Ancient Tomb deals 2 damage to you.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[{T}: Add {2} to your mana pool. Ancient Tomb deals 2 damage to you.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[{T}: Add {2} to your mana pool. Ancient Tomb deals 2 damage to you.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[{T}: Add {2} to your mana pool. Ancient Tomb deals 2 damage to you.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[{T}: Add {2} to your mana pool. Ancient Tomb deals 2 damage to you.]]></LOCALISED_TEXT>
<COST type="TapSelf" />
<PLAY_TIME_ACTION>
RSN_MarkManaAbilityStart()
</PLAY_TIME_ACTION>
<RESOLUTION_TIME_ACTION>
RSN_Produce( "{2}", 1 )
if (EffectSourceLKI() ~= nil) then
EffectSourceLKI():DealDamageTo( 2, EffectController() )
end
</RESOLUTION_TIME_ACTION>
<RESOLUTION_TIME_ACTION>
RSN_EliminateExtraManaTokens()
RSN_MarkManaAbilityEnd()
</RESOLUTION_TIME_ACTION>
<AI_AVAILABILITY window_step="upkeep" type="window" />
<AI_AVAILABILITY window_step="main_1" window_turn="my_turn" type="window" />
<AI_AVAILABILITY window_step="begin_combat" window_turn="their_turn" type="window" />
<AI_AVAILABILITY window_step="declare_attackers" window_turn="their_turn" type="window" />
<AI_AVAILABILITY window_step="declare_blockers" type="window" />
<AI_AVAILABILITY window_step="main_2" window_turn="my_turn" type="window" />
<AI_AVAILABILITY window_step="end_of_turn" type="window" />
<AI_AVAILABILITY window_step="end_of_turn" window_turn="their_turn" type="window" />
<AI_AVAILABILITY type="in_response" response_source="1" response_target="1" />
<AI_AVAILABILITY type="in_response" response_source="1" />
<AI_AVAILABILITY type="in_response" response_target="1" />
</ACTIVATED_ABILITY>
<STATIC_ABILITY>
<CONTINUOUS_ACTION layer="0">
RSN_ClearCanProduceMana()
RSN_MarkCanProduceMana( "{1}" )
</CONTINUOUS_ACTION>
</STATIC_ABILITY>
<TRIGGERED_ABILITY forced_skip="1" replacement_effect="1">
<TRIGGER value="BEGINNING_OF_STEP" pre_trigger="1" />
<RESOLUTION_TIME_ACTION>
RSN_ClearProducedMana()
</RESOLUTION_TIME_ACTION>
</TRIGGERED_ABILITY>
<TOKEN_REGISTRATION reservation="1" type="RSN_TOKEN_MANA_C" />
</CARD_V2>
This is incorrect because that would allow players to respond to the damage even though they shouldn't be able to due to being part of the mana ability. Same concept for Grove of the Burnwillows, since the life gain for the opponents is part of the mana ability it should not be able to be responded to. Also it is better to make it a part of the mana ability rather than the mana tokens, this is because while I account for the extra tokens created by effects like Doubling Season and Parallel Lives the extra tokens are created and do enter the battlefield (even if they do get removed immediately). So if you put the effect on the token then the effect may trigger more than it is supposed to (extra damage in the case of Ancient Tomb or Horizon Canopy, and extra opponent life gain in the case of Grove of the Burnwillows).East Bay wrote:I edited a mana token to deal 1 damage to the controller when it comes into play. Same with Horizon Canopy, Grove of the Burnwillows ect. You can find Ancient Tomb in my affinity deck.
It is very wrong for Horizon Canopy as on that card the life loss is part of the cost on that one so you need to use a COST block.
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 East Bay » 27 Aug 2013, 16:08
It may be wrong but ive made sure my decks wont abuse them, cards like Burning-Tree Shaman and Doubling Season will never make it into any of my mods. Its only a mod for a game not paper magic Im not picky.RiiakShiNal wrote:The BECAME_TAPPED_FOR_MANA trigger must be fired manually as the game does not fire it (not even for basic lands). I do include firing that event in my manual mana functions, though it is only fired when manually activating mana abilities, auto-tap mana from basic lands will not fire it (engine limitation).thefiremind wrote:The BECAME_TAPPED_FOR_MANA trigger is bugged and doesn't fire automatically, but I think it does if you use RiiakShiNal's mana functions, which is actually the only way to make Ancient Tomb work properly.MC Brodie wrote:On a different note I have a rules question. I am trying to code Ancient Tomb. Does "tapped for mana" mean anything special?
However, Ancient Tomb does not have the text "tapped for mana", the damage it does is part of the mana ability and should occur immediately after addingto your mana pool in the same ability. This damage can't be responded to (it's also not a cost) as it is part of the mana ability and mana abilities can't be responded to. As such Rari's suggestion of putting the damage after the mana production is correct (though will only work with manual mana).
I actually have coded Ancient Tomb (though it is not in the currently released version):thefiremind wrote:That wouldn't work because the MANA_ABILITY only accepts tapping as cost.MC Brodie wrote:I also don't think <COST type="Life" amount="2" /> is correct since its damage not a loss of life.It wouldn't be possible with a MANA_ABILITY, but with RiiakShiNal's mana functions this is the way to do that.Rari wrote:I would think you could just follow the mana production with
- Code: Select all
EffectSourceLKI():DealDamageTo( 2, EffectController() )
Look inside RiiakShiNal's mod and I'm sure you'll find an example similar to Ancient Tomb (maybe Ancient Tomb itself).Edit:
- Ancient Tomb | Open
- Code: Select all
<?xml version='1.0'?>
<CARD_V2>
<FILENAME text="RSN_ANCIENT_TOMB_288994" />
<CARDNAME text="ANCIENT_TOMB" />
<TITLE>
<LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Ancient Tomb]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Ancient Tomb]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Ancient Tomb]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Ancient Tomb]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Ancient Tomb]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[Ancient Tomb]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[Ancient Tomb]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[Ancient Tomb]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[Ancient Tomb]]></LOCALISED_TEXT>
</TITLE>
<MULTIVERSEID value="288994" />
<ARTID value="RSN288994" />
<ARTIST name="Colin MacNeil" />
<CASTING_COST cost="" />
<FLAVOURTEXT>
<LOCALISED_TEXT LanguageCode="en-US"><![CDATA[There is no glory to be gained in the kingdom of the dead.
—Vec tomb inscription]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[There is no glory to be gained in the kingdom of the dead.
—Vec tomb inscription]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[There is no glory to be gained in the kingdom of the dead.
—Vec tomb inscription]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[There is no glory to be gained in the kingdom of the dead.
—Vec tomb inscription]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[There is no glory to be gained in the kingdom of the dead.
—Vec tomb inscription]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[There is no glory to be gained in the kingdom of the dead.
—Vec tomb inscription]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[There is no glory to be gained in the kingdom of the dead.
—Vec tomb inscription]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[There is no glory to be gained in the kingdom of the dead.
—Vec tomb inscription]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[There is no glory to be gained in the kingdom of the dead.
—Vec tomb inscription]]></LOCALISED_TEXT>
</FLAVOURTEXT>
<TYPE metaname="Land" />
<EXPANSION value="RLM" />
<RARITY metaname="M" />
<ACTIVATED_ABILITY forced_skip="1">
<LOCALISED_TEXT LanguageCode="en-US"><![CDATA[{T}: Add {2} to your mana pool. Ancient Tomb deals 2 damage to you.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[{T}: Add {2} to your mana pool. Ancient Tomb deals 2 damage to you.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[{T}: Add {2} to your mana pool. Ancient Tomb deals 2 damage to you.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[{T}: Add {2} to your mana pool. Ancient Tomb deals 2 damage to you.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[{T}: Add {2} to your mana pool. Ancient Tomb deals 2 damage to you.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[{T}: Add {2} to your mana pool. Ancient Tomb deals 2 damage to you.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[{T}: Add {2} to your mana pool. Ancient Tomb deals 2 damage to you.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[{T}: Add {2} to your mana pool. Ancient Tomb deals 2 damage to you.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[{T}: Add {2} to your mana pool. Ancient Tomb deals 2 damage to you.]]></LOCALISED_TEXT>
<COST type="TapSelf" />
<PLAY_TIME_ACTION>
RSN_MarkManaAbilityStart()
</PLAY_TIME_ACTION>
<RESOLUTION_TIME_ACTION>
RSN_Produce( "{2}", 1 )
if (EffectSourceLKI() ~= nil) then
EffectSourceLKI():DealDamageTo( 2, EffectController() )
end
</RESOLUTION_TIME_ACTION>
<RESOLUTION_TIME_ACTION>
RSN_EliminateExtraManaTokens()
RSN_MarkManaAbilityEnd()
</RESOLUTION_TIME_ACTION>
<AI_AVAILABILITY window_step="upkeep" type="window" />
<AI_AVAILABILITY window_step="main_1" window_turn="my_turn" type="window" />
<AI_AVAILABILITY window_step="begin_combat" window_turn="their_turn" type="window" />
<AI_AVAILABILITY window_step="declare_attackers" window_turn="their_turn" type="window" />
<AI_AVAILABILITY window_step="declare_blockers" type="window" />
<AI_AVAILABILITY window_step="main_2" window_turn="my_turn" type="window" />
<AI_AVAILABILITY window_step="end_of_turn" type="window" />
<AI_AVAILABILITY window_step="end_of_turn" window_turn="their_turn" type="window" />
<AI_AVAILABILITY type="in_response" response_source="1" response_target="1" />
<AI_AVAILABILITY type="in_response" response_source="1" />
<AI_AVAILABILITY type="in_response" response_target="1" />
</ACTIVATED_ABILITY>
<STATIC_ABILITY>
<CONTINUOUS_ACTION layer="0">
RSN_ClearCanProduceMana()
RSN_MarkCanProduceMana( "{1}" )
</CONTINUOUS_ACTION>
</STATIC_ABILITY>
<TRIGGERED_ABILITY forced_skip="1" replacement_effect="1">
<TRIGGER value="BEGINNING_OF_STEP" pre_trigger="1" />
<RESOLUTION_TIME_ACTION>
RSN_ClearProducedMana()
</RESOLUTION_TIME_ACTION>
</TRIGGERED_ABILITY>
<TOKEN_REGISTRATION reservation="1" type="RSN_TOKEN_MANA_C" />
</CARD_V2>This is incorrect because that would allow players to respond to the damage even though they shouldn't be able to due to being part of the mana ability. Same concept for Grove of the Burnwillows, since the life gain for the opponents is part of the mana ability it should not be able to be responded to. Also it is better to make it a part of the mana ability rather than the mana tokens, this is because while I account for the extra tokens created by effects like Doubling Season and Parallel Lives the extra tokens are created and do enter the battlefield (even if they do get removed immediately). So if you put the effect on the token then the effect may trigger more than it is supposed to (extra damage in the case of Ancient Tomb or Horizon Canopy, and extra opponent life gain in the case of Grove of the Burnwillows).East Bay wrote:I edited a mana token to deal 1 damage to the controller when it comes into play. Same with Horizon Canopy, Grove of the Burnwillows ect. You can find Ancient Tomb in my affinity deck.
It is very wrong for Horizon Canopy as on that card the life loss is part of the cost on that one so you need to use a COST block.
Re: Formal Request Thread
by Parabolic » 27 Aug 2013, 16:17
Actually, if you downloaded Gibbed Tools, it's a pretty simple copy/paste job:mr friendly guy wrote:Can you put a link to download it. I am no coder, but presumably I would need a compiler to convert that code into something the game can use.
Take a blank .xml file (I made a copy of one of the modder's cards, then deleted all the text inside by opening it with Notepad, then saved it elsewhere so I can copy it often and easily)
Paste the new card's text into the .xml
Save it, then rename it
You'd have to fetch the art yourself that way, but you still might want to. Even with thefiremind's advice, my .tdx files tend to be too large for my liking, so I made the pictures even smaller, pixel-wise. It's the same ratio, but some of them look a little fuzzy in game. I don't mind, but others might.
- Attachments
-
STAFF_OF_DOMINATION.rar
- (43.02 KiB) Downloaded 361 times
Re: Formal Request Thread
by gorem2k » 27 Aug 2013, 18:08
EDIT: I think you've put TriggerPlayer() in delayed trigger, you should use EffectSource():GetParentPlayer() like I did below. or maybe this isn't the problem, you already filter which TriggerPlayer() in <TRIGGER>.thefiremind wrote:Try it and you'll see that the delayed triggers actually skip every step of the beginning phases: after the Haze triggers, you don't get anything else, no upkeeps, no untaps, no draws. If you comment out the delayed trigger creations, you'll see that the additional phase gets properly created. What am I doing wrong? (Yes, I tried with 2 delayed triggers that specifically refer to an untap step and a draw step, but the result is the same.)
I have tried other things, like counting how many steps to skip until next upkeep. this works somehow but you must only have one instance in play. I feel somewhat ridiculous how it's coded. awkward

- Paradox Haze (other weird version) | Open
- Code: Select all
<?xml version='1.0' encoding='UTF-8'?>
<CARD_V2 ExportVersion="1">
<FILENAME text="PARADOX_HAZE_444109721" />
<CARDNAME text="PARADOX_HAZE" />
<TITLE>
<LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Paradox Haze]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Brume de paradoxe]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Bruma paradojal]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Paradoxer Dunst]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Foschia Paradossale]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[逆説のもや]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[Paradox Haze]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[Туман Парадоксов]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[Bruma do Paradoxo]]></LOCALISED_TEXT>
</TITLE>
<MULTIVERSEID value="444109721" />
<ARTID value="444109721" />
<ARTIST name="Greg Staples" />
<CASTING_COST cost="{2}{U}" />
<FLAVOURTEXT>
<LOCALISED_TEXT LanguageCode="en-US"><![CDATA[“Keep your pace steady through the haze, lest you step on the heels of your future self or trip the self a moment behind you.”
—Teferi]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[« Traversez la brume d’un pas régulier, vous risqueriez autrement de marcher sur le talon de votre avenir, ou de faire trébucher votre passé. »
—Téfeiri]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[“Mantén tu paso firme en la bruma, no sea cuestión de que pises los talones de tu yo futuro o te topes con tu yo de un momento pasado.”
—Teferi]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[„Behalte deine Geschwindigkeit im Dunst gleichmäßig, damit du nicht deinem zukünftigen Ich auf die Fersen trittst oder dein Ich einen Moment hinter dir zum Stolpern bringst.”
—Teferi]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[“Mantieni il passo costante attraverso la foschia, altrimenti potresti pestare i talloni del te stesso nel futuro o far inciampare il te stesso che ti sta seguendo.”
—Teferi]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[もやの中でも自分のペースを乱すな。未来のお前の足の上に着地しなければ、一瞬前の自分に足を引っ掛けられるぞ。
――テフェリー]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[“Keep your pace steady through the haze, lest you step on the heels of your future self or trip the self a moment behind you.”
—Teferi]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[«Держи свой путь прямо через туман, не то ты будешь наступать себе же на пятки или вернешься в свое прошлое»,
Тефери]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[“Mantenha o passo firme através da bruma, a fim de que não pise nos calcanhares do seu ”eu“ futuro nem tropece no seu ”eu“ de um minuto atrás.”
— Teferi]]></LOCALISED_TEXT>
</FLAVOURTEXT>
<TYPE metaname="Enchantment" />
<SUB_TYPE metaname="Aura" />
<EXPANSION value="TSP" />
<RARITY metaname="U" />
<SPELL_ABILITY attach_definition="0">
<LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Enchant player]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Enchanter : joueur]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Encantar jugador.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Spielerverzauberung]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Incanta giocatore]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[エンチャント(プレイヤー)]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[Enchant player]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[Зачаровать игрока]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[Encantar jogador]]></LOCALISED_TEXT>
<TARGET tag="CARD_QUERY_CHOOSE_PLAYER_TO_CURSE" definition="0" compartment="0" count="1" />
<TARGET_DEFINITION id="0">
local filter = ClearFilter()
filter:SetFilterType( FILTER_TYPE_PLAYERS )
</TARGET_DEFINITION>
<RESOLUTION_TIME_ACTION>
local target = EffectDC():Get_Targets(0):Get_PlayerPtr(0)
if (target ~= nil and EffectSource() ~= nil) then
EffectSource():AttachToPlayer( target )
end
</RESOLUTION_TIME_ACTION>
<AI_SIMPLIFIED_TARGETING compartment="0" hint="HINT_ENEMY_ONLY" />
</SPELL_ABILITY>
<TRIGGERED_ABILITY linked_ability_group="1">
<LOCALISED_TEXT LanguageCode="en-US"><![CDATA[At the beginning of enchanted player’s first upkeep each turn, that player gets an additional upkeep step after this step.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Au début du premier entretien du joueur enchanté à chaque tour, ce joueur gagne une étape d’entretien supplémentaire après cette étape.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Al comienzo del primer mantenimiento de cada turno del jugador encantado, ese jugador obtiene un mantenimiento adicional después de este paso.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Zu Beginn des ersten Versorgungssegments des verzauberten Spielers erhält dieser Spieler ein zusätzliches Versorgungssegment nach diesem Segment.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[All’inizio del primo mantenimento del giocatore incantato in ogni turno, quel giocatore gioca un mantenimento addizionale dopo questa sottofase.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[エンチャントされているプレイヤーの各ターンの最初のアップキープの開始時に、そのプレイヤーはこのステップの直後に追加のアップキープ・ステップを得る。]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[At the beginning of enchanted player’s first upkeep each turn, that player gets an additional upkeep step after this step.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[В начале первого шага поддержки на каждом ходу зачарованного игрока этот игрок получает дополнительный шаг поддержки после окончания первого.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[No início da primeira manutenção do jogador encantado a cada turno, aquele jogador recebe uma etapa de manutenção adicional após esta etapa.]]></LOCALISED_TEXT>
<TRIGGER value="BEGINNING_OF_PLAYERS_STEP">
if MTG():GetStep() == STEP_UPKEEP and TriggerPlayer() == EffectSource():GetParentPlayer() and LinkedDC():Get_Int(0) ~= 1 then
LinkedDC():Set_Int(0, 1)
LinkedDC():Set_Int(1, 0)
return true
end
return false
</TRIGGER>
<RESOLUTION_TIME_ACTION>
local delayDC = EffectDC():Make_Chest(1)
delayDC:Set_PlayerPtr( 0, EffectSource():GetParentPlayer() )
MTG():CreateDelayedTrigger(1, delayDC)
</RESOLUTION_TIME_ACTION>
<RESOLUTION_TIME_ACTION>
MTG():TakeAdditionalPhase(PHASE_BEGINNING)
</RESOLUTION_TIME_ACTION>
<SFX text="GLOBAL_WARP_PLAY" />
</TRIGGERED_ABILITY>
<TRIGGERED_ABILITY linked_ability_group="1" resource_id="1" replacement_effect="1">
<TRIGGER value="BEGINNING_OF_PLAYERS_STEP" pre_trigger="1">
if MTG():GetStep() ~= STEP_UPKEEP and
TriggerPlayer() == EffectDC():Get_PlayerPtr(0) then
return true
end
return false
</TRIGGER>
<RESOLUTION_TIME_ACTION>
local skipped = LinkedDC():Get_Int(1)
if skipped == 11 then
-- MTG():MessageAllPlayers("skipped steps = "..skipped)
MTG():RemoveDelayedTrigger(1)
LinkedDC():Set_Int(0, 0)
LinkedDC():Set_Int(1, 0)
elseif skipped < 11 then
MTG():SkipStep()
end
LinkedDC():Int_Inc(1)
</RESOLUTION_TIME_ACTION>
</TRIGGERED_ABILITY>
<AI_BASE_SCORE score="300" zone="ZONE_BATTLEFIELD" />
</CARD_V2>


- Grrr Haze | Open
- Code: Select all
<TRIGGERED_ABILITY replacement_effect="1">
<LOCALISED_TEXT LanguageCode="en-US"><![CDATA[At the beginning of enchanted player’s first upkeep each turn, that player gets an additional upkeep step after this step.]]></LOCALISED_TEXT>
<TRIGGER value="BEGINNING_OF_PLAYERS_TURN" pre_trigger="1">
return EffectSource():GetParentPlayer():MyTurn() == true
</TRIGGER>
<RESOLUTION_TIME_ACTION>
local delayDC = EffectDC():Make_Chest(1)
delayDC:Set_PlayerPtr( 0, EffectSource():GetParentPlayer() )
for i=0, 11 do -- 12 steps to skip
MTG():CreateDelayedTrigger(1, delayDC)
end
</RESOLUTION_TIME_ACTION>
<RESOLUTION_TIME_ACTION>
MTG():TakeAdditionalPhase(PHASE_BEGINNING) -- perhaps I should set this and delayDC only after first upkeep?
</RESOLUTION_TIME_ACTION>
<SFX text="GLOBAL_WARP_PLAY" />
</TRIGGERED_ABILITY>
<TRIGGERED_ABILITY resource_id="1" replacement_effect="1">
<CLEANUP fire_once="1" />
<TRIGGER value="BEGINNING_OF_PLAYERS_STEP" pre_trigger="1">
return MTG():GetStep() ~= STEP_UPKEEP
</TRIGGER>
<RESOLUTION_TIME_ACTION>
MTG():SkipStep()
</RESOLUTION_TIME_ACTION>
</TRIGGERED_ABILITY>
Last edited by gorem2k on 28 Aug 2013, 04:51, edited 2 times in total.
Re: Formal Request Thread
by MC Brodie » 27 Aug 2013, 23:27
This seemed to work for Paradox Haze. If you have hold priority on you have to hit continue between Beginning Phase #1 and Beginning Phase #2. Other than that it seemed to work correctly though I doubt its the best way to code it. I also added the guy I used to test it.
- Paradox Haze | Open
- Code: Select all
<?xml version='1.0' encoding='UTF-8'?>
<CARD_V2 ExportVersion="1">
<FILENAME text="PARADOX_HAZE_109721" />
<CARDNAME text="PARADOX_HAZE" />
<TITLE>
<LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Paradox Haze]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Brume de paradoxe]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Bruma paradojal]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Paradoxer Dunst]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Foschia Paradossale]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[逆説のもや]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[Paradox Haze]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[Туман Парадоксов]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[Bruma do Paradoxo]]></LOCALISED_TEXT>
</TITLE>
<MULTIVERSEID value="109721" />
<ARTID value="109721" />
<ARTIST name="Greg Staples" />
<CASTING_COST cost="{2}{U}" />
<FLAVOURTEXT>
<LOCALISED_TEXT LanguageCode="en-US"><![CDATA[“Keep your pace steady through the haze, lest you step on the heels of your future self or trip the self a moment behind you.”
—Teferi]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[« Traversez la brume d’un pas régulier, vous risqueriez autrement de marcher sur le talon de votre avenir, ou de faire trébucher votre passé. »
—Téfeiri]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[“Mantén tu paso firme en la bruma, no sea cuestión de que pises los talones de tu yo futuro o te topes con tu yo de un momento pasado.”
—Teferi]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[„Behalte deine Geschwindigkeit im Dunst gleichmäßig, damit du nicht deinem zukünftigen Ich auf die Fersen trittst oder dein Ich einen Moment hinter dir zum Stolpern bringst.”
—Teferi]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[“Mantieni il passo costante attraverso la foschia, altrimenti potresti pestare i talloni del te stesso nel futuro o far inciampare il te stesso che ti sta seguendo.”
—Teferi]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[もやの中でも自分のペースを乱すな。未来のお前の足の上に着地しなければ、一瞬前の自分に足を引っ掛けられるぞ。
――テフェリー]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[“Keep your pace steady through the haze, lest you step on the heels of your future self or trip the self a moment behind you.”
—Teferi]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[«Держи свой путь прямо через туман, не то ты будешь наступать себе же на пятки или вернешься в свое прошлое»,
Тефери]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[“Mantenha o passo firme através da bruma, a fim de que não pise nos calcanhares do seu ”eu“ futuro nem tropece no seu ”eu“ de um minuto atrás.”
— Teferi]]></LOCALISED_TEXT>
</FLAVOURTEXT>
<TYPE metaname="Enchantment" />
<SUB_TYPE metaname="Aura" />
<EXPANSION value="TSP" />
<RARITY metaname="U" />
<SPELL_ABILITY attach_definition="0">
<LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Enchant player]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Enchanter : joueur]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Encantar jugador.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Spielerverzauberung]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Incanta giocatore]]></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 jogador]]></LOCALISED_TEXT>
<TARGET tag="CARD_QUERY_CHOOSE_PLAYER_TO_VESTIGE_ROT" definition="0" compartment="0" count="1" />
<TARGET_DEFINITION id="0">
local filter = ClearFilter()
filter:SetFilterType(FILTER_TYPE_PLAYERS)
</TARGET_DEFINITION>
<RESOLUTION_TIME_ACTION>
local target = EffectDC():Get_Targets(0):Get_PlayerPtr(0)
if target ~= nil and EffectSource() ~= nil then
EffectSource():AttachToPlayer(target)
end
</RESOLUTION_TIME_ACTION>
<AI_SIMPLIFIED_TARGETING compartment="0" hint="HINT_ALLIED_ONLY" />
</SPELL_ABILITY>
<TRIGGERED_ABILITY linked_ability_group="1">
<LOCALISED_TEXT LanguageCode="en-US"><![CDATA[At the beginning of enchanted player’s first upkeep each turn, that player gets an additional upkeep step after this step.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Au début du premier entretien du joueur enchanté à chaque tour, ce joueur gagne une étape d’entretien supplémentaire après cette étape.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Al comienzo del primer mantenimiento de cada turno del jugador encantado, ese jugador obtiene un mantenimiento adicional después de este paso.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Zu Beginn des ersten Versorgungssegments des verzauberten Spielers erhält dieser Spieler ein zusätzliches Versorgungssegment nach diesem Segment.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[All’inizio del primo mantenimento del giocatore incantato in ogni turno, quel giocatore gioca un mantenimento addizionale dopo questa sottofase.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[エンチャントされているプレイヤーの各ターンの最初のアップキープの開始時に、そのプレイヤーはこのステップの直後に追加のアップキープ・ステップを得る。]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[At the beginning of enchanted player’s first upkeep each turn, that player gets an additional upkeep step after this step.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[В начале первого шага поддержки на каждом ходу зачарованного игрока этот игрок получает дополнительный шаг поддержки после окончания первого.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[No início da primeira manutenção do jogador encantado a cada turno, aquele jogador recebe uma etapa de manutenção adicional após esta etapa.]]></LOCALISED_TEXT>
<TRIGGER value="BEGINNING_OF_PLAYERS_STEP">
if MTG():GetStep() == STEP_UPKEEP and TriggerPlayer() == EffectSource():GetParentPlayer() and LinkedDC():Get_Int(0) ~= 1 then
LinkedDC():Set_Int(0, 1) -- counter for first upkeep
LinkedDC():Set_Int(1, 2) -- counter for steps to skip
return true
end
return false
</TRIGGER>
<RESOLUTION_TIME_ACTION>
<!-- EffectController():GainLife(5) -->
MTG():TakeAdditionalPhase(PHASE_BEGINNING)
</RESOLUTION_TIME_ACTION>
<SFX text="GLOBAL_WARP_PLAY" />
</TRIGGERED_ABILITY>
<TRIGGERED_ABILITY linked_ability_group="1" replacement_effect="1">
<TRIGGER value="BEGINNING_OF_PLAYERS_STEP" pre_trigger="1">
return MTG():GetPhase() == PHASE_BEGINNING and MTG():GetStep() ~= STEP_UPKEEP and TriggerPlayer() == EffectSource():GetParentPlayer() and LinkedDC():Get_Int(1) ~= 0
</TRIGGER>
<!--RESOLUTION_TIME_ACTION>
local msg = ""
local step = MTG():GetStep()
if step == STEP_UPKEEP then
msg = "UPKEEP"
elseif step == STEP_UNTAP then
msg = "UNTAP"
elseif step == STEP_DRAW then
msg = "DRAW"
else
msg = "DUNNO"
end
EffectController():DisplayMessage(msg..LinkedDC():Get_Int(1))
</RESOLUTION_TIME_ACTION-->
<RESOLUTION_TIME_ACTION>
LinkedDC():Int_Dec(1)
<!-- EffectController():GainLife(20) -->
MTG():SkipStep()
</RESOLUTION_TIME_ACTION>
</TRIGGERED_ABILITY>
<TRIGGERED_ABILITY linked_ability_group="1" replacement_effect="1">
<TRIGGER value="BEGINNING_OF_STEP">
return MTG():GetStep() == STEP_CLEANUP
</TRIGGER>
<RESOLUTION_TIME_ACTION>
LinkedDC():Set_Int(0, 0)
LinkedDC():Set_Int(1, 0)
</RESOLUTION_TIME_ACTION>
</TRIGGERED_ABILITY>
<AI_BASE_SCORE score="300" zone="ZONE_BATTLEFIELD" />
</CARD_V2>
- Upkeep Check | Open
- Code: Select all
<?xml version='1.0' encoding='UTF-8'?>
<CARD_V2 ExportVersion="1">
<FILENAME text="TEST_UPKEEP_ARTIST_2399901" />
<CARDNAME text="UPKEEP_ARTIST" />
<TITLE>
<LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Upkeep Artist]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Upkeep Artist]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Upkeep Artist]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Upkeep Artist]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Upkeep Artist]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[Upkeep Artist]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[Upkeep Artist]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[Upkeep Artist]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[Upkeep Artist]]></LOCALISED_TEXT>
</TITLE>
<MULTIVERSEID value="2399901" />
<ARTID value="2399901" />
<ARTIST name="Blurr" />
<CASTING_COST cost="{0}" />
<SUPERTYPE metaname="Legendary" />
<TYPE metaname="Creature" />
<SUB_TYPE metaname="Human" />
<SUB_TYPE metaname="Spellshaper" />
<EXPANSION value="PD2" />
<RARITY metaname="R" />
<POWER value="2" />
<TOUGHNESS value="2" />
<TRIGGERED_ABILITY>
<LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Gain 1 life at your upkeep.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Gain 1 life at your upkeep.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Gain 1 life at your upkeep.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Gain 1 life at your upkeep.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Gain 1 life at your upkeep.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[Gain 1 life at your upkeep.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[Gain 1 life at your upkeep.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[Gain 1 life at your upkeep.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[Gain 1 life at your upkeep.]]></LOCALISED_TEXT>
<TRIGGER value="BEGINNING_OF_PLAYERS_STEP">
if MTG():GetStep() == STEP_UPKEEP and TriggerPlayer() == EffectController() then
return true
end
return false
</TRIGGER>
<RESOLUTION_TIME_ACTION>
EffectController():GainLife(1)
</RESOLUTION_TIME_ACTION>
</TRIGGERED_ABILITY>
<TRIGGERED_ABILITY>
<LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Opponents lose 1 life at your untap step.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Opponents lose 1 life at your untap step.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Opponents lose 1 life at your untap step.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Opponents lose 1 life at your untap step.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Opponents lose 1 life at your untap step.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[Opponents lose 1 life at your untap step.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[Opponents lose 1 life at your untap step.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[Opponents lose 1 life at your untap step.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[Opponents lose 1 life at your untap step.]]></LOCALISED_TEXT>
<TRIGGER value="BEGINNING_OF_PLAYERS_STEP">
if MTG():GetStep() == STEP_UNTAP and TriggerPlayer() == EffectController() then
return true
end
return false
</TRIGGER>
<FILTER filter_id="0">
local filter = ClearFilter()
filter:SetFilterType( FILTER_TYPE_PLAYERS )
filter:Add( FE_TEAM, OP_NOT, EffectController():GetTeam() )
</FILTER>
<RESOLUTION_TIME_ACTION filter_id="0">
FilteredPlayer():LoseLife(1)
</RESOLUTION_TIME_ACTION>
</TRIGGERED_ABILITY>
<ACTIVATED_ABILITY>
<LOCALISED_TEXT LanguageCode="en-US"><![CDATA[{0} Show current step.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[{0} Show current step.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[{0} Show current step.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[{0} Show current step.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[{0} Show current step.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[{0} Show current step.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[{0} Show current step.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[{0} Show current step.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[{0} Show current step.]]></LOCALISED_TEXT>
<COST mana_cost="{0}" type="Mana" />
<RESOLUTION_TIME_ACTION>
local msg = "The Current Step is: "
local step = MTG():GetStep()
EffectController():DisplayMessage(msg..step)
</RESOLUTION_TIME_ACTION>
</ACTIVATED_ABILITY>
<SFX text="COMBAT_FLAME_LARGE_ATTACK" power_boundary_min="4" power_boundary_max="-1" />
<SFX text="COMBAT_FLAME_SMALL_ATTACK" power_boundary_min="1" power_boundary_max="3" />
</CARD_V2>
Last edited by MC Brodie on 28 Aug 2013, 00:45, edited 1 time in total.
-----------------------------------------------------------------------
Song of the Day: 46 and 2 (cover)
Song of the Day: 46 and 2 (cover)
Re: Formal Request Thread
by gorem2k » 27 Aug 2013, 23:52
Mmm... not sure if having a STEP_MAIN_1 before having the extra UPKEEP is good. and I've tried with two Haze, was pretty random. This card without having a TakeAdditionalStep will drive us crazy if we want it to work. I gave up after hundreds of retries now I'm mad about this Paradox of S***MC Brodie wrote:This seemed to work for Paradox Haze. If you have hold priority on you have to hit continue between Beginning Phase #1 and Beginning Phase #2. Other than that it seemed to work correctly though I doubt its the best way to code it. I also added the guy I used to test it.


Re: Formal Request Thread
by MC Brodie » 28 Aug 2013, 00:48
Yea you are right. For some reason I assumed that was because I use hold priority but I added an ability to the test creature to check the current step and it is STEP_MAIN_1. I don't know if that's an artifact with how I did it or what. It worked for me with 2 Haze out there but it added a third STEP_MAIN_1. It doesn't matter though since overall it doesn't really work.gorem2k wrote:Mmm... not sure if having a STEP_MAIN_1 before having the extra UPKEEP is good. and I've tried with two Haze, was pretty random. This card without having a TakeAdditionalStep will drive us crazy if we want it to work. I gave up after hundreds of retries now I'm mad about this Paradox of S***MC Brodie wrote:This seemed to work for Paradox Haze. If you have hold priority on you have to hit continue between Beginning Phase #1 and Beginning Phase #2. Other than that it seemed to work correctly though I doubt its the best way to code it. I also added the guy I used to test it.![]()
-----------------------------------------------------------------------
Song of the Day: 46 and 2 (cover)
Song of the Day: 46 and 2 (cover)
Re: Formal Request Thread
by Rari » 28 Aug 2013, 01:09
How do I add the subtype God? I believe, beyond localizing text files from TEXT_PERMANENT and SPECS, I need to add it to CONSTANTS.LOL but I don't have any clue how to actually edit that 
(Currently using the Miracle border, since I obviously don't have a Nyx border to use!)

(Currently using the Miracle border, since I obviously don't have a Nyx border to use!)
- Thassa, God of the Sea | Open
- Code: Select all
<?xml version='1.0' encoding='UTF-8'?>
<CARD_V2 ExportVersion="1">
<FILENAME text="RARI_THASSA_GOD_OF_THE_SEA_55555526" />
<CARDNAME text="THASSA_GOD_OF_THE_SEA" />
<TITLE>
<LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Thassa, God of the Sea]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Thassa, God of the Sea]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Thassa, God of the Sea]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Thassa, God of the Sea]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Thassa, God of the Sea]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[Thassa, God of the Sea]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[Thassa, God of the Sea]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[Thassa, God of the Sea]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[Thassa, God of the Sea]]></LOCALISED_TEXT>
</TITLE>
<MULTIVERSEID value="55555526" />
<ARTID value="RARI_55555526" />
<ARTIST name="Unknown" />
<CASTING_COST cost="{2}{U}" />
<!--<FLAVOURTEXT>
<LOCALISED_TEXT LanguageCode="en-US"><![CDATA[“The warriors she leads can rarely keep pace with her, and neither can the tales.”
—Multani, to Urza]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[“The warriors she leads can rarely keep pace with her, and neither can the tales.”
—Multani, to Urza]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[“The warriors she leads can rarely keep pace with her, and neither can the tales.”
—Multani, to Urza]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[“The warriors she leads can rarely keep pace with her, and neither can the tales.”
—Multani, to Urza]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[“The warriors she leads can rarely keep pace with her, and neither can the tales.”
—Multani, to Urza]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[“The warriors she leads can rarely keep pace with her, and neither can the tales.”
—Multani, to Urza]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[“The warriors she leads can rarely keep pace with her, and neither can the tales.”
—Multani, to Urza]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[“The warriors she leads can rarely keep pace with her, and neither can the tales.”
—Multani, to Urza]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[“The warriors she leads can rarely keep pace with her, and neither can the tales.”
—Multani, to Urza]]></LOCALISED_TEXT>
</FLAVOURTEXT>-->
<SUPERTYPE metaname="Legendary" />
<TYPE metaname="Enchantment" />
<SUB_TYPE metaname="God" />
<EXPANSION value="THR" />
<RARITY metaname="R" />
<POWER value="*" />
<TOUGHNESS value="*" />
<STATIC_ABILITY>
<LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Indestructible]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Indestructible]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Indestructible.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Unzerstörbar]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Indistruttibile]]></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[Indestrutível]]></LOCALISED_TEXT>
<INTRINSIC characteristic="CHARACTERISTIC_INDESTRUCTIBLE" />
</STATIC_ABILITY>
<STATIC_ABILITY>
<LOCALISED_TEXT LanguageCode="en-US"><![CDATA[As long as your devotion to blue is less than five, Thassa isn't a creature. ]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[As long as your devotion to blue is less than five, Thassa isn't a creature. ]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[As long as your devotion to blue is less than five, Thassa isn't a creature. ]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[As long as your devotion to blue is less than five, Thassa isn't a creature. ]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[As long as your devotion to blue is less than five, Thassa isn't a creature. ]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[強奪する悪魔が戦場に出たとき、あなたがそれをあなたの手札から唱えていた場合、アーティファクトでも黒でもないすべてのクリーチャーを破壊する。 それらは再生できない。]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[As long as your devotion to blue is less than five, Thassa isn't a creature. ]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[As long as your devotion to blue is less than five, Thassa isn't a creature. ]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[As long as your devotion to blue is less than five, Thassa isn't a creature. ]]></LOCALISED_TEXT>
<CONTINUOUS_ACTION layer="4">
local filter = ClearFilter()
filter:Add( FE_IS_PERMANENT, true )
filter:Add( FE_CONTROLLER, OP_IS, EffectController())
local total = filter:ChromaCount(COLOUR_BLUE)
if total > 4 then
local characteristics = EffectSource():GetCurrentCharacteristics()
local card_type = characteristics:CardType_GetWritable()
local sub_type = characteristics:SubType_GetWritable()
card_type:Add( CARD_TYPE_CREATURE)
end
</CONTINUOUS_ACTION>
<CONTINUOUS_ACTION layer="7B">
local filter = ClearFilter()
filter:Add( FE_IS_PERMANENT, true )
filter:Add( FE_CONTROLLER, OP_IS, EffectController())
local total = filter:ChromaCount(COLOUR_BLUE)
if total > 4 then
local characteristics = EffectSource():GetCurrentCharacteristics()
characteristics:Power_Set( 4 )
characteristics:Toughness_Set( 4 )
end
</CONTINUOUS_ACTION>
</STATIC_ABILITY>
<TRIGGERED_ABILITY>
<LOCALISED_TEXT LanguageCode="en-US"><![CDATA[At the beginning of your upkeep, scry 1. ]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[At the beginning of your upkeep, scry 1. ]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[At the beginning of your upkeep, scry 1. ]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[At the beginning of your upkeep, scry 1. ]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[At the beginning of your upkeep, scry 1. ]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[At the beginning of your upkeep, scry 1. ]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[At the beginning of your upkeep, scry 1. ]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[At the beginning of your upkeep, scry 1. ]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[At the beginning of your upkeep, scry 1. ]]></LOCALISED_TEXT>
<TRIGGER value="BEGINNING_OF_PLAYERS_STEP" simple_qualifier="controller">
return MTG():GetStep() == STEP_UPKEEP
</TRIGGER>
<RESOLUTION_TIME_ACTION>
local filter = ClearFilter()
local effectController = EffectController()
filter:SetZone( ZONE_LIBRARY, effectController )
filter:SetPortion( 1 ) --Change this
effectController:SetItemCount( 1 ) --Change this
effectController:SetItemPrompt(0, "CARD_QUERY_CHOOSE_CARD_TO_PUT_ON_BOTTOM_LIBRARY" )
effectController:ChooseItems( EffectDC():Make_Targets(0), QUERY_FLAG_UP_TO )
</RESOLUTION_TIME_ACTION>
<RESOLUTION_TIME_ACTION>
local rem_count = 1 --Change this
local cardsInLibrary = EffectController():Library_Count()
if rem_count > cardsInLibrary then
rem_count = cardsInLibrary
end
local target_array = {}
for i=0,1 do
target_array[i] = EffectDC():Get_Targets(0):Get_CardPtr(i)
end
for i = 0,1 do
if target_array[i] ~= nil then
target_array[i]:PutOnBottomOfLibrary()
rem_count = rem_count-1
end
end
EffectDC():Set_Int(2, rem_count)
</RESOLUTION_TIME_ACTION>
<RESOLUTION_TIME_ACTION>
local filter = ClearFilter()
local effectController = EffectController()
local remainingCount = EffectDC():Get_Int(2)
if remainingCount > 0 then
filter:SetZone( ZONE_LIBRARY, effectController )
filter:SetPortion( remainingCount )
effectController:SetItemCount( remainingCount )
for i = 0, (remainingCount-1) do
effectController:SetItemPrompt( i, "CARD_QUERY_CHOOSE_CARD_TO_PUT_ONTO_LIBRARY" )
end
effectController:ChooseItems( EffectDC():Make_Targets(1) )
end
</RESOLUTION_TIME_ACTION>
<RESOLUTION_TIME_ACTION>
local remainingCount = EffectDC():Get_Int(2)
if remainingCount > 0 then
local target_array = {}
for i = 0, (remainingCount-1) do
target_array[i] = EffectDC():Get_Targets(1):Get_CardPtr(i)
end
for i = 0, (remainingCount-1) do
if target_array[i] ~= nil then
target_array[i]:PutOnTopOfLibrary()
end
end
end
</RESOLUTION_TIME_ACTION>
</TRIGGERED_ABILITY>
<ACTIVATED_ABILITY>
<LOCALISED_TEXT LanguageCode="en-US"><![CDATA[{1}{U}: Target creature you control can't be blocked this turn.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[{1}{U}: Target creature you control can't be blocked this turn.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[{1}{U}: Target creature you control can't be blocked this turn.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[{1}{U}: Target creature you control can't be blocked this turn.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[{1}{U}: Target creature you control can't be blocked this turn.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[{1}{U}: Target creature you control can't be blocked this turn.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[{1}{U}: Target creature you control can't be blocked this turn.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[{1}{U}: Target creature you control can't be blocked this turn.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[{1}{U}: Target creature you control can't be blocked this turn.]]></LOCALISED_TEXT>
<COST mana_cost="{1}{U}" type="Mana" />
<TARGET tag="CARD_QUERY_CHOOSE_CREATURE_IS_UNBLOCKABLE" definition="0" compartment="0" count="1" />
<TARGET_DEFINITION id="0">
local filter = ClearFilter()
filter:Add( FE_TYPE, OP_IS, CARD_TYPE_CREATURE )
filter:Add(FE_CONTROLLER, OP_IS, EffectController() )
</TARGET_DEFINITION>
<CONTINUOUS_ACTION layer="6">
local target = EffectDC():Get_Targets(0):Get_CardPtr(0)
if target ~= nil then
local characteristics = target:GetCurrentCharacteristics()
characteristics:Bool_Set(CHARACTERISTIC_UNBLOCKABLE, 1)
end
</CONTINUOUS_ACTION>
<DURATION simple_duration="UntilEOT" />
</ACTIVATED_ABILITY>
<FRAME_TYPE type="miracle" />
<HELP title="MORE_INFO_BADGE_TITLE_7" body="MORE_INFO_BADGE_BODY_7" 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>
Last edited by Rari on 28 Aug 2013, 04:18, edited 1 time in total.
Please help yourself to my collection of DoTP artwork. Pretty cards for everyone!
Re: Formal Request Thread
by MC Brodie » 28 Aug 2013, 01:28
I've never added a subtype before. TheFireMind goes over it here but I think you've might have already looked at that. As far as editing a .LOL file, that should be easy. You can do it with you standard text editor. I don't think the name really matters either. Just that it is in the FUNCTIONS folder under DATA_ALL_PLATFORMS. I'd expect that all you would have to do is copy one that's already done and edit it to be similar to TFM's D14_TFM_CREATURE_TYPE_CONSTANTS.LOL (I'm sure others have done it, I've just looked at TFM's wad's recently).Rari wrote:How do I add the subtype God? I believe, beyond localizing text files from TEXT_PERMANENT and SPECS, I need to add it to CONSTANTS.LOL but I don't have any clue how to actually edit that
(Currently using the Miracle border, since I obviously don't have a Nyx border to use!)
-----------------------------------------------------------------------
Song of the Day: 46 and 2 (cover)
Song of the Day: 46 and 2 (cover)
Who is online
Users browsing this forum: No registered users and 17 guests