It is currently 25 Apr 2024, 04:57
   
Text Size

【0523】237 Return to Ravnica cards

Moderator: CCGHQ Admins

Re: 4 Return to Ravnica cards

Postby GeoffW » 14 Sep 2012, 08:47

thefiremind wrote:If there's a creature on the battlefield and another copy of the same card in a graveyard, I think you have no way to distinguish them if you want to select only the one on the battlefield or only the one in the graveyard.
That sounds like a bug that needs to be fixed.
GeoffW
 
Posts: 9
Joined: 11 Sep 2012, 16:01
Has thanked: 0 time
Been thanked: 1 time

Re: 4 Return to Ravnica cards

Postby thefiremind » 14 Sep 2012, 08:49

GeoffW wrote:That sounds like a bug that needs to be fixed.
No, that sounds like an idea... Angel of Serenity hasn't been coded yet. :lol:
< 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: 4 Return to Ravnica cards

Postby BlindWillow » 14 Sep 2012, 19:41

thefiremind wrote:If there's a creature on the battlefield and another copy of the same card in a graveyard, I think you have no way to distinguish them if you want to select only the one on the battlefield or only the one in the graveyard.
Then one could build two separate datachests with distinguishing text prompts, check to see how many targets have been chosen from the first (probably begin with on the battlefield) and if fewer than three have been chosen, continue to the second datachest.
BlindWillow
 
Posts: 213
Joined: 19 Jul 2012, 00:26
Has thanked: 11 times
Been thanked: 46 times

Re: 61 Return to Ravnica cards

Postby SoulStorm » 19 Sep 2012, 18:18

Sumomole, you made my day! 61 RTR cards, someone has been busy. Angel of Serenity looked like a pain to code. Thanks for all the hard work!
SoulStorm
 
Posts: 423
Joined: 24 Jun 2010, 22:48
Has thanked: 16 times
Been thanked: 11 times

Re: 61 Return to Ravnica cards

Postby thefiremind » 20 Sep 2012, 08:34

Nice idea making the card frames with the watermarks. It's a pity that there's no way to decide which cards should use them and which shouldn't: either you make them override the default ones, or you don't use them at all.
< 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: 61 Return to Ravnica cards

Postby PhilistineAu » 30 Sep 2012, 22:05

Great work!

I'd like to have a go at making Staff of Nin but am not sure where to start. I'm looking at the XML files for Howling Mine and Jayemdae Tome - is that where you would start?

Should I be reading the LUA reference manual? I found the DOTP 2012 functions decoded thread - is that another place to start?

I know it would be a pain, but any chance you can provide some basic instructions on how to make cards? Things like what MULTIVERSEID and ARTID value to use?
PhilistineAu
 
Posts: 22
Joined: 29 Sep 2012, 19:37
Has thanked: 0 time
Been thanked: 1 time

Re: 61 Return to Ravnica cards

Postby Dysgenics » 30 Sep 2012, 23:55

Check out the card generator utility here: viewtopic.php?f=99&t=7692

It does most of the grunt work for you, and lets you just fill in the functionality.

For Staff of Nin, I think this should do the trick, but haven't tested:

