It is currently 02 Sep 2025, 17:28
   
Text Size

Formal Request Thread

Moderator: CCGHQ Admins

Re: Formal Request Thread

Postby hinesassociates » 21 Oct 2014, 23:31

Cool. Thanks. Sorry for the off topic.
hinesassociates
 
Posts: 18
Joined: 07 Oct 2014, 23:59
Has thanked: 8 times
Been thanked: 0 time

Re: Formal Request Thread

Postby hinesassociates » 22 Oct 2014, 19:01

So I had figured it would be impossible to code the Frenetic Sliver because of the coin toss until I that there was a coin flip already in game. I used a combination of Scoria Wurm and Aetherling to try and make the template for the Frenetic Sliver. I hit a couple issues.

Right now if the flip goes to the squigly line (not sure if this is win or lose lol) it will exile the card and puts it back at the beginning of the next end step. That works great except that I think that is actually a losing toss. If the coin lands with the other side up it does nothing. Anyway here is the code. Any help would be much appreciated.

Code: Select all
<?xml version='1.0' encoding='UTF-8'?>
<CARD_V2 ExportVersion="1">
  <FILENAME text="FRENETIC_SLIVER_111126011" />
  <CARDNAME text="FRENETIC_SLIVER" />
  <TITLE>
    <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Frenetic Sliver]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Slivoïde frénétique]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Fragmentado frenético]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Frenetischer Remasuri]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Tramutante Frenetico]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[熱狂スリヴァー]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[Frenetic Sliver]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[Неистовая Щепка]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[Fractius Frenético]]></LOCALISED_TEXT>
  </TITLE>
  <MULTIVERSEID value="111126011" />
  <ARTID value="111126011" />
  <ARTIST name="Luca Zontini" />
  <CASTING_COST cost="{U}" />
  <TYPE metaname="Creature" />
  <SUB_TYPE metaname="Sliver" />
  <EXPANSION value="PLC" />
  <RARITY metaname="U" />
  <POWER value="2" />
  <TOUGHNESS value="2" />
<STATIC_ABILITY>
<LOCALISED_TEXT LanguageCode="en-US"><![CDATA[All Slivers have “{0}: If this permanent is on the battlefield, flip a coin. If you win the flip, exile this permanent and return it to the battlefield under its owner’s control at the beginning of the next end step. If you lose the flip, sacrifice it.”]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Tous les slivoïdes ont « {0} : Si cette créature est en jeu, jouez à pile ou face. Si vous gagnez, retirez cette créature de la partie et renvoyez-la en jeu sous le contrôle de son propriétaire à la fin du tour. Si vous perdez, sacrifiez-la. »]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Todos los fragmentados tienen “{0}: Si esta criatura está en juego, lanza una moneda. Si ganas el lanzamiento, remueve del juego a esta criatura y regrésala al juego bajo el control de su propietario al final del turno. Si pierdes el lanzamiento, sacrifícala”.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Alle Remasuris haben „{0}: Ist diese Kreatur im Spiel, wirf eine Münze. Falls du den Münzwurf gewinnst, entferne diese Kreatur ganz aus dem Spiel und bringe sie am Ende des Zuges unter der Kontrolle ihres Besitzers ins Spiel zurück. Falls du den Münzwurf verlierst, opfere sie.”]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Tutti i Tramutanti hanno “{0}: Se questo permanente è nel campo di battaglia, lancia una moneta. Se vinci il lancio, esilia questo permanente e rimettilo nel campo di battaglia sotto il controllo del suo proprietario all’inizio della prossima sottofase finale. Se perdi il lancio, sacrificalo.”]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[すべてのスリヴァーは「{0}:このクリーチャーが場にいる場合、コイン投げをする。 あなたがコイン投げに勝った場合、このクリーチャーをゲームから取り除き、ターン終了時にそれのオーナーのコントロール下で場に戻す。 あなたがコイン投げに負けた場合、それを生け贄に捧げる。」の能力を持つ。]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[All Slivers have “{0}: If this permanent is on the battlefield, flip a coin. If you win the flip, exile this permanent and return it to the battlefield under its owner’s control at the beginning of the next end step. If you lose the flip, sacrifice it.”]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[Все Щепки имеют способность «{0}: Если это существо в игре, бросьте монетку. Если вы выиграли бросок, удалите это существо из игры и верните его в игру под контролем владельца в конце хода. Если вы проиграли бросок, пожертвуйте его».]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[Todos os Fractius têm “{0}: Se esta criatura estiver em jogo, jogue uma moeda. Se você vencer, remova esta criatura do jogo e, no final do turno, devolva-a ao jogo sob o controle de seu dono. Se você perder, sacrifique-a.”]]></LOCALISED_TEXT>
              <FILTER filter_id="0">
    local filter = ClearFilter()
    filter:Add( FE_SUBTYPE, OP_IS, CREATURE_TYPE_SLIVER )
    filter:Add( FE_CONTROLLER, OP_IS, EffectController() )
    </FILTER>
      <CONTINUOUS_ACTION layer="8" filter_id="0">
    if FilteredCard() ~= nil then
       local characteristics = FilteredCard():GetCurrentCharacteristics()
       characteristics:GrantAbility(1)
    end
    </CONTINUOUS_ACTION>
</STATIC_ABILITY>
  <ACTIVATED_ABILITY resource_id="1">
    <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[“{0}: If this permanent is on the battlefield, flip a coin. If you win the flip, exile this permanent and return it to the battlefield under its owner’s control at the beginning of the next end step. If you lose the flip, sacrifice it.”]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[« {0} : Si cette créature est en jeu, jouez à pile ou face. Si vous gagnez, retirez cette créature de la partie et renvoyez-la en jeu sous le contrôle de son propriétaire à la fin du tour. Si vous perdez, sacrifiez-la. »]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[“{0}: Si esta criatura está en juego, lanza una moneda. Si ganas el lanzamiento, remueve del juego a esta criatura y regrésala al juego bajo el control de su propietario al final del turno. Si pierdes el lanzamiento, sacrifícala”.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[„{0}: Ist diese Kreatur im Spiel, wirf eine Münze. Falls du den Münzwurf gewinnst, entferne diese Kreatur ganz aus dem Spiel und bringe sie am Ende des Zuges unter der Kontrolle ihres Besitzers ins Spiel zurück. Falls du den Münzwurf verlierst, opfere sie.”]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[“{0}: Se questo permanente è nel campo di battaglia, lancia una moneta. Se vinci il lancio, esilia questo permanente e rimettilo nel campo di battaglia sotto il controllo del suo proprietario all’inizio della prossima sottofase finale. Se perdi il lancio, sacrificalo.”]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[「{0}:このクリーチャーが場にいる場合、コイン投げをする。 あなたがコイン投げに勝った場合、このクリーチャーをゲームから取り除き、ターン終了時にそれのオーナーのコントロール下で場に戻す。 あなたがコイン投げに負けた場合、それを生け贄に捧げる。」の能力を持つ。]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[“{0}: If this permanent is on the battlefield, flip a coin. If you win the flip, exile this permanent and return it to the battlefield under its owner’s control at the beginning of the next end step. If you lose the flip, sacrifice it.”]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[«{0}: Если это существо в игре, бросьте монетку. Если вы выиграли бросок, удалите это существо из игры и верните его в игру под контролем владельца в конце хода. Если вы проиграли бросок, пожертвуйте его».]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[“{0}: Se esta criatura estiver em jogo, jogue uma moeda. Se você vencer, remova esta criatura do jogo e, no final do turno, devolva-a ao jogo sob o controle de seu dono. Se você perder, sacrifique-a.”]]></LOCALISED_TEXT>
        <COST mana_cost="{0}" type="Mana" />
<FILTER filter_id="0">
    local filter = ClearFilter()
    filter:Add( FE_SUBTYPE, OP_IS, CREATURE_TYPE_SLIVER )
    filter:Add( FE_CONTROLLER, OP_IS, EffectController() )
    </FILTER>
<RESOLUTION_TIME_ACTION>
    EffectController():FlipCoin()
    </RESOLUTION_TIME_ACTION>
      <RESOLUTION_TIME_ACTION>
    if EffectSource() ~= nil and EffectController():GetFlipResult() ~= COIN_FLIP_WIN then   
    local source = EffectSource()
    if source ~= nil then
       if source:IsToken() == false then
          EffectDC():Protect_CardPtr(COMPARTMENT_ID_EFFECT_SOURCE)
       end
       source:Exile()
    end
 
elseif EffectSource() ~= nil and EffectController():GetFlipResult() ~= COIN_FLIP_LOSE then
local source = EffectSource()
    if source ~= nil then
       if source:IsToken() == false then
          EffectDC():Protect_CardPtr(COMPARTMENT_ID_EFFECT_SOURCE)
       end
      Source:Sacrifice(Source)
end

end
</RESOLUTION_TIME_ACTION>
      <RESOLUTION_TIME_ACTION>
    local source = EffectSource()
    if source ~= nil then
       local delayDC = EffectDC():Make_Chest(1)
       delayDC:Set_CardPtr(0, source)
       MTG():CreateDelayedTrigger(2, delayDC)
    end
</RESOLUTION_TIME_ACTION>
   
      <AI_AVAILABILITY type="in_response" response_source="1" />
</ACTIVATED_ABILITY>
<TRIGGERED_ABILITY resource_id="2">
      <TRIGGER value="BEGINNING_OF_STEP">
    return MTG():GetStep() == STEP_END_OF_TURN
    </TRIGGER>
      <CLEANUP fire_once="1" />
      <RESOLUTION_TIME_ACTION>
    local card = EffectDC():Get_CardPtr(0)
    if card ~= nil then
       card:PutOntoBattlefield( card:GetOwner() )
    end
    </RESOLUTION_TIME_ACTION>
   </TRIGGERED_ABILITY>
  <SFX text="COMBAT_BLUNT_LARGE_ATTACK" power_boundary_min="4" power_boundary_max="-1" />
  <SFX text="COMBAT_BLUNT_SMALL_ATTACK" power_boundary_min="1" power_boundary_max="3" />
</CARD_V2>
Also I am getting a lua error on exit. Here is the error.
Code: Select all
[lua] [string "FRENETIC_SLIVER_111126011_TITLE (RESOLUTION_TIME_ACTION)~0x000002cd"]:17: attempt to index global 'Source' (a nil value)
[lua] [string "FRENETIC_SLIVER_111126011_TITLE (RESOLUTION_TIME_ACTION)~0x000002cd"]:17: attempt to index global 'Source' (a nil value)
hinesassociates
 
Posts: 18
Joined: 07 Oct 2014, 23:59
Has thanked: 8 times
Been thanked: 0 time

Re: Formal Request Thread

Postby Xander9009 » 22 Oct 2014, 20:16

hinesassociates wrote:So I had figured it would be impossible to code the Frenetic Sliver because of the coin toss until I that there was a coin flip already in game. I used a combination of Scoria Wurm and Aetherling to try and make the template for the Frenetic Sliver. I hit a couple issues.

Right now if the flip goes to the squigly line (not sure if this is win or lose lol) it will exile the card and puts it back at the beginning of the next end step. That works great except that I think that is actually a losing toss. If the coin lands with the other side up it does nothing. Anyway here is the code. Any help would be much appreciated.

Code: Select all
<?xml version='1.0' encoding='UTF-8'?>
<CARD_V2 ExportVersion="1">
  <FILENAME text="FRENETIC_SLIVER_111126011" />
  <CARDNAME text="FRENETIC_SLIVER" />
  <TITLE>
    <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Frenetic Sliver]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Slivoïde frénétique]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Fragmentado frenético]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Frenetischer Remasuri]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Tramutante Frenetico]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[熱狂スリヴァー]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[Frenetic Sliver]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[Неистовая Щепка]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[Fractius Frenético]]></LOCALISED_TEXT>
  </TITLE>
  <MULTIVERSEID value="111126011" />
  <ARTID value="111126011" />
  <ARTIST name="Luca Zontini" />
  <CASTING_COST cost="{U}" />
  <TYPE metaname="Creature" />
  <SUB_TYPE metaname="Sliver" />
  <EXPANSION value="PLC" />
  <RARITY metaname="U" />
  <POWER value="2" />
  <TOUGHNESS value="2" />
<STATIC_ABILITY>
<LOCALISED_TEXT LanguageCode="en-US"><![CDATA[All Slivers have “{0}: If this permanent is on the battlefield, flip a coin. If you win the flip, exile this permanent and return it to the battlefield under its owner’s control at the beginning of the next end step. If you lose the flip, sacrifice it.”]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Tous les slivoïdes ont « {0} : Si cette créature est en jeu, jouez à pile ou face. Si vous gagnez, retirez cette créature de la partie et renvoyez-la en jeu sous le contrôle de son propriétaire à la fin du tour. Si vous perdez, sacrifiez-la. »]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Todos los fragmentados tienen “{0}: Si esta criatura está en juego, lanza una moneda. Si ganas el lanzamiento, remueve del juego a esta criatura y regrésala al juego bajo el control de su propietario al final del turno. Si pierdes el lanzamiento, sacrifícala”.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Alle Remasuris haben „{0}: Ist diese Kreatur im Spiel, wirf eine Münze. Falls du den Münzwurf gewinnst, entferne diese Kreatur ganz aus dem Spiel und bringe sie am Ende des Zuges unter der Kontrolle ihres Besitzers ins Spiel zurück. Falls du den Münzwurf verlierst, opfere sie.”]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Tutti i Tramutanti hanno “{0}: Se questo permanente è nel campo di battaglia, lancia una moneta. Se vinci il lancio, esilia questo permanente e rimettilo nel campo di battaglia sotto il controllo del suo proprietario all’inizio della prossima sottofase finale. Se perdi il lancio, sacrificalo.”]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[すべてのスリヴァーは「{0}:このクリーチャーが場にいる場合、コイン投げをする。 あなたがコイン投げに勝った場合、このクリーチャーをゲームから取り除き、ターン終了時にそれのオーナーのコントロール下で場に戻す。 あなたがコイン投げに負けた場合、それを生け贄に捧げる。」の能力を持つ。]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[All Slivers have “{0}: If this permanent is on the battlefield, flip a coin. If you win the flip, exile this permanent and return it to the battlefield under its owner’s control at the beginning of the next end step. If you lose the flip, sacrifice it.”]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[Все Щепки имеют способность «{0}: Если это существо в игре, бросьте монетку. Если вы выиграли бросок, удалите это существо из игры и верните его в игру под контролем владельца в конце хода. Если вы проиграли бросок, пожертвуйте его».]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[Todos os Fractius têm “{0}: Se esta criatura estiver em jogo, jogue uma moeda. Se você vencer, remova esta criatura do jogo e, no final do turno, devolva-a ao jogo sob o controle de seu dono. Se você perder, sacrifique-a.”]]></LOCALISED_TEXT>
              <FILTER filter_id="0">
    local filter = ClearFilter()
    filter:Add( FE_SUBTYPE, OP_IS, CREATURE_TYPE_SLIVER )
    filter:Add( FE_CONTROLLER, OP_IS, EffectController() )
    </FILTER>
      <CONTINUOUS_ACTION layer="8" filter_id="0">
    if FilteredCard() ~= nil then
       local characteristics = FilteredCard():GetCurrentCharacteristics()
       characteristics:GrantAbility(1)
    end
    </CONTINUOUS_ACTION>
