It is currently 19 Jul 2025, 20:00
   
Text Size

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

Moderator: CCGHQ Admins

Re: Age of Dodekatheon - NEW UPDATED 10/12/2013 (48 cards)

Postby NeoAnderson » 13 Oct 2013, 00:35

Thanks a lot for your detailed and quick reply Riiak. Can you kindly let me know how i can change mana token proprerties to make them visible (add the type) to make some test? Sorry for the silly question but i'm still going into programming and you are the maker of this 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/12/2013 (48 cards)

Postby RiiakShiNal » 13 Oct 2013, 00:52

Well, the easiest way is to open up the token XMLs and put in:
Code: Select all
<TYPE metaname="Land" />
Unfortunately, they will appear up with the rest of the cards (as they will be non-basic) and will not stack (the engine won't stack non-basic lands). Of course you could always change the type to something else that can stack like Artifact, just note that any type you use can introduce card interaction problems (so don't test them with anything you would expect to see those wrong interactions).
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/12/2013 (48 cards)

Postby NeoAnderson » 13 Oct 2013, 01:00

Thanks again for yout time my friend, i think your suggestion needs to edit the XMLs inside your mod. I tried another way it seems to work. I changed the proprerties of the Mox adding a static ability :
Code: Select all
<STATIC_ABILITY>
      <FILTER filter_id="0">
      local filter = ClearFilter()
      filter:Add(FE_CARD_INSTANCE, OP_NOT, EffectSource() )
      filter:Add(FE_CONTROLLER, OP_IS, EffectController() )
      filter:Add( FE_IS_TOKEN, true )
    </FILTER>
      <CONTINUOUS_ACTION layer="4" filter_id="0">
    local card = FilteredCard()
    if card ~= nil then
       local characteristics = card:GetCurrentCharacteristics()
       local type = characteristics:CardType_GetWritable()
       type:Add( CARD_TYPE_LAND)
    end
    </CONTINUOUS_ACTION>
</STATIC_ABILITY>
Now i can see the token when they are generated, i will make some test to undestand what happen with phyrexian mana cost!
Thanks again for your time.
NeoAnderson
 
Posts: 914
Joined: 10 Sep 2013, 07:49
Has thanked: 18 times
Been thanked: 139 times

Re: Age of Dodekatheon - NEW UPDATED 10/12/2013 (48 cards)

Postby NeoAnderson » 13 Oct 2013, 01:12

Done as you can see inside the follow screenshoots using the left CTRL key are highlighted different token and the life points needed changes. but the system seems to wait a confirmation to go over! Any idea how to resolve this bug??
ImageImageImage
NeoAnderson
 
Posts: 914
Joined: 10 Sep 2013, 07:49
Has thanked: 18 times
Been thanked: 139 times

Re: Age of Dodekatheon - NEW UPDATED 10/12/2013 (48 cards)

Postby RiiakShiNal » 13 Oct 2013, 01:47

That method works too, it's not necessarily as easy (it's more than 1 line) and can cause issues with other tokens, but it works.

I'm not exactly sure what I'm supposed to be seeing in those screenshots. Usually you choose the mana you want to spend on a spell with the Left Control key before you cast the spell, then when you are happy with the selected mana configuration you cast the spell and it uses the configuration you selected.

However, in your screenshots it looks like you have already cast a spell and you are selecting a mana configuration (though we can't tell from the screenshots which token is which colour of mana because we can't read the titles, image is too small to see) for some ability or something so I have no idea what you are doing in those screenshots nor do I have any idea what to tell you.

It might help if you posted the code of the card that is giving you problems, but without details about exactly what you are doing/trying to do (step-by-step so we can reproduce the problem), the expected outcome, and the actual outcome I'm not sure how much help we will be able to give.
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/12/2013 (48 cards)

Postby NeoAnderson » 13 Oct 2013, 02:51

First of all thanks as always for your kindness.

1. Until today i didn't know about the left CTRL key to select mana combinations, for this reason in certain situations i was not happy about automatic mana tap.

