It is currently 20 Jun 2025, 21:28
   
Text Size

Formal Request Thread

Moderator: CCGHQ Admins

Re: Formal Request Thread

Postby Rari » 27 Aug 2013, 04:48

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? 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.
I would think you could just follow the mana production with
Code: Select all
    EffectSourceLKI():DealDamageTo( 2, EffectController() )
Please help yourself to my collection of DoTP artwork. Pretty cards for everyone!
User avatar
Rari
 
Posts: 47
Joined: 14 Jul 2013, 05:59
Has thanked: 16 times
Been thanked: 4 times

Re: Formal Request Thread

Postby 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.

Celestial Archon | Open
Image
Please help yourself to my collection of DoTP artwork. Pretty cards for everyone!
User avatar
Rari
 
Posts: 47
Joined: 14 Jul 2013, 05:59
Has thanked: 16 times
Been thanked: 4 times

Re: Formal Request Thread

Postby thefiremind » 27 Aug 2013, 08:45

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.
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.
EDIT: No, it seems that beginning phases cannot be counted through interrogation.

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?
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:I also don't think <COST type="Life" amount="2" /> is correct since its damage not a loss of life.
That wouldn't work because the MANA_ABILITY only accepts tapping as cost.

Rari wrote:I would think you could just follow the mana production with
Code: Select all
    EffectSourceLKI():DealDamageTo( 2, EffectController() )
It wouldn't be possible with a MANA_ABILITY, but with RiiakShiNal's mana functions this is the way to do that.

Look inside RiiakShiNal's mod and I'm sure you'll find an example similar to Ancient Tomb (maybe Ancient Tomb itself).

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.
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. :lol: The good thing is that this is the opposite of overload: the alternative cost needs a target, while the normal cost doesn't, and this gives much better chances to get something working.

----------------------------------------

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>
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.)
< Former DotP 2012/2013/2014 modder >
Currently busy with life...
User avatar
thefiremind
Programmer
 
Posts: 3515
Joined: 07 Nov 2011, 10:55
Has thanked: 118 times
Been thanked: 722 times

Is this possible?

Postby sumomole » 27 Aug 2013, 12:38

Image
User avatar
sumomole
Programmer
 
Posts: 611
Joined: 07 Jun 2011, 08:34
Has thanked: 51 times
Been thanked: 234 times

Re: Formal Request Thread

Postby mr friendly guy » 27 Aug 2013, 14:59

Parabolic wrote:
I'm no coder, but I cobbled together a Staff of Domination today, taking pieces of code from various mods.
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.

Rari wrote:
Well, here's Metalworker you. That was a fun one to make. :D
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

Postby East Bay » 27 Aug 2013, 15:23

thefiremind wrote:
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?
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.
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.
User avatar
East Bay
 
Posts: 85
Joined: 17 Mar 2013, 02:05
Has thanked: 33 times
Been thanked: 30 times

Re: Formal Request Thread

Postby RiiakShiNal » 27 Aug 2013, 15:27

thefiremind wrote:
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?
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.
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).

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 {2} to 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).

thefiremind wrote:
MC Brodie wrote:I also don't think <COST type="Life" amount="2" /> is correct since its damage not a loss of life.
That wouldn't work because the MANA_ABILITY only accepts tapping as cost.

Rari wrote:I would think you could just follow the mana production with
Code: Select all
    EffectSourceLKI():DealDamageTo( 2, EffectController() )
It wouldn't be possible with a MANA_ABILITY, but with RiiakShiNal's mana functions this is the way to do that.

Look inside RiiakShiNal's mod and I'm sure you'll find an example similar to Ancient Tomb (maybe Ancient Tomb itself).
I actually have coded Ancient Tomb (though it is not in the currently released version):
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>
Edit:
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.
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).

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.
RiiakShiNal
Programmer
 
Posts: 2188
Joined: 16 May 2011, 21:37
Has thanked: 75 times
Been thanked: 497 times

Re: Formal Request Thread

Postby East Bay » 27 Aug 2013, 16:08