</STATIC_ABILITY>
  <ACTIVATED_ABILITY resource_id="1">
    <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[“{0}: If this permanent is on the battlefield, flip a coin. If you win the flip, exile this permanent and return it to the battlefield under its owner’s control at the beginning of the next end step. If you lose the flip, sacrifice it.”]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[« {0} : Si cette créature est en jeu, jouez à pile ou face. Si vous gagnez, retirez cette créature de la partie et renvoyez-la en jeu sous le contrôle de son propriétaire à la fin du tour. Si vous perdez, sacrifiez-la. »]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[“{0}: Si esta criatura está en juego, lanza una moneda. Si ganas el lanzamiento, remueve del juego a esta criatura y regrésala al juego bajo el control de su propietario al final del turno. Si pierdes el lanzamiento, sacrifícala”.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[„{0}: Ist diese Kreatur im Spiel, wirf eine Münze. Falls du den Münzwurf gewinnst, entferne diese Kreatur ganz aus dem Spiel und bringe sie am Ende des Zuges unter der Kontrolle ihres Besitzers ins Spiel zurück. Falls du den Münzwurf verlierst, opfere sie.”]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[“{0}: Se questo permanente è nel campo di battaglia, lancia una moneta. Se vinci il lancio, esilia questo permanente e rimettilo nel campo di battaglia sotto il controllo del suo proprietario all’inizio della prossima sottofase finale. Se perdi il lancio, sacrificalo.”]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[「{0}:このクリーチャーが場にいる場合、コイン投げをする。 あなたがコイン投げに勝った場合、このクリーチャーをゲームから取り除き、ターン終了時にそれのオーナーのコントロール下で場に戻す。 あなたがコイン投げに負けた場合、それを生け贄に捧げる。」の能力を持つ。]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[“{0}: If this permanent is on the battlefield, flip a coin. If you win the flip, exile this permanent and return it to the battlefield under its owner’s control at the beginning of the next end step. If you lose the flip, sacrifice it.”]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[«{0}: Если это существо в игре, бросьте монетку. Если вы выиграли бросок, удалите это существо из игры и верните его в игру под контролем владельца в конце хода. Если вы проиграли бросок, пожертвуйте его».]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[“{0}: Se esta criatura estiver em jogo, jogue uma moeda. Se você vencer, remova esta criatura do jogo e, no final do turno, devolva-a ao jogo sob o controle de seu dono. Se você perder, sacrifique-a.”]]></LOCALISED_TEXT>
        <COST mana_cost="{0}" type="Mana" />
<FILTER filter_id="0">
    local filter = ClearFilter()
    filter:Add( FE_SUBTYPE, OP_IS, CREATURE_TYPE_SLIVER )
    filter:Add( FE_CONTROLLER, OP_IS, EffectController() )
    </FILTER>
<RESOLUTION_TIME_ACTION>
    EffectController():FlipCoin()
    </RESOLUTION_TIME_ACTION>
      <RESOLUTION_TIME_ACTION>
    if EffectSource() ~= nil and EffectController():GetFlipResult() ~= COIN_FLIP_WIN then   
    local source = EffectSource()
    if source ~= nil then
       if source:IsToken() == false then
          EffectDC():Protect_CardPtr(COMPARTMENT_ID_EFFECT_SOURCE)
       end
       source:Exile()
    end
 
elseif EffectSource() ~= nil and EffectController():GetFlipResult() ~= COIN_FLIP_LOSE then
local source = EffectSource()
    if source ~= nil then
       if source:IsToken() == false then
          EffectDC():Protect_CardPtr(COMPARTMENT_ID_EFFECT_SOURCE)
       end
      Source:Sacrifice(Source)
end

end
</RESOLUTION_TIME_ACTION>
      <RESOLUTION_TIME_ACTION>
    local source = EffectSource()
    if source ~= nil then
       local delayDC = EffectDC():Make_Chest(1)
       delayDC:Set_CardPtr(0, source)
       MTG():CreateDelayedTrigger(2, delayDC)
    end
</RESOLUTION_TIME_ACTION>
   
      <AI_AVAILABILITY type="in_response" response_source="1" />
</ACTIVATED_ABILITY>
<TRIGGERED_ABILITY resource_id="2">
      <TRIGGER value="BEGINNING_OF_STEP">
    return MTG():GetStep() == STEP_END_OF_TURN
    </TRIGGER>
      <CLEANUP fire_once="1" />
      <RESOLUTION_TIME_ACTION>
    local card = EffectDC():Get_CardPtr(0)
    if card ~= nil then
       card:PutOntoBattlefield( card:GetOwner() )
    end
    </RESOLUTION_TIME_ACTION>
   </TRIGGERED_ABILITY>
  <SFX text="COMBAT_BLUNT_LARGE_ATTACK" power_boundary_min="4" power_boundary_max="-1" />
  <SFX text="COMBAT_BLUNT_SMALL_ATTACK" power_boundary_min="1" power_boundary_max="3" />
</CARD_V2>
Also I am getting a lua error on exit. Here is the error.
Code: Select all
[lua] [string "FRENETIC_SLIVER_111126011_TITLE (RESOLUTION_TIME_ACTION)~0x000002cd"]:17: attempt to index global 'Source' (a nil value)
[lua] [string "FRENETIC_SLIVER_111126011_TITLE (RESOLUTION_TIME_ACTION)~0x000002cd"]:17: attempt to index global 'Source' (a nil value)
~ means not, so ~= means not equal, and finally, GetFlipResult() ~= COIN_FLIP_WIN means 'flip result is not win' so you're correct that they should be reversed. Replace ~= with ==.

Your errors are because LUA is a language in which capitalization matters. You create a variable called "source" and then use a variable called "Source". They have the same letters but because one is capitalized and the other isn't, they're two different variables.

This is the same code, just a little cleaned up (removed a bit of redundancy). Try it if you want (otherwise, just fixing the source/Source and ~=/== should make it work as expected).
| Open
Code: Select all
<RESOLUTION_TIME_ACTION>
  local source = EffectSource()
  if source ~= nil then
    if EffectController():GetFlipResult() == COIN_FLIP_WIN then   
      if source:IsToken() == false then
        EffectDC():Protect_CardPtr(COMPARTMENT_ID_EFFECT_SOURCE)
      end
      source:Exile()
    else
      if source:IsToken() == false then
        EffectDC():Protect_CardPtr(COMPARTMENT_ID_EFFECT_SOURCE)
      end
      source:Sacrifice(source)
    end
  end
</RESOLUTION_TIME_ACTION>
_______________________________
Community Wad - Community Wad Website - How to Help and Report Bugs
Discord: discord.gg/4AXvHzW
User avatar
Xander9009
Programmer
 
Posts: 2905
Joined: 29 Jun 2013, 07:44
Location: Indiana, United States
Has thanked: 121 times
Been thanked: 445 times

Re: Formal Request Thread

Postby hinesassociates » 22 Oct 2014, 22:21

Xander9009 wrote:
hinesassociates wrote:So I had figured it would be impossible to code the Frenetic Sliver because of the coin toss until I that there was a coin flip already in game. I used a combination of Scoria Wurm and Aetherling to try and make the template for the Frenetic Sliver. I hit a couple issues.

Right now if the flip goes to the squigly line (not sure if this is win or lose lol) it will exile the card and puts it back at the beginning of the next end step. That works great except that I think that is actually a losing toss. If the coin lands with the other side up it does nothing. Anyway here is the code. Any help would be much appreciated.

Code: Select all
<?xml version='1.0' encoding='UTF-8'?>
<CARD_V2 ExportVersion="1">
  <FILENAME text="FRENETIC_SLIVER_111126011" />
  <CARDNAME text="FRENETIC_SLIVER" />
  <TITLE>
    <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Frenetic Sliver]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Slivoïde frénétique]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Fragmentado frenético]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Frenetischer Remasuri]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Tramutante Frenetico]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[熱狂スリヴァー]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[Frenetic Sliver]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[Неистовая Щепка]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[Fractius Frenético]]></LOCALISED_TEXT>
  </TITLE>
  <MULTIVERSEID value="111126011" />
  <ARTID value="111126011" />
  <ARTIST name="Luca Zontini" />
  <CASTING_COST cost="{U}" />
  <TYPE metaname="Creature" />
  <SUB_TYPE metaname="Sliver" />
  <EXPANSION value="PLC" />
  <RARITY metaname="U" />
  <POWER value="2" />
  <TOUGHNESS value="2" />
<STATIC_ABILITY>
<LOCALISED_TEXT LanguageCode="en-US"><![CDATA[All Slivers have “{0}: If this permanent is on the battlefield, flip a coin. If you win the flip, exile this permanent and return it to the battlefield under its owner’s control at the beginning of the next end step. If you lose the flip, sacrifice it.”]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Tous les slivoïdes ont « {0} : Si cette créature est en jeu, jouez à pile ou face. Si vous gagnez, retirez cette créature de la partie et renvoyez-la en jeu sous le contrôle de son propriétaire à la fin du tour. Si vous perdez, sacrifiez-la. »]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Todos los fragmentados tienen “{0}: Si esta criatura está en juego, lanza una moneda. Si ganas el lanzamiento, remueve del juego a esta criatura y regrésala al juego bajo el control de su propietario al final del turno. Si pierdes el lanzamiento, sacrifícala”.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Alle Remasuris haben „{0}: Ist diese Kreatur im Spiel, wirf eine Münze. Falls du den Münzwurf gewinnst, entferne diese Kreatur ganz aus dem Spiel und bringe sie am Ende des Zuges unter der Kontrolle ihres Besitzers ins Spiel zurück. Falls du den Münzwurf verlierst, opfere sie.”]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Tutti i Tramutanti hanno “{0}: Se questo permanente è nel campo di battaglia, lancia una moneta. Se vinci il lancio, esilia questo permanente e rimettilo nel campo di battaglia sotto il controllo del suo proprietario all’inizio della prossima sottofase finale. Se perdi il lancio, sacrificalo.”]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[すべてのスリヴァーは「{0}:このクリーチャーが場にいる場合、コイン投げをする。 あなたがコイン投げに勝った場合、このクリーチャーをゲームから取り除き、ターン終了時にそれのオーナーのコントロール下で場に戻す。 あなたがコイン投げに負けた場合、それを生け贄に捧げる。」の能力を持つ。]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[All Slivers have “{0}: If this permanent is on the battlefield, flip a coin. If you win the flip, exile this permanent and return it to the battlefield under its owner’s control at the beginning of the next end step. If you lose the flip, sacrifice it.”]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[Все Щепки имеют способность «{0}: Если это существо в игре, бросьте монетку. Если вы выиграли бросок, удалите это существо из игры и верните его в игру под контролем владельца в конце хода. Если вы проиграли бросок, пожертвуйте его».]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[Todos os Fractius têm “{0}: Se esta criatura estiver em jogo, jogue uma moeda. Se você vencer, remova esta criatura do jogo e, no final do turno, devolva-a ao jogo sob o controle de seu dono. Se você perder, sacrifique-a.”]]></LOCALISED_TEXT>
              <FILTER filter_id="0">
    local filter = ClearFilter()
    filter:Add( FE_SUBTYPE, OP_IS, CREATURE_TYPE_SLIVER )
    filter:Add( FE_CONTROLLER, OP_IS, EffectController() )
    </FILTER>
      <CONTINUOUS_ACTION layer="8" filter_id="0">
    if FilteredCard() ~= nil then
       local characteristics = FilteredCard():GetCurrentCharacteristics()
       characteristics:GrantAbility(1)
    end
    </CONTINUOUS_ACTION>
</STATIC_ABILITY>
  <ACTIVATED_ABILITY resource_id="1">
    <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[“{0}: If this permanent is on the battlefield, flip a coin. If you win the flip, exile this permanent and return it to the battlefield under its owner’s control at the beginning of the next end step. If you lose the flip, sacrifice it.”]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[« {0} : Si cette créature est en jeu, jouez à pile ou face. Si vous gagnez, retirez cette créature de la partie et renvoyez-la en jeu sous le contrôle de son propriétaire à la fin du tour. Si vous perdez, sacrifiez-la. »]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[“{0}: Si esta criatura está en juego, lanza una moneda. Si ganas el lanzamiento, remueve del juego a esta criatura y regrésala al juego bajo el control de su propietario al final del turno. Si pierdes el lanzamiento, sacrifícala”.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[„{0}: Ist diese Kreatur im Spiel, wirf eine Münze. Falls du den Münzwurf gewinnst, entferne diese Kreatur ganz aus dem Spiel und bringe sie am Ende des Zuges unter der Kontrolle ihres Besitzers ins Spiel zurück. Falls du den Münzwurf verlierst, opfere sie.”]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[“{0}: Se questo permanente è nel campo di battaglia, lancia una moneta. Se vinci il lancio, esilia questo permanente e rimettilo nel campo di battaglia sotto il controllo del suo proprietario all’inizio della prossima sottofase finale. Se perdi il lancio, sacrificalo.”]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[「{0}:このクリーチャーが場にいる場合、コイン投げをする。 あなたがコイン投げに勝った場合、このクリーチャーをゲームから取り除き、ターン終了時にそれのオーナーのコントロール下で場に戻す。 あなたがコイン投げに負けた場合、それを生け贄に捧げる。」の能力を持つ。]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[“{0}: If this permanent is on the battlefield, flip a coin. If you win the flip, exile this permanent and return it to the battlefield under its owner’s control at the beginning of the next end step. If you lose the flip, sacrifice it.”]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[«{0}: Если это существо в игре, бросьте монетку. Если вы выиграли бросок, удалите это существо из игры и верните его в игру под контролем владельца в конце хода. Если вы проиграли бросок, пожертвуйте его».]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[“{0}: Se esta criatura estiver em jogo, jogue uma moeda. Se você vencer, remova esta criatura do jogo e, no final do turno, devolva-a ao jogo sob o controle de seu dono. Se você perder, sacrifique-a.”]]></LOCALISED_TEXT>
        <COST mana_cost="{0}" type="Mana" />