Code: Select all
<?xml version='1.0'?>
<CARD_V2>
   <FILENAME text="STAFF_OF_NIN_249713" />
   <CARDNAME text="STAFF_OF_NIN" />
   <TITLE>
      <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Staff of Nin]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Staff of Nin]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Staff of Nin]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Staff of Nin]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Staff of Nin]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[Staff of Nin]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[Staff of Nin]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[Staff of Nin]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[Staff of Nin]]></LOCALISED_TEXT>
   </TITLE>
   <MULTIVERSEID value="249713" />
   <ARTID value="249713" />
   <ARTIST name="Dan Scott" />
   <CASTING_COST cost="{6}" />
   <FLAVOURTEXT>
      <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[“I have attuned the staff to your screams so that only I may benefit from your pain.”
—Volux, disciple of Nin]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[“I have attuned the staff to your screams so that only I may benefit from your pain.”
—Volux, disciple of Nin]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[“I have attuned the staff to your screams so that only I may benefit from your pain.”
—Volux, disciple of Nin]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[“I have attuned the staff to your screams so that only I may benefit from your pain.”
—Volux, disciple of Nin]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[“I have attuned the staff to your screams so that only I may benefit from your pain.”
—Volux, disciple of Nin]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[“I have attuned the staff to your screams so that only I may benefit from your pain.”
—Volux, disciple of Nin]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[“I have attuned the staff to your screams so that only I may benefit from your pain.”
—Volux, disciple of Nin]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[“I have attuned the staff to your screams so that only I may benefit from your pain.”
—Volux, disciple of Nin]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[“I have attuned the staff to your screams so that only I may benefit from your pain.”
—Volux, disciple of Nin]]></LOCALISED_TEXT>
   </FLAVOURTEXT>
   <TYPE metaname="Artifact" />
   <EXPANSION value="DPG" />
   <RARITY metaname="R" />
   <TRIGGERED_ABILITY auto_skip="1" filter_zone="ZONE_IN_PLAY">
      <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[At the beginning of your upkeep, draw a card.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[At the beginning of your upkeep, draw a card.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[At the beginning of your upkeep, draw a card.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[At the beginning of your upkeep, draw a card.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[At the beginning of your upkeep, draw a card.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[At the beginning of your upkeep, draw a card.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[At the beginning of your upkeep, draw a card.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[At the beginning of your upkeep, draw a card.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[At the beginning of your upkeep, draw a card.]]></LOCALISED_TEXT>
      <TRIGGER value="BEGINNING_OF_STEP" simple_qualifier="controller">
         return (EffectController():MyTurn() ~= 0) and (MTG():GetStep() == STEP_UPKEEP)
      </TRIGGER>
      <RESOLUTION_TIME_ACTION>
         EffectController():DrawCard()
      </RESOLUTION_TIME_ACTION>
   </TRIGGERED_ABILITY>
   <ACTIVATED_ABILITY filter_zone="ZONE_IN_PLAY">
      <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[{T}: Staff of Nin deals 1 damage to target creature or player.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[{T}: Staff of Nin deals 1 damage to target creature or player.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[{T}: Staff of Nin deals 1 damage to target creature or player.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[{T}: Staff of Nin deals 1 damage to target creature or player.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[{T}: Staff of Nin deals 1 damage to target creature or player.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[{T}: Staff of Nin deals 1 damage to target creature or player.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[{T}: Staff of Nin deals 1 damage to target creature or player.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[{T}: Staff of Nin deals 1 damage to target creature or player.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[{T}: Staff of Nin deals 1 damage to target creature or player.]]></LOCALISED_TEXT>
      <COST type="TapSelf" />
      <TARGET_DEFINITION id="0">
         local filter = Object():GetFilter()
         filter:Clear()
         filter:SetFilterType(FILTER_TYPE_CARDS + FILTER_TYPE_PLAYERS)
         filter:SetZone(ZONE_IN_PLAY)
         filter:SetHint(HINT_ENEMY_ONLY, EffectController())
         filter:AddCardType(CARD_TYPE_CREATURE)
      </TARGET_DEFINITION>
      <TARGET_DETERMINATION>
         return AtLeastOneTargetFromDefinition(0)
      </TARGET_DETERMINATION>
      <PLAY_TIME_ACTION target_choosing="1">
         EffectController():ChooseTarget(0, "CARD_QUERY_CHOOSE_DEAL_1_DAMAGE", EffectDC():Make_Targets(0))
      </PLAY_TIME_ACTION>
      <RESOLUTION_TIME_ACTION>
         local target_creature = EffectDC():Get_Targets(0):Get_CardPtr(0)
         local target_player = EffectDC():Get_Targets(0):Get_PlayerPtr(0)
         if (target_creature ~= nil) then
            target_creature:DealDamage(1, Object())
         elseif (target_player ~= nil) then
            target_player:DealDamage(1, Object())
         end
      </RESOLUTION_TIME_ACTION>
      <AI_AVAILABILITY step="declare_blockers" />
      <AI_AVAILABILITY step="end_of_turn" turn="their_turn" />
      <AI_AVAILABILITY type="in_response_dangerous" />
   </ACTIVATED_ABILITY>
</CARD_V2>
User avatar
Dysgenics
 
Posts: 13
Joined: 25 Aug 2012, 19:33
Has thanked: 5 times
Been thanked: 0 time

Re: 61 Return to Ravnica cards

Postby BlindWillow » 06 Oct 2012, 14:28

I have to say, awesome work with Angel of Serenity. I would not have thought to use target definitions and determinations so creatively.

I notice Aleksi has the full artwork up for her. I've attached my formatted crop for your usage, if you so desire.
Attachments
623586.zip
(114.42 KiB) Downloaded 422 times
BlindWillow
 
Posts: 213
Joined: 19 Jul 2012, 00:26
Has thanked: 11 times
Been thanked: 46 times

Re: 61 Return to Ravnica cards

Postby PhilistineAu » 07 Oct 2012, 16:03

Thanks!!! I'll give that a shot sometime this week and see if I can get it to work.

How is the numbering system defined? For example, the Staff of Nin text you posted has the file name "Staff of Nin 249713". Is 249713 randomly generated or is it tied to a set number in some way?

Thanks,

Phil
PhilistineAu
 
Posts: 22
Joined: 29 Sep 2012, 19:37
Has thanked: 0 time
Been thanked: 1 time

Re: 61 Return to Ravnica cards

Postby RiiakShiNal » 07 Oct 2012, 17:33

PhilistineAu wrote:How is the numbering system defined? For example, the Staff of Nin text you posted has the file name "Staff of Nin 249713". Is 249713 randomly generated or is it tied to a set number in some way?
249713 is the Multiverse ID of the card (as defined by Wizards of the Coast and accessible via Gatherer).

As to how to get the Multiverse ID, look up the card on Gatherer and look at the address (below is the address for Staff of Nin):
http://gatherer.wizards.com/Pages/Card/Details.aspx?multiverseid=249713
At the end of the address you see "multiverseid=249713" this is where we get the Multiverse IDs from.
RiiakShiNal
Programmer
 
Posts: 2185
Joined: 16 May 2011, 21:37
Has thanked: 75 times
Been thanked: 497 times

Re: 61 Return to Ravnica cards

Postby AlexSanchez » 13 Oct 2012, 16:50

It is possible to have this cards in game? my return to ravnica cards are not like this ones...I suppose we have to replace the tdx of the old ones with this new ones isnt it? however, I dont know how to do it
AlexSanchez
 
Posts: 32
Joined: 09 Oct 2012, 22:46
Has thanked: 2 times
Been thanked: 0 time

Re: 61 Return to Ravnica cards

Postby RiiakShiNal » 13 Oct 2012, 20:54

AlexSanchez wrote:It is possible to have this cards in game? my return to ravnica cards are not like this ones...I suppose we have to replace the tdx of the old ones with this new ones isnt it? however, I dont know how to do it
If Staff of Nin is also in Return to Ravnica, then it will eventually be given its own Multiverse ID and place on Gatherer. A card that is re-printed in many sets will have many Multiverse IDs each one referring to the specific set.

If you want to make a card from a set with which we do not know the Multiverse IDs, you can simply make the card without a Multiverse ID. If you want to have an ID with it you can make one up following some rule you make (though I generally advise against random numbers). For example you could make the ID (for filename, art id, etc...) RTR0045 if it is the 45th card alphabetically in the Return to Ravnica set which would be a fairly unique identifier that would be relatively easy to keep up with.
RiiakShiNal
Programmer
 
Posts: 2185
Joined: 16 May 2011, 21:37
Has thanked: 75 times
Been thanked: 497 times

Re: 61 Return to Ravnica cards

Postby thefiremind » 01 Nov 2012, 12:28

I'm starting to look at possible decks with RTR cards, now that I can have access to any picture thanks to the HQCG team.

Did anyone test the AI's reaction to the unleash mechanic? I made just a quick test duel, and the AI always chose to add the +1/+1 counter. Maybe it was a coincidence.
EDIT: I answer by myself: the AI chooses to add the +1/+1 counter really often, but it can also choose not to add it, so the mechanic works perfectly.

A warning about one of the cards coded by sumomole: Wild Beastmaster contains the "Mutilate bug"... what I mean is that if Wild Beastmaster changes his power after his ability resolved, the other creatures will be updated in real time, which is wrong. This is the correct code:
Code: Select all
  <TRIGGERED_ABILITY LKI_shield_effect_source="1" filter_zone="ZONE_IN_PLAY">
    <TRIGGER value="ATTACKING" simple_qualifier="self" />
    <FILTER>
    return OtherCreaturesInPlayYouControl()
    </FILTER>
    <RESOLUTION_TIME_ACTION ignore_filter="1">
    local source = EffectSource()
    if source == nil then
       source = Object()
    end
    EffectDC():Set_Int( 1, source:GetCurrentPower() )
    </RESOLUTION_TIME_ACTION>
    <CONTINUOUS_ACTION layer="7C">
    if EffectDC() ~= nil and FilteredCard() ~= nil then
       local characteristics = FilteredCard():GetCurrentCharacteristics()
       local power = EffectDC():Get_Int(1)
       if characteristics ~= nil then
          characteristics:Power_Add( power )
          characteristics:Toughness_Add( power )
       end
    end
    </CONTINUOUS_ACTION>
    <DURATION simple_duration="UntilEOT" />
  </TRIGGERED_ABILITY>
------------

EDIT 2: I just invented a super-performant TARGET_DETERMINATION for Jarad, Golgari Lich Lord's "return" ability (Sacrifice a Swamp and a Forest: Return Jarad from your graveyard to your hand). It's totally without "for" iterations. Unbelievable? :wink:
Code: Select all
      <TARGET_DETERMINATION>
      local filter = Object():GetFilter()
      filter:Clear()
      filter:AddSubType( LAND_TYPE_SWAMP )
      filter:SetController( EffectController() )
      filter:SetZone( ZONE_IN_PLAY )
      filter:NotTargetted()
      local filter_s = filter:EvaluateObjects()
      if filter_s &gt; 0 then
         local swamp = filter:GetNthEvaluatedObject(0)
         filter:Clear()
         filter:AddSubType( LAND_TYPE_FOREST )
         filter:SetController( EffectController() )
         filter:SetZone( ZONE_IN_PLAY )
         filter:NotTargetted()
         local filter_f = filter:EvaluateObjects()
         if filter_f &gt; 0 then
            if (filter_f &gt; 1 and filter_s &gt; 1) or (filter_f ~= filter_s) or (filter:GetNthEvaluatedObject(0) ~= swamp) then
               -- A. more than 1 forest and more than 1 swamp: I'm sure I have enough
               -- B. different quantities of swamps and forests: that means at least 1 forest isn't a swamp or vice versa, so I have enough
               -- C. only scenario still uncovered: exactly 1 swamp and exactly 1 forest: if they are different cards, I have enough
               return 1
            end
         end
      end
      return 0
      </TARGET_DETERMINATION>
Read the comments in the code and you'll notice that I covered all the possible scenarios without having to iterate through all the Swamps and/or through all the Forests. I enjoyed the challenge of inventing this code. :lol:
< 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

Slaughter Games

Postby sumomole » 29 Nov 2012, 03:07

Slaughter Games.png
Last edited by sumomole on 06 Apr 2013, 10:40, edited 2 times in total.
User avatar
sumomole
Programmer
 
Posts: 611
Joined: 07 Jun 2011, 08:34
Has thanked: 51 times
Been thanked: 234 times

Re: 77 Return to Ravnica cards

Postby kpruss » 30 Nov 2012, 00:13

If you guys still needed a code for angel of serenity, (sorry, just skimmed over the topic) here's one I found and have been using for the past month (credit to whoever made it)

Code: Select all
<?xml version='1.0'?>
<CARD_V2>
  <FILENAME text="ANGEL_OF_SERENITY_38253627" />
  <CARDNAME text="ANGEL_OF_SERENITY" />
  <TITLE>
    <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Angel of Serenity]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Engel der Reinheit]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Angel of Serenity]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Ange de la sérénité]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Angelo della Serenità]]></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[Anjo da Serenidade]]></LOCALISED_TEXT>
  </TITLE>
  <MULTIVERSEID value="38253627" />
  <ARTID value="38253627" />
  <ARTIST name="Aleksi Briclot" />
  <CASTING_COST cost="{4}{W}{W}{W}" />
  <TYPE metaname="Creature" />
  <SUB_TYPE metaname="Angel" />
  <EXPANSION value="DPG" />
  <RARITY metaname="M" />
  <POWER value="5" />
  <TOUGHNESS value="6" />
  <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>
    <CONTINUOUS_ACTION>
    local characteristics = Object():GetCurrentCharacteristics()
    characteristics:Characteristic_Set( CHARACTERISTIC_FLYING, 1 )
    </CONTINUOUS_ACTION>
  </STATIC_ABILITY>
  <TRIGGERED_ABILITY dangerous="1" filter_zone="ZONE_IN_PLAY">
    <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[When Angel of Serenity enters the battlefield, you may exile up to three other target creatures from the battlefield and/or creature cards from graveyards.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Quand l’Ange de la sérénité arrive sur le champ de bataille, vous pouvez exiler jusqu’à trois autres créatures ciblées du champ de bataille et/ou cartes de créature des cimetières.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Cuando el Ángel de serenidad entre al campo de batalla, puedes exiliar hasta tres otras criaturas del campo de batalla y/o cartas de criatura objetivo de cementerios.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Wenn der Engel der Reinheit ins Spiel kommt, kannst du bis zu drei andere Kreaturen deiner Wahl aus dem Spiel und/oder Kreaturenkarten deiner Wahl aus Friedhöfen ins Exil schicken.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Quando l’Angelo della Serenità entra nel campo di battaglia, puoi esiliare fino a tre altre creature bersaglio dal campo di battaglia e/o carte creatura dai cimiteri.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[静穏の天使が戦場に出たとき、あなたは戦場にある他のクリーチャーかいずれかの墓地にあるクリーチャー・カード、あるいはその両方から最大3つまでを対象とし、それらを追放してもよい。]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[평온의 천사가 전장에 들어올 때, 전장에 있는 다른 생물과 무덤에 있는 생물 카드 중에서 목표를 최대 세 개까지 정한다. 당신은 그 목표들을 추방할 수 있다.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[Когда Ангел Безмятежности выходит на поле битвы, вы можете изгнать до трех других целевых существ с поля битвы и (или) карт существ из кладбищ.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[Quando Anjo da Serenidade entra no campo de batalha, você pode exilar até três outras criaturas alvo do campo de batalha e/ou cards de criatura de cemitérios.]]></LOCALISED_TEXT>
    <TRIGGER value="ZONECHANGE_END" simple_qualifier="self" to_zone="ZONE_IN_PLAY" />
    <TARGET_DEFINITION id="0">
    local filter = Object():GetFilter()
    filter:Clear()
    filter:May()
    filter:AddCardType( CARD_TYPE_CREATURE )
    filter:SetZone( ZONE_IN_PLAY )
    filter:SetHint( HINT_ENEMY, EffectController() )
    filter:SetCardInstance( Object() )
    filter:AddExtra( FILTER_EXTRA_FLIP_CARD_INSTANCE )
    if EffectController():IsAI() ~= 0 then
       filter:SetCardRef( Object():GetSpec() )
       filter:AddExtra(FILTER_EXTRA_FLIP_CARD_REF)
    end
    </TARGET_DEFINITION>
    <TARGET_DEFINITION id="1">
    local filter = Object():GetFilter()
    filter:Clear()
    filter:May()
    filter:AddCardType( CARD_TYPE_CREATURE )
    filter:SetZone( ZONE_GRAVEYARD )
    filter:SetHint( HINT_ENEMY, EffectController() )
    </TARGET_DEFINITION>
    <TARGET_DEFINITION id="2">
    local filter = Object():GetFilter()
    filter:Clear()
    filter:May()
    filter:AddCardType( CARD_TYPE_CREATURE )
    filter:SetZone( ZONE_GRAVEYARD )
    filter:SetHint( HINT_ENEMY, EffectController() )
    if EffectDC() ~= nil and EffectDC():Get_Targets(1) ~= nil then
      local target_one = EffectDC():Get_Targets(1):Get_CardPtr(0)
      if target_one ~= nil then
         filter:SetCardInstance( target_one )
         filter:AddExtra( FILTER_EXTRA_FLIP_CARD_INSTANCE )
      end
    end
    </TARGET_DEFINITION>
    <TARGET_DEFINITION id="3">
    local filter = Object():GetFilter()
    filter:Clear()
    filter:May()
    filter:AddCardType( CARD_TYPE_CREATURE )
    filter:SetZone( ZONE_GRAVEYARD )
    filter:SetHint( HINT_ENEMY, EffectController() )
    if EffectDC() ~= nil and EffectDC():Get_Targets(1) ~= nil then
      local target_one = EffectDC():Get_Targets(1):Get_CardPtr(0)
      if target_one ~= nil then
         filter:SetCardInstance( target_one )
         filter:AddExtra( FILTER_EXTRA_FLIP_CARD_INSTANCE )
      end
    end
    if EffectDC() ~= nil and EffectDC():Get_Targets(2) ~= nil then
      local target_two = EffectDC():Get_Targets(2):Get_CardPtr(0)
      if target_two ~= nil then
         filter:SetSecondCardInstance( target_two )
         filter:AddExtra( FILTER_EXTRA_FLIP_CARD_INSTANCE )
      end
    end
    </TARGET_DEFINITION>
    <TARGET_DETERMINATION>
    return AtLeastOneTargetFromDefinition(0) + AtLeastOneTargetFromDefinition(1)
    </TARGET_DETERMINATION>
    <PLAY_TIME_ACTION target_choosing="1">
    local filter = Object():LoadTargetDefinition(0)
    local total = filter:CountStopAt(3)
    local player = EffectController()
    player:SetTargetCount( total )
    for i=0,total-1 do
       player:SetTargetPrompt( i, "CARD_QUERY_CHOOSE_CREATURE_TO_EXILE" )
    end
    player:ChooseTargetsWithFlags( 0, EffectDC():Make_Targets(0), QUERY_FLAG_CAN_BE_FINISHED_EARLY + QUERY_FLAG_CAN_BE_FINISHED_EARLY_FOR_AI_AS_WELL )
    </PLAY_TIME_ACTION>
    <PLAY_TIME_ACTION>
    if EffectDC():Get_Targets(0) ~= nil then
      for i=0,2 do
        local target = EffectDC():Get_Targets(0):Get_CardPtr(i)
        if target ~= nil then        
           EffectDC():Int_Inc(4)
        end
      end
    end
    </PLAY_TIME_ACTION>
    <PLAY_TIME_ACTION target_choosing="1">
    if EffectDC():Get_Int(4) &lt; 3 then
      EffectController():ChooseTargetWithFlags( 1, "CARD_QUERY_CHOOSE_CARD_TO_EXILE", EffectDC():Make_Targets(1), QUERY_FLAG_CAN_BE_FINISHED_EARLY + QUERY_FLAG_CAN_BE_FINISHED_EARLY_FOR_AI_AS_WELL )
    end
    </PLAY_TIME_ACTION>
    <PLAY_TIME_ACTION target_choosing="1">
    if EffectDC():Get_Int(4) &lt; 2 then
      EffectController():ChooseTargetWithFlags( 2, "CARD_QUERY_CHOOSE_CARD_TO_EXILE", EffectDC():Make_Targets(2), QUERY_FLAG_CAN_BE_FINISHED_EARLY + QUERY_FLAG_CAN_BE_FINISHED_EARLY_FOR_AI_AS_WELL )
    end
    </PLAY_TIME_ACTION>
    <PLAY_TIME_ACTION target_choosing="1">
    if EffectDC():Get_Int(4) == 0 then
      EffectController():ChooseTargetWithFlags( 3, "CARD_QUERY_CHOOSE_CARD_TO_EXILE", EffectDC():Make_Targets(3), QUERY_FLAG_CAN_BE_FINISHED_EARLY + QUERY_FLAG_CAN_BE_FINISHED_EARLY_FOR_AI_AS_WELL )
    end
    </PLAY_TIME_ACTION>
    <RESOLUTION_TIME_ACTION>
    ObjectDC():Set_Int( 0, 0 )
    </RESOLUTION_TIME_ACTION>
    <RESOLUTION_TIME_ACTION>
    local source = EffectSource()
    if EffectDC():Get_Targets(0) ~= nil then
      for i = 0,2 do
         local target = EffectDC():Get_Targets(0):Get_CardPtr(i)
         if target ~= nil then
           if source ~= nil then
              local count_so_far = ObjectDC():Get_Int(0)          
              ObjectDC():Set_CardPtr(1 + count_so_far, target)
              ObjectDC():Protect_CardPtr(1 + count_so_far)          
              ObjectDC():Set_Int(0, count_so_far + 1)
           end
          target:RemoveFromGame()
         end
       end
    end
    </RESOLUTION_TIME_ACTION>
    <RESOLUTION_TIME_ACTION>
    local source = EffectSource()
    for i = 1,3 do
      if EffectDC():Get_Targets(i) ~= nil then
         local target = EffectDC():Get_Targets(i):Get_CardPtr(0)
         if target ~= nil then
           if source ~= nil then
              local count_so_far = ObjectDC():Get_Int(0)          
              ObjectDC():Set_CardPtr(1 + count_so_far, target)
              ObjectDC():Protect_CardPtr(1 + count_so_far)          
              ObjectDC():Set_Int(0, count_so_far + 1)
           end
          target:RemoveFromGame()
         end
       end
    end
    </RESOLUTION_TIME_ACTION>
    <RESOLUTION_TIME_ACTION>
    local source = EffectSource()
    local amount = ObjectDC():Get_Int(0)
    if amount &gt; 0 then
       for i = 1,amount do
        local target = ObjectDC():Get_CardPtr(i)
          if target ~= nil and source ~= nil then
           target:NailOnto(source)
          end
       end
    end
    </RESOLUTION_TIME_ACTION>
  </TRIGGERED_ABILITY>
  <TRIGGERED_ABILITY>
    <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[When Angel of Serenity leaves the battlefield, return the exiled cards to their owner’s hands.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Quand l’Ange de la sérénité quitte le champ de bataille, renvoyez les cartes exilées dans les mains de leurs propriétaires.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Cuando el Ángel de serenidad deje el campo de batalla, regresa las cartas exiliadas a las manos de sus propietarios.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Wenn der Engel der Reinheit das Spiel verlässt, bringe die ins Exil geschickten Karten auf die Hand ihrer Besitzer zurück.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Quando l’Angelo della Serenità lascia il campo di battaglia, fai tornare le carte esiliate in mano ai rispettivi proprietari.]]></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[Quando Anjo da Serenidade deixar o campo de batalha, devolva os cards exilados para as mãos de seus donos.]]></LOCALISED_TEXT>
    <TRIGGER value="ZONECHANGE_BEGIN" simple_qualifier="self" to_zone="ZONE_ANY" from_zone="ZONE_IN_PLAY" />
    <RESOLUTION_TIME_ACTION>
    local target_count = ObjectDC():Get_Int(0)
    for i=1,target_count do   
       local card = ObjectDC():Get_CardPtr(i)
       if card ~= nil then
         card:GuidedReveal( ZONE_REMOVED_FROM_GAME, ZONE_HAND )
         card:PutInHand()
       end
    end
    </RESOLUTION_TIME_ACTION>
  </TRIGGERED_ABILITY>
  <HELP title="MORE_INFO_BADGE_TITLE_10" body="MORE_INFO_BADGE_BODY_10" zone="ZONE_ANY" />
  <SFX text="COMBAT_ANGEL_LARGE_ATTACK" power_boundary_min="4" power_boundary_max="-1" />
  <SFX text="COMBAT_ANGEL_SMALL_ATTACK" power_boundary_min="1" power_boundary_max="3" />
  <AI_BASE_SCORE score="900" zone="ZONE_IN_PLAY" />
  <AI_BASE_SCORE score="1200" zone="ZONE_HAND" />
</CARD_V2>
it works perfectly imo. When it enters the battlefield, it lets you choose if you want to exile a creature from the field, then it asks you to exile cards in your opponent's graveyard, then yours. And when it dies or w/e, the cards go into the hands with that reveal card animation so it looks correct. This card is just ridiculous btw, man some cards can just be evil.
kpruss
 
Posts: 23
Joined: 17 Nov 2012, 04:07
Has thanked: 0 time
Been thanked: 1 time

PreviousNext

Return to 2013

Who is online

Users browsing this forum: No registered users and 1 guest


Who is online

In total there is 1 user online :: 0 registered, 0 hidden and 1 guest (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 1 guest

Login Form