Board index Programs with AI or Rules Enforcement Magic: The Gathering - Duels of the Planeswalkers Programming Talk
Question about Mana pool (Kruphix, God of Horizons)
Moderator: CCGHQ Admins
Question about Mana pool (Kruphix, God of Horizons)
by NeoAnderson » 26 Aug 2014, 20:02
Need a suggestion to check amount of mana inside the mana pool. I think that GetTotalMana() returns also the mana still not tapped.
I would try to code : Kruphix, God of Horizons
I always use manual mana, so probably is just necessary count the mana tokens before the end of each step?
I am looking to Riiak Manual Mana Functions and i found this one RSN_CountColourManaInPlayerPool.
So i think we could use something like :
I would try to code : Kruphix, God of Horizons
I always use manual mana, so probably is just necessary count the mana tokens before the end of each step?
I am looking to Riiak Manual Mana Functions and i found this one RSN_CountColourManaInPlayerPool.
So i think we could use something like :
- Code: Select all
local filter = ClearFilter()
filter:Add( FE_CONTROLLER, OP_IS, Player )
local subfilter = filter:AddSubFilter_Or()
subfilter:Add( FE_CARD_NAME, OP_IS, "RSN_TOKEN_MANA_C" )
subfilter:Add( FE_CARD_NAME, OP_IS, "RSN_TOKEN_MANA_B" )
subfilter:Add( FE_CARD_NAME, OP_IS, "RSN_TOKEN_MANA_U" )
subfilter:Add( FE_CARD_NAME, OP_IS, "RSN_TOKEN_MANA_G" )
subfilter:Add( FE_CARD_NAME, OP_IS, "RSN_TOKEN_MANA_R" )
subfilter:Add( FE_CARD_NAME, OP_IS, "RSN_TOKEN_MANA_W" )
local AvailableMana = filter:Count()
Last edited by NeoAnderson on 27 Aug 2014, 03:04, edited 1 time in total.
- NeoAnderson
- Posts: 914
- Joined: 10 Sep 2013, 07:49
- Has thanked: 18 times
- Been thanked: 139 times
Re: Question about Mana pool
by gorem2k » 26 Aug 2014, 21:57
NeoAnderson wrote:I am looking to Riiak Manual Mana Functions and i found this one RSN_CountColourManaInPlayerPool.
So i think we could use something like :
- Code: Select all
local filter = ClearFilter()
filter:Add( FE_CONTROLLER, OP_IS, Player )
local subfilter = filter:AddSubFilter_Or()
subfilter:Add( FE_CARD_NAME, OP_IS, "RSN_TOKEN_MANA_C" )
subfilter:Add( FE_CARD_NAME, OP_IS, "RSN_TOKEN_MANA_B" )
subfilter:Add( FE_CARD_NAME, OP_IS, "RSN_TOKEN_MANA_U" )
subfilter:Add( FE_CARD_NAME, OP_IS, "RSN_TOKEN_MANA_G" )
subfilter:Add( FE_CARD_NAME, OP_IS, "RSN_TOKEN_MANA_R" )
subfilter:Add( FE_CARD_NAME, OP_IS, "RSN_TOKEN_MANA_W" )
local AvailableMana = filter:Count()
nevermind, it's for unused mana
you could replace all these filteredcard with a RSN_TOKEN_MANA_C
and I think there's already a card that does prevent from emptying mana pool. I think it's in sumomole mod.
but wait, does it empty? it's only saying it becomes colorless. doesn't say it stay in your pool.. what's the use for this?
ok, I,ve read the card ruling. it stays as long as it's in play. Riiak will surely help you with this
Re: Question about Mana pool
by NeoAnderson » 26 Aug 2014, 22:51
gorem2k wrote:yes it counts the mana tokens but what if a land is not tapped, then the token is not in play yet.
nevermind, it's for unused mana
you could replace all these filteredcard with a RSN_TOKEN_MANA_C
and I think there's already a card that does prevent from emptying mana pool. I think it's in sumomole mod.
but wait, does it empty? it's only saying it becomes colorless. doesn't say it stay in your pool.. what's the use for this?
ok, I,ve read the card ruling. it stays as long as it's in play. Riiak will surely help you with this
1. I was thinking to read how many tokens are in play before they are going to be exiled during the end of steps, save the value into a register (LinkedDC) then make a trigger at beginning of each step produce with notrigger X(stored value) colorless mana tokens.
2. Another way is to read how many tokens are in play before they are going to be exiled during the end of steps, then use a modified colorless mana token who will not expire at end of each step.
- NeoAnderson
- Posts: 914
- Joined: 10 Sep 2013, 07:49
- Has thanked: 18 times
- Been thanked: 139 times
Re: Question about Mana pool
by gorem2k » 27 Aug 2014, 00:20
this is how sumomole coded Omnath, Locus of Mana in DotP 2013
- Code: Select all
<TRIGGERED_ABILITY internal="1" pre_trigger="1">
<LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Green mana doesn’t empty from your mana pool as steps and phases end.]]></LOCALISED_TEXT>
<TRIGGER value="ZONECHANGE_CONSIDERED" simple_qualifier="objectyoucontrol" to_zone="ZONE_ANY" from_zone="ZONE_IN_PLAY">
if ( TriggerObject():GetCardName() == "_TOKEN_G_624998" ) and ( TriggerObject():Tapped() == 0 ) then
override = true
return true
end
return false
</TRIGGER>
</TRIGGERED_ABILITY>
Re: Question about Mana pool
by RiiakShiNal » 27 Aug 2014, 00:23
To prevent unused mana from leaving the battlefield you would use a ZONECHANGE_CONSIDERED trigger and check to see if the card a mana token and is untapped then simply override the event. You can look at Shizuko, Caller of Autumn (RSN_SHIZUKO_CALLER_OF_AUTUMN_74436) in my mod to see how I prevented mana from leaving play. Do note though that you can't use a delayed trigger for this (it eventually leads to a crash condition).
To change mana to colourless if it would empty from the pool you would still do the trigger above, but you would only override the event if it is a colourless token, otherwise you would allow it to change zones and simply replace it with a colourless mana token.
So overall this is not a very difficult ability (certainly simpler than other abilities you've worked on). No need for custom tokens, don't need to mess with a LinkedDC() or triggers to produce at each step. You don't need to know how much mana is in the pool as you don't care. You need only deal with untapped mana tokens trying to leave play and that can be done as I explained.
To change mana to colourless if it would empty from the pool you would still do the trigger above, but you would only override the event if it is a colourless token, otherwise you would allow it to change zones and simply replace it with a colourless mana token.
So overall this is not a very difficult ability (certainly simpler than other abilities you've worked on). No need for custom tokens, don't need to mess with a LinkedDC() or triggers to produce at each step. You don't need to know how much mana is in the pool as you don't care. You need only deal with untapped mana tokens trying to leave play and that can be done as I explained.
Just getting started: Xander9009's DotP 2014 Community Wad
Need a deck builder: DotP 2014 Deck Builder
Problems Modding: DotP 2014 Frequent Modding Mistakes
Need a deck builder: DotP 2014 Deck Builder
Problems Modding: DotP 2014 Frequent Modding Mistakes
- RiiakShiNal
- Programmer
- Posts: 2185
- Joined: 16 May 2011, 21:37
- Has thanked: 75 times
- Been thanked: 496 times
Re: Question about Mana pool
by NeoAnderson » 27 Aug 2014, 02:54
Thanks guys, I think to have finally get a working version, as suggested by Riiak i made it without any LinkedDC or Delayed Trigger.
Here you can find my code (Please someone could make some tests on it, will be helpful, i would avoid any trouble as like game crashed...)
Here you can find my code (Please someone could make some tests on it, will be helpful, i would avoid any trouble as like game crashed...)
- Kruphix, God of Horizons Neo Rev 1.0 | Open
- Code: Select all
<?xml version='1.0' encoding='UTF-8'?>
<CARD_V2 ExportVersion="1">
<FILENAME text="JOU_152_NEO_KRUPHIX_GOD_OF_HORIZONS_995380446" />
<CARDNAME text="KRUPHIX_GOD_OF_HORIZONS" />
<TITLE>
<LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Kruphix, God of Horizons]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Kruphix, dieu des Horizons]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Krufix, dios de los horizontes]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Kruphix, Gott der Horizonte]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Krufix, Dio degli Orizzonti]]></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[Crufix, Deus dos Horizontes]]></LOCALISED_TEXT>
</TITLE>
<MULTIVERSEID value="995380446" />
<ARTID value="995380446" />
<ARTIST name="Daarken" />
<CASTING_COST cost="{3}{G}{U}" />
<SUPERTYPE metaname="Legendary" />
<TYPE metaname="Enchantment" />
<TYPE metaname="Creature" />
<SUB_TYPE metaname="God" />
<EXPANSION value="JOU" />
<RARITY metaname="M" />
<POWER value="4" />
<TOUGHNESS value="7" />
<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 green and blue is less than seven, Kruphix isn’t a creature.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Tant que votre dévotion au vert et au bleu est inférieure à sept, Kruphix n’est pas une créature.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Mientras tu devoción al verde y al azul sea menor que siete, Krufix no es una criatura.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Solange deine Hingabe zu Grün und Blau weniger als sieben beträgt, ist Kruphix keine Kreatur.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Fintanto che la tua devozione al verde e al blu è inferiore a sette, Krufix 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 verde e ao azul for menor que sete, Crufix não será uma criatura.]]></LOCALISED_TEXT>
<CONTINUOUS_ACTION layer="4">
local source = EffectSource()
if source ~= nil then
local WBDevotion = Devotion_Player_Col_A_Col_B(COLOUR_RED, COLOUR_WHITE, EffectController())
if WBDevotion < 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>
<STATIC_ABILITY>
<LOCALISED_TEXT LanguageCode="en-US"><![CDATA[You have no maximum hand size.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Il n’y a pas de limite au nombre de cartes dans votre main.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Tu mano no tiene tamaño máximo.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Es gibt keine Obergrenze für die Anzahl an Karten, die du auf der Hand halten darfst.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Non hai un limite massimo di carte nella tua mano.]]></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[Não há limite para o número máximo de cards em sua mão.]]></LOCALISED_TEXT>
<CONTINUOUS_ACTION layer="8">
EffectController():GetCurrentCharacteristics():Bool_Set(PLAYER_CHARACTERISTIC_NO_HAND_LIMIT, 1)
</CONTINUOUS_ACTION>
</STATIC_ABILITY>
<STATIC_ABILITY>
<LOCALISED_TEXT LanguageCode="en-US"><![CDATA[If unused mana would empty from your mana pool, that mana becomes colorless instead.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Si du mana inutilisé devait être vidé de votre réserve, ce mana devient incolore à la place.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Si fuera a vaciarse maná no utilizado de tu reserva de maná, en vez de eso, ese maná se convierte en incoloro.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Falls unverbrauchtes Mana aus deinem Manavorrat entfernt würde, wird dieses Mana stattdessen farblos.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Se del mana inutilizzato sta per essere rimosso dalla tua riserva di mana, quel mana diventa invece incolore.]]></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[Se o mana não usado for ser esvaziado da sua reserva de mana, em vez disso, aquele mana se tornará incolor.]]></LOCALISED_TEXT>
</STATIC_ABILITY>
<TRIGGERED_ABILITY replacement_effect="1" replacement_query="1" linked_ability_group="1">
<TRIGGER value="ZONECHANGE_CONSIDERED" simple_qualifier="objectyoucontrol" to_zone="ZONE_ANY" from_zone="ZONE_BATTLEFIELD" pre_trigger="1">
if (TriggerObject() ~= nil) and (TriggerObject():IsTapped() == false) then
RSN_MarkManaAbilityStart()
if (TriggerObject():GetCardName() == "TOKEN_MANA_C") then
MTG():OverrideEvent()
return true
elseif (TriggerObject():GetCardName() == "TOKEN_MANA_W") then
RSN_ProduceNoTrigger( "{1}", 1 )
elseif (TriggerObject():GetCardName() == "TOKEN_MANA_U") then
RSN_ProduceNoTrigger( "{1}", 1 )
elseif (TriggerObject():GetCardName() == "TOKEN_MANA_R") then
RSN_ProduceNoTrigger( "{1}", 1 )
elseif (TriggerObject():GetCardName() == "TOKEN_MANA_B") then
RSN_ProduceNoTrigger( "{1}", 1 )
elseif (TriggerObject():GetCardName() == "TOKEN_MANA_G") then
RSN_ProduceNoTrigger( "{1}", 1 )
end
end
RSN_MarkManaAbilityEnd()
return false
</TRIGGER>
<TOKEN_REGISTRATION reservation="1" type="RSN_TOKEN_MANA_C" />
</TRIGGERED_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="1500" zone="ZONE_BATTLEFIELD" />
</CARD_V2>
- Neo Devotion functions | Open
- Code: Select all
NEO_ReturnDualDevotion = function(dVal, DevotionType)
local dChest = EffectDC():Make_Chest(0)
dChest:Set_Int(0,0)
dChest:Set_Int(1,0)
dChest:Set_Int(2,0)
dChest:Set_Int(3,0)
dChest:Set_Int(4,0)
dChest:Set_Int(5,0)
dChest:Set_Int(6,0)
dChest:Set_Int(7,0)
dChest:Set_Int(8,0)
dChest:Set_Int(9,0)
if (dVal == "BATTLEGATE_MIMIC") or (dVal == "BELLIGERENT_HATCHLING") or (dVal == "BOROS_RECRUIT") or (dVal == "DUERGAR_ASSAILANT") or (dVal == "DUERGAR_HEDGEMAGE") or (dVal == "DUERGAR_MINECAPTAIN") or (dVal == "FIGURE_OF_DESTINY") or (dVal == "HOBGOBLIN_DRAGOON") or (dVal == "SCOURGE_OF_THE_NOBILIS") then
-- DEVOTION : {R/W}
dChest:Set_Int(0,1)
dChest:Set_Int(1,1)
dChest:Set_Int(2,1)
dChest:Set_Int(3,1)
dChest:Set_Int(4,0)
dChest:Set_Int(5,1)
dChest:Set_Int(6,0)
dChest:Set_Int(7,1)
dChest:Set_Int(8,0)
dChest:Set_Int(9,1)
elseif (dVal == "SCUZZBACK_SCRAPPER") or (dVal == "TATTERMUNGE_MANIAC") or (dVal == "WILD_CANTOR") or (dVal == "TATTERMUNGE_WITCH") or (dVal == "TATTERMUNGE_DUO") or (dVal == "IMPROMPTU_RAID") or (dVal == "ROSHEEN_MEANDERER") or (dVal == "RUNES_OF_THE_DEUS") or (dVal == "SCUZZBACK_MARAUDERS") or (dVal == "VALLEYMAKER") then
-- DEVOTION : {R/G}
dChest:Set_Int(0,0)
dChest:Set_Int(1,0)
dChest:Set_Int(2,1)
dChest:Set_Int(3,1)
dChest:Set_Int(4,0)
dChest:Set_Int(5,1)
dChest:Set_Int(6,1)
dChest:Set_Int(7,1)
dChest:Set_Int(8,1)
dChest:Set_Int(9,1)
elseif (dVal == "CURSE_OF_CHAINS") or (dVal == "GLAMER_SPINNERS") or (dVal == "JUDGES_FAMILIAR") or (dVal == "ZEALOUS_GUARDIAN") or (dVal == "MISTMEADOW_WITCH") or (dVal == "SOMNOMANCER") or (dVal == "MINISTER_OF_IMPEDIMENTS") or (dVal == "SILKBIND_FAERIE") or (dVal == "STEEL_OF_THE_GODHEAD") or (dVal == "THISTLEDOWN_DUO") then
-- DEVOTION : {W/U}
dChest:Set_Int(0,1)
dChest:Set_Int(1,1)
dChest:Set_Int(2,1)
dChest:Set_Int(3,1)
dChest:Set_Int(4,1)
dChest:Set_Int(5,1)
dChest:Set_Int(6,1)
dChest:Set_Int(7,0)
dChest:Set_Int(8,0)
dChest:Set_Int(9,0)
elseif (dVal == "EDGE_OF_THE_DIVINITY") or (dVal == "NIP_GWYLLION") or (dVal == "MOURNING_THRULL") or (dVal == "NIGHTSKY_MIMIC") or (dVal == "GWYLLION_HEDGEMAGE") or (dVal == "VORACIOUS_HATCHLING") then
-- DEVOTION : {W/B}
dChest:Set_Int(0,1)
dChest:Set_Int(1,1)
dChest:Set_Int(2,1)
dChest:Set_Int(3,1)
dChest:Set_Int(4,1)
dChest:Set_Int(5,0)
dChest:Set_Int(6,0)
dChest:Set_Int(7,1)
dChest:Set_Int(8,1)
dChest:Set_Int(9,0)
elseif (dVal == "BLISTERCOIL_WEIRD") or (dVal == "CLOUT_OF_THE_DOMINUS") or (dVal == "NIVMAGUS_ELEMENTAL") or (dVal == "STREAM_HOPPER") or (dVal == "RIVERFALL_MIMIC") or (dVal == "NOGGLE_HEDGEMAGE") or (dVal == "NOGGLE_RANSACKER") or (dVal == "PETRAHYDROX") or (dVal == "SHREWD_HATCHLING") then
-- DEVOTION : {U/R}
dChest:Set_Int(0,1)
dChest:Set_Int(1,0)
dChest:Set_Int(2,1)
dChest:Set_Int(3,0)
dChest:Set_Int(4,1)
dChest:Set_Int(5,1)
dChest:Set_Int(6,1)
dChest:Set_Int(7,1)
dChest:Set_Int(8,0)
dChest:Set_Int(9,1)
elseif (dVal == "OONAS_GATEWARDEN") or (dVal == "INKFATHOM_WITCH") or (dVal == "LURKING_INFORMANT") or (dVal == "GRAVELGILL_DUO") or (dVal == "TORPOR_DUST") or (dVal == "HELM_OF_THE_GHASTLORD") or (dVal == "MERROW_GRIMEBLOTTER") or (dVal == "GRAVELGILL_AXESHARK") then
-- DEVOTION : {U/B}
dChest:Set_Int(0,1)
dChest:Set_Int(1,1)
dChest:Set_Int(2,0)
dChest:Set_Int(3,0)
dChest:Set_Int(4,1)
dChest:Set_Int(5,1)
dChest:Set_Int(6,1)
dChest:Set_Int(7,1)
dChest:Set_Int(8,1)
dChest:Set_Int(9,0)
elseif (dVal == "CULTBRAND_CINDER") or (dVal == "EMBERSTRIKE_DUO") or (dVal == "EVERLASTING_TORMENT") or (dVal == "FISTS_OF_THE_DEMIGOD") or (dVal == "MANAFORGE_CINDER") or (dVal == "RAKDOS_CACKLER") or (dVal == "RIOT_SPIKES") or (dVal == "SOOTSTOKE_KINDLER") or (dVal == "SPITEFLAME_WITCH") or (dVal == "GRIEF_TYRANT") then
-- DEVOTION : {B/R}
dChest:Set_Int(0,0)
dChest:Set_Int(1,1)
dChest:Set_Int(2,1)
dChest:Set_Int(3,0)
dChest:Set_Int(4,1)
dChest:Set_Int(5,1)
dChest:Set_Int(6,0)
dChest:Set_Int(7,1)
dChest:Set_Int(8,1)
dChest:Set_Int(9,1)
elseif (dVal == "DEATHRITE_SHAMAN") or (dVal == "GIFT_OF_THE_DEITY") or (dVal == "ODIOUS_TROW") or (dVal == "SLITHERHEAD") or (dVal == "WOODLURKER_MIMIC") or (dVal == "HAG_HEDGEMAGE") or (dVal == "QUILLSPIKE") or (dVal == "RENDCLAW_TROW") or (dVal == "NOXIOUS_HATCHLING") then
-- DEVOTION : {B/G}
dChest:Set_Int(0,0)
dChest:Set_Int(1,1)
dChest:Set_Int(2,0)
dChest:Set_Int(3,1)
dChest:Set_Int(4,1)
dChest:Set_Int(5,0)
dChest:Set_Int(6,1)
dChest:Set_Int(7,1)
dChest:Set_Int(8,1)
dChest:Set_Int(9,1)
elseif (dVal == "CENTAUR_SAFEGUARD") or (dVal == "DRYAD_MILITANT") or (dVal == "ELVISH_HEXHUNTER") or (dVal == "RHYS_THE_REDEEMED") or (dVal == "SEEDCRADLE_WITCH") or (dVal == "MEDICINE_RUNNER") or (dVal == "SAFEHOLD_ELITE") or (dVal == "ORACLE_OF_NECTARS") or (dVal == "SHIELD_OF_THE_OVERSOUL") or (dVal == "SAFEHOLD_DUO") then
-- DEVOTION : {G/W}
dChest:Set_Int(0,1)
dChest:Set_Int(1,1)
dChest:Set_Int(2,1)
dChest:Set_Int(3,1)
dChest:Set_Int(4,0)
dChest:Set_Int(5,0)
dChest:Set_Int(6,1)
dChest:Set_Int(7,0)
dChest:Set_Int(8,1)
dChest:Set_Int(9,1)
elseif (dVal == "FAVOR_OF_THE_OVERBEING") or (dVal == "SLIPPERY_BOGLE") or (dVal == "GROUNDLING_POUNCER") or (dVal == "SHORECRASHER_MIMIC") or (dVal == "SELKIE_HEDGEMAGE") or (dVal == "SHIELDING_PLAX") or (dVal == "GRAZING_KELPIE") or (dVal == "STURDY_HATCHLING") then
-- DEVOTION : {G/U}
dChest:Set_Int(0,1)
dChest:Set_Int(1,0)
dChest:Set_Int(2,0)
dChest:Set_Int(3,1)
dChest:Set_Int(4,1)
dChest:Set_Int(5,1)
dChest:Set_Int(6,1)
dChest:Set_Int(7,0)
dChest:Set_Int(8,1)
dChest:Set_Int(9,1)
elseif (dVal == "NAYA_HUSHBLADE") or (dVal == "TRACE_OF_ABUNDANCE") or (dVal == "MARISIS_TWINCLAWS") then
-- DEVOTION : {R/W}{G}
dChest:Set_Int(0,1)
dChest:Set_Int(1,1)
dChest:Set_Int(2,1)
dChest:Set_Int(3,2)
dChest:Set_Int(4,0)
dChest:Set_Int(5,1)
dChest:Set_Int(6,1)
dChest:Set_Int(7,1)
dChest:Set_Int(8,1)
dChest:Set_Int(9,2)
elseif (dVal == "ARSENAL_THRESHER") or (dVal == "ESPER_STORMBLADE") or (dVal == "THOPTER_FOUNDRY") then
-- DEVOTION : {W/B}{U}
dChest:Set_Int(0,2)
dChest:Set_Int(1,1)
dChest:Set_Int(2,1)
dChest:Set_Int(3,1)
dChest:Set_Int(4,2)
dChest:Set_Int(5,1)
dChest:Set_Int(6,1)
dChest:Set_Int(7,1)
dChest:Set_Int(8,1)
dChest:Set_Int(9,0)
elseif (dVal == "GRIXIS_GRIMBLADE") or (dVal == "SEWNEYE_DRAKE") then
-- DEVOTION : {U/R}{B}
dChest:Set_Int(0,1)
dChest:Set_Int(1,1)
dChest:Set_Int(2,1)
dChest:Set_Int(3,0)
dChest:Set_Int(4,2)
dChest:Set_Int(5,1)
dChest:Set_Int(6,1)
dChest:Set_Int(7,2)
dChest:Set_Int(8,1)
dChest:Set_Int(9,1)
elseif (dVal == "BANT_SUREBLADE") or (dVal == "CRYSTALLIZATION") or (dVal == "MESSENGER_FALCONS") then
-- DEVOTION : {G/U}{W}
dChest:Set_Int(0,2)
dChest:Set_Int(1,1)
dChest:Set_Int(2,1)
dChest:Set_Int(3,2)
dChest:Set_Int(4,1)
dChest:Set_Int(5,1)
dChest:Set_Int(6,1)
dChest:Set_Int(7,0)
dChest:Set_Int(8,1)
dChest:Set_Int(9,1)
elseif (dVal == "GIANT_AMBUSH_BEETLE") or (dVal == "JUND_HACKBLADE") or (dVal == "SANGRITE_BACKLASH") then
-- DEVOTION : {B/G}{R}
dChest:Set_Int(0,0)
dChest:Set_Int(1,1)
dChest:Set_Int(2,1)
dChest:Set_Int(3,1)
dChest:Set_Int(4,1)
dChest:Set_Int(5,1)
dChest:Set_Int(6,1)
dChest:Set_Int(7,2)
dChest:Set_Int(8,1)
dChest:Set_Int(9,2)
elseif (dVal == "AUGURY_ADEPT") or (dVal == "AZORS_ELOCUTORS") or (dVal == "AZORIUS_GUILDMAGE") or (dVal == "ENCHANTED_EVENING") or (dVal == "PURESIGHT_MERROW") or (dVal == "VASSAL_SOUL") or (dVal == "SWANS_OF_BRYN_ARGOLL") then
-- DEVOTION : {W/U}{W/U}
dChest:Set_Int(0,2)
dChest:Set_Int(1,2)
dChest:Set_Int(2,2)
dChest:Set_Int(3,2)
dChest:Set_Int(4,2)
dChest:Set_Int(5,2)
dChest:Set_Int(6,2)
dChest:Set_Int(7,0)
dChest:Set_Int(8,0)
dChest:Set_Int(9,0)
elseif (dVal == "BLOODIED_GHOST") or (dVal == "EVERSHRIKE") or (dVal == "GIFT_OF_ORZHOVA") or (dVal == "ORZHOV_GUILDMAGE") or (dVal == "STILLMOON_CAVALIER") or (dVal == "HARVEST_GWYLLION") then
-- DEVOTION : {W/B}{W/B}
dChest:Set_Int(0,2)
dChest:Set_Int(1,2)
dChest:Set_Int(2,2)
dChest:Set_Int(3,2)
dChest:Set_Int(4,2)
dChest:Set_Int(5,0)
dChest:Set_Int(6,0)
dChest:Set_Int(7,2)
dChest:Set_Int(8,2)
dChest:Set_Int(9,0)
elseif (dVal == "CEMETERY_PUCA") or (dVal == "DEATHCULT_ROGUE") or (dVal == "DIMIR_GUILDMAGE") or (dVal == "DIRE_UNDERCURRENTS") or (dVal == "INKFATHOM_INFILTRATOR") or (dVal == "SYGG_RIVER_CUTTHROAT") or (dVal == "WANDERBRINE_ROOTCUTTERS") then
-- DEVOTION : {U/B}{U/B}
dChest:Set_Int(0,2)
dChest:Set_Int(1,2)
dChest:Set_Int(2,0)
dChest:Set_Int(3,0)
dChest:Set_Int(4,2)
dChest:Set_Int(5,2)
dChest:Set_Int(6,2)
dChest:Set_Int(7,2)
dChest:Set_Int(8,2)
dChest:Set_Int(9,0)
elseif (dVal == "CRACKLEBURR") or (dVal == "DJINN_ILLUMINATUS") or (dVal == "FROSTBURN_WEIRD") or (dVal == "IZZET_GUILDMAGE") or (dVal == "MIRROR_SHEEN") or (dVal == "NOGGLE_BANDIT") or (dVal == "NOGGLE_BRIDGEBREAKER") or (dVal == "NUCKLAVEE") then
-- DEVOTION : {U/R}{U/R}
dChest:Set_Int(0,2)
dChest:Set_Int(1,0)
dChest:Set_Int(2,2)
dChest:Set_Int(3,0)
dChest:Set_Int(4,2)
dChest:Set_Int(5,2)
dChest:Set_Int(6,2)
dChest:Set_Int(7,2)
dChest:Set_Int(8,0)
dChest:Set_Int(9,2)
elseif (dVal == "CANKER_ABOMINATION") or (dVal == "DESECRATOR_HAG") or (dVal == "GOLGARI_GUILDMAGE") or (dVal == "GOLGARI_LONGLEGS") or (dVal == "SAPLING_OF_COLFENOR") then
-- DEVOTION : {B/G}{B/G}
dChest:Set_Int(0,0)
dChest:Set_Int(1,2)
dChest:Set_Int(2,0)
dChest:Set_Int(3,2)
dChest:Set_Int(4,2)
dChest:Set_Int(5,0)
dChest:Set_Int(6,2)
dChest:Set_Int(7,2)
dChest:Set_Int(8,2)
dChest:Set_Int(9,2)
elseif (dVal == "CRYPTBORN_HORROR") or (dVal == "FULMINATOR_MAGE") or (dVal == "RAKDOS_GUILDMAGE") or (dVal == "RAKDOS_SHREDFREAK") or (dVal == "MURDEROUS_REDCAP") or (dVal == "SOOTWALKERS") or (dVal == "SPITEFUL_VISIONS") or (dVal == "KULRATH_KNIGHT") then
-- DEVOTION : {B/R}{B/R}
dChest:Set_Int(0,0)
dChest:Set_Int(1,2)
dChest:Set_Int(2,2)
dChest:Set_Int(3,0)
dChest:Set_Int(4,2)
dChest:Set_Int(5,2)
dChest:Set_Int(6,0)
dChest:Set_Int(7,2)
dChest:Set_Int(8,2)
dChest:Set_Int(9,2)
elseif (dVal == "BOROS_GUILDMAGE") or (dVal == "RISE_OF_THE_HOBGOBLINS") or (dVal == "SPITEMARE") then
-- DEVOTION : {R/W}{R/W}
dChest:Set_Int(0,2)
dChest:Set_Int(1,2)
dChest:Set_Int(2,2)
dChest:Set_Int(3,2)
dChest:Set_Int(4,0)
dChest:Set_Int(5,2)
dChest:Set_Int(6,0)
dChest:Set_Int(7,2)
dChest:Set_Int(8,0)
dChest:Set_Int(9,2)
elseif (dVal == "BURNINGTREE_EMISSARY") or (dVal == "GIANT_SOLIFUGE") or (dVal == "GRUUL_GUILDMAGE") or (dVal == "VEXING_SHUSHER") or (dVal == "MUDBRAWLER_RAIDERS") or (dVal == "MORSELHOARDER") or (dVal == "WORT_THE_RAIDMOTHER") then
-- DEVOTION : {R/G}{R/G}
dChest:Set_Int(0,0)
dChest:Set_Int(1,0)
dChest:Set_Int(2,2)
dChest:Set_Int(3,2)
dChest:Set_Int(4,0)
dChest:Set_Int(5,2)
dChest:Set_Int(6,2)
dChest:Set_Int(7,2)
dChest:Set_Int(8,2)
dChest:Set_Int(9,2)
elseif (dVal == "COLDEYED_SELKIE") or (dVal == "GILDER_BAIRN") or (dVal == "SIMIC_GUILDMAGE") or (dVal == "MERFOLK_OF_THE_DEPTHS") or (dVal == "TRAPJAW_KELPIE") then
-- DEVOTION : {G/U}{G/U}
dChest:Set_Int(0,2)
dChest:Set_Int(1,0)
dChest:Set_Int(2,0)
dChest:Set_Int(3,2)
dChest:Set_Int(4,2)
dChest:Set_Int(5,2)
dChest:Set_Int(6,2)
dChest:Set_Int(7,0)
dChest:Set_Int(8,2)
dChest:Set_Int(9,2)
elseif (dVal == "SELESNYA_GUILDMAGE") or (dVal == "WHEEL_OF_SUN_AND_MOON") or (dVal == "KITCHEN_FINKS") or (dVal == "GROWING_RANKS") or (dVal == "HEARTMENDER") or (dVal == "RAVENS_RUN_DRAGOON") or (dVal == "OLD_GHASTBARK") then
-- DEVOTION : {G/W}G/W}
dChest:Set_Int(0,2)
dChest:Set_Int(1,2)
dChest:Set_Int(2,2)
dChest:Set_Int(3,2)
dChest:Set_Int(4,0)
dChest:Set_Int(5,0)
dChest:Set_Int(6,2)
dChest:Set_Int(7,0)
dChest:Set_Int(8,2)
dChest:Set_Int(9,2)
elseif (dVal == "DEATHBRINGER_LIEGE") or (dVal == "DEBTORS_KNELL") or (dVal == "RESTLESS_APPARITION") then
-- DEVOTION : {W/B}{W/B}{W/B}
dChest:Set_Int(0,3)
dChest:Set_Int(1,3)
dChest:Set_Int(2,3)
dChest:Set_Int(3,3)
dChest:Set_Int(4,3)
dChest:Set_Int(5,0)
dChest:Set_Int(6,0)
dChest:Set_Int(7,3)
dChest:Set_Int(8,3)
dChest:Set_Int(9,0)
elseif (dVal == "DOVESCAPE") or (dVal == "PLUMEVEIL") or (dVal == "THISTLEDOWN_LIEGE") then
-- DEVOTION : {W/U}{W/U}{W/U}
dChest:Set_Int(0,3)
dChest:Set_Int(1,3)
dChest:Set_Int(2,3)
dChest:Set_Int(3,3)
dChest:Set_Int(4,3)
dChest:Set_Int(5,3)
dChest:Set_Int(6,3)
dChest:Set_Int(7,0)
dChest:Set_Int(8,0)
dChest:Set_Int(9,0)
elseif (dVal == "ASHENMOOR_GOUGER") or (dVal == "ASHENMOOR_LIEGE") or (dVal == "AVATAR_OF_DISCORD") or (dVal == "BARRENTON_CRAGTREADS") then
-- DEVOTION : {B/R}{B/R}{B/R}
dChest:Set_Int(0,0)
dChest:Set_Int(1,3)
dChest:Set_Int(2,3)
dChest:Set_Int(3,0)
dChest:Set_Int(4,3)
dChest:Set_Int(5,3)
dChest:Set_Int(6,0)
dChest:Set_Int(7,3)
dChest:Set_Int(8,3)
dChest:Set_Int(9,0)
elseif (dVal == "BALEFIRE_LIEGE") or (dVal == "BOROS_RECKONER") or (dVal == "HEARTHFIRE_HOBGOBLIN") then
-- DEVOTION : {R/W}{R/W}{R/W}
dChest:Set_Int(0,3)
dChest:Set_Int(1,3)
dChest:Set_Int(2,3)
dChest:Set_Int(3,3)
dChest:Set_Int(4,0)
dChest:Set_Int(5,3)
dChest:Set_Int(6,0)
dChest:Set_Int(7,3)
dChest:Set_Int(8,0)
dChest:Set_Int(9,3)
elseif (dVal == "BOARTUSK_LIEGE") or (dVal == "BOGGART_RAMGANG") or (dVal == "RUBBLEBELT_RAIDERS") or (dVal == "LOAMDRAGGER_GIANT") then
-- DEVOTION : {R/G}{R/G}{R/G}
dChest:Set_Int(0,0)
dChest:Set_Int(1,0)
dChest:Set_Int(2,3)
dChest:Set_Int(3,3)
dChest:Set_Int(4,0)
dChest:Set_Int(5,3)
dChest:Set_Int(6,3)
dChest:Set_Int(7,3)
dChest:Set_Int(8,3)
dChest:Set_Int(9,3)
elseif (dVal == "CRAG_PUCA") or (dVal == "MINDWRACK_LIEGE") then
-- DEVOTION : {U/R}{U/R}{U/R}
dChest:Set_Int(0,3)
dChest:Set_Int(1,0)
dChest:Set_Int(2,3)
dChest:Set_Int(3,0)
dChest:Set_Int(4,3)
dChest:Set_Int(5,3)
dChest:Set_Int(6,3)
dChest:Set_Int(7,3)
dChest:Set_Int(8,0)
dChest:Set_Int(9,3)
elseif (dVal == "GLEN_ELENDRA_LIEGE") or (dVal == "NIGHTVEIL_SPECTER") or (dVal == "WASP_LANCER") or (dVal == "OONA_QUEEN_OF_THE_FAE") then
-- DEVOTION : {U/B}{U/B}{U/B}
dChest:Set_Int(0,3)
dChest:Set_Int(1,3)
dChest:Set_Int(2,0)
dChest:Set_Int(3,0)
dChest:Set_Int(4,3)
dChest:Set_Int(5,3)
dChest:Set_Int(6,3)
dChest:Set_Int(7,3)
dChest:Set_Int(8,3)
dChest:Set_Int(9,0)
elseif (dVal == "CREAKWOOD_LIEGE") or (dVal == "DOOMGAPE") or (dVal == "GLEANCRAWLER") or (dVal == "STALKER_HAG") then
-- DEVOTION : {B/G}{B/G}B/G}
dChest:Set_Int(0,0)
dChest:Set_Int(1,3)
dChest:Set_Int(2,0)
dChest:Set_Int(3,3)
dChest:Set_Int(4,3)
dChest:Set_Int(5,0)
dChest:Set_Int(6,3)
dChest:Set_Int(7,3)
dChest:Set_Int(8,3)
dChest:Set_Int(9,3)
elseif (dVal == "FABLE_OF_WOLF_AND_OWL") or (dVal == "WISTFUL_SELKIE") or (dVal == "MURKFIEND_LIEGE") then
-- DEVOTION : {G/U}{G/U}{G/U}
dChest:Set_Int(0,3)
dChest:Set_Int(1,0)
dChest:Set_Int(2,0)
dChest:Set_Int(3,3)
dChest:Set_Int(4,3)
dChest:Set_Int(5,3)
dChest:Set_Int(6,3)
dChest:Set_Int(7,0)
dChest:Set_Int(8,3)
dChest:Set_Int(9,3)
elseif (dVal == "WILTLEAF_CAVALIERS") or (dVal == "WILTLEAF_LIEGE") or (dVal == "PRIVILEGED_POSITION") then
-- DEVOTION : {G/W}{G/W}{G/W}
dChest:Set_Int(0,3)
dChest:Set_Int(1,3)
dChest:Set_Int(2,3)
dChest:Set_Int(3,3)
dChest:Set_Int(4,0)
dChest:Set_Int(5,0)
dChest:Set_Int(6,3)
dChest:Set_Int(7,0)
dChest:Set_Int(8,3)
dChest:Set_Int(9,3)
elseif (dVal == "NOBILIS_OF_WAR") then
-- DEVOTION : {R/W}{R/W}{R/W}{R/W}{R/W}
dChest:Set_Int(0,5)
dChest:Set_Int(1,5)
dChest:Set_Int(2,5)
dChest:Set_Int(3,5)
dChest:Set_Int(4,0)
dChest:Set_Int(5,5)
dChest:Set_Int(6,0)
dChest:Set_Int(7,5)
dChest:Set_Int(8,0)
dChest:Set_Int(9,5)
elseif (dVal == "DEITY_OF_SCARS") then
-- DEVOTION : {B/G}{B/G}B/G}{B/G}B/G}
dChest:Set_Int(0,0)
dChest:Set_Int(1,5)
dChest:Set_Int(2,0)
dChest:Set_Int(3,5)
dChest:Set_Int(4,5)
dChest:Set_Int(5,0)
dChest:Set_Int(6,5)
dChest:Set_Int(7,5)
dChest:Set_Int(8,5)
dChest:Set_Int(9,5)
elseif (dVal == "DEMIGOD_OF_REVENGE") then
-- DEVOTION : {B/R}{B/R}{B/R}{B/R}{B/R}
dChest:Set_Int(0,0)
dChest:Set_Int(1,5)
dChest:Set_Int(2,5)
dChest:Set_Int(3,0)
dChest:Set_Int(4,5)
dChest:Set_Int(5,5)
dChest:Set_Int(6,0)
dChest:Set_Int(7,5)
dChest:Set_Int(8,5)
dChest:Set_Int(9,0)
elseif (dVal == "DEUS_OF_CALAMITY") then
-- DEVOTION : {R/G}{R/G}{R/G}{R/G}{R/G}
dChest:Set_Int(0,0)
dChest:Set_Int(1,0)
dChest:Set_Int(2,5)
dChest:Set_Int(3,5)
dChest:Set_Int(4,0)
dChest:Set_Int(5,5)
dChest:Set_Int(6,5)
dChest:Set_Int(7,5)
dChest:Set_Int(8,5)
dChest:Set_Int(9,5)
elseif (dVal == "DIVINITY_OF_PRIDE") then
-- DEVOTION : {W/B}{W/B}{W/B}W/B}{W/B}
dChest:Set_Int(0,5)
dChest:Set_Int(1,5)
dChest:Set_Int(2,5)
dChest:Set_Int(3,5)
dChest:Set_Int(4,5)
dChest:Set_Int(5,0)
dChest:Set_Int(6,0)
dChest:Set_Int(7,5)
dChest:Set_Int(8,5)
dChest:Set_Int(9,0)
elseif (dVal == "GODHEAD_OF_AWE") then
-- DEVOTION : {W/U}{W/U}{W/U}{W/U}{W/U}
dChest:Set_Int(0,5)
dChest:Set_Int(1,5)
dChest:Set_Int(2,5)
dChest:Set_Int(3,5)
dChest:Set_Int(4,5)
dChest:Set_Int(5,5)
dChest:Set_Int(6,5)
dChest:Set_Int(7,0)
dChest:Set_Int(8,0)
dChest:Set_Int(9,0)
elseif (dVal == "DOMINUS_OF_FEALTY") then
-- DEVOTION : {U/R}{U/R}{U/R}{U/R}{U/R}
dChest:Set_Int(0,5)
dChest:Set_Int(1,0)
dChest:Set_Int(2,5)
dChest:Set_Int(3,0)
dChest:Set_Int(4,5)
dChest:Set_Int(5,5)
dChest:Set_Int(6,5)
dChest:Set_Int(7,5)
dChest:Set_Int(8,0)
dChest:Set_Int(9,5)
elseif (dVal == "GHASTLORD_OF_FUGUE") then
-- DEVOTION : {U/B}{U/B}{U/B}{U/B}{U/B}
dChest:Set_Int(0,5)
dChest:Set_Int(1,5)
dChest:Set_Int(2,0)
dChest:Set_Int(3,0)
dChest:Set_Int(4,5)
dChest:Set_Int(5,5)
dChest:Set_Int(6,5)
dChest:Set_Int(7,5)
dChest:Set_Int(8,5)
dChest:Set_Int(9,0)
elseif (dVal == "REAPER_KING") then
-- DEVOTION : {X/W}{X/U}{X/B}{X/R}{X/G}
dChest:Set_Int(0,2)
dChest:Set_Int(1,2)
dChest:Set_Int(2,2)
dChest:Set_Int(3,2)
dChest:Set_Int(4,2)
dChest:Set_Int(5,2)
dChest:Set_Int(6,2)
dChest:Set_Int(7,2)
dChest:Set_Int(8,2)
dChest:Set_Int(9,2)
elseif (dVal == "OVERBEING_OF_MYTH") then
-- DEVOTION : {G/U}{G/U}{G/U}{G/U}{G/U}
dChest:Set_Int(0,5)
dChest:Set_Int(1,0)
dChest:Set_Int(2,0)
dChest:Set_Int(3,5)
dChest:Set_Int(4,5)
dChest:Set_Int(5,5)
dChest:Set_Int(6,5)
dChest:Set_Int(7,0)
dChest:Set_Int(8,5)
dChest:Set_Int(9,5)
elseif (dVal == "OVERSOUL_OF_DUSK") then
-- DEVOTION : {G/W}{G/W}{G/W}{G/W}{G/W}
dChest:Set_Int(0,5)
dChest:Set_Int(1,5)
dChest:Set_Int(2,5)
dChest:Set_Int(3,5)
dChest:Set_Int(4,0)
dChest:Set_Int(5,0)
dChest:Set_Int(6,5)
dChest:Set_Int(7,0)
dChest:Set_Int(8,5)
dChest:Set_Int(9,5)
end
return dChest:Get_Int(DevotionType)
end
Return_Dual_DeVotion_Index = function(nColourA, nColourB)
local val = 10
if nColourA == COLOUR_WHITE and nColourB == COLOUR_BLUE then
val = 0
elseif nColourA == COLOUR_BLUE and nColourB == COLOUR_WHITE then
val = 0
elseif nColourA == COLOUR_WHITE and nColourB == COLOUR_BLACK then
val = 1
elseif nColourA == COLOUR_BLACK and nColourB == COLOUR_WHITE then
val = 1
elseif nColourA == COLOUR_WHITE and nColourB == COLOUR_RED then
val = 2
elseif nColourA == COLOUR_RED and nColourB == COLOUR_WHITE then
val = 2
elseif nColourA == COLOUR_WHITE and nColourB == COLOUR_GREEN then
val = 3
elseif nColourA == COLOUR_GREEN and nColourB == COLOUR_WHITE then
val = 3
elseif nColourA == COLOUR_BLUE and nColourB == COLOUR_BLACK then
val = 4
elseif nColourA == COLOUR_BLACK and nColourB == COLOUR_BLUE then
val = 4
elseif nColourA == COLOUR_BLUE and nColourB == COLOUR_RED then
val = 5
elseif nColourA == COLOUR_RED and nColourB == COLOUR_BLUE then
val = 5
elseif nColourA == COLOUR_BLUE and nColourB == COLOUR_GREEN then
val = 6
elseif nColourA == COLOUR_GREEN and nColourB == COLOUR_BLUE then
val = 6
elseif nColourA == COLOUR_BLACK and nColourB == COLOUR_RED then
val = 7
elseif nColourA == COLOUR_RED and nColourB == COLOUR_BLACK then
val = 7
elseif nColourA == COLOUR_BLACK and nColourB == COLOUR_GREEN then
val = 8
elseif nColourA == COLOUR_GREEN and nColourB == COLOUR_BLACK then
val = 8
elseif nColourA == COLOUR_RED and nColourB == COLOUR_GREEN then
val = 9
elseif nColourA == COLOUR_GREEN and nColourB == COLOUR_RED then
val = 9
end
return val
end
Devotion_Player_Col_A_Col_B = function(nColourA, nColourB, nPlayer)
local PDevotion = 0
local cmc = 0
local filter = ClearFilter()
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_IS, CARD_TYPE_LAND )
subfilter:Add( FE_TYPE, OP_IS, CARD_TYPE_PLANESWALKER )
filter:Add( FE_CONTROLLER, OP_IS, nPlayer )
filter:SetZone( ZONE_BATTLEFIELD )
local filter_count = filter:EvaluateObjects()
local devchest = EffectDC():Make_Chest(0)
local Tempchest = EffectDC():Make_Chest(1)
local index = Return_Dual_DeVotion_Index(nColourA, nColourB)
for i=0, (filter_count-1) do
local permanent = filter:GetNthEvaluatedObject(i)
if permanent ~= nil then
devchest:Set_CardPtr(i, permanent)
end
end
for i=0, (filter_count-1) do
local permanent = devchest:Get_CardPtr(i)
if permanent ~= nil then
cmc = permanent:GetConvertedManaCost()
local DevA = ColourManaCountIntoCardIntoZone(nColourA, permanent, nPlayer, ZONE_BATTLEFIELD)
local DevB = ColourManaCountIntoCardIntoZone(nColourB, permanent, nPlayer, ZONE_BATTLEFIELD)
local ClessDev = ColourManaCountIntoCardIntoZone(COLOUR_COLOURLESS, permanent, nPlayer, ZONE_BATTLEFIELD)
local devotion = DevA + DevB
local Difference = cmc - ClessDev
if Difference >= devotion then
Tempchest:Set_Int(i, devotion)
else
local Pname = permanent:GetCardName()
local OBDevotion = NEO_ReturnDualDevotion(Pname, index)
Tempchest:Set_Int(i, OBDevotion)
end
end
end
for i=0, (filter_count-1) do
PDevotion = PDevotion + Tempchest:Get_Int(i)
end
return PDevotion
end
ColourManaCountIntoCardIntoZone = function(nColour, nCard, nPlayer, nZone)
local filter = ClearFilter()
local CurrentChromaCount = 0
if nCard ~= nil then
filter:Clear()
local filter = ClearFilter()
filter:SetZone(nZone, nPlayer)
filter:Add(FE_CARD_INSTANCE, OP_IS, nCard)
CurrentChromaCount = filter:ChromaCount(nColour)
if (CurrentChromaCount > 0) then
return CurrentChromaCount
else
return 0
end
else
return 0
end
end
- NeoAnderson
- Posts: 914
- Joined: 10 Sep 2013, 07:49
- Has thanked: 18 times
- Been thanked: 139 times
Re: Question about Mana pool (Kruphix, God of Horizons)
by RiiakShiNal » 27 Aug 2014, 10:53
You're going to have some problems with your version unless you fix some things.
- TOKEN_REGISTRATION needs to be in the card not in the ability. So you need to move it outside of the TRIGGERED_ABILITY otherwise you will have crashes.
- You should not produce mana in a TRIGGER (no way to prevent duplicate tokens or properly clean up.
- You need to return true for all untapped tokens trying to leave play, but only override the event for colourless tokens. You can also set an EffectDC() register at this point to keep from having to check the card name if you want (I recommend doing this as it will make later checks a bit easier). Only return false if it is not a mana token.
- You don't need replacement_query or linked_ability_group since you don't ask the user a question and you aren't using LinkedDC().
- Since this is a TRIGGERED_ABILITY you don't need RSN_MarkManaAbilityStart() or RSN_MarkManaAbilityEnd().
- In a RESOLUTION_TIME_ACTION you will check to see if the card is not a colourless token (or check the EffectDC() register if you set it in the trigger) and if it isn't create a colourless token using RSN_ProduceNoTrigger() (like you are).
- In a second RESOLUTION_TIME_ACTION you will need to first check if it is a colourless token (or check the EffectDC() register) then if not use RSN_EliminateExtraManaTokens() to prevent any extra tokens that may have been created from hanging around (like from Doubling Season).
- You will need another TRIGGERED_ABILITY to clear the produced mana like this:
- Code: Select all
<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>
Just getting started: Xander9009's DotP 2014 Community Wad
Need a deck builder: DotP 2014 Deck Builder
Problems Modding: DotP 2014 Frequent Modding Mistakes
Need a deck builder: DotP 2014 Deck Builder
Problems Modding: DotP 2014 Frequent Modding Mistakes
- RiiakShiNal
- Programmer
- Posts: 2185
- Joined: 16 May 2011, 21:37
- Has thanked: 75 times
- Been thanked: 496 times
Re: Question about Mana pool (Kruphix, God of Horizons)
by gorem2k » 27 Aug 2014, 12:23
- test | Open
- Code: Select all
<?xml version='1.0' encoding='UTF-8'?>
<CARD_V2 ExportVersion="1">
<FILENAME text="KRUPHIX_GOD_OF_HORIZONS_444380446" />
<CARDNAME text="KRUPHIX_GOD_OF_HORIZONS" />
<TITLE>
<LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Kruphix, God of Horizons]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Kruphix, dieu des Horizons]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Krufix, dios de los horizontes]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Kruphix, Gott der Horizonte]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Krufix, Dio degli Orizzonti]]></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[Crufix, Deus dos Horizontes]]></LOCALISED_TEXT>
</TITLE>
<MULTIVERSEID value="444380446" />
<ARTID value="444380446" />
<ARTIST name="Daarken" />
<CASTING_COST cost="{3}{G}{U}" />
<SUPERTYPE metaname="Legendary" />
<TYPE metaname="Enchantment" />
<TYPE metaname="Creature" />
<SUB_TYPE metaname="God" />
<EXPANSION value="JOU" />
<RARITY metaname="M" />
<POWER value="4" />
<TOUGHNESS value="7" />
<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 green and blue is less than seven, Kruphix isn’t a creature.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Tant que votre dévotion au vert et au bleu est inférieure à sept, Kruphix n’est pas une créature.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Mientras tu devoción al verde y al azul sea menor que siete, Krufix no es una criatura.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Solange deine Hingabe zu Grün und Blau weniger als sieben beträgt, ist Kruphix keine Kreatur.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Fintanto che la tua devozione al verde e al blu è inferiore a sette, Krufix 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 verde e ao azul for menor que sete, Crufix não será uma criatura.]]></LOCALISED_TEXT>
<CONTINUOUS_ACTION layer="4">
local source = EffectSource()
if source ~= nil then
local WBDevotion = Devotion_Player_Col_A_Col_B(COLOUR_RED, COLOUR_WHITE, EffectController())
if WBDevotion < 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>
<STATIC_ABILITY>
<LOCALISED_TEXT LanguageCode="en-US"><![CDATA[You have no maximum hand size.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Il n’y a pas de limite au nombre de cartes dans votre main.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Tu mano no tiene tamaño máximo.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Es gibt keine Obergrenze für die Anzahl an Karten, die du auf der Hand halten darfst.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Non hai un limite massimo di carte nella tua mano.]]></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[Não há limite para o número máximo de cards em sua mão.]]></LOCALISED_TEXT>
<CONTINUOUS_ACTION layer="8">
EffectController():GetCurrentCharacteristics():Bool_Set(PLAYER_CHARACTERISTIC_NO_HAND_LIMIT, 1)
</CONTINUOUS_ACTION>
</STATIC_ABILITY>
<TRIGGERED_ABILITY replacement_effect="1">
<LOCALISED_TEXT LanguageCode="en-US"><![CDATA[If unused mana would empty from your mana pool, that mana becomes colorless instead.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Si du mana inutilisé devait être vidé de votre réserve, ce mana devient incolore à la place.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Si fuera a vaciarse maná no utilizado de tu reserva de maná, en vez de eso, ese maná se convierte en incoloro.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Falls unverbrauchtes Mana aus deinem Manavorrat entfernt würde, wird dieses Mana stattdessen farblos.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Se del mana inutilizzato sta per essere rimosso dalla tua riserva di mana, quel mana diventa invece incolore.]]></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[Se o mana não usado for ser esvaziado da sua reserva de mana, em vez disso, aquele mana se tornará incolor.]]></LOCALISED_TEXT>
<TRIGGER value="ZONECHANGE_CONSIDERED" simple_qualifier="objectyoucontrol" to_zone="ZONE_ANY" from_zone="ZONE_BATTLEFIELD" pre_trigger="1">
if (TriggerObject() ~= nil) and (TriggerObject():IsTapped() == false) then
local mtName = TriggerObject():GetCardName()
if (mtName == "TOKEN_MANA_C") then
MTG():OverrideEvent()
return true
elseif string.match( mtName, "TOKEN_MANA_" ) then
RSN_ProduceNoTrigger( "{1}", 1 )
end
end
return false
</TRIGGER>
</TRIGGERED_ABILITY>
<!-- OPTIONAL MANA DISPLAY ABILITY -->
<STATIC_ABILITY>
<CONTINUOUS_ACTION layer="8">
if EffectSource() ~= nil then
EffectSource():GetCurrentCharacteristics():GrantAbility(1)
end
</CONTINUOUS_ACTION>
<DURATION>
return EffectSource() == nil
</DURATION>
</STATIC_ABILITY>
<ACTIVATED_ABILITY resource_id="1" forced_skip="1">
<LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Display your mana pool.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Display your mana pool.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Display your mana pool.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Display your mana pool.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Display your mana pool.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[Display your mana pool.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[Display your mana pool.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[Display your mana pool.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[Display your mana pool.]]></LOCALISED_TEXT>
<AVAILABILITY>
local filter = ClearFilter()
filter:Set_And()
filter:Add( FE_CONTROLLER, OP_IS, EffectController() )
local subfilter = filter:AddSubFilter_Or()
subfilter:Add( FE_CARD_NAME, OP_IS, "TOKEN_MANA_C" )
subfilter:Add( FE_CARD_NAME, OP_IS, "TOKEN_MANA_B" )
subfilter:Add( FE_CARD_NAME, OP_IS, "TOKEN_MANA_U" )
subfilter:Add( FE_CARD_NAME, OP_IS, "TOKEN_MANA_G" )
subfilter:Add( FE_CARD_NAME, OP_IS, "TOKEN_MANA_R" )
subfilter:Add( FE_CARD_NAME, OP_IS, "TOKEN_MANA_W" )
return filter:CountStopAt(1) == 1
</AVAILABILITY>
<RESOLUTION_TIME_ACTION>
-- G2K_DisplayManaPool(EffectController())
</RESOLUTION_TIME_ACTION>
</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>
<TOKEN_REGISTRATION reservation="1" type="RSN_TOKEN_MANA_C" />
<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="1500" zone="ZONE_BATTLEFIELD" />
</CARD_V2>
How can you produce mana outside of a triggered_ab/activated_ab or spell_ab ?
oops, I misread trigger with triggered. ok so you put RTAs after the </TRIGGER>.
- where do I put an EffectDC() to skip name check? | Open
- Code: Select all
<TRIGGER value="ZONECHANGE_CONSIDERED" simple_qualifier="objectyoucontrol" to_zone="ZONE_ANY" from_zone="ZONE_BATTLEFIELD" pre_trigger="1">
if (TriggerObject() ~= nil) and (TriggerObject():IsTapped() == false) then
local mtName = TriggerObject():GetCardName()
if (mtName == "TOKEN_MANA_C") then
MTG():OverrideEvent()
return true
elseif string.match( mtName, "TOKEN_MANA_" ) then
return true
end
end
return false
</TRIGGER>
<RESOLUTION_TIME_ACTION>
local mtName = TriggerObject():GetCardName()
...
- like this? | Open
- Code: Select all
<TRIGGERED_ABILITY replacement_effect="1">
<LOCALISED_TEXT LanguageCode="en-US"><![CDATA[If unused mana would empty from your mana pool, that mana becomes colorless instead.]]></LOCALISED_TEXT>
<TRIGGER value="ZONECHANGE_CONSIDERED" simple_qualifier="objectyoucontrol" to_zone="ZONE_ANY" from_zone="ZONE_BATTLEFIELD" pre_trigger="1">
if (TriggerObject() ~= nil) and (TriggerObject():IsTapped() == false) then
local mtName = TriggerObject():GetCardName()
if (mtName == "TOKEN_MANA_C") then
MTG():OverrideEvent()
return true
elseif string.match( mtName, "TOKEN_MANA_" ) then
EffectDC():Set_CardPtr(0, TriggerObject() )
EffectDC():Protect_CardPtr(0)
return true
end
end
return false
</TRIGGER>
<RESOLUTION_TIME_ACTION>
local mtName = EffectDC():Get_CardPtr(0):GetCardName()
if mtName ~= "TOKEN_MANA_C" then
RSN_ProduceNoTrigger( "{1}", 1 )
end
</RESOLUTION_TIME_ACTION>
<RESOLUTION_TIME_ACTION>
local mtName = EffectDC():Get_CardPtr(0):GetCardName()
if mtName ~= "TOKEN_MANA_C" then
RSN_EliminateExtraManaTokens()
end
</RESOLUTION_TIME_ACTION>
</TRIGGERED_ABILITY>
- ok this works: | Open
- Code: Select all
<TRIGGER value="ZONECHANGE_CONSIDERED" simple_qualifier="objectyoucontrol" to_zone="ZONE_ANY" from_zone="ZONE_BATTLEFIELD" pre_trigger="1">
if (TriggerObject() ~= nil) and (TriggerObject():IsTapped() == false) then
local mtName = TriggerObject():GetCardName()
if (mtName == "TOKEN_MANA_C") then
MTG():OverrideEvent()
return true
elseif string.match( mtName, "TOKEN_MANA_" ) and mtName ~= "TOKEN_MANA_C" then
EffectDC():Set_CardPtr(0, TriggerObject() )
EffectDC():Protect_CardPtr(0)
return true
end
end
return false
</TRIGGER>
<RESOLUTION_TIME_ACTION>
local card = EffectDC():Get_CardPtr(0)
if card ~= nil and card:GetCardName() ~= "TOKEN_MANA_C" then
RSN_ProduceNoTrigger( "{1}", 1 )
end
</RESOLUTION_TIME_ACTION>
<RESOLUTION_TIME_ACTION>
local card = EffectDC():Get_CardPtr(0)
if card ~= nil and card:GetCardName() ~= "TOKEN_MANA_C" then
RSN_EliminateExtraManaTokens()
end
</RESOLUTION_TIME_ACTION>
</TRIGGERED_ABILITY>
Last edited by gorem2k on 27 Aug 2014, 13:12, edited 7 times in total.
Re: Question about Mana pool (Kruphix, God of Horizons)
by NeoAnderson » 27 Aug 2014, 12:49
Thanks for you kind attention my friend. You're the master of Mana!RiiakShiNal wrote:You're going to have some problems with your version unless you fix some things.
- TOKEN_REGISTRATION needs to be in the card not in the ability. So you need to move it outside of the TRIGGERED_ABILITY otherwise you will have crashes.
- You should not produce mana in a TRIGGER (no way to prevent duplicate tokens or properly clean up.
- You need to return true for all untapped tokens trying to leave play, but only override the event for colourless tokens. You can also set an EffectDC() register at this point to keep from having to check the card name if you want (I recommend doing this as it will make later checks a bit easier). Only return false if it is not a mana token.
- You don't need replacement_query or linked_ability_group since you don't ask the user a question and you aren't using LinkedDC().
- Since this is a TRIGGERED_ABILITY you don't need RSN_MarkManaAbilityStart() or RSN_MarkManaAbilityEnd().
- In a RESOLUTION_TIME_ACTION you will check to see if the card is not a colourless token (or check the EffectDC() register if you set it in the trigger) and if it isn't create a colourless token using RSN_ProduceNoTrigger() (like you are).
- In a second RESOLUTION_TIME_ACTION you will need to first check if it is a colourless token (or check the EffectDC() register) then if not use RSN_EliminateExtraManaTokens() to prevent any extra tokens that may have been created from hanging around (like from Doubling Season).
- You will need another TRIGGERED_ABILITY to clear the produced mana like this:
- Code: Select all
<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>
Here you can find the modified trigger :
- Code: Select all
<TRIGGERED_ABILITY replacement_effect="1">
<TRIGGER value="ZONECHANGE_CONSIDERED" simple_qualifier="objectyoucontrol" to_zone="ZONE_ANY" from_zone="ZONE_BATTLEFIELD" pre_trigger="1">
if (TriggerObject() ~= nil) and (TriggerObject():IsTapped() == false) then
EffectDC():Set_Int(20, 0)
if (TriggerObject():GetCardName() == "TOKEN_MANA_C") then
MTG():OverrideEvent()
return true
elseif (TriggerObject():GetCardName() == "TOKEN_MANA_W") or (TriggerObject():GetCardName() == "TOKEN_MANA_U") or (TriggerObject():GetCardName() == "TOKEN_MANA_U") or (TriggerObject():GetCardName() == "TOKEN_MANA_R") or TriggerObject():GetCardName() == "TOKEN_MANA_B") or (TriggerObject():GetCardName() == "TOKEN_MANA_G") then
EffectDC():Set_Int(20, 1)
return true
end
end
return false
</TRIGGER>
<RESOLUTION_TIME_ACTION>
local value = EffectDC():Get_Int(20)
if value == 1 then
RSN_ProduceNoTrigger( "{1}", 1 )
end
</RESOLUTION_TIME_ACTION>
<RESOLUTION_TIME_ACTION>
local value = EffectDC():Get_Int(20)
if value == 1 then
RSN_EliminateExtraManaTokens()
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_C" />
<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="1500" zone="ZONE_BATTLEFIELD" />
</CARD_V2>
- Kruphix, God of Horizons Neo Rev 2.0 | Open
- Code: Select all
<?xml version='1.0' encoding='UTF-8'?>
<CARD_V2 ExportVersion="1">
<FILENAME text="JOU_152_NEO_KRUPHIX_GOD_OF_HORIZONS_995380446" />
<CARDNAME text="KRUPHIX_GOD_OF_HORIZONS" />
<TITLE>
<LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Kruphix, God of Horizons]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Kruphix, dieu des Horizons]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Krufix, dios de los horizontes]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Kruphix, Gott der Horizonte]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Krufix, Dio degli Orizzonti]]></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[Crufix, Deus dos Horizontes]]></LOCALISED_TEXT>
</TITLE>
<MULTIVERSEID value="995380446" />
<ARTID value="995380446" />
<ARTIST name="Daarken" />
<CASTING_COST cost="{3}{G}{U}" />
<SUPERTYPE metaname="Legendary" />
<TYPE metaname="Enchantment" />
<TYPE metaname="Creature" />
<SUB_TYPE metaname="God" />
<EXPANSION value="JOU" />
<RARITY metaname="M" />
<POWER value="4" />
<TOUGHNESS value="7" />
<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 green and blue is less than seven, Kruphix isn’t a creature.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Tant que votre dévotion au vert et au bleu est inférieure à sept, Kruphix n’est pas une créature.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Mientras tu devoción al verde y al azul sea menor que siete, Krufix no es una criatura.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Solange deine Hingabe zu Grün und Blau weniger als sieben beträgt, ist Kruphix keine Kreatur.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Fintanto che la tua devozione al verde e al blu è inferiore a sette, Krufix 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 verde e ao azul for menor que sete, Crufix não será uma criatura.]]></LOCALISED_TEXT>
<CONTINUOUS_ACTION layer="4">
local source = EffectSource()
if source ~= nil then
local WBDevotion = Devotion_Player_Col_A_Col_B(COLOUR_GREEN, COLOUR_BLUE, EffectController())
if WBDevotion < 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>
<STATIC_ABILITY>
<LOCALISED_TEXT LanguageCode="en-US"><![CDATA[You have no maximum hand size.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Il n’y a pas de limite au nombre de cartes dans votre main.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Tu mano no tiene tamaño máximo.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Es gibt keine Obergrenze für die Anzahl an Karten, die du auf der Hand halten darfst.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Non hai un limite massimo di carte nella tua mano.]]></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[Não há limite para o número máximo de cards em sua mão.]]></LOCALISED_TEXT>
<CONTINUOUS_ACTION layer="8">
EffectController():GetCurrentCharacteristics():Bool_Set(PLAYER_CHARACTERISTIC_NO_HAND_LIMIT, 1)
</CONTINUOUS_ACTION>
</STATIC_ABILITY>
<STATIC_ABILITY>
<LOCALISED_TEXT LanguageCode="en-US"><![CDATA[If unused mana would empty from your mana pool, that mana becomes colorless instead.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Si du mana inutilisé devait être vidé de votre réserve, ce mana devient incolore à la place.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Si fuera a vaciarse maná no utilizado de tu reserva de maná, en vez de eso, ese maná se convierte en incoloro.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Falls unverbrauchtes Mana aus deinem Manavorrat entfernt würde, wird dieses Mana stattdessen farblos.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Se del mana inutilizzato sta per essere rimosso dalla tua riserva di mana, quel mana diventa invece incolore.]]></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[Se o mana não usado for ser esvaziado da sua reserva de mana, em vez disso, aquele mana se tornará incolor.]]></LOCALISED_TEXT>
</STATIC_ABILITY>
<TRIGGERED_ABILITY replacement_effect="1">
<TRIGGER value="ZONECHANGE_CONSIDERED" simple_qualifier="objectyoucontrol" to_zone="ZONE_ANY" from_zone="ZONE_BATTLEFIELD" pre_trigger="1">
if (TriggerObject() ~= nil) and (TriggerObject():IsTapped() == false) then
EffectDC():Set_Int(20, 0)
if (TriggerObject():GetCardName() == "TOKEN_MANA_C") then
MTG():OverrideEvent()
return true
elseif (TriggerObject():GetCardName() == "TOKEN_MANA_W") or (TriggerObject():GetCardName() == "TOKEN_MANA_U") or (TriggerObject():GetCardName() == "TOKEN_MANA_U") or (TriggerObject():GetCardName() == "TOKEN_MANA_R") or TriggerObject():GetCardName() == "TOKEN_MANA_B") or (TriggerObject():GetCardName() == "TOKEN_MANA_G") then
EffectDC():Set_Int(20, 1)
return true
end
end
return false
</TRIGGER>
<RESOLUTION_TIME_ACTION>
local value = EffectDC():Get_Int(20)
if value == 1 then
RSN_ProduceNoTrigger( "{1}", 1 )
end
</RESOLUTION_TIME_ACTION>
<RESOLUTION_TIME_ACTION>
local value = EffectDC():Get_Int(20)
if value == 1 then
RSN_EliminateExtraManaTokens()
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_C" />
<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="1500" zone="ZONE_BATTLEFIELD" />
</CARD_V2>
Last edited by NeoAnderson on 28 Aug 2014, 05:38, edited 1 time in total.
- NeoAnderson
- Posts: 914
- Joined: 10 Sep 2013, 07:49
- Has thanked: 18 times
- Been thanked: 139 times
Re: Question about Mana pool (Kruphix, God of Horizons)
by RiiakShiNal » 28 Aug 2014, 00:20
Yep, still inside the TRIGGERED_ABILITY so that they actually run.gorem2k wrote:I know it's not fixing everything RSN said but it's getting there...
- test | Open
- Code: Select all
<?xml version='1.0' encoding='UTF-8'?>
<CARD_V2 ExportVersion="1">
<FILENAME text="KRUPHIX_GOD_OF_HORIZONS_444380446" />
<CARDNAME text="KRUPHIX_GOD_OF_HORIZONS" />
<TITLE>
<LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Kruphix, God of Horizons]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Kruphix, dieu des Horizons]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Krufix, dios de los horizontes]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Kruphix, Gott der Horizonte]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Krufix, Dio degli Orizzonti]]></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[Crufix, Deus dos Horizontes]]></LOCALISED_TEXT>
</TITLE>
<MULTIVERSEID value="444380446" />
<ARTID value="444380446" />
<ARTIST name="Daarken" />
<CASTING_COST cost="{3}{G}{U}" />
<SUPERTYPE metaname="Legendary" />
<TYPE metaname="Enchantment" />
<TYPE metaname="Creature" />
<SUB_TYPE metaname="God" />
<EXPANSION value="JOU" />
<RARITY metaname="M" />
<POWER value="4" />
<TOUGHNESS value="7" />
<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 green and blue is less than seven, Kruphix isn’t a creature.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Tant que votre dévotion au vert et au bleu est inférieure à sept, Kruphix n’est pas une créature.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Mientras tu devoción al verde y al azul sea menor que siete, Krufix no es una criatura.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Solange deine Hingabe zu Grün und Blau weniger als sieben beträgt, ist Kruphix keine Kreatur.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Fintanto che la tua devozione al verde e al blu è inferiore a sette, Krufix 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 verde e ao azul for menor que sete, Crufix não será uma criatura.]]></LOCALISED_TEXT>
<CONTINUOUS_ACTION layer="4">
local source = EffectSource()
if source ~= nil then
local WBDevotion = Devotion_Player_Col_A_Col_B(COLOUR_RED, COLOUR_WHITE, EffectController())
if WBDevotion < 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>
<STATIC_ABILITY>
<LOCALISED_TEXT LanguageCode="en-US"><![CDATA[You have no maximum hand size.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Il n’y a pas de limite au nombre de cartes dans votre main.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Tu mano no tiene tamaño máximo.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Es gibt keine Obergrenze für die Anzahl an Karten, die du auf der Hand halten darfst.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Non hai un limite massimo di carte nella tua mano.]]></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[Não há limite para o número máximo de cards em sua mão.]]></LOCALISED_TEXT>
<CONTINUOUS_ACTION layer="8">
EffectController():GetCurrentCharacteristics():Bool_Set(PLAYER_CHARACTERISTIC_NO_HAND_LIMIT, 1)
</CONTINUOUS_ACTION>
</STATIC_ABILITY>
<TRIGGERED_ABILITY replacement_effect="1">
<LOCALISED_TEXT LanguageCode="en-US"><![CDATA[If unused mana would empty from your mana pool, that mana becomes colorless instead.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Si du mana inutilisé devait être vidé de votre réserve, ce mana devient incolore à la place.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Si fuera a vaciarse maná no utilizado de tu reserva de maná, en vez de eso, ese maná se convierte en incoloro.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Falls unverbrauchtes Mana aus deinem Manavorrat entfernt würde, wird dieses Mana stattdessen farblos.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Se del mana inutilizzato sta per essere rimosso dalla tua riserva di mana, quel mana diventa invece incolore.]]></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[Se o mana não usado for ser esvaziado da sua reserva de mana, em vez disso, aquele mana se tornará incolor.]]></LOCALISED_TEXT>
<TRIGGER value="ZONECHANGE_CONSIDERED" simple_qualifier="objectyoucontrol" to_zone="ZONE_ANY" from_zone="ZONE_BATTLEFIELD" pre_trigger="1">
if (TriggerObject() ~= nil) and (TriggerObject():IsTapped() == false) then
local mtName = TriggerObject():GetCardName()
if (mtName == "TOKEN_MANA_C") then
MTG():OverrideEvent()
return true
elseif string.match( mtName, "TOKEN_MANA_" ) then
RSN_ProduceNoTrigger( "{1}", 1 )
end
end
return false
</TRIGGER>
</TRIGGERED_ABILITY>
<!-- OPTIONAL MANA DISPLAY ABILITY -->
<STATIC_ABILITY>
<CONTINUOUS_ACTION layer="8">
if EffectSource() ~= nil then
EffectSource():GetCurrentCharacteristics():GrantAbility(1)
end
</CONTINUOUS_ACTION>
<DURATION>
return EffectSource() == nil
</DURATION>
</STATIC_ABILITY>
<ACTIVATED_ABILITY resource_id="1" forced_skip="1">
<LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Display your mana pool.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Display your mana pool.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Display your mana pool.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Display your mana pool.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Display your mana pool.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[Display your mana pool.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[Display your mana pool.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[Display your mana pool.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[Display your mana pool.]]></LOCALISED_TEXT>
<AVAILABILITY>
local filter = ClearFilter()
filter:Set_And()
filter:Add( FE_CONTROLLER, OP_IS, EffectController() )
local subfilter = filter:AddSubFilter_Or()
subfilter:Add( FE_CARD_NAME, OP_IS, "TOKEN_MANA_C" )
subfilter:Add( FE_CARD_NAME, OP_IS, "TOKEN_MANA_B" )
subfilter:Add( FE_CARD_NAME, OP_IS, "TOKEN_MANA_U" )
subfilter:Add( FE_CARD_NAME, OP_IS, "TOKEN_MANA_G" )
subfilter:Add( FE_CARD_NAME, OP_IS, "TOKEN_MANA_R" )
subfilter:Add( FE_CARD_NAME, OP_IS, "TOKEN_MANA_W" )
return filter:CountStopAt(1) == 1
</AVAILABILITY>
<RESOLUTION_TIME_ACTION>
-- G2K_DisplayManaPool(EffectController())
</RESOLUTION_TIME_ACTION>
</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>
<TOKEN_REGISTRATION reservation="1" type="RSN_TOKEN_MANA_C" />
<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="1500" zone="ZONE_BATTLEFIELD" />
</CARD_V2>
How can you produce mana outside of a triggered_ab/activated_ab or spell_ab ?
oops, I misread trigger with triggered. ok so you put RTAs after the </TRIGGER>.
Actually, I meant something more like this:gorem2k wrote:
- where do I put an EffectDC() to skip name check? | Open
- Code: Select all
<TRIGGER value="ZONECHANGE_CONSIDERED" simple_qualifier="objectyoucontrol" to_zone="ZONE_ANY" from_zone="ZONE_BATTLEFIELD" pre_trigger="1">
if (TriggerObject() ~= nil) and (TriggerObject():IsTapped() == false) then
local mtName = TriggerObject():GetCardName()
if (mtName == "TOKEN_MANA_C") then
MTG():OverrideEvent()
return true
elseif string.match( mtName, "TOKEN_MANA_" ) then
return true
end
end
return false
</TRIGGER>
<RESOLUTION_TIME_ACTION>
local mtName = TriggerObject():GetCardName()
...
- like this? | Open
- Code: Select all
<TRIGGERED_ABILITY replacement_effect="1">
<LOCALISED_TEXT LanguageCode="en-US"><![CDATA[If unused mana would empty from your mana pool, that mana becomes colorless instead.]]></LOCALISED_TEXT>
<TRIGGER value="ZONECHANGE_CONSIDERED" simple_qualifier="objectyoucontrol" to_zone="ZONE_ANY" from_zone="ZONE_BATTLEFIELD" pre_trigger="1">
if (TriggerObject() ~= nil) and (TriggerObject():IsTapped() == false) then
local mtName = TriggerObject():GetCardName()
if (mtName == "TOKEN_MANA_C") then
MTG():OverrideEvent()
return true
elseif string.match( mtName, "TOKEN_MANA_" ) then
EffectDC():Set_CardPtr(0, TriggerObject() )
EffectDC():Protect_CardPtr(0)
return true
end
end
return false
</TRIGGER>
<RESOLUTION_TIME_ACTION>
local mtName = EffectDC():Get_CardPtr(0):GetCardName()
if mtName ~= "TOKEN_MANA_C" then
RSN_ProduceNoTrigger( "{1}", 1 )
end
</RESOLUTION_TIME_ACTION>
<RESOLUTION_TIME_ACTION>
local mtName = EffectDC():Get_CardPtr(0):GetCardName()
if mtName ~= "TOKEN_MANA_C" then
RSN_EliminateExtraManaTokens()
end
</RESOLUTION_TIME_ACTION>
</TRIGGERED_ABILITY>
- ok this works: | Open
- Code: Select all
<TRIGGER value="ZONECHANGE_CONSIDERED" simple_qualifier="objectyoucontrol" to_zone="ZONE_ANY" from_zone="ZONE_BATTLEFIELD" pre_trigger="1">
if (TriggerObject() ~= nil) and (TriggerObject():IsTapped() == false) then
local mtName = TriggerObject():GetCardName()
if (mtName == "TOKEN_MANA_C") then
MTG():OverrideEvent()
return true
elseif string.match( mtName, "TOKEN_MANA_" ) and mtName ~= "TOKEN_MANA_C" then
EffectDC():Set_CardPtr(0, TriggerObject() )
EffectDC():Protect_CardPtr(0)
return true
end
end
return false
</TRIGGER>
<RESOLUTION_TIME_ACTION>
local card = EffectDC():Get_CardPtr(0)
if card ~= nil and card:GetCardName() ~= "TOKEN_MANA_C" then
RSN_ProduceNoTrigger( "{1}", 1 )
end
</RESOLUTION_TIME_ACTION>
<RESOLUTION_TIME_ACTION>
local card = EffectDC():Get_CardPtr(0)
if card ~= nil and card:GetCardName() ~= "TOKEN_MANA_C" then
RSN_EliminateExtraManaTokens()
end
</RESOLUTION_TIME_ACTION>
</TRIGGERED_ABILITY>
- Code: Select all
<TRIGGER value="ZONECHANGE_CONSIDERED" simple_qualifier="objectyoucontrol" to_zone="ZONE_ANY" from_zone="ZONE_BATTLEFIELD" pre_trigger="1">
if (TriggerObject() ~= nil) and (TriggerObject():IsTapped() == false) then
local mtName = TriggerObject():GetCardName()
if (mtName == "TOKEN_MANA_C") then
MTG():OverrideEvent()
EffectDC():Int_Set(50, 1)
return true
elseif string.match( mtName, "TOKEN_MANA_" ) and mtName ~= "TOKEN_MANA_C" then
return true
end
end
return false
</TRIGGER>
Just getting started: Xander9009's DotP 2014 Community Wad
Need a deck builder: DotP 2014 Deck Builder
Problems Modding: DotP 2014 Frequent Modding Mistakes
Need a deck builder: DotP 2014 Deck Builder
Problems Modding: DotP 2014 Frequent Modding Mistakes
- RiiakShiNal
- Programmer
- Posts: 2185
- Joined: 16 May 2011, 21:37
- Has thanked: 75 times
- Been thanked: 496 times
Re: Question about Mana pool (Kruphix, God of Horizons)
by NeoAnderson » 28 Aug 2014, 01:28
RiiakShiNal wrote:Yep, still inside the TRIGGERED_ABILITY so that they actually run.gorem2k wrote:I know it's not fixing everything RSN said but it's getting there...
- test | Open
- Code: Select all
<?xml version='1.0' encoding='UTF-8'?>
<CARD_V2 ExportVersion="1">
<FILENAME text="KRUPHIX_GOD_OF_HORIZONS_444380446" />
<CARDNAME text="KRUPHIX_GOD_OF_HORIZONS" />
<TITLE>
<LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Kruphix, God of Horizons]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Kruphix, dieu des Horizons]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Krufix, dios de los horizontes]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Kruphix, Gott der Horizonte]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Krufix, Dio degli Orizzonti]]></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[Crufix, Deus dos Horizontes]]></LOCALISED_TEXT>
</TITLE>
<MULTIVERSEID value="444380446" />
<ARTID value="444380446" />
<ARTIST name="Daarken" />
<CASTING_COST cost="{3}{G}{U}" />
<SUPERTYPE metaname="Legendary" />
<TYPE metaname="Enchantment" />
<TYPE metaname="Creature" />
<SUB_TYPE metaname="God" />
<EXPANSION value="JOU" />
<RARITY metaname="M" />
<POWER value="4" />
<TOUGHNESS value="7" />
<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 green and blue is less than seven, Kruphix isn’t a creature.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Tant que votre dévotion au vert et au bleu est inférieure à sept, Kruphix n’est pas une créature.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Mientras tu devoción al verde y al azul sea menor que siete, Krufix no es una criatura.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Solange deine Hingabe zu Grün und Blau weniger als sieben beträgt, ist Kruphix keine Kreatur.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Fintanto che la tua devozione al verde e al blu è inferiore a sette, Krufix 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 verde e ao azul for menor que sete, Crufix não será uma criatura.]]></LOCALISED_TEXT>
<CONTINUOUS_ACTION layer="4">
local source = EffectSource()
if source ~= nil then
local WBDevotion = Devotion_Player_Col_A_Col_B(COLOUR_RED, COLOUR_WHITE, EffectController())
if WBDevotion < 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>
<STATIC_ABILITY>
<LOCALISED_TEXT LanguageCode="en-US"><![CDATA[You have no maximum hand size.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Il n’y a pas de limite au nombre de cartes dans votre main.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Tu mano no tiene tamaño máximo.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Es gibt keine Obergrenze für die Anzahl an Karten, die du auf der Hand halten darfst.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Non hai un limite massimo di carte nella tua mano.]]></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[Não há limite para o número máximo de cards em sua mão.]]></LOCALISED_TEXT>
<CONTINUOUS_ACTION layer="8">
EffectController():GetCurrentCharacteristics():Bool_Set(PLAYER_CHARACTERISTIC_NO_HAND_LIMIT, 1)
</CONTINUOUS_ACTION>
</STATIC_ABILITY>
<TRIGGERED_ABILITY replacement_effect="1">
<LOCALISED_TEXT LanguageCode="en-US"><![CDATA[If unused mana would empty from your mana pool, that mana becomes colorless instead.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Si du mana inutilisé devait être vidé de votre réserve, ce mana devient incolore à la place.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Si fuera a vaciarse maná no utilizado de tu reserva de maná, en vez de eso, ese maná se convierte en incoloro.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Falls unverbrauchtes Mana aus deinem Manavorrat entfernt würde, wird dieses Mana stattdessen farblos.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Se del mana inutilizzato sta per essere rimosso dalla tua riserva di mana, quel mana diventa invece incolore.]]></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[Se o mana não usado for ser esvaziado da sua reserva de mana, em vez disso, aquele mana se tornará incolor.]]></LOCALISED_TEXT>
<TRIGGER value="ZONECHANGE_CONSIDERED" simple_qualifier="objectyoucontrol" to_zone="ZONE_ANY" from_zone="ZONE_BATTLEFIELD" pre_trigger="1">
if (TriggerObject() ~= nil) and (TriggerObject():IsTapped() == false) then
local mtName = TriggerObject():GetCardName()
if (mtName == "TOKEN_MANA_C") then
MTG():OverrideEvent()
return true
elseif string.match( mtName, "TOKEN_MANA_" ) then
RSN_ProduceNoTrigger( "{1}", 1 )
end
end
return false
</TRIGGER>
</TRIGGERED_ABILITY>
<!-- OPTIONAL MANA DISPLAY ABILITY -->
<STATIC_ABILITY>
<CONTINUOUS_ACTION layer="8">
if EffectSource() ~= nil then
EffectSource():GetCurrentCharacteristics():GrantAbility(1)
end
</CONTINUOUS_ACTION>
<DURATION>
return EffectSource() == nil
</DURATION>
</STATIC_ABILITY>
<ACTIVATED_ABILITY resource_id="1" forced_skip="1">
<LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Display your mana pool.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Display your mana pool.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Display your mana pool.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Display your mana pool.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Display your mana pool.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[Display your mana pool.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[Display your mana pool.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[Display your mana pool.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[Display your mana pool.]]></LOCALISED_TEXT>
<AVAILABILITY>
local filter = ClearFilter()
filter:Set_And()
filter:Add( FE_CONTROLLER, OP_IS, EffectController() )
local subfilter = filter:AddSubFilter_Or()
subfilter:Add( FE_CARD_NAME, OP_IS, "TOKEN_MANA_C" )
subfilter:Add( FE_CARD_NAME, OP_IS, "TOKEN_MANA_B" )
subfilter:Add( FE_CARD_NAME, OP_IS, "TOKEN_MANA_U" )
subfilter:Add( FE_CARD_NAME, OP_IS, "TOKEN_MANA_G" )
subfilter:Add( FE_CARD_NAME, OP_IS, "TOKEN_MANA_R" )
subfilter:Add( FE_CARD_NAME, OP_IS, "TOKEN_MANA_W" )
return filter:CountStopAt(1) == 1
</AVAILABILITY>
<RESOLUTION_TIME_ACTION>
-- G2K_DisplayManaPool(EffectController())
</RESOLUTION_TIME_ACTION>
</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>
<TOKEN_REGISTRATION reservation="1" type="RSN_TOKEN_MANA_C" />
<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="1500" zone="ZONE_BATTLEFIELD" />
</CARD_V2>
How can you produce mana outside of a triggered_ab/activated_ab or spell_ab ?
oops, I misread trigger with triggered. ok so you put RTAs after the </TRIGGER>.Actually, I meant something more like this:gorem2k wrote:
- where do I put an EffectDC() to skip name check? | Open
- Code: Select all
<TRIGGER value="ZONECHANGE_CONSIDERED" simple_qualifier="objectyoucontrol" to_zone="ZONE_ANY" from_zone="ZONE_BATTLEFIELD" pre_trigger="1">
if (TriggerObject() ~= nil) and (TriggerObject():IsTapped() == false) then
local mtName = TriggerObject():GetCardName()
if (mtName == "TOKEN_MANA_C") then
MTG():OverrideEvent()
return true
elseif string.match( mtName, "TOKEN_MANA_" ) then
return true
end
end
return false
</TRIGGER>
<RESOLUTION_TIME_ACTION>
local mtName = TriggerObject():GetCardName()
...
- like this? | Open
- Code: Select all
<TRIGGERED_ABILITY replacement_effect="1">
<LOCALISED_TEXT LanguageCode="en-US"><![CDATA[If unused mana would empty from your mana pool, that mana becomes colorless instead.]]></LOCALISED_TEXT>
<TRIGGER value="ZONECHANGE_CONSIDERED" simple_qualifier="objectyoucontrol" to_zone="ZONE_ANY" from_zone="ZONE_BATTLEFIELD" pre_trigger="1">
if (TriggerObject() ~= nil) and (TriggerObject():IsTapped() == false) then
local mtName = TriggerObject():GetCardName()
if (mtName == "TOKEN_MANA_C") then
MTG():OverrideEvent()
return true
elseif string.match( mtName, "TOKEN_MANA_" ) then
EffectDC():Set_CardPtr(0, TriggerObject() )
EffectDC():Protect_CardPtr(0)
return true
end
end
return false
</TRIGGER>
<RESOLUTION_TIME_ACTION>
local mtName = EffectDC():Get_CardPtr(0):GetCardName()
if mtName ~= "TOKEN_MANA_C" then
RSN_ProduceNoTrigger( "{1}", 1 )
end
</RESOLUTION_TIME_ACTION>
<RESOLUTION_TIME_ACTION>
local mtName = EffectDC():Get_CardPtr(0):GetCardName()
if mtName ~= "TOKEN_MANA_C" then
RSN_EliminateExtraManaTokens()
end
</RESOLUTION_TIME_ACTION>
</TRIGGERED_ABILITY>
- ok this works: | Open
- Code: Select all
<TRIGGER value="ZONECHANGE_CONSIDERED" simple_qualifier="objectyoucontrol" to_zone="ZONE_ANY" from_zone="ZONE_BATTLEFIELD" pre_trigger="1">
if (TriggerObject() ~= nil) and (TriggerObject():IsTapped() == false) then
local mtName = TriggerObject():GetCardName()
if (mtName == "TOKEN_MANA_C") then
MTG():OverrideEvent()
return true
elseif string.match( mtName, "TOKEN_MANA_" ) and mtName ~= "TOKEN_MANA_C" then
EffectDC():Set_CardPtr(0, TriggerObject() )
EffectDC():Protect_CardPtr(0)
return true
end
end
return false
</TRIGGER>
<RESOLUTION_TIME_ACTION>
local card = EffectDC():Get_CardPtr(0)
if card ~= nil and card:GetCardName() ~= "TOKEN_MANA_C" then
RSN_ProduceNoTrigger( "{1}", 1 )
end
</RESOLUTION_TIME_ACTION>
<RESOLUTION_TIME_ACTION>
local card = EffectDC():Get_CardPtr(0)
if card ~= nil and card:GetCardName() ~= "TOKEN_MANA_C" then
RSN_EliminateExtraManaTokens()
end
</RESOLUTION_TIME_ACTION>
</TRIGGERED_ABILITY>That way you only have to check an int and don't have to worry about card pointers.
- Code: Select all
<TRIGGER value="ZONECHANGE_CONSIDERED" simple_qualifier="objectyoucontrol" to_zone="ZONE_ANY" from_zone="ZONE_BATTLEFIELD" pre_trigger="1">
if (TriggerObject() ~= nil) and (TriggerObject():IsTapped() == false) then
local mtName = TriggerObject():GetCardName()
if (mtName == "TOKEN_MANA_C") then
MTG():OverrideEvent()
EffectDC():Int_Set(50, 1)
return true
elseif string.match( mtName, "TOKEN_MANA_" ) and mtName ~= "TOKEN_MANA_C" then
return true
end
end
return false
</TRIGGER>
But why you are setting the EffectDC():Int_Set(50, 1) when it found the colourless untapped token? You should move into elseif when he found an untapped coloured mana token.
- NeoAnderson
- Posts: 914
- Joined: 10 Sep 2013, 07:49
- Has thanked: 18 times
- Been thanked: 139 times
Re: Question about Mana pool (Kruphix, God of Horizons)
by gorem2k » 28 Aug 2014, 02:07
I think he meant to put it after the elseif like you did.
- Code: Select all
<TRIGGER value="ZONECHANGE_CONSIDERED" simple_qualifier="objectyoucontrol" to_zone="ZONE_ANY" from_zone="ZONE_BATTLEFIELD" pre_trigger="1">
if (TriggerObject() ~= nil) and (TriggerObject():IsTapped() == false) then
local mtName = TriggerObject():GetCardName()
EffectDC():Int_Clear(-23528937598792834)
if (mtName == "TOKEN_MANA_C") then
MTG():OverrideEvent()
return true
elseif string.match( mtName, "TOKEN_MANA_" ) and mtName ~= "TOKEN_MANA_C" then
EffectDC():Int_Set(-23528937598792834, 1)
return true
end
end
return false
</TRIGGER>
<RESOLUTION_TIME_ACTION>
if EffectDC():Get_Int(-23528937598792834) == 1 then
RSN_ProduceNoTrigger( "{1}", 1 )
end
</RESOLUTION_TIME_ACTION>
<RESOLUTION_TIME_ACTION>
if EffectDC():Get_Int(-23528937598792834) == 1 then
RSN_EliminateExtraManaTokens()
end
</RESOLUTION_TIME_ACTION>
Re: Question about Mana pool (Kruphix, God of Horizons)
by NeoAnderson » 28 Aug 2014, 02:31
OMG my eyes probably are gone!!! Fixed into the Full pack! Thanks a lot my friend!gorem2k wrote:hey Neo, your Kruphix, God of Horizons is checking for red and white color devotion while it should check for green and blue.
- NeoAnderson
- Posts: 914
- Joined: 10 Sep 2013, 07:49
- Has thanked: 18 times
- Been thanked: 139 times
Re: Question about Mana pool (Kruphix, God of Horizons)
by RiiakShiNal » 28 Aug 2014, 23:08
It doesn't matter on which one you put it. If you set it for colourless then you just do a negative check:NeoAnderson wrote:But why you are setting the EffectDC():Int_Set(50, 1) when it found the colourless untapped token? You should move into elseif when he found an untapped coloured mana token.
- Code: Select all
if (EffectDC():Int_Get(50) ~= 1) then
- Code: Select all
if (EffectDC():Int_Get(50) == 1) then
Just getting started: Xander9009's DotP 2014 Community Wad
Need a deck builder: DotP 2014 Deck Builder
Problems Modding: DotP 2014 Frequent Modding Mistakes
Need a deck builder: DotP 2014 Deck Builder
Problems Modding: DotP 2014 Frequent Modding Mistakes
- RiiakShiNal
- Programmer
- Posts: 2185
- Joined: 16 May 2011, 21:37
- Has thanked: 75 times
- Been thanked: 496 times
Re: Question about Mana pool (Kruphix, God of Horizons)
by NeoAnderson » 29 Aug 2014, 04:55
You're right is obvious that if you invert the if condition will be ok, anyway please could you come to see the other topic about overload? Your help, also the help Firemind will be really appreciated we are really close to have a good approximation, i have just to make a little fix!RiiakShiNal wrote:It doesn't matter on which one you put it. If you set it for colourless then you just do a negative check:NeoAnderson wrote:But why you are setting the EffectDC():Int_Set(50, 1) when it found the colourless untapped token? You should move into elseif when he found an untapped coloured mana token.If you set it for other mana tokens then you do a positive check:
- Code: Select all
if (EffectDC():Int_Get(50) ~= 1) then
Regardless because you only return true in the trigger for mana tokens you don't have to worry about any other cards.
- Code: Select all
if (EffectDC():Int_Get(50) == 1) then
- NeoAnderson
- Posts: 914
- Joined: 10 Sep 2013, 07:49
- Has thanked: 18 times
- Been thanked: 139 times
15 posts
• Page 1 of 1
Who is online
Users browsing this forum: No registered users and 26 guests