<FILTER filter_id="0">
    local filter = ClearFilter()
    filter:Add( FE_SUBTYPE, OP_IS, CREATURE_TYPE_SLIVER )
    filter:Add( FE_CONTROLLER, OP_IS, EffectController() )
    </FILTER>
<RESOLUTION_TIME_ACTION>
    EffectController():FlipCoin()
    </RESOLUTION_TIME_ACTION>
      <RESOLUTION_TIME_ACTION>
    if EffectSource() ~= nil and EffectController():GetFlipResult() ~= COIN_FLIP_WIN then   
    local source = EffectSource()
    if source ~= nil then
       if source:IsToken() == false then
          EffectDC():Protect_CardPtr(COMPARTMENT_ID_EFFECT_SOURCE)
       end
       source:Exile()
    end
 
elseif EffectSource() ~= nil and EffectController():GetFlipResult() ~= COIN_FLIP_LOSE then
local source = EffectSource()
    if source ~= nil then
       if source:IsToken() == false then
          EffectDC():Protect_CardPtr(COMPARTMENT_ID_EFFECT_SOURCE)
       end
      Source:Sacrifice(Source)
end

end
</RESOLUTION_TIME_ACTION>
      <RESOLUTION_TIME_ACTION>
    local source = EffectSource()
    if source ~= nil then
       local delayDC = EffectDC():Make_Chest(1)
       delayDC:Set_CardPtr(0, source)
       MTG():CreateDelayedTrigger(2, delayDC)
    end
</RESOLUTION_TIME_ACTION>
   
      <AI_AVAILABILITY type="in_response" response_source="1" />
</ACTIVATED_ABILITY>
<TRIGGERED_ABILITY resource_id="2">
      <TRIGGER value="BEGINNING_OF_STEP">
    return MTG():GetStep() == STEP_END_OF_TURN
    </TRIGGER>
      <CLEANUP fire_once="1" />
      <RESOLUTION_TIME_ACTION>
    local card = EffectDC():Get_CardPtr(0)
    if card ~= nil then
       card:PutOntoBattlefield( card:GetOwner() )
    end
    </RESOLUTION_TIME_ACTION>
   </TRIGGERED_ABILITY>
  <SFX text="COMBAT_BLUNT_LARGE_ATTACK" power_boundary_min="4" power_boundary_max="-1" />
  <SFX text="COMBAT_BLUNT_SMALL_ATTACK" power_boundary_min="1" power_boundary_max="3" />
</CARD_V2>
Also I am getting a lua error on exit. Here is the error.
Code: Select all
[lua] [string "FRENETIC_SLIVER_111126011_TITLE (RESOLUTION_TIME_ACTION)~0x000002cd"]:17: attempt to index global 'Source' (a nil value)
[lua] [string "FRENETIC_SLIVER_111126011_TITLE (RESOLUTION_TIME_ACTION)~0x000002cd"]:17: attempt to index global 'Source' (a nil value)
~ means not, so ~= means not equal, and finally, GetFlipResult() ~= COIN_FLIP_WIN means 'flip result is not win' so you're correct that they should be reversed. Replace ~= with ==.

Your errors are because LUA is a language in which capitalization matters. You create a variable called "source" and then use a variable called "Source". They have the same letters but because one is capitalized and the other isn't, they're two different variables.

This is the same code, just a little cleaned up (removed a bit of redundancy). Try it if you want (otherwise, just fixing the source/Source and ~=/== should make it work as expected).
| Open
Code: Select all
<RESOLUTION_TIME_ACTION>
  local source = EffectSource()
  if source ~= nil then
    if EffectController():GetFlipResult() == COIN_FLIP_WIN then   
      if source:IsToken() == false then
        EffectDC():Protect_CardPtr(COMPARTMENT_ID_EFFECT_SOURCE)
      end
      source:Exile()
    else
      if source:IsToken() == false then
        EffectDC():Protect_CardPtr(COMPARTMENT_ID_EFFECT_SOURCE)
      end
      source:Sacrifice(source)
    end
  end
</RESOLUTION_TIME_ACTION>
Thanks. That fixed the flip being correct. Now the only problem is that if you lose the flip it does nothing...

Also I am getting this error on exit.
Code: Select all
[lua] [string "FRENETIC_SLIVER_111126011_TITLE (RESOLUTION_TIME_ACTION)~0x000002cd"]:13: attempt to call method 'Sacrifice' (a nil value)
[lua] [string "FRENETIC_SLIVER_111126011_TITLE (RESOLUTION_TIME_ACTION)~0x000002cd"]:13: attempt to call method 'Sacrifice' (a nil value)
[lua] [string "FRENETIC_SLIVER_111126011_TITLE (RESOLUTION_TIME_ACTION)~0x000002cd"]:13: attempt to call method 'Sacrifice' (a nil value)
Here is the code for the card now...
Code: Select all
<?xml version='1.0' encoding='UTF-8'?>
<CARD_V2 ExportVersion="1">
  <FILENAME text="FRENETIC_SLIVER_111126011" />
  <CARDNAME text="FRENETIC_SLIVER" />
  <TITLE>
    <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Frenetic Sliver]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Slivoïde frénétique]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Fragmentado frenético]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Frenetischer Remasuri]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Tramutante Frenetico]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[熱狂スリヴァー]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[Frenetic Sliver]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[Неистовая Щепка]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[Fractius Frenético]]></LOCALISED_TEXT>
  </TITLE>
  <MULTIVERSEID value="111126011" />
  <ARTID value="111126011" />
  <ARTIST name="Luca Zontini" />
  <CASTING_COST cost="{U}" />
  <TYPE metaname="Creature" />
  <SUB_TYPE metaname="Sliver" />
  <EXPANSION value="PLC" />
  <RARITY metaname="U" />
  <POWER value="2" />
  <TOUGHNESS value="2" />
<STATIC_ABILITY>
<LOCALISED_TEXT LanguageCode="en-US"><![CDATA[All Slivers have “{0}: If this permanent is on the battlefield, flip a coin. If you win the flip, exile this permanent and return it to the battlefield under its owner’s control at the beginning of the next end step. If you lose the flip, sacrifice it.”]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Tous les slivoïdes ont « {0} : Si cette créature est en jeu, jouez à pile ou face. Si vous gagnez, retirez cette créature de la partie et renvoyez-la en jeu sous le contrôle de son propriétaire à la fin du tour. Si vous perdez, sacrifiez-la. »]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Todos los fragmentados tienen “{0}: Si esta criatura está en juego, lanza una moneda. Si ganas el lanzamiento, remueve del juego a esta criatura y regrésala al juego bajo el control de su propietario al final del turno. Si pierdes el lanzamiento, sacrifícala”.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Alle Remasuris haben „{0}: Ist diese Kreatur im Spiel, wirf eine Münze. Falls du den Münzwurf gewinnst, entferne diese Kreatur ganz aus dem Spiel und bringe sie am Ende des Zuges unter der Kontrolle ihres Besitzers ins Spiel zurück. Falls du den Münzwurf verlierst, opfere sie.”]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Tutti i Tramutanti hanno “{0}: Se questo permanente è nel campo di battaglia, lancia una moneta. Se vinci il lancio, esilia questo permanente e rimettilo nel campo di battaglia sotto il controllo del suo proprietario all’inizio della prossima sottofase finale. Se perdi il lancio, sacrificalo.”]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[すべてのスリヴァーは「{0}:このクリーチャーが場にいる場合、コイン投げをする。 あなたがコイン投げに勝った場合、このクリーチャーをゲームから取り除き、ターン終了時にそれのオーナーのコントロール下で場に戻す。 あなたがコイン投げに負けた場合、それを生け贄に捧げる。」の能力を持つ。]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[All Slivers have “{0}: If this permanent is on the battlefield, flip a coin. If you win the flip, exile this permanent and return it to the battlefield under its owner’s control at the beginning of the next end step. If you lose the flip, sacrifice it.”]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[Все Щепки имеют способность «{0}: Если это существо в игре, бросьте монетку. Если вы выиграли бросок, удалите это существо из игры и верните его в игру под контролем владельца в конце хода. Если вы проиграли бросок, пожертвуйте его».]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[Todos os Fractius têm “{0}: Se esta criatura estiver em jogo, jogue uma moeda. Se você vencer, remova esta criatura do jogo e, no final do turno, devolva-a ao jogo sob o controle de seu dono. Se você perder, sacrifique-a.”]]></LOCALISED_TEXT>
              <FILTER filter_id="0">
    local filter = ClearFilter()
    filter:Add( FE_SUBTYPE, OP_IS, CREATURE_TYPE_SLIVER )
    filter:Add( FE_CONTROLLER, OP_IS, EffectController() )
    </FILTER>
      <CONTINUOUS_ACTION layer="8" filter_id="0">
    if FilteredCard() ~= nil then
       local characteristics = FilteredCard():GetCurrentCharacteristics()
       characteristics:GrantAbility(1)
    end
    </CONTINUOUS_ACTION>
</STATIC_ABILITY>
  <ACTIVATED_ABILITY resource_id="1">
    <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[“{0}: If this permanent is on the battlefield, flip a coin. If you win the flip, exile this permanent and return it to the battlefield under its owner’s control at the beginning of the next end step. If you lose the flip, sacrifice it.”]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[« {0} : Si cette créature est en jeu, jouez à pile ou face. Si vous gagnez, retirez cette créature de la partie et renvoyez-la en jeu sous le contrôle de son propriétaire à la fin du tour. Si vous perdez, sacrifiez-la. »]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[“{0}: Si esta criatura está en juego, lanza una moneda. Si ganas el lanzamiento, remueve del juego a esta criatura y regrésala al juego bajo el control de su propietario al final del turno. Si pierdes el lanzamiento, sacrifícala”.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[„{0}: Ist diese Kreatur im Spiel, wirf eine Münze. Falls du den Münzwurf gewinnst, entferne diese Kreatur ganz aus dem Spiel und bringe sie am Ende des Zuges unter der Kontrolle ihres Besitzers ins Spiel zurück. Falls du den Münzwurf verlierst, opfere sie.”]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[“{0}: Se questo permanente è nel campo di battaglia, lancia una moneta. Se vinci il lancio, esilia questo permanente e rimettilo nel campo di battaglia sotto il controllo del suo proprietario all’inizio della prossima sottofase finale. Se perdi il lancio, sacrificalo.”]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[「{0}:このクリーチャーが場にいる場合、コイン投げをする。 あなたがコイン投げに勝った場合、このクリーチャーをゲームから取り除き、ターン終了時にそれのオーナーのコントロール下で場に戻す。 あなたがコイン投げに負けた場合、それを生け贄に捧げる。」の能力を持つ。]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[“{0}: If this permanent is on the battlefield, flip a coin. If you win the flip, exile this permanent and return it to the battlefield under its owner’s control at the beginning of the next end step. If you lose the flip, sacrifice it.”]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[«{0}: Если это существо в игре, бросьте монетку. Если вы выиграли бросок, удалите это существо из игры и верните его в игру под контролем владельца в конце хода. Если вы проиграли бросок, пожертвуйте его».]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[“{0}: Se esta criatura estiver em jogo, jogue uma moeda. Se você vencer, remova esta criatura do jogo e, no final do turno, devolva-a ao jogo sob o controle de seu dono. Se você perder, sacrifique-a.”]]></LOCALISED_TEXT>
        <COST mana_cost="{0}" type="Mana" />
<FILTER filter_id="0">
    local filter = ClearFilter()
    filter:Add( FE_SUBTYPE, OP_IS, CREATURE_TYPE_SLIVER )
    filter:Add( FE_CONTROLLER, OP_IS, EffectController() )
    </FILTER>
<RESOLUTION_TIME_ACTION>
    EffectController():FlipCoin()
    </RESOLUTION_TIME_ACTION>
    <RESOLUTION_TIME_ACTION>
      local source = EffectSource()
      if source ~= nil then
        if EffectController():GetFlipResult() == COIN_FLIP_WIN then   
          if source:IsToken() == false then
            EffectDC():Protect_CardPtr(COMPARTMENT_ID_EFFECT_SOURCE)
          end
          source:Exile()
        else
          if source:IsToken() == false then
            EffectDC():Protect_CardPtr(COMPARTMENT_ID_EFFECT_SOURCE)
          end
          source:Sacrifice(source)
        end
      end
    </RESOLUTION_TIME_ACTION>
      <RESOLUTION_TIME_ACTION>
    local source = EffectSource()
    if source ~= nil then
       local delayDC = EffectDC():Make_Chest(1)
       delayDC:Set_CardPtr(0, source)
       MTG():CreateDelayedTrigger(2, delayDC)
    end
</RESOLUTION_TIME_ACTION>
   
      <AI_AVAILABILITY type="in_response" response_source="1" />
</ACTIVATED_ABILITY>
<TRIGGERED_ABILITY resource_id="2">
      <TRIGGER value="BEGINNING_OF_STEP">
    return MTG():GetStep() == STEP_END_OF_TURN
    </TRIGGER>
      <CLEANUP fire_once="1" />
      <RESOLUTION_TIME_ACTION>
    local card = EffectDC():Get_CardPtr(0)
    if card ~= nil then
       card:PutOntoBattlefield( card:GetOwner() )
    end
    </RESOLUTION_TIME_ACTION>
   </TRIGGERED_ABILITY>
  <SFX text="COMBAT_BLUNT_LARGE_ATTACK" power_boundary_min="4" power_boundary_max="-1" />
  <SFX text="COMBAT_BLUNT_SMALL_ATTACK" power_boundary_min="1" power_boundary_max="3" />
</CARD_V2>
hinesassociates
 
Posts: 18
Joined: 07 Oct 2014, 23:59
Has thanked: 8 times
Been thanked: 0 time

Re: Formal Request Thread

Postby Xander9009 » 22 Oct 2014, 22:44

hinesassociates wrote:Thanks. That fixed the flip being correct. Now the only problem is that if you lose the flip it does nothing...