2. Inside these screenshoots you see exactly the status of the game after i tried to cast the spell. It is blocked into the stack and doesn't go over. If i press the CTRL key the the mana combinations and life point still changes.

3. I tried many time with different mana, sometime it works and it is cast, other times it is blocked into the stack. I am using only Mox to test the deck so no basic land, this mox is a modified version take from your Mod, it produce 3 colored mana instead of one.

4. If i use 1 mox (3 mana of one color) it works except for the red mana (if you use 3 red mana it display the question)
If i use 2 mox (6 mana - 2 different colors, 3 mana per color) it display a question (see the screenshoot below)
If i use 3 mox (9 mana - 3 different colors 3 mana per color) it display a question (see the screenshoot below)
If i use 4 mox (12 mana - 4 different colors 3 mana per color) it display a question (see the screenshoot below)
If i use 5 mox (3 mana for each color) many times works but not always.

5. If you select or not different combinations with left CTRL doesn't matter it doesn't work. After click ok on that box the card is blocked into the stack, you still can select other mana combinations with CTRL but it doesn't go over.

6. Until now i haven't tried with normal land.

I hope these informations will be usefull and enough detailed to understand the problem.


IF you want to take a look i post the code of the cards "Horae" and the modded mox iam using "Chrome Mox"

HORAE | Open
Code: Select all
<?xml version="1.0"?>
<CARD_V2 ExportVersion="15">
  <FILENAME text="HORAE_7272953" />
  <CARDNAME text="Horae" />
  <TITLE>
    <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Horae]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Horae]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Horae]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Horae]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Horae]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[Horae]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[Horae]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[Horae]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[Horae]]></LOCALISED_TEXT>
  </TITLE>
  <MULTIVERSEID value="7272953" />
  <ARTID value="7227953" />
  <ARTIST name="Internet - Free resource" />
  <CASTING_COST cost="{1}{W/P}{U/P}{G/P}{R/P}{B/P}" />
  <SUPERTYPE metaname="Legendary" />
  <TYPE metaname="Creature" />
  <SUB_TYPE metaname="Minor_Divinity" />
  <EXPANSION value="DPI" />
  <RARITY metaname="M" />
  <POWER value="0" />
  <TOUGHNESS value="4" />
   <STATIC_ABILITY>
      <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Shroud]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Linceul]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Velo.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Verhüllt]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Velo]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[被覆]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[은폐]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[Пелена]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[Manto]]></LOCALISED_TEXT>
      <INTRINSIC characteristic="CHARACTERISTIC_SHROUD" />
   </STATIC_ABILITY>
<TRIGGERED_ABILITY badge="BADGE_UNDYING" active_zone="ZONE_BATTLEFIELD" commaspace="1">
      <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Undying]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Survivance]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Resiliencia.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Unverwüstlich]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Immortale]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[不死]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[불사]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[Нетленность]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[Imortal]]></LOCALISED_TEXT>
      <TRIGGER value="ZONECHANGE_BEGIN" simple_qualifier="self" to_zone="ZONE_GRAVEYARD"

from_zone="ZONE_BATTLEFIELD" />
      <INTERVENING_IF ignore_resolution_check="1">
    if TriggerObject():CountCounters(MTG():PlusOnePlusOneCounters()) == 0 then
       return true
    else
       return false
    end
    </INTERVENING_IF>
      <RESOLUTION_TIME_ACTION>
    if TriggerObject() ~= nil then
       EffectDC():Protect_CardPtr( COMPARTMENT_ID_PARAM_TRIGGER_OBJECT )
       TriggerObject():PutOntoBattlefield( TriggerObject():GetOwner() )
    end
    </RESOLUTION_TIME_ACTION>
      <RESOLUTION_TIME_ACTION>
    if TriggerObject() ~= nil then
       TriggerObject():AddCounters( MTG():PlusOnePlusOneCounters(), 1)
    end
    </RESOLUTION_TIME_ACTION>
   </TRIGGERED_ABILITY>


