It is currently 23 Apr 2024, 09:14
   
Text Size

Report cards error here

Moderator: CCGHQ Admins

Re: Report cards error here

Postby gorem2k » 10 Sep 2013, 01:02

thefiremind wrote:A crazy idea would be to use Multiply in order to add 2... crazy because I actually made my math. :lol:
xy = x+2 => y = 1 + (2/x)
so:
Code: Select all
Damage():Multiply( 1 + 2/Damage():GetAmount() )
Thanks for bringing back some algebra memories to me! I completely forgot it could be useful :wink:

So, here's my report: I cast Shock onto opponent, player loses 4 life. Good. But, having two gauntlets would require a new formula :lol: something like y = (1 + ((2*instances)/x) and this looks very odd

I don't understand why they've cut or (replaced?) SetAmount... like you said about preventable damage, I don't think I will accept that approximation.

there's Set_Damage and Get_Damage in data chest and also an existing COMPARTMENT_ID_DAMAGE, do you know in which circumstance these would apply?

and I've found this in EXTRACTINFO.LOL:
Code: Select all
SetAmount = function(l_13_0)
  MTG():EffectDataChest():Set_Int(COMPARTMENT_ID_PARAM_AMOUNT, l_13_0)
end
tried to add MTG():EffectDataChest():Set_Int(COMPARTMENT_ID_PARAM_AMOUNT, 15) in a RTA (resolution_time_action) and it didn't change the amount of damage. also Damage():SetAmount( 15 ) generates an error log.
gorem2k
 
Posts: 464
Joined: 01 Apr 2013, 04:21
Has thanked: 48 times
Been thanked: 33 times

Re: Report cards error here

Postby thefiremind » 10 Sep 2013, 08:54