Also I am getting this error on exit.
Code: Select all
[lua] [string "FRENETIC_SLIVER_111126011_TITLE (RESOLUTION_TIME_ACTION)~0x000002cd"]:13: attempt to call method 'Sacrifice' (a nil value)
[lua] [string "FRENETIC_SLIVER_111126011_TITLE (RESOLUTION_TIME_ACTION)~0x000002cd"]:13: attempt to call method 'Sacrifice' (a nil value)
[lua] [string "FRENETIC_SLIVER_111126011_TITLE (RESOLUTION_TIME_ACTION)~0x000002cd"]:13: attempt to call method 'Sacrifice' (a nil value)
Here is the code for the card now...
Code: Select all
<?xml version='1.0' encoding='UTF-8'?>
<CARD_V2 ExportVersion="1">
  <FILENAME text="FRENETIC_SLIVER_111126011" />
  <CARDNAME text="FRENETIC_SLIVER" />
  <TITLE>
    <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Frenetic Sliver]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Slivoïde frénétique]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Fragmentado frenético]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Frenetischer Remasuri]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Tramutante Frenetico]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[熱狂スリヴァー]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[Frenetic Sliver]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[Неистовая Щепка]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[Fractius Frenético]]></LOCALISED_TEXT>
  </TITLE>
  <MULTIVERSEID value="111126011" />
  <ARTID value="111126011" />
  <ARTIST name="Luca Zontini" />
  <CASTING_COST cost="{U}" />
  <TYPE metaname="Creature" />
  <SUB_TYPE metaname="Sliver" />
  <EXPANSION value="PLC" />
  <RARITY metaname="U" />
  <POWER value="2" />
  <TOUGHNESS value="2" />
<STATIC_ABILITY>
<LOCALISED_TEXT LanguageCode="en-US"><![CDATA[All Slivers have “{0}: If this permanent is on the battlefield, flip a coin. If you win the flip, exile this permanent and return it to the battlefield under its owner’s control at the beginning of the next end step. If you lose the flip, sacrifice it.”]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Tous les slivoïdes ont « {0} : Si cette créature est en jeu, jouez à pile ou face. Si vous gagnez, retirez cette créature de la partie et renvoyez-la en jeu sous le contrôle de son propriétaire à la fin du tour. Si vous perdez, sacrifiez-la. »]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Todos los fragmentados tienen “{0}: Si esta criatura está en juego, lanza una moneda. Si ganas el lanzamiento, remueve del juego a esta criatura y regrésala al juego bajo el control de su propietario al final del turno. Si pierdes el lanzamiento, sacrifícala”.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Alle Remasuris haben „{0}: Ist diese Kreatur im Spiel, wirf eine Münze. Falls du den Münzwurf gewinnst, entferne diese Kreatur ganz aus dem Spiel und bringe sie am Ende des Zuges unter der Kontrolle ihres Besitzers ins Spiel zurück. Falls du den Münzwurf verlierst, opfere sie.”]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Tutti i Tramutanti hanno “{0}: Se questo permanente è nel campo di battaglia, lancia una moneta. Se vinci il lancio, esilia questo permanente e rimettilo nel campo di battaglia sotto il controllo del suo proprietario all’inizio della prossima sottofase finale. Se perdi il lancio, sacrificalo.”]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[すべてのスリヴァーは「{0}:このクリーチャーが場にいる場合、コイン投げをする。 あなたがコイン投げに勝った場合、このクリーチャーをゲームから取り除き、ターン終了時にそれのオーナーのコントロール下で場に戻す。 あなたがコイン投げに負けた場合、それを生け贄に捧げる。」の能力を持つ。]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[All Slivers have “{0}: If this permanent is on the battlefield, flip a coin. If you win the flip, exile this permanent and return it to the battlefield under its owner’s control at the beginning of the next end step. If you lose the flip, sacrifice it.”]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[Все Щепки имеют способность «{0}: Если это существо в игре, бросьте монетку. Если вы выиграли бросок, удалите это существо из игры и верните его в игру под контролем владельца в конце хода. Если вы проиграли бросок, пожертвуйте его».]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[Todos os Fractius têm “{0}: Se esta criatura estiver em jogo, jogue uma moeda. Se você vencer, remova esta criatura do jogo e, no final do turno, devolva-a ao jogo sob o controle de seu dono. Se você perder, sacrifique-a.”]]></LOCALISED_TEXT>
              <FILTER filter_id="0">
    local filter = ClearFilter()
    filter:Add( FE_SUBTYPE, OP_IS, CREATURE_TYPE_SLIVER )
    filter:Add( FE_CONTROLLER, OP_IS, EffectController() )
    </FILTER>
      <CONTINUOUS_ACTION layer="8" filter_id="0">
    if FilteredCard() ~= nil then
       local characteristics = FilteredCard():GetCurrentCharacteristics()
       characteristics:GrantAbility(1)
    end
    </CONTINUOUS_ACTION>
</STATIC_ABILITY>
  <ACTIVATED_ABILITY resource_id="1">
    <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[“{0}: If this permanent is on the battlefield, flip a coin. If you win the flip, exile this permanent and return it to the battlefield under its owner’s control at the beginning of the next end step. If you lose the flip, sacrifice it.”]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[« {0} : Si cette créature est en jeu, jouez à pile ou face. Si vous gagnez, retirez cette créature de la partie et renvoyez-la en jeu sous le contrôle de son propriétaire à la fin du tour. Si vous perdez, sacrifiez-la. »]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[“{0}: Si esta criatura está en juego, lanza una moneda. Si ganas el lanzamiento, remueve del juego a esta criatura y regrésala al juego bajo el control de su propietario al final del turno. Si pierdes el lanzamiento, sacrifícala”.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[„{0}: Ist diese Kreatur im Spiel, wirf eine Münze. Falls du den Münzwurf gewinnst, entferne diese Kreatur ganz aus dem Spiel und bringe sie am Ende des Zuges unter der Kontrolle ihres Besitzers ins Spiel zurück. Falls du den Münzwurf verlierst, opfere sie.”]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[“{0}: Se questo permanente è nel campo di battaglia, lancia una moneta. Se vinci il lancio, esilia questo permanente e rimettilo nel campo di battaglia sotto il controllo del suo proprietario all’inizio della prossima sottofase finale. Se perdi il lancio, sacrificalo.”]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[「{0}:このクリーチャーが場にいる場合、コイン投げをする。 あなたがコイン投げに勝った場合、このクリーチャーをゲームから取り除き、ターン終了時にそれのオーナーのコントロール下で場に戻す。 あなたがコイン投げに負けた場合、それを生け贄に捧げる。」の能力を持つ。]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[“{0}: If this permanent is on the battlefield, flip a coin. If you win the flip, exile this permanent and return it to the battlefield under its owner’s control at the beginning of the next end step. If you lose the flip, sacrifice it.”]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[«{0}: Если это существо в игре, бросьте монетку. Если вы выиграли бросок, удалите это существо из игры и верните его в игру под контролем владельца в конце хода. Если вы проиграли бросок, пожертвуйте его».]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[“{0}: Se esta criatura estiver em jogo, jogue uma moeda. Se você vencer, remova esta criatura do jogo e, no final do turno, devolva-a ao jogo sob o controle de seu dono. Se você perder, sacrifique-a.”]]></LOCALISED_TEXT>
        <COST mana_cost="{0}" type="Mana" />
<FILTER filter_id="0">
    local filter = ClearFilter()
    filter:Add( FE_SUBTYPE, OP_IS, CREATURE_TYPE_SLIVER )
    filter:Add( FE_CONTROLLER, OP_IS, EffectController() )
    </FILTER>
<RESOLUTION_TIME_ACTION>
    EffectController():FlipCoin()
    </RESOLUTION_TIME_ACTION>
    <RESOLUTION_TIME_ACTION>
      local source = EffectSource()
      if source ~= nil then
        if EffectController():GetFlipResult() == COIN_FLIP_WIN then   
          if source:IsToken() == false then
            EffectDC():Protect_CardPtr(COMPARTMENT_ID_EFFECT_SOURCE)
          end
          source:Exile()
        else
          if source:IsToken() == false then
            EffectDC():Protect_CardPtr(COMPARTMENT_ID_EFFECT_SOURCE)
          end
          source:Sacrifice(source)
        end
      end
    </RESOLUTION_TIME_ACTION>
      <RESOLUTION_TIME_ACTION>
    local source = EffectSource()
    if source ~= nil then
       local delayDC = EffectDC():Make_Chest(1)
       delayDC:Set_CardPtr(0, source)
       MTG():CreateDelayedTrigger(2, delayDC)
    end
</RESOLUTION_TIME_ACTION>
   
      <AI_AVAILABILITY type="in_response" response_source="1" />
</ACTIVATED_ABILITY>
<TRIGGERED_ABILITY resource_id="2">
      <TRIGGER value="BEGINNING_OF_STEP">
    return MTG():GetStep() == STEP_END_OF_TURN
    </TRIGGER>
      <CLEANUP fire_once="1" />
      <RESOLUTION_TIME_ACTION>
    local card = EffectDC():Get_CardPtr(0)
    if card ~= nil then
       card:PutOntoBattlefield( card:GetOwner() )
    end
    </RESOLUTION_TIME_ACTION>
   </TRIGGERED_ABILITY>
  <SFX text="COMBAT_BLUNT_LARGE_ATTACK" power_boundary_min="4" power_boundary_max="-1" />
  <SFX text="COMBAT_BLUNT_SMALL_ATTACK" power_boundary_min="1" power_boundary_max="3" />
</CARD_V2>
Sorry, I didn't catch it. Sacrifice is called on a player with a card as a parameter. Player:Sacrifice(Card). So, the sacrifice line should be "EffectController():Sacrifice(source)"

EDIT: Oh, also, it won't cause problems being there, but the card protection in the sacrifice section isn't needed. You can remove that to clean up the code. The pointer only needs protected if the card needs to be returned or otherwise used after changing zones.
This should work | Open
Code: Select all
<RESOLUTION_TIME_ACTION>
      local source = EffectSource()
      if source ~= nil then
        if EffectController():GetFlipResult() == COIN_FLIP_WIN then   
          if source:IsToken() == false then
            EffectDC():Protect_CardPtr(COMPARTMENT_ID_EFFECT_SOURCE)
          end
          source:Exile()
        else
          EffectController():Sacrifice(source)
        end
      end
    </RESOLUTION_TIME_ACTION>
_______________________________
Community Wad - Community Wad Website - How to Help and Report Bugs
Discord: discord.gg/4AXvHzW
User avatar
Xander9009
Programmer
 
Posts: 2905
Joined: 29 Jun 2013, 07:44
Location: Indiana, United States
Has thanked: 121 times
Been thanked: 445 times

Re: Formal Request Thread

Postby hinesassociates » 22 Oct 2014, 23:23

Xander9009 wrote:
hinesassociates wrote:Thanks. That fixed the flip being correct. Now the only problem is that if you lose the flip it does nothing...

Also I am getting this error on exit.
Code: Select all
[lua] [string "FRENETIC_SLIVER_111126011_TITLE (RESOLUTION_TIME_ACTION)~0x000002cd"]:13: attempt to call method 'Sacrifice' (a nil value)
[lua] [string "FRENETIC_SLIVER_111126011_TITLE (RESOLUTION_TIME_ACTION)~0x000002cd"]:13: attempt to call method 'Sacrifice' (a nil value)
[lua] [string "FRENETIC_SLIVER_111126011_TITLE (RESOLUTION_TIME_ACTION)~0x000002cd"]:13: attempt to call method 'Sacrifice' (a nil value)
Here is the code for the card now...
Code: Select all
<?xml version='1.0' encoding='UTF-8'?>
<CARD_V2 ExportVersion="1">
  <FILENAME text="FRENETIC_SLIVER_111126011" />
  <CARDNAME text="FRENETIC_SLIVER" />
  <TITLE>
    <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Frenetic Sliver]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Slivoïde frénétique]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Fragmentado frenético]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Frenetischer Remasuri]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Tramutante Frenetico]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[熱狂スリヴァー]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[Frenetic Sliver]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[Неистовая Щепка]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[Fractius Frenético]]></LOCALISED_TEXT>
  </TITLE>
  <MULTIVERSEID value="111126011" />
  <ARTID value="111126011" />
  <ARTIST name="Luca Zontini" />
  <CASTING_COST cost="{U}" />
  <TYPE metaname="Creature" />
  <SUB_TYPE metaname="Sliver" />
  <EXPANSION value="PLC" />
  <RARITY metaname="U" />
  <POWER value="2" />
  <TOUGHNESS value="2" />
<STATIC_ABILITY>
<LOCALISED_TEXT LanguageCode="en-US"><![CDATA[All Slivers have “{0}: If this permanent is on the battlefield, flip a coin. If you win the flip, exile this permanent and return it to the battlefield under its owner’s control at the beginning of the next end step. If you lose the flip, sacrifice it.”]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Tous les slivoïdes ont « {0} : Si cette créature est en jeu, jouez à pile ou face. Si vous gagnez, retirez cette créature de la partie et renvoyez-la en jeu sous le contrôle de son propriétaire à la fin du tour. Si vous perdez, sacrifiez-la. »]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Todos los fragmentados tienen “{0}: Si esta criatura está en juego, lanza una moneda. Si ganas el lanzamiento, remueve del juego a esta criatura y regrésala al juego bajo el control de su propietario al final del turno. Si pierdes el lanzamiento, sacrifícala”.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Alle Remasuris haben „{0}: Ist diese Kreatur im Spiel, wirf eine Münze. Falls du den Münzwurf gewinnst, entferne diese Kreatur ganz aus dem Spiel und bringe sie am Ende des Zuges unter der Kontrolle ihres Besitzers ins Spiel zurück. Falls du den Münzwurf verlierst, opfere sie.”]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Tutti i Tramutanti hanno “{0}: Se questo permanente è nel campo di battaglia, lancia una moneta. Se vinci il lancio, esilia questo permanente e rimettilo nel campo di battaglia sotto il controllo del suo proprietario all’inizio della prossima sottofase finale. Se perdi il lancio, sacrificalo.”]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[すべてのスリヴァーは「{0}:このクリーチャーが場にいる場合、コイン投げをする。 あなたがコイン投げに勝った場合、このクリーチャーをゲームから取り除き、ターン終了時にそれのオーナーのコントロール下で場に戻す。 あなたがコイン投げに負けた場合、それを生け贄に捧げる。」の能力を持つ。]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[All Slivers have “{0}: If this permanent is on the battlefield, flip a coin. If you win the flip, exile this permanent and return it to the battlefield under its owner’s control at the beginning of the next end step. If you lose the flip, sacrifice it.”]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[Все Щепки имеют способность «{0}: Если это существо в игре, бросьте монетку. Если вы выиграли бросок, удалите это существо из игры и верните его в игру под контролем владельца в конце хода. Если вы проиграли бросок, пожертвуйте его».]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[Todos os Fractius têm “{0}: Se esta criatura estiver em jogo, jogue uma moeda. Se você vencer, remova esta criatura do jogo e, no final do turno, devolva-a ao jogo sob o controle de seu dono. Se você perder, sacrifique-a.”]]></LOCALISED_TEXT>
              <FILTER filter_id="0">
    local filter = ClearFilter()
    filter:Add( FE_SUBTYPE, OP_IS, CREATURE_TYPE_SLIVER )
    filter:Add( FE_CONTROLLER, OP_IS, EffectController() )
    </FILTER>
      <CONTINUOUS_ACTION layer="8" filter_id="0">
    if FilteredCard() ~= nil then
       local characteristics = FilteredCard():GetCurrentCharacteristics()
       characteristics:GrantAbility(1)
    end
    </CONTINUOUS_ACTION>