RiiakShiNal wrote:
thefiremind wrote:
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?
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.
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).

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 {2} to 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).

thefiremind wrote:
MC Brodie wrote:I also don't think <COST type="Life" amount="2" /> is correct since its damage not a loss of life.
That wouldn't work because the MANA_ABILITY only accepts tapping as cost.

Rari wrote:I would think you could just follow the mana production with
Code: Select all
    EffectSourceLKI():DealDamageTo( 2, EffectController() )
It wouldn't be possible with a MANA_ABILITY, but with RiiakShiNal's mana functions this is the way to do that.

Look inside RiiakShiNal's mod and I'm sure you'll find an example similar to Ancient Tomb (maybe Ancient Tomb itself).
I actually have coded Ancient Tomb (though it is not in the currently released version):
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>
Edit:
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.
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).

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.
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.
User avatar
East Bay
 
Posts: 85
Joined: 17 Mar 2013, 02:05
Has thanked: 33 times
Been thanked: 30 times

Re: Formal Request Thread

Postby Parabolic » 27 Aug 2013, 16:17

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.
Actually, if you downloaded Gibbed Tools, it's a pretty simple copy/paste job:
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
Parabolic
 
Posts: 74
Joined: 12 Jul 2013, 19:22
Has thanked: 10 times
Been thanked: 10 times

Re: Formal Request Thread

Postby gorem2k » 27 Aug 2013, 18:08

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.)
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>.

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 :lol: .

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 &lt; 11 then
       MTG():SkipStep()
    end
    LinkedDC():Int_Inc(1)
    </RESOLUTION_TIME_ACTION>
  </TRIGGERED_ABILITY>
  <AI_BASE_SCORE score="300" zone="ZONE_BATTLEFIELD" />
</CARD_V2>
EDIT2: late night attempt, using BEGINNING_OF_PLAYERS_TURN, telling right away to take another phase, then skip the steps in delayDC. no LinkedDC needed here :mrgreen: ... though having 2 cards still give wrong result, in this example, you get an extra card free.. [-X

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.
gorem2k
 
Posts: 464
Joined: 01 Apr 2013, 04:21
Has thanked: 48 times
Been thanked: 33 times

Re: Formal Request Thread

Postby 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)
MC Brodie
 
Posts: 310
Joined: 01 Jun 2013, 00:10
Has thanked: 44 times
Been thanked: 34 times

Re: Formal Request Thread

Postby gorem2k » 27 Aug 2013, 23:52

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.
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*** :twisted: :shock:
gorem2k
 
Posts: 464
Joined: 01 Apr 2013, 04:21
Has thanked: 48 times
Been thanked: 33 times

Re: Formal Request Thread

Postby MC Brodie » 28 Aug 2013, 00:48

gorem2k wrote:
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.
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*** :twisted: :shock:
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.
-----------------------------------------------------------------------
Song of the Day: 46 and 2 (cover)
MC Brodie
 
Posts: 310
Joined: 01 Jun 2013, 00:10
Has thanked: 44 times
Been thanked: 34 times

Re: Formal Request Thread

Postby 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!)
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 &gt; 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 &gt; 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 &gt; 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 &gt; 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 &gt; 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>
Attachments
Thassa.jpg
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!
User avatar
Rari
 
Posts: 47
Joined: 14 Jul 2013, 05:59
Has thanked: 16 times
Been thanked: 4 times

Re: Formal Request Thread

Postby MC Brodie » 28 Aug 2013, 01:28

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!)
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).
-----------------------------------------------------------------------
Song of the Day: 46 and 2 (cover)
MC Brodie
 
Posts: 310
Joined: 01 Jun 2013, 00:10
Has thanked: 44 times
Been thanked: 34 times

PreviousNext

Return to 2014

Who is online

Users browsing this forum: No registered users and 17 guests

Main Menu

User Menu

Our Partners


Who is online

In total there are 17 users online :: 0 registered, 0 hidden and 17 guests (based on users active over the past 10 minutes)
Most users ever online was 4143 on 23 Jan 2024, 08:21

Users browsing this forum: No registered users and 17 guests

Login Form