It is currently 16 Apr 2024, 04:37
   
Text Size

DotP2015: Fixing 2-colored Enchantment Creatures

Moderator: CCGHQ Admins

DotP2015: Fixing 2-colored Enchantment Creatures

Postby thefiremind » 02 Jul 2015, 18:59

I don't know if anyone already noticed, but if you try to code a 2-colored Enchantment Creature (such as Ephara, God of the Polis) in DotP2015, the card is invisibile inside the card collection (I haven't tried elsewhere). That's because its own Nyx frame is missing. However, if you take a look at the original card, you can see that the part with the stars is just golden with no trace of the card's colors, so Z_Nyx.tdx would be OK for any color combination... but the game doesn't know that. #-o So here's the fix: make copies of DATA_000\Data_All_Platforms\Art_Assets\Textures\Card\Frames\Z_Nyx.tdx in your own personal ZED file (respecting the original directory structure), one for each combination of 2 colors, and rename each copy with each color combination (WU_Nyx.tdx, RG_Nyx.tdx, etc.).
The result is perfect, as you can see here:
Image
It's time to exploit our new capability of computing 2-color devotions in DotP2015. :mrgreen:
< 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: 721 times

Re: DotP2015: Fixing 2-colored Enchantment Creatures

Postby Tejahn » 08 Jul 2015, 01:21

Yes. I noticed this earlier on during my test with an Enchantment deck. During the time I was experimenting with how to make the Lamia subtype show up on the Thoughtrender Lamia card I discovered this as well and came to the same conclusion but I was so focused on trying to get the subtype to show that I completely forgot to try it. Glad to know it's possible. Thanks!
Tejahn
 
Posts: 430
Joined: 14 May 2013, 01:35
Has thanked: 25 times
Been thanked: 25 times

Re: DotP2015: Fixing 2-colored Enchantment Creatures

Postby Tejahn » 19 Jul 2015, 02:57

TFM, do you mind sharing the card frames? I can't get the multicolor ones to show up.
Tejahn
 
Posts: 430
Joined: 14 May 2013, 01:35
Has thanked: 25 times
Been thanked: 25 times

Re: DotP2015: Fixing 2-colored Enchantment Creatures

Postby thefiremind » 19 Jul 2015, 08:53

Tejahn wrote:TFM, do you mind sharing the card frames? I can't get the multicolor ones to show up.
Download the attachment here and extract it to your unpacked ZED (the folder structure is already inside starting from Data_All_Platforms). Navigate it through the sub-folders until you reach the Frames sub-folder, then run the "runme.bat" you find inside. It will make the missing copies of the frame automatically and auto-delete itself.
Attachments
Golden Nyx Frames.zip
(40.45 KiB) Downloaded 311 times
< 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: 721 times

Re: DotP2015: Fixing 2-colored Enchantment Creatures

Postby Tejahn » 19 Jul 2015, 14:25

Atheros, God of Passage.png
Atheros, God of Passage

Devotion not working..png
Devotion not working.



Thanks! The frames show up now. However, I discovered another problem. The Devotion mechanic isn't working. Athreos, God of Passage becomes a creature as soon as he enters the battlefield regardless of devotion and Nykthos, Shrine to Nyx activated ability doesn't work.
Tejahn
 
Posts: 430
Joined: 14 May 2013, 01:35
Has thanked: 25 times
Been thanked: 25 times

Re: DotP2015: Fixing 2-colored Enchantment Creatures

Postby thefiremind » 19 Jul 2015, 15:50

Tejahn wrote:The Devotion mechanic isn't working.
My Ephara works, so a look at your code could help.
< 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: 721 times

Re: DotP2015: Fixing 2-colored Enchantment Creatures

Postby Tejahn » 19 Jul 2015, 16:17

You're right. And Can you post your code for comparison purposes? I used the one from the Journey into Nyx set. I'll post the code for Nykthos, Shrine to Nyx as well.

