It is currently 18 Jul 2025, 22:14
   
Text Size

Age of Dodekatheon - UPDATED 01/09/2014 DXT1 (183 cards)

Moderator: CCGHQ Admins

Re: Age of Dodekatheon - NEW UPDATED 10/15/2013 (51 cards)

Postby NeoAnderson » 16 Oct 2013, 21:15

MysteryMindX wrote:Why after casting Poseidon it returns right back to my hand?
Sorry i checked is my missing, updating the cards i removed the info text about the casting rules of that card.

If you cast any of 12 Olympic Divinities + Hades Divinity it is needed you have the corresponding seal on the battlefield. You have to sacrifice the Seal to cast the Divinity.
So to cast Poseidon you have to sacrifice the Seal of the Abyss. (The Seal will be shuffled into the library)
Is an additional cost to make more complex to cast of a so powerful card.
NeoAnderson
 
Posts: 914
Joined: 10 Sep 2013, 07:49
Has thanked: 18 times
Been thanked: 139 times

Re: Age of Dodekatheon - NEW UPDATED 10/19/2013 (56 cards)

Postby NeoAnderson » 19 Oct 2013, 14:24

I would ask to @RiiakShiNal the favor to check the code of this land : HYPERBOREA'S LAND i made it starting from a card coded by you i am not sure to have made it correct, the cards works but i would know if the code is clear or there are some useless action.


Hyperborea's Land | Open
Code: Select all
<?xml version="1.0"?>
<CARD_V2 ExportVersion="15">
  <FILENAME text="HYPERBOREA_LAND_7272001" />
  <CARDNAME text="HYPERBOREA_LAND" />
  <TITLE>
    <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Hyperborea's land]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[La terre de l'Hyperborée]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Tierra de Hiperbórea]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Hyperborea das Land]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Terra di Iperborea]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[ボレアの土地]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[Hyperborea의 땅]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[Гипербореи на землю]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[Terra de Hiperbórea]]></LOCALISED_TEXT>
  </TITLE>
  <MULTIVERSEID value="7272001" />
  <ARTID value="7227001" />
  <ARTIST name="Internet - Free resource" />
        <CASTING_COST cost="" />
   <COLOUR value="WUBRG" />
   <TYPE metaname="Land" />
   <EXPANSION value="DPI" />
   <RARITY metaname="R" />