</STATIC_ABILITY>
  <ACTIVATED_ABILITY resource_id="1">
    <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[“{0}: If this permanent is on the battlefield, flip a coin. If you win the flip, exile this permanent and return it to the battlefield under its owner’s control at the beginning of the next end step. If you lose the flip, sacrifice it.”]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[« {0} : Si cette créature est en jeu, jouez à pile ou face. Si vous gagnez, retirez cette créature de la partie et renvoyez-la en jeu sous le contrôle de son propriétaire à la fin du tour. Si vous perdez, sacrifiez-la. »]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[“{0}: Si esta criatura está en juego, lanza una moneda. Si ganas el lanzamiento, remueve del juego a esta criatura y regrésala al juego bajo el control de su propietario al final del turno. Si pierdes el lanzamiento, sacrifícala”.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[„{0}: Ist diese Kreatur im Spiel, wirf eine Münze. Falls du den Münzwurf gewinnst, entferne diese Kreatur ganz aus dem Spiel und bringe sie am Ende des Zuges unter der Kontrolle ihres Besitzers ins Spiel zurück. Falls du den Münzwurf verlierst, opfere sie.”]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[“{0}: Se questo permanente è nel campo di battaglia, lancia una moneta. Se vinci il lancio, esilia questo permanente e rimettilo nel campo di battaglia sotto il controllo del suo proprietario all’inizio della prossima sottofase finale. Se perdi il lancio, sacrificalo.”]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[「{0}:このクリーチャーが場にいる場合、コイン投げをする。 あなたがコイン投げに勝った場合、このクリーチャーをゲームから取り除き、ターン終了時にそれのオーナーのコントロール下で場に戻す。 あなたがコイン投げに負けた場合、それを生け贄に捧げる。」の能力を持つ。]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[“{0}: If this permanent is on the battlefield, flip a coin. If you win the flip, exile this permanent and return it to the battlefield under its owner’s control at the beginning of the next end step. If you lose the flip, sacrifice it.”]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[«{0}: Если это существо в игре, бросьте монетку. Если вы выиграли бросок, удалите это существо из игры и верните его в игру под контролем владельца в конце хода. Если вы проиграли бросок, пожертвуйте его».]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[“{0}: Se esta criatura estiver em jogo, jogue uma moeda. Se você vencer, remova esta criatura do jogo e, no final do turno, devolva-a ao jogo sob o controle de seu dono. Se você perder, sacrifique-a.”]]></LOCALISED_TEXT>
        <COST mana_cost="{0}" type="Mana" />
<FILTER filter_id="0">
    local filter = ClearFilter()
    filter:Add( FE_SUBTYPE, OP_IS, CREATURE_TYPE_SLIVER )
    filter:Add( FE_CONTROLLER, OP_IS, EffectController() )
    </FILTER>
<RESOLUTION_TIME_ACTION>
    EffectController():FlipCoin()
    </RESOLUTION_TIME_ACTION>
    <RESOLUTION_TIME_ACTION>
      local source = EffectSource()
      if source ~= nil then
        if EffectController():GetFlipResult() == COIN_FLIP_WIN then   
          if source:IsToken() == false then
            EffectDC():Protect_CardPtr(COMPARTMENT_ID_EFFECT_SOURCE)
          end
          source:Exile()
        else
          if source:IsToken() == false then
            EffectDC():Protect_CardPtr(COMPARTMENT_ID_EFFECT_SOURCE)
          end
          source:Sacrifice(source)
        end
      end
    </RESOLUTION_TIME_ACTION>
      <RESOLUTION_TIME_ACTION>
    local source = EffectSource()
    if source ~= nil then
       local delayDC = EffectDC():Make_Chest(1)
       delayDC:Set_CardPtr(0, source)
       MTG():CreateDelayedTrigger(2, delayDC)
    end
</RESOLUTION_TIME_ACTION>
   
      <AI_AVAILABILITY type="in_response" response_source="1" />
</ACTIVATED_ABILITY>
<TRIGGERED_ABILITY resource_id="2">
      <TRIGGER value="BEGINNING_OF_STEP">
    return MTG():GetStep() == STEP_END_OF_TURN
    </TRIGGER>
      <CLEANUP fire_once="1" />
      <RESOLUTION_TIME_ACTION>
    local card = EffectDC():Get_CardPtr(0)
    if card ~= nil then
       card:PutOntoBattlefield( card:GetOwner() )
    end
    </RESOLUTION_TIME_ACTION>
   </TRIGGERED_ABILITY>
  <SFX text="COMBAT_BLUNT_LARGE_ATTACK" power_boundary_min="4" power_boundary_max="-1" />
  <SFX text="COMBAT_BLUNT_SMALL_ATTACK" power_boundary_min="1" power_boundary_max="3" />
</CARD_V2>
Sorry, I didn't catch it. Sacrifice is called on a player with a card as a parameter. Player:Sacrifice(Card). So, the sacrifice line should be "EffectController():Sacrifice(source)"

EDIT: Oh, also, it won't cause problems being there, but the card protection in the sacrifice section isn't needed. You can remove that to clean up the code. The pointer only needs protected if the card needs to be returned or otherwise used after changing zones.
This should work | Open
Code: Select all
<RESOLUTION_TIME_ACTION>
      local source = EffectSource()
      if source ~= nil then
        if EffectController():GetFlipResult() == COIN_FLIP_WIN then   
          if source:IsToken() == false then
            EffectDC():Protect_CardPtr(COMPARTMENT_ID_EFFECT_SOURCE)
          end
          source:Exile()
        else
          EffectController():Sacrifice(source)
        end
      end
    </RESOLUTION_TIME_ACTION>
Ah! Ok. Much Better. Works great now. Thanks!
hinesassociates
 
Posts: 18
Joined: 07 Oct 2014, 23:59
Has thanked: 8 times
Been thanked: 0 time

Re: Formal Request Thread

Postby thefiremind » 28 Oct 2014, 23:56

About Oath of Druids, which has been requested by many, the following code should work:
Oath of Druids' ability (untested) | Open
Code: Select all
  <TRIGGERED_ABILITY>
    -- Localised text omitted
    <TRIGGER value="BEGINNING_OF_PLAYERS_STEP">
    return MTG():GetStep() == STEP_UPKEEP
    </TRIGGER>
    <TARGET tag="CARD_QUERY_CHOOSE_OPPONENT" definition="0" compartment="0" count="1">
    MTG():SetTargetAnswerer( TriggerPlayer() )
    </TARGET>
    <TARGET_DEFINITION id="0">
    local filter = ClearFilter()
    filter:SetFilterType(FILTER_TYPE_PLAYERS)
    filter:Add( FE_TEAM, OP_NOT, TriggerPlayer():GetTeam() )
    filter:Add( FE_LUA_CONDITION, 1, TriggerPlayer(), EffectDC() )
    </TARGET_DEFINITION>
    <FILTER_CONDITION id="1">
    local opponent = FilteredPlayer()
    if opponent ~= nil then
       local player = TriggerPlayer()
       local filter = ClearFilter()
       filter:Add(FE_TYPE, OP_IS, CARD_TYPE_CREATURE)
       filter:Add(FE_CONTROLLER, OP_IS, player)
       local players_creatures = filter:Count()
       filter:Clear()
       filter:Add(FE_TYPE, OP_IS, CARD_TYPE_CREATURE)
       filter:Add(FE_CONTROLLER, OP_IS, opponent)
       local opponents_creatures = filter:Count()
       return opponents_creatures &gt; players_creatures
    end
    </FILTER_CONDITION>
    <RESOLUTION_TIME_ACTION>
    local player = TriggerPlayer()
    local opponent = EffectDC():Get_Targets(0):Get_PlayerPtr(0)
    if player ~= nil and opponent ~= nil then
       player:BeginNewMultipleChoice()
       player:AddMultipleChoiceAnswer("UI_CONDITIONAL_QUESTION_YES")
       player:AddMultipleChoiceAnswer("UI_CONDITIONAL_QUESTION_NO")
       player:AskMultipleChoiceQuestion( "OPTIONAL_ABILITY_QUESTION", Object() )
    end
    </RESOLUTION_TIME_ACTION>
    <RESOLUTION_TIME_ACTION>
    local player = TriggerPlayer()
    local opponent = EffectDC():Get_Targets(0):Get_PlayerPtr(0)
    if player ~= nil and opponent ~= nil then
       EffectDC():Set_Int( 1, 1-player:GetMultipleChoiceResult() )
    end
    </RESOLUTION_TIME_ACTION>
    <RESOLUTION_TIME_ACTION>
    local player = TriggerPlayer()
    local opponent = EffectDC():Get_Targets(0):Get_PlayerPtr(0)
    if player ~= nil and opponent ~= nil and EffectDC():Get_Int(1) == 1 then
       local index = -1
       local library_count = player:Library_Count()
       for i=0,library_count-1 do
          local card = player:Library_GetNth(i)
          if card ~= nil then
             card:Reveal()
             if card:GetCardType():Test(CARD_TYPE_CREATURE) then
                index = i
                break
             end
          end
       end
       EffectDC():Set_Int(2, index)
    end
    </RESOLUTION_TIME_ACTION>
    <RESOLUTION_TIME_ACTION>
    local player = TriggerPlayer()
    local opponent = EffectDC():Get_Targets(0):Get_PlayerPtr(0)
    if player ~= nil and opponent ~= nil and EffectDC():Get_Int(1) == 1 then
       local index = EffectDC():Get_Int(2)
       if index &gt; -1 then
          player:Library_GetNth(index):PutOntoBattlefield(player)
          for i=0,index-1 do
             local card = player:Library_GetNth(0)
             if card ~= nil then
                card:PutInGraveyard()
             end
          end
       else
          player:MoveLocalZone(ZONE_LIBRARY, ZONE_GRAVEYARD)
       end
    end
    </RESOLUTION_TIME_ACTION>
  </TRIGGERED_ABILITY>
Note: I don't know if the 3rd argument for the Lua condition filter needs to always be EffectController no matter what, or should be TriggerPlayer this time. I opted for the second. For any kind of problem in choosing the target, first thing to try is to substitute
Code: Select all
filter:Add( FE_LUA_CONDITION, 1, TriggerPlayer(), EffectDC() )
with
Code: Select all
filter:Add( FE_LUA_CONDITION, 1, EffectController(), EffectDC() )
and hope for the best.

EDIT: Modified so that it reveals the cards.

EDIT 2: Fixed so that it asks the right player whether to use the effect or not.

EDIT 3: Fixed so that it works when the deck contains no creatures.
Last edited by thefiremind on 04 Nov 2014, 19:08, edited 4 times in total.
< 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

Re: Formal Request Thread

Postby NeoAnderson » 29 Oct 2014, 00:06

Would be better also to add a Guided Reveal action? Just to let the other players to see what you are moving to the graveyard?
NeoAnderson
 
Posts: 914
Joined: 10 Sep 2013, 07:49
Has thanked: 18 times
Been thanked: 139 times

Re: Formal Request Thread

Postby thefiremind » 29 Oct 2014, 09:20

NeoAnderson wrote:Would be better also to add a Guided Reveal action? Just to let the other players to see what you are moving to the graveyard?
GuidedReveal feels annoying for some players when you reveal a lot of cards and they clutter the screen for a long time, so I prefer to use Reveal when possible. Anyway it's a good point, I edited the code so that it uses Reveal for each card before moving them.
< 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

Re: Formal Request Thread

Postby mamoul » 29 Oct 2014, 18:47

thefiremind wrote:About Oath of Druids, which has been requested by many, the following code should work:
Oath of Druids' ability (untested) | Open
Code: Select all
  <TRIGGERED_ABILITY>
    -- Localised text omitted
    <TRIGGER value="BEGINNING_OF_PLAYERS_STEP">
    return MTG():GetStep() == STEP_UPKEEP
    </TRIGGER>
    <TARGET tag="CARD_QUERY_CHOOSE_OPPONENT" definition="0" compartment="0" count="1">
    MTG():SetTargetAnswerer( TriggerPlayer() )
    </TARGET>
    <TARGET_DEFINITION id="0">
    local filter = ClearFilter()
    filter:SetFilterType(FILTER_TYPE_PLAYERS)
    filter:Add( FE_TEAM, OP_NOT, TriggerPlayer():GetTeam() )
    filter:Add( FE_LUA_CONDITION, 1, TriggerPlayer(), EffectDC() )
    </TARGET_DEFINITION>
    <FILTER_CONDITION id="1">
    local opponent = FilteredPlayer()
    if opponent ~= nil then
       local player = TriggerPlayer()
       local filter = ClearFilter()
       filter:Add(FE_TYPE, OP_IS, CARD_TYPE_CREATURE)
       filter:Add(FE_CONTROLLER, OP_IS, player)
       local players_creatures = filter:Count()
       filter:Clear()
       filter:Add(FE_TYPE, OP_IS, CARD_TYPE_CREATURE)
       filter:Add(FE_CONTROLLER, OP_IS, opponent)
       local opponents_creatures = filter:Count()
       return opponents_creatures &gt; players_creatures
    end
    </FILTER_CONDITION>
    <RESOLUTION_TIME_ACTION>
    local player = TriggerPlayer()
    local opponent = EffectDC():Get_Targets(0):Get_PlayerPtr(0)
    if player ~= nil and opponent ~= nil then
       local library_count = player:Library_Count()
       for i=0,library_count-1 do
          local card = player:Library_GetNth(i)
          if card ~= nil then
             card:Reveal()
             if card:GetCardType():Test(CARD_TYPE_CREATURE) then
                EffectDC():Set_Int(1, i)
                break
             end
          end
       end
    end
    </RESOLUTION_TIME_ACTION>
    <RESOLUTION_TIME_ACTION>
    local player = TriggerPlayer()
    local opponent = EffectDC():Get_Targets(0):Get_PlayerPtr(0)
    if player ~= nil and opponent ~= nil then
       local creature_index = EffectDC():Get_Int(1)
       player:Library_GetNth(creature_index):PutOntoBattlefield(player)
       for i=0,creature_index-1 do
          local card = player:Library_GetNth(0)
          if card ~= nil then
             card:PutInGraveyard()
          end
       end
    end
    </RESOLUTION_TIME_ACTION>
    <MAY />
  </TRIGGERED_ABILITY>