<TRIGGERED_ABILITY>
      <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[At the beginning of your upkeep, if Horae has at

least a +1 / +1, remove one of these counters.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Au début de votre entretien, si Horae a au moins un

marqueur +1 / +1, supprimer l'un de ces compteurs.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Al comienzo de tu mantenimiento, si Horae tiene por

lo menos un 1/1, eliminar uno de estos contadores.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Zu Beginn Ihres Unterhalt, wenn Horae mindestens eine

+1 / +1, entfernen Sie eine dieser Zähler.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[All'inizio del tuo mantenimento, se Horae ha almeno

un segnalino +1 / +1, rimuovi uno di questi segnalini.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[Horaeが少なくとも+1 /+1を持っている場合あなたのアップキープの開始時に、これらのカウンタの1つを

削除します。]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[Horae 적어도 +1 / +1가있는 경우, 유지비의 시작 부분에서, 이러한 카운터

중 하나를 제거합니다.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[В начале вашего шага поддержки, если Horae имеет по

крайней мере один жетон +1 / +1, удалить один из этих счетчиков.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[No início de sua manutenção, se Horae tem pelo menos

um 1/1, remover um desses contadores.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="zh-CN"><![CDATA[在你的維持開始,如果海悅至少有一個+1 / +1,刪除其中一個計數器。]]

></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="zh-HK"><![CDATA[在你的維持開始,如果海悅至少有一個+1 / +1,刪除其中一個計數器。]]

></LOCALISED_TEXT>
      <TRIGGER value="BEGINNING_OF_PLAYERS_STEP" simple_qualifier="controller">
    return MTG():GetStep() == STEP_UPKEEP
    </TRIGGER>
      <RESOLUTION_TIME_ACTION>
    if EffectSource() ~= nil then
    local counters2 = EffectSource():CountCounters(MTG():PlusOnePlusOneCounters())
         if counters2 ~= nil then
    EffectSource():RemoveCounters( MTG():PlusOnePlusOneCounters(), 1 )
         end
    end
           </RESOLUTION_TIME_ACTION>   
   
</TRIGGERED_ABILITY>

<TRIGGERED_ABILITY>
      <TRIGGER value="ZONECHANGE_BEGIN" simple_qualifier="self" to_zone="ZONE_GRAVEYARD"

from_zone="ZONE_BATTLEFIELD" />
    <FILTER filter_id="0">
    local filter = ClearFilter()
    filter:Add( FE_TYPE, OP_IS, CARD_TYPE_CREATURE )
    filter:Add( FE_CONTROLLER, OP_IS, EffectController())
    filter:Add( FE_CARD_NAME, OP_IS, "HORAE_SEASON" )
 </FILTER>

<RESOLUTION_TIME_ACTION filter_id="0">
      if FilteredCard() ~= nil then   
       FilteredCard():Destroy()
      end
    </RESOLUTION_TIME_ACTION>
   </TRIGGERED_ABILITY>

  <ACTIVATED_ABILITY>
         <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[0: Put on the battlefield, the token of the following

season. Remove the token of the current season.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[0: Mettez sur le champ de bataille, le jeton de la

saison suivante. Retirez le jeton de la saison en cours.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[0: Pon en el campo de batalla, la muestra de la

siguiente temporada. Retire la muestra de la actual temporada.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[0: auf dem Schlachtfeld Put, das Token der folgenden

Saison. Entfernen Sie die Zeichen der aktuellen Saison.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[0: Metti sul campo di battaglia, la pedina relativa

alla stagione successiva.Rimuovi la pedina della stagione attuale.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[0:、戦場で次のシーズンのトークンを置く。現在のシーズンのトークンを削除します。]]

></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[0 : 전장에서 다음 시즌의 토큰을 놓습니다.현재 시즌의 토큰을

제거합니다.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[0: положите на поле боя, лексема следующего сезона.

Удалить маркер текущего сезона.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[0: Coloque no campo de batalha, o sinal da temporada

seguinte. Remover o símbolo da atual temporada.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="zh-CN"><![CDATA[0:在戰場上,在接下來的賽季的令牌。當前賽季中取出令牌。]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="zh-HK"><![CDATA[0:在戰場上,在接下來的賽季的令牌。當前賽季中取出令牌。]]></LOCALISED_TEXT>
   <SFX text="CASTER_BUFF_PLAY" />   
   <COUNTER_REGISTRATION name="Season" proliferate="11" />
       <COST mana_cost="{0}" type="Mana" />
 <FILTER filter_id="0">
    local filter = ClearFilter()
    filter:Add( FE_TYPE, OP_IS, CARD_TYPE_CREATURE )
    filter:Add( FE_CONTROLLER, OP_IS, EffectController())
    filter:Add( FE_CARD_NAME, OP_IS, "HORAE_SEASON" )
 </FILTER>

<RESOLUTION_TIME_ACTION filter_id="0">
      if FilteredCard() ~= nil then   
       FilteredCard():Destroy()
      end
    </RESOLUTION_TIME_ACTION>

   <RESOLUTION_TIME_ACTION>
   local counters = EffectSource():CountCounters(MTG():GetCountersType("Season"))
   if (counters == 0) then
      EffectSource():AddCounters( MTG():GetCountersType("Season"), 1)
      MTG():PutTokensOntoBattlefield( "HORAE_A_7272954", 1, EffectController() )
      else  if (counters == 1) then
            EffectSource():AddCounters( MTG():GetCountersType("Season"), 1)
            MTG():PutTokensOntoBattlefield( "HORAE_A_7272955", 1, EffectController() )
            else  if (counters == 2) then
          EffectSource():AddCounters( MTG():GetCountersType("Season"), 1)
            MTG():PutTokensOntoBattlefield( "HORAE_A_7272956", 1, EffectController() )
             else  if (counters == 3) then
                         EffectSource():RemoveCounters( MTG():GetCountersType("Season"), 3)          
                    MTG():PutTokensOntoBattlefield( "HORAE_A_7272957", 1, EffectController() )
          end
        end
       end
   end

    </RESOLUTION_TIME_ACTION>
<AVAILABILITY per_turn_limit="1" />
  </ACTIVATED_ABILITY>
 <TOKEN_REGISTRATION reservation="1" type="HORAE_A_7272954" />
 <TOKEN_REGISTRATION reservation="1" type="HORAE_A_7272955" />
 <TOKEN_REGISTRATION reservation="1" type="HORAE_A_7272956" />
 <TOKEN_REGISTRATION reservation="1" type="HORAE_A_7272957" />
</CARD_V2>
CHORME MOX | Open
Code: Select all
<?xml version="1.0"?>
<CARD_V2 ExportVersion="2">
  <FILENAME text="MM_CHROME_MOX_7272730" />
  <CARDNAME text="CHROME_MOX" />
  <TITLE>
    <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Chrome Mox BOOST]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Mox de chrome]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Mox de cromo]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Chrommox]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Mox di Cromo BOOST]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[金属モックス]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[Chrome Mox]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[Chrome Mox]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[Mox de Cromo]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="zh-CN"><![CDATA[五彩玛珂]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="zh-HK"><![CDATA[五彩瑪珂]]></LOCALISED_TEXT>
  </TITLE>
  <MULTIVERSEID value="7272730" />
  <ARTID value="7227730" />
  <ARTIST name="Internet free" />
  <CASTING_COST cost="{0}" />
  <TYPE metaname="Artifact" />
  <EXPANSION value="DPI" />
  <RARITY metaname="R" />


    <ACTIVATED_ABILITY forced_skip="1">
    <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[{T}: Add 3 mana of any colors to your mana pool.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[{T} : Ajoutez un mana de la couleur de la carte dont le Mox de chrome a l’empreinte à votre réserve.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[{T}: Agrega un maná de uno de los colores de la carta estampada a tu reserva de maná.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[{T}: Erhöhe deinen Manavorrat um ein Mana einer der Farben der eingeprägten Karte.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[{T}: Aggiungi alla tua riserva 3 mana di un qualsiasi colore]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[{T}:あなたのマナ・プールに、刻印されているカードの色のうちいずれかの色のマナ1点を加える。]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[{T}: Add one mana of any of the exiled card’s colors to your mana pool.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[{T}: Add one mana of any of the exiled card’s colors to your mana pool.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[{T}: Adiciona uma mana de qualquer uma das cores do card estampado à sua reserva de mana.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="zh-CN"><![CDATA[{T}:加一点法术力到你的法术力的法术力池中,其颜色为压印的牌之任一颜色。]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="zh-HK"><![CDATA[{T}:加一點法術力到你的魔法力的法術力池中,其顏色為壓印的牌之任一顏色。]]></LOCALISED_TEXT>
      <COST type="TapSelf" />
       <PLAY_TIME_ACTION>
      RSN_MarkManaAbilityStart()
      local oPlayer = EffectController()
      local oCard = EffectSource()
      if (oPlayer ~= nil) then
         oPlayer:BeginNewMultipleChoice()
         oPlayer:AddMultipleChoiceAnswer( "RSN_MODE_PRODUCE_W" )
         oPlayer:AddMultipleChoiceAnswer( "RSN_MODE_PRODUCE_U" )
         oPlayer:AddMultipleChoiceAnswer( "RSN_MODE_PRODUCE_B" )
         oPlayer:AddMultipleChoiceAnswer( "RSN_MODE_PRODUCE_R" )
         oPlayer:AddMultipleChoiceAnswer( "RSN_MODE_PRODUCE_G" )
         oPlayer:AskMultipleChoiceQuestion( "MODE_CHOOSE_ONE", oCard )
      end
      </PLAY_TIME_ACTION>
      <RESOLUTION_TIME_ACTION>
      local nColour = EffectController():GetMultipleChoiceResult() + 1
      if (nColour == COLOUR_BLACK) then
         RSN_Produce( "{B}{B}{B}", 1 )
      elseif (nColour == COLOUR_BLUE) then
         RSN_Produce( "{U}{U}{U}", 1 )
      elseif (nColour == COLOUR_GREEN) then
         RSN_Produce( "{G}{G}{G}", 1 )
      elseif (nColour == COLOUR_RED) then
         RSN_Produce( "{R}{R}{R}", 1 )
      elseif (nColour == COLOUR_WHITE) then
         RSN_Produce( "{W}{W}{W}", 1 )
      end
      </RESOLUTION_TIME_ACTION>
      <RESOLUTION_TIME_ACTION>
      RSN_EliminateExtraManaTokens()
      </RESOLUTION_TIME_ACTION>
      <RESOLUTION_TIME_ACTION>
      S_DisplayManaPool(EffectController())
      RSN_MarkManaAbilityEnd()
      </RESOLUTION_TIME_ACTION>
      <AI_AVAILABILITY window_step="upkeep" type="window" />
      <AI_AVAILABILITY window_step="main_1" window_turn="my_turn" type="window" />
      <AI_AVAILABILITY window_step="begin_combat" window_turn="their_turn" type="window" />
      <AI_AVAILABILITY window_step="declare_attackers" window_turn="their_turn" type="window" />
      <AI_AVAILABILITY window_step="declare_blockers" type="window" />
      <AI_AVAILABILITY window_step="main_2" window_turn="my_turn" type="window" />
      <AI_AVAILABILITY window_step="end_of_turn" type="window" />
      <AI_AVAILABILITY window_step="end_of_turn" window_turn="their_turn" type="window" />
      <AI_AVAILABILITY type="in_response" response_source="1" response_target="1" />
      <AI_AVAILABILITY type="in_response" response_source="1" />
      <AI_AVAILABILITY type="in_response" response_target="1" />
   </ACTIVATED_ABILITY>
   <STATIC_ABILITY>
      <CONTINUOUS_ACTION layer="0">
      RSN_ClearCanProduceMana()
      if S_CountTypeInZoneOfPlayer(CARD_TYPE_ARTIFACT, ZONE_BATTLEFIELD, EffectController()) &gt; 2 then
        RSN_MarkCanProduceMana( "{W}{U}{B}{R}{G}" )
      end
      </CONTINUOUS_ACTION>
   </STATIC_ABILITY>
   <TRIGGERED_ABILITY forced_skip="1" replacement_effect="1">
      <TRIGGER value="BEGINNING_OF_STEP" pre_trigger="1" />
      <RESOLUTION_TIME_ACTION>
      RSN_ClearProducedMana()
      </RESOLUTION_TIME_ACTION>
   </TRIGGERED_ABILITY>
   <TOKEN_REGISTRATION reservation="1" type="RSN_TOKEN_MANA_W" />
   <TOKEN_REGISTRATION reservation="1" type="RSN_TOKEN_MANA_U" />
   <TOKEN_REGISTRATION reservation="1" type="RSN_TOKEN_MANA_B" />
   <TOKEN_REGISTRATION reservation="1" type="RSN_TOKEN_MANA_R" />
   <TOKEN_REGISTRATION reservation="1" type="RSN_TOKEN_MANA_G" />
  <AI_BASE_SCORE score="300" zone="ZONE_BATTLEFIELD" />
</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/12/2013 (48 cards)

Postby thefiremind » 13 Oct 2013, 08:46

As far as I know, nobody ever ran into this problem when using Phyrexian mana, and it seems there's only one difference between your card and the official Magic cards with Phyrexian mana: your card has multiple colors of Phyrexian mana. I agree with RiiakShiNal, there must be a bug in the engine that makes it randomly hang when multiple colors of Phyrexian mana are on the same card. After all, this isn't something the developers would test, because there are no official cards with this characteristic.

I don't know what to suggest you... maybe you could use normal mana on the original cost and think about an interesting alternative cost to add? Or give those cards an all colorless original cost (you can still make them 5-colored by adding <COLOUR value="WUBRG" />, but be careful that it's sensitive to its position inside the XML, put it exactly where you find it on tokens), then give them an additional ability/effect if all colors of mana are spent to cast them? Those are just random ideas, but maybe they'll get you inspired. :)
< Former DotP 2012/2013/2014 modder >
Currently busy with life...
User avatar
thefiremind
Programmer
 
Posts: 3515
Joined: 07 Nov 2011, 10:55
Has thanked: 118 times
Been thanked: 722 times

Re: Age of Dodekatheon - NEW UPDATED 10/12/2013 (48 cards)

Postby NeoAnderson » 13 Oct 2013, 11:47

Thanks a lot my friend, i am glad to hear i am not crazy, anyway, i already changed the casting cost using multiple colors mana like (U/B U/B R/B R/B W/P W/P), by this way the cards still be able to be playable with most of colors deck, and using just one Phyrexian mana doesn't give any problem.
To say the truth the starting idea was a little bit different :
Horae should be a creature with 4 morphing states, but i found some problems to implement it so i made it as a creature who cast 4 different tokens.
When i worked on the original idea, i created 4 different XML, with different <FILENAME text="" />, and cardname (<CARDNAME text="Horae_A" />,<CARDNAME text="Horae_B" />,<CARDNAME text="Horae_C" />,<CARDNAME text="Horae_D" />.
Inside the Cards there was the ability to Cast next creature example : Horae_A used PutTokensOntoBattelfield(Horae_B).
The problem is that each of these cards should remove from game the previous card, to do it i used 2 different ways, adding EffectSource():Exile() inside the previous card after the resolution block where it cast the next token. the second way adding a cardname check into each cards and Exile() function(in a trigger block when it come into battlefield) example :Horae_B, Trigger come into battlefield, check cardname ="Horae_A" (both ways with Getcardname and also with filters) then Exile, and for some reason it doesn't work.
The minor problem was that using PutTokensOntoBattelfied change the card into a token and it loses his permanent state.
So i decided to separate The Main Horae with Seasons Horae to alternate. Do you think was possible to work on first idea or i have to finish the second one?

I also appreciated your suggestions, i will take it in consideration for new cards :-)
NeoAnderson
 
Posts: 914
Joined: 10 Sep 2013, 07:49
Has thanked: 18 times
Been thanked: 139 times

Re: Age of Dodekatheon - NEW UPDATED 10/12/2013 (48 cards)

Postby RiiakShiNal » 13 Oct 2013, 13:24

I haven't had a chance to run your test cases yet, but reading what you wanted originally, the original idea to have a creature with multiple states is indeed possible. This assumes that each state just has different stats/abilities/traits and not different types or super-types.

You make a hidden STATIC_ABILITY with linked_ability_group="1" that works in all zones (except ZONE_EXILE) and manages the states. This ability can also handle P/T changes, sub-type changes (if desired), colour changes, etc....
Code: Select all
<STATIC_ABILITY linked_ability_group="1" active_zone="ZONE_ANY">
  <CONTINUOUS_ACTION layer="0">
    if (EffectSource():GetZone() == ZONE_BATTLEFIELD) then
      local nState = LinkedDC():Int_Get( 0 )
      if (nState == 0) then
        -- Grant abilities it should have in Initial state
      elseif (nState == 1) then
        -- Grant abilities it should have in second state
      elseif (nState == 2) then
        -- Grant abilities it should have in third state
      else
        -- Grant abilities it should have in last state
      end
    else
      -- Abilities it should have while outside the battlefield (these don't actually have to function outside of the battlefield, they could just be there for their text).
    end
  </CONTINUOUS_ACTION>
</STATIC_ABILITY>
Then copy it for ZONE_EXILE to eliminate any P/T setting bugs and allow it to keep any settings it should have while outside of the battlefield.

Then you have an ability that changes the state (you could have a different change state ability for each state so you could have different costs, text, etc...).
Code: Select all
<ACTIVATED_ABILITY linked_ability_group="1">
  <LOCALISED_TEXT><![CDATA[{1}: Change to next state.]]></LOCALISED_TEXT>
  <COST type="Mana" mana_cost="{1}" />
  <RESOLUTION_TIME_ACTION>
    local nCurrentState = LinkedDC():Int_Get( 0 )
    if (nCurrentState &lt; 3) 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>
</ACTIVATED_ABILITY>
You just have to make sure all other abilities are set with resource_ids so that they can be granted and don't show up or are active otherwise. This way the same card is continuously on the battlefield regardless of state so you don't have to worry about summoning sickness, transferring counters, auras, etc.... It will maintain the original casting cost so effects that vary based on casting cost should be handled correctly (Chroma, Devotion, etc...).
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/12/2013 (48 cards)

Postby NeoAnderson » 13 Oct 2013, 14:17

Thanks as always Riiak, your support is really appreciated, also your code will help me in future, my programming skills are too rusted.
Anyway there is also another reason why i didn't use just one card, this reason is that i would also change the Card picture and name, and i think these values cannot be dinamically changed.
I will make some test and finally i will decide how to implement it, surely i will keep your code suggestion for other cards of this set, i am glad to receive your feedback, it helps me a lot to improve new ideas.
NeoAnderson
 
Posts: 914
Joined: 10 Sep 2013, 07:49
Has thanked: 18 times
Been thanked: 139 times

Re: Age of Dodekatheon - NEW UPDATED 10/12/2013 (48 cards)

Postby RiiakShiNal » 13 Oct 2013, 14:42

Card picture and name can't be changed using a single card method, but considering DotP represents a card game, real cards can't change their pictures or names either.

Utimately, since we don't have access to the source code of the DotP game and can't make changes to the engine itself for some cards we have to decide what we can sacrifice to implement the card. Personally, I'm fine with sacrificing some things that are visual to get the abilities working and keep problems to a minimum.
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/12/2013 (48 cards)

Postby NeoAnderson » 13 Oct 2013, 15:53

I perfectly understand your meaning, and you're right, for this reason i am implementing your code inside Horae and now i am testing it. This code will help me a lot because in this way i haven't to manage counters and other aspect of the phases, like summon sickness, countering etc..etc..

Just last two question :
1) When you said : "Then copy it for ZONE_EXILE to eliminate any P/T setting bugs and allow it to keep any settings it should have while outside of the battlefield." have i to repeat the code with ZONE_EXILE instead of ZONE_ANY or ZONE_BATTELFIELD? (I suppose you are referring to the second one, because the ability is already active to ANY ZONES)

2)When we grant an ability the text is added as Blue text. Normally the card text is resized until the minimum size to avoid the scroll bar. There is anything i can do to make the added Blue text to be resized to avoid the scroll bar?? Because it seems to be added in normal size also if the card have the possibility to resize it.
NeoAnderson
 
Posts: 914
Joined: 10 Sep 2013, 07:49
Has thanked: 18 times
Been thanked: 139 times

Re: Age of Dodekatheon - NEW UPDATED 10/12/2013 (48 cards)

Postby RiiakShiNal » 13 Oct 2013, 22:30

NeoAnderson wrote:1) When you said : "Then copy it for ZONE_EXILE to eliminate any P/T setting bugs and allow it to keep any settings it should have while outside of the battlefield." have i to repeat the code with ZONE_EXILE instead of ZONE_ANY or ZONE_BATTELFIELD? (I suppose you are referring to the second one, because the ability is already active to ANY ZONES)
ZONE_ANY covers all zones except ZONE_EXILE, so if you want the abilities that should show outside of the battlefield to show on the card in exile then you need to copy the STATIC_ABILITY for ZONE_EXILE. An example of where this bug can be found is in official cards that set the P/T of the creature to something based on what is in players' hands or on the battlefield like Drove of Elves, Dungrove Elder, Geist-Honored Monk, Heedless One, Krovikan Mist, Multani, Maro-Sorcerer, Nightmare, and Primalcrux. This bug was first pointed out by thefiremind when he was testing Duplicant. All those cards have a STATIC_ABILITY with active_zone="ZONE_ANY", but when exiled that ability doesn't run. If the ability is copied and the copy is set to run in ZONE_EXILE the bug is fixed (you can see this in the core fixes v1.11).

NeoAnderson wrote:2)When we grant an ability the text is added as Blue text. Normally the card text is resized until the minimum size to avoid the scroll bar. There is anything i can do to make the added Blue text to be resized to avoid the scroll bar?? Because it seems to be added in normal size also if the card have the possibility to resize it.
As far as I know the only way to avoid the scroll bar is to not add abilities beyond what could show on the card without a scroll bar. Scroll bars on cards is controlled by the game engine (which we have no control over). The game engine considers regular ability (abilities without resource_id) text as an intrinsic part of the card and since it is based on a card game all of that text should be visible on the card without a scroll bar. Text that is added to a card through GrantAbility() is considered extra text that is not normally part of the card and if enough of that text is added it would extend beyond what would normally be on that box for the card so to keep things readable with a potentially unlimited amount of text it just defaults to the scroll bar.

This is another of those points where you have to choose which is more important; the way the text looks on the card or how the card functions. Granted it is possible to summon a token with all black text and exile the original card allowing for you to avoid the scrollbar, but is it worth the extra effort and code? The answer is up to you as you are the mod developer and there is no one right answer.
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/14/2013 (49 cards)

Postby NeoAnderson » 13 Oct 2013, 23:39

As always thanks Riiak, i perfectly understand your explanation about the Core's bug. I already coded the card and i don't need to add some particular ability to be reported into exile zone, but it will help for future cards.
About my questions about the look, this is just because i have few knowledge of DOTP and programming, so i always try to make the better result, and i don't want that my gaps , bring me on the wrong way. Many times i try to find the answer by myself through searching on the forum or inside the other cards' code, but Your answers are more specific and detailed!
So for now thanks of all your time and kindness, and if you want to take a look to these cards to let me know what you think i would be really glad.
NeoAnderson
 
Posts: 914
Joined: 10 Sep 2013, 07:49
Has thanked: 18 times
Been thanked: 139 times

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

Postby MysteryMindX » 16 Oct 2013, 16:17

Why after casting Poseidon it returns right back to my hand?
MysteryMindX
 
Posts: 10
Joined: 28 Sep 2013, 19:08
Has thanked: 1 time
Been thanked: 0 time

PreviousNext

Return to 2014

Who is online

Users browsing this forum: No registered users and 5 guests

Main Menu

User Menu

Our Partners


Who is online

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

Login Form