Athreos, God of Passage
Code: Select all
<?xml version='1.0' encoding='UTF-8'?>
<CARD_V2 ExportVersion="1">
  <FILENAME text="JOU_146_NEO_ATHREOS_GOD_OF_PASSAGE_995380374" />
  <CARDNAME text="ATHREOS_GOD_OF_PASSAGE" />
  <TITLE>
    <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Athreos, God of Passage]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Athréos, dieu du Passage]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Atreos, dios del paso]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Athreos, Gott der Überfahrt]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Atreo, Dio del Passaggio]]></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[Atreos, Deus da Passagem]]></LOCALISED_TEXT>
  </TITLE>
  <MULTIVERSEID value="995380374" />
  <ARTID value="995380374" />
  <ARTIST name="Ryan Barger" />
  <CASTING_COST cost="{1}{W}{B}" />
  <SUPERTYPE metaname="Legendary" />
  <TYPE metaname="Enchantment" />
  <TYPE metaname="Creature" />
  <SUB_TYPE metaname="God" />
  <EXPANSION value="JOU" />
  <RARITY metaname="C" />
  <POWER value="5" />
  <TOUGHNESS value="4" />
  <STATIC_ABILITY>
    <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Indestructible]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Indestructible]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Indestructible.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Unzerstörbar]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Indistruttibile]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[破壊不能]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[무적]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[Неразрушимость]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[Indestrutível]]></LOCALISED_TEXT>
    <INTRINSIC characteristic="CHARACTERISTIC_INDESTRUCTIBLE" />
  </STATIC_ABILITY>
  <STATIC_ABILITY>
    <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[As long as your devotion to white and black is less than seven, Athreos isn’t a creature.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Tant que votre dévotion au blanc et au noir est inférieure à sept, Athréos n’est pas une créature.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Mientras tu devoción al blanco y al negro sea menor que siete, Atreos no es una criatura.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Solange deine Hingabe zu Weiß und Schwarz weniger als sieben beträgt, ist Athreos keine Kreatur.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Fintanto che la tua devozione al bianco e al nero è inferiore a sette, Atreo non è una creatura.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[あなたの白と黒への信心が7未満であるかぎり、通行の神、エイスリオスはクリーチャーではない。]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[당신의 백흑 신앙심이 7 미만인 한, 에스리오스는 생물이 아니다.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[Пока ваша Преданность белому и черному меньше семи, Атрей не является существом.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[Enquanto sua devoção ao branco e ao preto for menor que sete, Atreos não será uma criatura.]]></LOCALISED_TEXT>
<CONTINUOUS_ACTION layer="4B">
    local source = EffectSource()
    if source ~= nil then
        local WBDevotion = Devotion_Player_Col_A_Col_B(COLOUR_WHITE, COLOUR_BLACK, EffectController())
        if WBDevotion &lt; 7 then
           local characteristics = source:GetCurrentCharacteristics()
           local card_type = characteristics:CardType_GetWritable()
           local sub_type = characteristics:SubType_GetWritable()
           sub_type:ClearAllOfType( CARD_TYPE_CREATURE )
           card_type:Clear()
           card_type:Add( CARD_TYPE_ENCHANTMENT )
        end
    end
</CONTINUOUS_ACTION>
  </STATIC_ABILITY>

  <TRIGGERED_ABILITY>
    <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Whenever another creature you own dies, return it to your hand unless target opponent pays 3 life.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[À chaque fois qu’une autre créature que vous possédez meurt, renvoyez-la dans votre main à moins que l’adversaire ciblé ne paie 3 points de vie.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Siempre que otra criatura de la cual seas propietario muera, regrésala a tu mano a menos que el oponente objetivo pague 3 vidas.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Immer wenn eine andere Kreatur stirbt, die du besitzt, bringe sie auf deine Hand zurück, falls ein Gegner deiner Wahl nicht 3 Lebenspunkte bezahlt.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Ogniqualvolta un’altra creatura che possiedi muore, riprendila in mano a meno che un avversario bersaglio non paghi 3 punti vita.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[あなたがオーナーである他のクリーチャーが1体死亡するたび、対戦相手1人を対象とする。そのプレイヤーがライフを3点支払わないかぎり、それをあなたの手札に戻す。]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[당신이 소유한 다른 생물이 죽을 때마다, 상대를 목표로 정한다. 그 상대가 생명 3점을 지불하지 않으면 그 생물을 당신의 손으로 되돌린다.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[Каждый раз, когда другое существо, владельцем которого вы являетесь, умирает, верните его в вашу руку, если только целевой оппонент не заплатит 3 жизни.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[Toda vez que outra criatura que você possui morrer, devolva-a para a sua mão, a menos que o oponente alvo pague 3 pontos de vida.]]></LOCALISED_TEXT>
<TRIGGER value="ZONECHANGE_BEGIN" to_zone="ZONE_GRAVEYARD" from_zone="ZONE_BATTLEFIELD">
    return TriggerObject() ~= EffectSource() and TriggerObject():GetOwner() == EffectController()
    </TRIGGER>
   <TARGET tag="CARD_QUERY_CHOOSE_OPPONENT" definition="0" compartment="0" count="1" />
      <TARGET_DEFINITION id="0">
    local filter = ClearFilter()
    filter:SetFilterType( FILTER_TYPE_PLAYERS )
    filter:Add( FE_TEAM, OP_NOT, EffectController():GetTeam() )
    </TARGET_DEFINITION>

   <RESOLUTION_TIME_ACTION>
    local player = EffectDC():Get_Targets(0):Get_PlayerPtr(0)
       if player ~= nil and player:CanPayResourceCost(1) then
          player:BeginNewMultipleChoice()
         player:AddMultipleChoiceAnswer( "UI_CONDITIONAL_QUESTION_YES", player:GetLifeTotal() &gt; 2 )
          player:AddMultipleChoiceAnswer("UI_CONDITIONAL_QUESTION_NO")
          player:AskMultipleChoiceQuestion( "CARD_QUERY_ATHREOS_GOD_OF_PASSAGE_QUESTION", TriggerObject() )
 
       end
    </RESOLUTION_TIME_ACTION>
      <RESOLUTION_TIME_ACTION>
    local target = TriggerObject()
    if target ~= nil then
       local player = EffectDC():Get_Targets(0):Get_PlayerPtr(0)
       if player ~= nil and player:CanPayResourceCost(1) and player:GetMultipleChoiceResult() == 0 then
          player:PayResourceCost(1)
       else
          target:PutInHand()
       end
    end
    </RESOLUTION_TIME_ACTION>
  </TRIGGERED_ABILITY>

   <UTILITY_ABILITY resource_id="1">
      <COST type="Life" amount="3" />
   </UTILITY_ABILITY>
  <HELP title="MORE_INFO_BADGE_TITLE_8" body="MORE_INFO_BADGE_BODY_8" zone="ZONE_ANY" />
  <SFX text="COMBAT_BLUNT_LARGE_ATTACK" power_boundary_min="4" power_boundary_max="-1" />
  <SFX text="COMBAT_BLUNT_SMALL_ATTACK" power_boundary_min="1" power_boundary_max="3" />
   <AI_BASE_SCORE score="1100" zone="ZONE_BATTLEFIELD" />
</CARD_V2>
Nykthos, Shrine to Nyx
Code: Select all
<?xml version='1.0' encoding='UTF-8'?>
<CARD_V2 ExportVersion="1">
  <FILENAME text="THS_223_NEO_NYKTHOS_SHRINE_TO_NYX_999373713" />
  <CARDNAME text="NYKTHOS_SHRINE_TO_NYX" />
  <TITLE>
    <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Nykthos, Shrine to Nyx]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Nykthos, reliquaire de Nyx]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Nyktos, altar de Nyx]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Nykthos, Schrein von Nyx]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Nyktos, Santuario di Nyx]]></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[Nyktos, Santuário de Nyx]]></LOCALISED_TEXT>
  </TITLE>
  <MULTIVERSEID value="999373713" />
  <ARTID value="999373713" />
  <ARTIST name="Jung Park" />
  <CASTING_COST cost="" />
  <SUPERTYPE metaname="Legendary" />
  <TYPE metaname="Land" />
  <EXPANSION value="THS" />
  <RARITY metaname="C" />
  <MANA_ABILITY>
    <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[{T}: Add {1} to your mana pool.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[{T} : Ajoutez {1} à votre réserve.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[{T}: Agrega {1} a tu reserva de maná.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[{T}: Erhöhe deinen Manavorrat um {1}.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[{T}: Aggiungi {1} alla tua riserva di mana.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[{T}:あなたのマナ・プールに{1}を加える。]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[{T}: {1}을 당신의 마나풀에 담는다.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[{T}: добавьте {1} в ваше хранилище маны.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[{T}: Adicione {1} à sua reserva de mana.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="zh-CN"><![CDATA[{T}:加{1}到你的法术力池中。]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="zh-HK"><![CDATA[{T}:加{1}到你的魔法力池中。]]></LOCALISED_TEXT>
    <PRODUCES amount="{1}" />
      <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" />
  </MANA_ABILITY>
   <ACTIVATED_ABILITY forced_skip="1">
      <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[{2}, {T}: Choose a color. Add to your mana pool an amount of mana of that color equal to your devotion to that color. |(Your devotion to a color is the number of mana symbols of that color in the mana costs of permanents you control.)|]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[{2}, {T}: Choisissez une couleur. Ajoutez à votre réserve une quantité de mana de cette couleur égale à votre dévotion à cette couleur. |(Votre dévotion à une couleur est le nombre de symboles de mana de cette couleur dans les coûts de mana des permanents que vous contrôlez.)|]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[{2}, {T}: Elige un color. Agrega a tu reserva de maná una cantidad de maná de ese color igual a tu devoción a ese color. |(Tu devoción a un color es la cantidad de símbolos de maná de ese color en los costes de maná de los permanentes que controlas.)|]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[{2}, {T}: Bestimme eine Farbe. Erhöhe deinen Manavorrat um so viel Mana dieser Farbe, wie deine Hingabe zu dieser Farbe beträgt. |(Jedes Manasymbol in den Manakosten von bleibenden Karten, die du kontrollierst, erhöht deine Hingabe zu der entsprechenden Farbe um eins.)|]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[{2}, {T}: Scegli un colore. Aggiungi alla tua riserva di mana un ammontare di mana di quel colore pari alla tua devozione a quel colore. |(La tua devozione a un colore è il numero di simboli di mana di quel colore nel costo di mana dei permanenti che controlli.)|]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[{2}, {T}:色を1つ選ぶ。あなたのマナ・プールに、あなたのその色への信心に等しい点数の、その色のマナを加える。(あなたの色への信心は、あなたがコントロールするパーマネントのマナ・コスト内に含まれるその色のマナ・シンボルの数である。)]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[{2}, {T}: 색 하나를 선택한다. 당신의 마나풀에 당신이 선택한 색의 마나를 그 색에 대한 신앙심만큼 담는다. |(어떤 색에 대한 당신의 신앙심은 당신이 조종하는 지속물에 나온 그 색의 마나 기호 하나당 1씩 증가한다.)|]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[{2}, {T}: выберите цвет. Добавьте в ваше хранилище маны количество маны того цвета, равное вашей Преданности тому цвету. |(Ваша Преданность цвету равна общему количеству символов маны этого цвета в мана-стоимости перманентов под вашим контролем.)|]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[{2}, {T}: Escolha uma cor. Adicione à sua reserva de mana uma quantidade de mana daquela cor igual à sua devoção àquela cor. |(Sua devoção àquela cor é o número de símbolos de mana daquela cor nos custos de mana das permanentes que você controla.)|]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="zh-CN"><![CDATA[{2},{T}:选择一种颜色。加若干该色法术力到你的法术力池中,其数量等同于你的该色献力。(你的某色献力,便是由你操控的所有永久物之法术力费用中,该色法术力符号的总数量。)]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="zh-HK"><![CDATA[{2},{T}:選擇一種顏色。加若干該色魔法力到你的魔法力池中,其數量等同於你的該色獻力。(你的某色獻力,便是由你操控的所有永久物之魔法力費用中,該色魔法力符號的總數量。)]]></LOCALISED_TEXT>
      <COST type="Mana" mana_cost="{2}" />
      <COST type="TapSelf" />
      <PLAY_TIME_ACTION>
         RSN_MarkManaAbilityStart()
      </PLAY_TIME_ACTION>
      <RESOLUTION_TIME_ACTION>
         -- Need to choose a colour first.
         EffectController():ChooseColour( "CARD_QUERY_CHOOSE_COLOUR", true )
      </RESOLUTION_TIME_ACTION>
      <RESOLUTION_TIME_ACTION>
         -- Get the chosen colour.
         local nColour = GetChosenColour()

         -- Now we need to count devotion to the chosen colour.
         local oFilter = ClearFilter()
         oFilter:Add( FE_CONTROLLER, OP_IS, EffectController() )
         local oSubFilter = oFilter:AddSubFilter_Or()
         oSubFilter:Add( FE_TYPE, OP_IS, CARD_TYPE_ARTIFACT )
         oSubFilter:Add( FE_TYPE, OP_IS, CARD_TYPE_CREATURE )
         oSubFilter:Add( FE_TYPE, OP_IS, CARD_TYPE_ENCHANTMENT )
         oSubFilter:Add( FE_TYPE, OP_IS, CARD_TYPE_LAND )
         oSubFilter:Add( FE_TYPE, OP_IS, CARD_TYPE_PLANESWALKER )
         local nTotal = oFilter:ChromaCount( nColour )

         -- Now that we know how much devotion to that colour we have, we can produce that much mana.
         if (nTotal ~= 0) then
            if (nColour == COLOUR_BLACK) then
               RSN_Produce( "{B}", nTotal )
            elseif (nColour == COLOUR_BLUE) then
               RSN_Produce( "{U}", nTotal )
            elseif (nColour == COLOUR_GREEN) then
               RSN_Produce( "{G}", nTotal )
            elseif (nColour == COLOUR_RED) then
               RSN_Produce( "{R}", nTotal )
            elseif (nColour == COLOUR_WHITE) then
               RSN_Produce( "{W}", nTotal )
            end
         end
      </RESOLUTION_TIME_ACTION>
      <RESOLUTION_TIME_ACTION>
         RSN_EliminateExtraManaTokens()
         RSN_MarkManaAbilityEnd()
      </RESOLUTION_TIME_ACTION>
      <AI_AVAILABILITY window_step="upkeep" type="window" />
      <AI_AVAILABILITY window_step="main_1" window_turn="my_turn" type="window" />
      <AI_AVAILABILITY window_step="begin_combat" window_turn="their_turn" type="window" />
      <AI_AVAILABILITY window_step="declare_attackers" window_turn="their_turn" type="window" />
      <AI_AVAILABILITY window_step="declare_blockers" type="window" />
      <AI_AVAILABILITY window_step="main_2" window_turn="my_turn" type="window" />
      <AI_AVAILABILITY window_step="end_of_turn" type="window" />
      <AI_AVAILABILITY window_step="end_of_turn" window_turn="their_turn" type="window" />
      <AI_AVAILABILITY type="in_response" response_source="1" response_target="1" />
      <AI_AVAILABILITY type="in_response" response_source="1" />
      <AI_AVAILABILITY type="in_response" response_target="1" />
   </ACTIVATED_ABILITY>
   <STATIC_ABILITY>
      <CONTINUOUS_ACTION layer="0">
         RSN_ClearCanProduceMana()
         RSN_MarkCanProduceMana( "{1}{B}{G}{R}{U}{W}" )
      </CONTINUOUS_ACTION>
      <CONTINUOUS_ACTION layer="8">
         local oCard = EffectSource()
         if (RSN_CheckSwitchToFallback( oCard )) then
            local oCharacteristics = oCard:GetCurrentCharacteristics()
            oCharacteristics:GrantAbility( 0 )
         end
      </CONTINUOUS_ACTION>
   </STATIC_ABILITY>
   <TRIGGERED_ABILITY forced_skip="1" replacement_effect="1">
      <TRIGGER value="BEGINNING_OF_STEP" pre_trigger="1" />
      <RESOLUTION_TIME_ACTION>
         RSN_ClearProducedMana()
      </RESOLUTION_TIME_ACTION>
   </TRIGGERED_ABILITY>
   <MANA_ABILITY resource_id="0">
      <COST type="TapSelf" />
      <PRODUCES amount="{1}" />
   </MANA_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>
Tejahn
 
Posts: 430
Joined: 14 May 2013, 01:35
Has thanked: 25 times
Been thanked: 25 times

Re: DotP2015: Fixing 2-colored Enchantment Creatures

Postby thefiremind » 19 Jul 2015, 16:32

I don't know who made the Devotion_Player_Col_A_Col_B function, but you didn't even try to use the official function provided by DotP2015, so I'm not surprised you had different results... ;)

Ephara, God of the Polis (tested, needs the function below) | Open
Code: Select all
<?xml version="1.0"?>
<CARD_V2 ExportVersion="1">
  <FILENAME text="EPHARA_GOD_OF_THE_POLIS_199378517" />
  <CARDNAME text="EPHARA_GOD_OF_THE_POLIS" />
  <TITLE>
    <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Ephara, God of the Polis]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Éphara, déesse de la Polis]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Efara, diosa de la polis]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Ephara, Göttin der Polis]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Efara, Dea della Polis]]></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[Efara, Deusa da Pólis]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="zh-CN"><![CDATA[城邦神厄芳拉]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="zh-HK"><![CDATA[城邦神厄芳拉]]></LOCALISED_TEXT>
  </TITLE>
  <MULTIVERSEID value="199378517" />
  <ARTID value="199378517" />
  <ARTIST name="Eric Deschamps" />
  <CASTING_COST cost="{2}{W}{U}" />
  <SUPERTYPE metaname="Legendary" />
  <TYPE metaname="Creature" />
  <TYPE metaname="Enchantment" />
  <SUB_TYPE metaname="God" />
  <EXPANSION value="BNG" />
  <RARITY metaname="M" />
  <POWER value="6" />
  <TOUGHNESS value="5" />
  <STATIC_ABILITY>
    <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Indestructible]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Indestructible]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Indestructible.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Unzerstörbar]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Indistruttibile]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[破壊不能]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[무적]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[Неразрушимость]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[Indestrutível]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="zh-CN"><![CDATA[不灭]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="zh-HK"><![CDATA[不滅]]></LOCALISED_TEXT>
    <INTRINSIC characteristic="CHARACTERISTIC_INDESTRUCTIBLE" />
  </STATIC_ABILITY>
  <STATIC_ABILITY>
    <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[As long as your devotion to white and blue is less than seven, Ephara isn’t a creature.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Tant que votre dévotion au blanc et au bleu est inférieure à sept, Éphara n’est pas une créature.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Mientras tu devoción al blanco y al azul sea menor que siete, Efara no es una criatura.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Solange deine Hingabe zu Weiß und Blau weniger als sieben beträgt, ist Ephara keine Kreatur.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Fintanto che la tua devozione al bianco e al blu è inferiore a sette, Efara non è una creatura.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[あなたの白と青への信心が7未満であるかぎり、都市国家の神、エファラはクリーチャーではない。]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[당신의 백청 신앙심이 7 미만인 한, 에파라는 생물이 아니다.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[Пока ваша Преданность белому и синему меньше семи, Эфара не является существом.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[Enquanto sua devoção ao branco e ao azul for menor que sete, Efara não será uma criatura.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="zh-CN"><![CDATA[只要你的白蓝两色献力小于七,厄芳拉便不是生物。]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="zh-HK"><![CDATA[只要你的白藍兩色獻力小於七,厄芳拉便不是生物。]]></LOCALISED_TEXT>
    <CONTINUOUS_ACTION layer="4B">
    if EffectController():GetDevotionTo(COLOUR_WHITE, COLOUR_BLUE) &lt; 7 then
       TFM_RemoveCardType( EffectSource(), CARD_TYPE_CREATURE )
    end
    </CONTINUOUS_ACTION>
  </STATIC_ABILITY>
  <TRIGGERED_ABILITY>
    <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[At the beginning of each upkeep, if you had another creature enter the battlefield under your control last turn, draw a card.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Au début de chaque entretien, si vous avez fait arriver une autre créature sur le champ de bataille sous votre contrôle au tour précédent, piochez une carte.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Al comienzo de cada mantenimiento, si otra criatura entró al campo de batalla bajo tu control el turno anterior, roba una carta.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Ziehe zu Beginn jedes Versorgungssegments eine Karte, falls im letzten Zug eine andere Kreatur unter deiner Kontrolle ins Spiel gekommen ist.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[All’inizio di ogni mantenimento, se hai fatto entrare nel campo di battaglia un’altra creatura sotto il tuo controllo nell’ultimo turno, pesca una carta.]]></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[No início de cada manutenção, se outra criatura entrou no campo de batalha sob o seu controle no último turno, compre um card.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="zh-CN"><![CDATA[在每个维持开始时,若上回合中有另一个生物在你的操控下进战场,则抓一张牌。]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="zh-HK"><![CDATA[在每個維持開始時,若上回合中有另一個生物在你的操控下進戰場,則抽一張牌。]]></LOCALISED_TEXT>
    <TRIGGER value="BEGINNING_OF_STEP">
    return MTG():GetStep() == STEP_UPKEEP
    </TRIGGER>
    <INTERVENING_IF>
    -- Did any creature enter the battlefield under your control last turn?
    local interrogation = MTG():ClearInterrogationQuery()
    interrogation:SetToZone(ZONE_BATTLEFIELD)
    interrogation:SetPlayer( EffectController() )
    interrogation:SetType(CARD_TYPE_CREATURE)
    local creatures_entered = interrogation:Count(INTERROGATE_CARDS_MOVED_ZONE, INTERROGATE_PREVIOUS_TURN, 2)

    -- Did Ephara herself enter the battlefield under your control last turn?
    interrogation:SetObject( EffectSourceLKI() )
    local ephara_entered = interrogation:Count(INTERROGATE_CARDS_MOVED_ZONE, INTERROGATE_PREVIOUS_TURN, 1)

    return (creatures_entered - ephara_entered) &gt; 0
    </INTERVENING_IF>
    <RESOLUTION_TIME_ACTION>
    EffectController():DrawCards(1)
    </RESOLUTION_TIME_ACTION>
  </TRIGGERED_ABILITY>
  <HELP title="MORE_INFO_BADGE_TITLE_8" body="MORE_INFO_BADGE_BODY_8" zone="ZONE_ANY" />
  <HELP title="MORE_INFO_TITLE_DEVOTION" body="MORE_INFO_BODY_DEVOTION" zone="ZONE_ANY" />
  <SFX text="COMBAT_WHITE_MAGIC_LARGE_ATTACK" power_boundary_min="4" power_boundary_max="-1" />
  <SFX text="COMBAT_WHITE_MAGIC_SMALL_ATTACK" power_boundary_min="1" power_boundary_max="3" />
  <AI_BASE_SCORE score="900" zone="ZONE_BATTLEFIELD" />
</CARD_V2>
TFM_RemoveCardType function | Open
Code: Select all
TFM_RemoveCardType = function(object, type)
-- removes the specified type from object, re-applying the other ones when needed
   local characteristics = object and object:GetCurrentCharacteristics()
   if characteristics ~= nil then
      characteristics:SubType_GetWritable():ClearAllOfType(type)
      local old_types = {}
      for t=0,7 do
         old_types[t] = object:GetCardType():Test(t)
      end
      local card_type = characteristics:CardType_GetWritable()
      card_type:Clear()
      for t=0,7 do
         if old_types[t] and t ~= type then
            card_type:Add(t)
         end
      end
   end
end
I'm quite satisfied with the way I made the check for "if you had another creature enter the battlefield under your control last turn", maybe it will serve for other purposes as well.
< 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: 721 times

Re: DotP2015: Fixing 2-colored Enchantment Creatures

Postby Tejahn » 19 Jul 2015, 18:17

I used an XML from a mod. I didn't even think to examine the code. Lol. And thanks again for the help.
Tejahn
 
Posts: 430
Joined: 14 May 2013, 01:35
Has thanked: 25 times
Been thanked: 25 times

Re: DotP2015: Fixing 2-colored Enchantment Creatures

Postby Xander9009 » 19 Jul 2015, 19:52

Tejahn wrote:I used an XML from a mod. I didn't even think to examine the code. Lol. And thanks again for the help.
Yep. That's Neo's function (possibly a modified version of Sumo's function? and if you need DEVOTION_FUNCTIONS.LOL for the definition.
_______________________________
Community Wad - Community Wad Website - How to Help and Report Bugs
Discord: discord.gg/4AXvHzW
User avatar
Xander9009
Programmer
 
Posts: 2905
Joined: 29 Jun 2013, 07:44
Location: Indiana, United States
Has thanked: 121 times
Been thanked: 445 times

Re: DotP2015: Fixing 2-colored Enchantment Creatures

Postby Tejahn » 19 Jul 2015, 21:01

It's working now. And I'll extract the functions from the CW.
Tejahn
 
Posts: 430
Joined: 14 May 2013, 01:35
Has thanked: 25 times
Been thanked: 25 times


Return to Programming Talk

Who is online

Users browsing this forum: No registered users and 22 guests

cron

Who is online

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

Users browsing this forum: No registered users and 22 guests

Login Form