Note: I don't know if the 3rd argument for the Lua condition filter needs to always be EffectController no matter what, or should be TriggerPlayer this time. I opted for the second. For any kind of problem in choosing the target, first thing to try is to substitute
Code: Select all
filter:Add( FE_LUA_CONDITION, 1, TriggerPlayer(), EffectDC() )
with
Code: Select all
filter:Add( FE_LUA_CONDITION, 1, EffectController(), EffectDC() )
and hope for the best.

EDIT: Modified so that it reveals the cards.
I tested it and it works correctly.
Thanks of lot for sharing this code :wink:
mamoul
 
Posts: 16
Joined: 27 Oct 2014, 17:20
Location: France
Has thanked: 0 time
Been thanked: 0 time

Re: Formal Request Thread

Postby fallenangle » 29 Oct 2014, 21:34

I've been trying to code Gemstone Caverns, and it isn't working at all. This is the code I've been using, but I can't seem to get the mana abilities to appear on the card or work properly. Additionally, I get a script error stating that in one of my CONTINUOUS_ACTION blocks, "then" is expected near "=". I'm at a loss for how to fix this. Can any kind soul take a look at my code and set me straight? I would be extremely grateful for any help you could give me.

Here's the code:

Code: Select all
<?xml version='1.0' encoding='UTF-8'?>
<CARD_V2 ExportVersion="1">
  <FILENAME text="GEMSTONE_CAVERNS_122094" />
  <CARDNAME text="GEMSTONE_CAVERNS" />
  <TITLE>
    <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Gemstone Caverns]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Cavernes aux gemmes]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Cavernas de gemas]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Edelsteinhöhlen]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Caverne di Gemme]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[宝石の洞窟]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[Gemstone Caverns]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[Самоцветные Пещеры]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[Carvernas de Pedras Preciosas]]></LOCALISED_TEXT>
  </TITLE>
  <MULTIVERSEID value="122094" />
  <ARTID value="122094" />
  <ARTIST name="Martina Pilcerova" />
  <CASTING_COST cost="" />
  <SUPERTYPE metaname="Legendary" />
  <TYPE metaname="Land" />
  <EXPANSION value="TSP" />
  <RARITY metaname="R" />
