Page 24 of 26

Re: Report cards error here

PostPosted: 15 Oct 2013, 13:43
by thefiremind
MC Brodie wrote:In the near future I plan on attempting to code Kira, Great Glass-Spinner. In order to code her "targeted for the first time in a turn ability" I was going to a manager token and a hidden characteristic. Whenever a creature is targeted, the manager token would set the hidden characteristic to true for that creature. Kira would use this hidden characteristic to see if its the first time the creature has been targeted. Well I think I would need to use two hidden characteristics to track it could be doable. Is this a decent way to approach this? How hard is it to do a hidden characteristic?
If you use RiiakShiNal's ObjectDC it's not hard at all. Choose a register number, then set it to 1 the first time the creature has been targeted, and back to 0 at the beginning of each cleanup step or at the beginning of each turn (it should be equally functional). Unless I'm forgetting something, you only need one register.

MC Brodie wrote:Is arcane an instant/sorcery subtype?
Yes, and it's already implemented, use it as you would do with any other sub-type.

Re: Report cards error here

PostPosted: 15 Oct 2013, 15:54
by MC Brodie
Ok I'll look into using the ObjectDC functions but i think I'm missing something. How would Kira know the index of the ObjectDC for the "first time targeted" counter? Or do you mean have Kira grant the counter ability to each creature? I'll have to think about it.

Also, if you only have a yes/no flag to track first time targeted I canthink of a way to do it using two flags but not one. But I can see only needing one with an objectdc. Again, I'm probably missing something.

As for arcane, I searched the recompiled LOL Wiki for arcane and nothing turned up. I assumed I had to add it. How can I test/filter for the arcane characteristic?

Re: Report cards error here

PostPosted: 15 Oct 2013, 16:00
by thefiremind
MC Brodie wrote:Ok I'll look into using the ObjectDC functions but i think I'm missing something. How would Kira know the index of the ObjectDC for the "first time targeted" counter?
You decide the index, then both the invisible token and Kira will access that index. The ObjectDC of a card can be accessed from any other card.

MC Brodie wrote:As for arcane, I searched the recompiled LOL Wiki for arcane and nothing turned up. I assumed I had to add it. How can I test/filter for the arcane characteristic?
You are right, it's defined in SPECS\SPELL_TYPES.TXT but not in the LOL files. Just declare SPELL_TYPE_ARCANE = 3000 in a LOL file and you're set. Then test/filter SPELL_TYPE_ARCANE exactly as you test/filter ENCHANTMENT_TYPE_AURA or any other sub-type.

Re: Report cards error here

PostPosted: 15 Oct 2013, 21:52
by GrovyleXShinyCelebi
thefiremind wrote:
GrovyleXShinyCelebi wrote:Hey mate, I tried your method earlier and when I try to cast the card (for the other abilities) it just returns to my hand immediately upon casting. I thought you might need the "mode" tag on the FILTER_CONDITION block, didn't work when I tried THAT.
You must have done something else wrong. I can help if you post the whole card.

GrovyleXShinyCelebi wrote:Would throwing your condition in the TARGET block and have it return SetTargetCount( 1 ) if there is a card on the stack that is targeting me work?
It's not needed: if my Hindering Light works, then Dawn Charm must work too.

GrovyleXShinyCelebi wrote:Also, what does "SetTargetAnswerer" do? I'm guessing it sets a target tag in a TARGET block.
The effect controller chooses the targets as default, but if you don't want it to be that way, you use that function. Take a look at Evangelize.
EDIT: Nevermind, I figured it out. Bah, I don't get why in the MODE blocks you have to use "index" tags instead of "mode" tags...

Re: Report cards error here

PostPosted: 15 Oct 2013, 22:40
by thefiremind
GrovyleXShinyCelebi wrote:Bah, I don't get why in the MODE blocks you have to use "index" tags instead of "mode" tags...
Just do as I do: copy everything you can from official cards. If you ask me what tags I need to use in MODE blocks, I can't answer unless I go check on official cards, because I never ever wrote a MODE block entirely by myself. :mrgreen:

Re: Report cards error here

PostPosted: 15 Oct 2013, 22:45
by MC Brodie
thefiremind wrote:
MC Brodie wrote:Ok I'll look into using the ObjectDC functions but i think I'm missing something. How would Kira know the index of the ObjectDC for the "first time targeted" counter?
You decide the index, then both the invisible token and Kira will access that index. The ObjectDC of a card can be accessed from any other card.