gorem2k wrote:But, having two gauntlets would require a new formula :lol: something like y = (1 + ((2*instances)/x)
This shouldn't be needed... one of them replaces the damage and the other one replaces the damage again after the first. 2 Fire Servant or Furnace of Rath should work good together without editing their code, I think, so why shouldn't this work the same way?

gorem2k wrote:there's Set_Damage and Get_Damage in data chest and also an existing COMPARTMENT_ID_DAMAGE, do you know in which circumstance these would apply?
I don't know, but it could be worth some more tests.

gorem2k wrote:and I've found this in EXTRACTINFO.LOL:
Code: Select all
SetAmount = function(l_13_0)
  MTG():EffectDataChest():Set_Int(COMPARTMENT_ID_PARAM_AMOUNT, l_13_0)
end
That's used for amounts of tokens or counters: look at Doubling Season.
< Former DotP 2012/2013/2014 modder >
Currently busy with life...
User avatar
thefiremind
Programmer
 
Posts: 3515
Joined: 07 Nov 2011, 10:55
Has thanked: 118 times
Been thanked: 721 times

Re: Report cards error here

Postby gorem2k » 10 Sep 2013, 20:47

For some reason having a gauntlet in play, Shock deals 4 damage as it should but Lava Axe deals 5 only, not 7.

2 / 5 = 0,4 (0,4 may be rounded down for integer 0)
0,4 + 1 = 1,4
1,4 * 5 = 7

EDIT: this not worth the effort. lets hope if theres a DotP2015 edition the devs wont remove Multiply().
gorem2k
 
Posts: 464
Joined: 01 Apr 2013, 04:21
Has thanked: 48 times
Been thanked: 33 times

Re: Report cards error here

Postby GrovyleXShinyCelebi » 10 Sep 2013, 23:00

Hey, I have a question.

Is there a way to shuffle your graveyard, or somehow allow Charmbreaker Devils to search a card from your graveyard at random? My code for it just takes the top instant and sorcery spell and put it into your hand, but is there a way to actually randomize this?
User avatar
GrovyleXShinyCelebi
 
Posts: 294
Joined: 12 Jun 2013, 18:23
Has thanked: 14 times
Been thanked: 37 times

Re: Report cards error here

Postby gorem2k » 10 Sep 2013, 23:09

GrovyleXShinyCelebi wrote:Hey, I have a question.

Is there a way to shuffle your graveyard, or somehow allow Charmbreaker Devils to search a card from your graveyard at random? My code for it just takes the top instant and sorcery spell and put it into your hand, but is there a way to actually randomize this?
I haven't tried but maybe you could add this to your graveyard filtering section
Code: Select all
filter:EvaluateObjects()
filter:GetRandomEvaluatedObject()
Last edited by gorem2k on 10 Sep 2013, 23:17, edited 2 times in total.
gorem2k
 
Posts: 464
Joined: 01 Apr 2013, 04:21
Has thanked: 48 times
Been thanked: 33 times

Re: Report cards error here

Postby thefiremind » 10 Sep 2013, 23:10

GrovyleXShinyCelebi wrote:Is there a way to shuffle your graveyard, or somehow allow Charmbreaker Devils to search a card from your graveyard at random? My code for it just takes the top instant and sorcery spell and put it into your hand, but is there a way to actually randomize this?
Ghoulraiser is an official card and does exactly what you want, just with Zombies rather than instants or sorceries. :wink:
gorem2k wrote:I haven't tried but maybe you could add this to your graveyard filtering section
Code: Select all
filter:EvaluateObjects()
filter:GetRandomEvaluatedObject()
Yes, that's what's needed. I still suggest to look at Ghoulraiser, just to start from a full example.
< Former DotP 2012/2013/2014 modder >
Currently busy with life...
User avatar
thefiremind
Programmer
 
Posts: 3515
Joined: 07 Nov 2011, 10:55
Has thanked: 118 times
Been thanked: 721 times

Re: Report cards error here

Postby GrovyleXShinyCelebi » 10 Sep 2013, 23:13

thefiremind wrote:
GrovyleXShinyCelebi wrote:Is there a way to shuffle your graveyard, or somehow allow Charmbreaker Devils to search a card from your graveyard at random? My code for it just takes the top instant and sorcery spell and put it into your hand, but is there a way to actually randomize this?
Ghoulraiser is an official card and does exactly what you want, just with Zombies rather than instants or sorceries. :wink:
gorem2k wrote:I haven't tried but maybe you could add this to your graveyard filtering section
Code: Select all
filter:EvaluateObjects()
filter:GetRandomEvaluatedObject()
Yes, that's what's needed. I still suggest to look at Ghoulraiser, just to start from a full example.
Hehe, didn't notice that that was exactly what did Ghoulraiser did. Thanks.
User avatar
GrovyleXShinyCelebi
 
Posts: 294
Joined: 12 Jun 2013, 18:23
Has thanked: 14 times
Been thanked: 37 times

Re: Report cards error here

Postby GrovyleXShinyCelebi » 11 Sep 2013, 23:30

Another question.

For my code for Triumph of Cruelty, the card words perfectly:

Code: Select all
<?xml version='1.0' encoding='UTF-8'?>
<CARD_V2 ExportVersion="1">
  <FILENAME text="TRIUMPH_OF_CRUELTY_99276502" />
  <CARDNAME text="TRIUMPH_OF_CRUELTY" />
  <TITLE>
    <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Triumph of Cruelty]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Triomphe de la cruauté]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Triunfo de la crueldad]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Triumph der Grausamkeit]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Tripudio di Crudeltà]]></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[Triunfo da Crueldade]]></LOCALISED_TEXT>
  </TITLE>
  <MULTIVERSEID value="276502" />
  <ARTID value="276502" />
  <ARTIST name="Izzy" />
  <CASTING_COST cost="{2}{B}" />
  <FLAVOURTEXT>
    <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[“I’ve seen corpses prettier than you, beastmage.”
Liliana Vess]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[« J’ai vu des cadavres plus agréables à regarder que toi, bêtemage. »
Liliana Vess]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[“He visto cadáveres más bellos que tú, mago de bestias.”
Liliana Vess]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[„Ich habe schon Leichen gesehen, die hübscher sind als du, Tiermagier.”
Liliana Vess]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[“Ho visto cadaveri più carini di te, mago bestiale.”
Liliana Vess]]></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[“Já vi cadáveres mais bonitos que você, mago das feras.”
Liliana Vess]]></LOCALISED_TEXT>
  </FLAVOURTEXT>
  <TYPE metaname="Enchantment" />
  <EXPANSION value="AVR" />
  <RARITY metaname="U" />
  <TRIGGERED_ABILITY>
    <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[At the beginning of your upkeep, target opponent discards a card if you control the creature with the greatest power or tied for the greatest power.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Au début de votre entretien, l’adversaire ciblé se défausse d’une carte si vous contrôlez la créature avec la force la plus élevée ou qui partage la force la plus élevée.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Al comienzo de tu mantenimiento, el oponente objetivo descarta una carta si controlas a la criatura con mayor fuerza o que empata por la mayor fuerza.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Zu Beginn deines Versorgungssegments wirft ein Gegner deiner Wahl eine Karte aus der Hand ab, falls du die Kreatur mit der größten Stärke kontrollierst.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[All’inizio del tuo mantenimento, un avversario bersaglio scarta una carta se controlli la creatura con la forza maggiore o pari alla forza maggiore.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[あなたのアップキープの開始時に、対戦相手1人を対象とする。あなたがパワーの最も大きいクリーチャー、あるいは2体以上あるならそのうちの1体をコントロールしている場合、そのプレイヤーはカードを1枚捨てる。]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[당신의 유지단 시작에, 상대 한 명을 목표로 정한다. 당신이 전장에서 공격력이 제일 높거나 공동으로 공격력이 제일 높은 생물을 조종한다면, 그 상대는 카드 한 장을 버린다.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[В начале вашего шага поддержки целевой оппонент сбрасывает карту, если вы контролируете существо с наибольшей силой или с одинаковым значением наибольшей силы с другим существом.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[No início de sua manutenção, o oponente alvo descarta um card se você controlar a criatura com maior poder ou uma das que tem o maior poder.]]></LOCALISED_TEXT>
  <TRIGGER value="BEGINNING_OF_PLAYERS_STEP" simple_qualifier="controller">
    return MTG():GetStep() == STEP_UPKEEP
  </TRIGGER>
    <RESOLUTION_TIME_ACTION>
    local power = 0
    local filter = ClearFilter()
    filter:SetZone( ZONE_BATTLEFIELD )
    filter:Add( FE_TYPE, OP_IS, CARD_TYPE_CREATURE )
    local numPermanents = filter:EvaluateObjects()
    for i=0,(numPermanents-1) do
       local number = filter:GetNthEvaluatedObject(i):GetCurrentCharacteristics():Power_Get()
       if number &gt; power then
          power = number   
       end
    end
    EffectDC():Set_Int(3, power)
    </RESOLUTION_TIME_ACTION>
   <RESOLUTION_TIME_ACTION>
    local number = EffectDC():Get_Int(3)
    local filter = ClearFilter()
    filter:SetZone( ZONE_BATTLEFIELD )
    filter:Add( FE_TYPE, OP_IS, CARD_TYPE_CREATURE )
    filter:Add( FE_CONTROLLER, OP_IS, EffectController() )
    filter:Add( FE_POWER, OP_EQUALS, number )
    local count = filter:Count()
    if count ~= 0 then
       local filter2 = ClearFilter()
       filter2:SetFilterType( FILTER_TYPE_PLAYERS )
       filter2:Add( FE_TEAM, OP_NOT, EffectController():GetTeam() )
       EffectController():SetItemCount( 1 )
       for i = 0, (1-1) do
          EffectController():SetItemPrompt (i, "CARD_QUERY_CHOOSE_PLAYER_DISCARD_1" )
       end
       EffectController():ChooseItems( EffectDC():Make_Targets(2) )
    end
   </RESOLUTION_TIME_ACTION>
    <RESOLUTION_TIME_ACTION>
    local filter = ClearFilter()
    local target = EffectDC():Get_Targets(2):Get_PlayerPtr(0)
    if target ~= nil then
       filter:SetZone( ZONE_HAND, target)
       target:SetItemCount( 1 )
       for i = 0,(1-1) do
          target:SetItemPrompt (i, "CARD_QUERY_CHOOSE_CARD_TO_DISCARD" )
       end
       target:ChooseItems( EffectDC():Make_Targets(1) )
    end
    </RESOLUTION_TIME_ACTION>
    <RESOLUTION_TIME_ACTION>
    local player = EffectDC():Get_Targets(2):Get_PlayerPtr(0)
    if player ~= nil then
       for i = 0,(1-1) do
          local target_card = EffectDC():Get_Targets(1):Get_CardPtr(i)
          if target_card ~= nil  then
             target_card:Discard()
          end
       end
    end
    </RESOLUTION_TIME_ACTION>
  </TRIGGERED_ABILITY>
</CARD_V2>
The problem is that whenever the card doesn't trigger because the effect controller doesn't control a creature that meets the filter requirements, after I leave the game I get an error message saying that it tried to index a nil value. I strongly suspect that this is because of EffectDC():Get_Targets(2):Get_PlayerPtr(0) in the last two RESOLUTION_TIME_ACTIONs not being able to find a target because the trigger didn't make it. Anyone know of a way to stop the code from continuing to execute beyond the part when the card tries to see if you have a creature that meets the card requirements, and the card can't find one?

Thanks!
User avatar
GrovyleXShinyCelebi
 
Posts: 294
Joined: 12 Jun 2013, 18:23
Has thanked: 14 times
Been thanked: 37 times

Re: Report cards error here

Postby thefiremind » 12 Sep 2013, 00:09

Rather than writing
Code: Select all
local target = EffectDC():Get_Targets(2):Get_PlayerPtr(0)
try to write
Code: Select all
local target = EffectDC():Get_Targets(2) and EffectDC():Get_Targets(2):Get_PlayerPtr(0)
If the first operand of the "and" is nil, the interpreter doesn't bother checking the second, and no error will be thrown. If it's not nil, the second operand "wins" and the value of the latter gets stored into the variable.
The general rule is:
Code: Select all
nil and something = nil (with no processing on something)
something_not_nil and something_else = something_else
I know it's not obvious and I had no idea of this rule before pcastellazzi told me some time ago, but Lua works this way. The "or" operator can be used in a similar way but I can't remember exactly when it's useful, the "and" is by far the most useful in order to prevent nil value indexing.
< Former DotP 2012/2013/2014 modder >
Currently busy with life...
User avatar
thefiremind
Programmer
 
Posts: 3515
Joined: 07 Nov 2011, 10:55
Has thanked: 118 times
Been thanked: 721 times

Re: Report cards error here

Postby GrovyleXShinyCelebi » 15 Sep 2013, 01:20

A short question:

Does GetBlockVictim() affect both blockers and creatures blocked or just the creatures blocking the effect target/source?
User avatar
GrovyleXShinyCelebi
 
Posts: 294
Joined: 12 Jun 2013, 18:23
Has thanked: 14 times
Been thanked: 37 times

Re: Report cards error here

Postby thefiremind » 15 Sep 2013, 08:27

GrovyleXShinyCelebi wrote:Does GetBlockVictim() affect both blockers and creatures blocked or just the creatures blocking the effect target/source?
Sometimes I make confusion about that function, too. The "victim of the block" is the blocked creature, so creature1:GetBlockVictim() should return the attacker that creature1 is blocking. The problem is that, unlike in previous DotP games, there's no guarantee that each creature blocks only 1 attacker, and if a creature blocks more than 1 attacker at once, I'm not sure about what GetBlockVictim() will return... maybe the first one, maybe one at random, maybe it crashes the game.
If you need to retrieve all attackers blocked by a creature you need to be a little more creative... :D search for Gomazoa in the Formal Request Thread and see how I retrieved all creatures blocked by Gomazoa.
< Former DotP 2012/2013/2014 modder >
Currently busy with life...
User avatar
thefiremind
Programmer
 
Posts: 3515
Joined: 07 Nov 2011, 10:55
Has thanked: 118 times
Been thanked: 721 times

Re: Report cards error here

Postby GrovyleXShinyCelebi » 17 Sep 2013, 01:03

Going back to GetBlockVictim(), I wonder (and this is just a "nooby" assumption) can you put a value to GetBlockVictim() (i.e. GetBlockVictim(0), GetBlockVictim(1), etc) and then get all the block victims that way with a combination of counting a filter of all creatures attacking and "for i=0, (count-1) do"?

Sorry for these questions, I'm just trying to find a way to code Gaze of the Gorgon, and I'm looking for an efficient method to retrieve all creatures on the other side of combat with the "EffectController():Get_Target(0):Get_CardPtr(0)" and store them in a data chest.

One more noob question, what's the difference between EffectSource() and EffectSourceLKI()?
User avatar
GrovyleXShinyCelebi
 
Posts: 294
Joined: 12 Jun 2013, 18:23
Has thanked: 14 times
Been thanked: 37 times

Re: Report cards error here

Postby thefiremind » 17 Sep 2013, 09:01

GrovyleXShinyCelebi wrote:Going back to GetBlockVictim(), I wonder (and this is just a "nooby" assumption) can you put a value to GetBlockVictim() (i.e. GetBlockVictim(0), GetBlockVictim(1), etc) and then get all the block victims that way with a combination of counting a filter of all creatures attacking and "for i=0, (count-1) do"?
I don't think that the developers modified GetBlockVictim() so that it can accept a parameter, since they didn't have to use it for official cards.

GrovyleXShinyCelebi wrote:Sorry for these questions, I'm just trying to find a way to code Gaze of the Gorgon, and I'm looking for an efficient method to retrieve all creatures on the other side of combat with the "EffectController():Get_Target(0):Get_CardPtr(0)" and store them in a data chest.
Gaze of the Gorgon seems very difficult to me... if you could play it only before blockers are declared, it would be similar to Gomazoa, but playing it after blockers are declared leaves no time to make triggers that save creatures blocking or blocked by its target, so it would need to save all blocking or blocked creatures and then pick the ones pertaining to its target after the target is chosen. RiiakShiNal's ObjectDC could probably be useful for this task. I'd like to hear more ideas about Gaze of the Gorgon from the other modders before going through this route.

GrovyleXShinyCelebi wrote:One more noob question, what's the difference between EffectSource() and EffectSourceLKI()?
LKI stands for "Last Known Information". LKI pointers keep the information about the card before it changed zone. As long as the source is in the same zone as it was when the ability went on the stack, the 2 pointers are identical; when the source changes zone, EffectSource() gets wiped, while EffectSourceLKI() still has the old information (power, toughness, counters on it, etc.). Note that protecting a pointer results in a totally different effect: the pointer is preserved anyway, but it contains the new information about the card after the zone change.
< Former DotP 2012/2013/2014 modder >
Currently busy with life...
User avatar
thefiremind
Programmer
 
Posts: 3515
Joined: 07 Nov 2011, 10:55
Has thanked: 118 times
Been thanked: 721 times

Re: Report cards error here

Postby GrovyleXShinyCelebi » 22 Sep 2013, 14:56

So, I was working on Axebane Guardian, and I'm having some trouble making an effect that would allow me to get multiple mana of any combination of colors.

My first attempt worked like this:

Code: Select all
<?xml version='1.0' encoding='UTF-8'?>
<CARD_V2 ExportVersion="1">
  <FILENAME text="AXEBANE_GUARDIAN_99253556" />
  <CARDNAME text="AXEBANE_GUARDIAN" />
  <TITLE>
    <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Axebane Guardian]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Vigile de Fléaudhache]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Guardián de Rompehachas]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Wächter des Beilbrecherwalds]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Guardiano di Rovina-Asce]]></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[Guardião de Danação dos Machados]]></LOCALISED_TEXT>
  </TITLE>
  <MULTIVERSEID value="253556" />
  <ARTID value="253556" />
  <ARTIST name="Slawomir Maniak" />
  <CASTING_COST cost="{2}{G}" />
  <FLAVOURTEXT>
    <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Only a worthy few are permitted within the sentient forest known as Axebane.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Seuls quelques rares élus ont accès à la forêt pensante qu’on appelle Fléaudhache.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Sólo a unos pocos elegidos se les permite adentrarse en el bosque viviente conocido como Rompehachas.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Nur wenige Würdige erhalten Einlass in den denkenden Forst, der als Beilbrecherwald bekannt ist.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Solo chi è degno viene ammesso nella foresta senziente nota come Rovina-Asce.]]></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[A apenas uns poucos dignos é permitida a entrada na floresta senciente conhecida como Danação dos Machados.]]></LOCALISED_TEXT>
  </FLAVOURTEXT>
  <TYPE metaname="Creature" />
  <SUB_TYPE metaname="Human" />
  <SUB_TYPE metaname="Druid" />
  <EXPANSION value="RTR" />
  <RARITY metaname="C" />
  <POWER value="0" />
  <TOUGHNESS value="3" />
  <STATIC_ABILITY>
    <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Defender]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Défenseur]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Defensor.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Verteidiger]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Difensore]]></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[Defensor]]></LOCALISED_TEXT>
    <INTRINSIC characteristic="CHARACTERISTIC_DEFENDER" />
  </STATIC_ABILITY>
  <ACTIVATED_ABILITY forced_skip="1">
    <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[{T}: Add X mana in any combination of colors to your mana pool, where X is the number of creatures with defender you control.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[{T} : Ajoutez X manas de la combinaison de mana coloré de votre choix à votre réserve, X étant le nombre de créatures avec le défenseur que vous contrôlez.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[{T}: Agrega X manás de cualquier combinación de color a tu reserva de maná, donde X es el número de criaturas con la habilidad de defensor que controlas.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[{T}: Erhöhe deinen Manavorrat um X Mana in einer beliebigen Kombination von Farben, wobei X gleich der Anzahl an Kreaturen mit Verteidiger ist, die du kontrollierst.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[{T}: Aggiungi X mana in qualsiasi combinazione di colori alla tua riserva di mana, dove X è il numero di creature con difensore che controlli.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[{T}:あなたのマナ・プールに、好きな色の組み合わせのマナX点を加える。Xはあなたがコントロールする防衛を持つクリーチャーの総数に等しい。]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[{T}: 원하는 색의 조합으로 마나 X개를 당신의 마나풀에 담는다. X는 당신이 조종하는 생물 중 수비태세 능력을 가진 생물의 수다.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[{T}: добавьте Х маны в любой комбинации цветов в ваше хранилище маны, где Х — количество существ с Защитником под вашим контролем.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[{T}: Adicione X manas em qualquer combinação de cores a sua reserva de mana, sendo X igual ao número de criaturas com defensor que você controla.]]></LOCALISED_TEXT>
   <COST type="TapSelf" />
      <PLAY_TIME_ACTION>
         RSN_MarkManaAbilityStart()
      </PLAY_TIME_ACTION>
      <RESOLUTION_TIME_ACTION>
       local filter = ClearFilter()
       local resultDC = EffectDC():Make_Chest(2)
         filter:Add( FE_TYPE, OP_IS, CARD_TYPE_CREATURE)
         filter:Add( FE_CHARACTERISTIC, OP_HAS, CHARACTERISTIC_DEFENDER )
         local count = filter:Count()
        local triggerPlayer = EffectController()
        for i = 0, (count-1) do
             triggerPlayer:BeginNewMultipleChoice()   
       triggerPlayer:AddMultipleChoiceAnswer( "RSN_MODE_PRODUCE_R")   
       triggerPlayer:AddMultipleChoiceAnswer( "RSN_MODE_PRODUCE_G" )
        triggerPlayer:AddMultipleChoiceAnswer( "RSN_MODE_PRODUCE_U" )
   triggerPlayer:AddMultipleChoiceAnswer( "RSN_MODE_PRODUCE_W" )
        triggerPlayer:AddMultipleChoiceAnswer( "RSN_MODE_PRODUCE_B" )
       triggerPlayer:AskMultipleChoiceQuestion( "MODE_CHOOSE_ONE" )
        local result = EffectController():GetMultipleChoiceResult()
        resultDC:Set_Int(2, result)
        end
        EffectDC():Set_Int(1, count)
      </RESOLUTION_TIME_ACTION>
      <RESOLUTION_TIME_ACTION>
        local count = EffectDC():Get_Int(1)
        for i=0, (count-1) do
         local result = EffectDC():Get_Chest(2):Get_Int(i)
          if result == 0 then
              RSN_Produce( "{R}", 1 )
            elseif result == 1 then
              RSN_Produce( "{G}", 1 )
            elseif result == 2 then
              RSN_Produce( "{U}", 1 )
           elseif result == 3 then
              RSN_Produce( "{W}", 1 )
           elseif result == 4 then
              RSN_Produce( "{B}", 1 )
          end
        end
      </RESOLUTION_TIME_ACTION>
      <RESOLUTION_TIME_ACTION>
         RSN_EliminateExtraManaTokens()
         RSN_MarkManaAbilityEnd()
      </RESOLUTION_TIME_ACTION>
         <RESOLUTION_TIME_ACTION>
      local player = EffectController()
      local count = {}
      local message = ""
      local color_letter = {"X", "W", "U", "B", "R", "G"}
      local ManaTokenType = {"TOKEN_MANA_C", "TOKEN_MANA_W", "TOKEN_MANA_U", "TOKEN_MANA_B", "TOKEN_MANA_R", "TOKEN_MANA_G"}
      for i=0,5 do
         local filter = ClearFilter()
         filter:Add( FE_CARD_NAME, OP_IS, ManaTokenType[i+1] )
         filter:Add( FE_CONTROLLER, OP_IS, EffectController())
         filter:Add( FE_IS_TAPPED, false )
         count[i] = filter:Count()
         message = message.."{"..color_letter[i+1].."}"..count[i].."   "
      end
      player:DisplayMessage(" mana pool: \]\n\n\["..message)
    </RESOLUTION_TIME_ACTION>
      <AI_AVAILABILITY window_step="upkeep" type="window" />
      <AI_AVAILABILITY window_step="main_1" window_turn="my_turn" type="window" />
      <AI_AVAILABILITY window_step="begin_combat" window_turn="their_turn" type="window" />
      <AI_AVAILABILITY window_step="declare_attackers" window_turn="their_turn" type="window" />
      <AI_AVAILABILITY window_step="declare_blockers" type="window" />
      <AI_AVAILABILITY window_step="main_2" window_turn="my_turn" type="window" />
      <AI_AVAILABILITY window_step="end_of_turn" type="window" />
      <AI_AVAILABILITY window_step="end_of_turn" window_turn="their_turn" type="window" />
      <AI_AVAILABILITY type="in_response" response_source="1" response_target="1" />
      <AI_AVAILABILITY type="in_response" response_source="1" />
      <AI_AVAILABILITY type="in_response" response_target="1" />
   </ACTIVATED_ABILITY>
   <STATIC_ABILITY>
      <CONTINUOUS_ACTION layer="0">
         RSN_ClearCanProduceMana()
         RSN_MarkCanProduceMana( "{R}{G}{U}{W}{B}" )
      </CONTINUOUS_ACTION>
      <CONTINUOUS_ACTION layer="8">
         local nDefaultColour = COLOUR_WHITE
         local oCard = EffectSource()
         if (oCard ~= nil) then
            local oCharacteristics = oCard:GetCurrentCharacteristics()
            if (((oCharacteristics ~= nil) and (oCharacteristics:Bool_Get( CHARACTERISTIC_CANT_USE_ACTIVATED_ABILITIES ))) or
               (EffectController():GetCurrentCharacteristics():Bool_Get( PLAYER_CHARACTERISTIC_CANT_ACTIVATE_NONMANA_ABILITIES ))) then
               local nColour = RSN_GetLastProducedColour()
               if (nColour ~= COLOUR_COLOURLESS) then
                  oCharacteristics:GrantAbility( nColour )
               else
                  oCharacteristics:GrantAbility( nDefaultColour )
               end
            end
         end
      </CONTINUOUS_ACTION>
   </STATIC_ABILITY>
   <TRIGGERED_ABILITY forced_skip="1" replacement_effect="1">
      <TRIGGER value="BEGINNING_OF_STEP" pre_trigger="1" />
      <RESOLUTION_TIME_ACTION>
         RSN_ClearProducedMana()
      </RESOLUTION_TIME_ACTION>
   </TRIGGERED_ABILITY>
   <MANA_ABILITY resource_id="1">
      <COST type="TapSelf" />
      <PRODUCES amount="{R}" />
   </MANA_ABILITY>
   <MANA_ABILITY resource_id="2">
      <COST type="TapSelf" />
      <PRODUCES amount="{G}" />
   </MANA_ABILITY>
   <MANA_ABILITY resource_id="3">
      <COST type="TapSelf" />
      <PRODUCES amount="{U}" />
   </MANA_ABILITY>
   <MANA_ABILITY resource_id="4">
      <COST type="TapSelf" />
      <PRODUCES amount="{W}" />
   </MANA_ABILITY>
   <MANA_ABILITY resource_id="5">
      <COST type="TapSelf" />
      <PRODUCES amount="{B}" />
   </MANA_ABILITY>
   <TOKEN_REGISTRATION reservation="1" type="RSN_TOKEN_MANA_R" />
   <TOKEN_REGISTRATION reservation="1" type="RSN_TOKEN_MANA_G" />
   <TOKEN_REGISTRATION reservation="1" type="RSN_TOKEN_MANA_U" />
   <TOKEN_REGISTRATION reservation="1" type="RSN_TOKEN_MANA_W" />
   <TOKEN_REGISTRATION reservation="1" type="RSN_TOKEN_MANA_B" />
  <HELP title="MORE_INFO_BADGE_TITLE_6" body="MORE_INFO_BADGE_BODY_6" 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" />
</CARD_V2>
Doesn't work, it messes up the multiple choice.

Next, I tried using a FILTER block followed by a RESOLUTION_TIME_ACTION block:

Code: Select all
    <FILTER filter_id="0">
       local filter = ClearFilter()
       filter:Add( FE_TYPE, OP_IS, CARD_TYPE_CREATURE)
       filter:Add( FE_CHARACTERISTIC, OP_HAS, CHARACTERISTIC_DEFENDER )
      </FILTER>
      <RESOLUTION_TIME_ACTION filter_id="0">
        local triggerPlayer = EffectController()
         triggerPlayer:BeginNewMultipleChoice()   
        triggerPlayer:AddMultipleChoiceAnswer( "RSN_MODE_PRODUCE_R")   
        triggerPlayer:AddMultipleChoiceAnswer( "RSN_MODE_PRODUCE_G" )
         triggerPlayer:AddMultipleChoiceAnswer( "RSN_MODE_PRODUCE_U" )
    triggerPlayer:AddMultipleChoiceAnswer( "RSN_MODE_PRODUCE_W" )
         triggerPlayer:AddMultipleChoiceAnswer( "RSN_MODE_PRODUCE_B" )
        triggerPlayer:AskMultipleChoiceQuestion( "MODE_CHOOSE_ONE" )
         local result = triggerPlayer:GetMultipleChoiceResult()
         EffectDC():Set_Int(i, result)
      </RESOLUTION_TIME_ACTION>
      <RESOLUTION_TIME_ACTION filter_id="0">
         local result = EffectDC():Get_Int(i)
          if result == 0 then
              RSN_Produce( "{R}", 1 )
            elseif result == 1 then
              RSN_Produce( "{G}", 1 )
            elseif result == 2 then
              RSN_Produce( "{U}", 1 )
           elseif result == 3 then
              RSN_Produce( "{W}", 1 )
           elseif result == 4 then
              RSN_Produce( "{B}", 1 )
          end
      </RESOLUTION_TIME_ACTION>
It was a good concept, but then I don't know where should I declare "i" (being the variable that will allow each pointer to be stored in a different place).

Anyone have any tips on this?
User avatar
GrovyleXShinyCelebi
 
Posts: 294
Joined: 12 Jun 2013, 18:23
Has thanked: 14 times
Been thanked: 37 times

Re: Report cards error here

Postby RiiakShiNal » 22 Sep 2013, 15:04

I actually just gave jacque the full code to Axebane Guardian (tested/working):
Code: Select all
<?xml version='1.0'?>
<CARD_V2>
   <FILENAME text="RSN_AXEBANE_GUARDIAN_253556" />
   <CARDNAME text="AXEBANE_GUARDIAN" />
   <TITLE>
      <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Axebane Guardian]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Vigile de Fléaudhache]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Guardián de Rompehachas]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Wächter des Beilbrecherwalds]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Guardiano di Rovina-Asce]]></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[Guardião de Danação dos Machados]]></LOCALISED_TEXT>
   </TITLE>
   <MULTIVERSEID value="253556" />
   <ARTID value="RSN253556" />
   <ARTIST name="Slawomir Maniak" />
   <CASTING_COST cost="{2}{G}" />
   <FLAVOURTEXT>
      <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Only a worthy few are permitted within the sentient forest known as Axebane.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Seuls quelques rares élus ont accès à la forêt pensante qu’on appelle Fléaudhache.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Sólo a unos pocos elegidos se les permite adentrarse en el bosque viviente conocido como Rompehachas.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Nur wenige Würdige erhalten Einlass in den denkenden Forst, der als Beilbrecherwald bekannt ist.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Solo chi è degno viene ammesso nella foresta senziente nota come Rovina-Asce.]]></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[A apenas uns poucos dignos é permitida a entrada na floresta senciente conhecida como Danação dos Machados.]]></LOCALISED_TEXT>
   </FLAVOURTEXT>
   <TYPE metaname="Creature" />
   <SUB_TYPE metaname="Human" />
   <SUB_TYPE metaname="Druid" />
   <EXPANSION value="RTR" />
   <RARITY metaname="C" />
   <POWER value="0" />
   <TOUGHNESS value="3" />
   <HELP title="MORE_INFO_BADGE_TITLE_6" body="MORE_INFO_BADGE_BODY_6" zone="ZONE_ANY" />
   <STATIC_ABILITY commaspace="0">
      <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Defender]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Défenseur]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Defensor]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Verteidiger]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Difensore]]></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[Defensor]]></LOCALISED_TEXT>
      <INTRINSIC characteristic="CHARACTERISTIC_DEFENDER" />
   </STATIC_ABILITY>
   <ACTIVATED_ABILITY forced_skip="1">
      <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[{T}: Add X mana in any combination of colors to your mana pool, where X is the number of creatures with defender you control.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[{T} : Ajoutez X manas de la combinaison de mana coloré de votre choix à votre réserve, X étant le nombre de créatures avec le défenseur que vous contrôlez.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[{T}: Agrega X manás de cualquier combinación de color a tu reserva de maná, donde X es el número de criaturas con la habilidad de defensor que controlas.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[{T}: Erhöhe deinen Manavorrat um X Mana in einer beliebigen Kombination von Farben, wobei X gleich der Anzahl an Kreaturen mit Verteidiger ist, die du kontrollierst.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[{T}: Aggiungi X mana in qualsiasi combinazione di colori alla tua riserva di mana, dove X è il numero di creature con difensore che controlli.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[{T}:あなたのマナ・プールに、好きな色の組み合わせのマナX点を加える。Xはあなたがコントロールする防衛を持つクリーチャーの総数に等しい。]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[{T}: 원하는 색의 조합으로 마나 X개를 당신의 마나풀에 담는다. X는 당신이 조종하는 생물 중 수비태세 능력을 가진 생물의 수다.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[{T}: добавьте Х маны в любой комбинации цветов в ваше хранилище маны, где Х — количество существ с Защитником под вашим контролем.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[{T}: Adicione X manas em qualquer combinação de cores a sua reserva de mana, sendo X igual ao número de criaturas com defensor que você controla.]]></LOCALISED_TEXT>
      <COST type="TapSelf" />
      <PLAY_TIME_ACTION>
         RSN_MarkManaAbilityStart()
         local oFilter = ClearFilter()
         oFilter:Add( FE_TYPE, OP_IS, CARD_TYPE_CREATURE )
         oFilter:Add( FE_CHARACTERISTIC, OP_HAS, CHARACTERISTIC_DEFENDER )
         oFilter:Add( FE_CONTROLLER, OP_IS, EffectController() )
         local nCount = oFilter:Count()
         EffectDC():Int_Set( 0, nCount )
      </PLAY_TIME_ACTION>
      <RESOLUTION_TIME_ACTION repeating="1">
         local nRep = MTG():GetActionRepCount()
         local nParity = nRep % 2
         local nCount = EffectDC():Int_Get( 0 )

         if (nRep &lt; (nCount * 2)) then
            if (nParity == 0) then
               local oPlayer = EffectController()
               local oCard = EffectSource()
               if (oPlayer ~= nil) then
                  oPlayer:BeginNewMultipleChoice()
                  oPlayer:AddMultipleChoiceAnswer( "RSN_MODE_PRODUCE_W" )
                  oPlayer:AddMultipleChoiceAnswer( "RSN_MODE_PRODUCE_U" )
                  oPlayer:AddMultipleChoiceAnswer( "RSN_MODE_PRODUCE_B" )
                  oPlayer:AddMultipleChoiceAnswer( "RSN_MODE_PRODUCE_R" )
                  oPlayer:AddMultipleChoiceAnswer( "RSN_MODE_PRODUCE_G" )
                  oPlayer:AskMultipleChoiceQuestion( "MODE_CHOOSE_ONE", oCard )
               end
               return true
            else
               local nColour = EffectController():GetMultipleChoiceResult() + 1
               if (nColour == COLOUR_BLACK) then
                  RSN_Produce( "{B}", 1 )
               elseif (nColour == COLOUR_BLUE) then
                  RSN_Produce( "{U}", 1 )
               elseif (nColour == COLOUR_GREEN) then
                  RSN_Produce( "{G}", 1 )
               elseif (nColour == COLOUR_RED) then
                  RSN_Produce( "{R}", 1 )
               elseif (nColour == COLOUR_WHITE) then
                  RSN_Produce( "{W}", 1 )
               end
               return true
            end
         else
            return false
         end
      </RESOLUTION_TIME_ACTION>
      <RESOLUTION_TIME_ACTION>
         RSN_EliminateExtraManaTokens()
         RSN_MarkManaAbilityEnd()
      </RESOLUTION_TIME_ACTION>
      <AI_AVAILABILITY window_step="upkeep" type="window" />
      <AI_AVAILABILITY window_step="main_1" window_turn="my_turn" type="window" />
      <AI_AVAILABILITY window_step="begin_combat" window_turn="their_turn" type="window" />
      <AI_AVAILABILITY window_step="declare_attackers" window_turn="their_turn" type="window" />
      <AI_AVAILABILITY window_step="declare_blockers" type="window" />
      <AI_AVAILABILITY window_step="main_2" window_turn="my_turn" type="window" />
      <AI_AVAILABILITY window_step="end_of_turn" type="window" />
      <AI_AVAILABILITY window_step="end_of_turn" window_turn="their_turn" type="window" />
      <AI_AVAILABILITY type="in_response" response_source="1" response_target="1" />
      <AI_AVAILABILITY type="in_response" response_source="1" />
      <AI_AVAILABILITY type="in_response" response_target="1" />
   </ACTIVATED_ABILITY>
   <STATIC_ABILITY>
      <CONTINUOUS_ACTION layer="0">
         RSN_ClearCanProduceMana()
         RSN_MarkCanProduceMana( "{B}{G}{R}{U}{W}" )
      </CONTINUOUS_ACTION>
   </STATIC_ABILITY>
   <TRIGGERED_ABILITY forced_skip="1" replacement_effect="1">
      <TRIGGER value="BEGINNING_OF_STEP" pre_trigger="1" />
      <RESOLUTION_TIME_ACTION>
         RSN_ClearProducedMana()
      </RESOLUTION_TIME_ACTION>
   </TRIGGERED_ABILITY>
   <TOKEN_REGISTRATION reservation="1" type="RSN_TOKEN_MANA_B" />
   <TOKEN_REGISTRATION reservation="1" type="RSN_TOKEN_MANA_G" />
   <TOKEN_REGISTRATION reservation="1" type="RSN_TOKEN_MANA_R" />
   <TOKEN_REGISTRATION reservation="1" type="RSN_TOKEN_MANA_U" />
   <TOKEN_REGISTRATION reservation="1" type="RSN_TOKEN_MANA_W" />
</CARD_V2>
RiiakShiNal
Programmer
 
Posts: 2185
Joined: 16 May 2011, 21:37
Has thanked: 75 times
Been thanked: 497 times

PreviousNext

Return to Programming Talk

Who is online

Users browsing this forum: No registered users and 10 guests


Who is online

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

Users browsing this forum: No registered users and 10 guests

Login Form