<TRIGGERED_ABILITY linked_ability_group="1" active_zone="ZONE_BATTLEFIELD">
      <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[At the beginning of your upkeep, the land of Hyperborea morphs in its next state.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Au début de votre entretien, la terre de l'Hyperborée se transforme dans son prochain état​​.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Al comienzo de tu mantenimiento, la tierra de Hiperbórea se transforma en su próximo estado.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Zu Beginn Ihres Unterhalt, das Land der Hyperborea verwandelt in seiner nächsten Zustand.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[All'inizio del tuo mantenimento, la terra di Iperborea muta nel suo stato successivo.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[あなたのアップキープ、その次の状態のハイパーボリアモーフの土地の開始時。]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[귀하의 유리, 그 다음 상태 Hyperborea 변경해 땅의 시작 부분에.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[В начале вашего шага, земля Гиперборея превращается в следующее состояние.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[No início de sua manutenção, a terra de Hiperbórea se transforma em seu próximo estado.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="zh-CN"><![CDATA[在開始你的保養,在其下的狀態土地Hyperborea搖身一變。]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="zh-HK"><![CDATA[在開始你的保養,在其下的狀態土地Hyperborea搖身一變。]]></LOCALISED_TEXT>
      <TRIGGER value="BEGINNING_OF_PLAYERS_STEP" simple_qualifier="controller">
    return MTG():GetStep() == STEP_UPKEEP
    </TRIGGER>

  <RESOLUTION_TIME_ACTION>
    local nCurrentState = LinkedDC():Int_Get( 0 )
    if (nCurrentState &lt; 4) then
      -- Change to next state.
      LinkedDC():Int_Inc( 0 )
    else
      -- Loop back around to first state.
      LinkedDC():Int_Set( 0, 0 )
    end
  </RESOLUTION_TIME_ACTION>

</TRIGGERED_ABILITY>


   <TRIGGERED_ABILITY>
      
      <TRIGGER value="ZONECHANGE_END" simple_qualifier="self" to_zone="ZONE_BATTLEFIELD" />
                  <CONTINUOUS_ACTION layer="0">
         RSN_ClearCanProduceMana()
         if (EffectSource():GetZone() == ZONE_BATTLEFIELD) then
            EffectSource():GetCurrentCharacteristics():GrantAbility(17) 
         end
      </CONTINUOUS_ACTION>
      <DURATION simple_duration="UntilEOT" />
</TRIGGERED_ABILITY>

   <ACTIVATED_ABILITY resource_id="17">
      <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Pay 1 life: You may play an additional land this turn.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Payez 1 point de vie: Vous pouvez jouer un terrain supplémentaire ce tour.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Pagar 1 vida: Puedes jugar una tierra adicional este turno.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Pay 1 Leben: Sie können ein zusätzliches Land in dieser Runde zu spielen.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Paga 1 punto vita : Puoi giocare una terra addizionale in questo turno.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[1点のライフを支払う:あなたは追加の土地をこのターンにプレイしてもよい。]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[1 삶을 지불 : 당신은 추가 땅이 턴을 할 수 있습니다.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[Заплатите 1 жизнь: Вы можете играть дополнительную землю в этот ход.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[Preste uma vida: Você pode jogar um terreno adicional neste turno.]]></LOCALISED_TEXT>
           <COST type="Life" amount="1" />    
       <CONTINUOUS_ACTION layer="8">
    local player_characteristics = EffectController():GetCurrentCharacteristics()
    player_characteristics:Int_Increment( PLAYER_INTCHARACTERISTIC_EXTRA_LAND_DROPS )
    </CONTINUOUS_ACTION>
      <DURATION simple_duration="UntilEOT" />
      <AVAILABILITY per_turn_limit="1" />
   </ACTIVATED_ABILITY>


   <ACTIVATED_ABILITY linked_ability_group="1" forced_skip="1">
      <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[{T}]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[{T}]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[{T}]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[{T}]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[{T}]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[{T}]]></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}]]></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()
         RSN_ClearCanProduceMana()
      </PLAY_TIME_ACTION>

      <RESOLUTION_TIME_ACTION>
if (EffectSource():GetZone() == ZONE_BATTLEFIELD) then
      local nState = LinkedDC():Int_Get( 0 )
      if (nState == 0) then
        RSN_Produce( "{U}", 1 )
      elseif (nState == 1) then
        RSN_Produce( "{R}", 1 )
      elseif (nState == 2) then
        RSN_Produce( "{W}", 1 )
      elseif (nState == 3) then
        RSN_Produce( "{G}", 1 )
      else
        RSN_Produce( "{B}", 1 )
      end
else
 
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>
   <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>

   <STATIC_ABILITY resource_id="16" commaspace="1" active_zone="ZONE_ANY">
      <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[:Add {G} to your mana pool.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[:Ajoutez {G} à votre réserve.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[:Agrega {G} a tu reserva de maná.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[:Erhöhe deinen Manavorrat um {G}.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[:Aggiungi un mana del colore attuale alla tua riserva di mana.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[:あなたのマナ・プールに{G}を加える。]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[:{G}를 당신의 마나풀에 담는다.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[:добавьте {G} в ваше хранилище маны.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[:Adicione {G} à sua reserva de mana.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="zh-CN"><![CDATA[:加{G}到你的法术力池中。]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="zh-HK"><![CDATA[:加{G}到你的魔法力池中。]]></LOCALISED_TEXT>
   </STATIC_ABILITY>

        <STATIC_ABILITY linked_ability_group="1" active_zone="ZONE_ANY">
      <CONTINUOUS_ACTION layer="0">
         RSN_ClearCanProduceMana()
         if (EffectSource():GetZone() == ZONE_BATTLEFIELD) then
               local nState = LinkedDC():Int_Get( 0 )
               if (nState == 0) then
                RSN_MarkCanProduceMana( "{U}" )
               EffectSource():GetCurrentCharacteristics():GrantAbility(11)   
               elseif (nState == 1) then
                  RSN_MarkCanProduceMana( "{R}" )
               EffectSource():GetCurrentCharacteristics():GrantAbility(12)
                   elseif (nState == 2) then
               RSN_MarkCanProduceMana( "{W}" )
               EffectSource():GetCurrentCharacteristics():GrantAbility(13)
              elseif (nState == 3) then
               RSN_MarkCanProduceMana( "{G}" )
               EffectSource():GetCurrentCharacteristics():GrantAbility(14)
              else
               EffectSource():GetCurrentCharacteristics():GrantAbility(15)
               RSN_MarkCanProduceMana( "{B}" )
              end
                        else
                        EffectSource():GetCurrentCharacteristics():GrantAbility(16) 
         end
      </CONTINUOUS_ACTION>
      <CONTINUOUS_ACTION layer="8">
         local nDefaultColour = COLOUR_BLUE
         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>
   <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>
   <STATIC_ABILITY resource_id="13" commaspace="1">
           <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[:Add {W} to your mana pool.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[:Ajoutez {W} à votre réserve.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[:Agrega {W} a tu reserva de maná.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[:Erhöhe deinen Manavorrat um {W}.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[:Aggiungi {W} alla tua riserva di mana.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[:あなたのマナ・プールに{W}を加える。]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[:{W}를 당신의 마나풀에 담는다.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[:добавьте {W} в ваше хранилище маны.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[:Adicione {W} à sua reserva de mana.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="zh-CN"><![CDATA[:加{W}到你的法术力池中。]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="zh-HK"><![CDATA[:加{W}到你的魔法力池中。]]></LOCALISED_TEXT>
   </STATIC_ABILITY>
   <STATIC_ABILITY resource_id="11" commaspace="1">
      <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[:Add {U} to your mana pool.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[:Ajoutez {U} à votre réserve.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[:Agrega {U} a tu reserva de maná.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[:Erhöhe deinen Manavorrat um {U}.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[:Aggiungi {U} alla tua riserva di mana.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[:あなたのマナ・プールに{U}を加える。]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[:{U}를 당신의 마나풀에 담는다.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[:добавьте {U} в ваше хранилище маны.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[:Adicione {U} à sua reserva de mana.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="zh-CN"><![CDATA[:加{U}到你的法术力池中。]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="zh-HK"><![CDATA[:加{U}到你的魔法力池中。]]></LOCALISED_TEXT>
   </STATIC_ABILITY>
   <STATIC_ABILITY resource_id="15" commaspace="1">
      <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[:Add {B} to your mana pool.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[:Ajoutez {B} à votre réserve.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[:Agrega {B} a tu reserva de maná.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[:Erhöhe deinen Manavorrat um {B}.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[:Aggiungi {B} alla tua riserva di mana.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[:あなたのマナ・プールに{B}を加える。]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[:{B}를 당신의 마나풀에 담는다.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[:добавьте {B} в ваше хранилище маны.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[:Adicione {B} à sua reserva de mana.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="zh-CN"><![CDATA[:加{B}到你的法术力池中。]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="zh-HK"><![CDATA[:加{B}到你的魔法力池中。]]></LOCALISED_TEXT>
   </STATIC_ABILITY>
   <STATIC_ABILITY resource_id="12" commaspace="1">
      <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[:Add {R} to your mana pool.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[:Ajoutez {R} à votre réserve.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[:Agrega {R} a tu reserva de maná.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[:Erhöhe deinen Manavorrat um {R}.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[:Aggiungi {R} alla tua riserva di mana.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[:あなたのマナ・プールに{R}を加える。]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[:{R}를 당신의 마나풀에 담는다.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[:добавьте {R} в ваше хранилище маны.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[:Adicione {R} à sua reserva de mana.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="zh-CN"><![CDATA[:加{R}到你的法术力池中。]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="zh-HK"><![CDATA[:加{R}到你的魔法力池中。]]></LOCALISED_TEXT>
   </STATIC_ABILITY>
   <STATIC_ABILITY resource_id="14" commaspace="1">
      <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[:Add {G} to your mana pool.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[:Ajoutez {G} à votre réserve.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[:Agrega {G} a tu reserva de maná.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[:Erhöhe deinen Manavorrat um {G}.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[:Aggiungi {G} alla tua riserva di mana.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[:あなたのマナ・プールに{G}を加える。]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[:{G}를 당신의 마나풀에 담는다.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[:добавьте {G} в ваше хранилище маны.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[:Adicione {G} à sua reserva de mana.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="zh-CN"><![CDATA[:加{G}到你的法术力池中。]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="zh-HK"><![CDATA[:加{G}到你的魔法力池中。]]></LOCALISED_TEXT>

   </STATIC_ABILITY>

   <TOKEN_REGISTRATION reservation="1" type="RSN_TOKEN_MANA_B" />
   <TOKEN_REGISTRATION reservation="1" type="RSN_TOKEN_MANA_C" />
   <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>
Image

I am not sure about the working of the CONTINUOS BLOCK of RSN_CheckSwitchToFallback function.
NeoAnderson
 
Posts: 914
Joined: 10 Sep 2013, 07:49
Has thanked: 18 times
Been thanked: 139 times

Re: Age of Dodekatheon - NEW UPDATED 10/19/2013 (56 cards)

Postby RiiakShiNal » 19 Oct 2013, 20:12

active_zone="ZONE_BATTLEFIELD" is useless because the default active zone of any ability is the Battlefield.

This block:
Code: Select all
    <TRIGGERED_ABILITY>
      <TRIGGER value="ZONECHANGE_END" simple_qualifier="self" to_zone="ZONE_BATTLEFIELD" />
      <CONTINUOUS_ACTION layer="0">
        RSN_ClearCanProduceMana()
        if (EffectSource():GetZone() == ZONE_BATTLEFIELD) then
          EffectSource():GetCurrentCharacteristics():GrantAbility(17)
        end
      </CONTINUOUS_ACTION>
      <DURATION simple_duration="UntilEOT" />
    </TRIGGERED_ABILITY>
  • RSN_ClearCanProduceMana() is pointless here.
  • You don't need zone check in the CONTINUOUS_ACTION, but you do need an EffectSource() ~= nil check. It's possible for the land to leave play while this is still in effect which would cause script errors (hence the need for a nil check).

This Block:
Code: Select all
      <PLAY_TIME_ACTION>
        RSN_MarkManaAbilityStart()
        RSN_ClearCanProduceMana()
      </PLAY_TIME_ACTION>
  • RSN_ClearCanProduceMana() is pointless here as that is not how it works.

This Block:
Code: Select all
      <RESOLUTION_TIME_ACTION>
        if (EffectSource():GetZone() == ZONE_BATTLEFIELD) then
          local nState = LinkedDC():Int_Get( 0 )
          if (nState == 0) then
            RSN_Produce( "{U}", 1 )
          elseif (nState == 1) then
            RSN_Produce( "{R}", 1 )
          elseif (nState == 2) then
            RSN_Produce( "{W}", 1 )
          elseif (nState == 3) then
            RSN_Produce( "{G}", 1 )
          else
            RSN_Produce( "{B}", 1 )
          end
        else
        end
      </RESOLUTION_TIME_ACTION>
  • Zone check is unnecessary as forced_skip on the ability prevents effects happening between activating the ability and resolution time. So you don't even need a nil check.
  • The else is pointless because you don't do anything in the else case.

If you want ability 16 to be seen in ZONE_EXILE then you need to add an ability that grants ability 16 in ZONE_EXILE because ZONE_ANY doesn't cover ZONE_EXILE.

This block:
Code: Select all
      <CONTINUOUS_ACTION layer="8">
        local nDefaultColour = COLOUR_BLUE
        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>
Will not work properly with your card's states. If you last tapped it for {G} then next turn it gets CHARACTERISTIC_CANT_USE_ACTIVATED_ABILITIES, then even though the state should indicate that it should produce {B}, the fallback will be {G}. You should instead change the block to look like this:
Code: Select all
      <CONTINUOUS_ACTION layer="8">
        local oCard = EffectSource()
        if (RSN_CheckSwitchToFallback( oCard )) then
          local nState = LinkedDC():Int_Get( 0 )
          local oCharacteristics = oCard:GetCurrentCharacteristics()
          if (nState == 0) then
            oCharacteristics:GrantAbility( COLOUR_BLUE )
          elseif (nState == 1)
            oCharacteristics:GrantAbility( COLOUR_RED )
          elseif (nState == 1)
            oCharacteristics:GrantAbility( COLOUR_WHITE )
          elseif (nState == 1)
            oCharacteristics:GrantAbility( COLOUR_GREEN )
          else
            oCharacteristics:GrantAbility( COLOUR_BLACK )
          end
        end
      </CONTINUOUS_ACTION>
You have a TOKEN_REGISTRATION for RSN_TOKEN_MANA_C, but this card doesn't produce colourless mana.
RiiakShiNal
Programmer
 
Posts: 2188
Joined: 16 May 2011, 21:37
Has thanked: 75 times
Been thanked: 497 times

Re: Age of Dodekatheon - NEW UPDATED 10/19/2013 (56 cards)

Postby NeoAnderson » 19 Oct 2013, 21:46

As always i have no words to say thank you, Riiak.
As you can see i am not a programmer, many time i try to combine code and make some modifies, but i didn't see the details of your functions so it is a little bit complicated to understand exactly the parameters and the kind of result each function will return.
I try to understand the main aspect of the code trying to recombine it, so it's obvious i make many mistakes :-)

About the last continuous_block i already thought it needed some changes, you just confirmed it to me.
I am going to try the modifies, just one thing inside the block "nState" will be 0,1,2,3..

Thanks a lot for your time always kind from you.

Hyperborea's Land | Open
Code: Select all
<?xml version="1.0"?>
<CARD_V2 ExportVersion="15">
  <FILENAME text="HYPERBOREA_LAND_7272001" />
  <CARDNAME text="HYPERBOREA_LAND" />
  <TITLE>
    <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Hyperborea's land]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[La terre de l'Hyperborée]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Tierra de Hiperbórea]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Hyperborea das Land]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Terra di Iperborea]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[ボレアの土地]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[Hyperborea의 땅]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[Гипербореи на землю]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[Terra de Hiperbórea]]></LOCALISED_TEXT>
  </TITLE>
  <MULTIVERSEID value="7272001" />
  <ARTID value="7227001" />
  <ARTIST name="Internet - Free resource" />
        <CASTING_COST cost="" />
   <COLOUR value="WUBRG" />
   <TYPE metaname="Land" />
   <EXPANSION value="DPI" />
   <RARITY metaname="R" />




<TRIGGERED_ABILITY linked_ability_group="1">
      <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[At the beginning of your upkeep, the land of

Hyperborea morphs in its next state.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Au début de votre entretien, la terre de l'Hyperborée

se transforme dans son prochain état​​.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Al comienzo de tu mantenimiento, la tierra de

Hiperbórea se transforma en su próximo estado.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Zu Beginn Ihres Unterhalt, das Land der Hyperborea

verwandelt in seiner nächsten Zustand.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[All'inizio del tuo mantenimento, la terra di

Iperborea muta nel suo stato successivo.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[あなたのアップキープ、その次の状態のハイパーボリアモーフの土地の開始時。]]

></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[귀하의 유리, 그 다음 상태 Hyperborea 변경해 땅의 시작

부분에.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[В начале вашего шага, земля Гиперборея превращается в

следующее состояние.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[No início de sua manutenção, a terra de Hiperbórea se

transforma em seu próximo estado.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="zh-CN"><![CDATA[在開始你的保養,在其下的狀態土地Hyperborea搖身一變。]]

></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="zh-HK"><![CDATA[在開始你的保養,在其下的狀態土地Hyperborea搖身一變。]]

></LOCALISED_TEXT>
      <TRIGGER value="BEGINNING_OF_PLAYERS_STEP" simple_qualifier="controller">
    return MTG():GetStep() == STEP_UPKEEP
    </TRIGGER>

  <RESOLUTION_TIME_ACTION>
    local nCurrentState = LinkedDC():Int_Get( 0 )
    if (nCurrentState &lt; 4) then
      -- Change to next state.
      LinkedDC():Int_Inc( 0 )
    else
      -- Loop back around to first state.
      LinkedDC():Int_Set( 0, 0 )
    end
  </RESOLUTION_TIME_ACTION>

</TRIGGERED_ABILITY>


   <TRIGGERED_ABILITY>
      
      <TRIGGER value="ZONECHANGE_END" simple_qualifier="self" to_zone="ZONE_BATTLEFIELD" />
                  <CONTINUOUS_ACTION layer="0">
         if (EffectSource() ~= nil ) then
            EffectSource():GetCurrentCharacteristics():GrantAbility(17) 
         end
      </CONTINUOUS_ACTION>
      <DURATION simple_duration="UntilEOT" />
</TRIGGERED_ABILITY>

   <ACTIVATED_ABILITY resource_id="17">
      <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Pay 1 life: You may play an additional land this

turn.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Payez 1 point de vie: Vous pouvez jouer un terrain

supplémentaire ce tour.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Pagar 1 vida: Puedes jugar una tierra adicional este

turno.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Pay 1 Leben: Sie können ein zusätzliches Land in

dieser Runde zu spielen.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Paga 1 punto vita : Puoi giocare una terra

addizionale in questo turno.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[1点のライフを支払う:あなたは追加の土地をこのターンにプレイしてもよい。]]

></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[1 삶을 지불 : 당신은 추가 땅이 턴을 할 수

있습니다.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[Заплатите 1 жизнь: Вы можете играть дополнительную

землю в этот ход.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[Preste uma vida: Você pode jogar um terreno adicional

neste turno.]]></LOCALISED_TEXT>
           <COST type="Life" amount="1" />    
       <CONTINUOUS_ACTION layer="8">
    local player_characteristics = EffectController():GetCurrentCharacteristics()
    player_characteristics:Int_Increment( PLAYER_INTCHARACTERISTIC_EXTRA_LAND_DROPS )
    </CONTINUOUS_ACTION>
      <DURATION simple_duration="UntilEOT" />
      <AVAILABILITY per_turn_limit="1" />
   </ACTIVATED_ABILITY>


   <ACTIVATED_ABILITY linked_ability_group="1" >
      <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[{T}]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[{T}]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[{T}]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[{T}]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[{T}]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[{T}]]></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}]]></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()
       </PLAY_TIME_ACTION>

      <RESOLUTION_TIME_ACTION>
if (EffectSource() ~= nil ) then
      local nState = LinkedDC():Int_Get( 0 )
      if (nState == 0) then
        RSN_Produce( "{U}", 1 )
      elseif (nState == 1) then
        RSN_Produce( "{R}", 1 )
      elseif (nState == 2) then
        RSN_Produce( "{W}", 1 )
      elseif (nState == 3) then
        RSN_Produce( "{G}", 1 )
      else
        RSN_Produce( "{B}", 1 )
      end

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

   <STATIC_ABILITY resource_id="16" commaspace="1" active_zone="ZONE_ANY">
      <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[:Add 1 mana of actual colour to your mana pool.]]

></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[:Ajoutez {G} à votre réserve.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[:Agrega {G} a tu reserva de maná.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[:Erhöhe deinen Manavorrat um {G}.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[:Aggiungi un mana del colore attuale alla tua riserva

di mana.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[:あなたのマナ・プールに{G}を加える。]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[:{G}를 당신의 마나풀에 담는다.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[:добавьте {G} в ваше хранилище маны.]]

></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[:Adicione {G} à sua reserva de mana.]]

></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="zh-CN"><![CDATA[:加{G}到你的法术力池中。]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="zh-HK"><![CDATA[:加{G}到你的魔法力池中。]]></LOCALISED_TEXT>
   </STATIC_ABILITY>

        <STATIC_ABILITY linked_ability_group="1" active_zone="ZONE_ANY">
      <CONTINUOUS_ACTION layer="0">
         RSN_ClearCanProduceMana()
         if (EffectSource() ~= nil ) then
               local nState = LinkedDC():Int_Get( 0 )
               if (nState == 0) then
                RSN_MarkCanProduceMana( "{U}" )
               EffectSource():GetCurrentCharacteristics():GrantAbility(11)   
               elseif (nState == 1) then
                  RSN_MarkCanProduceMana( "{R}" )
               EffectSource():GetCurrentCharacteristics():GrantAbility(12)
                   elseif (nState == 2) then
               RSN_MarkCanProduceMana( "{W}" )
               EffectSource():GetCurrentCharacteristics():GrantAbility(13)
              elseif (nState == 3) then
               RSN_MarkCanProduceMana( "{G}" )
               EffectSource():GetCurrentCharacteristics():GrantAbility(14)
              else
               EffectSource():GetCurrentCharacteristics():GrantAbility(15)
               RSN_MarkCanProduceMana( "{B}" )
              end
                        else
                        EffectSource():GetCurrentCharacteristics():GrantAbility(16) 
         end
      </CONTINUOUS_ACTION>
            <CONTINUOUS_ACTION layer="8">
        local oCard = EffectSource()
        if (RSN_CheckSwitchToFallback( oCard )) then
          local nState = LinkedDC():Int_Get( 0 )
          local oCharacteristics = oCard:GetCurrentCharacteristics()
          if (nState == 0) then
            oCharacteristics:GrantAbility( COLOUR_BLUE )
          elseif (nState == 1)
            oCharacteristics:GrantAbility( COLOUR_RED )
          elseif (nState == 2)
            oCharacteristics:GrantAbility( COLOUR_WHITE )
          elseif (nState == 3)
            oCharacteristics:GrantAbility( COLOUR_GREEN )
          else
            oCharacteristics:GrantAbility( COLOUR_BLACK )
          end
        end
      </CONTINUOUS_ACTION>
   </STATIC_ABILITY>

    <STATIC_ABILITY linked_ability_group="1" active_zone="ZONE_EXILE">
      <CONTINUOUS_ACTION layer="0">
         EffectSource():GetCurrentCharacteristics():GrantAbility(16) 
      </CONTINUOUS_ACTION>
   </STATIC_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>
   <STATIC_ABILITY resource_id="13" commaspace="1">
           <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[:Add {W} to your mana pool.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[:Ajoutez {W} à votre réserve.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[:Agrega {W} a tu reserva de maná.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[:Erhöhe deinen Manavorrat um {W}.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[:Aggiungi {W} alla tua riserva di mana.]]

></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[:あなたのマナ・プールに{W}を加える。]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[:{W}를 당신의 마나풀에 담는다.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[:добавьте {W} в ваше хранилище маны.]]

></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[:Adicione {W} à sua reserva de mana.]]

></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="zh-CN"><![CDATA[:加{W}到你的法术力池中。]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="zh-HK"><![CDATA[:加{W}到你的魔法力池中。]]></LOCALISED_TEXT>
   </STATIC_ABILITY>
   <STATIC_ABILITY resource_id="11" commaspace="1">
      <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[:Add {U} to your mana pool.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[:Ajoutez {U} à votre réserve.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[:Agrega {U} a tu reserva de maná.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[:Erhöhe deinen Manavorrat um {U}.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[:Aggiungi {U} alla tua riserva di mana.]]

></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[:あなたのマナ・プールに{U}を加える。]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[:{U}를 당신의 마나풀에 담는다.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[:добавьте {U} в ваше хранилище маны.]]

></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[:Adicione {U} à sua reserva de mana.]]

></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="zh-CN"><![CDATA[:加{U}到你的法术力池中。]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="zh-HK"><![CDATA[:加{U}到你的魔法力池中。]]></LOCALISED_TEXT>
   </STATIC_ABILITY>
   <STATIC_ABILITY resource_id="15" commaspace="1">
      <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[:Add {B} to your mana pool.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[:Ajoutez {B} à votre réserve.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[:Agrega {B} a tu reserva de maná.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[:Erhöhe deinen Manavorrat um {B}.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[:Aggiungi {B} alla tua riserva di mana.]]

></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[:あなたのマナ・プールに{B}を加える。]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[:{B}를 당신의 마나풀에 담는다.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[:добавьте {B} в ваше хранилище маны.]]

></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[:Adicione {B} à sua reserva de mana.]]

></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="zh-CN"><![CDATA[:加{B}到你的法术力池中。]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="zh-HK"><![CDATA[:加{B}到你的魔法力池中。]]></LOCALISED_TEXT>
   </STATIC_ABILITY>
   <STATIC_ABILITY resource_id="12" commaspace="1">
      <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[:Add {R} to your mana pool.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[:Ajoutez {R} à votre réserve.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[:Agrega {R} a tu reserva de maná.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[:Erhöhe deinen Manavorrat um {R}.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[:Aggiungi {R} alla tua riserva di mana.]]

></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[:あなたのマナ・プールに{R}を加える。]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[:{R}를 당신의 마나풀에 담는다.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[:добавьте {R} в ваше хранилище маны.]]

></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[:Adicione {R} à sua reserva de mana.]]

></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="zh-CN"><![CDATA[:加{R}到你的法术力池中。]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="zh-HK"><![CDATA[:加{R}到你的魔法力池中。]]></LOCALISED_TEXT>
   </STATIC_ABILITY>
   <STATIC_ABILITY resource_id="14" commaspace="1">
      <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[:Add {G} to your mana pool.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[:Ajoutez {G} à votre réserve.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[:Agrega {G} a tu reserva de maná.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[:Erhöhe deinen Manavorrat um {G}.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[:Aggiungi {G} alla tua riserva di mana.]]

></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[:あなたのマナ・プールに{G}を加える。]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[:{G}를 당신의 마나풀에 담는다.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[:добавьте {G} в ваше хранилище маны.]]

></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[:Adicione {G} à sua reserva de mana.]]

></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="zh-CN"><![CDATA[:加{G}到你的法术力池中。]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="zh-HK"><![CDATA[:加{G}到你的魔法力池中。]]></LOCALISED_TEXT>

   </STATIC_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>
Hope the revised code still not have wrong code usage. It seems to works fine. Thanks again Riiak.
NeoAnderson
 
Posts: 914
Joined: 10 Sep 2013, 07:49
Has thanked: 18 times
Been thanked: 139 times

Re: Age of Dodekatheon - NEW UPDATED 10/19/2013 (56 cards)

Postby RiiakShiNal » 20 Oct 2013, 02:16

NeoAnderson wrote:As always i have no words to say thank you, Riiak.
As you can see i am not a programmer, many time i try to combine code and make some modifies, but i didn't see the details of your functions so it is a little bit complicated to understand exactly the parameters and the kind of result each function will return.
I try to understand the main aspect of the code trying to recombine it, so it's obvious i make many mistakes :-)
Actually, I wrote up quite a bit of documentation on the functions specifically so people wouldn't have to guess at how to use them. I explain all the parameters, returns, and give usage examples of all of my non-internal functions.

Manual Mana Functions
ObjectDC Functions
Characteristic Functions (I don't think this is used by anything at the moment.)
Core Fixes (contains my Annihilator Functions which provide correct Annihilator behavior in an easy to implement manner.)

So there shouldn't need to be any guesswork involved when using my functions. Unlike the official functions which are mostly guesswork based off of examples of their use and modder creativity, ingenuity, and intuition.

NeoAnderson wrote:About the last continuous_block i already thought it needed some changes, you just confirmed it to me.
I am going to try the modifies, just one thing inside the block "nState" will be 0,1,2,3..
Oops, I forgot to change the numbers after I copied/pasted the lines a couple of times, though I did remember to change the colours. Sometimes I miss things when I am evaluating and stepping through code in my head (my mind is not quite as reliable as a compiler/debugger for such things).
RiiakShiNal
Programmer
 
Posts: 2188
Joined: 16 May 2011, 21:37
Has thanked: 75 times
Been thanked: 497 times

Re: Age of Dodekatheon - NEW UPDATED 10/19/2013 (56 cards)

Postby NeoAnderson » 20 Oct 2013, 03:31

RiiakShiNal wrote:
NeoAnderson wrote:About the last continuous_block i already thought it needed some changes, you just confirmed it to me.
I am going to try the modifies, just one thing inside the block "nState" will be 0,1,2,3..
Oops, I forgot to change the numbers after I copied/pasted the lines a couple of times, though I did remember to change the colours. Sometimes I miss things when I am evaluating and stepping through code in my head (my mind is not quite as reliable as a compiler/debugger for such things).
Even the best forget something...sometimes.. :-)

Anyway really thanks for your precious contribution Riiak.

I have made a new land but i have some doubts i am not sure if some functions can be implemented, i made a research on the forum and i found something but it seems noone have resolved.

The Land is : HERAION
The Ability is : exile target permanent You control, until end of turn. Store the casting cost, of the exiled permanent. The multi-colored mana are considered twice. Use this ability only once each turn.
Tap: Add the accumulated mana to your mana pool.

The First issue concerning the multi-colored mana as you can read i wrote, it is considered twice, i think there is not so much i can do to resolve this problem, because Chromacount Function return it twice.
"I thought to make a comparation with CMC and finally ask to the player to reduce the mana until it is equal to the CMC, but this not ensure the player make the right choices, so for the moment i left it twice."

The Second issue concerning about the Mana Ability blocks. I have removed these blocks because is not possible to know which combination of mana we will have.
"About this kind of blocks (<Mana_Ability>) i would know if we can use variables and function as like linkedDC, If structure.. and if <PRODUCES amount=> can be set using a variable string."

HERAION | Open
Code: Select all
<?xml version="1.0"?>
<CARD_V2 ExportVersion="15">
  <FILENAME text="HERAION_7272002" />
  <CARDNAME text="HERAION" />
  <TITLE>
    <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Heraion]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Heraion]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Heraion]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Heraion]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Heraion]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[Heraion]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[Heraion]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[Heraion]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[Heraion]]></LOCALISED_TEXT>
  </TITLE>
  <MULTIVERSEID value="7272002" />
  <ARTID value="7227002" />
  <ARTIST name="Internet - Free resource" />
        <CASTING_COST cost="" />
   <COLOUR value="WUBRG" />
   <SUPERTYPE metaname="Legendary" />
   <TYPE metaname="Land" />
   <EXPANSION value="DPI" />
   <RARITY metaname="M" />

   <ACTIVATED_ABILITY linked_ability_group="1">
      <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Exile target permanent You control, until end of turn. Store the casting cost, of the exiled permanent. The multi-colored mana are considered twice. Use this ability only once each turn.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Exilez le permanent ciblé jusqu'à la fin du tour. Stocker le coût de lancement, de l'exilé permanent. Les mana multicolores sont considérés comme deux fois. Utilisez cette capacité qu'une seule fois par tour.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[El permanente objetivo hasta el final del turno exilio. Guarde el costo de fundición, de la permanente exiliado. El maná de varios colores se consideran dos veces. Usa esta habilidad sólo una vez cada turno.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Exile Ziel permanent bis zum Ende des Zuges. Bewahren Sie die Kosten Gießen, der verbannt permanent. Die bunten Mana werden zweimal berücksichtigt. Benutze diese Fähigkeit nur einmal pro Zug.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Esilia un permanente bersaglio che controlli, fino alla fine del turno. Hai a disposizione il mana del costo di evocazione del permanente esiliato. I mana multicolori vengono considerati due volte. Usa questa abilità una sola volta per turno.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[ターン終了時まで永久追放ターゲット。追放されたパーマネントの鋳造コストを、保管してください。マルチカラーのマナが二回とみなされます。この能力は、各ターンに1回のみ使用します。]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[턴 끝날 때까지 영구 추방 대상입니다.망명 영구의 캐스팅 비용을 저장합니다.멀티 컬러 마나가 두 번 간주됩니다. 이 기능 번만 각 회전을 사용합니다.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[Изгнание целевой перманент до конца хода. Храните каста, в изгнании постоянным.Разноцветные маны считаются дважды. Используйте эту способность только один раз за ход.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[Alvo exílio permanente até o final do turno. Guarde o custo casting, da permanente exilado. Os mana multi-coloridas são considerados duas vezes. Use esta habilidade apenas uma vez a cada turno.]]></LOCALISED_TEXT>
      <COST type="Mana" mana_cost="{0}" />
          <TARGET tag="CARD_QUERY_CHOOSE_NONLAND_PERMANENT_TO_EXILE" definition="0" compartment="0" count="1" />
      <TARGET_DEFINITION id="0">
         local filter = ClearFilter()
         filter:Add( FE_CONTROLLER, OP_IS, EffectController() )
         filter:Add( FE_TYPE, OP_NOT, CARD_TYPE_LAND )
      </TARGET_DEFINITION>
     <RESOLUTION_TIME_ACTION>
      local target = EffectDC():Get_Targets(0):Get_CardPtr(0)
      if target ~= nil then
        local filter = ClearFilter()
        filter:Add( FE_CARD_INSTANCE, OP_IS, target )
        local WhiteTotal = filter:ChromaCount(COLOUR_WHITE)
   LinkedDC():Set_Int(1, WhiteTotal)
        local BlueTotal = filter:ChromaCount( COLOUR_BLUE )
        LinkedDC():Set_Int(2, BlueTotal)
        local RedTotal = filter:ChromaCount( COLOUR_RED )
        LinkedDC():Set_Int(3, RedTotal)
        local GreenTotal = filter:ChromaCount( COLOUR_GREEN )
        LinkedDC():Set_Int(4, GreenTotal)
        local BlackTotal = filter:ChromaCount( COLOUR_BLACK )
        LinkedDC():Set_Int(5, BlackTotal)
        local ColourlessTotal = filter:ChromaCount( COLOUR_COLOURLESS )
        LinkedDC():Set_Int(6, ColourlessTotal)
     end
    </RESOLUTION_TIME_ACTION>
     
     <RESOLUTION_TIME_ACTION>
      local target = EffectDC():Get_Targets(0):Get_CardPtr(0)
      if target ~= nil then
       LinkedDC():Set_CardPtr(0, target)
       LinkedDC():Protect_CardPtr(0)
       target:Exile()
      end
    </RESOLUTION_TIME_ACTION>
    <RESOLUTION_TIME_ACTION>
      local target = LinkedDC():Get_CardPtr(0)
      local source = EffectSource()
      if target ~= nil and source ~= nil then
       target:NailOnto(source)
      end
    </RESOLUTION_TIME_ACTION>
      <AI_SIMPLIFIED_TARGETING compartment="0" hint="HINT_ENEMY_ONLY" />
      <AUTO_SKIP>
      local target = EffectDC():Get_Targets(0):Get_CardPtr(0)
      if target ~= nil then
       return false
      else
       return true
      end
    </AUTO_SKIP>
   <AVAILABILITY per_turn_limit="1" />
  <AVAILABILITY>
  return    Object():IsTapped() == false
   </AVAILABILITY>
   
   </ACTIVATED_ABILITY>

<TRIGGERED_ABILITY linked_ability_group="1">
      <TRIGGER value="BEGINNING_OF_STEP">
      return ( MTG():GetStep() == STEP_END_OF_TURN )
    </TRIGGER>
      <RESOLUTION_TIME_ACTION>
      local target = LinkedDC():Get_CardPtr(0)
      if target ~= nil then
       target:PutOntoBattlefield()
      end
    </RESOLUTION_TIME_ACTION>
   <RESOLUTION_TIME_ACTION>
   LinkedDC():Set_Int(1, 0)
        LinkedDC():Set_Int(2, 0)
        LinkedDC():Set_Int(3, 0)
        LinkedDC():Set_Int(4, 0)
        LinkedDC():Set_Int(5, 0)
        LinkedDC():Set_Int(6, 0)
   </RESOLUTION_TIME_ACTION>   
 </TRIGGERED_ABILITY>

   <ACTIVATED_ABILITY linked_ability_group="1" >
      <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[{T}: Add the accumulated mana to your mana pool.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[{T}: Ajouter le mana accumulé à votre réserve de mana.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[{T}: Agregue el maná acumulada a tu reserva de maná.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[{T}: Fügen Sie den angesammelten Mana Mana Pool.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[{T}: Aggiungi il mana accumulato al tuo mana pool.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[{T}: あなたのマナ·プールに蓄積されたマナを追加します。]]></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 o mana acumulada à 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()
      </PLAY_TIME_ACTION>
   
    <RESOLUTION_TIME_ACTION>
        local WhiteTotal = LinkedDC():Get_Int(1)
        local BlueTotal = LinkedDC():Get_Int(2)
        local RedTotal = LinkedDC():Get_Int(3)
        local GreenTotal = LinkedDC():Get_Int(4)
        local BlackTotal = LinkedDC():Get_Int(5)
        local ColourlessTotal = LinkedDC():Get_Int(6)
     if (EffectSource() ~= nil) then
      local ProducedString =""
        local  WhiteString =""
        local  BlueString =""
        local  RedString =""
        local  GreenString =""
        local  BlackString =""
        local  ColourLessString =""
        for i = 1,(WhiteTotal) do
             WhiteString = WhiteString.."{W}"
          end
         for i = 1,(BlueTotal) do
           BlueString = BlueString.."{U}"
        end
        for i = 1,(RedTotal) do
      RedString = RedString.."{R}"
        end
   for i = 1,(GreenTotal) do
      GreenString = GreenString.."{G}"
        end
   for i = 1,(BlackTotal) do
      BlackString = BlackString.."{B}"
   end
        for i = 1,(ColourlessTotal) do
      ColourLessString = ColourLessString.."{1}"
        end
        ProducedString = WhiteString..BlueString..RedString..GreenString..BlackString..ColourLessString
        RSN_Produce( ProducedString, 1 )
   LinkedDC():Set_Int(1, 0)
        LinkedDC():Set_Int(2, 0)
        LinkedDC():Set_Int(3, 0)
        LinkedDC():Set_Int(4, 0)
        LinkedDC():Set_Int(5, 0)
        LinkedDC():Set_Int(6, 0)
    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>

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

        <STATIC_ABILITY linked_ability_group="1" active_zone="ZONE_ANY">
      <CONTINUOUS_ACTION layer="0">
         RSN_ClearCanProduceMana()
         if (EffectSource() ~= nil ) then
                          local WhiteTotal = LinkedDC():Get_Int(1)
             local BlueTotal = LinkedDC():Get_Int(2)
             local RedTotal = LinkedDC():Get_Int(3)
                  local GreenTotal = LinkedDC():Get_Int(4)
                  local BlackTotal = LinkedDC():Get_Int(5)
                  local ColourlessTotal = LinkedDC():Get_Int(6)
                             local ProducedString =""
                             local  WhiteString =""
                             local  BlueString =""
                             local  RedString =""
                             local  GreenString =""
                             local  BlackString =""
                             local  ColourLessString =""
                             for i = 1,(WhiteTotal) do
                        WhiteString = WhiteString.."{W}"
                     end
                    for i = 1,(BlueTotal) do
                         BlueString = BlueString.."{U}"
                   end
                   for i = 1,(RedTotal) do
                RedString = RedString.."{R}"
                   end
              for i = 1,(GreenTotal) do
                GreenString = GreenString.."{G}"
                   end
              for i = 1,(BlackTotal) do
                     BlackString = BlackString.."{B}"
              end
                   for i = 1,(ColourlessTotal) do
                ColourLessString = ColourLessString.."{1}"
                   end
                             ProducedString = WhiteString..BlueString..RedString..GreenString..BlackString..ColourLessString
               RSN_MarkCanProduceMana(ProducedString)
                        end
      </CONTINUOUS_ACTION>
   </STATIC_ABILITY>
   <TOKEN_REGISTRATION reservation="1" type="RSN_TOKEN_MANA_B" />
   <TOKEN_REGISTRATION reservation="1" type="RSN_TOKEN_MANA_C" />
   <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>
Image
NeoAnderson
 
Posts: 914
Joined: 10 Sep 2013, 07:49
Has thanked: 18 times
Been thanked: 139 times

Re: Age of Dodekatheon - NEW UPDATED 10/19/2013 (56 cards)

Postby RiiakShiNal » 20 Oct 2013, 14:37

You wrote in the card "Target Permanent", but then only allow Non-Land Permanents, also this definition will allow for the exiling of invisible tokens which should not be allowed (though actual players won't be able to target them, and the AI will be unlikely to target them). The correct way to do it would be to have the Not Land condition (as you have it) "And" an "Or" sub-filter with the other 4 permanent card types (if you actually intended for it to only target non-land permanents).

You should also indicate in the card text that the stored casting cost is also only "Until End of Turn" if that was the intention. "Add the accumulated mana to your mana pool." indicates that the more targets you exile the greater the mana the land will be able to produce (even across turns), but this is not the case with how it is coded.

Additionally, you have a problem with bringing back the exiled card as if the land leaves play before the card is returned the card remains exiled even though the card/ability is not written that way. You will need to make use of a delayed trigger to ensure the exiled card comes back even if the land leaves play before the end of turn (if that was your intent, if not then you need to update the text on your card to indicate that).

It should also be noted, that you are clearing the stored mana when it is tapped as well which would indicate that you can't then untap the land and tap it again to produce the stored amount twice in a single turn (which you also have not indicated on the card). This will probably confuse players as they would normally think they could exile a card with the first ability (something like a Blightsteel Colossus) tap and get {12}, then untap it using some effect that allows the untapping of permanents then tap it again for another {12}.

Since this is not a multi-state card and the types of mana that can be produced are based on what is exiled (which could be considered a cost), then theoretically it can produce all types at any time so the RSN_MarkCanProduceMana() call should just list all types like this:
Code: Select all
RSN_MarkCanProduceMana("{1}{W}{U}{B}{R}{G}")
For further evidence that it should work like this check out the ruling for Reflecting Pool:
Reflecting Pool checks the effects of all mana-producing abilities of lands you control, but it doesn't check their costs. For example, Vivid Crag says "{T}, Remove a charge counter from Vivid Crag: Add one mana of any color to your mana pool." If you control Vivid Crag and Reflecting Pool, you can tap Reflecting Pool for any color of mana. It doesn't matter whether Vivid Crag has a charge counter on it, and it doesn't matter whether it's untapped.
Ultimately, if I were you I would change the card to read:
{T}, Exile a nonland permanent you control until end of turn: Add the casting cost of the exiled permanent to your mana pool with hybrid mana symbols being counted once for each colour.
This way you could get away from needing LinkedDC(), you could easily write the ability to only be able to be used once per turn (per_turn_limit) or multiple times per turn if the player can untap it (use CreateDelayedTrigger() for the ability to bring back the exiled card). This also eliminates the "Target" restriction allowing you to exile cards with Shroud although you could add that restriction back in if desired.
RiiakShiNal
Programmer
 
Posts: 2188
Joined: 16 May 2011, 21:37
Has thanked: 75 times
Been thanked: 497 times

Re: Age of Dodekatheon - NEW UPDATED 10/19/2013 (56 cards)

Postby NeoAnderson » 20 Oct 2013, 18:14

Thanks master, your suggestions always let me think and improve my work.
You're right about most point of your opinions, i would just say, i have not a defined idea about all the interactions when i was creating the card.
I supposed to keep the 2 abilities separated to give more interaction with the game phases to the player, so he could store the mana in a different phase and decide to add it to the mana pool later.

Anyway many times i made mistakes for my few knowledge of programming and sometimes because i still have to decide how the card should work.

1. I still have a question about RSN_MarkCanProduceMana is it just qualitative or also quantitative?
I mean it defines just which kind of mana can produce or also defines how many mana of each kind it can produce??
Because i checked the code inside other cards, and i found some cards where it is implemented specifying also the amount of each mana it can produce, so when i have wrote it I made that code to build the exact string of mana the card can produce.

2. Until now i am not sure to have exactly understand the behaviour of DOTP code, because sometimes, the same istructions seems to work and sometimes not, so i am still a little bit confused about the usage of some functions, expecially when i have to use global variables from an ability to another, or from a block to another.

3. I followed your suggestion and i made a simplified version of Heraion, more linear just one Tap ability, i also made the Trigger for the zone change (graveyard and exile) with 2 different effect. I still have to decide about the untap trigger.
If you want to take a look you can find the revised code here.

Hearion | Open
Code: Select all
<?xml version="1.0"?>
<CARD_V2 ExportVersion="15">
  <FILENAME text="HERAION_7272002" />
  <CARDNAME text="HERAION" />
  <TITLE>
    <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Heraion]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Heraion]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Heraion]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Heraion]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Heraion]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[Heraion]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[Heraion]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[Heraion]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[Heraion]]></LOCALISED_TEXT>
  </TITLE>
  <MULTIVERSEID value="7272002" />
  <ARTID value="7227002" />
  <ARTIST name="Internet - Free resource" />
        <CASTING_COST cost="" />
   <COLOUR value="WUBRG" />
   <SUPERTYPE metaname="Legendary" />
   <TYPE metaname="Land" />
   <EXPANSION value="DPI" />
   <RARITY metaname="M" />

        <STATIC_ABILITY>
      <CONTINUOUS_ACTION layer="0">
         RSN_MarkCanProduceMana("{1}{W}{U}{B}{R}{G}")
                </CONTINUOUS_ACTION>
   </STATIC_ABILITY>


   <ACTIVATED_ABILITY linked_ability_group="1">
      <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[{T}: Exile a nonland permanent you control until end of turn: Add the casting cost of the exiled permanent to your mana pool with hybrid mana symbols being counted once for

each colour. If Heraion is put into a graveyard while it holds an exiled permanent, add this permanent to your hand. If Heraion is exiled while it holds an exiled permanent, put this permanent to the top of your library.]]

></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[{T}: Exile un permanent non-terrain que vous contrôlez jusqu'à la fin du tour: Ajouter le coût de lancement de la mission permanente exilée à votre réserve de mana avec des

symboles de mana hybrides sont comptés qu'une fois pour chaque couleur. Si Heraion est mis dans un cimetière alors qu'il est titulaire d'un exil permanent, ajoutez ce permanent à votre main. Si Heraion est exilé alors qu'il est

titulaire d'un exil permanent, mettre ce permanent au dessus de votre bibliothèque.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[{T}: Remueve un permanente que controles que no sea tierra hasta el final del turno: Agregue el coste de lanzamiento de la permanente exiliado a tu reserva de maná con

símbolos de maná híbridos que se cuentan una vez para cada color. Si Heraion se vaya a un cementerio mientras se mantiene un permanente exilio, añada esta permanente a su lado. Si Heraion es exiliado mientras mantiene un permanente

exilio, ponga este permanente a la parte superior de tu biblioteca.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[{T}: Exile ein kein Land permanent steuern Sie bis zum Ende des Zuges: Fügen Sie die Kosten für das Gießen verbannt permanent zu deinen Manavorrat mit Hybrid Manasymbole

wird einmal für jede Farbe gezählt. Wenn Heraion auf einen Friedhof gelegt wird, während es einen permanenten Exil hält, fügen Sie diese permanent auf die Hand. Wenn Heraion verbannt wird, während es ein Exil permanent hält, setzen Sie

diese permanent an die Spitze Ihrer Bibliothek.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[{T}: Esilia un permanente non terra che controlli fino alla fine del turno: Aggiungi il costo di lancio del permanente esiliato alla tua riserva di mana con simboli di mana

ibrido viene contato una volta per ogni colore. Se Heraion viene messa in un cimitero, mentre detiene un permanente esiliato, aggiungi questo permanente alla tua mano. Se Heraion viene esiliato, mentre detiene un permanente esiliato,

metti questo permanente alla cima del tuo grimorio.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[{T}:追放土地でないあなたは、ターン終了時までコントロールするパーマネント:混成マナシンボルが各色ごとに一回カウントされてあなたのマナ·プールに追放永久の鋳造コストを追加します。それは永久追放を保持しながら、ヘラ神殿がいずれかの墓地に置かれた場合、あなたの手札にこのパーマネントを追加します。それは永久追放を保持しながら、ヘラ神

殿が追放されている場合、あなたのライブラリーの一番上に、このパーマネントを置く。]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[{T} : 망명 nonland 당신은 턴 종료시까지 제어 영구 : 하이브리드 마나 기호가 각 ​​색상에 대해 한 번 계산되는과 마나 풀에 망명 영구적으로 캐스팅 비용을 추가합니다. 이 추방 영구적를 보유하는 동안 헤라 이온이 묘지로 보내 졌을 때, 당신의 손이 영구적

를 추가합니다. 이 추방 영구적를 보유하는 동안 헤라 이온이 추방되는 경우, 라이브러리의 상단이 영구적으로 넣어.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[{T}: Exile являющийся землей перманент под вашим контролем нет до конца хода: Добавить литья стоимость сослан постоянной в ваше хранилище маны с гибридной символы маны

подсчитываются один раз для каждого цвета. Если Heraion является попадает на кладбище, пока он держит постоянную сослан, добавьте эту постоянную в вашу руку. Если Heraion находится в изгнании, пока он держит сослан постоянными,

поместите эту постоянную в начало вашей библиотеке.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[{T}: Exile um que não seja terreno permanente que você controla até o final do turno: Adicionar o custo do vazamento permanente exilado à sua reserva de mana com símbolos de

mana híbrido a ser contado uma vez para cada cor. Se Heraion é colocado em um cemitério ao mesmo tempo que mantém um permanente exílio, adicione esta permanente para sua mão. Se Heraion é exilado enquanto ele mantém um permanente

exílio, colocou esta permanente para o topo da sua biblioteca.]]></LOCALISED_TEXT>
      <COST type="TapSelf" />
      <FILTER filter_id="0">
         local filter = ClearFilter()
         filter:Add( FE_CONTROLLER, OP_IS, EffectController() )
        local subfilter = filter:AddSubFilter_Or()
       subfilter:Add( FE_TYPE, OP_IS, CARD_TYPE_ARTIFACT )
       subfilter:Add( FE_TYPE, OP_IS, CARD_TYPE_CREATURE )
       subfilter:Add( FE_TYPE, OP_IS, CARD_TYPE_ENCHANTMENT )
       subfilter:Add( FE_TYPE, OP_NOT, CARD_TYPE_LAND )
       subfilter:Add( FE_TYPE, OP_IS, CARD_TYPE_PLANESWALKER )
      </FILTER>
      <PLAY_TIME_ACTION>
      RSN_MarkManaAbilityStart()
      </PLAY_TIME_ACTION>
     <RESOLUTION_TIME_ACTION filter_id="0">
      EffectController():ChooseItem( "CARD_QUERY_CHOOSE_NONLAND_PERMANENT_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
        local filter = ClearFilter()
        filter:Add( FE_CARD_INSTANCE, OP_IS, target )
        local WhiteTotal = filter:ChromaCount(COLOUR_WHITE)
        local BlueTotal = filter:ChromaCount( COLOUR_BLUE )
        local RedTotal = filter:ChromaCount( COLOUR_RED )
        local GreenTotal = filter:ChromaCount( COLOUR_GREEN )
        local BlackTotal = filter:ChromaCount( COLOUR_BLACK )
        local ColourlessTotal = filter:ChromaCount( COLOUR_COLOURLESS )
         local ProducedString =""
        local  WhiteString =""
        local  BlueString =""
        local  RedString =""
        local  GreenString =""
        local  BlackString =""
        local  ColourLessString =""
        for i = 1,(WhiteTotal) do
             WhiteString = WhiteString.."{W}"
          end
         for i = 1,(BlueTotal) do
           BlueString = BlueString.."{U}"
        end
        for i = 1,(RedTotal) do
      RedString = RedString.."{R}"
        end
   for i = 1,(GreenTotal) do
      GreenString = GreenString.."{G}"
        end
   for i = 1,(BlackTotal) do
      BlackString = BlackString.."{B}"
   end
        for i = 1,(ColourlessTotal) do
      ColourLessString = ColourLessString.."{1}"
        end
        ProducedString = WhiteString..BlueString..RedString..GreenString..BlackString..ColourLessString
        RSN_Produce( ProducedString, 1 )
     end
    </RESOLUTION_TIME_ACTION>
    <RESOLUTION_TIME_ACTION>
      local target = EffectDC():Get_Targets(0):Get_CardPtr(0)
      if target ~= nil then
       LinkedDC():Set_CardPtr(0, target)
       LinkedDC():Protect_CardPtr(0)
       target:Exile()
      end
    </RESOLUTION_TIME_ACTION>
    <RESOLUTION_TIME_ACTION>
      local target = LinkedDC():Get_CardPtr(0)
      local source = EffectSource()
      if target ~= nil and source ~= nil then
       target:NailOnto(source)
      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" />
      <AUTO_SKIP>
      local target = EffectDC():Get_Targets(0):Get_CardPtr(0)
      if target ~= nil then
       return false
      else
       return true
      end
    </AUTO_SKIP>
   </ACTIVATED_ABILITY>

<TRIGGERED_ABILITY linked_ability_group="1">
      <TRIGGER value="BEGINNING_OF_STEP">
      return ( MTG():GetStep() == STEP_END_OF_TURN )
    </TRIGGER>
      <RESOLUTION_TIME_ACTION>
      local target = LinkedDC():Get_CardPtr(0)
      if target ~= nil then
       target:PutOntoBattlefield()
      end
    </RESOLUTION_TIME_ACTION>

 </TRIGGERED_ABILITY>

<TRIGGERED_ABILITY linked_ability_group="1">
<TRIGGER value="ZONECHANGE_BEGIN" simple_qualifier="self" to_zone="ZONE_GRAVEYARD" from_zone="ZONE_BATTLEFIELD" />
  <RESOLUTION_TIME_ACTION>
      local target = LinkedDC():Get_CardPtr(0)
      if target ~= nil then
       target:PutInHand()
      end
    </RESOLUTION_TIME_ACTION>
  </TRIGGERED_ABILITY>

<TRIGGERED_ABILITY linked_ability_group="1">
<TRIGGER value="ZONECHANGE_BEGIN" simple_qualifier="self" to_zone="ZONE_EXILE" from_zone="ZONE_BATTLEFIELD" />
  <RESOLUTION_TIME_ACTION>
      local target = LinkedDC():Get_CardPtr(0)
      if target ~= nil then
       target:PutOnTopOfLibrary()
      end
    </RESOLUTION_TIME_ACTION>
  </TRIGGERED_ABILITY>

<TRIGGERED_ABILITY forced_skip="1" replacement_effect="1">
<TRIGGER value="BEGINNING_OF_STEP" pre_trigger="1" />
 <RESOLUTION_TIME_ACTION>
   RSN_ClearProducedMana()
 </RESOLUTION_TIME_ACTION>
   </TRIGGERED_ABILITY>

   <TOKEN_REGISTRATION reservation="1" type="RSN_TOKEN_MANA_B" />
   <TOKEN_REGISTRATION reservation="1" type="RSN_TOKEN_MANA_C" />
   <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>
Now it should be more compliant to your suggestion!

Thanks as always my friend.
NeoAnderson
 
Posts: 914
Joined: 10 Sep 2013, 07:49
Has thanked: 18 times
Been thanked: 139 times

Re: Age of Dodekatheon - NEW UPDATED 10/19/2013 (56 cards)

Postby RiiakShiNal » 20 Oct 2013, 20:06

NeoAnderson wrote:Thanks master, your suggestions always let me think and improve my work.
You're right about most point of your opinions, i would just say, i have not a defined idea about all the interactions when i was creating the card.
I supposed to keep the 2 abilities separated to give more interaction with the game phases to the player, so he could store the mana in a different phase and decide to add it to the mana pool later.
If you want to design your card such that the player can store in one step/phase and then produce mana in another you certainly can. You can make it any way you want, but you need to make sure that you explain to the user the rules behind its use otherwise players will say the card is bugged.

NeoAnderson wrote:1. I still have a question about RSN_MarkCanProduceMana is it just qualitative or also quantitative?
I mean it defines just which kind of mana can produce or also defines how many mana of each kind it can produce??
Because i checked the code inside other cards, and i found some cards where it is implemented specifying also the amount of each mana it can produce, so when i have wrote it I made that code to build the exact string of mana the card can produce.
I don't know of any cards that specify the amount because the function itself only stores colours, not amounts. It is used so that cards like Reflecting Pool, Exotic Orchard, and Benthic Explorers can be coded (otherwise it's not possible to know which colours a card can produce). This function essentially allows for advertising of which colours it can produce.

NeoAnderson wrote:2. Until now i am not sure to have exactly understand the behaviour of DOTP code, because sometimes, the same istructions seems to work and sometimes not, so i am still a little bit confused about the usage of some functions, expecially when i have to use global variables from an ability to another, or from a block to another.
Is this a question about Lua code or about the functions exposed by DotP? As for variables, variable scope is limited to the scope where the variable is defined (this is pretty standard across many programming languages). Variables are defined through use of the local keyword.

As for the differences between data chests, they are linked to one object or another and the object they are linked to determines when and where they can be used.
  • EffectDC() - This is only usable within a single ability. If an ability is activated twice then each instance of the ability will have a separate EffectDC().
  • LinkedDC() - This is only usable in abilities that have the linked_ability_group attribute set, the contents of this data chest are shared between all abilities that have the attribute on a single card. As far as I know this data chest gets reset upon changing zones.
  • player:PlayerDataChest() - This is linked to a specific player and it's contents are available for as long as that player is in the game.
  • MTG():DuelDataChest() - This is linked to the current match being played and is available throughout the entire match. This is as close to global for data chest storage as you can get.
  • RSN_ObjectDC() - This is my approximation of the ObjectDC() in DotP 2013 which links a data chest to a card allowing for persistent storage that can be accessed both by the card itself and by other cards to get otherwise unobtainable information (information resets on zone change). For example which colours of mana a card can produce. This type of data chest uses the DuelDataChest() for storage and requires my ObjectDC Functions mod.

NeoAnderson wrote:3. I followed your suggestion and i made a simplified version of Heraion, more linear just one Tap ability, i also made the Trigger for the zone change (graveyard and exile) with 2 different effect. I still have to decide about the untap trigger.
If you want to take a look you can find the revised code here.

Hearion | Open
Code: Select all
<?xml version="1.0"?>
<CARD_V2 ExportVersion="15">
  <FILENAME text="HERAION_7272002" />
  <CARDNAME text="HERAION" />
  <TITLE>
    <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Heraion]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Heraion]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Heraion]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Heraion]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Heraion]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[Heraion]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[Heraion]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[Heraion]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[Heraion]]></LOCALISED_TEXT>
  </TITLE>
  <MULTIVERSEID value="7272002" />
  <ARTID value="7227002" />
  <ARTIST name="Internet - Free resource" />
        <CASTING_COST cost="" />
   <COLOUR value="WUBRG" />
   <SUPERTYPE metaname="Legendary" />
   <TYPE metaname="Land" />
   <EXPANSION value="DPI" />
   <RARITY metaname="M" />

        <STATIC_ABILITY>
      <CONTINUOUS_ACTION layer="0">
         RSN_MarkCanProduceMana("{1}{W}{U}{B}{R}{G}")
                </CONTINUOUS_ACTION>
   </STATIC_ABILITY>


   <ACTIVATED_ABILITY linked_ability_group="1">
      <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[{T}: Exile a nonland permanent you control until end of turn: Add the casting cost of the exiled permanent to your mana pool with hybrid mana symbols being counted once for

each colour. If Heraion is put into a graveyard while it holds an exiled permanent, add this permanent to your hand. If Heraion is exiled while it holds an exiled permanent, put this permanent to the top of your library.]]

></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[{T}: Exile un permanent non-terrain que vous contrôlez jusqu'à la fin du tour: Ajouter le coût de lancement de la mission permanente exilée à votre réserve de mana avec des

symboles de mana hybrides sont comptés qu'une fois pour chaque couleur. Si Heraion est mis dans un cimetière alors qu'il est titulaire d'un exil permanent, ajoutez ce permanent à votre main. Si Heraion est exilé alors qu'il est

titulaire d'un exil permanent, mettre ce permanent au dessus de votre bibliothèque.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[{T}: Remueve un permanente que controles que no sea tierra hasta el final del turno: Agregue el coste de lanzamiento de la permanente exiliado a tu reserva de maná con

símbolos de maná híbridos que se cuentan una vez para cada color. Si Heraion se vaya a un cementerio mientras se mantiene un permanente exilio, añada esta permanente a su lado. Si Heraion es exiliado mientras mantiene un permanente

exilio, ponga este permanente a la parte superior de tu biblioteca.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[{T}: Exile ein kein Land permanent steuern Sie bis zum Ende des Zuges: Fügen Sie die Kosten für das Gießen verbannt permanent zu deinen Manavorrat mit Hybrid Manasymbole

wird einmal für jede Farbe gezählt. Wenn Heraion auf einen Friedhof gelegt wird, während es einen permanenten Exil hält, fügen Sie diese permanent auf die Hand. Wenn Heraion verbannt wird, während es ein Exil permanent hält, setzen Sie

diese permanent an die Spitze Ihrer Bibliothek.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[{T}: Esilia un permanente non terra che controlli fino alla fine del turno: Aggiungi il costo di lancio del permanente esiliato alla tua riserva di mana con simboli di mana

ibrido viene contato una volta per ogni colore. Se Heraion viene messa in un cimitero, mentre detiene un permanente esiliato, aggiungi questo permanente alla tua mano. Se Heraion viene esiliato, mentre detiene un permanente esiliato,

metti questo permanente alla cima del tuo grimorio.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[{T}:追放土地でないあなたは、ターン終了時までコントロールするパーマネント:混成マナシンボルが各色ごとに一回カウントされてあなたのマナ·プールに追放永久の鋳造コストを追加します。それは永久追放を保持しながら、ヘラ神殿がいずれかの墓地に置かれた場合、あなたの手札にこのパーマネントを追加します。それは永久追放を保持しながら、ヘラ神

殿が追放されている場合、あなたのライブラリーの一番上に、このパーマネントを置く。]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[{T} : 망명 nonland 당신은 턴 종료시까지 제어 영구 : 하이브리드 마나 기호가 각 ​​색상에 대해 한 번 계산되는과 마나 풀에 망명 영구적으로 캐스팅 비용을 추가합니다. 이 추방 영구적를 보유하는 동안 헤라 이온이 묘지로 보내 졌을 때, 당신의 손이 영구적

를 추가합니다. 이 추방 영구적를 보유하는 동안 헤라 이온이 추방되는 경우, 라이브러리의 상단이 영구적으로 넣어.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[{T}: Exile являющийся землей перманент под вашим контролем нет до конца хода: Добавить литья стоимость сослан постоянной в ваше хранилище маны с гибридной символы маны

подсчитываются один раз для каждого цвета. Если Heraion является попадает на кладбище, пока он держит постоянную сослан, добавьте эту постоянную в вашу руку. Если Heraion находится в изгнании, пока он держит сослан постоянными,

поместите эту постоянную в начало вашей библиотеке.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[{T}: Exile um que não seja terreno permanente que você controla até o final do turno: Adicionar o custo do vazamento permanente exilado à sua reserva de mana com símbolos de

mana híbrido a ser contado uma vez para cada cor. Se Heraion é colocado em um cemitério ao mesmo tempo que mantém um permanente exílio, adicione esta permanente para sua mão. Se Heraion é exilado enquanto ele mantém um permanente

exílio, colocou esta permanente para o topo da sua biblioteca.]]></LOCALISED_TEXT>
      <COST type="TapSelf" />
      <FILTER filter_id="0">
         local filter = ClearFilter()
         filter:Add( FE_CONTROLLER, OP_IS, EffectController() )
        local subfilter = filter:AddSubFilter_Or()
       subfilter:Add( FE_TYPE, OP_IS, CARD_TYPE_ARTIFACT )
       subfilter:Add( FE_TYPE, OP_IS, CARD_TYPE_CREATURE )
       subfilter:Add( FE_TYPE, OP_IS, CARD_TYPE_ENCHANTMENT )
       subfilter:Add( FE_TYPE, OP_NOT, CARD_TYPE_LAND )
       subfilter:Add( FE_TYPE, OP_IS, CARD_TYPE_PLANESWALKER )
      </FILTER>
      <PLAY_TIME_ACTION>
      RSN_MarkManaAbilityStart()
      </PLAY_TIME_ACTION>
     <RESOLUTION_TIME_ACTION filter_id="0">
      EffectController():ChooseItem( "CARD_QUERY_CHOOSE_NONLAND_PERMANENT_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
        local filter = ClearFilter()
        filter:Add( FE_CARD_INSTANCE, OP_IS, target )
        local WhiteTotal = filter:ChromaCount(COLOUR_WHITE)
        local BlueTotal = filter:ChromaCount( COLOUR_BLUE )
        local RedTotal = filter:ChromaCount( COLOUR_RED )
        local GreenTotal = filter:ChromaCount( COLOUR_GREEN )
        local BlackTotal = filter:ChromaCount( COLOUR_BLACK )
        local ColourlessTotal = filter:ChromaCount( COLOUR_COLOURLESS )
         local ProducedString =""
        local  WhiteString =""
        local  BlueString =""
        local  RedString =""
        local  GreenString =""
        local  BlackString =""
        local  ColourLessString =""
        for i = 1,(WhiteTotal) do
             WhiteString = WhiteString.."{W}"
          end
         for i = 1,(BlueTotal) do
           BlueString = BlueString.."{U}"
        end
        for i = 1,(RedTotal) do
      RedString = RedString.."{R}"
        end
   for i = 1,(GreenTotal) do
      GreenString = GreenString.."{G}"
        end
   for i = 1,(BlackTotal) do
      BlackString = BlackString.."{B}"
   end
        for i = 1,(ColourlessTotal) do
      ColourLessString = ColourLessString.."{1}"
        end
        ProducedString = WhiteString..BlueString..RedString..GreenString..BlackString..ColourLessString
        RSN_Produce( ProducedString, 1 )
     end
    </RESOLUTION_TIME_ACTION>
    <RESOLUTION_TIME_ACTION>
      local target = EffectDC():Get_Targets(0):Get_CardPtr(0)
      if target ~= nil then
       LinkedDC():Set_CardPtr(0, target)
       LinkedDC():Protect_CardPtr(0)
       target:Exile()
      end
    </RESOLUTION_TIME_ACTION>
    <RESOLUTION_TIME_ACTION>
      local target = LinkedDC():Get_CardPtr(0)
      local source = EffectSource()
      if target ~= nil and source ~= nil then
       target:NailOnto(source)
      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" />
      <AUTO_SKIP>
      local target = EffectDC():Get_Targets(0):Get_CardPtr(0)
      if target ~= nil then
       return false
      else
       return true
      end
    </AUTO_SKIP>
   </ACTIVATED_ABILITY>

<TRIGGERED_ABILITY linked_ability_group="1">
      <TRIGGER value="BEGINNING_OF_STEP">
      return ( MTG():GetStep() == STEP_END_OF_TURN )
    </TRIGGER>
      <RESOLUTION_TIME_ACTION>
      local target = LinkedDC():Get_CardPtr(0)
      if target ~= nil then
       target:PutOntoBattlefield()
      end
    </RESOLUTION_TIME_ACTION>

 </TRIGGERED_ABILITY>

<TRIGGERED_ABILITY linked_ability_group="1">
<TRIGGER value="ZONECHANGE_BEGIN" simple_qualifier="self" to_zone="ZONE_GRAVEYARD" from_zone="ZONE_BATTLEFIELD" />
  <RESOLUTION_TIME_ACTION>
      local target = LinkedDC():Get_CardPtr(0)
      if target ~= nil then
       target:PutInHand()
      end
    </RESOLUTION_TIME_ACTION>
  </TRIGGERED_ABILITY>

<TRIGGERED_ABILITY linked_ability_group="1">
<TRIGGER value="ZONECHANGE_BEGIN" simple_qualifier="self" to_zone="ZONE_EXILE" from_zone="ZONE_BATTLEFIELD" />
  <RESOLUTION_TIME_ACTION>
      local target = LinkedDC():Get_CardPtr(0)
      if target ~= nil then
       target:PutOnTopOfLibrary()
      end
    </RESOLUTION_TIME_ACTION>
  </TRIGGERED_ABILITY>

<TRIGGERED_ABILITY forced_skip="1" replacement_effect="1">
<TRIGGER value="BEGINNING_OF_STEP" pre_trigger="1" />
 <RESOLUTION_TIME_ACTION>
   RSN_ClearProducedMana()
 </RESOLUTION_TIME_ACTION>
   </TRIGGERED_ABILITY>

   <TOKEN_REGISTRATION reservation="1" type="RSN_TOKEN_MANA_B" />
   <TOKEN_REGISTRATION reservation="1" type="RSN_TOKEN_MANA_C" />
   <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>
Now it should be more compliant to your suggestion!
Actually, my suggestion was simpler and was less hazardous to play. Though you still have a few problems with the way the card is worded versus coded:

This text:
{T}: Exile a nonland permanent you control until end of turn: Add the casting cost of the exiled permanent to your mana pool with hybrid mana symbols being counted once for each colour.
Is exiling a nonland permanent you control until end of turn a cost or a result of the ability? This determines whether use of the card can be canceled or not in the engine. If it was intended as a cost then you implemented it wrong. Also the way it is worded makes the user believe that the card will return to play at end of turn (which can easily be handled by a delayed trigger) rather than just being exiled then being handled by a set of different triggered abilities with different effects.

The mana ability: This ability breaks the rules for mana abilities as established by Wizards of the Coast. Mana abilities can't be interrupted or responded to (which is why all my fake mana abilities use forced_skip="1").

This text:
If Heraion is put into a graveyard while it holds an exiled permanent, add this permanent to your hand. If Heraion is exiled while it holds an exiled permanent, put this permanent to the top of your library.
If these abilities are actually part of the results of using the mana ability then you definitely have them coded wrong, because the mana ability should create delayed triggers for these (that cleanup at end of turn) instead of having static triggers. The reason for this is that if somehow the ability is countered then these triggers should never be created.

If you intended for them to be static triggers then you need to move the text for these abilities into their respective triggered abilities.

Generally, when making cards and abilities you should try to keep them simple to understand (which will help tremendously with coding them). If a player can't figure out how the card works from how the abilities are written then generally they aren't going to use them. If a simple ability or set of abilities is made and a player figures out how to exploit it/them then it is up to the developer to figure out what should then be done about it. For example using the land to flicker creatures with ETB triggers is an obvious exploit, as is using the land to protect a creature from an effect (Terror, Royal Assassin, Swords to Plowshares, etc...). If you want to prevent these kinds of exploits then you need to spend more time considering what you actually want the ability to do and how you want it to interact with all the other available cards. Think about things like "How could exploit this great ability?" and "Okay, this is how I can exploit it, do I want to leave it like this or find a way to prevent the exploit?"

Card interactions are very important and because of that you need to be very careful about how you word abilities and how you code the abilities that you worded (they must match, if they don't match then you have a problem).
RiiakShiNal
Programmer
 
Posts: 2188
Joined: 16 May 2011, 21:37
Has thanked: 75 times
Been thanked: 497 times

Re: Age of Dodekatheon - NEW UPDATED 10/19/2013 (56 cards)

Postby NeoAnderson » 20 Oct 2013, 22:10

1. Thank you so much to take your time to answer to all my questions point by point.
About the first part " Card explanaition and rules" you're absolutely right, i made some mistake about the card exaplanation because i was not sure how to complete its functions. I understand that to be detailed and to have a linear programming make the users able to use the cards in a easy way.

2. About the Functions explanaitions, thanks a lot it will be usefull for future coding.

3. About this Card coding... honestly as i thought the card, exile a permanent was not a direct cost, it was a consequence of the ability, "if you exile until the end of turn that permanent, you can store the casting cost mana into your mana pool".
Now the card is changed and problably you can say it is a cost to activate the mana ability, so problably you mean to implement it as a "COST type ="Exile", i have to check and learn what this will need.

4. As for the the point 3, considering the "exile" not as a cost but as consequence, these 2 triggers "source moved into graveyard or exiled" are not related to the main mana ability but are separate ability of the card to send back the exiled permanent if it is moved out of the battelfied. The texts are not in the right trigger but inside the main just to make it quickly, i will move it.

Anyway i know is not simple to code cards in perfect way, expecially with poor knowledge about programming. For these reason when i started this set i asked to someone to collaborate, but until now, i see many downloads but noone contacted me to collaborate, i just received your support, also some from Firemind, and Kieran. For me is not easy to think about new cards, abilities, historical localization, trying to match the characters to the role inside the set, the interactions, the pictures search and modifies, and finally but not last the programming.
So i can only say thanks to you. Until now this is the best i am able to do hope to improve my skills.
NeoAnderson
 
Posts: 914
Joined: 10 Sep 2013, 07:49
Has thanked: 18 times
Been thanked: 139 times

Re: Age of Dodekatheon - NEW UPDATED 10/19/2013 (56 cards)

Postby RiiakShiNal » 20 Oct 2013, 23:00

NeoAnderson wrote:1. Thank you so much to take your time to answer to all my questions point by point.
About the first part " Card explanaition and rules" you're absolutely right, i made some mistake about the card exaplanation because i was not sure how to complete its functions. I understand that to be detailed and to have a linear programming make the users able to use the cards in a easy way.
Even if you don't know how to program something, if you can give a clear, concise description of what exactly you intend then you can get help from people on the forum. Specific questions like "How can I code 'Exile a card until end of turn' as a cost?" or "How do I prevent unwanted card interactions with returning a card from exile?" can get you answers you want and will be much easier to answer and respond to than open ended questions that could have thousands of "correct" answers.

NeoAnderson wrote:3. About this Card coding... honestly as i thought the card, exile a permanent was not a direct cost, it was a consequence of the ability, "if you exile until the end of turn that permanent, you can store the casting cost mana into your mana pool".
Now the card is changed and problably you can say it is a cost to activate the mana ability, so problably you mean to implement it as a "COST type ="Exile", i have to check and learn what this will need.
Well, once you've decided exactly how you want the card to work then it will be much easier to provide useful answers. In posts be descriptive, people can help boil down descriptive text to something more concise once everyone know exactly what it is supposed to do.

NeoAnderson wrote:4. As for the the point 3, considering the "exile" not as a cost but as consequence, these 2 triggers "source moved into graveyard or exiled" are not related to the main mana ability but are separate ability of the card to send back the exiled permanent if it is moved out of the battelfied. The texts are not in the right trigger but inside the main just to make it quickly, i will move it.
Again, where the triggers will be and how they are coded depends on what exactly you want the card to do, if you can't think of how to code it or describe it, then do a step-by-step example of how you envision it working.

NeoAnderson wrote:Anyway i know is not simple to code cards in perfect way, expecially with poor knowledge about programming. For these reason when i started this set i asked to someone to collaborate, but until now, i see many downloads but noone contacted me to collaborate, i just received your support, also some from Firemind, and Kieran. For me is not easy to think about new cards, abilities, historical localization, trying to match the characters to the role inside the set, the interactions, the pictures search and modifies, and finally but not last the programming.
So i can only say thanks to you. Until now this is the best i am able to do hope to improve my skills.
To be honest, I'm not really interested in this set, I see more than enough cards for me in the official MtG cards and sets, so I haven't downloaded a single version of this mod.

I will, however, help people with problems they have if they ask for help. There are times when I won't help and may not even respond, usually it is for things like open ended help without a specific goal (collaboration on a set, people asking what people think about a set of decks that I've never downloaded much less played, etc...). I often ignore requests to look over cards if a person provides a zip file instead of a code block with the code (it is much easier for me to just look at a code block rather than download, unzip, then look at the code).

I read virtually every post that is made on the DotP forums, and I give specific help for specific questions.
RiiakShiNal
Programmer
 
Posts: 2188
Joined: 16 May 2011, 21:37
Has thanked: 75 times
Been thanked: 497 times

Re: Age of Dodekatheon - NEW UPDATED 10/19/2013 (56 cards)

Postby NeoAnderson » 21 Oct 2013, 00:32

Riiak you're a skilled programmer, honestly i am living a particular period about my life, i faced a lot of changes during last 4 years, changes of city (2 times), changes of job (3 times), cohabitation with a girlfriend (for 3 years), now i am back to my home city, i have difficulty to find a new job, i have ended the relationship with the girlfriend, so i was using the computer to get some distractions and to stop to think. Next month i will start a new job, as a new paragraph of my life.
Magic was a game, i played for real during the period 1994-1997. It brings me to a free mind period, and i like the fantasy ambientation. I hope to keep the free-time to be involved with the game, it keeps my mind trained and is also relaxing.

Anyway, sorry for the mind's flight, about the forum i see that many time the users help each other in front of specific requests, i will try to ask help when i will need it. I can understand you're bored to see millions of new cards, expecially because as you said the original game already includes thousands of cards.

I finally decided how the land have to be defined, i also understand how delayDC works.. so the final code is :

HERAION | Open
Code: Select all
<?xml version="1.0"?>
<CARD_V2 ExportVersion="15">
  <FILENAME text="HERAION_7272002" />
  <CARDNAME text="HERAION" />
  <TITLE>
    <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Heraion]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Heraion]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Heraion]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Heraion]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Heraion]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[Heraion]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[Heraion]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[Heraion]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[Heraion]]></LOCALISED_TEXT>
  </TITLE>
  <MULTIVERSEID value="7272002" />
  <ARTID value="7227002" />
  <ARTIST name="Internet - Free resource" />
        <CASTING_COST cost="" />
   <COLOUR value="WUBRG" />
   <SUPERTYPE metaname="Legendary" />
   <TYPE metaname="Land" />
   <EXPANSION value="DPI" />
   <RARITY metaname="M" />

        <STATIC_ABILITY>
      <CONTINUOUS_ACTION layer="0">
         RSN_MarkCanProduceMana("{1}{W}{U}{B}{R}{G}")
                </CONTINUOUS_ACTION>
   </STATIC_ABILITY>


   <ACTIVATED_ABILITY linked_ability_group="1">
      <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[{T}: Exile a nonland permanent, you control until end

of turn. Add the casting cost of the exiled permanent to your mana pool with hybrid mana symbols being counted once

for each colour.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[{T}: Exile un permanent non-terrain, vous contrôlez

jusqu'à la fin du tour. Ajouter le coût de lancement de la mission permanente exilée à votre réserve de mana avec

des symboles de mana hybrides sont comptés qu'une fois pour chaque couleur.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[{T}: Remueve un permanente que no sea tierra, a

controlar hasta el final del turno. Agregue el coste de lanzamiento de la permanente exiliado a tu reserva de maná

con símbolos de maná híbridos se cuentan una vez para cada color.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[{T}: Exile ein kein Land permanent steuern Sie bis

zum Ende des Zuges. Fügen Sie die Kosten für das Gießen verbannt permanent zu deinen Manavorrat mit Hybrid

Manasymbole wird einmal für jede Farbe gezählt.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[{T}: Esilia un permanente non terra, che controlli

fino alla fine del turno. Aggiungi il costo di lancio del permanente esiliato alla tua riserva di mana, i simboli

di mana ibrido vengono contati una volta per ogni colore.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[{T}:追放土地でないパーマネントは、ターン終了時までコントロール。混成マナシンボルが各色ごとに一回カ

ウントされてあなたのマナ·プールに追放永久の鋳造コストを追加します。]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[{T} : 망명 nonland 영구, 당신은 턴 종료시까지 제어 할 수 있습니다. 하

이브리드 마나 기호가 각 ​​색상에 대해 한 번 계산되는과 마나 풀에 망명 영구적으로 캐스팅 비용을 추가 할 수 있습니다.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[{T}: Exile являющийся землей перманент, вы не

контролируете до конца хода. Добавить литья стоимость сослан постоянной в ваше хранилище маны с гибридной символы

маны подсчитываются один раз для каждого цвета.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[{T}: Exile a permanente que não seja terreno, você

controla até o final do turno. Adicionar o custo do vazamento permanente exilado à sua reserva de mana com símbolos

de mana híbrido a ser contado uma vez para cada cor.]]></LOCALISED_TEXT>
      <COST type="TapSelf" />
      <FILTER filter_id="0">
         local filter = ClearFilter()
         filter:Add( FE_CONTROLLER, OP_IS, EffectController() )
        local subfilter = filter:AddSubFilter_Or()
       subfilter:Add( FE_TYPE, OP_IS, CARD_TYPE_ARTIFACT )
       subfilter:Add( FE_TYPE, OP_IS, CARD_TYPE_CREATURE )
       subfilter:Add( FE_TYPE, OP_IS, CARD_TYPE_ENCHANTMENT )
       subfilter:Add( FE_TYPE, OP_NOT, CARD_TYPE_LAND )
       subfilter:Add( FE_TYPE, OP_IS, CARD_TYPE_PLANESWALKER )
      </FILTER>
      <PLAY_TIME_ACTION>
      RSN_MarkManaAbilityStart()
      </PLAY_TIME_ACTION>
     <RESOLUTION_TIME_ACTION filter_id="0">
      EffectController():ChooseItem( "CARD_QUERY_CHOOSE_NONLAND_PERMANENT_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
        local filter = ClearFilter()
        filter:Add( FE_CARD_INSTANCE, OP_IS, target )
        local WhiteTotal = filter:ChromaCount(COLOUR_WHITE)
        local BlueTotal = filter:ChromaCount( COLOUR_BLUE )
        local RedTotal = filter:ChromaCount( COLOUR_RED )
        local GreenTotal = filter:ChromaCount( COLOUR_GREEN )
        local BlackTotal = filter:ChromaCount( COLOUR_BLACK )
        local ColourlessTotal = filter:ChromaCount( COLOUR_COLOURLESS )
         local ProducedString =""
        local  WhiteString =""
        local  BlueString =""
        local  RedString =""
        local  GreenString =""
        local  BlackString =""
        local  ColourLessString =""
        for i = 1,(WhiteTotal) do
             WhiteString = WhiteString.."{W}"
          end
         for i = 1,(BlueTotal) do
           BlueString = BlueString.."{U}"
        end
        for i = 1,(RedTotal) do
      RedString = RedString.."{R}"
        end
   for i = 1,(GreenTotal) do
      GreenString = GreenString.."{G}"
        end
   for i = 1,(BlackTotal) do
      BlackString = BlackString.."{B}"
   end
        for i = 1,(ColourlessTotal) do
      ColourLessString = ColourLessString.."{1}"
        end
        ProducedString = WhiteString..BlueString..RedString..GreenString..BlackString..ColourLessString
        RSN_Produce( ProducedString, 1 )
     end
    </RESOLUTION_TIME_ACTION>

    <RESOLUTION_TIME_ACTION>
      local target = EffectDC():Get_Targets(0):Get_CardPtr(0)
      if target ~= nil then
       LinkedDC():Set_CardPtr(0, target)
       LinkedDC():Protect_CardPtr(0)
       target:Exile()
      end
    </RESOLUTION_TIME_ACTION>

   <RESOLUTION_TIME_ACTION>
       local target = LinkedDC():Get_CardPtr(0)
       local source = EffectSource()
        if target ~= nil and source ~= nil then
          target:NailOnto(source)
         local delayDC = EffectDC():Make_Chest(1)
         delayDC:Set_CardPtr(0, target)
         MTG():CreateDelayedTrigger(2, delayDC)
        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" />
      <AUTO_SKIP>
      local target = EffectDC():Get_Targets(0):Get_CardPtr(0)
      if target ~= nil then
       return false
      else
       return true
      end
    </AUTO_SKIP>
   </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 target = EffectDC():Get_CardPtr(0)
       if target ~= nil then
         target:PutOntoBattlefield()
        end
    </RESOLUTION_TIME_ACTION>
   </TRIGGERED_ABILITY>


<TRIGGERED_ABILITY forced_skip="1" replacement_effect="1">
<TRIGGER value="BEGINNING_OF_STEP" pre_trigger="1" />
 <RESOLUTION_TIME_ACTION>
   RSN_ClearProducedMana()
 </RESOLUTION_TIME_ACTION>
   </TRIGGERED_ABILITY>

   <TOKEN_REGISTRATION reservation="1" type="RSN_TOKEN_MANA_B" />
   <TOKEN_REGISTRATION reservation="1" type="RSN_TOKEN_MANA_C" />
   <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>
As you can see the exile is not considered as cost.
The definition until the end of turn is respected because of the delayDC triggers.
Now if you untap the card and play the ability other times it works.
Hope you will approve my decisions.
NeoAnderson
 
Posts: 914
Joined: 10 Sep 2013, 07:49
Has thanked: 18 times
Been thanked: 139 times

Re: Age of Dodekatheon - NEW UPDATED 10/19/2013 (56 cards)

Postby RiiakShiNal » 21 Oct 2013, 01:30

Well, I am a programmer by trade so I would hope I was skilled. :lol: Believe it or not I played paper magic in about the same time frame (1994-97, my high school years).

Whether I approve or not is irrelevant, it only matters if you approve of it since you are the creator of your cards.

There is still a problem with your code though:

Your mana ability does not follow MtG rules regarding mana abilities in that mana abilities can't be interrupted or responded to. You need to add forced_skip="1" to the activated ability.

Of lesser note is that you no longer need the LinkedDC() at all since you are using a delayed trigger now (which will also let you remove the linked_ability_group attribute).

I'm not necessarily bored with new cards, it is still interesting to see people's ideas about what they would like to see. I just don't have any interest in making any custom cards myself as there are plenty of official cards left to make. If I only try to finish making the cards with mana abilities then that's another 700+ cards I haven't even started on yet.
RiiakShiNal
Programmer
 
Posts: 2188
Joined: 16 May 2011, 21:37
Has thanked: 75 times
Been thanked: 497 times

Re: Age of Dodekatheon - NEW UPDATED 10/19/2013 (56 cards)

Postby NeoAnderson » 21 Oct 2013, 17:47

Thanks Riiak i have added forced_skip="1".

I have also made another land "Temple of Athena"
I partially used the code of your Exotic Orchard (i also find something to be fixed inside the Italian text localization, you have made same italian text for this card and also for your Reflecting Pool).
The Italian text of Exotic Orchard shoud be "{T}: Aggiungi alla tua riserva di mana un mana di un qualsiasi colore che una terra controllata da un avversario potrebbe produrre."
The last thing is that Exotic Orchard doesn't check for colourless mana is this right or just a missing?

About my "Temple of Athena" it works in this way :
1. Can produce mana of the kind your opponents' land could produce.
2. When you tap it, Asks to select a colour then it checks the greatest number of land controlled by each opponent, then add to your mana pool X mana of the selected colour, where X is the difference between this number of lands and the number of lands you control.

Temple of Athena | Open
Code: Select all
<?xml version="1.0"?>
<CARD_V2 ExportVersion="15">
  <FILENAME text="TEMPLE_OF_ATHENA_7272003" />
  <CARDNAME text="TEMPLE_OF_ATHENA" />
  <TITLE>
    <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Temple of Athena]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Temple of Athena]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Temple of Athena]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Temple of Athena]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Tempio di Atena]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[Temple of Athena]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[Temple of Athena]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[Temple of Athena]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[Temple of Athena]]></LOCALISED_TEXT>
  </TITLE>
  <MULTIVERSEID value="7272003" />
  <ARTID value="7227003" />
  <ARTIST name="Internet - Free resource" />
        <CASTING_COST cost="" />
   <COLOUR value="WUBRG" />
   <SUPERTYPE metaname="Legendary" />
   <TYPE metaname="Land" />
   <EXPANSION value="DPI" />
   <RARITY metaname="M" />

 
   <ACTIVATED_ABILITY forced_skip="1" >
      <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[{T}: Add to your mana pool, X mana of any color that a land an opponent controls could produce, X is equal to the difference between the greatest number of lands controlled by any opponent and the number of lands you control.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[{T}: Ajoutez à votre réserve de mana, X mana de n'importe quelle couleur qu'un terrain qu'un adversaire contrôle pourrait produire, X est égal à la différence entre le plus grand nombre de terrains contrôlés par n'importe quel adversaire et le nombre de terrains que vous contrôlez.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[{T}: Agrega a tu reserva de maná, X maná de cualquier color que una tierra que controle un oponente podría producir, X es igual a la diferencia entre el mayor número de tierras controladas por cualquier oponente y el número de tierras que controles.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[{T}: Erhöhe deinen Manavorrat um X Mana einer beliebigen Farbe hinzufügen, dass ein Land ein Gegner kontrolliert produzieren könnte, X gleich der Differenz zwischen der größten Anzahl von Ländern durch jeden Gegner und die Zahl der Länder, die du zu steuern ist.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[{T}: Aggiungi alla tua riserva di mana, X mana di qualsiasi colore, che una terra controllata da un avversario potrebbe produrre, X è pari alla differenza tra il maggior numero di terre controllate da ogni avversario e il numero di terre che controlli.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[{T}:対戦相手のコントロールが作り出すことができる土地は、Xは任意の対戦相手と、あなたがコントロールする土地の数によって制御される土地の最大数との差に等しいことをあなたのマナ·プールに、任意の色のマナXに追加する。]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[{T} : 상대의 컨트롤을 생산할 수있는 땅, X는 임의의 상대와 제어 토지의 수에 의해 제어 토지의 가장 큰 수의 차이와 동일합니다 당신의 마나 풀, 어떤 색깔의 X 마나에 추가합니다.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[{T}: Добавьте в ваше хранилище маны, X ману любого цвета, что земля под контролем оппонента могли бы производить, X равна разности между наибольшим количеством земли контролируется любым соперником и количество земель под вашим контролем.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[{T}: Adicione à sua reserva de mana, X mana de qualquer cor que um terreno controlado por um oponente poderia produzir, X é igual à diferença entre o maior número de terras controlado por qualquer adversário e o número de terrenos que você controla.]]></LOCALISED_TEXT>
      <COST type="TapSelf" />
      <AVAILABILITY>
         return ((RSN_GetCanProduceMana( Object(), COLOUR_COLOURLESS )) or
            (RSN_GetCanProduceMana( Object(), COLOUR_BLACK )) or
            (RSN_GetCanProduceMana( Object(), COLOUR_BLUE )) or
            (RSN_GetCanProduceMana( Object(), COLOUR_GREEN )) or
            (RSN_GetCanProduceMana( Object(), COLOUR_RED )) or
            (RSN_GetCanProduceMana( Object(), COLOUR_WHITE )))
      </AVAILABILITY>
      <PLAY_TIME_ACTION>
         RSN_MarkManaAbilityStart()
         RSN_ClearCanProduceMana()
         -- Look through my opponents' lands to see what this can produce.
         for i=0, (MTG():GetNumberOfPlayers() - 1) do
            local oPlayer = MTG():GetNthPlayer( i )
            if (oPlayer:GetTeam() ~= EffectController():GetTeam()) then
               RSN_MarkCanProduceColourOfAnyTypeOtherLandPlayerControls( oPlayer )
            end
         end
      </PLAY_TIME_ACTION>
      <PLAY_TIME_ACTION>
         local oPlayer = EffectController()
         local oCard = EffectSource()
         if (oPlayer ~= nil) then
            oPlayer:BeginNewMultipleChoice()
            oPlayer:AddMultipleChoiceAnswer( "RSN_MODE_PRODUCE_C", RSN_GetCanProduceMana( oCard, COLOUR_COLOURLESS ) )
            oPlayer:AddMultipleChoiceAnswer( "RSN_MODE_PRODUCE_W", RSN_GetCanProduceMana( oCard, COLOUR_WHITE ) )
            oPlayer:AddMultipleChoiceAnswer( "RSN_MODE_PRODUCE_U", RSN_GetCanProduceMana( oCard, COLOUR_BLUE ) )
            oPlayer:AddMultipleChoiceAnswer( "RSN_MODE_PRODUCE_B", RSN_GetCanProduceMana( oCard, COLOUR_BLACK ) )
            oPlayer:AddMultipleChoiceAnswer( "RSN_MODE_PRODUCE_R", RSN_GetCanProduceMana( oCard, COLOUR_RED ) )
            oPlayer:AddMultipleChoiceAnswer( "RSN_MODE_PRODUCE_G", RSN_GetCanProduceMana( oCard, COLOUR_GREEN ) )
            oPlayer:AskMultipleChoiceQuestion( "MODE_CHOOSE_ONE", oCard )
         end
      </PLAY_TIME_ACTION>
    <RESOLUTION_TIME_ACTION>
       local filter = ClearFilter()
       filter:Add(FE_CONTROLLER, OP_IS, EffectController())
       filter:Add(FE_TYPE, OP_IS, CARD_TYPE_LAND)
       local yourlands = filter:Count()
      local actuallands = 0
      local curropplands = 0
       local myTeam = EffectController():GetTeam()
       for i=0,MTG():GetNumberOfPlayers()-1 do
         local nthPlayer = MTG():GetNthPlayer(i)
         if nthPlayer ~= nil and nthPlayer:GetTeam() ~= myTeam then
           local filter = ClearFilter()
           filter:Add(FE_CONTROLLER, OP_IS, nthPlayer)
           filter:Add(FE_TYPE, OP_IS, CARD_TYPE_LAND)
            curropplands = filter:Count()
            local temp = curropplands - yourlands
            if temp &gt; actuallands then
               actuallands =  temp
            end 
        end
       end
      local Cproducestring = ""
      local Producemanastring =""
      local nColour = EffectController():GetMultipleChoiceResult()
         if (nColour == COLOUR_COLOURLESS) then
            Cproducestring = "{1}"
         elseif (nColour == COLOUR_BLACK) then
            Cproducestring = "{B}"
         elseif (nColour == COLOUR_BLUE) then
            Cproducestring = "{U}"
         elseif (nColour == COLOUR_GREEN) then
            Cproducestring = "{G}"
         elseif (nColour == COLOUR_RED) then
            Cproducestring = "{R}"
         elseif (nColour == COLOUR_WHITE) then
            Cproducestring = "{W}"
         end
           
      if (EffectSource() ~= nil) and (actuallands &gt; 0) then
        for i = 1,(actuallands) do
      Producemanastring = Producemanastring..Cproducestring
        end
      RSN_Produce( Producemanastring, 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>

   <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>
   <TRIGGERED_ABILITY forced_skip="1" replacement_effect="1">
      <TRIGGER value="ZONECHANGE_END" to_zone="ZONE_BATTLEFIELD" from_zone="ZONE_ANY">
         -- Since we only care about lands for checking what we can produce.
         return ((TriggerObject() ~= nil) and (TriggerObject():GetCardType():Test( CARD_TYPE_LAND )))
      </TRIGGER>
      <TRIGGER value="ZONECHANGE_END" from_zone="ZONE_BATTLEFIELD" to_zone="ZONE_ANY">
         -- Since we only care about lands for checking what we can produce.
         return ((TriggerObject() ~= nil) and (TriggerObject():GetCardType():Test( CARD_TYPE_LAND )))
      </TRIGGER>
      <RESOLUTION_TIME_ACTION>
         RSN_ClearCanProduceMana()
         -- Look through my opponents' lands to see what this can produce.
         for i=0, (MTG():GetNumberOfPlayers() - 1) do
            local oPlayer = MTG():GetNthPlayer( i )
            if (oPlayer:GetTeam() ~= EffectController():GetTeam()) then
               RSN_MarkCanProduceColourOfAnyTypeOtherLandPlayerControls( oPlayer )
            end
         end
      </RESOLUTION_TIME_ACTION>
   </TRIGGERED_ABILITY>

   <TOKEN_REGISTRATION reservation="1" type="RSN_TOKEN_MANA_B" />
   <TOKEN_REGISTRATION reservation="1" type="RSN_TOKEN_MANA_C" />
   <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>
Image
NeoAnderson
 
Posts: 914
Joined: 10 Sep 2013, 07:49
Has thanked: 18 times
Been thanked: 139 times

Re: Age of Dodekatheon - NEW UPDATED 10/21/2013 (58 cards)

Postby drleg3nd » 21 Oct 2013, 18:57

are these decks or just cards ?
drleg3nd
 
Posts: 528
Joined: 14 May 2012, 20:05
Has thanked: 5 times
Been thanked: 30 times

PreviousNext

Return to 2014

Who is online

Users browsing this forum: No registered users and 13 guests

Main Menu

User Menu

Our Partners


Who is online

In total there are 13 users online :: 0 registered, 0 hidden and 13 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 13 guests

Login Form