MC Brodie wrote:As for arcane, I searched the recompiled LOL Wiki for arcane and nothing turned up. I assumed I had to add it. How can I test/filter for the arcane characteristic?
You are right, it's defined in SPECS\SPELL_TYPES.TXT but not in the LOL files. Just declare SPELL_TYPE_ARCANE = 3000 in a LOL file and you're set. Then test/filter SPELL_TYPE_ARCANE exactly as you test/filter ENCHANTMENT_TYPE_AURA or any other sub-type.
Ok thanks for the help. Forgive me if I'm a bit dense with the Kira. Programming is still somewhat new to me. I think I need to just try some stuff out. I'm determined to come up with something. Whether it will be correct is another case. And I know it won't be the most efficient.

Re: Report cards error here

PostPosted: 16 Oct 2013, 01:22
by GrovyleXShinyCelebi
thefiremind wrote:
GrovyleXShinyCelebi wrote:Bah, I don't get why in the MODE blocks you have to use "index" tags instead of "mode" tags...
Just do as I do: copy everything you can from official cards. If you ask me what tags I need to use in MODE blocks, I can't answer unless I go check on official cards, because I never ever wrote a MODE block entirely by myself. :mrgreen:
*jaw drops*

I actually thought, all this time, that you, RSN, kevlahnota, sumomole, and other accomplished people in here were familiar enough with the game's code and coding in general that you wrote all the code yourself checking occasionally only whensomething new came out. At least that's how I envisioned you making that complicated code for Patron of the Kitsune and Gomazoa. I think I just lost a bit of admiration of you :cry:

Haha, I remembered when I played your 2012 mod I thought you were some kind of God. It was you that inspired me to become a modder for 2014 mate, so naturally I had alot of respect for you. In fact I tried to memorize all the functions for 2014 and would oftentimes write cards without peeking at official code partly to be more like the advanced modders like you, RSN, and sumomole ( mostly because I'm going into a computer science major in college and I see DOTP modding as a way to familiarise myself with programming and memorizing lots of code ). Heck, I can write the code for Murder and Sizzle in my sleep :mrgreen: .

Sorry for sharing that it just startled me the thefiremind would admit copy and pasting most of his code as I presumed being able to make so much fancy stuf he might be, I dunno, above it.

Anyways, back to the topic at hand, I have a question. What IS the difference between Get_Int and Int_Get, anyways?

Re: Report cards error here

PostPosted: 16 Oct 2013, 08:35
by thefiremind
Copying and pasting is faster than typing manually. If you add the fact that you can prevent a lot of mistakes by doing that, it should be a natural first choice. :mrgreen:

GrovyleXShinyCelebi wrote:What IS the difference between Get_Int and Int_Get, anyways?
Functionally, there's no difference. But be aware that some game objects (I mean not just cards, but also data chests, characteristics, players, etc.) only accept one version of 2 seemingly equal functions: when in doubt, always look at the Wiki. For example, incrementing/decrementing an integer can be done with Int_Inc and Int_Dec inside data chests, but characteristics need Int_Increment and Int_Decrement to do the same. Why this? Blame the developers. :lol:

Re: Report cards error here

PostPosted: 17 Oct 2013, 02:18
by MC Brodie
thefiremind wrote:
MC Brodie wrote:Ok I'll look into using the ObjectDC functions but i think I'm missing something. How would Kira know the index of the ObjectDC for the "first time targeted" counter?
You decide the index, then both the invisible token and Kira will access that index. The ObjectDC of a card can be accessed from any other card.
Heh, it was amazingly easy once I figured out how to use Riiak's ObjectDC functions. I didn't know they worked like that. For some reason I thought they worked like game or player data chests worked if that makes sense. Then again, I don't know how those work either :D (at least how to use them). It also helped that I reread Kira because I originally thought her ability was worded differently. Nonetheless, here is what I came up with if anyone wants to see it. I'm sure there's room for improvement but from my testing it at least works as it should.
Kira, Great Glass-Spinner | Open
Code: Select all
<?xml version='1.0' encoding='UTF-8'?>
<CARD_V2 ExportVersion="1">
  <FILENAME text="KIRA_GREAT_GLASSSPINNER_867370349" />
  <CARDNAME text="KIRA_GREAT_GLASSSPINNER" />
  <TITLE>
    <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Kira, Great Glass-Spinner]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Kira, Great Glass-Spinner]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Kira, Great Glass-Spinner]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Kira, Great Glass-Spinner]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Kira, Great Glass-Spinner]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[Kira, Great Glass-Spinner]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[Kira, Great Glass-Spinner]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[Kira, Great Glass-Spinner]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[Kira, Great Glass-Spinner]]></LOCALISED_TEXT>
  </TITLE>
  <MULTIVERSEID value="867370349" />
  <ARTID value="867370349" />
  <ARTIST name="Kev Walker" />
  <CASTING_COST cost="{1}{U}{U}" />
  <FLAVOURTEXT>
    <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Each spell is an intricate tapestry, and Kira is the great unraveler.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Each spell is an intricate tapestry, and Kira is the great unraveler.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Each spell is an intricate tapestry, and Kira is the great unraveler.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Each spell is an intricate tapestry, and Kira is the great unraveler.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Each spell is an intricate tapestry, and Kira is the great unraveler.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[Each spell is an intricate tapestry, and Kira is the great unraveler.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[Each spell is an intricate tapestry, and Kira is the great unraveler.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[Each spell is an intricate tapestry, and Kira is the great unraveler.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[Each spell is an intricate tapestry, and Kira is the great unraveler.]]></LOCALISED_TEXT>
  </FLAVOURTEXT>
  <SUPERTYPE metaname="Legendary" />
  <TYPE metaname="Creature" />
  <SUB_TYPE metaname="Spirit" />
  <EXPANSION value="MMA" />
  <RARITY metaname="R" />
  <POWER value="2" />
  <TOUGHNESS value="2" />
  <STATIC_ABILITY>
    <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Flying]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Vol]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Vuela.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Fliegend]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Volare]]></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[Voar]]></LOCALISED_TEXT>
    <INTRINSIC characteristic="CHARACTERISTIC_FLYING" />
  </STATIC_ABILITY>
  <STATIC_ABILITY>
    <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Creatures you control have “Whenever this creature becomes the target of a spell or ability for the first time in a turn, counter that spell or ability.”]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Creatures you control have “Whenever this creature becomes the target of a spell or ability for the first time in a turn, counter that spell or ability.”]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Creatures you control have “Whenever this creature becomes the target of a spell or ability for the first time in a turn, counter that spell or ability.”]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Creatures you control have “Whenever this creature becomes the target of a spell or ability for the first time in a turn, counter that spell or ability.”]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Le creature che controlli hanno “Ogniqualvolta questa creatura diventa bersaglio di una magia o abilità per la prima volta in un turno, neutralizza quella magia o abilità.”]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[Creatures you control have “Whenever this creature becomes the target of a spell or ability for the first time in a turn, counter that spell or ability.”]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[Creatures you control have “Whenever this creature becomes the target of a spell or ability for the first time in a turn, counter that spell or ability.”]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[Creatures you control have “Whenever this creature becomes the target of a spell or ability for the first time in a turn, counter that spell or ability.”]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[Creatures you control have “Whenever this creature becomes the target of a spell or ability for the first time in a turn, counter that spell or ability.”]]></LOCALISED_TEXT>
   <FILTER filter_id="0">
       local filter = ClearFilter()
      filter:Add( FE_TYPE, OP_IS, CARD_TYPE_CREATURE )
      filter:Add( FE_CONTROLLER, OP_IS, EffectController() )
   </FILTER>
   <CONTINUOUS_ACTION layer="6" filter_id="0">
      if FilteredCard() ~= nil then
          FilteredCard():GetCurrentCharacteristics():GrantAbility(0)
       end
    </CONTINUOUS_ACTION>
  </STATIC_ABILITY>
  <TRIGGERED_ABILITY resource_id="0">
    <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Whenever this creature becomes the target of a spell or ability for the first time in a turn, counter that spell or ability.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Whenever this creature becomes the target of a spell or ability for the first time in a turn, counter that spell or ability.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Whenever this creature becomes the target of a spell or ability for the first time in a turn, counter that spell or ability.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Whenever this creature becomes the target of a spell or ability for the first time in a turn, counter that spell or ability.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Ogniqualvolta questa creatura diventa bersaglio di una magia o abilità per la prima volta in un turno, neutralizza quella magia o abilità.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[Whenever this creature becomes the target of a spell or ability for the first time in a turn, counter that spell or ability.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[Whenever this creature becomes the target of a spell or ability for the first time in a turn, counter that spell or ability.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[Whenever this creature becomes the target of a spell or ability for the first time in a turn, counter that spell or ability.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[Whenever this creature becomes the target of a spell or ability for the first time in a turn, counter that spell or ability.]]></LOCALISED_TEXT>
   <TRIGGER value="BECAME_TARGET_OF_SPELL" simple_qualifier="self">
      local oDC = RSN_GetObjectDC( EffectSource(), true )
      if oDC ~= nil and oDC:Get_Int(-867) ~= nil and oDC:Get_Int(-867) == 1 then
         return true
      end
      return false
    </TRIGGER>
   <TRIGGER value="BECAME_TARGET_OF_ABILITY" simple_qualifier="self">
      local oDC = RSN_GetObjectDC( EffectSource(), true )
      if oDC ~= nil and oDC:Get_Int(-867) ~= nil and oDC:Get_Int(-867) == 1 then
         return true
      end
      return false
    </TRIGGER>
   <RESOLUTION_TIME_ACTION>
      MTG():CounterStackObject( TriggerStackObjectID() )
    </RESOLUTION_TIME_ACTION>
  </TRIGGERED_ABILITY>
  <TRIGGERED_ABILITY replacement_effect="1" active_zone="ZONE_ANY">
    <TRIGGER value="BEGINNING_OF_PLAYERS_STEP">
      return MTG():GetStep() == STEP_UPKEEP and MTG():GetTurnNumber() == 0
    </TRIGGER>
    <RESOLUTION_TIME_ACTION>
      local filter = ClearFilter()
      filter:Add(FE_CARD_NAME, OP_IS, "_MCS_HOLY_SPT_GLASS_MANAGER")
      if filter:CountStopAt(1) == 0 then
         MTG():PutTokensOntoBattlefield("_MCS_HOLY_SPT_GLASS_MANAGER_867800007", 1, EffectController())
      end
    </RESOLUTION_TIME_ACTION>
  </TRIGGERED_ABILITY>
  <TOKEN_REGISTRATION reservation="1" type="_MCS_HOLY_SPT_GLASS_MANAGER_867800007" />
  <HELP title="MORE_INFO_BADGE_TITLE_10" body="MORE_INFO_BADGE_BODY_10" 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>

Shimmering Glasskite | Open
Code: Select all
<?xml version='1.0' encoding='UTF-8'?>
<CARD_V2 ExportVersion="1">
  <FILENAME text="SHIMMERING_GLASSKITE_867081978" />
  <CARDNAME text="SHIMMERING_GLASSKITE" />
  <TITLE>
    <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Shimmering Glasskite]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Escoufleverre chatoyant]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Cometavítrea de luz trémula]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Schimmernder Glashüller]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Vetronibbio Scintillante]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[ゆらめく玻璃凧]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[Shimmering Glasskite]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[Shimmering Glasskite]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[Avérneo Vítreo Tremeluzente]]></LOCALISED_TEXT>
  </TITLE>
  <MULTIVERSEID value="867081978" />
  <ARTID value="867081978" />
  <ARTIST name="John Avon" />
  <CASTING_COST cost="{3}{U}" />
  <FLAVOURTEXT>
    <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[A child’s whisper could crack its shell, but not even an oni’s scream could penetrate it.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Le murmure d’un enfant pouvait briser sa carapace, mais pas même le cri d’un oni pouvait la traverser.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[El susurro de un niño podría quebrar su caparazón, pero ni siquiera el grito de un oni podría penetrarlo.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Das Geflüster eines Kindes konnte seine Hülle zerbrechen, doch das Kreischen der Oni konnte ihm nichts anhaben.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Il sussurro di un bambino poteva spezzare il suo guscio, ma neppure l’urlo di un oni poteva entrare al suo interno.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[殻を破るのは子供の囁き声でもできるが、中を貫くのは鬼の叫び声ですらできない。]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[A child’s whisper could crack its shell, but not even an oni’s scream could penetrate it.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[A child’s whisper could crack its shell, but not even an oni’s scream could penetrate it.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[O sussuro de uma criança poderia romper sua carapaça, mas nem mesmo o grito de um oni poderia penetrá-la.]]></LOCALISED_TEXT>
  </FLAVOURTEXT>
  <TYPE metaname="Creature" />
  <SUB_TYPE metaname="Spirit" />
  <EXPANSION value="BOK" />
  <RARITY metaname="C" />
  <POWER value="2" />
  <TOUGHNESS value="3" />
  <STATIC_ABILITY>
    <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Flying]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Vol]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Vuela.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Fliegend]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Volare]]></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[Voar]]></LOCALISED_TEXT>
    <INTRINSIC characteristic="CHARACTERISTIC_FLYING" />
  </STATIC_ABILITY>
  <TRIGGERED_ABILITY>
    <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Whenever Shimmering Glasskite becomes the target of a spell or ability for the first time in a turn, counter that spell or ability.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[À chaque fois que l’Escoufleverre chatoyant devient la cible d’un sort ou d’une capacité pour la première fois pendant un tour, contrecarrez ce sort ou cette capacité.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Siempre que la Cometavítrea de luz trémula sea objetivo de un hechizo o habilidad por primera vez en un turno, contrarresta ese hechizo o habilidad.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Immer wenn der Schimmernde Glashüller zum ersten Mal in einem Zug das Ziel eines Zauberspruchs oder einer Fähigkeit wird, neutralisiere diesen Zauberspruch bzw. diese Fähigkeit.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Ogniqualvolta il Vetronibbio Scintillante diventa bersaglio di una magia o abilità per la prima volta nel turno, neutralizza quella magia o abilità.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[ゆらめく玻璃凧がいずれかのターンに初めて呪文や能力の対象になるたび、その呪文や能力を打ち消す。]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[Whenever Shimmering Glasskite becomes the target of a spell or ability for the first time in a turn, counter that spell or ability.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[Whenever Shimmering Glasskite becomes the target of a spell or ability for the first time in a turn, counter that spell or ability.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[Toda vez que Avérneo Vítreo Tremeluzente se tornar o alvo de uma mágica ou habilidade pela primeira vez num turno, anule aquela mágica ou habilidade.]]></LOCALISED_TEXT>
   <TRIGGER value="BECAME_TARGET_OF_SPELL" simple_qualifier="self">
      local oDC = RSN_GetObjectDC( EffectSource(), true )
      if oDC ~= nil and oDC:Get_Int(-867) ~= nil and oDC:Get_Int(-867) == 1 then
         return true
      end
      return false
    </TRIGGER>
   <TRIGGER value="BECAME_TARGET_OF_ABILITY" simple_qualifier="self">
      local oDC = RSN_GetObjectDC( EffectSource(), true )
      if oDC ~= nil and oDC:Get_Int(-867) ~= nil and oDC:Get_Int(-867) == 1 then
         return true
      end
      return false
    </TRIGGER>
   <RESOLUTION_TIME_ACTION>
      MTG():CounterStackObject( TriggerStackObjectID() )
    </RESOLUTION_TIME_ACTION>
  </TRIGGERED_ABILITY>
  <TRIGGERED_ABILITY replacement_effect="1" active_zone="ZONE_ANY">
    <TRIGGER value="BEGINNING_OF_PLAYERS_STEP">
      return MTG():GetStep() == STEP_UPKEEP and MTG():GetTurnNumber() == 0
    </TRIGGER>
    <RESOLUTION_TIME_ACTION>
      local filter = ClearFilter()
      filter:Add(FE_CARD_NAME, OP_IS, "_MCS_HOLY_SPT_GLASS_MANAGER")
      if filter:CountStopAt(1) == 0 then
         MTG():PutTokensOntoBattlefield("_MCS_HOLY_SPT_GLASS_MANAGER_867800007", 1, EffectController())
      end
    </RESOLUTION_TIME_ACTION>
  </TRIGGERED_ABILITY>
  <TOKEN_REGISTRATION reservation="1" type="_MCS_HOLY_SPT_GLASS_MANAGER_867800007" />
  <HELP title="MORE_INFO_BADGE_TITLE_10" body="MORE_INFO_BADGE_BODY_10" 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>
Glasskite Manager Token | Open
Code: Select all
<?xml version='1.0' encoding='UTF-8'?>
<CARD_V2 ExportVersion="1">
  <FILENAME text="_MCS_HOLY_SPT_GLASS_MANAGER_867800007" />
  <CARDNAME text="_MCS_HOLY_SPT_GLASS_MANAGER" />
  <TITLE>
    <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Glass Mgr]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Glass Mgr]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Glass Mgr]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Glass Mgr]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Glass Mgr]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[Glass Mgr]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[Glass Mgr]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[Glass Mgr]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[Glass Mgr]]></LOCALISED_TEXT>
  </TITLE>
  <MULTIVERSEID value="867800007" />
  <ARTID value="0" />
  <ARTIST name="Nobody" />
  <CASTING_COST cost="" />
  <TYPE metaname="" />
  <EXPANSION value="DPI" />
  <RARITY metaname="T" />
  <TOKEN />

  <!-- Invisible token protection -->
  <STATIC_ABILITY>
    <CONTINUOUS_ACTION layer="8">
    if EffectSource() ~= nil then
       local characteristics = EffectSource():GetCurrentCharacteristics()
       characteristics:Bool_Set(CHARACTERISTIC_SHROUD, 1)
       characteristics:Bool_Set(CHARACTERISTIC_INDESTRUCTIBLE, 1)
       characteristics:AI_SetWorthless()
    end
    </CONTINUOUS_ACTION>
    <CONTINUOUS_ACTION layer="8">
    if EffectSource() ~= nil then
       local filter = ClearFilter()
       filter:Add(FE_CMC, OP_GREATER_THAN_OR_EQUAL_TO, 0)
       EffectSource():Protection()
    end
    </CONTINUOUS_ACTION>
  </STATIC_ABILITY>

  <!-- Sets the counter for times targeted per turn -->
  <TRIGGERED_ABILITY replacement_effect="1">
     <TRIGGER value="BECAME_TARGET_OF_SPELL">
      local oDC = RSN_GetObjectDC( TriggerObject(), true )
      if oDC:Get_Int(-867) == nil then
         oDC:Set_Int(-867, 1)
      else
         oDC:Int_Inc(-867)
      end
    </TRIGGER>
   <TRIGGER value="BECAME_TARGET_OF_ABILITY">
      local oDC = RSN_GetObjectDC( TriggerObject(), true )
      if oDC:Get_Int(-867) == nil then
         oDC:Set_Int(-867, 1)
      else
         oDC:Int_Inc(-867)
      end
    </TRIGGER>
  </TRIGGERED_ABILITY>
 
  <!-- Resets the counter at the beginning of each turn -->
  <TRIGGERED_ABILITY replacement_effect="1">
     <TRIGGER value="BEGINNING_OF_PLAYERS_STEP">
      return MTG():GetStep() == STEP_UNTAP
    </TRIGGER>
   <FILTER filter_id="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>
   <RESOLUTION_TIME_ACTION filter_id="0">
      local oDC = RSN_GetObjectDC( FilteredCard(), false )
      if oDC ~= nil and oDC:Get_Int(-867) ~= nil then
         oDC:Set_Int(-867, 0)
      end
    </RESOLUTION_TIME_ACTION>
  </TRIGGERED_ABILITY>

  <AI_BASE_SCORE score="-5000" zone="ZONE_BATTLEFIELD" />