<TRIGGERED_ABILITY active_zone="ZONE_HAND">
 <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[If Gemstone Caverns is in your opening hand and you’re not playing first, you may begin the game with Gemstone Caverns on the battlefield with a luck counter on it. If you do, exile a card from your hand.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Si les Cavernes aux gemmes sont dans votre main de départ et que vous ne jouez pas en premier, vous pouvez commencer la partie avec les Cavernes aux gemmes en jeu avec, sur elles, un marqueur « chance ». Si vous faites ainsi, retirez de la partie une carte de votre main.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Si las Cavernas de gemas están en tu mano inicial y no juegas primero, puedes comenzar el juego con las Cavernas de gemas en juego con un contador de suerte sobre ellas. Si lo haces, remueve del juego una carta de tu mano.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Falls die Edelsteinhöhlen auf deiner Anfangshand sind und du nicht als Erster an der Reihe bist, kannst du sie vor Spielbeginn mit einer Glücksmarke ins Spiel bringen. Falls du das tust, entferne eine Karte aus deiner Hand ganz aus dem Spiel.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Se le Caverne di Gemme sono nella tua mano iniziale e non stai giocando per primo, puoi iniziare la partita mettendo nel campo di battaglia le Caverne di Gemme con un segnalino fortuna su di esse. Se lo fai, esilia una carta dalla tua mano.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[宝石の洞窟があなたのゲーム開始時の手札にあり、かつあなたが先攻でない場合、あなたはそれが運勢カウンターを1個置いて場に出ている状態でゲームを開始してもよい。 そうした場合、あなたの手札にあるカードを1枚ゲームから取り除く。]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[If Gemstone Caverns is in your opening hand and you’re not playing first, you may begin the game with Gemstone Caverns on the battlefield with a luck counter on it. If you do, exile a card from your hand.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[Если Самоцветные Пещеры пришли к вам в начальную руку и вы не ходите первым, вы можете начать игру с Самоцветными Пещерами в игре с одним жетоном удачи на них. Если вы это сделали, уберите одну карту в вашей руке из игры.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[Se Carvernas de Pedras Preciosas estiver em sua mão de abertura e você não for o primeiro a jogar, você pode começar o jogo com Carvernas de Pedras Preciosas em jogo com um marcador de sorte sobre ela. Se fizer isso, remova do jogo um card de sua mão.]]></LOCALISED_TEXT>
<TRIGGER value="BEGINNING_OF_STEP">
    return TriggerPlayer():GetTeam() ~= EffectController():GetTeam() and EffectController():MyTurn() and MTG():GetStep() == STEP_UPKEEP and MTG():GetTurnNumber() == 0
    </TRIGGER>
<RESOLUTION_TIME_ACTION>
    if EffectSource() ~= nil then
       EffectSource():PutOntoBattlefield( EffectController() )
    end
    </RESOLUTION_TIME_ACTION>
      <MAY />
      <AUTO_SKIP always="1" />
   </TRIGGERED_ABILITY>

<TRIGGERED_ABILITY replacement_effect="1" active_zone="ZONE_TRANSITION">
<TRIGGER value="ZONECHANGE_TRANSITION" simple_qualifier="self" to_zone="ZONE_BATTLEFIELD" from_zone="ZONE_ANY" />
return TriggerPlayer():GetTeam() ~= EffectController():GetTeam() and EffectController():MyTurn() and MTG():GetStep() == STEP_UPKEEP and MTG():GetTurnNumber() == 0
</TRIGGERED_ABILITY>
      <COUNTER_REGISTRATION name="Luck" proliferate="11" />
      <RESOLUTION_TIME_ACTION>
    if EffectSource() ~= nil then
      EffectSource():AddCounters( MTG():GetCountersType("Luck"), 1)
    end
    </RESOLUTION_TIME_ACTION>
<RESOLUTION_TIME_ACTION>
    local filter = ClearFilter()
    filter:SetZone( ZONE_HAND, EffectController() )
    EffectController():ChooseItem( "CARD_QUERY_CHOOSE_CARD_TO_EXILE", EffectDC():Make_Targets(0) )
    </RESOLUTION_TIME_ACTION>
      <RESOLUTION_TIME_ACTION>
    local target = EffectDC():Get_Targets(0):Get_CardPtr(0)
    if target ~= nil then
       EffectDC():Get_Targets(0):Protect_CardPtr(0)
       target:Exile()
    end
    </RESOLUTION_TIME_ACTION>

<STATIC_ABILITY>
      <CONTINUOUS_ACTION layer="8">
    local source = EffectSource()
    if source ~= nil and source:CountCounters( MTG():GetCountersType("Luck") ) = 1 then
       source:GetCurrentCharacteristics()
   characteristics:GrantAbility(9)
    end
    </CONTINUOUS_ACTION>
   </STATIC_ABILITY>

<STATIC_ABILITY>
      <CONTINUOUS_ACTION layer="8">
    local source = EffectSource()
    if source ~= nil and source:CountCounters( MTG():GetCountersType("Luck") ) = 0 then
       source:GetCurrentCharacteristics()
   characteristics:GrantAbility(10)
    end
    </CONTINUOUS_ACTION>
   </STATIC_ABILITY>

<ACTIVATED_ABILITY forced_skip="1," resource_id="10">
      <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[{T}: Add {1} to your mana pool.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[{T}: Ajoutez {1} à votre réserve.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[{T}: Agrega {1} a tu reserva de maná.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[{T}: Erhöhe deinen Manavorrat um {1}.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[{T}: Aggiungi {1} alla tua riserva di mana.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[{T}:あなたのマナ・プールに{1}を加える。]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[{T}: {1}를 당신의 마나풀에 담는다.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[{T}: добавьте {1} в ваше хранилище маны.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[{T}: Adicione {1} à sua reserva de mana.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="zh-CN"><![CDATA[{T}:加{1}到你的法术力池中。]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="zh-HK"><![CDATA[{T}:加{1}到你的魔法力池中。]]></LOCALISED_TEXT>
      <COST type="TapSelf" />
      <PLAY_TIME_ACTION>
         RSN_MarkManaAbilityStart()
      </PLAY_TIME_ACTION>
      <RESOLUTION_TIME_ACTION>
         RSN_Produce( "{1}", 1 )
      </RESOLUTION_TIME_ACTION>
      <RESOLUTION_TIME_ACTION>
         RSN_EliminateExtraManaTokens()
      </RESOLUTION_TIME_ACTION>
      <RESOLUTION_TIME_ACTION>
      S_DisplayManaPool(EffectController())
      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>
      <CONTINUOUS_ACTION layer="8">
         local oCard = EffectSource()
         if (RSN_CheckSwitchToFallback( oCard )) then
            local oCharacteristics = oCard:GetCurrentCharacteristics()
            oCharacteristics:GrantAbility( 9 )
         end
      </CONTINUOUS_ACTION>
   </STATIC_ABILITY>

<ACTIVATED_ABILITY forced_skip="1," resource_id="9">
      <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[{T}: Add one mana of any color to your mana pool.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[{T}: Ajoutez un mana de la couleur de votre choix à votre réserve.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[{T}: Agrega un maná de cualquier color a tu reserva de maná.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[{T}: Erhöhe deinen Manavorrat um ein Mana einer beliebigen Farbe.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[{T}: Aggiungi un mana di un qualsiasi colore alla tua riserva di mana.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[{T}:あなたのマナ・プールに、好きな色1色のマナ1点を加える。]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[{T}: 당신의 마나풀에 원하는 색의 마나 한 개를 담는다.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[{T}: добавьте одну ману любого цвета в ваше хранилище маны.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[{T}: Adicione um mana de qualquer cor à sua reserva de mana.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="zh-CN"><![CDATA[{T}:加一点任意颜色的法术力到你的法术力池中。]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="zh-HK"><![CDATA[{T}:加一點任意顏色的魔法力到你的魔法力池中。]]></LOCALISED_TEXT>
      <COST type="TapSelf" />
      <PLAY_TIME_ACTION>
         RSN_MarkManaAbilityStart()
         local oPlayer = EffectController()
         local oCard = EffectSource()
         if (oPlayer ~= nil) then
            oPlayer:BeginNewMultipleChoice()
            oPlayer:AddMultipleChoiceAnswer( "RSN_MODE_PRODUCE_W" )
            oPlayer:AddMultipleChoiceAnswer( "RSN_MODE_PRODUCE_U" )
            oPlayer:AddMultipleChoiceAnswer( "RSN_MODE_PRODUCE_B" )
            oPlayer:AddMultipleChoiceAnswer( "RSN_MODE_PRODUCE_R" )
            oPlayer:AddMultipleChoiceAnswer( "RSN_MODE_PRODUCE_G" )
            oPlayer:AskMultipleChoiceQuestion( "MODE_CHOOSE_ONE", oCard )
         end
      </PLAY_TIME_ACTION>
      <RESOLUTION_TIME_ACTION>
         local nColour = EffectController():GetMultipleChoiceResult() + 1
         if (nColour == COLOUR_BLACK) then
            RSN_Produce( "{B}", 1 )
         elseif (nColour == COLOUR_BLUE) then
            RSN_Produce( "{U}", 1 )
         elseif (nColour == COLOUR_GREEN) then
            RSN_Produce( "{G}", 1 )
         elseif (nColour == COLOUR_RED) then
            RSN_Produce( "{R}", 1 )
         elseif (nColour == COLOUR_WHITE) then
            RSN_Produce( "{W}", 1 )
         end
      </RESOLUTION_TIME_ACTION>
      <RESOLUTION_TIME_ACTION>
         RSN_EliminateExtraManaTokens()
      </RESOLUTION_TIME_ACTION>
      <RESOLUTION_TIME_ACTION>
      S_DisplayManaPool(EffectController())
      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( "{B}{G}{R}{U}{W}" )
      </CONTINUOUS_ACTION>
      <CONTINUOUS_ACTION layer="8">
         local nDefaultColour = COLOUR_GREEN
         local oCard = EffectSource()
         if (RSN_CheckSwitchToFallback( oCard )) then
            local nColour = RSN_GetLastProducedColour()
            local oCharacteristics = oCard:GetCurrentCharacteristics()
            if (nColour ~= COLOUR_COLOURLESS) then
               oCharacteristics:GrantAbility( nColour )
            else
               oCharacteristics:GrantAbility( nDefaultColour )
            end
         end
      </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>
   <MANA_ABILITY resource_id="1">
      <COST type="TapSelf" />
      <PRODUCES amount="{W}" />
   </MANA_ABILITY>
   <MANA_ABILITY resource_id="2">
      <COST type="TapSelf" />
      <PRODUCES amount="{U}" />
   </MANA_ABILITY>
   <MANA_ABILITY resource_id="3">
      <COST type="TapSelf" />
      <PRODUCES amount="{B}" />
   </MANA_ABILITY>
   <MANA_ABILITY resource_id="4">
      <COST type="TapSelf" />
      <PRODUCES amount="{R}" />
   </MANA_ABILITY>
   <MANA_ABILITY resource_id="5">
      <COST type="TapSelf" />
      <PRODUCES amount="{G}" />
   </MANA_ABILITY>
   <TOKEN_REGISTRATION reservation="1" type="RSN_TOKEN_MANA_B" />
   <TOKEN_REGISTRATION reservation="1" type="RSN_TOKEN_MANA_G" />
   <TOKEN_REGISTRATION reservation="1" type="RSN_TOKEN_MANA_R" />
   <TOKEN_REGISTRATION reservation="1" type="RSN_TOKEN_MANA_U" />
   <TOKEN_REGISTRATION reservation="1" type="RSN_TOKEN_MANA_W" />
</CARD_V2>
fallenangle
 
Posts: 319
Joined: 20 Jul 2013, 02:31
Has thanked: 73 times
Been thanked: 41 times

Re: Formal Request Thread

Postby Xander9009 » 29 Oct 2014, 21:49

fallenangle wrote:I've been trying to code Gemstone Caverns, and it isn't working at all. This is the code I've been using, but I can't seem to get the mana abilities to appear on the card or work properly. Additionally, I get a script error stating that in one of my CONTINUOUS_ACTION blocks, "then" is expected near "=". I'm at a loss for how to fix this. Can any kind soul take a look at my code and set me straight? I would be extremely grateful for any help you could give me.

Here's the code: ...snip...
First thing I see is that you check that it's an opponent's turn with "TriggerPlayer():GetTeam() ~= EffectController():GetTeam()" and you make sure it's your turn with "EffectController():MyTurn()". This will probably never trigger like you want it to. Shouold probably be "EffectController():MyTurn() == false".

Continuous action issue is this line: "if source ~= nil and source:CountCounters( MTG():GetCountersType("Luck") ) = 0 then". Should have double equal sign.

Directly above that, you've also got the same issue with "if source ~= nil and source:CountCounters( MTG():GetCountersType("Luck") ) = 1 then". However, this one should not be double equal signs. If the counter is proliferated or double with Doubling Season (not that it really can be affected with DS), checking that it's exactly 1 will break it. Use "&gt;=" without quotes, instead so it looks like "if source ~= nil and source:CountCounters( MTG():GetCountersType("Luck") ) &gt;= 1 then".
_______________________________
Community Wad - Community Wad Website - How to Help and Report Bugs
Discord: discord.gg/4AXvHzW
User avatar
Xander9009
Programmer
 
Posts: 2905
Joined: 29 Jun 2013, 07:44
Location: Indiana, United States
Has thanked: 121 times
Been thanked: 445 times

Re: Formal Request Thread

Postby fallenangle » 30 Oct 2014, 03:36

I've been working at it some more, but I'm still stuck. Right now it won't add a luck counter, crashes the game on exit, and (potentially) allows multiple copies of the legendary land to be on the battlefield at the same time. Can any of the coding gods take a look at my latest effort at Gemstone Caverns and show me where I have gone awry and suggest how I might fix it? Any and all suggestions would be greatly appreciated. Thanks in advance for all of your help!

Here's my latest code:

Code: Select all
<?xml version='1.0' encoding='UTF-8'?>
<CARD_V2 ExportVersion="1">
  <FILENAME text="GEMSTONE_CAVERNS_122094" />
  <CARDNAME text="GEMSTONE_CAVERNS" />
  <TITLE>
    <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Gemstone Caverns]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Cavernes aux gemmes]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Cavernas de gemas]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Edelsteinhöhlen]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Caverne di Gemme]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[宝石の洞窟]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[Gemstone Caverns]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[Самоцветные Пещеры]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[Carvernas de Pedras Preciosas]]></LOCALISED_TEXT>
  </TITLE>
  <MULTIVERSEID value="122094" />
  <ARTID value="122094" />
  <ARTIST name="Martina Pilcerova" />
  <CASTING_COST cost="" />
  <SUPERTYPE metaname="Legendary" />
  <TYPE metaname="Land" />
  <EXPANSION value="TSP" />
  <RARITY metaname="R" />
<TRIGGERED_ABILITY active_zone="ZONE_HAND">
 <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[If Gemstone Caverns is in your opening hand and you’re not playing first, you may begin the game with Gemstone Caverns on the battlefield with a luck counter on it. If you do, exile a card from your hand.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Si les Cavernes aux gemmes sont dans votre main de départ et que vous ne jouez pas en premier, vous pouvez commencer la partie avec les Cavernes aux gemmes en jeu avec, sur elles, un marqueur « chance ». Si vous faites ainsi, retirez de la partie une carte de votre main.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Si las Cavernas de gemas están en tu mano inicial y no juegas primero, puedes comenzar el juego con las Cavernas de gemas en juego con un contador de suerte sobre ellas. Si lo haces, remueve del juego una carta de tu mano.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Falls die Edelsteinhöhlen auf deiner Anfangshand sind und du nicht als Erster an der Reihe bist, kannst du sie vor Spielbeginn mit einer Glücksmarke ins Spiel bringen. Falls du das tust, entferne eine Karte aus deiner Hand ganz aus dem Spiel.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Se le Caverne di Gemme sono nella tua mano iniziale e non stai giocando per primo, puoi iniziare la partita mettendo nel campo di battaglia le Caverne di Gemme con un segnalino fortuna su di esse. Se lo fai, esilia una carta dalla tua mano.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[宝石の洞窟があなたのゲーム開始時の手札にあり、かつあなたが先攻でない場合、あなたはそれが運勢カウンターを1個置いて場に出ている状態でゲームを開始してもよい。 そうした場合、あなたの手札にあるカードを1枚ゲームから取り除く。]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[If Gemstone Caverns is in your opening hand and you’re not playing first, you may begin the game with Gemstone Caverns on the battlefield with a luck counter on it. If you do, exile a card from your hand.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[Если Самоцветные Пещеры пришли к вам в начальную руку и вы не ходите первым, вы можете начать игру с Самоцветными Пещерами в игре с одним жетоном удачи на них. Если вы это сделали, уберите одну карту в вашей руке из игры.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[Se Carvernas de Pedras Preciosas estiver em sua mão de abertura e você não for o primeiro a jogar, você pode começar o jogo com Carvernas de Pedras Preciosas em jogo com um marcador de sorte sobre ela. Se fizer isso, remova do jogo um card de sua mão.]]></LOCALISED_TEXT>
<TRIGGER value="BEGINNING_OF_STEP">
    return EffectController():MyTurn() == false and MTG():GetStep() == STEP_UPKEEP and MTG():GetTurnNumber() == 0
    </TRIGGER>
<RESOLUTION_TIME_ACTION>
    if EffectSource() ~= nil then
       EffectSource():PutOntoBattlefield( EffectController() )
    end
    </RESOLUTION_TIME_ACTION>
      <MAY />
      <AUTO_SKIP always="1" />
<RESOLUTION_TIME_ACTION>
    local filter = ClearFilter()
    filter:SetZone( ZONE_HAND, EffectController() )
    EffectController():ChooseItem( "CARD_QUERY_CHOOSE_CARD_TO_EXILE", EffectDC():Make_Targets(38) )
    </RESOLUTION_TIME_ACTION>
      <RESOLUTION_TIME_ACTION>
    local target = EffectDC():Get_Targets(38):Get_CardPtr(0)
    if target ~= nil then
       EffectDC():Get_Targets(38):Protect_CardPtr(0)
       target:Exile()
    end
    </RESOLUTION_TIME_ACTION>
</TRIGGERED_ABILITY>

<TRIGGERED_ABILITY>
<TRIGGER value="ZONECHANGE_TRANSITION" simple_qualifier="self" to_zone="ZONE_BATTLEFIELD" from_zone="ZONE_ANY" />
return EffectController():MyTurn() == false and MTG():GetStep() == STEP_UPKEEP and MTG():GetTurnNumber() == 0
      <COUNTER_REGISTRATION name="Luck" proliferate="11" />
      <RESOLUTION_TIME_ACTION>
    if EffectSource() ~= nil then
      EffectSource():AddCounters( MTG():GetCountersType("Luck"), 1)
    end
    </RESOLUTION_TIME_ACTION>
</TRIGGERED_ABILITY>

<INTERVENING_IF ignore_resolution_check="1">
    if EffectSource() ~= nil and EffectSource():CountCounters(MTG():GetCountersType("Luck")) &gt;= 1 then
       return true
    else
       return false
    end
    </INTERVENING_IF>

<ACTIVATED_ABILITY forced_skip="1">
      <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[{T}: Add {1} to your mana pool.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[{T}: Ajoutez {1} à votre réserve.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[{T}: Agrega {1} a tu reserva de maná.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[{T}: Erhöhe deinen Manavorrat um {1}.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[{T}: Aggiungi {1} alla tua riserva di mana.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[{T}:あなたのマナ・プールに{1}を加える。]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[{T}: {1}를 당신의 마나풀에 담는다.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[{T}: добавьте {1} в ваше хранилище маны.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[{T}: Adicione {1} à sua reserva de mana.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="zh-CN"><![CDATA[{T}:加{1}到你的法术力池中。]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="zh-HK"><![CDATA[{T}:加{1}到你的魔法力池中。]]></LOCALISED_TEXT>
      <COST type="TapSelf" />
      <PLAY_TIME_ACTION>
         RSN_MarkManaAbilityStart()
      </PLAY_TIME_ACTION>
      <RESOLUTION_TIME_ACTION>
         RSN_Produce( "{1}", 1 )
      </RESOLUTION_TIME_ACTION>
      <RESOLUTION_TIME_ACTION>
         RSN_EliminateExtraManaTokens()
      </RESOLUTION_TIME_ACTION>
      <RESOLUTION_TIME_ACTION>
      S_DisplayManaPool(EffectController())
      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>
      <CONTINUOUS_ACTION layer="8">
         local oCard = EffectSource()
         if (RSN_CheckSwitchToFallback( oCard )) then
            local oCharacteristics = oCard:GetCurrentCharacteristics()
            oCharacteristics:GrantAbility( 9 )
         end
      </CONTINUOUS_ACTION>
   </STATIC_ABILITY>

<ACTIVATED_ABILITY forced_skip= "1," resource_id ="22">
      <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[{T}: Add one mana of any color to your mana pool.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[{T}: Ajoutez un mana de la couleur de votre choix à votre réserve.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[{T}: Agrega un maná de cualquier color a tu reserva de maná.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[{T}: Erhöhe deinen Manavorrat um ein Mana einer beliebigen Farbe.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[{T}: Aggiungi un mana di un qualsiasi colore alla tua riserva di mana.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[{T}:あなたのマナ・プールに、好きな色1色のマナ1点を加える。]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[{T}: 당신의 마나풀에 원하는 색의 마나 한 개를 담는다.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[{T}: добавьте одну ману любого цвета в ваше хранилище маны.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[{T}: Adicione um mana de qualquer cor à sua reserva de mana.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="zh-CN"><![CDATA[{T}:加一点任意颜色的法术力到你的法术力池中。]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="zh-HK"><![CDATA[{T}:加一點任意顏色的魔法力到你的魔法力池中。]]></LOCALISED_TEXT>
      <COST type="TapSelf" />
      <PLAY_TIME_ACTION>
         RSN_MarkManaAbilityStart()
         local oPlayer = EffectController()
         local oCard = EffectSource()
         if (oPlayer ~= nil) then
            oPlayer:BeginNewMultipleChoice()
            oPlayer:AddMultipleChoiceAnswer( "RSN_MODE_PRODUCE_W" )
            oPlayer:AddMultipleChoiceAnswer( "RSN_MODE_PRODUCE_U" )
            oPlayer:AddMultipleChoiceAnswer( "RSN_MODE_PRODUCE_B" )
            oPlayer:AddMultipleChoiceAnswer( "RSN_MODE_PRODUCE_R" )
            oPlayer:AddMultipleChoiceAnswer( "RSN_MODE_PRODUCE_G" )
            oPlayer:AskMultipleChoiceQuestion( "MODE_CHOOSE_ONE", oCard )
         end
      </PLAY_TIME_ACTION>
      <RESOLUTION_TIME_ACTION>
         local nColour = EffectController():GetMultipleChoiceResult() + 1
         if (nColour == COLOUR_BLACK) then
            RSN_Produce( "{B}", 1 )
         elseif (nColour == COLOUR_BLUE) then
            RSN_Produce( "{U}", 1 )
         elseif (nColour == COLOUR_GREEN) then
            RSN_Produce( "{G}", 1 )
         elseif (nColour == COLOUR_RED) then
            RSN_Produce( "{R}", 1 )
         elseif (nColour == COLOUR_WHITE) then
            RSN_Produce( "{W}", 1 )
         end
      </RESOLUTION_TIME_ACTION>
      <RESOLUTION_TIME_ACTION>
         RSN_EliminateExtraManaTokens()
      </RESOLUTION_TIME_ACTION>
      <RESOLUTION_TIME_ACTION>
      S_DisplayManaPool(EffectController())
      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( "{B}{G}{R}{U}{W}" )
      </CONTINUOUS_ACTION>
      <CONTINUOUS_ACTION layer="8">
         local nDefaultColour = COLOUR_GREEN
         local oCard = EffectSource()
         if (RSN_CheckSwitchToFallback( oCard )) then
            local nColour = RSN_GetLastProducedColour()
            local oCharacteristics = oCard:GetCurrentCharacteristics()
            if (nColour ~= COLOUR_COLOURLESS) then
               oCharacteristics:GrantAbility( nColour )
            else
               oCharacteristics:GrantAbility( nDefaultColour )
            end
         end
      </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>
   <MANA_ABILITY resource_id="1">
      <COST type="TapSelf" />
      <PRODUCES amount="{W}" />
   </MANA_ABILITY>
   <MANA_ABILITY resource_id="2">
      <COST type="TapSelf" />
      <PRODUCES amount="{U}" />
   </MANA_ABILITY>
   <MANA_ABILITY resource_id="3">
      <COST type="TapSelf" />
      <PRODUCES amount="{B}" />
   </MANA_ABILITY>
   <MANA_ABILITY resource_id="4">
      <COST type="TapSelf" />
      <PRODUCES amount="{R}" />
   </MANA_ABILITY>
   <MANA_ABILITY resource_id="5">
      <COST type="TapSelf" />
      <PRODUCES amount="{G}" />
   </MANA_ABILITY>
   <TOKEN_REGISTRATION reservation="1" type="RSN_TOKEN_MANA_B" />
   <TOKEN_REGISTRATION reservation="1" type="RSN_TOKEN_MANA_G" />
   <TOKEN_REGISTRATION reservation="1" type="RSN_TOKEN_MANA_R" />
   <TOKEN_REGISTRATION reservation="1" type="RSN_TOKEN_MANA_U" />
   <TOKEN_REGISTRATION reservation="1" type="RSN_TOKEN_MANA_W" />
</CARD_V2>
fallenangle
 
Posts: 319
Joined: 20 Jul 2013, 02:31
Has thanked: 73 times
Been thanked: 41 times

Re: Formal Request Thread

Postby Xander9009 » 30 Oct 2014, 03:54

fallenangle wrote:I've been working at it some more, but I'm still stuck. Right now it won't add a luck counter, crashes the game on exit, and (potentially) allows multiple copies of the legendary land to be on the battlefield at the same time. Can any of the coding gods take a look at my latest effort at Gemstone Caverns and show me where I have gone awry and suggest how I might fix it? Any and all suggestions would be greatly appreciated. Thanks in advance for all of your help!
1: You've got an INTERVENING_IF block outside of any ability blocks. Intervening if blocks must be inside an ability block, otherwise they do nothing.
2: If it's not adding the luck counter, then it's producing colorless mana, but you haven't registered the colorless mana token RSN_TOKEN_MANA_C.
3: It's not adding a luck counter because the trigger is messed up.
Code: Select all
<TRIGGERED_ABILITY>
  <TRIGGER value="ZONECHANGE_TRANSITION" simple_qualifier="self" to_zone="ZONE_BATTLEFIELD" from_zone="ZONE_ANY" />
    return EffectController():MyTurn() == false and MTG():GetStep() == STEP_UPKEEP and MTG():GetTurnNumber() == 0
  <COUNTER_REGISTRATION name="Luck" proliferate="11" />
  <RESOLUTION_TIME_ACTION>
    if EffectSource() ~= nil then
      EffectSource():AddCounters( MTG():GetCountersType("Luck"), 1)
    end
  </RESOLUTION_TIME_ACTION>
</TRIGGERED_ABILITY>
The third line here, the one that starts with "return" is not inside the trigger tag like it should be. Because it's outside the tag, the code executes to that point, and then "returns". When you return, you exit the current section of code. Normally, the section of code being exited would be the trigger, since that's the XML block the return is inside of. It's directly inside of the <TRIGGERED_ABILITY> block, though. So, once it gets there, it exits the entire ability. Also, note the / at the end of the trigger tag. Tags set up like <TAG_NAME ... /> mean the tag ends there, it doesn't contain any additional code. You need it to contain the extra check though, so remove the / and put a </TRIGGER> tag after the rest of the trigger.

Code: Select all
<TRIGGERED_ABILITY>
  <TRIGGER value="ZONECHANGE_TRANSITION" simple_qualifier="self" to_zone="ZONE_BATTLEFIELD" from_zone="ZONE_ANY">
    return EffectController():MyTurn() == false and MTG():GetStep() == STEP_UPKEEP and MTG():GetTurnNumber() == 0
  </TRIGGER>
  <COUNTER_REGISTRATION name="Luck" proliferate="11" />
  <RESOLUTION_TIME_ACTION>
    if EffectSource() ~= nil then
      EffectSource():AddCounters( MTG():GetCountersType("Luck"), 1)
    end
  </RESOLUTION_TIME_ACTION>
</TRIGGERED_ABILITY>
Also, while it won't affect anything because there are no cards that make the circumstances happen, it's not actually properly coded. As it sits, if it enters the battlefield for any reason at the right time, it'll get a luck counter. It should only get a luck counter if its ability is used. It doesn't matter, and it would make it more complex to do it properly, but I figured I'd mention it.
_______________________________
Community Wad - Community Wad Website - How to Help and Report Bugs
Discord: discord.gg/4AXvHzW
User avatar
Xander9009
Programmer
 
Posts: 2905
Joined: 29 Jun 2013, 07:44
Location: Indiana, United States
Has thanked: 121 times
Been thanked: 445 times

Re: Formal Request Thread

Postby fallenangle » 30 Oct 2014, 14:08

Thanks for all the help, Xander. Now it does everything except add the luck counter. Can anyone help me fix this. Here's my current Gemstone Caverns code. Any help spotting and correcting errors would be greatly appreciated:

Code: Select all
<?xml version='1.0' encoding='UTF-8'?>
<CARD_V2 ExportVersion="1">
  <FILENAME text="GEMSTONE_CAVERNS_122094" />
  <CARDNAME text="GEMSTONE_CAVERNS" />
  <TITLE>
    <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Gemstone Caverns]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Cavernes aux gemmes]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Cavernas de gemas]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Edelsteinhöhlen]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Caverne di Gemme]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[宝石の洞窟]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[Gemstone Caverns]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[Самоцветные Пещеры]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[Carvernas de Pedras Preciosas]]></LOCALISED_TEXT>
  </TITLE>
  <MULTIVERSEID value="122094" />
  <ARTID value="122094" />
  <ARTIST name="Martina Pilcerova" />
  <CASTING_COST cost="" />
  <SUPERTYPE metaname="Legendary" />
  <TYPE metaname="Land" />
  <EXPANSION value="TSP" />
  <RARITY metaname="R" />
<TRIGGERED_ABILITY active_zone="ZONE_HAND">
 <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[If Gemstone Caverns is in your opening hand and you’re not playing first, you may begin the game with Gemstone Caverns on the battlefield with a luck counter on it. If you do, exile a card from your hand.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Si les Cavernes aux gemmes sont dans votre main de départ et que vous ne jouez pas en premier, vous pouvez commencer la partie avec les Cavernes aux gemmes en jeu avec, sur elles, un marqueur « chance ». Si vous faites ainsi, retirez de la partie une carte de votre main.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Si las Cavernas de gemas están en tu mano inicial y no juegas primero, puedes comenzar el juego con las Cavernas de gemas en juego con un contador de suerte sobre ellas. Si lo haces, remueve del juego una carta de tu mano.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Falls die Edelsteinhöhlen auf deiner Anfangshand sind und du nicht als Erster an der Reihe bist, kannst du sie vor Spielbeginn mit einer Glücksmarke ins Spiel bringen. Falls du das tust, entferne eine Karte aus deiner Hand ganz aus dem Spiel.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Se le Caverne di Gemme sono nella tua mano iniziale e non stai giocando per primo, puoi iniziare la partita mettendo nel campo di battaglia le Caverne di Gemme con un segnalino fortuna su di esse. Se lo fai, esilia una carta dalla tua mano.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[宝石の洞窟があなたのゲーム開始時の手札にあり、かつあなたが先攻でない場合、あなたはそれが運勢カウンターを1個置いて場に出ている状態でゲームを開始してもよい。 そうした場合、あなたの手札にあるカードを1枚ゲームから取り除く。]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[If Gemstone Caverns is in your opening hand and you’re not playing first, you may begin the game with Gemstone Caverns on the battlefield with a luck counter on it. If you do, exile a card from your hand.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[Если Самоцветные Пещеры пришли к вам в начальную руку и вы не ходите первым, вы можете начать игру с Самоцветными Пещерами в игре с одним жетоном удачи на них. Если вы это сделали, уберите одну карту в вашей руке из игры.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[Se Carvernas de Pedras Preciosas estiver em sua mão de abertura e você não for o primeiro a jogar, você pode começar o jogo com Carvernas de Pedras Preciosas em jogo com um marcador de sorte sobre ela. Se fizer isso, remova do jogo um card de sua mão.]]></LOCALISED_TEXT>
<TRIGGER value="BEGINNING_OF_STEP">
    return EffectController():MyTurn() == false and MTG():GetStep() == STEP_UPKEEP and MTG():GetTurnNumber() == 0
    </TRIGGER>
<RESOLUTION_TIME_ACTION>
    if EffectSource() ~= nil then
       EffectSource():PutOntoBattlefield( EffectController() )
    end
    </RESOLUTION_TIME_ACTION>
      <MAY />
      <AUTO_SKIP always="1" />
<RESOLUTION_TIME_ACTION>
    local filter = ClearFilter()
    filter:SetZone( ZONE_HAND, EffectController() )
    EffectController():ChooseItem( "CARD_QUERY_CHOOSE_CARD_TO_EXILE", EffectDC():Make_Targets(38) )
    </RESOLUTION_TIME_ACTION>
      <RESOLUTION_TIME_ACTION>
    local target = EffectDC():Get_Targets(38):Get_CardPtr(0)
    if target ~= nil then
       EffectDC():Get_Targets(38):Protect_CardPtr(0)
       target:Exile()
    end
    </RESOLUTION_TIME_ACTION>
</TRIGGERED_ABILITY>

    <TRIGGERED_ABILITY>
      <TRIGGER value="ZONECHANGE_TRANSITION" simple_qualifier="self" to_zone="ZONE_BATTLEFIELD" from_zone="ZONE_HAND">
        return EffectController():MyTurn() == false and MTG():GetStep() == STEP_UPKEEP and MTG():GetTurnNumber() == 0
      </TRIGGER>
      <COUNTER_REGISTRATION name="Luck" proliferate="11" />
      <RESOLUTION_TIME_ACTION>
        if EffectSource() ~= nil then
          EffectSource():AddCounters( MTG():GetCountersType("Luck"), 1)
        end
      </RESOLUTION_TIME_ACTION>
    </TRIGGERED_ABILITY>



<ACTIVATED_ABILITY forced_skip="1">
      <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[{T}: Add {1} to your mana pool.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[{T}: Ajoutez {1} à votre réserve.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[{T}: Agrega {1} a tu reserva de maná.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[{T}: Erhöhe deinen Manavorrat um {1}.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[{T}: Aggiungi {1} alla tua riserva di mana.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[{T}:あなたのマナ・プールに{1}を加える。]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[{T}: {1}를 당신의 마나풀에 담는다.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[{T}: добавьте {1} в ваше хранилище маны.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[{T}: Adicione {1} à sua reserva de mana.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="zh-CN"><![CDATA[{T}:加{1}到你的法术力池中。]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="zh-HK"><![CDATA[{T}:加{1}到你的魔法力池中。]]></LOCALISED_TEXT>
<INTERVENING_IF ignore_resolution_check="1">
    if EffectSource() ~= nil and EffectSource():CountCounters(MTG():GetCountersType("Luck")) &gt;= 1 then
       return true
    else
       return false
    end
    </INTERVENING_IF>
      <COST type="TapSelf" />
      <PLAY_TIME_ACTION>
         RSN_MarkManaAbilityStart()
      </PLAY_TIME_ACTION>
      <RESOLUTION_TIME_ACTION>
         RSN_Produce( "{1}", 1 )
      </RESOLUTION_TIME_ACTION>
      <RESOLUTION_TIME_ACTION>
         RSN_EliminateExtraManaTokens()
      </RESOLUTION_TIME_ACTION>
      <RESOLUTION_TIME_ACTION>
      S_DisplayManaPool(EffectController())
      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>
      <CONTINUOUS_ACTION layer="8">
         local oCard = EffectSource()
         if (RSN_CheckSwitchToFallback( oCard )) then
            local oCharacteristics = oCard:GetCurrentCharacteristics()
            oCharacteristics:GrantAbility( 9 )
         end
      </CONTINUOUS_ACTION>
   </STATIC_ABILITY>

<ACTIVATED_ABILITY forced_skip= "1," resource_id ="22">
      <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[{T}: Add one mana of any color to your mana pool.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[{T}: Ajoutez un mana de la couleur de votre choix à votre réserve.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[{T}: Agrega un maná de cualquier color a tu reserva de maná.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[{T}: Erhöhe deinen Manavorrat um ein Mana einer beliebigen Farbe.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[{T}: Aggiungi un mana di un qualsiasi colore alla tua riserva di mana.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[{T}:あなたのマナ・プールに、好きな色1色のマナ1点を加える。]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[{T}: 당신의 마나풀에 원하는 색의 마나 한 개를 담는다.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[{T}: добавьте одну ману любого цвета в ваше хранилище маны.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[{T}: Adicione um mana de qualquer cor à sua reserva de mana.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="zh-CN"><![CDATA[{T}:加一点任意颜色的法术力到你的法术力池中。]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="zh-HK"><![CDATA[{T}:加一點任意顏色的魔法力到你的魔法力池中。]]></LOCALISED_TEXT>
      <COST type="TapSelf" />
      <PLAY_TIME_ACTION>
         RSN_MarkManaAbilityStart()
         local oPlayer = EffectController()
         local oCard = EffectSource()
         if (oPlayer ~= nil) then
            oPlayer:BeginNewMultipleChoice()
            oPlayer:AddMultipleChoiceAnswer( "RSN_MODE_PRODUCE_W" )
            oPlayer:AddMultipleChoiceAnswer( "RSN_MODE_PRODUCE_U" )
            oPlayer:AddMultipleChoiceAnswer( "RSN_MODE_PRODUCE_B" )
            oPlayer:AddMultipleChoiceAnswer( "RSN_MODE_PRODUCE_R" )
            oPlayer:AddMultipleChoiceAnswer( "RSN_MODE_PRODUCE_G" )
            oPlayer:AskMultipleChoiceQuestion( "MODE_CHOOSE_ONE", oCard )
         end
      </PLAY_TIME_ACTION>
      <RESOLUTION_TIME_ACTION>
         local nColour = EffectController():GetMultipleChoiceResult() + 1
         if (nColour == COLOUR_BLACK) then
            RSN_Produce( "{B}", 1 )
         elseif (nColour == COLOUR_BLUE) then
            RSN_Produce( "{U}", 1 )
         elseif (nColour == COLOUR_GREEN) then
            RSN_Produce( "{G}", 1 )
         elseif (nColour == COLOUR_RED) then
            RSN_Produce( "{R}", 1 )
         elseif (nColour == COLOUR_WHITE) then
            RSN_Produce( "{W}", 1 )
         end
      </RESOLUTION_TIME_ACTION>
      <RESOLUTION_TIME_ACTION>
         RSN_EliminateExtraManaTokens()
      </RESOLUTION_TIME_ACTION>
      <RESOLUTION_TIME_ACTION>
      S_DisplayManaPool(EffectController())
      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( "{B}{G}{R}{U}{W}" )
      </CONTINUOUS_ACTION>
      <CONTINUOUS_ACTION layer="8">
         local nDefaultColour = COLOUR_GREEN
         local oCard = EffectSource()
         if (RSN_CheckSwitchToFallback( oCard )) then
            local nColour = RSN_GetLastProducedColour()
            local oCharacteristics = oCard:GetCurrentCharacteristics()
            if (nColour ~= COLOUR_COLOURLESS) then
               oCharacteristics:GrantAbility( nColour )
            else
               oCharacteristics:GrantAbility( nDefaultColour )
            end
         end
      </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>
   <MANA_ABILITY resource_id="1">
      <COST type="TapSelf" />
      <PRODUCES amount="{W}" />
   </MANA_ABILITY>
   <MANA_ABILITY resource_id="2">
      <COST type="TapSelf" />
      <PRODUCES amount="{U}" />
   </MANA_ABILITY>
   <MANA_ABILITY resource_id="3">
      <COST type="TapSelf" />
      <PRODUCES amount="{B}" />
   </MANA_ABILITY>
   <MANA_ABILITY resource_id="4">
      <COST type="TapSelf" />
      <PRODUCES amount="{R}" />
   </MANA_ABILITY>
   <MANA_ABILITY resource_id="5">
      <COST type="TapSelf" />
      <PRODUCES amount="{G}" />
   </MANA_ABILITY>
   <TOKEN_REGISTRATION reservation="1" type="RSN_TOKEN_MANA_B" />
   <TOKEN_REGISTRATION reservation="1" type="RSN_TOKEN_MANA_G" />
   <TOKEN_REGISTRATION reservation="1" type="RSN_TOKEN_MANA_R" />
   <TOKEN_REGISTRATION reservation="1" type="RSN_TOKEN_MANA_U" />
   <TOKEN_REGISTRATION reservation="1" type="RSN_TOKEN_MANA_W" />
<TOKEN_REGISTRATION reservation="1" type="RSN_TOKEN_MANA_C" />
</CARD_V2>
fallenangle
 
Posts: 319
Joined: 20 Jul 2013, 02:31
Has thanked: 73 times
Been thanked: 41 times

PreviousNext

Return to 2014

Who is online

Users browsing this forum: No registered users and 21 guests

Main Menu

User Menu

Our Partners


Who is online

In total there are 21 users online :: 0 registered, 0 hidden and 21 guests (based on users active over the past 10 minutes)
Most users ever online was 7303 on 15 Jul 2025, 20:46

Users browsing this forum: No registered users and 21 guests

Login Form