</CARD_V2>
thefiremind wrote:
MC Brodie wrote:As for arcane, I searched the recompiled LOL Wiki for arcane and nothing turned up. I assumed I had to add it. How can I test/filter for the arcane characteristic?
You are right, it's defined in SPECS\SPELL_TYPES.TXT but not in the LOL files. Just declare SPELL_TYPE_ARCANE = 3000 in a LOL file and you're set. Then test/filter SPELL_TYPE_ARCANE exactly as you test/filter ENCHANTMENT_TYPE_AURA or any other sub-type.
Thanks for the help on this one as well. I suppose I should look at the original game files more often.


Btw Riiak, thanks for the amazing tool!

Re: Report cards error here

PostPosted: 04 Apr 2014, 10:42
by Ferrix
Radiance from 2013 is broken in 2014 (for example: Rally the Righteous).

Card text: ...targeted creature and each other creature that shares a color with it...
What the game does: ...each creature that shares a color with it...

This is an issue since the spell is not applied to colorless creatures (since nothing shares a color with colorless).

2013 code from the 2013 deck mod by GrovyleXShinyCelebi:
Code: Select all
<?xml version="1.0"?>
<CARD_V2 ExportVersion="2">
  <FILENAME text="RALLY_THE_RIGHTEOUS_329852" />
  <CARDNAME text="RALLY_THE_RIGHTEOUS" />
  <TITLE>
    <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Rally the Righteous]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Ralliement des justes]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Agrupar a los justos]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Sammeln der Gerechten]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Riorganizzare i Giusti]]></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[Reúna os Justos]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="zh-CN"><![CDATA[动员义士]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="zh-HK"><![CDATA[動員義士]]></LOCALISED_TEXT>
  </TITLE>
  <MULTIVERSEID value="329852" />
  <ARTID value="88687" />
  <ARTIST name="Dan Scott" />
  <CASTING_COST cost="{1}{R}{W}" />
  <FLAVOURTEXT>
    <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Yuri took up the ragged Boros banner, and his brethren, inspired by the act, followed him back into the fight.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Yuri ramassa la bannière déchirée de Boros, et ses frères, inspirés par son acte, le suivirent au combat.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Yuri tomó el destrozado estandarte boros, y sus hermanos, inspirados por su acción, lo siguieron a la batalla.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Juri reckte das zerfetzte Banner der Boros in die Luft, und seine Kumpanen, die dadurch ermutigt wurden, folgten ihm zurück in den Kampf.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Yuri raccolse lo stendardo lacero dei Boros e i suoi compagni, ispirati dal gesto, tornarono con lui nel vivo della battaglia.]]></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[Yuri pegou o já gasto estandarte dos Boros e seus irmãos, inspirados pelo ato, o acompanharam de volta à batalha.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="zh-CN"><![CDATA[尤睿拿起了残破不堪的波洛斯旗帜,其伙伴为之士气大振,随他重返战场。]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="zh-HK"><![CDATA[尤睿拿起了殘破不堪的波洛斯旗幟,其夥伴為之士氣大振,隨他重返戰場。]]></LOCALISED_TEXT>
  </FLAVOURTEXT>
  <TYPE metaname="Instant" />
  <EXPANSION value="DPH" />
  <RARITY metaname="C" />
  <SPELL_ABILITY>
    <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[|Radiance| — Untap target creature and each other creature that shares a color with it. Those creatures get +2/+0 until end of turn.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[|Irradiance| — Dégagez la créature ciblée et chaque autre créature qui partage une couleur avec elle. Ces créatures gagnent +2/+0 jusqu’à la fin du tour.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[|Irradiar| — Endereza la criatura objetivo y cada una de las otras criaturas que compartan un color con ella. Esas criaturas obtienen +2/+0 hasta el final del turno.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[|Ausstrahlung| — Enttappe eine Kreatur deiner Wahl und alle anderen Kreaturen, die mit ihr eine Farbe gemeinsam haben. Diese Kreaturen erhalten +2/+0 bis zum Ende des Zuges.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[|Radianza| — STAPpa una creatura bersaglio e ogni altra creatura che condivide un colore con essa. Quelle creature prendono +2/+0 fino alla fine del turno.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[|光輝| ― クリーチャー1体を対象とする。それ、およびそれと共通の色を持つ他の各クリーチャーをアンタップする。それらのクリーチャーはターン終了時まで+2/+0の修整を受ける。]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[||광휘|</i> —]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[|Сияние| — Разверните целевое существо и все другие существа, у которых есть такой же цвет, как у него. Эти существа получают +2/+0 до конца хода.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[|Radiação| — Desvire a criatura alvo e cada outra criatura que compartilhe uma cor com ela. Aquelas criaturas recebem +2/+0 até o final do turno.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="zh-CN"><![CDATA[辉耀~重置目标生物和每个与该生物有共通颜色的其它生物。这些生物得+2/+0直到回合结束。]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="zh-HK"><![CDATA[輝耀~重置目標生物和每個與該生物有共通顏色的其它生物。這些生物得+2/+0直到回合結束。]]></LOCALISED_TEXT>
    <SFX text="CASTER_BUFF_PLAY" />
    <TARGET tag="CARD_QUERY_CHOOSE_CREATURE_TO_GET_2_0_AND_UNTAP" definition="0" compartment="0" count="1" />
    <TARGET_DEFINITION id="0">
    local filter = ClearFilter()
    filter:Add( FE_TYPE, OP_IS, CARD_TYPE_CREATURE )
    </TARGET_DEFINITION>
    <FILTER filter_id="0">
    local filter = ClearFilter()
    filter:Add( FE_TYPE, OP_IS, CARD_TYPE_CREATURE  )
    filter:Add( FE_LUA_CONDITION, 1, EffectController(), EffectDC())
    </FILTER>
    <FILTER_CONDITION id="1">
    local target = EffectDC():Get_Targets(0):Get_CardPtr(0)
    if FilteredCard() ~= nil and target ~= nil then
      if FilteredCard():GetColour():TestAny(target:GetColour()) then
         return true
      else
         return false
      end
    else
       return false
    end
    </FILTER_CONDITION>
    <RESOLUTION_TIME_ACTION filter_id="0">
    if FilteredCard() ~= nil then
      FilteredCard():Untap()
    end
    </RESOLUTION_TIME_ACTION>
    <CONTINUOUS_ACTION layer="7C" filter_id="0">
    if FilteredCard() ~= nil then
       local characteristics = FilteredCard():GetCurrentCharacteristics()
       characteristics:Power_Add( 2 )
       characteristics:Toughness_Add( 0 )
    end
    </CONTINUOUS_ACTION>
    <DURATION simple_duration="UntilEOT" />
    <AI_SIMPLIFIED_TARGETING compartment="0" hint="HINT_ALLIED_ONLY" />
  </SPELL_ABILITY>
  <AI_AVAILABILITY window_step="end_of_turn" window_turn="their_turn" type="window" />
  <AI_AVAILABILITY window_step="begin_combat" type="window" />
  <AI_AVAILABILITY window_step="declare_blockers" type="window" />
  <AI_BASE_SCORE score="600" zone="ZONE_HAND" />
</CARD_V2>
(Also, how do I create the extra layer used here so the card name is shown and the code needs to be unfolded first?)

Re: Report cards error here

PostPosted: 04 Apr 2014, 11:06
by thefiremind
Ferrix wrote:Card text: ...targeted creature and each other creature that shares a color with it...
What the game does: ...each creature that shares a color with it...

This is an issue since the spell is not applied to colorless creatures (since nothing shares a color with colorless).
Try to change
Code: Select all
      if FilteredCard():GetColour():TestAny(target:GetColour()) then
with
Code: Select all
      if FilteredCard() == target or FilteredCard():GetColour():TestAny(target:GetColour()) then
this way the original target is always considered for the filter.

Ferrix wrote:(Also, how do I create the extra layer used here so the card name is shown and the code needs to be unfolded first?)
Use the spoiler tag: you find the button for it in the post editor, or you can write it yourself as [ spoiler=title]...[ /spoiler], without the spaces.
By the way, if you try to quote a message that has something you don't know how to do, you'll see it by yourself (no need to post the message afterwards). :wink:

Re: Report cards error here

PostPosted: 04 Apr 2014, 21:07
by Ferrix
Not a card error but possibly an engine error. Reveal() either does not reveal something to the person who controls the trigger or does not show the reveal. While this is not necessary in most cases, it is inconvenient for Shape Anew and other cards with similar effects.
Don't know a card to test now that doesn't shuffle the library but maybe puts cards at the bottom of it. If there is one and it still works that way, it is inconvenient.

Re: Report cards error here

PostPosted: 27 Jan 2015, 18:42
by Zambooo
when I cast Hands of Binding the card "triggers" the cipher ability but goes straight to the graveyard instead of letting me choose the creature to encode it in :(
I looked at the code but I counldn't find any difference from Stolen Identity, which actually works..

Edit: I tried it another time and it worked.. :/
dunno what was wrong during the first attempt

Re: Report cards error here

PostPosted: 05 Aug 2016, 23:19
by Bonktacular
I've been poking around and I've noticed two things. In the current revision of the community WAD (582), it looks like in the planeswalker function file that someone forget to end line 98 with a comma, which makes planeswalkers immediately get sent to the graveyard after being played since the engine is expecting a closing bracket at that point and isn't getting one.

Additionally, when floating mana with abilities from cards like Kruphix, God of Horizons, if floating over 16 mana at any point will cause the player doing so to no longer be able to spend any mana on abilities or spells. I've found that a ham-fisted fix was to just extend the current rules for mana generation, which only detail up to 16 colorless mana, and extend it to 100. There may be a more eloquent way to reference the current amount of mana floated and, if it's colorless, simply generate it again for the next step.

So far, that's all I can see wrong in the current community wad. Let me know if it this thread doesn't apply. :o

Re: Report cards error here

PostPosted: 05 Aug 2016, 23:41
by Xander9009
The PLW function file has been fixed. However, I'm not sure what you mean about Kruphix. It doesn't have any mana abilities that "only detail up to 16 colorless mana". Kruphix doesn't count mana at all or have any built-in mana abilities. It just registers colorless and non-colorless mana tokens which would leave the battlefield without tapping and overrides it (for colorless) or makes colorless tokens (for non-colorless). Are you certain Kruphix was one of the cards that exhibited the issue? (Neither the numbers 15, 16, nor 17 appear on Kruphix at all, in fact.)